;PROGRAMM TRANSMIT ; BOOT EQU 00H FDOS EQU BOOT+5H FCB EQU BOOT+5CH BUFFER EQU BOOT+80H TPA EQU BOOT+100H FCB1 EQU BOOT+271H ; CONOUT EQU BOOT+2H RDRIN EQU 3 PUNOUT EQU 4 PRNTSTR EQU 9 OPENF EQU 0FH SEARCHF EQU 11H SEARCHN EQU 12H READSEQ EQU 14H ; ORG TPA ; ; LXI H,STACK SPHL LXI H,FCB LXI D,FCB1 ; MVI B,33 LOOP1: MOV A,M STAX D INX H INX D DCR B JNZ LOOP1 LXI D,FCB MVI C,SEARCHF JMP SEARCH ; LOAD: MVI C,OPENF LXI D,FCB CALL FDOS MVI A,00H STA FCB+32 MVI A,'C' CALL SENDCHR MVI B,11 LXI H,FCB+1 ; LOOP6: MOV A,M CALL SENDCHR INX H DCR B JNZ LOOP6 ; LOOP7: MVI C,READSEQ LXI D,FCB CALL FDOS CPI 0 JNZ EOF MVI A,'N' CALL SENDCHR LXI H,BUFFER MVI B,128 ; LOOP8: MOV A,M CALL SNDBYTE INX H DCR B JNZ LOOP8 MVI A,'*' CALL PRNTCHR JMP LOOP7 ; EOF: CALL CRLF ;SUCHE NAECHSTE DATEI LXI H,FCB1 LXI D,FCB MVI B,33 ; LOOP2: MOV A,M STAX D INX H INX D DCR B JNZ LOOP2 LXI D,FCB MVI C,SEARCHN ; SEARCH: CALL FDOS CPI 0FFH JZ LAST ; RLC RLC RLC RLC RLC LXI H,BUFFER+1 MOV E,A MVI D,00H DAD D LXI D,FCB+1 MVI B,32 ; LOOP3: MOV A,M STAX D INX H INX D DCR B JNZ LOOP3 LXI H,FCB+1 MVI B,08H ; LOOP4: MOV A,M CPI ' ' JZ NEXT2 CALL PRNTCHR ; NEXT2: INX H DCR B JNZ LOOP4 MOV A,M CPI ' ' JZ NAMEEND MVI A,'.' CALL PRNTCHR MVI B,3 ; LOOP5: MOV A,M CPI ' ' JZ NEXT3 CALL PRNTCHR ; NEXT3: INX H DCR B JNZ LOOP5 ; NAMEEND: MVI A,' ' CALL PRNTCHR JMP LOAD ; LAST: MVI A,'E' CALL SENDCHR LXI D,ENDE CALL LINEPRT JP BOOT ; ENDE: DB 'ENDE DER UEBERTRAGUNG$' ; PRNTCHR: PUSH PSW PUSH B PUSH D PUSH H MVI C,CONOUT MOV E,A CALL FDOS POP H POP D POP B POP PSW RET ; CRLF: MVI A,0DH CALL PRNTCHR MVI A,0AH JP PRNTCHR ; LINEPRT: MVI C,PRNTSTR CALL FDOS JP CRLF ; SENDCHR: PUSH PSW PUSH B PUSH D PUSH H MVI C,PUNOUT MOV E,A PUSH D CALL FDOS MVI C,RDRIN CALL FDOS ANI 7FH POP D CMP E JZ RETURN1 CALL CRLF CALL LINEPRT JP BOOT DB 'UEBERTRAGUNGSFEHLER-ABBRUCH !!!$' ; RETURN1: POP H POP D POP B POP PSW RET ; SNDBYTE: PUSH PSW RRC RRC RRC RRC CALL SNDHALF POP PSW ; SNDHALF: ANI 0Fh ADI 'A' JMP SENDCHR ; DS 121H ; STACK: END