|
In der „PC AMSTRAD INTERNATIONAL 12'91/1'92" wurde der folgende Artikel abgedruckt.
|
INLINE-Anweisung, und haben Sie Schwierigkeiten beim Austesten Ihres Programms?
Hier hilft Ihnen die Prozedur Z80-INFO.
POKE-Befehl in Zusammenhang mit dem CALL ist, löst man in TURBO-Pascal mit der INLINE-Anweisung.
INLINE-Anweisungen gearbeitet hat, weiß aber auch, wie schwierig und zeitaufwendig es ist, semantische Fehler im Maschinencode zu finden (Semantische Fehler sind Fehler im gedanklichen Aufbau eines Programmes — syntaktische sind dagegen Fehler welche der Grammatik der Sprache widersprechen, die letzteren findet der Compiler bei der Übersetzung).
Eine Fehlersuche ohne Hilfsmittel ist nahezu unmöglich.
INLINE-Anweisungen nicht.
Hier lassen sich keine zusätzlichen Befehle aus dem Befehlsvorrat von Pascal einfügen.
INLINE-Generator.
Jetzt kann Ihnen jedoch geholfen werden.
Z80-INFO.INC ein.
An die zu testenden Stellen plaziert man nun die INLINE-Anweisung
$cd/Z80_INFO/(*Call Z80_INFO*).
Z80_Info verzweigt wurde).
Anschließend wird gefragt, ob das Programm abgebrochen oder fortgesetzt werden soll.
Dies ist notwendig, um beispielsweise aus Endlosschleifen herauszukommen, und macht einen RESET fast überflüssig.
Z80_INFO beansprucht drei Bytes (CALL-Befehl plus Adresse).
Dies muß bei allen Sprung oder besser Verzweigungsbefehlen berücksichtigt werden.
Eine Empfehlung:
Man schafft an allen möglicherweise zur Registerausgabe interessanten Stellen Platz, indem man drei NOPs (No operation, Code &00) einfügt.
Diese können dann bei Bedarf durch den Aufruf von Z80_INFO ersetzt werden.
Läuft das Programm dann zufriedenstellend, kann man in einem zweiten Anlauf die NOPs wieder entfernen.
Dabei sollte man darauf achten, daß man die Verzweigungsbefehle wieder um drei Bytes herauf beziehungsweise heruntersetzt.
Hier noch einige Anmerkungen zum Programm:
Z80_INFO leicht veranschaulichen.
Z80_INFO zeigt das Programm Z80_DEMO.PAS.
Viel Spaß bei der Arbeit "hart am Bit".
| [Z80-INFO.INC] |
| [Z80DEMO.PAS] |
| 1. |
Zur Erzeugung von INLINE-Code gibt es eine Übersicht, die hier zu finden ist.
|
Eingescanned von
Werner Cirsovius
August 2004
© DMV-Verlag