COMMON Common Definitions MACRO V05.03c Monday 16-Sep-85 14:53 Table of contents 1- 9 1- 10 COMMON Common Definitions 1- 11 1- 12 Edit: Date: By: 1- 13 05 15-SEP-85 MHB/ABC/SJK/SHG/MJG/RTW/GPK/MND/AJK/AWL/WJS/REJ/KPH/SHL/DBM 1- 14 1- 15 1- 16 COPYRIGHT (c) 1974, 1985 BY 1- 17 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 1- 18 1- 19 THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED 1- 20 ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE 1- 21 INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER 1- 22 COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY 1- 23 OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY 1- 24 TRANSFERRED. 1- 25 1- 26 THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE 1- 27 AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 1- 28 CORPORATION. 1- 29 1- 30 DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 1- 31 SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 1- 32 2- 1 Edit history for COMMON 3- 1 16- 1 16- 1 GEXIT EG SPECIAL FUNCTIONS 16- 1 16- 1 Edit: Date: By: 16- 1 39 14-JUL-83 MHB/AWR/KPH 16- 1 17- 1 MACROS 17- 22 DEFINITIONS 17- 30 OVERLAY TECO'S VECTORS FOR KEYBOARD MONITOR VECTORS 18- 1 SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 24- 1 "NEW" ENTRY POINT COMMON Common Definitions MACRO V05.03c Monday 16-Sep-85 14:53 Page 16 1 000022 TITLE GEXIT,,39,14-JUL-83,MHB/AWR/KPH .TITLE GEXIT EG SPECIAL FUNCTIONS .IDENT "09.139" .SBTTL .SBTTL GEXIT EG SPECIAL FUNCTIONS .SBTTL .SBTTL Edit: Date: By: .SBTTL 39 14-JUL-83 MHB/AWR/KPH .SBTTL 2 3 ; 4 ; COPYRIGHT (c) 1974, 1983 BY 5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 6 ; 7 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED 8 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE 9 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER 10 ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY 11 ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY 12 ; TRANSFERRED. 13 ; 14 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE 15 ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 16 ; CORPORATION. 17 ; 18 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 19 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. 20 ; GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 17 MACROS 1 .SBTTL MACROS 2 3 .MACRO CHKERR CODE,SRC=FIRQB 4 .DSABL CRF 5 .GLOBL CODE 6 .ENABL CRF 7 CMPB #CODE,SRC 8 .ENDM CHKERR 9 10 .MACRO SETERR CODE,DST=FIRQB 11 .DSABL CRF 12 .GLOBL CODE 13 .ENABL CRF 14 MOV #CODE,DST 15 .ENDM SETERR 16 17 .MACRO VECTOR AT,TO 18 ORG VE,AT-P.OFF 19 .WORD TO 20 .ENDM VECTOR 21 22 .SBTTL DEFINITIONS 23 24 000000 .PSECT EGFUNC,RO,I,GBL,REL,OVR 25 000000 ORG EGFUNC 26 27 000000 .PSECT VE, RO,D,GBL,REL,OVR 28 000000 ORG VE 29 30 .SBTTL OVERLAY TECO'S VECTORS FOR KEYBOARD MONITOR VECTORS 31 32 000000 VECTOR P.FLAG, PF.KBM ;THIS TECO IS A KEYBOARD MONITOR 000000 000400 .WORD PF.KBM 33 34 000002 VECTOR P.NEW, NEWENT ;THIS TECO HAS A "NEW" ENTRY POINT 000016 000730' .WORD NEWENT GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 18 SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 1 .SBTTL SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 2 3 000020 ORG EGFUNC 4 5 .ENABL LSB 6 7 000000 EGFUNC: CALLX SAVREG,R4 ;SAVE ALL REGISTERS 000000 004437 000000G JSR R4,@#SAVREG 8 000004 016502 000000G MOV FILBUF(R5),R2 ;GET THE STRING POINTER 9 000010 CALL 220$,R4,<'C> ;CHECK FOR "CCL" 000010 004467 000540 JSR R4,220$ 000014 000103 .WORD 'C 10 000016 001017 BNE 10$ ;IT CAN'T BE "CCL"... 11 000020 CALL 220$,R4,<'C> ;CHECK THE "C" 000020 004467 000530 JSR R4,220$ 000024 000103 .WORD 'C 12 000026 001115 BNE 80$ ;NOPE, EXIT VALUE=0 13 000030 CALL 220$,R4,<'L> ;CHECK THE "L" 000030 004467 000520 JSR R4,220$ 000034 000114 .WORD 'L 14 000036 001111 BNE 80$ ;NOPE AGAIN, EXIT VALUE=0 15 000040 CALL 260$ ;SKIP ANY EXTRA JUNKY CHARACTER(S) 000040 004767 000552 JSR PC,260$ 16 000044 110042 MOVB R0,-(R2) ; BUT REPLACE THAT LAST CHARACTER 17 000046 CALL DOCCL ;TRY THAT CCL COMMAND 000046 004767 000570 JSR PC,DOCCL 18 000052 000167 000442 JMP 180$ ;GO CHECK FOR ERROR(S) 19 20 000056 GLOBAL GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 19 SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 1 000056 020027 000105 10$: CMP R0,#'E ;CHECK FOR "EMT" 2 000062 001062 BNE 60$ ;IT CAN'T BE "EMT"... 3 000064 CALL 220$,R4,<'M> ;CHECK THE "M" 000064 004467 000464 JSR R4,220$ 000070 000115 .WORD 'M 4 000072 001073 BNE 80$ ;NOPE, EXIT VALUE=0 5 000074 CALL 220$,R4,<'T> ;CHECK THE "T" 000074 004467 000454 JSR R4,220$ 000100 000124 .WORD 'T 6 000102 001067 BNE 80$ ;NOPE AGAIN, EXIT VALUE=0 7 000104 CALL 260$ ;CHECK FOR CORRECT STRING TERMINATION 000104 004767 000506 JSR PC,260$ 8 000110 001064 BNE 80$ ;NOT THE END, EXIT VALUE=0 9 000112 012701 000134G MOV #QARRAY+,R1 ;POINT INTO Q-REGISTERS 10 000116 060501 ADD R5,R1 ; ABSOLUTELY 11 000120 012702 000460 MOV #XRB+XRBSIZ,R2 ;POINT INTO FIRQB, XRB 12 000124 014142 20$: MOV -(R1),-(R2) ;LOAD FIRQB, XRB FROM Q-REGISTER 13 000126 005741 TST -(R1) ; THEN SKIP Q-REGISTER'S SIZE 14 000130 020227 000404 CMP R2,#FIRQB+FQJOB ;DONE? 15 000134 101373 BHI 20$ ;NOT YET, LOOP... 16 000136 105741 TSTB -(R1) ;USE TEXT PART OF Q-REGISTER "A"? 17 000140 001412 BEQ 30$ ;NOPE 18 000142 012702 000442 MOV #XRB,R2 ;YEP, GET XRB POINTER AGAIN 19 000146 016112 177775 MOV -3(R1),(R2) ;SET TEXT SIZE OF Q-REGISTER "A" 20 000152 012222 MOV (R2)+,(R2)+ ; IN BOTH PLACES 21 000154 016512 000000G MOV QRSTOR(R5),(R2) ;POINT TO Q-REGISTER "A" 22 000160 105711 TSTB (R1) ;WHICH DIRECTION DESIRED? 23 000162 100001 BPL 30$ ;>0 => "WRITE", FROM Q-REG TO MONITOR 24 000164 005042 CLR -(R2) ;<0 => "READ", FROM MONITOR TO Q-REG 25 000166 012746 30$: MOV (PC)+,-(SP) ;SET ENDING SP STACK INSTRUCTION 26 000170 004636 JSR SP,@(SP)+ 27 000172 012746 MOV (PC)+,-(SP) ;SET SP STACK MONITOR CALL PROTOTYPE 28 000174 104000 EMT 0 29 000176 114116 MOVB -(R1),(SP) ;NOW SET THE MONITOR CALL CODE 30 000200 CALL (SP) ; AND GO DO IT!!! 000200 004716 JSR PC,(SP) 31 000202 012701 000402 40$: MOV #FIRQB,R1 ;GET A POINTER TO FIRQB, XRB 32 000206 012702 000000G MOV #QARRAY,R2 ;GET A POINTER TO Q-REGISTERS 33 000212 060502 ADD R5,R2 ; ABSOLUTELY 34 000214 005722 50$: TST (R2)+ ;SKIP THE SIZE 35 000216 012122 MOV (R1)+,(R2)+ ; THEN MOVE FROM FIRQB, XRB TO Q-REGISTERS 36 000220 020127 000460 CMP R1,#XRB+XRBSIZ ;DONE? 37 000224 103773 BLO 50$ ;NOT YET, LOOP... 38 000226 RETURN ;EXIT 000226 000207 RTS PC 39 40 000230 GLOBAL GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 20 SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 1 000230 020027 000122 60$: CMP R0,#'R ;CHECK FOR "RUN" OR "RTS" 2 000234 001020 BNE 100$ ;IT CAN'T BE "RUN" OR "RTS"... 3 000236 CALL 220$,R4,<'U> ;CHECK FOR "RUN" 000236 004467 000312 JSR R4,220$ 000242 000125 .WORD 'U 4 000244 001004 BNE 70$ ;IT CAN'T BE "RUN"... 5 000246 CALL 220$,R4,<'N> ;CHECK THE "N" 000246 004467 000302 JSR R4,220$ 000252 000116 .WORD 'N 6 000254 000406 BR 90$ ;GO DO FINAL CHECK 7 8 000256 020027 000124 70$: CMP R0,#'T ;CHECK FOR "RTS" 9 000262 001120 80$: BNE 190$ ;NOPE, EXIT VALUE=0 10 000264 CALL 220$,R4,<'S> ;CHECK THE "S" 000264 004467 000264 JSR R4,220$ 000270 000123 .WORD 'S 11 000272 001114 90$: BNE 190$ ;NOPE AGAIN, EXIT VALUE=0 12 000274 000414 BR 110$ ;O.K. (R0 = 'N IF "RUN"; R0 = 'S IF "RTS") 13 14 000276 020027 000106 100$: CMP R0,#'F ;CHECK FOR "FSS" 15 000302 001110 BNE 190$ ;IT CAN'T BE "FSS", EXIT VALUE=0 16 000304 CALL 220$,R4,<'S> ;CHECK THE "S" 000304 004467 000244 JSR R4,220$ 000310 000123 .WORD 'S 17 000312 001104 BNE 190$ ;NOPE, EXIT VALUE=0 18 000314 CALL 220$,R4,<'S> ;CHECK THE SECOND "S" 000314 004467 000234 JSR R4,220$ 000320 000123 .WORD 'S 19 000322 001100 BNE 190$ ;NOPE AGAIN, EXIT VALUE=0 20 000324 005727 TST (PC)+ ;SET C=0 FOR .FSS BY ITSELF 21 000326 000261 110$: SEC ;SET C=1 FOR DO .FSS AND THEN .RUN/.RTS 22 000330 010001 MOV R0,R1 ;COPY THE "RUN"/"RTS" INDICATION 23 000332 006001 ROR R1 ; AND SAVE BOTH INDICATORS 24 000334 CALL 260$ ;SKIP ANY EXTRA JUNKY CHARACTER(S) 000334 004767 000256 JSR PC,260$ 25 000340 110042 MOVB R0,-(R2) ; BUT REPLACE THAT LAST CHARACTER 26 000342 CALL DOFSS ;GO DO THAT .FSS 000342 004767 000272 JSR PC,DOFSS 27 000346 120$: CALL 240$ ;GO CHECK FOR ERROR(S) 000346 004767 000224 JSR PC,240$ 28 000352 006301 ASL R1 ;WHAT WERE WE DOING? 29 000354 103312 BCC 40$ ;JUST THE .FSS, GO SET ANSWER(S) AND EXIT GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 21 SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 1 000356 SETERR BADNAM ;"RUN"/"RTS", PRESET THE ILLEGAL NAME ERROR 000356 012767 000000G 000402' MOV #BADNAM,FIRQB 2 000364 012703 000452 MOV #XRB+10,R3 ;FIND THE TRANSLATION FLAGS 3 000370 032713 101546 BIT #101546,(R3) ;ANYTHING WILD? 4 000374 001364 BNE 120$ ;YUP, GO AWAY WITH ERROR 5 000376 032713 000010 BIT #10,(R3) ;WAS THERE AN EXTENSION? 6 000402 001003 BNE 130$ ;YES, SO LEAVE IT ALONE 7 000404 012767 177777 000416' MOV #-1,FIRQB+FQEXT ;NO, SO SUPPLY A WILD ONE 8 000412 012702 000444 130$: MOV #XRB+XRBC,R2 ;GET POINTER TO # REMAINING, REMAINING POINTER 9 000416 020127 000122 CMP R1,#'S/2*2 ;IS IT "RTS"? 10 000422 001010 BNE 150$ ;NOPE, IT IS "RUN" 11 000424 005712 TST (R2) ;YEP, DID .FSS EAT IT ALL? 12 000426 001347 BNE 120$ ;NOT EATEN, AN ERROR 13 000430 032713 000001 BIT #1,(R3) ;SPECIFY AN RTS NAME? 14 000434 001402 BEQ 140$ ;NOPE, GO SWITCH TO SYSTEM DEFAULT 15 000436 104050 .RTS ;YEP, THINK CAN WE DO IT? 16 000440 000427 BR 180$ ;GO CHECK FOR ERROR(S) 17 18 000442 104046 140$: .EXIT ;BACK TO SYSTEM DEFAULT RTS 19 20 000444 032713 000001 150$: BIT #1,(R3) ;"RUN", FILENAME SPECIFIED? 21 000450 001736 BEQ 120$ ;NOPE, GO AWAY WITH ERROR 22 000452 005722 TST (R2)+ ;DID .FSS EAT IT ALL? 23 000454 001420 BEQ 170$ ;YES, SO DO NOTHING SPECIAL 24 000456 011202 MOV (R2),R2 ;NO, GET POINTER TO REMAINING STRING 25 000460 CALL 220$,R4,<'=> ;DELIMITED BY "="? 000460 004467 000070 JSR R4,220$ 000464 000075 .WORD '= 26 000466 001327 BNE 120$ ;AIN'T GONNA DO THIS TO THAT... 27 000470 012703 000460 MOV #CORCMN,R3 ;FIND START OF CORE COMMON 28 000474 105023 CLRB (R3)+ ;START LENGTH OFF AT ZERO 29 000476 112200 160$: MOVB (R2)+,R0 ;GET A CHARACTER 30 000500 001406 BEQ 170$ ;END OF STRING, QUIT 31 000502 CALL 200$ ;UPCASE CHARACTER IF POSSIBLE 000502 004767 000024 JSR PC,200$ 32 000506 110023 MOVB R0,(R3)+ ;DUMP IT INTO CORE COMMON 33 000510 105267 000460' INCB CORCMN ; AND COUNT IT 34 000514 100370 BPL 160$ ;LOOP UNLESS WE'VE FILLED CORCMN 35 000516 104042 170$: .RUN ;TRY TO DO IT 36 000520 180$: CALL 240$ ;AH WELL, WE TRIED 000520 004767 000052 JSR PC,240$ 37 000524 005065 000000G 190$: CLR N(R5) ;SET RETURNED VALUE AS 0 38 000530 RETURN ;EXIT 000530 000207 RTS PC 39 40 000532 GLOBAL GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 22 SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 1 000532 020027 000141 200$: CMP R0,#'A+40 ;IS IT LOWER CASE? 2 000536 103405 BLO 210$ ;NOPE 3 000540 020027 000172 CMP R0,#'Z+40 ;WITHIN RANGE? 4 000544 101002 BHI 210$ ;NOPE 5 000546 042700 000040 BIC #40,R0 ;YEP, MAKE IT UPPER CASE 6 000552 210$: RETURN ;EXIT 000552 000207 RTS PC 7 8 000554 220$: CALL 260$ ;SKIP JUNKY CHARACTER(S) 000554 004767 000036 JSR PC,260$ 9 000560 001404 BEQ 230$ ;END OF STRING, SO EXIT 10 000562 CALL 200$ ;UPCASE CHARACTER IF POSSIBLE 000562 004767 177744 JSR PC,200$ 11 000566 020024 CMP R0,(R4)+ ;DO THE SPECIFIED COMPARISON 12 000570 RETURN R4 ; AND EXIT WITH CC'S SET 000570 000204 RTS R4 13 14 000572 012604 230$: MOV (SP)+,R4 ;POP THE SAVED R4 15 000574 000753 BR 190$ ; AND GO EXIT VALUE=0 16 17 000576 105767 000402' 240$: TSTB FIRQB ;AN ERROR? 18 000602 001404 BEQ 250$ ;NOPE, RETURN 19 000604 016765 000402' 000000G MOV FIRQB,N(R5) ;YEP, SET ERROR AS RETURNED VALUE 20 000612 005726 TST (SP)+ ;POP THE RETURN ADDRESS 21 000614 250$: RETURN ;RETURN 000614 000207 RTS PC 22 23 000616 112200 260$: MOVB (R2)+,R0 ;GET NEXT STRING CHARACTER 24 000620 001406 BEQ 270$ ;END OF STRING, EXIT Z=1 (SINCE 'BEQ') 25 000622 020027 000040 CMP R0,#040 ;SPACE OR CONTROL CHARACTER? 26 000626 101773 BLOS 260$ ;YES, SIMPLY SKIP IT 27 000630 020027 000177 CMP R0,#177 ;A RUBOUT? 28 000634 001770 BEQ 260$ ;YES, SIMPLY SKIP THAT ALSO 29 ;CLZ ;OTHER, EXIT Z=0 (SINCE NOT 'BEQ') 30 000636 270$: RETURN ;EXIT WITH Z-BIT INDICATION 000636 000207 RTS PC 31 32 .DSABL LSB 33 34 000640 GLOBAL GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 23 SPECIAL FUNCTIONS FOR KEYBOARD MONITOR TECO'S 1 000640 005727 DOFSS: TST (PC)+ ;SET C=0 FOR .FSS 2 000642 000261 DOCCL: SEC ;SET C=1 FOR .CCL 3 000644 006046 ROR -(SP) ;SAVE THE C-BIT INDICATION 4 000646 CALLX SETFQB,R0,<0*400> ;TIDY UP THE FIRQB 000646 004037 000000G JSR R0,@#SETFQB 000652 000000 .WORD 0*400 5 000654 005067 000402' CLR FIRQB ; AND SET NO ERROR INITIALLY 6 000660 012703 000460 MOV #XRB+XRBSIZ,R3 ;POINT TO END OF XRB 7 000664 005043 CLR -(R3) ;CLEAR XRB+14 8 000666 005043 CLR -(R3) ;CLEAR XRB+12 (PTR TO NON-STD LOGICALS) 9 000670 005043 CLR -(R3) ;CLEAR XRB+10 (LEN OF NON-STD LOGICALS) 10 000672 005043 CLR -(R3) ;CLEAR XRB+6 11 000674 010243 MOV R2,-(R3) ;POINT TO THE STRING 12 .IIF NE XRBSIZ-2-2-2-2-2-XRLOC, .ERROR ;THE ABOVE WON'T WORK 13 000676 105722 10$: TSTB (R2)+ ;SKIP STRING 14 000700 001376 BNE 10$ ; LOOKING FOR THAT NULL BYTE 15 000702 005302 DEC R2 ;END, BACK UP OVER THE NULL 16 000704 161302 SUB (R3),R2 ; AND FIND LENGTH OF CCL COMMAND 17 000706 006326 ASL (SP)+ ;SET THE C-BIT INDICATOR 18 000710 010243 MOV R2,-(R3) ;SET LENGTH IN XRB @ XRBC AND 19 000712 010243 MOV R2,-(R3) ; IN XRB @ XRLEN 20 000714 001404 BEQ 30$ ;NO LENGTH, JUST RETURN 21 000716 103002 BCC 20$ ;IF C=0 THEN DO .FSS 22 000720 104062 .CCL ;IF C=1 THEN DO .CCL 23 000722 RETURN ; AND EXIT 000722 000207 RTS PC 24 25 000724 104064 20$: .FSS ;IS IT DECIPHERABLE? 26 000726 30$: RETURN ;RETURN WITH EVERYTHING SET UP 000726 000207 RTS PC GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 24 "NEW" ENTRY POINT 1 .SBTTL "NEW" ENTRY POINT 2 3 .ENABL LSB 4 5 000730 012706 000400 NEWENT: MOV #USRSP,SP ;RESET THE SP STACK 6 000734 005767 000444' TST XRB+2 ;SWITCH TYPE ENTRY? 7 000740 001024 BNE 30$ ;YEP, SOMEONE WAS PREVIOUS TO US 8 000742 005767 000410' TST FIRQB+FQPPN ;NOPE, SPAWNED OR NEW JOB ENTRY? 9 000746 001414 BEQ 20$ ;A NEW JOB, GO LOG IT IN 10 000750 012700 000460 MOV #CORCMN,R0 ;SPAWNED JOB, GET CORE COMMON POINTER 11 000754 012701 000013 MOV #11.,R1 ; AND WHAT WILL BE ITS SIZE 12 000760 110120 MOVB R1,(R0)+ ;SET CORRECT CORE COMMON SIZE 13 000762 012702 000420 MOV #FIRQB+16,R2 ;GET POINTER TO PASSED DATA 14 000766 112220 10$: MOVB (R2)+,(R0)+ ;MOVE DATA TO CORE COMMON 15 000770 077102 SOB R1,10$ ; UNTIL DONE... 16 000772 116740 000406' MOVB FIRQB+4,-(R0) ;SET LAST BYTE TO SPAWNER'S JOB # *2 17 000776 000443 BR 50$ ;NOW GO DO THE RUNNING 18 19 001000 012702 001114' 20$: MOV #70$,R2 ;GET POINTER TO "$LOGIN" 20 001004 012746 176400 MOV #32000.!100000,-(SP) ;SAVE THE (COMPATIBLE) PARAMETER WORD 21 001010 000427 BR 40$ ;GO DO THE LOGIN CALL 22 23 001012 30$: CALLX ZOTALL ;RESET ALL CHANNELS 001012 004737 000000G JSR PC,@#ZOTALL 24 001016 012767 177777 000442' MOV #-1,XRB ;DO A CLEAR 25 001024 104056 .CLEAR ; OF ALL FLAGS 26 001026 012702 001131' MOV #90$,R2 ;GET POINTER TO "TECKBM" 27 001032 CALL DOFSS ; AND .FSS IT 001032 004767 177602 JSR PC,DOFSS 28 001036 013767 177734 000416' MOV @#P.DEXT,FIRQB+FQEXT ;SET OUR RUNNABLE EXTENSION 29 001044 104070 .CHAIN ;TRY TO RUN IT (NOTE: SP = #USRSP) 30 001046 012702 001123' MOV #80$,R2 ;FAILED, GET POINTER TO "TECO$:TECKBM" 31 001052 CALL DOFSS ; AND .FSS IT 001052 004767 177562 JSR PC,DOFSS 32 001056 013767 177734 000416' MOV @#P.DEXT,FIRQB+FQEXT ;SET OUR RUNNABLE EXTENSION 33 001064 104070 .CHAIN ;TRY TO RUN IT (NOTE: SP = #USRSP) 34 001066 000410 BR 60$ ;FAILED, GO SAY SO 35 36 001070 40$: CALL DOFSS ;GO DO THAT .FSS 001070 004767 177544 JSR PC,DOFSS 37 001074 012667 000440' MOV (SP)+,FIRQB+FQNENT ;SET THE PARAMETER WORD 38 001100 012767 177777 000416' MOV #-1,FIRQB+FQEXT ;WILD CARD THE RUNNABLE EXTENSION 39 001106 104042 50$: .RUN ;TRY TO .RUN IT 40 001110 60$: JMPX RESTRT ;DO THIS ON ERROR(S) 001110 000137 000000G JMP @#RESTRT 41 42 001114 044 114 117 70$: .ASCIZ "$LOGIN" ;LOGIN FILE ACCOUNT, NAME 001117 107 111 116 001122 000 43 001123 124 105 103 80$: .ASCII "TECO$:" ;Location of keyboard monitor program 001126 117 044 072 44 001131 124 105 103 90$: .ASCIZ "TECKBM" ;Name of keyboard monitor program 001134 113 102 115 001137 000 45 .EVEN 46 47 .DSABL LSB GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 24-1 "NEW" ENTRY POINT 48 49 000001 .END GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 24-2 Symbol table ASSFQ 000024 DSKHND 000000 NULHND 000026 UU.ASS 000012 UU.3PP 000037 ATRFQ 000000 DTAHND 000004 OPNFQ 000002 UU.ATR 177747 VE 000000R 003 AUDHND 000032 DTRFQ 000002 PF.CSZ 020000 UU.ATT 000006 XRB 000442 BADNAM= ****** G DT2HND 000036 PF.EMT 100000 UU.BCK 177765 XRBC 000002 BBR.AC= 000004 EGFUNC 000000R 002 PF.KBM 000400 UU.BYE 000005 XRBLK 000010 BBR.CP= 000001 ELAFQ 000006 PF.NER 004000 UU.CCL 177750 XRBLKM 000007 BBR.IO= 000002 ERRFQ 000016 PF.REM 010000 UU.CFG 000042 XRBSIZ 000016 CALFIP 104000 FILBUF= ****** G PF.RW 002000 UU.CHE 000023 XRCI 000006 CDRHND 000014 FIRQB 000402 PF.SLA 040000 UU.CHK 000040 XRLEN 000000 CLSFQ 000000 FLGFRC 020000 PF.1US 001000 UU.CHU 000010 XRLOC 000004 CMTSIZ 000022 FLGKB 040000 PKBHND 000020 UU.CLN 000002 XRMOD 000014 CM.AP6 000006 FLGMOD 010000 PLTHND 000034 UU.CNV 000024 XRTIME 000012 CM.AWS 177772 FLGPOS 004000 PTPHND 000012 UU.DAL 000014 ZOTALL= ****** G CM.BA6 177774 FLGRND 100000 PTRHND 000010 UU.DAT 177762 $$$VER= 034463 CM.BRM 177777 FQBSIZ 000040 P.BAD 177754 UU.DEA 000013 .AST 104114 CM.BRS 177776 FQBUFL 000020 P.BPT 177756 UU.DET 000007 .ASTX 104106 CM.CCT 177770 FQCLUS 000034 P.CC 177770 UU.DIE 177760 .CCL 104062 CM.CMD 000021 FQDEV 000030 P.CRAS 177744 UU.DIR 000017 .CHAIN 104070 CM.COF 000010 FQDEVN 000032 P.DEXT 177734 UU.DLU 000001 .CLEAR 104056 CM.CRQ 177766 FQERNO 000004 P.EMT 177762 UU.DMP 177745 .CMDLN 104112 CM.CRT 000000 FQEXT 000014 P.FIS 177742 UU.ERR 000011 .CORE 104006 CM.CSR 000014 FQFIL 000004 P.FLAG 177732 UU.FCB 177770 .DATE 104034 CM.DCT 177771 FQFLAG 000024 P.FPP 177766 UU.FIL 177746 .ERLOG 104052 CM.DNE 177762 FQFUN 000003 P.IOT 177760 UU.HNG 177767 .EXIT 104046 CM.FLG 000017 FQJOB 000002 P.ISIZ 177736 UU.JOB 000030 .FSS 104064 CM.HDR 177750 FQMODE 000022 P.MSIZ 177740 UU.KMC 000033 .LOGS 104054 CM.ICS 177750 FQNAM1 000010 P.NEW 177750 UU.LIN 000004 .MESAG 104060 CM.IC6 177752 FQNAM2 000020 P.OFF 177732 UU.LOG 177755 .NAME 104044 CM.IMK 177754 FQNENT 000036 P.RUN 177752 UU.LOK 000021 .PEEK 104012 CM.IRG 177756 FQPFLG 000026 P.SIZE 177774 UU.MNT 000003 .PFB 104110 CM.QMR 177764 FQPPN 000006 P.STRT 177746 UU.NAM 177757 .PLAS 104072 CM.QUE 000004 FQPROT 000027 P.TRAP 177764 UU.NLG 177776 .POSTN 104032 CM.RSP 000020 FQSIZ 000016 P.2CC 177772 UU.ONX 000041 .READ 104002 CM.UMR 000002 FQSIZM 000005 QARRAY= ****** G UU.PAS 000000 .READA 104102 CM.UOF 177760 IBMHND 000042 QRSTOR= ****** G UU.POK 177772 .RSX 104074 CM.VTR 000016 JFBIG 020000 RENFQ 000010 UU.PPN 000031 .RTS 104050 CM.WKA 000012 JFFPP 001000 RESTRT= ****** G UU.PRI 177763 .RUN 104042 CORCMN 000460 JFLOCK 040000 RJEHND 000024 UU.PRM 000036 .SET 104036 CRAFQ 000004 JFNOPR 010000 RSTFQ 000020 UU.PRV 000034 .SLEEP 104010 CRBFQ 000034 JFPRIV 002000 RXDHND 000022 UU.RAD 000016 .SPEC 104014 CREFQ 000004 JFSPRI 000400 SAVREG= ****** G UU.RTS 177756 .STAT 104040 CRTFQ 000032 JFSYS 004000 SETFQB= ****** G UU.SLN 000025 .TIME 104030 DALFQ 000030 KEY 000400 SYSVEE= 030456 UU.SPL 177744 .TTAPE 104016 DDNFS 000400 KMCHND 000040 SYSVEL= 034460 UU.STL 000035 .TTDDT 104024 DDRLO 001000 LOKFQ 000022 TTYHND 000002 UU.SWP 000027 .TTECH 104020 DDWLO 002000 LPTHND 000006 UMPFQ 000012 UU.SYS 000032 .TTNCH 104022 DEAFQ 000026 MAPFQ 000010 USRLOG 000740 UU.TB1 177775 .TTRST 104026 DIRFQ 000012 MBXHND 000044 USRPPN 000734 UU.TB2 177764 .ULOG 104076 DLNFQ 000006 MTAHND 000016 USRPRT 000736 UU.TB3 177743 .UUO 104066 DMCHND 000030 N = ****** G USRSP 000400 UU.TRM 000020 .WRITA 104104 DMPHND 000046 NEWENT 000730R 002 UUOFQ 000014 UU.YLG 177777 .WRITE 104004 DOCCL 000642R 002 NSTORG 001000 UU.ACT 177761 UU.ZER 000015 .XPEEK 104100 DOFSS 000640R 002 . ABS. 177777 000 (RW,I,GBL,ABS,OVR) 000000 001 (RW,I,LCL,REL,CON) EGFUNC 001140 002 (RO,I,GBL,REL,OVR) GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page 24-3 Symbol table VE 000020 003 (RO,D,GBL,REL,OVR) Errors detected: 0 *** Assembler statistics Work file reads: 0 Work file writes: 0 Size of work file: 10070 Words ( 40 Pages) Size of core pool: 16896 Words ( 66 Pages) Operating system: RT-11 (Under RSTS/E) Elapsed time: 00:00:25.30 OBJ:GEXIT,LST:GEXIT/C=MAC:#COMMON,MAC:GEXIT GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page S-1 Cross reference table (CREF V05.03a) $$$VER 16-1# .CCL 23-22 .CHAIN 24-29 24-33 .CLEAR 24-25 .EXIT 21-18 .FSS 23-25 .RTS 21-15 .RUN 21-35 24-39 BADNAM 21-1 CORCMN 21-27 21-33* 24-10 DOCCL 18-17 23-2# DOFSS 20-26 23-1# 24-27 24-31 24-36 EGFUNC 18-7# FILBUF 18-8 18-20 FIRQB 19-14 19-31 21-1* 21-7* 22-17 22-19 23-5* 24-8 24-13 24-16 24-28* 24-32* 24-37* 24-38* FQBSIZ 19-9 FQEXT 21-7* 24-28* 24-32* 24-38* FQJOB 19-14 FQNENT 24-37* FQPPN 24-8 L$$IST 1-1 1-2 14-55 N 21-37* 21-40 22-19* 22-34 NEWENT 17-34 24-5# P.DEXT 24-28 24-32 P.FLAG 17-32 P.NEW 17-34 P.OFF 17-32 17-34 PF.KBM 17-32 QARRAY 19-9 19-32 19-40 QRSTOR 19-21 19-40 RESTRT 24-40 SAVREG 18-7 SETFQB 23-4 SYSVEE 16-1# SYSVEL 16-1# USRSP 24-5 VE 17-32 17-34 XRB 19-11 19-18 19-36 21-2 21-8 23-6 24-6 24-24* XRBC 21-8 XRBSIZ 19-9 19-11 19-36 23-6 23-12 XRLOC 23-12 ZOTALL 24-23 GEXIT EG SPECIAL FUNCTIONS MACRO V05.03c Monday 16-Sep-85 14:53 Page M-1 Cross reference table (CREF V05.03a) CALL 18-7 18-9 18-11 18-13 18-15 18-17 19-3 19-5 19-7 19-30 20-3 20-5 20-10 20-16 20-18 20-24 20-26 20-27 21-25 21-31 21-36 22-8 22-10 23-4 24-23 24-27 24-31 24-36 CALLX 18-7 23-4 24-23 CHKERR 17-3# GLOBAL 18-20 19-40 21-40 22-34 JMPX 24-40 ORG 17-25 17-28 17-32 17-34 18-3 RETURN 19-38 21-38 22-6 22-12 22-21 22-30 23-23 23-26 SETERR 17-10# 21-1 TITLE 16-1 TMPORG 17-25 17-28 17-32 17-34 18-3 UNORG 17-25# 17-28# 17-32# 17-34# 18-3# VECTOR 17-17# 17-32 17-34 VERSN 16-1