.TITLE INPUT SUBROUTINE .SBTTL DOCUMENTATION ; ; AUTHOR T G KELLY ; DEPARTMENT OF PATHOLOGY ; UNIVERSITY OF SOUTH ALABAMA ; ; DATE 18-JAN-78 ; ; THIS SUBROUTINE RECEIVES ONE BLOCK (256 WORDS) ; AND ECHOS EACH BYTE FOR THE CHECKSUM. ; AFTER A 256 WORD TRANSFER, THE NEXT BYTE IS ; USED AS AN ERROR FLAG. ; 0=OK,RETURN TO MAIN PROGRAM ; NON-0=NOT OK,BLOCK WILL BE REPEATED ; R0 IS NOT SAVED-ERROR-NOERROR IS RETURNED IN R0 ; ; SEE VECTOR.MAC FOR FURTHER DOCUMENTATION ; .SBTTL MACRO DEFINITIONS ; .MACRO PUSH ARG MOV ARG,-(SP) .ENDM ; .MACRO POP ARG MOV (SP)+,ARG .ENDM ; .MCALL ..V2..,.REGDEF ..V2.. .REGDEF .MCALL .EXIT ; .GLOBL INPUT,BUF,WAIT ; .SBTTL MAIN ; INPUT: MOV #3,COUNT RECEIV: MOV #BUF,R0 ;POINTER TO STORAGE BUFFER MOV #1000,NUMBER ;512. BYTES TO RECEIVE 1$: TSTB @#RCSR ;TEST RECEIVE FLAG BPL 1$ MOVB @#RBUF,(R0) ;SAVE BYTE MOVB (R0)+,@#XBUF ;ECHO BYTE DEC NUMBER ;HAVE I RECEIVED ALL POINTS? BNE 1$ 2$: JSR R5,WAIT ;WAIT FOR OK FROM OTHER END TST R0 ;ERROR? BEQ RETURN ;TRANSFER OK DEC COUNT ;RETRANSMIT 3 TIMES BEFORE FLAGGING BNE RECEIV ;ERROR AND EXITING RETURN: CLR R0 RTS R5 ;RETURN WITH TRANSFER OK COUNT: .WORD 0 NUMBER: .WORD 0 .END