Trailing-Edge
-
PDP-10 Archives
-
isi-saio_19830204
-
isi-sa10/sysers.mac
There are 16 other files named sysers.mac in the archive. Click here to see a list.
;<ISI-SA10>SYSERS.MAC.13631 4-Feb-83 12:12:21 Edit by ISI-SA10
;
; SAIO Changes Copyright 1982, All Rights Reserved
; University of Southern California
;
;<ISI.SUBSYS.SYSERR>SYSERS.MAC.13630 3-Dec-82 09:52:41 Edit by SMITH
;#12 Add entry 114 for release 5
;#3 updated tables to agree with new device no.'s for TUSA,CC01,CC02
;#1 Code 121 - Errors from disks on SA10 (actually in file as 111)
;#2 Code 122 - Errors from mag tapes on SA10 (actually in file as 111)
TITLE SYSERS -- SUMMARY LISTING ROUTINES
SUBTTL VERSION 15A(1363) K. COYE/ RLD/ PJB/ ES/ TJW/ LWE/ SRL/ GSK
;COPYRIGHT (C) 1972,1975,1977,1978,1979,1980 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
.REQUIRE SYRLIB
IFN EXPPRT,<
LALL
>
IFE EXPPRT,<
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
EXTERNAL DUMPOS,DSKPOS,TAPPOS,DSERCD,FNDB00,FNDF00,FNDN00
EXTERNAL SN.LST ;#1 .
; 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,MDE000,FE$NAM
INTERNAL BLTTAB
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
BLTTAB:
BITCHK:
DEVTYP:
DUMDAY:
ERINDX:
ERRLTH:
ERRTBL:
KLEDMP:
KONMSK:
LINE:
MINERB:
PCSTBL: Z
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
MOVE T1,SYSSER ;GET FIRST SYSTEM S/N [1106]
MOVEM T1,HDBUFF+HDRPSN ; AND FORCE SUMMARIES TO USE IT
MOVEI T1,[ASCIZ/ SYSTEM SUMMARY /] ; [1200]
MOVEM T1,HDRLBL ;SET UP TITLE
PUSHJ P,TTLST ; AND PRINT PAGE HEADER
PUSHJ P,.TCRLF
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 OCCURRENCE COUNTS
SKIPE TOPONE ;IF THIS IS TOPS-20 [1207]
;[1261] LOOK AT ENTRY TYPE NOT MONITOR TYPE
JRST T20SML ; WE'LL CONTROL THE SUMMARIES OURSELVES
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.
;T20SML - CONTROLS TOPS-20 SUMMARIES (DOES NOT USE SMLOOP!!) [1207]
T20SML: PUSHJ P,SML102 ;DO BUGXXX SUMMARY
PUSHJ P,SML130 ;DO FRONT-END SUMMARY
PUSHJ P,SML116
PUSHJ P,SML111 ;DO MASBUSS SUMMARY
JRST GOBACK ;TOPS-20 SUMMARY DONE - RESTART 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: ;START [1315]
MOVE T1,LINCNT ;GET NUMBER OF LINES USED
CAME T1,[-PAGLIN]
JRST TTLSTA ;SOME HAVE BEEN USED, START ON A FRESH PAGE
PUSHJ P,.TCRLF ;ELSE JUST LIST "SUMMARY" WITHOUT DOING FF
MOVE T1,HDRLBL ;WHAT TO SAY
PUSHJ P,.TSTRG ;SAY IT
PJRST .TCRLF ;WITH A CR-LF
TTLSTA: ;END [1315]
MOVEI T1,14
PUSHJ P,CHROUT ;DO FORM FEED
AOS ,PAGNUM
PUSHJ P,TTLS1 ; [1200]
PJRST .TCRLF
; TOTPRT PRINTS OUT A TOTAL OF EACH ERROR TYPE
TOTPRT: TYPEIT <
ENTRY OCCURRENCE 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 TOPONE ;[1261] TOPS-20 TYPE ENTRY ?
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 TOPONE ;[1261] TOPS-20 TYPE ENTRY ?
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
; START HACK FOR DX20 BUGS
TYPEIT <
# OF DX20 ENTRIES ABORTED DUE TO BLANK SUB-TABLE POINTERS: >
MOVE T1,DXFNUM
PUSHJ P,.ODECW
; END OF DX20 HACK
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
IFN EXPPRT,<
LALL
>
IFE EXPPRT,<
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]
PUSHJ P,TTLST ;[1240]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 -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]
; [1133]
SKIPE R11HDR ;RH11 CONTROLLER?
PUSHJ P,TLRH11 ;RH11 ON TOPS-10
; SINCE THERE CAN'T(SHOULDN'T) BE MORE THAN 16 DEVICES ON A KS10
; SYSTEM THIS IS THE ONLY PLACE WE CHECK FOR AN RH11 CONTROLLER.
; [1133]
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 SL11C1
; [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
SL11C1: HRRZI P1,-NUMRHB ;[1142]
HRLZI P2,-RPENUM-RPFNUM
HRRI P2,RPELOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL11C2
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPENUM-RPFNUM,RPELOC]
PUSHJ P,DEVSUM
SL11C2: HRRZI P1,-NUMRHB
HRLZI P2,-RPGNUM-RPHNUM
HRRI P2,RPGLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL11C3 ;[1331]
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPGNUM-RPHNUM,RPGLOC]
PUSHJ P,DEVSUM
; START [1331]
SL11C3: HRRZI P1,-NUMRHB
HRLZI P2,-RPINUM-RPJNUM
HRRI P2,RPILOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL11C4
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPINUM-RPJNUM,RPILOC]
PUSHJ P,DEVSUM
SL11C4: HRRZI P1,-NUMRHB
HRLZI P2,-RPKNUM-RPLNUM
HRRI P2,RPKLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL11C5
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPKNUM-RPLNUM,RPKLOC]
PUSHJ P,DEVSUM
SL11C5: HRRZI P1,-NUMRHB
HRLZI P2,-RPMNUM-RPNNUM
HRRI P2,RPMLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL11C6
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPMNUM-RPNNUM,RPMLOC]
PUSHJ P,DEVSUM
SL11C6: HRRZI P1,-NUMRHB
HRLZI P2,-RPONUM-RPPNUM
HRRI P2,RPOLOC
HRLZI P3,DEVDSP
PUSHJ P,CHKLST
JRST SL11D ;NOTHING-START ON DEVICES
PUSHJ P,TTLST ;TYPE TITLE LINE
SKIPE RH1HDR ;LIST RH10 HDR?
PUSHJ P,RH11TL ;YES
SKIPE RH2HDR ;LIST RH20 HEADER?
PUSHJ P,RH12TL ;YES
MOVSI P2,-NUMRHB
MOVE P3,[XWD -RPONUM-RPPNUM,RPPLOC]
PUSHJ P,DEVSUM
; END [1331]
; 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
JRST SL11H
PUSHJ P,RP4TTL ;G.T. 16 RP04'S ??
MOVSI P2,-NURP02-NURP10-NURP15
MOVE P3,[XWD -RPCNUM-RPDNUM,FSXNUM+RPANUM+RPBNUM]
PUSHJ P,MDESUM
SL11H: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPENUM-RPFNUM
HRRI P2,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM
HRRZI P3,MASDSP
PUSHJ P,CHKLST
JRST SL11I
PUSHJ P,RP4TTL ;G.T. 16 RP04'S ??
MOVSI P2,-NURP02-NURP10-NURP15
MOVE P3,[XWD -RPENUM-RPFNUM,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM]
PUSHJ P,MDESUM
SL11I: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPGNUM-RPHNUM
HRRI P2,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM
HRRZI P3,MASDSP
PUSHJ P,CHKLST
JRST SL11J ;[1331]
PUSHJ P,RP4TTL ;G.T. 16 RP04'S ??
MOVSI P2,-NURP02-NURP10-NURP15
MOVE P3,[XWD -RPGNUM-RPHNUM,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM]
PUSHJ P,MDESUM
; START [1331]
SL11J: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPINUM-RPJNUM
HRRI P2,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM
HRRZI P3,MASDSP
PUSHJ P,CHKLST
JRST SL11K
PUSHJ P,RP4TTL ;G.T. 16 RP04'S ??
MOVSI P2,-NURP02-NURP10-NURP15
MOVE P3,[XWD -RPINUM-RPJNUM,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM]
PUSHJ P,MDESUM
SL11K: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPKNUM-RPLNUM
HRRI P2,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM+RPINUM+RPJNUM
HRRZI P3,MASDSP
PUSHJ P,CHKLST
JRST SL11L
PUSHJ P,RP4TTL ;G.T. 16 RP04'S ??
MOVSI P2,-NURP02-NURP10-NURP15
MOVE P3,[XWD -RPKNUM-RPLNUM,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM+RPINUM+RPJNUM]
PUSHJ P,MDESUM
SL11L: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPMNUM-RPNNUM
HRRI P2,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM+RPINUM+RPJNUM+RPKNUM+RPLNUM
HRRZI P3,MASDSP
PUSHJ P,CHKLST
JRST SL11M
PUSHJ P,RP4TTL ;G.T. 16 RP04'S ??
MOVSI P2,-NURP02-NURP10-NURP15
MOVE P3,[XWD -RPMNUM-RPNNUM,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM+RPINUM+RPJNUM+RPKNUM+RPLNUM]
PUSHJ P,MDESUM
SL11M: HRRZI P1,-NURP02-NURP10-NURP15
HRLZI P2,-RPONUM-RPPNUM
HRRI P2,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM+RPINUM+RPJNUM+RPKNUM+RPLNUM+RPMNUM+RPNNUM
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 -RPONUM-RPPNUM,FSXNUM+RPANUM+RPBNUM+RPCNUM+RPDNUM+RPENUM+RPFNUM+RPGNUM+RPHNUM+RPINUM+RPJNUM+RPKNUM+RPLNUM+RPMNUM+RPNNUM]
PUSHJ P,MDESUM
; END [1331]
POPJ P,0 ;THAT'S ALL FOLKS!!
; NOTHING FOR TU16'S YET
SML14:
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: PUSHJ P,TTLST
TYPEIT <
FRONT END DEVICE ERROR SUMMARY:
>
HRLZI P1,-11 ;# TO CHECK
SL30A: SKIPN P2,NUM030(P1) ;CHECK A VALUE
JRST SL30B ;EMPTY-GET NEXT
PUSHJ P,.TTABC
MOVE T1,FE$NAM(P1) ;A DEVICE NAME
PUSHJ P,.TSIXN
PUSHJ P,.TCOLN
PUSHJ P,.TTABC
MOVE T1,P2 ;# OF ERRORS
PUSHJ P,.ODECW ;WITH A PERIOD
PUSHJ P,.TCRLF
SL30B: AOBJN P1,SL30A ;GET NEXT
HRLZI P1,-11 ;MAX OF 11 TYPES [514]
SL30C: SKIPN P2,NUH030(P1) ;GET A VALUE
JRST SL30D ;EMPTY - GET NEXT
PUSHJ P,.TTABC
MOVE T1,FEHNAM(P1) ;A DEVICE NAME
PUSHJ P,.TSIXN
PUSHJ P,.TCOLN
PUSHJ P,.TTABC
MOVE T1,P2 ;# OF ERRORS
PUSHJ P,.ODECW ;WITH A PERIOD
PUSHJ P,.TCRLF
SL30D: AOBJN P1,SL30C ;GET NEXT
POPJ P,0 ;OR ELSE RETURN
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
SML12:
SML33: ;[1250]
SML45:
SML50:
SML51:
SML52:
SML54:
SML55:
SML56:
SML57:
SML60:
SML61:
SML62:
SML63: ;[1110]
SML64: ;[1111]
SML66:
SML67:
SML71:
SML72: POPJ P,0 ;NOTHING TO LIST
SUBTTL TOPS-20 SUMMARY LISTING ROUTINES
SML101: POPJ P,0 ;NOTHING TO LIST
;START EDIT 1200
COMMENT \
BUGLST KEYS (2 KEYS, 1 DATA LOCATION)
KEY 0 KEY 1 DESCRIPTION
NEGINF [1260]
0 TOTAL # OF UNKNOWN BUG???'S
1 TOTAL # OF BUGCHK'S
2 TOTAL # OF BUGINF'S
3 TOTAL # OF BUGHLT'S
0
'NAME0' TOTAL # OF OCCURENCES OF BUG??? 'NAME0'
1
'NAME1' TOTAL # OF OCCURENCES OF BUGCHK 'NAME1'
'NAME2' TOTAL # OF OCCURENCES OF BUGCHK 'NAME2'
2
'NAME3' TOTAL # OF OCCURENCES OF BUGINF 'NAME3'
'NAME4' TOTAL # OF OCCURENCES OF BUGINF 'NAME4'
3
'NAME5' TOTAL # OF OCCURENCES OF BUGHLT 'NAME5'
'NAME6' TOTAL # OF OCCURENCES OF BUGHLT 'NAME6'
\
SML102: MOVEI T1,BUGLST ;GET BUGXXX TOTALS
MOVEI T2,KEYBUF
FINDF
POPJ P,0 ;NO ERRORS LOGGED - LEAVE
MOVE P1,(T1) ;GET COUNT
MOVEI T1,[ASCIZ / BUGXXX SUMMARY /]
MOVEM T1,HDRLBL ;SET UP TITLE
PUSHJ P,TTLST ; AND PRINT PAGE HEADER
PUSHJ P,.TCRLF
TYPEIT <BUGXXX TOTALS:>
SL102A: PUSHJ P,.TCRLF ;PRINT BUG TYPE TOTALS
PUSHJ P,.TTABC
MOVE T1,KEYBUF+1
MOVE T1,BUGTYP(T1)
PUSHJ P,.TSIXN
PUSHJ P,.TTABC
MOVE T1,P1
PUSHJ P,.ODECW
FINDN ;GET NEXT BUFFER
WARN <PREMATURE END OF LIST IN SL102A>
MOVE P1,(T1) ;SAVE ENTRY COUNT
JUMPN T2,SL102A ;DO NEXT BUG TYPE IF ANY LEFT
SL102B: PUSHJ P,.TCRLF ;PRINT BUG TYPE
PUSHJ P,.TCRLF
MOVE T1,KEYBUF
MOVE T1,BUGTYP(T1)
PUSHJ P,.TSIXN
PUSHJ P,.TCOLN
SL102C: PUSHJ P,.TCRLF ;PRINT BUG NAME
PUSHJ P,.TTABC
MOVE T1,KEYBUF+1
PUSHJ P,.TSIXN
PUSHJ P,.TTABC ;PRINT ERROR COUNT
MOVE T1,P1
PUSHJ P,.ODECW
FINDN ;GET NEXT BUFFER
POPJ P,0 ;DONE - LEAVE
MOVE P1,(T1)
JUMPN T2,SL102C ;IF SAME BUG TYPE CONTINUE
JRST SL102B ; ELSE PRINT NEW BUG TYPE HEADER
BUGTYP: SIXBIT /BUG???/
SIXBIT /BUGCHK/
SIXBIT /BUGINF/
SIXBIT /BUGHLT/
;[1260] SIXBIT /BUG?4?/
;[1260] SIXBIT /BUG?5?/
;[1260] SIXBIT /BUG?6?/
;[1260] SIXBIT /BUG?7?/
MDE000: SIXBIT/UNK/ ; [1217]
SIXBIT/RP04/ ;THIS DEVICE NAME TABLE MUST BE KEPT
SIXBIT/RS04/ ; IN LINE WITH THE UNIT TYPE TABLE IN
SIXBIT/TU45/ ; THE UNIVERSAL FILE. IN PARTICULAR
SIXBIT/TU16/ ; THERE MUST BE AT LEAST ".UTMAX" ITEMS
SIXBIT/RP05/ ; IN THE TABLE.
SIXBIT/RP06/
SIXBIT/RP07/ ;RP07???
SIXBIT/RP08/ ;RP08???
SIXBIT/RM03/ ; [601]
SIXBIT/TM03/
SIXBIT/TU77/
SIXBIT/TM78/
SIXBIT/TU78/
SIXBIT/DX20/ ;[704]
SIXBIT/TU70/
SIXBIT/TU71/
SIXBIT/TU72/ ;END [704]
SIXBIT/TU73/ ;[1204]
SIXBIT/UNK/ ;[1333]
SIXBIT/RP20/ ;[1333]
SIXBIT/UNK/ ;#3 25 not used
SIXBIT/UNK/ ;#3 26 not used
SIXBIT/UNK/ ;#3 27 not used
SIXBIT/CT01/ ;#3 30 ;#2 calcomp (ibm style) mag tapes
SIXBIT/CC01/ ;#3 31 ;#1 3330 mod I
SIXBIT/CC02/ ;#3 32 ;#1 3330 mod II
RHTYP: SIXBIT / RH??/
SIXBIT / RH10/
SIXBIT / RH20/
SIXBIT / RH11/
SIXBIT / SA10/ ;#1 .
COMMENT \
CHNTOT KEYS (2 KEYS, 1 DATA LOCATION)
KEY 0 KEY 1 DATA BLOCK
RH TYPE CHANNEL # ERROR COUNTS (HARD,,SOFT)
1=RH10 (0-7) WORD 0 TOTAL CHANNEL ERRORS
2=RH20
3=RH11
\
COMMENT \
CHNLST KEYS (2 KEYS, 15. DATA LOCATIONS)
KEY 0 KEY 1 DATA BLOCK
RH TYPE PHYSICAL DRIVE ERROR COUNTS (HARD,,SOFT)
1=RH10 NAME IN SIXBIT FOR RH20:
2=RH20 (DP030) 0-7 CONI RH20 (8.)
3=RH11 FOR RH11:
0-2 CONTROL & STATUS 1 (3.)
3-12 CONTROL & STATUS 2 (8.)
13-16 UBA STATUS REGISTER (4.)
\
COMMENT \
MASLST KEYS (3 KEYS, 40. DATA LOCATIONS)
KEY 0 KEY 1 KEY 2 DATA BLOCK
DRIVE TYPE DRIVE S/N PHYSICAL DRIVE ERROR COUNTS (HARD,,SOFT)
(TOPS-20) BCD (MASBUSS) NAME IN SIXBIT 0 TOTAL DEVICE ERRORS
BINARY (DX20) (DP030) FOR RP04,5,6:
1-20 ERROR REG. #1 (16.)
21-37 ERROR REG. #2 (15.)
40-47 ERROR REG. #3 (8.)
FOR RS04:
1-13 ERROR REG. #1 (11.)
FOR TU16,45,77:
1-20 ERROR REGISTER (16.)
FOR RM03:
1-20 ERROR REG. #1 (16.)
21-30 ERROR REG. #2 (8.)
FOR TU70,71,72,73:
1-10 ERROR REGESTER (8.)
\
;MASBUSS CONTROLLER & DEVICE SUMMARY - CHANGED WITH EDIT [1217]
SML111: MOVEI T1,CHNTOT ;GET CHANNEL TOTALS
MOVEI T2,KEYBUF
FINDF
POPJ P,0 ;NO ERRORS LOGGED - LEAVE
MOVE P1,(T1) ;GET COUNT
MOVEI T1,[ASCIZ / ENTRY SUMMARY /]
MOVEM T1,HDRLBL ;SET UP TITLE
PUSHJ P,TTLST ; AND PRINT PAGE HEADER
PUSHJ P,.TCRLF
TYPEIT <CHANNEL/CONTROLLER SUMMARY:>
PUSHJ P,.TCRLF
TYPEIT < HARD SOFT>
SL111A: PUSHJ P,.TCRLF ;PRINT 'RH' TYPE
MOVE T1,KEYBUF ; [1217]
MOVE T1,RHTYP(T1)
PUSHJ P,.TSIXN
SL111B: PUSHJ P,.TCRLF ;PRINT CONTROLLER #
PUSHJ P,.TTABC
TYPEIT <#>
MOVE T1,KEYBUF+1 ; [1217]
PUSHJ P,.TOCTW
PUSHJ P,.TTABC ;PRINT # OF HARD ERRORS
HLRZ T1,P1
PUSHJ P,.ODECW
PUSHJ P,.TTABC ;PRINT # OF SOFT ERRORS
HRRZ T1,P1
PUSHJ P,.ODECW
FINDN ;GET NEXT BUFFER
JRST SL111C ;IF END OF CHANNEL SUMMARY - DO DEVICE SUMMARY
MOVE P1,(T1)
JUMPE T2,SL111A ;IF NOT NEW 'RH' TYPE [1217]
JRST SL111B ; MUST BE NEW CHANNEL
SL111C: MOVEI T1,MASLST ;GET MASSBUS TOTALS [1217]
MOVEI T2,KEYBUF
FINDF
PJRST [WARN <MISSING LIST IN SL111C - FINDF MASLST>
POPJ P,0] ;GIVE WARNING AND LEAVE!
MOVE P1,(T1) ;GET COUNT
SL111D: PUSHJ P,.TCRLF ;DO DEVICE SUMMARY
PUSHJ P,.TCRLF ;PRINT DEVICE TYPE
MOVE T1,KEYBUF
MOVE T1,MDE000(T1) ;GET IT IN SIXBIT
PUSHJ P,.TSIXN
TYPEIT < SUMMARY:>
SL111E: MOVE T1,KEYBUF ;GET DEVICE TYPE [1333]
CAIN T1,.UTP20 ;RP20 ? [1333]
JRST SL111G ;YES, NO S/N [1333]
PUSHJ P,.TCRLF ;PRINT DEVICE S/N
TYPEIT < S/N >
MOVE P2,KEYBUF+1 ;GET S/N
MOVE T1,P2 ;#1 copy it for some routines
MOVE T2,KEYBUF ;#1 get type
PUSHJ P,@SN.LST(T2) ;#1 call S/N routine
SL111G: PUSHJ P,.TCRLF ;PRINT DEVICE NAME
PUSHJ P,.TTABC
MOVE T1,KEYBUF+2
PUSHJ P,.TSIXN
PUSHJ P,.TTABC ;PRINT # OF HARD ERRORS
HLRZ T1,P1
PUSHJ P,.ODECW
PUSHJ P,.TTABC ;PRINT # OF SOFT ERRORS
HRRZ T1,P1
PUSHJ P,.ODECW
FINDN ;GET NEXT BUFFER
JRST SL111J ;DONE! - START CHANNEL ERROR BIT SUMMARY [1242]
MOVE P1,(T1)
JUMPE T2,SL111D ;NEW DEVICE TYPE?
SOJE T2,SL111E ;NEW S/N ?
JRST SL111G ; MUST BE NEW DEVICE NAME
;MASBUSS CHANNEL ERROR BIT SUMMARY - REPLACED WITH EDIT [1217]
SL111J: MOVEI T1,CHNLST ;GET CHANNEL ERROR BIT TOTALS
MOVEI T2,KEYBUF
FINDF
PJRST [WARN <MISSING LIST IN SL111J - FINDF CHNLST>
POPJ P,0] ;GIVE WARNING AND LEAVE!
MOVE P4,T1 ;SAVE BUFFER POINTER
MOVEI T1,[ASCIZ / CHANNEL SUMMARY /]
MOVEM T1,HDRLBL ;SET UP TITLE
SL111K: PUSHJ P,TTLST ; AND PRINT PAGE HEADER
MOVE T1,KEYBUF ;GET 'RH' TYPE
CAIN T1,.SA10 ;#1 SA10?
JRST SL121L ;#1 yes
CAIN T1,.RH11 ;IF RH11 ;[1326]
JRST SL111L ; SKIP RH20 SET UP
PUSHJ P,RH2TTL ;OUTPUT RH20 HEADER
HRLI P4,-NUMRH2 ;SET UP BIT COUNT FOR RH20
JRST SL111M ;SKIP OVER RH11 SET UP
SL121L: PUSHJ P,SA1TTL ;#1 output SA10 header
HRLI P4,-NUMSA1 ;#1 set up bit count
JRST SL111M ;#1 skip over other headers
SL111L: PUSHJ P,R11TTL ;OUTPUT RH11 HEADER
HRLI P4,-<NUMR11+NUMCS2+NUMUBA> ;SET UP BIT COUNT FOR RH11
SL111M: PUSHJ P,.TCRLF ;PRINT DEVICE NAME
PUSHJ P,.TCRLF
MOVE T1,KEYBUF+1
PUSHJ P,.TSIXN
TYPEIT < HARD > ;SETUP FOR HARD ERROR COUNTS
MOVE P1,P4
PUSHJ P,CNTTYP ; AND OUTPUT THEM
PUSHJ P,.TCRLF
TYPEIT < SOFT > ;SETUP FOR SOFT ERROR COUNTS
MOVE P1,P4
PUSHJ P,TYPCNT ; AND OUTPUT THEM
FINDN ;GET NEXT BUFFER
JRST SL111P ;IF END OF CHANNEL SUMMARY - DO DEVICE SUMMARY!
HRR P4,T1 ;SAVE BUFFER POINTER
JUMPE T2,SL111K ;IF NOT NEW 'RH' TYPE
JRST SL111M ; MUST BE NEW DRIVE
;MASBUSS DEVICE ERROR BIT SUMMARY - REPLACED WITH EDIT [1217]
SL111P: MOVEI T1,MASLST ;GET DEVICE ERROR BIT TOTALS
MOVEI T2,KEYBUF
FINDF
PJRST [WARN <MISSING LIST IN SL111P - FINDF MASLST>
POPJ P,0] ;GIVE WARNING AND LEAVE!
AOS P4,T1 ;SAVE POINTER TO COUNTERS
MOVEI T1,[ASCIZ / DEVICE SUMMARY /]
MOVEM T1,HDRLBL ;SET UP TITLE
SL111Q: PUSHJ P,TTLST ; AND PRINT PAGE HEADER
PUSHJ P,.TCRLF
MOVE T1,KEYBUF ;GET DEVICE TYPE
MOVE T1,MDE000(T1) ; IN SIXBIT
PUSHJ P,.TSIXN ; AND PRINT IT
TYPEIT < SUMMARY:>
MOVE T1,KEYBUF ;GET DEVICE TYPE BACK
JRST @DEV111(T1) ; AND DO SETUP FOR CORRECT DEVICE
DEV111: SL111Z ;UNKNOWN - GET NEXT ENTRY
SL111R ;RP04
SL111S ;RS04
SL111T ;TU45
SL111T ;TU16 (TM02)
SL111R ;RP05
SL111R ;RP06
SL111Z ;(RP07) ILLEGAL - GET NEXT ENTRY
SL111Z ;(RP08) ILLEGAL - GET NEXT ENTRY
SL111U ;RM03
SL111Z ;(TM03) ILLEGAL - GET NEXT ENTRY
SL111T ;TU77
SL111Z ;(TM78) ILLEGAL - GET NEXT ENTRY
SL111Z ;(TU78) ILLEGAL - GET NEXT ENTRY
SL111Z ;(DX20) ILLEGAL - GET NEXT ENTRY
SL111V ;TU70
SL111V ;TU71
SL111V ;TU72
SL111V ;TU73
SL111Z ;[1333]
SL111V ;RP20 [1333]
SL111Z ;#3 25 not used
SL111Z ;#3 26 not used
SL111Z ;#3 27 not used
SL111Z ;#3 30 TUSA not supported
SL121R ;#3 31 ;#1 3330 mod I
SL121R ;#3 32 ;#1 3330 mod II
;SETUP FOR RP04,5,6
SL111R: PUSHJ P,RP4T2L ;OUTPUT HEADER
HRLI P4,-<NURP02+NURP10+NURP15> ;SET UP BIT COUNT
JRST SL111W
SL121R: PUSHJ P,CC1T2L ;#1 output header
HRLI P4,-NUMSD0 ;#1 bit count
JRST SL111W ;#1 join common code
;SETUP FOR RS04
SL111S: PUSHJ P,RS4T2L ;OUTPUT HEADER
HRLI P4,-NURS02 ;SET UP BIT COUNT
JRST SL111O
;SETUP FOR TU45,16,77
SL111T: PUSHJ P,TU6T2L ;OUTPUT HEADER
HRLI P4,-NUT602 ;SET UP BIT COUNT
JRST SL111O
;SETUP FOR RM03
SL111U: PUSHJ P,RM3T2L ;OUTPUT HEADER
HRLI P4,-<NURP02+NUMER2> ;SET UP BIT COUNT
JRST SL111W
;SETUP FOR TU70,71,72,73
SL111V: PUSHJ P,TU7T2L ;OUTPUT HEADER
HRLI P4,-NUDXER ;SET UP BIT COUNT
JRST SL111O
;OUTPUT THE ERROR COUNTS
SL111O:
SL111W: MOVE T1,KEYBUF ;GET DEV TYPE [1333]
CAIN T1,.UTP20 ;IS IT RP20 ? [1333]
JRST SL111Y ;YES, NO S/N'S [1333]
PUSHJ P,.TCRLF ;PRINT DEVICE S/N
TYPEIT <S/N >
MOVE P2,KEYBUF+1 ;GET S/N
MOVE T1,P2 ;#1 copy it for some routines
MOVE T2,KEYBUF ;#1 get type
PUSHJ P,@SN.LST(T2) ;#1 call S/N routine
SL111Y: PUSHJ P,.TCRLF ;PRINT DEVICE NAME
TYPEIT < > ; INDENTED 6 SPACES
MOVE T1,KEYBUF+2
PUSHJ P,.TSIXN
TYPEIT < H > ;SETUP FOR HARD ERROR COUNTS
MOVE P1,P4
PUSHJ P,CNTMAS ; AND OUTPUT THEM
TYPEIT <
S > ;SETUP FOR SOFT ERROR COUNTS, INDENTED 12 SPACES
MOVE P1,P4
PUSHJ P,MASCNT ; AND OUTPUT THEM
SL111Z: FINDN ;GET NEXT BUFFER
POPJ P,0 ;IF END OF DEVICE ERROR BIT SUMMARY - LEAVE!
AOS ,T1 ;SAVE POINTER TO COUNTERS
HRR P4,T1
JUMPE T2,SL111Q ;NEW DEVICE TYPE?
SOJE T2,SL111W ;NEW S/N ?
JRST SL111Y ; MUST BE NEW DEVICE NAME
SML121: ;#1 Dummy for SA10 Disks
SML122: ;#2 Dummy for SA10 Magtapes
SML114: ;#12 Dummy for DISK/TAPE Statistics
SML112:
SML115: POPJ P,0 ;NOTHING TO LIST
SML116: SKIPN WHOSLM ;IF NO POINTERS
POPJ P,0 ;LEAVE
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF ;SOME SPACE
MOVE T1,TYPMES+15 ;GET HEADER TEXT [1222]
PUSHJ P,.TSTRG
TYPEIT <
SUMMARY OF WHO >
MOVEI P3,WHOSLM ;[1245] DROPPED THIS INSTRUCTION SOMEWHERE!
SL116A: HLRZ P3,(P3) ;GET NEXT POINTER
JUMPE P3,SM116B ;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 SL116A ;AND GET NEXT
SM116B: PUSHJ P,.TCRLF
PUSHJ P,.TCRLF ;SOME SPACE
MOVE T1,TYPMES+15 ;GET HEADER TEXT [1222]
PUSHJ P,.TSTRG
TYPEIT <
SUMMARY BY DEVICE >
MOVEI P3,DEVWHY ;POINTER
SL116B: 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 SL116B ;AND GET NEXT
;START EDIT 1200
;FE.LST (1 KEY, 1 DATA LOCATION)
; KEY0 = SIXBIT SUB-ENTRY NAME
; DATA = COUNT
SML130: MOVEI T1,FE.LST ;GET F-E TOTALS
MOVEI T2,KEYBUF
FINDF
POPJ P,0 ;NO ERRORS LOGGED - LEAVE
MOVE P1,(T1) ;GET COUNT
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
TYPEIT <FRONT-END SUMMARY:>
SL130B: PUSHJ P,.TCRLF ;PRINT OCCURANCE COUNTS
PUSHJ P,.TTABC
MOVE T1,KEYBUF
PUSHJ P,.TSIXN
PUSHJ P,.TTABC
HRRZ T1,P1
PUSHJ P,.ODECW
MOVE T1,KEYBUF
CAME T1,[SIXBIT /KLERR/]
JRST SL130C ;IF KLERR TOTAL
TYPEIT < ENTRIES - CREATING > ; PRINT BOTH # OF REPORTS
HLRZ T1,P1 ; AND # OF FILE RECORDS
PUSHJ P,.ODECW
TYPEIT < REPORT(S)>
SL130C: FINDN ;GET NEXT BUFFER
POPJ P,0 ;DONE - LEAVE
MOVE P1,(T1) ;GET COUNT
JRST SL130B ;DO NEXT SUB-ENTRY
;END EDIT 1200
SML131:
SML133:
SML160:
SML161:
SML162:
SML163:
SML164:
SML201:
SML202:
SML203:
SML210:
SML211:
SML220:
SML221:
SML222:
SML230:
SML231:
SML232:
SML233:
SML234: POPJ P,0 ;NOTHING TO LIST
SUBTTL MISC. SUMMARY ROUTINES
FE$NAM: 0
SIXBIT/CTY/
SIXBIT/DL11C/
SIXBIT/DH11/
SIXBIT/DLSCAN/
SIXBIT/LP20/
SIXBIT/CD20/
SIXBIT/CLOCK/
SIXBIT/FE DEV/
SIXBIT/UNK/
FEHNAM: SIXBIT/KLCPU/ ;200
SIXBIT/KLERR/ ;201
SIXBIT/DTE/ ;202 EBUS/DEX ERRORS [1311]
SIXBIT/RH11/ ;203 RH11 [1311]
SIXBIT/UNK/ ;204
SIXBIT/UNK/ ;205 [514] EXPAND TO 11 ENTRIES
SIXBIT/UNK/ ;206
SIXBIT/UNK/ ;207
SIXBIT/KLINIK/ ;210
SIXBIT/UNK/ ;211
TMTITL: PUSHJ P,TTLST ;OUTPUT TITLE HEADER.
TYPEIT < - MAGTAPE SYSTEM ANALYSIS ->
TYPEIT <
HARDWARE DETECTED ERRORS>
TYPEIT <
CTL MEM OVR UNT MP READ WDS>
TYPEIT <
PAR PAR NXM RUN HNG ERR ERR READ
>
POPJ P,0
TMPITL: PUSHJ P,TTLST ;OUTPUT TITLE HEADER.
TYPEIT < - MAGTAPE SYSTEM ANALYSIS ->
TYPEIT <
HARDWARE DETECTED ERRORS>
TYPEIT <
CTL MEM OVR UNT MP READ CHARS>
TYPEIT <
PAR PAR NXM RUN HNG ERR ERR READ
>
POPJ P,0
; RPTITL -- SUBROUTINE TO PRINT HEADER FOR RP10 CONTROLLER SUMMARY
; CALL PUSHJ P,RPTITL
;
; RETURN CALL+1
; MODIFIED WITH EDIT 313 FOR RH20 TOO
RH11TL: TYPEIT < - MASSBUS SYSTEM ANALYSIS>
; [551]
TYPEIT <
HARDWARE DETECTED (RH10) SOFTWARE DETECTED>
TYPEIT <
CTL ILL SEL MEM CTL BUS CHN OVR DRE>
TYPEIT < ILL PS CTL SAT RIB CHK SEK XFR XFR SEK SFT CWF
EXC FUN RAE PAR PAR NXM PAR EXC ERR RUN ERR>
TYPEIT < CMD FAL OVR RAE ERR ERR ERR INC HG1 HG2 HNG HNG ERR
>
PUSHJ P,.TCRLF
POPJ P,0
RH12TL: TYPEIT <
HARDWARE DETECTED (RH20) SOFTWARE DETECTED>
TYPEIT <
PAR LWC SWC CHN RES OVR >
TYPEIT < SAT RIB CHK SEK XFR XFR SEK SFT CWF>
TYPEIT <
ERR EXC ERR ERR ERR ERR RAE RUN > ;[516] DELETE 'CNR'
TYPEIT < ERR ERR ERR INC HG1 HG2 HNG HNG ERR>
PUSHJ P,.TCRLF
POPJ P,0
;RH20 CONTROLLER SUMMARY TITLE - REWRITTEN WITH EDIT [1217]
RH2TTL: TYPEIT <
CONI RH20
PAR LWC SWC CHN RES OVR
ERR EXC ERR ERR ERR ERR RAE RUN>
POPJ P,0
;#1 SA10 controller CONI summary title
SA1TTL: TYPEIT <
CONI SA10
PI PAR CH0 CH1 CH2 CH3 CH0 CH1 CH2 CH3 CH0 CH1 CH2 CH3
REQ ERR NXM IE IE IE IE GO GO GO GO STS STS STS STS>
POPJ P,0 ;#1 .
; [1133] ADD SUPPORT FOR RH11 UNDER TOPS-10
TLRH11: TYPEIT <
HARDWARE DETECTED (RH11) SOFTWARE DETECTED>
TYPEIT <
CONTROL & STATUS 2 * CONTROL & STATUS 1>
TYPEIT <
DAT WRT UBA PRG MSD DAT>
TYPEIT < SPC XFR MCP SAT RIB CHK SEK XFR XFR SEK SFT CWF>
TYPEIT <
LAT CHK PAR NXD NXM ERR XFR PAR>
TYPEIT < CON ERR ERR ERR ERR ERR INC HG1 HG2 HNG HNG ERR>
PUSHJ P,.TCRLF
POPJ P,0
;RH11 CONTROLLER SUMMARY TITLE - REWRITTEN WITH EDIT [1217]
; PUTS OUT 3 WORDS FOR THE RH11 CONTROLLER
R11TTL: PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
TYPEIT < RH11 CONT & STAT 1 *>
TYPEIT < RH11 CONTROL & STATUS 2 *>
TYPEIT < UBA STATUS REGISTER
>
TYPEIT < *>
TYPEIT < *
>
TYPEIT < SPC XFR MCP *>
TYPEIT <DAT WRT UBA PRG MSD DAT *>
TYPEIT <TIM BAD BUS CPU
>
TYPEIT < CON ERR ERR *>
TYPEIT <LAT CHK PAR NXD NXM ERR XFR PAR *>
TYPEIT <OUT NPR PAR NXD>
POPJ P,0
RPTITL: PUSHJ P,TTLST ;OUTPUT TITLE PAGE
TYPEIT < - MOVABLE HEAD SYSTEM ANALYSIS>
TYPEIT <
HARDWARE-DETECTED SOFTWARE-DETECTED>
TYPEIT <
CTL SEC MEM WRD PWR SRH OVR NOT ILL>
TYPEIT < ILL SEC SUR SAT RIB CHK SEK XFR XFR SEK SFT CWF
PAR PAR PAR PAR FAL ERR RUN NXM RDY WRT>
TYPEIT < DTO ADD ADD ERR ERR ERR INC HG1 HG2 HNG HNG ERR
>
POPJ P,0
FHTITL: PUSHJ P,TTLST
TYPEIT < - FIXED HEAD SYSTEM ANALYSIS>
TYPEIT <
HARDWARE-DETECTED SOFTWARE-DETECTED>
TYPEIT <
SRH DUL ILL NOT PWR SEC MEM CTL ILL>
TYPEIT < OVR SAT RIB CHK SEK XFR XFR SEK SFT CWF
ERR SEL BCD RDY FAL PAR PAR PAR NXM WRT>
TYPEIT < RUN ERR ERR ERR INC HG1 HG2 HNG HNG ERR
>
POPJ P,0
RS4TTL: PUSHJ P,TTLST
TYPEIT < -RS04 DEVICE ANALYSIS>
TYPEIT <
ERROR TOTALS DETECTED BY DEVICE
>
TYPEIT < D U O D W I A P R I I>
TYPEIT <
C N P T L A O A M L L
K S I E E E E R R R F
>
POPJ P,0 ;SHOULD WORK
;RS04 DEVICE SUMMARY TITLE FOR TOPS-20 - REWRITTEN WITH EDIT [1217]
RS4T2L: TYPEIT <
RS04 ERROR REGISTER
D U O D W I A P R I I
C N P T L A O A M L L
K S I E E E E R R R F
>
POPJ P,0
TU6TTL: PUSHJ P,TTLST
TYPEIT < -TU16 & TU45 DEVICE ANALYSIS
>
TYPEIT <
ERROR TOTALS DETECTED BY DEVICE
>
TYPEIT <
CC U O D N I F N PL IV D F P R I I>
TYPEIT <
OR N P T E CF C S ER NP P M A M L L>
TYPEIT <
RC S I E F SM E G FC CE A T R R R F>
TYPEIT <
R
>
POPJ P,0
;TU16,45,77 DEVICE SUMMARY TITLE FOR TOPS-20 - REWRITTEN WITH EDIT [1217]
TU6T2L: TYPEIT <
ERROR REGISTER
CC U O D N I F N PL IV D F P R I I
OR N P T E CF C S ER NP P M A M L L
RC S I E F SM E G FC CE A T R R R F
R>
POPJ P,0
;TU70,71,72,73 DEVICE SUMMARY TITLE FOR TOPS-20 - REWRITTEN WITH EDIT [1217]
TU7T2L: TYPEIT <
ERROR REGISTER
M M U D C R I I
P P P P P M L L
E S A A A R R F
R T R R R
>
POPJ P,0
; RP4TTL- NEEDS 132 COLUMN LPT TO WORK AS PLANNED
RP4TTL: PUSHJ P,TTLST
TYPEIT < -RP04 (* RP05, RP06) DEVICE ANALYSIS>
TYPEIT <
ERROR TOTALS DETECTED BY DEVICE
- ERROR REG. #1 - - ERROR REG. #2 - - ERROR REG. #3 ->
TYPEIT <
* * * * *>
TYPEIT <
D U O D W I A H H E W F P R I I *A P 3 I N>
TYPEIT < M W FA T T MR C W C W *O S D A D3 U VW PD>
TYPEIT < C N P T L A O C C C C E A M L L>
TYPEIT < *C L 0 X H H R EB U D S& S S S C *C K C C I5 W UO SC>
TYPEIT <
K S I E E E E R E H F R R R R F *U U V E S>
TYPEIT < S U NS F F EW U U F U *Y I L L SV R FF UU
C>
TYPEIT < * U *L
>
POPJ P,0 ;IF THAT WORKS I'M SURPRISED.
;RP04,5,6 DEVICE SUMMARY TITLE FOR TOPS-20 - REWRITTEN WITH EDIT [1217]
; NEEDS 132 COLUMN OUTPUT DEVICE LPT TO WORK AS PLANNED
RP4T2L: TYPEIT <
- ERROR REG. #1 - >
TYPEIT < - ERROR REG. #2 - >
TYPEIT < - ERROR REG. #3 -
>
TYPEIT <
*>
TYPEIT < * * *>
TYPEIT < * * *>
TYPEIT <
D U O D W I A H H E W F P R I I *>
TYPEIT <A P 3 I N M W FA T T MR C W C W *>
TYPEIT <O S D A D3 U VW PD>
TYPEIT <
C N P T L A O C C C C E A M L L *>
TYPEIT <C L 0 X H H R EB U D S& S S S C *>
TYPEIT <C K C C I5 W UO SC>
TYPEIT <
K S I E E E E R E H F R R R R F *>
TYPEIT <U U V E S S U NS F F EW U U F U *>
TYPEIT <Y I L L SV R FF UU>
TYPEIT <
C *>
TYPEIT < U *>
TYPEIT <L>
POPJ P,0
CC1T2L: ;#1 3330 mod I, II title
TYPEIT <
- Sense Bytes 0-3 -
>
TYPEIT <
C I B E D O P I E N F W O C E >
TYPEIT <
R R O C C V R T O R P R P O D >
TYPEIT <
J Q P K K R M F C F R I I R P >
POPJ P, ;#1 return
;RM03 DEVICE SUMMARY TITLE FOR TOPS-20 - REWRITTEN WITH EDIT [1217]
; NEEDS AT LEAST A 100 COLUMN OUTPUT DEVICE TO WORK
RM3T2L: TYPEIT <
- ERROR REG. #1 - *>
TYPEIT < - ERROR REG. #2 -
>
TYPEIT <
D U O D W I A H H E W F P R I I>
TYPEIT < *B S O I L L D D>
TYPEIT <
C N P T L A O C C C C E A M L L>
TYPEIT < *S K P V S B V P>
TYPEIT <
K S I E E E E R E H F R R R R F>
TYPEIT < *E I E C C C C E
>
POPJ P,0
; DEVSUM -- SUBROUTINE TO OUTPUT DEVICE ERROR COUNTS
; SETUP P2= -# OF WORDS IN BLOCK TO TYPEOUT
; P3= XWD -#DEVICES,OFFSET WITH RESPECT TO NAMTBL OF DEVICE TYPE
; CALL PUSHJ P,DEVSUM
DEVSUM: HRRZ P1,DEVDSP(P3) ;CHECK FOR SOFT ERRORS FIRST
HLL P1,P2 ;-WCTO LEFT
SKIPE 0(P1) ;IS COUNT 0?
JRST DEVSU1 ;NO LIST
AOBJN P1,.-2 ;YES-BUMP COUNT
HLRZ P1,DEVDSP(P3) ;SETTUP AGAIN FOR HARD ERRORS
HLL P1,P2
SKIPE 0(P1) ;HARD ERROR?
JRST DEVSU1 ;LIST
AOBJN P1,.-2 ;TRY NEXT COUNTER
MOVSI P1,-NUMSFB ;HOW ABOUT SOFTWARE DETECTED
HRR P1,SOFDSP(P3)
SKIPE 0(P1) ;ANY COUNTS?
JRST DEVSU1 ;YES
AOBJN P1,.-2 ;TRY AGAIN
AOBJN P3,DEVSUM ;TRY NEXT DEVICE
POPJ P,0 ;ALL DONE GO HOME
DEVSU1: MOVE T1,NAMTBL(P3) ;PICKUP DEVICE NAME
PUSHJ P,.TSIXN ;TYPE IT IN SIXBIT
TYPEIT < HARD >
HLRZ P1,DEVDSP(P3) ;PICKUP ADDRESS OF HARD ERROR BLOCK
HLL P1,P2 ;PUT -WORDCOUNT IN LH OF P1
PUSHJ P,TYPCNT ;PUBLISH IT
MOVSI P1,-NUMSFB ;PICKUP SOFTWARE DETECTED ERR COUNT
HRR P1,SOFDSP(P3) ;PICKUP ADDRESS OF SOFT-DET ERROR BLOCK
PUSHJ P,TYPCNT
TYPEIT <
SOFT >
HRRZ P1,DEVDSP(P3)
HLL P1,P2 ;PUT -WORDCOUNT IN LH OF P1
PUSHJ P,TYPCNT
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
AOBJN P3,DEVSUM
POPJ P,0
;DEVSU2 ROUTINE REMOVED WITH EDIT [1217]
; MAGLST -- SUBROUTINE TO OUTPUT MAGTAPE ERROR COUNTS
; SETUP P2= -# OF WORDS IN BLOCK TO TYPEOUT
; P3= XWD -#DEVICES,OFFSET WITH RESPECT TO NAMTBL OF DEVICE TYPE
; CALL PUSHJ P,MAGLST
MAGLST: HRRZ P1,DEVDSP(P3) ;CHECK FOR SOFT ERRORS FIRST
HLL P1,P2 ;-WCTO LEFT
SKIPE 0(P1) ;IS COUNT 0?
JRST MAGLS1 ;NO LIST
AOBJN P1,.-2 ;YES-BUMP COUNT
HLRZ P1,DEVDSP(P3) ;SETTUP AGAIN FOR HARD ERRORS
HLL P1,P2
SKIPE 0(P1) ;HARD ERROR?
JRST MAGLS1 ;LIST
AOBJN P1,.-2 ;TRY NEXT COUNTER
MOVSI P1,-NUMSFB ;HOW ABOUT SOFTWARE DETECTED
HRR P1,SOFDSP(P3)
SKIPE 0(P1) ;ANY COUNTS?
JRST MAGLS1 ;YES
AOBJN P1,.-2 ;TRY AGAIN
AOBJN P3,MAGLST ;TRY NEXT DEVICE
POPJ P,0 ;ALL DONE GO HOME
MAGLS1: MOVE T1,NAMTBL(P3) ;PICKUP DEVICE NAME
PUSHJ P,.TSIXN ;TYPE IT IN SIXBIT
TYPEIT < HARD >
HLRZ P1,DEVDSP(P3) ;PICKUP ADDRESS OF HARD ERROR BLOCK
HRLI P1,-7 ;PUT -WORDCOUNT IN LH OF P1
PUSHJ P,TYPCNT ;PUBLISH IT
PUSHJ P,.TTABC
PUSHJ P,.TTABC
MOVE T1,0(P1) ;# MILLION WORDS READ
PUSHJ P,.ODECW ;DUMP W A "."
PUSHJ P,.MOUT ;DUMP PART OF MILLION
TYPEIT < MILLION>
TYPEIT <
SOFT >
HRRZ P1,DEVDSP(P3)
HLL P1,P2 ;PUT -WORDCOUNT IN LH OF P1
PUSHJ P,TYPCNT
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
AOBJN P3,MAGLST
POPJ P,0
; .MOUT -- ROUTINE TO DUMP FRACTIONAL PART OF A MILLION
; WORDS READ
.MOUT: PUSHJ P,.SAVE4 ;SAVE P1-P4
MOVE P1,1(P1)
SETZ P3,
PUSHJ P,CNVRT
POPJ P,0 ;ALSO RETURNS P1-P4
CNVRT: AOS ,P3
IDIVI P1,^D10
HRLM P2,0(P) ;SAVE REMAINDER ON STACK
SKIPE ,P1
PUSHJ P,CNVRT ;SOME MORE
CAIN P3,6 ;DUMP LEADING ZEROS
JRST .+4
TYPEIT <0>
AOJA P3,.-4
HLRZ T1,0(P) ;NOW GET NUMBERS TO PRINT
ADDI T1,"0"
PUSHJ P,.TCHAR ;DUMP IT
POPJ P,0 ;ONE OF THESE WILL GET US BACK TO
;.MOUT AFTER ALL NUMBERS ARE TYPED
;FIXMAN ROUTINE REMOVED WITH EDIT [1217]
; MDESUM -- SUBROUTINE TO OUTPUT DEVICE ERROR COUNTS
; FOR MASSBUS DEVICE ERROR REGISTERS
; SETUP P2= -# OF WORDS IN BLOCK TO TYPEOUT
; P3= XWD -#DEVICES,OFFSET WITH RESPECT TO MASNAM TABLE OF DEVICE TYPE
; CALL PUSHJ P,MDESUM
MDESUM: HRRZ P1,MASDSP(P3) ;CHECK FOR SOFT ERRORS FIRST
HLL P1,P2 ;-WC TO LEFT
SKIPE 0(P1) ;IS COUNT 0?
JRST MDESU1 ;NO LIST
AOBJN P1,.-2 ;YES-BUMP COUNT
HLRZ P1,MASDSP(P3) ;SETTUP AGAIN FOR HARD ERRORS
HLL P1,P2
SKIPE 0(P1) ;HARD ERROR?
JRST MDESU1 ;LIST
AOBJN P1,.-2 ;TRY NEXT COUNTER
AOBJN P3,MDESUM ;TRY NEXT DEVICE
POPJ P,0 ;ALL DONE GO HOME
MDESU1: MOVE T1,MASNAM(P3) ;PICKUP DEVICE NAME
PUSHJ P,.TSIXN ;TYPE IT IN SIXBIT
TYPEIT < H >
HRRZ P1,MASDSP(P3) ;PICKUP ADDRESS OF HARD ERROR BLOCK
HLL P1,P2 ;PUT -WORDCOUNT IN LH OF P1
PUSHJ P,MASCNT ;PUBLISH IT
TYPEIT <
S >
HLRZ P1,MASDSP(P3)
HLL P1,P2 ;PUT -WORDCOUNT IN LH OF P1
PUSHJ P,MASCNT
PUSHJ P,.TCRLF
PUSHJ P,.TCRLF
AOBJN P3,MDESUM
POPJ P,0
; chklst--subroutine to check dev counters to see if
; any need listing. similar to 1st part of devsum
; setup p1 = -# words(counters) per dev to check
; p2 = -# devs to check,,offset to 1st
; p3 = lh--devdsp or 0
; rh--masdsp or 0
; if lh not = 0, sofdsp will also be checked
; call: pushj p,chklst
; rtn: +1 if no listing req'd
; +2 if listing is needed
chklst: HLRZ T1,P2 ;GET # DEVICES TOCHECK
SKIPN T1 ;IF NONE--EDIT 145
POPJ P,0 ;RETURN NOW
hlrz t1,p3 ;get devdsp
skipn t1 ;anything there
jrst chkls1 ;no try rh
add t1,p2 ;build pointer for soft errors first
HRLZ T2,P1 ;#COUNTERS
HRR T2,(T1) ;WHERE TO START
SKIPE (T2) ;= 0?
JRST SKPRTN ;NO-LIST
AOBJN T2,.-2 ;CHECK NEXT COUNTER
AOBJN T1,CHKLST+7 ;CHECK NEXT DEVICE
HLRZ T1,P3 ;GETDEVDSP
ADD T1,P2 ;NOW FOR HARD ERRORS
HRLZ T2,P1 ;# COUNTERS
HLR T2,(T1) ;WHERE TO START
SKIPE (T2) ;= 0?
JRST SKPRTN ;NO
AOBJN T2,.-2
AOBJN T1,.-5
HRRZI T1,SOFDSP ;CHECK SOFTWARE DETECTED
ADD T1,P2 ;OFFSETS
HRLZI T2,-NUMSFB ;# COUNTERS
HRR T2,(T1) ;WHERE TO START
SKIPE (T2) ;= 0?
JRST SKPRTN
AOBJN T2,.-2 ;NEXT COUNTER
AOBJN T1,.-5 ;NEXT DEVICE
; FALL INTO MASSBUS CHECKERS
CHKLS1: HRRZ T1,P3 ;GET MASDSP
SKIPN T1
POPJ P,0 ;LEAVE
ADD T1,P2 ;# DEVS,OFFSET
HRLZ T2,P1 ;# COUNTERS
HRR T2,(T1) ;WHERE TO START
SKIPE (T2)
JRST SKPRTN
AOBJN T2,.-2
AOBJN T1,.-5 ;CHECK NEXT DEVICE
HRRZ T1,P3 ;NOW FOR HARD ERRORS
ADD T1,P2
HRLZ T2,P1 ;# COUNTERS
HLR T2,(T1) ;WHERE TO START
SKIPE (T2) ;= 0?
JRST SKPRTN ;NOPE
AOBJN T2,.-2 ;CHECK NEST COUNTER
AOBJN T1,.-5 ;CHECK NEXT DEVICE
POPJ P,0 ;THATS ALL LEAVE
;MDESU2, CHKLS2 & CHKL21 ROUTINES REMOVED WITH EDIT [1217]
;TYPCNT -- SUBROUTINE TO TYPE ERROR BLOCK COUNTS FROM RIGHT HALF WORD [1217]
;SETUP P1= -WORDCOUNT,START ADDRESS OF BLOCK TO TYPE
;
;CALL PUSHJ P,TYPCNT
;RETURN CALL+1
TYPCNT: HRRZ T1,(P1) ;PICKUP VALUE IN RIGHT HALF WORD
PUSHJ P,TYPE4 ;TYPE IT AS 5 CHARACTER DECIMAL DIGIT
MOVEI T1,.TSPAC ; CHANGING 0'S TO SPACES
TLNE F,F.SAWD ;# SEEN?
MOVEI T1,.TPER ;YES
PUSHJ P,0(T1) ;TYPE EITHER SPACE OR PERIOD
AOBJN P1,TYPCNT ;LOOP TILL DONE
POPJ P,0
;CNTTYP -- SUBROUTINE TO TYPE ERROR BLOCK COUNTS FROM LEFT HALF WORD [1217]
;SETUP P1= -WORDCOUNT,START ADDRESS OF BLOCK TO TYPE
;
;CALL PUSHJ P,CNTTYP
;RETURN CALL+1
CNTTYP: HLRZ T1,(P1) ;PICKUP VALUE IN LEFT HALF WORD
PUSHJ P,TYPE4 ;TYPE IT AS 5 CHARACTER DECIMAL DIGIT
MOVEI T1,.TSPAC ; CHANGING 0'S TO SPACES
TLNE F,F.SAWD ;# SEEN?
MOVEI T1,.TPER ;YES
PUSHJ P,0(T1) ;TYPE EITHER SPACE OR PERIOD
AOBJN P1,CNTTYP ;LOOP TILL DONE
POPJ P,0
;MASCNT -- SUBROUTINE TO TYPE ERROR BLOCK COUNTS FROM RIGHT HALF WORD [1217]
;SETUP P1= -WORDCOUNT,START ADDRESS OF BLOCK TO TYPE
;
;CALL PUSHJ P,MASCNT
;RETURN CALL+1
MASCNT: HRRZ T1,(P1) ;PICKUP VALUE IN RIGHT HALF WORD
PUSHJ P,TYPE2 ;TYPE IT AS 3 CHARACTER DECIMAL DIGIT
MOVEI T1,.TSPAC ; CHANGING 0'S TO SPACES
TLNE F,F.SAWD ;# SEEN?
MOVEI T1,.TPER ;YES
PUSHJ P,0(T1) ;TYPE EITHER SPACE OR PERIOD
AOBJN P1,MASCNT ;LOOP TILL DONE
POPJ P,0
;CNTMAS -- SUBROUTINE TO TYPE ERROR BLOCK COUNTS FROM LEFT HALF WORD [1217]
;SETUP P1= -WORDCOUNT,START ADDRESS OF BLOCK TO TYPE
;
;CALL PUSHJ P,CNTMAS
;RETURN CALL+1
CNTMAS: HLRZ T1,(P1) ;PICKUP VALUE IN LEFT HALF WORD
PUSHJ P,TYPE2 ;TYPE IT AS 3 CHARACTER DECIMAL DIGIT
MOVEI T1,.TSPAC ; CHANGING 0'S TO SPACES
TLNE F,F.SAWD ;# SEEN?
MOVEI T1,.TPER ;YES
PUSHJ P,0(T1) ;TYPE EITHER SPACE OR PERIOD
AOBJN P1,CNTMAS ;LOOP TILL DONE
POPJ P,0
; TYPE4 -- SUBROUTINE TO TYPE 4 DIGIT DECIMAL NUMBER
; CONVERTING LEADING ZEROS TO SPACES
; CALL PUSHJ P,TYPE4
TYPE4: MOVSI T3,-4 ;SETUP TO DO 4 DIGITS
CAILE T1,^D9999 ;IS NUMBER TOO BIG TO TYPE IN 4 DIGITS
PJRST TYPE4O ;FILL FIELD WITH ASTIRSKS [1217]
TLZ F,F.SAWD ;CLEAR BIT SAYING WE SAW A NON-ZERO DIGIT
DIVST: IDIVI T1,^D10
HRLM T2,(P) ;SAVE REMAINDER ON STACK
AOBJP T3,.+2
PUSHJ P,DIVST ;ITERATE
HLRZ T1,(P) ;PICKUP DIGIT
TLNE F,F.SAWD ;HAVE WE SEEN A NON-ZERO DIGIT YET?
JRST DIVST1 ;YES- TYPE 0 AS 0 NOT SPACE
CAIN T1,0 ;IS IT A ZERO
MOVEI T1,-20 ;YES CHANGE IT TO SPACE
DIVST1: ADDI T1,60 ;DO CONVERSION TO ASCII
TLZ T1,-1 ;CLEAR THE LH PART OF WORD
CAIE T1,40 ;IS THIS DIGIT SPACE THEREFORE A ZERO
TLO F,F.SAWD ;SAY WE SAY A DIGIT
PJRST .TCHAR ;TYPE IT AND LOOP TILL DONE
TYPE4O: TYPEIT <****> ;SHOW FIELD OVERFLOW [1217]
POPJ P,0
.TPER: TYPEIT <.>
POPJ P,0
; TYPE2 -- SUBROUTINE TO TYPE 2 DIGIT DECIMAL NUMBER
; CONVERTING LEADING ZEROS TO SPACES
; CALL PUSHJ P,TYPE2
TYPE2: MOVSI T3,-2 ;SETUP TO DO 2 DIGITS
CAILE T1,^D99 ;IS NUMBER TOO BIG TO TYPE IN 2 DIGITS
PJRST TYPE2O ;FILL FIELD WITH ASTIRSKS [1217]
TLZ F,F.SAWD ;CLEAR BIT SAYING WE SAW A NON-ZERO DIGIT
DIVST3: IDIVI T1,^D10
HRLM T2,(P) ;SAVE REMAINDER ON STACK
AOBJP T3,.+2
PUSHJ P,DIVST3 ;ITERATE
HLRZ T1,(P) ;PICKUP DIGIT
TLNE F,F.SAWD ;HAVE WE SEEN A NON-ZERO DIGIT YET?
JRST DIVST4 ;YES- TYPE 0 AS 0 NOT SPACE
CAIN T1,0 ;IS IT A ZERO
MOVEI T1,-20 ;YES CHANGE IT TO SPACE
DIVST4: ADDI T1,60 ;DO CONVERSION TO ASCII
TLZ T1,-1 ;CLEAR THE LH PART OF WORD
CAIE T1,40 ;IS THIS DIGIT SPACE THEREFORE A ZERO
TLO F,F.SAWD ;SAY WE SAY A DIGIT
PJRST .TCHAR ;TYPE IT AND LOOP TILL DONE
TYPE2O: TYPEIT <**> ;SHOW FIELD OVERFLOW [1217]
POPJ P,0
PDLPNT: IOWD LPDL,PDLST ;INITIAL POINTER
;***********************************************
;***********************************************
;
;
;*** WATCH OUT, LISTING IS COMPRESSED TO SAVE PAPER
;
;***********************************************
;***********************************************
.XCREF
DEFINE TBLCH1(A,B,C,D,E,F,G)<
SS (A,A,0)
>
DEFINE TBLCH2(A,B,C)<
SP (A,A,B,C)
>
; CALL MACRO TO SETUP DEFAULTS
DEFVAL
; NOW MAKE SWTCHS MACRO FOR USE WITH DOSCAN
DEFINE SWTCHS<
DUMCH1
DUMCH2
>
XLIST
DOSCAN(SWTAB)
LIST
; GENERATE SIXBIT TABLE OF DEVICE NAMES
DEFINE DUMDV(A)<
SIXBIT/A/
>
NAMTBL:XLIST
DUMDVA
LIST
NAMLTH=<.-1>-NAMTBL+1 ;LENGTH OF TABLE OF SIXBIT NAMES
;NAMTB2 TABLE REMOVED WITH EDIT [1217]
;USING SAME DEFINITION OF MACRO NOW GENERATE
; LIST OF ONLY MASSBUS DEVICE NAMES
MASNAM:XLIST
DUMFS
DUMRP
DUMTM
LIST
MASLTH=<.-1>-MASNAM+1 ;LENGTH OF THIS TABLE
;MASNA2 TABLE REMOVED WITH EDIT [1217]
; GENERATE THE DISPATCH TABLE TO ENTRY SUMMATION ROUTINES
; ALL WILL RETRN VIA POPJ P,0
; TABLE IS INDEXED BY ERROR TYPE CODE
DEFINE TBLENT(A,B,C,D,E)<
IFDIF<B><UNKNOWN>,< XWD 0,SML'A'>
IFIDN<B><UNKNOWN>,< XWD 0,[POPJ P,0]>
>
; GENERATE THE TABLE
SUMDSP:XLIST
DUMENT
LIST
; GENERATE CONI BIT ERROR DISPATCHER
; RH = SOFT ERROR POINTER
; LH = HARD ERROR POINTER
DEFINE DUMDV(A)<
XWD A'HD,A'SF
>
DEVDSP:XLIST
DUMDVA
LIST
;DEVDS2 TABLE REMOVED WITH EDIT [1217]
DEFINE DUMDV(A)<
XWD A'ST,A'SP
>
; ST=STORAGE TEMP,SP=PERM.
SOFDSP:XLIST
DUMDVA
LIST
;SOFDS2 TABLE REMOVED WITH EDIT [1217]
; NOW THE DISPATCHER FOR MASSBUS ERROR REGS
DEFINE DUMDV (A)<
XWD A'DS, A'DH
>
MASDSP:XLIST
DUMFS
DUMRP
DUMTM
LIST
;MASDS2 & BKLOC TABLES REMOVED WITH EDIT [1217]
IFN EXPPRT,<
LALL
>
IFE EXPPRT,<
SALL
>
DEFINE TBLENT(A,B,C,D,E)<
XWD 0,A
>
ALLTBL:XLIST
DUMENT
LIST
ALLLTH=<.-1>-ALLTBL+1 ;LENGTH OF ERROR INDEX TABLE
; GENERATE THE VARIOUS ASCIZ MESSAGES TO BE USED FOR HEADER
; ENTRY TYPE IDENTIFICATION
; FORMAT WILL BE MESS(#) WHERE MESS IS THE ENTRY TYPE
; DESCRIPTION AND # IS THE ERROR TYPE
DEFINE TBLENT(A,B,C,D,E)<
[ASCIZ/B/]
>
; GENERATE THE TEXT
TYPMES: DUMENT
XLIST
LIT
LIST
END START