.TITLE KSRDB - READ/WRITE ON KS SCOPE .IDENT /27MAY7/ ;09:35:00, JB ; .ENTRY KSRDB - READ/WRITE ON KS SCOPE ;+ ; K S R D B / K S W R B ; ; PURPOSE: READ AND WRITE 12-BIT CHARACTERS ON KS CHARACTER SCOPE ; ; INTERFACE: CALLING SEQUENCE: (FORTRAN-CALLABLE SUBROUTINE) ; CALL KSRDB(LUN,LINE,CHAR,BUFFER,COUNT) ; CALL KSWTB(LUN,LINE,CHAR,BUFFER,COUNT) ; ; INPUT: LUN(INTEGER)=LOGICAL UNIT NUMBER ; LINE(INTEGER)=RELATIVE LINE NUMBER ; CHAR(INTEGER)=ABSOLUTE CHARACTER NUMBER ; BUFFER=BUFFER ADDRESS ; COUNT(INTEGER)=BUFFER BYTE COUNT ; ; THESE SUBROUTINES USE EVENT FLAG 24. TO DETECT I/O ; COMPLETION. ; ; LANGUAGE: MACRO-11 ; ; RESTRICTIONS: THIS ROUTINE IS USABLE ONLY ON SYSTEMS WHICH ; SUPPORT A KINETIC SYSTEMS COLOR CHARACTER SCOPE ; AND AN RSX HANDLER KS.... ;- ; REVISIONS: ; 02-SEP-76 WRITTEN ; 27-MAY-77 JB UPDATED TO CONFORM TO STANDARDS ; ;MACRO CALLS: .MCALL DIR$,QIO$,WTSE$S ; KSRDB:: MOV #FTN15,Q.IOFN+DPB BR KSRW KSWTB:: MOV #FTN14,Q.IOFN+DPB KSRW: MOV @2(R5),DPB+Q.IOLU ;TRANSFER LOGICAL UNIT NUMBER MOV @4(R5),DPB+Q.IOPL+4 ;TRANSFER LINE NUMBER MOV @6(R5),DPB+Q.IOPL+6 ;AND CHARACTER NUMBER MOV 10(R5),DPB+Q.IOPL ;AND THE BUFFER ADDRESS MOV @12(R5),DPB+Q.IOPL+2 ;AND BYTE COUNT DIR$ #DPB TST $DSW ;DID DIRECTIVE PASS? BPL 30$ ;BRANCH IF SO RETURN 30$: WTSE$S #EF24 ;WAIT FOR I/O TO COMPLETE RETURN ;DPB FOR READ/WRITE DPB: QIO$ FTN14,,EF24,,IOSTAT,,<0,0,0,0,0,0> IOSTAT: 0,0 ;STATUS WORD RETURNED BY DRIVER ; ;SYMBOL DEFINITIONS EF24=24. FTN14=6000 FTN15=6400 .END