TTSUB.MAC;2/AU=TTSUB.OLD;1/-BF \ -2,2 .IDENT /V02AN/ -24 ; NAPC -- CHECK S2.HFF BFORE EXPANDING VT CHARACTERS ; ADDITIONAL CURSOR POSITIONING TYPES ; ; DD028 FIX CRT RUBOUT BUG % -346,346,/;DD028/ EXPCHR::TSTB R2 ;IS HIGH-ORDER BIT SET? -398,398,/;NAPC/ BR EXPC7 ; N - NEED CHARACTER AGAIN -404,404,/;NAPC/ BR EXPC7 ; -407,408,/;NAPC/ ; EXPAND FORM FEED AND VERTICAL TAB IF NECESSARY ; EXVT:: -412,414,/;NAPC/ EXPC7: COMB 1(SP) ;WE NEED CHARACTER AGAIN, EXIT WITH: -592,597,/;NAPC/ MOVB TTYP4-1(R3),R3 ;GET CURSOR POSITION TYPE ASL R3 ;MAKE INTO BYTE OFFSET -686,,/;NAPC/ ; ; TYPE 4 - ADDS ; CPOS4:: MOV R0,-(SP) ;SAVE R0,R1 MOV R1,-(SP) ; MOVB #'0,CP4+11 ;INITIALIZE COLUMN MSD MOV #CP4+13,R3 ;LAST CHARACTER OF COLUMN ADDRESS CALL 10$ ;CONVERT COLUMN TO ASCII MOV (SP)+,R1 ;RESTORE R0,R1 MOV (SP)+,R0 ; SWAB R2 ;GET LINE NUMBER IN LOW BYTE ADD #40,R2 ;BIAS BY 40 MOVB R2,CP4+4 ;STORE LINE NUMBER MOV #12,R2 ;LENGTH OF MOVE STRING MOV #CP4+3,R3 ;START OF MOVE STRING TST (SP)+ ;CLEAR SCREEN FIRST? CLZ ;LEAVE Z CLEAR BPL 43$ ;IF PL NO - RETURN MOV #15,R2 ;LENGTH OF ERASE/MOVE STRING MOV #CP4,R3 ;START OF ERASE/MOVE STRING 43$: RETURN ; ; TYPE 5 - ADM3 ; CPOS5:: ADD #401*40,R2 ;BIAS COLUMN AND LINE BY 40 MOVB R2,CP5+11 ;STORE COLUMN SWAB R2 ;MOVE LINE TO LOW BYTE MOVB R2,CP5+10 ;STORE LINE MOV #4,R2 ;LENGTH OF MOVE STRING MOV #CP5+6,R3 ;START OF ERASE/MOVE STRING TST (SP)+ ;CLEAR SCREEN FIRST? CLZ ;LEAVE Z CLEAR BPL 53$ ;IF PL NO - RETURN MOV #12,R2 ;LENGTH OF ERASE/MOVE STRING MOV #CP5,R3 ;START OF ERASE/MOVE STRING 53$: RETURN /