Autor Thema: Register sichern für Betriebssystem-Aufrufe  (Gelesen 1546 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Online LambdaMikel

  • LambdaMikel
  • CPC 464+
  • *****
  • Beiträge: 768
  • Liked: 296
  • Karma: +30/-0
  • Geschlecht: Männlich
    • Homepage
Register sichern für Betriebssystem-Aufrufe
« am: 04. August 2019, 19:10:29 »
Frage an die Z80-CPC-Experten - was ist die effizienteste Methode, um Register "zu retten" vor destruktiven Betriebssystem Calls?
Z.B. call &bb5d - TXT WR CHAR - macht alles kaputt, ausser IX und IY. Wie soll ich am Besten meine Programm-Variablen "retten"?

- auf den Stack - PUSH BC, PUSH DE ....
- IX und IY verwenden (ich dachte, die Verwendung dieser ist im CPC stark eingeschränkt?)
- in den Speicher schreiben - ld hl,speicher, ld (hl),register
- und und und???


Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 415
  • Liked: 110
  • Karma: +14/-0
  • Geschlecht: Männlich
  • :P
Re: Register sichern für Betriebssystem-Aufrufe
« Antwort #1 am: 05. August 2019, 16:03:22 »
Nur das mit PUSH/POP retten welches nach BB5D mit weiter benötigten Werten arbeiten soll. Oder BB5A nehmen, das verändert gar keine Register.
IX und IY können ganz normal verwendet werden, da gibt es keine Einschränkungen, nur bei einigen IN/OUT.

Ich empfehle Dir http://cpc-live.com/forum/index.php/topic,282.0.html runter zu laden. Da steht alles wichtige drin.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 2844
  • Liked: 700
  • Karma: +34/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Register sichern für Betriebssystem-Aufrufe
« Antwort #2 am: 05. August 2019, 19:26:20 »
PUSH / POP sind am schnellsten. Bei einzelnen 8 Bit Registern kann man auch unbenutzte nehmen.

Die AF' und BC' Register (also 2ter Registersatz) müssen intakt bleiben. Auch sollte man die nur einblenden wenn man zuvor mit DI die Interrupts ausgeschalten hat.

Unter FutureOS hat der Programmierer volle Freiheit und kann immer alles nutzen. Also ist es da einfacher zum testen.
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)