Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
cpm:8080_z80 [2019/10/01 07:33] – angelegt volkerpcpm:8080_z80 [2022/12/27 12:33] (aktuell) volkerp
Zeile 3: Zeile 3:
   * {{ :cpm:sct80-213_vp.zip}}   * {{ :cpm:sct80-213_vp.zip}}
  
-**SCT80** ist ein Konverter, der 8080-Asembler-Syntax in Z80-Syntax umsetzt. Vorgestellt wurde er in c't 5/85, Seite 94 ff. Die originale Version ist in Turbo-Pascal geschrieben. Meine Version ist für moderne Rechner als 32-Bit-Exe compiliert und erlaubt zusätzlich Kommandozeilenparameter.+**SCT80** ist ein Konverter, der 8080-Assembler-Mnemonik in Z80-Mnemonik umsetzt. Vorgestellt wurde er in c't 5/85, Seite 94 ff. Die originale Version ist in Turbo-Pascal geschrieben. Meine Version ist für moderne Rechner als 32-Bit-Exe compiliert und erlaubt zusätzlich Kommandozeilenparameter.
  
 Aufruf: sct80_213.exe sysgen.asm sysgen.z80 y Aufruf: sct80_213.exe sysgen.asm sysgen.z80 y
  
 +Beispiel (Auszug): links orig. 8080-Code mit mehreren Befehlen pro Zeile, rechts Ausgabe in Z80-Syntax
 +
 +<code>
 +;       UTILITY SUBROUTINES                                      ;        UTILITY SUBROUTINES
 +MULTSEC:                                                         MULTSEC:
 +        ;MULTIPLY THE SECTOR NUMBER IN A BY THE SECTOR SIZE      ;MULTIPLY THE SECTOR NUMBER IN A BY THE SECTOR SIZE
 +        MOV L,A! MVI H,0 ;SECTOR NUMBER IN HL                             LD      L,A
 +                                                                          LD      H,0     ;SECTOR NUMBER IN HL
 +        REPT LOG2SEC    ;LOG 2 OF SECTOR SIZE                             REPT    LOG2SEC ;LOG 2 OF SECTOR SIZE
 +        DAD                                                             ADD     HL,HL
 +        ENDM                                                              ENDM
 +        RET ;WITH HL = SECTOR * SECTOR SIZE                               RET     ;WITH HL = SECTOR * SECTOR SIZE
 +;                                                                ;
 +GETCHAR:                                                         GETCHAR:
 +;       READ CONSOLE CHARACTER TO REGISTER A                     ;        READ CONSOLE CHARACTER TO REGISTER A
 +        MVI C,CONI! CALL BDOS!                                            LD      C,CONI
 +                                                                          CALL    BDOS
 +;       CONVERT TO UPPER CASE BEFORE RETURN                      ;        CONVERT TO UPPER CASE BEFORE RETURN
 +        CPI 'A' OR 20H ! RC     ;RETURN IF BELOW LOWER CASE A             CP      'A' OR 20H
 +        CPI ('Z' OR 20H) + 1                                              RET           ;RETURN IF BELOW LOWER CASE A
 +        RNC     ;RETURN IF ABOVE LOWER CASE Z                             CP      ('Z' OR 20H) + 1
 +        ANI 5FH! RET                                                      RET     NC      ;RETURN IF ABOVE LOWER CASE Z
 +                                                                          AND     5FH
 +                                                                          RET
 +;                                                                ;
 +PUTCHAR:                                                         PUTCHAR:
 +;       WRITE CHARACTER FROM A TO CONSOLE                        ;        WRITE CHARACTER FROM A TO CONSOLE
 +        MOV E,A! MVI C,CONO! CALL BDOS! RET                               LD      E,A
 +                                                                          LD      C,CONO
 +                                                                          CALL    BDOS
 +                                                                          RET
 +</code>
  • cpm/8080_z80.1569915186.txt.gz
  • Zuletzt geändert: 2019/10/01 07:33
  • von volkerp