;FR1.ASM v1.1 7-4-86 ;Rod Clark ;Box 47205 ;Seattle WA 98146 NUL EQU 0 CR EQU 13 LF EQU 10 ESC EQU 27 BDOS EQU 5 FILBASE EQU 0400H ORG 0100H JMP START ;----- DATAPORT EQU 254 ;YOURS, INITIALIZED - see FR.DOC STATPORT EQU 255 ;----- TXRDY EQU 1 RXRDY EQU 2 SIGNON: DB CR,LF DB CR,LF DB CR,LF DB 'FILE RECEIVER 1.1',CR,LF DB 'Emulates serial printer',CR,LF ;----- DB 'For 64k Morrow MD2/MD3 --- 54k file size limit',CR,LF ;----- DB CR,LF DB CR,LF DB 'READY..',CR,LF DB CR,LF DB 'Send file from remote with PIP LST: = D:FILENAME.EXT[o] ',CR,LF DB CR,LF DB 'Press ESC when finished --- saves file as XFR on logged drive ' DB '$' FCB: DB 0 DB 'XFR ' DB 0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0 MEMTAIL DS 2 MEMBYTE DS 2 DIRIO EQU 6 INFLAG EQU 0FFH PRINTMSG: MVI C,9 CALL BDOS RET OPENFILE: MVI C,15 LXI D,FCB CALL BDOS RET NOFILE EQU 0FFH CLOSEFILE: MVI C,16 LXI D,FCB CALL BDOS RET ERASEFILE: MVI C,19 LXI D,FCB CALL BDOS RET MAKEFILE: MVI C,22 LXI D,FCB CALL BDOS RET SETDMA: MVI C,26 CALL BDOS RET WRTSEQ: MVI C,21 LXI D,FCB CALL BDOS RET ;- - - - - START: LXI D,SIGNON CALL PRINTMSG CALL OPENFILE CPI NOFILE CNZ ERASEFILE CALL MAKEFILE LXI H,FILBASE SHLD MEMBYTE TRANSMIT: IN STATPORT ANI TXRDY JZ RECEIVE MVI C,DIRIO MVI E,INFLAG CALL BDOS CPI NUL JZ RECEIVE CPI ESC JZ SAVE OUT DATAPORT MVI C,DIRIO MOV E,A CALL BDOS RECEIVE: IN STATPORT ANI RXRDY JZ TRANSMIT IN DATAPORT LHLD MEMBYTE MOV M,A INX H SHLD MEMBYTE JMP TRANSMIT SAVE: LHLD MEMBYTE SHLD MEMTAIL LXI H,FILBASE SHLD MEMBYTE SAVELOOP: LDA MEMTAIL+1 CMP H JNZ SAVEONE LDA MEMTAIL CMP L JZ EXIT SAVEONE: XCHG CALL SETDMA CALL WRTSEQ LHLD MEMBYTE LXI D,128 DAD D SHLD MEMBYTE JMP SAVELOOP EXIT: CALL CLOSEFILE MVI C,0 CALL BDOS END