[OS] Powrót do trybu rzeczywistego

0

Pisze system operacyjny na mój komputer, i mam problem z powrotem do Real mode. Mój system jest w trybie chronionym, z odblokowaną linią A20 i włączonym stronicowaniem. Jak z tego można przejść do RM?
Jeżeli ktoś dysponuje takim kawałkiem kodu, to proszę o jego zamieszczenie ? wtedy mógłbym go przerobić na swoje potrzeby. Z góry dzięki :)

0

Dzięki, poradziłem sobie z włączaniem trybu rzeczywistego, ale jest jeszcze jeden problem. Kiedy wywołuje przerwanie 10h <- zmieniam tryb graficzny na tekstowy to wszystko jest w porządku, natomiast kiedy próbuje użyć przerwania 13h ( odczytania sektora ) to nie działa .... :/ Czemu może się tak dziać?

0

No musisz posprawdzać czy konfiguracja sprzętowa do tego potrzebna jest dobrze ustawiona. Przykładowo czy nie masz zablokowanych przerwań sprzętowych. Musisz dojść do tego po przez analize tego w co ingeruje twój system, a co może miec wpływ na złą prace sterownika.

0

przerwania są na pewno odblokowane itd, bo działa przerwanie 10h ... chociaż nie do końca dobrze, teraz zauważyłem że wymiary ma nieco inne zamiast 80x25 ma 40x na coś :P a trym na pewno dobry wybieram :
[code]
mov ax, 0003
int 10h
[/code]
Zastanawiam się czy nie ingeruje w jakiś zarezerwowany obszar pamięci, tylko nie mam pojęcia jaki mógłby to być?

0

może podam jak działa mój os, może to coś wyjaśni, najpierw włącza sie MBR pod adres 0x7C00 przekopiowuje się do 0x7E00, wyszukuje partycji gdzie jest bootsector i wczytuje go pod adres 0x7C00, następnie on wczytuje drugi program ładujący o rozmiarze 5 sektorów pod adres 0x2000, on ustawia PAGE_DIR = 0x3000
Page_table = 0x4000, globalną Tablice alokacji = 0x5000 - każdy z nich po 4KB; i tablice alokacji = 0x120000 do 0x140000. Przeglądałem mapę pamięci ale z tego co widziałem to te obszary są wolne.....

1 użytkowników online, w tym zalogowanych: 0, gości: 1