Trailing-Edge
-
PDP-10 Archives
-
BB-H138A-BM
-
3a-sources/sysers.mac
There are 16 other files named sysers.mac in the archive. Click here to see a list.
;<BAKER.SYSERR>SYSERS.MAC.7, 28-Jul-78 13:43:21, Edit by BAKER
;<BAKER.SYSERR>SYSERS.MAC.6, 21-Jul-78 13:25:28, Edit by BAKER
;<BAKER.SYSERR>SYSERS.MAC.5, 21-Jul-78 09:27:21, Edit by BAKER
;<BAKER.SYSERR>SYSERS.MAC.4, 20-Jul-78 17:24:20, Edit by BAKER
;<BAKER.SYSERR>SYSERS.MAC.3, 12-Jul-78 11:26:27, Edit by BAKER
;<SYSERR>SYSERS.MAC.1, 22-Jun-78 11:22:25, EDIT BY WOJCIK
;HERE WE BEGIN TO TRACK EDITS
TITLE SYSERS -- SUMMARY LISTING ROUTINES
SUBTTL VERSION 12(763) K. COYE/ RLD/ PJB/ ES/ TJW
;COPYRIGHT (C) 1972,1975,1977,1978 BY
;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
;TRANSFERED.
;
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
SEARCH SYRUNV ;OUR UNIVERSAL FILE
SEARCH SYRLOW
;*; SEARCH SCNMAC
.REQUIRE SYRLIB
SALL
TWOSEG
.JBVER==137
LOC .JBVER
BYTE (3)VWHO(9)VSYSER(6)VMINOR(18)VEDIT
;EXTERNALS DEFINED HERE ARE IN SYRLIB.MAC, THE LIBRARY
;OF COMMON ROUTINES FOR ALL PARTS OF THE SYSERR PACKAGE.
EXTERNAL HEADRD,ABORT,CHRCHK,DATECK,FILERR,TOOBIG,MBCHAR
EXTERNAL CNISUM,BADNAM,MASSVM,DEVCHK,ERRINT,SKIPIT,IDCHK
EXTERNAL STRCHK,DETCHK,DMPENT,HDRLST,PAGXCD,DVCHAR,TMCHAR
EXTERNAL SAYDAY,GETNBS,.OCTLE,.DECML,.ASCIE,.SIXBT
EXTERNAL .HAFWD,.SPECL,.HTIME,.PPNWW,.ODECW,.UDATE,.TASCI,.PPNWT
EXTERNAL .TDIRW,R5VSIX,MONVER,BADADD,TAB031,TYPAST,BLDPTR
EXTERNAL ACLST,SAVE4P,RET4P,HWDUMP,TYPBCD,LSTEB,JFLOOP,CNIDCD
EXTERNAL XORTAB,BITLST,.DVTAB,.MXBLK,.TRBLK,.SUBLK,.SECBK
EXTERNAL WDCNT,COMPAR,SKPRTN,TYPNBS,SKIPWD,ADVBFF
EXTERNAL FIXBUF,STBUFF,INPWD,GOSUM,GETWD,FFPRNT,SLPRNT,CLPRNT
EXTERNAL TBPRNT,CHROUT,TTYSIX,MDECHR,FIXNAM,VERED,TTLS1
;INTERNALS DEFINED HERE ARE FOR USE BY SYRLIB
INTERNAL KONMSK,KLEDMP,MINERB,DEVDSP,MASLTH,ALLTBL
INTERNAL NAMLTH,TYPMES,LINE,ALLLTH,NAMTBL,DUMDAY
INTERNAL DEVTYP,ERINDX,PCSTBL,PDLPNT,BITCHK,ERRLTH
INTERNAL MASNAM,ERRTBL,SUMUPD,MASLT2,MDE000
RELOC 400000
;SUMLST -- SUBROUTINE TO LIST SUMMARY DATUM ON REQUEST
;SUMMARY TOTALS ARE STORED IN WORDS SUMFST THRU SUMEND
;ROUTINE WILL CHECK E.LSUM BIT AND OUTPUT DATA ON A ENTRY
;BY ENTRY TYPE BASIS
;ENTRIES NOT USED WILL CONTAIN POPJ IN DISPATCH TABLE
;DUMMY ROUTINES DEFINED HERE TO ALLOW COMPILE
;WITH SYRLIB
MDE000:
BITCHK:
DEVTYP:
DUMDAY:
ERINDX:
ERRLTH:
ERRTBL:
KLEDMP:
KONMSK:
LINE:
MINERB:
PCSTBL:
START: MOVE P,PDLPNT ;RESET THE STACK
MOVEI T1,CHROUT ;OUR TYPO ROUTINE
PUSHJ P,.TYOCH## ;INIT SCAN ROUTINES
TRNE F,F.SEQ ;/SEQ?[532]
JRST GOBACK ;NO SUMMARY LISTING NECESSARY
PUSHJ P,TTLST ;TYPE TITLE LINE
TYPEIT <
- SYSTEM SUMMARY -
************************************************************************
>
PUSHJ P,SUMUPD ;GO UPDATE ALL COUNTERS
PUSHJ P,ENVLST ;GO DO ENVIRONMENT TYPEOUT
;THINGS LIKE VERSION,FILE SPECS,SWITCHES,ETC.
PUSHJ P,TOTPRT ;PRINT OCCURANCE COUNTS
MOVSI P4,ENTLTH ;SETUP AOBJ POINTER TO ENTCHR TABLE
MOVNS P4,P4
SMLOOP: MOVE T1,ENTCHR(P4)
TRNN T1,E.RCNT ;ANY ENTRIES PROCESSED AT ALL?
JRST SMBUMP ;BUMP AND GO
TLNN T1,E.LSUM
JRST SMBUMP ;TRY NEXT
PUSH P,P4 ;SAVE POINTER
HRRZ T1,P4
PUSHJ P,ERRINS ;GO FIND CORRECT INDEX
HRRZ P4,T4 ;RESTORE POINTER
PUSHJ P,@SUMDSP(P4) ;GO PROCESS SUMMARY LISTING
POP P,P4 ;RESTORE POINTER
SMBUMP: AOBJN P4,SMLOOP
JRST GOBACK ;SUMMARY DONE RETURN TO SYSERR.
;HERE WHEN THE SUMMARY IS DONE TO REPLACE THIS
;SEGMENT WITH SYSERR AND START OVER AGAIN.
GOBACK: PUSHJ P,.TCRLF
CLOSE INPCHN,
CLOSE OUTCHN, ;CLOSE ALL FILES
MOVE T1,[SIXBIT/SYSERR/]
MOVEM T1,OVRBLK+1 ;CORRECT SPOT IN SPEC AREA.
SETZ 15,
MOVE 11,OVRBLK ;THIS IS THE DEVICE SYSERR
MOVE 7,OVRBLK+4 ;WAS ORIGINALLY CALLED FROM.WE
;WILL PRESERVE IT ACROSS THE GETSEG
;IN THE AC IT ORIGINALLY WAS
;FOUND AND SYSERR WILL RETURN IT
;TO OVRBLK AFTER CLEARING ALL
;THE LOW SEG STORAGE AREA.
MOVE 7,OVRBLK+4 ;DO THE SAME FOR [P,PN] ALSO
MOVEM 17,SAVEAC+17 ;SAVE THE AC'S
MOVEI 17,SAVEAC
BLT 17,SAVEAC+16
JRST OVRLAY ;REPLACE US PLEASE WITH SYSERR!!!
;TTLST -- SUBROUTINE TO OUTPUT TITLE BLOCK
;INFO OUTPUT IS DATE AND TIME AND USER REQUESTED STRING
;CALL PUSHJ P,TTLST
;
;RETURN CALL+1
;DOES NOT CHECK PAGE LIMIT FOR SYSERS
TTLST: MOVEI T1,14
PUSHJ P,CHROUT ;DO FORM FEED
AOS ,PAGNUM
PJRST TTLS1
;TOTPRT PRINTS OUT A TOTAL OF EACH ERROR TYPE
TOTPRT: TYPEIT <
ENTRY OCCURANCE COUNTS>
MOVSI P4,ENTLTH ;SETUP AOBJ POINTER TO ENTCHR TABLE
MOVNS P4,P4
TOTCON: HRRZ P3,ENTCHR(P4) ;PICKUP ENTCHR WORD
ANDI P3,E.RCNT ;[304]GET COUNT OF ENTRIES
JUMPE P3,CNTINC ;JUST BUMP AOBJ POINTER IF = 0
PUSH P,P4 ;SAVE POINTER
HRRZ T1,P4 ;SAME AS ERTYPE
PUSHJ P,ERRINS ;FIND INDEX TO MESSAGES
HRR P4,T4 ;RESTORE THE INDEX
TOTTYP: TYPEIT <
TOTAL >
MOVE T1,TYPMES(P4) ;GET ADDRESS OF ENTRY HEADER
PUSHJ P,.TSTRG
TYPEIT <: >
MOVE T1,P3 ;GET THE COUNT
PUSHJ P,.ODECW
POP P,P4 ;RESTORE IT INDEX
CNTINC: AOBJN P4,TOTCON ;BUMP COUNTER & TRY AGAIN
POPJ P,0
;ERRINS--ROUTINE TO FIND OUR INDEX INTO HEADERS,ETC
; T1=ERRTYPE
;CALL PUSHJ P,ERRINS
ERRINS: MOVEI T2,ALLLTH ;LENGTH OF TABLE
SETZB T3,T4 ;SOME WORK SPACE
ERRIS1: HRRZ T3,ALLTBL(T4) ;GET NEXT INDEX VALUE [724]
CAMN T1,T3 ;MATCH?
JRST ERRIS2 ;YES
AOS T4 ;UPDATE
CAIE T4,ALLLTH+1 ;END OF TABLE?
JRST ERRIS1 ;NOT YET
POPJ P,0 ;SOMETHING IS IN T4
ERRIS2: MOVEM T4,ALLIND ;STORE GOOD INDEX VALUE
POPJ P,0 ;AND RETURN
;ENVLST -- SUBROUTINE TO LIST ENVIRONMENT INFORMATION AT SUMMARY TIME
;CALL PUSHJ P,ENVLST
;TYPES SYSERR VERSION NUMBER,FILE SPECS,SWITCHES
;RETURN CALL+1
ENVLST: TYPEIT <
FILE ENVIRONMENT>
TYPEIT <
SYSERR VERSION >
PUSHJ P,VERED
TYPEIT <
INPUT FILES: >
MOVE T1,I.DEV ;GET INPUT DEV
CAME T1,[SIXBIT/QAP/] ;DEFAULT FOR TOPS20?
JRST ENVLSA ;NO
MOVE T1,[SIXBIT/SYS/] ;CHANGE BACK FOR OUTPUT
MOVEM T1,I.DEV
ENVLSA: MOVEI T1,I.ST
PUSHJ P,.TFBLK ;TYPE INPUT FILE SPEC
TLNN F,F.DISK ;DID WE DO EXTENDED LOOKUP ON INPUT DEV
JRST SHRTDT ;NO ,DO OUTPUT FOR SHORT LOOKUP
TYPEIT < CREATED: >
SKIPE TOPMON ;TOPS20 RUNNING
JRST ENVLS1
MOVE T1,FILDAT
PUSHJ P,TYPNBS
JRST ENVLS2 ;GO AROUND TOPS20
ENVLS1: HRROI T1,DATLOC ;WHERE TO STORE IT
HRLZI T3,202100 ;FORMAT FOR OUTPUT
MOVE T2,FILDAT ;WHAT TO CONVERT
ODTIM
HRRZI T1,DATLOC
PUSHJ P,.TSTRG ;NOW LIST IT
ENVLS2: SKIPE CURIND ;MORE THAN 1 FILE PROCESSED?
PUSHJ P,EXTFIL ;LIST OTHER FILES TOO
;(107)
ENVCON: TYPEIT <
OUTPUT FILE: >
MOVEI T1,O.ST
PUSHJ P,.TFBLK ;TYPE OUTPUT SPECIFICATION
TYPEIT <
SWITCHES: >
MOVSI P4,FLGSTP ;SETUP FOR AOBJ OF FLAG TABLE
MOVNS P4,P4
;DON'T DO /BEGIN OR /END YET
SWTCON: SKIPN T1,FLGST(P4) ;SWITCH TYPED BY USER?
PUSHJ P,TYPSWT ;GO TYPE IT
AOBJN P4,SWTCON ;LOOP
DEVSW: MOVE T1,[-1]
CAMN T1,DEV ;HAS DEV BEEN MODIFIED?
JRST NDEVSW ;NO.
TYPEIT (/DEV:) ;YES, LIST THIS SWITCH.
MOVE T1,DEV ;GET WHAT THE USER TYPED.
PUSHJ P,.TSIXN ;AND OUTPUT IT.
NDEVSW: MOVE T1,[-1] ;ADDED WITH [325]
CAMN T1,NDEV ;HAS NDEV BEEN MODIFIED?
JRST SWESW ;NO.
TYPEIT (/NDEV:) ;YES, LIST THIS SWITCH.
MOVE T1,NDEV ;GET WHAT THE USER TYPED.
PUSHJ P,.TSIXN ;AND OUTPUT IT.
SWESW: MOVEI T1,SWEDEF
CAMN T1,SWE ;HAS DEFAULT BEEN USED?
JRST SRESW ;IT IS DEFAULT, USER DIDN'T SPECIFY.
TYPEIT (/SWE:) ;IT'S BEEN CHANGED.
MOVE T1,SWE
PUSHJ P,.ODECW ;OUTPUT VALUE TYPED.
SRESW: MOVEI T1,SREDEF
CAMN T1,SRE ;IS SRE DEFAULT?
JRST IDSW ;YES
TYPEIT (/SRE:) ;NO, USER USED IT
MOVE T1,SRE
PUSHJ P,.ODECW ;DUMP ITS VALUE.
IDSW: MOVE T1,[-1]
CAMN T1,ID ;USER MODIFY ID?
JRST DETSW ;NOPE
TYPEIT (/ID:)
MOVE T1,ID ;YES, SAY SO
PUSHJ P,.TSIXN
DETSW: TLNN F,F.DET ;SAID /DETAIL?
JRST TRYSW ;NO
TYPEIT (/DETAIL:) ;YES SAYSO
MOVE T1,DETAIL ;GET CONTENTS
PUSHJ P,.TDECW ;IN DECIMAL
TRYSW: TLNN F,F.TRY ;SAID /RETRY?
JRST BEGCHK ;NO
TYPEIT (/RETRY:) ;YES
MOVE T1,RETRY
PUSHJ P,.ODECW ;ALL PART OF EDIT 126
BEGCHK: SKIPGE P4,BEGIN ;DID USER TYPE /BEGIN?
JRST ENDCHK ;NO
TYPEIT < /BEGIN: >
MOVE T1,P4 ;PICKUP DATE USER TYPED
PUSHJ P,TYPNBS ;TYPE DECODED VALUE
ENDCHK: SKIPGE P4,END ;DID HE SAY /END
JRST FSTDAT
TYPEIT < /END: >
MOVE T1,P4 ;PICKUP WHAT USER TYPED FOR END DATE
PUSHJ P,TYPNBS
FSTDAT: TYPEIT <
DATE OF FIRST ENTRY PROCESSED: >
SKIPE TOPMON ;TOPS20 RUNNING?
JRST FSTDA1 ;YES
MOVE T1,FILEST
PUSHJ P,TYPNBS
JRST FSTDA2 ;GO AROUND TOPS20
FSTDA1: HRROI T1,DATLOC ;WHERE TO STORE IT
HRLZI T3,202100 ;FORMAT FOR OUTPUT
MOVE T2,FILEST ;WHAT TO CONVERT
ODTIM
HRRZI T1,DATLOC
PUSHJ P,.TSTRG ;NOW LIST IT
FSTDA2: TYPEIT <
DATE OF LAST ENTRY PROCESSED: >
SKIPE TOPMON ;TOPS20 RUNNING?
JRST FSTDA3 ;YES
MOVE T1,FILEND
PUSHJ P,TYPNBS
JRST FSTDA4 ;GO AROUND TOPS20
FSTDA3: HRROI T1,DATLOC ;WHERE TO STORE IT
HRLZI T3,202100 ;FORMAT FOR OUTPUT
MOVE T2,FILEND ;WHAT TO CONVERT
ODTIM
HRRZI T1,DATLOC
PUSHJ P,.TSTRG ;NOW LIST IT
;[223]
FSTDA4: ;[532]
TYPEIT <
NUMBER OF ENTRIES PROCESSED: >
MOVE T1,SEQNUM ;GET LAST SEQUENCE NUMBER
PUSHJ P,.ODECW ;WITH A "."
;END [532]
TYPEIT <
# OF INCONSISTENCIES DETECTED IN ERROR FILE: >
MOVE T1,FILCNT
PUSHJ P,.ODECW ;IN DECIMAL
;END 223
POPJ P,0
TYPSWT: TYPEIT </>
MOVE T1,SWTABN(P4)
PUSHJ P,.TSIXN
POPJ P,0
;A SHORT ROUTINE TO OUTPUT CREATION DATE/TIME
;OF A FILE WITH A SHORT LOOKUP. NOTE THAT
;FILDAT WAS USED BUT IS NOT WHAT SOMEONE ELSE
;****EDIT 107****
;EXTFIL -- CALLED BY ENVLST TO LIST OTHER INPUT FILES
; SUCH AS ERROR.X01 THRU ERROR.X77 IF THEY WERE READ.
EXTFIL: MOVEI P4,1 ;INIT PASS COUNTER
HRLZI T1,'X00' ;FIRST EXTENSION
MOVEM T1,I.EXT ;SETUP
SKIPN P3,FILDAT(P4) ;NEXT FILDAT = 0?
POPJ P,0 ;YES-THATS ALL
HLRZ T1,I.EXT ;GET LAST EXT
ADDI T1,1
TRNN T1,7 ;SIXBIT CARRY
ADDI T1,100-10 ;FIX IT
HRLZM T1,I.EXT ;PUT IT BACK
TYPEIT <
>
MOVEI T1,I.ST ;SETUP
PUSHJ P,.TFBLK ;LIST
TYPEIT < CREATED >
MOVE T1,FILDAT(P4) ;GET CREATION DATE
PUSHJ P,TYPNBS ;LIST IT TOO
AOJA P4,EXTFIL+3 ;BUMP & TRY NEXT
;MIGHT EXPECT.!!
SHRTDT: TYPEIT < CREATED: >
HLRZ T1,FILDAT ;GET DATE PORTION.
PUSHJ P,.TDATE ;OUTPUT IT
JRST ENVCON ;NOW GO DO THE REST.
;SUMUPD -- SUBROUTINE TO AUTOMATICALLY UPDATE ALL PERMANENT
;SUMMARY COUNTERS PRIOR TO SUMMARY LISTING
;A DUMMY MACRO DUMFLG IS USED TO GENERATE
;THE NECESSARY CODE AS FOLLOWS
;SKIPE T1,XXXTMP ;PICKUP TEMP COUNTER
;ADDM T1,XXXPER ;INCREMENT PERM COUNTER
;DO NEXT COUNTER SAME.......
;modified by edit #110
DEFINE TBLFLG(A)<
setz t1,
exch t1,a'TMP
ADDM T1,A'PER
>
;NOW THE ACTUAL CODE GENERATION
; XLIST
SUMUPD: DUMFLG
LIST
;NOW GENERATE THE SOFTWARE SUMMARY COUNTERS UPDATE
;also modified by edit #110
DEFINE DUMDV(A)<
ZZ==0
REPEAT NUMSFB,<
setz t1,
exch t1,a'ST+zz
ADDM T1,A'SP+ZZ
ZZ==ZZ+1
>>
; XLIST
; DUMDP
; DUMFH
; DUMRP
LIST
XLIST
DUMDP
DUMFH
DUMRP
LIST
POPJ P,0 ;RETURN
SUBTTL TOPS-10 SUMMARY LISTING ROUTINES
SALL
;SMLXXX -- SUBROUTINES TO LIST SUMMARY DATUM
;CALL PUSHJ P,@SUMDSP(ERROR CODE)
;
;RETURN CALL+1
SML1: SKIPN RLDWHY ;EDIT #106 SKIP IF NO RELOADS
POPJ P,0 ;DON'T BOTHER
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF ;SOME SPACE
MOVE T1,TYPMES(P4) ;GET HEADER TEXT
PUSHJ P,.TSTRG
TYPEIT <
RELOAD BREAKDOWN:> ;WHAT WE'RE DOING
MOVEI P3,RLDWHY ;POINTER
SL1A: HLRZ P3,(P3) ;GET NEXT POINTER
JUMPE P3,.POPJ## ;ALL DONE
MOVEI P1,[ASCIZ\
\] ;ONE PER LINE
MOVE P2,1(P3) ;GET REASON
PUSHJ P,.SIXBT ;PUBLISH
MOVEI P1,[ASCIZ\ \] ;SPACE OVER
HRRZ P2,(P3) ;GET COUNT
PUSHJ P,.DECML ;GET IT IN PRINT
JRST SL1A ;AND GET NEXT
SML2: SKIPN MSEWHY ;EDIT #113 SKIP IF NO STOPCD'S
POPJ P,0 ;DON'T BOTHER
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF ;SOME SPACE
MOVE T1,TYPMES(P4) ;GET HEADER TEXT
PUSHJ P,.TSTRG
TYPEIT <
STOPCD BREAKDOWN:> ;WHAT WE'RE DOING
TYPEIT <
TOTAL # OF DEBUG STOPCD'S: >
MOVE T1,NDSPER ;GET THAT NUMBER
PUSHJ P,.ODECW ;WITH A .
TYPEIT <
TOTAL # OF JOB STOPCD'S: >
MOVE T1,NJSPER ;THATONE TOO
PUSHJ P,.ODECW
MOVEI P3,MSEWHY ;POINTER
SL2A: HLRZ P3,(P3) ;GET NEXT POINTER
JUMPE P3,.POPJ## ;ALL DONE
MOVEI P1,[ASCIZ\
\] ;ONE PER LINE
MOVE P2,1(P3) ;GET REASON
PUSHJ P,.SIXBT ;PUBLISH
MOVEI P1,[ASCIZ\ \] ;SPACE OVER
HRRZ P2,(P3) ;GET COUNT
PUSHJ P,.DECML ;GET IT IN PRINT
JRST SL2A ;AND GET NEXT
SML3: PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
MOVE T1,TYPMES(P4) ;PICKUP ERROR HEADER MESSAGE
PUSHJ P,.TSTRG
TYPEIT <
REPRODUCIBLE: >
MOVE T1,TPEPER
PUSHJ P,.ODECW
TYPEIT <
NON-REPRODUCIBLE: >
MOVE T1,SPEPER
PUSHJ P,.ODECW
TYPEIT <
USER-ENABLED: >
MOVE T1,UEPPER
PUSHJ P,.ODECW
TYPEIT <
DETECTED BY DATA
CHANNEL BUT NOT
SEEN BY CPU: >
MOVE T1,PCSPER
PUSHJ P,.ODECW
POPJ P,0
SML4: PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
MOVE T1,TYPMES(P4) ;PICKUP ERROR HEADER MESSAGE
PUSHJ P,.TSTRG
TYPEIT <
REPRODUCIBLE: >
MOVE T1,TNEPER
PUSHJ P,.ODECW
TYPEIT <
NON-REPRODUCIBLE: >
MOVE T1,SNEPER
PUSHJ P,.ODECW
TYPEIT <
USER-ENABLED: >
MOVE T1,NUEPER
PUSHJ P,.ODECW
TYPEIT <
DETECTED BY DATA
CHANNEL BUT NOT
SEEN BY CPU: >
MOVE T1,NCSPER
PUSHJ P,.ODECW
POPJ P,0
SML5: POPJ P,0 ;NOTHING TO LIST
SML6: PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
MOVE T1,TYPMES(P4) ;PICKUP HEADER TEXT
PUSHJ P,.TSTRG
TYPEIT <
NXM'S OR OVERRUNS
SEEN BY CHANNEL: >
MOVE T1,NXMPER
PUSHJ P,.ODECW
TYPEIT <
MEM PE SEEN BY CHANNEL: >
MOVE T1,MPEPER
PUSHJ P,.ODECW
TYPEIT <
CONTROLLER DATA PE
OR CCW TERM CHK FAILURES: >
MOVE T1,DPEPER
PUSHJ P,.ODECW
POPJ P,0
SML7: POPJ P,0 ;NOTHING TO LIST
SML10: HRRZI P1,-NUMRPB ;START SETUP
HRLZI P2,-DPANUM-DPBNUM ;CHECK 16
HRRI P2,DPALOC ;START HERE
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL10A ;CHECK DPC'S
PUSHJ P,RPTITL ;PRINT RP10 CONTROLLER HEADER
MOVSI P2,-NUMRPB ;PICKUP COUNT OF NUMBER OF ENTRIES
MOVE P3,[XWD -DPANUM-DPBNUM,DPALOC]
PUSHJ P,DEVSUM ;GO PUBLISH RP TOTALS FOR CONTROLLER A
SL10A: HRRZI P1,-NUMRPB ;SETUP
HRLZI P2,-DPCNUM-dpdnum ;16 AGAIN
HRRI P2,DPCLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST ;ANY TO DO
JRST SL10B ;NO-HOW ABOUT FHA'S
PUSHJ P,RPTITL ;GO PRINT SOMETHING NICE
MOVSI P2,-NUMRPB ;COUNT OF ENTRIES
MOVE P3,[XWD -DPCNUM-DPDNUM,DPCLOC]
PUSHJ P,DEVSUM ;GO PUBLISH THESE TOTALS
SL10B: HRRZI P1,-NUMRCB
HRLZI P2,-FHANUM-FHBNUM ;16
HRRI P2,FHALOC ;STARTING HERE
HRLZI P3,DEVDSP ;CONTROLLER ENTRIES
PUSHJ P,CHKLST ;LIST?
JRST SL10C ;NO-TRY FHC'S
PUSHJ P,FHTITL ;GO PRINT FH TITLE.
MOVSI P2,-NUMRCB ;PICKUP COUNT OF NUMBER OF RC ENTRIES/BLOCK
MOVE P3,[XWD -FHANUM-FHBNUM,FHALOC]
PUSHJ P,DEVSUM
SL10C: HRRZI P1,-NUMRCB
HRLZI P2,-FHCNUM-FHDNUM
HRRI P2,FHCLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL10D ;TRY FSA'S
PUSHJ P,FHTITL
MOVSI P2,-NUMRCB ;SETUP
MOVE P3,[XWD -FHCNUM-FHDNUM,FHCLOC]
PUSHJ P,DEVSUM
SL10D: SKIPE MASONE ;ANY CODE 11 ENTRIES?
POPJ P,0 ;YES-LIST SEPARATELY
HRRZI P1,-NUMRHB
HRLZI P2,-FSANUM-FSBNUM
HRRI P2,FSALOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL10E ;NOTHING TO LIST HERE
PUSHJ P,TTLST ;TYPE TITLE LINE
PUSHJ P,RH11TLE ;LIST RH10 HEADER
MOVSI P2,-NUMRHB ;COUNT OF ENTRIES.
MOVE P3,[XWD -FSANUM-FSBNUM,FSALOC]
PUSHJ P,DEVSUM
SL10E: HRRZI P1,-NUMRHB
HRLZI P2,-FSCNUM-FSDNUM
HRRI P2,FSCLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST ;ANYTHING THERE?
POPJ P,0 ;NO,WE'RE DONE
PUSHJ P,TTLST ;TYPE TITLE LINE
PUSHJ P,RH11TL
MOVSI P2,-NUMRHB
MOVE P3,[XWD -FSCNUM-FSDNUM,FSCLOC]
PUSHJ P,DEVSUM
POPJ P,0
SML11: HRRZI P1,-NUMRHB
HRLZI P2,-FSANUM-FSBNUM
HRRI P2,FSALOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST ;LIST HEADER?
JRST SL11A ;NO CHECK FSC'S
;[551]
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,TTLST ;TYPE TITLE LINE
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
;END [551]
MOVSI P2,-NUMRHB
MOVE P3,[XWD -FSANUM-FSBNUM,FSALOC] ;SETUP
PUSHJ P,DEVSUM ;CONTROLLER & SOFTWARE DETECTED
SL11A: HRRZI P1,-NUMRHB ;SETUP FOR FSC'S
HRLZI P2,-FSCNUM-FSDNUM ;16 AS USUAL
HRRI P2,FSCLOC ;START HERE
HRLZI P3,DEVDSP ;WITH THIS TABLE
PUSHJ P,CHKLST
JRST SL11B ;NO-GO CHECK RPA'S
;[551]
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
;END [551]
MOVSI P2,-NUMRHB
MOVE P3,[XWD -FSCNUM-FSDNUM,FSCLOC]
PUSHJ P,DEVSUM
SL11B: HRRZI P1,-NUMRHB ;NOW FOR RP04'S
HRLZI P2,-RPANUM-RPANUM ;16
HRRI P2,RPALOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST ;CHECK AGAIN
JRST SL11C
;[551]
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
;END [551]
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPANUM-RPBNUM,RPALOC]
PUSHJ P,DEVSUM
SL11C: HRRZI P1,-NUMRHB
HRLZI P2,-RPCNUM-RPDNUM
HRRI P2,RPCLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL11D ;NOTHING-START ON DEVICES
;[551]
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
;END [551]
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPCNUM-RPDNUM,RPCLOC]
PUSHJ P,DEVSUM
;NOW TO LIST DEVICE DETECTED ERROR SUMMARIES
SL11D: HRRZI P1,-NURS02 ;# OF COUNTERS
HRLZI P2,-FSANUM-FSBNUM
HRRI P2,0 ;START AT ZERO
HRRZI P3,MASDSP ;DO MASSBUS TABLES
PUSHJ P,CHKLST
JRST SL11E ;NOTHING -CHECK FSC'S
PUSHJ P,RS4TTL ;FIRST FOR RS04'S
MOVSI P2,-NURS02 ;# ENTRIES PER DEV
MOVE P3,[XWD -FSANUM-FSBNUM,0] ;# DEVS, WHERE TO START
PUSHJ P,MDESUM ;FOR THESE TYPES REGISTERS
SL11E: HRRZI P1,-NURS02
HRLZI P2,-FSCNUM-FSDNUM
HRRI P2,FSANUM+FSBNUM ;START AT RIGHT PLACE
HRRZI P3,MASDSP
PUSHJ P,CHKLST ;CHECK
JRST SL11F ;BUT SOMEPLACE ELSE
PUSHJ P,RS4TTL
MOVSI P2,-NURS02
MOVE P3,[XWD -FSCNUM-FSDNUM,FSANUM+FSBNUM]
PUSHJ P,MDESUM
SL11F: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPANUM-RPBNUM
HRRI P2,FSXNUM ;START AFTER FSX'S
HRRZI P3,MASDSP
PUSHJ P,CHKLST
JRST SL11G ;GO CHECK RPC'S
PUSHJ P,RP4TTL ;I HOPE IT ALL FITS
MOVSI P2,-NURP02-NURP10-NURP15 ;# PER DEV
MOVE P3,[XWD -RPANUM-RPBNUM,FSXNUM]
PUSHJ P,MDESUM
SL11G: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPCNUM-RPDNUM
HRRI P2,FSXNUM+RPANUM+RPBNUM ;OFFSET (I HOPE!)
HRRZI P3,MASDSP
PUSHJ P,CHKLST
POPJ P,0 ;THAT'S IT FOR NOW
PUSHJ P,RP4TTL ;G.T. 16 RP04'S ??
MOVSI P2,-NURP02-NURP10-NURP15
MOVE P3,[XWD -RPCNUM-RPDNUM,FSXNUM+RPANUM+RPBNUM]
PUSHJ P,MDESUM
POPJ P,0 ;THAT'S ALL FOLKS!!
;NOTHING FOR TU16'S YET
SML15: POPJ P,0
SML16: HRRZ T1,ENTCHR(P4) ;GET COUNT OF ENTRIES
SKIPN T1
POPJ P,0 ;IF NONE, DON'T BOTHER
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF ;SOME SPACE
MOVE T1,TYPMES(P4) ;GET HEADER TEXT
PUSHJ P,.TSTRG
TYPEIT <
SUMMARY OF "/WHO:" >
MOVEI P3,WHOSLM ;POINTER
SL16A: HLRZ P3,(P3) ;GET NEXT POINTER
JUMPE P3,SML16B ;ALL DONE
MOVEI P1,[ASCIZ\
\] ;ONE PER LINE
MOVE P2,1(P3) ;GET REASON
PUSHJ P,.SIXBT ;PUBLISH
MOVEI P1,[ASCIZ\ \] ;SPACE OVER
HRRZ P2,(P3) ;GET COUNT
PUSHJ P,.DECML ;GET IT IN PRINT
JRST SL16A ;AND GET NEXT
SML16B: PUSHJ P,.TCRLF
PUSHJ P,.TCRLF ;SOME SPACE
MOVE T1,TYPMES(P4) ;GET HEADER TEXT
PUSHJ P,.TSTRG
TYPEIT <
SUMMARY BY "/DEV:" >
MOVEI P3,DEVWHY ;POINTER
SL16B: HLRZ P3,(P3) ;GET NEXT POINTER
JUMPE P3,.POPJ## ;ALL DONE
MOVEI P1,[ASCIZ\
\] ;ONE PER LINE
MOVE P2,1(P3) ;GET REASON
PUSHJ P,.SIXBT ;PUBLISH
MOVEI P1,[ASCIZ\ \] ;SPACE OVER
HRRZ P2,(P3) ;GET COUNT
PUSHJ P,.DECML ;GET IT IN PRINT
JRST SL16B ;AND GET NEXT
SML17: POPJ P,0 ;NOTHING TO LIST
SML20: SETOM ONE020 ;SEEN A CODE 20
HRRZI P1,-11
HRLZI P2,-MTANUM-MTBNUM
HRRI P2,MTALOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL20A ;GO CHECK MTC&MTD
PUSHJ P,TMTITL ;GO PRINT TITLE
MOVSI P2,-11 ;SETUP NUMBER OF ENTRIES
MOVE P3,[XWD -MTANUM-MTBNUM,MTALOC]
PUSHJ P,MAGLST ;OUTPUT TOTALS FOR MTA&MTB
SL20A: HRRZI P1,-11
HRLZI P2,-MTCNUM-MTDNUM
HRRI P2,MTCLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
POPJ P,0 ;THAT'S ALL
PUSHJ P,TMTITL
MOVSI P2,-11 ;YUP
MOVE P3,[XWD -MTCNUM-MTDNUM,MTCLOC]
PUSHJ P,MAGLST ;HANDLE THESE TOO.
POPJ P,0 ;MORE THAN 32, I QUIT.
SML21: SETOM ONE021 ;SEEN A CODE 21
HRRZI P1,-11
HRLZI P2,-MTANUM-MTBNUM
HRRI P2,MTALOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL21A ;GO CHECK MTC&MTD
PUSHJ P,TMPITL ;GO PRINT TITLE
MOVSI P2,-11 ;SETUP NUMBER OF ENTRIES
MOVE P3,[XWD -MTANUM-MTBNUM,MTALOC]
PUSHJ P,MAGLST ;OUTPUT TOTALS FOR MTA&MTB
SL21A: HRRZI P1,-11
HRLZI P2,-MTCNUM-MTDNUM
HRRI P2,MTCLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
POPJ P,0 ;THAT'S ALL
PUSHJ P,TMPITL
MOVSI P2,-11 ;YUP
MOVE P3,[XWD -MTCNUM-MTDNUM,MTCLOC]
PUSHJ P,MAGLST ;HANDLE THESE TOO.
;HERE LIST TU16/45 DEVICE SUMMARY
HRRZI P1,-NUT602 ;#OF BITS
HRLZI P2,-MTANUM-MTBNUM ;#DEV TO CHECK
HRRI P2,FSXNUM+RPXNUM ;WHERE TOSTART
HRRZI P3,MASDSP
PUSHJ P,CHKLST ;ANYTHING TO LIST
JRST SL21B
PUSHJ P,TU6TTL ;LIST HEADER
MOVSI P2,-NUT602
MOVE P3,[XWD -MTANUM-MTBNUM,FSXNUM+RPXNUM]
PUSHJ P,MDESUM
SL21B: HRRZI P1,-NUT602 ;#OF BITS
HRLZI P2,-MTCNUM-MTDNUM ;#DEV TO CHECK
HRRI P2,FSXNUM+RPXNUM+MTANUM+MTBNUM ;WHERE TOSTART
HRRZI P3,MASDSP
PUSHJ P,CHKLST ;ANYTHING TO LIST
POPJ P,0 ;THAT'S ALL
PUSHJ P,TU6TTL ;LIST HEADER
MOVSI P2,-NUT602
MOVE P3,[XWD -MTCNUM-MTDNUM,FSXNUM+RPXNUM+MTANUM+MTBNUM]
PUSHJ P,MDESUM
POPJ P,0 ;MORE THAN 32, I QUIT.
SML30: PJRST SML130 ;SAME AS 130 [514]
SML31:
SML40: POPJ P,0 ;NOTHING TO LIST
SML41: SKIPN ONE020 ;SUMMARY DONE ALREADY?
PJRST SML20 ;NOT YET
POPJ P,0 ;DONT DO ANYTHING FOR NOW
SML42: SKIPN ONE021 ;SUMMARY DONE ALREADY?
PJRST SML21 ;NOT YET
POPJ P,0 ;DONT DO ANYTHING FOR NOW
SML50:
SML60:
SML61:
SML62:
SML66:
SML67:
SML71: POPJ P,0 ;NOTHING TO LIST
SUBTTL TOPS-20 SUMMARY LISTING ROUTINES
SML101: POPJ P,0 ;NOTHING TO LIST
SML102: SKIPN BG%WHY ;
POPJ P,0 ;DON'T BOTHER
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF ;SOME SPACE
MOVE T1,TYPMES(P4) ;GET HEADER TEXT
PUSHJ P,.TSTRG
TYPEIT <
BUGHLT/BUGCHK BREAKDOWN:> ;WHAT WE'RE DOING
MOVEI P3,BG%WHY ;POINTER
SL102A: HLRZ P3,(P3) ;GET NEXT POINTER
JUMPE P3,.POPJ## ;ALL DONE
MOVEI P1,[ASCIZ\
\] ;ONE PER LINE
MOVE P2,1(P3) ;GET REASON
PUSHJ P,.SIXBT ;PUBLISH
MOVEI P1,[ASCIZ\ \] ;SPACE OVER
HRRZ P2,(P3) ;GET COUNT
PUSHJ P,.DECML ;GET IT IN PRINT
JRST SL102A ;AND GET NEXT
SML111: HRRZI P1,-NUMRHB ;RH10 IS GREATER THAN RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111A ;NO
HLRZ T2,M000T ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
PUSHJ P,DEVSU2
;START SECOND CONTROLLER
SL111A: HRRZI P1,-NUMRHB ;RH10 G.T.RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRRI P2,MAXSDV ;START A 8
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111B ;NO
HLRZ T2,M000T+MAXSDV ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
HRRI P3,MAXSDV ;START AT 8
PUSHJ P,DEVSU2
SL111B: HRRZI P1,-NUMRHB ;RH10G.T.RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRRI P2,2*MAXSDV ;START A 16
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111C ;NO
HLRZ T2,M000T+2*MAXSDV ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
HRRI P3,2*MAXSDV ;START AT 16
PUSHJ P,DEVSU2
;4TH CHANNEL
SL111C: HRRZI P1,-NUMRHB ;RH10G.T.RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRRI P2,3*MAXSDV ;START A 24
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111U ;NO
HLRZ T2,M000T+3*MAXSDV ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
HRRI P3,3*MAXSDV ;START AT 24
PUSHJ P,DEVSU2
;MORE ADDED WITH[725]-RLD
;5TH CHANNEL
SL111U: HRRZI P1,-NUMRHB ;RH10G.T.RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRRI P2,4*MAXSDV ;START A 24
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111R ;NO
HLRZ T2,M000T+4*MAXSDV ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
HRRI P3,4*MAXSDV ;START AT 24
PUSHJ P,DEVSU2
;6TH CHANNEL
SL111R: HRRZI P1,-NUMRHB ;RH10G.T.RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRRI P2,5*MAXSDV ;START A 24
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111S ;NO
HLRZ T2,M000T+5*MAXSDV ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
HRRI P3,5*MAXSDV ;START AT 24
PUSHJ P,DEVSU2
;7TH CHANNEL
SL111S: HRRZI P1,-NUMRHB ;RH10G.T.RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRRI P2,6*MAXSDV ;START A 24
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111T ;NO
HLRZ T2,M000T+6*MAXSDV ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
HRRI P3,6*MAXSDV ;START AT 24
PUSHJ P,DEVSU2
;8TH CHANNEL
SL111T: HRRZI P1,-NUMRHB ;RH10G.T.RH20
HRLZI P2,-MAXSDV ;# PER CHANNEL-START AT ZERO
HRRI P2,7*MAXSDV ;START A 24
HRLZI P3,DEVDS2
PUSHJ P,CHKLS2 ;ANY NEED LISTING?
JRST SL111D ;NO
HLRZ T2,M000T+7*MAXSDV ;GET CONTROLLER TYPE
MOVEI T1,RH2TTL ;ASSUME RH20
CAIN T2,..RH11 ;RH11? [600]
MOVEI T1,R11TTL ;YES! - SET HEADER
PUSHJ P,0(T1) ;LIST TITLE
MOVSI P2,-NUMRHB
HRLZI P3,-MAXSDV ;START AT 0
HRRI P3,7*MAXSDV ;START AT 24
PUSHJ P,DEVSU2
;END [725]
;NOW DO DEVICE REGISTERS
SL111D: HRRZI P1,-50 ;ALL REGISTERS ARE THIS