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
Beispiel (Auszug): links orig. 8080-Code mit mehreren Befehlen pro Zeile, rechts Ausgabe in Z80-Syntax
; 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 H 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 C ;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