Listing of file='RECV.MAC;02' on disk='vmedia/comm_pgms-sideB-sector.ccvf'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; COMPUCOLOR II FILE TRANSMISSION PROGRAM ; V1.0 12/80 ; ; WRITTEN BY TREVOR TAYLOR ; PUBLIC FCSSP EXTRN JMPVEC,CO,OSTR EXTRN FILVEC,FCS,GTBYT EXTRN SETFIL EXTRN CPYRGT ; SYSTEM EQUATES BAUD EQU 5 KBDFL EQU 81DFH ;HOLDS NUMBER OF JUMP VECTOR CRATE EQU 81E2H ;CURRENT BAUD RATE INPFL EQU 81E3H ;RS232 INPUT PORT FLAG READY EQU 81FFH ;KEYBOARD STATUS KBCHA EQU 81FEH ;KEYBOARD CHAR ; SPECIAL CONTROL CHARACTERS TAB EQU 9 LF EQU 10 FF EQU 12 CR EQU 13 ESC EQU 27 ;.............................................................. ; ; USER DEFINED PARAMETERS ; PUBLIC RATE,LINLEN,PAGLEN,FFFLAG,SKPLEN,HDRFLG RATE: DB 88H ;BAUD RATE (88H=1200) DUPLEX: DB 0 DFAULT: DB 'SRC' ;DEFAULT FILE TYPE ; ;............................................................. ; ; START OF PROGRAM RECV: DI LXI H,0 ;SAVE FCS STACK POINTER DAD SP SHLD FCSSP LXI SP,STACK ;SETUP RUNOFF STACK CALL JMPVEC ;SETUP REQUIRED JUMP VECTORS CALL FILVEC MVI A,12 ;SET KEYBOARD INPUT TO DUMP STA KBDFL MVI A,31 STA INPFL LDA RATE ;FIX BAUD RATE OUT BAUD STA CRATE XRA A STA CRFLAG LXI H,LINBUF SHLD BUFPTR EI LXI H,IDMSG ;PRINT STARTUP MSG CALL OSTR ; CALL CPYRGT ;PRINT/CHECK COPYRIGHT NOTICE FILES: LXI H,FPB ;OPEN FILE LXI D,OBUF LXI B,DFAULT MVI A,1 ;NEW FILE CALL SETFIL LOOP: LDA CRFLAG ORA A JZ ABTEST XRA A STA CRFLAG LXI H,LINBUF SHLD BUFPTR XCHG LXI H,FPB STORE: LDAX D ORA A JZ ENDLIN CALL PTBYT JC ERROR CALL CO INX D JMP STORE ENDLIN: MVI A,LF CALL PTBYT JC ERROR CALL CO MVI A,12 STA INPFL MVI A,'0' CALL TXSER LDA DUPLEX ORA A JP NO0 CALL RXSER NO0: MVI A,CR CALL TXSER LDA DUPLEX ORA A JP NOCR CALL RXSER NOCR: MVI A,31 STA INPFL ABTEST: LDA READY ;SEE IF BREAK CPI 50H ; JZ ABTEST ;HANG UNTIL ANOTHER IS STRUCK CPI 80H JNZ LOOP XRA A STA READY LDA KBCHA ;READ NEXT CHARACTER CPI LF ;SEE IF LF JZ EXIT ;EXIT IF LF CPI ESC JZ EXIT ; OR IF ESCAPE JMP LOOP EOFTST: JZ EOF ERROR: LXI H,ERRMSG ;PRINT ERROR MESSAGE CALL OSTR EXIT: LXI H,FPB CALL CLSEQO MVI A,13 STA KBDFL MVI A,12 STA INPFL MVI B,0 ;SETUP NO ERROR LHLD FCSSP ;RESTORE FCS STACK SPHL RET ;AND EXIT TO FCS EOF: JMP EXIT RXINT: MOV A,E ANI 7FH RZ CPI LF RZ LHLD BUFPTR MOV M,A INX H CPI CR JNZ OKCHR XRA A MOV M,A INX H MVI A,0FFH STA CRFLAG OKCHR: SHLD BUFPTR RET ;.............................................................. ; ; MESSAGES IDMSG: DB 29,27,11,15,6,1,CR,LF,TAB,'RECV ' DB 6,7,'V1.0 ',239 ERRMSG: DB 17,'*** HARDWARE ERROR ***',13,10,239 ; DATA AREAS BUFPTR: DS 2 LINBUF: DS 260 CRFLAG: DB 0 OBUF: DS 1024 ;INPUT BUFFER DS 300 ;STACK AREA STACK: DS 2 FCSSP: DS 2 ;FCS STACK POINTER FPB: DS 38 ;INPUT FPB END PRINT