.TITLE DR11-W (RT11) READ TEST ; ; THIS IS A TEST PROGRAM FOR THE 'READ' REQUESTS TO THE CD ; DR11-W HANDLER. ---- ; ; .MCALL .LOOKUP,.READW,.WRITW,.FETCH,.SPFUN .MCALL .EXIT,.PRINT,.HRESET ; ERRBYT = 52 ; ; SPECIAL FUNCTION DEFINITIONS: ; SFOPNR = 377 ;OPEN 'READ' SESSION SFCLSR = 376 ;CLOSE 'READ' SESSION SFDFRT = 375 ;SET NEW DEFAULT REQUEST TIMEOUT ; ; .PAGE ; START:: .FETCH #HSPACE,#CDNAME ;GET CD HANDLER BCS FERR ;CD NOT AVAILABLE CLR R3 ;CHAN. 0 .LOOKUP #AREA,R3,#CDNAME ;OPEN CHANNEL 0 BCS LKERR ;ERR. IN LOOKUP ; ; OPEN 'READ' SESSION ; MOV #SFOPNR,R5 ;SPFUN=OPEN 'READ' SESSION MOV #5,R2 ;NUMBER OF ITERATIONS MOV #1,R4 ;START WITH PTC=1 CHKSPF: .SPFUN #AREA,R3,R5,,,R4 ;OPEN 'READ' SESSION BCC 210$ ;NO ERR. IN SPFUN ; JSR PC,REQERR ;ERR. IN SPFUN 210$: INC R4 ;GET NEXT PTC SOB R2,CHKSPF ;CONTINUE ; ; PERFORM READ/WRITE REQUESTS ; CHKRW: WCOUNT = 20. MOV #WCOUNT,R2 ;SET WORD COUNT .READW #AREA,R3,#BUFF,R2,#BLK ;RECEIVE A MESSAGE OVER DR11-W BCS RDERR ;ERR. IN READ .PRINT #BUFF ;READ IS OK .HRESET .EXIT ; RDERR: .PRINT #RDMSG ;SHOW 'READ ERROR' .EXIT FERR: .PRINT #FMSG ;SHOW 'FETCH ERROR' .EXIT LKERR: .PRINT #LMSG ;SHOW 'LOOKUP ERROR' .EXIT ; ; DATA STRUCTURES ; CDNAME: .RAD50 /CD / .WORD 0,0,0,0 ; AREA: .BLKW 10 ; ; READ REQUEST DATA ; BLK: .WORD 1,1,0,0 ;PTC, BLOCK #, CD ERROR RESP. BUFF: .ASCIZ /000 00000 0000000 0/ .EVEN BB: .WORD 0,0,0,0,0 ; ; ; ERROR MESSAGES ; FMSG: .ASCIZ /NO DEVICE?/ LMSG: .ASCIZ /LOOKUP ERROR?/ RDMSG: .ASCIZ /READ ERROR?/ ; RD$OK: .ASCIZ /READ OK: HI. DR11W MESSAGE 1/ ; .EVEN .BLKW 2000. ; ; START OF CD HANDLER ; HSPACE = 20000 ; .END START