Welcome, Guest. Please login or register.


Author Topic: EXOS (Read 93620 times)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14527
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXOS
« Reply #360 on: 2023.April.04. 14:21:10 »
Ahogy az EXOS könyv írja:
Quote
Az EXOS-hívások a paramétereket az A-, BC- és DE-regiszterekben veszik át, és az eredményeket ugyanezekben a regiszterekben adják vissza. Az A-regiszter állapotkódot hoz vissza, ami nulla, ha a hívás sikeres volt, egyébként pedig egy nullától különböző értékű állapotkód. Az összes többi regiszter (HL, IX, IY, AF', BC', DE', HL') tartalmát minden EXOS-hvás megőrzi és változatlan marad a felhasználói lapkiosztás is. EXOS-hívást bármely Z80-as lap bármely címéről kérhetünk, és a felhasználói veremmemória is elhelyezkedhet a négy lap bármelyikén.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1224
  • Country: hu
Re: EXOS
« Reply #361 on: 2023.April.04. 23:02:21 »
Quote
EXOS-hívást bármely Z80-as lap bármely címéről kérhetünk

 Ez egy nagyon érdekes dolog.
 Akkor ez azt jelenti, hogy az exos lapozó rutin a 0-ás lapon azzal kezd, hogy eltárolja a 3. lapon a szegmensszámot, majd ide belapozza a romot. Ott végrehajtja a feladatot majd - itt jön a kérdés hogy jól látom-e a dolgot - visszatér a 0-ás lapra a végrehajtás, ott visszalapozza a korábbi szegmenst és végül visszaugrik az Exos hívás utáni részre?

Offline Ferro73

  • EP lover
  • *
  • Posts: 881
  • Country: hu
Re: EXOS
« Reply #362 on: 2023.April.05. 19:24:37 »
  Akkor ez azt jelenti, hogy az exos lapozó rutin a 0-ás lapon azzal kezd, hogy eltárolja a 3. lapon a szegmensszámot, majd ide belapozza a romot. Ott végrehajtja a feladatot majd - itt jön a kérdés hogy jól látom-e a dolgot - visszatér a 0-ás lapra a végrehajtás, ott visszalapozza a korábbi szegmenst és végül visszaugrik az Exos hívás utáni részre?
Lényegében igen.
Az  EXOS  xx valójában  RST 30h, DB xx
ez 1+1 bájtos utasítás teljesen egyen értékű CALL 0030h , DB xx ami így 3+1 bájt