CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Table of contents 2- 5 SCOPE TYPE DETERMINATION, TABLES, SEQUENCES 2- 11 ASSEMBLY PARAMETERS 3- 1 DEFAULT AND SET UP THE ASSEMBLY PARAMETERS 3- 14 ASSEMBLED FOR RSTS/E SCOPE TYPE DETERMINATION 4- 13 ASSEMBLED TO INCLUDE "WATCH" SUPPORT W/O SCROLLING 4- 31 ASSEMBLED TO NOT INCLUDE IMMEDIATE MODE COMMANDS 5- 14 ASSEMBLED WITH HARDWARE 'SOB' INSTRUCTION 5- 36 ASSEMBLED WITH HARDWARE 'DIV' INSTRUCTION 6- 1 FIXED FORMAT PREAMBLE 7- 1 DETERMINE SCOPE TYPE 10- 1 NECESSARY SEQUENCES FOR RUBOUT AND CONTROL/U 11- 3 NECESSARY TABLES AND SEQUENCES FOR "WATCH" SUPPORT 13- 1 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 1 1 000001 RSTS = 1 ;ASSEMBLE FOR RSTS/E SCOPE TYPE DETERMINATION 2 000000 SCROLL = 0 ;ASSEMBLE TO NOT INCLUDE SCROLLING SUPPORT 3 000000 IMMEDC = 0 ;ASSEMBLE TO NOT INCLUDE IMMEDIATE MODE COMMANDS 4 000001 I$$SOB = 1 ;ASSEMBLE WITH HARDWARE SOB INSTRUCTION 5 000001 I$$DIV = 1 ;ASSEMBLE WITH HARDWARE DIVIDE INSTRUCTION CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 2 1 .TITLE CRTRUB SCOPE TYPE DETERMINATION, TABLES, SEQUENCES 2 .NLIST TTM 3 .LIST TOC,MEB,BEX 4 .ENABL REG,GBL,LC 5 .SBTTL SCOPE TYPE DETERMINATION, TABLES, SEQUENCES 6 7 ; LAST EDIT ON 02-JUN-83 BY MARK BRAMHALL 8 9 .IDENT /V39.00/ 10 11 .SBTTL ASSEMBLY PARAMETERS 12 13 ; RSTS ASSEMBLE FOR RSTS/E SCOPE TYPE DETERMINATION (D=NO) 14 ; RSX ASSEMBLE FOR RSX-11 SCOPE TYPE DETERMINATION (D=NO) 15 ; RT11 ASSEMBLE FOR RT-11 SCOPE TYPE DETERMINATION (D=NO) 16 ; VMS ASSEMBLE FOR VAX/VMS SCOPE TYPE DETERMINATION (D=NO) 17 18 ; NOTE: YOU MUST SELECT EXACTLY ONE OPERATING SYSTEM FROM THE FOUR ABOVE. 19 20 ; WATCH ASSEMBLE TO INCLUDE "WATCH" SUPPORT (D=YES) 21 ; SCROLL ASSEMBLE TO INCLUDE SCROLLING SUPPORT (D=YES) 22 ; IMMEDC ASSEMBLE TO INCLUDE IMMEDIATE MODE COMMANDS (D=YES) 23 ; I$$SOB ASSEMBLE FOR HARDWARE 'SOB' INSTRUCTION (D=NO) 24 ; I$$DIV ASSEMBLE FOR HARDWARE 'DIV' INSTRUCTION (D=NO) CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 3 DEFAULT AND SET UP THE ASSEMBLY PARAMETERS 1 .SBTTL DEFAULT AND SET UP THE ASSEMBLY PARAMETERS 2 3 .IIF NDF RSTS, RSTS=0 ;DEFAULT TO NOT RSTS/E 4 .IIF NDF RSX, RSX=0 ;DEFAULT TO NOT RSX-11 5 .IIF NDF RT11, RT11=0 ;DEFAULT TO NOT RT-11 6 .IIF NDF VMS, VMS=0 ;DEFAULT TO NOT VAX/VMS 7 8 000000 $$$$$$ = 0 9 10 .IF NE RSTS 11 12 000001 $$$$$$ = $$$$$$+1 13 14 .SBTTL ASSEMBLED FOR RSTS/E SCOPE TYPE DETERMINATION 15 16 .ENDC ;NE RSTS 17 18 .IF NE RSX 19 20 $$$$$$ = $$$$$$+1 21 22 .SBTTL ASSEMBLED FOR RSX-11 SCOPE TYPE DETERMINATION 23 24 .ENDC ;NE RSX 25 26 .IF NE RT11 27 28 $$$$$$ = $$$$$$+1 29 30 .SBTTL ASSEMBLED FOR RT-11 SCOPE TYPE DETERMINATION 31 32 .ENDC ;NE RT11 33 34 .IF NE VMS 35 36 $$$$$$ = $$$$$$+1 37 38 .SBTTL ASSEMBLED FOR VAX/VMS SCOPE TYPE DETERMINATION 39 40 .ENDC ;NE VMS 41 42 .IF NE $$$$$$-1 43 44 .ERROR ;NO OR MORE THAN ONE SCOPE TYPE DETERMINATION ROUTINE SPECIFIED 45 46 .ENDC ;NE $$$$$$-1 CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 4 ASSEMBLED FOR RSTS/E SCOPE TYPE DETERMINATION 1 .IIF NDF WATCH, WATCH=1 ;DEFAULT TO INCLUDING "WATCH" SUPPORT 2 .IIF NDF SCROLL, SCROLL=1 ;DEFAULT TO INCLUDING SCROLL SUPPORT 3 .IIF NDF IMMEDC, IMMEDC=1 ;DEFAULT TO INCLUDING IMMEDIATE MODE 4 5 .IF NE WATCH 6 7 .IF NE SCROLL 8 9 .SBTTL ASSEMBLED TO INCLUDE "WATCH" SUPPORT W/ SCROLLING 10 11 .IFF ;NE SCROLL 12 13 .SBTTL ASSEMBLED TO INCLUDE "WATCH" SUPPORT W/O SCROLLING 14 15 .ENDC ;NE SCROLL 16 17 .IFF ;NE WATCH 18 19 .SBTTL ASSEMBLED TO NOT INCLUDE "WATCH" SUPPORT 20 21 SCROLL = 0 ;TURN OFF SCROLLING IF NO "WATCH" 22 23 .ENDC ;NE WATCH 24 25 .IF NE IMMEDC 26 27 .SBTTL ASSEMBLED TO INCLUDE IMMEDIATE MODE COMMANDS 28 29 .IFF ;NE IMMEDC 30 31 .SBTTL ASSEMBLED TO NOT INCLUDE IMMEDIATE MODE COMMANDS 32 33 .ENDC ;NE IMMEDC CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 5 ASSEMBLED TO NOT INCLUDE IMMEDIATE MODE COMMANDS 1 .IIF NDF I$$SOB, I$$SOB=0 ;DEFAULT TO NO HARDWARE 'SOB' 2 3 .IF EQ I$$SOB 4 5 .MACRO SOB REG,DST 6 DEC REG 7 BNE DST 8 .ENDM SOB 9 10 .SBTTL ASSEMBLED WITHOUT HARDWARE 'SOB' INSTRUCTION 11 12 .IFF ;EQ I$$SOB 13 14 .SBTTL ASSEMBLED WITH HARDWARE 'SOB' INSTRUCTION 15 16 .ENDC ;EQ I$$SOB 17 18 .IIF NDF I$$DIV, I$$DIV=0 ;DEFAULT TO NO HARDWARE 'DIV' 19 20 .IF EQ I$$DIV 21 22 .MACRO DIVR0 AMT 23 MOV AMT,R0 24 JSR PC,DIVR0 25 .ENDM DIVR0 26 27 .SBTTL ASSEMBLED WITHOUT HARDWARE 'DIV' INSTRUCTION 28 29 .IFF ;EQ I$$DIV 30 31 .MACRO DIVR0 AMT 32 CLR R0 33 DIV AMT,R0 34 .ENDM DIVR0 35 36 .SBTTL ASSEMBLED WITH HARDWARE 'DIV' INSTRUCTION 37 38 .ENDC ;EQ I$$DIV CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 6 FIXED FORMAT PREAMBLE 1 .SBTTL FIXED FORMAT PREAMBLE 2 3 000000 .PSECT CRTRUB,RO,I,GBL,REL,OVR 4 5 000000 000403 CRTRUB: BR CRTSET ;BRANCH TO THE SET UP ROUTINE 6 7 .IIF NE .-CRTRUB-2, .ERROR ;ERASE CHARACTER INCORRECTLY LOCATED 8 000002 000170' CRTERC: .WORD ERCTBL ;ERASE CHARACTER SEQUENCE POINTERS POINTER 9 10 .IIF NE .-CRTRUB-4, .ERROR ;CURSOR UP INCORRECTLY LOCATED 11 000004 000210' CRTCUP: .WORD CUPTBL ;CURSOR UP SEQUENCE POINTERS POINTER 12 13 .IIF NE .-CRTRUB-6, .ERROR ; INCORRECTLY LOCATED 14 000006 000246' CRTERL: .WORD ERLTBL ; SEQUENCE POINTERS POINTER CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 7 DETERMINE SCOPE TYPE 1 .SBTTL DETERMINE SCOPE TYPE 2 3 ;+ 4 ; CRTSET - DETERMINE SCOPE TYPE. 5 ; 6 ;*RSTS* R4 -> FIRQB @ +6 WITH CHARACTERISTICS (UU.TRM) OF SCOPE TERMINAL 7 ;*RSX* R4 -> HORIZONTAL SIZE BYTE (@ +0) & TYPE BYTE (@ +2) OF SCOPE TERMINAL 8 ;*RT11* R4 -> TERMINAL STATUS BLOCK @ +6 (M.TWID) OF SCOPE TERMINAL 9 ;*VMS* R4 -> SENSEMODE INFORMATION BUFFER @ +2 (DEVBUFSIZ) OF SCOPE TERMINAL 10 ; CRTYPE(R5) = 0 (I.E., PRE-SET FOR DEFAULT SCOPE SUPPORT) 11 ; 12 ; JSR PC,CRTRUB 13 ; 14 ; R4 = SIZE OF "WATCH" STATIC READ/WRITE REGION (0 => NONE) 15 ; CRTYPE(R5) = 0. FOR SCOPE SUPPORT TYPE #1 (VT52) 16 ; 2. FOR SCOPE SUPPORT TYPE #2 (VT100 IN VT52 MODE) 17 ; 4. FOR SCOPE SUPPORT TYPE #3 (VT100 IN ANSI MODE) 18 ; 6. FOR SCOPE SUPPORT TYPE #4 (VT05) 19 ; 8. FOR SCOPE SUPPORT TYPE #5 (VT102) 20 ; 10. FOR SCOPE SUPPORT TYPE #6 (VK100) 21 ; VTSIZE+RWSIZE(R5) = VERTICAL SIZE IF "WATCH" SUPPORT (10.-127.) 22 ; HTSIZE+RWSIZE(R5) = HORIZONTAL SIZE IF "WATCH" SUPPORT (10.-254.&EVEN) 23 ; SCROLN+RWSIZE(R5) = 0 (NO SCROLLING INITIALLY) 24 ; "ET$CRT" SET IN "ETYPE(R5)" IF SCOPE SUPPORTED FOR RUBOUT & CONTROL/U 25 ; "ET$IAS" SET IN "ETYPE(R5)" IF SCOPE SUPPORTED FOR "WATCH" 26 ;- 27 28 000012 CRTMAX == 10. ;MAXIMUM LEGAL SCOPE TYPE IS 10. 29 30 .MACRO CRTTBL LIST ;MACRO TO BUILD CRTYPE POINTER TABLES 31 $$$$$$ = . 32 .IRP ENTRY, 33 .NLIST MEB 34 .WORD ENTRY 35 .LIST MEB 36 .ENDM ;ENTRY, 37 .IIF NE .-$$$$$$-CRTMAX-2, .ERROR ;INCORRECT NUMBER OF TABLE ENTRIES 38 .ENDM CRTTBL 39 40 000010 010046 CRTSET: MOV R0,-(SP) ;SAVE R0 41 000012 012700 000012 MOV #CRTMAX,R0 ;PRESET SCOPE TYPE TO MAXIMUM 42 43 .IF NE RSTS 44 45 000016 105314 DECB (R4) ;FORM THE TRUE HORIZONTAL SIZE 46 000020 121427 000124 CMPB (R4),#84. ;IS SCOPE A VK100 (WIDTH = 84.)? 47 000024 001413 BEQ 60$ ;YES 48 000026 121427 000110 CMPB (R4),#72. ;IS SCOPE A VT05 (WIDTH = 72.)? 49 000032 001406 BEQ 40$ ;YES 50 000034 105264 000004 INCB 12-6(R4) ;REALLY A VT100 ("XON")? 51 000040 001402 BEQ 30$ ;YES, USE IT IN ANSI MODE 52 .IIF NE .-10$, .ERROR ;ELSE DEFAULT TO VT52... 53 54 .ENDC ;NE RSTS CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 8 DETERMINE SCOPE TYPE 1 .IF NE RSX 2 3 CMPB 2(R4),#T.V102 ;IS SCOPE A VT102? 4 BEQ 50$ ;YES 5 CMPB 2(R4),#T.VT05 ;IS SCOPE A VT05? 6 BEQ 40$ ;YES 7 CMPB 2(R4),#T.V100 ;IS SCOPE A VT100? 8 BEQ 30$ ;YES, USE IT IN ANSI MODE 9 CMPB (R4),#72. ;IS SCOPE A VT05 (WIDTH = 72.)? 10 BEQ 40$ ;YES 11 CMPB 2(R4),#T.VT52 ;IS SCOPE A VT52? 12 BNE 30$ ;NO, DEFAULT TO VT100 IN ANSI MODE... 13 .IIF NE .-10$, .ERROR ;YES 14 15 .ENDC ;NE RSX 16 17 .IF NE RT11 18 19 CMPB (R4),#72. ;IS SCOPE A VT05 (WIDTH = 72.)? 20 BEQ 40$ ;YES 21 BIT #TANSI$,0-6(R4) ;REALLY A VT100 ("ANSI")? 22 BNE 30$ ;YES, USE IT IN ANSI MODE 23 .IIF NE .-10$, .ERROR ;ELSE DEFAULT TO VT52... 24 25 .ENDC ;NE RT11 26 27 .IF NE VMS 28 29 ; 0-2(R4) [BYTE] = DEVCLASS 30 ; 1-2(R4) [BYTE] = DEVTYPE 31 ; 2-2(R4) [WORD] = DEVBUFSIZ (WIDTH) 32 ; 4-2(R4) [LONG] = DEVDEPEND 33 ; 10-2(R4) [LONG] = DEVDEPEND2 34 35 CMPB 1-2(R4),#T$VT05 ;IS SCOPE A VT05 (T$VT05 = TT$_VT05)? 36 BEQ 40$ ;YES 37 BIT <10+2>-2(R4),#T$EDIT ;'EDIT' FUNCTIONS? (T$EDIT = TT2$M_EDIT)? 38 BNE 50$ ;YES, CALL IT A VT102 39 BIT <10+2>-2(R4),#T$DEC ;A 'DEC CRT' (T$DEC = TT2$M_DECCRT)? 40 BNE 30$ ;YES, CALL IT A VT100 IN ANSI MODE 41 BIT <10+2>-2(R4),#T$ANSI ;AN 'ANSI CRT' (T$ANSI = TT2$M_ANSICRT)? 42 BNE 60$ ;YES, CALL IT A VK100 43 .IIF NE .-10$, .ERROR ;ELSE DEFAULT TO VT52... 44 45 .ENDC ;NE VMS CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 9 DETERMINE SCOPE TYPE 1 000042 005740 10$: TST -(R0) ;CHANGE SCOPE TYPE TO 0. (VT52) 2 000044 005740 20$: TST -(R0) ;CHANGE SCOPE TYPE TO 2. (VT100 IN VT52 MODE) 3 000046 005740 30$: TST -(R0) ;CHANGE SCOPE TYPE TO 4. (VT100 IN ANSI MODE) 4 000050 005740 40$: TST -(R0) ;CHANGE SCOPE TYPE TO 6. (VT05) 5 000052 005740 50$: TST -(R0) ;CHANGE SCOPE TYPE TO 8. (VT102) 6 000054 60$: ;LEAVE SCOPE TYPE AS 10. (VK100) 7 .IIF NE 60$-10$-CRTMAX, .ERROR ;INCORRECT SCOPE TYPE FORMATION 8 000054 010065 000000G MOV R0,CRTYPE(R5) ;SET THE SCOPE TYPE 9 000060 052765 000000G 000000G BIS #ET$CRT,ETYPE(R5) ; AND ENABLE SCOPE RUBOUT SUPPORT 10 11 .IF NE WATCH 12 13 000066 016065 000140' 000000C MOV 90$(R0),VTSIZE+RWSIZE(R5) ;SAVE VERTICAL SIZE FOR "WATCH" 14 000074 016065 000154' 000000C MOV 100$(R0),HTSIZE+RWSIZE(R5) ;SAVE HORIZONTAL SIZE FOR "WATCH" 15 000102 001007 BNE 80$ ;THE HORIZONTAL SIZE IS EXPLICIT 16 000104 121427 000204 CMPB (R4),#132. ;IS CURRENT SIZE FROM 132 COLUMN MODE? 17 000110 001402 BEQ 70$ ;YES, GO SET 132 AS THE CORRECT SIZE 18 000112 112714 000120 MOVB #80.,(R4) ;NO, JAM ALL OTHERS TO BE SIMPLY 80 COLUMNS 19 000116 111465 000000C 70$: MOVB (R4),HTSIZE+RWSIZE(R5) ;SET THE CORRECT HORIZONTAL SIZE 20 000122 80$: ;CONTINUE 21 22 .IF NE SCROLL 23 24 CLR SCROLN+RWSIZE(R5) ;SET NOT SCROLLING INITIALLY 25 26 .ENDC ;NE SCROLL 27 28 000122 052765 000000G 000000G BIS #ET$IAS,ETYPE(R5) ;ENABLE "WATCH" SUPPORT 29 000130 012704 000000G MOV #SRWSIZ,R4 ; AND SET SIZE OF STATIC READ/WRITE REGION 30 31 .IFF ;NE WATCH 32 33 CLR R4 ;NO STATIC READ/WRITE REGION SINCE NO "WATCH" 34 35 .IFTF ;NE WATCH 36 37 000134 012600 MOV (SP)+,R0 ;RESTORE R0 38 000136 000207 RTS PC ; AND EXIT 39 40 .IFT ;NE WATCH 41 42 000140 90$: CRTTBL <24.,24.,24.,20.,24.,24.> ;TABLE OF VERTICAL SIZES 43 44 000154 100$: CRTTBL <80.,80., 0 ,72., 0 ,80.> ;TABLE OF HORIZONTAL SIZES 45 46 .ENDC ;NE WATCH CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 10 NECESSARY SEQUENCES FOR RUBOUT AND CONTROL/U 1 .SBTTL NECESSARY SEQUENCES FOR RUBOUT AND CONTROL/U 2 3 000170 ERCTBL: CRTTBL <10$,10$,10$,10$,10$,10$> ;ERASE CHARACTER SEQUENCE POINTERS 4 5 000204 003 10$: .BYTE 30$-20$ ;ALL TYPES => 6 000205 010 20$: .BYTE 010 ; 7 000206 040 .BYTE 040 ; 8 000207 010 .BYTE 010 ; 9 000210 30$: .EVEN 10 11 000210 CUPTBL: CRTTBL <10$,10$,40$,70$,40$,40$> ;CURSOR UP SEQUENCE POINTERS 12 13 000224 002 10$: .BYTE 30$-20$ ;VT52 & VT100(VT52) => 14 000225 033 101 20$: .BYTE 033,'A ; 15 000227 30$: .EVEN 16 17 000230 007 40$: .BYTE 60$-50$ ;VT100(ANSI), VT102, & VK100 => 18 000231 033 134 50$: .BYTE 033,'\ ; ENSURE END OF DCS STRING (IF ANY) 19 000233 033 074 .BYTE 033,'< ; ENSURE ANSI MODE 20 000235 033 133 101 .BYTE 033,'[,'A ; <[> 21 000240 60$: .EVEN 22 23 000240 005 70$: .BYTE 90$-80$ ;VT05 => 24 000241 232 80$: .BYTE 232 ; 25 000242 000 000 000 .BYTE 000,000,000,000 ; 000245 000 26 000246 90$: .EVEN 27 28 000246 ERLTBL: CRTTBL <10$,10$,40$,70$,40$,40$> ; SEQUENCE POINTERS 29 30 000262 004 10$: .BYTE 30$-20$ ;VT52 & VT100(VT52) => 31 000263 015 20$: .BYTE 015 ; ENSURE LEFT MARGIN 32 000264 033 113 .BYTE 033,'K ; 33 000266 015 .BYTE 015 ; ENSURE LEFT MARGIN 34 000267 30$: .EVEN 35 36 000270 011 40$: .BYTE 60$-50$ ;VT100(ANSI), VT102, & VK100 => 37 000271 015 50$: .BYTE 015 ; ENSURE LEFT MARGIN 38 000272 033 134 .BYTE 033,'\ ; ENSURE END OF DCS STRING (IF ANY) 39 000274 033 074 .BYTE 033,'< ; ENSURE ANSI MODE 40 000276 033 133 113 .BYTE 033,'[,'K ; <[> 41 000301 015 .BYTE 015 ; ENSURE LEFT MARGIN 42 000302 60$: .EVEN 43 44 000302 003 70$: .BYTE 90$-80$ ;VT05 => 45 000303 015 80$: .BYTE 015 ; ENSURE LEFT MARGIN 46 000304 236 .BYTE 236 ; 47 000305 015 .BYTE 015 ; ENSURE LEFT MARGIN 48 000306 90$: .EVEN CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 11 NECESSARY SEQUENCES FOR RUBOUT AND CONTROL/U 1 .IF NE WATCH 2 3 .SBTTL NECESSARY TABLES AND SEQUENCES FOR "WATCH" SUPPORT 4 5 000000 .PSECT SCRSEQ,RO,D,GBL,REL,CON 6 7 ; POSTBL - TABLE OF NUMBER OF CHARACTERS NEEDED TO POSITION CURSOR. 8 ; 9 ; THIS TABLE IS USED FOR A CURSOR MOVEMENT OPTIMIZATION: 10 ; IF THE NUMBER OF PLACES TO MOVE THE CURSOR RIGHT (ON THE 11 ; SAME LINE) IS LESS THAN THIS TABLE'S ENTRY, THEN THE 12 ; PRECEEDING TEXT CHARACTERS ARE OUTPUT INSTEAD. THIS ENSURES 13 ; THAT WE ARE ALWAYS SENDING THE MINIMAL NUMBER OF CHARACTERS 14 ; TO THE SCREEN. 15 16 000000 000004 POSTBL::.WORD 1+1+1+1 ; 17 000002 000004 .WORD 1+1+1+1 ; 18 000004 000004 .WORD 1+1+1+1 ;<[><# MOVES> 19 000006 000007 .WORD 1+1+4+1 ;<4 FILL'S> 20 000010 000004 .WORD 1+1+1+1 ;<[><# MOVES> 21 000012 000004 .WORD 1+1+1+1 ;<[><# MOVES> 22 .IIF NE .-POSTBL-CRTMAX-2, .ERROR ;INCORRECT NUMBER OF TABLE ENTRIES 23 24 ; FIXSEQ - CLEAN UP MODES. 25 ; NULL => NO FIXING UP IS NEEDED 26 27 .ENABL LSB 28 29 000014 FIXSEQ::CRTTBL <10$,10$,20$,NULL,20$,30$> ;CLEAN UP MODES (IF ANY) 30 31 000030 033 133 077 10$: .BYTE 033,'[,'?,'2,'L+40 ;ENSURE VT52 MODE 000033 062 154 32 000035 033 134 .BYTE 033,'\ ;EXIT HOLD SCREEN MODE (IF ON) 33 000037 010 010 010 .BYTE 010,010,010,040,040,040 ;CLEAN UP THE "?2L" JUNK... 000042 040 040 040 34 000045 033 107 V52GOF: .BYTE 033,'G ;EXIT GRAPHICS MODE (IF ON) 35 000047 200 .BYTE 200 36 37 000050 033 134 20$: .BYTE 033,'\ ;ENSURE END OF DCS STRING (IF ANY) 38 000052 033 074 .BYTE 033,'< ;ENSURE ANSI MODE 39 000054 033 067 .BYTE 033,'7 ;SAVE CURSOR POSITION 40 000056 033 133 077 .BYTE 033,'[,'?,'6 ;ENSURE ORIGIN MODE 000061 066 41 000062 073 067 154 .BYTE ';,'7,'L+40 ; AND AUTO WRAP ARE OFF 42 000065 033 070 .BYTE 033,'8 ;RESTORE CURSOR POSITION 43 000067 033 134 30$: .BYTE 033,'\ ;ENSURE END OF DCS STRING (IF ANY) 44 000071 033 074 .BYTE 033,'< ;ENSURE ANSI MODE 45 000073 033 133 064 .BYTE 033,'[,'4,'L+40 ;ENSURE REPLACE (NOT INSERT) MODE 000076 154 46 000077 033 133 155 .BYTE 033,'[,'M+40 ;TURN OFF ALL CHARACTER ATTRIBUTES 47 000102 033 051 060 .BYTE 033,'),'0 ;SET GRAPHICS MODE TO GRAPHICS CHARACTER SET 48 000105 017 ANSGOF: .BYTE 017 ;EXIT GRAPHICS MODE (IF ON) 49 000106 200 .BYTE 200 50 51 .EVEN 52 53 .DSABL LSB CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 11-1 NECESSARY TABLES AND SEQUENCES FOR "WATCH" SUPPORT 54 55 ; HOMSEQ - GO TO HOME. 56 57 000110 HOMSEQ::CRTTBL <10$,10$,20$,30$,20$,20$> ;GO TO HOME 58 59 000124 033 110 10$: .BYTE 033,'H ;GO TO HOME 60 000126 200 .BYTE 200 61 62 000127 033 133 110 20$: .BYTE 033,'[,'H ;GO TO HOME 63 000132 200 .BYTE 200 64 65 000133 035 30$: .BYTE 035 ;GO TO HOME 66 000134 000 000 000 FILL4: .BYTE 000,000,000,000 ;4 FILL'S 000137 000 67 000140 200 NULL: .BYTE 200 ;NULL SEQUENCE 68 69 .EVEN 70 71 ; EOLSEQ - ERASE FROM CURSOR TO END OF LINE. 72 73 000142 EOLSEQ::CRTTBL <10$,10$,20$,40$,20$,30$> ;ERASE FROM CURSOR TO END OF LINE 74 75 000156 033 113 10$: .BYTE 033,'K ;ERASE FROM CURSOR TO END OF LINE 76 000160 200 .BYTE 200 77 78 000161 033 043 065 20$: .BYTE 033,'#,'5 ;ENSURE A NORMAL HEIGHT/WIDTH LINE 79 000164 033 133 113 30$: .BYTE 033,'[,'K ;ERASE FROM CURSOR TO END OF LINE 80 000167 200 .BYTE 200 81 82 000170 036 40$: .BYTE 036 ;ERASE FROM CURSOR TO END OF LINE 83 000171 200 .BYTE 200 84 85 .EVEN 86 87 ; EOSSEQ - ERASE FROM CURSOR TO END OF SCREEN. 88 ; NULL => USE MULTIPLE EOLSEQ'S (DUE TO VARIABLE SCROLLING REGION) 89 90 000172 EOSSEQ::CRTTBL <10$,10$,NULL,30$,NULL,20$> ;ERASE FROM CURSOR TO END OF SCREEN 91 92 000206 033 112 10$: .BYTE 033,'J ;ERASE FROM CURSOR TO END OF SCREEN 93 000210 200 .BYTE 200 94 95 000211 033 133 112 20$: .BYTE 033,'[,'J ;ERASE FROM CURSOR TO END OF SCREEN 96 000214 200 .BYTE 200 97 98 000215 037 30$: .BYTE 037 ;ERASE FROM CURSOR TO END OF SCREEN 99 000216 000 000 000 .BYTE 000,000,000,000 ;4 FILL'S 000221 000 100 000222 200 .BYTE 200 101 102 .EVEN 103 104 ; SCUSEQ - SCROLL SCREEN UP (WITH CURSOR AT LOWER LEFT). 105 106 000224 SCUSEQ::CRTTBL <10$,10$,10$,VT05LF,10$,10$> ;SCROLL SCREEN UP 107 108 000240 012 10$: .BYTE 012 ;SCROLL SCREEN UP CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 11-2 NECESSARY TABLES AND SEQUENCES FOR "WATCH" SUPPORT 109 000241 200 .BYTE 200 110 111 000242 012 VT05LF: .BYTE 012 ;SCROLL SCREEN UP 112 000243 000 000 000 .BYTE 000,000,000,000 ;4 FILL'S 000246 000 113 000247 200 .BYTE 200 114 115 .EVEN 116 117 ; SCDSEQ - SCROLL SCREEN DOWN (WITH CURSOR AT UPPER LEFT). 118 ; NULL => FEATURE IS NOT AVAILABLE 119 120 000250 SCDSEQ::CRTTBL <10$,10$,20$,NULL,20$,20$> ;SCROLL SCREEN DOWN 121 122 000264 033 111 10$: .BYTE 033,'I ;SCROLL SCREEN DOWN 123 000266 200 .BYTE 200 124 125 000267 033 115 20$: .BYTE 033,'M ;SCROLL SCREEN DOWN 126 000271 200 .BYTE 200 127 128 .EVEN 129 130 ; GONSEQ - TURN ON GRAPHICS MODE. 131 ; NULL => FEATURE IS NOT AVAILABLE 132 133 000272 GONSEQ::CRTTBL <10$,10$,20$,NULL,20$,20$> ;TURN ON GRAPHICS MODE 134 135 000306 033 106 10$: .BYTE 033,'F ;TURN ON GRAPHICS MODE 136 000310 200 .BYTE 200 137 138 000311 016 20$: .BYTE 016 ;TURN ON GRAPHICS MODE 139 000312 200 .BYTE 200 140 141 .EVEN 142 143 ; GOFSEQ - TURN OFF GRAPHICS MODE. 144 ; NULL => FEATURE IS NOT AVAILABLE 145 146 000314 GOFSEQ::CRTTBL ;GRAPHICS MODE OFF 147 148 ; MONSEQ - TURN ON MARK'D REGION MODE. 149 ; NULL => FEATURE IS NOT AVAILABLE 150 151 000330 MONSEQ::CRTTBL ;TURN ON MARK'D REGION MODE 152 153 000344 033 133 067 10$: .BYTE 033,'[,'7,'M+40 ;SET REVERSE VIDEO ATTRIBUTE 000347 155 154 000350 200 .BYTE 200 155 156 .EVEN 157 158 ; MOFSEQ - TURN OFF MARK'D REGION MODE. 159 ; NULL => FEATURE IS NOT AVAILABLE 160 161 000352 MOFSEQ::CRTTBL ;TURN OFF MARK'D REGION MODE 162 163 000366 033 133 155 10$: .BYTE 033,'[,'M+40 ;CLEAR ALL ATTRIBUTES CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 11-3 NECESSARY TABLES AND SEQUENCES FOR "WATCH" SUPPORT 164 000371 200 .BYTE 200 165 166 .EVEN 167 168 ; GRPTBL - TABLE OF GRAPHICS MODE CHARACTERS. 169 ; 170 ; EACH TABLE CONTAINS 15. BYTES CORRESPONDING TO THE GRAPHICS 171 ; MODE CHARACTERS FOR: 172 ; 173 ; 1) A LINE WHICH OVERFLOWS THE SCREEN'S WIDTH 174 ; 2) CURSOR POSITIONED ON IMMEDIATELY AFTER 175 ; ALSO, "SEE ALL" MODE SYMBOL FOR 176 ; 3) "SEE ALL" MODE SYMBOL FOR CONTROL CHARACTER FLAG 177 ; 4) "SEE ALL" MODE SYMBOL FOR 178 ; 5) AT END OF BUFFER ENDING WITHOUT 179 ; 6) AT END OF BUFFER ENDING WITH 180 ; ALSO, "SEE ALL" MODE SYMBOL FOR 181 ; 7) "SEE ALL" MODE SYMBOL FOR 182 ; 8) "SEE ALL" MODE SYMBOL FOR NULL SPACING 183 ; 9) "SEE ALL" MODE SYMBOL FOR 184 ; 10) "SEE ALL" MODE SYMBOL FOR OVERPRINT 185 ; 11) "SEE ALL" MODE SYMBOL FOR HEX PAIR START 186 ; 12) "SEE ALL" MODE SYMBOL FOR COMPOSE SEQUENCE START 187 ; 13) "SEE ALL" MODE SYMBOL FOR HEX PAIR END 188 ; 14) "SEE ALL" MODE SYMBOL FOR COMPOSE SEQUENCE END 189 ; 15) "SEE ALL" MODE SYMBOL FOR 190 191 000372 GRPTBL::CRTTBL <10$,20$,20$,30$,20$,20$> ;TABLE OF GRAPHICS CHARACTERS 192 193 000406 150 10$: .BYTE 'H+40 ;RIGHT ARROW 194 000407 153 .BYTE 'K+40 ;DOWN ARROW 195 000410 147 .BYTE 'G+40 ;PLUS OR MINUS 196 000411 152 .BYTE 'J+40 ;DIVIDED BY 197 000412 176 .BYTE '^+40 ;PARAGRAPH 198 000413 141 .BYTE 'A+40 ;SOLID RECTANGLE 199 000414 146 .BYTE 'F+40 ;DEGREES 200 000415 151 .BYTE 'I+40 ;ELIPSIS 201 000416 140 .BYTE '@+40 ;"CD" 202 000417 144 .BYTE 'D+40 ;"5/" 203 000420 133 .BYTE '[ ;NO SPECIAL GRAPHIC... 204 000421 074 .BYTE '< ;NO SPECIAL GRAPHIC... 205 000422 135 .BYTE '] ;NO SPECIAL GRAPHIC... 206 000423 076 .BYTE '> ;NO SPECIAL GRAPHIC... 207 000424 143 .BYTE 'C+40 ;"3/" 208 209 000425 150 20$: .BYTE 'H+40 ;"NL" 210 000426 145 .BYTE 'E+40 ;"LF" 211 000427 147 .BYTE 'G+40 ;PLUS OR MINUS 212 000430 151 .BYTE 'I+40 ;"VT" 213 000431 140 .BYTE '@+40 ;DIAMOND 214 000432 143 .BYTE 'C+40 ;"FF" 215 000433 142 .BYTE 'B+40 ;"HT" 216 000434 176 .BYTE '^+40 ;CENTERED DOT 217 000435 144 .BYTE 'D+40 ;"CR" 218 000436 174 .BYTE '\+40 ;NOT EQUALS 219 000437 155 .BYTE 'M+40 ;LOWER LEFT CORNER 220 000440 171 .BYTE 'Y+40 ;LESS THAN OR EQUAL TO CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 11-4 NECESSARY TABLES AND SEQUENCES FOR "WATCH" SUPPORT 221 000441 152 .BYTE 'J+40 ;LOWER RIGHT CORNER 222 000442 172 .BYTE 'Z+40 ;GREATER THAN OR EQUAL TO 223 000443 173 .BYTE '[+40 ;PI 224 225 000444 053 30$: .BYTE '+ ;+ 226 000445 047 .BYTE '' ;' 227 000446 136 .BYTE '^ ;NO GRAPHICS... 228 000447 040 .BYTE 040 ;NO GRAPHICS... 229 000450 045 .BYTE '% ;% 230 000451 100 .BYTE '@ ;@ 231 000452 040 .BYTE 040 ;NO GRAPHICS... 232 000453 040 .BYTE 040 ;NO GRAPHICS... 233 000454 040 .BYTE 040 ;NO GRAPHICS... 234 000455 040 .BYTE 040 ;NO GRAPHICS... 235 000456 133 .BYTE '[ ;NO GRAPHICS... 236 000457 074 .BYTE '< ;NO GRAPHICS... 237 000460 135 .BYTE '] ;NO GRAPHICS... 238 000461 076 .BYTE '> ;NO GRAPHICS... 239 000462 044 .BYTE '$ ;NO GRAPHICS... 240 241 .EVEN CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 12 NECESSARY TABLES AND SEQUENCES FOR "WATCH" SUPPORT 1 .IF NE SCROLL 2 3 .SBTTL NECESSARY SEQUENCES FOR SCROLLING SUPPORT 4 5 ; CONSEQ - TURN ON CURSOR CHARACTER ATTRIBUTES. 6 ; NULL => FEATURE IS NOT AVAILABLE 7 8 CONSEQ::CRTTBL ;CURSOR CHARACTER ATTRIBUTES ON 9 10 10$: .BYTE 033,'[,'1 ;SET BOLD 11 .BYTE ';,'7,'M+40 ; AND REVERSE VIDEO ATTRIBUTES 12 .BYTE 200 13 14 .EVEN 15 16 ; COFSEQ - TURN OFF CURSOR CHARACTER ATTRIBUTES. 17 ; NULL => FEATURE IS NOT AVAILABLE 18 19 COFSEQ::CRTTBL ;CURSOR CHARACTER ATTRIBUTES OFF 20 21 10$: .BYTE 033,'[,'M+40 ;CLEAR ALL ATTRIBUTES 22 .BYTE 017 ;TURN OFF GRAPHICS MODE 23 .BYTE 200 24 25 .EVEN 26 27 ; SAVCUR - SAVE CURSOR POSITION AND ATTRIBUTES. 28 ; NULL => FEATURE IS NOT AVAILABLE 29 30 SAVCUR::CRTTBL ;SAVE CURSOR POSITION/ATTRIBUTES 31 32 10$: .BYTE 033,'7 ;SAVE CURSOR POSITION AND ATTRIBUTES 33 .BYTE 200 34 35 .EVEN 36 37 ; RESCUR - RESTORE CURSOR POSITION AND ATTRIBUTES. 38 ; NULL => FEATURE IS NOT AVAILABLE 39 40 RESCUR::CRTTBL ;RESTORE POSITION/ATTRIBUTES 41 42 10$: .BYTE 033,'8 ;RESTORE CURSOR POSITION AND ATTRIBUTES 43 .BYTE 200 44 45 .EVEN 46 47 .ENDC ;NE SCROLL CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 13 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 .SBTTL NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 2 3 000000 .PSECT SCRSUB,RO,I,GBL,REL,CON 4 5 ;+ 6 ; NWIDTH - A NEW HORIZONTAL SIZE (WIDTH) WAS SET. 7 ; 8 ; R3 = OLD WIDTH 9 ; HTSIZE+RWSIZE(R5) = NEW WIDTH 10 ; 11 ; JSR PC,NWIDTH 12 ; 13 ; R0 = UNDEFINED 14 ; R2 = UNDEFINED 15 ; R3 = UNDEFINED 16 ;- 17 18 000000 NWIDTH:: ;A NEW WIDTH WAS SET 19 20 .IF NE RSTS 21 000000 004767 000000G JSR PC,SAVFQB ;SAVE AND CLEAR THE FIRQB 22 000004 112724 000000G MOVB #UU.TRM,(R4)+ ;SET "SET TERMINAL" FUNCTION 23 000010 012724 MOV (PC)+,(R4)+ ; AND OUR KB: TERMINAL 24 000012 000 377 .BYTE 0,-1 25 000014 116514 000000C MOVB HTSIZE+RWSIZE(R5),(R4) ;SET THE NEW SCOPE WIDTH 26 000020 105214 INCB (R4) ; PLUS 1 27 000022 000000G .UUO ;NOW GO DO IT 28 000024 004736 JSR PC,@(SP)+ ; THEN RESTORE THE FIRQB 29 .ENDC ;NE RSTS 30 31 .IF NE RSX 32 ;ANYTHING TO DO FOR RSX??? 33 .ENDC ;NE RSX 34 35 .IF NE RT11 36 ;NOTHING TO DO FOR RT-11... 37 .ENDC ;NE RT11 38 39 .IF NE VMS 40 EMT $WIDTH ;LET NATIVE MODE KNOW THE NEW WIDTH 41 .ENDC ;NE VMS CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 14 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 000026 004767 000026 JSR PC,20$ ;GET SEQUENCE POINTER FOR OLD WIDTH 2 000032 010346 MOV R3,-(SP) ; AND SAVE IT 3 000034 016503 000000C MOV HTSIZE+RWSIZE(R5),R3 ;GET THE NEW WIDTH 4 000040 004767 000014 JSR PC,20$ ;GET NEW WIDTH'S SEQUENCE POINTER 5 000044 020326 CMP R3,(SP)+ ;ARE THE SEQUENCES THE SAME? 6 000046 001413 BEQ 30$ ;YES, NO NEED TO EMIT THE SEQUENCE 7 000050 004767 000000G JSR PC,DOTYPE ;NO, GO EMIT SEQUENCE TO CHANGE THE WIDTH 8 9 .IF NE SCROLL 10 11 TST SCROLN+RWSIZE(R5) ;IS SCROLLING ENABLED? 12 BEQ 10$ ;NOPE 13 JSR PC,SCREOS ;YEP, POSITION TO BOTTOM OF SCREEN 14 10$: ;CONTINUE 15 16 .ENDC ;NE SCROLL 17 18 000054 000167 000000G JMP TYPEBC ;FORCE OUT ANY PARTIAL BUFFER & EXIT 19 20 000060 020327 000121 20$: CMP R3,#80.+1 ;IS WIDTH 81 COLUMNS OR GREATER? 21 000064 012703 000100' MOV #40$,R3 ;SET SEQUENCE POINTER FOR 80 COLUMN MODE 22 000070 103402 BCS 30$ ;GOOD GUESS? [BCS = BLO] 23 000072 012703 000114' MOV #50$,R3 ;SET SEQUENCE POINTER FOR 132 COLUMN MODE 24 000076 000207 30$: RTS PC ;EXIT 25 26 000100 40$: CRTTBL ;80 COLUMN MODE 27 28 000114 50$: CRTTBL ;132 COLUMN MODE 29 30 000130 033 133 077 60$: .BYTE 033, '[, '?, '3, 'L+40 ;CLEAR 132 COLUMN MODE 000133 063 154 31 000135 200 .BYTE 200 32 33 000136 033 133 077 70$: .BYTE 033, '[, '?, '3, 'H+40 ;SET 132 COLUMN MODE 000141 063 150 34 000143 200 .BYTE 200 35 36 .EVEN CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 15 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 ;+ 2 ; USRSET - SET A USER CONTROLLED PARAMETER. 3 ; 4 ; R0 = USER PARAMETER NUMBER (256.<=X<=32767.) 5 ; R4 = NEW USER PARAMETER VALUE 6 ; 7 ; JSR PC,USRSET 8 ;- 9 10 000144 USRSET:: ;SET A USER CONTROLLED PARAMETER 11 000144 000207 RTS PC ;EXIT 12 13 ;+ 14 ; USRPRM - READ A USER CONTROLLED PARAMETER. 15 ; 16 ; R0 = 0 17 ; R4 = USER PARAMETER NUMBER (256.<=X<=32767.) 18 ; 19 ; JSR PC,USRPRM 20 ; 21 ; R0 = USER PARAMETER VALUE 22 ;- 23 24 000146 USRPRM:: ;READ A USER CONTROLLED PARAMETER 25 000146 000207 RTS PC ;EXIT CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 16 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 ;+ 2 ; DIGITS - OUTPUT ASCII DIGITS. 3 ; 4 ; R1 = NUMBER TO OUTPUT, 0 BASED 5 ; 6 ; JSR PC,DIGITS 7 ; 8 ; R0 = UNDEFINED 9 ; R1 = UNDEFINED 10 ;- 11 12 000150 005201 DIGITS: INC R1 ;ANSI WANTS NUMBER "1" BASED 13 000152 DIVR0 #100. ;DIVIDE FOR HUNDREDS 000152 005000 CLR R0 000154 071027 000144 DIV #100.,R0 14 000160 010046 MOV R0,-(SP) ;SAVE HUNDREDS 15 000162 001402 BEQ 10$ ;NO HUNDREDS, SO SKIP THEM 16 000164 004767 000020 JSR PC,30$ ;HUNDREDS, GO OUTPUT IT 17 000170 10$: DIVR0 #10. ;DIVIDE FOR TENS 000170 005000 CLR R0 000172 071027 000012 DIV #10.,R0 18 000176 050026 BIS R0,(SP)+ ;DO TENS AND/OR HUNDREDS EXIST? 19 000200 001402 BEQ 20$ ;NOPE 20 000202 004767 000002 JSR PC,30$ ;YEP, GO OUTPUT THE TENS 21 000206 010100 20$: MOV R1,R0 ;SET UNITS 22 000210 062700 000060 30$: ADD #'0,R0 ;MAKE INTO AN ASCII DIGIT 23 000214 000167 000000G JMP TYPEBF ;OUTPUT CHARACTER, THEN EXIT CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 17 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 ;+ 2 ; DIRECT - DO DIRECT CURSOR ADDRESSING. 3 ; 4 ; R0 = DESIRED LINE NUMBER (ROW), 0 BASED 5 ; R2 = DESIRED COLUMN NUMBER, 0 BASED 6 ; PRELIN+RWSIZE(R5) = CURRENT CURSOR LINE NUMBER (ROW), 0 BASED 7 ; PRECOL+RWSIZE(R5) = CURRENT CURSOR COLUMN NUMBER, 0 BASED 8 ; 9 ; JSR PC,DIRECT 10 ; 11 ; R0 = UNDEFINED 12 ; R3 = UNDEFINED 13 ;- 14 15 000220 010146 DIRECT::MOV R1,-(SP) ;SAVE R1 16 000222 016501 000000G MOV CRTYPE(R5),R1 ;GET THE SCOPE TYPE 17 000226 010046 MOV R0,-(SP) ;COPY DESIRED LINE NUMBER (ROW) 18 000230 166516 000000C SUB PRELIN+RWSIZE(R5),(SP) ; AND FIND # LINES (ROWS) TO MOVE 19 000234 001424 BEQ 40$ ;NONE, LINE (ROW) IS ALREADY CORRECT 20 000236 021627 000001 CMP (SP),#1 ;SOME, ARE WE ONLY GOING TO THE NEXT LINE? 21 000242 001002 BNE 10$ ;NOPE, WE MUST GO FURTHER THAN THAT... 22 000244 005702 TST R2 ;ARE WE GOING TO THE NEXT LINE'S FIRST COLUMN? 23 000246 001407 BEQ 20$ ;YES, A SIMPLE WILL DO THAT 24 000250 020265 000000C 10$: CMP R2,PRECOL+RWSIZE(R5) ;IS COLUMN NUMBER ALREADY CORRECT? 25 000254 001046 BNE 90$ ;NOPE, DO DIRECT CURSOR ADDRESSING 26 000256 012703 000532' MOV #180$,R3 ;SET SEQUENCE FOR CURSOR DOWN (& UP) 27 000262 005716 TST (SP) ;CHECK THAT MOVEMENT DIRECTION 28 000264 000422 BR 60$ ; AND GO USE IT 29 30 000266 012700 000012 20$: MOV #012,R0 ;SET CHARACTER TO 31 000272 004767 000000G JSR PC,TYPEBF ; AND GO OUTPUT IT 32 000276 005726 30$: TST (SP)+ ;JUNK THAT MOVEMENT AMOUNT 33 000300 012700 177755 MOV #015-40,R0 ;SET FINAL CHARACTER TO (LESS 40) 34 000304 000454 BR 110$ ; AND GO EXIT OUTPUTTING FINAL 35 36 000306 005701 40$: TST R1 ;CHECK FOR VT52 (0.) SCOPE TYPE 37 000310 001002 BNE 50$ ;NOT A VT52 38 000312 012700 000030 MOV #24.,R0 ;THIS IS TO HELP STOP VT52 FROM FLICKER... 39 000316 012703 000562' 50$: MOV #190$,R3 ;SET SEQUENCE FOR CURSOR RIGHT (& LEFT) 40 000322 010216 MOV R2,(SP) ;COPY DESIRED COLUMN NUMBER 41 000324 001764 BEQ 30$ ;GOING TO FIRST COLUMN, TREAT SPECIALLY 42 000326 166516 000000C SUB PRECOL+RWSIZE(R5),(SP) ;ELSE FIND # COLUMNS TO MOVE 43 000332 100003 60$: BPL 70$ ;WE NEED TO MOVE THE CURSOR DOWN -OR- RIGHT 44 000334 005416 NEG (SP) ;CORRECT FOR A POSITIVE MOVEMENT AMOUNT 45 000336 062703 000014 ADD #CRTMAX+2,R3 ; AND CHANGE TO CURSOR UP -OR- LEFT 46 000342 021661 000612' 70$: CMP (SP),200$(R1) ;WITHIN THE MAXIMUM RANGE? 47 000346 103011 BHIS 90$ ;NOPE, DO DIRECT CURSOR ADDRESSING 48 000350 012600 MOV (SP)+,R0 ;YEP, PUT THE COUNT INTO A REGISTER 49 000352 005761 000626' TST 210$(R1) ;ANSI MODE? 50 000356 001034 BNE 130$ ;YES, DO DIFFERENTLY 51 000360 004767 000000G 80$: JSR PC,DOTYPE ;DO 1 CURSOR DOWN/UP -OR- RIGHT/LEFT 52 000364 077003 SOB R0,80$ ; AND LOOP... 53 000366 012601 MOV (SP)+,R1 ;RESTORE R1 54 000370 000207 RTS PC ; AND EXIT CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 18 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 000372 005726 90$: TST (SP)+ ;JUNK THAT MOVEMENT AMOUNT 2 000374 012703 000642' MOV #220$,R3 ;SET SEQUENCE FOR DIRECT CURSOR ADDRESSING 3 000400 004767 000000G JSR PC,DOTYPE ; AND START DIRECT CURSOR ADDRESSING 4 000404 005761 000626' TST 210$(R1) ;ANSI MODE? 5 000410 001030 BNE 140$ ;YES, DO DIFFERENTLY 6 000412 004767 000022 JSR PC,120$ ;NO, ADJUST AND OUTPUT LINE NUMBER (ROW) 7 000416 020127 000006 CMP R1,#6. ;VT05 (6.) NEEDING FILL? 8 000422 001004 BNE 100$ ;NOPE 9 000424 012703 000656' MOV #230$,R3 ;YEP, SET FILLER SEQUENCE 10 000430 004767 000000G JSR PC,DOTYPE ; AND GO DO IT 11 000434 010200 100$: MOV R2,R0 ;NOW SET COLUMN NUMBER 12 000436 012601 110$: MOV (SP)+,R1 ;RESTORE R1 13 000440 062700 000040 120$: ADD #40,R0 ;ADJUST LINE (ROW) OR COLUMN NUMBER 14 000444 000167 000000G JMP TYPEBF ;OUTPUT CHARACTER, THEN EXIT 15 16 000450 060103 130$: ADD R1,R3 ;INDEX BY THE SCOPE TYPE 17 000452 011346 MOV (R3),-(SP) ; AND STACK THE FINAL CHARACTER (LESS 40) 18 000454 012703 000642' MOV #220$,R3 ;SET START OF MOVE SEQUENCE 19 000460 004767 000000G JSR PC,DOTYPE ; AND GO DO IT 20 000464 010001 MOV R0,R1 ;COPY THE MOVE COUNT 21 000466 005301 DEC R1 ; MAKING IT 0 BASED 22 000470 000413 BR 160$ ;NOW GO DO IT 23 24 000472 016146 000626' 140$: MOV 210$(R1),-(SP) ;SET FINAL CHARACTER (LESS 40) 25 000476 010001 MOV R0,R1 ;COPY THE LINE NUMBER (ROW) 26 000500 001402 BEQ 150$ ;NO NEED FOR OUTPUT IF WOULD BE "1" 27 000502 004767 177442 JSR PC,DIGITS ;ELSE OUTPUT AS ASCII DIGITS 28 000506 012700 000073 150$: MOV #';,R0 ;SET THE SEPERATOR 29 000512 004767 000000G JSR PC,TYPEBF ; AND OUTPUT IT 30 000516 010201 MOV R2,R1 ;COPY THE COLUMN NUMBER 31 000520 001402 160$: BEQ 170$ ;NO NEED FOR OUTPUT IF WOULD BE "1" 32 000522 004767 177422 JSR PC,DIGITS ;ELSE OUTPUT AS ASCII DIGITS 33 000526 012600 170$: MOV (SP)+,R0 ;SET THE FINAL CHARACTER (LESS 40) 34 000530 000742 BR 110$ ; AND GO EXIT OUTPUTTING FINAL CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 19 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 000532 180$: CRTTBL <240$,240$,'B-40,VT05LF,'B-40,'B-40> ;CURSOR DOWN 2 000546 CRTTBL <250$,250$,'A-40,260$, 'A-40,'A-40> ;CURSOR UP 3 4 000562 190$: CRTTBL <270$,270$,'C-40,280$,'C-40,'C-40> ;CURSOR RIGHT 5 000576 CRTTBL <290$,290$,'D-40,300$,'D-40,'D-40> ;CURSOR LEFT 6 7 000612 000002 200$: .WORD <2+1+0+1>/2 ; VS. N*() 8 000614 000002 .WORD <2+1+0+1>/2 ; VS. N*() 9 000616 177777 .WORD -1 ;<[><;> VS. <[> 10 000620 000007 .WORD <1+1+4+1>/1 ;<^N><0><0><0><0> VS. N*(<^X/BS>) 11 000622 177777 .WORD -1 ;<[><;> VS. <[> 12 000624 177777 .WORD -1 ;<[><;> VS. <[> 13 .IIF NE .-200$-CRTMAX-2, .ERROR ;INCORRECT NUMBER OF TABLE ENTRIES 14 15 000626 210$: CRTTBL <0, 0, 'H-40,0, 'H-40,'H-40> ;ANSI MODE 'DCA' FINAL (-40) 16 17 000642 220$: CRTTBL <310$,310$, ANSI,320$, ANSI, ANSI> ;START 'DCA' SEQUENCE 18 19 000656 230$: CRTTBL ;FILL AS REQUIRED 20 21 000672 033 102 240$: .BYTE 033,'B ;VT52 & VT100(VT52) => 22 000674 200 .BYTE 200 23 24 000675 033 101 250$: .BYTE 033,'A ;VT52 & VT100(VT52) => 25 000677 200 .BYTE 200 26 27 000700 032 000 260$: .BYTE 032, ;VT05 => 28 000702 000 000 000 .BYTE 000,000,000,000 ; & 4 FILL'S 000705 000 29 000706 200 .BYTE 200 30 31 000707 033 103 270$: .BYTE 033,'C ;VT52 & VT100(VT52) => 32 000711 200 .BYTE 200 33 34 000712 030 280$: .BYTE 030 ;VT05 => 35 000713 200 .BYTE 200 36 37 000714 033 104 290$: .BYTE 033,'D ;VT52 & VT100(VT52) => 38 000716 200 .BYTE 200 39 40 000717 010 300$: .BYTE 010 ;VT05 => 41 000720 200 .BYTE 200 42 43 000721 033 131 310$: .BYTE 033,'Y ;VT52 & VT100(VT52) => 44 000723 200 .BYTE 200 45 46 000724 016 320$: .BYTE 016 ;VT05 => 47 000725 200 .BYTE 200 48 49 000726 033 133 ANSI: .BYTE 033,'[ ;VT100(ANSI), VT102, & VK100 => <[> 50 000730 200 .BYTE 200 51 52 .EVEN CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 20 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 .IF NE SCROLL 2 3 ;+ 4 ; SETSCR - SET SCROLLING REGION. 5 ; 6 ; R1 = STARTING LINE NUMBER (ROW) OF SCROLLING REGION, 0 BASED 7 ; R2 = SIZE OF SCROLLING REGION 8 ; 9 ; JSR PC,SETSCR 10 ; 11 ; R0 = UNDEFINED 12 ; R1 = UNDEFINED 13 ; R2 = UNDEFINED 14 ; R3 = UNDEFINED 15 ;- 16 17 SETSCR::MOV #10$,R3 ;SET SEQUENCE TO START THE OPERATION 18 JSR PC,DOTYPE ; AND GO DO IT 19 ADD R1,R2 ;CALCULATE THE ENDING SCROLLED LINE (ROW) +1 20 JSR PC,DIGITS ;EMIT THE STARTING LINE (ROW) AS DIGITS 21 MOV #';,R0 ;SET THE ";" SEPARATOR 22 JSR PC,TYPEBF ; AND OUTPUT IT 23 MOV R2,R1 ;SET THE ENDING SCROLLED LINE (ROW) +1 24 DEC R1 ; THEN CORRECT IT 25 JSR PC,DIGITS ;EMIT ENDING LINE (ROW) AS DIGITS 26 MOV #20$,R3 ;SET SEQUENCE TO END THE OPERATION 27 JSR PC,DOTYPE ; AND GO DO IT 28 JMP SCRHOM ;EXIT BY GOING TO HOME... 29 30 10$: CRTTBL ;SET SCROLLING SEQUENCE START 31 32 20$: CRTTBL ;SET SCROLLING SEQUENCE END 33 34 30$: .BYTE 'R+40 ;END THE ANSI SCROLLING REGION SEQUENCE 35 .BYTE 200 36 37 .EVEN 38 39 .ENDC ;NE SCROLL CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 21 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 .IF EQ I$$DIV 2 3 DIVR0: MOV R0,-(SP) ;SAVE DIVISOR ON THE STACK 4 MOV #-1,R0 ;PRE-SET BIASED RESULT 5 10$: INC R0 ;COUNT 1 MORE IN RESULT 6 SUB (SP),R1 ; AND DO TRIAL SUBTRACT FROM DIVIDEND 7 BHIS 10$ ;NO UNDERFLOW YET... 8 ADD (SP)+,R1 ;UNDERFLOW, CORRECT REMAINDER 9 RTS PC ; AND EXIT 10 11 .ENDC ;EQ I$$DIV 12 13 .ENDC ;NE WATCH CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 22 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 .IF NE IMMEDC 2 3 .SBTTL NECESSARY SUBROUTINE FOR IMMEDIATE MODE COMMAND SUPPORT 4 5 .PSECT TECOLS,RO,I,GBL,REL,OVR 6 7 TECOLS: TST QPNTR(R5) ;IS THIS THE FIRST INPUT REQUEST? 8 BNE 10$ ;NOPE, CAN'T BE IMMEDIATE MODE COMMAND 9 BIT #ED$IMD,EDIT(R5) ;ARE IMMEDIATE MODE COMMANDS ALLOWED? 10 BEQ 10$ ;NOPE, QUIT RIGHT NOW 11 TST INDIR(R5) ;AN INDIRECT COMMAND FILE ACTIVE? 12 BNE 10$ ;YEP, NO IMMEDIATE COMMANDS WANTED HERE 13 MOV QZ(R5),-(SP) ;GET CURRENT Q-REG ACTIVE STORAGE SIZE 14 ADD #20.,(SP) ; AND ADD IN A FUDGE FACTOR 15 CMP (SP)+,QMAX(R5) ;IS ENOUGH SPACE FREE TO PLAY WITH? 16 BHIS 10$ ;NOT ENOUGH SPACE, DON'T TRY FOR AN IMMEDIATE 17 MOV #20$,-(SP) ;THERE'S ENOUGH SPACE, CHECK FOR IMMEDIATES 18 10$: JMP LISTEN ;GO CALL THE REAL 'LISTEN' ROUTINE 19 20 20$: JSR PC,DECODE ;GO POSSIBLY DECODE A SEQUENCE 21 BCS 60$ ;NO SEQUENCE WAS DECODED... 22 MOV R0,-(SP) ;SAVE THE SEQUENCE FINAL CODE/VALUE 23 MOV R1,-(SP) ;SAVE THE SEQUENCE TYPE CODE 24 BIT #ET$CRT,ETYPE(R5) ;SCOPE TYPE TERMINAL? 25 BEQ 30$ ;NO 26 JSR PC,DELLIN ;YES, ERASE TECO'S PROMPT 27 MOV #012,R0 ;SET A "DELETED" CHARACTER OF 28 JSR PC,DELCHR ; TO MOVE THE CURSOR UP A LINE 29 30$: CLR ERRPOS(R5) ;NO ERROR POSITION IF STORING 30 CLR QLCMD(R5) ;NO LAST COMMAND IF STORING ANYTHING 31 MOV QZ(R5),R1 ;GET RELATIVE PLACE TO STORE CHARACTERS 32 ADD QRSTOR(R5),R1 ; AND MAKE IT ABSOLUTE 33 MOV #70$,R2 ;GET POINTER TO THE COMMAND STRING LAYOUT 34 40$: INC QZ(R5) ;INDICATE 1 MORE IN COMMAND 35 INC QPNTR(R5) ; Q-REGISTER 36 MOVB (R2)+,(R1)+ ;STORE NEXT COMMAND STRING CHARACTER 37 BNE 50$ ;IT'S A REGULAR CHARACTER 38 MOVB (SP)+,-1(R1) ;SET TYPE CODE FIRST, CHARACTER CODE SECOND 39 50$: TSTB (R2) ;JUST STORED THE FINAL ? 40 BPL 40$ ;NOPE, LOOP... 41 MOVB -(R1),R0 ;YEP, SET TO RETURN WITH AN 42 MOV R0,TEMP(R5) ;SAVE CHARACTER LAST STORED (THE ) 43 60$: RTS PC ;RETURN 44 45 70$: .BYTE '^&37, 0, ',, '^&37, 0, 'M, 'A, 033, -1 ;PROTOTYPE COMMAND 46 .EVEN CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 23 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 .SBTTL NECESSARY SUBROUTINE FOR :^T COMMAND SUPPORT 2 3 .PSECT TECOLT,RO,I,GBL,REL,OVR 4 5 TECOLT: JSR PC,TLISTN ;GET THE FIRST CHARACTER 6 CLR R1 ;SET CODE 0 FOR NORMAL CHARACTER 7 BIT R0,#^C<237> ;A CONTROL CHARACTER? 8 BNE 10$ ;NOPE, GO EXIT WITH CODE 0 9 INC R1 ;SET CODE 1 FOR CONTROL CHARACTER 10 CMP R0,#015 ;IS IT ? 11 BEQ 20$ ;YES, GO READ THE AFTER THE 12 JSR PC,DECODE ;GO POSSIBLY DECODE A SEQUENCE 13 BCS 10$ ;NO SEQUENCE DECODED... 14 CMPB (R1)+,(R1)+ ;BIAS THE SEQUENCE TYPE CODE BY TWO 15 10$: RTS PC ;EXIT 16 17 20$: JSR PC,TLISTN ;READ THE AFTER THE 18 MOV #015,R0 ;RESTORE RETURNED CODE AS 19 RTS PC ; AND EXIT CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 24 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 ;+ 2 ; DECODE - DECODE ESCAPE/SS3/CSI SEQUENCE IF NEEDED. 3 ; 4 ; R0 = ORIGINAL CHARACTER (, , OR => DECODE) 5 ; 6 ; JSR PC,DECODE 7 ; 8 ; IF NO DECODE (NOT , , OR ) THEN 9 ; 10 ; C-BIT = 1 11 ; R0 = ORIGINAL CHARACTER 12 ; 13 ; IF DECODED (, , OR ) THEN 14 ; 15 ; C-BIT = 0 16 ; R0 = SEQUENCE FINAL CODE/VALUE 17 ; R1 = SEQUENCE TYPE CODE: 18 ; 0 => 19 ; 1 => 20 ; 21 ; 22 ; <[> 23 ; 24 ; 2 => 25 ; 26 ; 27 ; 3 => <[> 28 ; 29 ; R2 = UNDEFINED 30 ;- 31 32 DECODE: TSTB SEQCTL(R5) ;IN ESCAPE SEQUENCE MODE? 33 BEQ 5$ ;NO => CONTINUE 34 CMP R0,#033 ;YES: ARE WE SEEING AN ESCAPE? 35 BEQ 80$ ;YES (IT CAME FROM PRIV DELIM) => KEEP IT, C=1 36 CMPB R0,#200 ;NO: IS IT START OF ESCAPE SEQUENCE, THEN? 37 BNE 5$ ;NO => GO SEE WHAT ELSE IT MIGHT BE 38 MOV #033,R0 ;YES: TELL DECODE WE'VE AN "ESCAPE" 39 5$: CMP R0,#033 ;IS IT ? 40 BEQ 10$ ;YES, SO GO DECODE 41 CMPB R0,#217 ;IS IT ? 42 BEQ 10$ ;YES, SO GO DECODE 43 CMPB R0,#233 ;IS IT ? 44 BNE 80$ ;NONE OF THE ABOVE, GO EXIT C=1 CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 25 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 10$: MOV ETYPE(R5),-(SP) ;SAVE ORIGINAL "ET" FLAG 2 BIS #ET$CC!ET$LC,ETYPE(R5) ;CONTROL/C TRAP, ENABLE LOWER CASE 3 BIC #ET$CKE,ETYPE(R5) ;ALWAYS STALL 4 CLR R1 ;SET CODE FOR (0) 5 TSTB R0 ;WAS INITIAL CHARACTER OR ? 6 BMI 90$ ;YEP, DO SPECIAL PROCESSING... 7 JSR PC,TLISTN ;READ THE NEXT CHARACTER 8 BIT R0,#^C<237> ;A CONTROL CHARACTER? 9 BEQ 60$ ;YEP, THAT'S CODE 0 10 INC R1 ;NOPE, SET CODE FOR (1) 11 CMP R0,#'[ ;IS IT <[>? 12 BEQ 100$ ;YES, WE MUST DO FURTHER CHECKING... 13 CMP R0,#'? ;IS IT ? 14 BEQ 30$ ;YES, THAT'S CODE 2 ON THE NEXT CHARACTER 15 CMP R0,#'O ;IS IT ? 16 BNE 50$ ;NONE OF THE ABOVE, IT'S CODE 1 17 20$: JSR PC,TLISTN ;WE NEED THE NEXT CHARACTER AT THIS POINT 18 CMP R0,#'A ;IS IT UPPER CASE ALPHABETIC? 19 BLO 40$ ;NOPE, USE CODE 2 20 CMP R0,#'Z ;REALLY UPPER CASE ALPHABETIC? 21 BHI 40$ ;NOPE, USE CODE 2 22 BR 50$ ;YEP, IT'S CODE 1 23 24 30$: JSR PC,TLISTN ;READ THE FINAL CHARACTER 25 40$: INC R1 ;SET CODE FOR (2) 26 50$: BIC #^C<37>,R0 ;TRIM CHARACTER TO 5 BITS 27 60$: TST ETYPE(R5) ;IS CONTROL/C TRAP STILL ON? 28 BMI 70$ ;YES 29 ;.IIF NE ET$CC-100000, .ERROR ;THE ABOVE WON'T WORK 30 BIC #ET$CC,(SP) ;NO, ENSURE IT STAYS OFF 31 70$: BIC #^C,(SP) ;TRIM SAVED "ETYPE" 32 BIC #ET$CC!ET$CKE!ET$LC,ETYPE(R5) ;TURN OFF OUR BITS 33 BIS (SP)+,ETYPE(R5) ; THEN RESTORE ORIGINAL "ETYPE" 34 TST (PC)+ ;SET C=0 FOR DECODED SEQUENCE 35 80$: SEC ;SET C=1 FOR NO DECODE 36 RTS PC ;EXIT CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 26 NECESSARY SUBROUTINES FOR "WATCH" SUPPORT 1 90$: INC R1 ;SET CODE FOR (1) 2 CMPB R0,#217 ;WAS INITIAL CHARACTER ? 3 BEQ 20$ ;YEP, GO CHECK THE NEXT CHARACTER... 4 100$: JSR PC,TLISTN ;GET CHARACTER FOLLOWING <[> 5 JSR PC,120$ ;CHECK FOR DIGIT (0-9) RANGE 6 BHI 50$ ;NOT A DIGIT, IT'S CODE 1 7 CLR R1 ;ELSE ZERO OUR SEQUENCE VALUE 8 110$: MOV R1,R0 ;SAVE OLD VALUE *1 9 ASL R1 ;NOW HAVE OLD VALUE *2 10 ASL R1 ; THEN *4 11 ADD R0,R1 ;FORM OLD VALUE *5 12 ASL R1 ;NOW OLD VALUE *10. 13 ADD R2,R1 ;ADD NEW DIGIT TO OLD VALUE 14 JSR PC,TLISTN ;GET THE NEXT CHARACTER 15 JSR PC,120$ ;CHECK FOR STILL DIGIT (0-9) RANGE 16 BLOS 110$ ;A DIGIT, LOOP... 17 MOV R1,R0 ;ELSE MOVE SEQUENCE VALUE TO HERE 18 MOV #3,R1 ;CODE FOR <[> (3) 19 BR 60$ ;GO EXIT 20 21 120$: MOV R0,R2 ;COPY THE CHARACTER 22 SUB #'0,R2 ; AND CONVERT (POSSIBLE) DIGIT TO BINARY 23 CMP R2,#9. ;COMPARE AGAINST HIGHEST VALID BINARY DIGIT 24 RTS PC ; AND EXIT W/ CC'S SET ('BHI' => NON-DIGIT) 25 26 .ENDC ;NE IMMEDC 27 28 000001 .END CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page 26-1 Symbol table ANSGOF 000105R 003 DOTYPE= ****** GX GRPTBL 000372RG 003 PRELIN= ****** GX TYPEBF= ****** GX ANSI 000726R 004 EOLSEQ 000142RG 003 HOMSEQ 000110RG 003 RSTS = 000001 USRPRM 000146RG 004 CRTCUP 000004R 002 EOSSEQ 000172RG 003 HTSIZE= ****** GX RSX = 000000 USRSET 000144RG 004 CRTERC 000002R 002 ERCTBL 000170R 002 IMMEDC= 000000 RT11 = 000000 UU.TRM= ****** GX CRTERL 000006R 002 ERLTBL 000246R 002 I$$DIV= 000001 RWSIZE= ****** GX VMS = 000000 CRTMAX= 000012 G ETYPE = ****** GX I$$SOB= 000001 SAVFQB= ****** GX VTSIZE= ****** GX CRTRUB 000000R 002 ET$CRT= ****** GX MOFSEQ 000352RG 003 SCDSEQ 000250RG 003 VT05LF 000242R 003 CRTSET 000010R 002 ET$IAS= ****** GX MONSEQ 000330RG 003 SCROLL= 000000 V52GOF 000045R 003 CRTYPE= ****** GX FILL4 000134R 003 NULL 000140R 003 SCUSEQ 000224RG 003 WATCH = 000001 CUPTBL 000210R 002 FIXSEQ 000014RG 003 NWIDTH 000000RG 004 SRWSIZ= ****** GX $$$$$$= 000656R 004 DIGITS 000150R 004 GOFSEQ 000314RG 003 POSTBL 000000RG 003 TYPEBC= ****** GX .UUO = ****** GX DIRECT 000220RG 004 GONSEQ 000272RG 003 PRECOL= ****** GX . ABS. 000000 000 (RW,I,GBL,ABS,OVR) 000000 001 (RW,I,LCL,REL,CON) CRTRUB 000306 002 (RO,I,GBL,REL,OVR) SCRSEQ 000464 003 (RO,D,GBL,REL,CON) SCRSUB 000732 004 (RO,I,GBL,REL,CON) Errors detected: 0 *** Assembler statistics Work file reads: 0 Work file writes: 0 Size of work file: 8255 Words ( 33 Pages) Size of core pool: 16896 Words ( 66 Pages) Operating system: RT-11 (Under RSTS/E) Elapsed time: 00:01:01.12 OBJ:CRTRUB,LST:CRTRUB/C=TT:,MAC:CRTRUB CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page S-1 Cross reference table (CREF V05.03a) $$$$$$ 3-8# 3-12 3-12# 3-42 9-42 9-42# 9-44 9-44# 10-3 10-3# 10-11 10-11# 10-28 10-28# 11-29 11-29# 11-57 11-57# 11-73 11-73# 11-90 11-90# 11-106 11-106# 11-120 11-120# 11-133 11-133# 11-146 11-146# 11-151 11-151# 11-161 11-161# 11-191 11-191# 14-26 14-26# 14-28 14-28# 19-1 19-1# 19-2 19-2# 19-4 19-4# 19-5 19-5# 19-15 19-15# 19-17 19-17# 19-19 19-19# .UUO 13-27 ANSGOF 11-48# 11-146 11-146 11-146 ANSI 19-17 19-17 19-17 19-49# CRTCUP 6-11# CRTERC 6-8# CRTERL 6-14# CRTMAX 7-28# 7-41 9-7 9-42 9-44 10-3 10-11 10-28 11-22 11-29 11-57 11-73 11-90 11-106 11-120 11-133 11-146 11-151 11-161 11-191 14-26 14-28 17-45 19-1 19-2 19-4 19-5 19-13 19-15 19-17 19-19 CRTRUB 6-5# 6-7 6-10 6-13 CRTSET 6-5 7-40# CRTYPE 9-8* 17-16 CUPTBL 6-11 10-11# DIGITS 16-12# 18-27 18-32 DIRECT 17-15# DOTYPE 14-7 17-51 18-3 18-10 18-19 EOLSEQ 11-73# EOSSEQ 11-90# ERCTBL 6-8 10-3# ERLTBL 6-14 10-28# ET$CRT 9-9 ET$IAS 9-28 ETYPE 9-9* 9-28* FILL4 11-66# 19-19 FIXSEQ 11-29# GOFSEQ 11-146# GONSEQ 11-133# GRPTBL 11-191# HOMSEQ 11-57# HTSIZE 9-14* 9-19* 13-25 14-3 I$$DIV 1-5# 5-18 5-20 21-1 I$$SOB 1-4# 5-1 5-3 IMMEDC 1-3# 4-3 4-25 22-1 MOFSEQ 11-161# MONSEQ 11-151# NULL 11-29 11-67# 11-90 11-90 11-120 11-133 11-146 11-151 11-151 11-151 11-161 11-161 11-161 14-26 14-26 14-26 14-26 14-28 14-28 14-28 14-28 19-19 19-19 19-19 19-19 19-19 NWIDTH 13-18# POSTBL 11-16# 11-22 PRECOL 17-24 17-42 PRELIN 17-18 RSTS 1-1# 3-3 3-10 7-43 13-20 RSX 3-4 3-18 8-1 13-31 RT11 3-5 3-26 8-17 13-35 RWSIZE 9-13* 9-14* 9-19* 13-25 14-3 17-18 17-24 17-42 SAVFQB 13-21 SCDSEQ 11-120# SCROLL 1-2# 4-2 4-7 9-22 12-1 14-9 20-1 SCUSEQ 11-106# SRWSIZ 9-29 CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page S-2 Cross reference table (CREF V05.03a) TYPEBC 14-18 TYPEBF 16-23 17-31 18-14 18-29 USRPRM 15-24# USRSET 15-10# UU.TRM 13-22 V52GOF 11-34# 11-146 11-146 VMS 3-6 3-34 8-27 13-39 VT05LF 11-106 11-111# 19-1 VTSIZE 9-13* WATCH 4-1 4-5 9-11 11-1 CRTRUB SCOPE TYPE DETERMINATIO MACRO V05.03c Monday 16-Sep-85 14:56 Page M-1 Cross reference table (CREF V05.03a) CRTTBL 7-30# 9-42 9-44 10-3 10-11 10-28 11-29 11-57 11-73 11-90 11-106 11-120 11-133 11-146 11-151 11-161 11-191 14-26 14-28 19-1 19-2 19-4 19-5 19-15 19-17 19-19 DIVR0 5-31# 16-13 16-17