LOG - TERMINAL LOGGER MACRO M1110 11-APR-78 07:34 PAGE 4 1 .TITLE LOG - TERMINAL LOGGER 2 .IDENT /01.00/ 3 .LIST MEB 4 ; 5 ; AUTHOR: H. L. COLEMAN 6 ; MILLIKEN AND COMPANY 7 ; P. O. BOX 1926 8 ; MAIL STOP M-103 9 ; SPARTANBURG, S. C. 29304 10 ; (803)573-2556 11 ; 12 ; VERSION: 01.00 13 ; 14 ; DATE: 30-MAR-78 15 ; 16 ; MODIFICATIONS: 17 ; 18 ; FUNCTION: LOG ALL DATA READ FROM OR WRITTEN TO A TERMINAL ON A 19 ; LOG FILE. 20 ; 21 ; INPUT: 22 ; 23 ; COMMAND LINE OF THE FORM: 24 ; 25 ; LOG LOGFIL=TERMINAL 26 ; 27 ; LOG BUFFERS FROM THE TERMINAL DRIVER. 28 ; 29 ; OUTPUT: 30 ; 31 ; FILE CONTAINING FORMATTED LOG OF ALL TRANSACTIONS ON THE TERMINAL. 32 ; LOG - TERMINAL LOGGER MACRO M1110 11-APR-78 07:34 PAGE 5 34 ; MACRO CALLS AND SYSTEM DEFINITIONS 35 ; 36 .MCALL FINIT$,MSGN$S,EXIT$S,OFNB$W,WTSE$S,CLEF$S 37 .MCALL TCBDF$,UCBDF$,FDOF$L 38 000000 TCBDF$ ;DEFINE TCB OFFSETS 39 000000 UCBDF$ ;DEFINE UCB OFFSETS 40 000000 FDOF$L ;DEFINE FDB OFFSETS LOG - TERMINAL LOGGER MACRO M1110 11-APR-78 07:34 PAGE 6 42 000000 LOG:: FINIT$ ;INITILIZE FCS 000000 004767 000000G JSR PC,.FINIT 43 000004 016701 000000G MOV $TKTCB,R1 ;R1 = A(MY TCB) 44 000010 016100 000026 MOV T.UCB(R1),R0 ;R0 = A(TI: UCB) 45 000014 032760 000010 000012 BIT #U2.PRV,U.CW2(R0) ;PRIVLEDGED TERMINAL ? 46 000022 001015 BNE 1000$ ;IF NE, YES - CONTINUE 47 000024 MSGN$S PFX,3,M001,,,ABORT ;NOT A PRIVLEDGED TERMINAL 000024 004567 000000G JSR R5,$MSGEN ;GO TO MESSAGE GEN ROUTINE 000030 000000G .IIF NB .WORD PFX ;A(MESSAGE PREFIX) 000032 000003 .WORD 3 ;SEVERITY LEVEL 000034 000000G .IIF NB .WORD M001 ;A(MESSAGE TEXT) 000036 000000 000000 .IIF B <> .WORD 0,0 ;NO REPLY 000042 103002 BCC .+6 000044 004767 000344 JSR PC,ABORT 48 000050 EXIT$S ;EXIT 000050 012746 MOV (PC)+,-(SP) 000052 063 001 .BYTE 51.,1 000054 104377 EMT ^O<377> 49 000056 1000$: CALL $LOGCL ;GET AND PARSE COMMAND LINE 000056 004767 000000G JSR PC,$LOGCL 50 000062 OFNB$W #LOGFL ;OPEN THE LOG FILE 000062 012700 000000G MOV #LOGFL,R0 000066 112760 000000G 000043 .IIF NB,#FO.WRT, MOVB #FO.WRT,F.FACC(R0) 000074 004767 000000G JSR PC,.OPFNB 51 000100 103015 BCC 1100$ ;IF CC, OPEN OK 52 000102 MSGN$S PFX,3,M011,,,ABORT ;LOG FILE OPEN ERROR 000102 004567 000000G JSR R5,$MSGEN ;GO TO MESSAGE GEN ROUTINE 000106 000000G .IIF NB .WORD PFX ;A(MESSAGE PREFIX) 000110 000003 .WORD 3 ;SEVERITY LEVEL 000112 000000G .IIF NB .WORD M011 ;A(MESSAGE TEXT) 000114 000000 000000 .IIF B <> .WORD 0,0 ;NO REPLY 000120 103002 BCC .+6 000122 004767 000266 JSR PC,ABORT 53 000126 CALL $LOGER ;PRINT DESCRIPTIVE POOP 000126 004767 000000G JSR PC,$LOGER 54 000132 000000 HALT ;ABORT SO WE CAN SEE DUMP 55 000134 016705 000000G 1100$: MOV TTUCB,R5 ;R5 = A(TERMINAL UCB) 56 000140 010504 MOV R5,R4 ;R4 = A(TERMINAL UCB) 57 000142 062704 000004G ADD #TTLOG+4,R4 ;R4 = A(LOG QUEUE LISTHEAD) 58 000146 005014 CLR (R4) ;INITILIZE LISTHEAD 59 000150 010464 000002 MOV R4,2(R4) 60 000154 010467 000000G MOV R4,LOGLST ;LOGLST = A(LOG QUEUE LISTHEAD) 61 000160 016765 000000G 000002G MOV $HEADR,TTLOG+2(R5) ;SET A(MY HEADER) IN UCB 62 000166 016765 000000G 000000G MOV $TKTCB,TTLOG(R5) ;SET A(MY TCB) IN UCB 63 ; 64 ; LOGGING NOW ACTIVE FOR THIS TERMINAL !!!!!!!!!!! 65 ; 66 000174 016705 000000G MOV CURBUF,R5 ;R5 = A(CURRENT BUFFER) 67 000200 012704 001000 MOV #512.,R4 ;R4 = BUFFER SIZE 68 000204 012700 000014 MOV #14,R0 ;R0 = FORM FEED 69 000210 CALL $LOGPB ;START AT TOP OF PAGE 000210 004767 000000G JSR PC,$LOGPB 70 000214 1200$: WTSE$S #1 ;WAIT FOR SOMETHING TO DO 000214 012746 000001 MOV #1,-(SP) 000220 012746 MOV (PC)+,-(SP) 000222 051 002 .BYTE 41.,2 000224 104377 EMT ^O<377> LOG - TERMINAL LOGGER MACRO M1110 11-APR-78 07:34 PAGE 6-1 71 000226 CLEF$S #1 ;CLEAR THE FLAG 000226 012746 000001 MOV #1,-(SP) 000232 012746 MOV (PC)+,-(SP) 000234 037 002 .BYTE 31.,2 000236 104377 EMT ^O<377> 72 000240 016700 000000G 1300$: MOV LOGLST,R0 ;R0 = A(LISTHEAD) 73 000244 005067 000000G CLR LOGBUF ;LOGBUF = 0 74 000250 CALL $SWSTK,1350$ ;SWITCH TO SYSTEM STACK 000250 104376 EMT 376 000252 000270' .WORD 1350$ 75 000254 CALL $QRMVF ;TRY TO REMMOVE A LOG BUFFER 000254 004767 000000G JSR PC,$QRMVF 76 000260 103402 BCS 1325$ ;IF CS, QUEUE EMPTY 77 000262 010167 000000G MOV R1,LOGBUF ;STORE A(LOG BUFFER) 78 000266 1325$: RETURN ;RETURN TO USER STATE 000266 000207 RTS PC 79 000270 016701 000000G 1350$: MOV LOGBUF,R1 ;R1 = A(LOG BUFFER) 80 000274 001022 BNE 1400$ ;IF NE, WE GOT ONE - PROCESS IT 81 000276 005760 177774 TST -4(R0) ;LOGGING STILL ACTIVE ? 82 000302 001344 BNE 1200$ ;IF NE, YES - GO WAIT FOR SOMETHING TO DO 83 000304 CALL $LOGND ;CLOSE THE LOG FILE 000304 004767 000000G JSR PC,$LOGND 84 000310 MSGN$S PFX,0,M010,,,ABORT ;LOGGING ENDED 000310 004567 000000G JSR R5,$MSGEN ;GO TO MESSAGE GEN ROUTINE 000314 000000G .IIF NB .WORD PFX ;A(MESSAGE PREFIX) 000316 000000 .WORD 0 ;SEVERITY LEVEL 000320 000000G .IIF NB .WORD M010 ;A(MESSAGE TEXT) 000322 000000 000000 .IIF B <> .WORD 0,0 ;NO REPLY 000326 103002 BCC .+6 000330 004767 000060 JSR PC,ABORT 85 000334 EXIT$S ;EXIT 000334 012746 MOV (PC)+,-(SP) 000336 063 001 .BYTE 51.,1 000340 104377 EMT ^O<377> 86 000342 005721 1400$: TST (R1)+ ;BUMP OVER CHAIN WORD 87 000344 105721 TSTB (R1)+ ;TEST TYPE 88 000346 001017 BNE 1600$ ;IF NE, OUTPUT - GO PROCESS IT 89 000350 CALL $LOGIN ;PROCESS INPUT TYPE 000350 004767 000000G JSR PC,$LOGIN 90 000354 016700 000000G 1500$: MOV LOGBUF,R0 ;R0 = A(LOG BUFFER) 91 000360 116001 000004 MOVB 4(R0),R1 ;R1 = DATA LENGTH 92 000364 042701 177400 BIC #177400,R1 ;CLEAR HIGH BYTE 93 000370 062701 000010 ADD #8.,R1 ;ADJUST FOR HEADER AND 94 000374 042701 000003 BIC #3,R1 ;ROUND UP TO 4 BYTE BOUNDRY 95 000400 CALL $DEACB ;DEALLOCATE THE BUFFER 000400 004767 000000G JSR PC,$DEACB 96 000404 000715 BR 1300$ ;GO SEE IF MORE TO DO 97 000406 1600$: CALL $LOGOU ;PROCESS OUTPUT TYPE 000406 004767 000000G JSR PC,$LOGOU 98 000412 000760 BR 1500$ ;GO DEALLOCATE THE BUFFER LOG - TERMINAL LOGGER MACRO M1110 11-APR-78 07:34 PAGE 7 100 ; ABORT THE TASK 101 ; 102 000414 000000 ABORT:: HALT 103 000000' .END LOG LOG - TERMINAL LOGGER MACRO M1110 11-APR-78 07:34 PAGE 7-1 SYMBOL TABLE ABORT 000414RG F.ERR = 000052 N.DID = 000024 T.ASTL 000016 US.CRW= 000004 A$$CHK= 000000 F.FACC= 000043 N.DVNM= 000032 T.ATT 000054 US.DSB= 000010 A$$CPS= 000000 F.FFBY= 000014 N.FID = 000000 T.CPCB 000004 US.ECH= 000002 A$$NSI= 000000 F.FNAM= 000110 N.FNAM= 000006 T.DPRI 000040 US.FOR= 000040 A$$PRI= 000000 F.FNB = 000102 N.FTYP= 000014 T.EFLG 000022 US.FRK= 000002 A$$TRP= 000000 F.FTYP= 000116 N.FVER= 000016 T.IOC 000003 US.LAB= 000004 CURBUF= ****** GX F.FVER= 000120 N.NEXT= 000022 T.LBN 000041 US.MDE= 000002 C$$CDA= 000005 F.HIBK= 000004 N.STAT= 000020 T.LDV 000044 US.MDM= 000020 C$$CKP= 000000 F.LUN = 000042 N.UNIT= 000034 T.LNK 000000 US.MNT= 000100 C$$CSR= 000000 F.MBCT= 000054 PAR$$$= 000027 T.MXSZ 000050 US.OFL= 000001 C$$ORE= 002000 F.MBC1= 000055 PFX = ****** GX T.NAM 000006 US.OUT= 000001 C$$RSH= 177564 F.MBFG= 000056 P$$RFL= 000000 T.OFF 000060 US.PUB= 000004 C$$RTO= 000017 F.NRBD= 000024 P$$RTY= 000000 T.PCB 000046 US.PWF= 000010 C$$RUN= 000000 F.NREC= 000030 Q$$OPT= 000005 T.PRI 000002 US.RED= 000002 C$$R11= 000001 F.OVBS= 000030 R$$JPO= 000000 T.RCVL 000012 US.SHR= 000001 C$$TTY= 177564 F.RACC= 000016 R$$JP1= 000001 T.RRFL 000064 US.SPU= 000002 DV.CCL= 000002 F.RATT= 000001 R$$K11= 000001 T.SRCT 000063 US.UMD= 000010 DV.COM= 020000 F.RCNM= 000034 R$$SND= 000000 T.STAT 000032 US.WCK= 000010 DV.DIR= 000010 F.RCTL= 000017 R$$11M= 000000 T.ST2 000034 U.ACP = 000032 DV.F11= 040000 F.RSIZ= 000002 R$$6OF= 000000 T.ST3 000036 U.ATT 000022 DV.ISP= 002000 F.RTYP= 000000 R$$611= 000001 T.TCBL 000030 U.BUF 000024 DV.MNT= 100000 F.SEQN= 000100 S$$ECC= 000000 T.UCB 000026 U.CBF = 000032 DV.MXD= 000100 F.SPDV= 000072 S$$YSZ= 007600 T2.ABO= 000100 U.CNT 000030 DV.OSP= 004000 F.SPUN= 000074 S.FATT= 000016 T2.AST= 100000 U.CTL 000004 DV.PSE= 010000 F.STBK= 000036 S.FDB = 000140 T2.BFX= 004000 U.CW1 000010 DV.REC= 000001 F.UNIT= 000136 S.FNAM= 000006 T2.CAF= 000400 U.CW2 000012 DV.SDI= 000020 F.URBD= 000020 S.FNB = 000036 T2.CHK= 020000 U.CW3 000014 DV.SQD= 000040 F.VBN = 000064 S.FNBW= 000017 T2.CKD= 010000 U.CW4 000016 DV.SWL= 001000 F.VBSZ= 000060 S.FNTY= 000004 T2.DST= 040000 U.DCB 000000 DV.TTY= 000004 G$$TPP= 000000 S.FTYP= 000002 T2.FXD= 002000 U.LUIC 177774 DV.UMD= 000200 G$$TSS= 000000 S.NFEN= 000020 T2.HLT= 000200 U.OWN 177776 D$$ISK= 000000 G$$TTK= 000000 TS.BLK= 170700 T2.SPN= 000004 U.RED 000002 D$$L11= 000002 H$$RTZ= 000074 TS.CKP= 000200 T2.STP= 000020 U.SCB 000020 D$$YNC= 000000 I$$RAR= 000000 TS.CKR= 000100 T2.TIO= 001000 U.STS 000005 D$$YNM= 000000 I$$RDN= 000000 TS.EXE= 100000 T2.WFR= 000001 U.ST2 000007 E$$XPR= 000000 K$$CNT= 177546 TS.MSG= 020000 T3.ACP= 100000 U.UIC = 000052 FO.WRT= ****** GX K$$CSR= 177546 TS.NRP= 010000 T3.CAL= 000100 U.UNIT 000006 F$$LVL= 000001 K$$IEN= 000115 TS.OUT= 000400 T3.CLI= 001000 U.VCB = 000034 F.ACTL= 000076 K$$LDC= 000001 TS.RDN= 040000 T3.MCR= 004000 U2.AT.= 000020 F.ALOC= 000040 K$$TPS= 000074 TS.RUN= 004000 T3.NET= 000020 U2.CRT= 002000 F.BBFS= 000062 LOG 000000RG TTLOG = ****** GX T3.NSD= 000200 U2.DH1= 100000 F.BDB = 000070 LOGBUF= ****** GX TTUCB = ****** GX T3.PMD= 040000 U2.DJ1= 040000 F.BGBC= 000057 LOGFL = ****** GX T$$ACR= 000000 T3.PRV= 010000 U2.DZ1= 000100 F.BKDN= 000026 LOGLST= ****** GX T$$BTW= 000000 T3.REM= 020000 U2.ESC= 001000 F.BKDS= 000020 L$$ASG= 000000 T$$BUF= 000000 T3.ROV= 000040 U2.HLD= 000040 F.BKEF= 000050 L$$PTO= 000017 T$$CCO= 000000 T3.RST= 000400 U2.LOG= 000400 F.BKP1= 000051 L$$P11= 000001 T$$CTR= 000000 T3.SLV= 002000 U2.LWC= 000001 F.BKST= 000024 M$$CRB= 000124 T$$J16= 000001 UC.ALG= 000200 U2.L3S= 000004 F.BKVB= 000064 M$$CRX= 000000 T$$KMG= 000000 UC.ATT= 000010 U2.L8S= 010000 F.CHR = 000075 M$$FCS= 000000 T$$LWC= 000000 UC.KIL= 000004 U2.NEC= 004000 F.CNTG= 000034 M$$MGE= 000000 T$$RNE= 000000 UC.LGH= 000003 U2.PRV= 000010 F.DFNB= 000046 M$$OVR= 000000 T$$RPR= 000000 UC.NPR= 000100 U2.RMT= 020000 F.DSPT= 000044 M001 = ****** GX T$$RUB= 000000 UC.PWF= 000020 U2.R04= 100000 F.DVNM= 000134 M010 = ****** GX T$$SYN= 000000 UC.QUE= 000040 U2.SLV= 000200 F.EFBK= 000010 M011 = ****** GX T$$TRW= 000000 US.ABO= 000001 U2.VT5= 000002 F.EFN = 000050 N$$LDV= 000001 T$$VBF= 000000 US.BSP= 000002 U2.7CH= 010000 F.EOBB= 000032 N$$MOV= 000041 T.ACTL 000052 US.BSY= 000200 V$$CTR= 001000 LOG - TERMINAL LOGGER MACRO M1110 11-APR-78 07:34 PAGE 7-2 SYMBOL TABLE V$$RSN= 000031 $LOGER= ****** GX $LOGPB= ****** GX $TKTCB= ****** GX .FINIT= ****** G $DEACB= ****** GX $LOGIN= ****** GX $MSGEN= ****** GX $T$LOG= 000000 .OPFNB= ****** G $HEADR= ****** GX $LOGND= ****** GX $QRMVF= ****** GX $$$T1 = 000067 ...TPC= 000140 $LOGCL= ****** GX $LOGOU= ****** GX . ABS. 177776 000 000416 001 ERRORS DETECTED: 0 VIRTUAL MEMORY USED: 4618 WORDS ( 19 PAGES) DYNAMIC MEMORY: 5836 WORDS ( 22 PAGES) ELAPSED TIME: 00:00:20 LOG,[203,34]LOG/CR=[1,1]EXEMC/ML,[202,1]MAC/ML,[203,1]RSXMC/PA:1,LOG LOG CREATED BY MACRO ON 11-APR-78 AT 07:34 PAGE 1 SYMBOL CROSS REFERENCE CREF V01 SYMBOL VALUE REFERENCES ABORT 000414 RG 6-47 6-47 6-52 6-52 6-84 6-84 #7-102 CURBUF = ****** GX 6-66 FO.WRT = ****** GX 6-50 F.FACC = 000043 *6-50 LOG 000000 RG #6-42 7-103 LOGBUF = ****** GX *6-73 *6-77 6-79 6-90 LOGFL = ****** GX 6-50 6-50 LOGLST = ****** GX *6-60 6-72 M001 = ****** GX 6-47 M010 = ****** GX 6-84 M011 = ****** GX 6-52 PAR$$$ = 000027 #6-50 6-50 PFX = ****** GX 6-47 6-52 6-84 TTLOG = ****** GX 6-57 *6-61 *6-62 TTUCB = ****** GX 6-55 T.UCB 000026 6-44 U.CW2 000012 6-45 U2.PRV = 000010 6-45 $DEACB = ****** GX 6-95 $HEADR = ****** GX 6-61 $LOGCL = ****** GX 6-49 $LOGER = ****** GX 6-53 $LOGIN = ****** GX 6-89 $LOGND = ****** GX 6-83 $LOGOU = ****** GX 6-97 $LOGPB = ****** GX 6-69 $MSGEN = ****** GX 6-47 6-52 6-84 $QRMVF = ****** GX 6-75 $TKTCB = ****** GX 6-43 6-62 $$$T1 = 000067 #6-47 6-47 6-47 6-47 #6-52 6-52 6-52 6-52 #6-84 6-84 6-84 6-84 .FINIT = ****** G 6-42 6-42 .OPFNB = ****** G 6-50 6-50 LOG CREATED BY MACRO ON 11-APR-78 AT 07:34 PAGE 2 MACRO CROSS REFERENCE CREF V01 MACRO NAME REFERENCES CALL #6-47 #6-49 #6-52 #6-53 #6-69 #6-74 #6-75 #6-83 #6-84 #6-89 #6-95 #6-97 CLEF$S #5-36 6-71 CMOV$B #6-50 #6-50 #6-50 #6-50 #6-50 #6-50 CMOV$W #6-50 6-50 6-50 6-50 #6-50 6-50 6-50 DIR$ #6-48 6-48 #6-70 6-70 #6-71 6-71 #6-85 6-85 ERR$ #6-47 6-47 #6-50 6-50 #6-52 6-52 #6-84 6-84 EXIT$S #5-36 6-48 6-85 FDOFF$ #5-40 #5-40 FDOF$L #5-37 #5-40 FDOP$R #6-50 #6-50 FDRC$R #6-50 6-50 FINIT$ #5-36 6-42 LDFDB$ #6-50 6-50 #6-50 6-50 MOV$ #6-70 6-70 #6-71 6-71 MSGN$S #5-36 6-47 6-52 6-84 OFNB$ #6-50 6-50 OFNB$W #5-36 #6-50 RETURN 6-78 TCBDF$ #5-37 5-38 UCBDF$ #5-37 5-39 WTSE$S #5-36 #6-70