.TITLE POSITN ; ; FORTRAN-CALLABLE ROUTINE TO POSITION THE CURSOR ON A CRT TERMINTAL. ; THIS CODE IS SPECIFICALLY FOR A BEEHIVE 100 TERMINAL AND MAY HAVE ; TO BE MODIFIED FOR OTHER TERMINALS. ; ; CALLING SEQUENCE ; ; CALL POSITN(LINE,CHAR[,LUN]) ; LINE = LINE ON WHICH CURSOR IS TO BE POSITIONED (1 TO 24) ; CHAR = CHARACTER POSITION FOR CURSOR ON LINE (1 TO 80) ; LUN = LUN NUMBER (OPTIONAL INPUT - DEFAULT=5) ; ; WRITTEN SEPTEMBER 1977 R B FRENCH ; .MCALL DIR$,QIOW$ KODE: .BYTE 33,106 ;ESCAPE SEQUENCE TO POSITION CURSOR LINE: .BYTE 0 CHAR: .BYTE 0 NKODE=.-KODE ; POSITN::MOV #37,R0 ;PUT LINE NUMBER IN ESC SEQUENCE ADD @2(R5),R0 MOVB R0,LINE MOV #37,R0 ;PUT CHARACTER POSITION IN ESC SEQUENCE ADD @4(R5),R0 MOVB R0,CHAR CMPB #3,(R5) ;LUN NUMBER INPUT? BNE 10$ ;BRANCH IF NOT MOV @6(R5),QIOW+Q.IOLU ;PUT LUN NUMBER IN DPB 10$: DIR$ #QIOW ;ISSUE QIO DIRECTIVE TO POSITION THE CURSOR RTS PC ;AND RETURN ; QIOW: QIOW$ IO.WLB!TF.WAL,5,1,,,, ;QIOW DPB FOR WRITE-PASS-ALL .END MOVB @4(R5),CHAR