+---------------------------------------------------------------------------+ | I2Z - INTEL to ZILOG Source Code Translator | | erkennt auch die Makros aus der Z80.LIB !!! | +---------------------------------------------------------------------------+ Kur(t)zanleitung ================ I2Z.EXE läuft unter DOS bzw. in der DOS-Box (getestet mit Win2k). In einem Verzeichnis liegen I2Z.EXE und der 8080-Assembler-Code (z.B. old.asm). Dann startet der Befehl "I2Z old.asm>new.z80" die Übersetzung! Das Ergebnis sollte mit Z80ASM (o.ä.) assemblierfähig sein. Bitte Unterschiede zwischen verschiedenen Assemblern beachten (ASide weicht ab). Genereller Hinweis ================== Es ist ratsam, den Code vor der Übersetzung zu testen. Liest ihn z.B. RMAC fehlerfrei ein, so bestehen gute Voraussetzungen, dass auch die Übersetzung klappt. Version 1.0 (11.7.09): Einschränkungen an das Eingabeformat =========================================================== 1. Mnemonics in Kleinbuchstaben werden nicht erkannt: mov a,b ; wird nicht erkannt MOV a,b ; wird erkannt Abhilfe schafft das beiliegende Programm UPPER. Es übernimmt Kommentare unverändert und ersetzt ansonsten Kleinbuchstaben durch Großbuchstaben. LOWER ist das Gegenstück. ----------------------------------------------------------------------------- 2. Mnemonics am Beginn einer Zeile werden nicht erkannt: MOV A,B ; wird nicht erkannt MOV A,B ; wird erkannt Abhilfe: Tabulatoren oder Leerzeichen einfügen. ----------------------------------------------------------------------------- 3. Mnemonics direkt nach einem Doppelpunkt werden nicht erkannt: LABEL:MOV A,B ; wird nicht erkannt LABEL: MOV A,B ; wird erkannt Abhilfe: Tabulatoren oder Leerzeichen einfügen, ggf. Zeilenwechsel ----------------------------------------------------------------------------- 4. Doppelregister stehen im Quelltext eventuell verkürzt (B statt BC, D statt DE und H statt HL nach DADC, DSBC, ): Aus DADC B wird ADC HL,B ; produziert Compilerfehler statt ADC HL,BC ; wäre in Ordnung Abhilfe: bisher noch Korrektur per Hand ----------------------------------------------------------------------------- Der I2Z-Baukasten und was man dazu unter Windows braucht: =========================================================== Die Quellen enthalten Code, der ursprünglich von J.Sievers (1989: cplhh.Hanse.de bzw. 2007 nadhh.Hanse.de) stammt und von mir vor allem 2009 überarbeitet wurde. Es gehört zum guten Stil, bei eigenen Anpassungen die Hinweise im Quelltext zu belassen. 1. flex++/bison++ for Win32, http://www.kohsuke.org/flex++bison++/ 2. Für den C-Compiler mingw, http://www.mingw.org/ 3. Das Paket der Lexer-Dateien (I2Z.L, UPPER.L, LOWER.L) 4. Falls man das Ergebnis gleich überprüfen möchte, bietet sich 22NICE an. Mit den enthaltenen GENCOM kann man sich aus den CP/M-Programmen RMAC, Z80ASM etc. lauffähige Varianten für die DOS-Box erzeugen. 5. Meine Empfehlung für den Entwicklungszyklus ist der Programmeditor PSPad (http://www.pspad.com/de/). Es lassen sich zu jedem Quelltyp Compiler- (oder Assembler-) Aufrufe einbinden, die auf Tastendruck gestartet werden. Die angepassten Dateien zu PSPad liegen auch im Paket. 6. Wenn man mit dem leben kann, was I2Z derzeit bereits leistet, dann sind die Lexer-Quellen (.L-Dateien) verzichtbar und man greift auf die aus- führbaren Versionen I2Z.EXE, UPPER.EXE und LOWER.EXE aus dem Paket zurück. 7. Unter Linux wird das Bauen der Lexer einfacher, da der C-Compiler stets dazu gehört. Meines Wissens nach gibt es aber keine so schöne Möglichkeit, die CP/M-Programme auf gleichem Level zu starten (Punkt 4). Zu Punkt 1 die Linux-Version nehmen und Punkt 2 weglassen :-) ----------------------------------------------------------------------------- Bei Fragen, Anregungen oder Fehlermeldungen bitte wenden an: prof80@prof80.de Viel Spass damit! Stuttgart, 11.7.09 Wolfram Kurtz