Aktív témák

  • kisfurko

    senior tag

    Ne ijesszétek már el...
    Én írtam egy DOS extendert segítség nélkül (van beépített debuggere is, de az nem lesz kész már soha :D), szóval csak kitartás kell.

    Először is le kell tiltani minden megszakítást. Utána létre kell hozni a GDT-t, IDT-t, egy TSS-t (ha nem csak 0-ás privilégium szinten akarsz szüttyögni), ezeket betölteni a megfelelő regiszterekbe. A GDT-ben minimum kell egy kód és egy adat szegmens leírója, ha nem csak 0-ás p. szint van, akkor kell még egy-egy ezekből megfelelő jogosultságokkal. Az IDT-ben kell a megszakításoknak (mind a 16-nak) és az exception-öknek bejegyzés. Ha BIOS-t is akarsz használni, akkor nem árt egy int vagy call gate, amivel hívhatod virtual 86 módban a valós kódokat. Ha kultúrált vagy, akkor csinálsz LDT-t is (ez egy bejegyzés a GDT-ben) és betöltöd azt is a megfelelő regiszterbe. Ajánlatos még átprogramozni a PIC-eket, hogy ne olyan kretén helyeken jöjjenek az interruptok (ne ütközzön például a GP Fault-tal a HDD). A GDT, IDT, TSS (szóval ezek a táblák nyugodtan lehetnek data sorokban, csak a bázisukat kell számítani, kivéve, ha mindig ugyanoda rakod).
    Kérdezz nyugodtan, sajnos forrást most nem tudok bemásolni, mert nincs bekötve az első, szeretett, kicsi HDD-m, de ha kell, akkor szívesen megteszem, remélem még működik.
    Sokat szoptam a témával, jelentősen lerövidítheti a fejlesztési idődet a segítség (mert okos intelék nem írnak le ám mindent...:(). Még az a szerencséd is megvan, hogy teljesen dokumentáltam, hogy később is megértsem.

    Szerk: úgyis kihagytam valamit, ha kell még a segítség, szólj!

    [Szerkesztve]

Aktív témák