Trailing-Edge
-
PDP-10 Archives
-
de-10-omona-v-mc9
-
sysern.mac
There are 14 other files named sysern.mac in the archive. Click here to see a list.
;<SYSERR>SYSERN.MAC.15, 19-Aug-78 12:14:42, EDIT BY BAKER
;<SYSERR>SYSERN.MAC.14, 18-Aug-78 11:17:58, EDIT BY WOJCIK
;<SYSERR>SYSERN.MAC.13, 17-Aug-78 14:04:00, EDIT BY WOJCIK
;<SYSERR>SYSERN.MAC.12, 12-Jul-78 09:41:13, EDIT BY WOJCIK
;<SYSERR>SYSERN.MAC.11, 11-Jul-78 10:01:56, EDIT BY WOJCIK
;FIX /ENTRY SWITCH
;<SYSERR>SYSERN.MAC.9, 10-Jul-78 08:12:35, EDIT BY DRUEKE
;<SYSERR>SYSERN.MAC.8, 10-Jul-78 07:51:10, EDIT BY DRUEKE
;<SYSERR>SYSERN.MAC.7, 6-Jul-78 11:33:18, EDIT BY WOJCIK
;CHANGE VERSION TO 13(1000)
;<BAKER.SYSERR>SYSERN.MAC.6, 23-Jun-78 09:17:58, Edit by DRUEKE
;REMOVE SHORT MASSBUS NAME TABLE TO ALLOW MBCHAR ROUTINE TO WORK CORRECTLY
;<BAKER.SYSERR>SYSERN.MAC.5, 23-Jun-78 08:50:40, Edit by DRUEKE
;<BAKER.SYSERR>SYSERN.MAC.4, 23-Jun-78 08:28:24, Edit by DRUEKE
;EDIT 743-FIX LINE ID LISTING
;<SYSERR>SYSERN.MAC.2, 22-Jun-78 13:43:24, EDIT BY DRUEKE
;MOVE SOURCE FROM <DRUEKE> TO <SYSERR>
;<DRUEKE>SYSERN.MAC.23, 22-Jun-78 13:41:23, EDIT BY DRUEKE
;ADD ROUTINES LC$3ER & LC$4ER
;<DRUEKE>SYSERN.MAC.22, 22-Jun-78 11:25:40, EDIT BY DRUEKE
;SPLIT OUT LISTING OF NETWORK LINE ID AS A CALLABLE ROUTINE
TITLE SYSERN -- SYSTEM ERROR FILE PROCESSOR -- MAINLINE CODE
SUBTTL VERSION 12A(1013) 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
SEARCH SYRLOW
.REQUIRE SYRLIB
;EXTERNALS DEFINED HERE ARE IN SYRLIB.MAC, THE LIBRARY
;OF COMMON ROUTINES FOR ALL PARTS OF THE SYSERR PACKAGE.
EXTERNAL DAEVER,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,NOTRAN
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,TITLST,SKIPWD,ADVBFF
EXTERNAL FIXBUF,STBUFF,INPWD,GOSUM,GETWD,FFPRNT,SLPRNT,CLPRNT
EXTERNAL TBPRNT,CHROUT,TTYSIX,MDECHR,FIXNAM,.TVERW,PTSTRG
EXTERNAL DUMPOS,TAPPOS,DSKPOS
;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,MASNA2,MASLT2,MDE000
INTERNAL FE$NAM,BLTTAB
;DUMALL -- DUMMY MACRO LEVEL 3
;SUBMACRO DUMXXX
;ARGS
;NONE USED TO HOUSE LEVEL 2 SUBMACRO DUMXXX
;THOSE DEFINED HERE ARE THOSE FULLY PROCESSED BY
;THIS SEGMENT. PART OF EDIT #120.
DEFINE DUMALL<
DUM201
DUM202
DUM203
DUM210
DUM211
DUM220
DUM221
DUM230
DUM231
DUM232
>
.JBVER==137
LOC .JBVER
BYTE (3)VWHO(9)VSYSER(6)VMINOR(18)VEDIT
SALL
TWOSEG
RELOC 400000
;DUMMY ROUTINES TO LET SYRLIB COMPILE
MDE000:
BLTTAB:
FE$NAM:
KLEDMP: BLOCK 1 ;GIVE IT SOME ROOM
;SUBTAB -- SUBROUTINES TO OUTPUT ENTRY WORD IN DESIRED FORMAT
;SETUP P1=ADDRESS OF TEXT TO BE OUTPUT AS DESCRIPTOR
; FOR THIS DATA WORD.
; P2= WORD TO BE OUTPUT.
;CALL PUSHJ P,SUBTAB(MODE)
;
;RETURN CALL+1
;DISPATCHES TO APPROPIATE ROUTINE INTERNALLY TO DO WORD CONVERSION AND OUTPUT
SUBTAB: SINDEX <OCTLE>
SINDEX <DECML>
SINDEX <ASCIE>
SINDEX <SIXBT>
SINDEX <HAFWD>
SINDEX <SPECL>
SINDEX <HTIME>
SINDEX <PPNWW>
SINDEX <UDATE>
SINDEX <TASCI>
SINDEX <PPNWT>
;PROCSA -- STANDARD ENTRY PROCESSOR #1
;CALL JRST PROCSN
;
;RETURN JRST ABORT WHEN ENTRY IS PROCESSED OR ABORTED
;OPERATION IS CONTROLLED BY ENTRY IN CONTROL TABLE
;ROUTINE GETS AOB POINTER TO DESIRED WORD IN BUFFER
;IF THERE IS ONE PRESENT
;THEN DISPATCHES TO WORD PROCESSOR LEVEL
;VIA PUSHJ P,SUBTAB(MODE)
;PASSES BUFFER WORD IN P2 TO WORD PROCESSOR
PROCSN: TRNE F,F.BRF ;/BRIEF ? - EDIT [724]
JRST NEWCMD## ;YES! - DO IT THAT WAY
SETZM OFFSET ;CLAR WORD OFFSET COUNT
MOVE P1,(CTINDX) ;PICKUP FIRST WORD IN CONTROL TABL
JUMPE P1,ABORT ;ABORT WHEN END OF CTL TABL SEEN
TLNE P1,770000 ;DO WE NEED TO GET AN AOB POINTER
PUSHJ P,GETAOB ;YES-WORD IS IN A RELOCATABL SUBTABLE IN ENTRY
LDB T2,[POINT 6,P1,11] ;**WATCHOUT**PICKUP WORD LOCATION IN ENTRY
ADD T2,OFFSET ;OFFSET CONTAINS AOB BLOCK STARTING LOCATION
CAML T2,ENTRWC ;[153]DONT TRY TO ACCESS WORDS OUTSIDE OF ENTRY
AOJA CTINDX,PROCSN ;GET NEXT WORD IN CTL TABLE
CAILE T2,WKSIZE ;MAKE SURE THE WORD ASKED FOR IS IN WORK BUFFER
AOJA CTINDX,PROCSN ;IGNORE AND GET NEXT WORD
MOVE P2,WKBUFF(T2) ;PICKUP DATA WORD IN WORK BUFF
LDB T3,[POINT 6,P1,17] ;****WATCHOUT**PICKUP WORD PROCESSES MODE
CAIG T3,SUBMAX ;***WATCHOUT***IS IT AN UNKNOWN MODE
PUSHJ P,SUBTAB(T3) ;ITS RECOGINIZED
AOJA CTINDX,PROCSN ;EITHER NOT KNOWN OR FALL HERE
GETAOB: LDB T2,[POINT 6,P1,5] ;PICKUP AOBJN POINTER ADDRESS IN ENTRY
;AOB GIVEN IS WITH REF TO HEADER
SKIPL T2,WKBUFF(T2) ;PICKUP THE ACTUAL POINTER AND SKIP IF LEGAL
JRST AOBQIT ;AOBJN POINTER = 0 CLEAN UP PDL AND GO TO PROCSN
SUB T2,HEADWC ;CORRECT AOB POINTER FOR HEADER SIZE
HRRZM T2,OFFSET ;SAVE IT IN OFFSET
MOVEM T2,AOBPNT ;SAVE POINTER FOR SPECL ROUTINE USAGE
POPJ P, ;VAMOOSE
;HERE WHEN AOBJN POINTER = POS IN LH
;NORMALLY SHOULD NOT HAPPEN
AOBQIT: POP P,T2 ;DUMMY POP TO FIX PDP
AOJA CTINDX,PROCSN ;BUMP CTINDX AND BACK TO START
SUBTTL DIALOG RELATED SUBROUTINES
;HERE IS THE DUMMY PROCSB FOR THIS HIGH SEG
;IT SAVES THE AC'S AND THEN CALLS OVRLAY FOR REPLACEMENT
;WITH SYSERB.HGH
PROCSB: MOVE T1,[SIXBIT/SYSERB/]
MOVEM T1,OVRBLK+1 ;INTO THE SPEC AREA
SETZ 15,
MOVEM 17,SAVEAC+17
MOVEI 17,SAVEAC
BLT 17,SAVEAC+16 ;TUCK AWAY OUR AC'S
JRST OVRLAY ;NOW PLEASE OVERLAY US WITH PROCSB
;HERE IS THE DUMMY PROCSA FOR THIS HIGH SEG
;IT SAVES THE AC'S AND THEN CALLS OVRLAY FOR REPLACEMENT
;WITH SYSERB.HGH
PROCSA: MOVE T1,[SIXBIT/SYSERA/]
MOVEM T1,OVRBLK+1 ;INTO THE SPEC AREA
SETZ 15,
MOVEM 17,SAVEAC+17
MOVEI 17,SAVEAC
BLT 17,SAVEAC+16 ;TUCK AWAY OUR AC'S
JRST OVRLAY ;NOW PLEASE OVERLAY US WITH PROCSB
;HERE IS THE DUMMY PROCSD FOR THIS HIGH SEG
;IT SAVES THE AC'S AND THEN CALLS OVRLAY FOR REPLACEMENT
;WITH SYSERD.HGH
PROCSD: MOVE T1,[SIXBIT/SYSERD/]
MOVEM T1,OVRBLK+1 ;INTO THE SPEC AREA
SETZ 15,
MOVEM 17,SAVEAC+17
MOVEI 17,SAVEAC
BLT 17,SAVEAC+16 ;TUCK AWAY OUR AC'S
JRST OVRLAY ;NOW PLEASE OVERLAY US WITH PROCSB
;HERE IS THE DUMMY PROCSC FOR THIS HIGH SEG
;IT SAVES THE AC'S AND THEN CALLS OVRLAY FOR REPLACEMENT
;WITH SYSERC.HGH
PROCSC: MOVE T1,[SIXBIT/SYSERC/]
MOVEM T1,OVRBLK+1 ;INTO THE SPEC AREA
SETZ 15,
MOVEM 17,SAVEAC+17
MOVEI 17,SAVEAC
BLT 17,SAVEAC+16 ;TUCK AWAY OUR AC'S
JRST OVRLAY ;NOW PLEASE OVERLAY US WITH PROCSC
;STARTN-- ROUTINE TO START AT WHEN OVERLAYED
;TO CORRECTLY PROCESS CURRENT ENTRY.
STARTN: MOVEI T1,CHROUT ;OUR TYPEOUT ROUTINE
PUSHJ P,.TYOCH## ;INIT SCAN
MOVE T1,ERTYPE ;CURRENT TYPE
PUSHJ P,ERRINT ;GET OUR INDEX VALUE
MOVE T1,ERTYPE ;CORRECT INDEX TO ENTCHR TABLE
MOVE T2,ENTCHR(T1) ;PICKUP ENTRY CHAR WORD
TLZ F,F.BTCK ;CLEAR EXAMINE ENTRY FLAG
TRNN F,F.ENT ;DOING /ENTRY?
TRNE F,F.SEQ
JRST START1
TLNN T2,E.LALL!E.LNXM!E.LPAR!E.LPER!E.LSUM ;ANY LISTING DESIRED
JRST SKIPIT ;SKIP THIS ENTRY
TLNE T2,E.LNXM!E.LPAR!E.LPER!E.LSUM ;ANY REASON TO DO BIT CHECKING?
TLO F,F.BTCK ;YES-SET FLAG TO DO IT LATER
START1: MOVE T3,ERTYPE ;GET CORRECT INDEX
AOS ENTCHR(T3) ;NO- BUMP COUNTER
SETZ WKINDX, ;CLEAR INDEX INTO BUFFER
SKIPG T1,ENTRWC ;PICKUP ENTRY LENGTH AND CHECK FOR LEGALITY
FATAL <ENTRY WITH ZERO LENGTH BODY SPECIFIED>
MOVE P4,ERRIND
TLNE F,F.BTCK ;ANY TO DO?
PUSHJ P,@BITCHK(P4) ;GO DO IT
TRNE F,F.REM ;[417]/REMOTE?
PUSHJ P,REMDAT## ;YES-DO IMAGE BINARY DUMP
PUSHJ P,HDRLST
MOVE T2,ALLIND
HRRZ T1,PCSTBL(T2)
HLRZ CTINDX,PCSTBL(T2) ;CONTROL TABLE ADDRESS
JRST (T1)
SUBTTL SPECIAL DECODING ROUTINES
NCUVER: TYPEIT (<
PROGRAM VERSION: >)
LDB T1,[POINT 9,P2,11] ;EDIT 106
PUSHJ P,.TOCTW ;OUTPUT MAJOR
LDB T1,[POINT 6,P2,17] ;NOW MINOR
JUMPE T1,NCUVC ;IF ANY
SOS T1 ;MAKE ALPHA OFFSET
IDIV T1,"Z"-"A"
JUMPE T1,NCUVS2
ADDI T1,"A"
PUSH P,T2
PUSHJ P,.TCHAR
POP P,T2
NCUVS2: MOVEI T1,"A"(T2) ;GET LOW LETTER
PUSHJ P,.TCHAR
NCUVC: MOVEI T1,"("
PUSHJ P,.TCHAR
LDB T1,[POINT 18,P2,35] ;CUST VER
PUSHJ P,.TOCTW
MOVEI T1,")"
PUSHJ P,.TCHAR
POPJ P,0
;HERE TO LIST THE OPR COMMENTS FROM 220 ENTRY
;P2 HAS NH%PTR
NETOPR: SKIPN P2 ;IF NULL
POPJ P,0 ;GO BACK?
TYPEIT <
TEXT FROM OPERATOR: >
HRRZ T1,WKBUFF(P2) ;GET START OF TEXT
PUSHJ P,.TSTRG ;LIST IT
POPJ P,0
;HERE TO LIST NEW TOPOLOGY CHANGE ENTRY
;P2 HAS NH%PTR
NETTOP: SKIPN P2 ;SHOULDN'T BE BLANK
POPJ P,0 ;IT IS?
TYPEIT <
NEW STATE CODE: >
HRRZ T2,WKBUFF(P2) ;GET THE VALUE
CAIL T2,TOPMAX ;DO I KNOW?
JRST [TYPEIT <UNKNOWN TO SYSERR>
POPJ P,0]
MOVE T1,TOPLST(T2) ;PNTR TO ASCIZ
PUSHJ P,.TSTRG
POPJ P,0
TOPLST: [ASCIZ/0.-LINE OR STATION UP/]
[ASCIZ/1.-DOWN FOR REC'D CRC,PARITY,ETC ERRORS/]
[ASCIZ/2.-DOWN FOR REC TIMEOUT ERRORS/]
[ASCIZ/3.-DOWN FOR REC SELECTION ERRORS/]
[ASCIZ/4.-DOWN FOR XMIT CRC, PARITY,ETC. ERRORS/]
[ASCIZ/5.-DOWN FOR RESOURCE ERRORS/]
[ASCIZ/6.-DOWN FOR OTHER ERRORS/]
[ASCIZ/7.-PUT IN MAINT. MODE 1 BY OPR./]
[ASCIZ/8.-PUT IN MAINT. MODE 2 BY OPR./]
[ASCIZ/9.-PUT IN MAINT. MODE 3 BY OPR./]
[ASCIZ/10.-PUT IN MAINT. MODE 4 BY OPR./]
[ASCIZ/11.-PUT IN MAINT. MODE 5 BY OPR./]
[ASCIZ/12.-TRUNED OFF BY OPR OR COMMON CARRIER DISCONNECT/]
[ASCIZ/13.-NODE IS IN SHUT STATE/]
[ASCIZ/14.-NODE IS UP/]
[ASCIZ/15.-NODE IS DOWN/]
TOPMAX==^D15 ;MAX WE KNOW IN ABOVE LIST
NL$RTN: LDB P1,[POINT 8,WKBUFF+NL%RTN,35] ;GET RETURN STATUS
CAIN P1,1 ;GOOD RELOAD?
POPJ P,0 ;YES! - LEAVE
IORI P1,777400 ;HW - -
HRRES P1,P1 ;FW - NEG.
MOVMS P1,P1 ;POS OFFSET
MOVE T1,NLLRES(P1) ;ADDR. OF REASON
PJRST .TSTRG
NLLRES: [ASCIZ/0-INVALID RETURN CODE/]
[ASCIZ/-1. INVALID FUNCTION OR OPTION/]
[ASCIZ/-2. INVALID MESSAGE FORMAT/]
[ASCIZ/-3. INSUFFICIENT STATUS/]
[ASCIZ/-4. INVALID RETURN CODE/]
[ASCIZ/-5. INVALID RETURN CODE/]
[ASCIZ/-6. INVALID RETURN CODE/]
[ASCIZ/-7. INVALID RETURN CODE/]
[ASCIZ/-8. INVALID LINE ID/]
[ASCIZ/-9. LINE IN WRONG STATE/]
[ASCIZ/-10. LINE COMMUNICATIONS ERROR/]
[ASCIZ/-11. INVALID NODE ID/]
[ASCIZ/-12. INVALID SERVER ID/]
[ASCIZ/-13. INVALID FILE/]
[ASCIZ/-14. CONFIGURATION DATA BASE ERROR/]
[ASCIZ/-15. RESCOURCE ERROR/]
[ASCIZ/-16. INVALID PARAMETER VALUE/]
[ASCIZ/-17. LINE PROTOCOL ERROR/]
[ASCIZ\-18. FILE I/O ERROR\]
[ASCIZ/-19. NETWORK COMM. ERROR/]
[ASCIZ/-20. NO ROOM FOR NEW ENTRY/]
[ASCIZ/-21. REMOTE NICE PROCESS NOT AVAIL./]
;NETHDR - LISTS HEADER TYPE INFO FOR MOST NETWORK ENTRIES -
; HARDWARE ERRORS,SOFTWARE ERRORS, TOPOLOGY CHANGES,
; LINE STATISTICS, NODE STATISTICS, AND NETWORK OPR
; ENTRIES.
;CALLED WITH NH%MID IN P2
NETHDR: SKIPN P2 ;NODE #'S PRESENT?
JRST NETH01 ;NO-TRY NAMES
CAMN P2,[-1] ;NULL VALUES?
JRST NETH01 ;YES-TRY NAMES
TYPEIT <
TRANS. NODE #: >
HLRZ T1,P2 ;GET THE NUMBER
PUSHJ P,.ODECW ;WITH A PERIOD
TYPEIT < DEST. NODE #: >
HRRZ T1,P2
PUSHJ P,.ODECW
;HERE FOR NODE NAMES-XMIT FIRST
NETH01: SKIPN P2,WKBUFF+NH%XID ;GET XMIT NODE NAME
JRST NETH02 ;NOT THERE
CAMN P2,[-1] ;UNKNOWN?
JRST NETH02
TYPEIT <
MSG SENT FROM: >
HRRZ T1,P2
ADDI T1,WKBUFF
PUSHJ P,.TSTRG
;NOW FOR REC'D NAME
NETH02: SKIPN P2,WKBUFF+NH%RID ;GET REC NODE NAME
JRST NETH03 ;NOT THERE
CAMN P2,[-1] ;UNKNOWN?
JRST NETH03
TYPEIT <
MSG REC'D AT: >
HRRZ T1,P2
ADDI T1,WKBUFF
PUSHJ P,.TSTRG
;HERE FOR ADJACENT NODE NAME IF ANY
NETH03: SKIPN P2,WKBUFF+NH%ADN ;GET ADJACENT NODE NAME
JRST NETH04 ;NOT THERE
CAMN P2,[-1] ;UNKNOWN?
JRST NETH04
TYPEIT <
NODE AT END OF SUBJECT LINE: >
HRRZ T1,P2
ADDI T1,WKBUFF
PUSHJ P,.TSTRG
;HERE LIST HARDWARE & SOFTWARE TYPES ETC.
NETH04: SKIPN P2,WKBUFF+NH%FUN ;GET VALUES
JRST NETH07 ;NOT THERE?
TYPEIT <
HDWR TYPE: >
LDB P1,[POINT ^D8,P2,35]
CAIN P1,377 ;KNOWN?
JRST [TYPEIT < UNKN >
JRST NETH05]
CAILE P1,HDWMAX ;[743]MAX I KNOW ABOUT
JRST [TYPEIT <UNKN TO SYSERR >
JRST NETH05]
CAIL P1,CUSVAL ;CUSTOMER?-MAKE CHANGES HERE IF WANTED
JRST [TYPEIT < CUST. >
JRST NETH05]
MOVE T1,HDWTYP(P1) ;IN RANGE NOW LIST A NAME
PUSHJ P,.TSTRG
;HERE DO SAME FOR SOFTWARE TYPE
NETH05: SKIPN P2,WKBUFF+NH%FUN ;GET VALUES
JRST NETH07 ;NOT THERE?
TYPEIT < SOFTWARE TYPE: >
LDB P1,[POINT ^D8,P2,27]
CAIN P1,377 ;KNOWN?
JRST [TYPEIT < UNKN >
JRST NETH06]
CAILE P1,SOFMAX ;[743]MAX I KNOW ABOUT
JRST [TYPEIT <UNKN TO SYSERR >
JRST NETH06]
CAIL P1,CUSVAL ;CUSTOMER?-MAKE CHANGES HERE IF WANTED
JRST [TYPEIT < CUST. >
JRST NETH06]
MOVE T1,SOFTYP(P1) ;IN RANGE NOW LIST A NAME
PUSHJ P,.TSTRG
;HERE LIST PARENT SYSTEM TYPE
NETH06: SKIPN P2,WKBUFF+NH%FUN ;GET VALUES
JRST NETH07 ;NOT THERE?
TYPEIT < PARENT SYSTEM TYPE: >
LDB P1,[POINT ^D8,P2,17]
CAIN P1,377 ;KNOWN?
JRST [TYPEIT < UNKN >
JRST NETH07]
CAILE P1,SYSMAX ;[743]MAX I KNOW ABOUT
JRST [TYPEIT <UNKN TO SYSERR >
JRST NETH07]
CAIL P1,CUSVAL ;CUSTOMER?-MAKE CHANGES HERE IF WANTED
JRST [TYPEIT < CUST. >
JRST NETH07]
MOVE T1,SYSTYP(P1) ;IN RANGE NOW LIST A NAME
PUSHJ P,.TSTRG
;HERE LIST MSG SEQUENCE NUMBER
NETH07: SKIPN P2,WKBUFF+NH%SEQ ;SHOULD BE THERE BUT?
JRST NETH08 ;THAT'S WEIRD
CAMN P2,[-1] ;ALSO WEIRD
JRST NETH08
MOVE T2,ERTYPE ;WHICH TYPE ENTRY
CAIN T2,SEC%NH
MOVEI T1,[ASCIZ/ HARDWARE ERROR /]
CAIN T2,SEC%SN
MOVEI T1,[ASCIZ/ SOFTWARE ERROR /]
CAIN T2,SEC%NO
MOVEI T1,[ASCIZ/ OPERATOR LOG /]
CAIN T2,SEC%NT
MOVEI T1,[ASCIZ/ TOPOLOGY CHANGE /]
CAIN T2,SEC%LC
MOVEI T1,[ASCIZ/ LINE STATISTICS /]
CAIN T2,SEC%NC
MOVEI T1,[ASCIZ/ NODE STATISTICS /]
SKIPN T1 ;IF STILL
MOVEI T1,[ASCIZ/ UNKNOWN /]
PUSH P,T1
PUSHJ P,.TCRLF
PUSHJ P,.TTABC ;NEXT LINE WITH A TAB
POP P,T1 ;GET T1 BACK
PUSHJ P,.TSTRG ;SAY WHICH
TYPEIT < MSG SEQUENCE # FROM XMIT NODE: >
MOVE T1,P2 ;SETUP
PUSHJ P,.ODECW ;WITH A PERIOD
;NOW LIST NODE'S UPTIME
NETH08: SKIPN P2,WKBUFF+NH%DAT ;GET UPTIME IN MILLISEC'S
JRST NETH09 ;NOT THERE?
CAMN P2,[-1] ;UNKNOWN?
JRST NETH09
TYPEIT <
NODE'S UPTIME AT EVENT: >
IMULI P2,^D1000 ;CONVERT TO SECONDS
IDIVI P2,^D24*^D60*^D60 ;# DAYS(COULD BE A MIRACLE)
SKIPE P2 ;ANY THERE?
PUSHJ P,[MOVE T1,P2 ;MOVE #
PUSHJ P,.ODECW ;WITH A .
TYPEIT < DAYS, >
POPJ P,0]
MOVE P2,P3 ;GET REMAINDER
IDIVI P2,^D60*^D60 ;HOURS
MOVE T1,P2
PUSHJ P,.TDECW
PUSHJ P,.TCOLN
MOVE P2,P3
IDIVI P2,^D60 ;NOW MINUTES
MOVE T1,P2
PUSHJ P,.TDECW
PUSHJ P,.TCOLN
MOVE T1,P3 ;REMAINDER IS SECONDS
PUSHJ P,.TDECW
PUSHJ P,.TCRLF
;HERE LIST THE LINE ID
NETH09: SKIPN P2,WKBUFF+NH%FUN ;GET HDWR TYPE BACK
POPJ P,0 ;NOT THERE?
CAMN P2,[-1] ;VALID?
POPJ P,0
TYPEIT <
LINE ID: >
PUSHJ P,NETLID
NETH10: PUSHJ P,.TCRLF
POPJ P,0 ;NOW RETURN
;NETLID-LISTS LINE ID
;P2/NH%FUN
;CALL PUSHJ RETURNS POPJ
NETLID: LDB P1,[POINT ^D8,P2,35] ;GET THE TYPE
CAIN P1,377 ;KNOWN?
JRST [TYPEIT < UNKN >
JRST NETH10]
CAILE P1,HDWMAX ;[743]MAX I KNOW ABOUT
JRST [TYPEIT <UNKN TO SYSERR >
JRST NETH10]
CAIL P1,CUSVAL ;CUSTOMER?-MAKE CHANGES HERE IF WANTED
JRST [TYPEIT < CUST. >
JRST NETH10]
MOVE T1,LINTYP(P1) ;IN RANGE NOW LIST A NAME
PUSHJ P,.TSIXN ;A WORD IN SIXBIT
TYPEIT <_> ;THE SEPARATOR
HLRZ T1,WKBUFF+NH%LID ;GET CONTROLLER #
PUSHJ P,.TOCTW ;LIST IN OCTAL
HRRZ P2,WKBUFF+NH%LID ;GET LINE #
CAIN P2,-1 ;IF VALID
POPJ P,0 ;NO RETURN NOW
TYPEIT <_>
MOVE T1,P2
PUSHJ P,.TOCTW
TYPEIT <_>
HRRZ T1,WKBUFF+NH%LI1 ;[743]GET STATION #
PUSHJ P,.TOCTW
POPJ P,0
;HERE ARE THE NAMES WE UNDERSTAND FOR THE FIELDS DESCRIBED
;IN NH%FUN
CUSVAL==301 ;VALUES GREATER THAN THIS ARE FOR CUSTOMER USE
HDWTYP: [ASCIZ/ILLEGAL/]
[ASCIZ/ SOFTWARE/]
[ASCIZ/ DQ11/]
[ASCIZ/ KMC-DUP11/]
[ASCIZ/ KMC-DZ11/]
[ASCIZ/ DMC11/]
[ASCIZ/ LP20/]
[ASCIZ/ CD20/]
[ASCIZ/ DH11/]
[ASCIZ/ DZ11/]
[ASCIZ/ DM11-BB/]
[ASCIZ/ DL11/]
[ASCIZ/ KG11/]
[ASCIZ/ DTE-20/]
[ASCIZ/ LP11/]
[ASCIZ/ CR11/]
[ASCIZ/ VT62/]
[ASCIZ/ RX11/]
[ASCIZ/ DP8E/]
[ASCIZ/ KL8A/]
[ASCIZ/ LP08/]
[ASCIZ/ CR08/]
[ASCIZ/ 11-MEMORY/]
[ASCIZ/ DUP11/]
HDWMAX==27 ;MAX NAMES WE KNOW IN THE ABOVE LIST
SOFTYP: [ASCIZ/ ILLEGAL/]
[ASCIZ/ DN60/]
[ASCIZ/ DECnet INTERCEPT-MCB/]
[ASCIZ/ DN8x/]
[ASCIZ/ DN92/]
[ASCIZ/ RSX-20F/]
[ASCIZ/ TOPS-10/]
[ASCIZ/ TOPS-20/]
[ASCIZ/ DECnet NON-INTERCEPT/]
SOFMAX==10 ;SAME FOR SOFTWARE TYPES
SYSTYP: [ASCIZ/ ILLEGAL/]
[ASCIZ/ DN20/]
[ASCIZ/ DN200/]
[ASCIZ/ DN87S/]
[ASCIZ/ DN85/]
[ASCIZ/ DN80,1,2/]
[ASCIZ/ KI10/]
[ASCIZ/ KL10/]
[ASCIZ/ KS10/]
[ASCIZ/ DN92/]
SYSMAX==12 ;SAME FOR PARENT SYSTEM TYPES
;HERE BUILD A TABLE OF SIXBIT LINE NAMES FOR LISTING LINE ID:
LINTYP: SIXBIT/ILL/
SIXBIT/SOFT/ ;SOFTWARE
SIXBIT/DQ/ ;DQ11
SIXBIT/KDP/ ;KMC-DUP11
SIXBIT/KDZ/ ;KMC-DZ11
SIXBIT/DMC/ ;DMC11
SIXBIT/LP20/ ;LP20
SIXBIT/CD20/ ;CD20
SIXBIT/DH/ ;DH11
SIXBIT/DZ/ ;DZ11
SIXBIT/DM/ ;DM11-BB
SIXBIT/DL/ ;DL11
SIXBIT/KG/ ;KG11
SIXBIT/DTE/ ;DTE-20
SIXBIT/LP11/ ;LP11
SIXBIT/CR11/ ;CR11
SIXBIT/VT62/ ;VT62
SIXBIT/RX11/ ;RX11
SIXBIT/DP8E/ ;DP8E
SIXBIT/KL8A/ ;KL8A
SIXBIT/LP08/ ;LP08
SIXBIT/CR08/ ;CR08
SIXBIT/11-MEM/ ;'11 MEMORY
SIXBIT/DUP/ ;DUP11
;HERE START THE ROUTINES FOR NETWORK HARDWARE ENTRIES
;P2 HAS NH%RSM
NETHDW: TYPEIT <
REASON FOR ENTRY: >
HRRZ T1,P2 ;GET REASON #
MOVE T1,ASZRSM(T1) ;IN ASCIZ
PUSHJ P,.TSTRG
HRRZ T1,P2
CAIN T1,10 ;REASON TO LIST THRESHOLD?
PUSHJ P,[ TYPEIT (THRESHOLD = )
HLRZ T1,P2 ;GET THE THRESHOLD
PUSHJ P,.TOCTW ;IN OCTAL
POPJ P,0]
;NOW FOR RETRY ETC
TYPEIT <
RECOVERY STATE: >
MOVE P2,WKBUFF+NH%TRY ;GET THE WORD TO DECODE
LDB T2,[POINT 4,P2,3] ;GET THE FLAGS
MOVE T1,RECOV(T1) ;ASCIZ ADDR
PUSHJ P,.TSTRG
TYPEIT < COUNT: >
HRRZ T1,P2
PUSHJ P,.ODECW ;WITH A .
;HERE A BRIEF DESCRIPTION OF THE ERROR DETECTED
TYPEIT <
ERROR: >
LDB P1,[POINT 8,WKBUFF+NH%FUN,35] ;GET HDWR TYPE
MOVE P2,WKBUFF+NH%PTR ;GIVE SUBROUTINE A PNTR TO DATA SECTION
PUSHJ P,@HDWERR(P1) ;GET SOME BRIEF ERROR TEXT
;NO MORE INFO IF NOT DETAIL
PUSHJ P,DETCHK
TYPEIT <
HARDWARE REGISTER INFORMATION:
> ;START WITH A FRESH LINE
MOVE P1,WKBUFF+NH%PTR ;POINTER TO DATA AREA
ADDI P1,WKBUFF ;FINISH THE POINTER
LDB T2,[POINT 8,WKBUFF+NH%FUN,35] ;HDWR TYPE
PUSHJ P,@HDWCTL(T2) ;GO DO SOME WORK
POPJ P,0 ;RETURN TO PROCSN
;HERE ARE ASCIZ TABLES FOR ABOVE CODE
ASZRSM: [ASCIZ/NOT SUPPLIED/]
[ASCIZ/HDWR DETECTED ERROR/]
[ASCIZ/LOST INTERRUPT/]
[ASCIZ/UNEXPECTED INTERRUPT/]
[ASCIZ/UNEXPECTED DATA SET STATUS CHANGE/]
[ASCIZ/DEVICE TIMEOUT/]
[ASCIZ/POWER FAIL/]
[ASCIZ/POWER RESTART/]
[ASCIZ/THRESHOLD VALUE EXCEEDED/]
RECOV: [ASCIZ/NOT SUPPLIED, /]
[ASCIZ/NON-RECOVERABLE, /]
[ASCIZ/RECOVERY DISABLED, /]
[ASCIZ/RECOV. ALGORITHM NOT AVAILABLE, /]
[ASCIZ/RECOVERABLE, /]
HDWERR: 0,HDWUNK ;ILLEGAL
0,HDWUNK ; SOFTWARE
0,ERR002 ; DQ11
0,ERR003 ; KMC-DUP11
0,ERR004 ; KMC-DZ11
0,ERR005 ; DMC11
0,HDWUNK ; LP20
0,HDWUNK ; CD20
0,HDWUNK ; DH11
0,HDWUNK ; DZ11
0,HDWUNK ; DM11-BB
0,HDWUNK ; DL11
0,HDWUNK ; KG11
0,HDWUNK ; DTE-20
0,HDWUNK ; LP11
0,HDWUNK ; CR11
0,HDWUNK ; VT62
0,HDWUNK ; RX11
0,HDWUNK ; DP8E
0,HDWUNK ; KL8A
0,HDWUNK ; LP08
0,HDWUNK ; CR08
0,HDWUNK ; 11-MEMORY
0,ERR027 ; DUP11
HDWUNK: TYPEIT <DEVICE UNKNOWN TO SYSERR>
POPJ P,0
;HERE IS TABLE OF ADDRESS OF LISTING ROUTINES.
HDWCTL: 0,HDWUNK ;ILLEGAL
0,HDWUNK ; SOFTWARE
0,LST002 ; DQ11
0,LST003 ; KMC-DUP11
0,LST004 ; KMC-DZ11
0,LST005 ; DMC11
0,HDWUNK ; LP20
0,HDWUNK ; CD20
0,HDWUNK ; DH11
0,HDWUNK ; DZ11
0,HDWUNK ; DM11-BB
0,HDWUNK ; DL11
0,HDWUNK ; KG11
0,HDWUNK ; DTE-20
0,HDWUNK ; LP11
0,HDWUNK ; CR11
0,HDWUNK ; VT62
0,HDWUNK ; RX11
0,HDWUNK ; DP8E
0,HDWUNK ; KL8A
0,HDWUNK ; LP08
0,HDWUNK ; CR08
0,HDWUNK ; 11-MEMORY
0,LST027 ; DUP11
;HERE START THE DEVICE REGISTER LISTING CODE FOR THE NETWORK HARDWARE DEVICES.
;NAMES ARE LSTXXX, NAMXXX,AND CTLXXX WHERE XXX = THE DEVICE TYPE OFFSET.
;P1 HOLDS OFFSET (WKBUFF ADDED) TO THE START OF THE LOG DATA SECTION.
;SETUP FOR LSTEB IS
; P1/ -#BYTES,,ADDRESS TO FIRST
; P2/ ADDRESS OF NAMES TBL,, ADDRESS OF CTL TBL
;CTLXXX TBL HAS THE FORMAT -1,,ADDRESS OF SPECIAL ROUTINE OR
; OFFSET FOR KONTYP,, 0 TO USE CNIDCD
;SUPPORT FOR DQ11
LST002: HRLI P1,-^D19 ;NUMBER OF REGISTERS
HRLI P2,NAM002 ;ADDRESS OF REG NAMES
HRRI P2,CTL002 ;ADDRESS OF REG CTL TBL.
PUSHJ P,LSTEB ;DO THE LISTING
POPJ P,0 ;BACK TO NETHDW
ERR002: ADDI P2,WKBUFF
LDB P1,[POINT 16,0(P2),15]
MOVEI T1,2
MOVEM T1,KONTYP
PUSHJ P,CNIDCD
POPJ P,0
NAM002: SIXBIT/RXSTAT/
SIXBIT/TXSTAT/
SIXBIT/REGERR/
SIXBIT/RXBAP/
SIXBIT/RXCCP/
SIXBIT/TXBAP/
SIXBIT/TXCCP/
SIXBIT/RXBAS/
SIXBIT/RXCCS/
SIXBIT/TXBAS/
SIXBIT/TXCCS/
SIXBIT/CHRDET/
SIXBIT/SYNC/
SIXBIT/MISC/
SIXBIT/TXBUF/
SIXBIT/SEQ/
SIXBIT/RXBCC/
SIXBIT/TXBCC/
SIXBIT/RTPOLY/
CTL002: -1,,NOTRAN
-1,,NOTRAN
2,,0 ;DQ11-REGERR
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
;SUPPORT FOR KMC-DUP11
LST003: PUSHJ P,KMCLST ;GO DO CONTROLLER STUFF
ADDI P1,WKBUFF ;SETUP P1
PUSHJ P,LST027 ;USE THAT CODE
POPJ P,0
ERR003:0
;SUPPORT FOR KMC/DZ11
LST004: PUSHJ P,KMCLST ;DO CONTROLLER STUFF
ADDI P1,WKBUFF
PUSHJ P,LST011 ;USE THAT CODE
POPJ P,0
ERR004:
;SUPPORT FOR DMC11
LST005: PUSHJ P,KMCLST ;DO CONTROLLER STUFF
ADDI P1,WKBUFF
;ADD MORE CODE HERE!!!
ERR005:
NAM005:
CTL005:
;SUPPORT FOR DZ11
LST011: HRLI P1,-^D4 ;NUMBER OF REGISTERS
HRLI P2,NAM011 ;ADDRESS OF REG NAMES
HRRI P2,CTL011 ;ADDRESS OF REG CTL TBL.
PUSHJ P,LSTEB ;DO THE LISTING
POPJ P,0 ;BACK TO NETHDW
ERR011:
NAM011: SIXBIT/CSR/
SIXBIT/RBUF/
SIXBIT/TCR/
SIXBIT/MSR/
CTL011: -1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
;SUPPORT FOR KMC/DMC CONTROLLERS
KMCLST: TYPEIT < MICROCODE: >
MOVE P2,P1
ADDI P2,3 ;POINT AT U CODE ID
LDB T3,[POINT 16,0(P2),15]
MOVE T1,KMCNAM(T3) ;ASCIZ NAME
PUSH P,T3 ;SAVE TYPE
PUSHJ P,.TSTRG
POP P,T1 ;GET ID TYPE BACK
CAIN T1,2 ;DN60-DO VERSION NUMBERS
PUSHJ P,KMCVER ;DO IT
TYPEIT <
CONTROLLER REGISTERS:
>
MOVE P2,0(P1) ;GET PNTR TO SUBTABLE
PUSH P,P2 ;SAVE IT
ADDI P1,1 ;ADJUST FOR PNTR JUST SAVED
HRLI P1,-^D4 ;4ITEMS TO LIST
HRLI P2,NAMKMC
HRRI P2,CTLKMC
PUSHJ P,LSTEB
TYPEIT <
DEVICE REGISTERS:
>
POP P,P1
POPJ P,0
KMCNAM: [ASCIZ/NOT SUPPLIED/]
[ASCIZ/COMM-IOP/]
[ASCIZ/DN60/]
[ASCIZ/TOPS10-DZ11/]
[ASCIZ/TOPS10-DUP11/]
NAMKMC: SIXBIT/SEL 0/
SIXBIT/SEL 2/
SIXBIT/SEL 4/
SIXBIT/SEL 6/
CTLKMC: -1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
-1,,NOTRAN
KMCVER: PUSH P,P2
TYPEIT <
MICRO CODE VERSION: >
LDB T1,[POINT 16,0(P2),32]
LDB T2,[POINT 16,1(P2),15] ;GET MINOR
LDB T3,[POINT 16,1(P2),32] ;EDIT
LDB T4,[POINT 16,2(P2),15] ;WHO
DPB T1,[POINT 9,P2,11] ;MAJOR
DPB T2,[POINT 6,P2,17] ;MINOR
DPB T3,[POINT 18,P2,35] ;EDIT
DPB T4,[POINT 3,P2,2] ;WHO
MOVE T1,P2 ;SETUP
PUSHJ P,.TVERW## ;GO LIST IT
POP P,P2 ;RESTORE IT
POPJ P,0
;SUPPORT FOR DUP11 NOT UNDER KMC
LST027: HRLI P1,-^D4 ;NUMBER OF REGISTERS
HRLI P2,NAM027 ;ADDRESS OF REG NAMES
HRRI P2,CTL027 ;ADDRESS OF REG CTL TBL.
PUSHJ P,LSTEB ;DO THE LISTING
POPJ P,0 ;BACK TO NETHDW
ERR027: ADDI P2,WKBUFF
LDB P1,[POINT 16,0(P2),15]
MOVEI T1,3
MOVEM T1,KONTYP
PUSHJ P,CNIDCD
TYPEIT < IN RxDBUF, >
LDB P1,[POINT 16,0(P2),32]
AOS KONTYP ;HERE'S ANOTHER ONE, PAUL
PUSHJ P,CNIDCD
TYPEIT < IN TxCSR>
POPJ P,0
NAM027: SIXBIT/RXCSR/
SIXBIT/RXDBUF/
SIXBIT/TXCSR/
SIXBIT/TXDBUF/
CTL027: -1,,NOTRAN
3,,0 ;DUP11-RXDBUF
4,,0 ;DUP11-TXCSR
-1,,NOTRAN
;HERE START THE LISTING ROUTINES FOR DN64 STATISTICS, P2 HOLDS
;FIRST WORD OF ENTRY.
S6%LST: TYPEIT <
REASON FOR ENTRY: >
CAIN P2,1 ;STARTUP?
PUSHJ P,S6%LSA
CAIN P2,2 ;HOUR SINCE LAST ENTRY
PUSHJ P,S6%LSB
CAIN P2,3 ;SHUTDOWN?
PUSHJ P,S6%LSC
CAILE P2,3 ;UNKNOWN?
PUSHJ P,S6%LSD
MOVE P2,WKBUFF+S6%001 ;GET NEXT 4 BYTES (4-7)[723]
PUSHJ P,S6%LNT ;GO LIST THEM[723]
MOVE P1,WKBUFF+S6%S00 ;GET FIRST 4 STATUS BYTES (8-11)
TYPEIT < TERMINAL TYPE: >
LDB T2,[POINT 8,P1,15]
MOVEI T1,[ASCIZ/IBM 3780/]
CAIE T2,1 ;BETTER CHECK
MOVEI T1,[ASCIZ/IBM 2780/] ;OK, CHANGE IT
PUSHJ P,.TSTRG
TYPEIT <
FLAGS: >
LDB P2,[POINT 8,P1,23] ;GET FLAG BYTE
MOVEI T1,[ASCIZ/SIMULATE,/]
TRNN P2,1B35 ;CHECK BIT 0 OF BYTE
MOVEI T1,[ASCIZ/SUPPORT,/] ;IF CLEAR,CHANGE
PUSHJ P,.TSTRG ;SAY EITHER
MOVEI T1,[ASCIZ/ PRIMARY BSC STATION/]
TRNN P2,1B34 ;CHECK BIT 1 OF BYTE
MOVEI T1,[ASCIZ/ SECONDARY BSC STATION/] ;IF CLEAR,CHANGE
PUSHJ P,.TSTRG
TYPEIT <
LINE INFORMATION: >
LDB P2,[POINT 8,P1,31] ;P1 STILL HAS S6%S00
MOVEI T1,[ASCIZ/ ENABLED,/] ;SETUP
TRNE P2,1B35 ;IF NOT SET
PUSHJ P,.TSTRG ;DON'T LIST
MOVEI T1,[ASCIZ/ DTR,/]
TRNE P2,1B34
PUSHJ P,.TSTRG
MOVEI T1,[ASCIZ/ DSR/]
TRNE P2,1B33
PUSHJ P,.TSTRG
TYPEIT <
COUNT OF LINE DRIVER ERROR INTERRUPTS: >
;SETUP POINTERS ETC TO LIST LINE STATUS AND COUNTERS
SETZM P3 ;COUNT OF ITEMS LISTED
MOVE P4,[POINT 8,WKBUFF+S6%S01,7] ;INITIAL BYTE POINTER
LDB T1,P4 ;GET FIRST ITEM
ILDB T2,P4 ;GET HI BYTE
MOVE P2,[POINT 8,T1,27]
DPB T2,P2 ;PLACE HIGH BYTE
AOS P3 ;BUMP COUNT OF ITEMS LISTED
PUSHJ P,.ODECW
TYPEIT <
LINE DRIVER STATUS AT LAST ERROR INTERRUPT
REC. STATUS REGISTER: >
ILDB T1,P4 ;GET NEXT BYTE
ILDB T2,P4 ;GET HI BYTE
DPB T2,P2 ;PLACE HIGH BYTE
PUSHJ P,.TOCTW
AOS P3 ;BUMP COUNT
TYPEIT <
XMIT STATUS REGISTER: >
ILDB T1,P4 ;AGAIN,NEXT BYTE
ILDB T2,P4 ;GET HI BYTE
DPB T2,P2 ;PLACE HIGH BYTE
PUSHJ P,.TOCTW
PUSHJ P,.TCRLF
AOS P3
;NOW USE ITEM DESCRIPTION TABLES AND A LOOP.
S6%LS0: ;CHANGED WITH EDIT 546
MOVE T1,S6%NAM(P3) ;GET ADDRESS OF ITEM NAME
PUSHJ P,.TSTRG
PUSHJ P,.TTABC
ILDB T1,P4 ;GET THE COUNTER VALUE
ILDB T2,P4 ;GET HI BYTE
DPB T2,P2 ;PLACE HIGH BYTE
PUSHJ P,.ODECW ;PRINT DEC.VALUE WITH PERIOD
AOS P3 ;BUMP COUNT
CAIN P3,32 ;DONE ALL 32 ITEMS?
JRST ABORT ;YES-DONE WITH ENTRY
PUSHJ P,.TTABC ;SPACE OVER
MOVE T1,S6%NAM(P3) ;GET ADDRESS OF ITEM NAME
PUSHJ P,.TSTRG
PUSHJ P,.TTABC
ILDB T1,P4 ;GET THE COUNTER VALUE
ILDB T2,P4 ;GET HI BYTE
DPB T2,P2 ;PLACE HIGH BYTE
PUSHJ P,.ODECW ;PRINT DEC.VALUE WITH PERIOD
AOS P3 ;BUMP COUNT
PUSHJ P,.TCRLF ;NEXT LINE
CAIE P3,32 ;ALL DONE?
JRST S6%LS0 ;NO, GET NEXT
JRST ABORT ;END OF ENTRY
S6%LSA: TYPEIT (D60SPL SIGNED ON)
POPJ P,0
S6%LSB: TYPEIT ( ENTRY RECORDED ON THE HOUR)
POPJ P,0
S6%LSC: TYPEIT (D60SPL SIGNED OFF)
POPJ P,0
S6%LSD: TYPEIT (UNKNOWN)
POPJ P,0
;HERE TO TYPE OUT PORT,LINE AND DEVICE NUMBERS FOR DN64
;INSERTED BY EDIT [723] TJW
S6%LNT: TYPEIT <
PORT #: >
LDB T1,[POINT 8,P2,7]
PUSHJ P,.TOCTW ;
TYPEIT < LINE #: >
LDB T1,[POINT 8,P2,15]
PUSHJ P,.ODECW
TYPEIT < DEVICE #: >
LDB T1,[POINT 8,P2,23]
PUSHJ P,.ODECW
TYPEIT <
LINE DRIVER TYPE: >
LDB T2,[POINT 8,P2,31]
MOVE T1,[SIXBIT/DQ11/] ;ASSUME SOMETHING
CAIN T2,2 ;BUT CHECK
MOVE T1,[SIXBIT/DUP11/]
PJRST .TSIXN ;SAY IT IN SIXBIT
;HERE ARE NAMES OF ITEM COUNTERS
S6%NAM: 0
0 ;FIRST 3 ALREADY LISTED VIA "TYPEIT" AND COUNTER IS BUMPED
0 ;AFTER LISTING SO 2 BLANKS ARE NEEDED
[ASCIZ/RECEIVER OVERRUN/]
[ASCIZ/TRANSMITTER OVERRUN/]
[ASCIZ/CLEAR-TO-SEND FAILS/]
[ASCIZ/MSG'S SENT & ACK'D/]
[ASCIZ/MSG'S SENT & NAK'D/]
[ASCIZ/INVALID RESP. TO TTD/]
[ASCIZ/INVALID RESP. TO MSG'S/]
[ASCIZ/TTD'S SENT/]
[ASCIZ/WACKS'S REC'D/]
[ASCIZ/ EOT'S IN RESP. TO MSG'S/]
[ASCIZ/INVALID BIDS OR RESP.TO BIDS/]
[ASCIZ/RVI'S REC'D WHILE X-MIT/]
[ASCIZ/MSG'S REC'D & ACK'D/]
[ASCIZ/BAD BCC'S/]
[ASCIZ/NAK'S SENT FOR DATA MSG'S/]
[ASCIZ/WACK'S SENT/]
[ASCIZ/TTD'S REC'D/]
[ASCIZ/ EOT'S SENT OR REC'D/]
[ASCIZ/MSG'S IGNORED/]
[ASCIZ/ TRANSPARENT MSG'S W. INVALID CHAR. AFTER DLE/]
[ASCIZ/ATTEMPTS TO CHANGE MODE IN BLOCKED MSG/]
[ASCIZ/TRANSMITTER TIMEOUTS/]
[ASCIZ/CTS DELAY IN JIFFIES/]
;START EDIT [522]
;ROUTINE FOR LISTING NETWORK LINE COUNTERS
;CALLED WITH LC%RSM IN P2
LC$CNT: TYPEIT <
REASON FOR ENTRY: >
MOVEI T1,[ASCIZ/NOT SUPPLIED/] ;START WITH WORST
CAIN P2,1
MOVEI T1,[ASCIZ/SIGN ON/]
CAIN P2,2
MOVEI T1,[ASCIZ/PERIODIC ENTRY/]
CAIN P2,3
MOVEI T1,[ASCIZ/SIGN OFF/]
CAIN P2,4
MOVEI T1,[ASCIZ/VALUES NOT OBTAINED/]
PUSHJ P,.TSTRG ;LIST WHAT WE BUILT
SKIPN P2,WKBUFF+NH%PTR ;POINTER TO THE DATA
POPJ P,0 ;NOT THERE?
LC.CNT: PUSHJ P,.TCRLF
SKIPN T1,WKBUFF(P2) ;GET A VALUE IF PRESENT
POPJ P,0 ;=0,GO BACK
HRRZ T1,WKBUFF(P2) ;GET COUNT
TRNE T1,1B20 ;OVERFLOW?
PUSHJ P,LC.OVF ;YES!
PUSHJ P,.ODECW ;NO! - OUTPUT VALUE IN DECIMAL
PUSHJ P,.TTABC ;TAB
HLRZ T1,WKBUFF(P2) ;GET TYPE
MOVE T1,LC$TYP(T1) ;GET STRING POINTER
PUSHJ P,.TSTRG ;OUTPUT IT
AOBJN P2,LC.CNT ;DONE?
POPJ P,0 ;YES! - EXIT
LC.OVF: MOVEI T1,">" ;OUTPUT
PUSHJ P,.TCHAR ; 'GREATER THAN'
MOVEI T1,400000 ; '131072.'
POPJ P,0 ;CONTINUE
;NAMES OF LINE COUNTERS
LC$TYP: [ASCIZ/SECONDS SINCE LAST ZEROED/]
[ASCIZ/BLOCKS RECEIVED/]
[ASCIZ/BLOCKS SENT/]
[ASCIZ/LINE ERROR RETRANSMISSIONS/]
[ASCIZ/RECEIVED LINE ERRORS/]
[ASCIZ/NON - LINE ERROR RETRANSMISSIONS/]
[ASCIZ/RECEIVE TIMEOUTS/]
[ASCIZ/RECEIVE SELECTION ERRORS/]
[ASCIZ/RESOURCE ERRORS/]
[ASCIZ/NACKS SENT(DDCMP)/]
[ASCIZ/NACKS REC'D(DDCMP)/]
;END EDIT [522]
;LC$3ER-LC$4ER LISTS CONTENTS OF TYPE 3 & 4 ERROR COUNTERS FOR
;BRIEF SUPPORT CALLED PUSHJ WITH P2/NH%PTR
LC$3ER: HLRZ T1,WKBUFF(P2) ;GET A COUNTER VALUE
CAIN T1,3
JRST LC$3E1 ;GOT IT
AOBJN P2,LC$3ER ;TRY NEXT
POPJ P,0
LC$3E1: HRRZ T1,WKBUFF(P2) ;GET VALUE
CAIN T1,1B20 ;OVERFLOW
PUSHJ P,LC.OVF ;HANDLE IT
PUSHJ P,.ODECW
POPJ P,0
LC$4ER: HLRZ T1,WKBUFF(P2) ;GET A COUNTER VALUE
CAIN T1,4
JRST LC$4E1 ;GOT IT
AOBJN P2,LC$4ER ;TRY NEXT
POPJ P,0
LC$4E1: HRRZ T1,WKBUFF(P2) ;GET VALUE
CAIN T1,1B20 ;OVERFLOW
PUSHJ P,LC.OVF ;HANDLE IT
PUSHJ P,.ODECW
POPJ P,0
;ROUTINE FOR LISTING NETWORK NODE COUNTERS
;CALLED WITH NC%RSM IN P2
NC$CNT: TYPEIT <
REASON FOR ENTRY: >
MOVEI T1,[ASCIZ/NOT SUPPLIED/] ;START WITH WORST
CAIN P2,1
MOVEI T1,[ASCIZ/SIGN ON/]
CAIN P2,2
MOVEI T1,[ASCIZ/PERIODIC ENTRY/]
CAIN P2,3
MOVEI T1,[ASCIZ/SIGN OFF/]
CAIN P2,4
MOVEI T1,[ASCIZ/VALUES NOT OBTAINED/]
PUSHJ P,.TSTRG ;LIST WHAT WE BUILT
SKIPN P2,WKBUFF+NC%PTR ;POINTER TO THE DATA
POPJ P,0 ;NOT THERE?
TYPEIT <
VALUES FOR THIS NODE: >
NC.CNT: PUSHJ P,.TCRLF
SKIPN T1,WKBUFF(P2) ;GET A VALUE IF PRESENT
JRST NCDCNT ;=0,GO BACK
HRRZ T1,WKBUFF(P2) ;GET COUNT
TRNE T1,1B20 ;OVERFLOW?
PUSHJ P,LC.OVF ;YES!
PUSHJ P,.ODECW ;NO! - OUTPUT VALUE IN DECIMAL
PUSHJ P,.TTABC ;TAB
HLRZ T1,WKBUFF(P2) ;GET TYPE
MOVE T1,NC$TYP(T1) ;GET STRING POINTER
PUSHJ P,.TSTRG ;OUTPUT IT
AOBJN P2,NC.CNT ;DONE?
NCDCNT: ;NOW DO COUNTERS FOR EACH DESTINATION NODE
TYPEIT <
VALUES FOR EACH DESTINATION NODE FROM THIS NODE: >
SKIPN P1,WKBUFF+NC%NDP ;POINTER TO TABLE OF POINTERS
POPJ P,0 ;THERE ARE NONE?
NCDCN1: SKIPN P2,WKBUFF(P1) ;GET A POINTER TO A SUB-BLOCK
POPJ P,0
NCDCN2: PUSHJ P,.TCRLF
HRRZ T1,WKBUFF(P2) ;GET COUNT
TRNE T1,1B20 ;OVERFLOW?
PUSHJ P,LC.OVF ;YES!
PUSHJ P,.ODECW ;NO! - OUTPUT VALUE IN DECIMAL
PUSHJ P,.TTABC ;TAB
HLRZ T1,WKBUFF(P2) ;GET TYPE
MOVE T1,NC$TY1(T1) ;GET STRING POINTER
PUSHJ P,.TSTRG ;OUTPUT IT
AOBJN P2,NCDCN2 ;DONE WITH THIS NODE?
PUSHJ P,.TCRLF ;EXTRA LINE FEED BETWEEN NODES.
AOBJN P1,NCDCN1 ;YES,DONE ALL NODES ?
POPJ P,0 ;ALL DONE
;NAMES OF NODE COUNTERS
NC$TYP: [ASCIZ/ILLEGAL/]
[ASCIZ/NACKS REC'D/]
[ASCIZ/NACKS SENT/]
[ASCIZ/EXTRANEOUS MSGS REC'D/]
[ASCIZ/MSGS RETRANSMITTED/]
[ASCIZ/MAX LOGICAL LINKS ACTIVE/]
[ASCIZ/CURRENT LOGICAL LINKS ACTIVE/]
[ASCIZ/RESOURCE ERRORS/]
[ASCIZ/FORMAT ERRORS, ROUTING DATA/]
[ASCIZ/FORMAT ERRORS, NON-ROUTING DATA/]
[ASCIZ/UNKNOWN DESTINATION NODE/]
[ASCIZ/MSGS ROUTED THROUGH/]
[ASCIZ/MSGS TIMED OUT/]
NC$TY1: [ASCIZ/DEST. NODE ID #/]
[ASCIZ/USER MSGS SENT/]
[ASCIZ/USER MSGS REC'D/]
[ASCIZ/CONNECTS INITIATED/]
[ASCIZ/CONNECTS ACCEPTED/]
[ASCIZ/SINGLE MSGS SENT/]
[ASCIZ/SINGLE MSGS REC'D/]
DEVTYP:0
RLD1DV
N001DV
N002DV
N003DV
SUBTTL BIT CHECKING ROUTINES
;BCKXXX -- SUBROUTINES TO DETERMINE LISTING AND SUMMATION
;ELIGIBILITY BASED ON BITS IN THE ENTCHR TABLE.
;CALL PUSHJ P,BITCHK(ERROR CODE)
;RTN CALL + 1 TO LIST
; ABORT TO GET NEXT ENTRY
BCK201:
BCK202:
BCK203:
BCK210:
BCK211:
BCK220:
BCK221: MOVE P1,ERTYPE
MOVE P2,ENTCHR(P1) ;GET CHARACTERISTICS
TLNE F,F.DEV ;[604] TEST FOR DEVICE SWITCH
JRST ABORT
TLNE P2,E.LALL ;WANTS ALL?
POPJ P,0 ;YUP
JRST ABORT ;SORRY
POPJ P,0 ;FOR NOW
BCK230:
BCK231:
BCK232: MOVE P1,ERTYPE
MOVE P2,ENTCHR(P1) ;GET CHARACTERISTICS
TLNE F,F.DEV ;[604] TEST FOR DEVICE SWITCH AGAIN
JRST ABORT
TLNE P2,E.LALL ;WANTS ALL?
POPJ P,0 ;YUP
TLNE P2,E.LPER ;'/NETPER?
POPJ P,0
JRST ABORT ;SORRY
POPJ P,0 ;FOR NOW
;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: 0 ; 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, ;RETURN
SUBTTL STORAGE LOCATIONS
;INPSPC: EXP 13
; SIXBIT/SYS/
; XWD 0,IBUFF
;OUTSPC: EXP 0
; SIXBIT/DSK/
; XWD OBUFF,0
;ERRFIL: XWD 0,35
; Z
; SIXBIT/ERROR/
; SIXBIT/SYS/
; BLOCK 32
;LSTFIL: SIXBIT/ERROR/
; SIXBIT/LST/
; Z
; Z
; ;HERE IS THE CODE WHICH WILL BE BUT INTO THE LOW SEG
; ;AND WILL BE CALLED TO OVERLAY HIGH SEGMENTS.
; ;EDIT #120
;
;
; SETZM .JBSYM ;TO ALLOW DDT TO WORK
; SETZM .JBUSY ;WHILE DEBUGGING VARIOUS HIGH
; ;SEGMENTS. PUT A BREAKPOINT
; ;AT ROUTINES WHICH CALL OVRLAY
; ;THEN SET BREAKPOINT AT THE
; ;RETURN FROM THE GETSEG AND OPEN
; ;THE NEW SYMBOL TABLE
; ;AND CONTINUE DEBUGGING.
; MOVEI T1,OVRBLK ;SPEC BLOCK SETUP BY OUR CALLER
; GETSEG T1,
; HALT ;STD ERROR MESSAGES ARE OK
; HRLZI 17,SAVEAC ;COPY BACK
; BLT 17,17 ;THE AC'S
; HRRZ 15,400000 ;THAT'S THE START OF THE NEW SEG
; JRST @15 ;NOW GO THERE
;
;
;
;IARGST: Z
; Z
; CHROUT ;LOCATION OF TYPEOUT ROUTINE IN SYSERR
; Z
; Z
;IAREND==.-1
;IARGLN==<IAREND-IARGST>+1 ;LENGTH OF ARG BLOCK FOR .ISCAN
;
DUMDAY: 121165 ;DUMMY NBS DAY FOR USE BY SCAN
KONMSK: 0
RLD1SK
N001SK
N002SK
N003SK
MINERB: 0
MIRLD1
MIN001
MIN002
MIN003
ERINDX: 0
RLD1DX
N001DX
N002DX
N003DX
;IDVFLT: SIXBIT/SYS/ ;DEFAULT FILE SPECIFICATIONS
;IFLFLT: SIXBIT/ERROR/
;IEXFLT: SIXBIT/SYS/
;ODVFLT: SIXBIT/DSK/
;OFLFLT: SIXBIT/ERROR/
;OEXFLT: SIXBIT/LST/
PDLPNT: IOWD LPDL,PDLST
SUBTTL DUMMY MACRO EXPANSION AREA
;THE FOLLOWING MACRO CODE UTILIZES THE PRINCIPLE OF THE DUMMY
;MACRO USED EARLIER AND REDEFINES TBLENT TO GENERATE VAIOUS
;NECESSARY DISPATCH TABLES
;MACRO TO CREATE A TABLE CONTAINING OFFSET INTO OTHER TABLES
;WHICH WERE PREVIOUSLY INDEXED BY ERROR TYPE(VER 3 & EARLIER). ALLOWS
;HOLES TO BE IN SEQUENCE OF ERROR TYPES WHICH ARE USED.
;THIS FIRST TABLE CONTAINS ALL THE ERROR TYPES
;KNOWN TO ALL SYSERR PARTS. THE SECOND IS THE TABLE
;OF TYPES PROCESSED BY THE SEGMENT.
;EDIT #120.
SALL
DEFINE TBLENT(A,B,C,D,E)<
XWD 0,A
>
ALLTBL: DUMENT
ALLLTH=<.-1>-ALLTBL+1 ;LENGTH OF ERROR INDEX TABLE
;TABLE OF ERRORS PROCESSED BY THIS ENTRY AND,
; BRIEF PROCESS TABLE POINTERS - EDIT [724]
DEFINE TBLENT(A,B,C,D,E,F)<
IFIDN<D><PROCSN><
XWD F,A
>
>
ERRTBL: 0 ;FIRST FOUND MUST NOT BE 0
DUMENT
ERRLTH=<.-1>-ERRTBL+1 ;LENGTH OF ERROR INDEX TABLE
;THE ENTRY PROCESSING TABLE
;THIS TABLE MUST BE INDEXED BY THE CONTENTS OF ALLIND
DEFINE TBLENT(A,B,C,D,E)<
IFIDN<D><PROCSN><
XWD C,D
TYPMAX==A>
IFDIF<D><PROCSN><
XWD 0,D
TYPMAX==A>
>
PCSTBL: DUMENT
;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)<
IFIDN<D><PROCSN><
[ASCIZ/B/]
>>
;GENERATE THE TEXT
TYPMES: 0
DUMENT
LIST
;END OF ENTRY DESCRIPTOR GENERATOR
;GENERATE THE DISPATCH TABLE TO ENTRY SUMMATION AND BIT CHECK ROUTINES
;ALL WILL RETRN VIA POPJ P,
;TABLE IS INDEXED BY ERROR TYPE CODE
DEFINE TBLENT(A,B,C,D,E)<
IFIDN<D><PROCSN><
IFDIF<B><UNKNOWN TYPE>,< XWD 0,BCK'A>
IFIDN<B><UNKNOWN TYPE>,< XWD 0,[POPJ P,]>
>>
;GENERATE THE TABLE
BITCHK: 0
DUMENT
;GENERATE THE TABLE OF LINE COUNTS FOR OUTPUT LISTING
DEFINE TBLENT(A,B,C,D,E)<
IFIDN<D><PROCSN><
XWD 0,E
>>
RADIX 10
LINE: 0
DUMENT
RADIX 8
;GENERATE THE VARIOUS ENTRY CONTROL TABLES USING THE MACRO TBLWRD
;TO GENERATE TABLES
DEFINE TBLWRD(A,B,C,D,E,F)<
IFDIF<D><SPECL>,< BYTE (6)B,C,D(18)T'A'E>
IFIDN<D><SPECL>,< BYTE (6)B,C,D(18)F>
>
.BR201: BRF201
.CT201: DUM201
Z
.BR202: BRF202
.CT202: DUM202
Z
.BR203: BRF203
.CT203: DUM203
Z
.BR210: BRF210
.CT210: DUM210
Z
.BR211: BRF211
.CT211: DUM211
Z
.BR220: BRF220
.CT220: DUM220
Z
.BR221: BRF221
.CT221: DUM221
Z
.BR230: BRF230
.CT230: DUM230
Z
.BR231: BRF231
.CT231: DUM231
Z
.BR232: BRF232
.CT232: DUM232
Z
;END OF ENTRY TABLE GENERATION
;GENERATE THE NECESSARY ASCIZ TEXT FOR NON-SPECIAL ROUTINES
DEFINE TBLWRD(A,B,C,D,E,F)<
IFDIF <D><SPECL>,<
T'A'E: ASCIZ/
F/
>>
;WHAT IS XLISTED IS THE DUMALL CALL AND FOLOWING CODE.
XLIST
DUMALL
LIST
;END OF ASCIZ TEXT MACRO EXPANSION
;SWITCH TABLES
;THE FOLLOWING TABLES WILL BE GENERATED VIA THE DUMMY MACRO
;DUMCH1
;THE FIRST IS A DISPATCH TABLE TO BYTES REPRESENTING BITS TO SET
;IN THE ENTCHR TABLE
;NEXT IS THE ACTUAL BYTES THEMSELVES
;TABLE FOR DISPATCH TO THE BYTE OPERANDS
DEFINE TBLCH1(A,B,C,D,E,F,G)<
XWD 0,BYT'G
>
;MAKE DISPATCH TABLE
BYTDSP:; DUMCH1
;NOW THE BYTES THEMSELVES
DEFINE TBLCH1(A,B,C,D,E,F,G)<
BYT'G: BYTE (6) B,77,C,77,D,77,E,77,F,77
>
; DUMCH1
;SWITCH MACRO EXPANSION NEXT
;DEFINE THE SWITCHES WE RECOGNIZE
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 DEFINE DEFAULTS
; DEFVAL
;NOW MAKE SWTCHS MACRO FOR USE WITH DOSCAN LATER
SALL
DEFINE SWTCHS<
DUMCH1
DUMCH2
>
;DOSCAN(SWTAB)
SALL
;GENERATE THE CONI BIT TEXT AND ADDRESS DISPATCHER
RADIX 10 ;****** NOTE WELL *****
DEFINE TBLDEV(A,B)<
[ASCIZ\B',\]
>
RLD1DV: DURLD1
N001DV: DUN001
N002DV: DUN002
N003DV: DUN003
;NOW GENERATE THE ERROR BIT VS INDEX BIT TABLES
;THIS ALLOWS NON-CONTIGUOUS ERROR BITS IN CONI WORD
;TO BE COUNTED IN CONTIGUOUS COUNTERS
; DEFINE TBLDEV(A,B)<
; ZZP==.
; RELOC RCINDX+A-MINRCB
; ZZ
; ZZ==ZZ+1
; RELOC ZZP
;>
; XLIST
LIST
DEFINE TBLDEV(A,B)<
ZZP==.
RELOC RLD1DX+A-MIRLD1
ZZ
ZZ==ZZ+1
RELOC ZZP
>
RLD1DX: REPEAT 36-MIRLD1,<0>
ZZ==0
DURLD1
DEFINE TBLDEV(A,B)<
ZZP==.
RELOC N001DX+A-MIN001
ZZ
ZZ==ZZ+1
RELOC ZZP
>
N001DX: REPEAT 36-MIN001,<0>
ZZ==0
DUN001
DEFINE TBLDEV(A,B)<
ZZP==.
RELOC N002DX+A-MIN002
ZZ
ZZ==ZZ+1
RELOC ZZP
>
N002DX: REPEAT 36-MIN002,<0>
ZZ==0
DUN002
DEFINE TBLDEV(A,B)<
ZZP==.
RELOC N003DX+A-MIN003
ZZ
ZZ==ZZ+1
RELOC ZZP
>
N003DX: REPEAT 36-MIN003,<0>
ZZ==0
DUN003
RADIX 8
;GENERATE SIXBIT TABLE OF DEVICE NAMES
DEFINE DUMDVA(A)<
SIXBIT/A/
>
NAMTBL: 0 ; DUMDVA
NAMLTH=<.-1>-NAMTBL+1 ;LENGTH OF TABLE OF SIXBIT NAMES
;USING SAME DEFINITION OF MACRO NOW GENERATE
;LIST OF ONLY MASSBUS DEVICE NAMES
MASNAM: 0 ; DUMFS
0 ; DUMRP
MASLTH=<.-1>-MASNAM+1 ;LENGTH OF THIS TABLE
;TABLES FOR TOPS20 DEVICES
DEFINE DUMDV(A)<
SIXBIT/A/
>
MASNA2:: DUMDVB
MASLT2=<.-1>-MASNA2+1
;GENERATE LIST OF POINTERS TO 5 WORD SCRATCH BLOCKS
;FOR ALL DEVICES ON THE SYSTEM
DEFINE DUMDV (A)<
XWD 0,A'BK
>
BKLOC: 0 ; DUMDVA
;GENERATE CONI BIT ERROR DISPATCHER
;RH = SOFT ERROR POINTER
;LH = HARD ERROR POINTER
DEFINE DUMDV(A)<
XWD A'HD,A'SF
>
DEVDS2::
DEVDSP: 0 ; DUMDVA
DEFINE DUMDV(A)<
XWD A'ST,A'SP
>
;ST=STORAGE TEMP,SP=PERM.
SOFDSP: 0 ; DUMDVA
END STARTN