; ;Programm zum Konvertieren von EDAS-Dateien ; ;PE: Anfangsadresse 4000h im TPA ; Ende => Vergleich auf 0h ; bdos equ 5 .z80 ; konv: ld de,text1 ;Er|ffnungstext call pstr ld hl,4000h ;Anfangsbereich ld a,h call phex ld a,l call phex ld de,text2 call pstr anf: call lang ;L{nge berechnen in BC push bc ld hl,4000h add hl,bc ld a,h call phex ld a,l call phex ld a,32 call pchar pop bc start: ld hl,4000h start1: ld a,(hl) cp 0 jr z,starte ;Ende der Datei cp 0a0h jr z,kon1 start2: inc hl dec bc start3: ld a,b or c jr nz,start1 starte: ld a,1ah ;Datei-Endekennung start4: ld (hl),a inc hl bit 7,l ;kpl. Sektor jr z,start4 ld de,text3 call pstr ld a,h call phex ld a,l call phex ld de,text4 call pstr ld de,4000h sbc hl,de ;Quelltext-L{nge ld de,80h xor a ld b,a loop: sbc hl,de inc b jr nc,loop inc b ld a,b ;Zahl der Sektoren (hex) call phex ld a,'h' call pchar ld a,'/' call pchar ld h,0 ld l,b call hexdez ld a,'d' call pchar ld a,'e' call pchar ld a,'z' call pchar ld de,text5 call pstr ret ;.......................................................... ;0dh gefunden! kon1: ld a,08dh ;oder 8dh? ld (hl),a ;ersetzen inc hl ;eine Position weiter dec bc ;Z{hler dec ld a,(hl) cp 0ah jr z,start2 ;auch 0ah gefunden! call move inc bc ld a,0ah ld (hl),a jr start2 ;.......................................................... move: push af push bc push de push hl ;Adresse im Speicher dec hl add hl,bc ;Endadresse push hl pop de inc de lddr pop hl pop de pop bc pop af ret ; ;PE : hl =4000h => Anfangsadresse lang: ld bc,1 lang1: ld a,(hl) cp 0 jr z,lang2 lang0: inc bc inc hl jr lang1 lang2: ld a,20h ld (hl),a inc hl inc bc ld a,(hl) cp 0 ret z jr lang0 ; phex: push af rrca rrca rrca rrca call pnib pop af call pnib ret ; pnib: and 0fh cp 10 jr nc,p10 add a,'0' jr prn p10: add a,'a'-10 prn: call pchar ret pchar: push hl push de push bc ld c,2 ld e,a call bdos pop bc pop de pop hl ret pstr: push hl push de push bc ld c,9 call bdos pop bc pop de pop hl ret ; text1: db 12 ;cls dw 0a0dh dw 0a0ah dc ' K o n v e r t i e r u n g EDAS ==> TP ' dw 0a0dh dw 0a0ah dw 0a0ah dw 0a0ah dc ' Anfangsadresse der EDAS-Quelle im TPA: ' db '$' text2: dw 0a0dh db 0ah dc ' Endadresse der EDAS-Quelle im TPA : ' db '$' text3: dw 0a0dh dw 0a0ah dc ' Endadresse der TP-Quelle im TPA : ' db '$' text4: dw 0a0dh db 0ah dc ' Sektorzahl : ' db '$' text5: dw 0a0dh dw 0a0ah dc ' Bitte TP-Quelle jetzt lieber auf Diskette speichern!' dw 0a0dh dc 'power copy ' db '$' ;--------------------------------------- ;PE: hl =Hex-Zahl HEXDEZ: XOR A LD D,A LD B,16 DH2: ADD HL,HL ADC A,a DAA LD E,A LD A,D ADC A,a DAA LD D,A RL C LD A,E DJNZ DH2 EX DE,HL ld a,32 call pchar ld a,h call phex ld a,l call phex RET ; end