Kimaradt a felsorolásból a verem! Ami nem árt ha mindig be van lapozva
Nemtom kimaradt -e vagy sem, de az nálam (is ugye, korábbiakban megbeszéltek értelmében) 100h -n van,
ami teljesen jó a lapváltáskor is mert:
- letiltjuk a megszakokat
- belapozzuk p1 -re az új p0 szegmens jelöltet
- meghivjuk a cross-segment függvényünket a p1 -en (4000h -val növelt címen természetesen), ekkor eredeti p0 szegmens stack -jére pakolódik a visszatérési cím
- a cross-segment függvényünk úgy kezdi, hogy kiolvassa mi van p1 -en és belapozza p0 -ra
- ráugrik önmaga folytatására (ugrás utáni következő utasítás) a p0 -on
- visszalapozza p1 -re az eredetileg ott levő szegmenst (itt. video)
- engedélyezi a megszakokat
- elvégzi amit kell, pld. kirajzol sprite -okat
- letiltjuk a megszakokat
- berak p1 -re p0 -t
- ráugrik a 4000- rel növelt önmagára
- visszarak p0 -ra eredeti nullaslap szegmenst, melynek stack -jeben ott a visszateresi ertek
- ret -tel visszater
- es mi pedig visszarakjuk p1 -re az eredeti (video) szegmenst
- majd engedelyezzuk a megszakokat
mint látjuk, ez hivó oldalról annyi lesz, hogy:
- letilt megszak
- berakjuk p1 -re az uj p0 szegmensünket
- meghívjuk a függvenyunket a p1 -en
- visszatérés után visszarakjuk p1 -re az eredeti (video) szegmenst
- engedelyezzuk a megszakokat
a többit a hívott függvény végzi.
Mindehhez persze még az is kell, hogy a 100h elotti rendszerváltozók és maga a megszakítás kód is látszódjon minden 0 -ás lap szegmens esetén,
és hogy maga a megszak kód is tiltsa a megszakításokat. Ezek nálam adottak / megoldottak.