; VTCUR.MAC ; ; POSITION THE CURSOR ON THE VT100 ; CALL VTCUR(X,Y) WHERE Y REPRESENTS THE DISTANCE DOWN ; .MCALL QIOW$S .TITLE VTCUR .GLOBL VTCUR VTCUR:: MOV @4(R5),R1 ; GET Y VALUE (LINE NO.) MOV #CU,R0 ADD #2,R0 ; GOT ADDRESS OF WHERE IT WILL GO CLR R2 ; SURPRESS LEADING ZEROES CALL $CBDMG ; CHANGE TO DECIMAL ASCII MOVB #73,(R0)+ ; PUT A SEMICOLON NEXT MOV @2(R5),R1 ; GET X VALUE (COLUMN NO.) CLR R2 CALL $CBDMG MOVB #110,(R0)+ ; STRING MUST END WITH CAP H SUB #CU,R0 ; GET LENGTH OF STRING QIOW$S #IO.WVB,#5,#1,,,,<#CU,R0> ; TRANSMIT STRING RETURN CU: .BYTE 33,133 .BLKB 10. ; ; ERASE THE SCREEN OF A VT100 ; CALL VTERA ; VTERA:: QIOW$S #IO.WVB,#5,#1,,,,<#ER,#4> RETURN ER: .BYTE 33,133,62,112 .END