Witam.
Mam kilka pewnych problemów z moim systemem.
1)Problem polega na aplikacjach(TSS) gdzie programy 16bitowe(takie z dosa) operują często na segmentach cs, ds.
push cs
pop ds
Domyślnie ustawiam tablice LDT(a w cs i ds ustawiam index*8+7).
Jak to wszystko ze sobą „połączyć”(aby program „widział” ds jako segment i mógł sobie go modyfikować)?
2) Przy aplikacjach niekorzystających z LDT wszystko działa(chodzi mi o przerwania mojego systemu np. 0x80), lecz gdy korzystam z LDT to kapa. Nie działa :/
Gdzieś przeleciało mi przed oczami że istnieją tablice przerwań ale lokalnych. O co chodzi?
3) Chyba najtrudniejsze.... Chodzi o tryb wirtualny. Gdzieś wyczytałem i z tego opisu próbuje użyć tych przerwań biosa. Tworze proces(TSS) 16bitowy i uruchamiam go. Kodem jest np. ... int 10h ...
Normalnie wykonuje się przerwanie mojego systemu, ale w opisie pisało żeby zmienić tylko flagi procesu, lecz kapa. Jak to zrobić?