Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/subrtn.seq
There are no other files named subrtn.seq in the archive.
;DDQDA
IDENTIFICATION
--------------
PRODUCT CODE: AH-7135N-DD
DIAGNOSTIC CODE: DDQDA
PRODUCT NAME: DDQDAN0 DECSYSTEM10
SUBROUTINE PROGRAM
VERSION: 0.14
DATE RELEASED: MARCH 1978
MAINTAINED BY: DIAGNOSTIC ENGINEERING
AUTHOR: JOHN R. KIRCHOFF
COPYRIGHT (C) 1970, 1978
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY 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 EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE
SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL EQUIPMENT
CORPORATION.
THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
EQUIPMENT CORPORATION.
DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
USE OR RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 1 SEQ 0002
TABLE OF CONTENTS
-----------------
1.0 ABSTRACT
2.0 REQUIREMENTS
2.1 EQUIPMENT
2.2 STORAGE
3.0 PROGRAM PROCEDURES
3.1 PROGRAM ASSEMBLY PROCEDURE
3.2 SUBROUTINE OPERATING PROCEDURE
4.0 DATA SWITCH FUNCTIONS
5.0 SUBROUTINE DESCRIPTIONS
5.1 PROGRAM SUBROUTINE INITIALIZATION
5.2 CONTROL SWITCH INITIALIZATION
5.3 MEMORY MAPPING SUBROUTINE
5.4 INTERRUPT SUBROUTINE
5.5 UUO SUBROUTINE
5.6 CONSOLE DATA SWITCH INPUT
5.7 TELETYPE INPUT
5.8 PRINT
5.9 SIXBIT TYPE-IN / PRINT
5.10 KI10 - MARGIN PRINT
5.11 DEVICE CODE CHANGE SUBROUTINE
5.12 KL10 CLOCK SUBROUTINE
5.13 KL10 METER SUBROUTINE
5.14 "DIAMON" FILE SELECTION AND READ SUBROUTINES
MAINDEC-10-DDQDA.TXT (SUBRTN) SEQ 0003
PAGE 2
TABLE OF CONTENTS (CON'T)
-------------------------
6.0 SUBROUTINE CALLS, REGISTERS, ETC.
6.1 SUBROUTINE CALLS
6.2 SUBROUTINE CONTROL WORDS, REGISTERS
6.3 SUBROUTINE MISC.
6.4 SUBROUTINE FATAL HALTS
7.0 DIAGNOSTIC ERROR HANDLER
7.1 GENERAL ERROR CALL FORMAT
7.2 ERROR CALL FORMAT
7.3 CALLING THE ERROR MACRO
7.4 ERROR HANDLER SWITCH CONTROL
7.5 ERROR HANDLER BLOCK FLOW
7.6 ERROR HANDLER DIAGNOSTICS
8.0 SUBROUTINE PACKAGE INSTRUCTIONS
8.1 SUBROUTINE SYMBOLIC TAGS
8.2 SUBROUTINE PACKAGE DISTRIBUTION
9.0 MISCELLANEOUS
10.0 SOURCE FILE LISTINGS
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 3 SEQ 0004
1.0 ABSTRACT
--------
THE PDP-10 SUBROUTINES (PARAM.KLM,FIXED.KLM,STOR.KLM & SUBRTN.SAV)
PROVIDE THE BASIC SUBROUTINES AND SOURCE FILES NEEDED TO
FACILITATE DEVELOPMENT OF DIAGNOSTIC AND UTILITY PROGRAMS FOR
THE PDP-10 COMPUTER. ALSO PROVIDED IS A DIAGNOSTIC ERROR HANDLER
CAPABLE OF REPORTING A STANDARD BUT FLEXIBLE FORMAT OF TEST
DATA AND DIAGNOSTIC INFORMATION. THE ERROR HANDLER ALSO INTERPETS
AND CONTROLS TEST SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE
CONTINUE/HALT OR LOOP ON ERROR, AND BELL ON ERROR.
THIS SUBROUTINE PACKAGE CONSISTS OF FOUR FILES WHICH ARE:
PARAM - THIS FILE CONTAINS ALL PERTINENT SUBROUTINE PARAMETERS:
A - OPERATOR DEFINITIONS
B - MAIN CONTROL REGISTERS/WORDS
C - SUBROUTINE ASSIGNMENTS
FIXED - THIS FILE CONTAINS STANDARDIZED PROGRAM STARTING ADDRESSES
AND CONTROL PARAMETER LOCATIONS.
STOR - THIS FILE CONTAINS THE REQUIRED STORAGE SETUP INSTRUCTIONS
AND THE END COMMAND.
THE PARAM.KLM, FIXED.KLM & STOR.KLM ARE SOURCE MACRO FILES
WHICH ARE ASSEMBLED WITH THE APPROPRIATE DIAGNOSTIC MACRO
SOURCE FILES TO CREATE A DIAGNOSTIC SEGMENT LOAD MODULE.
THESE FILES PROVIDE THE COMMON DEFINITIONS AND ADDRESS
ASSIGNMENTS REQUIRED FOR RUN TIME DIAGNOSTIC AND
SUBROUTINE COMMUNICATIONS.
SUBUSR - USER MODE SUBROUTINE PACKAGE
SUBRTN - EXEC MODE SUBROUTINE PACKAGE
THESE FILES ARE A SEPARATE LOAD MODULE AND
CONTAINS THE FOLLOWING SUBROUTINES:
A - PROGRAM SUBROUTINE INITIALIZATION
B - CONTROL SWITCH INITIALIZATION
C - INTERRUPT HANDLER
D - UUO HANDLER
E - CONSOLE DATA SWITCH INPUT
F - TELETYPE INPUT
G - PRINT
H - SIXBIT TYPE-IN / PRINT
I - DF10 CONTROL WORD PRINT
J - MEMORY MAPPING
K - KI10 MARGIN PRINTOUT ROUTINE
L - DEVICE CODE CHANGE SUBROUTINE
M - DIAGNOSTIC ERROR HANDLER
MAINDEC-10-DDQDA.TXT (SUBRTN) SEQ 0005
PAGE 4
2.0 REQUIREMENTS
------------
2.1 EQUIPMENT
---------
THE PDP-10 SUBROUTINES ARE CONFIGURED TO BE ABLE TO OPERATE EITHER
IN EXEC OR USER MODE PROGRAMS. A NORMAL SYSTEM CONFIGURATION
DEPENDING ON THE MAIN PROGRAM IS REQUIRED.
2.2 STORAGE
-------
FIXED - THIS FILE CONTAINS THE FOLLOWING:
A - PROGRAM STARTING ADDRESSES, 30000 TO 30017
B - PROGRAM FIXED PARAMETER AREA, 30020 TO 30036
C - PROGRAM VARIABLE PARAMETER AREA, 30037 TO 30056
D - SPECIAL PROGRAM DISPATCH ADDRESSES, 30057 TO 30105
E - PROCESSOR CONTROL STORAGE, 30106 TO 30123
F - UUO DISPATCH TABLE, 30124 TO 30141
G - MEMORY MANAGEMENT STORAGE, 30124 TO 30216
H - PRINT CONTROL STORAGE, 30217 TO 30241
I - PRINT CHARACTERS, 30242 TO 30264
J - USER MODE OUTPUT FILE INFO, 30265 TO 30273
K - DISK UPDATE FILE INFO, 30274 TO 30302
L - PUSHDOWN LIST, 30303 TO 30504
M - EXPANSION AREA, 30505 TO 30577
PARAM - THIS FILE CONSISTS OF DEFINITIONS AND REQUIRES NO CORE
LOCATIONS.
STOR - REQUIRED LOCATIONS VARIES DEPENDING UPON NUMBER OF VARIABLES
AND LITERALS USED IN THE MAIN PROGRAM.
A DEBUG AREA IS PROVIDED (IF DEBUG IS DEFINED) OF DEBUG(8) LOCATIONS.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 5 SEQ 0006
2.3 MEMORY UTILITIZATION MAP
------------------------
0 -----------------------------------------
I
I EXEC PAGE TABLE
I
1000 -----------------------------------------
I
I SUBRTN
I
10000 -----------------------------------------
I
I KLDDT
I
20000 -----------------------------------------
I
I DIAMON
I
30000 ----------------------------------------
I
I FIXED
I
30600 ----------------------------------------
I
I DIAGNOSTIC SEGMENT
I
/
\
I
MEMLOW ----------------------------------------
I
I MEMORY AVAILABLE FOR TESTING
I
/
\
I
MAX MEM ----------------------------------------
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 6 SEQ 0007
3.0 PROGRAM PROCEDURES
------------------
3.1 PROGRAM ASSEMBLY PROCEDURE
--------------------------
THE PARAM, FIXED & STOR FILE ARE ASSEMBLED WITH THE MAIN PROGRAM
TO PRODUCE A COMPLETE PROGRAM. THE FILES ARE ASSEMBLED IN THE FOL-
LOWING ORDER:
A. PROGRAM TITLE FILE; CONTAINS PROGRAM IDENTIFICATION DATA
AND OPERATION PARAMETERS
B. SUBROUTINE PARAMETER FILE, PARAM; CONTAINS SUBROUTINE
PARAMETERS, OPERATOR DEFINITIONS, AND SUBROUTINE ASSIGN-
MENTS
C. PROGRAM STARTING FILE, FIXED; CONTAINS PROGRAM STARTING
ADDRESSES AND PROGRAM CONTROL PARAMETER LOCATIONS.
D. MAIN PROGRAM FILE; CONTAINS THE CODING FOR THE MAIN PROGRAM
F. STORAGE FILE, STOR; CONTAINS THE RESERVED STORAGE SETUP
1. LIT, PROGRAM CONSTANTS
2. SPECIFIED PROGRAM VARIABLES
3. VAR, PROGRAM VARIABLE WORDS
4. PROGRAM END STATEMENT (IF PGMEND DEFINED)
THE DIAGNOSTIC SEGMENT IS ASSEMBLED FOR EXEC AND/OR USER MODE
BY DEFINING THE FOLLOWING PARAMETERS:
A. EXCASB = 1 ;ASSEMBLE FOR EXEC MODE
B. USRASB = 1 ;ASSEMBLE FOR USER MODE
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 7 SEQ 0008
3.1 CON'T
-----
THE PDP-10 CENTRAL PROCESSOR THAT THE DIAGNOSTIC SEGMENT
IS ASSEMBLED FOR IS CONTROLLED BY THE FOLLOWING
CONDITIONAL ASSEMBLY PARAMETERS:
A. KA10 = 1 ;ASSEMBLE FOR KA10 CP.
B. KI10 = 1 ;ASSEMBLE FOR KI10 CP.
C. KL10 = 1 ;ASSEMBLE FOR KL10 CP.
D. KL10P0 = 1 ;ASSEMBLE PRODUCTION KL10 DEFINITIONS IF KL10
THE MEMORY MAPPING SUBROUTINES ARE CONDITIONALLY
ALLOWED DEPENDING UPON THE REQUIREMENTS OF THE MAIN PROGRAM.
THIS IS CONTROLLED BY DEFINING THE FOLLOWING SYMBOL IN THE
DIAGNOSTIC SEGMENT TITLE FILE:
1. MEMMAP=1 ;ALLOW MEMORY MAPPING SUBROUTINE
THE PROGRAM END STATEMENT IS ASSEMBLED INTO THE "STOR" FILE
IF THE FOLOWING SYMBOL IS DEFINED. IF IT IS NOT DEFINED
THERE THEN MUST BE A DIAGNOSTIC SEGMENT STORAGE FILE, ALLOWING
ADDITIONAL BUFFER AREAS, CONTAINING THE END STATEMENT.
1. PGMEND=1 ;ASSEMBLE PROGRAM END STATEMENT
THE FOLLOWING START ADDRESSES MUST BE USED IN THE
DIAGNOSTIC SEGMENT FOR INITIAL STARTING AND END OF
PASS RESTART ADDRESSES.
1. START ;INITIAL DIAGNOSTIC START
2. STARTA ;END OF PASS RESTART
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 8 SEQ 0009
3.1 CON'T
-----
THE FOLLOWING SYMBOLS ARE USED TO CONTROL THE ASSEMBLY
OF THE PROPER "FIXED" FILE:
SADR1 ;SPECIAL FEATURE START ADDRESS
SADR2 ;POWER FAIL RESTART ADDRESS (RESRT1)
SADR3 ;REENTER START ADDRESS
SADR5 ;CONTROL C TRANSFER ADDRESS
SADR6 ;ALTMODE TRANSFER ADDRESS
SADR7 ; START1 - STARTING INSTRUCTION
SADR8 ; START2 - "
SADR9 ; START3 - "
SADR10 ; START4 - "
SADR11 ; START5 - "
PAREA1 ;RANDOM BASE NUMBER
PAREA2 ;SYS EXER SWITCHES
PAREA3 ;SIXBIT PROGRAM NAME
PAREA4 ;SIXBIT PROGRAM NAME EXTENSION
PAREA5 ;OPTIONAL PARAMETER
PAREA6 ;OPTIONAL PARAMETER
ITERAT ;EXEC & USER MODE PROGRAM ITERATIONS
THE ABOVE SYMBOLS MUST BE DEFINED, AS 0 IF NOT USED OR AS
THE PROGRAM REQUIRED DATA.
TO PROVIDE A DEBUG PATCH AREA, DEFINE THE FOLLOWING
WORD IN THE PROGRAM TITLE FILE:
1. DEBUG= # ;# ='S SIZE OF PATCH AREA
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 9 SEQ 0010
3.3 PROGRAM STANDARIZED STARTING ADDRESSES
----------------------------------------
PROGRAM STARTING ADDRESSES
30000 BEGIN: JRST @MODLNK ;STAND-ALONE START
30001 $START: JRST START ;MODE CHECK STARTING ADDRESS
30002 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
30003 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
30004 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
30005 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
30006 REENTR: JRST SADR3 ;REENTER START
30007 DDTSRT: JRST @DDTLNK ;DDT START
30010 BEGIN1: JRST STARTA ;START NEXT PROGRAM PASS
30011 SBINIT: JRST @SUBLNK ;PGMINT LINKAGE
30012 RETURN: 0 ;RETURN ADDRESS STORAGE
30013 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
30014 START2: SADR8 ; "
30015 START3: SADR9 ; "
30016 START4: SADR10 ; "
30017 START5: SADR11 ; "
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 10 SEQ 0011
3.3 SUBROUTINE OPERATING PROCEDURE
------------------------------
THE ONLY SPECIAL OPERATING PROCEDURES REQUIRED ARE FOR THE SWITCH
INITIALIZATION AND PRINT SUBROUTINES:
A. SWITCH INITIALIZATION - THE OPERATIONAL SWITCHES FOR THE
PROGRAM ARE INITIALIZED AS FOLLOWS:
1. EXEC MODE - KI10 & KA10 -USE ACTUAL CONSOLE SWITCHES
EXEC MODE - KL10 - SWITCHES READ FROM DTE20 COMM
AREA. THESE ARE DEPOSITED INTO THE DTE20
COMM AREA BY THE CONSOLE PROCESSOR.
3. USER MODE - THE OPERATOR SPECIFIES WHETHER TO USE
THE ACTUAL CONSOLE SWITCHES OR TO USE TYPED IN
SWITCH SETTINGS BY RESPONSE ON THE TTY TO QUESTIONS
AS FOLLOWS:
TELETYPE SWITCH CONTROL ? 0,S,Y OR N <CR> -
IF THE OPERATOR TYPES "N", THE ACTUAL CONSOLE
SWITCHES ARE USED.
IF THE OPERATOR TYPES "Y", THE FOLLOWING QUESTIONS
ARE ASKED AND THE OPERATOR RESPONDS BY TYPING
THE ANSWER AS SIX OCTAL DIGITS REPRESENTING
THE DESIRED SWITCH SETTINGS.
SPECIFY LH SWITCHES IN OCTAL-
SPECIFY RH SWITCHES IN OCTAL-
IF THE OPERATOR TYPES "0", ZERO'S ARE USED FOR
THE SWITCH SETTINGS.
IF THE OPERATOR TYPES "S", PREVIOUSLY SET SWITCHES
ARE USED. THIS IS ONLY VALID UPON RESTARTING
OF AN INTERRUPTED PROGRAM.
B. PRINT INITIALIZATION - THE PRINT SUBROUTINE PROVIDES OUTPUT
TO THE TTY AND/OR LPT IN EXEC MODE OR TO THE TTY AND/OR
A LOGICAL DEVICE IN USER MODE. USE OF THE TTY OR LPT/LOGICAL
DEVICE IS SPECIFIED BY THE SWITCHES. THE ACTUAL LOGICAL
DEVICE TO BE USED IN USER MODE IS SPECIFIED BY THE
MONITOR ASSIGN COMMAND. THE LOGICAL DEVICE NAME IS
'DEV' AND THE CORRESPONDING OUTPUT FILE IS '"PNTNAM"."PNTEXT"'.
THE PHYSICAL DEVICE TO BE USED CAN BE ANY DEVICE
THAT CAN ACCEPT ASCII OUTPUT FORMAT SUCH AS LPT,
DSK, DTA, ETC. AN EXAMPLE ASSIGNMENT WOULD BE:
.ASSIGN DSK DEV
IF LOGICAL DEVICE OUTPUT IS CALLED FOR (USER MODE) AND NO
DEVICE IS ASSIGNED TO 'DEV' THE DISK WILL BE USED.
MAINDEC-10-DDQDA.TXT (SUBRTN)
4.0 DATA SWITCH FUNCTIONS (STANDARD SET) PAGE 11 SEQ 0012
---------------------
SWITCH NO. SYMBOL STATE FUNCTION DESCRIPTION
---------- ------ ----- --------------------
0 (400000) ABORT 0 NORMAL OPERATION
1 ABORT AT END OF PASS
1 (200000) RSTART 0 NO FUNCTION
1 LIST TOTALS AND RESTART
2 (100000) TOTALS 0 NO FUNCTION
1 LIST TOTALS AND CONTINUE
3 (040000) NOPNT 0 NORMAL TYPEOUT
1 INHIBIT ALL PRINTING EXCEPT FORCED
4 (020000) PNTLPT 0 NORMAL OUTPUT TO TTY
1 PRINT ON LPT (USER, LOGICAL DEV)
5 (010000) DING 0 NO FUNCTION
1 RING TTY BELL ON ERROR (FORCED OUTPUT).
6 (004000) LOOPER 0 PROCEED TO NEXT TEST
1 ENTER SCOPE LOOP ON TEST ERROR
7 (002000) ERSTOP 0 NO FUNCTION
1 HALT ON TEST ERROR (EXIT, USER MODE).
8 (001000) PALERS 0 PRINT ONLY FIRST ERROR IN LOOP
1 PRINT ALL ERRORS
9 (000400) RELIAB 0 QUICK VERIFY MODE
1 RELIABILITY MODE
10 (000200) TXTINH 0 PRINT FULL ERROR MESSAGES.
1 INHIBIT COMMENT PORTION OF ERROR MESSAGES.
11 (000100) INHPAG 0 KI10 & KL10 - ALLOW FULL 256K/4096K ADDRESSING
1 KI10 & KL10 - INHIBIT PAGING; I.E. TREAT MEMORY AS 112K-1 MAXIMUM
12 (000040) MODDVC 0 NO DEVICE CODE CHANGE
1 MODIFY DEVICE CODES
13 (000020) INHCSH 0 KL10 - ALLOW CACHE USE
1 KL10 - INHIBIT CACHE
14 (000010) OPRSEL 0 RUN DEFAULT OPERATIONS
1 OPERATOR TEST SELECTIONS
15 (000004) CHAIN 0 THIS SWITCH USED BY "DIAMON", ETC.
TO CONTROL CHAIN OPERATIONS
16 (000002) KAHZ50 KA10 50 HERTZ SWITCH
17 (000001) RESERVED
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 12 SEQ 0013
5.0 SUBROUTINE DESCRIPTIONS
-----------------------
SEE SECTION 6.1 OR LISTING OF FILE 'PARAM' FOR CALLING PROCEDURES
FOR THE FOLLOWING SUBROUTINES.
5.1 PROGRAM SUBROUTINE INITIALIZATION
---------------------------------
THIS SUBROUTINE INITIALIZES THE FOLLOWING:
A - PUSH LIST
B - JOB DATA AREA
C - INTERRUPTS AND TRAPS
D - PRINT
E - TELETYPE INPUT
F - SWITCHES
G - MEMORY SIZE POINTERS (IN 'MEMSIZ' TABLE)
IN ADDITION THIS ROUTINE PRINTS THE PROGRAM NAME. 'PGMNAM' IS
THE TAG FOR THE ASCIZ MESSAGE. 'PGMNAM' MUST BE INCLUDED IN
THE MAIN PROGRAM FILE.
5.2 CONTROL SWITCH INITIALIZATION
-----------------------------
THIS SUBROUTINE INITIALIZES THE SWITCH SUBROUTINE TO USE EITHER
THE ACTUAL CONSOLE SWITCHES OR THE TYPED IN SWITCHES. THIS IS
DESCRIBED IN 3.3 A.
5.3 MEMORY MAPPING SUBROUTINES
--------------------------
A. MAPMEM (PART OF PGMINT)
PERFORMS MEMORY MAPPING AND PRINTS A MEMORY MAP.
MEMORY MAPPING OF EITHER 4096K KL10/KI10 MEMORY OR 256K DIRECT
ADDRESSED MEMORY IS CONTROLLED BY THE MAPNEW FLAG.
MAPNEW = 0, DIRECT MEMORY ADDRESSING, 256K MAXIMUM
-1, 4096K KL10/KI10 PAGED MEMORY OPERATIONS
4096K PAGED MEMORY OPERATIONS WILL ONLY TAKE PLACE IF:
1. KL10 OR KI10
2. MAPNEW FLAG = -1 BEFORE "PGMINT"
DIRECT MEMORY OPERATIONS WILL TAKE PLACE IF ANY OF:
1. USER MODE OR SPECIAL USER MODE
2. KA10
3. KL10 OR KI10 & PAGING INHIBITED
4. KL10 OR KI10 & MAPNEW WASN'T -1 BEFORE "PGMINT"
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 13 SEQ 0014
5.3 MEMORY MAPPING SUBROUTINES (CON'T)
--------------------------
B. MEMSEG
DOES MEMORY SEGMENT SETUP FOR A REQUESTED SEGMENT OF MEMORY
** MAPNEW = -1
SETS UP TO 128K SEGMENT IN PAGE MAP
ARGUMENTS: 0-37 - MAP CORRESPONDING 128K SEGMENT
GT 37 - MAP USING PHYSICAL ADDRESS
RETURNED IN AC0
0 - NO MEMORY AVAILABLE
HIGHEST VIRTUAL ADDRESS
BIT 0 SET IF NON-CONSECUTIVE CORE (IN A 128K SEGMENT) WAS
COMBINED. NON-CONSECUTIVE CORE WILL NOT BE COMBINED WHEN
DOING A PHYSICAL ADDRESS MEMSEG.
PAGE MAP SETUP SO VIRTUAL ADDRESS 400000 AND UP POINTS
TO MEMORY REQUESTED.
RETURNS +2
** MAPNEW = 0
ARGUMENTS: 0-10 - SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
11-37 - RETURNS 0, MAXIMUM OF 8 CHUNKS IN 256K
USER MODE, 1-37 ALWAYS RETURNS 0
GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
RETURNED IN AC0:
0 - NO MEMORY AVAILABLE
START ADDRESS,, END ADDRESS
RETURNS +1
C. MAPADR
PERFORMS VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
ARGUMENT IN AC0: VIRTUAL ADDRESS
RETURNED IN AC0: PHYSICAL ADDRESS
SKIP RETURN IS NORMAL, NON-SKIP IS KI10 PAGE INACCESSIBLE
NOTE: ON A KL10 IN USER MODE THE VIRTUAL ADDRESS IS RETURNED
SINCE A MAP INSTRUCTION IS ILLEGAL IN USER MODE AND
THE MONITOR DOES NOT PROVIDE A SUBSTITUTE.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 14 SEQ 0015
5.3 MEMORY MAPPING SUBROUTINES (CON'T)
--------------------------
D. MEMZRO
ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
MAPNEW = 0, DIRECT MEMORY ZERO
-1, 4096K PAGED MEMORY ZERO
E. MAPSET
SETS UP KL10 OR KI10 PAGE MAP FOR VIRTUAL TO PHYSICAL
ADDRESS TRANSLATION.
ARGUMENTS IN AC0:
NEG - CLEAR PAGE MAP
0-37 - MAP CORRESPONDING 128K SEGMENT
F. MAPCNK
DOES ACTUAL MEMORY MAPPING.
ARGUMENTS:
AC0: START ADDRESS,,END ADDRESS
AC1: TEMPORARY CHUNK ADDRESS STORAGE POINTER
DOES FOUR WAY INTERLEAVE MAPPING BUT IF ANY OF THE
4-WAY ADDRESSES ARE NON-X THAT CHUNK IS MARKED NON-X.
MAPS BY 16K CHUNKS.
G. MAPPNT
DOES MEMORY MAP PRINTOUT USING PARAMETERS CONTAINED IN "MEMSIZ"
TABLE. NORMALLY DONE AS PART OF "MAPMEM" WHICH IS DONE BY
"PGMINT".
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 15 SEQ 0016
5.4 INTERRUPT SUBROUTINE
--------------------
THIS SUBROUTINE HANDLES PROCESSOR INTERRUPTS ON CHANNEL 1
IN EXEC MODE AND APR TRAPPING IN USER MODE. THE FOLLOWING
INTERRUPTS / TRAPS ARE PROCESSED:
A - PUSHDOWN OVERFLOW
B - MEMORY PROTECTION VIOLATION
C - NON-EXISTANT MEMORY
D - PARITY ERROR
E - TO PROCESS OTHER INTERRUPTS, CHANGE CONO'S / APRENB
ACCORDINGLY AND SETUP JRST'S IN THE INTERRUPT
DETERMINATION SEQUENCE TO GO TO THE PROPER HANDLING
ROUTINE, SUPPLIED BY USER.
THE FOLLOWING ADDITIONAL CONDITIONS ARE PROCESSED IN EXEC MODE:
A - POWER FAILURE ; WHEN A POWER FAILURE IS DETECTED THE
AC'S ARE SAVED AND THE PROGRAM HALTS. RESTART AT
'PFSTRT' TO RESTORE AC'S AND CONTINUE PROGRAM.
B - KI10 - THE POWER FAIL AUTO RESTART IS ENABLED AND
RESTARTS BY 'JRST PFSTRT' PERFORMED BY POWER FAIL
TRAP INSTRUCTION FROM LOC 70.
5.5 UUO SUBROUTINE
--------------
THIS SUBROUTINE HANDLES UUO'S IN THE RANGE 001-037 BY CHECKING
FOR VALIDITY AND DISPATCHING VIA JRST TO THE APPROPRIATE USER SUPPLIED
UUO HANDLING ROUTINE. IN ORDER TO USE UUO'S THE USER MUST SUPPLY
THE ROUTINE AND INSERT A POINTER TO THE ROUTINE IN THE
APPROPRIATE POSITION OF THE UUO DISPATCH TABLE. A UUO
ROUTINE IS EXITED BY USING A (JRST UUOEXT) OR (JRST UUOSKP) TO RETURN TO THE
UUO HANDLER. ILLEGAL UUO'S ARE HANDLED BY PRINTING OUT THE
PERTINENT INFORMATION AND HALTING.
UUOEXT PROVIDES FOR NORMAL RETURN FROM UUO (RETURNS UUO +1)
UUOSKP PROVIDES FOR A SKIP RETURN FROM UUO (RETURNS UUO +2)
THE UUO HANDLER IS ENTERED AND EXITED WITHOUT AFFECTING THE CONTENTS
OF THE AC'S UNLESS THE AC'S ARE CHANGED BY THE USER UUO ROUTINE.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 16 SEQ 0017
5.6 CONSOLE DATA SWITCH INPUT
-------------------------
THIS SUBROUTINE INPUTS THE CONSOLE DATA SWITCHES IN EXEC
MODE. THE TYPED IN SWITCH SETTINGS ARE NOT AFFECTED IF IN USER
MODE.
IF THE PROGRAM IS UNDER CONTROL OF THE DIAGNOSTIC MONITOR
(MONCTL = -PASS COUNT,X) THE RIGHT HALF OF MONCTL IS USED AS
THE RIGHT HALF OF THE CONSOLE SWITCHES. THE LEFT
HALF CONSOLE SWITCHES ARE USED DIRECTLY.
IF THE PROGRAM IS RUNNING UNDER THE SYSTEM EXERCISER,
THE CONTENTS OF (SWTEXR) IS USED AS THE CONSOLE
SWITCH SETTINGS.
5.7 TELETYPE INPUT
--------------
THIS SUBROUTINE INPUTS FROM THE TELETYPE. ACCEPTS ANY CHARACTER,
Y OR N, UP TO 12 OCTAL DIGITS, UP TO 11 DECIMAL DIGITS (CONVERTED
INTO AN OCTAL WORD), OR UP TO 9 CONVERTABLE DIGITS (DECIMAL
IF A PERIOD <.> FOLLOWS, OCTAL OTHERWISE).
ON NUMBER INPUTS, IF THE FIRST INPUT IS A MINUS THE
NUMBER IS RETURNED NEGATED. ALSO IF ONLY THE TERMINATION CHARACTER
(CR OR COMMA) IS TYPED, THEN 0 IS RETURNED IN AC0 WITH THE
"TTNBRF" FLAG STILL ZERO.
ASKS THE QUESTION 'Y OR N <CR> -' IF A YES/NO RESPONSE IS REQUESTED.
CARRIAGE RETURN OR COMMA (,) TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
IN EXEC MODE THE SUBROUTINE WILL WAIT FOR THE AMOUNT OF TIME
INITIALIZED IN (OPTIME) AND IF NO REPONSE WITHIN THAT TIME WILL
TAKE THE NO/ERROR RESPONSE RETURN.
IF A CONTROL C <^C> IS TYPED DURING TYPEIN (EXEC) A "JRST @CNTLC" IS
PERFORMED TO RESTART OR TERMINATE PROGRAM. 'CNTLC' IS PART OF THE
PROGRAM CONTROL PARAMETER AREA AND MAY BE SET TO THE USERS OPTION.
INTERRUPTED ADDRESS IS STORED IN "JOBOPC" LOCATION 130.
IF A CONTROL D <^D> IS TYPED DURING TYPEIN A JRST TO "DDT" IS
PERFORMED, IF "DDT" IS NOT LOADED A "HALT BEGIN" IS DONE.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 17 SEQ 0018
5.8 PRINT
-----
THIS SUBROUTINE PRINTS ASCII MESSAGES, DECIMAL NUMBERS, OR A
DESIGNATED AMOUNT OF OCTAL DIGITS. DECIMAL NUMBERS CAN EITHER BE
PRINTED WITH THE LEADING ZEROS SUPPRESSED OR WITH SPACES SUB-
STITUTED FOR THE LEADING ZEROS. A FULL OCTAL WORD CAN EITHER BE
PRINTED AS TWELVE CONSECUTIVE DIGITS OR IN HALF WORD FORMAT,
6 SP 6.
PRINTOUTS MAY BE EITHER IN NORMAL MODE, CAPABLE OF BEING SUPPRESSED
BY THE NOPNT SWITCH, OR IN THE FORCED OUTPUT MODE WHERE THE PRINT-
OUT GOES TO THE TTY EVEN IF THE LPT/LOGICAL DEVICE IS SELECTED OR
IF PRINTOUTS ARE SUPPRESSED BY THE NOPNT SWITCH.
THE PRINTED OUTPUT GOES TO THE TTY AND/OR LPT IN EXEC MODE AND TO
THE TTY AND/OR USER ASSIGNED LOGICAL DEVICE IN USER MODE. THE LOGICAL
OUTPUT FILE IN USER MODE IS '"PNTNAM"."PNTEXT"' AND THE LOGICAL DEVICE IS 'DEV'.
IN EXEC MODE TYPEOUT MAY BE SUPPRESSED, ON THE TTY, TILL THE NEXT
FORCED OUTPUT, TTY INPUT REQUEST OR TILL THE NEXT (^O) IS TYPED.
THE "PFORCE" COMMAND MAY BE DONE TO OVERRIDE CONTROL O WITHOUT
CAUSING ANY PRINTOUT.
IF A CONTROL C <^C> IS TYPED DURING PRINTOUT A "JRST @CNTLC"
IS PERFORMED AS DESCRIBED ABOVE (IN 5.7). (EXEC ONLY).
IF AN ALT-MODE IS TYPED DURING PRINTOUT (EXEC ONLY)
A "JRST @ALTMGO" IS PERFORMED TO TRANSFER TO USER'S ROUTINE, I.E. DDT.
INTERRUPTED ADDRESS STORED IN 'JOBOPC' FOR CONTINUATION USE.
IF A CONTROL D <^D> IS TYPED DURING PRINTOUT (EXEC ONLY)
A JRST TO "DDT" IS PERFORMED, IF "DDT" IS NOT LOADED
A "HALT BEGIN" IS DONE.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 18 SEQ 0019
5.9 SIXBIT TYPE-IN / PRINT
----------------------
A. TTSIXB - SIXBIT TYPE-IN
THIS ROUTINE INPUTS FROM THE TELETYPE AND CONVERTS ASCII
INPUT INTO A SIXBIT WORD. ACCEPTS UP TO SIX CHARACTERS,
TERMINATES WITH A CR OR A COMMA.
B. PNTSIX & PNTSXF - SIXBIT PRINT
THIS ROUTINE PRINTS OUT THE CONTENTS OF AC0 AS A SIXBIT WORD.
PRINTOUT MAY BE IN NORMAL OR FORCED PRINTOUT MODE.
C. SIXBTZ
THIS MACRO GENERATES SIXBIT DATA FOR PRINTING. PROVIDES A
CONSIDERABLE SAVING IN CORE STORAGE OVER ASCIZ. ALL SIXBIT
CHARACTERS MAY BE USED WITH THE FOLLOWING EXECPTIONS:
1. BACKARROW (_) IS INSERTED AS THE LAST CHARACTER IN THE
MESSAGE STRING TO SIGNIFY END OF TEXT.
2. UPARROW (^) SIGNIFIES CR/LF.
3. RIGHT SQUARE BRACKET (]) SIGNIFIES TAB.
THIS TEXT GENERATION METHOD IS USED BY THE DIAGNOSTIC ERROR
MACRO.
5.10 KI10 - MARGIN PRINT
-------------------
THIS ROUTINE PRINTS THE KI10 MARGIN VALUE FROM THE WORD IN 'MARGIN'.
FORMAT:
MARGIN WORD = 123456 123456 , BAY 1 ROW A = 5052 MVOLTS, SPEED MARGINS
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 19 SEQ 0020
5.11 DEVICE CODE CHANGE SUBROUTINE
-----------------------------
THIS SUBROUTINE ALLOWS RUN TIME CHANGE OF DEVICE CODES.
ROUTINE IS CALLED BY SETTING SWITCH "MODDVC".
TO USE THE ROUTINE PLACE A "MODPCU" CALL IN THE APPROPRIATE
PLACE IN THE PROGRAM AND HAVE THE FOLLOWING LIMIT PARAMETERS
DEFINED:
MODDVL = LOWER LIMIT OF DEVICE CODE SEARCH
MODDVU = UPPER LIMIT OF DEVICE CODE SEARCH
THE PROGRAM WILL ASK THE FOLLOWING QUESTIONS WHEN INVOKED:
CHANGE DEVICE CODES, Y OR N <CR> -
OLD DEVICE CODE -
NEW DEVICE CODE -
ANSWER QUESTIONS APPROPRIATELY. THE CHANGE DEVICE CODES QUESTION
WILL BE REASKED TILL YOU SAY NO, CHANGING AS MANY DEVICE CODES
AS WANTED.
TO CHANGE DEVICE CODES UNDER PROGRAM CONTROL, CALL
"MODPCP" WITH C(AC0) = [OLD,,NEW] DEVICE CODES.
5.12 KL10 CLOCK SUBROUTINE
---------------------
THIS SUBROUTINE PROVIDES POWER-LINE CLOCK USAGE AND CONTROL
OF THE POWER-LINE CLOCK IN THE CONSOLE PROCESSOR. THE
FEATURES AND CONTROL ARE PROVIDED AS FOLLOWS:
A. AC0 = 0 ;DISABLE
B. AC0 = -1 ;ENABLE, THE "CLOCKF" FLAG IS SET TO -1 ON
EVERY CLOCK TICK
C. AC0 = INST ;ENABLE AND EXECUTE INSTRUCTION, SETS "CLOCKF"
;FLAG TO -1 ON EVERY CLOCK TICK AND EXECUTES
;THE SUPPLIED INSTRUCTION. THE INSTRUCTION
;MAY SIMPLY BE AN "AOS" OF A COUNT OR MAY BE
;A SUBROUTINE CALL TO PERFORM A ROUTINE AND
;RETURN.
D. AC0 = 0,,X ;WAIT "X" CLOCK TICKS AND THEN PERFORM
;AS "C" ABOVE. THE INSTUCTION IN THIS CASE IS
;SUPPLIED IN AC1.
E. AC0 = 0,,1 ;READ CONSOLE PROCESSOR CLOCK COUNT SINCE ENABLED
;BY "B,C OR D" ABOVE. THE CLOCK COUNT (36 BITS)
;IS RETURNED IN AC0.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 20 SEQ 0021
5.13 KL10 METER SUBROUTINE
---------------------
THIS SUBROUTINE PROVIDES DK20 METER USAGE AND CONTROL
THE FEATURES AND CONTROL ARE PROVIDED AS FOLLOWS:
A. AC0 = 0 ;DISABLE
B. AC0 = -1 ;ENABLE, THE "CLOCKF" FLAG IS SET TO -1 ON
;EVERY CLOCK TICK
C. AC0 = INST ;ENABLE AND EXECUTE INSTRUCTION, SETS "CLOCKF"
;FLAG TO -1 ON EVERY CLOCK TICK AND EXECUTES
;THE SUPPLIED INSTRUCTION. THE INSTRUCTION
;MAY SIMPLY BE AN "AOS" OF A COUNT OR MAY BE
;A SUBROUTINE CALL TO PERFORM A ROUTINE AND
;RETURN.
D. AC0 = 0,,X ;WAIT "X" CLOCK TICKS AND THEN PERFORM AS
; "C" ABOVE. THE INSTRUCTION IN THIS CASE IS
;SUPPLIED IN AC1.
E. AC0 = 0,,1 ;READ METER CLOCK COUNT SINCE ENABLED BY
;"B,C OR D" ABOVE. THE CLOCK COUNT IS RETURNED
;IN AC0.
THE DK20 METER IS SETUP FOR A PERIOD OF 3203 WHICH IS 60 HZ.
IF THE PROCESSOR IS 50 HZ THEN THE INTERVAL IS 3720.
THE METER IS ASSIGNED TO PI CHANNEL ONE AND DOES A VECTOR
INTERRUPT TO EPT LOCATION 514. THE I/O BUS RESET DOES NOT
AFFECT THE DK20 METER.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 21 SEQ 0022
5.14 "DIAMON" FILE SELECTION AND READ SUBROUTINES
--------------------------------------------
THIS SUBROUTINE PROVIDES THE CAPABILITY OF SELECTING AND
READING DATA FILES. THE FILES MAY BE READ FROM ANY
OF THE DEVICES SUPPORTED BY "DIAMON". THE "DIAMON" PROGRAM
MUST BE RESIDENT IN THE PDP-10 AND MUST PREVIOUSLY HAVE
BEEN USED TO SELECT THE LOAD DEVICE TO BE USED.
A. FSELECT
THIS SUBROUTINE CALL IS USED TO SELECT THE DESIRED FILE. UPON
CALL AC0 CONTAINS AN ADDRESS POINTER TO A TWO WORD SIXBIT FILE
NAME AND EXTENSION BLOCK. A SKIP RETURN IS NORMAL AND INDICATES
THAT THE DESIRED FILE HAS BEEN FOUND AND SETUP FOR SUBSEQUENT
READ OPERATIONS.
MOVEI AC0,FILSPC FILSPC: SIXBIT/FILE/
FSELECT SIXBIT/EXT/
JRST ERROR
'OK'
WHEN THE FILE IS FOUND A SKIP RETURN IS TAKEN WITH THE
CONTENTS OF AC0 INDICATING THE DEVICE TYPE.
DEVICE TYPE ASCII 36BIT 8BIT
0 = UNSPECIFIED Y Y Y
1 = PDP-10 DTA Y Y Y
2 = PDP-10 DISK Y Y Y
3 = 11 FORMAT DTA Y N Y
4 = PAPER TAPE Y N Y
5 = USER (DSK) Y Y Y
6 = MAG TAPE Y Y Y
ON THE KL10 WHEN "KLDCP" IS SELECTED AS THE LOAD DEVICE
THE CONTENTS OF AC0 INDICATE THE CONSOLE LOAD DEVICE.
DEVICE TYPE ASCII 36BIT 8BIT
100 = UNSPECIFIED Y N N
101 = DTA Y N Y
102 = DISK Y N Y
103 = FLOPPY Y N Y
104 = APT10 Y N N
IF AN ERROR OCCURS OR THE FILE IS NOT FOUND A NON-SKIP RETURN
IS TAKEN WITH AC0 CONTAINING THE DEVICE TYPE OR THE FOLLOWING.
0 = NO "DIAMON" CAPABILITY
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 22 SEQ 0023
5.14 "DIAMON" FILE SELECTION AND READ SUBROUTINES
--------------------------------------------
B. FREAD
THIS SUBROUTINE CALL IS USED TO READ ASCII DATA FROM THE
SELECTED FILE. A SKIP RETURN IS NORMAL WITH AC0 CONTAINING
A 7 BIT ASCII DATA CHARACTER. A NON-SKIP RETURN INDICATES
AN ERROR OR END-OF-FILE WITH AC0 CONTAINING AN ERROR CODE.
NULLS IN THE DATA FILE ARE IGNORED.
FREAD ;CALL
JRST EOF ;AC0 HAS ERROR CODE
'OK' ;AC0 HAS 7 BIT ASCII CHARACTER
IF ERROR, AC0 CODE:
0 = END-OF-FILE
C. FRD36
THIS SUBROUTINE CALL IS USED TO READ 36 BIT DATA FROM THE
SELECTED FILE. DATA RETURNED IN AC0 IS 36 BITS, REST AS
"FREAD" ABOVE.
D. FRD8
THIS SUBROUTINE CALL IS USED TO READ 8 BIT DATA FROM THE
SELECTED FILE. DATA RETURNED IN AC0 IS 8 BITS, REST AS
"FREAD" ABOVE.
IF AN UNSUPPORTED FILE READ IS MADE TO A DEVICE AN END
OF FILE RETURN WILL OCCUR ON THE FIRST READ.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 23 SEQ 0024
6.0 SUBROUTINE CALLS, REGISTERS, ETC.
---------------------------------
6.1 SUBROUTINE CALLS
----------------
THE FOLLOWING COMMANDS ARE USED TO CALL THE VARIOUS SUBROUTINES.
PGMINT ;PROGRAM SUBROUTINE INITIALIZATION
FATAL ;FATAL PROGRAMMING HALT
ERRHLT ;PROGRAM ERROR HALT
GO ;SUBROUTINE CALL
RTN ;SUBROUTINE RETURN
PUT ;PUT DATA ON PUSH LIST
GET ;GET DATA FROM PUSH LIST
SWITCH ;READ CONSOLE/TTY SWITCHES
TTICHR ;TTY, INPUT ANY CHAR *** CALL SEQUENCE ***
TTIYES ;TTY, ASK YES-NO, SKIP RETURN Y TT----
TTINO ;TTY, ASK NO-YES, SKIP RETURN N NO/ERR RESPONSE RETURN
TTIOCT ;TTY, INPUT OCTAL WORD NORMAL RESPONSE RETURN
TTIDEC ;TTY, INPUT DECIMAL WORD
TTICNV ;TTY, INPUT CONVERTABLE WORD
TTLOOK ;TTY, KEYBOARD CHECK, SKIP RETURN IF TYPE-IN
TTALTM ;TTY, ALT-MODE CHECK, SKIP RETURN IF ALT-MODE
TTSIXB ;TTY, INPUT SIXBIT, UP TO SIX
TTYINP ;TTY, IMAGE MODE INPUT
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 24 SEQ 0025
6.0 SUBROUTINE CALLS, REGISTERS, ETC. (CON'T)
---------------------------------
6.1 SUBROUTINE CALLS (CON'T)
----------------
PNTA ;PRINT ASCII WORD
PNTAF ;FORCED
PNTAL ;PRINT ASCIZ LINE
PNTALF
PSIXL ;PRINT SIXBIT'Z LINE
PSIXLF
PNTMSG ;PRINT MESSAGE IMMEDIATE
PNTMSF
PSIXM ;PRINT SIXBIT'Z MESSAGE IMMEDIATE
PSIXMF
PNTCI ;PRINT CHARACTER IMMEDIATE
PNTCIF
PNTCHR ;PRINT LOWER 7 BITS OF AC0 AS ASCII CHAR
PNTCHF
PNT1 ;PRINT ONE OCTAL DIGIT
PNT1F
PNT2 ;PRINT TWO OCTAL DIGITS
PNT2F
PNT3 ;PRINT THREE OCTAL DIGITS
PNT3F
PNT4 ;PRINT FOUR OCTAL DIGITS
PNT4F
PNT5 ;PRINT FIVE OCTAL DIGITS
PNT5F
PNT6 ;PRINT SIX OCTAL DIGITS
PNT6F
PNT7 ;PRINT SEVEN OCTAL DIGITS
PNT7F
PNT11 ;PRINT 11(8) OCTAL DIGITS
PNT11F
PNTADR ;PRINT 22 BITS AS ADDRESS
PNTADF
PNTOCT ;PRINT FULL WORD OCTAL
PNTOTF
PNTHW ;PRINT OCTAL HALF WORDS, 6 SP 6
PNTHWF
PNTOCS ;PRINT OCTAL, SUPPRESS LEADING 0'S
PNTOCF
PNTDEC ;PRINT DECIMAL, SUPRESS LEADING 0'S
PNTDCF
PNTDS ;PRINT DECIMAL, SPACES FOR LEADING 0'S
PNTDSF
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 25 SEQ 0026
6.0 SUBROUTINE CALLS, REGISTERS, ETC. (CON'T)
---------------------------------
6.1 SUBROUTINE CALLS (CON'T)
----------------
PNTSIX ;PRINT SIXBIT WORD
PNTSXF
PNTCW ;PRINT DF10 CONTROL WORD
PNTCWF
PCRL ;PRINT CR/LF
PCRLF
PCRL2 ;PRINT CR/LF TWICE
PCRL2F
PSP ;PRINT SPACE
PSPF
PBELL ;PRINT BELL
PFORCE ;PRINT FORCE, CONTROL O OVERRIDE
PNTNM ;PRINT PROGRAM NAME IF NOT STAND-ALONE
DROPDV ;CLOSE LOGICAL FILE, USER MODE
PNTMGN ;KI10 - PRINT MARGIN VALUE
MAPMEM ;MAP MEMORY
MEMZRO ;ZERO MEMORY
MAPADR ;VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
MEMSEG ;SETUP MEMORY SEGMENT
MAPCNK ;MAP MEMORY CHUNK
MAPSET ;SETUP PAGE MAP (KL/KI)
MAPPNT ;PRINT MEMORY MAP
MODPCU ;CHANGE DEVICE CODES, OPERATOR
MODPCP ;CHANGE DEVICE CODES, PROGRAM
CLOKOP ;KL10 POWER LINE CLOCK CONTROL
MTROP ;KL10 DK20 METER CLOCK CONTROL
CINVAL ;KL10 CACHE INVALIDATE
CFLUSH ;KL10 CACHE FLUSH
CWRTBI ;KL10 WRITE-BACK & CACHE INVALIDATE
FSELECT ;"DIAMON" FILE SELECTION
FREAD ;"DIAMON" FILE READ - ASCII DATA
FRD36 ;"DIAMON" FILE READ - 36 BIT DATA
FRD8 ;"DIAMON" FILE READ - 8 BIT DATA
ENDUUO ;END OF PROGRAM PASS
EOPUUO ;END OF PROGRAM
MAINDEC-10-DDQDA.TXT (SUBRTN)
6.2 CONTROL REGISTERS, WORDS PAGE 26 SEQ 0027
------------------------
USER = USER/EXEC MODE FLAG, 0 = EXEC MODE
-1 = USER MODE
KLFLG = PROCESSOR TYPE FLAG, 0 = KA10 OR KI10
-1 = KL10
KAIFLG = PROCESSOR TYPE FLAG, 0 = KA10
-1 = KI10
CONSW = CONSOLE SWITCH SETTINGS; CONSOLE SWITCHES IN
EXEC/NON-TTY USER MODE, TYPED IN SWITCHES IN
TTY SWITCH INPUT USER MODE.
PDISF = PRINT DISABLED FLAG, INITIALLY SET TO 0,
1 = EXCEEDED ALLOWED PRINTOUTS
PNTENB = PRINT ENABLE, INITIALLY SET TO -5000, INCREMENTED
BY EACH CR PRINTED, WHEN 0 DISABLES NORMAL PRINTOUTS.
PNTSPC = PRINT SPACE CONTROL, 0 = DON'T PRINT A SPACE
FOLLOWING OCTAL PRINTOUT, 1 = PRINT A SPACE
FOLLOWING AN OCTAL PRINTOUT.
PNTFLG = PRINT FLAG, SET TO -1 WHILE IN PRINT ROUTINE.
ZERO (0) OTHERWISE.
PNTINH = EXEC TTY ALLOW ^O FEATURE, 0 = ALLOW
-1 = INHIBIT PRINT INPUT TTY CHECKS
TTYFIL = EXEC TTY FILLERS FLAG, INITIALLY SET TO 0 TO ALLOW
FILLERS. IF -1 INHIBITS FILLERS FOR CR & LF.
TTYSPD = EXEC TTY BAUD RATE EXEC FILLERS
0 = 110 BAUD NONE
1 = 150 BAUD NONE
2 = 300 BAUD CR = 9 LF = 0
3 = 600 BAUD CR = 1 LF = 1
4 = 1200 BAUD CR = 2 LF = 2
5 = 2400 BAUD CR = 4 LF = 4
USRLFF = USER MODE FILLERS FOR LF'S
USRCRF = USER MODE FILLERS FOR CR'S
NORMAL DEFAULT IS 0, NO FILLERS
FOR FILLERS, SET TO NUMBER OF FILLERS DESIRED.
LF'S CR'S
110 BAUD 0 0
150 BAUD 0 0
300 BAUD 0 9
600 BAUD 1 1
1200 BAUD 2 2
2400 BAUD 4 4
MAINDEC-10-DDQDA.TXT (SUBRTN)
6.2 CONTROL REGISTERS, WORDS (CON'T) PAGE 27 SEQ 0028
------------------------
TTNBRF = TELETYPE NUMBER INPUT DIGIT TYPED FLAG.
0 = TERMINATOR TYPED ONLY
-1 = VALID DIGIT TYPED
OPTIME = TELETYPE TYPE-IN WAIT TIME, EXEC MODE, INITIALIZED
AS NUMBER OF SECONDS OF WAIT TIME, 180 SEC.
CNTLC = ADDRESS USED BY "CONTROL C" TYPEIN DURING
TTY INPUT OR PRINT OUTPUT (EXEC MODE).
ALTMGO = ADDRESS USED BY "ALT-MODE" TYPEIN DURING
PRINT OUTPUT (EXEC MODE) (ALTGO DEFINED).
$CRLF = EXEC TTY FREE CRLF FLAG, 0 = FREE CRLF AFTER 72 CHARS
-1 = INHIBIT FREE CRLF
$TABF = EXEC TTY TAB CONVERSION FLAG, 0 = CONVERT TO SPACES
-1 = INHIBIT
$FFF = EXEC TTY FORM FEED CONVERSION FLAG, 0 = CONVERT TO 8 LF'S
-1 = INHIBIT
$VTF = EXEC TTY VERTICAL TAB CONV FLAG, 0 = CONVERT TO 4 LF'S
-1 = INHIBIT
MAPNEW = MEMORY MAPPING CONTROL FLAG
0 = DIRECT ADDRESSING ONLY
-1 = 4096K KL10/KI10 PAGED OPERATIONS
FLAG MUST BE SET TO -1 BEFORE "PGMINT" TO GET
4096K KI10 MAPPING. FLAG WILL BE ZERO'D IF DIRECT
ADDRESSING ONLY CAN TAKE PLACE.
MEMLOW = LOWEST USABLE ADDRESS, EVEN BREAK ABOVE JOBFF
MEMTOT = TOTAL SIZE OF MEMORY IN K (1024.)
MEMSIZ = TABLE OF MEMORY SEGMENT POINTERS
DF22F = DF10 CONTROL FLAG, SET/CLEARED BY USER
0 = 18 BIT DF10
-1 = 22 BIT DF10
A PUSH DOWN LIST IS PROVIDED OF 200(8) WORDS.
PLIST = PUSH DOWN LIST POINTER WORD; PUSH AC (P) SET TO
PLIST-PLISTE,PLIST.
PLISTS = PUSH DOWN LIST STORAGE
PLISTE = SIGNIFIES END OF PUSH DOWN LIST.
MAINDEC-10-DDQDA.TXT (SUBRTN)
6.3 SUBROUTINE MISC. PAGE 28 SEQ 0029
----------------
ALL BASIC SUBROUTINES (SWITCH, TTI, PNT, ETC) EITHER ARE
ENTERED WITH THE REQUIRED ARGUMENTS IN AC0 OR EXITED WITH THE
REQUIRED RESULTS IN AC0. ALL OTHER AC'S ARE MAINTAINED
AS THEY WERE BEFORE THE SUBROUTINE.
THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
MOVEI NAME
PNTA ;OR PNTAF
CRLF, CRLF2, COMMA, PERIOD, SPACE, TAB, HYPEN(-), MINUS(-),
AST(*), ATSIN(@), LFP(LEFT PARAN), RTP(RIGHT PARAN),
PLUS(+), BELL, QUEST(?), SLASH(/), DOLLAR($).
6.4 SUBROUTINE FATAL HALTS
----------------------
THE FOLLOWING FATAL HALT ADDRESSES ARE USED TO REPORT TOTAL
INOPERATION OF THE PDP-10 PROCESSOR. IF ANY OF THESE HALTS
HAPPEN YOU SHOULD THEN RUN MORE BASIC DIAGNOSTICS THAT DO NOT
REQUIRE THE SUBROUTINE PROGRAM.
ADDRESS TAG REASON
------- --- ------
1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
1011 PLERR ;FATAL PUSH LIST POINTER ERROR
1012 PLERR1 ;INITIAL PUSH LIST POINTER INCORRECT
1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
1016 CPIERR ;CPU INITIALIZATION ERROR
1017 EOPERR ;END OF PROGRAM ERROR
1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
7.0 DIAGNOSTIC ERROR HANDLER
THE PDP-10 DIAGNOSTIC ERROR UUO HANDLER IS DESIGNED AS A
DIAGNOSTIC PROGRAM SUBROUTINE CAPABLE OF REPORTING A
STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
INFORMATION. THE ERROR HANDLER ALSO INTERPRETS AND
CONTROLS TEST SWITCHES SUCH AS TYPEOUT SUPPRESSION,
CONTINUE/HALT OR LOOP ON ERROR, AND BELL ON ERROR.
TO PROVIDE PROGRAM COMPATABILITY, THE GIVEN FORMATS OF
ERROR, ERLOOP AND REPTUO SHOULD BE USED.
THIS WILL REDUCE THE AMOUNT OF SOURCE CODING REQUIRED AND
PROVIDE A STANDARDIZED FORMAT.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 29 SEQ 0030
7.1 GENERAL ERROR CALL FORMAT
THE GENERAL ERROR CALL FORMAT SPECIFIES UP TO SEVEN ITEMS
CONCERNING A TEST FAILURE.
THEY ARE:
1) NAME OF THE MAJOR TEST SEQUENCE BEING EXECUTED
2) NAME OF THE FUNCTION BEING TESTED
3) ADDRESS OF THE CORRECT TEST DATA RESULTS.
4) ADDRESS OF THE ACTUAL TEST DATA RESULTS
5) DIAGNOSTIC COMMENT CONCERNING THE TEST FAILURE.
6) ADDITIONAL ERROR PRINT ROUTINE
7) ADDRESS TO TRANSFER TO ON ERROR LOOP
THE INSTRUCTION AND CODE SEQUENCE SPECIFYING THESE SEVEN
ITEMS IS EXPLAINED BELOW:
ERUUO X,LITADR ;LINE 1, ERROR CALL
LITADR: XWD T,F ;LINE 2, TITLE AND FUNCTION
XWD C,A ;LINE 3, ADDR'S OF CORRECT AND ACTUAL TEST DATA
XWD D,PNT ;LINE 4, DIAGNOSTIC COMMENT & ADDITIONAL PRINT ROUTINE
ERLOOP ADR ;LINE 5, ERROR LOOP CONTROL
LINE 1: TRANSFERS TO THE ERROR HANDLER WITH X
SPECIFYING THE FORMAT OF THE OCTAL TEST DATA:
X=1 TYPE 1 DIGIT (RIGHTMOST OCTAL DIGIT)
X=2 TYPE 2 DIGITS
THRU
X=12 TYPE 10 DIGITS
X=13 TYPE 12 DIGITS AS 6 SPACE 6
X=14 TYPE 12 DIGITS (NO SPACE)
X=0 SAME AS X=14
LINE 2: LEFT HALF OF XWD WILL BE THE ADDRESS OF A
SIXBTZ LITERAL SPECIFYING THE NAME OF THE MAJOR
TEST SEQUENCE BEING EXECUTED.
RIGHT HALF OF XWD WILL BE THE ADDRESS OF A SIXBTZ
LITERAL SPECIFYING THE NAME OF THE FUNCTION BEING
TESTED.
MAINDEC-10-DDQDA.TXT (SUBRTN)
(7.1 CONT'D) PAGE 30 SEQ 0031
LINE 3: LEFT HALF OF XWD SPECIFIES THE ADDRESS OF THE
CORRECT TEST DATA.
RIGHT HALF OF XWD SPECIFIES THE ADDRESS OF THE ACTUAL
TEST DATA.
LINE 4: LEFT HALF OF XWD WILL BE THE ADDRESS OF A SIXBTZ LITERAL
CONTAINING THE DESIRED DIAGNOSTIC COMMENT.
RIGHT HALF OF XWD WILL BE THE ADDRESS OF AN ADDITIONAL
ERROR PRINT ROUTINE.
LINE 5: TRANSFERS TO ERROR LOOP ROUTINE. TRANSFERS TO ADR FOR
SCOPE LOOP, CONTINUES IN-LINE IF LOOPING NOT DESIRED.
THE TYPEOUT RESULTING FROM THE GENERAL ERROR CALL FORMAT
(ASSUMING X=13) IS:
TEST PASS COUNT = #
PC=XXXXXX
ERROR IN TITLE-FUNCTION
CORRECT: XXXXXX XXXXXX
ACTUAL: YYYYYY YYYYYY
DISCREP: ZZZZZZ ZZZZZZ
DIAGNOSTIC COMMENT
ADDITIONAL COMMENT
PC IS THE ABSOLUTE ADDRESS OF THE ERROR CALL INSTRUCTION.
DISCREP IS THE OCTAL DISCREPANCY BETWEEN THE CORRECT AND ACTUAL
TEST DATA. (DISCREP IS THE XOR OF C AND A).
A ZERO ENTRY FOR ANY ITEM IN THE GENERAL ERROR CALL FORMAT WILL
SUPPRESS THE CORRESPONDING ITEM FROM TYPEOUT. THIS REQUIRES
THAT TEST DATA CAN NOT BE REPORTED FROM AC0. THE DATA DISCREP-
ANCY WILL BE TYPED ONLY IF BOTH CORRECT AND ACTUAL TEST DATA IS
SPECIFIED.
THE TITLE, FUNCTION, AND DIAGNOSTIC COMMENT PORTION OF THE
ERROR TYPEOUT MAY BE INHIBITED BY SETTING THE 'TXTINH'
SWITCH. THIS ALLOWS FOR SHORTER PRINTOUTS ON REPETITIVE
FAILURES.
THE TEST PASS COUNT IS ONLY PRINTED ON ERRORS WHICH
OCCUR WHEN THE PASS COUNTER IS NON-ZERO.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 31 SEQ 0032
7.2 ERROR CALL FORMAT
TO REDUCE THE AMOUNT OF SOURCE CODE REQUIRED TO GENERATE THE GENERAL
ERROR CALL FORMAT, A MACRO CALL IS DEFINED WHICH ENABLES THE ITEMS
TO BE SPECIFIED IN A CONDENSED FORMAT. THIS SECTION EXPLAINS THE
USE OF THE MACRO CALL THRU AN EXAMPLE FOLLOWED BY EXPLANATION.
;EXAMPLE OF ERROR CALL MACRO FORMAT
T= SIXBTZ <CHAN TERM TEST>
C=10
A=CHNWRD+1
CHNTST: MOVE [XWD -1,BUFF-1]
MOVEM CHNWRD ;SET UP CW TO TRANSFER ONE WORD.
SETZM CHNWRD+1 ;TERMINATE CHANNEL COMMAND LIST.
MOVE C,[XWD 0,BUFF+1]
DATAO X,Y ;INTIATE TRANSFER
CONSO X,DONE ;SKIP IF TRANSFER COMPLETE
JUMPA .-1
CAME C,CHNWRD+1 ;SKIP IF O.K.
MACROA: ERROR (CHNTST,13,C,A,CHAN STOP,CHAN TERM WORD INCORRECT)
REPTUO CHNTST ;REPEAT TEST SECTION
CODE ;CONTINUATION OF PROGRAM
*
*
;END OF EXAMPLE
THE MACRO CALL:
ERROR (CHNTST,13,C,A,CHAN STOP,CHAN TERM WORD INCORRECT)
WILL RESULT IN THE FOLLOWING ERROR REPORT:
::::::::::::::::::::::::::::::::::::::::
TEST PASS COUNT = #
PC=XXXXXX
ERROR IN CHAN TERM TEST-CHAN STOP
CORRECT: XXXXXX XXXXXX
ACTUAL: YYYYYY YYYYYY
DISCREP: ZZZZZZ ZZZZZZ
CHAN TERM WORD INCORRECT
::::::::::::::::::::::::::::::::::::::::
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 32 SEQ 0033
(7.2 CONT'D)
THE SYMBOL T MAY BE REDEFINED AS MANY TIMES AS A NEW TEST
TITLE IS DESIRED.
THE FOLLOWING MAY BE USED TO CONTROL TEST ITERATION AND
LOOP ON ERROR.
ERLOOP S
REPTUO R
S IS THE TAG TO BE JUMPED TO WHEN AN ERROR OCCURS AND THE
SCOPE LOOP SWITCH (LOOPER) IS SET.
R IS THE TAG TO BE JUMPED TO FOR TEST SECTION ITERATION. USEFUL
TO CHECK CRITICAL TIMING, ETC. C(REPTU) = NUMBER OF ITERATIONS.
THE ERROR CALL ARGUMENTS ARE AS FOLLOWS:
ERROR ADR,X,C,A,F,D,ERR
ADR IS THE ADDRESS TO TRANSFER TO FOR ERROR LOOPING
C IS THE ADDRESS CONTAINING THE CORRECT DATA.
A IS THE ADDRESS CONTAINING THE ACTUAL TEST DATA.
TEST DATA MAY RESIDE IN AN AC (OTHER THAN ZERO), OR IN CORE MEMORY.
ENTERING EITHER C OR A AS ZERO DELETES THE CORRESPONDING TYPEOUT.
T MUST BE DEFINED BY THE STATEMENT:
T= SIXBTZ <TEST NAME> WHERE TEST NAME IDENTIFIES THE MAJOR
TEST SEQUENCE BEING EXECUTED.
ERR IS THE ADDRESS OF AN ADDITIONAL ERROR PRINT ROUTINE.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 33 SEQ 0034
7.3 CALLING THE ERROR MACRO
THE FOLLOWING EXAMPLE ILLUSTRATES THE MACRO CALL FORMATS TO
BE USED TO ACHIEVE VARIOUS COMBINATIONS OF TEST FAILURE DATA.
A. FULL ERROR FORMAT (ASSUME T ALREADY DEFINED)
ERROR (ADR,14,C,A,FUNCTION,DIAG. COMMENT)
RESULTING TYPEOUT
TEST PASS COUNT =
PC=
ERROR IN TEST NAME-FUNCTION
CORRECT:
ACTUAL:
DISCREP:
DIAG. COMMENT
B. NO DIAGNOSTIC COMMENT
ERROR (ADR,14,C,A,FUNCTION,)
RESULTING TYPEOUT
TEST PASS COUNT =
PC=
ERROR IN TEST NAME-FUNCTION
CORRECT:
ACTUAL:
DISCREP:
C. NO FUNCTION
ERROR (ADR,13,C,A,,DIAG. COMMENT)
RESULTING TYPEOUT
TEST PASS COUNT =
PC=
ERROR IN TEST NAME-
CORRECT:
ACTUAL:
DISCREP:
DIAG. COMMENT
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 34 SEQ 0035
D. NO FUNCTION, NO DIAGNOSTIC COMMENT
ERROR (ADR,13,C,A,,)
RESULTING TYPEOUT
TEST PASS COUNT =
PC=
ERROR IN TEST NAME-
CORRECT:
ACTUAL:
DISCREP:
E. MULTILINED DIAGNOSTIC COMMENT AND/OR COMMENTS
CONTAINING DELIMITING CODES.
ERROR (ADR,6,C,A,FUNCTION,<DIAG. COMMENT^CONTAINING MULTIPLE LINES,^OR DELIMITING CODES (, OR ; . >)
RESULTING TYPEOUT
TEST PASS COUNT =
PC=
ERROR IN TEST NAME-FUNCTION
CORRECT:
ACTUAL:
DISCREP:
DIAGNOSTIC COMMENT
CONTAINING MULTIPLE LINES,
OR DELIMITING CODES (, OR ; .
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 35 SEQ 0036
7.4 ERROR HANDLER SWITCH CONTROL
THE ERROR HANDLER INTERPRETS SWITCHES 3, 5, 6, 7, 8 AND 10 IN THE
FOLLOWING MANNER.
SWITCH 3: 0 NO FUNCTION
1 BYPASS ERROR REPORT SEQUENCE. TEST
SWITCHES 5,6 & 7.
SWITCH 5: 0 NO FUNCTION
1 RING TTY BELL ON ERROR
SWITCH 6: 0 PROCEED TO NEXT TEST WHEN ERROR IS DETECTED (SET SCOPE TO ZERO).
1 ENTER SCOPE LOOP ON FAILING TEST (SET SCOPE TO -1).
SWITCH 7: 0 NO FUNCTION
1 HALT ON ERROR AFTER REPORTING ERROR (EXEC MODE),
RESUME NORMAL SEQUENCE BY PRESSING 'CONTINUE'.
IN USER MODE, THIS SWITCH CAUSES A CALL AC,EXIT
TO BE EXECUTED. NORMAL TEST SEQUENCE MAY BE RESUMED
BY TYPING .CONT.
SWITCH 8: 0 PRINT ONLY FIRST ERROR WHEN ERRORS OCCUR AT
SAME PC. (PER PASS)
1 PRINT ALL ERRORS, EVEN IF LOOPING AND SAME
ERROR OCCURS.
SWITCH 10: 0 PRINT FULL ERROR MESSAGES.
1 INHIBIT COMMENT PORTION OF ERROR MESSAGES.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 36 SEQ 0037
7.5 ERROR HANDLER BLOCK FLOW
ERUUO X,LITADR***>%ERUUO: (TYPE ERROR REPORT?)
*
*
*
GET <ADDRESS> OF ERROR CALL
GO TO %ERSW1 IF<ADDRESS>=(ERRPC)
IF NOT, TEST SWITCH 3. IF SWITCH 3
IS SET GO TO %ERSW1.
IF NOT, STORE <ADDRESS> IN ERRPC AND
REPORT TEST ERROR DATA.
*
*
*
%ERSW1: (HALT ON ERROR?)
*
*
GO TO %ERSW2 IF DATA SWITCH 7=0
IF EXEC MODE AND SWITCH 7=1, RESTORE
ORIGINAL AC CONTENTS AND EXECUTE
HALT, (PRESS 'CONT' TO CONTINUE FROM ERROR).
IF USER MODE AND SWITCH 7=1, EXECUTE
CALL 1, (EXIT), (TYPE CONT TO CONTINUE
FROM ERROR).
*
*
*
%ERSW2: (SCOPE LOOP ON ERROR?)
IF SWITCH 6=0, SET SCOPE TO ZERO. GO TO
%ERSW3
IF SWITCH 6=1, SET SCOPE TO -1, ADD
ONE TO %ERCNT. IF EXEC MODE, DISPLAY
ERROR PC, ERROR COUNT IN MI LIGHTS. GO TO %ERSW3.
*
*
*
%ERSW3: (RING BELL ON ERROR?)
IF SWITCH 5=0, GO TO %EXCAL
IF SWITCH 5=1, OUTPUT BELL CHAR. GO TO %EXCAL
*
*
*
%EXCAL: (EXIT FROM ERROR CALL)
RESTORE SAVED AC'S
RETURN TO <ADDRESS+1> OF ERROR CALL.
MAINDEC-10-DDQDA.TXT (SUBRTN)
PAGE 37 SEQ 0038
7.6 ERROR HANDLER DIAGNOSTICS
IF THE X ARGUMENT IN THE (ERUUO X,LITADR) IS NOT 0 THRU 14, THE
FOLLOWING MESSAGE IS TYPED AND A HALT (EXIT) IS EXECUTED.
FATAL PROGRAM ERROR AT ######
(###### POINTS TO ERROR HANDLER)
PROGRAM EXECUTION SHOULD NOT BE CONTINUED UNTIL PROBLEM
HAS BEEN CORRECTED.
8.0 SUBROUTINE PACKAGE INSTRUCTIONS
-------------------------------
8.1 SUBROUTINE PACKAGE DISTRIBUTION
-------------------------------
THE PARAM, FIXED & STOR FILES ARE SUPPLIED AS ASCII SOURCE FILES
WHICH SHOULD BE ASSEMBLED WITH THE MAIN PROGRAM SOURCE FILE.
THE DECSYSTEM10 SUBROUTINE PROGRAM LOAD MODULE IS SUPPLIED
TO BE USED WITH THE DIAGNOSTIC SEGMENT LOAD MODULES
TO PROVIDE RUN TIME SUBROUTINE SUPPORT.
THE SUBROUTINE PACKAGE SHOULD BE USED AS A STANDARD
SUBROUTINE SET AND ANY CORRECTIONS OR IMPROVEMENTS TO IT
SHOULD BE CLEARED WITH THE DIGITAL EQUIPMENT CORP. DIAGNOSTIC
ENGINEERING GROUP.
9.0 MISCELLANEOUS
-------------
10.0 SOURCE FILE LISTINGS
--------------------
DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM
MAINDEC-10-DDQDA SEQ 0039
VERSION 0.14
MARCH 23,1978
HISTORY:
VERSION 0.14 DIVIDES THE SUBROUTINE PACKAGE INTO SEPARATE USER AND
EXEC MODE FILES. EXEC MODE IS "SUBRTN" AND USER MODE IS "SUBUSR".
THE USER MODE VERSION IS JSYS'D TO RUN APPROPRIATELY ON EITHER THE
TOPS-10 OR THE TOPS-20 SYSTEMS WITHOUT USE OF THE COMPATABILITY
PACKAGE.
--------------------
VERSION 0.13
APRIL 27,1977
HISTORY:
VERSION 0.13 CORRECTS A PROBLEM WITH "PFORCE" PRINTING A "^V" TO THE
LINE PRINTER AND INTO THE LOGICAL DEVICE OUTPUT.
--------------------
--------------------- SEQ 0040
VERSION 0.12
FEBRUARY 16,1977
HISTORY:
REV 0.12 TAKES OUT CHECK FOR "PTR" & "PTP" IN MODIFY DEVICE CODE ROUTINE
TO ALLOW DIFFERENT DEVICE CODES TO BE USED FOR THOSE DEVICES.
ADDS "CLRBFI" TO "YESNO" ROUTINE ERROR IN USER MODE.
CORRECTS PROBLEM WITH ERROR PC & PUSH POINTER PRINTING IN "SUBRTN"
INTERRUPT ERROR PRINTING.
CHANGED "ERROR HALT" ROUTINE TO "EXIT 1," IF IN USER MODE INSTEAD
OF HALT IN CASE RUNNING IN USER IOT.
FIXES A PROBLEM WITH 50/60 CYCLE DETERMINATION ON A KI10. WAS
CHECKING THE WRONG BIT IN THE "CONI APR," WORD.
FIXES A PROBLEM WITH "UUO'S" BEING INTERRUPTED AND THE INTERRUPT
ROUTINE PERFORMING ANOTHER UUO, AC0 BEING CLOBBERED.
--------------------
VERSION 0.11
JUNE 3,1976
HISTORY:
REV 0.11 CHANGES USER MODE TTY INPUT TO LINE BUFFERED MODE TO ALLOW
FOR SYSTEM TTY FEATURES, RUBOUT, CONTROL U, CONTROL R.
ALSO CORRECTS A PROBLEM WITH THE SWITCH ROUTINE IF $$TOGGLE SET TO
PREVENT USE OF THE SWITCHES AND SHORTENED SOME MESSAGES TO
PROVIDE CODE ROOM.
----------------
----------------
VERSION 0.10 SEQ 0041
FEBRUARY 26,1976
HISTORY:
REV 0.10 MAKES AN EVOLUTIONARY CHANGE FROM PREVIOUS VERSIONS BECAUSE
OF THE MULTIPLE DTE20 SUPPORT ON KL10'S AND TO TIE TOGETHER THE VERSIONS
OF ALL THE SUPPORT PROGRAMS "KLDCP,SUBRTN,KLDDT,DIAMON,MAGMON".
REV 0.10 ALSO DISASSOCIATES THE DEC VERSION NUMBER FROM THE
KL10 HARDWARE REVISION LEVEL.
REV 0.10 WILL OPERATE ON KL10'S AT REV 7, 7A, 8 AND HOPEFULLY ON ALL
FUTURE REVISIONS.
REV 0.10 CORRECTS PROBLEMS WITH 50HZ METER, $UORTN P LIST CHECKING,
TURNING THE KL10 PDP-11 CLOCK OFF ON END-OF-PROGRAM.
---------------------
VERSION 2.4
JANUARY 5,1976
HISTORY:
VERSION 2.4 ADDS A USER INTERCEPT ROUTINE TO THE ALTMODE SWITCH CALL
ROUTINE. CORRECTS A PROGRAM INITIALIZATION PROBLEM AND ADDS A CHECK
ON THE KL10 APRID CACHE OPTION BIT.
ALSO CORRECTS A KL10 S-BUS ERROR RESET PROBLEM.
-----------------------------
VERSION 1.4
DECEMBER 18,1975
HISTORY:
VERSION 1.4 CORRECTS PROBLEM WITH CHAIN MODE UNDER DIAMON AND
WITH DEMANDING THE SWITCHES FROM THE KL10 ON A START AFTER A ERRHLT.
ALSO FIXES ALTMODE CHECK TO RETURN UPPER CASE CHARS.
ALSO ADDS SAME SWITCH REPORTING ON A PROGRAM RESTART.
-----------------------
VERSION 0.4 SEQ 0042
DECEMBER 2,1975
HISTORY:
VERSION 0.4 CORRECTS PROBLEM IN USER MODE WITH SWITCH SELECTION OF THE
SAME SWITCHES AS USED ON PREVIOUS START.
----------------------------
VERSION 1.3
NOVEMBER 19,1975
HISTORY:
PREVIOUS VERSIONS NOT ACCOUNTED FOR.
VERSION 1.3 ADDS PROCESSING REQUIRED FOR PROGRAMS TO BE ABLE TO
READ 8 BIT PDP-11 FILES. ALSO ADDS REAL TIME USER SWITCH CONTROL TO
THE ALTMODE CHECK ROUTINE WITH A BELL (CONTROL G) TYPED IN TO
REQUEST SWITCH CHANGE.
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 1
SEQ 0043
DOCUMENT
**************
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^
**************
COPYRIGHT 1978
DIGITAL EQUIPMENT CORPORATION
MAYNARD, MASS. 01754
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 2
SEQ 0044
TABLE OF CONTENTS
*******************
24 *SUBRTN* SPECIAL ASSEMBLY PARAMETERS
109 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
144 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
350 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
388 STANDARD PROGRAM ASSIGNMENTS
1059 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
1387 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
1568 *CONTRL* UUO HANDLING SUBROUTINE
1774 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
2086 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
2264 PROCESSOR TYPE DETERMINATION
2344 "DIAMON" FILE SELECTION & READ
2388 PROGRAM HALTS
2447 PROGRAM NAME PRINTER
2514 *SUBRTN* INTERRUPT HANDLING ROUTINES
2968 *SUBRTN* KI10 MARGIN PRINTOUT ROUTINE
3013 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
3076 *SUBRTN* KL10 CACHE ENABLE
3331 *SUBRTN* MEMORY MAPPING ROUTINES
3461 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
3576 *SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP
3614 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 3
SEQ 0045
TABLE OF CONTENTS
*******************
3747 *SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
3789 *SUBRTN* "MEMZRO"
3833 *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
3883 *SUBRTN* PRINT MEMORY MAP
3951 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
4066 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
4254 *SUBRTN* TELETYPE INPUT ROUTINES
4463 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
4511 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
4630 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
4668 *SUBRTN* PRINT SUBROUTINES
5076 *SUBRTN* CHARACTER OUTPUT ROUTINES
5450 *SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES
5528 *STOR* RESERVED STORAGE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 4
SEQ 0046
1 MAINDEC-10-DDQDA (SUBRTN)
17 COPYRIGHT 1974,1975,1976,1977,1978
DIGITAL EQUIPMENT CORPORATION
MARLBORO, MASS.
21 JOHN R. KIRCHOFF
*****************************************************************
24 *SUBRTN* SPECIAL ASSEMBLY PARAMETERS
*****************************************************************
26 ASSEMBLY PARAMETERS
61 A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
65 DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
80 DTE20 DEVICE CODES
89 KL10 EPT COMMUNICATION AREA
*****************************************************************
109 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
*****************************************************************
114 DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
*****************************************************************
144 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
*****************************************************************
147 SPECIAL SUBPROGRAM LINKAGES
158 SPECIAL SUBROUTINE FATAL HALTS
USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
190 SUBROUTINE INITIALIZATION CALL
196 HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
203 TERMINAL INPUT UUO'S
ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
219 TERMINAL OUTPUT UUO'S.
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 5
SEQ 0047
285 SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
CONSERVES CORE OVER ASCIZ
290 CONSOLE SWITCH INPUT UUO.
READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
USER MODE.
296 CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
302 KL10 ONLY CACHE OPERATION UUO'S
307 END OF PASS/PROGRAM UUOS
310 DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
315 MEMORY MANAGEMENT UUO'S
UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
ADDRESS CONVERSION, ETC...
327 DEVICE CODE MODIFICATION UUO
ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
IOT'S TO A DIFFERENT DEVICE CODE.
337 "DIAMON" FILE SELECTION AND READ UUOS
344 KI10 ONLY UUO FOR PRINTING MARGIN VALUES
*****************************************************************
350 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
*****************************************************************
353 ERROR HANDLER PARAMETERS
362 THE ERROR HANDLER MACROS
364 A MACRO TO REPORT AN ERROR AND LOOP
375 A MACRO TO REPORT AN ERROR AND NOT LOOP
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 6
SEQ 0048
*****************************************************************
388 STANDARD PROGRAM ASSIGNMENTS
*****************************************************************
391 ACCUMULATORS
399 PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
413 PDP-10 STANDARD ADDRESS ASSIGNMENTS
420 JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
438 JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
457 USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
469 USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
478 PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
485 PDP-10 STANDARD APR CONO ASSIGNMENTS
494 PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
503 PDP-10 STANDARD PI CONO ASSIGNMENTS
518 PDP-10 STANDARD PI CONI ASSIGNMENTS
524 PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
538 KA10 APR CHANNEL ASSIGNMENTS
544 KA10 APR CONO ASSIGNMENTS
559 KA10 APR CONI ASSIGNMENTS
574 KA10 PI CONI ASSIGNMENTS
585 KI10 PC CONTROL FLAGS
593 KI10 SPECIAL EXEC MODE FLAGS
600 KI10 APR CHANNEL ASSIGNMENTS
607 KI10 APR CONO ASSIGNMENTS
619 KI10 APR CONI ASSIGNMENTS, RIGHT HALF
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 7
SEQ 0049
631 KI10 APR CONI ASSIGMENTS, LEFT HALF
652 KI10 APR DATAO ASSIGNMENTS
662 KI10 PI CONO ASSIGNMENTS
667 KI10 PI CONI ASSIGNMENTS
681 KI10 PAG CONI ASSIGNMENTS
688 KI10 PAG DATAO ASSIGNMENTS, LEFT HALF
696 KI10 PAG DATAO ASSIGNMENTS, RIGHT HALF
703 KI10 PAG DATAI ASSIGNMENTS
711 KI10 PTR DATAO ASSIGNMENTS
717 KI10 EXEC PAGE MAP PAGE ASSIGNMENTS
726 KI10 USER PAGE MAP PAGE ASSIGNMENTS
752 KL10 CONO APR 000 ASSIGMENTS
808 KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)
821 KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)
843 KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)
853 KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)
861 KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)
871 KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)
877 KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)
884 KL10 BLKI APR 000 ASSIGMENTS
893 KL10 CONO PI 004 ASSIGMENTS
916 KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)
927 KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)
949 KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)
962 KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 8
SEQ 0050
968 KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)
981 KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)
986 KL10 CONO PAG 010 ASSIGMENTS
997 KL10 CONI PAG 010 ASSIGMENTS
1009 KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)
1015 KL10 EXEC PAGE MAP PAGE ASSIGNMENTS
1028 KL10 USER PAGE MAP PAGE ASSIGNMENTS
*****************************************************************
1059 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
*****************************************************************
1064 PROGRAM STARTING ADDRESSES
THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
1097 PROGRAM FIXED PARAMETER AREA
1117 PROGRAM VARIABLE PARAMETER AREA
1137 SPECIAL PROGRAM DISPATCH ADDRESSES
1168 PROCESSOR CONTROL STORAGE
1188 UUO DISPATCH TABLE
1208 MEMORY MANAGMENT STORAGE
1218 PRINT CONTROL STORAGE
1241 THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
MOVEI NAME
PNTA ;OR PNTAF
1272 USER MODE OUTPUT FILE INFORMATION
1281 DISK UPDATE MODE FILE INFORMATION
1289 PUSHDOWN LIST CONTROL INFORMATION
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 9
SEQ 0051
1297 POWER LINE CLOCK FREQUENCY FLAG
1303 KL10 CACHE CONTROL FLAGS
1310 NUMBER INPUT DIGIT FLAG
1316 KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
1322 ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
1330 SPECIAL USERS UUO INTERCEPT INSTRUCTION
1335 USER MODE MONITOR TYPE FLAG
1341 SPECIAL USERS MUUO INTERCEPT INSTRUCTION
1347 SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
1353 "SWITCH" CALL USAGE CONTROL
1359 SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
1366 SM10 (KS-10) PROCESSOR TYPE FLAG
1372 RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
1378 SPECIAL FUTURE EXPANSION ROOM
1382 END OF FIXED STORAGE
*****************************************************************
1387 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
*****************************************************************
1390 SPECIAL SUBPROGRAM LINKAGES
1409 INITIALIZE THE SUBROUTINE PACKAGE
1431 SPECIAL SUBROUTINE ONLY INITIALIZATION
1459 CONTRL* SUBROUTINE PACKAGE INITIALIZATION
1476 INITIALIZE PROCESSOR FLAGS AND PUSH LIST
1499 INITIALIZE SUBROUTINES
1520 -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
AT ASSEMBLY TIME.
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 10
SEQ 0052
1550 $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
0 TO 112K POINTS TO ITSELF
*****************************************************************
1568 *CONTRL* UUO HANDLING SUBROUTINE
*****************************************************************
1571 UUO INITIALIZATION
1582 THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
PROGRAM SEGMENT UUO'S (001 - 033).
AC0 IS SAVED ON THE STACK INITIALLY
1644 KA10 MUUO PROCESS, SETUP AS IF KI/KL10 MUUO
1655 UUO ERROR EXIT ROUTINE
1686 MONITOR UUO ERROR EXIT ROUTINE
1705 DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
*****************************************************************
1774 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
*****************************************************************
1777 THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
INFORMATION. THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
ERROR, AND BELL ON ERROR.
ERROR LOOPING ROUTINE
EITHER CONTINUES IN-LINE
OR TRANSFERS TO E FIELD OF UUO
CHECKS PC OF ERROR TO DETERMINE LOOPING
1821 REPEAT LOOP ROUTINE
EITHER CONTINUES IN-LINE
OR TRANSFERS TO E FIELD OF UUO
1831 COMMON ERROR HANDLER AC SAVE/RESTORE
1845 ERROR REPORTING ROUTINE
1876 BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
1926 GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
1956 AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 11
SEQ 0053
1980 AC1 CONTAINS THE ACTUAL TEST RESULTS.
1998 PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
2029 EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
2039 EXECUTE HALT IF SWITCH ERSTOP SET.
2050 EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
2062 RING TTY BELL IF DING SWITCH IS SET.
2068 RETURN TO ERROR CALL ADDRESS+1
*****************************************************************
2086 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
*****************************************************************
2089 THESE ROUTINES ARE CONCERNED WITH DATA TRANSFER FOR THE KL10 CPU
THEY USE THE DTE-20 AND THE DTE-20 COMMUNICATIONS AREA
2115 DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE
2135 DTE20 COMMUNICATIONS ROUTINE
2158 this routine looks @ ac0 to determine whether to enable/disable
setting clock ticked flag "clockf" IN THE 10 WHEN A POWER LINE
CLOCK CYCLE OCCURS IN THE 11 (EVERY 16.67 MS)
or TO executE an instruction upon occurrence of the clock tick
ac0 = 0 for disable
ac0 = -1 for enable
AC0 = INST FOR ENABLE & EXECUTE INST
AC0 = 0,,X FOR WAIT X THEN CLOCK XCT OF INST IN AC1
AC0 = 0,,1 FOR READ PRESENT CLOCK COUNT SINCE ENABLED
2197 THIS ROUTINE CONTROLS THE DK20 METER FOR NORMAL DIAGNOSTICS
ALLOWS METER TO BE ENABLED/DISABLED AND FOR EVERY METER
PERIOD THE "CLOCKF" FLAG IS SET AND AN OPTIONAL INSTRUCTION
EXECUTED. THE METER PERIOD IS SET FOR 16.67 MS (60 HZ).
OR FOR 20 MS FOR A 50HZ PROCESSOR.
2237 METER INTERRUPT ROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 12
SEQ 0054
*****************************************************************
2264 PROCESSOR TYPE DETERMINATION
*****************************************************************
*****************************************************************
2344 "DIAMON" FILE SELECTION & READ
*****************************************************************
2369 "DIAMON" FILE READ
*****************************************************************
2388 PROGRAM HALTS
*****************************************************************
2390 SUBROUTINE ERROR HALT
2421 FATAL PROGRAM ERROR HALT
*****************************************************************
2447 PROGRAM NAME PRINTER
*****************************************************************
2449 PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE
*****************************************************************
2514 *SUBRTN* INTERRUPT HANDLING ROUTINES
*****************************************************************
2517 PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
2525 INTERRUPT ROUTINE INITIALIZATION
2531 SETUP INTERRUPT VECTORS
2551 USER MODE INITIALIZATION
2559 USER MODE INTERRUPTS
2579 DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES
2602 COMMON INTERRUPT HANDLERS
2610 PRINT CAUSE AND OTHER PERTINENT INFO
2643 COMMON INTERRUPT ROUTINE
2659 RESTORE PROCESSOR ON POWER FAIL RESTART
2696 KA10 INTERRUPT ROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 13
SEQ 0055
2721 KA10 POWER FAIL RESTART
2736 KA10 INTERRUPT INITIALIZATION
2748 KI10 INTERRUPT ROUTINE
2777 KI10/KL10 PUSHDOWN OVERFLOW TRAP ROUTINE
2784 KI10/KL10 PAGE FAIL TRAP ROUTINE
2802 KI10/KL10 TRAP 3 ROUTINE
2810 KI10 POWER FAIL RESTART
2832 KI10 INTERRUPT AND TRAP INITIALIZATION
2861 KI10/KL10 COMMON TRAP & MMUO SETUP
2880 KL10 INTERRUPT ROUTINE
2929 KL10 INTERRUPT AND TRAP INITIALIZATION
*****************************************************************
2968 *SUBRTN* KI10 MARGIN PRINTOUT ROUTINE
*****************************************************************
*****************************************************************
3013 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
*****************************************************************
3015 END OF PASS ROUTINE
3047 END OF PROGRAM ROUTINE
*****************************************************************
3076 *SUBRTN* KL10 CACHE ENABLE
*****************************************************************
3283 KL10 CACHE INVALIDATE
3316 KL10 CACHE FLUSH
3324 KL10 CACHE WRITE-BACK & INVALIDATE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 14
SEQ 0056
*****************************************************************
3331 *SUBRTN* MEMORY MAPPING ROUTINES
*****************************************************************
3334 THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
$MPCNK (MAPCNK) ACTUAL MEMORY CHUNK MAPPER
$MPSET (MAPSET) SETS UP PAGE MAP FOR KI10
$MSEG (MEMSEG) SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
(MAPNEW=-1 FOR PAGED SEGMENTS UP TO 4096K)
(MAPNEW= 0 FOR DIRECT ADDRESSING UP TO 256K)
$MZRO (MEMZRO) ZERO'S THE MAPPED MEMORY
$MPADR (MAPADR) VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
3348 USER MODE MEMORY MAPPING
3358 EXEC MODE MEMORY MAPPING
3390 MEMORY MAPPING CONTROL
MAP 4096K, 256K, 112K OR 256K SPECIAL USER
3420 COMBINE EXISTENT CHUNKS FROM MAPCNK
PUT POINTERS IN MEMSIZ TABLE
*****************************************************************
3461 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
*****************************************************************
3464 STARTS AT HIGHEST POSSIBLE ADDRESS AND MAPS (ASSUMING NON-X-MEM)
UNTIL THE NXM BIT GOES AWAY - THEN MAPS EXISTENT MEMORY
IF NXM BIT COMES BACK IT SWITCHES BACK TO NON-X-MEM MAPPING AND
MAPS THE HOLE IN EXISTENT MEMORY
AC0 HAS BEEN PREVIOUSLY SET UP BY $MPOLD/$MPNEW WITH ADDR LIMITS
3496 NON-X-MEMORY SEGMENT MAPPER
3513 RESTORE OVERALL SYSTEM STATUS AFTER MAPPING
3536 EXISTANT MEMORY MAPPER
3554 SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
TEMPORY STORAGE POINTER IN AC1
VIRTUAL ADDRESS IN AC0
"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 15
SEQ 0057
*****************************************************************
3576 *SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP
*****************************************************************
3579 FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
ARGUMENTS PASSED IN AC0:
NEG - CLEAR PAGE MAP
0-37 - MAP CORRESPONDING 128K SEGMENT
*****************************************************************
3614 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
*****************************************************************
3617 SETS UP TO 128K SEGMENT IN PAGE MAP
ARGUMENTS: 0-37 - MAP CORRESPONDING 128K SEGMENT
GT 37 - MAP USING PHYSICAL ADDRESS
RETURNED IN AC0:
HIGHEST VIRTUAL ADDRESS
BIT 0 SET IF NON-CONSECUTIVE CORE WAS COMBINED
PAGE MAP SET UP SO VIRTUAL ADDRESS 400000 AND UP POINTS
TO MEMORY REQUESTED
RETURNS +2
3646 SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE
3688 EXIT FROM MEMSEG ROUTINE
3711 PHYSICAL CORE ASSIGNMENT
*****************************************************************
3747 *SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
*****************************************************************
3750 ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
USER MODE, 1-37 ALWAYS RETURNS 0
GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
RETURNED IN AC0:
0 - NO MEMORY AVAILABLE
START ADDRESS,,END ADDRESS
RETURNS +1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 16
SEQ 0058
*****************************************************************
3789 *SUBRTN* "MEMZRO"
*****************************************************************
3792 ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
MAPNEW = 0 DIRECT MEMORY ZERO
=-1 4096K KI10 PAGED MEMORY ZERO
*****************************************************************
3833 *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
*****************************************************************
3835 VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE
*****************************************************************
3883 *SUBRTN* PRINT MEMORY MAP
*****************************************************************
*****************************************************************
3951 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
*****************************************************************
3961 ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
3993 CHANGE THE DEVICE CODE LIST
4007 INPUT OLD CODE AND CHECK FOR VALIDITY
4024 GET THE OLD/NEW CODE FROM DEVICE CODE LIST
4052 DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
AC0 = [OLD,,NEW]
*****************************************************************
4066 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
*****************************************************************
4068 INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
USER MODE IF NON-TTY SWITCH CONTROL
4094 SWITCH INITIALIZATION ROUTINE
4121 IF KL10, PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES
4183 SWITCH INITIALIZATION ROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 17
SEQ 0059
*****************************************************************
4254 *SUBRTN* TELETYPE INPUT ROUTINES
*****************************************************************
4257 CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
CHARACTER OR NUMBER RETURNED IN AC0.
CALL SEQUENCE IS AS FOLLOWS:
NAME
NO/ERROR RESPONSE RETURN (+ 1)
NORMAL RESPONSE RETURN (+ 2)
$OPTLK = INPUT ANY CHARACTER
$YESNO = ASK QUESTION, CORRECT RESPONSE Y
$NOYES = ASK QUESTION, CORRECT RESPONSE N
$TPOCT = INPUT UP TO 12 OCTALS
$TPDEC = INPUT UP TO 11 DECIMALS
$TPCNV = INPUT UP TO 9 CONVERT'S
$TTLK = KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
$TALTM = KEYBOARD, ALT-MODE CHECK
$TISIX = INPUT UP TO 6 SIXBIT CHARACTERS
4275 TELETYPE INPUT INITIALIZATION
4282 CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
4299 TELETYPE IMAGE MODE INPUT
PROVIDES UNBUFFERED MODE INPUT
WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
4328 TELETYPE INPUT OPERATOR RESPONSE ROUTINE
4342 TELETYPE ALT-MODE CHECK ROUTINE
4378 TELETYPE INPUT CHARACTER
EXEC/USER MODE TEST & KL10 CPU TEST
4388 TELETYPE INPUT CHARACTER ROUTINE - KA/KI (DIRECT)
4408 TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC
4420 TELETYPE INPUT CHARACTER ROUTINE - KA/KI/KL USER MODE
4426 CHARACTER PROCESSING ROUTINE FOR INPUT
CHARACTER RETURNED IN AC0 IS UPPER CASE
ACTUAL CHARACTER IS IN $TTCHR
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 18
SEQ 0060
*****************************************************************
4463 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
*****************************************************************
4466 ACCEPTS Y OR N
FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
'Y OR N <CR> - ' ASKED UPON ENTRY
*****************************************************************
4511 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
*****************************************************************
4514 ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
NUMBER RETURNED IN AC0.
4535 INPUT AND COMPUTE NUMBER
4558 CHECK FOR PROPER AMOUNT OF CHARACTERS
4583 NUMBER COMPUTING CONSTANTS
4606 CONVERT CONVERSION ROUTINE
*****************************************************************
4630 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
*****************************************************************
4633 INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
SIXBIT WORD RETURNED IN AC0
*****************************************************************
4668 *SUBRTN* PRINT SUBROUTINES
*****************************************************************
4671 $PNTSX PRINT SIXBIT NORMAL
$PTSXF PRINT SIXBIT FORCED
$PNTCW PRINT DF10 CONTROL WORD
$PNTI1 PRINT OCTAL NUMBER
$CHRPN PRINT CHARACTER
$ASCPN PRINT ASCII CHARACTER/LINE
$DECPN PRINT DECIMAL NUMBER
4681 PRINT SUBROUTINE INITIALIZATION
INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE
4714 PRINT SUBROUTINE ENTRY POINT
EXIT VIA $PNTI4 BELOW
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 19
SEQ 0061
4741 PRINT ROUTINE EXIT
4754 PRINT LIMIT WARNING & ALTERNATE EXIT PATH
4774 PRINT ROUTINE SELECTOR
BASED ON "AC FIELD" = 12 - 17
4804 SIXBIT PRINT SUBROUTINE
PRINTS SIXBIT WORD IN AC0
4808 NORMAL PRINTOUT
4821 FORCED PRINTOUT
4834 SIXBIT MESSAGE PRINT ROUTINE
PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
"BACKARROW" (77) SIGNIFIES END OF TEXT
"UPARROW" (76) SIGNIFIES CR/LF
"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
4884 OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
4933 DF10 CONTROL WORD PRINT ROUTINE
PRINTS WORD IN AC0
DF22F = 0, ###### ###### ,18 BIT DF10
-1, ##### ######## ,22 BIT DF10
4980 OCTAL PRINTOUT ROUTINE
PRINTS NUMBER IN AC0
5012 ASCII/CHARACTER PRINTOUT ROUTINE
PRINTS CHAR IN LOWER 7 BITS OF AC0
5022 PRINTS ASCII WHOSE ADDRESS IS IN AC0
5041 DECIMAL PRINTOUT ROUTINE
PRINTS NUMBER IN AC0
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 20
SEQ 0062
*****************************************************************
5076 *SUBRTN* CHARACTER OUTPUT ROUTINES
*****************************************************************
5079 OUTPUT TERMINATION CONTROL ROUTINE
5120 OVERALL CHARACTER OUTPUT CONTROL ROUTINE
5163 USER MODE LF & CR FILLERS
5179 ALT-MODE TRANSFER TO USER ROUTINE
5191 EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE
5235 RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
5240 EXEC MODE LPT OUTPUT
5263 TELETYPE TABS CONVERSION
5277 TELETYPE FF & VT CONVERSION
5289 EXEC MODE CHARACTER OUTPUT
5295 KA/KI EXEC MODE TELETYPE OUTPUT ROUTINE (DIRECT)
5330 KL10 EXEC MODE TTY OUTPUT
5338 CONSOLE TTY FILLER ROUTINE
5368 EXEC MODE CONSOLE TTY BAUD RATE DETERMINATION
5419 USER MODE CHARACTER OUTPUT
5441 USER MODE LOGICAL DEVICE OUTPUT
*****************************************************************
5450 *SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES
*****************************************************************
5453 OUTPUT TO LOGICAL DEVICE
5466 LOGICAL DEVICE INITIALIZATION
PHY DEV ASSIGNED AT RUN TIME
5500 USER MODE CLOSE FILE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:24:39 PAGE 21
SEQ 0063
*****************************************************************
5528 *STOR* RESERVED STORAGE
*****************************************************************
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 1
SEQ 0064
DOCUMENT
**************
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^
**************
COPYRIGHT 1978
DIGITAL EQUIPMENT CORPORATION
MAYNARD, MASS. 01754
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 2
SEQ 0065
TABLE OF CONTENTS
*******************
26 *SUBUSR SPECIAL ASSEMBLY PARAMETERS
72 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
107 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
313 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
351 STANDARD PROGRAM ASSIGNMENTS
500 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
828 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
998 *CONTRL* UUO HANDLING SUBROUTINE
1184 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
1481 PROCESSOR TYPE DETERMINATION
1517 "DIAMON" FILE SELECTION & READ
1561 PROGRAM HALTS
1616 PROGRAM NAME PRINTER
1661 *SUBRTN* INTERRUPT HANDLING ROUTINES
1871 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
1904 *SUBRTN* MEMORY MANAGMENT ROUTINES
2099 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
2214 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
2438 *SUBRTN* TELETYPE INPUT ROUTINES
2615 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
2662 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
2781 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 3
SEQ 0066
TABLE OF CONTENTS
*******************
2819 *SUBRTN* PRINT SUBROUTINES
3239 *SUBRTN* CHARACTER OUTPUT ROUTINES
3534 *STOR* RESERVED STORAGE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 4
SEQ 0067
1 MAINDEC-10-DDQDA (SUBUSR)
19 COPYRIGHT 1977,1978
DIGITAL EQUIPMENT CORPORATION
MARLBORO, MASS.
23 JOHN R. KIRCHOFF
*****************************************************************
26 *SUBUSR SPECIAL ASSEMBLY PARAMETERS
*****************************************************************
28 ASSEMBLY PARAMETERS
58 A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
63 DEFINITIONS USED BY THE USER SUBROUTINE PACKAGE
*****************************************************************
72 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
*****************************************************************
77 DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
*****************************************************************
107 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
*****************************************************************
110 SPECIAL SUBPROGRAM LINKAGES
121 SPECIAL SUBROUTINE FATAL HALTS
USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
153 SUBROUTINE INITIALIZATION CALL
159 HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
166 TERMINAL INPUT UUO'S
ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
182 TERMINAL OUTPUT UUO'S.
248 SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
CONSERVES CORE OVER ASCIZ
253 CONSOLE SWITCH INPUT UUO.
READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
USER MODE.
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 5
SEQ 0068
259 CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
265 KL10 ONLY CACHE OPERATION UUO'S
270 END OF PASS/PROGRAM UUOS
273 DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
278 MEMORY MANAGEMENT UUO'S
UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
ADDRESS CONVERSION, ETC...
290 DEVICE CODE MODIFICATION UUO
ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
IOT'S TO A DIFFERENT DEVICE CODE.
300 "DIAMON" FILE SELECTION AND READ UUOS
307 KI10 ONLY UUO FOR PRINTING MARGIN VALUES
*****************************************************************
313 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
*****************************************************************
316 ERROR HANDLER PARAMETERS
325 THE ERROR HANDLER MACROS
327 A MACRO TO REPORT AN ERROR AND LOOP
338 A MACRO TO REPORT AN ERROR AND NOT LOOP
*****************************************************************
351 STANDARD PROGRAM ASSIGNMENTS
*****************************************************************
354 ACCUMULATORS
362 PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
376 PDP-10 STANDARD ADDRESS ASSIGNMENTS
383 JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
401 JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
420 USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 6
SEQ 0069
432 USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
441 PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
448 PDP-10 STANDARD APR CONO ASSIGNMENTS
457 PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
466 PDP-10 STANDARD PI CONO ASSIGNMENTS
481 PDP-10 STANDARD PI CONI ASSIGNMENTS
487 PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
*****************************************************************
500 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
*****************************************************************
505 PROGRAM STARTING ADDRESSES
THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
538 PROGRAM FIXED PARAMETER AREA
558 PROGRAM VARIABLE PARAMETER AREA
578 SPECIAL PROGRAM DISPATCH ADDRESSES
609 PROCESSOR CONTROL STORAGE
629 UUO DISPATCH TABLE
649 MEMORY MANAGMENT STORAGE
659 PRINT CONTROL STORAGE
682 THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
MOVEI NAME
PNTA ;OR PNTAF
713 USER MODE OUTPUT FILE INFORMATION
722 DISK UPDATE MODE FILE INFORMATION
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 7
SEQ 0070
730 PUSHDOWN LIST CONTROL INFORMATION
738 POWER LINE CLOCK FREQUENCY FLAG
744 KL10 CACHE CONTROL FLAGS
751 NUMBER INPUT DIGIT FLAG
757 KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
763 ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
771 SPECIAL USERS UUO INTERCEPT INSTRUCTION
776 USER MODE MONITOR TYPE FLAG
782 SPECIAL USERS MUUO INTERCEPT INSTRUCTION
788 SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
794 "SWITCH" CALL USAGE CONTROL
800 SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
807 SM10 (KS-10) PROCESSOR TYPE FLAG
813 RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
819 SPECIAL FUTURE EXPANSION ROOM
823 END OF FIXED STORAGE
*****************************************************************
828 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
*****************************************************************
831 SPECIAL SUBPROGRAM LINKAGES
850 INITIALIZE THE SUBROUTINE PACKAGE
872 SPECIAL SUBROUTINE ONLY INITIALIZATION
902 CONTRL* SUBROUTINE PACKAGE INITIALIZATION
917 INITIALIZE PROCESSOR FLAGS AND PUSH LIST
942 INITIALIZE SUBROUTINES
958 -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
AT ASSEMBLY TIME.
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 8
SEQ 0071
*****************************************************************
998 *CONTRL* UUO HANDLING SUBROUTINE
*****************************************************************
1001 UUO INITIALIZATION
1012 THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
PROGRAM SEGMENT UUO'S (001 - 033).
AC0 IS SAVED ON THE STACK INITIALLY
1069 UUO ERROR EXIT ROUTINE
1100 DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
*****************************************************************
1184 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
*****************************************************************
1187 THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
INFORMATION. THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
ERROR, AND BELL ON ERROR.
ERROR LOOPING ROUTINE
EITHER CONTINUES IN-LINE
OR TRANSFERS TO E FIELD OF UUO
CHECKS PC OF ERROR TO DETERMINE LOOPING
1231 REPEAT LOOP ROUTINE
EITHER CONTINUES IN-LINE
OR TRANSFERS TO E FIELD OF UUO
1241 COMMON ERROR HANDLER AC SAVE/RESTORE
1255 ERROR REPORTING ROUTINE
1281 BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
1331 GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
1361 AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
1385 AC1 CONTAINS THE ACTUAL TEST RESULTS.
1403 PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
1434 EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 9
SEQ 0072
1444 EXECUTE HALT IF SWITCH ERSTOP SET.
1455 EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
1462 RING TTY BELL IF DING SWITCH IS SET.
1468 RETURN TO ERROR CALL ADDRESS+1
*****************************************************************
1481 PROCESSOR TYPE DETERMINATION
*****************************************************************
*****************************************************************
1517 "DIAMON" FILE SELECTION & READ
*****************************************************************
1542 "DIAMON" FILE READ
*****************************************************************
1561 PROGRAM HALTS
*****************************************************************
1563 SUBROUTINE ERROR HALT
1593 FATAL PROGRAM ERROR HALT
*****************************************************************
1616 PROGRAM NAME PRINTER
*****************************************************************
1618 PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE
*****************************************************************
1661 *SUBRTN* INTERRUPT HANDLING ROUTINES
*****************************************************************
1664 PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
1671 INTERRUPT ROUTINE INITIALIZATION
1692 INTERRUPT TABLES
1742 TOPS20 CONTROL G ROUTINE
1771 TOPS20 INTERRUPT PROCESSOR
1818 TOPS10 USER INTERRUPT HANDLER
1849 COMMON INTERRUPT HANDLERS
PRINT CAUSE AND OTHER PERTINENT INFO
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 10
SEQ 0073
*****************************************************************
1871 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
*****************************************************************
1873 END OF PASS ROUTINE
1895 END OF PROGRAM ROUTINE
*****************************************************************
1904 *SUBRTN* MEMORY MANAGMENT ROUTINES
*****************************************************************
1907 THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
$MPCNK (MAPCNK) ACTUAL MEMORY CHUNK MAPPER
$MPSET (MAPSET) SETS UP PAGE MAP FOR KI10
$MSEG (MEMSEG) SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
$MZRO (MEMZRO) ZERO'S THE MAPPED MEMORY
$MPADR (MAPADR) VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
1924 MEMSEG, ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
USER MODE, 1-37 ALWAYS RETURNS 0
GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
RETURNED IN AC0:
0 - NO MEMORY AVAILABLE
START ADDRESS,,END ADDRESS
RETURNS +1
1953 PHYSICAL CORE ASSIGNMENT
1989 MEMZRO, ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
MAPNEW = 0 DIRECT MEMORY ZERO
2014 MAPADR, VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE
2058 MAPPNT, PRINT MEMORY MAP
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 11
SEQ 0074
*****************************************************************
2099 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
*****************************************************************
2110 ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
2142 CHANGE THE DEVICE CODE LIST
2156 INPUT OLD CODE AND CHECK FOR VALIDITY
2173 GET THE OLD/NEW CODE FROM DEVICE CODE LIST
2200 DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
AC0 = [OLD,,NEW]
*****************************************************************
2214 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
*****************************************************************
2216 INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
USER MODE IF NON-TTY SWITCH CONTROL
2239 SWITCH INITIALIZATION ROUTINE
2263 SWITCH INITIALIZATION ROUTINE
2343 PROMPT FOR SWITCHES
2391 PROCESS PROMPT
CONTROL Z, ENDS PROMPTING
UPARROW, BACK UP ONE PROMPT
Y, SET SWITCH
N, DON'T SET SWITCH
CR, DON'T SET SWITCH
*****************************************************************
2438 *SUBRTN* TELETYPE INPUT ROUTINES
*****************************************************************
2441 CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
CHARACTER OR NUMBER RETURNED IN AC0.
CALL SEQUENCE IS AS FOLLOWS:
NAME
NO/ERROR RESPONSE RETURN (+ 1)
NORMAL RESPONSE RETURN (+ 2)
$OPTLK = INPUT ANY CHARACTER
$YESNO = ASK QUESTION, CORRECT RESPONSE Y
$NOYES = ASK QUESTION, CORRECT RESPONSE N
$TPOCT = INPUT UP TO 12 OCTALS
$TPDEC = INPUT UP TO 11 DECIMALS
$TPCNV = INPUT UP TO 9 CONVERT'S
$TTLK = KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
$TALTM = KEYBOARD, ALT-MODE CHECK
$TISIX = INPUT UP TO 6 SIXBIT CHARACTERS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 12
SEQ 0075
2458 TELETYPE INPUT INITIALIZATION
2464 CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
2490 TELETYPE IMAGE MODE INPUT
PROVIDES UNBUFFERED MODE INPUT
WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
2517 TELETYPE ALT-MODE CHECK ROUTINE
2540 TELETYPE INPUT CHARACTER
2580 CHARACTER PROCESSING ROUTINE FOR INPUT
CHARACTER RETURNED IN AC0 IS UPPER CASE
ACTUAL CHARACTER IS IN $TTCHR
*****************************************************************
2615 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
*****************************************************************
2618 ACCEPTS Y OR N
FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
'Y OR N <CR> - ' ASKED UPON ENTRY
*****************************************************************
2662 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
*****************************************************************
2665 ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
NUMBER RETURNED IN AC0.
2686 INPUT AND COMPUTE NUMBER
2709 CHECK FOR PROPER AMOUNT OF CHARACTERS
2734 NUMBER COMPUTING CONSTANTS
2757 CONVERT CONVERSION ROUTINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 13
SEQ 0076
*****************************************************************
2781 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
*****************************************************************
2784 INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
SIXBIT WORD RETURNED IN AC0
*****************************************************************
2819 *SUBRTN* PRINT SUBROUTINES
*****************************************************************
2822 $PNTSX PRINT SIXBIT NORMAL
$PTSXF PRINT SIXBIT FORCED
$PNTCW PRINT DF10 CONTROL WORD
$PNTI1 PRINT OCTAL NUMBER
$CHRPN PRINT CHARACTER
$ASCPN PRINT ASCII CHARACTER/LINE
$DECPN PRINT DECIMAL NUMBER
2832 PRINT SUBROUTINE INITIALIZATION
INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE
2869 PRINT SUBROUTINE ENTRY POINT
EXIT VIA $PNTI4 BELOW
2904 PRINT ROUTINE EXIT
2917 PRINT LIMIT WARNING & ALTERNATE EXIT PATH
2937 PRINT ROUTINE SELECTOR
BASED ON "AC FIELD" = 12 - 17
2967 SIXBIT PRINT SUBROUTINE
PRINTS SIXBIT WORD IN AC0
2971 NORMAL PRINTOUT
2984 FORCED PRINTOUT
2997 SIXBIT MESSAGE PRINT ROUTINE
PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
"BACKARROW" (77) SIGNIFIES END OF TEXT
"UPARROW" (76) SIGNIFIES CR/LF
"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
3047 OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 14
SEQ 0077
3096 DF10 CONTROL WORD PRINT ROUTINE
PRINTS WORD IN AC0
DF22F = 0, ###### ###### ,18 BIT DF10
-1, ##### ######## ,22 BIT DF10
3143 OCTAL PRINTOUT ROUTINE
PRINTS NUMBER IN AC0
3175 ASCII/CHARACTER PRINTOUT ROUTINE
PRINTS CHAR IN LOWER 7 BITS OF AC0
3185 PRINTS ASCII WHOSE ADDRESS IS IN AC0
3204 DECIMAL PRINTOUT ROUTINE
PRINTS NUMBER IN AC0
*****************************************************************
3239 *SUBRTN* CHARACTER OUTPUT ROUTINES
*****************************************************************
3242 OUTPUT TERMINATION CONTROL ROUTINE
3249 OVERALL CHARACTER OUTPUT CONTROL ROUTINE
3276 USER MODE LF & CR FILLERS
3292 RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
3297 USER MODE CHARACTER OUTPUT
3325 USER MODE LOGICAL DEVICE OUTPUT
3334 TOPS-20 TTY OUTPUT
3363 LOGICAL DEVICE OUTPUT ROUTINES
3377 LOGICAL DEVICE INITIALIZATION
PHY DEV ASSIGNED AT RUN TIME
3421 USER MODE CLOSE FILE
3468 TOPS10, LOGICAL DEVICE OUTPUT
3479 $INT10, TOPS10 INITIALIZE LOGICAL OUTPUT
3508 USER MODE CLOSE FILE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^ DECDOC VER 00.24 23-MAR-78 15:27:13 PAGE 15
SEQ 0078
*****************************************************************
3534 *STOR* RESERVED STORAGE
*****************************************************************
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 1
SUBRTT MAC 23-Mar-78 15:07 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0079
1 ;*MAINDEC-10-DDQDA (SUBRTN)
2
3 000014 DECVER=014
4 000000 MCNVER=000
5
6 XLIST
7 LIST
8 LALL
9
10 NAME \MCNVER,\DECVER^
11
12 TITLE SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14^
13
14 000137 LOC 137
15 000137 000000 000014 MCNVER,,DECVER
16
17 ;*COPYRIGHT 1974,1975,1976,1977,1978
18 ;*DIGITAL EQUIPMENT CORPORATION
19 ;*MARLBORO, MASS.
20
21 ;*JOHN R. KIRCHOFF
22
23 NOSYM
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2
SUBRTT MAC 23-Mar-78 15:07 *SUBRTN* SPECIAL ASSEMBLY PARAMETERS SEQ 0080
24 SUBTTL *SUBRTN* SPECIAL ASSEMBLY PARAMETERS
25
26 ;*ASSEMBLY PARAMETERS
27
28 000001 KL10==1
29 000001 KL10P0==1
30 000001 KI10==1
31 000001 KA10==1
32 000001 MEMMAP==1
33 000001 PGMEND==1
34 000001 EXCASB==1
35 000001 USRASB==1
36 000000 DEBUG==00
37 001000 MODDVL==START
38 007573 MODDVU==ENDSLD
39 030000 SADR1=BEGIN
40 030000 SADR2=BEGIN
41 030000 SADR3=BEGIN
42 030000 SADR4=BEGIN
43 030000 SADR5=BEGIN
44 030000 SADR6=BEGIN
45 030000 SADR7=BEGIN
46 030000 SADR8=BEGIN
47 030000 SADR9=BEGIN
48 030000 SADR10=BEGIN
49 030000 SADR11=BEGIN
50
51 123456 123456 PAREA1=123456,,123456
52 000000 PAREA2=0
53 636542 626456 PAREA3=SIXBIT/SUBRTN/
54 645560 000000 PAREA4=SIXBIT/TMP/
55 000000 PAREA5=0
56 000000 PAREA6=0
57 000001 ITERAT=1
58
59 000001 $PAPER==1
60
61 ;*A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
62
63 DEFINE $MDSXB (A,B)<
64 <SIXBIT/A/>!B ;A DEVICE CODE IS B>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 3
SUBRTT MAC 23-Mar-78 15:07 *SUBRTN* SPECIAL ASSEMBLY PARAMETERS SEQ 0081
65 ;*DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
66 S^;*********************************************************************^
67
68 000000 AC0= 0
69 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
70 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS
71 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
72 020007 DIASWS= 20007 ;DIAMON LH SWITCHES
73 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
74 001000 DING10= 1B26 ;10 DOORBELL (FROM THE 11)
75 001000 DNG10C= 1B26 ;10 DOORBELL CLEAR
76
77 000024 MTR= 24 ;METER CODE
78 000020 TIM= 20 ;METER CODE
79
80 ;*DTE20 DEVICE CODES
81 S^;*********************************************************************^
82
83 000200 DTE== 200 ;DTE0
84 000200 DTE0== 200
85 000204 DTE1== 204
86 000210 DTE2== 210
87 000214 DTE3== 214
88
89 ;*KL10 EPT COMMUNICATION AREA
90 S^;*********************************************************************^
91
92 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
93 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
94 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
95 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
96
97 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
98 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
99 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
100 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
101 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
102 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
103 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
104 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE #
105 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
106 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
107 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
108 000457 $DTSWR= 457 ;DTE20 10 SWITCH REGISTER
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 1
PARAM KLM 1-Aug-77 08:33 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0082
109 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
110
111 DEFINE S,<;*********************************************************************>
112
113 S^;*********************************************************************^
114 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
115 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
116 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
117 S^;*********************************************************************^
118
119 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
120 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
121 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
122
123 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
124 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
125 010000 DING== 010000 ;RING BELL ON ERROR
126
127 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
128 002000 ERSTOP==002000 ;HALT ON TEST ERROR
129 001000 PALERS==001000 ;PRINT ALL ERRORS
130
131 000400 RELIAB==000400 ;RELIABILITY MODE
132 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
133 000100 INHPAG==000100 ;INHIBIT PAGING
134
135 000040 MODDVC==000040 ;MODIFY DEVICE CODE
136 000020 INHCSH==000020 ;INHIBIT CACHE
137 000010 OPRSEL==000010 ;OPERATOR SELECTION
138
139 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
140
141 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
142
143 ;SWITCH 17 RESERVED !!!
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0083
144 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
145
146 S^;*********************************************************************^
147 ;*SPECIAL SUBPROGRAM LINKAGES
148 S^;*********************************************************************^
149
150 027772 FSELNK= 27772 ;FILE SELECT LINK
151 027773 FRDLNK= 27773 ;FILE READ LINK
152 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
153 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
154 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
155 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
156
157 S^;*********************************************************************^
158 ;*SPECIAL SUBROUTINE FATAL HALTS
159 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
160 S^;*********************************************************************^
161
162 ;ADDRESS TAG REASON
163 ;---------------------
164
165 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
166 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
167 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
168 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
169 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
170 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
171 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
172 ; 1017 EOPERR ;END OF PROGRAM ERROR
173 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
174
175 S^;*********************************************************************^
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 3
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0084
176 S^;*********************************************************************^
177 ;OPERATOR DEFINITIONS (NON-UUO'S)
178 S^;*********************************************************************^
179
180 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
181 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
182 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
183 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
184 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
185 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
186 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
187 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
188
189 S^;*********************************************************************^
190 ;*SUBROUTINE INITIALIZATION CALL
191 S^;*********************************************************************^
192
193 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
194
195 S^;*********************************************************************^
196 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
197 S^;*********************************************************************^
198
199 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
200 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
201
202 S^;*********************************************************************^
203 ;*TERMINAL INPUT UUO'S
204 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
205 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
206 S^;*********************************************************************^
207
208 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
209 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
210 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
211 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
212 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
213 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
214 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
215 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
216 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
217 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
218 037500 000003 OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 4
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0085
219 ;*TERMINAL OUTPUT UUO'S.
220
221 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
222 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
223 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
224 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
225 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
226 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
227 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
228 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
229 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
230 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
231 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
232 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
233 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
234 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
235 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
236 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
237 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
238 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
239 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
240 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
241 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
242 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
243 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
244 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
245 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
246 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
247 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
248 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
249 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
250 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
251 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
252 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
253 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
254 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
255 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
256 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
257 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
258 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
259 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
260 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
261 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
262 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 5
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0086
263 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
264 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
265 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
266 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
267 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
268 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
269 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
270 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
271 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
272 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
273 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
274 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
275 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
276
277 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
278
279 DEFINE PMSG (ARG),<
280 PSIXM [SIXBIT\ARG'_\]>
281
282 DEFINE PMSGF (ARG),<
283 PSIXMF [SIXBIT\ARG'_\]>
284
285 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
286 ;* CONSERVES CORE OVER ASCIZ
287
288 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
289
290 ;*CONSOLE SWITCH INPUT UUO.
291 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
292 ;* USER MODE.
293
294 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
295
296 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
297 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
298
299 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
300 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
301
302 ;*KL10 ONLY CACHE OPERATION UUO'S
303
304 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
305 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
306 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 6
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0087
307 ;*END OF PASS/PROGRAM UUOS
308
309 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
310 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
311
312 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
313 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
314
315 ;*MEMORY MANAGEMENT UUO'S
316 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
317 ;*ADDRESS CONVERSION, ETC...
318
319 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
320 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
321 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
322 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
323 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
324 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
325 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
326
327 ;*DEVICE CODE MODIFICATION UUO
328 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
329 ;*IOT'S TO A DIFFERENT DEVICE CODE.
330
331 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
332 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
333
334 IFNDEF MODDVL,<MODDVL==BEGIN>
335 IFNDEF MODDVU,<MODDVU==BEGIN>
336
337 ;*"DIAMON" FILE SELECTION AND READ UUOS
338
339 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
340 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
341 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
342 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
343
344 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
345
346 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
347
348 XLIST
349 IFNDEF KLOLD,<LIST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 7
PARAM KLM 1-Aug-77 08:33 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976 SEQ 0088
350 SUBTTL ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
351
352 S^;*********************************************************************^
353 ;*ERROR HANDLER PARAMETERS
354 S^;*********************************************************************^
355
356 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
357 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
358 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
359 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
360 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
361
362 ;*THE ERROR HANDLER MACROS
363
364 ;*A MACRO TO REPORT AN ERROR AND LOOP
365
366 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
367 SALL
368 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
369 CORECT,,ACTUAL
370 [SIXBIT\D'_\],,ERR]
371 XALL
372 ERLOOP ADR ;IF ERROR, LOOP TO ADR
373 >
374
375 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP
376
377 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
378 SALL
379 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
380 CORECT,,ACTUAL
381 [SIXBIT\D'_\],,ERR]
382 XALL>
383
384 >;END OF KLOLD CONDITIONAL
385
386 XLIST
387 IFDEF $PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 8
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0089
388 SUBTTL STANDARD PROGRAM ASSIGNMENTS
389
390 S^;*********************************************************************^
391 ;*ACCUMULATORS
392 S^;*********************************************************************^
393
394 000017 P= 17 ;PUSHDOWN POINTER AC (IF PUSH LIST USED)
395 000015 REPT== 15 ;ERROR HANDLER REPEAT AC
396 000016 REPT1== 16 ; "
397
398 S^;*********************************************************************^
399 ;*PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
400 S^;*********************************************************************^
401
402 400000 AROV== 400000 ;ARITHMETIC OVERFLOW
403 200000 CRY0== 200000 ;CARRY 0
404 100000 CRY1== 100000 ;CARRY 1
405 040000 FOV== 40000 ;FLOATING POINT OVERFLOW
406 020000 BIS== 20000 ;BYTE INTERRUPT
407 010000 USERF== 10000 ;USER MODE
408 004000 EXIOT== 4000 ;USER PRIV I/O
409 000100 FXU== 100 ;FLOATING POINT UNDERFLOW
410 000040 DCK== 40 ;DIVIDE CHECK
411
412 S^;*********************************************************************^
413 ;*PDP-10 STANDARD ADDRESS ASSIGNMENTS
414 S^;*********************************************************************^
415
416 000040 LUUO== 40 ;UUO STORAGE, UUO 1-37
417 000041 LUUOI== 41 ;UUO SERVICE INSTRUCTION
418
419 S^;*********************************************************************^
420 ;*JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
421 S^;*********************************************************************^
422
423 000040 JOBUUO==40
424 000041 JOB41== 41
425 000044 JOBREL==44
426 000074 JOBDDT==74
427 000116 JOBSYM==116
428 000117 JOBUSY==117
429 000120 JOBSA== 120
430 000121 JOBFF== 121
431 000124 JOBREN==124
432 000125 JOBAPR==125
433 000126 JOBCNI==126
434 000127 JOBTPC==127
435 000130 JOBOPC==130
436 000137 JOBVER==137
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 9
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0090
437 S^;*********************************************************************^
438 ;*JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
439 S^;*********************************************************************^
440
441 000040 .JBUUO==40
442 000041 .JB41== 41
443 000044 .JBREL==44
444 000074 .JBDDT==74
445 000116 .JBSYM==116
446 000117 .JBUSY==117
447 000120 .JBSA== 120
448 000121 .JBFF== 121
449 000124 .JBREN==124
450 000125 .JBAPR==125
451 000126 .JBCNI==126
452 000127 .JBTPC==127
453 000130 .JBOPC==130
454 000137 .JBVER==137
455
456 S^;*********************************************************************^
457 ;*USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
458 S^;*********************************************************************^
459
460 200000 PDLOVU==200000 ;PUSHDOWN LIST OVERFLOW
461 020000 MPVU== 20000 ;MEMORY PROTECTION VIOLATION
462 010000 NXMU== 10000 ;NON-X-MEMORY
463 004000 PARU== 4000 ;PARITY ERROR
464 001000 CLKU== 1000 ;CLOCK
465 000100 FOVU== 100 ;FLOATING OVERFLOW
466 000010 AROVU== 10 ;ARITHMETIC OVERFLOW
467
468 S^;*********************************************************************^
469 ;*USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
470 ;*THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
471 ;*USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
472 S^;*********************************************************************^
473
474 000017 $DEVCH==17 ;LOGICAL DEVICE CHANNEL
475 000016 $DVCH1==16 ;LOGICAL DEV UPDATE INPUT CHANNEL
476
477 S^;*********************************************************************^
478 ;*PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
479 S^;*********************************************************************^
480
481 000010 PAG== 010 ;PAGING I/O DEVICE CODE, KI/KL
482
483 000014 CCA== 014 ;CACHE I/O DEVICE CODE, KL10
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 10
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0091
484 S^;*********************************************************************^
485 ;*PDP-10 STANDARD APR CONO ASSIGNMENTS
486 S^;*********************************************************************^
487
488 200000 IOCLR== 200000 ;CLEAR ALL I/O DEVICES
489 004000 CLKDIS==4000 ;DISABLE CLOCK INTERRUPTS
490 002000 CLKENB==2000 ;ENABLE CLOCK INTERRUPTS
491 001000 CLKCLR==1000 ;CLEAR CLOCK FLAG
492
493 S^;*********************************************************************^
494 ;*PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
495 S^;*********************************************************************^
496
497 002000 CLKENB==2000 ;CLOCK INTERRUPT ENABLED
498 001000 CLK== 1000 ;CLOCK FLAG
499 010000 ANXM== 10000 ;KA10, NON-X-MEMORY
500 000100 INXM== 100 ;KI10
501
502 S^;*********************************************************************^
503 ;*PDP-10 STANDARD PI CONO ASSIGNMENTS
504 S^;*********************************************************************^
505
506 400000 PWFCLR==400000 ;CLEAR POWER FAIL FLAG
507 200000 PARCLR==200000 ;CLEAR PARITY ERROR FLAG
508 100000 PARDIS==100000 ;DISABLE PARITY INTERRUPTS
509 040000 PARENB==40000 ;ENABLE PARITY INTERRUPTS
510 010000 PICLR== 10000 ;CLEAR PI SYSTEM
511 004000 REQSET==4000 ;SET PROGRAM PI REQUEST
512 002000 CHNON== 2000 ;TURN ON CHANNEL
513 001000 CHNOFF==1000 ;TURN OFF CHANNEL
514 000400 PIOFF== 400 ;TURN OFF PI SYSTEM
515 000200 PION== 200 ;TURN ON PI SYSTEM
516
517 S^;*********************************************************************^
518 ;*PDP-10 STANDARD PI CONI ASSIGNMENTS
519 S^;*********************************************************************^
520
521 000200 PION== 200 ;PI SYSTEM ON
522
523 S^;*********************************************************************^
524 ;*PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
525 S^;*********************************************************************^
526
527 000100 PICHN1==100 ;PI CHANNEL 1
528 000040 PICHN2==40 ;PI CHANNEL 2
529 000020 PICHN3==20 ;PI CHANNEL 3
530 000010 PICHN4==10 ;PI CHANNEL 4
531 000004 PICHN5==4 ;PI CHANNEL 5
532 000002 PICHN6==2 ;PI CHANNEL 6
533 000001 PICHN7==1 ;PI CHANNEL 7
534 000177 PICHNA==177 ;ALL PI CHANNELS, 1 THRU 7
535 XLIST
536 IFDEF $PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 11
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0092
537 S^;*********************************************************************^
538 ;*KA10 APR CHANNEL ASSIGNMENTS
539 S^;*********************************************************************^
540
541 000001 AAPRC1==1 ;APR INTERRUPT CHANNEL
542
543 S^;*********************************************************************^
544 ;*KA10 APR CONO ASSIGNMENTS
545 S^;*********************************************************************^
546
547 400000 APDCLR==400000 ;CLEAR PUSHDOWN OVERFLOW
548 040000 AABCLR==40000 ;CLEAR ADDRESS BREAK
549 020000 AMPCLR==20000 ;CLEAR MEMORY PROTECTION
550 010000 ANXCLR==10000 ;CLEAR NON-X-MEMORY
551 000400 AFODIS==400 ;DISABLE FLOATING POINT OVERFLOW
552 000200 AFOENB==200 ;ENABLE FLOATING POINT OVERFLOW
553 000100 AFOCLR==100 ;CLEAR FLOATING POINT OVERFLOW
554 000040 AOVDIS==40 ;DISABLE OVERFLOW
555 000020 AOVENB==20 ;ENABLE OVERFLOW
556 000010 AOVCLR==10 ;CLEAR OVERFLOW
557
558 S^;*********************************************************************^
559 ;*KA10 APR CONI ASSIGNMENTS
560 S^;*********************************************************************^
561
562 200000 APDLOV==200000 ;PUSHDOWN OVERFLOW
563 100000 AUSRIO==100000 ;USER I/O
564 040000 AADRBK==40000 ;ADDRESS BREAK
565 020000 AMPV== 20000 ;MEMORY PROTECTION VIOLATION
566 010000 ANXM== 10000 ;NON-EXISTENT MEMORY
567 000200 AFOENB==200 ;FLT PT INTERRUPT ENABLED
568 000100 AFOV== 100 ;FLOATING POINT OVERFLOW
569 000040 ATRPOS==40 ;TRAPS OFFSET
570 000020 AOVENB==20 ;OVERFLOW INTERRUPT ENABLED
571 000010 AOVFLO==10 ;ARITHMETIC OVERFLOW
572
573 S^;*********************************************************************^
574 ;*KA10 PI CONI ASSIGNMENTS
575 S^;*********************************************************************^
576
577 400000 APWRFL==400000 ;POWER FAILURE
578 200000 APARER==200000 ;PARITY ERROR
579 100000 APAREN==100000 ;PARITY INTERRUPT ENABLED
580
581 > ;END CONDITIONAL ON KA10
582 XLIST
583 IFDEF $PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 12
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0093
584 S^;*********************************************************************^
585 ;*KI10 PC CONTROL FLAGS
586 S^;*********************************************************************^
587
588 002000 LIP== 2000 ;LAST INSTRUCTION PUBLIC
589 000400 TN0== 400 ;TN=00, NO TRAP ;TN=01, ARITH TRAP
590 000200 TN1== 200 ;TN=10, PDL OV ;TN=11, TRAP 3
591
592 S^;*********************************************************************^
593 ;*KI10 SPECIAL EXEC MODE FLAGS
594 S^;*********************************************************************^
595
596 400000 UOLIP== 400000 ;UUO OLD L.I.P.
597 004000 UOUSR== 4000 ;UUO OLD USER
598
599 S^;*********************************************************************^
600 ;*KI10 APR CHANNEL ASSIGNMENTS
601 S^;*********************************************************************^
602
603 000001 IAPRC1==1 ;APR CLOCK CHANNEL
604 000010 IAPRE1==10 ;APR ERROR CHANNEL
605
606 S^;*********************************************************************^
607 ;*KI10 APR CONO ASSIGNMENTS
608 S^;*********************************************************************^
609
610 400000 ITMSET==400000 ;SET TIME OUT TIMER
611 100000 ITMDIS==100000 ;DISABLE TIME OUT
612 040000 ITMENB==40000 ;ENABLE TIME OUT
613 020000 IASRTC==20000 ;CLEAR AUTO RESTART
614 010000 IASRTS==10000 ;SET AUTO RESTART
615 000200 IIOPFC==200 ;CLEAR I/O PAGE FAIL
616 000100 INXCLR==100 ;CLEAR NON-X-MEM
617
618 S^;*********************************************************************^
619 ;*KI10 APR CONI ASSIGNMENTS, RIGHT HALF
620 S^;*********************************************************************^
621
622 400000 ITMOUT==400000 ;TIMER TIMED OUT
623 200000 IPARER==200000 ;PARITY ERROR
624 100000 IPAREN==100000 ;PARITY ENABLED
625 040000 ITMOEN==40000 ;TIME OUT ENABLED
626 020000 IPWRFL==20000 ;POWER FAIL
627 010000 IASRTE==10000 ;AUTO RESTART ENABLED
628 000200 IIOPFL==200 ;I/O PAGE FAIL
629 000100 INXM== 100 ;NON-X-MEMORY
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 13
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0094
630 S^;*********************************************************************^
631 ;*KI10 APR CONI ASSIGMENTS, LEFT HALF
632 S^;*********************************************************************^
633
634 200000 IMLAPD==200000 ;MEMORY OVERLAP DISABLED
635 100000 IFMMAN==100000 ;FAST MEMORY MANUAL
636 040000 IMIPGD==40000 ;MI PROGRAM DISABLE
637 020000 ICNSLR==20000 ;CONSOLE READ ONLY
638 010000 ICNSLL==10000 ;CONSOLE LOCKED
639 004000 IP50HZ==4000 ;50 HZ POWER
640 002000 IMGINM==2000 ;MANUAL MARGINS
641 001000 IMAINT==1000 ;MAINTENANCE MODE
642 000400 IPWRLO==400 ;POWER LOW
643 000200 IMGNLO==200 ;MARGIN COMPARATOR LOW
644 000040 SENSE1==40 ;SENSE SWITCHES 1
645 000020 SENSE2==20 ; 2
646 000010 SENSE3==10 ; 3
647 000004 SENSE4==4 ; 4
648 000002 SENSE5==2 ; 5
649 000001 SENSE6==1 ; 6
650
651 S^;*********************************************************************^
652 ;*KI10 APR DATAO ASSIGNMENTS
653 S^;*********************************************************************^
654
655 020000 IEVNPR==20000 ;WRITE EVEN PARITY
656 010000 ISPDOF==10000 ;SPEED MARGINS OFF
657 004000 ISPDON==4000 ;SPEED MARGINS ON
658 002000 IMGNOF==2000 ;MARGINS OFF - LH
659 001000 IMGNON==1000 ;MARGINS ON - LH
660
661 S^;*********************************************************************^
662 ;*KI10 PI CONO ASSIGNMENTS
663 S^;*********************************************************************^
664
665 020000 IRQCLR==20000 ;CLEAR PROGRAM PI REQUEST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 14
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0095
666 S^;*********************************************************************^
667 ;*KI10 PI CONI ASSIGNMENTS
668 S^;*********************************************************************^
669
670 400000 IINSTF==400000 ;ADDRESS CONDITIONS, INST FETCH
671 200000 IDATAF==200000 ; DATA FETCH
672 100000 IWRITE==100000 ; WRITE
673 040000 IADSTP==40000 ;ADDRESS STOP
674 020000 IADBRK==20000 ;ADDRESS BREAK
675 010000 IADEXC==10000 ;ADDRESS SWITCHES EXEC
676 004000 IADUSR==4000 ; " " USER
677 002000 IPRSTP==2000 ;PARITY STOP
678 001000 INXSTP==1000 ;NON-X-MEM STOP
679
680 S^;*********************************************************************^
681 ;*KI10 PAG CONI ASSIGNMENTS
682 S^;*********************************************************************^
683
684 000400 EXCMEM==400 ;EXEC MEMORY SPACE
685 000040 AMCLRB==40 ;ASSOCIATIVE MEMORY CLEAR BIT
686
687 S^;*********************************************************************^
688 ;*KI10 PAG DATAO ASSIGNMENTS, LEFT HALF
689 S^;*********************************************************************^
690
691 400000 LDUSRB==400000 ;LOAD USER BASE REGISTER
692 040000 SMLUSR==40000 ;SMALL USER, 32K OR UNDER
693 020000 USRCMP==20000 ;USER ADR COMPARE ENABLE
694
695 S^;*********************************************************************^
696 ;*KI10 PAG DATAO ASSIGNMENTS, RIGHT HALF
697 S^;*********************************************************************^
698
699 400000 LDEXCB==400000 ;LOAD EXEC BASE REGISTER
700 020000 TRPENB==20000 ;ENABLE TRAPS
701
702 S^;*********************************************************************^
703 ;*KI10 PAG DATAI ASSIGNMENTS
704 S^;*********************************************************************^
705
706 040000 SMLUSR==40000 ;SMALL USER
707 020000 USRCMP==20000 ;USER ADR COMPARE ENABLED
708 020000 TRPENB==20000 ;RH, TRAPS ENABLED
709
710 S^;*********************************************************************^
711 ;*KI10 PTR DATAO ASSIGNMENTS
712 S^;*********************************************************************^
713
714 ;ADDRESS CONDITIONS, ADDRESS BREAK ;AS ABOVE, PI CONI
715 ;ADDRESS SWITCHES, 14-35
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 15
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0096
716 S^;*********************************************************************^
717 ;*KI10 EXEC PAGE MAP PAGE ASSIGNMENTS
718 S^;*********************************************************************^
719
720 000420 PGFTRP==420 ;PAGE FAULT TRAP
721 000421 AROVTP==421 ;ARITHMETIC TRAP
722 000422 PDOVTP==422 ;PUSHDOWN OVERFLOW TRAP
723 000423 TRP3TP==423 ;TRAP 3 TRAP
724
725 S^;*********************************************************************^
726 ;*KI10 USER PAGE MAP PAGE ASSIGNMENTS
727 S^;*********************************************************************^
728
729 000420 PGFTRP==420 ;PAGE FAULT TRAP
730 000421 AROVTP==421 ;ARITHMETIC TRAP
731 000422 PDOVTP==422 ;PUSHDOWN OVERFLOW TRAP
732 000423 TRP3TP==423 ;TRAP 3 TRAP
733
734 000424 MUUO== 424 ;MUUO STORAGE
735 000425 MUUOPC==425 ;C(PC) OF MUUO STORAGE
736
737 000426 EXCPFW==426 ;EXEC PAGE FAIL WORD
738 000427 USRPFW==427 ;USER PAGE FAIL WORD
739
740 000430 KNTRP== 430 ;KERNAL NO TRAP - NEW PC'S-
741 000431 KTRP== 431 ;" TRAP
742 000432 SNTRP== 432 ;SUPERVISOR NO TRAP
743 000433 STRP== 433 ;" TRAP
744 000434 CNTRP== 434 ;CONCEAL NO TRAP
745 000435 CTRP== 435 ;" TRAP
746 000436 PNTRP== 436 ;PUBLIC NO TRAP
747 000437 PTRP== 437 ;" TRAP
748
749 > ;END CONDITIONAL ON KI10
750 XLIST
751 IFDEF $PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 18
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0097
752 ;*KL10 CONO APR 000 ASSIGMENTS
753 S^;*********************************************************************^
754 200000 LIOCLR==200000 ;CLEAR ALL I/O DEVICES
755 100000 LFLGEN==100000 ;ENABLE SELECTED FLAG
756 040000 LFLGDS==40000 ;DISABLE SELECTED FLAG
757 020000 LFLGCL==20000 ;CLEAR SELECTED FLAG
758 010000 LFLGST==10000 ;SET SELECTED FLAG
759 004000 LSBUSE==4000 ;SBUS ERROR FLAG
760 002000 LNXMER==2000 ;NON-EXISTENT MEMORY FLAG
761 001000 LIOPFE==1000 ;I/O PAGE FAIL FLAG
762 000400 LPARER==400 ;MB PARITY ERROR FLAG
763 000200 LCADRP==200 ;CACHE ADDRESS PARITY ERROR FLAG
764 000100 LSADRP==100 ;S-BUS ADDRESS PARITY ERROR FLAG
765 000040 LPWRFL==40 ;POWER FAIL FLAG
766 000020 LCASWD==20 ;CACHE SWEEP DONE FLAG
767 000007 LAPRP7==7 ;APR PI CHANNEL 7
768 000006 LAPRP6==6 ;APR PI CHANNEL 6
769 000005 LAPRP5==5 ;APR PI CHANNEL 5
770 000004 LAPRP4==4 ;APR PI CHANNEL 4
771 000003 LAPRP3==3 ;APR PI CHANNEL 3
772 000002 LAPRP2==2 ;APR PI CHANNEL 2
773 000001 LAPRP1==1 ;APR PI CHANNEL 1
774 104000 LESBER==104000 ;ENABLE SBUS ERRORS
775 044000 LDSBER==044000 ;DISABLE SBUS ERRORS
776 024000 LCSBER==024000 ;CLR SBUS ERRORS
777 014000 LSSBER==014000 ;SET SBUS ERROR
778 102000 LENXER==102000 ;ENABLE NON-EXISTENT MEMORY
779 042000 LDNXER==042000 ;DISABLE NON-EXISTENT MEORY
780 022000 LCNXER==022000 ;CLR NON-EXISTENT MEMORY
781 012000 LSNXER==012000 ;SET NON-EXISTENT MEMORY
782 101000 LEIOPF==101000 ;ENABLE I/O PAGE FAILS
783 041000 LDIOPF==041000 ;DISABLE I/O PAGE FAILS
784 021000 LCIOPF==021000 ;CLR I/O PAGE FAIL
785 011000 LSIOPF==011000 ;SET I/O PAGE FAIL
786 100400 LEPAER==100400 ;ENABLE PARITY ERRORS
787 040400 LDPAER==040400 ;DISABLE PARITY ERRORS
788 020400 LCPAER==020400 ;CLR PARITY ERROR
789 010400 LSPAER==010400 ;SET PARITY ERROR
790 100200 LECAER==100200 ;ENABLE CACHE ADR PARITY ERRORS
791 040200 LDCAER==040200 ; " DISABLE
792 020200 LCCAER==020200 ; " CLR
793 010200 LSCAER==010200 ; " SET
794 100100 LESAER==100100 ;ENABLE S-BUS ADR PARITY ERRORS
795 040100 LDSAER==040100 ; " DISABLE
796 020100 LCSAER==020100 ; " CLR
797 010100 LSSAER==010100 ; " SET
798 100040 LEPWRF==100040 ;ENABLE POWER FAIL
799 040400 LDPWRF==040400 ;DISABLE POWER FAIL
800 020040 LCPWRF==020040 ;CLR POWER FAIL
801 010040 LSPWRF==010040 ;SET POWER FAIL
802 100020 LECASD==100020 ;ENABLE CACHE SWEEP DONE
803 040020 LDCASD==040020 ;DISABLE CACHE SWEEP DONE
804 020020 LCCASD==020020 ;CLR CACHE SWEEP DONE
805 010020 LSCASD==010020 ;SET CACHE SWEEP DONE
806 127760 LAPRAL==127760 ;CLR ALL ERROR FLAGS & ENABLE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 19
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0098
807 S^;*********************************************************************^
808 ;*KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)
809 S^;*********************************************************************^
810
811 004000 LSBSEN==4000 ;SBUS ERRORS ENABLED
812 002000 LNXMEN==2000 ;NON-EXISTENT MEMORY ERRORS ENABLED
813 001000 LIOPFE==1000 ;I/O PAGE FAILURES ENABLED
814 000400 LPAREN==400 ;PARITY ERRORS ENABLED
815 000200 LCADEN==200 ;CACHE ADR PARITY ERRORS ENABLED
816 000100 LSADEN==100 ;S-BUS ADR PARITY ERRORS ENABLED
817 000040 LPWRFE==40 ;POWER FAILURES ENABLED
818 000020 LCASDE==20 ;CACHE SWEEP DONE ENABLED
819
820 S^;*********************************************************************^
821 ;*KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)
822 S^;*********************************************************************^
823
824 200000 LCASWB==200000 ;CACHE SWEEP BUSY
825 004000 LSBUSE==4000 ;SBUS ERROR FLAG
826 002000 LNXMER==2000 ;NON-EXISTENT MEMORY FLAG
827 001000 LIOPFE==1000 ;I/O PAGE FAIL FLAG
828 000400 LPARER==400 ;PARITY ERROR FLAG
829 000200 LCADRP==200 ;CACHE ADR PARITY ERROR FLAG
830 000100 LSADRP==100 ;S-BUS ADR PARITY ERROR FLAG
831 000040 LPWRFL==40 ;POWER FAIL FLAG
832 000020 LCASWD==20 ;CACHE SWEEP DONE FLAG
833 000007 LAPRP7==7 ;APR PI CHANNEL 7
834 000006 LAPRP6==6 ;APR PI CHANNEL 6
835 000005 LAPRP5==5 ;APR PI CHANNEL 5
836 000004 LAPRP4==4 ;APR PI CHANNEL 4
837 000003 LAPRP3==3 ;APR PI CHANNEL 3
838 000002 LAPRP2==2 ;APR PI CHANNEL 2
839 000001 LAPRP1==1 ;APR PI CHANNEL 1
840 000010 LINT==10 ;APR INTERRUPT
841
842 S^;*********************************************************************^
843 ;*KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)
844 S^;*********************************************************************^
845
846 000400 LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH
847 000200 LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH
848 000100 LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE
849 000040 LUSCMP==40 ;USER ADDRESS COMPARE
850 000000 LEXCMP==0 ;EXEC ADDRESS COMPARE
851
852 S^;*********************************************************************^
853 ;*KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)
854 S^;*********************************************************************^
855
856 ;DATAO APR,ADDRESS SWITCHES=13-35
857 >
858 XLIST
859 IFDEF $PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 20
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0099
860 S^;*********************************************************************^
861 ;*KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)
862 S^;*********************************************************************^
863
864 000400 LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH
865 000200 LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH
866 000100 LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE
867 000040 LUSCMP==40 ;USER ADDRESS COMPARE
868 000000 LEXCMP==0 ;EXEC ADDRESS COMPARE
869
870 S^;*********************************************************************^
871 ;*KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)
872 S^;*********************************************************************^
873
874 ;DATAI APR,ADDRESS SWITCHES=13-35
875
876 S^;*********************************************************************^
877 ;*KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)
878 S^;*********************************************************************^
879
880 ;REFILL ALGORITHM BITS 18-20
881 ;REFILL ALGORITHM ADDRESS 27-33
882
883 S^;*********************************************************************^
884 ;*KL10 BLKI APR 000 ASSIGMENTS
885 S^;*********************************************************************^
886
887 ;MICRO-CODE OPTIONS = 0-8
888 ;MICRO-CODE VERSION NUMBER = 9-17
889 ;HARDWARE OPTIONS =18-23
890
891 ;PROCESSOR SERIAL NUMBER = 24-35
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 22
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0100
892 S^;*********************************************************************^
893 ;*KL10 CONO PI 004 ASSIGMENTS
894 S^;*********************************************************************^
895
896 400000 LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS
897 200000 LEVNPD==200000 ;WRITE EVEN PARITY DATA
898 100000 LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0
899 020000 LRQCLR==20000 ;DROP INTERRUPT ON SELECTED CHANNEL
900 010000 LPICLR==10000 ;CLEAR PI SYSTEM
901 004000 LREQSE==4000 ;REQUEST INTERRUPT ON SELECTED CHANNEL
902 002000 LCHNON=2000 ;TURN ON SELECTED CHANNEL
903 001000 LCHNOF==1000 ;TURN OFF SELECTED CHANNEL
904 000400 LPIOFF==400 ;TURN PI SYSTEM OFF
905 000200 LPION==200 ;TURN PI SYSTEM ON
906 000100 LPICH1==100 ;PI CHANNEL 1
907 000040 LPICH2==40 ;PI CHANNEL 2
908 000020 LPICH3==20 ;PI CHANNEL 3
909 000010 LPICH4==10 ;PI CHANNEL 4
910 000004 LPICH5==4 ;PI CHANNEL 5
911 000002 LPICH6==2 ;PI CHANNEL 6
912 000001 LPICH7==1 ;PI CHANNEL 7
913 000177 LPICHA==177 ;ALL PI CHANNELS
914
915 S^;*********************************************************************^
916 ;*KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)
917 S^;*********************************************************************^
918
919 000100 LPRCH1==100 ;PROGRAM REQUEST ON CHANNEL 1
920 000040 LPRCH2==40 ;PROGRAM REQUEST ON CHANNEL 2
921 000020 LPRCH3==20 ;PROGRAM REQUEST ON CHANNEL 3
922 000010 LPRCH4==10 ;PROGRAM REQUEST ON CHANNEL 4
923 000004 LPRCH5==4 ;PROGRAM REQUEST ON CHANNEL 5
924 000002 LPRCH6==2 ;PROGRAM REQUEST ON CHANNEL 6
925 000001 LPRCH7==1 ;PROGRAM REQUEST ON CHANNEL 7
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 23
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0101
926 S^;*********************************************************************^
927 ;*KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)
928 S^;*********************************************************************^
929
930 400000 LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS
931 200000 LEVNPD==200000 ;WRITE EVEN PARITY DATA
932 100000 LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0
933 040000 LPIIP1==40000 ;PI IN PROGRESS ON CHANNEL 1
934 020000 LPIIP2==20000 ;PI IN PROGRESS ON CHANNEL 2
935 010000 LPIIP3==10000 ;PI IN PROGRESS ON CHANNEL 3
936 004000 LPIIP4==4000 ;PI IN PROGRESS ON CHANNEL 4
937 002000 LPIIP5==2000 ;PI IN PROGRESS ON CHANNEL 5
938 001000 LPIIP6==1000 ;PI IN PROGRESS ON CHANNEL 6
939 000400 LPIIP7==400 ;PI IN PROGRESS ON CHANNEL 7
940 000200 LPION==200 ;PI SYSTEM ON
941 000100 LPICH1==100 ;PI CHANNEL 1 ON
942 000040 LPICH2==40 ;PI CHANNEL 2 ON
943 000020 LPICH3==20 ;PI CHANNEL 3 ON
944 000010 LPICH4==10 ;PI CHANNEL 4 ON
945 000004 LPICH5==4 ;PI CHANNEL 5 ON
946 000002 LPICH6==2 ;PI CHANNEL 6 ON
947 000001 LPICH7==1 ;PI CHANNEL 7 ON
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 24
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0102
948 S^;*********************************************************************^
949 ;*KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)
950 S^;*********************************************************************^
951
952 400000 LLACBL==400000 ;LOAD AC BLOCKS
953 200000 LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION
954 100000 LLDUSB==100000 ;LOAD USER BASE REGISTER
955 000040 LCWSX==40 ;
956
957 ;CURRENT AC BLOCKS BITS 6 - 8
958 ;PREVIOUS AC BLOCKS BITS 9 - 11
959 ;PREVIOUS CONTEXT SECTION BITS 13 - 17
960
961 S^;*********************************************************************^
962 ;*KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)
963 S^;*********************************************************************^
964
965 ;USER BASE REGISTER BITS 23 - 35
966
967 S^;*********************************************************************^
968 ;*KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)
969 S^;*********************************************************************^
970
971 400000 LLACBL==400000 ;LOAD AC BLOCKS
972 200000 LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION
973 100000 LLDUSB==100000 ;LOAD USER BASE REGISTER
974 000040 LCWSX==40 ;
975
976 ;CURRENT AC BLOCKS BITS 6 - 8
977 ;PREVIOUS AC BLOCKS BITS 9 - 11
978 ;PREVIOUS CONTEXT SECTION BITS 13 - 17
979
980 S^;*********************************************************************^
981 ;*KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)
982 S^;*********************************************************************^
983
984 ;USER BASE REGISTER BITS 23 - 35
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 25
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0103
985 S^;*********************************************************************^
986 ;*KL10 CONO PAG 010 ASSIGMENTS
987 S^;*********************************************************************^
988
989 400000 LCASLO==400000 ;CACHE STRATEGY LOOK
990 200000 LCASLD==200000 ;CACHE STRATEGY LOAD
991 040000 LSMODE==40000 ;SECTION MODE
992 020000 LTRPEN==20000 ;TRAP AND PAGE ENABLE
993
994 ;EXEC BASE REGISTER = 23-35
995
996 S^;*********************************************************************^
997 ;*KL10 CONI PAG 010 ASSIGMENTS
998 S^;*********************************************************************^
999
1000
1001 400000 LCSLOO==400000 ;CACHE STRATEGY LOOK
1002 200000 LCSLOA==200000 ;CACHE STRATEGY LOAD
1003 040000 LSECMO==40000 ;SECTION MODE
1004 020000 LTRPAE==20000 ;TRAP AND PAGE ENABLE
1005
1006 ;EXEC BASE REGISTER = 23-35
1007
1008 S^;*********************************************************************^
1009 ;*KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)
1010 S^;*********************************************************************^
1011
1012 XLIST
1013 IFDEF $PAPER,<LIST>
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 27
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0104
1014 S^;*********************************************************************^
1015 ;*KL10 EXEC PAGE MAP PAGE ASSIGNMENTS
1016 S^;*********************************************************************^
1017
1018 000421 LAROVT==421 ;ARITHMETIC TRAP
1019 000422 LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP
1020 000423 LTRP3T==423 ;TRAP 3 TRAP
1021
1022 000510 LTBASH==510 ;TIME-BASE, HI
1023 000511 LTBASL==511 ;TIME-BASE, LO
1024 000512 LPRFMH==512 ;PERFORMANCE ANAYLYSIS, HI
1025 000513 LPRFML==513 ;PERFORMANCE ANAYLYSIS, LO
1026
1027 S^;*********************************************************************^
1028 ;*KL10 USER PAGE MAP PAGE ASSIGNMENTS
1029 S^;*********************************************************************^
1030
1031 000421 LAROVT==421 ;ARITHMETIC TRAP
1032 000422 LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP
1033 000423 LTRP3T==423 ;TRAP 3 TRAP
1034
1035 000424 LMUUO== 424 ;MUUO STORAGE
1036 000425 LMUUOP==425 ;C(PC) OF MUUO STORAGE
1037 000426 LCNTXT==426 ;PROCESS CONTEXT WORD
1038
1039 000430 LKNTRP==430 ;KERNAL NO TRAP - NEW PC'S-
1040 000431 LKTRP== 431 ;" TRAP
1041 000432 LSNTRP==432 ;SUPERVISOR NO TRAP
1042 000433 LSTRP== 433 ;" TRAP
1043 000434 LCNTRP==434 ;CONCEAL NO TRAP
1044 000435 LCTRP== 435 ;" TRAP
1045 000436 LPNTRP==436 ;PUBLIC NO TRAP
1046 000437 LPTRP== 437 ;" TRAP
1047
1048 000500 LEUPFW==500 ;EXEC & USER PAGE FAIL WORD
1049 000501 LPFWPC==501 ;C(PC) OF PAGE FAIL WORD
1050 000502 LPGFTR==502 ;PAGE FAIL NEW PC
1051
1052 000504 LEBXMH==504 ;E-BOX CLOCK TICK METER, HI
1053 000505 LEBXML==505 ;E-BOX CLOCK TICK METER, LO
1054 000506 LMBXMH==506 ;M-BOX CYCLE METER, HI
1055 000507 LMBXML==507 ;M-BOX CYCLE METER, LO
1056
1057 >> ;END CONDITIONAL ON KL10
1058 LIST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 1
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0105
1059 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
1060
1061 030000 LOC 30000
1062
1063 S^;*********************************************************************^
1064 ;*PROGRAM STARTING ADDRESSES
1065 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
1066 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
1067 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
1068 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
1069 S^;*********************************************************************^
1070
1071 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
1072 030001 254 00 0 00 001000 $START: JRST START ;MODE CHECK STARTING ADDRESS
1073
1074 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
1075
1076 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
1077
1078 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
1079
1080 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
1081
1082 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
1083
1084 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
1085 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
1086
1087 030010 254 00 0 00 001034 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
1088 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
1089 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
1090
1091 030013 000000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
1092 030014 000000 030000 START2: SADR8 ; "
1093 030015 000000 030000 START3: SADR9 ; "
1094 030016 000000 030000 START4: SADR10 ; "
1095 030017 000000 030000 START5: SADR11 ; "
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0106
1096 S^;*********************************************************************^
1097 ;*PROGRAM FIXED PARAMETER AREA
1098 S^;*********************************************************************^
1099
1100 030020 636542 626456 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
1101 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
1102 030022 123456 123456 RANDBS: PAREA1 ;RANDOM BASE NUMBER
1103 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
1104 030024 000000 000001 ITRCNT: ITERAT ;PROGRAM ITERATIONS
1105 030025 000000 001035 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
1106 030026 000000 000014 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
1107 030027 000000 001000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
1108 030030 000000 007573 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
1109 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
1110 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
1111 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
1112 030034 777777 777777 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
1113 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
1114 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
1115
1116 S^;*********************************************************************^
1117 ;*PROGRAM VARIABLE PARAMETER AREA
1118 S^;*********************************************************************^
1119
1120 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
1121 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
1122 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
1123 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
1124 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
1125 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
1126 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
1127 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
1128 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
1129 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
1130 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
1131 030052 000000 000000 ERRPC: 0 ;ERROR PC
1132 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
1133 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
1134 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
1135 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 3
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0107
1136 S^;*********************************************************************^
1137 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
1138 S^;*********************************************************************^
1139
1140 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
1141 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
1142 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
1143 030062 000000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
1144 030063 000000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
1145 030064 CPOPJ1: ;SKIP RETURN
1146 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
1147 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
1148 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
1149 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
1150 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
1151 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
1152 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
1153 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
1154 030073 255 00 0 00 000000 $USRHL: JFCL ; "
1155 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
1156 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
1157 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
1158 030077 255 00 0 00 000000 RESRT2: JFCL ; "
1159 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
1160 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
1161 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
1162
1163 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
1164 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
1165 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
1166
1167 S^;*********************************************************************^
1168 ;*PROCESSOR CONTROL STORAGE
1169 S^;*********************************************************************^
1170
1171 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
1172 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
1173 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
1174 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
1175 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
1176
1177 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
1178 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
1179
1180 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
1181 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
1182 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
1183 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
1184 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
1185 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
1186 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 4
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0108
1187 S^;*********************************************************************^
1188 ;*UUO DISPATCH TABLE
1189 S^;*********************************************************************^
1190 XLIST
1191 LIST
1192 030124 030070 030070 UUODIS: LUUO1,,$UUOER
1193 030125 030070 030070 LUUO3,,LUUO2
1194 030126 030070 030070 LUUO5,,LUUO4
1195 030127 030070 030070 LUUO7,,LUUO6
1196 030130 030070 030070 LUUO11,,LUUO10
1197 030131 030070 030070 LUUO13,,LUUO12
1198 030132 030070 030070 LUUO15,,LUUO14
1199 030133 030070 030070 LUUO17,,LUUO16
1200 030134 030070 030070 LUUO21,,LUUO20
1201 030135 030070 030070 LUUO23,,LUUO22
1202 030136 030070 030070 LUUO25,,LUUO24
1203 030137 030070 030070 LUUO27,,LUUO26
1204 030140 030070 030070 LUUO31,,LUUO30
1205 030141 030070 030070 LUUO33,,LUUO32
1206
1207 S^;*********************************************************************^
1208 ;*MEMORY MANAGMENT STORAGE
1209 S^;*********************************************************************^
1210
1211 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
1212 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
1213 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
1214 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
1215 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
1216
1217 S^;*********************************************************************^
1218 ;*PRINT CONTROL STORAGE
1219 S^;*********************************************************************^
1220
1221 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
1222 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
1223 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
1224 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
1225 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
1226 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
1227 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
1228 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
1229 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
1230 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
1231 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
1232 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
1233 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
1234 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
1235 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
1236 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
1237 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
1238 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
1239 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 5
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0109
1240 S^;*********************************************************************^
1241 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
1242 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
1243 ;* MOVEI NAME
1244 ;* PNTA ;OR PNTAF
1245 S^;*********************************************************************^
1246
1247 030242 CRLF: ASCII/
1248 030242 015 012 000 000 000 /
1249 030243 CRLF2: ASCII/
1250
1251 030243 015 012 015 012 000 /
1252 030244 054 000 000 000 000 COMMA: ASCII/,/
1253 030245 056 000 000 000 000 PERIOD: ASCII/./
1254 030246 040 000 000 000 000 SPACE: ASCII/ /
1255 030247 011 000 000 000 000 TAB: ASCII/ /
1256 030250 MINUS:
1257 030250 055 000 000 000 000 HYPEN: ASCII/-/
1258 030251 053 000 000 000 000 PLUS: ASCII/+/
1259 030252 052 000 000 000 000 AST: ASCII/*/
1260 030253 100 000 000 000 000 ATSIN: ASCII/@/
1261 030254 050 000 000 000 000 LFP: ASCII/(/
1262 030255 051 000 000 000 000 RTP: ASCII/)/
1263 030256 007 0000000000 BELL: BYTE (7) 007
1264 030257 077 000 000 000 000 QUEST: ASCII/?/
1265 030260 057 000 000 000 000 SLASH: ASCII!/!
1266 030261 044 000 000 000 000 DOLLAR: ASCII/$/
1267 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
1268 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
1269 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
1270
1271 S^;*********************************************************************^
1272 ;*USER MODE OUTPUT FILE INFORMATION
1273 S^;*********************************************************************^
1274
1275 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
1276 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
1277 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
1278 030272 BLOCK 2
1279
1280 S^;*********************************************************************^
1281 ;*DISK UPDATE MODE FILE INFORMATION
1282 S^;*********************************************************************^
1283
1284 030274 $IBUF: BLOCK 3
1285 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
1286 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
1287 030301 BLOCK 2
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 6
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0110
1288 S^;*********************************************************************^
1289 ;*PUSHDOWN LIST CONTROL INFORMATION
1290 S^;*********************************************************************^
1291
1292 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
1293 030304 PLISTS: BLOCK 200
1294 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
1295
1296 S^;*********************************************************************^
1297 ;*POWER LINE CLOCK FREQUENCY FLAG
1298 S^;*********************************************************************^
1299
1300 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
1301
1302 S^;*********************************************************************^
1303 ;*KL10 CACHE CONTROL FLAGS
1304 S^;*********************************************************************^
1305
1306 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
1307 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
1308
1309 S^;*********************************************************************^
1310 ;*NUMBER INPUT DIGIT FLAG
1311 S^;*********************************************************************^
1312
1313 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
1314
1315 S^;*********************************************************************^
1316 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
1317 S^;*********************************************************************^
1318
1319 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
1320
1321 S^;*********************************************************************^
1322 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
1323 S^;*********************************************************************^
1324
1325 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
1326 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
1327 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
1328
1329 S^;*********************************************************************^
1330 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
1331 S^;*********************************************************************^
1332
1333 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 7
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0111
1334 S^;*********************************************************************^
1335 ;*USER MODE MONITOR TYPE FLAG
1336 S^;*********************************************************************^
1337
1338 030516 000000 000000 MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
1339
1340 S^;*********************************************************************^
1341 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
1342 S^;*********************************************************************^
1343
1344 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
1345
1346 S^;*********************************************************************^
1347 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
1348 S^;*********************************************************************^
1349
1350 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
1351
1352 S^;*********************************************************************^
1353 ;*"SWITCH" CALL USAGE CONTROL
1354 S^;*********************************************************************^
1355
1356 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
1357
1358 S^;*********************************************************************^
1359 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
1360 S^;*********************************************************************^
1361
1362 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
1363 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
1364
1365 S^;*********************************************************************^
1366 ;*SM10 (KS-10) PROCESSOR TYPE FLAG
1367 S^;*********************************************************************^
1368
1369 030524 000000 000000 SM10: 0 ;IF -1 THIS IS A KS-10
1370
1371 S^;*********************************************************************^
1372 ;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
1373 S^;*********************************************************************^
1374
1375 030525 000000 000000 SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
1376
1377 S^;*********************************************************************^
1378 ;*SPECIAL FUTURE EXPANSION ROOM
1379 S^;*********************************************************************^
1380
1381 S^;*********************************************************************^
1382 ;*END OF FIXED STORAGE
1383 S^;*********************************************************************^
1384
1385 030577 LOC 30577
1386 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 1
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0112
1387 SUBTTL *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
1388
1389 S^;*********************************************************************^
1390 ;*SPECIAL SUBPROGRAM LINKAGES
1391 S^;*********************************************************************^
1392
1393 000440 LOC 440
1394
1395 000440 254 00 0 00 030000 JRST DIAGNOS
1396 000441 254 00 0 00 010000 JRST DDT
1397 000442 254 00 0 00 020000 JRST DIAMON
1398 000443 254 00 0 00 001001 JRST REINIT
1399
1400 027775 LOC 27775
1401
1402 027775 000000 010000 DDTLNK: 10000 ;DDT LINKAGE
1403 027776 000000 001003 MODLNK: MODCHK ;OPERATIONAL MODE CHECK LINKAGE
1404 027777 000000 001002 SUBLNK: SUBINI ;SUBROUTINE LINKAGE
1405
1406 001000 LOC 1000 ;RESET THE PC AFTER "FIXED" @ 30,000
1407
1408 S^;*********************************************************************^
1409 ;*INITIALIZE THE SUBROUTINE PACKAGE
1410 S^;*********************************************************************^
1411
1412 001000 254 00 0 00 001021 START: JRST $SBSRT ;START SUBROUTINE BY ITSELF
1413 001001 254 00 0 00 001030 REINIT: JRST $REINI ;REINIT SUBROUTINE
1414 001002 254 00 0 00 001045 SUBINI: JRST $PGMIN ;SUBROUTINE INIT ROUTINE
1415 001003 254 00 0 00 001125 MODCHK: JRST $MODCK ;OPERATIONAL MODE CHECK LINKAGE
1416 001004 000000 000000 0
1417 001005 63 65 42 62 64 56 SUBRTN: SIXBIT/SUBRTN/ ;"SUBRTN" IDENTIFICATION WORD
1418 001006 000000 000014 SUBVER: MCNVER,,DECVER ;"SUBRTN" VERSION INFORMATION
1419 001007 777777 777777 $TTYSPD:-1 ;MONITOR TTY SPEED
1420
1421 001010 254 04 0 00 001010 NOEXEC: HALT . ;PROGRAM NOT CODED FOR EXEC MODE
1422 001011 254 04 0 00 001011 PLERR: HALT . ;FATAL PUSH LIST POINTER ERROR
1423 001012 254 04 0 00 001012 PLERR1: HALT . ;INITIAL PUSH LIST POINTER ERROR
1424 001013 254 04 0 00 001013 MUOERR: HALT . ;MUUO WITH LUUO HANDLER WIPED OUT
1425 001014 254 04 0 00 001014 DTEBER: HALT . ;DTE20 INTERRUPT WITHOUT DOORBELL
1426 001015 254 04 0 00 001015 DTECER: HALT . ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
1427 001016 254 04 0 00 001016 CPIERR: HALT . ;CPU INITIALIZATION ERROR
1428 001017 254 04 0 00 001017 EOPERR: HALT . ;END OF PROGRAM ERROR
1429 001020 254 04 0 00 001020 LUOERR: HALT . ;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0113
1430 S^;*********************************************************************^
1431 ;*SPECIAL SUBROUTINE ONLY INITIALIZATION
1432 S^;*********************************************************************^
1433 001021 201 00 0 00 000001 $SBSRT: MOVEI 1
1434 001022 202 00 0 00 030024 MOVEM ITRCNT ;ALLOW ONLY ONE PASS
1435 001023 201 00 0 00 020000 MOVEI DIAMON
1436 001024 202 00 0 00 030012 MOVEM RETURN
1437 001025 476 00 0 00 030143 SETOM MAPNEW ;FULL 4096K MAPPING
1438 001026 265 00 0 00 030011 PGMINT
1439 001027 254 00 0 00 030057 JRST BEGEND
1440
1441 001030 402 00 0 00 030056 $REINI: SETZM $ONETM ;FOR NOW
1442 001031 402 00 0 00 030047 SETZM PASCNT
1443 001032 402 00 0 00 030053 SETZM ERRTLS
1444 001033 254 00 0 00 030000 JRST BEGIN
1445
1446 001034 254 00 0 00 030057 STARTA: JRST BEGEND
1447
1448 001035 PGMNAM: ASCIZ/
1449 001035 015 012 104 105 103 DECSYSTEM DIAGNOSTIC SUBROUTINE'S
1450 001036 123 131 123 124 105
1451 001037 115 040 104 111 101
1452 001040 107 116 117 123 124
1453 001041 111 103 040 123 125
1454 001042 102 122 117 125 124
1455 001043 111 116 105 047 123
1456 001044 015 012 000 000 000 /
1457
1458 S^;*********************************************************************^
1459 ;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
1460 S^;*********************************************************************^
1461
1462 001045 202 00 0 00 007635 $PGMIN: MOVEM 0,$$PAC0
1463 001046 476 00 0 00 030037 SETOM USER
1464 001047 265 00 0 00 001050 JSP 0,.+1 ;LOAD FLAGS INTO AC0
1465 001050 607 00 0 00 010000 TLNN 0,USERF ;USER MODE ?
1466 001051 402 00 0 00 030037 SETZM USER ;EXEC MODE
1467 001052 336 00 0 00 030042 SKIPN MONFLG ;DIAG MON, SPECIAL USER MODE ?
1468 001053 402 00 0 00 030037 SETZM USER ;YES, TREAT I/O AS EXEC
1469 001054 332 00 0 00 030037 SKIPE USER
1470 001055 254 00 0 00 001062 JRST $PGMN1 ;USER MODE
1471 001056 7 004 20 0 00 010000 CONO PI,PICLR ;CLEAR PI SYSTEM
1472 001057 7 000 20 0 00 200000 CONO APR,IOCLR ;CLEAR I/O
1473 001060 402 00 0 00 007603 SETZM $MTRI ;IF KL10, CLEAR METER
1474 001061 402 00 0 00 007604 SETZM $MTRWC
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 3
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0114
1475 S^;*********************************************************************^
1476 ;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
1477 S^;*********************************************************************^
1478
1479 001062 554 00 0 00 000120 $PGMN1: HLRZ JOBSA ;RESET JOB FIRST FREE TO
1480 001063 202 00 0 00 000121 MOVEM JOBFF ;END OF LOW SEGMENT
1481 001064 332 00 0 00 030037 SKIPE USER ;USER MODE ?
1482 001065 047 00 0 00 000000 CALLI 0 ;YES, CLEAR USER I/O
1483 001066 254 02 1 00 001067 JRST 2,@.+1 ;CLEAR PC FLAGS
1484 001067 000000 001070 0,,.+1
1485 001070 200 00 0 00 030046 MOVE CONSW
1486 001071 202 00 0 00 007720 MOVEM $SVCSW# ;SAVE PREVIOUS SWITCHES
1487 001072 402 00 0 00 030046 SETZM CONSW# ;CLEAR SWITCH REGISTER
1488 001073 402 00 0 00 007722 SETZM $SWFLG# ;DISALLOW SWITCHES TILL INITED
1489 001074 200 00 0 00 007047 MOVE [JRST $DDTENT] ;SETUP DDT START
1490 001075 202 00 0 00 030007 MOVEM DDTSRT ;DDT IF LOADED, EOPUUO IF NOT
1491 001076 200 00 0 00 007050 MOVE [JRST PSHERR]
1492 001077 202 00 0 00 030103 MOVEM $PSHER ;INIT FOR UNDERFLOW
1493 001100 200 17 0 00 030303 MOVE P,PLIST ;INIT PUSH POINTER
1494 001101 201 00 0 00 030103 MOVEI 0,$PSHER
1495 001102 261 17 0 00 000000 PUSH P,0 ;SET ERR FOR EXCESSIVE POP'S
1496 001103 261 17 0 00 000000 PUSH P,0
1497
1498 S^;*********************************************************************^
1499 ;*INITIALIZE SUBROUTINES
1500 S^;*********************************************************************^
1501
1502 001104 260 17 0 00 002171 PGINGO: GO $CPUTP ;DETERMINE CPU TYPE (KL/KI/KA)
1503 001105 332 00 0 00 030041 SKIPE KLFLG
1504 001106 260 17 0 00 001147 GO $MAPEX ;KL10, MAP EXEC
1505 001107 260 17 0 00 001165 GO $UUOIN ;INIT UUO TRAP TRANSFER LOCATION
1506 001110 260 17 0 00 002003 GO $DTEIN ;INIT DTE-20 INTERRUPT TRANSFER PROCESS
1507 001111 260 17 0 00 005627 GO $PNTIN ;INIT PRINT SUBROUTINE
1508 001112 260 17 0 00 005202 GO $TYPIN ;INIT TTY INPUT SUBROUTINE
1509 001113 260 17 0 00 004777 GO $SWTIN ;INIT SWITCH INPUT SUBROUTINE
1510 001114 260 17 0 00 002506 GO $ITRIN ;INIT INTERRUPT SUBROUTINE
1511 001115 332 00 0 00 030034 SKIPE $MMAP ;MEMORY ROUTINES ?
1512 001116 260 17 0 00 003721 GO $MEMMP ;MAP MEMORY
1513 001117 332 00 0 00 030041 SKIPE KLFLG
1514 001120 260 17 0 00 003366 GO $KLCSH ;KL10, DO CACHE
1515 001121 476 00 0 00 030056 SETOM $ONETM ;SET ONE TIME FLAG
1516 001122 402 00 0 00 030116 SETZM SCOPE ;INIT ERROR SCOPE LOOP
1517 001123 402 00 0 00 030052 SETZM ERRPC ;INIT ERROR PC
1518 001124 254 00 1 00 007635 JRST @$$PAC0#
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 4
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0115
1519 S^;*********************************************************************^
1520 ;* -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
1521 ;*MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
1522 ;*IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
1523 ;*MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
1524 ;*AT ASSEMBLY TIME.
1525 S^;*********************************************************************^
1526
1527 001125 265 00 0 00 001126 $MODCK: JSP 0,.+1 ;GET FLAG CONDITIONS
1528 001126 603 00 0 00 010000 TLNE 0,USERF ;IN USER MODE ?
1529 001127 254 00 0 00 001142 JRST $UCK ;YES
1530 001130 476 00 0 00 030024 $ECK: SETOM ITRCNT ;EXEC, RUN FOREVER
1531 001131 402 00 0 00 030043 SETZM MONCTL ;NOT HERE IF UNDER MONITOR CONTROL
1532 001132 476 00 0 00 030042 SETOM MONFLG ;SET TO NORMAL OPERATION
1533 001133 332 00 0 00 030044 SKIPE MONTEN ;LOADED BY "DIAMON" ?
1534 001134 254 00 0 00 001137 JRST .+3 ;YES, RETURN TO "DIAMON" UPON COMPLETION
1535 001135 201 00 0 00 030000 MOVEI BEGIN ;SET UP RETURN IN CASE WE EVER COUNT OUT
1536 001136 202 00 0 00 030012 MOVEM RETURN ;FOR THE RETURN ADDRESS
1537 001137 332 00 0 00 030031 SKIPE $EMODE ;EXEC MODE ALLOWED?
1538 001140 254 00 0 00 030001 JRST $START ;YES - CONTINUE
1539 001141 254 04 0 00 001010 HALT NOEXEC ;THIS PROGRAM NOT CODED FOR EXEC MODE OPERATION!
1540
1541 001142 332 00 0 00 030032 $UCK: SKIPE $UMODE ;USER MODE ALLOWED?
1542 001143 254 00 0 00 030001 JRST $START ;YES - CONTINUE
1543 001144 $NOUSR: OUTSTR [ASCIZ/
1544 EXEC ONLY
1545 001144 051 03 0 00 007051 /]
1546 001145 051 03 1 00 030025 OUTSTR @$PNAME ;PRINT THE NAME OF THIS FILE
1547 001146 254 00 1 00 030012 JRST @RETURN ;LEAVE FOR EVER
1548
1549 S^;*********************************************************************^
1550 ;* $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
1551 ;* 0 TO 112K POINTS TO ITSELF
1552 S^;*********************************************************************^
1553
1554 001147 332 00 0 00 030037 $MAPEX: SKIPE USER
1555 001150 263 17 0 00 000000 RTN
1556 001151 200 00 0 00 007054 MOVE [540000,,540001]
1557 001152 336 00 0 00 030506 SKIPN CSHFLG
1558 001153 660 00 0 00 020000 TRO 020000
1559 001154 202 00 0 00 000600 MOVEM 600 ;SET EPT NON-CACHED
1560 001155 205 01 0 00 777621 MOVSI 1,-157
1561 001156 200 00 0 00 007054 MOVE [540000,,540001]
1562 001157 336 00 0 00 030506 SKIPN CSHFLG ;REST CACHED IF ALLOWED
1563 001160 670 00 0 00 007055 TDO [020000,,020000]
1564 001161 270 00 0 00 007056 ADD [2,,2]
1565 001162 202 00 0 01 000601 MOVEM 601(1)
1566 001163 253 01 0 00 001161 AOBJN 1,.-2
1567 001164 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 5
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0116
1568 SUBTTL *CONTRL* UUO HANDLING SUBROUTINE
1569
1570 S^;*********************************************************************^
1571 ;*UUO INITIALIZATION
1572 S^;*********************************************************************^
1573
1574 001165 200 00 0 00 007057 $UUOIN: MOVE [GO $UORTN] ;BRING IN UUORTN ENTRY INSTR.
1575 001166 202 00 0 00 000041 MOVEM JOB41 ;SETUP UUO TRAP AT JOB41
1576 001167 200 00 0 00 007060 MOVE [JRST $UOERX]
1577 001170 202 00 0 00 030070 MOVEM $UUOER ;SET UUO ERROR IN "FIXED"
1578 001171 402 00 0 00 007737 SETZM $UPLER#
1579 001172 263 17 0 00 000000 RTN ;EXIT
1580
1581 S^;*********************************************************************^
1582 ;*THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
1583 ;*PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
1584 ;*PROGRAM SEGMENT UUO'S (001 - 033).
1585 ;*AC0 IS SAVED ON THE STACK INITIALLY
1586 S^;*********************************************************************^
1587
1588 001173 332 00 0 00 030515 $UORTN: SKIPE $$UUO ;IF NON-ZERO, XCT USERS UUO INTERCEPT
1589 001174 256 00 0 00 030515 XCT $$UUO
1590 001175 607 17 0 00 777000 TLNN P,777000
1591 001176 254 00 0 00 001302 JRST $UOPLE ;CHECK THAT P LOOKS LIKE A P POINTER
1592 001177 602 17 0 00 747000 TRNE P,747000
1593 001200 254 00 0 00 001302 JRST $UOPLE
1594 001201 261 17 0 00 000000 PUT AC0 ;SAVE AC0 ON PUSH LIST
1595 001202 550 00 0 00 000017 HRRZ AC0,P ;VERIFY THAT THE PUSH POINTER
1596 001203 307 00 0 00 030303 CAIG AC0,PLIST ;IS STILL OK
1597 001204 254 00 0 00 001302 JRST $UOPLE ;OUT OF RANGE
1598 001205 301 00 0 00 030504 CAIL AC0,PLISTE
1599 001206 254 00 0 00 001302 JRST $UOPLE
1600 001207 554 00 0 00 000017 HLRZ AC0,P ;GET CONTROL COUNT
1601 001210 307 00 0 00 777577 CAIG AC0,777577
1602 001211 254 00 0 00 001302 JRST $UOPLE ;OUT OF RANGE
1603 001212 301 00 0 00 777777 CAIL AC0,777777
1604 001213 254 00 0 00 001302 JRST $UOPLE
1605 001214 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET THE UUO
1606 001215 242 00 0 00 777745 LSH AC0,-^D27 ;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
1607 001216 306 00 0 00 000000 CAIN AC0,0 ;IF ZERO, MUST BE KA10 0 MMUO
1608 001217 254 00 0 00 001257 JRST $KAMUUO
1609 001220 303 00 0 00 000037 CAILE AC0,37
1610 001221 254 00 0 00 001257 JRST $KAMUUO ;MUST BE KA10 MONITOR UUO
1611 001222 303 00 0 00 000033 CAILE AC0,33 ;IS IT 33 OR LESS? (LOW)
1612 001223 254 00 0 00 001250 JRST $SUBUO ;DECODE 34 - 37 @ $SUBUO
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 6
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0117
1613 001224 200 00 0 17 777777 $USRUO: MOVE AC0,-1(P) ;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
1614 001225 275 00 0 00 000001 SUBI 1 ; - 1
1615 001226 202 00 0 00 030114 MOVEM $SVUPC ;SAVE FOR USER UUO ROUTINE (IF NEEDED)
1616 001227 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET UUO FROM LOCATION 40 IN JDA
1617 001230 202 00 0 00 030113 MOVEM $SVUUO ;SAVE FOR USER UUO ROUTINE
1618 001231 262 17 0 00 000000 GET AC0
1619 001232 256 00 0 00 030066 XCT UUORTN ;EXECUTE USERS ROUTINE IF SUPPLIED
1620 001233 261 17 0 00 000000 PUT AC0
1621 001234 200 00 0 00 030113 MOVE AC0,$SVUUO
1622 001235 242 00 0 00 777745 LSH AC0,-^D27 ;RIGHT SHIFT FOR INDEX INTO UUO TABLE
1623 001236 261 17 0 00 000001 PUT 1
1624 001237 246 00 0 00 777777 LSHC 0,-1
1625 001240 271 00 0 00 030124 ADDI UUODIS ;ADD USER UUO TABLE START TO THE UUO
1626 001241 607 01 0 00 400000 $XUUO: TLNN 1,400000
1627 001242 550 00 1 00 000000 HRRZ @0 ;EVEN UUO
1628 001243 603 01 0 00 400000 TLNE 1,400000
1629 001244 554 00 1 00 000000 HLRZ @0 ;ODD UUO
1630 001245 262 17 0 00 000001 GET 1
1631 001246 250 00 0 17 000000 EXCH AC0,(P) ;PUT ADR ON STACK, AC0 BACK IN AC0
1632 001247 263 17 0 00 000000 RTN ;SPECIAL XFER TO ROUTINE USING ADR ON STACK
1633
1634 001250 275 00 0 00 000034 $SUBUO: SUBI AC0,34 ;NORMALIZE TO MAKE LOWEST UUO = 0
1635 001251 271 00 0 00 001253 ADDI AC0,TABLE0 ;ADDR OF TABLE + NORM. UUO (0-3)
1636 001252 254 00 1 00 000000 JRST @0 ;SELECT THE CORRECT ERROR UUO VIA TABLE
1637
1638 001253 254 00 0 00 001463 TABLE0: JRST %REPT ;UUO = 34 ......................REPEAT
1639 001254 254 00 0 00 001425 JRST %ERLP ;UUO = 35 ...........LOOP ON THE ERROR
1640 001255 254 00 0 00 001500 JRST %ERUUO ;UUO = 36 .REPORT THE ERROR CONDITIONS
1641 001256 254 00 0 00 001335 JRST $UUO37 ;UUO = 37 .......DECODE SUBROUTINE UUO
1642
1643 S^;*********************************************************************^
1644 ;*KA10 MUUO PROCESS, SETUP AS IF KI/KL10 MUUO
1645 S^;*********************************************************************^
1646
1647 001257 262 17 0 00 000000 $KAMUUO:GET AC0
1648 001260 202 00 0 00 007661 MOVEM AC0,$MAC0#
1649 001261 262 17 0 00 000425 GET LMUUOP ;PUT SAVED PC INTO MUUO PC
1650 001262 200 00 0 00 000040 MOVE JOBUUO
1651 001263 202 00 0 00 000424 MOVEM LMUUO ;PUT KA10 LUUO INTO MUUO
1652 001264 200 00 0 00 007661 MOVE AC0,$MAC0
1653 001265 254 00 0 00 001317 JRST MUUOER ;PROCESS AS KI/KL10 MUUO
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 7
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0118
1654 S^;*********************************************************************^
1655 ;*UUO ERROR EXIT ROUTINE
1656 S^;*********************************************************************^
1657 SALL
1658 001266 262 17 0 00 000000 GET AC0 ;POP OFF AC0 (KA MUUO'S)
1659 001267 261 17 0 00 000040 $UOERX: PUT JOBUUO ;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
1660 001270 037 02 0 00 007061 PMSG <^ILLEGAL UUO^UUO]]FLAGS] PC^>
1661 001271 262 17 0 00 000000 GET AC0 ;GET BAD UUO FROM THE STACK (P - 1)
1662 001272 037 13 0 00 000000 PNTHW ;PRINT IT
1663 001273 037 00 0 00 000040 PSP ;PRINT SPACE
1664 001274 262 17 0 00 000000 GET AC0 ;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
1665 001275 275 00 0 00 000001 SUBI AC0,1 ;SUBTRACT 1
1666 001276 037 13 0 00 000000 PNTHW ;PRINT FLAGS & UUO PC
1667 001277 037 00 0 00 030242 PCRL ;PRINT C/R & L/F
1668 001300 256 00 0 00 030067 XCT $UORTX ;EXECUTE USERS UUO EXIT, IF PROV
1669 001301 037 15 0 00 000004 FATAL
1670
1671 001302 332 00 0 00 007737 $UOPLE: SKIPE $UPLER ;FIRST TIME ?
1672 001303 254 04 0 00 001011 HALT PLERR ;NO, FATAL HALT THEN
1673 001304 476 00 0 00 007737 SETOM $UPLER
1674 001305 202 17 0 00 007704 MOVEM P,$PDOVP ;SAVE "P"
1675 001306 200 17 0 00 030303 MOVE P,PLIST
1676 001307 312 17 0 00 007066 CAME P,[PLIST-PLISTE,,PLIST]
1677 001310 254 04 0 00 001012 HALT PLERR1 ;INITIAL POINTER BAD
1678 001311 201 00 0 00 030103 MOVEI $PSHER
1679 001312 261 17 0 00 000000 PUSH P,0
1680 001313 037 04 0 00 007067 PMSGF <^*****^UUO PLIST ERR P=>
1681 001314 200 00 0 00 007704 MOVE $PDOVP
1682 001315 037 13 0 00 000001 PNTHWF
1683 001316 037 15 0 00 000004 FATAL
1684 LALL
1685 S^;*********************************************************************^
1686 ;*MONITOR UUO ERROR EXIT ROUTINE
1687 S^;*********************************************************************^
1688 SALL
1689 001317 332 00 0 00 030517 MUUOER: SKIPE $$MUUO
1690 001320 256 00 0 00 030517 XCT $$MUUO ;EXECUTE USERS MUUO ROUTINE, IF PROV
1691 001321 200 00 0 00 000041 MOVE AC0,JOB41 ;GET UUO HANDLER
1692 001322 312 00 0 00 007057 CAME AC0,[GO $UORTN]
1693 001323 254 04 0 00 001013 HALT MUOERR ;NOT VALID
1694 001324 200 00 0 00 000425 MOVE LMUUOP
1695 001325 202 00 0 00 030104 MOVEM ITRCH1
1696 001326 7 000 24 0 00 030110 CONI APR,$SVAPR
1697 001327 7 004 24 0 00 030107 CONI PI,$SVPI
1698 001330 037 02 0 00 007073 PMSG <^ERROR MUUO = >
1699 001331 200 00 0 00 000424 MOVE LMUUO
1700 001332 037 13 0 00 000000 PNTHW ;PRINT MUUO
1701 001333 402 00 0 00 000000 SETZM 0
1702 001334 254 00 0 00 002617 JRST $ITR1B ;COMMON INTERRUPT ROUTINE START
1703 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 8
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0119
1704 S^;*********************************************************************^
1705 ;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
1706 S^;*********************************************************************^
1707
1708 001335 550 00 0 00 000040 $UUO37: HRRZ JOBUUO ;GET CALLING UUO
1709 001336 322 00 0 00 005670 JUMPE $PNTIT ;PRINT UUO
1710 001337 306 00 0 00 000001 CAIN 0,1
1711 001340 254 00 0 00 005661 JRST $PNTIF ;PRINT FORCED UUO
1712 001341 602 00 0 00 777600 TRNE 777600
1713 001342 254 00 0 00 001413 JRST $EG177 ;PRINT MESSAGE UUO
1714 001343 301 00 0 00 000005 CAIL 5
1715 001344 254 00 0 00 001406 JRST $EG4 ;PRINT CHAR IMMEDIATE UUO
1716 001345 261 17 0 00 000001 PUT 1
1717 001346 200 01 0 00 000040 MOVE 1,JOBUUO
1718 001347 242 01 0 00 777751 LSH 1,-^D23 ;EXTRACT UUO AC FIELD
1719 001350 405 01 0 00 000017 ANDI 1,17
1720 001351 242 00 0 00 000004 LSH 0,4 ;POSITION E FIELD
1721 001352 434 00 0 00 000001 IOR 0,1 ;COMBINE E & AC FIELD
1722 001353 246 00 0 00 777777 LSHC 0,-1 ;SET ODD/EVEN
1723 001354 271 00 0 00 001336 ADDI $UOTAB-20 ;COMPUTE TABLE ENTRY OFFSET
1724 001355 254 00 0 00 001241 JRST $XUUO
1725
1726 001356 $UOTAB: ;E FIELD = 2
1727 001356 005771 005760 $PTSXF,,$PNTSX
1728 001357 006142 006107 $PNTCF,,$PNTCW
1729 001360 006745 002412 $DRPDV,,$PNTNM
1730 001361 004627 004740 $MODDV,,$MODDP
1731 001362 004221 004751 $MSEG,,$SWTCH
1732 001363 004462 004421 $MPADR,,$MZRO
1733 001364 004050 004167 $MPCNK,,$MPSET
1734 001365 004536 003235 $PMAP,,$PNTMG
1735 ;E FIELD = 3
1736 001366 005405 005242 $YESNO,,$OPTLK
1737 001367 005452 005403 $TPOCT,,$NOYES
1738 001370 005446 005450 $TPCNV,,$TPDEC
1739 001371 005254 005205 $TALTM,,$TTLK
1740 001372 005220 005574 $TTYIN,,$TISIX
1741 001373 001267 001267 $UOERX,,$UOERX
1742 001374 006002 006005 $PSIXF,,$PSIX
1743 001375 006044 006047 $POCSF,,$POCS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 9
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0120
1744 ;E FIELD = 4
1745 001376 003657 003721 $CINVAL,,$MEMMP
1746 001377 003715 003711 $CWRTB,,$CFLUSH
1747 001400 002275 002107 $FSELECT,,$MTROP
1748 001401 002321 002323 $FRD36,,$FREAD
1749 001402 001267 002317 $UOERX,,$FRD8
1750 001403 002062 003306 $CLOCK,,$END
1751 001404 002366 002337 $FATAL,,$ERHLT
1752 001405 001267 003342 $UOERX,,$EOP
1753
1754 001406 200 00 0 00 000040 $EG4: MOVE JOBUUO ;IMMEDIATE CHARACTER PRINT
1755 001407 603 00 0 00 000040 TLNE (1B12)
1756 JRST [PNTCHF
1757 001410 254 00 0 00 007076 JRST $EGX]
1758 001411 037 12 0 00 000000 PNTCHR
1759 001412 254 00 0 00 001423 JRST $EGX
1760
1761 001413 200 00 0 00 000040 $EG177: MOVE JOBUUO ;IMMEDIATE MESSAGE PRINT
1762 001414 603 00 0 00 000200 TLNE (4B12)
1763 JRST [PSIXLF
1764 001415 254 00 0 00 007100 JRST $EGX]
1765 001416 603 00 0 00 000100 TLNE (2B12)
1766 JRST [PSIXL
1767 001417 254 00 0 00 007102 JRST $EGX]
1768 001420 603 00 0 00 000040 TLNE (1B12)
1769 JRST [PNTALF
1770 001421 254 00 0 00 007104 JRST $EGX]
1771 001422 037 17 0 00 000000 PNTAL
1772 001423 262 17 0 00 000000 $EGX: GET 0
1773 001424 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 10
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0121
1774 SUBTTL *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
1775
1776 S^;*********************************************************************^
1777 ;*THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
1778 ;*A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
1779 ;*INFORMATION. THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
1780 ;*SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
1781 ;*ERROR, AND BELL ON ERROR.
1782 ;*ERROR LOOPING ROUTINE
1783 ;*EITHER CONTINUES IN-LINE
1784 ;*OR TRANSFERS TO E FIELD OF UUO
1785 ;*CHECKS PC OF ERROR TO DETERMINE LOOPING
1786 S^;*********************************************************************^
1787
1788 001425 402 00 0 00 007746 %ERLP: SETZM %ERFLG#
1789 001426 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET AC FIELD OF UUO
1790 001427 242 00 0 00 777751 LSH AC0,-^D23
1791 001430 405 00 0 00 000017 ANDI AC0,17
1792 001431 306 00 0 00 000002 CAIN AC0,2
1793 001432 254 00 0 00 001451 JRST %ERLP2 ; 2 = LOOP IF ANY ERROR
1794 001433 306 00 0 00 000001 CAIN AC0,1
1795 001434 254 00 0 00 001445 JRST %ERLP1 ; 1 = LOOP IF PC'S MATCH
1796 001435 306 00 0 00 000000 CAIN AC0,0
1797 001436 254 00 0 00 001441 JRST %ERLP0 ; 0 = PC'S, REPT, REPT1 & ERROR
1798 001437 262 17 0 00 000000 GET AC0
1799 001440 254 00 0 00 001267 JRST $UOERX
1800 001441 476 00 0 00 007746 %ERLP0: SETOM %ERFLG
1801 001442 316 15 0 00 007752 CAMN REPT,%RP ;ARE REPEAT COUNTS SAME AS ERROR ?
1802 001443 312 16 0 00 007753 CAME REPT1,%RP1 ;(AT RIGHT PLACE IN TEST LOOPS ?)
1803 001444 254 00 0 00 001461 JRST %ERX1 ;NO, CONTINUE IN LINE
1804 001445 550 00 0 17 777777 %ERLP1: HRRZ AC0,-1(P) ;GET PC OF LOOP CALL FROM STACK
1805 001446 275 00 0 00 000002 SUBI AC0,2 ;LESS 2
1806 001447 312 00 0 00 030052 CAME AC0,ERRPC ;NOW EQUAL TO PC OF ERROR CALL ?
1807 001450 254 00 0 00 001461 JRST %ERX1 ;NO, CONTINUE IN LINE
1808 001451 260 17 0 00 004751 %ERLP2: GO $SWTCH ;READ SWITCHES INTO AC0
1809 001452 607 00 0 00 004000 TLNN LOOPER ;LOOP ON ERROR ?
1810 001453 402 00 0 00 030116 SETZM SCOPE ;NO ..........CLEAR LOOP CONTROL
1811 001454 331 00 0 00 030116 SKIPL SCOPE ;YES ...WAS THERE AN ERROR ?
1812 001455 254 00 0 00 001461 JRST %ERX1 ;NO, CONTINUE IN LINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 11
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0122
1813 001456 262 17 0 00 000000 %ERX: GET AC0 ;RESTORE AC0
1814 001457 274 17 0 00 007106 SUB P,[1,,1] ;CORRECT PUSH LIST POINTER FOR NO "RTN"
1815 001460 254 00 1 00 000040 JRST @JOBUUO ;TRANSFER TO E FIELD OF UUO
1816
1817 001461 262 17 0 00 000000 %ERX1: GET AC0 ;RESTORE AC0
1818 001462 263 17 0 00 000000 RTN
1819
1820 S^;*********************************************************************^
1821 ;*REPEAT LOOP ROUTINE
1822 ;*EITHER CONTINUES IN-LINE
1823 ;*OR TRANSFERS TO E FIELD OF UUO
1824 S^;*********************************************************************^
1825
1826 001463 373 00 0 00 030115 %REPT: SOSLE REPTU# ;REPEAT TEST SECTION ?
1827 001464 254 00 0 00 001456 JRST %ERX ;YES, E FIELD OF UUO IS RETURN
1828 001465 254 00 0 00 001461 JRST %ERX1 ;NO, CONTINUE IN LINE
1829
1830 S^;*********************************************************************^
1831 ;*COMMON ERROR HANDLER AC SAVE/RESTORE
1832 S^;*********************************************************************^
1833
1834 001466 202 00 0 00 007741 %EACS: MOVEM 0,%AC0#
1835 001467 202 01 0 00 007742 MOVEM 1,%AC1#
1836 001470 202 02 0 00 007743 MOVEM 2,%AC2#
1837 001471 202 03 0 00 007744 MOVEM 3,%AC3#
1838 001472 263 17 0 00 000000 RTN
1839
1840 001473 200 00 0 00 007741 %EACR: MOVE 0,%AC0
1841 001474 200 01 0 00 007742 %EACR1: MOVE 1,%AC1
1842 001475 200 02 0 00 007743 MOVE 2,%AC2
1843 001476 200 03 0 00 007744 MOVE 3,%AC3
1844 001477 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 12
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0123
1845 ;*ERROR REPORTING ROUTINE
1846 S^;*********************************************************************^
1847
1848 001500 200 00 0 00 000040 %ERUUO: MOVE LUUO
1849 001501 202 00 0 00 007751 MOVEM %LUUO#
1850 001502 476 00 0 00 030116 SETOM SCOPE
1851 001503 332 00 0 00 030040 SKIPE KAIFLG
1852 001504 332 00 0 00 030037 SKIPE USER
1853 001505 254 00 0 00 001510 JRST .+3
1854 001506 332 00 0 00 030055 SKIPE MARGIN ;IF KI10, TURN OFF MARGINS
1855 001507 7 000 14 0 00 007107 DATAO APR,[IMGNOF,,ISPDOF]
1856 001510 262 17 0 00 000000 GET AC0
1857 001511 332 00 0 00 030512 SKIPE %ERHI1 ;ANY USERS INSTRUCTION ?
1858 001512 256 00 0 00 030512 XCT %ERHI1 ;YES, DO USERS ROUTINE
1859 001513 260 17 0 00 001466 GO %EACS ;SAVE AC0 - AC3
1860 001514 402 00 0 00 030117 SETZM %CORFLG#
1861 001515 402 00 0 00 030121 SETZM %ACTFL#
1862 001516 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS
1863 001517 260 17 0 00 004751 GO $SWTCH
1864 001520 550 03 0 17 000000 HRRZ 3,(P) ;GET <ADDRESS> OF ERROR CALL FROM STACK
1865 001521 275 03 0 00 000001 SUBI 3,1
1866 001522 312 03 0 00 030052 CAME 3,ERRPC ;SKIP IF SAME ERROR
1867 001523 254 00 0 00 001533 JRST %ERPNT
1868 001524 336 00 0 00 007746 SKIPN %ERFLG
1869 001525 254 00 0 00 001531 JRST .+4 ;DON'T CHECK REPEAT COUNTS
1870 001526 316 15 0 00 007752 CAMN REPT,%RP
1871 001527 312 16 0 00 007753 CAME REPT1,%RP1
1872 001530 254 00 0 00 001533 JRST %ERPNT ;DIFFERENT, PRINT ERROR
1873 001531 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ?
1874 001532 254 00 0 00 001734 JRST %ERSW1 ;THIS ERROR ALREADY REPORTED ONCE.
1875
1876 ;*BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
1877 S^;*********************************************************************^
1878
1879 001533 202 15 0 00 007752 %ERPNT: MOVEM REPT,%RP# ;SAVE REPEAT COUNTS
1880 001534 202 16 0 00 007753 MOVEM REPT1,%RP1#
1881 001535 202 03 0 00 030052 MOVEM 3,ERRPC ;SAVE ERROR CALL ADDRESS
1882 001536 603 00 0 00 040000 TLNE 0,NOPNT
1883 001537 254 00 0 00 001734 JRST %ERSW1
1884 001540 037 01 0 00 000026 PFORCE ;OVERRIDE CONTROL O
1885 001541 402 00 0 00 007745 SETZM %ERCNT#
1886 001542 335 00 0 00 030043 SKIPGE MONCTL ;DIAG MON OR SYS EXER ?
1887 001543 254 00 0 00 001746 JRST %ERPRA ;YES, GO PRINT TITLE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 13
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0124
1888 SALL
1889 001544 336 00 0 00 030047 %ERPRB: SKIPN PASCNT
1890 001545 254 00 0 00 001551 JRST .+4 ;DON'T PRINT PASS COUNTER ON FIRST PASS
1891 001546 037 02 0 00 007110 PMSG <^TEST PASS COUNT = >
1892 001547 200 00 0 00 030047 MOVE 0,PASCNT
1893 001550 037 15 0 00 000000 PNTDEC ;PRINT TEST PASS COUNTER
1894 001551 037 02 0 00 007114 PMSG <^PC= >
1895 001552 201 00 0 03 000000 MOVEI 0,(3)
1896 001553 037 06 0 00 000000 PNT6 ;PRINT PC OF ERROR CALL.
1897 001554 037 02 0 00 007116 PMSG <^SWITCHES = >
1898 001555 200 00 0 00 030046 MOVE CONSW
1899 001556 037 13 0 00 000000 PNTHW ;PRINT SWITCHES AT ERROR
1900 001557 260 17 0 00 001473 GO %EACR
1901 001560 332 00 0 00 030514 SKIPE %ERHI3 ;IF NON-ZERO, XCT USERS ROUTINE
1902 001561 256 00 0 00 030514 XCT %ERHI3
1903
1904 001562 550 03 1 00 030052 HRRZ 3,@ERRPC ;GET "E FIELD" OF ERROR CALL
1905 001563 200 00 0 00 030046 MOVE 0,CONSW ;AC3 HAS THE ERROR CALL ADDR IN IT
1906 001564 603 00 0 00 000200 TLNE TXTINH ;TEXT INHIBITED ?
1907 001565 254 00 0 00 001606 JRST %ERPR2 ;YES
1908 001566 201 00 0 00 007121 MOVEI 0,SIXBTZ <^ERROR IN >
1909 001567 554 01 0 03 000000 HLRZ 1,(3) ;GET NAME OF FAILING TEST
1910 001570 322 01 0 00 001576 JUMPE 1,%ERPR1 ;JUMP IF NO TEST NAME
1911 001571 037 14 0 00 000003 PSIXL ;*DEFINE T=0 TO INHIBIT TEST NAME
1912 001572 200 00 0 00 000001 MOVE 0,1
1913 001573 037 14 0 00 000003 PSIXL ;REPORT NAME OF FAILING TEST
1914 001574 201 00 0 00 007123 MOVEI 0,SIXBTZ < - >
1915 001575 254 00 0 00 001577 JRST .+2
1916 001576 201 00 0 00 007124 %ERPR1: MOVEI 0,SIXBTZ <^>
1917 001577 550 01 0 03 000000 HRRZ 1,(3) ;GET ADDRESS OF FUNCTION MSG
1918 001600 200 01 0 01 000000 MOVE 1,(1) ;GET MESSAGE
1919 001601 316 01 0 00 007115 CAMN 1,[SIXBIT\_\] ;BLANK MESSAGE ?
1920 001602 254 00 0 00 001606 JRST %ERPR2 ;JUMP IF NO FUNCTION CALLED OUT.
1921 001603 037 14 0 00 000003 PSIXL
1922 001604 550 00 0 03 000000 HRRZ 0,(3) ;GET MESSAGE ADDRESS AGAIN
1923 001605 037 14 0 00 000003 PSIXL ;REPORT FUNCTION BEING TESTED.
1924 001606 476 00 0 00 030123 %ERPR2: SETOM %DISCR# ;SET 'DISCREPANCY FLAG'.
1925 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 14
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0125
1926 ;*GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
1927 S^;*********************************************************************^
1928 SALL
1929 001607 200 00 0 00 007751 %ERP2B: MOVE %LUUO
1930 001610 241 00 0 00 000015 ROT 0,15 ;GET THE X ARGUEMENT
1931 001611 405 00 0 00 000017 ANDI 0,17
1932 001612 326 00 0 00 001614 JUMPN 0,.+2 ;PRINT 12 OCTAL DIGITS IF X=0
1933 001613 201 00 0 00 000014 MOVEI 0,14
1934 001614 303 00 0 00 000014 CAILE 0,14 ;MAKE SURE THAT X IS A LEGAL ARGUMENT
1935 001615 037 15 0 00 000004 FATAL ;PROGRAM CALL ERROR
1936 001616 242 00 0 00 000027 LSH 0,^D<35-12> ;PUT X IN AC FIELD
1937 001617 270 00 0 00 007125 ADD 0,[PNTA] ;PRINT THE X ARGUEMENT
1938 001620 202 00 0 00 007610 MOVEM 0,%ERIN2
1939 001621 201 00 0 00 007126 MOVEI 0,SIXBTZ <^CORRECT: >
1940 001622 554 02 0 03 000001 HLRZ 2,1(3) ;GET ADDRESS OF EXPECTED TEST RESULTS
1941 001623 326 02 0 00 001626 JUMPN 2,.+3
1942 001624 402 00 0 00 030123 SETZM %DISCR ;NO 'CORRECT RESULT' TYPEOUT
1943 001625 254 00 0 00 001645 JRST %ERPR3
1944 001626 476 00 0 00 030117 SETOM %CORFLG
1945 001627 303 02 0 00 000003 CAILE 2,3 ;ARE TEST RESULTS IN AC THAT HAS BEEN SAVED?
1946 001630 254 00 0 00 001640 JRST %ERP2A
1947 001631 306 02 0 00 000001 CAIN 2,1 ;AC1?
1948 001632 200 01 0 00 007742 MOVE 1,%AC1
1949 001633 306 02 0 00 000002 CAIN 2,2 ;AC2?
1950 001634 200 01 0 00 007743 MOVE 1,%AC2
1951 001635 306 02 0 00 000003 CAIN 2,3 ;AC3?
1952 001636 200 01 0 00 007744 MOVE 1,%AC3
1953 001637 254 00 0 00 001641 JRST .+2
1954 001640 200 01 0 02 000000 %ERP2A: MOVE 1,(2)
1955 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 15
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0126
1956 ;*AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
1957 S^;*********************************************************************^
1958 SALL
1959 001641 037 14 0 00 000003 PSIXL ;CORRECT RESULTS.
1960 001642 200 00 0 00 000001 MOVE 0,1
1961 001643 264 00 0 00 007607 JSR %ERIN1 ;REPORT CORRECT DATA
1962 001644 202 01 0 00 030120 MOVEM 1,%COREC# ;SAVE CORRECT DATA
1963 001645 201 00 0 00 007130 %ERPR3: MOVEI 0,SIXBTZ <^ACTUAL: >
1964 001646 550 02 0 03 000001 HRRZ 2,1(3) ;GET ADDRESS OF ACTUAL TEST RESULTS.
1965 001647 326 02 0 00 001652 JUMPN 2,.+3
1966 001650 402 00 0 00 030123 SETZM %DISCR ;NO 'ACTUAL RESULT' TYPEOUT.
1967 001651 254 00 0 00 001671 JRST %ERPR4
1968 001652 476 00 0 00 030121 SETOM %ACTFL
1969 001653 303 02 0 00 000003 CAILE 2,3 ;ARE ACTUAL TEST RESULTS IN AC THAT IS SAVED?
1970 001654 254 00 0 00 001664 JRST %ERP3A
1971 001655 306 02 0 00 000001 CAIN 2,1 ;AC1?
1972 001656 200 01 0 00 007742 MOVE 1,%AC1
1973 001657 306 02 0 00 000002 CAIN 2,2 ;AC2?
1974 001660 200 01 0 00 007743 MOVE 1,%AC2
1975 001661 306 02 0 00 000003 CAIN 2,3 ;AC3?
1976 001662 200 01 0 00 007744 MOVE 1,%AC3
1977 001663 254 00 0 00 001665 JRST .+2
1978 001664 200 01 0 02 000000 %ERP3A: MOVE 1,(2)
1979 LALL
1980 ;*AC1 CONTAINS THE ACTUAL TEST RESULTS.
1981 S^;*********************************************************************^
1982 SALL
1983 001665 037 14 0 00 000003 PSIXL ;ACTUAL RESULTS
1984 001666 200 00 0 00 000001 MOVE 0,1
1985 001667 264 00 0 00 007607 JSR %ERIN1 ;REPORT ACTUAL DATA
1986 001670 202 01 0 00 030122 MOVEM 1,%ACTUL# ;SAVE ACTUAL DATA
1987
1988 001671 201 00 0 00 007132 %ERPR4: MOVEI 0,SIXBTZ <^DISCREP: >
1989 001672 336 00 0 00 030123 SKIPN %DISCR ;REPORT DATA DISCREPANCY IF BOTH CORRECT AND
1990 001673 254 00 0 00 001702 JRST %ERPR5 ;ACTUAL DATA REPORTED.
1991 001674 200 01 0 00 030120 MOVE 1,%COREC
1992 001675 430 01 0 00 030122 XOR 1,%ACTUL ;XOR CORRECT & ACTUAL DATA
1993 001676 037 14 0 00 000003 PSIXL
1994 001677 200 00 0 00 000001 MOVE 0,1
1995 001700 264 00 0 00 007607 JSR %ERIN1 ;REPORT DISC BETWEEN COR & ACT
1996 001701 202 01 0 00 030123 MOVEM 1,%DISCR ;SAVE DISCREPANCY DATA
1997 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 16
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0127
1998 ;*PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
1999 S^;*********************************************************************^
2000
2001 001702 200 00 0 00 030046 %ERPR5: MOVE 0,CONSW
2002 001703 603 00 0 00 000200 TLNE TXTINH ;TEXT INHIBITED ?
2003 001704 254 00 0 00 001714 JRST %ERPR6 ;YES
2004 001705 554 01 0 03 000002 HLRZ 1,2(3) ;GET ADDRESS OF ASCIZ TEXT.
2005 001706 200 01 0 01 000000 MOVE 1,(1) ;GET MESSAGE
2006 001707 316 01 0 00 007115 CAMN 1,[SIXBIT\_\] ;BLANK MESSAGE ?
2007 001710 254 00 0 00 001714 JRST %ERPR6 ;EXIT FROM ERROR PRINT IF NO DIAGNOSTIC TEXT.
2008 001711 037 00 0 00 030242 PCRL
2009 001712 554 00 0 03 000002 HLRZ 0,2(3) ;GET MESSAGE ADDRESS AGAIN
2010 001713 037 14 0 00 000003 PSIXL
2011 001714 037 00 0 00 030242 %ERPR6: PCRL
2012 001715 550 00 0 03 000002 HRRZ 0,2(3) ;GET ADDRESS OF ADDITIONAL ERROR PRINT ROUTINE
2013 001716 260 17 0 00 001474 GO %EACR1
2014 001717 202 00 0 00 007750 MOVEM 0,%ERXTR#
2015 001720 322 00 0 00 001727 JUMPE 0,%ERMORE ;JUMP IF NONE
2016 001721 200 00 0 00 030046 MOVE 0,CONSW
2017 001722 603 00 0 00 000200 TLNE 0,TXTINH ;TEXT INHIBITED ?
2018 001723 254 00 0 00 001727 JRST %ERMORE ;YES, NO ADDITIONAL PRINT
2019 001724 200 00 0 00 007741 MOVE 0,%AC0
2020 001725 260 17 1 00 007750 GO @%ERXTR ;XFER TO PRINT ROUTINE, RETURN TO ERMORE
2021 001726 202 00 0 00 007741 MOVEM 0,%AC0
2022 001727 200 00 0 00 007741 %ERMORE:MOVE 0,%AC0
2023 001730 256 00 0 00 030101 XCT ERMORE ;TO ADD ROUTINE PLACE XFR AT ERMORE
2024 ;IN "FIXED"
2025 001731 260 17 0 00 001466 GO %EACS
2026 001732 260 17 0 00 003235 GO $PNTMG ;IF KI10, PRINT MARGINS
2027 001733 260 17 0 00 004751 GO $SWTCH
2028
2029 ;*EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
2030 S^;*********************************************************************^
2031 001734 260 17 0 00 005254 %ERSW1: GO $TALTM ;ALTMODE CHECK
2032 001735 254 00 0 00 001741 JRST .+4 ;NONE
2033 001736 201 00 0 00 001741 MOVEI .+3 ;SAVE ADDRESS FOR CONTINUE
2034 001737 202 00 0 00 000130 MOVEM JOBOPC
2035 001740 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER
2036 001741 200 03 0 00 030046 MOVE 3,CONSW
2037 001742 607 03 0 00 002000 TLNN 3,ERSTOP ;IS 'HALT ON ERROR' SWITCH SET, (SWITCH ERSTOP)
2038 001743 254 00 0 00 001752 JRST %ERSW2 ;NO
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 17
SUBRTM MAC 23-Mar-78 15:08 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0128
2039 ;*EXECUTE HALT IF SWITCH ERSTOP SET.
2040 S^;*********************************************************************^
2041
2042 001744 260 17 0 00 001473 %ERS1A: GO %EACR ;RESTORE AC'S
2043 001745 254 00 0 00 002337 JRST $ERHLT ;USE SUBROUTINE ERROR HALT
2044
2045 001746 336 00 0 00 007747 %ERPRA: SKIPN %ERFST# ;PRINT PROGRAM NAME
2046 001747 037 04 0 00 000002 PNTNM
2047 001750 476 00 0 00 007747 SETOM %ERFST
2048 001751 254 00 0 00 001544 JRST %ERPRB
2049
2050 ;*EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
2051 S^;*********************************************************************^
2052
2053 001752 607 03 0 00 004000 %ERSW2: TLNN 3,LOOPER
2054 001753 402 00 0 00 030116 SETZM SCOPE ;CLEAR SCOPE LOOP CONTROL
2055 001754 350 01 0 00 007745 AOS 1,%ERCNT ;INCREMENT ERROR COUNT
2056 001755 504 01 0 00 030052 HRL 1,ERRPC
2057 001756 336 00 0 00 030041 SKIPN KLFLG ;NO LIGHTS ON KL10
2058 001757 332 00 0 00 030037 SKIPE USER
2059 001760 254 00 0 00 001762 JRST %ERSW3
2060 001761 7 004 14 0 00 000001 DATAO PI,1 ;DISPLAY ERROR PC,ERROR COUNT
2061
2062 ;*RING TTY BELL IF DING SWITCH IS SET.
2063 S^;*********************************************************************^
2064
2065 001762 603 03 0 00 010000 %ERSW3: TLNE 3,DING
2066 001763 037 01 0 00 000007 PBELL
2067
2068 ;*RETURN TO ERROR CALL ADDRESS+1
2069 S^;*********************************************************************^
2070
2071 001764 260 17 0 00 001474 %EXCAL: GO %EACR1
2072 001765 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
2073 001766 254 00 0 00 001772 JRST %EXCL1 ;NO, CONTINUE PROGRAM
2074 001767 200 00 0 00 030053 MOVE 0,ERRTLS ;YES
2075 001770 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ?
2076 001771 254 00 0 00 030061 JRST $BEND2 ;END OF PROGRAM
2077 001772 200 00 0 00 007741 %EXCL1: MOVE 0,%AC0
2078 001773 332 00 0 00 030513 SKIPE %ERHI2 ;ANY USERS INSTRUCTION ?
2079 001774 256 00 0 00 030513 XCT %ERHI2 ;YES, DO USERS ROUTINE
2080 001775 332 00 0 00 030040 SKIPE KAIFLG
2081 001776 332 00 0 00 030037 SKIPE USER
2082 001777 254 00 0 00 002002 JRST .+3
2083 002000 332 00 0 00 030055 SKIPE MARGIN
2084 002001 7 000 14 0 00 030055 DATAO APR,MARGIN ;KI10, RESET MARGINS
2085 002002 263 17 0 00 000000 RTN ;CONTINUE PROGRAM
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 18
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0129
2086 SUBTTL *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
2087
2088 S^;*********************************************************************^
2089 ;*THESE ROUTINES ARE CONCERNED WITH DATA TRANSFER FOR THE KL10 CPU
2090 ;*THEY USE THE DTE-20 AND THE DTE-20 COMMUNICATIONS AREA
2091 S^;*********************************************************************^
2092
2093 002003 332 00 0 00 030041 $DTEIN: SKIPE KLFLG
2094 002004 332 00 0 00 030037 SKIPE USER
2095 002005 263 17 0 00 000000 RTN
2096 002006 402 00 0 00 007652 SETZM $DTER1# ;CLEAR DTE20 OUT-OF-SEQUENCE COUNT
2097 002007 402 00 0 00 000140 SETZM 140
2098 002010 402 00 0 00 000444 SETZM $DTFLG
2099 002011 200 00 0 00 007134 MOVE 0,[140,,141]
2100 002012 251 00 0 00 000177 BLT 0,177 ;CLEAR DTE20 EPT LOCATIONS
2101 002013 200 00 0 00 007135 MOVE 0,[$DTFLG,,$DTCLK]
2102 002014 251 00 0 00 000452 BLT 0,$DTSEQ ;CLEAR DTE COMMUNICATIONS AREA
2103 002015 200 00 0 00 000453 MOVE AC0,$DTOPR ;GET OPERATIONAL DTE #
2104 002016 436 00 0 00 002054 ORM AC0,$$DTE0 ;INSERT IN DTE I/O INST'S
2105 002017 436 00 0 00 002027 ORM AC0,$$DTE1
2106 002020 436 00 0 00 002105 ORM AC0,$$DTE2
2107 002021 200 00 0 00 007136 MOVE AC0,[JSR $DTRPT];LOAD INTERRUPT TRANSFER INSTR.
2108 002022 202 00 0 00 000142 MOVEM AC0,142 ;PUT IN THE DTE-20 AREA
2109 002023 202 00 0 00 000152 MOVEM AC0,152
2110 002024 202 00 0 00 000162 MOVEM AC0,162
2111 002025 202 00 0 00 000172 MOVEM AC0,172
2112 002026 263 17 0 00 000000 RTN ;EXIT
2113
2114 S^;*********************************************************************^
2115 ;*DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE
2116 S^;*********************************************************************^
2117
2118 002027 $$DTEI:
2119 002027 7 200 20 0 00 001000 $$DTE1: CONO DTE,DNG10C ;CLEAR THE 10 DOORBELL BIT
2120 002030 336 00 0 00 000445 SKIPN $DTCLK ;THIS DTE20 CLOCK INTERRUPT ?
2121 002031 254 00 0 00 002037 JRST $$DTER ;NO FLAGS SET, IMPOSSIBLE CONDITION
2122
2123 002032 402 00 0 00 000445 $CLKDTE:SETZM $DTCLK ;CLEAR CLOCK FLAG
2124 002033 476 00 0 00 030045 SETOM CLOCKF ;SET DIAG SEGMENT CLOCK FLAG
2125 002034 332 00 0 00 000446 SKIPE $DTCI ;ANY XCT INSTRUCTION ?
2126 002035 256 00 0 00 000446 XCT $DTCI ;YES, DO USERS REQUEST
2127 002036 254 12 1 00 007601 JEN @$DTRPT ;RESUME PROGRAM
2128
2129 002037 261 17 0 00 000000 $$DTER: PUT 0 ;REPORT DTE ERROR
2130 PMSGF <^SPURIOUS DTE INT^>^
2131 002040 037 04 0 00 007137 PSIXMF [SIXBIT\^SPURIOUS DTE INT^_\]^
2132 002041 262 17 0 00 000000 GET 0
2133 002042 254 12 1 00 007601 JEN @$DTRPT ;RESUME
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 19
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0130
2134 S^;*********************************************************************^
2135 ;*DTE20 COMMUNICATIONS ROUTINE
2136 S^;*********************************************************************^
2137
2138 002043 332 00 0 00 030041 $DTEXX: SKIPE KLFLG
2139 002044 332 00 0 00 030037 SKIPE USER
2140 002045 263 17 0 00 000000 RTN
2141
2142 002046 332 00 0 00 000444 $DTEX1: SKIPE $DTFLG ;DTE20 INTERRUPT FLAG SET?
2143 002047 350 00 0 00 007652 AOS $DTER1 ;YES, NEVER FINISHED LAST OPERATION
2144
2145 002050 402 00 0 00 000444 $DTEX2: SETZM $DTFLG ;INITIALIZE INTERRUPT FLAG
2146 002051 202 00 0 00 000451 MOVEM AC0,$DTCMD ;SETUP 10 TO 11 COMMAND WORD
2147 002052 402 00 0 00 000450 SETZM $DTF11 ;CLEAR RESPONSE WORD
2148 002053 350 00 0 00 000452 AOS $DTSEQ ;COUNT DTE20 OPERATION
2149
2150 002054 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11 ;RING BELL
2151 002055 336 00 0 00 000444 SKIPN $DTFLG ;WAIT FOR DTE20 COMM INTERRUPT
2152 002056 254 00 0 00 002055 JRST .-1
2153
2154 002057 402 00 0 00 000444 $DTEX3: SETZM $DTFLG ;CLEAR INTERRUPT FLAG
2155 002060 200 00 0 00 000450 MOVE AC0,$DTF11 ;PUT RESPONSE IN AC0
2156 002061 263 17 0 00 000000 RTN ;RESUME CALLING SUBROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 20
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0131
2157 S^;*********************************************************************^
2158 ;*this routine looks @ ac0 to determine whether to enable/disable
2159 ;*setting clock ticked flag "clockf" IN THE 10 WHEN A POWER LINE
2160 ;*CLOCK CYCLE OCCURS IN THE 11 (EVERY 16.67 MS)
2161 ;*or TO executE an instruction upon occurrence of the clock tick
2162 ;* ac0 = 0 for disable
2163 ;* ac0 = -1 for enable
2164 ;* AC0 = INST FOR ENABLE & EXECUTE INST
2165 ;* AC0 = 0,,X FOR WAIT X THEN CLOCK XCT OF INST IN AC1
2166 ;* AC0 = 0,,1 FOR READ PRESENT CLOCK COUNT SINCE ENABLED
2167 s^;*********************************************************************^
2168
2169 002062 306 00 0 00 000001 $clock: CAIN AC0,1
2170 002063 254 00 0 00 002103 JRST $CLKRD ;READ CLOCK COUNT
2171 002064 402 00 0 00 000446 SETZM $DTCI
2172 002065 322 00 0 00 002075 JUMPE AC0,$CLKOF ;ENABLE the 11 clock to 10?
2173 002066 316 00 0 00 007143 CAMN AC0,[-1] ;YES ...DOES AC0 HAVE -1?
2174 002067 254 00 0 00 002073 JRST $CLKON ;YES ...NOTIFY WHEN CLOCK TICKS
2175 002070 607 00 0 00 777777 TLNN AC0,-1 ;IS AC0 = 0,,X ?
2176 002071 254 00 0 00 002077 JRST $CLKWT ;YES...(AC1) IS INST, AC0 = WAIT COUNT
2177 002072 202 00 0 00 000446 MOVEM AC0,$DTCI ;INST IN AC0, SAVE
2178
2179 002073 201 00 0 00 001001 $CLKON: MOVEI AC0,1001 ;TURN CLOCK ON
2180 002074 254 00 0 00 002105 JRST $CLKXX
2181
2182 002075 201 00 0 00 001000 $clkof: MOVEI ac0,1000 ;TURN CLOCK OFF
2183 002076 254 00 0 00 002043 PJRST $DTEXX
2184
2185 002077 202 01 0 00 000446 $CLKWT: MOVEM 1,$DTCI ;(AC1) = INST, (AC0) = WAIT COUNT
2186 002100 202 00 0 00 000447 MOVEM AC0,$DTT11 ;SETUP DATA WORD TO PDP-11
2187 002101 201 00 0 00 001002 MOVEI AC0,1002
2188 002102 254 00 0 00 002105 JRST $CLKXX
2189
2190 002103 201 00 0 00 001003 $CLKRD: MOVEI AC0,1003 ;READ CLOCK COUNT
2191 002104 254 00 0 00 002043 PJRST $DTEXX ;CLOCK COUNT RETURNED IN AC0
2192
2193 002105 $CLKXX:
2194 002105 7 200 20 0 00 000021 $$DTE2: CONO DTE,21 ;TURN DTE20 INTERRUPTS ON
2195 002106 254 00 0 00 002043 PJRST $DTEXX
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 21
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0132
2196 S^;*********************************************************************^
2197 ;*THIS ROUTINE CONTROLS THE DK20 METER FOR NORMAL DIAGNOSTICS
2198 ;*ALLOWS METER TO BE ENABLED/DISABLED AND FOR EVERY METER
2199 ;*PERIOD THE "CLOCKF" FLAG IS SET AND AN OPTIONAL INSTRUCTION
2200 ;*EXECUTED. THE METER PERIOD IS SET FOR 16.67 MS (60 HZ).
2201 ;* OR FOR 20 MS FOR A 50HZ PROCESSOR.
2202 S^;*********************************************************************^
2203
2204 002107 306 00 0 00 000001 $MTROP: CAIN AC0,1
2205 002110 254 00 0 00 002136 JRST $MTRRD ;0,,1 = READ CLOCK COUNT
2206 002111 7 024 20 0 00 000000 CONO MTR,0 ;CLEAR INTERRUPT ASSIGNMENT
2207 002112 7 020 20 0 00 400000 CONO TIM,400000 ;CLEAR TIMER
2208 002113 402 00 0 00 007603 SETZM $MTRI
2209 002114 402 00 0 00 007604 SETZM $MTRWC
2210 002115 322 00 0 00 002134 JUMPE AC0,$MTROF ;0,,0 = DISABLE
2211 002116 316 00 0 00 007143 CAMN AC0,[-1]
2212 002117 254 00 0 00 002123 JRST $MTRON ;-1 = ENABLE
2213 002120 607 00 0 00 777777 TLNN AC0,-1
2214 002121 254 00 0 00 002140 JRST $MTRW ;0,,X = WAIT
2215 002122 202 00 0 00 007603 MOVEM AC0,$MTRI ;XCT INST
2216
2217 002123 200 00 0 00 007144 $MTRON: MOVE [JSR $MTRIR]
2218 002124 202 00 0 00 000514 MOVEM 514 ;SETUP METER VECTOR
2219 002125 402 00 0 00 007605 SETZM MTRCNT ;CLEAR METER COUNT
2220 002126 336 00 0 00 030505 SKIPN CYCL60
2221 002127 7 020 20 0 00 463203 CONO TIM,463203 ;60 HZ
2222 002130 332 00 0 00 030505 SKIPE CYCL60
2223 002131 7 020 20 0 00 463720 CONO TIM,463720 ;50 HZ
2224 002132 7 024 20 0 00 000001 CONO MTR,1 ;ON PI CHN 1
2225 002133 263 17 0 00 000000 RTN
2226
2227 002134 7 024 20 0 00 000000 $MTROF: CONO MTR,0 ;TURN METER OFF
2228 002135 263 17 0 00 000000 RTN
2229
2230 002136 200 00 0 00 007605 $MTRRD: MOVE 0,MTRCNT ;READ METER COUNT
2231 002137 263 17 0 00 000000 RTN
2232
2233 002140 202 01 0 00 007603 $MTRW: MOVEM 1,$MTRI ;WAIT, INSTRUCTION IN AC1
2234 002141 202 00 0 00 007604 MOVEM 0,$MTRWC ;WAIT COUNT IN AC0
2235 002142 254 00 0 00 002123 JRST $MTRON
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 22
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0133
2236 S^;*********************************************************************^
2237 ;*METER INTERRUPT ROUTINE
2238 S^;*********************************************************************^
2239
2240 002143 000000 000000 $MTRIR: 0 ;METER INTERRUPT ROUTINE
2241 002144 7 024 20 0 00 000000 CONO MTR,0 ;CLEAR METER
2242 002145 336 00 0 00 030505 SKIPN CYCL60
2243 002146 7 020 20 0 00 063203 CONO TIM,63203 ;RESET PERIOD
2244 002147 332 00 0 00 030505 SKIPE CYCL60
2245 002150 7 020 20 0 00 063720 CONO TIM,63720
2246 002151 7 024 20 0 00 000001 CONO MTR,1 ;REENABLE
2247 002152 350 00 0 00 007605 AOS MTRCNT ;COUNT CLOCK INTERVAL
2248 002153 332 00 0 00 007604 SKIPE $MTRWC ;DOING A WAIT ?
2249 002154 254 00 0 00 002161 JRST $MTIR2 ;YES
2250 002155 476 00 0 00 030045 $MTIR1: SETOM CLOCKF ;SET DIAG SEGMENT CLOCK FLAG
2251 002156 332 00 0 00 007603 SKIPE $MTRI ;ANY XCT INSTRUCTION ?
2252 002157 256 00 0 00 007603 XCT $MTRI ;YES, DO USERS REQUEST
2253 002160 254 12 1 00 002143 JEN @$MTRIR ;RESUME PROGRAM
2254
2255 002161 202 00 0 00 007606 $MTIR2: MOVEM 0,$MTRAC
2256 002162 200 00 0 00 007605 MOVE 0,MTRCNT
2257 002163 311 00 0 00 007604 CAML 0,$MTRWC ;WAITED LONG ENOUGH ?
2258 002164 254 00 0 00 002167 JRST $MTIR3 ;YES
2259 002165 200 00 0 00 007606 MOVE 0,$MTRAC ;NOT YET
2260 002166 254 12 1 00 002143 JEN @$MTRIR ;JUST EXIT
2261
2262 002167 200 00 0 00 007606 $MTIR3: MOVE 0,$MTRAC
2263 002170 254 00 0 00 002155 JRST $MTIR1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 23
SUBRTM MAC 23-Mar-78 15:08 PROCESSOR TYPE DETERMINATION SEQ 0134
2264 SUBTTL PROCESSOR TYPE DETERMINATION
2265 S^;*********************************************************************^
2266
2267 002171 402 00 0 00 030505 $CPUTP: SETZM CYCL60
2268 002172 402 00 0 00 030041 SETZM KLFLG
2269 002173 402 00 0 00 030040 SETZM KAIFLG
2270 002174 200 01 0 00 007106 $CPKL: MOVE 1,[1,,1] ;IF KL10, AC1 AFTER BLT WILL CHANGE
2271 002175 251 01 0 00 000001 BLT 1,1
2272 002176 316 01 0 00 007106 CAMN 1,[1,,1]
2273 002177 254 00 0 00 002237 JRST $CPDP6
2274 002200 476 00 0 00 030041 SETOM KLFLG ;KL10 - SET FLAG
2275
2276 002201 332 00 0 00 030037 $CPINI: SKIPE USER
2277 002202 263 17 0 00 000000 RTN ;USER, NO SPECIAL INIT
2278 002203 336 00 0 00 030041 SKIPN KLFLG
2279 002204 254 00 0 00 002251 JRST $CPAII
2280 002205 700500 007577 $CPLII: 700500,,$SBRD1 ;RESET S-BUS DIAG
2281 002206 7 000 00 0 00 000000 BLKI APR,0 ;GET KL10 HARDWARE OPTIONS
2282 002207 602 00 0 00 400000 TRNE 0,1B18 ;50 HZ BIT SET ?
2283 002210 476 00 0 00 030505 SETOM CYCL60 ;YES, SET INDICATOR
2284 002211 606 00 0 00 200000 TRNN 0,1B19 ;CACHE OPTION BIT SET ?
2285 002212 476 00 0 00 030506 SETOM CSHFLG ;NO, INHIBIT CACHE
2286 002213 200 00 0 00 000457 MOVE $DTSWR ;GET INITIAL SWITCHES
2287 002214 603 00 0 00 000004 TLNE CHAIN ;IS "CHAIN MODE" SET ?
2288 002215 476 00 0 00 030056 SETOM $ONETM ;YES, DON'T PRINT ID INFO
2289 002216 332 00 0 00 030043 SKIPE MONCTL ;DIAGNOSTIC MONITOR ?
2290 002217 263 17 0 00 000000 RTN ;YES, NO FURTHER INIT
2291 002220 201 00 0 00 003214 MOVEI $IPGFL ;SETUP INITIALIZATION PAGE FAIL TRAP
2292 002221 202 00 0 00 000502 MOVEM LPGFTR
2293 002222 7 010 24 0 00 000000 CONI PAG,0
2294 002223 620 00 0 00 057777 TRZ 0,57777
2295 002224 7 010 20 1 00 000000 CONO PAG,@0 ;CLEAR EBR
2296 002225 7 010 24 0 00 000000 CONI PAG,0 ;READ EBR
2297 002226 620 00 0 00 620000 TRZ 0,620000 ;CLEAR CACHE & TRPENB
2298 002227 302 00 0 00 000000 CAIE 0,0
2299 002230 254 04 0 00 001016 HALT CPIERR ;NOT CLEAR, FATAL ERROR
2300 002231 7 010 14 0 00 007145 DATAO PAG,[LLPRCN!LLDUSB,,400000] ;CLEAR UBR
2301 002232 7 010 04 0 00 000000 DATAI PAG,0 ;READ UBR
2302 002233 621 00 0 00 747700 TLZ 0,747700 ;CLEAR MISC, CURR & PREV AC BLOCK
2303 002234 302 00 0 00 000000 CAIE 0,0
2304 002235 254 04 0 00 001016 HALT CPIERR ;NOT CLEAR, FATAL ERROR
2305 002236 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 24
SUBRTM MAC 23-Mar-78 15:08 PROCESSOR TYPE DETERMINATION SEQ 0135
2306 002237 476 00 0 00 030040 $CPDP6: SETOM KAIFLG ;KAIFLG=-1=KI10, KAIFLG=0=KA10
2307 002240 255 17 0 00 002241 JFCL 17,.+1
2308 002241 254 00 0 00 002243 JRST $CPKAI ;NOT PDP-6
2309 002242 255 01 0 00 002247 JFCL 1,$PDP6 ;TREAT PDP-6 AS KA10
2310
2311 002243 476 00 0 00 030040 $CPKAI: SETOM KAIFLG
2312 002244 211 00 0 00 000001 MOVNI 0,1
2313 002245 253 00 0 00 002246 AOBJN 0,.+1 ;CARRY INTO BIT 17 - DETERMINES KA/KI
2314 002246 332 00 0 00 000000 SKIPE 0 ;KI10 IF (AC) = 0,,0
2315
2316 002247 402 00 0 00 030040 $PDP6: SETZM KAIFLG ;KA10 IF (AC) = 1,,0
2317 002250 254 00 0 00 002201 JRST $CPINI
2318
2319 002251 336 00 0 00 030040 $CPAII: SKIPN KAIFLG
2320 002252 254 00 0 00 002265 JRST $CPKA1
2321
2322 002253 7 000 24 0 00 000000 $CPIII: CONI APR,0
2323 002254 603 00 0 00 004000 TLNE 0,IP50HZ ;50 CYCLE POWER ?
2324 002255 476 00 0 00 030505 SETOM CYCL60 ;YES
2325 002256 332 00 0 00 030043 SKIPE MONCTL
2326 002257 263 17 0 00 000000 RTN
2327 002260 7 010 14 0 00 007146 DATAO PAG,[LDUSRB,,LDEXCB]
2328 002261 7 010 04 0 00 000000 DATAI PAG,0 ;CLEAR EBR & UBR
2329 002262 302 00 0 00 000000 CAIE 0,0
2330 002263 254 04 0 00 001016 HALT CPIERR ;NOT CLEAR, FATAL ERROR
2331 002264 254 00 0 00 002272 JRST $CPX1
2332
2333 ;KA10 POWER DETERMINATION
2334
2335 002265 7 000 04 0 00 000000 $CPKA1: DATAI APR,0 ;READ SWITCHES
2336 002266 603 00 0 00 000002 TLNE 0,KAHZ50 ;50 HERTZ SWITCH SET ?
2337 002267 476 00 0 00 030505 SETOM CYCL60 ;YES, SET INDICATOR
2338 002270 332 00 0 00 030043 SKIPE MONCTL
2339 002271 263 17 0 00 000000 RTN
2340
2341 002272 400 00 0 00 000000 $CPX1: SETZ 0,
2342 002273 7 004 14 0 00 000000 DATAO PI,0 ;KA/KI, CLEAR MI
2343 002274 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 25
SUBRTM MAC 23-Mar-78 15:08 "DIAMON" FILE SELECTION & READ SEQ 0136
2344 SUBTTL "DIAMON" FILE SELECTION & READ
2345 S^;*********************************************************************^
2346
2347 002275 261 17 0 00 000000 $FSELECT:PUT 0
2348 002276 402 00 0 00 007655 SETZM $FSELF#
2349 002277 200 00 0 00 007147 MOVE 0,[1,,POWER+1] ;SAVE ACS
2350 002300 251 00 0 00 007630 BLT POWER+16
2351 002301 262 17 0 00 000000 GET 0
2352 002302 336 00 0 00 027772 SKIPN FSELNK ;ANY FILE SELECT LINK ?
2353 002303 254 00 0 00 002315 JRST $FSEL1 ;NO
2354
2355 002304 260 17 1 00 027772 GO @FSELNK ;TRANSFER TO "DIAMON"
2356 002305 254 00 0 00 002310 JRST $FSEL2 ;ERROR RTN, AC0 HAS CODE
2357
2358 002306 476 00 0 00 007655 SETOM $FSELF ;FOUND, SET FILE SELECTED FLAG
2359 002307 350 00 0 17 000000 AOS (P) ;SKIP RETURN
2360 002310 261 17 0 00 000000 $FSEL2: PUT 0
2361 002311 204 00 0 00 007147 MOVS 0,[1,,POWER+1] ;RESTORE ACS
2362 002312 251 00 0 00 000016 BLT 16
2363 002313 262 17 0 00 000000 GET 0
2364 002314 263 17 0 00 000000 RTN
2365
2366 002315 402 00 0 00 000000 $FSEL1: SETZM 0 ;NO "DIAMON" CAPABILTY
2367 002316 254 00 0 00 002310 JRST $FSEL2
2368
2369 ;*"DIAMON" FILE READ
2370 S^;*********************************************************************^
2371
2372 002317 201 00 0 00 000001 $FRD8: MOVEI 0,1 ;SET FLAG FOR 8BIT READ
2373 002320 254 00 0 00 002324 JRST .+4
2374 002321 474 00 0 00 000000 $FRD36: SETO ;SET FLAG FOR 36 BIT READ
2375 002322 254 00 0 00 002324 JRST .+2
2376 002323 400 00 0 00 000000 $FREAD: SETZ ;SET FLAG FOR 7 BIT ASCII READ
2377 002324 261 17 0 00 000000 PUT 0
2378 002325 336 00 0 00 007655 SKIPN $FSELF ;WAS ANY FILE SELECTED ?
2379 002326 037 15 0 00 000004 FATAL ;NO
2380 002327 336 00 0 00 027773 SKIPN FRDLNK ;ANY FILE READ LINK ?
2381 002330 037 15 0 00 000004 FATAL ;NO
2382 002331 200 00 0 00 007147 MOVE 0,[1,,POWER+1] ;SAVE ACS
2383 002332 251 00 0 00 007630 BLT POWER+16
2384 002333 262 17 0 00 000000 GET 0 ;GET FORMAT FLAG
2385 002334 260 17 1 00 027773 GO @FRDLNK ;TRANSFER TO "DIAMON"
2386 002335 254 00 0 00 002310 JRST $FSEL2 ;EOF
2387 002336 254 00 0 00 002307 JRST $FSEL2-1 ;OK, SKIP RETURN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 26
SUBRTM MAC 23-Mar-78 15:08 PROGRAM HALTS SEQ 0137
2388 SUBTTL PROGRAM HALTS
2389
2390 ;*SUBROUTINE ERROR HALT
2391 S^;*********************************************************************^
2392
2393 002337 037 04 0 00 000002 $ERHLT: PNTNM ;PRINT PROGRAM NAME
2394 PMSGF <ERROR HALT AT >^
2395 002340 037 04 0 00 007150 PSIXMF [SIXBIT\ERROR HALT AT _\]^
2396 002341 262 17 0 00 007654 GET $ERH0
2397 002342 261 17 0 00 000000 PUT 0
2398 002343 200 00 0 00 007654 MOVE AC0,$ERH0# ;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
2399 002344 370 00 0 00 000000 SOS ;SUBTRACT ONE FOR USRPC OF ERROR
2400 002345 037 06 0 00 000001 PNT6F ;PRINT USRPC FORCED
2401 002346 037 01 0 00 030242 PCRLF
2402
2403 002347 331 00 0 00 030043 SKIPL MONCTL ;UNDER MONITOR CONTROL ?
2404 002350 254 00 0 00 002356 JRST $ERHL4 ;NO..HALT AT USRPC WHERE UUO OCCURRED
2405
2406 002351 260 17 0 00 004751 $ERHL1: GO $SWTCH ;READ SWITCHES INTO AC0
2407 002352 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ?
2408 002353 254 00 0 00 002356 JRST $ERHL4 ;YES...HALT
2409
2410 002354 262 17 0 00 000000 $ERHL3: GET AC0 ;RESTORE THE STACK (P - 1)
2411 002355 254 00 0 00 030061 JRST $BEND2 ;END OF PROGRAM
2412
2413 002356 476 00 0 00 007633 $ERHL4: SETOM KLNSW
2414 002357 201 00 0 00 000402 MOVEI AC0,402 ;IF KL10, NOTIFY PDP-11
2415 002360 260 17 0 00 002043 GO $DTEXX
2416 002361 262 17 0 00 000000 GET AC0
2417 002362 336 00 0 00 030037 SKIPN USER ;USER MODE ?
2418 002363 254 04 1 00 007654 HALT @$ERH0 ;NO, HALT WHERE ERROR OCCURED
2419 002364 047 01 0 00 000012 EXIT 1, ;YES, RETURN TO MONITOR
2420 002365 254 00 1 00 007654 JRST @$ERH0 ;IF CONTINUED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 27
SUBRTM MAC 23-Mar-78 15:08 PROGRAM HALTS SEQ 0138
2421 ;*FATAL PROGRAM ERROR HALT
2422 S^;*********************************************************************^
2423
2424 002366 037 04 0 00 000002 $FATAL: PNTNM
2425 PMSGF <FATAL PROGRAM ERROR AT >^
2426 002367 037 04 0 00 007153 PSIXMF [SIXBIT\FATAL PROGRAM ERROR AT _\]^
2427 002370 200 00 0 17 000000 MOVE AC0,(P) ;RETRIEVE USRPC + 1 FROM THE STACK
2428 002371 370 00 0 00 000000 SOS ;- 1
2429 002372 037 06 0 00 000001 PNT6F ;PRINT IT
2430 002373 037 01 0 00 030242 PCRLF
2431 002374 331 00 0 00 030043 SKIPL MONCTL ;EXEC - DIAGNOSTIC MONITOR ?
2432 002375 254 00 0 00 002401 JRST $FATL1 ;NO, END OF PROGRAM
2433 002376 260 17 0 00 004751 GO $SWTCH ;YES ... READ SWITCHES
2434 002377 607 00 0 00 002000 TLNN ERSTOP ;STOP ON ERROR ?
2435 002400 254 00 0 00 030061 JRST $BEND2 ;NO, END OF PROGRAM
2436
2437 002401 476 00 0 00 007633 $FATL1: SETOM KLNSW
2438 002402 201 00 0 00 000401 MOVEI AC0,401
2439 002403 260 17 0 00 002043 GO $DTEXX ;NOTIFY PDP-11
2440
2441 002404 261 17 0 00 000000 $DDTENT:PUT 0
2442 002405 200 00 0 00 010001 MOVE AC0,DDT+1 ;GET DDT ID
2443 002406 312 00 0 00 007157 CAME AC0,[ASCII/DDT/]
2444 002407 254 00 0 00 030061 JRST $BEND2 ;NOT LOADED, END PROGRAM
2445 002410 262 17 0 00 000000 GET 0
2446 002411 254 00 1 00 027775 JRST @DDTLNK ;DDT LOADED, GO TO IT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 28
SUBRTM MAC 23-Mar-78 15:08 PROGRAM NAME PRINTER SEQ 0139
2447 SUBTTL PROGRAM NAME PRINTER
2448
2449 ;*PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE
2450 S^;*********************************************************************^
2451 SALL
2452 002412 331 00 0 00 030043 $PNTNM: SKIPL MONCTL ;DIAG MON / SYS EXR ?
2453 002413 254 00 0 00 002475 JRST $PNM2 ;NO
2454 002414 037 00 1 00 030025 PNTMSG @$PNAME ;PRINT PROGRAM NAME
2455 002415 037 02 0 00 007160 PMSG <VERSION >
2456 002416 554 00 0 00 000137 HLRZ JOBVER
2457 002417 037 16 0 00 000003 PNTOCS ;PRINT MCN LEVEL
2458 002420 037 00 0 00 000056 PNTCI "."
2459 002421 550 00 0 00 000137 HRRZ JOBVER
2460 002422 037 16 0 00 000003 PNTOCS ;PRINT DEC VERSION
2461 002423 037 02 0 00 007162 PMSG <, SV=>
2462 002424 554 00 0 00 001006 HLRZ SUBVER
2463 002425 037 16 0 00 000003 PNTOCS ;PRINT "SUBRTN" MCN LEVEL
2464 002426 037 00 0 00 000056 PNTCI "."
2465 002427 550 00 0 00 001006 HRRZ SUBVER
2466 002430 037 16 0 00 000003 PNTOCS ;PRINT "SUBRTN" DEC VERSION
2467 002431 332 00 0 00 030037 SKIPE USER
2468 002432 254 00 0 00 002475 JRST $PNM2
2469 002433 332 00 0 00 030041 SKIPE KLFLG
2470 002434 254 00 0 00 002446 JRST $KLSN
2471 002435 336 00 0 00 030040 SKIPN KAIFLG
2472 002436 254 00 0 00 002471 JRST $PNM1
2473
2474 002437 7 010 24 0 00 007657 $KISN: CONI PAG,$KISNX# ;GET KI10 SERIAL NUMBER
2475 002440 200 00 0 00 007657 MOVE $KISNX
2476 002441 242 00 0 00 777746 LSH -^D26
2477 002442 307 00 0 00 001000 CAIG ^D512 ;IF 512 OR GREATER, OK
2478 002443 271 00 0 00 002000 ADDI ^D1024 ;OTHERWISE ADD 1024
2479 002444 260 17 0 00 002477 GO $SNPNT ;PRINT CPU SERIAL NUMBER
2480 002445 254 00 0 00 002471 JRST $PNM1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 29
SUBRTM MAC 23-Mar-78 15:08 PROGRAM NAME PRINTER SEQ 0140
2481 002446 7 000 00 0 00 007660 $KLSN: BLKI APR,$KLSNX# ;GET KL10 CPU ID INFO
2482 002447 200 00 0 00 007660 MOVE $KLSNX
2483 002450 405 00 0 00 007777 ANDI 7777
2484 002451 260 17 0 00 002477 GO $SNPNT ;PRINT CPU SERIAL NUMBER
2485 002452 037 02 0 00 007163 PMSG <, MCV=>
2486 002453 200 00 0 00 007660 MOVE $KLSNX
2487 002454 207 00 0 00 000000 MOVSS
2488 002455 405 00 0 00 000777 ANDI 777
2489 002456 037 16 0 00 000003 PNTOCS ;PRINT MICRO-CODE VERSION
2490 002457 037 02 0 00 007165 PMSG <, MCO=>
2491 002460 200 00 0 00 007660 MOVE $KLSNX
2492 002461 242 00 0 00 777745 LSH -^D27
2493 002462 405 00 0 00 000777 ANDI 777
2494 002463 037 16 0 00 000003 PNTOCS ;PRINT MICRO-CODE OPTIONS
2495 002464 037 02 0 00 007167 PMSG <, HO=>
2496 002465 200 00 0 00 007660 MOVE $KLSNX
2497 002466 242 00 0 00 777764 LSH -^D12
2498 002467 405 00 0 00 000077 ANDI 77
2499 002470 037 16 0 00 000003 PNTOCS ;PRINT HARDWARE OPTIONS
2500
2501 002471 336 00 0 00 030505 $PNM1: SKIPN CYCL60
2502 002472 037 02 0 00 007170 PMSG <, 60HZ>
2503 002473 332 00 0 00 030505 SKIPE CYCL60
2504 002474 037 02 0 00 007172 PMSG <, 50HZ>
2505
2506 002475 037 00 0 00 030242 $PNM2: PCRL
2507 002476 263 17 0 00 000000 RTN ;EXIT
2508
2509 002477 261 17 0 00 000000 $SNPNT: PUT 0
2510 002500 037 02 0 00 007174 PMSG <, CPU#=>
2511 002501 262 17 0 00 000000 GET 0
2512 002502 037 15 0 00 000000 PNTDEC ;PRINT CPU SERIAL NUMBER
2513 002503 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 30
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0141
2514 SUBTTL *SUBRTN* INTERRUPT HANDLING ROUTINES
2515 LALL
2516
2517 ;*PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
2518 S^;*********************************************************************^
2519
2520 002504 PSHERR: PMSGF <^*****^PLIST UFLOW^>^
2521 002504 037 04 0 00 007176 PSIXMF [SIXBIT\^*****^PLIST UFLOW^_\]^
2522 002505 037 15 0 00 000004 FATAL ;PRINT LOCATION AND EXIT
2523
2524 S^;*********************************************************************^
2525 ;*INTERRUPT ROUTINE INITIALIZATION
2526 S^;*********************************************************************^
2527
2528 002506 332 00 0 00 030037 $ITRIN: SKIPE USER ;PROCESSOR IN USER MODE ?
2529 002507 254 00 0 00 002531 JRST $ITRUS ;YES
2530
2531 ;*SETUP INTERRUPT VECTORS
2532
2533 002510 200 00 0 00 007202 MOVE [JSR ITRCH1]
2534 002511 202 00 0 00 000042 MOVEM 42
2535 002512 202 00 0 00 000044 MOVEM 44
2536 002513 202 00 0 00 000046 MOVEM 46
2537 002514 202 00 0 00 000050 MOVEM 50
2538 002515 202 00 0 00 000052 MOVEM 52
2539 002516 202 00 0 00 000054 MOVEM 54
2540 002517 202 00 0 00 000056 MOVEM 56
2541
2542 002520 200 00 0 00 007203 MOVE [JRST $ITRC1] ;SETUP "FIXED" LINKING
2543 002521 202 00 0 00 030105 MOVEM ITRCH1+1
2544 002522 200 00 0 00 007204 MOVE [JRST RESRTX]
2545 002523 202 00 0 00 030076 MOVEM RESRT1
2546 002524 332 00 0 00 030041 SKIPE KLFLG ;KL10 CPU ?
2547 002525 254 00 0 00 003176 JRST $KL10 ;YES
2548 002526 336 00 0 00 030040 SKIPN KAIFLG
2549 002527 254 00 0 00 002752 JRST $KA10 ;KA10 CPU
2550 002530 254 00 0 00 003060 JRST $KI10 ;KI10 CPU
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 31
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0142
2551 ;*USER MODE INITIALIZATION
2552
2553 002531 201 00 0 00 002536 $ITRUS: MOVEI ITRUSR ;SETUP USER APR TRAPPING
2554 002532 202 00 0 00 000125 MOVEM JOBAPR
2555 002533 201 00 0 00 234000 MOVEI PDLOVU!MPVU!NXMU!PARU
2556 002534 047 00 0 00 000016 APRENB ;ENABLE PROCESSOR TRAPS
2557 002535 263 17 0 00 000000 RTN
2558
2559 ;*USER MODE INTERRUPTS
2560
2561 002536 202 00 0 00 030106 ITRUSR: MOVEM $ACC0
2562 002537 200 00 0 00 000127 MOVE JOBTPC
2563 002540 202 00 0 00 030104 MOVEM ITRCH1 ;SAVE TRAPPED ADDRESS
2564 002541 200 00 0 00 000126 MOVE JOBCNI
2565 002542 202 00 0 00 030110 MOVEM $SVAPR ;SAVE CAUSE
2566 002543 402 00 0 00 030107 SETZM $SVPI
2567 002544 602 00 0 00 004000 TRNE PARU
2568 002545 254 00 0 00 002574 $UPAR: JRST $PAREX ;PARITY ERROR
2569 002546 602 00 0 00 200000 TRNE PDLOVU
2570 002547 254 00 0 00 002557 $UPDL: JRST $PDOVU ;PUSHDOWN OVERFLOW
2571 002550 602 00 0 00 020000 TRNE MPVU
2572 002551 254 00 0 00 002570 $UMPV: JRST $MPVU ;MEMORY PROTECTION VIOLATION
2573 002552 602 00 0 00 010000 TRNE NXMU
2574 002553 254 00 0 00 002572 $UNXM: JRST $NXMU ;NON-X-MEMORY
2575 002554 200 00 0 00 030106 MOVE $ACC0
2576 002555 256 00 0 00 030073 XCT $USRHL ;EXECUTE USER ROUTINE, IF SUPPLIED
2577 002556 254 00 0 00 002603 JRST $ITRHZ+3 ;ERROR
2578
2579 ;*DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES
2580 S^;*********************************************************************^
2581 SALL
2582 002557 202 17 0 00 007704 $PDOVU: MOVEM P,$PDOVP#
2583 002560 200 17 0 00 030303 MOVE P,PLIST ;RESET POINTER
2584 002561 201 00 0 00 030103 MOVEI 0,$PSHER
2585 002562 261 17 0 00 000000 PUSH P,0
2586 002563 037 02 0 00 007205 PMSG <^*****^PLIST OVERFLOW P=>
2587 002564 200 00 0 00 007704 MOVE 0,$PDOVP
2588 002565 037 13 0 00 000000 PNTHW
2589 002566 400 00 0 00 000000 SETZ
2590 002567 254 00 0 00 002617 JRST $ITR1B ;COMMON INTERRUPT ROUTINE
2591
2592 002570 201 00 0 00 007212 $MPVU: MOVEI SIXBTZ <^MEMORY PROT>
2593 002571 254 00 0 00 002604 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
2594
2595 002572 201 00 0 00 007215 $NXMU: MOVEI SIXBTZ <^NON-EX MEMORY>
2596 002573 254 00 0 00 002604 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 32
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0143
2597 002574 200 00 0 00 030106 $PAREX: MOVE 0,$ACC0
2598 002575 256 00 0 00 030100 XCT $PARER ;EXECUTE USER ROUTINE, IF PROVIDED
2599 002576 201 00 0 00 007220 MOVEI SIXBTZ <^MEMORY PARITY>
2600 002577 254 00 0 00 002604 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
2601 LALL
2602 ;*COMMON INTERRUPT HANDLERS
2603 S^;*********************************************************************^
2604 SALL
2605 002600 200 00 0 00 030106 $ITRHZ: MOVE 0,$ACC0
2606 002601 256 00 0 00 030071 XCT $ITRHL ;EXECUTE USER ROUTINE, IF SUPPLIED
2607 002602 7 004 20 0 00 000400 CONO PI,PIOFF ;CLEAR PI SYSTEM
2608 002603 201 00 0 00 007223 MOVEI SIXBTZ <^UNKNOWN INTERRUPT>
2609 LALL
2610 ;*PRINT CAUSE AND OTHER PERTINENT INFO
2611 S^;*********************************************************************^
2612 SALL
2613 002604 336 00 0 00 030037 $ITR1A: SKIPN USER
2614 002605 336 00 0 00 030041 SKIPN KLFLG
2615 002606 254 00 0 00 002617 JRST $ITR1B
2616 002607 261 17 0 00 000000 PUT 0
2617 002610 037 02 0 00 007227 PMSG <^ERROR ADDRESS REG = >
2618 002611 200 00 0 00 007574 MOVE $SVERA
2619 002612 037 13 0 00 000000 PNTHW
2620 002613 037 02 0 00 007233 PMSG <DMA = >
2621 002614 200 00 0 00 007576 MOVE $SBRD+1
2622 002615 037 13 0 00 000000 PNTHW
2623 002616 262 17 0 00 000000 GET 0
2624 002617 332 00 0 00 000000 $ITR1B: SKIPE 0
2625 002620 037 14 0 00 000003 PSIXL ;PRINT CAUSE
2626 002621 037 02 0 00 007235 PMSG <^APR PI FLAGS PC PROG^>
2627 002622 200 00 0 00 030110 MOVE $SVAPR#
2628 002623 037 13 0 00 000000 PNTHW ;PRINT APR CONI BITS
2629 002624 037 00 0 00 000040 PSP
2630 002625 200 00 0 00 030107 MOVE $SVPI#
2631 002626 037 13 0 00 000000 PNTHW ;PRINT PI CONI BITS
2632 002627 037 00 0 00 000040 PSP
2633 002630 200 00 0 00 030104 MOVE ITRCH1
2634 002631 037 13 0 00 000000 PNTHW ;PRINT FLAGS, PC
2635 002632 037 00 0 00 000040 PSP
2636 002633 550 00 0 17 000000 HRRZ 0,(P)
2637 002634 037 06 0 00 000000 PNT6 ;PRINT LAST PUSHJ ENTRY
2638 002635 037 00 0 00 030242 PCRL
2639 002636 200 00 0 00 030106 MOVE 0,$ACC0
2640 002637 256 00 0 00 030072 XCT $ITRX1 ;EXECUTE USER ROUTINE, IF SUPPLIED
2641 002640 037 15 0 00 000004 FATAL
2642 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 33
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0144
2643 ;*COMMON INTERRUPT ROUTINE
2644 S^;*********************************************************************^
2645
2646 002641 202 00 0 00 030106 $ITRC1: MOVEM AC0,$ACC0# ;SAVE AC0
2647 002642 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE APR SYSTEM
2648 002643 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI SYSTEM
2649 002644 200 00 0 00 000041 MOVE AC0,JOB41
2650 002645 312 00 0 00 007057 CAME AC0,[GO $UORTN]
2651 002646 254 04 0 00 001020 HALT LUOERR ;UUO HANDLER INVALID
2652 002647 200 00 0 00 030106 MOVE AC0,$ACC0
2653 002650 332 00 0 00 030041 SKIPE KLFLG ;KL10 CPU ?
2654 002651 254 00 0 00 003124 JRST $KLITR
2655 002652 336 00 0 00 030040 SKIPN KAIFLG ;NO-KI10 CPU ?
2656 002653 254 00 0 00 002714 JRST $KAITR ;KA10
2657 002654 254 00 0 00 002760 JRST $KIITR ;KI10
2658
2659 ;*RESTORE PROCESSOR ON POWER FAIL RESTART
2660 S^;*********************************************************************^
2661 SALL
2662 002655 336 00 0 00 007716 RESRTX: SKIPN $PWRF ;DID POWER FAIL WORK?
2663 002656 254 00 0 00 002711 JRST $PWRFL ;NO
2664 002657 332 00 0 00 030041 SKIPE KLFLG
2665 002660 254 00 0 00 003231 JRST $KLRST ;KL10
2666 002661 336 00 0 00 030040 SKIPN KAIFLG
2667 002662 254 00 0 00 002737 JRST $KARST
2668 002663 254 00 0 00 003034 JRST $KIRST
2669
2670 002664 552 01 0 00 030107 $RSTCM: HRRZM 1,$SVPI
2671 002665 552 03 0 00 030110 HRRZM 3,$SVAPR
2672 002666 204 00 0 00 007147 MOVS [1,,POWER+1] ;RESTORE AC'S
2673 002667 251 00 0 00 000017 BLT 17
2674 002670 037 04 0 00 007246 PMSGF <^POWER FAIL RESTART^>
2675 002671 402 00 0 00 007716 SETZM $PWRF#
2676 002672 200 00 0 00 007612 MOVE 0,POWER
2677 002673 256 00 0 00 030074 XCT $RSRTX ;EXECUTE USER ROUTINE, IF PROVIDED
2678 002674 332 00 0 00 030041 SKIPE KLFLG
2679 002675 254 00 0 00 002702 JRST .+5
2680 002676 7 000 20 0 00 001000 CONO APR,CLKCLR ;CLEAR CLOCK
2681 002677 7 000 34 0 00 001000 CONSO APR,CLK ;WAIT FOR IT TO SET
2682 002700 254 00 0 00 002677 JRST .-1 ;WHEN SET - CLEAR - GIVES 17MS
2683 002701 7 000 20 0 00 001000 CONO APR,CLKCLR ;TO EXIT INTERRUPT ROUTINE
2684 002702 7 000 20 1 00 030110 CONO APR,@$SVAPR ;RESET APR SYSTEM
2685 002703 7 004 20 1 00 030107 CONO PI,@$SVPI ;RESET PI SYSTEM
2686 002704 204 00 0 00 007147 MOVS [1,,POWER+1] ;RESTORE AC'S
2687 002705 251 00 0 00 000017 BLT 17
2688 002706 200 00 0 00 007612 MOVE 0,POWER
2689 002707 256 00 0 00 030075 XCT $RSRTY ;EXECUTE USER ROUTINE, IF PROVIDED
2690 002710 254 02 1 00 007717 JRSTF @$PWRST
2691
2692 002711 265 00 0 00 030011 $PWRFL: PGMINT ;REINIT THE SUBROUTINE PACKAGE
2693 002712 037 04 0 00 007252 PMSGF <^POWER INTERRUPT FAILED^>
2694 002713 254 04 0 00 030000 HALT BEGIN
2695 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 34
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0145
2696 ;*KA10 INTERRUPT ROUTINE
2697 S^;*********************************************************************^
2698
2699 002714 7 004 34 0 00 400000 $KAITR: CONSO PI,APWRFL ;POWER FAILURE ?
2700 002715 254 00 0 00 002726 JRST $KAIT1 ;NO CHECK FOR PARITY ERROR
2701
2702 002716 200 00 0 00 007147 $KAPWR: MOVE 0,[1,,POWER+1] ;YES-SAVE PROCESSOR STATE AND HALT
2703 002717 251 00 0 00 007631 BLT POWER+17
2704 002720 200 00 0 00 030106 MOVE $ACC0
2705 002721 202 00 0 00 007612 MOVEM POWER
2706 002722 200 00 0 00 030104 MOVE ITRCH1
2707 002723 202 00 0 00 007717 MOVEM $PWRST# ;USER RESTART, IF WANTED
2708 002724 476 00 0 00 007716 SETOM $PWRF ;NOTIFY OF POWER FAIL ON RESTART
2709 002725 254 04 0 00 030000 HALT BEGIN ;POWER ON POINT
2710
2711 002726 7 004 30 0 00 200000 $KAIT1: CONSZ PI,APARER ;PARITY ERROR ?
2712 002727 254 00 0 00 002574 $KAPAR: JRST $PAREX ;YES
2713 002730 7 000 30 0 00 200000 CONSZ APR,APDLOV ;NO-PUSH LIST OV ?
2714 002731 254 00 0 00 002557 $KAPDL: JRST $PDOVU ;YES
2715 002732 7 000 30 0 00 020000 CONSZ APR,AMPV ;NO-MEM PROT VIOLATE ?
2716 002733 254 00 0 00 002570 $KAMPV: JRST $MPVU ;YES
2717 002734 7 000 30 0 00 010000 CONSZ APR,ANXM ;NO-NON-X-MEM ERROR ?
2718 002735 254 00 0 00 002572 $KANXM: JRST $NXMU ;YES
2719 002736 254 00 0 00 002600 JRST $ITRHZ ;NO-REST COMMON RUPTS
2720
2721 ;*KA10 POWER FAIL RESTART
2722 S^;*********************************************************************^
2723
2724 002737 7 000 20 0 00 675550 $KARST: CONO APR,$KAINT
2725 002740 7 004 20 0 00 711400 CONO PI,PWFCLR!PARCLR!PARDIS!PICLR!CHNOFF!PIOFF
2726 002741 200 03 0 00 030110 MOVE 3,$SVAPR ;GET SAVED PROCESSOR STATUS
2727 002742 620 03 0 00 775550 TRZ 3,775550 ;CLEAR MISC APR BITS
2728 002743 200 01 0 00 030107 MOVE 1,$SVPI ;GET SAVED PI STATUS
2729 002744 620 01 0 00 777400 TRZ 1,777400 ;CLEAR MISC PI BITS
2730 002745 200 02 0 00 030107 MOVE 2,$SVPI ;GET SAVED PI STATUS STATUS AGAIN
2731 002746 602 02 0 00 100000 TRNE 2,APAREN ;WAS PARITY ENABLED ?
2732 002747 660 01 0 00 040000 TRO 1,PARENB ;YES-SET IT NOW
2733 002750 660 01 0 00 002000 TRO 1,CHNON ;SET PI CHANNEL ON BIT
2734 002751 254 00 0 00 002664 JRST $RSTCM ;REST COMMON
2735
2736 ;*KA10 INTERRUPT INITIALIZATION
2737 S^;*********************************************************************^
2738
2739 675550 $KAINT=APDCLR!IOCLR!AABCLR!AMPCLR!ANXCLR!CLKDIS!CLKCLR!AFODIS!AFOCLR!AOVDIS!AOVCLR
2740
2741 002752 $KA10:
2742 002752 7 000 20 0 00 675550 $KACLR: CONO APR,$KAINT ;CLR PROCESSOR
2743 002753 7 004 20 0 00 311400 CONO PI,PARCLR!PARDIS!PICLR!CHNOFF!PIOFF ;CLR PI SYSTEM
2744 002754 402 00 0 00 007716 SETZM $PWRF
2745 002755 7 000 20 0 00 000001 $KAENB: CONO APR,AAPRC1 ;ENABLE CHANNEL 1
2746 002756 7 004 20 0 00 042377 CONO PI,PARENB!CHNON!PION!PICHNA ;ENABLE ALL PI CHNS
2747 002757 263 17 0 00 000000 RTN ;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 35
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0146
2748 ;*KI10 INTERRUPT ROUTINE
2749 S^;*********************************************************************^
2750
2751 002760 7 010 04 0 00 030111 $KIITR: DATAI PAG,$SVPAG# ;SAVE PAGE
2752 002761 7 000 34 0 00 020000 CONSO APR,IPWRFL ;POWER FAILURE?
2753 002762 254 00 0 00 002777 JRST $KIIT1 ;NO-LOOK FOR PARITY ERROR
2754
2755 002763 200 00 0 00 007147 $KIPWR: MOVE [1,,POWER+1] ;YES
2756 002764 251 00 0 00 007631 BLT POWER+17
2757 002765 200 00 0 00 030106 MOVE $ACC0
2758 002766 202 00 0 00 007612 MOVEM POWER
2759 002767 200 00 0 00 030104 MOVE ITRCH1
2760 002770 202 00 0 00 007717 MOVEM $PWRST# ;USER RESTART IF WANTED
2761 002771 200 00 0 00 007257 MOVE [JRST PFSTRT] ;SET POWER FAIL TRAP
2762 002772 202 00 0 00 000070 MOVEM 70 ;PFI TRAP LOCATION
2763 002773 7 004 20 0 00 400000 CONO PI,PWFCLR ;CLEAR POWER FAIL
2764 002774 7 000 20 0 00 010000 CONO APR,10000 ;SET AUTO RESTART
2765 002775 476 00 0 00 007716 SETOM $PWRF ;NOTIFY OF POWER FAIL ON RESTART
2766 002776 254 04 0 00 030000 HALT BEGIN ;UNTIL POWER ON
2767
2768 002777 7 000 34 0 00 200000 $KIIT1: CONSO APR,IPARER ;PARITY ERROR ?
2769 003000 254 00 0 00 003002 JRST $KINXM ;NO-LOOK FOR NON-X-MEM
2770
2771 003001 254 00 0 00 002574 $PARKI: JRST $PAREX ;YES
2772
2773 003002 7 000 30 0 00 000100 $KINXM: CONSZ APR,INXM ;NON-X-MEM ERROR ?
2774 003003 254 00 0 00 002572 JRST $NXMU ;YES
2775 003004 254 00 0 00 002600 JRST $ITRHZ ;NO-REST ARE COMMON
2776
2777 ;*KI10/KL10 PUSHDOWN OVERFLOW TRAP ROUTINE
2778 S^;*********************************************************************^
2779
2780 003005 202 00 0 00 030104 $PDLOV: MOVEM AC0,ITRCH1 ;SAVE USRPC (VIA JSP)
2781 003006 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE PROCESSOR STATUS
2782 003007 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI STATUS
2783 003010 254 00 0 00 002557 JRST $PDOVU ;GO HANDLE IT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 36
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0147
2784 ;*KI10/KL10 PAGE FAIL TRAP ROUTINE
2785 S^;*********************************************************************^
2786 003011 332 00 0 00 030041 $PGFL: SKIPE KLFLG
2787 003012 200 00 0 00 000501 MOVE AC0,LPFWPC ;KL10, GET PAGE FAIL PC
2788 003013 202 00 0 00 030104 MOVEM AC0,ITRCH1 ;SAVE USRPC
2789 003014 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE PROCESSOR STATUS
2790 003015 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI STATUS
2791 PMSG <^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- >^
2792 003016 037 02 0 00 007260 PSIXM [SIXBIT\^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- _\]^
2793 003017 200 00 0 00 000426 $PGFL1: MOVE EXCPFW ;GET KI10 PAGE FAIL WORD
2794 003020 332 00 0 00 030041 SKIPE KLFLG
2795 003021 200 00 0 00 000500 MOVE LEUPFW ;GET KL10 PAGE FAIL WORD
2796 003022 037 13 0 00 000000 PNTHW ;PRINT IT
2797 003023 332 00 0 00 030041 SKIPE KLFLG
2798 003024 254 00 0 00 003225 JRST $PGFL2 ;KL10, REPORT APR ERRORS ALSO
2799 003025 402 00 0 00 000000 SETZM AC0 ;SO NO PRINTING @ $ITRIA
2800 003026 254 00 0 00 002617 JRST $ITR1B ;COMMON INTERRUPT ROUTINE
2801
2802 ;*KI10/KL10 TRAP 3 ROUTINE
2803 S^;*********************************************************************^
2804 003027 202 00 0 00 030104 $TRP3: MOVEM AC0,ITRCH1 ;SAVE THE USRPC
2805 003030 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE PROCESSOR STATUS
2806 003031 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI STATUS
2807 003032 201 00 0 00 007267 MOVEI AC0,SIXBTZ ^TRAP 3 ERROR^ [SIXBIT\^TRAP 3 ERROR_\]^
2808 003033 254 00 0 00 002617 JRST $ITR1B ;COMMON INTERRUPT ROUTINE START
2809
2810 ;*KI10 POWER FAIL RESTART
2811 S^;*********************************************************************^
2812 003034 7 000 20 0 00 325300 $KIRST: CONO APR,IOCLR!ITMDIS!IASRTC!CLKDIS!CLKCLR!IIOPFC!INXCLR
2813 003035 7 004 20 0 00 731400 CONO PI,PWFCLR!PARCLR!PARDIS!IRQCLR!PICLR!CHNOFF!PIOFF
2814 003036 7 010 20 0 00 000000 CONO PAG,0
2815 003037 7 000 14 0 00 007107 DATAO APR,[IMGNOF,,ISPDOF]
2816 003040 200 00 0 00 030111 MOVE 0,$SVPAG
2817 003041 661 00 0 00 400000 TLO 0,LDUSRB
2818 003042 660 00 0 00 400000 TRO 0,LDEXCB
2819 003043 7 010 14 0 00 000000 DATAO PAG,0 ;RESET PAG SYSTEM
2820 003044 200 01 0 00 030107 MOVE 1,$SVPI
2821 003045 620 01 0 00 777400 TRZ 1,777400 ;CLEAR MISC PI BITS
2822 003046 660 01 0 00 002000 TRO 1,CHNON ;SET PI CHANNEL ON BIT
2823 003047 200 02 0 00 030110 MOVE 2,$SVAPR
2824 003050 602 02 0 00 100000 TRNE 2,IPAREN ;WAS PARITY ENABLED?
2825 003051 660 01 0 00 040000 TRO 1,PARENB ;YES
2826 003052 200 03 0 00 000002 MOVE 3,2
2827 003053 620 03 0 00 720700 TRZ 3,720700 ;CLEAR MISC APR BITS
2828 003054 602 02 0 00 040000 TRNE 2,ITMOEN ;WAS TIME OUT ENABLED?
2829 003055 660 03 0 00 440000 TRO 3,ITMSET!ITMENB ;YES
2830 003056 402 00 0 00 007722 SETZM $SWFLG# ;USE SAVED SW'S TILL RESTARTED
2831 003057 254 00 0 00 002664 JRST $RSTCM ;REST COMMON
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 37
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0148
2832 ;*KI10 INTERRUPT AND TRAP INITIALIZATION
2833 S^;*********************************************************************^
2834
2835 003060 $KI10:
2836 003060 200 00 0 00 007272 $KI10A: MOVE [JSP $PGFL]
2837 003061 202 00 0 00 000420 MOVEM PGFTRP ;SETUP PAGE FAIL TRAP
2838 003062 260 17 0 00 003104 GO $KIKLI ;SETUP TRAPS & MUUOS
2839
2840 003063 7 004 20 0 00 731400 $KICLR: CONO PI,PWFCLR!PARCLR!PARDIS!IRQCLR!PICLR!CHNOFF!PIOFF
2841
2842 003064 331 00 0 00 030043 SKIPL MONCTL ;DIAGNOSTIC MONITOR?
2843 003065 7 000 20 0 00 325300 CONO APR,IOCLR!ITMDIS!IASRTC!CLKDIS!CLKCLR!IIOPFC!INXCLR
2844
2845 003066 335 00 0 00 030043 SKIPGE MONCTL ;YES-DON'T CLR APR AGAIN
2846 003067 7 000 20 0 00 205100 CONO APR,IOCLR!CLKDIS!CLKCLR!INXCLR ;NO-CLR APR THIS WAY
2847 003070 7 010 20 0 00 000000 CONO PAG,0 ;CLEAR PAGING
2848
2849 003071 331 00 0 00 030043 $KIENB: SKIPL MONCTL ;MONITOR CONTROL ?
2850 003072 7 000 14 0 00 007107 DATAO APR,[IMGNOF,,ISPDOF]
2851 003073 336 00 0 00 030042 SKIPN MONFLG
2852 003074 254 00 0 00 003101 JRST .+5
2853 003075 200 00 0 00 030046 MOVE CONSW
2854 003076 336 00 0 00 030511 SKIPN PVPAGI ;PREVENT PAGE INHIBIT ?
2855 003077 607 00 0 00 000100 TLNN INHPAG ;INHIBIT PAGING & TRAPPING ?
2856 003100 7 010 14 0 00 007273 DATAO PAG,[LDUSRB,,LDEXCB!TRPENB] ;SETUP PAGING
2857 003101 7 000 20 0 00 000010 CONO APR,IAPRE1 ;ENABLE ERROR CHANNEL 1
2858 003102 7 004 20 0 00 042377 CONO PI,PARENB!CHNON!PION!PICHNA ;ENABLE ALL PI CHNS
2859 003103 263 17 0 00 000000 RTN ;EXIT
2860
2861 ;*KI10/KL10 COMMON TRAP & MMUO SETUP
2862 S^;*********************************************************************^
2863
2864 003104 205 00 0 00 255000 $KIKLI: MOVSI (JFCL)
2865 003105 202 00 0 00 000421 MOVEM AROVTP ;SETUP ARITHMETIC OV TRAP
2866 003106 200 00 0 00 007274 MOVE [JSP $PDLOV]
2867 003107 202 00 0 00 000422 MOVEM PDOVTP ;SETUP PDL OV TRAP
2868 003110 200 00 0 00 007275 MOVE [JSP $TRP3]
2869 003111 202 00 0 00 000423 MOVEM TRP3TP ;SETUP TRAP 3
2870 003112 201 00 0 00 001317 MOVEI MUUOER ;SETP MUUO AS ERROR FOR THE FOLLOWING:
2871 003113 202 00 0 00 000430 MOVEM KNTRP ;KERNAL MODE - NO TRAP ENABLED
2872 003114 202 00 0 00 000431 MOVEM KTRP ; " TRAP ENABLED
2873 003115 202 00 0 00 000432 MOVEM SNTRP ;SUPERVISOR - NO TRAP
2874 003116 202 00 0 00 000433 MOVEM STRP ; " TRAP
2875 003117 202 00 0 00 000434 MOVEM CNTRP ;CONCEALED - NO TRAP
2876 003120 202 00 0 00 000435 MOVEM CTRP ; " TRAP
2877 003121 202 00 0 00 000436 MOVEM PNTRP ;PUBLIC - NO TRAP
2878 003122 202 00 0 00 000437 MOVEM PTRP ; " TRAP
2879 003123 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 39
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0149
2880 ;*KL10 INTERRUPT ROUTINE
2881 S^;*********************************************************************^
2882 SALL
2883 003124 7 010 04 0 00 030111 $KLITR: DATAI PAG,$SVPAG# ;SAVE PAGE
2884 003125 7 010 24 0 00 030112 CONI PAG,$SPAG1#
2885 003126 7 000 34 0 00 000040 CONSO APR,LPWRFL ;POWER FAILURE?
2886 003127 254 00 0 00 003143 JRST $KLIT1 ;NO ...LOOK FOR PARITY ERROR
2887
2888 003130 200 00 0 00 007147 $KLPWR: MOVE [1,,POWER+1] ;YES
2889 003131 251 00 0 00 007631 BLT POWER+17
2890 003132 200 00 0 00 030106 MOVE $ACC0
2891 003133 202 00 0 00 007612 MOVEM POWER
2892 003134 200 00 0 00 030104 MOVE ITRCH1
2893 003135 202 00 0 00 007717 MOVEM $PWRST# ;USER RESTART IF WANTED
2894 003136 200 00 0 00 007257 MOVE [JRST PFSTRT]
2895 003137 202 00 0 00 000070 MOVEM 70
2896 003140 260 17 0 00 003711 GO $CFLUSH ;FLUSH CACHE IF ON
2897 003141 476 00 0 00 007716 SETOM $PWRF ;NOTIFY OF POWER FAIL ON RESTART
2898 003142 254 04 0 00 030000 HALT BEGIN ;UNTIL POWER ON
2899
2900 003143 700400 007574 $KLIT1: 700400,,$SVERA ;READ ERA
2901 003144 700500 007575 700500,,$SBRD ;READ S-BUS DIAG
2902 003145 700500 007577 700500,,$SBRD1 ;RESET S-BUS DIAG
2903 003146 200 00 0 00 030110 MOVE $SVAPR ;GET APR CONDITIONS
2904 003147 606 00 0 00 007700 TRNN LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
2905 003150 254 00 0 00 002600 JRST $ITRHZ ;NONE OF THESE INTERRUPTS
2906 003151 602 00 0 00 002000 TRNE LNXMER ;NON-X-MEM ERROR ?
2907 003152 254 00 0 00 002572 JRST $NXMU ;YES
2908 003153 602 00 0 00 000400 TRNE LPARER ;PARITY ERROR ?
2909 003154 254 00 0 00 002574 JRST $PAREX ;YES
2910 003155 602 00 0 00 004000 TRNE LSBUSE ;S-BUS ERROR ?
2911 003156 254 00 0 00 003166 JRST $KLSBE
2912 003157 602 00 0 00 001000 TRNE LIOPFE ;I/O PAGE FAIL ?
2913 003160 254 00 0 00 003170 JRST $KLIOP
2914 003161 602 00 0 00 000200 TRNE LCADRP ;CACHE ADR PARITY ?
2915 003162 254 00 0 00 003172 JRST $KLCAD
2916 003163 602 00 0 00 000100 TRNE LSADRP ;S-BUS ADR PARITY ?
2917 003164 254 00 0 00 003174 JRST $KLSAD
2918 003165 254 00 0 00 002600 JRST $ITRHZ ;NO ...REST ARE COMMON
2919
2920 003166 201 00 0 00 007276 $KLSBE: MOVEI SIXBTZ <^S-BUS>
2921 003167 254 00 0 00 002604 JRST $ITR1A
2922 003170 201 00 0 00 007300 $KLIOP: MOVEI SIXBTZ <^I/O PAGE FAIL>
2923 003171 254 00 0 00 002604 JRST $ITR1A
2924 003172 201 00 0 00 007303 $KLCAD: MOVEI SIXBTZ <^CACHE ADR PARITY>
2925 003173 254 00 0 00 002604 JRST $ITR1A
2926 003174 201 00 0 00 007306 $KLSAD: MOVEI SIXBTZ <^S-BUS ADR PARITY>
2927 003175 254 00 0 00 002604 JRST $ITR1A
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 40
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0150
2928 LALL
2929 ;*KL10 INTERRUPT AND TRAP INITIALIZATION
2930 S^;*********************************************************************^
2931
2932 003176 201 00 0 00 003215 $KL10: MOVEI $KLPGFL
2933 003177 202 00 0 00 000502 MOVEM LPGFTR ;SETUP PAGE FAIL TRAP
2934 003200 260 17 0 00 003104 GO $KIKLI ;SETUP TRAPS & MUUOS
2935 003201 7 004 20 0 00 031400 $KLCLR: CONO PI,LRQCLR!LPICLR!LCHNOF!LPIOFF ;CLEAR PI SYSTEM,CHNL & REQ PEND
2936 003202 7 000 20 0 00 127740 CONO APR,LAPRAL-20 ;CLEAR PROCESSOR ALL
2937
2938 003203 336 00 0 00 030042 $KLENB: SKIPN MONFLG ;MONITOR CONTROL (SPECIAL USER) ?
2939 003204 254 00 0 00 003211 JRST .+5
2940 003205 200 00 0 00 030046 MOVE CONSW
2941 003206 336 00 0 00 030511 SKIPN PVPAGI ;PREVENT PAGE INHIBIT ?
2942 003207 607 00 0 00 000100 TLNN INHPAG ;PAGING & TRAPPING INHIBITED ?
2943 003210 260 17 0 00 004070 GO KLPAG ;NO, SETUP TRAP ENABLE
2944 003211 7 000 20 0 00 000001 CONO APR,LAPRP1 ;ENABLE CHANNEL 1
2945 003212 7 004 20 0 00 002377 CONO PI,LCHNON!LPION!LPICHA ;ENABLE ALL PI CHNS
2946 003213 263 17 0 00 000000 RTN ;EXIT
2947
2948 003214 254 04 0 00 001016 $IPGFL: HALT CPIERR ;KL10 INITIALIZATION PAGE FAIL
2949
2950 003215 554 00 0 00 000500 $KLPGFL:HLRZ 0,LEUPFW ;GET PAGE FAIL WORD
2951 003216 405 00 0 00 770000 ANDI 0,770000 ;ISOLATE PAGE FAIL CODE
2952 003217 302 00 0 00 360000 CAIE 0,360000 ;AR PARITY ERROR ?
2953 003220 254 00 0 00 003011 JRST $PGFL ;NO
2954 003221 7 000 34 0 00 002000 CONSO APR,LNXMER ;YES, ALSO NON-X-MEMORY ?
2955 003222 254 00 0 00 003011 JRST $PGFL ;NO, REAL AR PARITY ERROR
2956 003223 350 00 0 00 000501 AOS LPFWPC ;YES, INCREMENT PAGE FAIL PC
2957 003224 254 02 1 00 000501 JRSTF @LPFWPC ;RETURN TO NEXT INSTRUCTION
2958
2959 003225 200 00 0 00 030110 $PGFL2: MOVE $SVAPR
2960 003226 606 00 0 00 007700 TRNN LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
2961 003227 254 00 0 00 002621 JRST $ITR1B+2 ;NO APR ERRORS
2962 003230 254 00 0 00 003143 JRST $KLIT1 ;YES, REPORT APR ERRORS
2963
2964 003231 200 17 0 00 007631 $KLRST: MOVE 17,POWER+17 ;RESTORE PUSH POINTER
2965 003232 260 17 0 00 003201 GO $KLCLR ;CLEAR & ENABLE APR & PI
2966 003233 260 17 0 00 003366 GO $KLCSH ;SETUP CACHE IF IT WAS ON
2967 003234 254 00 0 00 002664 JRST $RSTCM ;RESTORE CPU & RESTART
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 41
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* KI10 MARGIN PRINTOUT ROUTINE SEQ 0151
2968 SUBTTL *SUBRTN* KI10 MARGIN PRINTOUT ROUTINE
2969 S^;*********************************************************************^
2970 SALL
2971 003235 336 00 0 00 030055 $PNTMG: SKIPN MARGIN ;ANY MARGIN SETTING ?
2972 003236 263 17 0 00 000000 RTN ;NO
2973 003237 202 01 0 00 007705 MOVEM 1,$PMG1# ;SAVE AC1
2974 003240 037 02 0 00 007311 PMSG <^MGN = >
2975 003241 037 13 0 00 000000 PNTHW ;PRINT MARGIN WORD
2976 003242 200 00 0 00 030055 MOVE MARGIN
2977 003243 606 00 0 00 000037 TRNN 0,37 ;ANY MARGIN VOLTAGE SETTING ?
2978 003244 254 00 0 00 003275 JRST $PTMG1 ;NO
2979 003245 037 02 0 00 007313 PMSG <BAY >
2980 003246 554 01 0 00 030055 HLRZ 1,MARGIN
2981 003247 242 01 0 00 777774 LSH 1,-4
2982 003250 405 01 0 00 000001 ANDI 1,1
2983 003251 201 00 0 01 000061 MOVEI "1"(1)
2984 003252 037 12 0 00 000000 PNTCHR ;PRINT BAY
2985 003253 037 02 0 00 007314 PMSG < ROW >
2986 003254 554 01 0 00 030055 HLRZ 1,MARGIN
2987 003255 405 01 0 00 000017 ANDI 1,17
2988 003256 200 00 0 00 007315 MOVE [POINT 6,$ROW]
2989 003257 133 00 0 00 000000 IBP 0
2990 003260 365 01 0 00 003257 SOJGE 1,.-1
2991 003261 135 00 0 00 000000 LDB 0,0 ;GET ROW CHARACTER
2992 003262 271 00 0 00 000040 ADDI 0,40 ;MAKE ASCII
2993 003263 037 12 0 00 000000 PNTCHR
2994 003264 037 02 0 00 007232 PMSG < = >
2995 003265 200 00 0 00 030055 MOVE MARGIN ;GET MARGIN VALUE
2996 003266 405 00 0 00 000077 ANDI 77
2997 003267 275 00 0 00 000031 SUBI 31 ;COMPUTE DIFFERENCE FROM 5 VOLTS
2998 003270 221 00 0 00 000025 IMULI ^D21 ; X 21MV PER STEP
2999 003271 210 00 0 00 000000 MOVN ;NEGATE FOR PROPER DIRECTION
3000 003272 271 00 0 00 011610 ADDI ^D5000 ;ADD 5000 MVOLTS
3001 003273 037 15 0 00 000000 PNTDEC ;PRINT MARGIN VOLTAGE
3002 003274 037 02 0 00 007316 PMSG < MVOLTS>
3003 003275 200 01 0 00 030055 $PTMG1: MOVE 1,MARGIN ;SPEED MARGINS ?
3004 003276 602 01 0 00 004000 TRNE 1,ISPDON
3005 003277 037 02 0 00 007320 PMSG <, SPEED>
3006 003300 037 00 0 00 030242 PCRL
3007 003301 200 01 0 00 007705 MOVE 1,$PMG1 ;RESTORE AC1
3008 003302 263 17 0 00 000000 RTN ;EXIT
3009
3010 003303 41 42 43 44 45 46 $ROW: SIXBIT /ABCDEFHJKLMNPRST/
3011 003304 50 52 53 54 55 56
3012 003305 60 62 63 64 00 00
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 42
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES SEQ 0152
3013 SUBTTL *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
3014 LALL
3015 ;*END OF PASS ROUTINE
3016 S^;*********************************************************************^
3017 SALL
3018 003306 350 00 0 00 030047 $END: AOS PASCNT ;INCREMENT PASS COUNTER
3019 003307 370 00 0 00 030024 SOS ITRCNT
3020 003310 402 00 0 00 030116 SETZM SCOPE
3021 003311 402 00 0 00 030052 SETZM ERRPC
3022 003312 260 17 0 00 004751 GO $SWTCH
3023 003313 603 00 0 00 400000 TLNE ABORT ;ABORT AT END OF PASS ?
3024 003314 254 00 0 00 003322 JRST $END2 ;YES
3025 003315 336 00 0 00 030037 SKIPN USER
3026 003316 260 17 0 00 003331 GO $END4
3027 003317 336 00 0 00 030024 SKIPN ITRCNT
3028 003320 254 00 0 00 003327 $END1: JRST $END3 ;SKIP RETURN, COMPLETED ALL ITERATIONS
3029 003321 263 17 0 00 000000 RTN ;NON - SKIP , KEEP RUNNING
3030 003322 037 04 0 00 007322 $END2: PMSGF <END PASS >
3031 003323 200 00 0 00 030047 MOVE PASCNT ;PRINT END OF PASS COUNT
3032 003324 037 15 0 00 000001 PNTDCF
3033 003325 037 01 0 00 000056 PNTCIF "."
3034 003326 037 01 0 00 030242 PCRLF
3035 003327 350 00 0 17 000000 $END3: AOS (P)
3036 003330 263 17 0 00 000000 RTN
3037 003331 332 00 0 00 030041 $END4: SKIPE KLFLG
3038 003332 254 00 0 00 003335 JRST .+3
3039 003333 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KA/KI EXEC - DISPLAY ITERATIONS
3040 003334 263 17 0 00 000000 RTN
3041 003335 335 00 0 00 030043 SKIPGE MONCTL
3042 003336 263 17 0 00 000000 RTN ;"DIAMON" CONTROL
3043 003337 201 00 0 00 000404 MOVEI AC0,404 ;END OF PASS CODE
3044 003340 260 17 0 00 002043 GO $DTEXX ;NOTIFY PDP-11
3045 003341 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 43
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES SEQ 0153
3046 LALL
3047 ;*END OF PROGRAM ROUTINE
3048 S^;*********************************************************************^
3049
3050 003342 336 00 0 00 030037 $EOP: SKIPN USER
3051 003343 336 00 0 00 030041 SKIPN KLFLG
3052 003344 254 00 0 00 003356 JRST $EOP1
3053
3054 003345 400 00 0 00 000000 SETZ
3055 003346 037 13 0 00 000004 CLOKOP ;DISABLE PDP-11 CLOCK
3056
3057 003347 260 17 0 00 003715 GO $CWRTBI ;WRITEBACK & INVALIDATE CACHE IF ON
3058 003350 7 010 20 0 00 000000 CONO PAG,0 ;TURN OFF CACHE
3059
3060 003351 332 00 0 00 030044 SKIPE MONTEN ;KL10 & EXEC
3061 003352 254 00 1 00 030012 JRST @RETURN ;LOADED BY 10, RETURN TO LOADER
3062
3063 003353 201 00 0 00 000403 MOVEI AC0,403 ;LOADED BY PDP-11
3064 003354 260 17 0 00 002043 GO $DTEXX ;NOTIFY OF EOP
3065 003355 254 04 0 00 001017 HALT EOPERR ;SHOULD NEVER GET HERE
3066
3067 003356 336 00 0 00 030037 $EOP1: SKIPN USER
3068 003357 254 00 0 00 003363 JRST $EOP2 ;KI10/KA10 & EXEC
3069 003360 332 00 0 00 030044 SKIPE MONTEN ;USER, LOADED BY ITSELF ?
3070 003361 254 00 1 00 030012 JRST @RETURN ;NO, RETURN TO LOADER
3071 003362 047 00 0 00 000012 EXIT ;YES, EXIT
3072
3073 003363 332 00 0 00 030044 $EOP2: SKIPE MONTEN ;LOADED BY ITSELF ?
3074 003364 254 00 1 00 030012 JRST @RETURN ;NO, RETURN TO LOADER
3075 003365 254 04 0 00 030000 HALT BEGIN ;YES, HALT AT BEGINNING
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 44
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* KL10 CACHE ENABLE SEQ 0154
3076 SUBTTL *SUBRTN* KL10 CACHE ENABLE
3077 S^;*********************************************************************^
3078
3079 003366 332 00 0 00 030037 $KLCSH: SKIPE USER
3080 003367 263 17 0 00 000000 RTN ;USER MODE
3081 003370 332 00 0 00 030506 SKIPE CSHFLG
3082 003371 263 17 0 00 000000 RTN ;NO CACHE ALLOWED
3083 003372 200 00 0 00 030046 MOVE CONSW
3084 003373 603 00 0 00 000020 TLNE INHCSH
3085 003374 263 17 0 00 000000 RTN ;CACHE INHIBITED
3086
3087 003375 7 010 30 0 00 600000 $CSH: CONSZ PAG,LCASLO!LCASLD ;CACHE ALREADY SETUP ?
3088 003376 263 17 0 00 000000 RTN ;YES, LEAVE IT ALONE THEN
3089 003377 554 03 0 00 007632 HLRZ 3,CLKDFL ;GET CACHE ENABLE BITS
3090 003400 242 03 0 00 777762 LSH 3,-^D14 ;ISOLATE BITS 0,1,2,3
3091 003401 405 03 0 00 000017 ANDI 3,17
3092 003402 336 00 0 00 000003 SKIPN 3 ;ANY CACHES ENABLED ?
3093 003403 263 17 0 00 000000 RTN ;NO CACHE
3094
3095 003404 561 00 0 00 777774 HRROI 0,-4 ;INITIAL "BLKO E"
3096 003405 201 01 0 00 000200 MOVEI 1,200 ;"BLKO" COUNT
3097 003406 402 00 0 00 000004 SETZM 4
3098 003407 200 02 0 03 003437 MOVE 2,CTABLE(3) ;GET CACHE REFILL TABLE POINTER
3099 003410 306 03 0 00 000010 CAIN 3,10
3100 003411 254 00 0 00 003433 JRST $CSH3 ;CACHE 0
3101 003412 306 03 0 00 000004 CAIN 3,4
3102 003413 254 00 0 00 003433 JRST $CSH3 ;CACHE 1
3103 003414 306 03 0 00 000002 CAIN 3,2
3104 003415 254 00 0 00 003433 JRST $CSH3 ;CACHE 2
3105 003416 306 03 0 00 000001 CAIN 3,1
3106 003417 254 00 0 00 003433 JRST $CSH3 ;CACHE 3
3107 003420 271 00 0 00 000004 $CSH1: ADDI 0,4 ;BUMP "BLKO E" BY 4
3108 003421 336 00 0 00 000004 SKIPN 4 ;SINGLE CACHE ?
3109 003422 134 03 0 00 000002 ILDB 3,2 ;EXTRACT BYTE FROM TABLE
3110 003423 137 03 0 00 007324 DPB 3,[POINT 3,0,20] ;DEPOSIT INTO "BLKO" WORD
3111 003424 7 000 10 1 00 000000 BLKO APR,@0 ;LOAD CACHE RAM
3112 003425 365 01 0 00 003420 SOJGE 1,$CSH1 ;LOOP FOR ALL LOC IN RAM
3113
3114 003426 260 17 0 00 003657 GO $CINVAL ;INVALIDATE CACHE
3115
3116 003427 7 010 24 0 00 000000 $CSH2: CONI PAG,0
3117 003430 660 00 0 00 600000 TRO LCASLO!LCASLD ;ENABLE LOOK & LOAD
3118 003431 7 010 20 1 00 000000 CONO PAG,@0
3119 003432 263 17 0 00 000000 RTN
3120
3121 003433 200 03 0 00 000002 $CSH3: MOVE 3,2 ;PUT CACHE DIGIT IN AC3
3122 003434 344 04 0 00 003420 AOJA 4,$CSH1
3123
3124 003435 $CSHER: PMSGF <CSWEEP TIMEOUT^>^
3125 003435 037 04 0 00 007325 PSIXMF [SIXBIT\CSWEEP TIMEOUT^_\]^
3126 003436 037 15 0 00 000004 FATAL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 45
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* KL10 CACHE ENABLE SEQ 0155
3127 003437 000000 000000 CTABLE: 0
3128 003440 000000 000003 3 ;CACHE REFILL 3
3129 003441 000000 000002 2 ;CACHE REFILL 2
3130 003442 44 03 0 00 003635 POINT 3,CR23 ;CACHE REFILL 2 & 3
3131 003443 000000 000001 1 ;CACHE REFILL 1
3132 003444 44 03 0 00 003622 POINT 3,CR13 ;CACHE REFILL 1 & 3
3133 003445 44 03 0 00 003607 POINT 3,CR12 ;CACHE REFILL 1 & 2
3134 003446 44 03 0 00 003505 POINT 3,CR123 ;CACHE REFILL 1 & 2 & 3
3135 003447 000000 000000 0 ;CACHE REFILL 0
3136 003450 44 03 0 00 003574 POINT 3,CR03 ;CACHE REFILL 0 & 3
3137 003451 44 03 0 00 003561 POINT 3,CR02 ;CACHE REFILL 0 & 2
3138 003452 44 03 0 00 003520 POINT 3,CR023 ;CACHE REFILL 0 & 2 & 3
3139 003453 44 03 0 00 003546 POINT 3,CR01 ;CACHE REFILL 0 & 1
3140 003454 44 03 0 00 003533 POINT 3,CR013 ;CACHE REFILL 0 & 1 & 3
3141 003455 44 03 0 00 003472 POINT 3,CR012 ;CACHE REFILL 0 & 1 & 2
3142 003456 44 03 0 00 003457 POINT 3,CR0123 ;CACHE REFILL 0 & 1 & 2 & 3
3143
3144 ;CACHE REFILL TABLES FOR 1, 2, 3 AND 4 CACHE COMBINATIONS.
3145 ;DIGITS AFTER 'CR' INDICATE WHICH CACHES ARE ENABLED.
3146
3147 003457 012345 673123 CR0123: 012345673123
3148 003460 212371 271127 212371271127
3149 003461 656755 670323 656755670323
3150 003462 022301 234567 022301234567
3151 003463 077700 074666 077700074666
3152 003464 446431 331113 446431331113
3153 003465 077700 070123 077700070123
3154 003466 456745 574547 456745574547
3155 003467 012201 210566 012201210566
3156 003470 056045 654564 056045654564
3157 003471 012345 670000 012345670000
3158
3159 003472 012245 612122 CR012: 012245612122
3160 003473 212211 211121 212211211121
3161 003474 656255 620626 656255620626
3162 003475 022601 264560 022601264560
3163 003476 000000 004666 000000004666
3164 003477 446451 551115 446451551115
3165 003500 044400 040125 044400040125
3166 003501 456445 504540 456445504540
3167 003502 012201 210566 012201210566
3168 003503 056045 654564 056045654564
3169 003504 012645 640000 012645640000
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 46
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* KL10 CACHE ENABLE SEQ 0156
3170 003505 312315 673123 CR123: 312315673123
3171 003506 212371 271127 212371271127
3172 003507 656755 677323 656755677323
3173 003510 722331 232567 722331232567
3174 003511 377733 372666 377733372666
3175 003512 226231 331113 226231331113
3176 003513 777777 777123 777777777123
3177 003514 156715 571517 156715571517
3178 003515 512251 216566 512251216566
3179 003516 656655 655565 656655655565
3180 003517 612355 670000 612355670000
3181
3182 003520 032342 673323 CR023: 032342673323
3183 003521 232373 273327 232373273327
3184 003522 626722 670323 626722670323
3185 003523 022307 234067 022307234067
3186 003524 077700 074666 077700074666
3187 003525 446437 337773 446437337773
3188 003526 077700 070723 077700070723
3189 003527 406740 074047 406740074047
3190 003530 062206 260466 062206260466
3191 003531 046044 644464 046044644464
3192 003532 062344 670000 062344670000
3193
3194 003533 013345 173133 CR013: 013345173133
3195 003534 313371 371137 313371371137
3196 003535 151755 170373 151755170373
3197 003536 077301 734507 077301734507
3198 003537 077700 074000 077700074000
3199 003540 440431 331113 440431331113
3200 003541 077700 070173 077700070173
3201 003542 450745 574547 450745574547
3202 003543 015501 510544 015501510544
3203 003544 054045 454544 054045454544
3204 003545 015345 470000 015345470000
3205
3206 003546 015545 115155 CR01: 015545115155
3207 003547 515511 411141 515511411141
3208 003550 151455 140444 151455140444
3209 003551 044401 444500 044401444500
3210 003552 000000 004000 000000004000
3211 003553 440451 551115 440451551115
3212 003554 044400 040145 044400040145
3213 003555 450445 504540 450445504540
3214 003556 015501 510544 015501510544
3215 003557 054045 454544 054045454544
3216 003560 015445 440000 015445440000
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 47
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* KL10 CACHE ENABLE SEQ 0157
3217 003561 062242 662422 CR02: 062242662422
3218 003562 242266 266626 242266266626
3219 003563 626222 620626 626222620626
3220 003564 022604 264060 022604264060
3221 003565 000000 004666 000000004666
3222 003566 446444 444444 446444444444
3223 003567 044400 040424 044400040424
3224 003570 406440 004040 406440004040
3225 003571 062206 260466 062206260466
3226 003572 046044 644464 046044644464
3227 003573 062644 640000 062644640000
3228
3229 003574 033347 773333 CR03: 033347773333
3230 003575 333373 373337 333373373337
3231 003576 777777 770373 777777770373
3232 003577 077307 734007 077307734007
3233 003600 077700 074000 077700074000
3234 003601 440437 337773 440437337773
3235 003602 077700 070773 077700070773
3236 003603 400740 074047 400740074047
3237 003604 044404 440444 044404440444
3238 003605 044044 444444 044044444444
3239 003606 044344 470000 044344470000
3240
3241 003607 512215 612122 CR12: 512215612122
3242 003610 212211 211121 212211211121
3243 003611 656255 621626 656255621626
3244 003612 122661 262566 122661262566
3245 003613 666666 662666 666666662666
3246 003614 226251 551115 226251551115
3247 003615 555555 555125 555555555125
3248 003616 156515 521512 156515521512
3249 003617 512251 216566 512251216566
3250 003620 656655 655565 656655655565
3251 003621 612655 660000 612655660000
3252
3253 003622 313315 173133 CR13: 313315173133
3254 003623 313371 371137 313371371137
3255 003624 151755 177373 151755177373
3256 003625 777331 737577 777331737577
3257 003626 377733 377777 377733377777
3258 003627 777731 331113 777731331113
3259 003630 777777 777173 777777777173
3260 003631 157715 571517 157715571517
3261 003632 515551 515555 515551515555
3262 003633 555555 355535 555555355535
3263 003634 515355 570000 515355570000
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 48
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* KL10 CACHE ENABLE SEQ 0158
3264 003635 332372 673323 CR23: 332372673323
3265 003636 232373 273327 232373273327
3266 003637 626722 677323 626722677323
3267 003640 722337 232767 722337232767
3268 003641 377733 372666 377733372666
3269 003642 226237 337773 226237337773
3270 003643 777777 777723 777777777723
3271 003644 776777 777777 776777777777
3272 003645 362236 266366 362236266366
3273 003646 636666 666666 636666666666
3274 003647 662366 670000 662366670000
3275
3276 003650 336 00 0 00 030037 KLEXCK: SKIPN USER
3277 003651 336 00 0 00 030041 SKIPN KLFLG
3278 003652 254 00 0 00 003655 JRST .+3 ;ONLY IF KL10 & EXEC
3279 003653 7 010 30 0 00 600000 CONSZ PAG,LCASLO!LCASLD
3280 003654 263 17 0 00 000000 RTN ;AND CACHE IS ON
3281 003655 274 17 0 00 007106 SUB P,[1,,1] ;OTHERWISE DOUBLE RETURN
3282 003656 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 49
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* KL10 CACHE ENABLE SEQ 0159
3283 ;*KL10 CACHE INVALIDATE
3284 S^;*********************************************************************^
3285
3286 003657 336 00 0 00 030037 $CINVAL:SKIPN USER
3287 003660 336 00 0 00 030041 SKIPN KLFLG
3288 003661 263 17 0 00 000000 RTN ;ONLY IF KL10 & EXEC
3289 003662 261 17 0 00 000000 PUT 0
3290 003663 200 00 0 00 007330 MOVE 0,[DATAI CCA,0] ;CACHE INVALIDATE ALL
3291
3292 003664 261 17 0 00 000001 $CSHZ: PUT 1
3293 003665 261 17 0 00 000002 PUT 2
3294 003666 261 17 0 00 000003 PUT 3
3295 003667 261 17 0 00 000004 PUT 4
3296 003670 7 000 24 0 00 000004 CONI APR,4
3297 003671 405 04 0 00 000007 ANDI 4,7
3298 003672 660 04 0 00 040020 TRO 4,LDCASD
3299 003673 7 000 20 0 04 000000 CONO APR,(4) ;DISABLE CACHE SWEEP DONE INTERRUPT
3300
3301 003674 200 01 0 00 007331 MOVE 1,[CONSZ APR,LCASWB] ;CACHE SWEEP BUSY
3302 003675 200 02 0 00 007332 MOVE 2,[SOJN 4,1] ;WAIT TILL IT GOES AWAY
3303 003676 200 03 0 00 007333 MOVE 3,[JRST $CSHX] ;RETURN FROM AC'S
3304 003677 201 04 0 00 777777 MOVEI 4,-1 ;WAIT COUNT
3305 003700 254 00 0 00 000000 JRST 0 ;GO INVALIDATE/FLUSH CACHE
3306
3307 003701 336 00 0 00 000004 $CSHX: SKIPN 4 ;DID WE TIME OUT ?
3308 003702 254 00 0 00 003435 JRST $CSHER ;YES, REPORT ERROR
3309 003703 262 17 0 00 000004 GET 4
3310 003704 262 17 0 00 000003 GET 3
3311 003705 262 17 0 00 000002 GET 2
3312 003706 262 17 0 00 000001 GET 1
3313 003707 262 17 0 00 000000 GET 0
3314 003710 263 17 0 00 000000 RTN
3315
3316 ;*KL10 CACHE FLUSH
3317 S^;*********************************************************************^
3318
3319 003711 260 17 0 00 003650 $CFLUSH:GO KLEXCK
3320 003712 261 17 0 00 000000 PUT 0
3321 003713 200 00 0 00 007334 MOVE 0,[BLKO CCA,0] ;CACHE FLUSH
3322 003714 254 00 0 00 003664 JRST $CSHZ
3323
3324 ;*KL10 CACHE WRITE-BACK & INVALIDATE
3325 S^;*********************************************************************^
3326
3327 003715 260 17 0 00 003650 $CWRTBI:GO KLEXCK
3328 003716 261 17 0 00 000000 PUT 0
3329 003717 200 00 0 00 007335 MOVE 0,[701540,,0] ;CACHE WRITE-BACK & INVALIDATE
3330 003720 254 00 0 00 003664 JRST $CSHZ
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 50
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* MEMORY MAPPING ROUTINES SEQ 0160
3331 SUBTTL *SUBRTN* MEMORY MAPPING ROUTINES
3332
3333 S^;*********************************************************************^
3334 ;*THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
3335 ;*ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
3336 ;* $MPCNK (MAPCNK) ACTUAL MEMORY CHUNK MAPPER
3337 ;* $MPSET (MAPSET) SETS UP PAGE MAP FOR KI10
3338 ;* $MSEG (MEMSEG) SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
3339 ;* (MAPNEW=-1 FOR PAGED SEGMENTS UP TO 4096K)
3340 ;* (MAPNEW= 0 FOR DIRECT ADDRESSING UP TO 256K)
3341 ;* $MZRO (MEMZRO) ZERO'S THE MAPPED MEMORY
3342 ;* $MPADR (MAPADR) VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
3343 S^;*********************************************************************^
3344
3345 003721 336 00 0 00 030037 $MEMMP: SKIPN USER
3346 003722 254 00 0 00 003731 JRST $MEMEX ;EXEC MODE
3347
3348 ;*USER MODE MEMORY MAPPING
3349 S^;*********************************************************************^
3350
3351 003723 402 00 0 00 030146 $USRMP: SETZM MEMSIZ ;USER MEMORY STARTS AT 0
3352 003724 550 00 0 00 000044 HRRZ JOBREL ;GET HIGHEST REL ADDRESS
3353 003725 202 00 0 00 030147 MOVEM MEMSIZ+1 ;SAVE AS MEMORY SIZE
3354 003726 476 00 0 00 030150 SETOM MEMSIZ+2 ;FLAG END OF MEMSIZ TABLE
3355 003727 402 00 0 00 030143 SETZM MAPNEW ;CLEAR 4096K MAPPING FLAG
3356 003730 254 00 0 00 004536 JRST $PMAP ;GO PRINT MAP
3357
3358 ;*EXEC MODE MEMORY MAPPING
3359 S^;*********************************************************************^
3360
3361 003731 402 00 0 00 030146 $MEMEX: SETZM MEMSIZ ;CLEAR MAP TABLE START ADDR
3362 003732 200 00 0 00 007336 MOVE [MEMSIZ,,MEMSIZ+1]
3363 003733 251 00 0 00 030216 BLT MEMSIZ+^D40 ;CLEAR MEMSIZ TABLE
3364
3365 003734 332 00 0 00 030041 $MEEX1: SKIPE KLFLG
3366 003735 254 00 0 00 003740 JRST $MEMKI ;KL10
3367 003736 336 00 0 00 030040 SKIPN KAIFLG
3368 003737 254 00 0 00 004006 JRST $MPOL1 ;KA10
3369 003740 336 00 0 00 030042 $MEMKI: SKIPN MONFLG ;SPECIAL USER MODE ?
3370 003741 254 00 0 00 004006 JRST $MPOL1 ;YES, USE UPMP & 256K
3371 003742 201 00 0 00 337777 MOVEI 0,337777 ;NO
3372 003743 200 01 0 00 030046 MOVE 1,CONSW ;SETUP SWITCHES
3373 003744 336 00 0 00 030511 SKIPN PVPAGI ;PREVENT PAGE INHIBIT ?
3374 003745 607 01 0 00 000100 TLNN 1,INHPAG ;PAGING INHIBITED ?
3375 003746 254 00 0 00 003750 JRST $MEPAG ;NO ...USE PAGING
3376 003747 254 00 0 00 004007 JRST $MPOL1+1 ;YES, USE UNPAGED MEM, 0-112K
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 51
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* MEMORY MAPPING ROUTINES SEQ 0161
3377 003750 205 01 0 00 777760 $MEPAG: MOVSI 1,-20 ;SETUP EXEC-PER-PROCESS MAP
3378 003751 200 00 0 00 007337 MOVE [540336,,540337]
3379 003752 336 00 0 00 030506 SKIPN CSHFLG
3380 003753 670 00 0 00 007055 TDO [020000,,020000]
3381 003754 270 00 0 00 007056 ADD [2,,2] ;SO 112K-128K POINTS TO ITSELF
3382 003755 202 00 0 01 000400 MOVEM 400(1) ;VIRTUAL = PHYSICAL
3383 003756 253 01 0 00 003754 AOBJN 1,.-2
3384 003757 205 00 0 00 255000 MOVSI (JFCL) ;SETUP ARITHMETIC TRAP
3385 003760 202 00 0 00 000421 MOVEM 421 ;JUST IN CASE
3386 003761 336 00 0 00 030143 SKIPN MAPNEW ;"MAPNEW" = 0 ?
3387 003762 254 00 0 00 003773 JRST $MPOLD ;YES ...USE 256K MAPPING
3388
3389 S^;*********************************************************************^
3390 ;*MEMORY MAPPING CONTROL
3391 ;*MAP 4096K, 256K, 112K OR 256K SPECIAL USER
3392 S^;*********************************************************************^
3393
3394 003763 200 01 0 00 000121 $MPNEW: MOVE 1,JOBFF ;USE FIRST FREE UP TEMP
3395 003764 201 16 0 00 000037 MOVEI 16,^D31 ;4096K IS 32 128K CHUNKS
3396 003765 200 00 0 00 000016 MOVE 0,16
3397 003766 260 17 0 00 004167 GO $MPSET ;SET PAGE MAP FOR 128K CHUNK
3398 003767 200 00 0 00 007340 MOVE [400000,,777777] ;LOAD AC0 WITH PAGABLE ADDR BOUNDARIES
3399 003770 260 17 0 00 004050 GO $MPCNK ;MAP 128K-256K VIRTUAL
3400 003771 365 16 0 00 003765 SOJGE 16,.-4 ;COMPLETED 4096K ?
3401 003772 254 00 0 00 004013 JRST $MPCMB ;YES, COMBINE POINTERS
3402
3403 003773 205 01 0 00 777600 $MPOLD: MOVSI 1,-200 ;128K-256K VIRTUAL POINTS
3404 003774 200 00 0 00 007341 MOVE [540376,,540377] ;TO PHYSICAL 128K-256K
3405 003775 336 00 0 00 030507 SKIPN CSHMEM
3406 003776 670 00 0 00 007055 TDO [020000,,020000]
3407 003777 270 00 0 00 007056 ADD [2,,2] ;AND MEMORY ENDS AT 256K
3408 004000 202 00 0 01 000200 MOVEM 200(1)
3409 004001 253 01 0 00 003777 AOBJN 1,.-2
3410 004002 332 00 0 00 030041 SKIPE KLFLG
3411 004003 260 17 0 00 004070 GO KLPAG ;SET TRAP ENABLE
3412 004004 336 00 0 00 030041 SKIPN KLFLG
3413 004005 7 010 14 0 00 007342 DATAO PAG,[LDEXCB!TRPENB]
3414 004006 201 00 0 00 777777 $MPOL1: MOVEI 0,777777 ;MAP 0-256K
3415 004007 200 01 0 00 000121 MOVE 1,JOBFF ;USE FIRST FREE UP TEMP
3416 004010 402 00 0 00 030143 SETZM MAPNEW ;DIRECT ADDRESSING ONLY
3417 004011 260 17 0 00 004050 GO $MPCNK ;MAP CHUNK
3418 004012 254 00 0 00 004013 JRST $MPCMB ;COMBINE POINTERS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 52
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* MEMORY MAPPING ROUTINES SEQ 0162
3419 S^;*********************************************************************^
3420 ;*COMBINE EXISTENT CHUNKS FROM MAPCNK
3421 ;*PUT POINTERS IN MEMSIZ TABLE
3422 S^;*********************************************************************^
3423
3424 004013 402 00 0 00 000002 $MPCMB: SETZM 2 ;SET MEMSIZ TABLE POINTER (AC2) @ 0
3425 004014 275 01 0 00 000001 SUBI 1,1 ;DECREMENT TEMP POINTER
3426 004015 200 00 0 01 000000 MOVE AC0,(1) ;GET LOWEST ADR OF LOWEST CHUNK
3427 004016 302 00 0 00 000000 CAIE 0,0 ;SHOULD BE 0 (THATS WHERE MEMORY STARTS)
3428 004017 037 15 0 00 000004 FATAL ;NOT 0
3429 004020 202 00 0 02 030146 MOVEM MEMSIZ(2) ;PUT IN MEMSIZ TABLE (AC2 IS PTR)
3430 004021 271 02 0 00 000001 ADDI 2,1 ;INCR THE TABLE POINTER
3431
3432 004022 275 01 0 00 000001 $MPCM1: SUBI 1,1 ;DECR TEMP POINTER
3433 004023 307 01 1 00 000121 CAIG 1,@JOBFF ;COMBINED ALL CHUNK POINTERS ?
3434 ;(TEMP PTR > JOBFF)
3435 004024 254 00 0 00 004041 JRST $MPCM2 ;YES )
3436 004025 200 00 0 01 000000 MOVE AC0,(1) ;NO ...GET CHUNK END ADDRESS
3437 004026 200 03 0 01 777777 MOVE 3,-1(1) ;GET NEXT CHUNK START ADR IN AC3
3438 004027 200 04 0 00 000000 MOVE 4,0 ;PUT END ADDR IN AC4
3439 004030 271 04 0 00 000001 ADDI 4,1 ;INCR THE END ADDR
3440 004031 316 03 0 00 000004 CAMN 3,4 ;IF END & START NOW EQUAL
3441 004032 364 01 0 00 004022 SOJA 1,$MPCM1 ;IT IS CONT. CHUNK - DO NEXT ONE
3442
3443 004033 202 00 0 02 030146 $MPCM3: MOVEM 0,MEMSIZ(2) ;IF NOT =, PUT END ADR IN MEMSIZ TABLE
3444 004034 301 02 0 00 000046 CAIL 2,^D38 ;HAVE WE FILLED MEMSIZ TABLE ?
3445 004035 254 00 0 00 004045 JRST $MPCMX ;YES ...IGNORE REST OF CHUNKS )
3446 004036 271 02 0 00 000001 ADDI 2,1 ;NO ...INCR MEMSIZ TABLE PTR (AC2)
3447 004037 202 03 0 02 030146 MOVEM 3,MEMSIZ(2) ;AND NEXT CHUNK START ADR
3448 004040 364 01 0 00 004021 SOJA 1,$MPCM1-1 ;DO NEXT ONE
3449
3450 004041 200 00 0 01 000000 $MPCM2: MOVE (1) ;GET LAST ADDR OF LAST CHUNK
3451 004042 202 00 0 02 030146 MOVEM MEMSIZ(2) ;SAVE LAST ADR OF LAST CHUNK
3452 004043 476 00 0 02 030147 SETOM MEMSIZ+1(2) ;FLAG END OF MEMSIZ TABLE WITH 1'S
3453 004044 254 00 0 00 004536 JRST $PMAP ;PRINT THE MAP
3454
3455 004045 476 00 0 02 030147 $MPCMX: SETOM MEMSIZ+1(2) ;FLAG END OF MEMSIZ TABLE WITH 1'S
3456
3457 PMSGF <^TOO MANY MAP SEGMENTS^>^
3458 004046 037 04 0 00 007343 PSIXMF [SIXBIT\^TOO MANY MAP SEGMENTS^_\]^
3459 004047 254 00 0 00 004536 JRST $PMAP ;PRINT THE MAP
3460
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 53
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER SEQ 0163
3461 SUBTTL *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
3462
3463 S^;*********************************************************************^
3464 ;*STARTS AT HIGHEST POSSIBLE ADDRESS AND MAPS (ASSUMING NON-X-MEM)
3465 ;*UNTIL THE NXM BIT GOES AWAY - THEN MAPS EXISTENT MEMORY
3466 ;*IF NXM BIT COMES BACK IT SWITCHES BACK TO NON-X-MEM MAPPING AND
3467 ;*MAPS THE HOLE IN EXISTENT MEMORY
3468 ;*AC0 HAS BEEN PREVIOUSLY SET UP BY $MPOLD/$MPNEW WITH ADDR LIMITS
3469 S^;*********************************************************************^
3470
3471 004050 202 02 0 00 007637 $MPCNK: MOVEM 2,$ACMP1# ;SAVE AC2 - AC4
3472 004051 202 03 0 00 007640 MOVEM 3,$ACMP2#
3473 004052 202 04 0 00 007641 MOVEM 4,$ACMP3#
3474
3475 004053 550 02 0 00 000000 HRRZ 2,0 ;LOAD ADDRESSER WITH HIGHEST POSS ADDR
3476 004054 554 03 0 00 000000 HLRZ 3,0 ;LOAD WITH LOWEST POSS ADDR
3477 004055 7 004 24 0 00 007671 CONI PI,$MSPI# ;SAVE THE PI STATUS
3478 004056 7 004 20 0 00 000400 CONO PI,PIOFF ;TURN OFF INTERRUPTS
3479 004057 7 000 24 0 00 007670 CONI APR,$MSAPR# ;SAVE PROCESSOR STATUS
3480 004060 317 02 0 00 000003 CAMG 2,3 ;END GREATER THAN START ?
3481 004061 037 15 0 00 000004 FATAL ;NO
3482
3483 004062 201 04 0 00 010000 $MPCN1: MOVEI 4,ANXM ;SETUP KA10 NXM BIT
3484 004063 332 00 0 00 030040 SKIPE KAIFLG
3485 004064 201 04 0 00 000100 MOVEI 4,INXM ;SETUP KI10 NXM BIT
3486 004065 332 00 0 00 030041 SKIPE KLFLG
3487 004066 201 04 0 00 022000 MOVEI 4,LCNXER ;SETUP KL10 NXM BIT
3488 004067 254 00 0 00 004076 JRST $MPNXM ;CONO/CONI BIT(S) SET UP - GO MAP
3489
3490 004070 261 17 0 00 000000 KLPAG: PUT 0
3491 004071 7 010 24 0 00 000000 CONI PAG,0 ;GET PRESENT STATE
3492 004072 660 00 0 00 020000 TRO 0,LTRPEN ;MAKE SURE TRAP ENABLE SET
3493 004073 7 010 20 1 00 000000 CONO PAG,@0 ;PAGE RESET
3494 004074 262 17 0 00 000000 GET 0
3495 004075 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 54
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER SEQ 0164
3496 ;*NON-X-MEMORY SEGMENT MAPPER
3497 S^;*********************************************************************^
3498
3499 004076 7 000 20 0 04 000000 $MPNXM: CONO APR,(4) ;CLEAR NXM BIT, IF SET
3500 004077 310 00 0 02 000000 CAM (2) ;ADDRESS THE MEMORY
3501 004100 310 00 0 02 777777 CAM -1(2) ;INTERLEAVE MAP
3502 004101 310 00 0 02 777776 CAM -2(2) ;IF NON-X-MEM FROM ANY 4-WAY INTERLEAVE
3503 004102 310 00 0 02 777775 CAM -3(2) ;MARK ALL NON-X-MEM
3504 004103 7 000 34 0 04 000000 CONSO APR,(4) ;NON-X-MEMORY BIT SET ?
3505 004104 254 00 0 00 004152 JRST $M5 ;NO ..CONV VIRT & REMAP EXISTENT
3506
3507 004105 7 000 20 0 04 000000 $M2: CONO APR,(4) ;YES ...CLEAR THE BIT
3508 004106 275 02 0 00 020000 SUBI 2,20000 ;STEP DOWN 8K
3509 004107 301 02 0 03 000000 CAIL 2,(3) ;MEMORY CHUNK DONE ? (< LOWEST POSS)
3510 004110 254 00 0 00 004076 JRST $MPNXM ;NO ...MAP THE NEXT CHUNK
3511
3512
3513 ;*RESTORE OVERALL SYSTEM STATUS AFTER MAPPING
3514 S^;*********************************************************************^
3515
3516 004111 332 00 0 00 030041 $MPRST: SKIPE KLFLG
3517 004112 254 00 0 00 004122 JRST $MPRKL ;KL10
3518 004113 550 03 0 00 007670 HRRZ 3,$MSAPR ;RESTORE CPU STATUS
3519 004114 336 00 0 00 030040 SKIPN KAIFLG
3520 004115 620 03 0 00 775550 TRZ 3,775550 ;CHANGE SOME KA10 STATUS BITS
3521 004116 332 00 0 00 030040 SKIPE KAIFLG
3522 004117 620 03 0 00 720700 TRZ 3,720700 ;CHANGE SOME KI10 STATUS BITS
3523 004120 7 000 20 0 03 000000 CONO APR,(3) ;RESET APR STATUS
3524 004121 254 00 0 00 004126 JRST $MPRPI
3525 004122 7 000 20 0 00 127740 $MPRKL: CONO APR,LAPRAL-20 ;RESET KL APR STATUS
3526 004123 550 03 0 00 007670 HRRZ 3,$MSAPR
3527 004124 405 03 0 00 000007 ANDI 3,7
3528 004125 7 000 20 0 03 000000 CONO APR,(3) ;REASSIGN APR CHANNEL
3529 004126 200 03 0 00 007671 $MPRPI: MOVE 3,$MSPI ;GET SAVED PI STATUS
3530 004127 602 03 0 00 000200 TRNE 3,PION ;IF INTERRUPTS WERE ON
3531 004130 7 004 20 0 00 000200 CONO PI,PION ;TURN BACK ON
3532 004131 200 02 0 00 007637 MOVE 2,$ACMP1 ;RESTORE AC'S
3533 004132 200 03 0 00 007640 MOVE 3,$ACMP2
3534 004133 200 04 0 00 007641 MOVE 4,$ACMP3
3535 004134 263 17 0 00 000000 RTN ;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 55
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER SEQ 0165
3536 ;*EXISTANT MEMORY MAPPER
3537 S^;*********************************************************************^
3538 004135 310 00 0 02 000000 $MPEXM: CAM (2) ;ADDRESS THE MEMORY
3539 004136 310 00 0 02 777777 CAM -1(2) ;INTERLEAVE THE MAP
3540 004137 310 00 0 02 777776 CAM -2(2)
3541 004140 310 00 0 02 777775 CAM -3(2)
3542 004141 336 00 0 00 030041 SKIPN KLFLG
3543 004142 254 00 0 00 004144 JRST .+2
3544 004143 201 04 0 00 002000 MOVEI 4,LNXMER ;KL10 NXM BIT
3545 004144 7 000 30 0 04 000000 CONSZ APR,(4) ;EXISTANT ?
3546 004145 344 02 0 00 004154 AOJA 2,$M6 ;NO
3547
3548 004146 275 02 0 00 020000 $M4: SUBI 2,20000 ;YES, STEP DOWN 8K
3549 004147 301 02 0 03 000000 CAIL 2,(3) ;BELOW START ADDRESS ?
3550 004150 254 00 0 00 004135 JRST $MPEXM ;NO ...MAP NEXT CHUNK
3551 004151 344 02 0 00 004160 AOJA 2,$M7 ;YES, THIS CHUNK DONE
3552
3553 S^;*********************************************************************^
3554 ;*SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
3555 ;*TEMPORY STORAGE POINTER IN AC1
3556 ;*VIRTUAL ADDRESS IN AC0
3557 ;*"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS
3558 S^;*********************************************************************^
3559
3560 004152 260 17 0 00 004162 $M5: GO $MPCXX
3561 004153 344 01 0 00 004135 AOJA 1,$MPEXM ;GO MAP EXISTANT CHUNK
3562
3563 004154 260 17 0 00 004162 $M6: GO $MPCXX
3564 004155 271 01 0 00 000001 ADDI 1,1 ;INCREMENT ADDR
3565 004156 260 17 0 00 003715 GO $CWRTBI ;CACHE WRITE-BACK & INVALIDATE
3566 004157 364 02 0 00 004062 SOJA 2,$MPCN1 ;GO MAP NON-X CHUNK
3567
3568 004160 260 17 0 00 004162 $M7: GO $MPCXX
3569 004161 344 01 0 00 004111 AOJA 1,$MPRST ;RESTORE AC'S AND RETURN )
3570
3571 004162 200 00 0 00 000002 $MPCXX: MOVE 0,2
3572 004163 260 17 0 00 004462 GO $MPADR ;CONVERT VIRTUAL TO PHYSICAL
3573 004164 037 15 0 00 000004 FATAL ;CAN'T DO IT
3574 004165 202 00 0 01 000000 MOVEM (1) ;SAVE IN TEMP
3575 004166 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 56
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP SEQ 0166
3576 SUBTTL *SUBRTN* "MAPSET" SETUP KL10/KI10 PAGE MAP
3577
3578 S^;*********************************************************************^
3579 ;*FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
3580 ;*ARGUMENTS PASSED IN AC0:
3581 ;* NEG - CLEAR PAGE MAP
3582 ;* 0-37 - MAP CORRESPONDING 128K SEGMENT
3583 S^;*********************************************************************^
3584
3585 004167 332 00 0 00 030037 $MPSET: SKIPE USER
3586 004170 263 17 0 00 000000 RTN ;USER MODE
3587
3588 004171 202 01 0 00 007642 $MPSE1: MOVEM 1,$ACMP4# ;SAVE AC1
3589 004172 325 00 0 00 004204 JUMPGE 0,$MPSE2 ;ARG NEG ?
3590 004173 402 00 0 00 000200 SETZM 200 ;YES, CLEAR PAGE MAP
3591 004174 200 00 0 00 007347 MOVE 0,[200,,201]
3592 004175 251 00 0 00 000377 BLT 0,377
3593
3594 004176 332 00 0 00 030041 $MPSE3: SKIPE KLFLG
3595 004177 260 17 0 00 004070 GO KLPAG ;SET TRAP ENABLE
3596 004200 332 00 0 00 030040 SKIPE KAIFLG
3597 004201 7 010 14 0 00 007342 DATAO PAG,[LDEXCB!TRPENB]
3598 004202 200 01 0 00 007642 MOVE 1,$ACMP4 ;RESTORE AC1
3599 004203 263 17 0 00 000000 RTN ;EXIT
3600
3601 004204 301 00 0 00 000040 $MPSE2: CAIL 0,40 ;ARG 0-37 ?
3602 004205 037 15 0 00 000004 FATAL ;NO, FATAL ERROR
3603 004206 221 00 0 00 000400 IMULI 0,400 ;COMPUTE PHYSICAL RELOCATION
3604 004207 660 00 0 00 540000 TRO 0,540000 ;SET A,W,S BITS
3605 004210 336 00 0 00 030507 SKIPN CSHMEM ;MEM SEG'S CACHED ?
3606 004211 660 00 0 00 020000 TRO 0,020000 ;YES
3607 004212 504 00 0 00 000000 HRL 0,0 ;MAKE BOTH HALVES SAME
3608 004213 271 00 0 00 000001 ADDI 0,1 ;RIGHT HALF ODD PAGE
3609 004214 205 01 0 00 777600 MOVSI 1,-200 ;128K IN PAGE MAP
3610 004215 202 00 0 01 000200 MOVEM 200(1) ;PUT RELOCATION DATA IN PAGE MAP
3611 004216 270 00 0 00 007056 ADD [2,,2] ;BUMP FOR NEXT ENTRY
3612 004217 253 01 0 00 004215 AOBJN 1,.-2
3613 004220 254 00 0 00 004176 JRST $MPSE3 ;CLEAR ASSOC MEMORY & EXIT )
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 57
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ## SEQ 0167
3614 SUBTTL *SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
3615
3616 S^;*********************************************************************^
3617 ;*SETS UP TO 128K SEGMENT IN PAGE MAP
3618 ;*ARGUMENTS: 0-37 - MAP CORRESPONDING 128K SEGMENT
3619 ;* GT 37 - MAP USING PHYSICAL ADDRESS
3620 ;*RETURNED IN AC0:
3621 ; 0 - NO MEMORY AVAILABLE
3622 ;* HIGHEST VIRTUAL ADDRESS
3623 ;* BIT 0 SET IF NON-CONSECUTIVE CORE WAS COMBINED
3624 ;*PAGE MAP SET UP SO VIRTUAL ADDRESS 400000 AND UP POINTS
3625 ;*TO MEMORY REQUESTED
3626 ;* RETURNS +2
3627 S^;*********************************************************************^
3628
3629 004221 202 01 0 00 007643 $MSEG: MOVEM 1,$ACMP5# ;AC1 = TEMP STORAGE POINTER
3630 004222 202 02 0 00 007644 MOVEM 2,$ACMP6# ;AC2 = MAP STORAGE POINTER
3631 004223 202 03 0 00 007645 MOVEM 3,$ACMP7# ;AC3 = CHUNK START ADR
3632 004224 202 04 0 00 007646 MOVEM 4,$ACMP8# ;AC4 = CHUNK END ADR
3633 004225 202 05 0 00 007647 MOVEM 5,$ACMP9# ;AC5 = PAGE COUNTER
3634 004226 403 05 0 00 007664 SETZB 5,$MNCON# ;SAVED AC1 - AC5
3635 004227 603 00 0 00 777760 TLNE 0,777760 ;VALID ARGUMENT ?
3636 004230 037 15 0 00 000004 FATAL ;NO
3637 004231 332 00 0 00 030037 SKIPE USER
3638 004232 254 00 0 00 004415 JRST $MSUSR ;USER MODE
3639 004233 336 00 0 00 030143 SKIPN MAPNEW
3640 004234 254 00 0 00 004366 JRST $MSKA ;DIRECT ADDRESSING ONLY (KA10)
3641 004235 200 02 0 00 007350 MOVE 2,[POINT 18,200]
3642 004236 301 00 0 00 000040 CAIL 0,40
3643 004237 254 00 0 00 004326 JRST $MSEGP ;ARG IS FOR PHYSICAL CORE
3644 004240 254 00 0 00 004241 JRST $MSEGV ;VIRTUAL CORE
3645
3646 ;*SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE
3647 S^;*********************************************************************^
3648
3649 004241 200 01 0 00 030145 $MSEGV: MOVE 1,MEMLOW
3650 004242 260 17 0 00 004167 GO $MPSET ;SETUP MAP FOR REQ SEGMENT
3651 004243 200 00 0 00 007340 MOVE [400000,,777777]
3652 004244 260 17 0 00 004050 GO $MPCNK ;MAP THAT SEGMENT
3653
3654 004245 307 01 1 00 030145 $MSGV1: CAIG 1,@MEMLOW
3655 004246 254 00 0 00 004310 JRST $MSEG3 ;NO CORE IN THIS 128K SEGMENT
3656 ;EXIT
3657 004247 402 00 0 00 000200 SETZM 200 ;CLEAR PAGE MAP
3658 004250 200 00 0 00 007347 MOVE [200,,201]
3659 004251 251 00 0 00 000377 BLT 0,377
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 58
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ## SEQ 0168
3660 004252 275 01 0 00 000001 $MSGV2: SUBI 1,1
3661 004253 200 03 0 01 000000 MOVE 3,(1) ;GET CHUNK START ADDRESS
3662 004254 326 03 0 00 004256 JUMPN 3,.+2 ;IF CHUNK ADR IS ZERO
3663 004255 200 03 0 00 030145 MOVE 3,MEMLOW ;USE EVEN BREAK ABOVE JOBFF
3664 004256 275 01 0 00 000001 SUBI 1,1
3665 004257 200 04 0 01 000000 MOVE 4,(1) ;GET CHUNK END ADDRESS
3666 004260 317 04 0 00 000003 CAMG 4,3 ;END GREATER THAN START ?
3667 004261 037 15 0 00 000004 FATAL ;NO ...ABORT
3668 004262 274 04 0 00 000003 SUB 4,3 ;YES ..END - START = SIZE OF CHUNK
3669 004263 271 04 0 00 000001 ADDI 4,1
3670 004264 602 04 0 00 000777 TRNE 4,777 ;CHUNK SHOULD BE EVEN # OF PAGES
3671 004265 037 15 0 00 000004 FATAL ;NO ...ABORT
3672 004266 242 04 0 00 777767 LSH 4,-^D9 ;COMPUTE # OF PAGES
3673 004267 270 05 0 00 000004 ADD 5,4 ;KEEP COUNT
3674 004270 242 03 0 00 777767 LSH 3,-^D9
3675 004271 660 03 0 00 540000 TRO 3,540000 ;CREATE RELOCATION DATA
3676 004272 336 00 0 00 030507 SKIPN CSHMEM ;MEM SEG'S CACHED ?
3677 004273 660 03 0 00 020000 TRO 3,020000 ;YES
3678 004274 361 04 0 00 004300 SOJL 4,$MSGV3
3679 004275 136 03 0 00 000002 IDPB 3,2 ;PUT IN PAGE MAP
3680 004276 271 03 0 00 000001 ADDI 3,1 ;INCREMENT RELOCATION DATA
3681 004277 254 00 0 00 004274 JRST .-3
3682
3683 004300 306 01 1 00 030145 $MSGV3: CAIN 1,@MEMLOW ;ANY MORE CHUNKS IN THIS 128K ?
3684 004301 254 00 0 00 004304 JRST $MSEG2 ;NO ...EXIT)
3685 004302 476 00 0 00 007664 SETOM $MNCON ;YES, NON-CONSECUTIVE CHUNKS
3686 004303 254 00 0 00 004252 JRST $MSGV2 ;PACK INTO VIRTUAL
3687
3688 ;*EXIT FROM MEMSEG ROUTINE
3689 S^;*********************************************************************^
3690
3691 004304 221 05 0 00 001000 $MSEG2: IMULI 5,1000 ;CONVERT # OF PAGES INTO
3692 004305 271 05 0 00 377777 ADDI 5,377777 ;HIGHEST VIRTUAL ADDRESS
3693 004306 332 00 0 00 007664 SKIPE $MNCON ;WERE CHUNKS COMBINED ?
3694 004307 661 05 0 00 400000 TLO 5,400000 ;YES, SET BIT 0 AS FLAG
3695
3696 004310 200 00 0 00 000005 $MSEG3: MOVE 0,5 ;AC0 = RESULTS (SEE TITLE BLOCK)
3697 004311 200 01 0 00 007643 MOVE 1,$ACMP5 ;RESTORE AC'S
3698 004312 200 02 0 00 007644 MOVE 2,$ACMP6
3699 004313 200 03 0 00 007645 MOVE 3,$ACMP7
3700 004314 200 04 0 00 007646 MOVE 4,$ACMP8
3701 004315 200 05 0 00 007647 MOVE 5,$ACMP9
3702 004316 336 00 0 00 030143 SKIPN MAPNEW ;4096K MAPPING (BIG TROUBLE IF NOT)
3703 004317 263 17 0 00 000000 RTN ;NO ...ERROR RETURN +1)
3704
3705 004320 332 00 0 00 030041 $MSEG4: SKIPE KLFLG
3706 004321 260 17 0 00 004070 GO KLPAG ;SET TRAP ENABLE
3707 004322 336 00 0 00 030041 SKIPN KLFLG
3708 004323 7 010 14 0 00 007342 DATAO PAG,[LDEXCB!TRPENB]
3709 004324 350 00 0 17 000000 AOS (P) ;RETURN +2
3710 004325 263 17 0 00 000000 RTN ;RETURN +1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 59
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ## SEQ 0169
3711 ;*PHYSICAL CORE ASSIGNMENT
3712 S^;*********************************************************************^
3713
3714 004326 200 01 0 00 000000 $MSEGP: MOVE 1,0
3715 004327 620 01 0 00 000777 TRZ 1,777 ;MAKE PHYSICAL EVEN PAGE
3716 004330 400 04 0 00 000000 SETZ 4,
3717 004331 200 00 0 04 030146 MOVE MEMSIZ(4) ;GET START ADDRESS
3718 004332 321 00 0 00 004310 JUMPL $MSEG3 ;IF END OF TABLE, NO CORE ..EXIT
3719 004333 315 01 0 00 000000 CAMGE 1,0 ;PHY = OR GT START ?
3720 004334 254 00 0 00 004310 JRST $MSEG3 ;NO, NO CORE ...EXIT
3721 004335 200 00 0 04 030147 MOVE MEMSIZ+1(4) ;GET END ADDRESS
3722 004336 271 04 0 00 000002 ADDI 4,2
3723 004337 311 01 0 00 000000 CAML 1,0 ;PHY GT END ?
3724 004340 254 00 0 00 004331 JRST .-7 ;YES, TRY NEXT CHUNK
3725
3726 004341 336 00 0 00 030143 SKIPN MAPNEW
3727 004342 254 00 0 00 004412 JRST $MSKAP+3 ;DIRECT ADDRESSING
3728 004343 274 00 0 00 000001 SUB 0,1 ;COMPUTE # OF PAGES
3729 004344 271 00 0 00 000001 ADDI 0,1
3730 004345 242 00 0 00 777767 LSH 0,-^D9
3731 004346 303 00 0 00 000400 CAILE 0,^D256 ;MORE THAN 128K WORTH ?
3732 004347 201 00 0 00 000400 MOVEI 0,^D256 ;YES, LIMIT AT 128K
3733 004350 202 00 0 00 000003 MOVEM 0,3 ;AC3 = MAP FILL COUNTER
3734 004351 202 00 0 00 000005 MOVEM 0,5 ;KEEP COUNT OF # OF PAGES
3735 004352 402 00 0 00 000200 SETZM 200 ;CLEAR PAGE MAP
3736 004353 200 00 0 00 007347 MOVE [200,,201]
3737 004354 251 00 0 00 000377 BLT 0,377
3738 004355 200 00 0 00 000001 MOVE 0,1
3739 004356 242 00 0 00 777767 LSH 0,-^D9 ;CREATE RELOCATION DATA
3740 004357 660 00 0 00 540000 TRO 0,540000
3741 004360 336 00 0 00 030507 SKIPN CSHMEM ;MEM SEG'S CACHED ?
3742 004361 660 00 0 00 020000 TRO 0,020000 ;YES
3743 004362 361 03 0 00 004304 SOJL 3,$MSEG2 ;EXIT
3744 004363 136 00 0 00 000002 IDPB 0,2 ;PUT DATA IN PAGE MAP
3745 004364 271 00 0 00 000001 ADDI 0,1 ;INCREMENT RELOCATION DATA
3746 004365 254 00 0 00 004362 JRST .-3
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 60
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MEMSEG" ## MAPNEW = 0 ## SEQ 0170
3747 SUBTTL *SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
3748
3749 S^;*********************************************************************^
3750 ;*ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
3751 ;* 11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
3752 ;* USER MODE, 1-37 ALWAYS RETURNS 0
3753 ;* GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
3754 ;*RETURNED IN AC0:
3755 ;* 0 - NO MEMORY AVAILABLE
3756 ;* START ADDRESS,,END ADDRESS
3757 ;*RETURNS +1
3758 S^;*********************************************************************^
3759
3760 004366 301 00 0 00 000040 $MSKA: CAIL 0,40
3761 004367 254 00 0 00 004407 JRST $MSKAP ;DIRECT PHYSICAL CORE
3762 004370 301 00 0 00 000011 CAIL ^D9
3763 004371 254 00 0 00 004310 JRST $MSEG3 ;NO MEMORY 11-37 ...EXIT
3764 004372 200 01 0 00 000000 MOVE 1,0
3765 004373 242 01 0 00 000001 LSH 1,1 ;DOUBLE, 2 ENTRIES PER
3766 004374 200 00 0 01 030146 MOVE 0,MEMSIZ(1) ;GET START ADDRESS
3767 004375 321 00 0 00 004310 JUMPL 0,$MSEG3 ;NO MEMORY ...EXIT
3768 004376 200 02 0 01 030147 MOVE 2,MEMSIZ+1(1) ;GET END ADDRESS
3769 004377 322 02 0 00 004310 JUMPE 2,$MSEG3 ;NO MEMORY ...EXIT
3770 004400 326 00 0 00 004402 JUMPN 0,.+2 ;IF START ADDRESS IS 0
3771 004401 200 00 0 00 030145 MOVE 0,MEMLOW ;USE 'MEMLOW'
3772 004402 317 02 0 00 000000 CAMG 2,0 ;END GREATER THAN START ?
3773 004403 037 15 0 00 000004 FATAL ;NO ...ABORT
3774 004404 200 05 0 00 000002 MOVE 5,2 ;SETUP START ADR,,END ADR
3775 004405 504 05 0 00 000000 HRL 5,0
3776 004406 254 00 0 00 004310 JRST $MSEG3 ;EXIT
3777
3778 004407 303 00 0 00 777000 $MSKAP: CAILE 0,777000 ;REQUEST FOR OVER 256K ?
3779 004410 254 00 0 00 004310 JRST $MSEG3 ;YES, NO MEMORY
3780 004411 254 00 0 00 004326 JRST $MSEGP ;DO PHYSICAL SETUP
3781 004412 200 05 0 00 000000 MOVE 5,0 ;1 = PHY ADR, 0 = END ADR
3782 004413 504 05 0 00 000001 HRL 5,1 ; START ADR,,END ADR
3783 004414 254 00 0 00 004310 JRST $MSEG3 ;EXIT
3784
3785 004415 322 00 0 00 004366 $MSUSR: JUMPE 0,$MSKA ;USER MODE, SEGMENT 0 ONLY
3786 004416 301 00 0 00 000040 CAIL 0,40 ;IF 1-37 NO MEMORY
3787 004417 254 00 0 00 004407 JRST $MSKAP ;PHY, DO DIRECT PHYSICAL
3788 004420 254 00 0 00 004310 JRST $MSEG3 ;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 61
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MEMZRO" SEQ 0171
3789 SUBTTL *SUBRTN* "MEMZRO"
3790
3791 S^;*********************************************************************^
3792 ;*ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
3793 ;*MAPNEW = 0 DIRECT MEMORY ZERO
3794 ;* =-1 4096K KI10 PAGED MEMORY ZERO
3795 S^;*********************************************************************^
3796
3797 004421 202 01 0 00 007672 $MZRO: MOVEM 1,$MZROB# ;SAVE AC1 & AC2
3798 004422 202 02 0 00 007673 MOVEM 2,$MZROC#
3799 004423 336 00 0 00 030143 SKIPN MAPNEW ;4096K PAGED OR DIRECT ZERO ?
3800 004424 254 00 0 00 004442 JRST $MZRO2 ;DIRECT ZEROING
3801
3802 004425 474 02 0 00 000000 $MZRO1: SETO 2, ;PAGED ZEROING
3803 004426 271 02 0 00 000001 ADDI 2,1
3804 004427 303 02 0 00 000037 CAILE 2,37
3805 004430 254 00 0 00 004457 JRST $MZROX ;DONE
3806 004431 200 00 0 00 000002 MOVE 0,2
3807 004432 260 17 0 00 004221 GO $MSEG ;SETUP MEMORY SEGMENT
3808 004433 037 15 0 00 000004 FATAL
3809 004434 322 00 0 00 004426 JUMPE 0,$MZRO1+1 ;NO MEMORY THIS SEGMENT
3810 004435 621 00 0 00 400000 TLZ 0,400000 ;DON'T CARE IF COMBINED
3811 004436 402 00 0 00 400000 SETZM 400000
3812 004437 200 01 0 00 007351 MOVE 1,[400000,,400001]
3813 004440 251 01 1 00 000000 BLT 1,@0 ;ZERO VIRTUAL
3814 004441 254 00 0 00 004426 JRST $MZRO1+1
3815
3816 004442 400 02 0 00 000000 $MZRO2: SETZ 2, ;DIRECT MEMORY ZERO
3817 004443 200 00 0 00 030145 MOVE 0,MEMLOW ;START ADDRESS
3818 004444 311 00 0 00 030147 CAML 0,MEMSIZ+1
3819 004445 254 00 0 00 004457 JRST $MZROX
3820 004446 254 00 0 00 004451 JRST .+3
3821 004447 200 00 0 02 030146 $MZRO3: MOVE 0,MEMSIZ(2) ;SEGMENT START ADDRESS
3822 004450 321 00 0 00 004457 JUMPL 0,$MZROX ;DONE
3823 004451 402 00 1 00 000000 SETZM @0
3824 004452 507 00 0 00 000000 HRLS ;CREATE BLT POINTER
3825 004453 271 00 0 00 000001 ADDI 1
3826 004454 251 00 1 02 030147 BLT 0,@MEMSIZ+1(2) ;ZERO DIRECT
3827 004455 271 02 0 00 000002 ADDI 2,2
3828 004456 254 00 0 00 004447 JRST $MZRO3 ;DO NEXT SEGMENT
3829
3830 004457 200 02 0 00 007673 $MZROX: MOVE 2,$MZROC ;RESTORE AC'S
3831 004460 200 01 0 00 007672 MOVE 1,$MZROB
3832 004461 263 17 0 00 000000 RTN ;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 62
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR SEQ 0172
3833 SUBTTL *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
3834 S^;*********************************************************************^
3835 ;*VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
3836 ;*SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE
3837 S^;*********************************************************************^
3838
3839 004462 202 01 0 00 007636 $MPADR: MOVEM 1,$ACMP0# ;SAVE AC1
3840 004463 550 01 0 00 000000 HRRZ 1,0 ;18 BIT VIRTUAL ADR IN AC1
3841 004464 307 01 0 00 000017 CAIG 1,17 ;ACCUMULATOR ADDRESS ?
3842 004465 254 00 0 00 004506 JRST $MPAD3-1 ;YES
3843 004466 200 00 0 00 030046 MOVE 0,CONSW ;GET CONSOLE SWITCHES
3844 004467 336 00 0 00 030511 SKIPN PVPAGI ;PREVENT PAGE INHIBIT ?
3845 004470 607 00 0 00 000100 TLNN 0,INHPAG ;PAGING INHIBITED
3846 004471 254 00 0 00 004473 JRST .+2
3847 004472 254 00 0 00 004514 JRST $MPAD2 ;YES
3848 004473 332 00 0 00 030041 SKIPE KLFLG ;KL10?
3849 004474 254 00 0 00 004525 JRST $MPADL ;YES
3850 004475 336 00 0 00 030040 SKIPN KAIFLG ;DETERMINE PROCESSOR
3851 004476 254 00 0 00 004514 JRST $MPAD2 ;KA10
3852 004477 257 00 0 01 000000 $MPAD6: MAP 0,(1) ;KI10, GET RELOCATION DATA
3853 004500 602 00 0 00 400000 TRNE 0,400000 ;PAGE FAILURE ?
3854 004501 254 00 0 00 004511 JRST $MPAD4 ;YES, SEE IF VALID ANYWAY
3855 004502 620 00 0 00 760000 $MPAD5: TRZ 0,760000 ;CLEAR P,W,S, NO MATCH BITS
3856 004503 242 00 0 00 000011 LSH 0,^D9 ;HI-ORDER 13 FROM MAP
3857 004504 405 01 0 00 000777 ANDI 1,777 ;LOW-ORDER 9 FROM VIRTUAL
3858 004505 434 00 0 00 000001 OR 0,1 ;COMBINE
3859 004506 350 00 0 17 000000 $MPAD7: AOS (P) ;INCREMENT USRPC (+2 RETURN)
3860 004507 200 01 0 00 007636 $MPAD3: MOVE 1,$ACMP0 ;RESTORE AC1
3861 004510 263 17 0 00 000000 RTN ;RETURN +1/+2
3862 004511 602 00 0 00 020000 $MPAD4: TRNE 0,20000 ;PAGE FAILURE, ALSO NO MATCH ?
3863 004512 254 00 0 00 004507 JRST $MPAD3 ;YES, ERROR (RETURN + 1)
3864 004513 254 00 0 00 004502 JRST $MPAD5 ;MATCH, (RELOCATION VALID) CONTINUE
3865 004514 200 00 0 00 000001 $MPAD2: MOVE 0,1 ;KA10
3866 004515 336 00 0 00 030037 SKIPN USER ;IN USER MODE ?
3867 004516 254 00 0 00 004506 JRST $MPAD3-1 ;NO, VIRTUAL IS PHYSICAL ADR
3868 004517 561 00 0 00 000001 HRROI 1 ;RELOCATION TABLE
3869 004520 047 00 0 00 000041 CALLI 41 ;GETTAB
3870 004521 400 00 0 00 000000 SETZ ;ERROR
3871 004522 550 00 0 00 000000 HRRZ ;RELOCATION ONLY
3872 004523 270 00 0 00 000001 ADD 0,1 ;RELOC + VIRTUAL = PHYSICAL
3873 004524 254 00 0 00 004506 JRST $MPAD3-1 ;RETURN + 2
3874 004525 336 00 0 00 030037 $MPADL: SKIPN USER ;USER, RETURN VIRTUAL ADDRESS
3875 004526 254 00 0 00 004531 JRST .+3 ;"MAP" ILLEGAL IN USER MODE ON KL10
3876 004527 200 00 0 00 000001 MOVE 0,1
3877 004530 254 00 0 00 004506 JRST $MPAD7
3878 004531 257 00 0 01 000000 MAP 0,(1) ;KL10. GET RELOCATION DATA
3879 004532 603 00 0 00 200000 TLNE 0,200000 ;PAGE FAILURE
3880 004533 254 00 0 00 004507 JRST $MPAD3 ;YES
3881 004534 621 00 0 00 777000 TLZ 0,777000 ;CLEAR STATUS BITS
3882 004535 254 00 0 00 004506 JRST $MPAD7
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 63
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT MEMORY MAP SEQ 0173
3883 SUBTTL *SUBRTN* PRINT MEMORY MAP
3884 S^;*********************************************************************^
3885 SALL
3886 004536 477 00 0 00 000002 $PMAP: SETOB 0,2
3887 004537 316 00 0 00 030150 CAMN 0,MEMSIZ+2 ;ONLY ONE SEGMENT ?
3888 004540 201 02 0 00 000001 MOVEI 2,1 ;YES, SET INDICATOR
3889 004541 400 04 0 00 000000 SETZ 4,
3890 004542 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
3891 004543 254 00 0 00 004551 JRST $PMAP3 ;NO
3892 004544 332 00 0 00 030037 SKIPE USER ;USER MODE ?
3893 004545 254 00 0 00 004553 JRST $PMAP1 ;YES
3894 004546 554 00 0 00 030043 HLRZ MONCTL ;FIRST PASS ?
3895 004547 302 00 0 00 777777 CAIE -1
3896 004550 254 00 0 00 004553 JRST $PMAP1 ;NO
3897 004551 336 00 0 00 030056 $PMAP3: SKIPN $ONETM ;FIRST TIME ?
3898 004552 474 04 0 00 000000 SETO 4, ;YES, SET FLAG FOR PRINTING
3899 004553 322 04 0 00 004560 $PMAP1: JUMPE 4,$PMAPL-1 ;NO
3900
3901 004554 037 02 0 00 007352 PMSG <^MEMORY MAP =^FROM TO SIZE/K>
3902
3903 004555 302 02 0 00 000001 CAIE 2,1 ;IF (2) = 1, ONLY ONE SEGMENT
3904 004556 037 02 0 00 007361 PMSG <]START ADR/K>
3905 004557 037 00 0 00 030242 PCRL
3906 004560 403 03 0 00 000005 SETZB 3,5
3907
3908 004561 335 00 0 03 030146 $PMAPL: SKIPGE MEMSIZ(3) ;GET MAP COORDINATES
3909 004562 254 00 0 00 004611 JRST $PMAP4
3910 004563 322 04 0 00 004571 JUMPE 4,.+6
3911 004564 200 00 0 03 030146 MOVE MEMSIZ(3)
3912 004565 037 10 0 00 000000 PNTADR ;PRINT START ADDRESS
3913 004566 200 00 0 03 030147 MOVE MEMSIZ+1(3)
3914 004567 037 10 0 00 000000 PNTADR ;PRINT END ADDRESS
3915 004570 037 00 0 00 000011 PNTCI " "
3916 004571 200 00 0 03 030147 MOVE MEMSIZ+1(3)
3917 004572 271 00 0 00 000001 ADDI 0,1
3918 004573 274 00 0 03 030146 SUB MEMSIZ(3)
3919 004574 231 00 0 00 002000 IDIVI ^D1024
3920 004575 270 05 0 00 000000 ADD 5,0
3921 004576 322 04 0 00 004607 JUMPE 4,$PMAP5
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 64
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT MEMORY MAP SEQ 0174
3922 004577 037 15 0 00 000000 $PMAP7: PNTDEC ;PRINT DECIMAL SIZE
3923 004600 306 02 0 00 000001 CAIN 2,1
3924 004601 254 00 0 00 004606 JRST .+5
3925 004602 037 00 0 00 000011 PNTCI " "
3926 004603 200 00 0 03 030146 MOVE MEMSIZ(3)
3927 004604 231 00 0 00 002000 IDIVI ^D1024
3928 004605 037 15 0 00 000000 PNTDEC ;PRINT START ADR IN K
3929 004606 037 00 0 00 030242 PCRL
3930
3931 004607 271 03 0 00 000002 $PMAP5: ADDI 3,2
3932 004610 254 00 0 00 004561 JRST $PMAPL ;GET NEXT IF ANY
3933
3934 004611 202 05 0 00 030144 $PMAP4: MOVEM 5,MEMTOT ;SAVE TOTAL # OF K
3935 004612 550 00 0 00 000121 HRRZ JOBFF ;SETUP LOWEST USABLE
3936 004613 271 00 0 00 001000 ADDI 1000 ;MEMORY ADDRESS
3937 004614 620 00 0 00 000777 TRZ 777 ;EVEN BREAK ABOVE JOBFF
3938 004615 202 00 0 00 030145 MOVEM MEMLOW
3939 004616 322 04 0 00 004626 JUMPE 4,$PMAP6 ;RETURN
3940 004617 306 02 0 00 000001 CAIN 2,1
3941 004620 254 00 0 00 004625 JRST $PMAP6-1 ;CRLF & RETURN
3942
3943 004621 037 02 0 00 007364 PMSG <TOTAL MEMORY/K = >
3944 004622 200 00 0 00 030144 MOVE MEMTOT ;OUTPUT TOTAL MEMORY
3945 004623 037 15 0 00 000000 PNTDEC
3946 004624 037 00 0 00 030242 PCRL
3947 004625 037 00 0 00 030242 PCRL
3948
3949 004626 263 17 0 00 000000 $PMAP6: RTN ;EXIT
3950 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 65
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0175
3951 SUBTTL *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
3952
3953 004627 260 17 0 00 004751 $MODDV: GO $SWTCH ;LOAD SWITCHES INTO AC0
3954 004630 607 00 0 00 000040 TLNN 0,MODDVC ;DEVICE CODE CHANGE SELECTED ?
3955 004631 263 17 0 00 000000 RTN ;NO, DON'T DO IT
3956
3957 004632 202 01 0 00 007665 $MODD0: MOVEM 1,$MODDB# ;SAVE AC'S
3958 004633 202 02 0 00 007666 MOVEM 2,$MODDC#
3959 004634 202 03 0 00 007667 MOVEM 3,$MODDD#
3960
3961 ;*ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
3962 S^;*********************************************************************^
3963 SALL
3964 004635 037 04 0 00 007367 $MODD1: PMSGF <^CHANGE DEVICE CODES,>
3965 004636 260 17 0 00 005405 GO $YESNO ;AFFIRMATIVE ?
3966 004637 254 00 0 00 004733 JRST $MODDX ;NO/NO MORE CHANGES, EXIT
3967
3968 004640 037 04 0 00 007373 $MODD3: PMSGF <OLD DEVICE CODE - >
3969 004641 265 03 0 00 004676 JSP 3,$MODD2 ;GET OLD DEVICE CODE
3970 004642 254 00 0 00 004640 JRST .-2 ;NO RESPONSE ...ASK AGAIN
3971 004643 202 00 0 00 007663 MOVEM 0,$MDVCO# ;SAVE THE OLD CODE
3972
3973 004644 037 04 0 00 007377 $MODD4: PMSGF <NEW DEVICE CODE - >
3974 004645 265 03 0 00 004676 JSP 3,$MODD2 ;GET NEW DEVICE CODE
3975 004646 254 00 0 00 004644 JRST .-2 ;NO RESPONSE ...ASK AGAIN
3976 004647 202 00 0 00 007662 MOVEM 0,$MDVCN# ;SAVE THE NEW CODE
3977
3978 004650 037 04 0 00 007403 $MODD5: PMSGF <CHANGING FROM >
3979 004651 200 01 0 00 007663 MOVE 1,$MDVCO ;GET OLD CODE
3980 004652 265 03 0 00 004713 JSP 3,$MDSRC ;GET THAT CODE OUT OF LIST
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 66
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0176
3981 004653 037 04 0 00 007406 $MODD6: PMSGF < TO >
3982 004654 200 01 0 00 007662 MOVE 1,$MDVCN ;GET NEW CODE
3983 004655 265 03 0 00 004713 JSP 3,$MDSRC ;GET THAT CODE OUT OF LIST (
3984 004656 037 01 0 00 030242 PCRLF
3985
3986 004657 037 04 0 00 007407 $MODD7: PMSGF <VALID CHANGE,>
3987 004660 260 17 0 00 005405 GO $YESNO ;AFFIRMATIVE ?
3988 004661 254 00 0 00 004635 JRST $MODD1 ;NO ...START OVER )
3989 004662 260 17 0 00 004664 GO $MODD8 ;YES ...CHANGE THE LIST
3990 004663 254 00 0 00 004635 JRST $MODD1
3991 LALL
3992
3993 ;*CHANGE THE DEVICE CODE LIST
3994 S^;*********************************************************************^
3995
3996 004664 200 02 0 00 030027 $MODD8: MOVE 2,$MODVL
3997 004665 274 02 0 00 030030 SUB 2,$MODVU
3998 004666 514 02 0 00 000002 HRLZ 2,2
3999 004667 540 02 0 00 030027 HRR 2,$MODVL
4000 004670 200 01 0 00 007662 MOVE 1,$MDVCN
4001 004671 135 00 0 00 007412 LDB 0,[POINT 10,(2),9] ;GET IOT & DEVICE CODE
4002 004672 316 00 0 00 007663 CAMN 0,$MDVCO ;IS IT REQUESTED ONE ?
4003 004673 137 01 0 00 007412 DPB 1,[POINT 10,(2),9] ;YES, MAKE THE CHANGE
4004 004674 253 02 0 00 004671 AOBJN 2,.-3
4005 004675 263 17 0 00 000000 RTN
4006
4007 ;*INPUT OLD CODE AND CHECK FOR VALIDITY
4008 S^;*********************************************************************^
4009
4010 004676 260 17 0 00 005452 $MODD2: GO $TPOCT ;INPUT THE OLD CODE
4011 004677 254 00 1 00 000003 JRST @3 ;NO RESPONSE, RETURN + 1 )
4012
4013 004700 602 00 0 00 000003 $MODD9: TRNE 0,3 ;MUST END IN 0 OR 4
4014 004701 254 00 0 00 004731 JRST $MODER ;ERROR! ASK AGAIN
4015 004702 307 00 0 00 000774 CAIG 0,774 ;IS DEVICE CODE IN PROPER RANGE
4016 004703 305 00 0 00 000014 CAIGE 0,14
4017 004704 254 00 0 00 004731 JRST $MODER ;ERROR, 14 TO 774 ONLY
4018 004705 306 00 0 00 000120 CAIN 0,120 ;CTY MAY NOT CHANGE!
4019 004706 254 00 0 00 004731 JRST $MODER ;ASK AGAIN
4020 004707 660 00 0 00 007000 TRO 0,7000 ;INSERT IOT CODE
4021 004710 242 00 0 00 777776 LSH 0,-2 ;POSITION
4022 004711 350 00 0 00 000003 AOS 3 ;RETURN + 2
4023 004712 254 00 1 00 000003 JRST @3 ;RETURN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 67
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0177
4024 ;*GET THE OLD/NEW CODE FROM DEVICE CODE LIST
4025 S^;*********************************************************************^
4026 SALL
4027 004713 242 01 0 00 000002 $MDSRC: LSH 1,2 ;POSITION FOR COMPARE
4028 004714 620 01 0 00 007000 TRZ 1,7000 ;MASK IOT
4029 004715 200 02 0 00 007413 MOVE 2,[-$MDEND,,$MDLST]
4030 004716 135 00 0 00 007414 LDB [POINT 9,(2),35] ;EXTRACT CODE FROM LIST
4031 004717 316 00 0 00 000001 CAMN 0,1 ;IS THIS THE ONE?
4032 004720 254 00 0 00 004725 JRST $MDSR2 ;YES! ...PRINT IT & EXIT
4033 004721 253 02 0 00 004716 AOBJN 2,.-3 ;NOT YET ...GET NEXT
4034 004722 200 00 0 00 000001 MOVE 0,1
4035 004723 037 03 0 00 000001 PNT3F
4036
4037 004724 254 00 1 00 000003 $MDSR1: JRST @3 ;RETURN
4038 004725 200 00 0 02 000000 $MDSR2: MOVE 0,(2)
4039 004726 620 00 0 00 000777 TRZ 0,777 ;MASK CODE
4040 004727 037 01 0 00 000002 PNTSXF ;PRINT IT
4041 004730 254 00 0 00 004724 JRST $MDSR1 ;EXIT
4042
4043 004731 037 04 0 00 007415 $MODER: PMSGF <^DEV CODE ERR, 14-774 ONLY^>
4044 004732 254 00 0 00 004640 JRST $MODD3 ;ASK WHICH ONE TO CHANGE AGAIN
4045
4046 004733 260 17 0 00 003711 $MODDX: GO $CFLUSH ;IF KL10 & CACHE ON, FLUSH
4047 004734 200 03 0 00 007667 MOVE 3,$MODDD ;RESTORE AC'S
4048 004735 200 02 0 00 007666 MOVE 2,$MODDC
4049 004736 200 01 0 00 007665 MOVE 1,$MODDB
4050 004737 263 17 0 00 000000 RTN ;EXIT
4051 LALL
4052 ;*DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
4053 ;* AC0 = [OLD,,NEW]
4054 S^;*********************************************************************^
4055
4056 004740 242 00 0 00 777776 $MODDP: LSH AC0,-2 ;RIGHT JUSTIFY
4057 004741 434 00 0 00 007422 OR AC0,[1600,,1600] ;INSERT IOT CODE
4058 004742 556 00 0 00 007663 HLRZM $MDVCO ;SETUP OLD CODE
4059 004743 552 00 0 00 007662 HRRZM $MDVCN ;SETUP NEW CODE
4060 004744 202 01 0 00 007665 MOVEM 1,$MODDB
4061 004745 202 02 0 00 007666 MOVEM 2,$MODDC
4062 004746 202 03 0 00 007667 MOVEM 3,$MODDD
4063
4064 004747 260 17 0 00 004664 GO $MODD8 ;CHANGE CODES
4065 004750 254 00 0 00 004733 JRST $MODDX ;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 68
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0178
4066 SUBTTL *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
4067 S^;*********************************************************************^
4068 ;*INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
4069 ;*USER MODE IF NON-TTY SWITCH CONTROL
4070 S^;*********************************************************************^
4071
4072 004751 332 00 0 00 030521 $SWTCH: SKIPE $$TOGGLE ;SWITCHES PREVENTED ?
4073 004752 254 00 0 00 004775 JRST $SWU2 ;YES, USE C(CONSW)
4074 004753 336 00 0 00 007722 SKIPN $SWFLG ;BEEN INITED ?
4075 004754 254 00 0 00 004773 JRST $SWU1 ;NO, USE SAVED SWITCHES
4076 004755 332 00 0 00 007740 SKIPE $USWTF ;TTY SWITCH CONTROL ?
4077 004756 254 00 0 00 004773 JRST $SWU1 ;YES, USE SAVED SWITCHES
4078 004757 332 00 0 00 030037 SKIPE USER
4079 004760 254 00 0 00 004771 JRST $SWUSR ;USER MODE
4080 004761 332 00 0 00 030041 SKIPE KLFLG
4081 004762 260 17 0 00 005103 GO $KLSWR ;KL10
4082 004763 336 00 0 00 030041 SKIPN KLFLG
4083 004764 7 000 04 0 00 000000 DATAI APR,AC0 ;KI10 OR KA10
4084 004765 335 00 0 00 030043 $SWCH1: SKIPGE MONCTL ;MONITR CONTROL ?
4085 004766 540 00 0 00 030043 HRR 0,MONCTL ;YES, USE PRESTORED RH SWITCHES
4086 004767 202 00 0 00 030046 MOVEM 0,CONSW ;SAVE
4087 004770 263 17 0 00 000000 RTN ;EXIT
4088 004771 047 00 0 00 000020 $SWUSR: CALLI 20 ;CALL MONITOR FOR SWITCHES
4089 004772 202 00 0 00 030046 MOVEM AC0,CONSW
4090 004773 200 00 0 00 030046 $SWU1: MOVE 0,CONSW
4091 004774 254 00 0 00 004765 JRST $SWCH1
4092 004775 200 00 0 00 030046 $SWU2: MOVE 0,CONSW
4093 004776 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 69
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0179
4094 ;*SWITCH INITIALIZATION ROUTINE
4095 S^;*********************************************************************^
4096 SALL
4097 004777 402 00 0 00 007740 $SWTIN: SETZM $USWTF# ;CLEAR TTY CONTROL FLAG
4098 005000 402 00 0 00 007723 SETZM $SWONCE#
4099 005001 260 17 0 00 005107 GO $SW0 ;INIT SWITCH ROUTINE
4100 005002 476 00 0 00 007723 $SWIN1: SETOM $SWONCE
4101 005003 476 00 0 00 007722 SETOM $SWFLG ;SET INITED FLAG
4102 005004 260 17 0 00 005073 GO $KLSWI ;DEMAND SWITCHES IF KL10
4103 005005 260 17 0 00 004751 GO $SWTCH ;READ CONSOLE SWITCHES
4104 005006 603 00 0 00 020000 TLNE PNTLPT ;PRINT ON LPT/LOGICAL DEVICE ?
4105 005007 260 17 0 00 002414 GO $PNTNM+2 ;YES ...PRINT PROGRAM NAME
4106 005010 200 00 0 00 030046 MOVE CONSW
4107 005011 603 00 0 00 000004 TLNE CHAIN ;IN CHAIN MODE ?
4108 005012 263 17 0 00 000000 RTN ;YES, DON'T PRINT FOLLOWING
4109 005013 335 00 0 00 030043 SKIPGE MONCTL
4110 005014 263 17 0 00 000000 RTN ;DIAGNOSTIC MONITOR
4111 005015 332 00 0 00 030521 SKIPE $$TOGGLE
4112 005016 254 00 0 00 005023 JRST .+5
4113 005017 037 04 0 00 007116 PMSGF <^SWITCHES = >
4114 005020 200 00 0 00 030046 MOVE CONSW ;GET THE SAVED SWITCHES
4115 005021 037 13 0 00 000001 PNTHWF ;PRINT PRESENT SWITCH SETTINGS
4116 005022 037 01 0 00 030242 PCRLF
4117 005023 336 00 0 00 030037 SKIPN USER
4118 005024 336 00 0 00 030041 SKIPN KLFLG
4119 005025 263 17 0 00 000000 RTN ;EXIT
4120 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 70
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0180
4121 ;*IF KL10, PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES
4122 S^;*********************************************************************^
4123 SALL
4124 005026 037 02 0 00 007423 PMSG <CLK SOURCE = >
4125 005027 200 01 0 00 007632 MOVE 1,CLKDFL
4126 005030 242 01 0 00 777776 LSH 1,-2
4127 005031 405 01 0 00 000003 ANDI 1,3
4128 MOVE 0,[SIXBIT\NORMAL\
4129 SIXBIT\FAST\
4130 SIXBIT\EXTERN\
4131 005032 200 00 0 01 007426 SIXBIT\UNUSED\](1)
4132 005033 037 00 0 00 000002 PNTSIX
4133 005034 037 02 0 00 007432 PMSG <, CLK RATE = >
4134 005035 200 01 0 00 007632 MOVE 1,CLKDFL
4135 005036 405 01 0 00 000003 ANDI 1,3
4136 MOVE 0,[SIXBIT\FULL\
4137 SIXBIT\1/2\
4138 SIXBIT\1/4\
4139 005037 200 00 0 01 007435 SIXBIT\1/8\](1)
4140 005040 037 00 0 00 000002 PNTSIX
4141
4142 005041 037 02 0 00 007441 PMSG <, AC BLK >
4143 005042 7 010 04 0 00 000000 DATAI PAG,0 ;READ CURRENT AC BLOCK SELECTION
4144 005043 242 00 0 00 777745 LSH 0,-^D27 ;ISOLATE
4145 005044 405 00 0 00 000007 ANDI 0,7
4146 005045 037 01 0 00 000000 PNT1 ;PRINT AC BLOCK DIGIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 71
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0181
4147 005046 332 00 0 00 030506 SKIPE CSHFLG
4148 005047 254 00 0 00 005071 JRST $SWIN3 ;CACHE PREVENTED
4149 005050 200 00 0 00 030046 MOVE CONSW
4150 005051 603 00 0 00 000020 TLNE INHCSH
4151 005052 254 00 0 00 005071 JRST $SWIN3 ;CACHE INHIBITED
4152 005053 554 01 0 00 007632 HLRZ 1,CLKDFL ;GET CACHE ENABLES
4153 005054 242 01 0 00 777762 LSH 1,-^D14 ;ISOLATE BITS 0-3
4154 005055 405 01 0 00 000017 ANDI 1,17
4155 005056 336 00 0 00 000001 SKIPN 1
4156 005057 254 00 0 00 005071 JRST $SWIN3 ;NOT ENABLED
4157 005060 037 02 0 00 007443 PMSG <, CACHE:>
4158 005061 602 01 0 00 000010 TRNE 1,10 ;CACHE 0 ENABLED ?
4159 005062 037 02 0 00 007445 PMSG < 0>
4160 005063 602 01 0 00 000004 TRNE 1,4 ;CACHE 1 ENABLED ?
4161 005064 037 02 0 00 007446 PMSG < 1>
4162 005065 602 01 0 00 000002 TRNE 1,2 ;CACHE 2 ENABLED ?
4163 005066 037 02 0 00 007447 PMSG < 2>
4164 005067 602 01 0 00 000001 TRNE 1,1 ;CACHE 3 ENABLED ?
4165 005070 037 02 0 00 007450 PMSG < 3>
4166 005071 037 00 0 00 030242 $SWIN3: PCRL
4167 005072 263 17 0 00 000000 RTN
4168
4169 005073 201 00 0 00 001400 $KLSWI: MOVEI 0,1400 ;KL10, GET SWITCHES FROM PDP-11
4170 005074 260 17 0 00 002043 GO $DTEXX
4171 005075 202 00 0 00 000457 MOVEM 0,$DTSWR ;PUT IN DTE20 SWITCH WORD
4172 005076 201 00 0 00 000405 MOVEI AC0,405
4173 005077 260 17 0 00 002043 GO $DTEXX ;GET CLOCK DEFAULT WORD
4174 005100 202 00 0 00 007632 MOVEM AC0,CLKDFL#
4175 005101 402 00 0 00 007633 SETZM KLNSW#
4176 005102 263 17 0 00 000000 RTN
4177
4178 005103 332 00 0 00 007633 $KLSWR: SKIPE KLNSW ;NEED TO DEMAND SWITCHES ?
4179 005104 260 17 0 00 005073 GO $KLSWI ;YES
4180 005105 200 00 0 00 000457 MOVE AC0,$DTSWR
4181 005106 263 17 0 00 000000 RTN
4182 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 72
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0182
4183 ;*SWITCH INITIALIZATION ROUTINE
4184 S^;*********************************************************************^
4185 SALL
4186 005107 261 17 0 00 000000 $SW0: PUT 0
4187 005110 332 00 0 00 030521 SKIPE $$TOGGLE ;SWITCHES PREVENTED ?
4188 005111 254 00 0 00 005172 JRST $SW9+2 ;YES, USE C(CONSW)
4189 005112 336 00 0 00 030037 SKIPN USER ;USER MODE ?
4190 005113 254 00 0 00 005164 JRST $SW8 ;NO, EXEC
4191 005114 335 00 0 00 030043 SKIPGE MONCTL ;DIAGNOSTIC MONITOR MODE ?
4192 005115 254 00 0 00 005174 JRST $SW10 ;YES
4193 005116 336 00 0 00 007723 SKIPN $SWONCE ;INITIALIZATION ?
4194 005117 254 00 0 00 005176 JRST $SW11 ;YES
4195 005120 037 04 0 00 007116 $SW12: PMSGF <^SWITCHES = >
4196 005121 200 00 0 00 030046 MOVE CONSW
4197 005122 037 13 0 00 000001 PNTHWF
4198
4199 005123 037 04 0 00 007451 $SW1: PMSGF <^TTY SWITCH CONTROL ? - 0,S,Y OR N <CR> - >
4200 005124 260 17 0 00 005242 GO $OPTLK ;INPUT THE ANSWER
4201 005125 254 00 0 00 005123 JRST $SW1 ;NO CHARACTER RETURNED, ASK AGAIN
4202 005126 306 00 0 00 000015 CAIN 0,15
4203 005127 254 00 0 00 005145 JRST $SWERR ;1ST CHAR CR, ERROR
4204 005130 242 00 0 00 000007 LSH 0,7 ;POSITION 1ST CHAR
4205 005131 202 00 0 00 007721 MOVEM $SW#
4206 005132 260 17 0 00 005242 GO $OPTLK ;INPUT THE CR
4207 005133 254 00 0 00 005123 JRST $SW1 ;NO CHAR, ASK AGAIN
4208 005134 434 00 0 00 007721 OR 0,$SW
4209 005135 306 00 0 00 014015 CAIN 0,14015 ;"0" (CR) ?
4210 005136 254 00 0 00 005150 JRST $SW6 ;YES-USE ALL SWITCHES = 0
4211 005137 306 00 0 00 024615 CAIN 0,24615 ;"S" (CR) ?
4212 005140 254 00 0 00 005170 JRST $SW9 ;YES-USE SAVED SWITCHES
4213 005141 306 00 0 00 026215 CAIN 0,26215 ;"Y" (CR) ?
4214 005142 254 00 0 00 005152 JRST $SW2 ;YES-USE TTY INPUT SWITCHES
4215 005143 306 00 0 00 023415 CAIN 0,23415 ;"N" (CR) ?
4216 005144 254 00 0 00 005166 JRST $SW7 ;YES-READ CONSOLE SWITCHES & RETURN
4217
4218 005145 332 00 0 00 030037 $SWERR: SKIPE USER
4219 005146 051 11 0 00 000000 CLRBFI ;ERROR, CLEAR TYPE-IN BUFFER
4220 005147 254 00 0 00 005123 JRST $SW1 ;ASK AGAIN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 73
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0183
4221 005150 402 00 0 00 000000 $SW6: SETZM 0
4222 005151 254 00 0 00 005162 JRST $SW4
4223
4224 005152 037 04 0 00 007461 $SW2: PMSGF <^LH SWITCHES - >
4225 005153 260 17 0 00 005452 GO $TPOCT ;INPUT 6 OCTALS
4226 005154 254 00 0 00 005152 JRST $SW2 ;ERROR .....TRY AGAIN
4227 005155 516 00 0 00 007721 HRLZM 0,$SW# ;MOVE LH WORD TO SW
4228
4229 005156 037 04 0 00 007464 $SW3: PMSGF <RH SWITCHES - >
4230 005157 260 17 0 00 005452 GO $TPOCT ;INPUT 6 OCTALS
4231 005160 254 00 0 00 005156 JRST $SW3 ;ERROR .....TRY AGAIN
4232 005161 500 00 0 00 007721 HLL 0,$SW ;GET LH SWITCHES
4233 005162 202 00 0 00 030046 $SW4: MOVEM 0,CONSW ;SAVE SWITCHES IN CONSW
4234 005163 476 00 0 00 007740 $SW5: SETOM $USWTF ;SET TTY INPUT SWITCH FLAG
4235 005164 262 17 0 00 000000 $SW8: GET 0
4236 005165 263 17 0 00 000000 RTN
4237
4238 005166 402 00 0 00 007740 $SW7: SETZM $USWTF ;N, USE REAL SWITCHES
4239 005167 254 00 0 00 005164 JRST $SW8
4240
4241 005170 332 00 0 00 007723 $SW9: SKIPE $SWONCE ;S, USE SAME AS BEFORE ON "DING" REQUEST
4242 005171 254 00 0 00 005164 JRST $SW8
4243 005172 200 00 0 00 007720 MOVE $SVCSW ;ON INITIALIZATION USE PREVIOUS SWITCHES
4244 005173 254 00 0 00 005162 JRST $SW4
4245
4246 005174 200 00 0 00 020007 $SW10: MOVE 0,DIASWS ;GET DIAMON SWITCHES
4247 005175 254 00 0 00 005162 JRST $SW4
4248
4249 005176 200 00 0 00 007720 $SW11: MOVE 0,$SVCSW ;IF SAVED SW'S ARE ZERO
4250 005177 322 00 0 00 005123 JUMPE 0,$SW1 ;DON'T PRINT THEM
4251 005200 202 00 0 00 030046 MOVEM 0,CONSW
4252 005201 254 00 0 00 005120 JRST $SW12
4253 LALL
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 74
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0184
4254 SUBTTL *SUBRTN* TELETYPE INPUT ROUTINES
4255
4256 S^;*********************************************************************^
4257 ;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
4258 ;*CHARACTER OR NUMBER RETURNED IN AC0.
4259 ;*CALL SEQUENCE IS AS FOLLOWS:
4260 ;* NAME
4261 ;* NO/ERROR RESPONSE RETURN (+ 1)
4262 ;* NORMAL RESPONSE RETURN (+ 2)
4263 ;*$OPTLK = INPUT ANY CHARACTER
4264 ;*$YESNO = ASK QUESTION, CORRECT RESPONSE Y
4265 ;*$NOYES = ASK QUESTION, CORRECT RESPONSE N
4266 ;*$TPOCT = INPUT UP TO 12 OCTALS
4267 ;*$TPDEC = INPUT UP TO 11 DECIMALS
4268 ;*$TPCNV = INPUT UP TO 9 CONVERT'S
4269 ;*$TTLK = KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
4270 ;*$TALTM = KEYBOARD, ALT-MODE CHECK
4271 ;*$TISIX = INPUT UP TO 6 SIXBIT CHARACTERS
4272 S^;*********************************************************************^
4273
4274
4275 ;*TELETYPE INPUT INITIALIZATION
4276 S^;*********************************************************************^
4277 005202 201 00 0 00 000264 $TYPIN: MOVEI ^D180 ;INIT OPERATOR WAIT TIME AS 180 SEC
4278 005203 202 00 0 00 030224 MOVEM OPTIME
4279 005204 263 17 0 00 000000 RTN ;EXIT
4280
4281 S^;*********************************************************************^
4282 ;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
4283 ;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
4284 S^;*********************************************************************^
4285
4286 005205 400 00 0 00 000000 $TTLK: SETZ AC0,
4287 005206 332 00 0 00 030037 SKIPE USER
4288 005207 254 00 0 00 005213 JRST $TTLK1 ;USER MODE
4289 005210 332 00 0 00 030041 SKIPE KLFLG
4290 005211 263 17 0 00 000000 RTN ;NO CHECK IF KL10
4291 005212 254 00 0 00 005314 JRST $TIEX1 ;KA/KI - CHECK & INPUT IF THERE
4292
4293 005213 335 00 0 00 030043 $TTLK1: SKIPGE MONCTL ;NO CHECK IF "MONITOR"
4294 005214 263 17 0 00 000000 RTN
4295 005215 051 02 0 00 030231 INCHRS $TTCHR ;GET CHAR FROM MONITOR
4296 005216 263 17 0 00 000000 RTN ;NOTHING THERE
4297 005217 254 00 0 00 005345 JRST $HEAR4 ;CHAR TYPED, GO PROCESS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 75
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0185
4298 S^;*********************************************************************^
4299 ;*TELETYPE IMAGE MODE INPUT
4300 ;*PROVIDES UNBUFFERED MODE INPUT
4301 ;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
4302 S^;*********************************************************************^
4303
4304 005220 332 00 0 00 030037 $TTYIN: SKIPE USER
4305 005221 254 00 0 00 005236 JRST $TTYIY ;USER MODE
4306 005222 336 00 0 00 030041 SKIPN KLFLG
4307 005223 254 00 0 00 005233 JRST $TTYIX ;KI OR KA EXEC
4308
4309 005224 201 00 0 00 003400 MOVEI 0,3400 ;DDT INPUT MODE
4310 005225 260 17 0 00 002043 GO $DTEXX
4311 005226 405 00 0 00 000177 ANDI 0,177 ;STRIP EXTRA BITS
4312 005227 322 00 0 00 005224 JUMPE 0,.-3 ;IF 0, NO CHAR, WAIT
4313
4314 005230 260 17 0 00 005317 GO $TIEX2+1 ;RUN THRU NORMAL PROCESS
4315 005231 037 15 0 00 000004 FATAL ;CAN'T HAPPEN
4316 005232 263 17 0 00 000000 RTN
4317
4318 005233 260 17 0 00 005310 $TTYIX: GO $HEAR ;GET CHAR
4319 005234 254 00 0 00 005233 JRST .-1 ;WAIT FOR IT
4320 005235 263 17 0 00 000000 RTN
4321
4322 005236 051 00 0 00 030231 $TTYIY: INCHRW $TTCHR ;GET THE CHARACTER
4323 005237 260 17 0 00 005345 GO $HEAR4 ;PROCESS IT
4324 005240 254 00 0 00 005237 JRST .-1
4325 005241 263 17 0 00 000000 RTN
4326
4327 S^;*********************************************************************^
4328 ;*TELETYPE INPUT OPERATOR RESPONSE ROUTINE
4329 S^;*********************************************************************^
4330
4331 005242 202 04 0 00 007724 $OPTLK: MOVEM 4,$TACB4#
4332 005243 200 04 0 00 030224 MOVE 4,OPTIME ;COMPUTE WAIT DELAY
4333 005244 221 04 0 00 147400 IMULI 4,147400 ;1 SEC FUDGE FACTOR
4334 005245 363 04 0 00 005251 SOJLE 4,.+4 ;WAITED LONG ENOUGH YET ?
4335 005246 260 17 0 00 005310 GO $HEAR ;NO, GO LOOK FOR INPUT & RETURN
4336 005247 254 00 0 00 005245 JRST .-2 ;NO RESPONSE, REPEAT
4337 005250 350 00 0 17 000000 AOS (P) ;CHAR TYPED, RETURN +2
4338 005251 202 04 0 00 030225 MOVEM 4,$TWCNT ;SAVE TTY WAIT COUNT
4339 005252 200 04 0 00 007724 MOVE 4,$TACB4
4340 005253 263 17 0 00 000000 RTN ;NO CHAR, RETURN +1
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 76
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0186
4341 S^;*********************************************************************^
4342 ;*TELETYPE ALT-MODE CHECK ROUTINE
4343 S^;*********************************************************************^
4344
4345 005254 336 00 0 00 030037 $TALTM: SKIPN USER
4346 005255 336 00 0 00 030041 SKIPN KLFLG
4347 005256 254 00 0 00 005260 JRST .+2
4348 005257 254 00 0 00 005300 JRST $TALT3 ;ONLY IF KL10 & EXEC
4349 005260 260 17 0 00 005205 GO $TTLK
4350 005261 263 17 0 00 000000 RTN ;NO TYPE-IN ...EXIT
4351
4352 005262 302 00 0 00 000175 $TALT2: CAIE 175
4353 005263 306 00 0 00 000176 CAIN 176
4354 005264 254 00 0 00 005267 JRST $TALT1 ;ALT-MODE WAS TYPED
4355 005265 302 00 0 00 000033 CAIE 33
4356 005266 254 00 0 00 005270 JRST .+2 ;NO ALT-MODE
4357
4358 005267 254 00 0 00 030064 $TALT1: JRST CPOPJ1 ;ALT-MODE, RETURN +2
4359
4360 005270 302 00 0 00 000007 CAIE 007 ;IS CHAR A BELL ?
4361 005271 263 17 0 00 000000 RTN
4362 005272 332 00 0 00 030522 SKIPE $$TAX1
4363 005273 256 00 0 00 030522 XCT $$TAX1 ;XCT USERS PRE-ROUTINE
4364 005274 260 17 0 00 005107 GO $SW0 ;YES, DING FOR SWITCH CONTROL
4365 005275 332 00 0 00 030523 SKIPE $$TAX2
4366 005276 256 00 0 00 030523 XCT $$TAX2 ;XCT USERS POST-ROUTINE
4367 005277 263 17 0 00 000000 RTN
4368
4369 005300 200 00 0 00 000454 $TALT3: MOVE 0,$DTCHR ;GET LAST TYPED CHAR
4370 005301 405 00 0 00 000177 ANDI 0,177
4371 005302 301 00 0 00 000141 CAIL "A"+40
4372 005303 303 00 0 00 000172 CAILE "Z"+40
4373 005304 254 00 0 00 005306 JRST .+2
4374 005305 275 00 0 00 000040 SUBI 40
4375 005306 402 00 0 00 000454 SETZM $DTCHR ;CLEAR FOR NEXT CHAR
4376 005307 254 00 0 00 005262 JRST $TALT2 ;AND CHECK IF ALTMODE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 77
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0187
4377 S^;*********************************************************************^
4378 ;*TELETYPE INPUT CHARACTER
4379 ;*EXEC/USER MODE TEST & KL10 CPU TEST
4380 S^;*********************************************************************^
4381
4382 005310 332 00 0 00 030037 $HEAR: SKIPE USER ;EXEC MODE ?
4383 005311 254 00 0 00 005343 JRST $TIUSR ;NO..USER MODE INPUT
4384
4385 005312 332 00 0 00 030041 $TIEXC: SKIPE KLFLG ;KL10 CPU?
4386 005313 254 00 0 00 005333 JRST $TIKL ;YES, INPUT VIA DTE-20
4387
4388 ;*TELETYPE INPUT CHARACTER ROUTINE - KA/KI (DIRECT)
4389 S^;*********************************************************************^
4390
4391 005314 7 120 34 0 00 000040 $TIEX1: CONSO TTY,40 ;KEY BEEN STRUCK?
4392 005315 263 17 0 00 000000 RTN ;NO-EXIT
4393
4394 005316 7 120 04 0 00 000000 $TIEX2: DATAI TTY,0 ;YES-INPUT A CHAR
4395 005317 202 00 0 00 030231 MOVEM 0,$TTCHR# ;SAVE ACTUAL CHARACTER
4396 005320 260 17 0 00 006506 GO $TYOUT ;ECHO IT
4397 005321 350 00 0 00 007650 AOS $CARCT
4398 005322 405 00 0 00 000177 ANDI 0,177
4399 005323 306 00 0 00 000003 CAIN 0,003 ;IS IT ^C ?
4400 005324 254 00 0 00 005400 JRST $HEAR1 ;YES, TERMINATE
4401 005325 302 00 0 00 000015 CAIE 0,15 ;IS IT CR ?
4402 005326 254 00 0 00 005345 JRST $HEAR4 ;NO-PROCESS IT
4403 005327 402 00 0 00 007650 SETZM $CARCT
4404 005330 201 00 0 00 000012 MOVEI 0,12 ;YES
4405 005331 260 17 0 00 006506 GO $TYOUT ;ECHO LF
4406 005332 254 00 0 00 005345 JRST $HEAR4 ;PROCESS THE CHARACTER
4407
4408 ;*TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC
4409 S^;*********************************************************************^
4410
4411 005333 201 00 0 00 002400 $TIKL: MOVEI AC0,2400
4412 005334 260 17 0 00 002043 GO $DTEXX ;COMMAND CODE TO DTE-20
4413 005335 405 00 0 00 000377 ANDI AC0,377
4414 005336 202 00 0 00 030231 MOVEM AC0,$TTCHR ;CHAR DEPOSITED INTO AC0
4415 005337 402 00 0 00 000454 SETZM $DTCHR
4416 005340 326 00 0 00 005345 JUMPN AC0,$HEAR4
4417 005341 201 04 0 00 000001 MOVEI 4,1 ;TIMED OUT
4418 005342 263 17 0 00 000000 RTN
4419
4420 ;*TELETYPE INPUT CHARACTER ROUTINE - KA/KI/KL USER MODE
4421 S^;*********************************************************************^
4422
4423 005343 051 04 0 00 030231 $TIUSR: INCHWL $TTCHR# ;GET CHAR, LINE WAIT MODE
4424 005344 254 00 0 00 005345 JRST $HEAR4 ;PROCESS THE CHARACTER
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 78
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0188
4425 S^;*********************************************************************^
4426 ;*CHARACTER PROCESSING ROUTINE FOR INPUT
4427 ;*CHARACTER RETURNED IN AC0 IS UPPER CASE
4428 ;*ACTUAL CHARACTER IS IN $TTCHR
4429 S^;*********************************************************************^
4430
4431 005345 200 00 0 00 030231 $HEAR4: MOVE 0,$TTCHR ;GET ACTUAL CHARACTER
4432 005346 405 00 0 00 000177 ANDI 0,177 ;CLEAR PARITY BIT
4433 005347 301 00 0 00 000141 CAIL 0,"A"+40 ;CONVERT TO UPPER CASE
4434 005350 303 00 0 00 000172 CAILE 0,"Z"+40
4435 005351 254 00 0 00 005353 JRST .+2
4436 005352 275 00 0 00 000040 SUBI 0,40
4437 005353 202 00 0 00 030232 MOVEM 0,$CHRIN# ;SAVE CHARACTER
4438 005354 302 00 0 00 000015 CAIE 0,15 ;IS IT CR ?
4439 005355 254 00 0 00 005370 JRST $HEAR3 ;NO
4440 005356 402 00 0 00 007650 SETZM $CARCT ;CLEAR CHARACTER COUNTER
4441 005357 332 00 0 00 030037 SKIPE USER ;YES ..USER MODE ?
4442 005360 051 00 0 00 000000 INCHRW ;YES, GET RID OF LF
4443 005361 200 00 0 00 030046 MOVE 0,CONSW
4444 005362 607 00 0 00 020000 TLNN 0,PNTLPT ;LPT/LOGICAL DEVICE OUTPUT ?
4445 005363 254 00 0 00 005365 JRST $HEAR2 ;NO
4446 005364 037 00 0 00 030242 PCRL ;YES-ADD CRLF
4447 005365 200 00 0 00 030232 $HEAR2: MOVE 0,$CHRIN ;PUT INPUT CHAR IN AC0
4448 005366 350 00 0 17 000000 AOS (P) ;SKIP RETURN +2
4449 005367 263 17 0 00 000000 RTN ;NORMAL RETURN +1
4450
4451 005370 306 00 0 00 000004 $HEAR3: CAIN 0,04
4452 005371 254 00 0 00 002404 JRST $DDTENT ;CONTROL D, GO TO DDT
4453 005372 200 00 0 00 030046 MOVE 0,CONSW ;GET DATA SWITCHES
4454 005373 607 00 0 00 020000 TLNN 0,PNTLPT ;PRINT ON LPT?
4455 005374 254 00 0 00 005365 JRST $HEAR2 ;NO-EXIT
4456 005375 200 00 0 00 030232 MOVE 0,$CHRIN ;YES
4457 005376 037 12 0 00 000000 PNTCHR ;SEND CHAR TO LPT/LOGICAL DEV
4458 005377 254 00 0 00 005365 JRST $HEAR2 ;EXIT
4459
4460 005400 201 00 0 00 005310 $HEAR1: MOVEI 0,$HEAR+0 ;CONTROL C, SAVE ENTRY TO
4461 005401 202 00 0 00 000130 MOVEM 0,JOBOPC ;TTY ROUTINE FOR RESTART
4462 005402 254 00 1 00 030062 JRST @CNTLC ;TERMINATE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 79
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE SEQ 0189
4463 SUBTTL *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
4464
4465 S^;*********************************************************************^
4466 ;*ACCEPTS Y OR N
4467 ;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
4468 ;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
4469 ;*'Y OR N <CR> - ' ASKED UPON ENTRY
4470 S^;*********************************************************************^
4471
4472 005403 201 00 0 00 000001 $NOYES: MOVEI 0,1 ;INIT FOR N ANSWER
4473 005404 254 00 0 00 005406 JRST .+2
4474 005405 201 00 0 00 000000 $YESNO: MOVEI 0,0 ;INIT FOR Y ANSWER
4475 005406 202 01 0 00 007725 MOVEM 1,$TACC1# ;SAVE AC'S
4476 005407 202 02 0 00 007726 MOVEM 2,$TACC2#
4477 005410 200 02 0 00 000000 MOVE 2,0
4478
4479 005411 $YN1: PMSGF < Y OR N <CR> - >^
4480 005411 037 04 0 00 007467 PSIXMF [SIXBIT\ Y OR N <CR> - _\]^
4481 005412 260 17 0 00 005242 GO $OPTLK
4482 005413 254 00 0 00 005433 JRST $YN2 ;NO RESPONSE
4483 005414 302 00 0 00 000131 CAIE 0,"Y" ;IS IT A 'Y' ?
4484 005415 306 00 0 00 000116 CAIN 0,"N" ;OR AN 'N' ?
4485 005416 254 00 0 00 005420 JRST .+2 ;YES
4486 005417 254 00 0 00 005437 JRST $YN3 ;NEITHER, ERROR
4487 005420 200 01 0 00 000000 MOVE 1,0
4488 005421 242 01 0 00 000007 LSH 1,7 ;POSITION 1ST CHAR
4489 005422 260 17 0 00 005242 GO $OPTLK
4490 005423 254 00 0 00 005433 JRST $YN2 ;NO RESPONSE
4491 005424 434 01 0 00 000000 OR 1,0 ;MERGE 2ND CHAR
4492 005425 316 01 0 02 005443 CAMN 1,$YN4(2) ;COMPARE FOR REQUESTED
4493 005426 254 00 0 00 005432 JRST .+4 ;YES, RETURN +2
4494 005427 316 01 0 02 005444 CAMN 1,$YN4+1(2) ;COMPARE FOR OPPOSITE
4495 005430 254 00 0 00 005433 JRST .+3 ;YES, RETURN +1
4496 005431 254 00 0 00 005437 JRST $YN3 ;ERROR, REPEAT
4497 005432 350 00 0 17 000000 AOS (P) ;YES, RETURN +2
4498 005433 200 02 0 00 007726 $YN2: MOVE 2,$TACC2 ;RESTORE AC2
4499 005434 200 00 0 00 000001 MOVE 0,1
4500 005435 200 01 0 00 007725 MOVE 1,$TACC1 ;RESTORE AC1
4501 005436 263 17 0 00 000000 RTN ;RETURN +1
4502
4503 005437 037 01 0 00 030242 $YN3: PCRLF
4504 005440 332 00 0 00 030037 SKIPE USER
4505 005441 051 11 0 00 000000 CLRBFI ;ERROR, CLEAR INPUT BUFFER
4506 005442 254 00 0 00 005411 JRST $YN1
4507
4508 005443 000000 026215 $YN4: EXP 26215 ;'Y' (CR)
4509 005444 000000 023415 EXP 23415 ;'N' (CR)
4510 005445 000000 026215 EXP 26215 ;'Y' (CR)
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 80
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0190
4511 SUBTTL *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
4512
4513 S^;*********************************************************************^
4514 ;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
4515 ;*NUMBER RETURNED IN AC0.
4516 S^;*********************************************************************^
4517
4518 005446 201 00 0 00 000002 $TPCNV: MOVEI AC0,2 ;SET INDEX TO CONVERT
4519 005447 254 00 0 00 005453 JRST $TPCV1
4520 005450 201 00 0 00 000001 $TPDEC: MOVEI AC0,1 ;SET INDEX TO DECIMAL
4521 005451 254 00 0 00 005453 JRST $TPCV1
4522 005452 201 00 0 00 000000 $TPOCT: MOVEI AC0,0 ;SET INDEX TO OCTAL
4523
4524 005453 202 01 0 00 007727 $TPCV1: MOVEM 1,$TACD1# ;SAVE AC'S 1-3
4525 005454 202 02 0 00 007730 MOVEM 2,$TACD2#
4526 005455 202 03 0 00 007731 MOVEM 3,$TACD3#
4527 005456 200 03 0 00 000000 MOVE 3,0 ;LOAD AC3 WITH THE INDEX
4528 005457 403 01 0 00 000002 SETZB 1,2 ;CLEAR DATA REG, CHAR COUNTER
4529 005460 402 00 0 00 030233 SETZM $TYPNB# ;CLEAR ERR NUMBER
4530 005461 402 00 0 00 007674 SETZM $NEGF# ;CLEAR NEGATE FLAG
4531 005462 402 00 0 00 007651 SETZM $CNVD# ;CLEAR DECIMAL CONVERT FLAG
4532 005463 402 00 0 00 030510 SETZM TTNBRF ;CLEAR DIGIT TYPED FLAG
4533
4534
4535 ;*INPUT AND COMPUTE NUMBER
4536 S^;*********************************************************************^
4537
4538 005464 260 17 0 00 005242 $TYPLP: GO $OPTLK
4539 005465 254 00 0 00 005523 JRST $TPERR ;NO RESPONSE, GO TO ERROR EXIT
4540 005466 306 00 0 00 000055 CAIN 0,"-" ;IS IT MINUS ?
4541 005467 254 00 0 00 005541 JRST $NEGX ;YES
4542 005470 306 00 0 00 000056 CAIN 0,"." ;IS IT PERIOD ?
4543 005471 254 00 0 00 005545 JRST $CNVX ;YES
4544 005472 306 00 0 00 000015 CAIN 0,15 ;IS IT CR ?
4545 005473 254 00 0 00 005507 JRST $TPEXT ;YES
4546 005474 306 00 0 00 000054 CAIN 0,"," ;IS IT COMMA ?
4547 005475 254 00 0 00 005507 JRST $TPEXT ;YES
4548 005476 301 00 0 00 000060 CAIL 0,"0" ;A VALID DIGIT ?
4549 005477 256 00 0 03 005530 XCT $TPCK(3) ;YES
4550 005500 254 00 0 00 005523 JRST $TPERR ;NO ...ERROR EXIT
4551
4552 005501 476 00 0 00 030510 $TYPL1: SETOM TTNBRF ;SET DIGIT TYPED FLAG
4553 005502 350 00 0 00 000002 AOS 2 ;INCREMENT CHARACTER COUNTER
4554 005503 256 00 0 03 005533 XCT $TPMUL(3) ;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
4555 005504 275 00 0 00 000060 SUBI 60 ;ADD IN NEW CHAR
4556 005505 270 01 0 00 000000 ADD 1,0
4557 005506 254 00 0 00 005464 JRST $TYPLP ;REPEAT TILL CR OR COMMA
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 81
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0191
4558 ;*CHECK FOR PROPER AMOUNT OF CHARACTERS
4559 S^;*********************************************************************^
4560
4561 005507 256 00 0 03 005536 $TPEXT: XCT $TPNBR(3) ;PROPER NUMBER OF CHARACTERS
4562 005510 254 00 0 00 005523 JRST $TPERR ;NO ...ERROR EXIT
4563 005511 306 03 0 00 000002 CAIN 3,2 ;CONVERT ? (INDEX = 2)
4564 005512 254 00 0 00 005551 JRST $CNVX1 ;YES
4565 ;NO, EXIT
4566
4567 005513 200 03 0 00 007731 $TPEX1: MOVE 3,$TACD3 ;RESTORE AC'S 3 & 2
4568 005514 200 02 0 00 007730 MOVE 2,$TACD2
4569 005515 200 00 0 00 000001 MOVE 0,1 ;PUT NUMBER IN AC0
4570 005516 332 00 0 00 007674 SKIPE $NEGF ;NEGATE ?
4571 005517 210 00 0 00 000001 MOVN 0,1 ;YES
4572 005520 200 01 0 00 007727 MOVE 1,$TACD1 ;RESTORE AC1
4573 005521 350 00 0 17 000000 AOS (P) ;RETURN +2
4574 005522 263 17 0 00 000000 RTN ;RETURN +1
4575
4576 005523 202 01 0 00 030233 $TPERR: MOVEM 1,$TYPNB ;SAVE NUMBER - ERROR EXIT
4577 005524 200 03 0 00 007731 MOVE 3,$TACD3 ;RESTORE AC'S
4578 005525 200 02 0 00 007730 MOVE 2,$TACD2
4579 005526 200 01 0 00 007727 MOVE 1,$TACD1
4580 005527 263 17 0 00 000000 RTN ;ERROR EXIT )
4581
4582
4583 ;*NUMBER COMPUTING CONSTANTS
4584 S^;*********************************************************************^
4585
4586 005530 303 00 0 00 000067 $TPCK: CAILE 0,"7" ;OCTAL NUMBER CHECK
4587 005531 303 00 0 00 000071 CAILE 0,"9" ;DECIMAL NUMBER CHECK
4588 005532 303 00 0 00 000071 CAILE 0,"9" ;CONVERT NUMBER CHECK
4589 005533 242 01 0 00 000003 $TPMUL: LSH 1,3 ;OCTAL BASE SHIFT
4590 005534 221 01 0 00 000012 IMULI 1,^D10 ;DECIMAL BASE MULTIPLIER
4591 005535 242 01 0 00 000004 LSH 1,4 ;CONVERT SHIFT
4592 005536 303 02 0 00 000014 $TPNBR: CAILE 2,^D12 ;ACCEPT UP TO 12 OCTALS
4593 005537 303 02 0 00 000013 CAILE 2,^D11 ;ACCEPT UP TO 11 DECIMALS
4594 005540 303 02 0 00 000011 CAILE 2,^D9 ;ACCEPT UP TO 9 CONVERT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 82
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0192
4595 005541 332 00 0 00 000002 $NEGX: SKIPE 2 ;1ST CHAR ?
4596 005542 254 00 0 00 005523 JRST $TPERR ;NO, ERROR EXIT )
4597 005543 476 00 0 00 007674 SETOM $NEGF ;YES, SET NEGATE FLAG
4598 005544 254 00 0 00 005464 JRST $TYPLP ;GET NEXT CHAR
4599
4600 005545 302 03 0 00 000002 $CNVX: CAIE 3,2 ;PERIOD, IN CONVERT ?
4601 005546 254 00 0 00 005523 JRST $TPERR ;NO, ERROR EXIT )
4602 005547 476 00 0 00 007651 SETOM $CNVD ;YES, SET DECIMAL FLAG
4603 005550 254 00 0 00 005464 JRST $TYPLP ;GET NEXT CHAR
4604
4605
4606 ;*CONVERT CONVERSION ROUTINE
4607 S^;*********************************************************************^
4608
4609 005551 201 02 0 00 000011 $CNVX1: MOVEI 2,^D9 ;NINE DIGITS
4610 005552 402 00 0 00 000000 SETZM 0
4611 005553 332 00 0 00 007651 SKIPE $CNVD ;OCTAL OR DECIMAL ?
4612 005554 254 00 0 00 005564 JRST $CNVX2 ;DECIMAL
4613 005555 612 01 0 00 007472 TDNE 1,[421042104210] ;OCTAL
4614 005556 254 00 0 00 005523 JRST $TPERR ;OCTAL ERROR, 8 OR 9 INPUT
4615 005557 242 01 0 00 000001 LSH 1,1 ;SQUEEZE OUT 4TH BIT
4616 005560 246 00 0 00 000003 LSHC 0,3 ;COMPACT INTO OCTAL
4617 005561 366 02 0 00 005557 SOJN 2,.-2 ;COMPLETED ?
4618 005562 200 01 0 00 000000 MOVE 1,0 ;YES
4619 005563 254 00 0 00 005513 JRST $TPEX1 ;RETURN
4620
4621 005564 402 00 0 00 000003 $CNVX2: SETZM 3 ;DECIMAL
4622 005565 402 00 0 00 000000 SETZM 0
4623 005566 221 03 0 00 000012 IMULI 3,^D10 ;MULTIPLY BY DECIMAL BASE
4624 005567 246 00 0 00 000004 LSHC 0,4 ;UNPACK NEXT DIGIT
4625 005570 270 03 0 00 000000 ADD 3,0 ;ADD IN
4626 005571 366 02 0 00 005565 SOJN 2,.-4 ;COMPLETED ?
4627 005572 200 01 0 00 000003 MOVE 1,3 ;YES
4628 005573 254 00 0 00 005513 JRST $TPEX1 ;RETURN )
4629
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 83
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE SEQ 0193
4630 SUBTTL *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
4631
4632 S^;*********************************************************************^
4633 ;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
4634 ;*SIXBIT WORD RETURNED IN AC0
4635 S^;*********************************************************************^
4636
4637 005574 202 01 0 00 007732 $TISIX: MOVEM 1,$TSX1# ;SAVE AC'S
4638 005575 202 02 0 00 007733 MOVEM 2,$TSX2#
4639 005576 200 02 0 00 007473 MOVE 2,[POINT 6,1]
4640 005577 201 01 0 00 000000 MOVEI 1,0
4641
4642 005600 260 17 0 00 005242 $TSXB1: GO $OPTLK
4643 005601 254 00 0 00 005623 JRST $TSXB3 ;NO RESPONSE, RTN + 1
4644 005602 306 00 0 00 000015 CAIN 0,15
4645 005603 254 00 0 00 005622 JRST $TSXB2 ;CR, TERMINATE, RTN + 2
4646 005604 306 00 0 00 000054 CAIN 0,","
4647 005605 254 00 0 00 005622 JRST $TSXB2 ;COMMA, TERMINATE, RTN + 2
4648 005606 301 00 0 00 000060 CAIL 0,"0"
4649 005607 303 00 0 00 000132 CAILE 0,"Z"
4650 005610 254 00 0 00 005623 JRST $TSXB3 ;ERROR, RTN + 1
4651 005611 303 00 0 00 000071 CAILE 0,"9"
4652 005612 301 00 0 00 000101 CAIL 0,"A"
4653 005613 254 00 0 00 005615 JRST $TSXB4 ;ALPHA-NUMERIC
4654 005614 254 00 0 00 005623 JRST $TSXB3 ;ERROR, RTN + 1
4655
4656 005615 640 00 0 00 000040 $TSXB4: TRC 0,40 ;CONVERT TO SIX-BIT
4657 005616 602 01 0 00 000077 TRNE 1,77
4658 005617 254 00 0 00 005623 JRST $TSXB3 ;TOO MANY CHAR'S, RTN + 1
4659 005620 136 00 0 00 000002 IDPB 0,2 ;PUT INTO WORD
4660 005621 254 00 0 00 005600 JRST $TSXB1 ;GET NEXT CHARACTER
4661
4662 005622 350 00 0 17 000000 $TSXB2: AOS (P) ;INCR USRPC FOR RTN + 2 (NORMAL)
4663
4664 005623 200 00 0 00 000001 $TSXB3: MOVE 0,1 ;SIXBIT WORD IN AC0
4665 005624 200 01 0 00 007732 MOVE 1,$TSX1 ;RESTORE AC'S
4666 005625 200 02 0 00 007733 MOVE 2,$TSX2
4667 005626 263 17 0 00 000000 RTN ;EXIT + 1/+2
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 84
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0194
4668 SUBTTL *SUBRTN* PRINT SUBROUTINES
4669
4670 S^;*********************************************************************^
4671 ;* $PNTSX PRINT SIXBIT NORMAL
4672 ;* $PTSXF PRINT SIXBIT FORCED
4673 ;* $PNTCW PRINT DF10 CONTROL WORD
4674 ;* $PNTI1 PRINT OCTAL NUMBER
4675 ;* $CHRPN PRINT CHARACTER
4676 ;* $ASCPN PRINT ASCII CHARACTER/LINE
4677 ;* $DECPN PRINT DECIMAL NUMBER
4678 S^;*********************************************************************^
4679
4680 S^;*********************************************************************^
4681 ;*PRINT SUBROUTINE INITIALIZATION
4682 ;*INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE
4683 S^;*********************************************************************^
4684
4685 005627 402 00 0 00 007656 $PNTIN: SETZM $INTDF# ;CLEAR DEVICE DEFAULT FLAG
4686 005630 402 00 0 00 030226 SETZM $DVOFF# ;CLEAR DEVICE INITED FLAG
4687 005631 402 00 0 00 030221 SETZM PDISF# ;CLEAR PRINT DISABLED FLAG
4688 005632 402 00 0 00 007715 SETZM $PTINH# ;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
4689 005633 402 00 0 00 030222 SETZM PNTINH# ;ALLOW EXEC PRINT TYPE IN INHIBIT
4690 005634 402 00 0 00 007634 SETZM XOFFLAG# ;CLEAR XOFF FLAG
4691 005635 402 00 0 00 030217 SETZM PNTFLG# ;CLEAR IN PRINT FLAG
4692 005636 476 00 0 00 030223 SETOM PNTSPC# ;SET PRINT SPACE FLAG
4693 005637 211 00 0 00 011610 MOVNI 0,^D5000 ;SET PRINT ENABLE TO 5000 LINES
4694 005640 202 00 0 00 030220 MOVEM 0,PNTENB
4695 005641 402 00 0 00 030227 SETZM TTYFIL ;ALLOW EXEC FILLERS
4696 005642 402 00 0 00 030234 SETZM $CRLF# ;ALLOW FREE CR/LF
4697 005643 402 00 0 00 030235 SETZM $TABF ;ALLOW TAB CONVERSION
4698 005644 402 00 0 00 030236 SETZM $FFF ;ALLOW FORM FEED CONVERSION
4699 005645 402 00 0 00 030237 SETZM $VTF ;ALLOW VERTICAL TAB CONVERSION
4700 005646 336 00 0 00 030037 SKIPN USER
4701 005647 332 00 0 00 030041 SKIPE KLFLG
4702 005650 254 00 0 00 005652 JRST .+2 ;USER OR KL10
4703 005651 254 00 0 00 006601 JRST $TYSPD ;COMPUTE TTY BAUD RATE
4704
4705 005652 201 00 0 00 030006 $PNTIX: MOVEI REENTR ;SETUP REENTER ADDRESS
4706 005653 202 00 0 00 000124 MOVEM JOBREN
4707 005654 335 00 0 00 030043 SKIPGE MONCTL ;MONITOR CONTROL ?
4708 005655 263 17 0 00 000000 RTN ;YES, DON'T PRINT TITLE
4709 005656 332 00 0 00 030056 SKIPE $ONETM ;FIRST TIME?
4710 005657 263 17 0 00 000000 RTN ;NO .....EXIT
4711 005660 254 00 0 00 002414 JRST $PNTNM+2 ;YES ...PRINT PROGRAM NAME
4712 ;AND EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 85
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0195
4713 S^;*********************************************************************^
4714 ;*PRINT SUBROUTINE ENTRY POINT
4715 ;*EXIT VIA $PNTI4 BELOW
4716 S^;*********************************************************************^
4717
4718 005661 476 00 0 00 030217 $PNTIF: SETOM PNTFLG ;SET IN PRINT FLAG
4719 005662 476 00 0 00 007710 SETOM $PNTTY# ;FORCE TO TTY
4720 005663 332 00 0 00 030037 SKIPE USER
4721 005664 051 13 0 00 000000 TTCALL 13,0 ;CLEAR CONTROL O
4722 005665 255 00 0 00 000000 JFCL
4723 005666 402 00 0 00 007715 SETZM $PTINH
4724 005667 254 00 0 00 005701 JRST $PTKL
4725
4726 005670 476 00 0 00 030217 $PNTIT: SETOM PNTFLG ;SET IN PRINT FLAG
4727 005671 402 00 0 00 007710 SETZM $PNTTY ;NOT FORCED TO TTY
4728 005672 331 00 0 00 030220 SKIPL PNTENB# ;PRINT LIMIT REACHED YET?
4729 005673 254 00 0 00 005716 JRST $PNTIB ;YES ..DON'T PRINT
4730 005674 260 17 0 00 004751 GO $SWTCH ;READ DATA SWITCHES INTO AC0
4731 005675 607 00 0 00 040000 TLNN 0,NOPNT ;NO PRINT SWITCH SET?
4732 005676 254 00 0 00 005701 JRST $PTKL
4733 005677 262 17 0 00 000000 GET AC0 ;YES ...RESTORE AC0 FROM STACK (P - 1)
4734 005700 254 00 0 00 005714 JRST $PRNTX ;EXIT, DON'T PRINT
4735
4736 005701 201 00 0 00 003000 $PTKL: MOVEI AC0,3000 ;NORMAL PRINTOUT
4737 005702 332 00 0 00 007710 SKIPE $PNTTY
4738 005703 350 00 0 00 000000 AOS AC0 ;FORCED PRINTOUT
4739 005704 260 17 0 00 002043 GO $DTEXX
4740 005705 254 00 0 00 005732 JRST $PNTIA
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 86
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0196
4741 ;*PRINT ROUTINE EXIT
4742 S^;*********************************************************************^
4743
4744 005706 402 00 0 00 007710 $PNTI4: SETZM $PNTTY ;CLEAR FORCE TO TTY FLAG
4745
4746 005707 200 01 0 00 007675 MOVE 1,$PACA1 ;RESTORE AC'S
4747 005710 200 02 0 00 007676 MOVE 2,$PACA2
4748 005711 200 03 0 00 007677 MOVE 3,$PACA3
4749 005712 200 04 0 00 007700 MOVE 4,$PACA4
4750 005713 200 05 0 00 007701 MOVE 5,$PACA5
4751 005714 402 00 0 00 030217 $PRNTX: SETZM PNTFLG ;CLEAR IN PRINT FLAG
4752 005715 263 17 0 00 000000 RTN ;RETURN
4753
4754 ;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
4755 S^;*********************************************************************^
4756
4757 005716 262 17 0 00 000000 $PNTIB: GET AC0 ;RESTORE THE STACK (P - 1)
4758 005717 332 00 0 00 030221 SKIPE PDISF# ;FIRST TIME PRINT DISABLED?
4759 005720 254 00 0 00 005714 JRST $PRNTX ;YES ...EXIT )
4760
4761 005721 476 00 0 00 030221 $PNTB1: SETOM PDISF ;NO ........SET IT
4762 005722 202 01 0 00 007675 MOVEM 1,$PACA1 ;SAVE AC'S 1 - 5
4763 005723 202 02 0 00 007676 MOVEM 2,$PACA2
4764 005724 202 03 0 00 007677 MOVEM 3,$PACA3
4765 005725 202 04 0 00 007700 MOVEM 4,$PACA4
4766 005726 202 05 0 00 007701 MOVEM 5,$PACA5
4767 005727 476 00 0 00 007710 SETOM $PNTTY ;SET FORCE TO TTY FLAG
4768 MOVEI [ASCIZ/
4769 ******
4770 EXCEEDED ALLOWED PRINTOUTS
4771 005730 201 00 0 00 007474 /]
4772 005731 254 00 0 00 006203 JRST $ASCPN-1 ;PRINT THE WARNING & EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 87
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0197
4773 S^;*********************************************************************^
4774 ;*PRINT ROUTINE SELECTOR
4775 ;*BASED ON "AC FIELD" = 12 - 17
4776 S^;*********************************************************************^
4777
4778 005732 202 01 0 00 007675 $PNTIA: MOVEM 1,$PACA1# ;SAVE AC1.
4779 005733 202 02 0 00 007676 MOVEM 2,$PACA2# ;SAVE AC2.
4780 005734 202 03 0 00 007677 MOVEM 3,$PACA3# ;SAVE AC3.
4781 005735 202 04 0 00 007700 MOVEM 4,$PACA4# ;SAVE AC4.
4782 005736 202 05 0 00 007701 MOVEM 5,$PACA5# ;SAVE AC5.
4783 005737 262 17 0 00 000000 GET AC0 ;RESTORE AC0 FROM STACK (P - 1)
4784 005740 402 00 0 00 007706 SETZM $PNT# ;CLEAR PRINT HALF WORDS FLAG
4785 005741 200 02 0 00 000040 MOVE 2,LUUO
4786 005742 241 02 0 00 000015 ROT 2,15 ;GET X (AC FIELD)
4787 005743 405 02 0 00 000017 ANDI 2,17 ;OUT OF THE UUO
4788
4789 005744 306 02 0 00 000017 $PNTIC: CAIN 2,17 ;X=17?
4790 005745 254 00 0 00 006203 JRST $PNTLN ;YES. PRINT ASCII LINE
4791 005746 322 02 0 00 006204 JUMPE 2,$ASCPN ;X=0? YES. GO PRINT 1 WORD ASCII
4792 005747 306 02 0 00 000015 CAIN 2,15 ;X=15?
4793 005750 254 00 0 00 006221 JRST $DECPN ;YES, PRINT DECIMALS )
4794 005751 306 02 0 00 000016 CAIN 2,16 ;X=16?
4795 005752 254 00 0 00 006220 JRST $DECSP ;YES, PRINT DECIMALS, LEADING SPACES
4796 005753 306 02 0 00 000013 CAIN 2,13 ;X=13?
4797 005754 254 00 0 00 006171 JRST $PNTI3 ;YES, PRINT OCTALS, 6 SP 6
4798 005755 306 02 0 00 000012 CAIN 2,12 ;X=12?
4799 005756 254 00 0 00 006177 JRST $CHRPN ;YES, PRINT CHARACTER )
4800
4801 005757 254 00 0 00 006147 JRST $PNTI1 ;NONE OF THE ABOVE, PRINT OCTAL
4802 ;(AC FIELD <12 OR = TO 14)
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 88
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0198
4803 S^;*********************************************************************^
4804 ;*SIXBIT PRINT SUBROUTINE
4805 ;*PRINTS SIXBIT WORD IN AC0
4806 S^;*********************************************************************^
4807
4808 ;*NORMAL PRINTOUT
4809 S^;*********************************************************************^
4810
4811 005760 261 17 0 00 000001 $PNTSX: PUT 1 ;SAVE AC1 ON STACK (P + 1)
4812 005761 200 01 0 00 000000 MOVE 1,0 ;PUT SIXBIT WORD IN AC1
4813 005762 201 00 0 00 000000 MOVEI 0,0
4814 005763 246 00 0 00 000006 LSHC 0,6 ;GET NEXT CHAR INTO AC0
4815 005764 271 00 0 00 000040 ADDI 0,40 ;CONVERT TO ASCII
4816 005765 037 12 0 00 000000 PNTCHR ;PRINT IT
4817 005766 326 01 0 00 005762 JUMPN 1,.-4 ;LOOP TILL ALL PRINTED
4818 005767 262 17 0 00 000001 GET 1 ;RESTORE AC1 FROM THE STACK (P - 1)
4819 005770 263 17 0 00 000000 RTN ;EXIT
4820
4821 ;*FORCED PRINTOUT
4822 S^;*********************************************************************^
4823
4824 005771 261 17 0 00 000001 $PTSXF: PUT 1 ;SAVE AC1 ON THE STACK (P + 1)
4825 005772 200 01 0 00 000000 MOVE 1,0 ;PUT SIXBIT WORD IN AC1
4826 005773 201 00 0 00 000000 MOVEI 0,0
4827 005774 246 00 0 00 000006 LSHC 0,6 ;GET NEXT CHAR INTO AC0
4828 005775 271 00 0 00 000040 ADDI 0,40 ;CONVERT TO ASCII
4829 005776 037 12 0 00 000001 PNTCHF ;PRINT
4830 005777 326 01 0 00 005773 JUMPN 1,.-4 ;LOOP TILL ALL PRINTED
4831 006000 262 17 0 00 000001 GET 1 ;FROM THE STACK (P - 1)
4832 006001 263 17 0 00 000000 RTN ;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 89
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0199
4833 S^;*********************************************************************^
4834 ;*SIXBIT MESSAGE PRINT ROUTINE
4835 ;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
4836 ;*"BACKARROW" (77) SIGNIFIES END OF TEXT
4837 ;*"UPARROW" (76) SIGNIFIES CR/LF
4838 ;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
4839 S^;*********************************************************************^
4840
4841 006002 261 17 0 00 000005 $PSIXF: PUT 5
4842 006003 474 05 0 00 000000 SETO 5, ;SET FORCED PRINTING FLAG
4843 006004 254 00 0 00 006007 JRST .+3
4844
4845 006005 261 17 0 00 000005 $PSIX: PUT 5
4846 006006 400 05 0 00 000000 SETZ 5, ;NORMAL PRINTING
4847 006007 261 17 0 00 000001 PUT 1
4848 006010 261 17 0 00 000002 PUT 2
4849 006011 261 17 0 00 000003 PUT 3
4850 006012 261 17 0 00 000004 PUT 4
4851
4852 006013 550 04 0 00 000000 HRRZ 4,0 ;MESSAGE ADDRESS TO AC4
4853
4854 006014 201 03 0 00 000006 $PSIX1: MOVEI 3,6 ;6 = NUM OF 6BIT CHAR PER WORD
4855 006015 200 01 0 04 000000 MOVE 1,(4) ;GET FIRST/NEXT WORD OF MESSAGE
4856
4857 006016 400 02 0 00 000000 $PSIX2: SETZ 2,
4858 006017 245 01 0 00 000006 ROTC 1,6 ;C(AC1) = CHAR TO BE PRINTED
4859 006020 306 02 0 00 000077 CAIN 2,77
4860 006021 254 00 0 00 006036 JRST $PSIX5 ;"BACKARROW", DONE
4861 006022 306 02 0 00 000076 CAIN 2,76
4862 006023 254 00 0 00 006033 JRST $PSIX4 ;"UPARROW", CR/LF
4863 006024 306 02 0 00 000075 CAIN 2,75
4864 006025 201 02 0 00 000151 MOVEI 2,151 ;"BRACKET", CHANGE TO TAB (151+40=11)
4865 006026 201 00 0 02 000040 MOVEI 0,40(2) ;CHANGE TO ASCII
4866 JUMPN 5,[PNTCHF
4867 006027 326 05 0 00 007504 JRST .+2] ;FORCED PRINT
4868 006030 037 12 0 00 000000 PNTCHR
4869 006031 366 03 0 00 006016 $PSIX3: SOJN 3,$PSIX2 ;PRINTED ALL CHARS FROM THIS WORD ?
4870 006032 344 04 0 00 006014 AOJA 4,$PSIX1 ;YES, DO NEXT WORD
4871
4872 $PSIX4: JUMPN 5,[PCRLF
4873 006033 326 05 0 00 007506 JRST .+2]
4874 006034 037 00 0 00 030242 PCRL ;PRINT CR/LF
4875 006035 254 00 0 00 006031 JRST $PSIX3
4876
4877 006036 262 17 0 00 000004 $PSIX5: GET 4
4878 006037 262 17 0 00 000003 GET 3
4879 006040 262 17 0 00 000002 GET 2
4880 006041 262 17 0 00 000001 GET 1
4881 006042 262 17 0 00 000005 GET 5
4882 006043 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 90
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0200
4883 S^;*********************************************************************^
4884 ;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
4885 ;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
4886 ;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
4887 S^;*********************************************************************^
4888
4889 006044 261 17 0 00 000005 $POCSF: PUT 5
4890 006045 474 05 0 00 000000 SETO 5, ;FORCED PRINTOUT
4891 006046 254 00 0 00 006051 JRST .+3
4892
4893 006047 261 17 0 00 000005 $POCS: PUT 5
4894 006050 400 05 0 00 000000 SETZ 5, ;NORMAL PRINTOUT
4895 006051 261 17 0 00 000001 PUT 1
4896 006052 261 17 0 00 000002 PUT 2
4897 006053 261 17 0 00 000003 PUT 3
4898 006054 261 17 0 00 000004 PUT 4
4899
4900 006055 200 02 0 00 000000 MOVE 2,0
4901 006056 325 02 0 00 006063 JUMPGE 2,$POCS1 ;IS NUMBER NEGATIVE ?
4902 006057 201 00 0 00 000055 MOVEI "-"
4903 JUMPN 5,[PNTCHF
4904 006060 326 05 0 00 007510 JRST .+2]
4905 006061 037 12 0 00 000000 PNTCHR ;YES, PRINT MINUS SIGN
4906 006062 210 02 0 00 000002 MOVN 2,2 ;MAKE NUMBER POSITIVE
4907
4908 006063 400 04 0 00 000000 $POCS1: SETZ 4,
4909 006064 403 03 0 00 000001 SETZB 3,1
4910 006065 322 02 0 00 006073 JUMPE 2,$POCS3 ;IF NUMBER 0, PRINT 1 ZERO
4911
4912 006066 201 03 0 00 000014 MOVEI 3,^D12 ;PRINT UP TO 12 DIGITS
4913 006067 400 01 0 00 000000 $POCS2: SETZ 1,
4914 006070 246 01 0 00 000003 LSHC 1,3
4915 006071 322 01 0 00 006105 JUMPE 1,$POCS5 ;IS THIS DIGIT ZERO ?
4916 006072 474 04 0 00 000000 SETO 4, ;NO, SET NON-ZERO DIGIT FLAG
4917 006073 201 00 0 01 000060 $POCS3: MOVEI "0"(1) ;MAKE ASCII NUMBER
4918 JUMPN 5,[PNTCHF
4919 006074 326 05 0 00 007512 JRST .+2]
4920 006075 037 12 0 00 000000 PNTCHR ;PRINT DIGIT
4921
4922 006076 367 03 0 00 006067 $POCS4: SOJG 3,$POCS2 ;ALL DONE ?
4923 006077 262 17 0 00 000004 GET 4
4924 006100 262 17 0 00 000003 GET 3
4925 006101 262 17 0 00 000002 GET 2
4926 006102 262 17 0 00 000001 GET 1
4927 006103 262 17 0 00 000005 GET 5
4928 006104 263 17 0 00 000000 RTN
4929
4930 006105 322 04 0 00 006076 $POCS5: JUMPE 4,$POCS4 ;PRINTED NON-ZERO DIGIT ?
4931 006106 254 00 0 00 006073 JRST $POCS3 ;YES, PRINT ZEROS
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 91
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0201
4932 S^;*********************************************************************^
4933 ;*DF10 CONTROL WORD PRINT ROUTINE
4934 ;*PRINTS WORD IN AC0
4935 ;*DF22F = 0, ###### ###### ,18 BIT DF10
4936 ;* -1, ##### ######## ,22 BIT DF10
4937 S^;*********************************************************************^
4938
4939 006107 202 01 0 00 007713 $PNTCW: MOVEM 1,$PTCA# ;SAVE AC1
4940 006110 201 01 0 00 000000 MOVEI 1,0 ;NORMAL PRINTOUT
4941 006111 202 02 0 00 007714 MOVEM 2,$PTCB# ;SAVE AC2
4942 006112 200 02 0 00 000000 MOVE 2,0
4943 006113 336 00 0 00 030142 SKIPN DF22F# ;22 OR 18 BIT DF10 ?
4944 006114 254 00 0 00 006130 JRST $PNTC2
4945 006115 242 00 0 00 777753 LSH 0,-^D21 ;NEW 22 BIT DF10
4946 006116 620 00 0 00 000001 TRZ 0,1
4947 JUMPN 1,[PNT5F
4948 006117 326 01 0 00 007514 JRST .+2]
4949 006120 037 05 0 00 000000 PNT5 ;PRINT WORD COUNT, 14 BITS
4950 006121 200 00 0 00 000002 MOVE 0,2
4951 006122 621 00 0 00 777760 TLZ 0,777760
4952 JUMPN 1,[PNTADF
4953 006123 326 01 0 00 007516 JRST .+2]
4954 006124 037 10 0 00 000000 PNTADR ;PRINT ADDRESS, 22 BITS
4955 006125 200 02 0 00 007714 $PNTC3: MOVE 2,$PTCB
4956 006126 200 01 0 00 007713 MOVE 1,$PTCA
4957 006127 263 17 0 00 000000 RTN ;EXIT
4958
4959 006130 554 00 0 00 000000 $PNTC2: HLRZ ;18 BIT DF10
4960 JUMPN 1,[PNT6F
4961 006131 326 01 0 00 007520 JRST .+2]
4962 006132 037 06 0 00 000000 PNT6 ;PRINT WORD COUNT, 18 BITS
4963 006133 201 00 0 00 000040 MOVEI 40
4964 JUMPN 1,[PNTCHF
4965 006134 326 01 0 00 007522 JRST .+2]
4966 006135 037 12 0 00 000000 PNTCHR ;EXTRA SPACE
4967 006136 550 00 0 00 000002 HRRZ 0,2
4968 JUMPN 1,[PNT6F
4969 006137 326 01 0 00 007524 JRST .+2]
4970 006140 037 06 0 00 000000 PNT6 ;PRINT ADDRESS, 18 BITS
4971 006141 254 00 0 00 006125 JRST $PNTC3
4972
4973 006142 202 01 0 00 007713 $PNTCF: MOVEM 1,$PTCA ;SAVE AC1
4974 ;FORCED PRINTOUT
4975 006143 200 01 0 00 006142 MOVE 1,$PNTCF
4976 006144 202 01 0 00 006107 MOVEM 1,$PNTCW ;SETUP RETURN
4977 006145 201 01 0 00 000001 MOVEI 1,1 ;FORCED PRINT INDEX
4978 006146 254 00 0 00 006111 JRST $PNTCW+2 ;REST AS ABOVE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 92
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0202
4979 S^;*********************************************************************^
4980 ;*OCTAL PRINTOUT ROUTINE
4981 ;*PRINTS NUMBER IN AC0
4982 S^;*********************************************************************^
4983
4984 006147 200 03 0 00 000002 $PNTI1: MOVE 3,2 ;MOVE X INTO AC3.
4985 006150 241 00 0 00 777775 ROT 0,-3 ;ROT OCTAL NUM 3 PLACES
4986 006151 366 03 0 00 006150 SOJN 3,.-1 ;X AMOUNT OF TIMES.
4987
4988 006152 201 01 0 00 000006 $PNTI2: MOVEI 1,6 ;PUT 6 INTO AC1 SO THAT
4989 006153 245 00 0 00 000003 ROTC 0,3 ;C(AC1) AFTER THE ROTC WILL BE 60
4990 006154 265 03 0 00 006251 JSP 3,$TOUT ;PLUS NUMBER TO BE PRINTED
4991 006155 366 02 0 00 006152 SOJN 2,$PNTI2 ;SUB 1 FROM X...PRINT UNTIL X=0.
4992 006156 202 01 0 00 007707 MOVEM 1,$PNTSV# ;SAVE NUMBER
4993 006157 336 00 0 00 030223 SKIPN PNTSPC
4994 006160 254 00 0 00 006163 JRST .+3
4995 006161 201 01 0 00 000040 MOVEI 1,40 ;AT THIS POINT WE HAVE PRINTED
4996 006162 265 03 0 00 006251 JSP 3,$TOUT ;X AMOUNT OF NUMBER(S) AND NOW A SPACE
4997 006163 336 00 0 00 007706 SKIPN $PNT# ;PRINT 6 SP 6 FLAG SET?
4998 006164 254 00 0 00 005706 JRST $PNTI4 ;NO, EXIT )
4999 006165 200 01 0 00 007707 MOVE 1,$PNTSV ;RESTORE NUMBER
5000 006166 201 02 0 00 000006 MOVEI 2,6 ;SETUP FOR 2ND HALF
5001 006167 402 00 0 00 007706 SETZM $PNT ;CLEAR PRINT SPACE FLAG
5002 006170 254 00 0 00 006152 JRST $PNTI2 ;PRINT REST OF NUMBER
5003
5004 006171 201 03 0 00 000014 $PNTI3: MOVEI 3,14 ;SETUP FOR LH WORD
5005 006172 201 02 0 00 000006 MOVEI 2,6 ;SETUP FOR FIRST HALF
5006 006173 476 00 0 00 007706 SETOM $PNT ;SET PRINT 6 SP 6 FLAG
5007 006174 476 00 0 00 030223 SETOM PNTSPC ;SET THE PRINT SPACE FLAG
5008 006175 254 00 0 00 006150 JRST $PNTI1+1 ;PRINT FIRST HALF NUMBER
5009 006176 254 00 0 00 005706 JRST $PNTI4 ;EXIT
5010
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 93
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0203
5011 S^;*********************************************************************^
5012 ;*ASCII/CHARACTER PRINTOUT ROUTINE
5013 ;*PRINTS CHAR IN LOWER 7 BITS OF AC0
5014 S^;*********************************************************************^
5015
5016 006177 405 00 0 00 000177 $CHRPN: ANDI 0,177 ;STRIP CHAR TO 7 BITS
5017 006200 200 01 0 00 000000 MOVE 1,0
5018 006201 265 03 0 00 006251 JSP 3,$TOUT ;PRINT A CHARACTER
5019 006202 254 00 0 00 005706 JRST $PNTI4 ;LEAVE
5020
5021 S^;*********************************************************************^
5022 ;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
5023 S^;*********************************************************************^
5024
5025 006203 476 00 0 00 007706 $PNTLN: SETOM $PNT# ;SET PRINT MORE THAN 1 WORD FLAG.
5026
5027 006204 202 00 0 00 007712 $ASCPN: MOVEM 0,$POINT# ;SAVE ADDRESS OF ASCII MESSAGE.
5028 006205 201 02 0 00 000005 $ASCP1: MOVEI 2,5 ;5 = NUM OF ASCII CHAR. IN A WORD.
5029 006206 200 00 1 00 007712 MOVE 0,@$POINT ;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
5030
5031 006207 400 01 0 00 000000 $ASCP2: SETZ 1, ;CLEAR AC1.
5032 006210 245 00 0 00 000007 ROTC 0,7 ;C(AC1) = CHAR TO BE PRINTED.
5033 006211 322 01 0 00 005706 JUMPE 1,$PNTI4 ;CHAR = NULL?..NO MORE CHAR..EXIT
5034 006212 265 03 0 00 006251 JSP 3,$TOUT ;PRINT A CHAR
5035 006213 366 02 0 00 006207 SOJN 2,$ASCP2 ;PNT ALL CHAR FROM THIS WORD?
5036 006214 350 00 0 00 007712 AOS $POINT ;YES. INC TO GET NEXT WORD.
5037 006215 336 00 0 00 007706 SKIPN $PNT ;PNT MORE THAN ONE WORD FLAG SET?
5038 006216 254 00 0 00 005706 JRST $PNTI4 ;NO..LEAVE
5039 006217 254 00 0 00 006205 JRST $ASCP1 ;YES...RETURN TO PNT NEXT WORD.
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 94
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* PRINT SUBROUTINES SEQ 0204
5040 S^;*********************************************************************^
5041 ;*DECIMAL PRINTOUT ROUTINE
5042 ;*PRINTS NUMBER IN AC0
5043 S^;*********************************************************************^
5044
5045 006220 476 00 0 00 007706 $DECSP: SETOM $PNT ;SET LEADING SPACES PRINT CONTROL
5046
5047 006221 325 00 0 00 006225 $DECPN: JUMPGE 0,.+4 ;IS NUMBER NEGATIVE ?
5048 006222 201 01 0 00 000055 MOVEI 1,"-" ;YES, PRINT MINUS SIGN
5049 006223 265 03 0 00 006251 JSP 3,$TOUT
5050 006224 210 00 0 00 000000 MOVN 0,0 ;MAKE NUMBER POSITIVE
5051 006225 260 17 0 00 006227 GO $RADIX ;DECIMAL-ASCII CONVERSION & PRINT CHARS
5052 006226 254 00 0 00 005706 JRST $PNTI4 ;EXIT
5053
5054 006227 200 02 0 00 030264 $RADIX: MOVE 2,RADLSC ;SETUP DIGIT COUNTER
5055 006230 246 00 0 00 777735 LSHC 0,-^D35 ;SHIFT RIGHT 35 BITS INTO AC1
5056 006231 242 01 0 00 777777 LSH 1,-1 ;VACATE AC1 SIGN BIT
5057
5058 006232 234 00 0 00 030262 $DCCMP: DIV 0,RADIX ;DIVIDE DOUBLE LENGTH INTERGER BY 10
5059 006233 506 01 0 17 000000 HRLM 1,(17) ;SAVE DIGIT
5060 006234 370 00 0 00 000002 SOS 2 ;COUNT DIGIT
5061 006235 322 00 0 00 006243 JUMPE 0,$LDSPS ;ALL DIGITS FORMED?
5062 006236 260 17 0 00 006230 GO $RADIX+1 ;NO, COMPUTE NEXT ONE
5063
5064 006237 554 01 0 17 000000 $DECP1: HLRZ 1,(17) ;YES, RETRIEVE DIGIT
5065 006240 271 01 0 00 000060 ADDI 1,60 ;CONVERT TO ASCII
5066 006241 265 03 0 00 006251 JSP 3,$TOUT ;TYPE-OUT A DIGIT
5067 006242 263 17 0 00 000000 RTN ;GET NEXT/EXIT
5068
5069 006243 336 00 0 00 007706 $LDSPS: SKIPN $PNT ;LEADING SPACES PRINT SET?
5070 006244 254 00 0 00 006237 JRST $DECP1 ;NO ...GO PRINT
5071 ;YES ...DO IT
5072 006245 361 02 0 00 006237 $DCSPS: SOJL 2,$DECP1 ;SPACES COMPLETE ? YES
5073 006246 200 01 0 00 030263 MOVE 1,RADLSP ;NO, PRINT LEADING SPACE
5074 006247 265 03 0 00 006251 JSP 3,$TOUT ;TYPE OUT THE SPACE
5075 006250 254 00 0 00 006245 JRST .-3 ;CHECK FOR NEXT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 97
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0205
5076 SUBTTL *SUBRTN* CHARACTER OUTPUT ROUTINES
5077
5078 S^;*********************************************************************^
5079 ;*OUTPUT TERMINATION CONTROL ROUTINE
5080 S^;*********************************************************************^
5081
5082 006251 202 00 0 00 007702 $TOUT: MOVEM 0,$PACB0# ;SAVE AC0.
5083 006252 202 01 0 00 007711 MOVEM 1,$PNTYC# ;SAVE CHARACTER TO BE PRINTED
5084 006253 332 00 0 00 030037 SKIPE USER ;USER MODE?
5085 006254 254 00 0 00 006307 JRST $TOUTB ;YES - GO OUTPUT
5086 006255 332 00 0 00 030041 SKIPE KLFLG ;KL10 CPU ?
5087 006256 254 00 0 00 006307 JRST $TOUTB ;YES ...DON'T CHECK FOR TYPE INS
5088
5089 006257 332 00 0 00 030222 $TOUTY: SKIPE PNTINH ;INHIBIT INPUT CHECKS ?
5090 006260 254 00 0 00 006307 JRST $TOUTB ;YES - GO OUTPUT
5091
5092 ;LOOK FOR TTY TYPE INS
5093
5094 006261 7 120 34 0 00 000040 $TOUTZ: CONSO TTY,40 ;KEY STRUCK ?
5095 006262 254 00 0 00 006307 JRST $TOUTB ;NO ...GO OUTPUT
5096 006263 7 120 04 0 00 000000 DATAI TTY,0 ;YES- GET IT
5097 006264 405 00 0 00 000177 ANDI 0,177 ;STRIP IT
5098
5099 006265 306 00 0 00 000004 $TOUTX: CAIN 0,004 ;IS IT ^D ?
5100 006266 254 00 0 00 002404 JRST $DDTENT ;YES, GO TO DDT
5101 006267 306 00 0 00 000003 CAIN 0,003 ;IS IT ^C ?
5102 006270 254 00 0 00 006370 JRST $TUTX2 ;YES, TERMINATE THE OUTPUT
5103 006271 260 17 0 00 005262 GO $TALT2 ;CHECK FOR ALTMODE INPUT
5104 006272 254 00 0 00 006274 JRST $TOUTW ;NO
5105 006273 254 00 0 00 006374 JRST $TUTX3 ;YES, GO TO USER'S ROUTINE
5106
5107 006274 302 00 0 00 000017 $TOUTW: CAIE 0,017 ;IS IT ^O ?
5108 006275 254 00 0 00 006304 JRST $TOUTV ;NO
5109 006276 201 00 0 00 000136 MOVEI 0,136 ;"^"
5110 006277 260 17 0 00 006506 GO $TYOUT
5111 006300 201 00 0 00 000117 MOVEI 0,117 ;"O"
5112 006301 260 17 0 00 006506 GO $TYOUT
5113 006302 462 00 0 00 007715 SETCMM $PTINH ;STOP OUTPUT NEXT TIME AROUND
5114 006303 254 00 0 00 006307 JRST $TOUTB ;GO OUTPUT
5115
5116 006304 302 00 0 00 000023 $TOUTV: CAIE 0,023 ;IS IT XOFF (^S) ?
5117 006305 254 00 0 00 006307 JRST $TOUTB ;NO
5118 006306 476 00 0 00 007634 SETOM XOFFLAG ;YES, SET FLAG, STOP BEFORE CR
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 98
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0206
5119 S^;*********************************************************************^
5120 ;*OVERALL CHARACTER OUTPUT CONTROL ROUTINE
5121 S^;*********************************************************************^
5122
5123 006307 200 00 0 00 030046 $TOUTB: MOVE AC0,CONSW ;DATA SWITCHES INTO AC0
5124 006310 350 00 0 00 007650 AOS $CARCT# ;INC CHAR CNTR.
5125 006311 306 01 0 00 000007 CAIN 1,7 ;CHAR A BELL ?
5126 006312 402 00 0 00 007715 SETZM $PTINH ;YES, CLEAR PRINT INHIBIT
5127 006313 302 01 0 00 000015 CAIE 1,15 ;CHAR A CR?
5128 006314 254 00 0 00 006322 JRST $TOUB1 ;NO-CHK FOR LF
5129 006315 332 00 0 00 007634 SKIPE XOFFLAG ;XOFF BEEN TYPED ?
5130 006316 260 17 0 00 006340 GO XONCHK ;YES, WAIT FOR XON TO CONTINUE
5131 006317 336 00 0 00 007715 SKIPN $PTINH ;DON'T COUNT ^O'ED LINES
5132 006320 350 00 0 00 030220 AOS PNTENB ;COUNT LINES, TILL NO MORE
5133 006321 402 00 0 00 007650 SETZM $CARCT ;CLR CHAR CNTR.
5134
5135 006322 306 01 0 00 000012 $TOUB1: CAIN 1,12 ;IS CHAR A LF?
5136 006323 402 00 0 00 007650 SETZM $CARCT ;YES-CLR CHAR CNTR.
5137 006324 332 00 0 00 007710 SKIPE $PNTTY ;NO-IS PRINT FORCED ON?
5138 006325 254 00 0 00 006330 JRST $TOUB2 ;YES-DON'T CHECK NON-PNT SW
5139 006326 603 00 0 00 040000 TLNE 0,NOPNT ;IS NON PNT SWITCH ON?
5140 006327 254 00 0 03 000000 JRST (3) ;YES, RETURN
5141
5142 006330 336 00 0 00 030037 $TOUB2: SKIPN USER ;EXEC MODE ?
5143 006331 254 00 0 00 006376 JRST $TOUTC ;YES-SEND CHAR EXEC MODE
5144 006332 265 04 0 00 006656 JSP 4,$TOUT2 ;NO-.SEND CHARACTER USER MODE
5145
5146 006333 332 00 0 00 030240 $TOUB3: SKIPE USRLFF# ;NEED USER LF FILLERS ?
5147 006334 254 00 0 00 006357 JRST $USRFL ;YES
5148 006335 332 00 0 00 030241 SKIPE USRCRF# ;NEED USER CR FILLERS ?
5149 006336 254 00 0 00 006353 JRST $USRFC ;YES
5150 006337 254 00 0 00 006442 JRST $TOUTA ;NO-BACK TO PRINT ROUTINE
5151
5152 006340 7 120 34 0 00 000040 XONCHK: CONSO TTY,40 ;ANY KEY STRUCK ?
5153 006341 254 00 0 00 006340 JRST .-1 ;NO, WAIT
5154 006342 7 120 04 0 00 000000 DATAI TTY,0 ;YES, GET THE CHARACTER
5155 006343 405 00 0 00 000177 ANDI 177
5156 006344 306 00 0 00 000003 CAIN 003 ;CONTROL C ?
5157 006345 254 00 0 00 006370 JRST $TUTX2 ;YES, ABORT
5158 006346 302 00 0 00 000021 CAIE 021 ;XON (^Q) ?
5159 006347 254 00 0 00 006340 JRST XONCHK ;NO
5160 006350 402 00 0 00 007634 SETZM XOFFLAG ;YES, CLEAR FLAG & CONTINUE PRINTING
5161 006351 402 00 0 00 007715 SETZM $PTINH
5162 006352 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 99
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0207
5163 ;*USER MODE LF & CR FILLERS
5164 S^;*********************************************************************^
5165
5166 006353 302 01 0 00 000015 $USRFC: CAIE 1,15 ;CR ?
5167 006354 254 00 0 00 006442 JRST $TOUTA ;NO-RETURN TO PRINT ROUTINE
5168 006355 200 05 0 00 030241 MOVE 5,USRCRF ;SEND FILLERS FOR CR
5169 006356 254 00 0 00 006362 JRST $USRF1 ;DEPENDING ON 'USRCRF'
5170
5171 006357 302 01 0 00 000012 $USRFL: CAIE 1,12 ;LF ?
5172 006360 254 00 0 00 006442 JRST $TOUTA ;NO-RETURN TO PRINT
5173 006361 200 05 0 00 030240 MOVE 5,USRLFF ;SEND FILLERS FOR LF
5174 006362 361 05 0 00 006442 $USRF1: SOJL 5,$TOUTA ;DEPENDING ON 'USRLFF'
5175 006363 201 01 0 00 000001 MOVEI 1,001 ;^A
5176 006364 265 04 0 00 006656 JSP 4,$TOUT2 ;SEND CHARACTER
5177 006365 254 00 0 00 006362 JRST $USRF1
5178
5179 ;*ALT-MODE TRANSFER TO USER ROUTINE
5180 S^;*********************************************************************^
5181
5182 006366 202 00 0 00 000130 MOVEM 0,JOBOPC ;2-TERMINATED IN JOBOPC
5183 006367 254 00 1 00 030062 JRST @CNTLC ;3-TERMINATE
5184 006370 265 00 0 00 006366 $TUTX2: JSP 0,.-2 ;1-SAVE PC WHERE
5185 006371 254 00 0 00 006307 JRST $TOUTB ;4-HERE IF CONTINUED
5186 006372 202 00 0 00 000130 MOVEM 0,JOBOPC ;2-TERMINATED IN JOBOPC
5187 006373 254 00 1 00 030063 JRST @ALTMGO ;3-TERMINATE
5188 006374 265 00 0 00 006372 $TUTX3: JSP 0,.-2 ;1-SAVE PC WHERE
5189 006375 254 00 0 00 006307 JRST $TOUTB ;4-HERE IF CONTINUED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 100
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0208
5190 S^;*********************************************************************^
5191 ;*EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE
5192 S^;*********************************************************************^
5193
5194 006376 603 00 0 00 020000 $TOUTC: TLNE 0,PNTLPT ;PRINT ON LINE PRINTER ?
5195 006377 254 00 0 00 006444 JRST $TOUT1 ;YES
5196
5197 006400 332 00 0 00 007715 $PNTY1: SKIPE $PTINH ;NO, TYPE-OUT INHIBIT ?
5198 006401 254 00 0 00 006442 JRST $TOUTA ;YES-EXIT
5199 006402 332 00 0 00 030041 SKIPE KLFLG ;KL10 ?
5200 006403 254 00 0 00 006422 JRST $PNTY2 ;YES
5201
5202 006404 332 00 0 00 030234 SKIPE $CRLF ;NO, WANT FREE CRLF ?
5203 006405 254 00 0 00 006422 JRST $PNTY2 ;NO
5204 006406 306 01 0 00 000007 CAIN 1,7 ;YES, BELL, NO FREE CRLF'S?
5205 006407 254 00 0 00 006422 JRST $PNTY2 ;NO
5206 006410 306 01 0 00 000026 CAIN 1,26 ;YES, NULL, NO FREE CRLF'S ?
5207 006411 254 00 0 00 006422 JRST $PNTY2 ;NO
5208 006412 200 01 0 00 007650 MOVE 1,$CARCT ;GET CHAR COUNTER
5209 006413 307 01 0 00 000110 CAIG 1,^D72 ;DONE FULL LINE, 72 CHARS ?
5210 006414 254 00 0 00 006422 JRST $PNTY2 ;NO-CONTINUE OUTPUT
5211 006415 201 00 0 00 000015 MOVEI 0,15 ;YES-TERMINATE OUTPUT
5212 006416 260 17 0 00 006506 GO $TYOUT ;CR OUT
5213 006417 201 00 0 00 000012 MOVEI 0,12
5214 006420 260 17 0 00 006506 GO $TYOUT ;LF OUT
5215 006421 402 00 0 00 007650 SETZM $CARCT ;CLEAR CHAR COUNTER
5216
5217 006422 200 00 0 00 007711 $PNTY2: MOVE 0,$PNTYC ;RESTORE CHAR (SAVED @ $TOUT)
5218 006423 336 00 0 00 030041 SKIPN KLFLG ;KL10 - LEAVE TABS ALONE
5219 006424 332 00 0 00 030235 SKIPE $TABF ;TAB CONV INHIBITED ?
5220 006425 254 00 0 00 006430 JRST .+3 ;YES, DON'T DO IT
5221 006426 306 00 0 00 000011 CAIN 0,11 ;IS CHAR A TAB?
5222 006427 254 00 0 00 006466 JRST $TABS ;YES. TURN TAB INTO SPACES.
5223 006430 332 00 0 00 030236 SKIPE $FFF ;FORM FEED CONV INHIBITED ?
5224 006431 254 00 0 00 006434 JRST .+3 ;YES, DON'T DO IT
5225 006432 306 00 0 00 000014 CAIN 0,14 ;IS CHAR A FF ?
5226 006433 254 00 0 00 006501 JRST $FFEED ;YES, SUBSTITUTE 8 LF'S
5227 006434 332 00 0 00 030237 SKIPE $VTF ;VERT TAB CONV INHIBITED ?
5228 006435 254 00 0 00 006440 JRST $PNTY3 ;YES, DON'T DO IT
5229 006436 306 00 0 00 000013 CAIN 0,13 ;IS CHAR A VT ?
5230 006437 254 00 0 00 006477 JRST $VTAB ;YES, SUBSTITUTE 4 LF'S
5231
5232 006440 260 17 0 00 006506 $PNTY3: GO $TYOUT
5233 006441 254 00 0 00 006442 JRST $TOUTA ;RETURN
5234
5235 ;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
5236 S^;*********************************************************************^
5237 006442 200 00 0 00 007702 $TOUTA: MOVE AC0,$PACB0 ;RESTORE AC0
5238 006443 254 00 0 03 000000 JRST (3) ;RETURN TO PRINT ROUTINE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 101
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0209
5239 S^;*********************************************************************^
5240 ;*EXEC MODE LPT OUTPUT
5241 S^;*********************************************************************^
5242
5243 006444 306 01 0 00 000007 $TOUT1: CAIN 1,7 ;NO BELLS TO LPT
5244 006445 254 00 0 00 006400 JRST $PNTY1
5245 006446 306 01 0 00 000026 CAIN 1,26 ;NO NULLS TO LPT
5246 006447 254 00 0 00 006400 JRST $PNTY1
5247 006450 242 01 0 00 000001 LSH 1,1 ;C(AC1) HAS TO BE LEFT JUSTIFIED.
5248 006451 405 01 0 00 000376 ANDI 1,376 ;CLEAR PARITY BIT
5249 006452 7 124 14 0 00 000001 DATAO LPT,1 ;PRINT CHAR ONTO LPT.
5250 006453 200 01 0 00 007526 MOVE 1,[^D<<1000*2000>/7>] ;ABOUT TWO SECONDS
5251 006454 7 124 34 0 00 000100 CONSO LPT,100 ;LPT DONE?
5252 006455 367 01 0 00 006454 SOJG 1,.-1 ;NO.
5253 006456 327 01 0 00 006462 JUMPG 1,.+4 ;IF LPT HUNG, CLEAR LPT PRINT
5254 006457 200 00 0 00 030046 MOVE 0,CONSW ;FOR THIS PRINT ENTRY
5255 006460 621 00 0 00 020000 TLZ 0,PNTLPT
5256 006461 202 00 0 00 030046 MOVEM 0,CONSW
5257 006462 336 00 0 00 007710 SKIPN $PNTTY ;SKIP IF MSG ALSO FORCED TO TTY
5258 006463 327 01 0 00 006442 JUMPG 1,$TOUTA ;RETURN IF LPT NOT HUNG, ELSE ALL TO TTY
5259 006464 200 01 0 00 007711 MOVE 1,$PNTYC
5260 006465 254 00 0 00 006400 JRST $PNTY1 ;GO SET UP MORE OUTPUT, IF ANY
5261
5262
5263 ;*TELETYPE TABS CONVERSION
5264 S^;*********************************************************************^
5265
5266 006466 370 01 0 00 007650 $TABS: SOS 1,$CARCT ;PUT CHAR CNT - 1 TAB INTO AC1.
5267 006467 275 01 0 00 000010 SUBI 1,10 ;DIVIDE
5268 006470 325 01 0 00 006467 JUMPGE 1,.-1 ;BY 10.
5269 006471 210 01 0 00 000001 MOVN 1,1 ;C(AC1) NOW = NO. OF SPACES TO PNT.
5270
5271 006472 201 00 0 00 000040 $TABS1: MOVEI 0,40 ;PRINT SPACES
5272 006473 260 17 0 00 006506 GO $TYOUT ;SEND A SPACE
5273 006474 350 00 0 00 007650 AOS $CARCT ;INCREMENT CHAR CNTR.
5274 006475 367 01 0 00 006472 SOJG 1,$TABS1 ;DECREMENT SPACES CNTR.
5275 006476 254 00 0 00 006442 JRST $TOUTA ;RETURN
5276
5277 ;*TELETYPE FF & VT CONVERSION
5278 S^;*********************************************************************^
5279
5280 006477 201 01 0 00 000004 $VTAB: MOVEI 1,4
5281 006500 334 00 0 00 000000 SKIPA
5282
5283 006501 201 01 0 00 000010 $FFEED: MOVEI 1,^D8
5284 006502 201 00 0 00 000012 MOVEI 0,12
5285 006503 260 17 0 00 006506 GO $TYOUT ;SEND LF'S
5286 006504 367 01 0 00 006502 SOJG 1,$FFEED+1
5287 006505 254 00 0 00 006442 JRST $TOUTA ;RETURN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 102
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0210
5288 S^;*********************************************************************^
5289 ;*EXEC MODE CHARACTER OUTPUT
5290 S^;*********************************************************************^
5291
5292 006506 332 00 0 00 030041 $TYOUT: SKIPE KLFLG ;KL10 ?
5293 006507 254 00 0 00 006544 JRST $TYKL ;YES-SEND DATA VIA DTE-20
5294
5295 ;*KA/KI EXEC MODE TELETYPE OUTPUT ROUTINE (DIRECT)
5296 S^;*********************************************************************^
5297
5298 006510 202 00 0 00 007734 $TYOU1: MOVEM AC0,$TYAC0# ;SAVE AC0
5299 006511 202 01 0 00 007735 MOVEM 1,$TYAC1# ;SAVE AC1 & AC2
5300 006512 202 02 0 00 007736 MOVEM 2,$TYAC2#
5301 006513 405 00 0 00 000177 ANDI 0,177 ;STRIP TO 7 BITS
5302 006514 306 00 0 00 000026 CAIN 0,26 ;DON'T PRINT NULLS
5303 006515 254 00 0 00 006540 JRST $TYOU3
5304 006516 200 01 0 00 000000 MOVE 1,0 ;PUT CHAR IN AC1
5305 006517 400 02 0 00 000000 SETZ 2, ;CLEAR AC2..USE AS BIT CNTR.
5306 006520 405 01 0 01 777777 ANDI 1,-1(1) ;THIS WILL CLEAR 1 BIT AT A TIME.
5307 006521 332 00 0 00 000001 SKIPE 1 ;ALL THE BITS?
5308 006522 344 02 0 00 006520 AOJA 2,.-2 ;NO. RETURN TO DO ANDI AGAIN.
5309 006523 606 02 0 00 000001 TRNN 2,1 ;BIT CNTR ODD?
5310 006524 640 00 0 00 000200 TRC 0,200 ;COMP HI ORDER BIT..EVEN PAR.
5311
5312 006525 7 120 14 0 00 000000 $TYOU4: DATAO TTY,0 ;SEND CHAR TO TTY
5313 006526 7 120 34 0 00 000010 CONSO TTY,10 ;WAIT TILL DONE
5314 006527 254 00 0 00 006526 JRST .-1
5315 006530 332 00 0 00 030227 SKIPE TTYFIL ;FILLERS INHIBITED ?
5316 006531 254 00 0 00 006540 JRST $TYOU3 ;YES-EXIT
5317
5318 006532 306 00 0 00 000012 $TYOU2: CAIN 0,12 ;NO-LF ?
5319 006533 254 00 0 00 006574 JRST $TYFLF ;YES-DO FILLERS
5320 006534 306 00 0 00 000215 CAIN 0,215 ;NO-CR ?
5321 006535 254 00 0 00 006551 JRST $TYFCR ;YES-DO FILLERS
5322 006536 306 00 0 00 000207 CAIN 0,207 ;NO-BELL ?
5323 006537 254 00 0 00 006577 JRST $TYFBL ;YES-DO FILLERS
5324 ;NONE OF THE ABOVE !
5325 006540 200 00 0 00 007734 $TYOU3: MOVE 0,$TYAC0 ;DONE, RESTORE AC'S
5326 006541 200 01 0 00 007735 MOVE 1,$TYAC1
5327 006542 200 02 0 00 007736 MOVE 2,$TYAC2
5328 006543 263 17 0 00 000000 RTN ;EXIT
5329
5330 ;*KL10 EXEC MODE TTY OUTPUT
5331 S^;*********************************************************************^
5332
5333 006544 261 17 0 00 000000 $TYKL: PUT AC0
5334 006545 405 00 0 00 000177 ANDI AC0,177 ;CLEAR JUNK BITS
5335 006546 260 17 0 00 002043 GO $DTEXX ;SEND TO PDP-11
5336 006547 262 17 0 00 000000 GET AC0
5337 006550 263 17 0 00 000000 RTN
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 103
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0211
5338 ;*CONSOLE TTY FILLER ROUTINE
5339 S^;*********************************************************************^
5340
5341 006551 7 120 14 0 00 000000 $TYFCR: DATAO TTY,0 ;ALWAYS GIVE 1 EXTRA CR
5342 006552 7 120 34 0 00 000010 CONSO TTY,10
5343 006553 254 00 0 00 006552 JRST .-1
5344 006554 200 01 0 00 030230 MOVE 1,TTYSPD ;DETERMINE FILLERS REQUIRED
5345 006555 402 00 0 00 000002 SETZM 2 ;FOR CR
5346 006556 306 01 0 00 000002 CAIN 1,2
5347 006557 201 02 0 00 000011 MOVEI 2,^D9 ;LA30, REQ 9 FILLERS @ 300 BAUD
5348 006560 306 01 0 00 000005 $TYFC1: CAIN 1,5
5349 006561 201 02 0 00 000004 MOVEI 2,4 ;4 FILLERS @ 2400 BAUD
5350 006562 306 01 0 00 000004 CAIN 1,4
5351 006563 201 02 0 00 000002 MOVEI 2,2 ;2 FILLERS @ 1200 BAUD
5352 006564 306 01 0 00 000003 CAIN 1,3
5353 006565 201 02 0 00 000001 MOVEI 2,1 ;1 FILLER @ 600 BAUD
5354
5355 006566 361 02 0 00 006540 $TYFLX: SOJL 2,$TYOU3
5356 006567 201 00 0 00 000000 MOVEI 0,0 ;USE 000 AS FILLER
5357 006570 7 120 14 0 00 000000 DATAO TTY,0
5358 006571 7 120 34 0 00 000010 CONSO TTY,10
5359 006572 254 00 0 00 006571 JRST .-1
5360 006573 254 00 0 00 006566 JRST $TYFLX
5361
5362 006574 200 01 0 00 030230 $TYFLF: MOVE 1,TTYSPD ;DETERMINE FILLERS REQ FOR LF
5363 006575 402 00 0 00 000002 SETZM 2
5364 006576 254 00 0 00 006560 JRST $TYFC1 ;FILLERS AS CR EXCEPT FOR 300 BAUD
5365
5366 006577 201 02 0 00 000002 $TYFBL: MOVEI 2,2 ;DO 2 FILLERS FOR THE BELL
5367 006600 254 00 0 00 006566 JRST $TYFLX
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 104
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0212
5368 ;*EXEC MODE CONSOLE TTY BAUD RATE DETERMINATION
5369 S^;*********************************************************************^
5370
5371 006601 336 00 0 00 030056 $TYSPD: SKIPN $ONETM
5372 006602 254 00 0 00 006605 JRST .+3
5373 006603 331 00 0 00 030230 SKIPL TTYSPD
5374 006604 254 00 0 00 005652 JRST $PNTIX ;DO ONLY FIRST TIME
5375 006605 335 00 0 00 030043 SKIPGE MONCTL ;UNDER DIAG MONITOR ?
5376 006606 254 00 0 00 006651 JRST $TYMON ;YES
5377 006607 7 000 04 0 00 000000 $TYMN1: DATAI APR,0 ;GET SWITCHES
5378 006610 201 01 0 00 000060 MOVEI 1,60
5379 006611 332 00 0 00 030505 SKIPE CYCL60 ;50 OR 60 CYCLES ?
5380 006612 201 01 0 00 000050 MOVEI 1,50
5381 006613 7 000 20 0 00 001000 CONO APR,1000 ;CLEAR AND WAIT FOR CLOCK
5382 006614 7 000 34 0 00 001000 CONSO APR,1000
5383 006615 254 00 0 00 006614 JRST .-1
5384 006616 7 000 20 0 00 001000 CONO APR,1000
5385 006617 402 00 0 00 000000 SETZM 0
5386 006620 7 120 14 0 00 007527 $TYSP1: DATAO TTY,[377] ;COUNT # OF CHARS SENT IN 1 SEC
5387 006621 350 00 0 00 000000 AOS 0
5388 006622 7 120 34 0 00 000010 $TYSP2: CONSO TTY,10
5389 006623 254 00 0 00 006625 JRST $TYSP3
5390 006624 254 00 0 00 006620 JRST $TYSP1
5391 006625 7 000 34 0 00 001000 $TYSP3: CONSO APR,1000
5392 006626 254 00 0 00 006622 JRST $TYSP2
5393 006627 7 000 20 0 00 001000 CONO APR,1000
5394 006630 365 01 0 00 006622 SOJGE 1,$TYSP2
5395
5396 006631 7 120 34 0 00 000010 $TYSP4: CONSO TTY,10 ;WAIT TILL TTY GETS DONE
5397 006632 254 00 0 00 006631 JRST .-1
5398 006633 201 01 0 00 000005 MOVEI 1,5 ;5 = 2400 BAUD
5399 006634 307 00 0 00 000172 CAIG 0,^D122
5400 006635 370 00 0 00 000001 SOS 1 ;4 = 1200 BAUD
5401 006636 307 00 0 00 000076 CAIG 0,^D62
5402 006637 370 00 0 00 000001 SOS 1 ;3 = 600 BAUD
5403 006640 307 00 0 00 000040 CAIG 0,^D32
5404 006641 370 00 0 00 000001 SOS 1 ;2 = 300 BAUD
5405 006642 307 00 0 00 000020 CAIG 0,^D16
5406 006643 370 00 0 00 000001 SOS 1 ;1 = 150 BAUD
5407 006644 307 00 0 00 000014 CAIG 0,^D12
5408 006645 370 00 0 00 000001 SOS 1 ;0 = 110 BAUD
5409 006646 202 01 0 00 030230 $TYMN2: MOVEM 1,TTYSPD# ;SAVE TTY SPEED
5410 006647 202 01 0 00 001007 MOVEM 1,$TTYSPD
5411 006650 254 00 0 00 005652 JRST $PNTIX ;CONTINUE WITH $PNTIN
5412
5413 006651 200 01 0 00 001007 $TYMON: MOVE 1,$TTYSPD ;DIAG MON, GET TTY SPEED
5414 006652 321 01 0 00 006607 JUMPL 1,$TYMN1 ;IS IT A PROPER VALUE ?
5415 006653 303 01 0 00 000012 CAILE 1,^D10 ;MUST BE BETWEEN 0-10
5416 006654 254 00 0 00 006607 JRST $TYMN1 ;OTHERWISE COMPUTE OWN
5417 006655 254 00 0 00 006646 JRST $TYMN2 ;OK - SAVE AS TTY SPEED
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 105
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0213
5418 S^;*********************************************************************^
5419 ;*USER MODE CHARACTER OUTPUT
5420 S^;*********************************************************************^
5421
5422 006656 202 04 0 00 007703 $TOUT2: MOVEM 4,$PACC4#
5423 006657 306 01 0 00 000026 CAIN 1,26 ;DON'T PRINT NULLS
5424 006660 254 00 1 00 007703 JRST @$PACC4
5425 006661 200 00 0 00 030046 MOVE 0,CONSW
5426 006662 603 00 0 00 020000 TLNE 0,PNTLPT ;IS LPT PRINT SWITCH UP ?
5427 006663 254 00 0 00 006676 JRST $TOUT3 ;YES, GO PRINT ON LOGICAL DEVICE
5428 006664 037 05 0 00 000002 DROPDV ;CLOSE DEV IF SWITCH CHANGED
5429 006665 200 00 0 00 007650 $TOUT6: MOVE 0,$CARCT ;CHARACTER NUMBER
5430 006666 306 00 0 00 000001 CAIN 0,1 ;FIRST CHAR IN LINE ?
5431 006667 254 00 0 00 006672 JRST $TOUT4 ;YES
5432 006670 051 01 0 00 000001 $TOUT5: OUTCHR 1 ;OUTPUT VIA MONITOR TTCALL
5433 006671 254 00 1 00 007703 JRST @$PACC4 ;GO RESTORE AC0 AND RETURN
5434
5435 006672 331 00 0 00 030043 $TOUT4: SKIPL MONCTL ;SYSTEM EXERCISER
5436 006673 254 00 0 00 006670 JRST $TOUT5 ;NO
5437 006674 051 03 0 00 030257 OUTSTR QUEST ;PRECEDE LINE WITH ?
5438 006675 254 00 0 00 006670 JRST $TOUT5
5439
5440
5441 ;*USER MODE LOGICAL DEVICE OUTPUT
5442 S^;*********************************************************************^
5443
5444 006676 336 00 0 00 030226 $TOUT3: SKIPN $DVOFF ;DEVICE BEEN INITED YET ?
5445 006677 260 17 0 00 006714 GO $INTDV ;NO, GO DO IT
5446 006700 260 17 0 00 006704 GO $PUTCR ;GO OUTPUT CHAR
5447 006701 336 00 0 00 007710 SKIPN $PNTTY ;SKIP IF MESSAGE ALSO FORCED TO TTY
5448 006702 254 00 1 00 007703 JRST @$PACC4
5449 006703 254 00 0 00 006665 JRST $TOUT6 ;OUTPUT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 106
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES SEQ 0214
5450 SUBTTL *SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES
5451
5452 S^;*********************************************************************^
5453 ;*OUTPUT TO LOGICAL DEVICE
5454 S^;*********************************************************************^
5455
5456 006704 332 00 0 00 007653 $PUTCR: SKIPE $DVTTY# ;IF DEVICE IS TTY
5457 006705 254 00 0 00 006712 JRST $PUTBF ;EMPTY AFTER EACH CHAR
5458 006706 377 00 0 00 030267 SOSG $OBUF+2 ;INCREMENT BYTE COUNT
5459 006707 254 00 0 00 006712 JRST $PUTBF ;NO MORE ROOM, OR FIRST CALL AFTER INIT
5460 006710 136 01 0 00 030266 $PTNXT: IDPB 1,$OBUF+1 ;STORE CHAR IN AC1
5461 006711 263 17 0 00 000000 RTN ;EXIT
5462 006712 057 17 0 00 000000 $PUTBF: OUT $DEVCH, ;CALL MONITOR TO EMPTY BUFFER
5463 006713 254 00 0 00 006710 JRST $PTNXT
5464
5465 S^;*********************************************************************^
5466 ;*LOGICAL DEVICE INITIALIZATION
5467 ;*PHY DEV ASSIGNED AT RUN TIME
5468 S^;*********************************************************************^
5469 006714 200 00 0 00 030021 $INTDV: MOVE 0,PNTEXT
5470 006715 202 00 0 00 030271 MOVEM 0,$OUTEX
5471 006716 200 00 0 00 030020 MOVE 0,PNTNAM ;SETUP LOGICAL OUTPUT FILE NAME
5472 006717 202 00 0 00 030270 MOVEM 0,$OUTNM
5473 006720 041 17 0 00 000000 INIT $DEVCH,0 ;ASCII MODE, DEV CHANNEL
5474 006721 44 45 66 00 00 00 SIXBIT /DEV/ ;LOGICAL DEVICE, LPT,DSK,DTAX
5475 006722 030265 000000 XWD $OBUF, ;OUTPUT ONLY
5476 006723 254 00 0 00 006735 JRST $INTD1 ;DEV NOT AVAIL, DEFAULT TO DISK
5477 006724 065 17 0 00 000001 $INTD2: OUTBUF $DEVCH,1 ;SETUP OUTPUT BUFFER
5478 006725 077 17 0 00 030270 ENTER $DEVCH,$OUTNM ;INIT OUTPUT FILE
5479 006726 254 00 0 00 006764 JRST $OERR2 ;NO DIR ROOM, ERROR
5480 006727 476 00 0 00 030226 SETOM $DVOFF ;SET DEVICE INITED FLAG
5481 006730 201 00 0 00 000017 MOVEI 0,$DEVCH
5482 006731 047 00 0 00 000004 DEVCHR ;GET DEVICE CHARACTERISTICS
5483 006732 603 00 0 00 000010 TLNE 0,10
5484 006733 476 00 0 00 007653 SETOM $DVTTY ;DEVICE IS TTY
5485 006734 263 17 0 00 000000 RTN ;EXIT
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 107
SUBRTM MAC 23-Mar-78 15:08 *SUBRTN* LOGICAL DEVICE OUTPUT ROUTINES SEQ 0215
5486 006735 336 00 0 00 007656 $INTD1: SKIPN $INTDF ;FIRST DEFAULT INIT ?
5487 OUTSTR [ASCIZ/
5488 ****
5489 USING 'DSK' PRINT FILE
5490 ****
5491 006736 051 03 0 00 007530 /]
5492 006737 476 00 0 00 007656 SETOM $INTDF
5493 006740 041 17 0 00 000000 INIT $DEVCH,0
5494 006741 44 63 53 00 00 00 SIXBIT /DSK/
5495 006742 030265 000000 XWD $OBUF,
5496 006743 254 00 0 00 006762 JRST $OERR1
5497 006744 254 00 0 00 006724 JRST $INTD2
5498
5499
5500 ;*USER MODE CLOSE FILE
5501 S^;*********************************************************************^
5502 006745 336 00 0 00 030226 $DRPDV: SKIPN $DVOFF ;DEVICE INITED?
5503 006746 263 17 0 00 000000 RTN ;NO, DON'T BOTHER
5504 006747 070 17 0 00 000000 CLOSE $DEVCH, ;CLOSE FILE
5505 006750 063 17 0 00 740000 STATZ $DEVCH,740000 ;RECHECK FINAL ERROR BITS
5506 OUTSTR [ASCIZ/
5507 %PRINT CLOSE ERROR
5508 006751 051 03 0 00 007540 /]
5509 006752 071 17 0 00 000000 RELEAS $DEVCH, ;RELINQUISH DEVICE, WRITE DIRECTORY
5510 006753 402 00 0 00 030226 SETZM $DVOFF
5511 006754 263 17 0 00 000000 RTN ;EXIT
5512
5513 006755 $OUTER: OUTSTR [ASCIZ/
5514 %PRINT OUTPUT ERROR
5515 006755 051 03 0 00 007545 /]
5516 006756 332 00 0 00 030520 SKIPE $$OUTER
5517 006757 256 00 0 00 030520 XCT $$OUTER ;EXECUTE USERS ERROR RTN, IF PROV.
5518 006760 047 01 0 00 000012 EXIT 1, ;ERROR, QUIT
5519 006761 254 00 0 00 030000 JRST BEGIN ;RESTART USER SEGMENT
5520
5521 006762 $OERR1: OUTSTR [ASCIZ/
5522 006762 051 03 0 00 007552 DSK INIT ERROR/]
5523 006763 254 00 0 00 006755 JRST $OUTER ;DISK PRINT OUTPUT ERROR
5524
5525 006764 $OERR2: OUTSTR [ASCIZ/
5526 006764 051 03 0 00 007556 NO DIR ROOM/]
5527 006765 254 00 0 00 006755 JRST $OUTER ;DISK PRINT OUTPUT ERROR
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 1
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0216
5528 SUBTTL *STOR* RESERVED STORAGE
5529
5530 ;MODIFY DEVICE CODE CODE TABLE
5531 006766 $MDLST: $MDSXB CCI,14^
5532 006766 434351 000014 <SIXBIT/CCI/>!14 ;CCI DEVICE CODE IS 14^
5533 $MDSXB CCI2,20^
5534 006767 434351 220020 <SIXBIT/CCI2/>!20 ;CCI2 DEVICE CODE IS 20^
5535 $MDSXB ADC,24^
5536 006770 414443 000024 <SIXBIT/ADC/>!24 ;ADC DEVICE CODE IS 24^
5537 $MDSXB ADC2,30^
5538 006771 414443 220030 <SIXBIT/ADC2/>!30 ;ADC2 DEVICE CODE IS 30^
5539 $MDSXB DLB,60^
5540 006772 445442 000060 <SIXBIT/DLB/>!60 ;DLB DEVICE CODE IS 60^
5541 $MDSXB DLC,64^
5542 006773 445443 000064 <SIXBIT/DLC/>!64 ;DLC DEVICE CODE IS 64^
5543 $MDSXB DLB2,160^
5544 006774 445442 220160 <SIXBIT/DLB2/>!160 ;DLB2 DEVICE CODE IS 160^
5545 $MDSXB DLC2,164^
5546 006775 445443 220164 <SIXBIT/DLC2/>!164 ;DLC2 DEVICE CODE IS 164^
5547 $MDSXB CLK,70^
5548 006776 435453 000070 <SIXBIT/CLK/>!70 ;CLK DEVICE CODE IS 70^
5549 $MDSXB CLK2,74^
5550 006777 435453 220074 <SIXBIT/CLK2/>!74 ;CLK2 DEVICE CODE IS 74^
5551 $MDSXB LPT,124^
5552 007000 546064 000124 <SIXBIT/LPT/>!124 ;LPT DEVICE CODE IS 124^
5553 $MDSXB LPT2,234^
5554 007001 546064 220234 <SIXBIT/LPT2/>!234 ;LPT2 DEVICE CODE IS 234^
5555 $MDSXB CDP,110^
5556 007002 434460 000110 <SIXBIT/CDP/>!110 ;CDP DEVICE CODE IS 110^
5557 $MDSXB DIS,130^
5558 007003 445163 000130 <SIXBIT/DIS/>!130 ;DIS DEVICE CODE IS 130^
5559 $MDSXB DIS2,134^
5560 007004 445163 220134 <SIXBIT/DIS2/>!134 ;DIS2 DEVICE CODE IS 134^
5561 $MDSXB PLT,140^
5562 007005 605464 000140 <SIXBIT/PLT/>!140 ;PLT DEVICE CODE IS 140^
5563 $MDSXB PLT2,144^
5564 007006 605464 220144 <SIXBIT/PLT2/>!144 ;PLT2 DEVICE CODE IS 144^
5565 $MDSXB CR,150^
5566 007007 436200 000150 <SIXBIT/CR/>!150 ;CR DEVICE CODE IS 150^
5567 $MDSXB CR2,154^
5568 007010 436222 000154 <SIXBIT/CR2/>!154 ;CR2 DEVICE CODE IS 154^
5569 $MDSXB DSK,170^
5570 007011 446353 000170 <SIXBIT/DSK/>!170 ;DSK DEVICE CODE IS 170^
5571 $MDSXB DSK2,174^
5572 007012 446353 220174 <SIXBIT/DSK2/>!174 ;DSK2 DEVICE CODE IS 174^
5573 $MDSXB DLS,240^
5574 007013 445463 000240 <SIXBIT/DLS/>!240 ;DLS DEVICE CODE IS 240^
5575 $MDSXB DLS2,244^
5576 007014 445463 220244 <SIXBIT/DLS2/>!244 ;DLS2 DEVICE CODE IS 244^
5577 $MDSXB DPC,250^
5578 007015 446043 000250 <SIXBIT/DPC/>!250 ;DPC DEVICE CODE IS 250^
5579 $MDSXB DPC2,254^
5580 007016 446043 220254 <SIXBIT/DPC2/>!254 ;DPC2 DEVICE CODE IS 254^
5581 $MDSXB DPC3,260^
5582 007017 446043 230260 <SIXBIT/DPC3/>!260 ;DPC3 DEVICE CODE IS 260^
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 1-1
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0217
5583 $MDSXB DPC4,264^
5584 007020 446043 240264 <SIXBIT/DPC4/>!264 ;DPC4 DEVICE CODE IS 264^
5585 $MDSXB RHA,270^
5586 007021 625041 000270 <SIXBIT/RHA/>!270 ;RHA DEVICE CODE IS 270^
5587 $MDSXB RHB,274^
5588 007022 625042 000274 <SIXBIT/RHB/>!274 ;RHB DEVICE CODE IS 274^
5589 $MDSXB DTC,320^
5590 007023 446443 000320 <SIXBIT/DTC/>!320 ;DTC DEVICE CODE IS 320^
5591 $MDSXB DTC2,330^
5592 007024 446443 220330 <SIXBIT/DTC2/>!330 ;DTC2 DEVICE CODE IS 330^
5593 $MDSXB DTS,324^
5594 007025 446463 000324 <SIXBIT/DTS/>!324 ;DTS DEVICE CODE IS 324^
5595 $MDSXB DTS2,334^
5596 007026 446463 220334 <SIXBIT/DTS2/>!334 ;DTS2 DEVICE CODE IS 334^
5597 $MDSXB TMC,340^
5598 007027 645543 000340 <SIXBIT/TMC/>!340 ;TMC DEVICE CODE IS 340^
5599 $MDSXB TMC2,350^
5600 007030 645543 220350 <SIXBIT/TMC2/>!350 ;TMC2 DEVICE CODE IS 350^
5601 $MDSXB TMS,344^
5602 007031 645563 000344 <SIXBIT/TMS/>!344 ;TMS DEVICE CODE IS 344^
5603 $MDSXB TMS2,354^
5604 007032 645563 220354 <SIXBIT/TMS2/>!354 ;TMS2 DEVICE CODE IS 354^
5605 $MDSXB DSS,460^
5606 007033 446363 000460 <SIXBIT/DSS/>!460 ;DSS DEVICE CODE IS 460^
5607 $MDSXB DSS2,470^
5608 007034 446363 220470 <SIXBIT/DSS2/>!470 ;DSS2 DEVICE CODE IS 470^
5609 $MDSXB DSI,464^
5610 007035 446351 000464 <SIXBIT/DSI/>!464 ;DSI DEVICE CODE IS 464^
5611 $MDSXB DSI2,474^
5612 007036 446351 220474 <SIXBIT/DSI2/>!474 ;DSI2 DEVICE CODE IS 474^
5613 $MDSXB RH0,540^
5614 007037 625020 000540 <SIXBIT/RH0/>!540 ;RH0 DEVICE CODE IS 540^
5615 $MDSXB RH1,544^
5616 007040 625021 000544 <SIXBIT/RH1/>!544 ;RH1 DEVICE CODE IS 544^
5617 $MDSXB RH2,550^
5618 007041 625022 000550 <SIXBIT/RH2/>!550 ;RH2 DEVICE CODE IS 550^
5619 $MDSXB RH3,554^
5620 007042 625023 000554 <SIXBIT/RH3/>!554 ;RH3 DEVICE CODE IS 554^
5621 $MDSXB RH4,560^
5622 007043 625024 000560 <SIXBIT/RH4/>!560 ;RH4 DEVICE CODE IS 560^
5623 $MDSXB RH5,564^
5624 007044 625025 000564 <SIXBIT/RH5/>!564 ;RH5 DEVICE CODE IS 564^
5625 $MDSXB RH6,570^
5626 007045 625026 000570 <SIXBIT/RH6/>!570 ;RH6 DEVICE CODE IS 570^
5627 $MDSXB RH7,574^
5628 007046 625027 000574 <SIXBIT/RH7/>!574 ;RH7 DEVICE CODE IS 574^
5629
5630 000061 $MDEND=.-$MDLST ;COMPUTES LENGTH OF TABLE
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0218
5631 ;PROGRAM LITERALS
5632 007047 LIT
5633 007047 254 00 0 00 002404
5634 007050 254 00 0 00 002504
5635 007051 015 012 105 130 105
5636 007052 103 040 117 116 114
5637 007053 131 015 012 000 000
5638 007054 540000 540001
5639 007055 020000 020000
5640 007056 000002 000002
5641 007057 260 17 0 00 001173
5642 007060 254 00 0 00 001267
5643 007061 76 51 54 54 45 47
5644 007062 41 54 00 65 65 57
5645 007063 76 65 65 57 75 75
5646 007064 46 54 41 47 63 75
5647 007065 00 00 60 43 76 77
5648 007066 777577 030303
5649 007067 76 12 12 12 12 12
5650 007070 76 65 65 57 00 60
5651 007071 54 51 63 64 00 45
5652 007072 62 62 00 60 35 77
5653 007073 76 45 62 62 57 62
5654 007074 00 55 65 65 57 00
5655 007075 35 00 77 00 00 00
5656 007076 037 12 0 00 000001
5657 007077 254 00 0 00 001423
5658 007100 037 15 0 00 000003
5659 007101 254 00 0 00 001423
5660 007102 037 14 0 00 000003
5661 007103 254 00 0 00 001423
5662 007104 037 17 0 00 000001
5663 007105 254 00 0 00 001423
5664 007106 000001 000001
5665 007107 002000 010000
5666 007110 76 64 45 63 64 00
5667 007111 60 41 63 63 00 43
5668 007112 57 65 56 64 00 35
5669 007113 00 77 00 00 00 00
5670 007114 76 60 43 35 00 00
5671 007115 77 00 00 00 00 00
5672 007116 76 63 67 51 64 43
5673 007117 50 45 63 00 35 00
5674 007120 77 00 00 00 00 00
5675 007121 76 45 62 62 57 62
5676 007122 00 51 56 00 77 00
5677 007123 00 15 00 77 00 00
5678 007124 76 77 00 00 00 00
5679 007125 037 00 0 00 000000
5680 007126 76 43 57 62 62 45
5681 007127 43 64 32 00 00 77
5682 007130 76 41 43 64 65 41
5683 007131 54 32 00 00 00 77
5684 007132 76 44 51 63 43 62
5685 007133 45 60 32 00 00 77
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2-1
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0219
5686 007134 000140 000141
5687 007135 000444 000445
5688 007136 264 00 0 00 007601
5689 007137 76 63 60 65 62 51
5690 007140 57 65 63 00 44 64
5691 007141 45 00 51 56 64 76
5692 007142 77 00 00 00 00 00
5693 007143 777777 777777
5694 007144 264 00 0 00 002143
5695 007145 300000 400000
5696 007146 400000 400000
5697 007147 000001 007613
5698 007150 45 62 62 57 62 00
5699 007151 50 41 54 64 00 41
5700 007152 64 00 77 00 00 00
5701 007153 46 41 64 41 54 00
5702 007154 60 62 57 47 62 41
5703 007155 55 00 45 62 62 57
5704 007156 62 00 41 64 00 77
5705 007157 104 104 124 000 000
5706 007160 66 45 62 63 51 57
5707 007161 56 00 77 00 00 00
5708 007162 14 00 63 66 35 77
5709 007163 14 00 55 43 66 35
5710 007164 77 00 00 00 00 00
5711 007165 14 00 55 43 57 35
5712 007166 77 00 00 00 00 00
5713 007167 14 00 50 57 35 77
5714 007170 14 00 26 20 50 72
5715 007171 77 00 00 00 00 00
5716 007172 14 00 25 20 50 72
5717 007173 77 00 00 00 00 00
5718 007174 14 00 43 60 65 03
5719 007175 35 77 00 00 00 00
5720 007176 76 12 12 12 12 12
5721 007177 76 60 54 51 63 64
5722 007200 00 65 46 54 57 67
5723 007201 76 77 00 00 00 00
5724 007202 264 00 0 00 030104
5725 007203 254 00 0 00 002641
5726 007204 254 00 0 00 002655
5727 007205 76 12 12 12 12 12
5728 007206 76 60 54 51 63 64
5729 007207 00 57 66 45 62 46
5730 007210 54 57 67 00 60 35
5731 007211 77 00 00 00 00 00
5732 007212 76 55 45 55 57 62
5733 007213 71 00 60 62 57 64
5734 007214 77 00 00 00 00 00
5735 007215 76 56 57 56 15 45
5736 007216 70 00 55 45 55 57
5737 007217 62 71 77 00 00 00
5738 007220 76 55 45 55 57 62
5739 007221 71 00 60 41 62 51
5740 007222 64 71 77 00 00 00
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2-2
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0220
5741 007223 76 65 56 53 56 57
5742 007224 67 56 00 51 56 64
5743 007225 45 62 62 65 60 64
5744 007226 77 00 00 00 00 00
5745 007227 76 45 62 62 57 62
5746 007230 00 41 44 44 62 45
5747 007231 63 63 00 62 45 47
5748 007232 00 35 00 77 00 00
5749 007233 44 55 41 00 35 00
5750 007234 77 00 00 00 00 00
5751 007235 76 41 60 62 00 00
5752 007236 00 00 00 00 00 00
5753 007237 00 00 00 00 60 51
5754 007240 00 00 00 00 00 00
5755 007241 00 00 00 00 00 00
5756 007242 00 46 54 41 47 63
5757 007243 00 00 60 43 00 00
5758 007244 00 00 00 00 60 62
5759 007245 57 47 76 77 00 00
5760 007246 76 60 57 67 45 62
5761 007247 00 46 41 51 54 00
5762 007250 62 45 63 64 41 62
5763 007251 64 76 77 00 00 00
5764 007252 76 60 57 67 45 62
5765 007253 00 51 56 64 45 62
5766 007254 62 65 60 64 00 46
5767 007255 41 51 54 45 44 76
5768 007256 77 00 00 00 00 00
5769 007257 254 00 0 00 030005
5770 007260 76 60 41 47 45 00
5771 007261 46 41 51 54 00 64
5772 007262 62 41 60 00 45 62
5773 007263 62 57 62 76 60 41
5774 007264 47 45 00 46 41 51
5775 007265 54 00 67 57 62 44
5776 007266 15 00 77 00 00 00
5777 007267 76 64 62 41 60 00
5778 007270 23 00 45 62 62 57
5779 007271 62 77 00 00 00 00
5780 007272 265 00 0 00 003011
5781 007273 400000 420000
5782 007274 265 00 0 00 003005
5783 007275 265 00 0 00 003027
5784 007276 76 63 15 42 65 63
5785 007277 77 00 00 00 00 00
5786 007300 76 51 17 57 00 60
5787 007301 41 47 45 00 46 41
5788 007302 51 54 77 00 00 00
5789 007303 76 43 41 43 50 45
5790 007304 00 41 44 62 00 60
5791 007305 41 62 51 64 71 77
5792 007306 76 63 15 42 65 63
5793 007307 00 41 44 62 00 60
5794 007310 41 62 51 64 71 77
5795 007311 76 55 47 56 00 35
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2-3
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0221
5796 007312 00 77 00 00 00 00
5797 007313 42 41 71 00 77 00
5798 007314 00 62 57 67 00 77
5799 007315 44 06 0 00 003303
5800 007316 00 55 66 57 54 64
5801 007317 63 77 00 00 00 00
5802 007320 14 00 63 60 45 45
5803 007321 44 77 00 00 00 00
5804 007322 45 56 44 00 60 41
5805 007323 63 63 00 77 00 00
5806 007324 17 03 0 00 000000
5807 007325 43 63 67 45 45 60
5808 007326 00 64 51 55 45 57
5809 007327 65 64 76 77 00 00
5810 007330 7 003 1 0 00 000000
5811 007331 7 000 6 0 00 200000
5812 007332 366 04 0 00 000001
5813 007333 254 00 0 00 003701
5814 007334 7 003 2 0 00 000000
5815 007335 701540 000000
5816 007336 030146 030147
5817 007337 540336 540337
5818 007340 400000 777777
5819 007341 540376 540377
5820 007342 000000 420000
5821 007343 76 64 57 57 00 55
5822 007344 41 56 71 00 55 41
5823 007345 60 00 63 45 47 55
5824 007346 45 56 64 63 76 77
5825 007347 000200 000201
5826 007350 44 22 0 00 000200
5827 007351 400000 400001
5828 007352 76 55 45 55 57 62
5829 007353 71 00 55 41 60 00
5830 007354 35 76 46 62 57 55
5831 007355 00 00 00 00 00 64
5832 007356 57 00 00 00 00 00
5833 007357 00 00 00 00 63 51
5834 007360 72 45 17 53 77 00
5835 007361 75 63 64 41 62 64
5836 007362 00 41 44 62 17 53
5837 007363 77 00 00 00 00 00
5838 007364 64 57 64 41 54 00
5839 007365 55 45 55 57 62 71
5840 007366 17 53 00 35 00 77
5841 007367 76 43 50 41 56 47
5842 007370 45 00 44 45 66 51
5843 007371 43 45 00 43 57 44
5844 007372 45 63 14 77 00 00
5845 007373 57 54 44 00 44 45
5846 007374 66 51 43 45 00 43
5847 007375 57 44 45 00 15 00
5848 007376 77 00 00 00 00 00
5849 007377 56 45 67 00 44 45
5850 007400 66 51 43 45 00 43
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2-4
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0222
5851 007401 57 44 45 00 15 00
5852 007402 77 00 00 00 00 00
5853 007403 43 50 41 56 47 51
5854 007404 56 47 00 46 62 57
5855 007405 55 00 77 00 00 00
5856 007406 00 64 57 00 77 00
5857 007407 66 41 54 51 44 00
5858 007410 43 50 41 56 47 45
5859 007411 14 77 00 00 00 00
5860 007412 32 12 0 02 000000
5861 007413 777717 006766
5862 007414 00 11 0 02 000000
5863 007415 76 44 45 66 00 43
5864 007416 57 44 45 00 45 62
5865 007417 62 14 00 21 24 15
5866 007420 27 27 24 00 57 56
5867 007421 54 71 76 77 00 00
5868 007422 001600 001600
5869 007423 43 54 53 00 63 57
5870 007424 65 62 43 45 00 35
5871 007425 00 77 00 00 00 00
5872 007426 56 57 62 55 41 54
5873 007427 46 41 63 64 00 00
5874 007430 45 70 64 45 62 56
5875 007431 65 56 65 63 45 44
5876 007432 14 00 43 54 53 00
5877 007433 62 41 64 45 00 35
5878 007434 00 77 00 00 00 00
5879 007435 46 65 54 54 00 00
5880 007436 21 17 22 00 00 00
5881 007437 21 17 24 00 00 00
5882 007440 21 17 30 00 00 00
5883 007441 14 00 41 43 00 42
5884 007442 54 53 00 77 00 00
5885 007443 14 00 43 41 43 50
5886 007444 45 32 77 00 00 00
5887 007445 00 20 77 00 00 00
5888 007446 00 21 77 00 00 00
5889 007447 00 22 77 00 00 00
5890 007450 00 23 77 00 00 00
5891 007451 76 64 64 71 00 63
5892 007452 67 51 64 43 50 00
5893 007453 43 57 56 64 62 57
5894 007454 54 00 37 00 15 00
5895 007455 20 14 63 14 71 00
5896 007456 57 62 00 56 00 34
5897 007457 43 62 36 00 15 00
5898 007460 77 00 00 00 00 00
5899 007461 76 54 50 00 63 67
5900 007462 51 64 43 50 45 63
5901 007463 00 15 00 77 00 00
5902 007464 62 50 00 63 67 51
5903 007465 64 43 50 45 63 00
5904 007466 15 00 77 00 00 00
5905 007467 00 71 00 57 62 00
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2-5
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0223
5906 007470 56 00 34 43 62 36
5907 007471 00 15 00 77 00 00
5908 007472 421042 104210
5909 007473 44 06 0 00 000001
5910 007474 015 012 052 052 052
5911 007475 052 052 052 015 012
5912 007476 105 130 103 105 105
5913 007477 104 105 104 040 101
5914 007500 114 114 117 127 105
5915 007501 104 040 120 122 111
5916 007502 116 124 117 125 124
5917 007503 123 015 012 000 000
5918 007504 037 12 0 00 000001
5919 007505 254 00 0 00 006031
5920 007506 037 01 0 00 030242
5921 007507 254 00 0 00 006035
5922 007510 037 12 0 00 000001
5923 007511 254 00 0 00 006062
5924 007512 037 12 0 00 000001
5925 007513 254 00 0 00 006076
5926 007514 037 05 0 00 000001
5927 007515 254 00 0 00 006121
5928 007516 037 10 0 00 000001
5929 007517 254 00 0 00 006125
5930 007520 037 06 0 00 000001
5931 007521 254 00 0 00 006133
5932 007522 037 12 0 00 000001
5933 007523 254 00 0 00 006136
5934 007524 037 06 0 00 000001
5935 007525 254 00 0 00 006141
5936 007526 000001 056022
5937 007527 000000 000377
5938 007530 015 012 052 052 052
5939 007531 052 015 012 125 123
5940 007532 111 116 107 040 047
5941 007533 104 123 113 047 040
5942 007534 120 122 111 116 124
5943 007535 040 106 111 114 105
5944 007536 015 012 052 052 052
5945 007537 052 015 012 000 000
5946 007540 015 012 045 120 122
5947 007541 111 116 124 040 103
5948 007542 114 117 123 105 040
5949 007543 105 122 122 117 122
5950 007544 015 012 000 000 000
5951 007545 015 012 045 120 122
5952 007546 111 116 124 040 117
5953 007547 125 124 120 125 124
5954 007550 040 105 122 122 117
5955 007551 122 015 012 000 000
5956 007552 015 012 104 123 113
5957 007553 040 111 116 111 124
5958 007554 040 105 122 122 117
5959 007555 122 000 000 000 000
5960 007556 015 012 116 117 040
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 2-6
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0224
5961 007557 104 111 122 040 122
5962 007560 117 117 115 000 000
SUBRTN (DDQDA) DECSYSTEM DIAGNOSTICS SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:21 23-Mar-78 Page 3
SUBRTS MAC 23-Mar-78 15:08 *STOR* RESERVED STORAGE SEQ 0225
5963 007573 000000 000000 ENDSLD: 0
5964
5965 ;END OF PROGRAM VARIABLES
5966
5967 007574 000 00 0 00 000000 $SVERA: Z ;ERROR ADDRESS REGISTER
5968
5969 007575 100000 000000 $SBRD: 100000,,0 ;S-BUS DIAG READ
5970 007576 000 00 0 00 000000 Z
5971
5972 007577 110000 000000 $SBRD1: 110000,,0 ;S-BUS DIAG ERROR RESET
5973 007600 000 00 0 00 000000 Z
5974
5975 007601 000 00 0 00 000000 $DTRPT: Z
5976 007602 254 00 0 00 002027 JRST $$DTEI ;DTE20 INTERRUPT JSR
5977
5978 007603 000000 000000 $MTRI: 0 ;METER XCT INSTRUCTION
5979 007604 000000 000000 $MTRWC: 0 ;METER WAIT COUNT
5980 007605 000000 000000 MTRCNT: 0 ;METER COUNT
5981 007606 000000 000000 $MTRAC: 0 ;METER SAVED AC
5982
5983 007607 000 00 0 00 000000 %ERIN1: Z ;COR/ACT/DESC PRINT JSR
5984 007610 000 00 0 00 000000 %ERIN2: Z
5985 007611 254 00 1 00 007607 JRST @%ERIN1 ;ERROR HANDLER SPECIAL STORAGE WORDS
5986
5987 007612 POWER: BLOCK 20 ;POWER FAIL AC SAVE
5988
5989 IFDEF DEBUG,<
5990 007632 PATCH: BLOCK DEBUG ;DEBUGGING AREA
5991 >
5992
5993 ;PROGRAM VARIABLE WORDS
5994
5995 007632 VAR
5996
5997 IFDEF PGMEND,<
5998 007754 000000 000000 END: 0
5999 001000 END START
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 030600
CPU TIME USED 00:19.614
26P CORE USED
AABCLR 548# 2739
AADRBK 564# SEQ 0226
AAPRC1 541# 2745
ABORT 119# 3023
AC0 68# 1594 1595 1596 1598 1600 1601 1603 1605 1606 1607 1609 1611 1613
1616 1618 1620 1621 1622 1631 1634 1635 1647 1648 1652 1658 1661 1664
1665 1691 1692 1789 1790 1791 1792 1794 1796 1798 1804 1805 1806 1813
1817 1856 2103 2104 2105 2106 2107 2108 2109 2110 2111 2146 2155 2169
2172 2173 2175 2177 2179 2182 2186 2187 2190 2204 2210 2211 2213 2215
2398 2410 2414 2416 2427 2438 2442 2443 2646 2649 2650 2652 2780 2787
2788 2799 2804 2807 3043 3063 3426 3436 4056 4057 4083 4089 4172 4174
4180 4286 4411 4413 4414 4416 4518 4520 4522 4733 4736 4738 4757 4783
5123 5237 5298 5333 5334 5336
AFOCLR 553# 2739
AFODIS 551# 2739
AFOENB 552# 567#
AFOV 568#
ALTMGO 1144# 2035 5187
AMCLRB 685#
AMPCLR 549# 2739
AMPV 565# 2715
ANXCLR 550# 2739
ANXM 499# 566# 2717 3483
AOVCLR 556# 2739
AOVDIS 554# 2739
AOVENB 555# 570#
AOVFLO 571#
APAREN 579# 2731
APARER 578# 2711
APDCLR 547# 2739
APDLOV 562# 2713
APR 1472 1696 1855 2084 2281 2322 2335 2481 2647 2680 2681 2683 2684 2713
2715 2717 2724 2742 2745 2752 2764 2768 2773 2781 2789 2805 2812 2815
2843 2846 2850 2857 2885 2936 2944 2954 3111 3296 3299 3301 3479 3499
3504 3507 3523 3525 3528 3545 4083 5377 5381 5382 5384 5391 5393
APWRFL 577# 2699
AROV 402#
AROVTP 721# 730# 2865
AROVU 466#
AST 1259#
ATRPOS 569#
ATSIN 1260#
AUSRIO 563#
BEGEND 1140# 1439 1446
BEGIN 39 40 41 42 43 44 45 46 47 48 49 1071# 1444 1535
2694 2709 2766 2898 3075 5519
BEGIN1 1087# 1141
BELL 1263#
BIS 406#
CCA 483# 3290 3321
CHAIN 139# 2287 4107
CHNOFF 513# 2725 2743 2813 2840
CHNON 512# 2733 2746 2822 2858
CLK 498# 2681
CLKCLR 491# 2680 2683 2739 2812 2843 2846 SEQ 0227
CLKDFL 3089 4125 4134 4152 4174# 4174
CLKDIS 489# 2739 2812 2843 2846
CLKENB 490# 497#
CLKU 464#
CLOCKF 1126# 2124 2250
CNTLC 1143# 4462 5183
CNTRP 744# 2875
COMMA 1252#
CONSW 1127# 1485 1487# 1487 1898 1905 2001 2016 2036 2853 2940 3083 3372 3843
4086 4089 4090 4092 4106 4114 4149 4196 4233 4251 4443 4453 5123 5254
5256 5425
CPIERR 1427# 2299 2304 2330 2948
CPOPJ 1147#
CPOPJ1 1145# 4358
CR01 3139 3206#
CR012 3141 3159#
CR0123 3142 3147#
CR013 3140 3194#
CR02 3137 3217#
CR023 3138 3182#
CR03 3136 3229#
CR12 3133 3241#
CR123 3134 3170#
CR13 3132 3253#
CR23 3130 3264#
CRLF 269 270 1247#
CRLF2 273 274 1249#
CRY0 403#
CRY1 404#
CSHFLG 1306# 1557 1562 2285 3081 3379 4147
CSHMEM 1307# 3405 3605 3676 3741
CTABLE 3098 3127#
CTRP 745# 2876
CYCL60 1300# 2220 2222 2242 2244 2267 2283 2324 2337 2501 2503 5379
DCK 410#
DDT 70# 1396 2442
DDTLNK 153# 1085 1402# 2446
DDTSRT 1085# 1490
DEBUG 36# 5989 5990
DECVER 3# 10 15 1106 1418
DF22F 1211# 4943# 4943
DIAGMN 1074#
DIAGNO 69# 1395
DIAMON 71# 1397 1435
DIASWS 72# 4246
DING 125# 2065
DING10 74#
DNG10C 75# 2119
DOLLAR 1266#
DONG11 73# 2150
DSKUPD 1111
DTE 83# 2119 2150 2194
DTE0 84# SEQ 0228
DTE1 85#
DTE2 86#
DTE3 87#
DTEBER 1425#
DTECER 1426#
END 5998#
ENDFIX 1386#
ENDSLD 38 5963#
EOPERR 1428# 3065
ERMORE 1160# 2023
ERRPC 1131# 1517 1806 1866 1881 1904 2056 3021
ERRTLS 1132# 1443 1862 2074
ERSTOP 128# 2037 2407 2434
EXCASB 34# 1109
EXCMEM 684#
EXCPFW 737# 2793
EXIOT 408#
FOV 405#
FOVU 465#
FRDLNK 151# 2380 2385
FSELNK 150# 2352 2355
FXU 409#
HYPEN 1257#
IADBRK 674#
IADEXC 675#
IADSTP 673#
IADUSR 676#
IAPRC1 603#
IAPRE1 604# 2857
IASRTC 613# 2812 2843
IASRTE 627#
IASRTS 614#
ICNSLL 638#
ICNSLR 637#
IDATAF 671#
IEVNPR 655#
IFMMAN 635#
IINSTF 670#
IIOPFC 615# 2812 2843
IIOPFL 628#
IMAINT 641#
IMGINM 640#
IMGNLO 643#
IMGNOF 658# 1855 2815 2850
IMGNON 659#
IMIPGD 636#
IMLAPD 634#
INHCSH 136# 3084 4150
INHPAG 133# 2855 2942 3374 3845
INXCLR 616# 2812 2843 2846
INXM 500# 629# 2773 3485
INXSTP 678#
IOCLR 488# 1472 2739 2812 2843 2846 SEQ 0229
IP50HZ 639# 2323
IPAREN 624# 2824
IPARER 623# 2768
IPRSTP 677#
IPWRFL 626# 2752
IPWRLO 642#
IRQCLR 665# 2813 2840
ISPDOF 656# 1855 2815 2850
ISPDON 657# 3004
ITERAT 57# 1104
ITMDIS 611# 2812 2843
ITMENB 612# 2829
ITMOEN 625# 2828
ITMOUT 622#
ITMSET 610# 2829
ITRCH1 1164# 1695 2533 2543 2563 2633 2706 2759 2780 2788 2804 2892
ITRCNT 1104# 1434 1530 3019 3027 3039
ITRUSR 2553 2561#
IWRITE 672#
JOB41 424# 1575 1691 2649
JOBAPR 432# 2554
JOBCNI 433# 2564
JOBDDT 426#
JOBFF 430# 1480 3394 3415 3433 3935
JOBOPC 435# 2034 4461 5182 5186
JOBREL 425# 3352
JOBREN 431# 4706
JOBSA 429# 1479
JOBSYM 427#
JOBTPC 434# 2562
JOBUSY 428#
JOBUUO 423# 1605 1616 1650 1659 1708 1717 1754 1761 1789 1815
JOBVER 436# 2456 2459
KA10 31# 536
KAHZ50 141# 2336
KAIFLG 1121# 1851 2080 2269 2306 2311 2316 2319 2471 2548 2655 2666 3367 3484
3519 3521 3596 3850
KI10 30# 583
KL10 28# 751
KL10P0 29# 751 1013
KLEXCK 3276# 3319 3327
KLFLG 1122# 1503 1513 2057 2093 2138 2268 2274 2278 2469 2546 2614 2653 2664
2678 2786 2794 2797 3037 3051 3277 3287 3365 3410 3412 3486 3516 3542
3594 3705 3707 3848 4080 4082 4118 4289 4306 4346 4385 4701 5086 5199
5218 5292
KLNSW 2413 2437 4175# 4175 4178
KLOLD 349
KLPAG 2943 3411 3490# 3595 3706
KNTRP 740# 2871
KTRP 741# 2872
LAPRAL 806# 2936 3525
LAPRP1 773# 839# 2944
LAPRP2 772# 838# SEQ 0230
LAPRP3 771# 837#
LAPRP4 770# 836#
LAPRP5 769# 835#
LAPRP6 768# 834#
LAPRP7 767# 833#
LAROVT 1018# 1031#
LCADEN 815#
LCADRP 763# 829# 2904 2914 2960
LCASDE 818#
LCASLD 990# 3087 3117 3279
LCASLO 989# 3087 3117 3279
LCASWB 824# 3301
LCASWD 766# 832#
LCCAER 792#
LCCASD 804#
LCHNOF 903# 2935
LCHNON 902# 2945
LCIOPF 784#
LCNTRP 1043#
LCNTXT 1037#
LCNXER 780# 3487
LCPAER 788#
LCPWRF 800#
LCSAER 796#
LCSBER 776#
LCSLOA 1002#
LCSLOO 1001#
LCTRP 1044#
LCWSX 955# 974#
LDATAF 847# 865#
LDCAER 791#
LDCASD 803# 3298
LDEXCB 699# 2327 2818 2856 3413 3597 3708
LDIOPF 783#
LDLNK 152# 1074 1076
LDNXER 779#
LDPAER 787#
LDPWRF 799#
LDSAER 795#
LDSBER 775#
LDUSRB 691# 2327 2817 2856
LEBXMH 1052#
LEBXML 1053#
LECAER 790#
LECASD 802#
LEIOPF 782#
LENXER 778#
LEPAER 786#
LEPWRF 798#
LESAER 794#
LESBER 774#
LEUPFW 1048# 2795 2950
LEVNCD 898# 932# SEQ 0231
LEVNPA 896# 930#
LEVNPD 897# 931#
LEXCMP 850# 868#
LFLGCL 757#
LFLGDS 756#
LFLGEN 755#
LFLGST 758#
LFP 1261#
LINSTF 846# 864#
LINT 840#
LIOCLR 754#
LIOPFE 761# 813# 827# 2904 2912 2960
LIP 588#
LKNTRP 1039#
LKTRP 1040#
LLACBL 952# 971#
LLDUSB 954# 973# 2300
LLPRCN 953# 972# 2300
LMBXMH 1054#
LMBXML 1055#
LMUUO 1035# 1651 1699
LMUUOP 1036# 1649 1694
LNXMEN 812#
LNXMER 760# 826# 2904 2906 2954 2960 3544
LOOPER 127# 1809 2053
LPAREN 814#
LPARER 762# 828# 2904 2908 2960
LPDOVT 1019# 1032#
LPFWPC 1049# 2787 2956 2957
LPGFTR 1050# 2292 2933
LPICH1 906# 941#
LPICH2 907# 942#
LPICH3 908# 943#
LPICH4 909# 944#
LPICH5 910# 945#
LPICH6 911# 946#
LPICH7 912# 947#
LPICHA 913# 2945
LPICLR 900# 2935
LPIIP1 933#
LPIIP2 934#
LPIIP3 935#
LPIIP4 936#
LPIIP5 937#
LPIIP6 938#
LPIIP7 939#
LPIOFF 904# 2935
LPION 905# 940# 2945
LPNTRP 1045#
LPRCH1 919#
LPRCH2 920#
LPRCH3 921#
LPRCH4 922# SEQ 0232
LPRCH5 923#
LPRCH6 924#
LPRCH7 925#
LPRFMH 1024#
LPRFML 1025#
LPT 5249 5251
LPTRP 1046#
LPWRFE 817#
LPWRFL 765# 831# 2885
LREQSE 901#
LRQCLR 899# 2935
LSADEN 816#
LSADRP 764# 830# 2904 2916 2960
LSBSEN 811#
LSBUSE 759# 825# 2904 2910 2960
LSCAER 793#
LSCASD 805#
LSECMO 1003#
LSIOPF 785#
LSMODE 991#
LSNTRP 1041#
LSNXER 781#
LSPAER 789#
LSPWRF 801#
LSSAER 797#
LSSBER 777#
LSTRP 1042#
LTBASH 1022#
LTBASL 1023#
LTRP3T 1020# 1033#
LTRPAE 1004#
LTRPEN 992# 3492
LUOERR 1429# 2651
LUSCMP 849# 867#
LUUO 416# 1848 4785
LUUO1 1191 1192
LUUO10 1191 1196
LUUO11 1191 1196
LUUO12 1191 1197
LUUO13 1191 1197
LUUO14 1191 1198
LUUO15 1191 1198
LUUO16 1191 1199
LUUO17 1191 1199
LUUO2 1191 1193
LUUO20 1191 1200
LUUO21 1191 1200
LUUO22 1191 1201
LUUO23 1191 1201
LUUO24 1191 1202
LUUO25 1191 1202
LUUO26 1191 1203
LUUO27 1191 1203 SEQ 0233
LUUO3 1191 1193
LUUO30 1191 1204
LUUO31 1191 1204
LUUO32 1191 1205
LUUO33 1191 1205
LUUO4 1191 1194
LUUO5 1191 1194
LUUO6 1191 1195
LUUO7 1191 1195
LUUOI 417#
LWRITE 848# 866#
MAPNEW 1212# 1437 3355 3386 3416 3639 3702 3726 3799
MARGIN 1134# 1854 2083 2084 2971 2976 2980 2986 2995 3003
MCNVER 4# 10 15 1106 1418
MEMLOW 1214# 3649 3654 3663 3683 3771 3817 3938
MEMMAP 32# 1112
MEMSIZ 1215# 3351 3353 3354 3361 3362 3363 3429 3443 3447 3451 3452 3455 3717
3721 3766 3768 3818 3821 3826 3887 3908 3911 3913 3916 3918 3926
MEMTOT 1213# 3934 3944
MINUS 1256#
MODCHK 1403 1415#
MODDVC 135# 3954
MODDVL 37# 334 1107
MODDVU 38# 335 1108
MODLNK 154# 1071 1403#
MONCTL 1124# 1531 1886 2072 2289 2325 2338 2403 2431 2452 2842 2845 2849 3041
3890 3894 4084 4085 4109 4191 4293 4707 5375 5435
MONFLG 1123# 1467 1532 2851 2938 3369
MONTEN 1125# 1533 3060 3069 3073
MONTYP 1338#
MPVU 461# 2555 2571
MTR 77# 2206 2224 2227 2241 2246
MTRCNT 2219 2230 2247 2256 5980#
MUOERR 1424# 1693
MUUO 734#
MUUOER 1653 1689# 2870
MUUOPC 735#
NOEXEC 1421# 1539
NOPNT 123# 1882 4731 5139
NXMU 462# 2555 2573
OPRSEL 137#
OPTIME 1226# 4278 4332
P 180 181 182 183 394# 1146 1493 1495 1496 1590 1592 1595 1600 1613
1631 1674 1675 1676 1679 1804 1814 1864 2359 2427 2582 2583 2585 2636
3035 3281 3709 3859 4337 4448 4497 4573 4662
PAG 481# 2293 2295 2296 2300 2301 2327 2328 2474 2751 2814 2819 2847 2856
2883 2884 3058 3087 3116 3118 3279 3413 3491 3493 3597 3708 4143
PALERS 129# 1873
PARCLR 507# 2725 2743 2813 2840
PARDIS 508# 2725 2743 2813 2840
PAREA1 51# 1102
PAREA2 52# 1103
PAREA3 53# 1100 SEQ 0234
PAREA4 54# 1101
PAREA5 55# 1113
PAREA6 56# 1114
PAREA7 1113#
PAREA8 1114#
PARENB 509# 2732 2746 2825 2858
PARU 463# 2555 2567
PASCNT 1128# 1442 1889 1892 3018 3031
PATCH 5990#
PDISF 1223# 4687# 4687 4758# 4758 4761
PDLOVU 460# 2555 2569
PDOVTP 722# 731# 2867
PERIOD 1253#
PFSTRT 1080# 2761 2894
PGFTRP 720# 729# 2837
PGINGO 1502#
PGMEND 33# 5997
PGMNAM 1105 1448#
PI 1471 1697 2060 2342 2607 2648 2685 2699 2711 2725 2743 2746 2763 2782
2790 2806 2813 2840 2858 2935 2945 3039 3477 3478 3531
PICHN1 527#
PICHN2 528#
PICHN3 529#
PICHN4 530#
PICHN5 531#
PICHN6 532#
PICHN7 533#
PICHNA 534# 2746 2858
PICLR 510# 1471 2725 2743 2813 2840
PIOFF 514# 2607 2725 2743 2813 2840 3478
PION 515# 521# 2746 2858 3530 3531
PLERR 1422# 1672
PLERR1 1423# 1677
PLIST 1292# 1292 1493 1596 1675 1676 2583
PLISTE 1292 1294# 1598 1676
PLISTS 1293#
PLUS 1258#
PNTENB 1222# 4694 4728# 4728 5132
PNTEXT 1101# 5469
PNTFLG 1221# 4691# 4691 4718 4726 4751
PNTINH 1224# 4689# 4689 5089
PNTLPT 124# 4104 4444 4454 5194 5255 5426
PNTNAM 1100# 5471
PNTRP 746# 2877
PNTSPC 1225# 4692# 4692 4993 5007
POWER 2349 2350 2361 2382 2383 2672 2676 2686 2688 2702 2703 2705 2755 2756
2758 2888 2889 2891 2964 5987#
PSHERR 1491 2520#
PTRP 747# 2878
PVPAGI 1319# 2854 2941 3373 3844
PWFCLR 506# 2725 2763 2813 2840
QUEST 1264# 5437
RADIX 1267# 5058 SEQ 0235
RADLSC 1269# 5054
RADLSP 1268# 5073
RANDBS 1102#
REENTR 1082# 4705
REINIT 1398 1413#
RELIAB 131#
REPT 395# 1801 1870 1879
REPT1 396# 1802 1871 1880
REPTU 1180# 1826# 1826
REQSET 511#
RESRT1 1157# 2545
RESRT2 1158#
RESRTX 2544 2662#
RETURN 1089# 1436 1536 1547 3061 3070 3074
RSTART 120#
RTP 1262#
RUNFLG 1129#
SADR1 39# 1078
SADR10 48# 1094
SADR11 49# 1095
SADR2 40# 1080
SADR3 41# 1082
SADR4 42#
SADR5 43# 1143
SADR6 44# 1144
SADR7 45# 1091
SADR8 46# 1092
SADR9 47# 1093
SBINIT 193 1088#
SCOPE 1181# 1516 1810 1811 1850 2054 3020
SENSE1 644#
SENSE2 645#
SENSE3 646#
SENSE4 647#
SENSE5 648#
SENSE6 649#
SFSTRT 1078#
SLASH 1265#
SM10 1369#
SMLUSR 692# 706#
SNTRP 742# 2873
SPACE 1254#
SRTDDT 1084#
START 37 1072 1412# 5999
START1 1091#
START2 1092#
START3 1093#
START4 1094#
START5 1095#
STARTA 1087 1446#
STRP 743# 2874
SUBINI 1404 1414#
SUBLNK 155# 1088 1404# SEQ 0236
SUBRTN 1417#
SUBVER 1418# 2462 2465
SWPTAB 1375#
SWTEXR 1103#
SYSEXR 1076#
TAB 1255#
TABLE0 1635 1638#
TESTPC 1130#
TICKS 1133#
TIM 78# 2207 2221 2223 2243 2245
TN0 589#
TN1 590#
TOTALS 121#
TRP3TP 723# 732# 2869
TRPENB 700# 708# 2856 3413 3597 3708
TTNBRF 1313# 4532 4552
TTY 4391 4394 5094 5096 5152 5154 5312 5313 5341 5342 5357 5358 5386 5388
5396
TTYFIL 1229# 4695 5315
TTYSPD 1230# 5344 5362 5373 5409# 5409
TXTINH 132# 1906 2002 2017
UOLIP 596#
UOUSR 597#
USER 1120# 1463 1466 1468 1469 1481 1554 1852 2058 2081 2094 2139 2276 2417
2467 2528 2613 3025 3050 3067 3079 3276 3286 3345 3585 3637 3866 3874
3892 4078 4117 4189 4218 4287 4304 4345 4382 4441 4504 4700 4720 5084
5142
USERF 407# 1465 1528
USRASB 35# 1110
USRCMP 693# 707#
USRCRF 1239# 5148# 5148 5168
USRLFF 1238# 5146# 5146 5173
USRPFW 738#
UUODIS 1192# 1625
UUOEXT 1148#
UUORTN 1149# 1619
UUOSKP 1146#
XOFFLA 4690# 4690 5118 5129 5160
XONCHK 5130 5152# 5159
$$DTE0 2104 2150#
$$DTE1 2105 2119#
$$DTE2 2106 2194#
$$DTEI 2118# 5976
$$DTER 2121 2129#
$$MUUO 1344# 1689 1690
$$OUTE 1350# 5516 5517
$$PAC0 1462 1518# 1518
$$TAX1 1362# 4362 4363
$$TAX2 1363# 4365 4366
$$TOGG 1356# 4072 4111 4187
$$UUO 1333# 1588 1589
$ACC0 1171# 2561 2575 2597 2605 2639 2646# 2646 2652 2704 2757 2890
$ACMP0 3839# 3839 3860 SEQ 0237
$ACMP1 3471# 3471 3532
$ACMP2 3472# 3472 3533
$ACMP3 3473# 3473 3534
$ACMP4 3588# 3588 3598
$ACMP5 3629# 3629 3697
$ACMP6 3630# 3630 3698
$ACMP7 3631# 3631 3699
$ACMP8 3632# 3632 3700
$ACMP9 3633# 3633 3701
$ASCP1 5028# 5039
$ASCP2 5031# 5035
$ASCPN 4772 4791 5027#
$BEND1 1141#
$BEND2 1142# 2076 2411 2435 2444
$CARCT 4397 4403 4440 5124# 5124 5133 5136 5208 5215 5266 5273 5429
$CFLUS 1746 2896 3319# 4046
$CHRIN 1232# 4437# 4437 4447 4456
$CHRPN 4799 5016#
$CINVA 1745 3114 3286#
$CLKDT 2123#
$CLKOF 2172 2182#
$CLKON 2174 2179#
$CLKRD 2170 2190#
$CLKWT 2176 2185#
$CLKXX 2180 2188 2193#
$CLOCK 1750 2169#
$CNVD 4531# 4531 4602 4611
$CNVX 4543 4600#
$CNVX1 4564 4609#
$CNVX2 4612 4621#
$CPAII 2279 2319#
$CPDP6 2273 2306#
$CPIII 2322#
$CPINI 2276# 2317
$CPKA1 2320 2335#
$CPKAI 2308 2311#
$CPKL 2270#
$CPLII 2280#
$CPUTP 1502 2267#
$CPX1 2331 2341#
$CRLF 1234# 4696# 4696 5202
$CSH 3087#
$CSH1 3107# 3112 3122
$CSH2 3116#
$CSH3 3100 3102 3104 3106 3121#
$CSHER 3124# 3308
$CSHX 3303 3307#
$CSHZ 3292# 3322 3330
$CWRTB 1746 3057 3327# 3565
$DCCMP 5058#
$DCSPS 5072#
$DDT 93#
$DDTEN 1489 2441# 4452 5100 SEQ 0238
$DECP1 5064# 5070 5072
$DECPN 4793 5047#
$DECSP 4795 5045#
$DEVCH 474# 5462 5473 5477 5478 5481 5493 5504 5505 5509
$DRPDV 1729 5502#
$DSKUP 1111#
$DTCHR 105# 4369 4375 4415
$DTCI 99# 2125 2126 2171 2177 2185
$DTCLK 98# 2101 2120 2123
$DTCMD 102# 2146
$DTEIN 1506 2093#
$DTER1 2096# 2096 2143
$DTEX1 2142#
$DTEX2 2145#
$DTEX3 2154#
$DTEXX 2138# 2183 2191 2195 2415 2439 3044 3064 4170 4173 4310 4412 4739 5335
$DTF11 101# 2147 2155
$DTFLG 97# 2098 2101 2142 2145 2151 2154
$DTMTD 106#
$DTMTI 107#
$DTOPR 104# 2103
$DTRPT 2107 2127 2133 5975#
$DTSEQ 103# 2102 2148
$DTSWR 108# 2286 4171 4180
$DTT11 100# 2186
$DVCH1 475#
$DVOFF 1228# 4686# 4686 5444 5480 5502 5510
$DVTTY 5456# 5456 5484
$ECK 1530#
$EG177 1713 1761#
$EG4 1715 1754#
$EGX 1757 1759 1764 1767 1770 1772#
$EMODE 1109# 1537
$END 1750 3018#
$END1 3028#
$END2 3024 3030#
$END3 3028 3035#
$END4 3026 3037#
$EOP 1752 3050#
$EOP1 3052 3067#
$EOP2 3068 3073#
$ERH0 2396 2398# 2398 2418 2420
$ERHL1 2406#
$ERHL3 2410#
$ERHL4 2404 2408 2413#
$ERHLT 1751 2043 2393#
$FATAL 1751 2424#
$FATL1 2432 2437#
$FFEED 5226 5283# 5286
$FFF 1236# 4698 5223
$FRD36 1748 2374#
$FRD8 1749 2372#
$FREAD 1748 2376# SEQ 0239
$FSEL1 2353 2366#
$FSEL2 2356 2360# 2367 2386 2387
$FSELE 1747 2347#
$FSELF 2348# 2348 2358 2378
$HEAR 4318 4335 4382# 4460
$HEAR1 4400 4460#
$HEAR2 4445 4447# 4455 4458
$HEAR3 4439 4451#
$HEAR4 4297 4323 4402 4406 4416 4424 4431#
$IBUF 1284#
$INEXT 1286#
$INNM 1285#
$INTD1 5476 5486#
$INTD2 5477# 5497
$INTDF 4685# 4685 5486 5492
$INTDV 5445 5469#
$IPGFL 2291 2948#
$ITR1A 2593 2596 2600 2613# 2921 2923 2925 2927
$ITR1B 1702 2590 2615 2624# 2800 2808 2961
$ITRC1 2542 2646#
$ITRHL 1152# 2606
$ITRHZ 2577 2605# 2719 2775 2905 2918
$ITRIN 1510 2528#
$ITRUS 2529 2553#
$ITRX1 1153# 2640
$KA10 2549 2741#
$KACLR 2742#
$KAENB 2745#
$KAINT 2724 2739# 2742
$KAIT1 2700 2711#
$KAITR 2656 2699#
$KAMPV 2716#
$KAMUU 1608 1610 1647#
$KANXM 2718#
$KAPAR 2712#
$KAPDL 2714#
$KAPWR 2702#
$KARST 2667 2724#
$KI10 2550 2835#
$KI10A 2836#
$KICLR 2840#
$KIENB 2849#
$KIIT1 2753 2768#
$KIITR 2657 2751#
$KIKLI 2838 2864# 2934
$KINXM 2769 2773#
$KIPWR 2755#
$KIRST 2668 2812#
$KISN 2474#
$KISNX 2474# 2474 2475
$KL10 2547 2932#
$KLCAD 2915 2924#
$KLCLR 2935# 2965 SEQ 0240
$KLCSH 1514 2966 3079#
$KLENB 2938#
$KLIOP 2913 2922#
$KLIT1 2886 2900# 2962
$KLITR 2654 2883#
$KLPGF 2932 2950#
$KLPWR 2888#
$KLRST 2665 2964#
$KLSAD 2917 2926#
$KLSBE 2911 2920#
$KLSN 2470 2481#
$KLSNX 2481# 2481 2482 2486 2491 2496
$KLSWI 4102 4169# 4179
$KLSWR 4081 4178#
$LDSPS 5061 5069#
$M2 3507#
$M4 3548#
$M5 3505 3560#
$M6 3546 3563#
$M7 3551 3568#
$MAC0 1648# 1648 1652
$MAPEX 1504 1554#
$MDEND 4029 5630#
$MDLST 4029 5531# 5630
$MDSR1 4037# 4041
$MDSR2 4032 4038#
$MDSRC 3980 3983 4027#
$MDVCN 3976# 3976 3982 4000 4059
$MDVCO 3971# 3971 3979 4002 4058
$MEEX1 3365#
$MEMEX 3346 3361#
$MEMKI 3366 3369#
$MEMMP 1512 1745 3345#
$MEPAG 3375 3377#
$MMAP 1112# 1511
$MNCON 3634# 3634 3685 3693
$MODCK 1415 1527#
$MODD0 3957#
$MODD1 3964# 3988 3990
$MODD2 3969 3974 4010#
$MODD3 3968# 4044
$MODD4 3973#
$MODD5 3978#
$MODD6 3981#
$MODD7 3986#
$MODD8 3989 3996# 4064
$MODD9 4013#
$MODDB 3957# 3957 4049 4060
$MODDC 3958# 3958 4048 4061
$MODDD 3959# 3959 4047 4062
$MODDP 1730 4056#
$MODDV 1730 3953#
$MODDX 3966 4046# 4065 SEQ 0241
$MODER 4014 4017 4019 4043#
$MODVL 1107# 3996 3999
$MODVU 1108# 3997
$MPAD2 3847 3851 3865#
$MPAD3 3842 3860# 3863 3867 3873 3880
$MPAD4 3854 3862#
$MPAD5 3855# 3864
$MPAD6 3852#
$MPAD7 3859# 3877 3882
$MPADL 3849 3874#
$MPADR 1732 3572 3839#
$MPCM1 3432# 3441 3448
$MPCM2 3435 3450#
$MPCM3 3443#
$MPCMB 3401 3418 3424#
$MPCMX 3445 3455#
$MPCN1 3483# 3566
$MPCNK 1733 3399 3417 3471# 3652
$MPCXX 3560 3563 3568 3571#
$MPEXM 3538# 3550 3561
$MPNEW 3394#
$MPNXM 3488 3499# 3510
$MPOL1 3368 3370 3376 3414#
$MPOLD 3387 3403#
$MPRKL 3517 3525#
$MPRPI 3524 3529#
$MPRST 3516# 3569
$MPSE1 3588#
$MPSE2 3589 3601#
$MPSE3 3594# 3613
$MPSET 1733 3397 3585# 3650
$MPVU 2572 2592# 2716
$MSAPR 3479# 3479 3518 3526
$MSEG 1731 3629# 3807
$MSEG2 3684 3691# 3743
$MSEG3 3655 3696# 3718 3720 3763 3767 3769 3776 3779 3783 3788
$MSEG4 3705#
$MSEGP 3643 3714# 3780
$MSEGV 3644 3649#
$MSGV1 3654#
$MSGV2 3660# 3686
$MSGV3 3678 3683#
$MSKA 3640 3760# 3785
$MSKAP 3727 3761 3778# 3787
$MSPI 3477# 3477 3529
$MSUSR 3638 3785#
$MTIR1 2250# 2263
$MTIR2 2249 2255#
$MTIR3 2258 2262#
$MTRAC 2255 2259 2262 5981#
$MTRI 1473 2208 2215 2233 2251 2252 5978#
$MTRIR 2217 2240# 2253 2260
$MTROF 2210 2227# SEQ 0242
$MTRON 2212 2217# 2235
$MTROP 1747 2204#
$MTRRD 2205 2230#
$MTRW 2214 2233#
$MTRWC 1474 2209 2234 2248 2257 5979#
$MZRO 1732 3797#
$MZRO1 3802# 3809 3814
$MZRO2 3800 3816#
$MZRO3 3821# 3828
$MZROB 3797# 3797 3831
$MZROC 3798# 3798 3830
$MZROX 3805 3819 3822 3830#
$NEGF 4530# 4530 4570 4597
$NEGX 4541 4595#
$NOUSR 1543#
$NOYES 1737 4472#
$NXMU 2574 2595# 2718 2774 2907
$OBUF 1275# 5458 5460 5475 5495
$OERR1 5496 5521#
$OERR2 5479 5525#
$ONETM 1135# 1441 1515 2288 3897 4709 5371
$OPTLK 1736 4200 4206 4331# 4481 4489 4538 4642
$OUTER 5513# 5523 5527
$OUTEX 1277# 5470
$OUTNM 1276# 5472 5478
$PACA1 4746 4762 4778# 4778
$PACA2 4747 4763 4779# 4779
$PACA3 4748 4764 4780# 4780
$PACA4 4749 4765 4781# 4781
$PACA5 4750 4766 4782# 4782
$PACB0 5082# 5082 5237
$PACC4 5422# 5422 5424 5433 5448
$PAPER 59# 387 536 583 751 859 1013
$PARER 1159# 2598
$PAREX 2568 2597# 2712 2771 2909
$PARKI 2771#
$PDLOV 2780# 2866
$PDOVP 1674 1681 2582# 2582 2587
$PDOVU 2570 2582# 2714 2783
$PDP6 2309 2316#
$PGFL 2786# 2836 2953 2955
$PGFL1 2793#
$PGFL2 2798 2959#
$PGMIN 1414 1462#
$PGMN1 1470 1479#
$PMAP 1734 3356 3453 3459 3886#
$PMAP1 3893 3896 3899#
$PMAP3 3891 3897#
$PMAP4 3909 3934#
$PMAP5 3921 3931#
$PMAP6 3939 3941 3949#
$PMAP7 3922#
$PMAPL 3899 3908# 3932 SEQ 0243
$PMG1 2973# 2973 3007
$PNAME 1105# 1546 2454
$PNM1 2472 2480 2501#
$PNM2 2453 2468 2506#
$PNT 4784# 4784 4997# 4997 5001 5006 5025# 5025 5037 5045 5069
$PNTB1 4761#
$PNTC2 4944 4959#
$PNTC3 4955# 4971
$PNTCF 1728 4973# 4975
$PNTCW 1728 4939# 4976 4978
$PNTI1 4801 4984# 5008
$PNTI2 4988# 4991 5002
$PNTI3 4797 5004#
$PNTI4 4744# 4998 5009 5019 5033 5038 5052
$PNTIA 4740 4778#
$PNTIB 4729 4757#
$PNTIC 4789#
$PNTIF 1711 4718#
$PNTIN 1507 4685#
$PNTIT 1709 4726#
$PNTIX 4705# 5374 5411
$PNTLN 4790 5025#
$PNTMG 1734 2026 2971#
$PNTNM 1729 2452# 4105 4711
$PNTSV 4992# 4992 4999
$PNTSX 1727 4811#
$PNTTY 4719# 4719 4727 4737 4744 4767 5137 5257 5447
$PNTY1 5197# 5244 5246 5260
$PNTY2 5200 5203 5205 5207 5210 5217#
$PNTY3 5228 5232#
$PNTYC 5083# 5083 5217 5259
$POCS 1743 4893#
$POCS1 4901 4908#
$POCS2 4913# 4922
$POCS3 4910 4917# 4931
$POCS4 4922# 4930
$POCS5 4915 4930#
$POCSF 1743 4889#
$POINT 5027# 5027 5029 5036
$PRNTX 4734 4751# 4759
$PSHER 1163# 1492 1494 1678 2584
$PSIX 1742 4845#
$PSIX1 4854# 4870
$PSIX2 4857# 4869
$PSIX3 4869# 4875
$PSIX4 4862 4872#
$PSIX5 4860 4877#
$PSIXF 1742 4841#
$PTCA 4939# 4939 4956 4973
$PTCB 4941# 4941 4955
$PTINH 4688# 4688 4723 5113 5126 5131 5161 5197
$PTKL 4724 4732 4736#
$PTMG1 2978 3003# SEQ 0244
$PTNXT 5460# 5463
$PTSXF 1727 4824#
$PUTBF 5457 5459 5462#
$PUTCR 5446 5456#
$PVER 1106#
$PWRF 2662 2675# 2675 2708 2744 2765 2897
$PWRFL 2663 2692#
$PWRST 2690 2707# 2707 2760# 2760 2893# 2893
$RADIX 5051 5054# 5062
$REINI 1413 1441#
$ROW 2988 3010#
$RSRTX 1155# 2677
$RSRTY 1156# 2689
$RSTCM 2670# 2734 2831 2967
$SBRD 2621 2901 5969#
$SBRD1 2280 2902 5972#
$SBSRT 1412 1433#
$SNPNT 2479 2484 2509#
$SPAG1 1175# 2884# 2884
$START 1072# 1538 1542
$STD 92#
$STL 94#
$STM 95#
$SUBUO 1612 1634#
$SVAPR 1173# 1696 2565 2627# 2627 2647 2671 2684 2726 2781 2789 2805 2823 2903
2959
$SVCSW 1486# 1486 4243 4249
$SVERA 2618 2900 5967#
$SVPAG 1174# 2751# 2751 2816 2883# 2883
$SVPI 1172# 1697 2566 2630# 2630 2648 2670 2685 2728 2730 2782 2790 2806 2820
$SVUPC 1178# 1615
$SVUUO 1177# 1617 1621
$SW 4205# 4205 4208 4227# 4227 4232
$SW0 4099 4186# 4364
$SW1 4199# 4201 4207 4220 4250
$SW10 4192 4246#
$SW11 4194 4249#
$SW12 4195# 4252
$SW2 4214 4224# 4226
$SW3 4229# 4231
$SW4 4222 4233# 4244 4247
$SW5 4234#
$SW6 4210 4221#
$SW7 4216 4238#
$SW8 4190 4235# 4239 4242
$SW9 4188 4212 4241#
$SWCH1 4084# 4091
$SWERR 4203 4218#
$SWFLG 1488# 1488 2830# 2830 4074 4101
$SWIN1 4100#
$SWIN3 4148 4151 4156 4166#
$SWONC 4098# 4098 4100 4193 4241
$SWTCH 1731 1808 1863 2027 2406 2433 3022 3953 4072# 4103 4730 SEQ 0245
$SWTIN 1509 4097#
$SWU1 4075 4077 4090#
$SWU2 4073 4092#
$SWUSR 4079 4088#
$TABF 1235# 4697 5219
$TABS 5222 5266#
$TABS1 5271# 5274
$TACB4 4331# 4331 4339
$TACC1 4475# 4475 4500
$TACC2 4476# 4476 4498
$TACD1 4524# 4524 4572 4579
$TACD2 4525# 4525 4568 4578
$TACD3 4526# 4526 4567 4577
$TALT1 4354 4358#
$TALT2 4352# 4376 5103
$TALT3 4348 4369#
$TALTM 1739 2031 4345#
$TIEX1 4291 4391#
$TIEX2 4314 4394#
$TIEXC 4385#
$TIKL 4386 4411#
$TISIX 1740 4637#
$TIUSR 4383 4423#
$TOUB1 5128 5135#
$TOUB2 5138 5142#
$TOUB3 5146#
$TOUT 4990 4996 5018 5034 5049 5066 5074 5082#
$TOUT1 5195 5243#
$TOUT2 5144 5176 5422#
$TOUT3 5427 5444#
$TOUT4 5431 5435#
$TOUT5 5432# 5436 5438
$TOUT6 5429# 5449
$TOUTA 5150 5167 5172 5174 5198 5233 5237# 5258 5275 5287
$TOUTB 5085 5087 5090 5095 5114 5117 5123# 5185 5189
$TOUTC 5143 5194#
$TOUTV 5108 5116#
$TOUTW 5104 5107#
$TOUTX 5099#
$TOUTY 5089#
$TOUTZ 5094#
$TPCK 4549 4586#
$TPCNV 1738 4518#
$TPCV1 4519 4521 4524#
$TPDEC 1738 4520#
$TPERR 4539 4550 4562 4576# 4596 4601 4614
$TPEX1 4567# 4619 4628
$TPEXT 4545 4547 4561#
$TPMUL 4554 4589#
$TPNBR 4561 4592#
$TPOCT 1737 4010 4225 4230 4522#
$TRP3 2804# 2868
$TSX1 4637# 4637 4665 SEQ 0246
$TSX2 4638# 4638 4666
$TSXB1 4642# 4660
$TSXB2 4645 4647 4662#
$TSXB3 4643 4650 4654 4658 4664#
$TSXB4 4653 4656#
$TTCHR 1231# 4295 4322 4395# 4395 4414 4423# 4423 4431
$TTLK 1739 4286# 4349
$TTLK1 4288 4293#
$TTYIN 1740 4304#
$TTYIX 4307 4318#
$TTYIY 4305 4322#
$TTYSP 1419# 5410 5413
$TUTX2 5102 5157 5184#
$TUTX3 5105 5188#
$TWCNT 1227# 4338
$TYAC0 5298# 5298 5325
$TYAC1 5299# 5299 5326
$TYAC2 5300# 5300 5327
$TYFBL 5323 5366#
$TYFC1 5348# 5364
$TYFCR 5321 5341#
$TYFLF 5319 5362#
$TYFLX 5355# 5360 5367
$TYKL 5293 5333#
$TYMN1 5377# 5414 5416
$TYMN2 5409# 5417
$TYMON 5376 5413#
$TYOU1 5298#
$TYOU2 5318#
$TYOU3 5303 5316 5325# 5355
$TYOU4 5312#
$TYOUT 4396 4405 5110 5112 5212 5214 5232 5272 5285 5292#
$TYPIN 1508 4277#
$TYPL1 4552#
$TYPLP 4538# 4557 4598 4603
$TYPNB 1233# 4529# 4529 4576
$TYSP1 5386# 5390
$TYSP2 5388# 5392 5394
$TYSP3 5389 5391#
$TYSP4 5396#
$TYSPD 4703 5371#
$UCK 1529 1541#
$UMODE 1110# 1541
$UMPV 2572#
$UNXM 2574#
$UOERX 1576 1659# 1741 1749 1752 1799
$UOPLE 1591 1593 1597 1599 1602 1604 1671#
$UORTN 1574 1588# 1692 2650
$UORTX 1150# 1668
$UOTAB 1723 1726#
$UPAR 2568#
$UPDL 2570#
$UPLER 1578# 1578 1671 1673 SEQ 0247
$USRF1 5169 5174# 5177
$USRFC 5149 5166#
$USRFL 5147 5171#
$USRHL 1154# 2576
$USRMP 3351#
$USRUO 1613#
$USWTF 4076 4097# 4097 4234 4238
$UUO37 1641 1708#
$UUOER 1151# 1192 1577
$UUOIN 1505 1574#
$VTAB 5230 5280#
$VTF 1237# 4699 5227
$XUUO 1626# 1724
$YESNO 1736 3965 3987 4474#
$YN1 4479# 4506
$YN2 4482 4490 4498#
$YN3 4486 4496 4503#
$YN4 4492 4494 4508#
%AC0 1834# 1834 1840 2019 2021 2022 2077
%AC1 1835# 1835 1841 1948 1972
%AC2 1836# 1836 1842 1950 1974
%AC3 1837# 1837 1843 1952 1976
%ACTFL 1184# 1861# 1861 1968
%ACTUL 1185# 1986# 1986 1992
%COREC 1183# 1962# 1962 1991
%CORFL 1182# 1860# 1860 1944
%DISCR 1186# 1924# 1924 1942 1966 1989 1996
%EACR 1840# 1900 2042
%EACR1 1841# 2013 2071
%EACS 1834# 1859 2025
%ERCNT 1885# 1885 2055
%ERFLG 1788# 1788 1800 1868
%ERFST 2045# 2045 2047
%ERHI1 1325# 1857 1858
%ERHI2 1326# 2078 2079
%ERHI3 1327# 1901 1902
%ERIN1 1961 1985 1995 5983# 5985
%ERIN2 1938 5984#
%ERLP 1639 1788#
%ERLP0 1797 1800#
%ERLP1 1795 1804#
%ERLP2 1793 1808#
%ERMOR 2015 2018 2022#
%ERP2A 1946 1954#
%ERP2B 1929#
%ERP3A 1970 1978#
%ERPNT 1867 1872 1879#
%ERPR1 1910 1916#
%ERPR2 1907 1920 1924#
%ERPR3 1943 1963#
%ERPR4 1967 1988#
%ERPR5 1990 2001#
%ERPR6 2003 2007 2011# SEQ 0248
%ERPRA 1887 2045#
%ERPRB 1889# 2048
%ERS1A 2042#
%ERSW1 1874 1883 2031#
%ERSW2 2038 2053#
%ERSW3 2059 2065#
%ERUUO 1640 1848#
%ERX 1813# 1827
%ERX1 1803 1807 1812 1817# 1828
%ERXTR 2014# 2014 2020
%EXCAL 2071#
%EXCL1 2073 2077#
%LUUO 1849# 1849 1929
%REPT 1638 1826#
%RP 1801 1870 1879# 1879
%RP1 1802 1871 1880# 1880
.JB41 442#
.JBAPR 450#
.JBCNI 451#
.JBDDT 444#
.JBFF 448#
.JBOPC 453#
.JBREL 443#
.JBREN 449#
.JBSA 447#
.JBSYM 445#
.JBTPC 452#
.JBUSY 446#
.JBUUO 441#
.JBVER 454#
APRENB 2556
CFLUSH 305# SEQ 0249
CINVAL 304#
CLOKOP 299# 3055
CLRBFI 4219 4505
CWRTBI 306#
DEVCHR 5482
DROPDV 266# 5428
ENDUUO 312# 1140
EOPUUO 313# 1142
ERLOOP 357#
ERLP1 358#
ERLP2 359#
ERRHLT 200#
ERROR 366#
ERROR1 377#
ERUUO 356#
EXIT 2419 3071 5518
FATAL 199# 1669 1683 1935 2379 2381 2522 2641 3126 3428 3481 3573 3602 3636
3667 3671 3773 3808 4315
FRD36 341#
FRD8 342#
FREAD 340#
FSELEC 339#
GET 183# 1618 1630 1647 1649 1658 1661 1664 1772 1798 1813 1817 1856 2132
2351 2363 2384 2396 2410 2416 2445 2511 2623 3309 3310 3311 3312 3313
3494 4235 4733 4757 4783 4818 4831 4877 4878 4879 4880 4881 4923 4924
4925 4926 4927 5336
GO 180# 1502 1504 1505 1506 1507 1508 1509 1510 1512 1514 1574 1692 1808
1859 1863 1900 2013 2020 2025 2026 2027 2031 2042 2071 2355 2385 2406
2415 2433 2439 2479 2484 2650 2838 2896 2934 2943 2965 2966 3022 3026
3044 3057 3064 3114 3319 3327 3397 3399 3411 3417 3560 3563 3565 3568
3572 3595 3650 3652 3706 3807 3953 3965 3987 3989 4010 4046 4064 4081
4099 4102 4103 4105 4170 4173 4179 4200 4206 4225 4230 4310 4314 4318
4323 4335 4349 4364 4396 4405 4412 4481 4489 4538 4642 4730 4739 5051
5062 5103 5110 5112 5130 5212 5214 5232 5272 5285 5335 5445 5446
HALT 185# 1161 1421 1422 1423 1424 1425 1426 1427 1428 1429 1539 1672 1677
1693 2299 2304 2330 2418 2651 2694 2709 2766 2898 2948 3065 3075
INCHRS 4295
INCHRW 4322 4442
INCHWL 4423
JEN 187# 2127 2133 2253 2260
JRSTF 186# 2690 2957
MAPADR 322#
MAPCNK 323#
MAPMEM 319#
MAPPNT 325#
MAPSET 324#
MEMSEG 321#
MEMZRO 320#
MODPCP 332#
MODPCU 331#
MTROP 300#
NAME 7# 10
OUTCHR 5432 SEQ 0250
OUTSTR 1543 1546 5437 5487 5506 5513 5521 5525
PBELL 275# 2066
PCRL 269# 1667 2008 2011 2506 2638 3006 3905 3929 3946 3947 4166 4446 4874
PCRL2 273#
PCRL2F 274#
PCRLF 270# 2401 2430 3034 3984 4116 4503 4872
PFORCE 277# 1884
PGMINT 193# 1438 2692
PJRST 184# 2183 2191 2195
PMSG 279# 1660 1698 1891 1894 1897 2455 2461 2485 2490 2495 2502 2504 2510
2586 2617 2620 2626 2791 2974 2979 2985 2994 3002 3005 3901 3904 3943
4124 4133 4142 4157 4159 4161 4163 4165
PMSGF 282# 1680 2130 2394 2425 2520 2674 2693 3030 3124 3457 3964 3968 3973
3978 3981 3986 4043 4113 4195 4199 4224 4229 4479
PNT1 235# 4146
PNT11 249#
PNT11F 250#
PNT1F 236#
PNT2 237#
PNT2F 238#
PNT3 239#
PNT3F 240# 4035
PNT4 241#
PNT4F 242#
PNT5 243# 4949
PNT5F 244# 4947
PNT6 245# 1896 2637 4962 4970
PNT6F 246# 2400 2429 4960 4968
PNT7 247#
PNT7F 248#
PNTA 221# 1937
PNTADF 252# 4952
PNTADR 251# 3912 3914 4954
PNTAF 222#
PNTAL 223# 1771
PNTALF 224# 1769
PNTCHF 234# 1756 4829 4866 4903 4918 4964
PNTCHR 233# 1758 2984 2993 4457 4816 4868 4905 4920 4966
PNTCI 231# 2458 2464 3915 3925
PNTCIF 232# 3033
PNTCW 267#
PNTCWF 268#
PNTDCF 260# 3032
PNTDEC 259# 1893 2512 3001 3922 3928 3945
PNTDS 261#
PNTDSF 262#
PNTHW 255# 1662 1666 1700 1899 2588 2619 2622 2628 2631 2634 2796 2975
PNTHWF 256# 1682 4115 4197
PNTMGN 346#
PNTMSF 228#
PNTMSG 227# 2454
PNTNM 263# 2046 2393 2424
PNTOCF 258# SEQ 0251
PNTOCS 257# 2457 2460 2463 2466 2489 2494 2499
PNTOCT 253#
PNTOTF 254#
PNTSIX 264# 4132 4140
PNTSXF 265# 4040
PSIXL 225# 1766 1911 1913 1921 1923 1959 1983 1993 2010 2625
PSIXLF 226# 1763
PSIXM 229# 1660 1698 1891 1894 1897 2455 2461 2485 2490 2495 2502 2504 2510
2586 2617 2620 2626 2792 2974 2979 2985 2994 3002 3005 3901 3904 3943
4124 4133 4142 4157 4159 4161 4163 4165
PSIXMF 230# 1680 2131 2395 2426 2521 2674 2693 3030 3125 3458 3964 3968 3973
3978 3981 3986 4043 4113 4195 4199 4224 4229 4480
PSP 271# 1663 2629 2632 2635
PSPF 272#
PUT 182# 1594 1620 1623 1659 1716 2129 2347 2360 2377 2397 2441 2509 2616
3289 3292 3293 3294 3295 3320 3328 3490 4186 4811 4824 4841 4845 4847
4848 4849 4850 4889 4893 4895 4896 4897 4898 5333
REPTUO 360#
RTN 181# 1148 1555 1567 1579 1632 1773 1818 1838 1844 2085 2095 2112 2140
2156 2225 2228 2231 2277 2290 2305 2326 2339 2343 2364 2507 2513 2557
2747 2859 2879 2946 2972 3008 3029 3036 3040 3042 3045 3080 3082 3085
3088 3093 3119 3280 3282 3288 3314 3495 3535 3575 3586 3599 3703 3710
3832 3861 3949 3955 4005 4050 4087 4093 4108 4110 4119 4167 4176 4181
4236 4279 4290 4294 4296 4316 4320 4325 4340 4350 4361 4367 4392 4418
4449 4501 4574 4580 4667 4708 4710 4752 4819 4832 4882 4928 4957 5067
5162 5328 5337 5461 5485 5503 5511
S 66 81 90 111# 113 117 146 148 157 160 175 176 178 189
191 195 197 202 206 352 354 390 392 398 400 412 414 419
421 437 439 456 458 468 472 477 479 484 486 493 495 502
504 517 519 523 525 537 539 543 545 558 560 573 575 584
586 592 594 599 601 606 608 618 620 630 632 651 653 661
663 666 668 680 682 687 689 695 697 702 704 710 712 716
718 725 727 753 807 809 820 822 842 844 852 854 860 862
870 872 876 878 883 885 892 894 915 917 926 928 948 950
961 963 967 969 980 982 985 987 996 998 1008 1010 1014 1016
1027 1029 1063 1069 1096 1098 1116 1118 1136 1138 1167 1169 1187 1189
1207 1209 1217 1219 1240 1245 1271 1273 1280 1282 1288 1290 1296 1298
1302 1304 1309 1311 1315 1317 1321 1323 1329 1331 1334 1336 1340 1342
1346 1348 1352 1354 1358 1360 1365 1367 1371 1373 1377 1379 1381 1383
1389 1391 1408 1410 1430 1432 1458 1460 1475 1477 1498 1500 1519 1525
1549 1552 1570 1572 1581 1586 1643 1645 1654 1656 1685 1687 1704 1706
1776 1786 1820 1824 1830 1832 1846 1877 1927 1957 1981 1999 2030 2040
2051 2063 2069 2088 2091 2114 2116 2134 2136 2157 2167 2196 2202 2236
2238 2265 2345 2370 2391 2422 2450 2518 2524 2526 2580 2603 2611 2644
2660 2697 2722 2737 2749 2778 2785 2803 2811 2833 2862 2881 2930 2969
3016 3048 3077 3284 3317 3325 3333 3343 3349 3359 3389 3392 3419 3422
3463 3469 3497 3514 3537 3553 3558 3578 3583 3616 3627 3647 3689 3712
3749 3758 3791 3795 3834 3837 3884 3962 3994 4008 4025 4054 4067 4070
4095 4122 4184 4256 4272 4276 4281 4284 4298 4302 4327 4329 4341 4343
4377 4380 4389 4409 4421 4425 4429 4465 4470 4513 4516 4536 4559 4584
4607 4632 4635 4670 4678 4680 4683 4713 4716 4742 4755 4773 4776 4803
4806 4809 4822 4833 4839 4883 4887 4932 4937 4979 4982 5011 5014 5021
5023 5040 5043 5078 5080 5119 5121 5164 5180 5190 5192 5236 5239 5241 SEQ 0252
5264 5278 5288 5290 5296 5331 5339 5369 5418 5420 5442 5452 5454 5465
5468 5501
SIXBTZ 288# 1908 1914 1916 1939 1963 1988 2592 2595 2599 2608 2807 2920 2922
2924 2926
SWITCH 294#
TTALTM 215#
TTICHR 208#
TTICLR 218#
TTICNV 213#
TTIDEC 212#
TTINO 210#
TTIOCT 211#
TTIYES 209#
TTLOOK 214#
TTSIXB 216#
TTYINP 217#
$MDSXB 63# 5531 5533 5535 5537 5539 5541 5543 5545 5547 5549 5551 5553 5555
5557 5559 5561 5563 5565 5567 5569 5571 5573 5575 5577 5579 5581 5583
5585 5587 5589 5591 5593 5595 5597 5599 5601 5603 5605 5607 5609 5611
5613 5615 5617 5619 5621 5623 5625 5627
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1
SUBUST MAC 23-Mar-78 15:03 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0253
1 ;*MAINDEC-10-DDQDA (SUBUSR)
2
3 SEARCH MONSYM,MACSYM
4
5 000014 DECVER=014
6 000000 MCNVER=000
7
8 XLIST
9 LIST
10 LALL
11
12 NAME \MCNVER,\DECVER^
13
14 TITLE SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14^
15
16 000137 LOC 137
17 000137 000000 000014 MCNVER,,DECVER
18
19 ;*COPYRIGHT 1977,1978
20 ;*DIGITAL EQUIPMENT CORPORATION
21 ;*MARLBORO, MASS.
22
23 ;*JOHN R. KIRCHOFF
24
25 NOSYM
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 2
SUBUST MAC 23-Mar-78 15:03 *SUBUSR SPECIAL ASSEMBLY PARAMETERS SEQ 0254
26 SUBTTL *SUBUSR SPECIAL ASSEMBLY PARAMETERS
27
28 ;*ASSEMBLY PARAMETERS
29
30 000001 MEMMAP==1
31 000001 PGMEND==1
32 000001 USRASB==1
33 000000 DEBUG==00
34 001000 MODDVL==START
35 005235 MODDVU==ENDSLD
36 030000 SADR1=BEGIN
37 030000 SADR2=BEGIN
38 030000 SADR3=BEGIN
39 030000 SADR4=BEGIN
40 030000 SADR5=BEGIN
41 030000 SADR6=BEGIN
42 030000 SADR7=BEGIN
43 030000 SADR8=BEGIN
44 030000 SADR9=BEGIN
45 030000 SADR10=BEGIN
46 030000 SADR11=BEGIN
47
48 123456 123456 PAREA1=123456,,123456
49 000000 PAREA2=0
50 636542 626456 PAREA3=SIXBIT/SUBRTN/
51 645560 000000 PAREA4=SIXBIT/TMP/
52 000000 PAREA5=0
53 000000 PAREA6=0
54 000001 ITERAT=1
55
56 000001 $PAPER==1
57
58 ;*A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
59
60 DEFINE $MDSXB (A,B)<
61 <SIXBIT/A/>!B ;A DEVICE CODE IS B>
62
63 ;*DEFINITIONS USED BY THE USER SUBROUTINE PACKAGE
64 S^;*********************************************************************^
65
66 000000 AC0= 0
67 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
68 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS
69 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
70 020007 DIASWS= 20007 ;DIAMON LH SWITCHES
71
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1
PARAM KLM 1-Aug-77 08:33 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0255
72 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
73
74 DEFINE S,<;*********************************************************************>
75
76 S^;*********************************************************************^
77 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
78 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
79 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
80 S^;*********************************************************************^
81
82 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
83 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
84 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
85
86 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
87 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
88 010000 DING== 010000 ;RING BELL ON ERROR
89
90 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
91 002000 ERSTOP==002000 ;HALT ON TEST ERROR
92 001000 PALERS==001000 ;PRINT ALL ERRORS
93
94 000400 RELIAB==000400 ;RELIABILITY MODE
95 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
96 000100 INHPAG==000100 ;INHIBIT PAGING
97
98 000040 MODDVC==000040 ;MODIFY DEVICE CODE
99 000020 INHCSH==000020 ;INHIBIT CACHE
100 000010 OPRSEL==000010 ;OPERATOR SELECTION
101
102 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
103
104 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
105
106 ;SWITCH 17 RESERVED !!!
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 2
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0256
107 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
108
109 S^;*********************************************************************^
110 ;*SPECIAL SUBPROGRAM LINKAGES
111 S^;*********************************************************************^
112
113 027772 FSELNK= 27772 ;FILE SELECT LINK
114 027773 FRDLNK= 27773 ;FILE READ LINK
115 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
116 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
117 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
118 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
119
120 S^;*********************************************************************^
121 ;*SPECIAL SUBROUTINE FATAL HALTS
122 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
123 S^;*********************************************************************^
124
125 ;ADDRESS TAG REASON
126 ;---------------------
127
128 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
129 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
130 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
131 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
132 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
133 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
134 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
135 ; 1017 EOPERR ;END OF PROGRAM ERROR
136 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
137
138 S^;*********************************************************************^
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 3
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0257
139 S^;*********************************************************************^
140 ;OPERATOR DEFINITIONS (NON-UUO'S)
141 S^;*********************************************************************^
142
143 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
144 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
145 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
146 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
147 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
148 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
149 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
150 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
151
152 S^;*********************************************************************^
153 ;*SUBROUTINE INITIALIZATION CALL
154 S^;*********************************************************************^
155
156 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
157
158 S^;*********************************************************************^
159 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
160 S^;*********************************************************************^
161
162 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
163 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
164
165 S^;*********************************************************************^
166 ;*TERMINAL INPUT UUO'S
167 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
168 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
169 S^;*********************************************************************^
170
171 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
172 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
173 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
174 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
175 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
176 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
177 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
178 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
179 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
180 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
181 037500 000003 OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 4
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0258
182 ;*TERMINAL OUTPUT UUO'S.
183
184 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
185 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
186 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
187 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
188 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
189 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
190 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
191 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
192 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
193 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
194 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
195 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
196 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
197 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
198 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
199 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
200 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
201 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
202 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
203 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
204 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
205 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
206 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
207 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
208 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
209 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
210 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
211 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
212 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
213 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
214 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
215 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
216 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
217 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
218 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
219 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
220 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
221 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
222 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
223 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
224 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
225 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 5
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0259
226 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
227 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
228 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
229 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
230 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
231 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
232 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
233 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
234 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
235 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
236 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
237 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
238 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
239
240 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
241
242 DEFINE PMSG (ARG),<
243 PSIXM [SIXBIT\ARG'_\]>
244
245 DEFINE PMSGF (ARG),<
246 PSIXMF [SIXBIT\ARG'_\]>
247
248 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
249 ;* CONSERVES CORE OVER ASCIZ
250
251 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
252
253 ;*CONSOLE SWITCH INPUT UUO.
254 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
255 ;* USER MODE.
256
257 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
258
259 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
260 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
261
262 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
263 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
264
265 ;*KL10 ONLY CACHE OPERATION UUO'S
266
267 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
268 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
269 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 6
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0260
270 ;*END OF PASS/PROGRAM UUOS
271
272 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
273 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
274
275 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
276 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
277
278 ;*MEMORY MANAGEMENT UUO'S
279 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
280 ;*ADDRESS CONVERSION, ETC...
281
282 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
283 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
284 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
285 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
286 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
287 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
288 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
289
290 ;*DEVICE CODE MODIFICATION UUO
291 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
292 ;*IOT'S TO A DIFFERENT DEVICE CODE.
293
294 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
295 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
296
297 IFNDEF MODDVL,<MODDVL==BEGIN>
298 IFNDEF MODDVU,<MODDVU==BEGIN>
299
300 ;*"DIAMON" FILE SELECTION AND READ UUOS
301
302 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
303 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
304 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
305 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
306
307 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
308
309 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
310
311 XLIST
312 IFNDEF KLOLD,<LIST
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 7
PARAM KLM 1-Aug-77 08:33 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976 SEQ 0261
313 SUBTTL ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
314
315 S^;*********************************************************************^
316 ;*ERROR HANDLER PARAMETERS
317 S^;*********************************************************************^
318
319 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
320 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
321 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
322 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
323 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
324
325 ;*THE ERROR HANDLER MACROS
326
327 ;*A MACRO TO REPORT AN ERROR AND LOOP
328
329 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
330 SALL
331 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
332 CORECT,,ACTUAL
333 [SIXBIT\D'_\],,ERR]
334 XALL
335 ERLOOP ADR ;IF ERROR, LOOP TO ADR
336 >
337
338 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP
339
340 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
341 SALL
342 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
343 CORECT,,ACTUAL
344 [SIXBIT\D'_\],,ERR]
345 XALL>
346
347 >;END OF KLOLD CONDITIONAL
348
349 XLIST
350 IFDEF $PAPER,<LIST>
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 8
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0262
351 SUBTTL STANDARD PROGRAM ASSIGNMENTS
352
353 S^;*********************************************************************^
354 ;*ACCUMULATORS
355 S^;*********************************************************************^
356
357 000017 P= 17 ;PUSHDOWN POINTER AC (IF PUSH LIST USED)
358 000015 REPT== 15 ;ERROR HANDLER REPEAT AC
359 000016 REPT1== 16 ; "
360
361 S^;*********************************************************************^
362 ;*PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
363 S^;*********************************************************************^
364
365 400000 AROV== 400000 ;ARITHMETIC OVERFLOW
366 200000 CRY0== 200000 ;CARRY 0
367 100000 CRY1== 100000 ;CARRY 1
368 040000 FOV== 40000 ;FLOATING POINT OVERFLOW
369 020000 BIS== 20000 ;BYTE INTERRUPT
370 010000 USERF== 10000 ;USER MODE
371 004000 EXIOT== 4000 ;USER PRIV I/O
372 000100 FXU== 100 ;FLOATING POINT UNDERFLOW
373 000040 DCK== 40 ;DIVIDE CHECK
374
375 S^;*********************************************************************^
376 ;*PDP-10 STANDARD ADDRESS ASSIGNMENTS
377 S^;*********************************************************************^
378
379 000040 LUUO== 40 ;UUO STORAGE, UUO 1-37
380 000041 LUUOI== 41 ;UUO SERVICE INSTRUCTION
381
382 S^;*********************************************************************^
383 ;*JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
384 S^;*********************************************************************^
385
386 000040 JOBUUO==40
387 000041 JOB41== 41
388 000044 JOBREL==44
389 000074 JOBDDT==74
390 000116 JOBSYM==116
391 000117 JOBUSY==117
392 000120 JOBSA== 120
393 000121 JOBFF== 121
394 000124 JOBREN==124
395 000125 JOBAPR==125
396 000126 JOBCNI==126
397 000127 JOBTPC==127
398 000130 JOBOPC==130
399 000137 JOBVER==137
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 9
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0263
400 S^;*********************************************************************^
401 ;*JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
402 S^;*********************************************************************^
403
404 000040 .JBUUO==40
405 000041 .JB41== 41
406 000044 .JBREL==44
407 000074 .JBDDT==74
408 000116 .JBSYM==116
409 000117 .JBUSY==117
410 000120 .JBSA== 120
411 000121 .JBFF== 121
412 000124 .JBREN==124
413 000125 .JBAPR==125
414 000126 .JBCNI==126
415 000127 .JBTPC==127
416 000130 .JBOPC==130
417 000137 .JBVER==137
418
419 S^;*********************************************************************^
420 ;*USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
421 S^;*********************************************************************^
422
423 200000 PDLOVU==200000 ;PUSHDOWN LIST OVERFLOW
424 020000 MPVU== 20000 ;MEMORY PROTECTION VIOLATION
425 010000 NXMU== 10000 ;NON-X-MEMORY
426 004000 PARU== 4000 ;PARITY ERROR
427 001000 CLKU== 1000 ;CLOCK
428 000100 FOVU== 100 ;FLOATING OVERFLOW
429 000010 AROVU== 10 ;ARITHMETIC OVERFLOW
430
431 S^;*********************************************************************^
432 ;*USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
433 ;*THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
434 ;*USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
435 S^;*********************************************************************^
436
437 000017 $DEVCH==17 ;LOGICAL DEVICE CHANNEL
438 000016 $DVCH1==16 ;LOGICAL DEV UPDATE INPUT CHANNEL
439
440 S^;*********************************************************************^
441 ;*PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
442 S^;*********************************************************************^
443
444 000010 PAG== 010 ;PAGING I/O DEVICE CODE, KI/KL
445
446 000014 CCA== 014 ;CACHE I/O DEVICE CODE, KL10
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 10
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0264
447 S^;*********************************************************************^
448 ;*PDP-10 STANDARD APR CONO ASSIGNMENTS
449 S^;*********************************************************************^
450
451 200000 IOCLR== 200000 ;CLEAR ALL I/O DEVICES
452 004000 CLKDIS==4000 ;DISABLE CLOCK INTERRUPTS
453 002000 CLKENB==2000 ;ENABLE CLOCK INTERRUPTS
454 001000 CLKCLR==1000 ;CLEAR CLOCK FLAG
455
456 S^;*********************************************************************^
457 ;*PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
458 S^;*********************************************************************^
459
460 002000 CLKENB==2000 ;CLOCK INTERRUPT ENABLED
461 001000 CLK== 1000 ;CLOCK FLAG
462 010000 ANXM== 10000 ;KA10, NON-X-MEMORY
463 000100 INXM== 100 ;KI10
464
465 S^;*********************************************************************^
466 ;*PDP-10 STANDARD PI CONO ASSIGNMENTS
467 S^;*********************************************************************^
468
469 400000 PWFCLR==400000 ;CLEAR POWER FAIL FLAG
470 200000 PARCLR==200000 ;CLEAR PARITY ERROR FLAG
471 100000 PARDIS==100000 ;DISABLE PARITY INTERRUPTS
472 040000 PARENB==40000 ;ENABLE PARITY INTERRUPTS
473 010000 PICLR== 10000 ;CLEAR PI SYSTEM
474 004000 REQSET==4000 ;SET PROGRAM PI REQUEST
475 002000 CHNON== 2000 ;TURN ON CHANNEL
476 001000 CHNOFF==1000 ;TURN OFF CHANNEL
477 000400 PIOFF== 400 ;TURN OFF PI SYSTEM
478 000200 PION== 200 ;TURN ON PI SYSTEM
479
480 S^;*********************************************************************^
481 ;*PDP-10 STANDARD PI CONI ASSIGNMENTS
482 S^;*********************************************************************^
483
484 000200 PION== 200 ;PI SYSTEM ON
485
486 S^;*********************************************************************^
487 ;*PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
488 S^;*********************************************************************^
489
490 000100 PICHN1==100 ;PI CHANNEL 1
491 000040 PICHN2==40 ;PI CHANNEL 2
492 000020 PICHN3==20 ;PI CHANNEL 3
493 000010 PICHN4==10 ;PI CHANNEL 4
494 000004 PICHN5==4 ;PI CHANNEL 5
495 000002 PICHN6==2 ;PI CHANNEL 6
496 000001 PICHN7==1 ;PI CHANNEL 7
497 000177 PICHNA==177 ;ALL PI CHANNELS, 1 THRU 7
498 XLIST
499 LIST
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0265
500 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
501
502 030000 LOC 30000
503
504 S^;*********************************************************************^
505 ;*PROGRAM STARTING ADDRESSES
506 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
507 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
508 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
509 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
510 S^;*********************************************************************^
511
512 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
513 030001 254 00 0 00 001000 $START: JRST START ;MODE CHECK STARTING ADDRESS
514
515 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
516
517 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
518
519 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
520
521 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
522
523 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
524
525 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
526 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
527
528 030010 254 00 0 00 001034 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
529 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
530 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
531
532 030013 000000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
533 030014 000000 030000 START2: SADR8 ; "
534 030015 000000 030000 START3: SADR9 ; "
535 030016 000000 030000 START4: SADR10 ; "
536 030017 000000 030000 START5: SADR11 ; "
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 2
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0266
537 S^;*********************************************************************^
538 ;*PROGRAM FIXED PARAMETER AREA
539 S^;*********************************************************************^
540
541 030020 636542 626456 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
542 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
543 030022 123456 123456 RANDBS: PAREA1 ;RANDOM BASE NUMBER
544 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
545 030024 000000 000001 ITRCNT: ITERAT ;PROGRAM ITERATIONS
546 030025 000000 001035 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
547 030026 000000 000014 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
548 030027 000000 001000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
549 030030 000000 005235 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
550 030031 000000 000000 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
551 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
552 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
553 030034 777777 777777 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
554 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
555 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
556
557 S^;*********************************************************************^
558 ;*PROGRAM VARIABLE PARAMETER AREA
559 S^;*********************************************************************^
560
561 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
562 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
563 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
564 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
565 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
566 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
567 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
568 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
569 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
570 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
571 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
572 030052 000000 000000 ERRPC: 0 ;ERROR PC
573 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
574 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
575 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
576 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 3
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0267
577 S^;*********************************************************************^
578 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
579 S^;*********************************************************************^
580
581 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
582 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
583 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
584 030062 000000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
585 030063 000000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
586 030064 CPOPJ1: ;SKIP RETURN
587 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
588 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
589 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
590 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
591 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
592 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
593 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
594 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
595 030073 255 00 0 00 000000 $USRHL: JFCL ; "
596 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
597 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
598 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
599 030077 255 00 0 00 000000 RESRT2: JFCL ; "
600 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
601 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
602 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
603
604 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
605 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
606 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
607
608 S^;*********************************************************************^
609 ;*PROCESSOR CONTROL STORAGE
610 S^;*********************************************************************^
611
612 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
613 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
614 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
615 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
616 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
617
618 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
619 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
620
621 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
622 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
623 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
624 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
625 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
626 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
627 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 4
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0268
628 S^;*********************************************************************^
629 ;*UUO DISPATCH TABLE
630 S^;*********************************************************************^
631 XLIST
632 LIST
633 030124 030070 030070 UUODIS: LUUO1,,$UUOER
634 030125 030070 030070 LUUO3,,LUUO2
635 030126 030070 030070 LUUO5,,LUUO4
636 030127 030070 030070 LUUO7,,LUUO6
637 030130 030070 030070 LUUO11,,LUUO10
638 030131 030070 030070 LUUO13,,LUUO12
639 030132 030070 030070 LUUO15,,LUUO14
640 030133 030070 030070 LUUO17,,LUUO16
641 030134 030070 030070 LUUO21,,LUUO20
642 030135 030070 030070 LUUO23,,LUUO22
643 030136 030070 030070 LUUO25,,LUUO24
644 030137 030070 030070 LUUO27,,LUUO26
645 030140 030070 030070 LUUO31,,LUUO30
646 030141 030070 030070 LUUO33,,LUUO32
647
648 S^;*********************************************************************^
649 ;*MEMORY MANAGMENT STORAGE
650 S^;*********************************************************************^
651
652 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
653 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
654 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
655 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
656 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
657
658 S^;*********************************************************************^
659 ;*PRINT CONTROL STORAGE
660 S^;*********************************************************************^
661
662 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
663 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
664 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
665 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
666 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
667 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
668 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
669 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
670 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
671 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
672 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
673 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
674 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
675 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
676 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
677 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
678 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
679 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
680 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 5
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0269
681 S^;*********************************************************************^
682 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
683 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
684 ;* MOVEI NAME
685 ;* PNTA ;OR PNTAF
686 S^;*********************************************************************^
687
688 030242 CRLF: ASCII/
689 030242 015 012 000 000 000 /
690 030243 CRLF2: ASCII/
691
692 030243 015 012 015 012 000 /
693 030244 054 000 000 000 000 COMMA: ASCII/,/
694 030245 056 000 000 000 000 PERIOD: ASCII/./
695 030246 040 000 000 000 000 SPACE: ASCII/ /
696 030247 011 000 000 000 000 TAB: ASCII/ /
697 030250 MINUS:
698 030250 055 000 000 000 000 HYPEN: ASCII/-/
699 030251 053 000 000 000 000 PLUS: ASCII/+/
700 030252 052 000 000 000 000 AST: ASCII/*/
701 030253 100 000 000 000 000 ATSIN: ASCII/@/
702 030254 050 000 000 000 000 LFP: ASCII/(/
703 030255 051 000 000 000 000 RTP: ASCII/)/
704 030256 007 0000000000 BELL: BYTE (7) 007
705 030257 077 000 000 000 000 QUEST: ASCII/?/
706 030260 057 000 000 000 000 SLASH: ASCII!/!
707 030261 044 000 000 000 000 DOLLAR: ASCII/$/
708 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
709 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
710 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
711
712 S^;*********************************************************************^
713 ;*USER MODE OUTPUT FILE INFORMATION
714 S^;*********************************************************************^
715
716 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
717 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
718 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
719 030272 BLOCK 2
720
721 S^;*********************************************************************^
722 ;*DISK UPDATE MODE FILE INFORMATION
723 S^;*********************************************************************^
724
725 030274 $IBUF: BLOCK 3
726 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
727 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
728 030301 BLOCK 2
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 6
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0270
729 S^;*********************************************************************^
730 ;*PUSHDOWN LIST CONTROL INFORMATION
731 S^;*********************************************************************^
732
733 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
734 030304 PLISTS: BLOCK 200
735 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
736
737 S^;*********************************************************************^
738 ;*POWER LINE CLOCK FREQUENCY FLAG
739 S^;*********************************************************************^
740
741 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
742
743 S^;*********************************************************************^
744 ;*KL10 CACHE CONTROL FLAGS
745 S^;*********************************************************************^
746
747 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
748 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
749
750 S^;*********************************************************************^
751 ;*NUMBER INPUT DIGIT FLAG
752 S^;*********************************************************************^
753
754 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
755
756 S^;*********************************************************************^
757 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
758 S^;*********************************************************************^
759
760 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
761
762 S^;*********************************************************************^
763 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
764 S^;*********************************************************************^
765
766 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
767 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
768 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
769
770 S^;*********************************************************************^
771 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
772 S^;*********************************************************************^
773
774 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 7
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0271
775 S^;*********************************************************************^
776 ;*USER MODE MONITOR TYPE FLAG
777 S^;*********************************************************************^
778
779 030516 000000 000000 MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
780
781 S^;*********************************************************************^
782 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
783 S^;*********************************************************************^
784
785 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
786
787 S^;*********************************************************************^
788 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
789 S^;*********************************************************************^
790
791 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
792
793 S^;*********************************************************************^
794 ;*"SWITCH" CALL USAGE CONTROL
795 S^;*********************************************************************^
796
797 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
798
799 S^;*********************************************************************^
800 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
801 S^;*********************************************************************^
802
803 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
804 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
805
806 S^;*********************************************************************^
807 ;*SM10 (KS-10) PROCESSOR TYPE FLAG
808 S^;*********************************************************************^
809
810 030524 000000 000000 SM10: 0 ;IF -1 THIS IS A KS-10
811
812 S^;*********************************************************************^
813 ;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
814 S^;*********************************************************************^
815
816 030525 000000 000000 SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
817
818 S^;*********************************************************************^
819 ;*SPECIAL FUTURE EXPANSION ROOM
820 S^;*********************************************************************^
821
822 S^;*********************************************************************^
823 ;*END OF FIXED STORAGE
824 S^;*********************************************************************^
825
826 030577 LOC 30577
827 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0272
828 SUBTTL *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
829
830 S^;*********************************************************************^
831 ;*SPECIAL SUBPROGRAM LINKAGES
832 S^;*********************************************************************^
833
834 000440 LOC 440
835
836 000440 254 00 0 00 030000 JRST DIAGNOS
837 000441 254 00 0 00 010000 JRST DDT
838 000442 254 00 0 00 020000 JRST DIAMON
839 000443 254 00 0 00 001001 JRST REINIT
840
841 027775 LOC 27775
842
843 027775 000000 010000 DDTLNK: 10000 ;DDT LINKAGE
844 027776 000000 001003 MODLNK: MODCHK ;OPERATIONAL MODE CHECK LINKAGE
845 027777 000000 001002 SUBLNK: SUBINI ;SUBROUTINE LINKAGE
846
847 001000 LOC 1000 ;RESET THE PC AFTER "FIXED" @ 30,000
848
849 S^;*********************************************************************^
850 ;*INITIALIZE THE SUBROUTINE PACKAGE
851 S^;*********************************************************************^
852
853 001000 254 00 0 00 001021 START: JRST $SBSRT ;START SUBROUTINE BY ITSELF
854 001001 254 00 0 00 001030 REINIT: JRST $REINI ;REINIT SUBROUTINE
855 001002 254 00 0 00 001046 SUBINI: JRST $PGMIN ;SUBROUTINE INIT ROUTINE
856 001003 254 00 0 00 001121 MODCHK: JRST $MODCK ;OPERATIONAL MODE CHECK LINKAGE
857 001004 000000 000000 0
858 001005 63 65 42 62 64 56 SUBRTN: SIXBIT/SUBRTN/ ;"SUBRTN" IDENTIFICATION WORD
859 001006 000000 000014 SUBVER: MCNVER,,DECVER ;"SUBRTN" VERSION INFORMATION
860 001007 777777 777777 $TTYSPD:-1 ;MONITOR TTY SPEED
861
862 001010 254 04 0 00 001010 NOEXEC: HALT . ;PROGRAM NOT CODED FOR EXEC MODE
863 001011 254 04 0 00 001011 PLERR: HALT . ;FATAL PUSH LIST POINTER ERROR
864 001012 254 04 0 00 001012 PLERR1: HALT . ;INITIAL PUSH LIST POINTER ERROR
865 001013 254 04 0 00 001013 MUOERR: HALT . ;MUUO WITH LUUO HANDLER WIPED OUT
866 001014 254 04 0 00 001014 DTEBER: HALT . ;DTE20 INTERRUPT WITHOUT DOORBELL
867 001015 254 04 0 00 001015 DTECER: HALT . ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
868 001016 254 04 0 00 001016 CPIERR: HALT . ;CPU INITIALIZATION ERROR
869 001017 254 04 0 00 001017 EOPERR: HALT . ;END OF PROGRAM ERROR
870 001020 254 04 0 00 001020 LUOERR: HALT . ;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 2
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0273
871 S^;*********************************************************************^
872 ;*SPECIAL SUBROUTINE ONLY INITIALIZATION
873 S^;*********************************************************************^
874
875 001021 201 00 0 00 000001 $SBSRT: MOVEI 1
876 001022 202 00 0 00 030024 MOVEM ITRCNT ;ALLOW ONLY ONE PASS
877 001023 201 00 0 00 020000 MOVEI DIAMON
878 001024 202 00 0 00 030012 MOVEM RETURN
879 001025 476 00 0 00 030143 SETOM MAPNEW ;FULL 4096K MAPPING
880 001026 265 00 0 00 030011 PGMINT
881 001027 254 00 0 00 030057 JRST BEGEND
882
883 001030 402 00 0 00 030056 $REINI: SETZM $ONETM ;FOR NOW
884 001031 402 00 0 00 030047 SETZM PASCNT
885 001032 402 00 0 00 030053 SETZM ERRTLS
886 001033 254 00 0 00 030000 JRST BEGIN
887
888 001034 254 00 0 00 030057 STARTA: JRST BEGEND
889
890 001035 PGMNAM: ASCIZ %
891 001035 015 012 104 105 103 DECSYSTEM DIAGNOSTIC USER SUBROUTINE'S
892 001036 123 131 123 124 105
893 001037 115 040 104 111 101
894 001040 107 116 117 123 124
895 001041 111 103 040 125 123
896 001042 105 122 040 123 125
897 001043 102 122 117 125 124
898 001044 111 116 105 047 123
899 001045 015 012 000 000 000 %
900
901 S^;*********************************************************************^
902 ;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
903 S^;*********************************************************************^
904
905 001046 202 00 0 00 005325 $PGMIN: MOVEM 0,$$PAC0
906 001047 476 00 0 00 030037 SETOM USER
907 001050 265 00 0 00 001051 JSP 0,.+1 ;LOAD FLAGS INTO AC0
908 001051 607 00 0 00 010000 TLNN 0,USERF ;USER MODE ?
909 001052 254 04 0 00 001052 HALT . ;EXEC MODE
910 001053 402 00 0 00 030516 SETZM MONTYP
911 001054 200 00 0 00 004643 MOVE [112,,11]
912 001055 047 00 0 00 000041 GETTAB ;GET MONITOR TYPE ID
913 001056 310 00 0 00 000000 CAM
914 001057 306 00 0 00 040000 CAIN 40000 ;TOPS20 ?
915 001060 476 00 0 00 030516 SETOM MONTYP ;YES
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 3
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0274
916 S^;*********************************************************************^
917 ;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
918 S^;*********************************************************************^
919
920 001061 554 00 0 00 000120 $PGMN1: HLRZ JOBSA ;RESET JOB FIRST FREE TO
921 001062 202 00 0 00 000121 MOVEM JOBFF ;END OF LOW SEGMENT
922 001063 336 00 0 00 030516 SKIPN MONTYP
923 001064 047 00 0 00 000000 CALLI 0 ;TOPS10 RESET
924 001065 332 00 0 00 030516 SKIPE MONTYP
925 001066 104 00 0 00 000147 RESET ;CLEAR USER I/O
926 001067 254 02 1 00 001070 JRST 2,@.+1 ;CLEAR PC FLAGS
927 001070 000000 001071 0,,.+1
928 001071 200 00 0 00 030046 MOVE CONSW
929 001072 202 00 0 00 005401 MOVEM $SVCSW# ;SAVE PREVIOUS SWITCHES
930 001073 402 00 0 00 030046 SETZM CONSW# ;CLEAR SWITCH REGISTER
931 001074 402 00 0 00 005403 SETZM $SWFLG# ;DISALLOW SWITCHES TILL INITED
932 001075 200 00 0 00 004644 MOVE [JRST $DDTENT] ;SETUP DDT START
933 001076 202 00 0 00 030007 MOVEM DDTSRT ;DDT IF LOADED, EOPUUO IF NOT
934 001077 200 00 0 00 004645 MOVE [JRST PSHERR]
935 001100 202 00 0 00 030103 MOVEM $PSHER ;INIT FOR UNDERFLOW
936 001101 200 17 0 00 030303 MOVE P,PLIST ;INIT PUSH POINTER
937 001102 201 00 0 00 030103 MOVEI 0,$PSHER
938 001103 261 17 0 00 000000 PUSH P,0 ;SET ERR FOR EXCESSIVE POP'S
939 001104 261 17 0 00 000000 PUSH P,0
940
941 S^;*********************************************************************^
942 ;*INITIALIZE SUBROUTINES
943 S^;*********************************************************************^
944
945 001105 260 17 0 00 001730 PGINGO: GO $CPUTP ;DETERMINE CPU TYPE (KS/KL/KI/KA)
946 001106 260 17 0 00 001155 GO $UUOIN ;INIT UUO TRAP TRANSFER LOCATION
947 001107 260 17 0 00 003651 GO $PNTIN ;INIT PRINT SUBROUTINE
948 001110 260 17 0 00 003237 GO $TYPIN ;INIT TTY INPUT SUBROUTINE
949 001111 260 17 0 00 002772 GO $SWTIN ;INIT SWITCH INPUT SUBROUTINE
950 001112 260 17 0 00 002140 GO $ITRIN ;INIT INTERRUPT SUBROUTINE
951 001113 332 00 0 00 030034 SKIPE $MMAP ;MEMORY ROUTINES ?
952 001114 260 17 0 00 002415 GO $MEMMP ;MAP MEMORY
953 001115 476 00 0 00 030056 SETOM $ONETM ;SET ONE TIME FLAG
954 001116 402 00 0 00 030116 SETZM SCOPE ;INIT ERROR SCOPE LOOP
955 001117 402 00 0 00 030052 SETZM ERRPC ;INIT ERROR PC
956 001120 254 00 1 00 005325 JRST @$$PAC0#
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 4
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0275
957 S^;*********************************************************************^
958 ;* -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
959 ;*MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
960 ;*IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
961 ;*MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
962 ;*AT ASSEMBLY TIME.
963 S^;*********************************************************************^
964
965 001121 265 00 0 00 001122 $MODCK: JSP 0,.+1 ;GET FLAG CONDITIONS
966 001122 603 00 0 00 010000 TLNE 0,USERF ;IN USER MODE ?
967 001123 254 00 0 00 001136 JRST $UCK ;YES
968 001124 476 00 0 00 030024 $ECK: SETOM ITRCNT ;EXEC, RUN FOREVER
969 001125 402 00 0 00 030043 SETZM MONCTL ;NOT HERE IF UNDER MONITOR CONTROL
970 001126 476 00 0 00 030042 SETOM MONFLG ;SET TO NORMAL OPERATION
971 001127 332 00 0 00 030044 SKIPE MONTEN ;LOADED BY "DIAMON" ?
972 001130 254 00 0 00 001133 JRST .+3 ;YES, RETURN TO "DIAMON" UPON COMPLETION
973 001131 201 00 0 00 030000 MOVEI BEGIN ;SET UP RETURN IN CASE WE EVER COUNT OUT
974 001132 202 00 0 00 030012 MOVEM RETURN ;FOR THE RETURN ADDRESS
975 001133 332 00 0 00 030031 SKIPE $EMODE ;EXEC MODE ALLOWED?
976 001134 254 00 0 00 030001 JRST $START ;YES - CONTINUE
977 001135 254 04 0 00 001010 HALT NOEXEC ;THIS PROGRAM NOT CODED FOR EXEC MODE OPERATION!
978
979 001136 332 00 0 00 030032 $UCK: SKIPE $UMODE ;USER MODE ALLOWED?
980 001137 254 00 0 00 030001 JRST $START ;YES - CONTINUE
981 001140 200 00 0 00 004643 $NOUSR: MOVE [112,,11]
982 001141 047 00 0 00 000041 GETTAB
983 001142 310 00 0 00 000000 CAM
984 001143 306 00 0 00 040000 CAIN 40000
985 001144 254 00 0 00 001150 JRST $NOU20
986 OUTSTR [ASCIZ/
987 EXEC ONLY
988 001145 051 03 0 00 004646 /]
989 001146 051 03 1 00 030025 OUTSTR @$PNAME
990 001147 254 00 1 00 030012 JRST @RETURN
991 001150 $NOU20: HRROI 1,[ASCIZ/
992 EXEC ONLY
993 001150 561 01 0 00 004646 /]
994 001151 104 00 0 00 000076 PSOUT
995 001152 561 01 1 00 030025 HRROI 1,@$PNAME ;PRINT THE NAME OF THIS FILE
996 001153 104 00 0 00 000076 PSOUT
997 001154 254 00 1 00 030012 JRST @RETURN ;LEAVE FOR EVER
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 5
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0276
998 SUBTTL *CONTRL* UUO HANDLING SUBROUTINE
999
1000 S^;*********************************************************************^
1001 ;*UUO INITIALIZATION
1002 S^;*********************************************************************^
1003
1004 001155 200 00 0 00 004651 $UUOIN: MOVE [GO $UORTN] ;BRING IN UUORTN ENTRY INSTR.
1005 001156 202 00 0 00 000041 MOVEM JOB41 ;SETUP UUO TRAP AT JOB41
1006 001157 200 00 0 00 004652 MOVE [JRST $UOERX]
1007 001160 202 00 0 00 030070 MOVEM $UUOER ;SET UUO ERROR IN "FIXED"
1008 001161 402 00 0 00 005416 SETZM $UPLER#
1009 001162 263 17 0 00 000000 RTN ;EXIT
1010
1011 S^;*********************************************************************^
1012 ;*THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
1013 ;*PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
1014 ;*PROGRAM SEGMENT UUO'S (001 - 033).
1015 ;*AC0 IS SAVED ON THE STACK INITIALLY
1016 S^;*********************************************************************^
1017
1018 001163 332 00 0 00 030515 $UORTN: SKIPE $$UUO ;IF NON-ZERO, XCT USERS UUO INTERCEPT
1019 001164 256 00 0 00 030515 XCT $$UUO
1020 001165 607 17 0 00 777000 TLNN P,777000
1021 001166 254 00 0 00 001257 JRST $UOPLE ;CHECK THAT P LOOKS LIKE A P POINTER
1022 001167 602 17 0 00 747000 TRNE P,747000
1023 001170 254 00 0 00 001257 JRST $UOPLE
1024 001171 261 17 0 00 000000 PUT AC0 ;SAVE AC0 ON PUSH LIST
1025 001172 550 00 0 00 000017 HRRZ AC0,P ;VERIFY THAT THE PUSH POINTER
1026 001173 307 00 0 00 030303 CAIG AC0,PLIST ;IS STILL OK
1027 001174 254 00 0 00 001257 JRST $UOPLE ;OUT OF RANGE
1028 001175 301 00 0 00 030504 CAIL AC0,PLISTE
1029 001176 254 00 0 00 001257 JRST $UOPLE
1030 001177 554 00 0 00 000017 HLRZ AC0,P ;GET CONTROL COUNT
1031 001200 307 00 0 00 777577 CAIG AC0,777577
1032 001201 254 00 0 00 001257 JRST $UOPLE ;OUT OF RANGE
1033 001202 301 00 0 00 777777 CAIL AC0,777777
1034 001203 254 00 0 00 001257 JRST $UOPLE
1035 001204 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET THE UUO
1036 001205 242 00 0 00 777745 LSH AC0,-^D27 ;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
1037 001206 303 00 0 00 000033 CAILE AC0,33 ;IS IT 33 OR LESS? (LOW)
1038 001207 254 00 0 00 001234 JRST $SUBUO ;DECODE 34 - 37 @ $SUBUO
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 6
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0277
1039 001210 200 00 0 17 777777 $USRUO: MOVE AC0,-1(P) ;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
1040 001211 275 00 0 00 000001 SUBI 1 ; - 1
1041 001212 202 00 0 00 030114 MOVEM $SVUPC ;SAVE FOR USER UUO ROUTINE (IF NEEDED)
1042 001213 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET UUO FROM LOCATION 40 IN JDA
1043 001214 202 00 0 00 030113 MOVEM $SVUUO ;SAVE FOR USER UUO ROUTINE
1044 001215 262 17 0 00 000000 GET AC0
1045 001216 256 00 0 00 030066 XCT UUORTN ;EXECUTE USERS ROUTINE IF SUPPLIED
1046 001217 261 17 0 00 000000 PUT AC0
1047 001220 200 00 0 00 030113 MOVE AC0,$SVUUO
1048 001221 242 00 0 00 777745 LSH AC0,-^D27 ;RIGHT SHIFT FOR INDEX INTO UUO TABLE
1049 001222 261 17 0 00 000001 PUT 1
1050 001223 246 00 0 00 777777 LSHC 0,-1
1051 001224 271 00 0 00 030124 ADDI UUODIS ;ADD USER UUO TABLE START TO THE UUO
1052 001225 607 01 0 00 400000 $XUUO: TLNN 1,400000
1053 001226 550 00 1 00 000000 HRRZ @0 ;EVEN UUO
1054 001227 603 01 0 00 400000 TLNE 1,400000
1055 001230 554 00 1 00 000000 HLRZ @0 ;ODD UUO
1056 001231 262 17 0 00 000001 GET 1
1057 001232 250 00 0 17 000000 EXCH AC0,(P) ;PUT ADR ON STACK, AC0 BACK IN AC0
1058 001233 263 17 0 00 000000 RTN ;SPECIAL XFER TO ROUTINE USING ADR ON STACK
1059
1060 001234 275 00 0 00 000034 $SUBUO: SUBI AC0,34 ;NORMALIZE TO MAKE LOWEST UUO = 0
1061 001235 271 00 0 00 001237 ADDI AC0,TABLE0 ;ADDR OF TABLE + NORM. UUO (0-3)
1062 001236 254 00 1 00 000000 JRST @0 ;SELECT THE CORRECT ERROR UUO VIA TABLE
1063
1064 001237 254 00 0 00 001427 TABLE0: JRST %REPT ;UUO = 34 ......................REPEAT
1065 001240 254 00 0 00 001371 JRST %ERLP ;UUO = 35 ...........LOOP ON THE ERROR
1066 001241 254 00 0 00 001444 JRST %ERUUO ;UUO = 36 .REPORT THE ERROR CONDITIONS
1067 001242 254 00 0 00 001274 JRST $UUO37 ;UUO = 37 .......DECODE SUBROUTINE UUO
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 7
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0278
1068 S^;*********************************************************************^
1069 ;*UUO ERROR EXIT ROUTINE
1070 S^;*********************************************************************^
1071 SALL
1072 001243 262 17 0 00 000000 GET AC0 ;POP OFF AC0 (KA MUUO'S)
1073 001244 261 17 0 00 000040 $UOERX: PUT JOBUUO ;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
1074 001245 037 02 0 00 004653 PMSG <^ILLEGAL UUO^UUO]]FLAGS] PC^>
1075 001246 262 17 0 00 000000 GET AC0 ;GET BAD UUO FROM THE STACK (P - 1)
1076 001247 037 13 0 00 000000 PNTHW ;PRINT IT
1077 001250 037 00 0 00 000040 PSP ;PRINT SPACE
1078 001251 262 17 0 00 000000 GET AC0 ;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
1079 001252 275 00 0 00 000001 SUBI AC0,1 ;SUBTRACT 1
1080 001253 037 13 0 00 000000 PNTHW ;PRINT FLAGS & UUO PC
1081 001254 037 00 0 00 030242 PCRL ;PRINT C/R & L/F
1082 001255 256 00 0 00 030067 XCT $UORTX ;EXECUTE USERS UUO EXIT, IF PROV
1083 001256 037 15 0 00 000004 FATAL
1084
1085 001257 332 00 0 00 005416 $UOPLE: SKIPE $UPLER ;FIRST TIME ?
1086 001260 254 04 0 00 001011 HALT PLERR ;NO, FATAL HALT THEN
1087 001261 476 00 0 00 005416 SETOM $UPLER
1088 001262 202 17 0 00 005370 MOVEM P,$PDOVP# ;SAVE "P"
1089 001263 200 17 0 00 030303 MOVE P,PLIST
1090 001264 312 17 0 00 004660 CAME P,[PLIST-PLISTE,,PLIST]
1091 001265 254 04 0 00 001012 HALT PLERR1 ;INITIAL POINTER BAD
1092 001266 201 00 0 00 030103 MOVEI $PSHER
1093 001267 261 17 0 00 000000 PUSH P,0
1094 001270 037 04 0 00 004661 PMSGF <^*****^UUO PLIST ERR P=>
1095 001271 200 00 0 00 005370 MOVE $PDOVP
1096 001272 037 13 0 00 000001 PNTHWF
1097 001273 037 15 0 00 000004 FATAL
1098 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 8
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0279
1099 S^;*********************************************************************^
1100 ;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
1101 S^;*********************************************************************^
1102
1103 001274 550 00 0 00 000040 $UUO37: HRRZ JOBUUO ;GET CALLING UUO
1104 001275 322 00 0 00 003713 JUMPE $PNTIT ;PRINT UUO
1105 001276 306 00 0 00 000001 CAIN 0,1
1106 001277 254 00 0 00 003706 JRST $PNTIF ;PRINT FORCED UUO
1107 001300 602 00 0 00 777600 TRNE 777600
1108 001301 254 00 0 00 001354 JRST $EG177 ;PRINT MESSAGE UUO
1109 001302 301 00 0 00 000005 CAIL 5
1110 001303 254 00 0 00 001345 JRST $EG4 ;PRINT CHAR IMMEDIATE UUO
1111 001304 261 17 0 00 000001 PUT 1
1112 001305 200 01 0 00 000040 MOVE 1,JOBUUO
1113 001306 242 01 0 00 777751 LSH 1,-^D23 ;EXTRACT UUO AC FIELD
1114 001307 405 01 0 00 000017 ANDI 1,17
1115 001310 242 00 0 00 000004 LSH 0,4 ;POSITION E FIELD
1116 001311 434 00 0 00 000001 IOR 0,1 ;COMBINE E & AC FIELD
1117 001312 246 00 0 00 777777 LSHC 0,-1 ;SET ODD/EVEN
1118 001313 271 00 0 00 001275 ADDI $UOTAB-20 ;COMPUTE TABLE ENTRY OFFSET
1119 001314 254 00 0 00 001225 JRST $XUUO
1120
1121 001315 $UOTAB: ;E FIELD = 2
1122 001315 004026 004015 $PTSXF,,$PNTSX
1123 001316 004177 004144 $PNTCF,,$PNTCW
1124 001317 004515 002077 $DRPDV,,$PNTNM
1125 001320 002626 002736 $MODDV,,$MODDP
1126 001321 002423 002747 $MSEG,,$SWTCH
1127 001322 002524 002502 $MPADR,,$MZRO
1128 001323 001370 001370 $MPCNK,,$MPSET
1129 001324 002567 001370 $PMAP,,$PNTMG
1130 ;E FIELD = 3
1131 001325 003430 003301 $YESNO,,$OPTLK
1132 001326 003474 003426 $TPOCT,,$NOYES
1133 001327 003470 003472 $TPCNV,,$TPDEC
1134 001330 003311 003241 $TALTM,,$TTLK
1135 001331 003266 003616 $TTYIN,,$TISIX
1136 001332 001244 003360 $UOERX,,$TPCLR
1137 001333 004037 004042 $PSIXF,,$PSIX
1138 001334 004101 004104 $POCSF,,$POCS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 9
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0280
1139 ;E FIELD = 4
1140 001335 001370 002415 $CINVAL,,$MEMMP
1141 001336 001370 001370 $CWRTB,,$CFLUSH
1142 001337 001766 001370 $FSELECT,,$MTROP
1143 001340 002012 002014 $FRD36,,$FREAD
1144 001341 001244 002010 $UOERX,,$FRD8
1145 001342 001370 002366 $CLOCK,,$END
1146 001343 002056 002030 $FATAL,,$ERHLT
1147 001344 001244 002407 $UOERX,,$EOP
1148
1149 001345 200 00 0 00 000040 $EG4: MOVE JOBUUO ;IMMEDIATE CHARACTER PRINT
1150 001346 316 00 0 00 004665 CAMN [PFORCE] ;"PFORCE" CALL ?
1151 001347 254 00 0 00 001366 JRST $EGX1 ;YES
1152 001350 603 00 0 00 000040 TLNE (1B12)
1153 JRST [PNTCHF
1154 001351 254 00 0 00 004666 JRST $EGX]
1155 001352 037 12 0 00 000000 PNTCHR
1156 001353 254 00 0 00 001364 JRST $EGX
1157
1158 001354 200 00 0 00 000040 $EG177: MOVE JOBUUO ;IMMEDIATE MESSAGE PRINT
1159 001355 603 00 0 00 000200 TLNE (4B12)
1160 JRST [PSIXLF
1161 001356 254 00 0 00 004670 JRST $EGX]
1162 001357 603 00 0 00 000100 TLNE (2B12)
1163 JRST [PSIXL
1164 001360 254 00 0 00 004672 JRST $EGX]
1165 001361 603 00 0 00 000040 TLNE (1B12)
1166 JRST [PNTALF
1167 001362 254 00 0 00 004674 JRST $EGX]
1168 001363 037 17 0 00 000000 PNTAL
1169 001364 262 17 0 00 000000 $EGX: GET 0
1170 001365 263 17 0 00 000000 RTN
1171
1172 001366 260 17 0 00 003724 $EGX1: GO $PCLRO ;CLEAR CONTROL O & INPUT BUFFER
1173 001367 254 00 0 00 001364 JRST $EGX
1174
1175 001370 $CFLUSH:
1176 001370 $CINVAL:
1177 001370 $CLOCK:
1178 001370 $CWRTB:
1179 001370 $MPCNK:
1180 001370 $MPSET:
1181 001370 $MTROP:
1182 001370 $PNTMG:
1183 001370 263 17 0 00 000000 RTN ;NON-USER MODE UUO'S
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 10
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0281
1184 SUBTTL *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
1185
1186 S^;*********************************************************************^
1187 ;*THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
1188 ;*A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
1189 ;*INFORMATION. THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
1190 ;*SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
1191 ;*ERROR, AND BELL ON ERROR.
1192 ;*ERROR LOOPING ROUTINE
1193 ;*EITHER CONTINUES IN-LINE
1194 ;*OR TRANSFERS TO E FIELD OF UUO
1195 ;*CHECKS PC OF ERROR TO DETERMINE LOOPING
1196 S^;*********************************************************************^
1197
1198 001371 402 00 0 00 005425 %ERLP: SETZM %ERFLG#
1199 001372 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET AC FIELD OF UUO
1200 001373 242 00 0 00 777751 LSH AC0,-^D23
1201 001374 405 00 0 00 000017 ANDI AC0,17
1202 001375 306 00 0 00 000002 CAIN AC0,2
1203 001376 254 00 0 00 001415 JRST %ERLP2 ; 2 = LOOP IF ANY ERROR
1204 001377 306 00 0 00 000001 CAIN AC0,1
1205 001400 254 00 0 00 001411 JRST %ERLP1 ; 1 = LOOP IF PC'S MATCH
1206 001401 306 00 0 00 000000 CAIN AC0,0
1207 001402 254 00 0 00 001405 JRST %ERLP0 ; 0 = PC'S, REPT, REPT1 & ERROR
1208 001403 262 17 0 00 000000 GET AC0
1209 001404 254 00 0 00 001244 JRST $UOERX
1210 001405 476 00 0 00 005425 %ERLP0: SETOM %ERFLG
1211 001406 316 15 0 00 005431 CAMN REPT,%RP ;ARE REPEAT COUNTS SAME AS ERROR ?
1212 001407 312 16 0 00 005432 CAME REPT1,%RP1 ;(AT RIGHT PLACE IN TEST LOOPS ?)
1213 001410 254 00 0 00 001425 JRST %ERX1 ;NO, CONTINUE IN LINE
1214 001411 550 00 0 17 777777 %ERLP1: HRRZ AC0,-1(P) ;GET PC OF LOOP CALL FROM STACK
1215 001412 275 00 0 00 000002 SUBI AC0,2 ;LESS 2
1216 001413 312 00 0 00 030052 CAME AC0,ERRPC ;NOW EQUAL TO PC OF ERROR CALL ?
1217 001414 254 00 0 00 001425 JRST %ERX1 ;NO, CONTINUE IN LINE
1218 001415 260 17 0 00 002747 %ERLP2: GO $SWTCH ;READ SWITCHES INTO AC0
1219 001416 607 00 0 00 004000 TLNN LOOPER ;LOOP ON ERROR ?
1220 001417 402 00 0 00 030116 SETZM SCOPE ;NO ..........CLEAR LOOP CONTROL
1221 001420 331 00 0 00 030116 SKIPL SCOPE ;YES ...WAS THERE AN ERROR ?
1222 001421 254 00 0 00 001425 JRST %ERX1 ;NO, CONTINUE IN LINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 11
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0282
1223 001422 262 17 0 00 000000 %ERX: GET AC0 ;RESTORE AC0
1224 001423 274 17 0 00 004676 SUB P,[1,,1] ;CORRECT PUSH LIST POINTER FOR NO "RTN"
1225 001424 254 00 1 00 000040 JRST @JOBUUO ;TRANSFER TO E FIELD OF UUO
1226
1227 001425 262 17 0 00 000000 %ERX1: GET AC0 ;RESTORE AC0
1228 001426 263 17 0 00 000000 RTN
1229
1230 S^;*********************************************************************^
1231 ;*REPEAT LOOP ROUTINE
1232 ;*EITHER CONTINUES IN-LINE
1233 ;*OR TRANSFERS TO E FIELD OF UUO
1234 S^;*********************************************************************^
1235
1236 001427 373 00 0 00 030115 %REPT: SOSLE REPTU# ;REPEAT TEST SECTION ?
1237 001430 254 00 0 00 001422 JRST %ERX ;YES, E FIELD OF UUO IS RETURN
1238 001431 254 00 0 00 001425 JRST %ERX1 ;NO, CONTINUE IN LINE
1239
1240 S^;*********************************************************************^
1241 ;*COMMON ERROR HANDLER AC SAVE/RESTORE
1242 S^;*********************************************************************^
1243
1244 001432 202 00 0 00 005420 %EACS: MOVEM 0,%AC0#
1245 001433 202 01 0 00 005421 MOVEM 1,%AC1#
1246 001434 202 02 0 00 005422 MOVEM 2,%AC2#
1247 001435 202 03 0 00 005423 MOVEM 3,%AC3#
1248 001436 263 17 0 00 000000 RTN
1249
1250 001437 200 00 0 00 005420 %EACR: MOVE 0,%AC0
1251 001440 200 01 0 00 005421 %EACR1: MOVE 1,%AC1
1252 001441 200 02 0 00 005422 MOVE 2,%AC2
1253 001442 200 03 0 00 005423 MOVE 3,%AC3
1254 001443 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 12
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0283
1255 ;*ERROR REPORTING ROUTINE
1256 S^;*********************************************************************^
1257
1258 001444 200 00 0 00 000040 %ERUUO: MOVE LUUO
1259 001445 202 00 0 00 005430 MOVEM %LUUO#
1260 001446 476 00 0 00 030116 SETOM SCOPE
1261 001447 262 17 0 00 000000 GET AC0
1262 001450 332 00 0 00 030512 SKIPE %ERHI1 ;ANY USERS INSTRUCTION ?
1263 001451 256 00 0 00 030512 XCT %ERHI1 ;YES, DO USERS ROUTINE
1264 001452 260 17 0 00 001432 GO %EACS ;SAVE AC0 - AC3
1265 001453 402 00 0 00 030117 SETZM %CORFLG#
1266 001454 402 00 0 00 030121 SETZM %ACTFL#
1267 001455 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS
1268 001456 260 17 0 00 002747 GO $SWTCH
1269 001457 550 03 0 17 000000 HRRZ 3,(P) ;GET <ADDRESS> OF ERROR CALL FROM STACK
1270 001460 275 03 0 00 000001 SUBI 3,1
1271 001461 312 03 0 00 030052 CAME 3,ERRPC ;SKIP IF SAME ERROR
1272 001462 254 00 0 00 001472 JRST %ERPNT
1273 001463 336 00 0 00 005425 SKIPN %ERFLG
1274 001464 254 00 0 00 001470 JRST .+4 ;DON'T CHECK REPEAT COUNTS
1275 001465 316 15 0 00 005431 CAMN REPT,%RP
1276 001466 312 16 0 00 005432 CAME REPT1,%RP1
1277 001467 254 00 0 00 001472 JRST %ERPNT ;DIFFERENT, PRINT ERROR
1278 001470 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ?
1279 001471 254 00 0 00 001673 JRST %ERSW1 ;THIS ERROR ALREADY REPORTED ONCE.
1280
1281 ;*BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
1282 S^;*********************************************************************^
1283
1284 001472 202 15 0 00 005431 %ERPNT: MOVEM REPT,%RP# ;SAVE REPEAT COUNTS
1285 001473 202 16 0 00 005432 MOVEM REPT1,%RP1#
1286 001474 202 03 0 00 030052 MOVEM 3,ERRPC ;SAVE ERROR CALL ADDRESS
1287 001475 603 00 0 00 040000 TLNE 0,NOPNT
1288 001476 254 00 0 00 001673 JRST %ERSW1
1289 001477 037 01 0 00 000026 PFORCE ;OVERRIDE CONTROL O
1290 001500 402 00 0 00 005424 SETZM %ERCNT#
1291 001501 335 00 0 00 030043 SKIPGE MONCTL ;DIAG MON OR SYS EXER ?
1292 001502 254 00 0 00 001705 JRST %ERPRA ;YES, GO PRINT TITLE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 13
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0284
1293 SALL
1294 001503 336 00 0 00 030047 %ERPRB: SKIPN PASCNT
1295 001504 254 00 0 00 001510 JRST .+4 ;DON'T PRINT PASS COUNTER ON FIRST PASS
1296 001505 037 02 0 00 004677 PMSG <^TEST PASS COUNT = >
1297 001506 200 00 0 00 030047 MOVE 0,PASCNT
1298 001507 037 15 0 00 000000 PNTDEC ;PRINT TEST PASS COUNTER
1299 001510 037 02 0 00 004703 PMSG <^PC= >
1300 001511 201 00 0 03 000000 MOVEI 0,(3)
1301 001512 037 06 0 00 000000 PNT6 ;PRINT PC OF ERROR CALL.
1302 001513 037 02 0 00 004705 PMSG <^SWITCHES = >
1303 001514 200 00 0 00 030046 MOVE CONSW
1304 001515 037 13 0 00 000000 PNTHW ;PRINT SWITCHES AT ERROR
1305 001516 260 17 0 00 001437 GO %EACR
1306 001517 332 00 0 00 030514 SKIPE %ERHI3 ;IF NON-ZERO, XCT USERS ROUTINE
1307 001520 256 00 0 00 030514 XCT %ERHI3
1308
1309 001521 550 03 1 00 030052 HRRZ 3,@ERRPC ;GET "E FIELD" OF ERROR CALL
1310 001522 200 00 0 00 030046 MOVE 0,CONSW ;AC3 HAS THE ERROR CALL ADDR IN IT
1311 001523 603 00 0 00 000200 TLNE TXTINH ;TEXT INHIBITED ?
1312 001524 254 00 0 00 001545 JRST %ERPR2 ;YES
1313 001525 201 00 0 00 004710 MOVEI 0,SIXBTZ <^ERROR IN >
1314 001526 554 01 0 03 000000 HLRZ 1,(3) ;GET NAME OF FAILING TEST
1315 001527 322 01 0 00 001535 JUMPE 1,%ERPR1 ;JUMP IF NO TEST NAME
1316 001530 037 14 0 00 000003 PSIXL ;*DEFINE T=0 TO INHIBIT TEST NAME
1317 001531 200 00 0 00 000001 MOVE 0,1
1318 001532 037 14 0 00 000003 PSIXL ;REPORT NAME OF FAILING TEST
1319 001533 201 00 0 00 004712 MOVEI 0,SIXBTZ < - >
1320 001534 254 00 0 00 001536 JRST .+2
1321 001535 201 00 0 00 004713 %ERPR1: MOVEI 0,SIXBTZ <^>
1322 001536 550 01 0 03 000000 HRRZ 1,(3) ;GET ADDRESS OF FUNCTION MSG
1323 001537 200 01 0 01 000000 MOVE 1,(1) ;GET MESSAGE
1324 001540 316 01 0 00 004704 CAMN 1,[SIXBIT\_\] ;BLANK MESSAGE ?
1325 001541 254 00 0 00 001545 JRST %ERPR2 ;JUMP IF NO FUNCTION CALLED OUT.
1326 001542 037 14 0 00 000003 PSIXL
1327 001543 550 00 0 03 000000 HRRZ 0,(3) ;GET MESSAGE ADDRESS AGAIN
1328 001544 037 14 0 00 000003 PSIXL ;REPORT FUNCTION BEING TESTED.
1329 001545 476 00 0 00 030123 %ERPR2: SETOM %DISCR# ;SET 'DISCREPANCY FLAG'.
1330 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 14
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0285
1331 ;*GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
1332 S^;*********************************************************************^
1333 SALL
1334 001546 200 00 0 00 005430 %ERP2B: MOVE %LUUO
1335 001547 241 00 0 00 000015 ROT 0,15 ;GET THE X ARGUEMENT
1336 001550 405 00 0 00 000017 ANDI 0,17
1337 001551 326 00 0 00 001553 JUMPN 0,.+2 ;PRINT 12 OCTAL DIGITS IF X=0
1338 001552 201 00 0 00 000014 MOVEI 0,14
1339 001553 303 00 0 00 000014 CAILE 0,14 ;MAKE SURE THAT X IS A LEGAL ARGUMENT
1340 001554 037 15 0 00 000004 FATAL ;PROGRAM CALL ERROR
1341 001555 242 00 0 00 000027 LSH 0,^D<35-12> ;PUT X IN AC FIELD
1342 001556 270 00 0 00 004714 ADD 0,[PNTA] ;PRINT THE X ARGUEMENT
1343 001557 202 00 0 00 005237 MOVEM 0,%ERIN2
1344 001560 201 00 0 00 004715 MOVEI 0,SIXBTZ <^CORRECT: >
1345 001561 554 02 0 03 000001 HLRZ 2,1(3) ;GET ADDRESS OF EXPECTED TEST RESULTS
1346 001562 326 02 0 00 001565 JUMPN 2,.+3
1347 001563 402 00 0 00 030123 SETZM %DISCR ;NO 'CORRECT RESULT' TYPEOUT
1348 001564 254 00 0 00 001604 JRST %ERPR3
1349 001565 476 00 0 00 030117 SETOM %CORFLG
1350 001566 303 02 0 00 000003 CAILE 2,3 ;ARE TEST RESULTS IN AC THAT HAS BEEN SAVED?
1351 001567 254 00 0 00 001577 JRST %ERP2A
1352 001570 306 02 0 00 000001 CAIN 2,1 ;AC1?
1353 001571 200 01 0 00 005421 MOVE 1,%AC1
1354 001572 306 02 0 00 000002 CAIN 2,2 ;AC2?
1355 001573 200 01 0 00 005422 MOVE 1,%AC2
1356 001574 306 02 0 00 000003 CAIN 2,3 ;AC3?
1357 001575 200 01 0 00 005423 MOVE 1,%AC3
1358 001576 254 00 0 00 001600 JRST .+2
1359 001577 200 01 0 02 000000 %ERP2A: MOVE 1,(2)
1360 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 15
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0286
1361 ;*AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
1362 S^;*********************************************************************^
1363 SALL
1364 001600 037 14 0 00 000003 PSIXL ;CORRECT RESULTS.
1365 001601 200 00 0 00 000001 MOVE 0,1
1366 001602 264 00 0 00 005236 JSR %ERIN1 ;REPORT CORRECT DATA
1367 001603 202 01 0 00 030120 MOVEM 1,%COREC# ;SAVE CORRECT DATA
1368 001604 201 00 0 00 004717 %ERPR3: MOVEI 0,SIXBTZ <^ACTUAL: >
1369 001605 550 02 0 03 000001 HRRZ 2,1(3) ;GET ADDRESS OF ACTUAL TEST RESULTS.
1370 001606 326 02 0 00 001611 JUMPN 2,.+3
1371 001607 402 00 0 00 030123 SETZM %DISCR ;NO 'ACTUAL RESULT' TYPEOUT.
1372 001610 254 00 0 00 001630 JRST %ERPR4
1373 001611 476 00 0 00 030121 SETOM %ACTFL
1374 001612 303 02 0 00 000003 CAILE 2,3 ;ARE ACTUAL TEST RESULTS IN AC THAT IS SAVED?
1375 001613 254 00 0 00 001623 JRST %ERP3A
1376 001614 306 02 0 00 000001 CAIN 2,1 ;AC1?
1377 001615 200 01 0 00 005421 MOVE 1,%AC1
1378 001616 306 02 0 00 000002 CAIN 2,2 ;AC2?
1379 001617 200 01 0 00 005422 MOVE 1,%AC2
1380 001620 306 02 0 00 000003 CAIN 2,3 ;AC3?
1381 001621 200 01 0 00 005423 MOVE 1,%AC3
1382 001622 254 00 0 00 001624 JRST .+2
1383 001623 200 01 0 02 000000 %ERP3A: MOVE 1,(2)
1384 LALL
1385 ;*AC1 CONTAINS THE ACTUAL TEST RESULTS.
1386 S^;*********************************************************************^
1387 SALL
1388 001624 037 14 0 00 000003 PSIXL ;ACTUAL RESULTS
1389 001625 200 00 0 00 000001 MOVE 0,1
1390 001626 264 00 0 00 005236 JSR %ERIN1 ;REPORT ACTUAL DATA
1391 001627 202 01 0 00 030122 MOVEM 1,%ACTUL# ;SAVE ACTUAL DATA
1392
1393 001630 201 00 0 00 004721 %ERPR4: MOVEI 0,SIXBTZ <^DISCREP: >
1394 001631 336 00 0 00 030123 SKIPN %DISCR ;REPORT DATA DISCREPANCY IF BOTH CORRECT AND
1395 001632 254 00 0 00 001641 JRST %ERPR5 ;ACTUAL DATA REPORTED.
1396 001633 200 01 0 00 030120 MOVE 1,%COREC
1397 001634 430 01 0 00 030122 XOR 1,%ACTUL ;XOR CORRECT & ACTUAL DATA
1398 001635 037 14 0 00 000003 PSIXL
1399 001636 200 00 0 00 000001 MOVE 0,1
1400 001637 264 00 0 00 005236 JSR %ERIN1 ;REPORT DISC BETWEEN COR & ACT
1401 001640 202 01 0 00 030123 MOVEM 1,%DISCR ;SAVE DISCREPANCY DATA
1402 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 16
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0287
1403 ;*PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
1404 S^;*********************************************************************^
1405
1406 001641 200 00 0 00 030046 %ERPR5: MOVE 0,CONSW
1407 001642 603 00 0 00 000200 TLNE TXTINH ;TEXT INHIBITED ?
1408 001643 254 00 0 00 001653 JRST %ERPR6 ;YES
1409 001644 554 01 0 03 000002 HLRZ 1,2(3) ;GET ADDRESS OF ASCIZ TEXT.
1410 001645 200 01 0 01 000000 MOVE 1,(1) ;GET MESSAGE
1411 001646 316 01 0 00 004704 CAMN 1,[SIXBIT\_\] ;BLANK MESSAGE ?
1412 001647 254 00 0 00 001653 JRST %ERPR6 ;EXIT FROM ERROR PRINT IF NO DIAGNOSTIC TEXT.
1413 001650 037 00 0 00 030242 PCRL
1414 001651 554 00 0 03 000002 HLRZ 0,2(3) ;GET MESSAGE ADDRESS AGAIN
1415 001652 037 14 0 00 000003 PSIXL
1416 001653 037 00 0 00 030242 %ERPR6: PCRL
1417 001654 550 00 0 03 000002 HRRZ 0,2(3) ;GET ADDRESS OF ADDITIONAL ERROR PRINT ROUTINE
1418 001655 260 17 0 00 001440 GO %EACR1
1419 001656 202 00 0 00 005427 MOVEM 0,%ERXTR#
1420 001657 322 00 0 00 001666 JUMPE 0,%ERMORE ;JUMP IF NONE
1421 001660 200 00 0 00 030046 MOVE 0,CONSW
1422 001661 603 00 0 00 000200 TLNE 0,TXTINH ;TEXT INHIBITED ?
1423 001662 254 00 0 00 001666 JRST %ERMORE ;YES, NO ADDITIONAL PRINT
1424 001663 200 00 0 00 005420 MOVE 0,%AC0
1425 001664 260 17 1 00 005427 GO @%ERXTR ;XFER TO PRINT ROUTINE, RETURN TO ERMORE
1426 001665 202 00 0 00 005420 MOVEM 0,%AC0
1427 001666 200 00 0 00 005420 %ERMORE:MOVE 0,%AC0
1428 001667 256 00 0 00 030101 XCT ERMORE ;TO ADD ROUTINE PLACE XFR AT ERMORE
1429 ;IN "FIXED"
1430 001670 260 17 0 00 001432 GO %EACS
1431 001671 260 17 0 00 001370 GO $PNTMG ;IF KI10, PRINT MARGINS
1432 001672 260 17 0 00 002747 GO $SWTCH
1433
1434 ;*EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
1435 S^;*********************************************************************^
1436 001673 260 17 0 00 003311 %ERSW1: GO $TALTM ;ALTMODE CHECK
1437 001674 254 00 0 00 001700 JRST .+4 ;NONE
1438 001675 201 00 0 00 001700 MOVEI .+3 ;SAVE ADDRESS FOR CONTINUE
1439 001676 202 00 0 00 000130 MOVEM JOBOPC
1440 001677 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER
1441 001700 200 03 0 00 030046 MOVE 3,CONSW
1442 001701 607 03 0 00 002000 TLNN 3,ERSTOP ;IS 'HALT ON ERROR' SWITCH SET, (SWITCH ERSTOP)
1443 001702 254 00 0 00 001711 JRST %ERSW2 ;NO
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 17
SUBUSM MAC 23-Mar-78 15:02 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0288
1444 ;*EXECUTE HALT IF SWITCH ERSTOP SET.
1445 S^;*********************************************************************^
1446
1447 001703 260 17 0 00 001437 %ERS1A: GO %EACR ;RESTORE AC'S
1448 001704 254 00 0 00 002030 JRST $ERHLT ;USE SUBROUTINE ERROR HALT
1449
1450 001705 336 00 0 00 005426 %ERPRA: SKIPN %ERFST# ;PRINT PROGRAM NAME
1451 001706 037 04 0 00 000002 PNTNM
1452 001707 476 00 0 00 005426 SETOM %ERFST
1453 001710 254 00 0 00 001503 JRST %ERPRB
1454
1455 ;*EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
1456 S^;*********************************************************************^
1457
1458 001711 607 03 0 00 004000 %ERSW2: TLNN 3,LOOPER
1459 001712 402 00 0 00 030116 SETZM SCOPE ;CLEAR SCOPE LOOP CONTROL
1460 001713 350 01 0 00 005424 AOS 1,%ERCNT ;INCREMENT ERROR COUNT
1461
1462 ;*RING TTY BELL IF DING SWITCH IS SET.
1463 S^;*********************************************************************^
1464
1465 001714 603 03 0 00 010000 %ERSW3: TLNE 3,DING
1466 001715 037 01 0 00 000007 PBELL
1467
1468 ;*RETURN TO ERROR CALL ADDRESS+1
1469 S^;*********************************************************************^
1470
1471 001716 260 17 0 00 001440 %EXCAL: GO %EACR1
1472 001717 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
1473 001720 254 00 0 00 001724 JRST %EXCL1 ;NO, CONTINUE PROGRAM
1474 001721 200 00 0 00 030053 MOVE 0,ERRTLS ;YES
1475 001722 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ?
1476 001723 254 00 0 00 030061 JRST $BEND2 ;END OF PROGRAM
1477 001724 200 00 0 00 005420 %EXCL1: MOVE 0,%AC0
1478 001725 332 00 0 00 030513 SKIPE %ERHI2 ;ANY USERS INSTRUCTION ?
1479 001726 256 00 0 00 030513 XCT %ERHI2 ;YES, DO USERS ROUTINE
1480 001727 263 17 0 00 000000 RTN ;CONTINUE PROGRAM
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 18
SUBUSM MAC 23-Mar-78 15:02 PROCESSOR TYPE DETERMINATION SEQ 0289
1481 SUBTTL PROCESSOR TYPE DETERMINATION
1482 S^;*********************************************************************^
1483
1484 001730 402 00 0 00 030505 $CPUTP: SETZM CYCL60
1485 001731 402 00 0 00 030524 SETZM SM10
1486 001732 402 00 0 00 030041 SETZM KLFLG
1487 001733 402 00 0 00 030040 SETZM KAIFLG
1488 001734 200 01 0 00 004676 $CPKL: MOVE 1,[1,,1] ;IF KL10, AC1 AFTER BLT WILL CHANGE
1489 001735 251 01 0 00 000001 BLT 1,1
1490 001736 316 01 0 00 004676 CAMN 1,[1,,1]
1491 001737 254 00 0 00 001760 JRST $CPKAI
1492 001740 476 00 0 00 030041 SETOM KLFLG ;KL10 - SET FLAG
1493
1494 001741 336 00 0 00 030516 $CPINI: SKIPN MONTYP
1495 001742 254 00 0 00 001747 JRST .+5 ;TOPS-10
1496 001743 200 01 0 00 004723 MOVE 1,[SIXBIT/APRID/]
1497 001744 104 00 0 00 000016 SYSGT ;GET SERIAL NUMBER
1498 001745 200 00 0 00 000001 MOVE 0,1
1499 001746 254 00 0 00 001752 JRST .+4
1500 001747 200 00 0 00 004724 MOVE 0,[20,,11]
1501 001750 047 00 0 00 000041 GETTAB
1502 001751 400 00 0 00 000000 SETZ 0,
1503 001752 202 00 0 00 005326 MOVEM 0,$$SNX# ;SAVE IT
1504 001753 336 00 0 00 030041 SKIPN KLFLG
1505 001754 263 17 0 00 000000 RTN
1506 001755 303 00 0 00 010000 CAILE 0,^D4096 ;IS THIS A KS10 ?
1507 001756 476 00 0 00 030524 SETOM SM10 ;YES, SERIAL # GT 4096.
1508 001757 263 17 0 00 000000 RTN
1509
1510 001760 476 00 0 00 030040 $CPKAI: SETOM KAIFLG
1511 001761 211 00 0 00 000001 MOVNI 0,1
1512 001762 253 00 0 00 001763 AOBJN 0,.+1
1513 001763 332 00 0 00 000000 SKIPE
1514 001764 402 00 0 00 030040 SETZM KAIFLG ;KA10
1515
1516 001765 254 00 0 00 001741 JRST $CPINI
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 19
SUBUSM MAC 23-Mar-78 15:02 "DIAMON" FILE SELECTION & READ SEQ 0290
1517 SUBTTL "DIAMON" FILE SELECTION & READ
1518 S^;*********************************************************************^
1519
1520 001766 261 17 0 00 000000 $FSELECT:PUT 0
1521 001767 402 00 0 00 005342 SETZM $FSELF#
1522 001770 200 00 0 00 004725 MOVE 0,[1,,POWER+1] ;SAVE ACS
1523 001771 251 00 0 00 005320 BLT POWER+16
1524 001772 262 17 0 00 000000 GET 0
1525 001773 336 00 0 00 027772 SKIPN FSELNK ;ANY FILE SELECT LINK ?
1526 001774 254 00 0 00 002006 JRST $FSEL1 ;NO
1527
1528 001775 260 17 1 00 027772 GO @FSELNK ;TRANSFER TO "DIAMON"
1529 001776 254 00 0 00 002001 JRST $FSEL2 ;ERROR RTN, AC0 HAS CODE
1530
1531 001777 476 00 0 00 005342 SETOM $FSELF ;FOUND, SET FILE SELECTED FLAG
1532 002000 350 00 0 17 000000 AOS (P) ;SKIP RETURN
1533 002001 261 17 0 00 000000 $FSEL2: PUT 0
1534 002002 204 00 0 00 004725 MOVS 0,[1,,POWER+1] ;RESTORE ACS
1535 002003 251 00 0 00 000016 BLT 16
1536 002004 262 17 0 00 000000 GET 0
1537 002005 263 17 0 00 000000 RTN
1538
1539 002006 402 00 0 00 000000 $FSEL1: SETZM 0 ;NO "DIAMON" CAPABILTY
1540 002007 254 00 0 00 002001 JRST $FSEL2
1541
1542 ;*"DIAMON" FILE READ
1543 S^;*********************************************************************^
1544
1545 002010 201 00 0 00 000001 $FRD8: MOVEI 0,1 ;SET FLAG FOR 8BIT READ
1546 002011 254 00 0 00 002015 JRST .+4
1547 002012 474 00 0 00 000000 $FRD36: SETO ;SET FLAG FOR 36 BIT READ
1548 002013 254 00 0 00 002015 JRST .+2
1549 002014 400 00 0 00 000000 $FREAD: SETZ ;SET FLAG FOR 7 BIT ASCII READ
1550 002015 261 17 0 00 000000 PUT 0
1551 002016 336 00 0 00 005342 SKIPN $FSELF ;WAS ANY FILE SELECTED ?
1552 002017 037 15 0 00 000004 FATAL ;NO
1553 002020 336 00 0 00 027773 SKIPN FRDLNK ;ANY FILE READ LINK ?
1554 002021 037 15 0 00 000004 FATAL ;NO
1555 002022 200 00 0 00 004725 MOVE 0,[1,,POWER+1] ;SAVE ACS
1556 002023 251 00 0 00 005320 BLT POWER+16
1557 002024 262 17 0 00 000000 GET 0 ;GET FORMAT FLAG
1558 002025 260 17 1 00 027773 GO @FRDLNK ;TRANSFER TO "DIAMON"
1559 002026 254 00 0 00 002001 JRST $FSEL2 ;EOF
1560 002027 254 00 0 00 002000 JRST $FSEL2-1 ;OK, SKIP RETURN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 20
SUBUSM MAC 23-Mar-78 15:02 PROGRAM HALTS SEQ 0291
1561 SUBTTL PROGRAM HALTS
1562
1563 ;*SUBROUTINE ERROR HALT
1564 S^;*********************************************************************^
1565 SALL
1566 002030 037 04 0 00 000002 $ERHLT: PNTNM ;PRINT PROGRAM NAME
1567 002031 037 04 0 00 004726 PMSGF <ERROR HALT AT >
1568 002032 262 17 0 00 005341 GET $ERH0
1569 002033 261 17 0 00 000000 PUT 0
1570 002034 200 00 0 00 005341 MOVE AC0,$ERH0# ;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
1571 002035 370 00 0 00 000000 SOS ;SUBTRACT ONE FOR USRPC OF ERROR
1572 002036 037 06 0 00 000001 PNT6F ;PRINT USRPC FORCED
1573 002037 037 01 0 00 030242 PCRLF
1574
1575 002040 331 00 0 00 030043 SKIPL MONCTL ;UNDER MONITOR CONTROL ?
1576 002041 254 00 0 00 002047 JRST $ERHL4 ;NO..HALT AT USRPC WHERE UUO OCCURRED
1577
1578 002042 260 17 0 00 002747 $ERHL1: GO $SWTCH ;READ SWITCHES INTO AC0
1579 002043 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ?
1580 002044 254 00 0 00 002047 JRST $ERHL4 ;YES...HALT
1581
1582 002045 262 17 0 00 000000 $ERHL3: GET AC0 ;RESTORE THE STACK (P - 1)
1583 002046 254 00 0 00 030061 JRST $BEND2 ;END OF PROGRAM
1584
1585 002047 262 17 0 00 000000 $ERHL4: GET AC0
1586 002050 332 00 0 00 030516 SKIPE MONTYP
1587 002051 254 00 0 00 002054 JRST .+3
1588 002052 047 01 0 00 000012 EXIT 1,
1589 002053 254 00 1 00 005341 JRST @$ERH0
1590 002054 104 00 0 00 000170 HALTF ;RETURN TO MONITOR
1591 002055 254 00 1 00 005341 JRST @$ERH0 ;IF CONTINUED
1592 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 21
SUBUSM MAC 23-Mar-78 15:02 PROGRAM HALTS SEQ 0292
1593 ;*FATAL PROGRAM ERROR HALT
1594 S^;*********************************************************************^
1595 SALL
1596 002056 037 04 0 00 000002 $FATAL: PNTNM
1597 002057 037 04 0 00 004731 PMSGF <FATAL PROGRAM ERROR AT >
1598 002060 200 00 0 17 000000 MOVE AC0,(P) ;RETRIEVE USRPC + 1 FROM THE STACK
1599 002061 370 00 0 00 000000 SOS ;- 1
1600 002062 037 06 0 00 000001 PNT6F ;PRINT IT
1601 002063 037 01 0 00 030242 PCRLF
1602 002064 331 00 0 00 030043 SKIPL MONCTL ;EXEC - DIAGNOSTIC MONITOR ?
1603 002065 254 00 0 00 002071 JRST $FATL1 ;NO, END OF PROGRAM
1604 002066 260 17 0 00 002747 GO $SWTCH ;YES ... READ SWITCHES
1605 002067 607 00 0 00 002000 TLNN ERSTOP ;STOP ON ERROR ?
1606 002070 254 00 0 00 030061 JRST $BEND2 ;NO, END OF PROGRAM
1607
1608 002071 $FATL1:
1609 002071 261 17 0 00 000000 $DDTENT:PUT 0
1610 002072 200 00 0 00 010001 MOVE AC0,DDT+1 ;GET DDT ID
1611 002073 312 00 0 00 004735 CAME AC0,[ASCII/DDT/]
1612 002074 254 00 0 00 030061 JRST $BEND2 ;NOT LOADED, END PROGRAM
1613 002075 262 17 0 00 000000 GET 0
1614 002076 254 00 1 00 027775 JRST @DDTLNK ;DDT LOADED, GO TO IT
1615 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 22
SUBUSM MAC 23-Mar-78 15:02 PROGRAM NAME PRINTER SEQ 0293
1616 SUBTTL PROGRAM NAME PRINTER
1617
1618 ;*PRINT PROGRAM NAME IF NOT STAND-ALONE OR USER MODE
1619 S^;*********************************************************************^
1620 SALL
1621 002077 331 00 0 00 030043 $PNTNM: SKIPL MONCTL ;DIAG MON / SYS EXR ?
1622 002100 254 00 0 00 002134 JRST $PNM2 ;NO
1623 002101 037 00 1 00 030025 PNTMSG @$PNAME ;PRINT PROGRAM NAME
1624 002102 037 02 0 00 004736 PMSG <VERSION >
1625 002103 554 00 0 00 000137 HLRZ JOBVER
1626 002104 037 16 0 00 000003 PNTOCS ;PRINT MCN LEVEL
1627 002105 037 00 0 00 000056 PNTCI "."
1628 002106 550 00 0 00 000137 HRRZ JOBVER
1629 002107 037 16 0 00 000003 PNTOCS ;PRINT DEC VERSION
1630 002110 037 02 0 00 004740 PMSG <, SV=>
1631 002111 554 00 0 00 001006 HLRZ SUBVER
1632 002112 037 16 0 00 000003 PNTOCS ;PRINT "SUBRTN" MCN LEVEL
1633 002113 037 00 0 00 000056 PNTCI "."
1634 002114 550 00 0 00 001006 HRRZ SUBVER
1635 002115 037 16 0 00 000003 PNTOCS ;PRINT "SUBRTN" DEC VERSION
1636
1637 002116 336 00 0 00 030516 SKIPN MONTYP
1638 002117 037 02 0 00 004741 PMSG <, TOPS-10>
1639 002120 332 00 0 00 030516 SKIPE MONTYP
1640 002121 037 02 0 00 004743 PMSG <, TOPS-20>
1641
1642 002122 332 00 0 00 030041 SKIPE KLFLG
1643 JRST [SKIPE SM10
1644 JRST [PMSG <, KS10>
1645 JRST $PNM3]
1646 PMSG <, KL10>
1647 002123 254 00 0 00 004753 JRST $PNM3]
1648 002124 336 00 0 00 030040 SKIPN KAIFLG
1649 JRST [PMSG <, KA10>
1650 002125 254 00 0 00 004761 JRST $PNM3]
1651 002126 037 02 0 00 004763 PMSG <, KI10>
1652
1653 002127 336 00 0 00 005326 $PNM3: SKIPN $$SNX ;ANY SERIAL NUMBER ?
1654 002130 254 00 0 00 002134 JRST $PNM2 ;NO
1655 002131 037 02 0 00 004765 PMSG <, CPU#=>
1656 002132 200 00 0 00 005326 MOVE $$SNX
1657 002133 037 15 0 00 000000 PNTDEC ;PRINT SERIAL NUMBER
1658
1659 002134 037 00 0 00 030242 $PNM2: PCRL
1660 002135 263 17 0 00 000000 RTN ;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 23
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0294
1661 SUBTTL *SUBRTN* INTERRUPT HANDLING ROUTINES
1662 LALL
1663
1664 ;*PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
1665 S^;*********************************************************************^
1666 SALL
1667 002136 037 04 0 00 004767 PSHERR: PMSGF <^*****^PLIST UFLOW^>
1668 002137 037 15 0 00 000004 FATAL ;PRINT LOCATION AND EXIT
1669 LALL
1670 S^;*********************************************************************^
1671 ;*INTERRUPT ROUTINE INITIALIZATION
1672 S^;*********************************************************************^
1673 SALL
1674 002140 332 00 0 00 030516 $ITRIN: SKIPE MONTYP
1675 002141 254 00 0 00 002147 JRST .+6
1676 002142 201 00 0 00 002321 MOVEI ITRUSR ;TOPS10, SETUP USER APR TRAPPING
1677 002143 202 00 0 00 000125 MOVEM JOBAPR
1678 002144 201 00 0 00 234000 MOVEI PDLOVU!MPVU!NXMU!PARU
1679 002145 047 00 0 00 000016 APRENB ;ENABLE PROCESSOR TRAPS
1680 002146 263 17 0 00 000000 RTN
1681
1682 002147 201 01 0 00 400000 MOVEI 1,.FHSLF ;CURRENT PROCESS
1683 002150 200 02 0 00 004773 MOVE 2,[LEVTAB,,CHNTAB]
1684 002151 104 00 0 00 000125 SIR ;SPECIFY INTERRUPT TABLES
1685 002152 104 00 0 00 000126 EIR ;ENABLE SYSTEM
1686 002153 200 02 0 00 004774 MOVE 2,[1B1+1B<.ICPOV>+1B<.ICILI>+1B<.ICIRD>+1B<.ICIWR>]
1687 002154 104 00 0 00 000131 AIC ;ACTIVATE CHANNELS
1688 002155 200 01 0 00 004775 MOVE 1,[.TICCG,,1]
1689 002156 104 00 0 00 000137 ATI ;ASSIGN CTRL/G TO CHANNEL 1
1690 002157 263 17 0 00 000000 RTN
1691 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 24
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0295
1692 ;*INTERRUPT TABLES
1693 S^;*********************************************************************^
1694 SALL
1695
1696 002160 000000 000000 LEVTAB: 0 ;LEVEL TABLE
1697 002161 000000 002163 PC2
1698 002162 000000 000000 0
1699
1700 002163 000000 000000 PC2: 0
1701
1702 002164 000000 000000 CHNTAB: 0 ;CHANNEL TABLE
1703 002165 000002 002230 2,,CNTRLG ;CHANNEL 1 IS CTRL/G
1704 REPEAT ^D7,<0> ;CHANNEL 2-8 NOT USED
1705 002166 000000 000000
1706 002167 000000 000000
1707 002170 000000 000000
1708 002171 000000 000000
1709 002172 000000 000000
1710 002173 000000 000000
1711 002174 000000 000000
1712 002175 000002 002257 2,,PDLINT ;CHANNEL 9 IS PDL
1713 REPEAT ^D5,<0> ;CHANNEL 10-14 NOT USED
1714 002176 000000 000000
1715 002177 000000 000000
1716 002200 000000 000000
1717 002201 000000 000000
1718 002202 000000 000000
1719 002203 000002 002264 2,,IININT ;CHANNEL 15 IS ILLEGAL INST
1720 002204 000002 002267 2,,IMRINT ;CHANNEL 16 IS ILLEGAL MEMORY READ
1721 002205 000002 002272 2,,IMWINT ;CHANNEL 17 IS ILLEGAL MEMORY WRITE
1722 REPEAT ^D18,<0> ;CHANNEL 18-35 NOT USED
1723 002206 000000 000000
1724 002207 000000 000000
1725 002210 000000 000000
1726 002211 000000 000000
1727 002212 000000 000000
1728 002213 000000 000000
1729 002214 000000 000000
1730 002215 000000 000000
1731 002216 000000 000000
1732 002217 000000 000000
1733 002220 000000 000000
1734 002221 000000 000000
1735 002222 000000 000000
1736 002223 000000 000000
1737 002224 000000 000000
1738 002225 000000 000000
1739 002226 000000 000000
1740 002227 000000 000000
1741 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 25
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0296
1742 ;*TOPS20 CONTROL G ROUTINE
1743 S^;*********************************************************************^
1744 SALL
1745 002230 202 00 0 00 005336 CNTRLG: MOVEM 0,$CGAC0#
1746 002231 607 17 0 00 777000 TLNN P,777000 ;CHECK THAT P IS "SUBUSR'S" P
1747 002232 254 00 0 00 002255 JRST CNTRG1 ;NO
1748 002233 602 17 0 00 747000 TRNE P,747000
1749 002234 254 00 0 00 002255 JRST CNTRG1
1750 002235 550 00 0 00 000017 HRRZ 0,P
1751 002236 307 00 0 00 030303 CAIG 0,PLIST
1752 002237 254 00 0 00 002255 JRST CNTRG1
1753 002240 301 00 0 00 030504 CAIL 0,PLISTE
1754 002241 254 00 0 00 002255 JRST CNTRG1
1755 002242 554 00 0 00 000017 HLRZ 0,P
1756 002243 307 00 0 00 777577 CAIG 0,777577
1757 002244 254 00 0 00 002255 JRST CNTRG1
1758 002245 301 00 0 00 777777 CAIL 0,777777
1759 002246 254 00 0 00 002255 JRST CNTRG1
1760
1761 002247 332 00 0 00 030522 SKIPE $$TAX1
1762 002250 256 00 0 00 030522 XCT $$TAX1 ;EXECUTE USER ROUTINE IF SUPPLIED
1763 002251 260 17 0 00 003016 GO $SW0 ;DO SWITCHES
1764 002252 332 00 0 00 030523 SKIPE $$TAX2
1765 002253 256 00 0 00 030523 XCT $$TAX2 ;EXECUTE USER ROUTINE IF SUPPLIED
1766 002254 104 00 0 00 000136 DEBRK ;DISMISS INTERRUPT
1767
1768 002255 200 00 0 00 005336 CNTRG1: MOVE 0,$CGAC0
1769 002256 104 00 0 00 000136 DEBRK
1770 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 26
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0297
1771 ;*TOPS20 INTERRUPT PROCESSOR
1772 S^;*********************************************************************^
1773 SALL
1774
1775 002257 202 00 0 00 030106 PDLINT: MOVEM 0,$ACC0
1776 002260 201 00 0 00 002275 MOVEI $PDOVU ;SETUP TRANSFER
1777 002261 250 00 0 00 002163 $$INT: EXCH PC2
1778 002262 202 00 0 00 030104 MOVEM ITRCH1 ;SAVE TRAPPED ADDRESS
1779 002263 104 00 0 00 000136 DEBRK ;DISMISS INTERRUPT
1780
1781 002264 202 00 0 00 030106 IININT: MOVEM 0,$ACC0
1782 002265 201 00 0 00 002306 MOVEI $IIN
1783 002266 254 00 0 00 002261 JRST $$INT
1784
1785 002267 202 00 0 00 030106 IMRINT: MOVEM 0,$ACC0
1786 002270 201 00 0 00 002315 MOVEI $IMR
1787 002271 254 00 0 00 002261 JRST $$INT
1788
1789 002272 202 00 0 00 030106 IMWINT: MOVEM 0,$ACC0
1790 002273 201 00 0 00 002317 MOVEI $IMW
1791 002274 254 00 0 00 002261 JRST $$INT
1792
1793 002275 202 17 0 00 005370 $PDOVU: MOVEM P,$PDOVP#
1794 002276 200 17 0 00 030303 MOVE P,PLIST ;RESET POINTER
1795 002277 201 00 0 00 030103 MOVEI 0,$PSHER
1796 002300 261 17 0 00 000000 PUSH P,0
1797 002301 037 02 0 00 004776 PMSG <^*****^PLIST OVERFLOW P=>
1798 002302 200 00 0 00 005370 MOVE 0,$PDOVP
1799 002303 037 13 0 00 000000 PNTHW
1800 002304 400 00 0 00 000000 SETZ
1801 002305 254 00 0 00 002347 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
1802
1803 002306 037 02 0 00 005003 $IIN: PMSG <^*****^ILLEGAL INSTRUCTION >
1804 002307 200 00 0 00 030104 MOVE ITRCH1
1805 002310 370 00 0 00 000000 SOS
1806 002311 200 00 1 00 000000 MOVE @0
1807 002312 037 13 0 00 000000 PNTHW ;PRINT OFFENDING INSTRUCTION
1808 002313 400 00 0 00 000000 SETZ
1809 002314 254 00 0 00 002347 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
1810
1811 002315 201 00 0 00 005010 $IMR: MOVEI SIXBTZ <^ILLEGAL MEMORY READ>
1812 002316 254 00 0 00 002347 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
1813
1814 002317 201 00 0 00 005014 $IMW: MOVEI SIXBTZ <^ILLEGAL MEMORY WRITE>
1815 002320 254 00 0 00 002347 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
1816
1817 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 27
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0298
1818 ;*TOPS10 USER INTERRUPT HANDLER
1819 S^;*********************************************************************^
1820 SALL
1821
1822 002321 202 00 0 00 030106 ITRUSR: MOVEM $ACC0
1823 002322 200 00 0 00 000127 MOVE JOBTPC
1824 002323 202 00 0 00 030104 MOVEM ITRCH1 ;SAVE TRAPPED ADDRESS
1825 002324 200 00 0 00 000126 MOVE JOBCNI ;GET CAUSE
1826 002325 602 00 0 00 004000 TRNE PARU
1827 002326 254 00 0 00 002343 $UPAR: JRST $PAREX ;PARITY ERROR
1828 002327 602 00 0 00 200000 TRNE PDLOVU
1829 002330 254 00 0 00 002275 $UPDL: JRST $PDOVU ;PUSHDOWN OVERFLOW
1830 002331 602 00 0 00 020000 TRNE MPVU
1831 002332 254 00 0 00 002337 $UMPV: JRST $MPVU ;MEMORY PROTECTION VIOLATION
1832 002333 602 00 0 00 010000 TRNE NXMU
1833 002334 254 00 0 00 002341 $UNXM: JRST $NXMU ;NON-X-MEMORY
1834
1835 002335 201 00 0 00 005020 MOVEI SIXBTZ <^UNKNOWN INTERRUPT>
1836 002336 254 00 0 00 002347 JRST $ITR1A
1837
1838 002337 201 00 0 00 005024 $MPVU: MOVEI SIXBTZ <^MEMORY PROT>
1839 002340 254 00 0 00 002347 JRST $ITR1A
1840
1841 002341 201 00 0 00 005027 $NXMU: MOVEI SIXBTZ <^NON-X-MEMORY>
1842 002342 254 00 0 00 002347 JRST $ITR1A
1843
1844 002343 200 00 0 00 030106 $PAREX: MOVE $ACC0
1845 002344 256 00 0 00 030100 XCT $PARER ;EXECUTE USERS ROUTINE IF SUPPLIED
1846 002345 201 00 0 00 005032 MOVEI SIXBTZ <^MEMORY PARITY>
1847 002346 254 00 0 00 002347 JRST $ITR1A
1848 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 28
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0299
1849 ;*COMMON INTERRUPT HANDLERS
1850 ;*PRINT CAUSE AND OTHER PERTINENT INFO
1851 S^;*********************************************************************^
1852 SALL
1853 002347 261 17 0 00 000000 $ITR1A: PUT 0
1854 002350 037 01 0 00 000026 PFORCE
1855 002351 262 17 0 00 000000 GET 0
1856
1857 002352 332 00 0 00 000000 $ITR1B: SKIPE 0
1858 002353 037 14 0 00 000003 PSIXL ;PRINT CAUSE
1859 002354 037 02 0 00 005035 PMSG <^FLAGS PC PROG^>
1860 002355 200 00 0 00 030104 MOVE ITRCH1
1861 002356 037 13 0 00 000000 PNTHW ;PRINT FLAGS, PC
1862 002357 037 00 0 00 000040 PSP
1863 002360 550 00 0 17 000000 HRRZ 0,(P)
1864 002361 037 06 0 00 000000 PNT6 ;PRINT LAST PUSHJ ENTRY
1865 002362 037 00 0 00 030242 PCRL
1866 002363 200 00 0 00 030106 MOVE 0,$ACC0
1867 002364 256 00 0 00 030072 XCT $ITRX1 ;EXECUTE USER ROUTINE, IF SUPPLIED
1868 002365 037 15 0 00 000004 FATAL
1869
1870 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 29
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES SEQ 0300
1871 SUBTTL *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
1872 LALL
1873 ;*END OF PASS ROUTINE
1874 S^;*********************************************************************^
1875 SALL
1876 002366 350 00 0 00 030047 $END: AOS PASCNT ;INCREMENT PASS COUNTER
1877 002367 370 00 0 00 030024 SOS ITRCNT
1878 002370 402 00 0 00 030116 SETZM SCOPE
1879 002371 402 00 0 00 030052 SETZM ERRPC
1880 002372 260 17 0 00 002747 GO $SWTCH
1881 002373 603 00 0 00 400000 TLNE ABORT ;ABORT AT END OF PASS ?
1882 002374 254 00 0 00 002400 JRST $END2 ;YES
1883 002375 336 00 0 00 030024 SKIPN ITRCNT
1884 002376 254 00 0 00 002405 $END1: JRST $END3 ;SKIP RETURN, COMPLETED ALL ITERATIONS
1885 002377 263 17 0 00 000000 RTN ;NON - SKIP , KEEP RUNNING
1886 002400 037 04 0 00 005041 $END2: PMSGF <END PASS >
1887 002401 200 00 0 00 030047 MOVE PASCNT ;PRINT END OF PASS COUNT
1888 002402 037 15 0 00 000001 PNTDCF
1889 002403 037 01 0 00 000056 PNTCIF "."
1890 002404 037 01 0 00 030242 PCRLF
1891 002405 350 00 0 17 000000 $END3: AOS (P)
1892 002406 263 17 0 00 000000 RTN
1893 LALL
1894
1895 ;*END OF PROGRAM ROUTINE
1896 S^;*********************************************************************^
1897
1898 002407 332 00 0 00 030044 $EOP: SKIPE MONTEN ;USER, LOADED BY ITSELF ?
1899 002410 254 00 1 00 030012 JRST @RETURN ;NO, RETURN TO LOADER
1900 002411 336 00 0 00 030516 SKIPN MONTYP
1901 002412 047 00 0 00 000012 EXIT
1902 002413 104 00 0 00 000170 HALTF ;YES, EXIT
1903 002414 254 00 0 00 030000 JRST BEGIN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 30
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* MEMORY MANAGMENT ROUTINES SEQ 0301
1904 SUBTTL *SUBRTN* MEMORY MANAGMENT ROUTINES
1905
1906 S^;*********************************************************************^
1907 ;*THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
1908 ;*ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
1909 ;* $MPCNK (MAPCNK) ACTUAL MEMORY CHUNK MAPPER
1910 ;* $MPSET (MAPSET) SETS UP PAGE MAP FOR KI10
1911 ;* $MSEG (MEMSEG) SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
1912 ;* $MZRO (MEMZRO) ZERO'S THE MAPPED MEMORY
1913 ;* $MPADR (MAPADR) VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
1914 S^;*********************************************************************^
1915
1916 002415 402 00 0 00 030146 $MEMMP: SETZM MEMSIZ ;USER MEMORY STARTS AT 0
1917 002416 550 00 0 00 000044 HRRZ JOBREL ;GET HIGHEST REL ADDRESS
1918 002417 202 00 0 00 030147 MOVEM MEMSIZ+1 ;SAVE AS MEMORY SIZE
1919 002420 476 00 0 00 030150 SETOM MEMSIZ+2 ;FLAG END OF MEMSIZ TABLE
1920 002421 402 00 0 00 030143 SETZM MAPNEW ;CLEAR 4096K MAPPING FLAG
1921 002422 254 00 0 00 002567 JRST $PMAP ;GO PRINT MAP
1922
1923 S^;*********************************************************************^
1924 ;*MEMSEG, ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
1925 ;* 11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
1926 ;* USER MODE, 1-37 ALWAYS RETURNS 0
1927 ;* GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
1928 ;*RETURNED IN AC0:
1929 ;* 0 - NO MEMORY AVAILABLE
1930 ;* START ADDRESS,,END ADDRESS
1931 ;*RETURNS +1
1932 S^;*********************************************************************^
1933
1934 002423 202 01 0 00 005330 $MSEG: MOVEM 1,$ACMP5# ;AC1 = TEMP STORAGE POINTER
1935 002424 202 02 0 00 005331 MOVEM 2,$ACMP6# ;AC2 = MAP STORAGE POINTER
1936 002425 202 03 0 00 005332 MOVEM 3,$ACMP7# ;AC3 = CHUNK START ADR
1937 002426 202 04 0 00 005333 MOVEM 4,$ACMP8# ;AC4 = CHUNK END ADR
1938 002427 202 05 0 00 005334 MOVEM 5,$ACMP9# ;AC5 = PAGE COUNTER
1939 002430 403 05 0 00 005347 SETZB 5,$MNCON# ;SAVED AC1 - AC5
1940 002431 603 00 0 00 777760 TLNE 0,777760 ;VALID ARGUMENT ?
1941 002432 037 15 0 00 000004 FATAL ;NO
1942 002433 322 00 0 00 002465 JUMPE 0,$MSKA ;USER MODE, SEGMENT 0 ONLY
1943 002434 301 00 0 00 000040 CAIL 0,40 ;IF 1-37, NO MEMORY
1944 002435 254 00 0 00 002445 JRST $MSKAP ;PHY, DO DIRECT PHYSICAL
1945
1946 002436 200 00 0 00 000005 $MSEG3: MOVE 0,5 ;AC0 = RESULTS (SEE TITLE BLOCK)
1947 002437 200 01 0 00 005330 MOVE 1,$ACMP5 ;RESTORE AC'S
1948 002440 200 02 0 00 005331 MOVE 2,$ACMP6
1949 002441 200 03 0 00 005332 MOVE 3,$ACMP7
1950 002442 200 04 0 00 005333 MOVE 4,$ACMP8
1951 002443 200 05 0 00 005334 MOVE 5,$ACMP9
1952 002444 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 31
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* MEMORY MANAGMENT ROUTINES SEQ 0302
1953 ;*PHYSICAL CORE ASSIGNMENT
1954 S^;*********************************************************************^
1955
1956 002445 303 00 0 00 777000 $MSKAP: CAILE 0,777000 ;REQUEST FOR OVER 256K ?
1957 002446 254 00 0 00 002436 JRST $MSEG3 ;YES, NO MEMORY
1958
1959 002447 200 01 0 00 000000 $MSEGP: MOVE 1,0
1960 002450 620 01 0 00 000777 TRZ 1,777 ;MAKE PHYSICAL EVEN PAGE
1961 002451 400 04 0 00 000000 SETZ 4,
1962 002452 200 00 0 04 030146 MOVE MEMSIZ(4) ;GET START ADDRESS
1963 002453 321 00 0 00 002436 JUMPL $MSEG3 ;IF END OF TABLE, NO CORE ..EXIT
1964 002454 315 01 0 00 000000 CAMGE 1,0 ;PHY = OR GT START ?
1965 002455 254 00 0 00 002436 JRST $MSEG3 ;NO, NO CORE ...EXIT
1966 002456 200 00 0 04 030147 MOVE MEMSIZ+1(4) ;GET END ADDRESS
1967 002457 271 04 0 00 000002 ADDI 4,2
1968 002460 311 01 0 00 000000 CAML 1,0 ;PHY GT END ?
1969 002461 254 00 0 00 002452 JRST .-7 ;YES, TRY NEXT CHUNK
1970
1971 002462 200 05 0 00 000000 MOVE 5,0 ;1= PHY ADR, 0= END ADR
1972 002463 504 05 0 00 000001 HRL 5,1 ; START ADR,,END ADR
1973 002464 254 00 0 00 002436 JRST $MSEG3 ;EXIT
1974
1975 002465 200 01 0 00 000000 $MSKA: MOVE 1,0
1976 002466 242 01 0 00 000001 LSH 1,1 ;DOUBLE, 2 ENTRIES PER
1977 002467 200 00 0 01 030146 MOVE 0,MEMSIZ(1) ;GET START ADDRESS
1978 002470 321 00 0 00 002436 JUMPL 0,$MSEG3 ;NO MEMORY ...EXIT
1979 002471 200 02 0 01 030147 MOVE 2,MEMSIZ+1(1) ;GET END ADDRESS
1980 002472 322 02 0 00 002436 JUMPE 2,$MSEG3 ;NO MEMORY ...EXIT
1981 002473 326 00 0 00 002475 JUMPN 0,.+2 ;IF START ADDRESS IS 0
1982 002474 200 00 0 00 030145 MOVE 0,MEMLOW ;USE 'MEMLOW'
1983 002475 317 02 0 00 000000 CAMG 2,0 ;END GREATER THAN START ?
1984 002476 037 15 0 00 000004 FATAL ;NO ...ABORT
1985 002477 200 05 0 00 000002 MOVE 5,2 ;SETUP START ADR,,END ADR
1986 002500 504 05 0 00 000000 HRL 5,0
1987 002501 254 00 0 00 002436 JRST $MSEG3 ;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 32
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* MEMORY MANAGMENT ROUTINES SEQ 0303
1988 S^;*********************************************************************^
1989 ;*MEMZRO, ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
1990 ;*MAPNEW = 0 DIRECT MEMORY ZERO
1991 S^;*********************************************************************^
1992
1993 002502 202 01 0 00 005354 $MZRO: MOVEM 1,$MZROB# ;SAVE AC1 & AC2
1994 002503 202 02 0 00 005355 MOVEM 2,$MZROC#
1995
1996 002504 400 02 0 00 000000 $MZRO2: SETZ 2, ;DIRECT MEMORY ZERO
1997 002505 200 00 0 00 030145 MOVE 0,MEMLOW ;START ADDRESS
1998 002506 311 00 0 00 030147 CAML 0,MEMSIZ+1
1999 002507 254 00 0 00 002521 JRST $MZROX
2000 002510 254 00 0 00 002513 JRST .+3
2001 002511 200 00 0 02 030146 $MZRO3: MOVE 0,MEMSIZ(2) ;SEGMENT START ADDRESS
2002 002512 321 00 0 00 002521 JUMPL 0,$MZROX ;DONE
2003 002513 402 00 1 00 000000 SETZM @0
2004 002514 507 00 0 00 000000 HRLS ;CREATE BLT POINTER
2005 002515 271 00 0 00 000001 ADDI 1
2006 002516 251 00 1 02 030147 BLT 0,@MEMSIZ+1(2) ;ZERO DIRECT
2007 002517 271 02 0 00 000002 ADDI 2,2
2008 002520 254 00 0 00 002511 JRST $MZRO3 ;DO NEXT SEGMENT
2009
2010 002521 200 02 0 00 005355 $MZROX: MOVE 2,$MZROC ;RESTORE AC'S
2011 002522 200 01 0 00 005354 MOVE 1,$MZROB
2012 002523 263 17 0 00 000000 RTN ;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 33
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* MEMORY MANAGMENT ROUTINES SEQ 0304
2013 S^;*********************************************************************^
2014 ;*MAPADR, VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
2015 ;*SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KI10 PAGE INACCESSIBLE
2016 S^;*********************************************************************^
2017
2018 002524 202 01 0 00 005353 $MPADR: MOVEM 1,$MPAC0#
2019 002525 550 01 0 00 000000 HRRZ 1,0
2020 002526 307 01 0 00 000017 CAIG 1,17 ;ACCUMULATOR ADDRESS ?
2021 002527 254 00 0 00 002550 JRST $MPAD3-1 ;YES
2022
2023 002530 200 00 0 00 030046 MOVE CONSW
2024 002531 336 00 0 00 030511 SKIPN PVPAGI
2025 002532 607 00 0 00 000100 TLNN INHPAG
2026 002533 254 00 0 00 002535 JRST .+2
2027 002534 254 00 0 00 002556 JRST $MPAD2 ;PAGING INHIBITED
2028 002535 332 00 0 00 030041 SKIPE KLFLG ;KL10 ?
2029 002536 254 00 0 00 002565 JRST $MPADL ;YES
2030 002537 336 00 0 00 030040 SKIPN KAIFLG ;KA10 ?
2031 002540 254 00 0 00 002556 JRST $MPAD2 ;YES
2032
2033 002541 257 00 0 01 000000 $MPAD6: MAP 0,(1) ;KI10, GET RELOCATION DATA
2034 002542 602 00 0 00 400000 TRNE 0,400000 ;PAGE FAILURE ?
2035 002543 254 00 0 00 002553 JRST $MPAD4 ;YES, SEE IF VALID ANYWAY
2036 002544 620 00 0 00 760000 $MPAD5: TRZ 0,760000 ;CLEAR P,W,S, NO MATCH BITS
2037 002545 242 00 0 00 000011 LSH 0,^D9 ;HI-ORDER 13 FROM MAP
2038 002546 405 01 0 00 000777 ANDI 1,777 ;LO-ORDER 9 FROM VIRTUAL
2039 002547 434 00 0 00 000001 OR 0,1 ;COMBINE
2040 002550 350 00 0 17 000000 $MPAD7: AOS (P) ;SKIP RETURN
2041 002551 200 01 0 00 005353 $MPAD3: MOVE 1,$MPAC0
2042 002552 263 17 0 00 000000 RTN
2043
2044 002553 602 00 0 00 020000 $MPAD4: TRNE 0,20000 ;PAGE FAILURE, ALSO NO MATCH ?
2045 002554 254 00 0 00 002551 JRST $MPAD3 ;YES, ERROR
2046 002555 254 00 0 00 002544 JRST $MPAD5 ;MATCH (RELOCATION VALID)
2047
2048 002556 200 00 0 00 000001 $MPAD2: MOVE 0,1 ;KA10
2049 002557 561 00 0 00 000001 HRROI 1
2050 002560 047 00 0 00 000041 CALLI 41 ;GETTAB - RELOCATION TABLE
2051 002561 400 00 0 00 000000 SETZ ;ERROR
2052 002562 550 00 0 00 000000 HRRZ ;RELOCATION ONLY
2053 002563 270 00 0 00 000001 ADD 0,1 ;RELOC + VIRTUAL = PHYSICAL
2054 002564 254 00 0 00 002550 JRST $MPAD7
2055
2056 002565 200 00 0 00 000001 $MPADL: MOVE 0,1 ;MAP ILLEGAL ON KL10
2057 002566 254 00 0 00 002550 JRST $MPAD7 ;SO VIRTUAL GIVEN BACK
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 34
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* MEMORY MANAGMENT ROUTINES SEQ 0305
2058 ;*MAPPNT, PRINT MEMORY MAP
2059 S^;*********************************************************************^
2060
2061 SALL
2062 002567 400 04 0 00 000000 $PMAP: SETZ 4,
2063 002570 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
2064 002571 254 00 0 00 002573 JRST $PMAP3 ;NO
2065 002572 254 00 0 00 002575 JRST $PMAP1 ;YES
2066 002573 336 00 0 00 030056 $PMAP3: SKIPN $ONETM ;FIRST TIME ?
2067 002574 474 04 0 00 000000 SETO 4, ;YES, SET FLAG FOR PRINTING
2068 002575 322 04 0 00 002600 $PMAP1: JUMPE 4,$PMAPL-1 ;NO
2069
2070 002576 037 02 0 00 005043 PMSG <^MEMORY MAP =^FROM TO SIZE/K>
2071
2072 002577 037 00 0 00 030242 PCRL
2073 002600 403 03 0 00 000005 SETZB 3,5
2074
2075 002601 322 04 0 00 002607 $PMAPL: JUMPE 4,.+6
2076 002602 200 00 0 03 030146 MOVE MEMSIZ(3)
2077 002603 037 10 0 00 000000 PNTADR ;PRINT START ADDRESS
2078 002604 200 00 0 03 030147 MOVE MEMSIZ+1(3)
2079 002605 037 10 0 00 000000 PNTADR ;PRINT END ADDRESS
2080 002606 037 00 0 00 000011 PNTCI " "
2081 002607 200 00 0 03 030147 MOVE MEMSIZ+1(3)
2082 002610 271 00 0 00 000001 ADDI 0,1
2083 002611 274 00 0 03 030146 SUB MEMSIZ(3)
2084 002612 231 00 0 00 002000 IDIVI ^D1024
2085 002613 270 05 0 00 000000 ADD 5,0
2086 002614 322 04 0 00 002616 JUMPE 4,$PMAP4
2087 002615 037 15 0 00 000000 $PMAP7: PNTDEC ;PRINT DECIMAL SIZE
2088
2089 002616 202 05 0 00 030144 $PMAP4: MOVEM 5,MEMTOT ;SAVE TOTAL # OF K
2090 002617 550 00 0 00 000121 HRRZ JOBFF ;SETUP LOWEST USABLE
2091 002620 271 00 0 00 001000 ADDI 1000 ;MEMORY ADDRESS
2092 002621 620 00 0 00 000777 TRZ 777 ;EVEN BREAK ABOVE JOBFF
2093 002622 202 00 0 00 030145 MOVEM MEMLOW
2094 002623 322 04 0 00 002625 JUMPE 4,$PMAP6 ;RETURN
2095 002624 037 00 0 00 030242 PCRL
2096
2097 002625 263 17 0 00 000000 $PMAP6: RTN ;EXIT
2098 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 35
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0306
2099 SUBTTL *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
2100 S^;*********************************************************************^
2101
2102 002626 260 17 0 00 002747 $MODDV: GO $SWTCH ;LOAD SWITCHES INTO AC0
2103 002627 607 00 0 00 000040 TLNN 0,MODDVC ;DEVICE CODE CHANGE SELECTED ?
2104 002630 263 17 0 00 000000 RTN ;NO, DON'T DO IT
2105
2106 002631 202 01 0 00 005350 $MODD0: MOVEM 1,$MODDB# ;SAVE AC'S
2107 002632 202 02 0 00 005351 MOVEM 2,$MODDC#
2108 002633 202 03 0 00 005352 MOVEM 3,$MODDD#
2109
2110 ;*ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
2111 S^;*********************************************************************^
2112 SALL
2113 002634 037 04 0 00 005052 $MODD1: PMSGF <^CHANGE DEVICE CODES,>
2114 002635 260 17 0 00 003430 GO $YESNO ;AFFIRMATIVE ?
2115 002636 254 00 0 00 002732 JRST $MODDX ;NO/NO MORE CHANGES, EXIT
2116
2117 002637 037 04 0 00 005056 $MODD3: PMSGF <OLD DEVICE CODE - >
2118 002640 265 03 0 00 002675 JSP 3,$MODD2 ;GET OLD DEVICE CODE
2119 002641 254 00 0 00 002637 JRST .-2 ;NO RESPONSE ...ASK AGAIN
2120 002642 202 00 0 00 005346 MOVEM 0,$MDVCO# ;SAVE THE OLD CODE
2121
2122 002643 037 04 0 00 005062 $MODD4: PMSGF <NEW DEVICE CODE - >
2123 002644 265 03 0 00 002675 JSP 3,$MODD2 ;GET NEW DEVICE CODE
2124 002645 254 00 0 00 002643 JRST .-2 ;NO RESPONSE ...ASK AGAIN
2125 002646 202 00 0 00 005345 MOVEM 0,$MDVCN# ;SAVE THE NEW CODE
2126
2127 002647 037 04 0 00 005066 $MODD5: PMSGF <CHANGING FROM >
2128 002650 200 01 0 00 005346 MOVE 1,$MDVCO ;GET OLD CODE
2129 002651 265 03 0 00 002712 JSP 3,$MDSRC ;GET THAT CODE OUT OF LIST
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 36
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0307
2130 002652 037 04 0 00 005071 $MODD6: PMSGF < TO >
2131 002653 200 01 0 00 005345 MOVE 1,$MDVCN ;GET NEW CODE
2132 002654 265 03 0 00 002712 JSP 3,$MDSRC ;GET THAT CODE OUT OF LIST (
2133 002655 037 01 0 00 030242 PCRLF
2134
2135 002656 037 04 0 00 005072 $MODD7: PMSGF <VALID CHANGE,>
2136 002657 260 17 0 00 003430 GO $YESNO ;AFFIRMATIVE ?
2137 002660 254 00 0 00 002634 JRST $MODD1 ;NO ...START OVER )
2138 002661 260 17 0 00 002663 GO $MODD8 ;YES ...CHANGE THE LIST
2139 002662 254 00 0 00 002634 JRST $MODD1
2140 LALL
2141
2142 ;*CHANGE THE DEVICE CODE LIST
2143 S^;*********************************************************************^
2144
2145 002663 200 02 0 00 030027 $MODD8: MOVE 2,$MODVL
2146 002664 274 02 0 00 030030 SUB 2,$MODVU
2147 002665 514 02 0 00 000002 HRLZ 2,2
2148 002666 540 02 0 00 030027 HRR 2,$MODVL
2149 002667 200 01 0 00 005345 MOVE 1,$MDVCN
2150 002670 135 00 0 00 005075 LDB 0,[POINT 10,(2),9] ;GET IOT & DEVICE CODE
2151 002671 316 00 0 00 005346 CAMN 0,$MDVCO ;IS IT REQUESTED ONE ?
2152 002672 137 01 0 00 005075 DPB 1,[POINT 10,(2),9] ;YES, MAKE THE CHANGE
2153 002673 253 02 0 00 002670 AOBJN 2,.-3
2154 002674 263 17 0 00 000000 RTN
2155
2156 ;*INPUT OLD CODE AND CHECK FOR VALIDITY
2157 S^;*********************************************************************^
2158
2159 002675 260 17 0 00 003474 $MODD2: GO $TPOCT ;INPUT THE OLD CODE
2160 002676 254 00 1 00 000003 JRST @3 ;NO RESPONSE, RETURN + 1 )
2161
2162 002677 602 00 0 00 000003 $MODD9: TRNE 0,3 ;MUST END IN 0 OR 4
2163 002700 254 00 0 00 002730 JRST $MODER ;ERROR! ASK AGAIN
2164 002701 307 00 0 00 000774 CAIG 0,774 ;IS DEVICE CODE IN PROPER RANGE
2165 002702 305 00 0 00 000014 CAIGE 0,14
2166 002703 254 00 0 00 002730 JRST $MODER ;ERROR, 14 TO 774 ONLY
2167 002704 306 00 0 00 000120 CAIN 0,120 ;CTY MAY NOT CHANGE!
2168 002705 254 00 0 00 002730 JRST $MODER ;ASK AGAIN
2169 002706 660 00 0 00 007000 TRO 0,7000 ;INSERT IOT CODE
2170 002707 242 00 0 00 777776 LSH 0,-2 ;POSITION
2171 002710 350 00 0 00 000003 AOS 3 ;RETURN + 2
2172 002711 254 00 1 00 000003 JRST @3 ;RETURN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 37
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0308
2173 ;*GET THE OLD/NEW CODE FROM DEVICE CODE LIST
2174 S^;*********************************************************************^
2175 SALL
2176 002712 242 01 0 00 000002 $MDSRC: LSH 1,2 ;POSITION FOR COMPARE
2177 002713 620 01 0 00 007000 TRZ 1,7000 ;MASK IOT
2178 002714 200 02 0 00 005076 MOVE 2,[-$MDEND,,$MDLST]
2179 002715 135 00 0 00 005077 LDB [POINT 9,(2),35] ;EXTRACT CODE FROM LIST
2180 002716 316 00 0 00 000001 CAMN 0,1 ;IS THIS THE ONE?
2181 002717 254 00 0 00 002724 JRST $MDSR2 ;YES! ...PRINT IT & EXIT
2182 002720 253 02 0 00 002715 AOBJN 2,.-3 ;NOT YET ...GET NEXT
2183 002721 200 00 0 00 000001 MOVE 0,1
2184 002722 037 03 0 00 000001 PNT3F
2185
2186 002723 254 00 1 00 000003 $MDSR1: JRST @3 ;RETURN
2187 002724 200 00 0 02 000000 $MDSR2: MOVE 0,(2)
2188 002725 620 00 0 00 000777 TRZ 0,777 ;MASK CODE
2189 002726 037 01 0 00 000002 PNTSXF ;PRINT IT
2190 002727 254 00 0 00 002723 JRST $MDSR1 ;EXIT
2191
2192 002730 037 04 0 00 005100 $MODER: PMSGF <^DEV CODE ERR, 14-774 ONLY^>
2193 002731 254 00 0 00 002637 JRST $MODD3 ;ASK WHICH ONE TO CHANGE AGAIN
2194
2195 002732 200 03 0 00 005352 $MODDX: MOVE 3,$MODDD ;RESTORE AC'S
2196 002733 200 02 0 00 005351 MOVE 2,$MODDC
2197 002734 200 01 0 00 005350 MOVE 1,$MODDB
2198 002735 263 17 0 00 000000 RTN ;EXIT
2199 LALL
2200 ;*DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
2201 ;* AC0 = [OLD,,NEW]
2202 S^;*********************************************************************^
2203
2204 002736 242 00 0 00 777776 $MODDP: LSH AC0,-2 ;RIGHT JUSTIFY
2205 002737 434 00 0 00 005105 OR AC0,[1600,,1600] ;INSERT IOT CODE
2206 002740 556 00 0 00 005346 HLRZM $MDVCO ;SETUP OLD CODE
2207 002741 552 00 0 00 005345 HRRZM $MDVCN ;SETUP NEW CODE
2208 002742 202 01 0 00 005350 MOVEM 1,$MODDB
2209 002743 202 02 0 00 005351 MOVEM 2,$MODDC
2210 002744 202 03 0 00 005352 MOVEM 3,$MODDD
2211
2212 002745 260 17 0 00 002663 GO $MODD8 ;CHANGE CODES
2213 002746 254 00 0 00 002732 JRST $MODDX ;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 38
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0309
2214 SUBTTL *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
2215 S^;*********************************************************************^
2216 ;*INPUT CONSOLE SWITCHES IN EXEC MODE OR IN
2217 ;*USER MODE IF NON-TTY SWITCH CONTROL
2218 S^;*********************************************************************^
2219
2220 002747 332 00 0 00 030521 $SWTCH: SKIPE $$TOGGLE ;SWITCHES PREVENTED ?
2221 002750 254 00 0 00 002770 JRST $SWU2 ;YES, USE C(CONSW)
2222 002751 336 00 0 00 005403 SKIPN $SWFLG ;BEEN INITED ?
2223 002752 254 00 0 00 002766 JRST $SWU1 ;NO, USE SAVED SWITCHES
2224 002753 332 00 0 00 005417 SKIPE $USWTF ;TTY SWITCH CONTROL ?
2225 002754 254 00 0 00 002766 JRST $SWU1 ;YES, USE SAVED SWITCHES
2226 002755 254 00 0 00 002762 JRST $SWUSR ;USER MODE
2227 002756 335 00 0 00 030043 $SWCH1: SKIPGE MONCTL ;MONITR CONTROL ?
2228 002757 540 00 0 00 030043 HRR 0,MONCTL ;YES, USE PRESTORED RH SWITCHES
2229 002760 202 00 0 00 030046 MOVEM 0,CONSW ;SAVE
2230 002761 263 17 0 00 000000 RTN ;EXIT
2231 002762 400 00 0 00 000000 $SWUSR: SETZ ;KL'S DON'T HAVE SWITCHES
2232 002763 336 00 0 00 030516 SKIPN MONTYP
2233 002764 047 00 0 00 000020 CALLI 20 ;TOPS10 SWITCH CALL
2234 002765 202 00 0 00 030046 MOVEM AC0,CONSW
2235 002766 200 00 0 00 030046 $SWU1: MOVE 0,CONSW
2236 002767 254 00 0 00 002756 JRST $SWCH1
2237 002770 200 00 0 00 030046 $SWU2: MOVE 0,CONSW
2238 002771 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 39
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0310
2239 ;*SWITCH INITIALIZATION ROUTINE
2240 S^;*********************************************************************^
2241 SALL
2242 002772 402 00 0 00 005417 $SWTIN: SETZM $USWTF# ;CLEAR TTY CONTROL FLAG
2243 002773 402 00 0 00 005404 SETZM $SWONCE#
2244 002774 260 17 0 00 003016 GO $SW0 ;INIT SWITCH ROUTINE
2245 002775 476 00 0 00 005404 $SWIN1: SETOM $SWONCE
2246 002776 476 00 0 00 005403 SETOM $SWFLG ;SET INITED FLAG
2247 002777 260 17 0 00 002747 GO $SWTCH ;READ CONSOLE SWITCHES
2248 003000 603 00 0 00 020000 TLNE PNTLPT ;PRINT ON LPT/LOGICAL DEVICE ?
2249 003001 260 17 0 00 002101 GO $PNTNM+2 ;YES ...PRINT PROGRAM NAME
2250 003002 200 00 0 00 030046 MOVE CONSW
2251 003003 603 00 0 00 000004 TLNE CHAIN ;IN CHAIN MODE ?
2252 003004 263 17 0 00 000000 RTN ;YES, DON'T PRINT FOLLOWING
2253 003005 335 00 0 00 030043 SKIPGE MONCTL
2254 003006 263 17 0 00 000000 RTN ;DIAGNOSTIC MONITOR
2255 003007 332 00 0 00 030521 SKIPE $$TOGGLE
2256 003010 254 00 0 00 003015 JRST .+5
2257 003011 037 04 0 00 004705 PMSGF <^SWITCHES = >
2258 003012 200 00 0 00 030046 MOVE CONSW ;GET THE SAVED SWITCHES
2259 003013 037 13 0 00 000001 PNTHWF ;PRINT PRESENT SWITCH SETTINGS
2260 003014 037 01 0 00 030242 PCRLF
2261 003015 263 17 0 00 000000 RTN ;EXIT
2262 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 40
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0311
2263 ;*SWITCH INITIALIZATION ROUTINE
2264 S^;*********************************************************************^
2265 SALL
2266 003016 261 17 0 00 000000 $SW0: PUT 0
2267 003017 332 00 0 00 030521 SKIPE $$TOGGLE ;SWITCHES PREVENTED ?
2268 003020 254 00 0 00 003076 JRST $SW9+2 ;YES, USE C(CONSW)
2269 003021 335 00 0 00 030043 SKIPGE MONCTL ;DIAGNOSTIC MONITOR MODE ?
2270 003022 254 00 0 00 003100 JRST $SW10 ;YES
2271 003023 336 00 0 00 005404 SKIPN $SWONCE ;INITIALIZATION ?
2272 003024 254 00 0 00 003102 JRST $SW11 ;YES
2273 003025 037 04 0 00 004705 $SW12: PMSGF <^SWITCHES = >
2274 003026 200 00 0 00 030046 MOVE CONSW
2275 003027 037 13 0 00 000001 PNTHWF
2276
2277 003030 037 04 0 00 005106 $SW1: PMSGF <^TTY SWITCH CONTROL ? - 0,S, Y OR N <CR> - >
2278 003031 260 17 0 00 003301 GO $OPTLK ;INPUT THE ANSWER
2279 003032 254 00 0 00 003030 JRST $SW1 ;NO CHARACTER RETURNED, ASK AGAIN
2280 003033 306 00 0 00 000015 CAIN 0,15
2281 003034 254 00 0 00 003052 JRST $SWERR ;1ST CHAR CR, ERROR
2282 003035 242 00 0 00 000007 LSH 0,7 ;POSITION 1ST CHAR
2283 003036 202 00 0 00 005402 MOVEM $SW#
2284 003037 260 17 0 00 003301 GO $OPTLK ;INPUT THE CR
2285 003040 254 00 0 00 003030 JRST $SW1 ;NO CHAR, ASK AGAIN
2286 003041 434 00 0 00 005402 OR 0,$SW
2287 003042 306 00 0 00 014015 CAIN 0,14015 ;"0" (CR) ?
2288 003043 254 00 0 00 003054 JRST $SW6 ;YES-USE ALL SWITCHES = 0
2289 003044 306 00 0 00 024615 CAIN 0,24615 ;"S" (CR) ?
2290 003045 254 00 0 00 003074 JRST $SW9 ;YES-USE SAVED SWITCHES
2291 003046 306 00 0 00 026215 CAIN 0,26215 ;"Y" (CR) ?
2292 003047 254 00 0 00 003056 JRST $SW2 ;YES-USE TTY INPUT SWITCHES
2293 003050 306 00 0 00 023415 CAIN 0,23415 ;"N" (CR) ?
2294 003051 254 00 0 00 003072 JRST $SW7 ;YES-READ CONSOLE SWITCHES & RETURN
2295
2296 003052 260 17 0 00 003360 $SWERR: GO $TPCLR ;CLEAR INPUT
2297 003053 254 00 0 00 003030 JRST $SW1 ;ASK AGAIN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 41
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0312
2298 003054 402 00 0 00 000000 $SW6: SETZM 0
2299 003055 254 00 0 00 003066 JRST $SW4
2300
2301 003056 037 04 0 00 005116 $SW2: PMSGF <^LH SWITCHES <# OR ?> - >
2302 003057 260 17 0 00 003474 GO $TPOCT ;INPUT 6 OCTALS
2303 003060 254 00 0 00 003106 JRST $SW13 ;ERROR .....TRY AGAIN
2304 003061 516 00 0 00 005402 HRLZM 0,$SW# ;MOVE LH WORD TO SW
2305
2306 003062 037 04 0 00 005123 $SW3: PMSGF <RH SWITCHES <# OR ?> - >
2307 003063 260 17 0 00 003474 GO $TPOCT ;INPUT 6 OCTALS
2308 003064 254 00 0 00 003113 JRST $SW14 ;ERROR .....TRY AGAIN
2309 003065 500 00 0 00 005402 HLL 0,$SW ;GET LH SWITCHES
2310 003066 202 00 0 00 030046 $SW4: MOVEM 0,CONSW ;SAVE SWITCHES IN CONSW
2311 003067 476 00 0 00 005417 $SW5: SETOM $USWTF ;SET TTY INPUT SWITCH FLAG
2312 003070 262 17 0 00 000000 $SW8: GET 0
2313 003071 263 17 0 00 000000 RTN
2314
2315 003072 402 00 0 00 005417 $SW7: SETZM $USWTF ;N, USE REAL SWITCHES
2316 003073 254 00 0 00 003070 JRST $SW8
2317
2318 003074 332 00 0 00 005404 $SW9: SKIPE $SWONCE ;S, USE SAME AS BEFORE ON "DING" REQUEST
2319 003075 254 00 0 00 003070 JRST $SW8
2320 003076 200 00 0 00 005401 MOVE $SVCSW ;ON INITIALIZATION USE PREVIOUS SWITCHES
2321 003077 254 00 0 00 003066 JRST $SW4
2322
2323 003100 200 00 0 00 020007 $SW10: MOVE 0,DIASWS ;GET DIAMON SWITCHES
2324 003101 254 00 0 00 003066 JRST $SW4
2325
2326 003102 200 00 0 00 005401 $SW11: MOVE 0,$SVCSW ;IF SAVED SW'S ARE ZERO
2327 003103 322 00 0 00 003030 JUMPE 0,$SW1 ;DON'T PRINT THEM
2328 003104 202 00 0 00 030046 MOVEM 0,CONSW
2329 003105 254 00 0 00 003025 JRST $SW12
2330
2331 003106 302 00 0 00 000077 $SW13: CAIE "?" ;QMARK ?
2332 003107 254 00 0 00 003056 JRST $SW2 ;NO, ERROR
2333 003110 201 00 0 00 003152 MOVEI SWTAB
2334 003111 260 17 0 00 003121 GO $SWXX ;PROMPT FOR SWITCHES
2335 003112 254 00 0 00 003061 JRST $SW3-1
2336
2337 003113 302 00 0 00 000077 $SW14: CAIE "?" ;QMARK ?
2338 003114 254 00 0 00 003062 JRST $SW3 ;NO, ERROR
2339 003115 200 00 0 00 030525 MOVE SWPTAB ;GET ADDRESS OF USERS TABLE
2340 003116 322 00 0 00 003062 JUMPE $SW3 ;IF NONE, ERROR
2341 003117 260 17 0 00 003121 GO $SWXX ;PROMPT FOR SWITCHES
2342 003120 254 00 0 00 003065 JRST $SW4-1
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 42
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0313
2343 ;*PROMPT FOR SWITCHES
2344
2345 003121 261 17 0 00 000001 $SWXX: PUT 1
2346 003122 261 17 0 00 000002 PUT 2
2347 003123 261 17 0 00 000003 PUT 3
2348 003124 200 01 0 00 000000 MOVE 1,0 ;PUT SWITCH PROMPT TABLE ADDRESS IN 1
2349 003125 505 01 0 00 777756 HRLI 1,-^D18 ;18 SWITCHES
2350 003126 201 02 0 00 400000 MOVEI 2,400000
2351 003127 400 03 0 00 000000 SETZ 3,
2352 003130 037 01 0 00 030242 PCRLF
2353
2354 003131 200 00 0 01 000000 $SWXX1: MOVE (1) ;GET SIXBIT PROMPT
2355 003132 322 00 0 00 003142 JUMPE 0,$SWXX2 ;IF BLANK, NO PROMPT
2356 003133 037 01 0 00 000002 PNTSXF
2357 003134 037 01 0 00 000011 PNTCIF 11 ;PRINT A TAB
2358 003135 260 17 0 00 003203 GO $SWZZ ;GET SWITCH ANSWER
2359 003136 254 00 0 00 003130 JRST $SWXX1-1 ;ERROR
2360 003137 254 00 0 00 003144 JRST $SWXX3 ;CONTROL Z
2361 003140 254 00 0 00 003174 JRST $SWXX4 ;UPARROW
2362 003141 434 03 0 00 000002 OR 3,2 ;YES, OR SWITCH BIT IN
2363 ;NO, LEAVE SWITCH BIT CLEAR
2364 003142 242 02 0 00 777777 $SWXX2: LSH 2,-1 ;POSITION TO NEXT SWITCH
2365 003143 253 01 0 00 003131 AOBJN 1,$SWXX1
2366 003144 037 01 0 00 030242 $SWXX3: PCRLF
2367 003145 200 00 0 00 000003 MOVE 0,3 ;RETURN SWITCHES IN 0
2368 003146 262 17 0 00 000003 GET 3
2369 003147 262 17 0 00 000002 GET 2
2370 003150 262 17 0 00 000001 GET 1
2371 003151 263 17 0 00 000000 RTN
2372
2373 003152 41 42 57 62 64 00 SWTAB: SIXBIT/ABORT/
2374 003153 62 63 64 41 62 64 SIXBIT/RSTART/
2375 003154 64 57 64 41 54 63 SIXBIT/TOTALS/
2376 003155 56 57 60 56 64 00 SIXBIT/NOPNT/
2377 003156 60 56 64 54 60 64 SIXBIT/PNTLPT/
2378 003157 44 51 56 47 00 00 SIXBIT/DING/
2379 003160 54 57 57 60 45 62 SIXBIT/LOOPER/
2380 003161 45 62 63 64 57 60 SIXBIT/ERSTOP/
2381 003162 60 41 54 45 62 63 SIXBIT/PALERS/
2382 003163 62 45 54 51 41 42 SIXBIT/RELIAB/
2383 003164 64 70 64 51 56 50 SIXBIT/TXTINH/
2384 003165 000000 000000 0
2385 003166 55 57 44 44 66 43 SIXBIT/MODDVC/
2386 003167 000000 000000 0
2387 003170 57 60 62 63 45 54 SIXBIT/OPRSEL/
2388 003171 43 50 41 51 56 00 SIXBIT/CHAIN/
2389 003172 000000 000000 0
2390 003173 000000 000000 0
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 43
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0314
2391 ;*PROCESS PROMPT
2392 ;* CONTROL Z, ENDS PROMPTING
2393 ;* UPARROW, BACK UP ONE PROMPT
2394 ;* Y, SET SWITCH
2395 ;* N, DON'T SET SWITCH
2396 ;* CR, DON'T SET SWITCH
2397
2398 003174 306 02 0 00 400000 $SWXX4: CAIN 2,400000 ;BACKED UP ALL THE WAY ?
2399 003175 254 00 0 00 003202 JRST .+5 ;YES
2400 003176 242 02 0 00 000001 LSH 2,1 ;BACKUP SWITCH BIT
2401 003177 274 01 0 00 004676 SUB 1,[1,,1] ;BACKUP SWITCH TABLE POINTER
2402 003200 336 00 0 01 000000 SKIPN (1) ;THIS POSITION BLANK ?
2403 003201 254 00 0 00 003174 JRST .-5 ;YES, BACK UP ANOTHER
2404 003202 254 00 0 00 003130 JRST $SWXX1-1
2405
2406 003203 037 01 0 00 005127 $SWZZ: PNTMSF [ASCIZ/- Y,N,^ <CR> OR ^Z - /]
2407 003204 260 17 0 00 003301 GO $OPTLK
2408 003205 263 17 0 00 000000 RTN ;NO RESPONSE
2409 003206 306 00 0 00 000032 CAIN "Z"-100
2410 003207 254 00 0 00 003235 JRST $SWZZ1 ;^Z, DONE
2411 003210 306 00 0 00 000136 CAIN "^"
2412 003211 254 00 0 00 003234 JRST $SWZZ2 ;^, BACKUP
2413 003212 306 00 0 00 000015 CAIN 15
2414 003213 254 00 0 00 003232 JRST $SWZZ4 ;CR, SAME AS NO
2415
2416 003214 302 00 0 00 000131 CAIE "Y" ;Y, SET SWITCH BIT
2417 003215 306 00 0 00 000116 CAIN "N" ;N, DON'T SET SWITCH BIT
2418 003216 254 00 0 00 003220 JRST .+2
2419 003217 263 17 0 00 000000 RTN ;NEITHER, ERROR
2420 003220 242 00 0 00 000007 LSH 0,7
2421 003221 202 00 0 00 005405 MOVEM $SWYYY#
2422 003222 260 17 0 00 003301 GO $OPTLK ;GET CR
2423 003223 263 17 0 00 000000 RTN ;NO RESPONSE
2424 003224 434 00 0 00 005405 OR 0,$SWYYY
2425 003225 306 00 0 00 026215 CAIN 0,26215
2426 003226 254 00 0 00 003233 JRST $SWZZ3 ;Y <CR>
2427 003227 306 00 0 00 023415 CAIN 0,23415
2428 003230 254 00 0 00 003232 JRST $SWZZ4 ;N <CR>
2429 003231 263 17 0 00 000000 RTN ;ERROR
2430
2431 003232 350 00 0 17 000000 $SWZZ4: AOS (P) ;NO
2432 003233 350 00 0 17 000000 $SWZZ3: AOS (P) ;YES
2433 003234 350 00 0 17 000000 $SWZZ2: AOS (P) ;UPARROW
2434 003235 350 00 0 17 000000 $SWZZ1: AOS (P) ;CONTROL Z
2435 003236 263 17 0 00 000000 RTN
2436
2437 LALL
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 44
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0315
2438 SUBTTL *SUBRTN* TELETYPE INPUT ROUTINES
2439
2440 S^;*********************************************************************^
2441 ;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
2442 ;*CHARACTER OR NUMBER RETURNED IN AC0.
2443 ;*CALL SEQUENCE IS AS FOLLOWS:
2444 ;* NAME
2445 ;* NO/ERROR RESPONSE RETURN (+ 1)
2446 ;* NORMAL RESPONSE RETURN (+ 2)
2447 ;*$OPTLK = INPUT ANY CHARACTER
2448 ;*$YESNO = ASK QUESTION, CORRECT RESPONSE Y
2449 ;*$NOYES = ASK QUESTION, CORRECT RESPONSE N
2450 ;*$TPOCT = INPUT UP TO 12 OCTALS
2451 ;*$TPDEC = INPUT UP TO 11 DECIMALS
2452 ;*$TPCNV = INPUT UP TO 9 CONVERT'S
2453 ;*$TTLK = KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
2454 ;*$TALTM = KEYBOARD, ALT-MODE CHECK
2455 ;*$TISIX = INPUT UP TO 6 SIXBIT CHARACTERS
2456 S^;*********************************************************************^
2457
2458 ;*TELETYPE INPUT INITIALIZATION
2459 S^;*********************************************************************^
2460 003237 402 00 0 00 005323 $TYPIN: SETZM INUPTR ;CLEAR INPUT POINTER
2461 003240 263 17 0 00 000000 RTN ;NO TYPE-IN AVAILABLE
2462
2463 S^;*********************************************************************^
2464 ;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
2465 ;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
2466 S^;*********************************************************************^
2467
2468 003241 400 00 0 00 000000 $TTLK: SETZ AC0,
2469 003242 335 00 0 00 030043 SKIPGE MONCTL ;NO CHECK IF "MONITOR"
2470 003243 263 17 0 00 000000 RTN
2471 003244 332 00 0 00 030516 SKIPE MONTYP
2472 003245 254 00 0 00 003251 JRST .+4
2473 003246 051 02 0 00 030231 INCHRS $TTCHR ;TOPS10 INPUT CHAR AND SKIP
2474 003247 263 17 0 00 000000 RTN ;NONE AVAILABLE
2475 003250 254 00 0 00 003371 JRST $HEAR4 ;GO PROCESS
2476 003251 261 17 0 00 000001 PUT 1
2477 003252 261 17 0 00 000002 PUT 2
2478 003253 201 01 0 00 000100 MOVEI 1,.PRIIN
2479 003254 104 00 0 00 000102 SIBE ;ANY INPUT AVAILABLE ?
2480 003255 254 00 0 00 003261 JRST .+4 ;YES
2481 003256 262 17 0 00 000002 GET 2
2482 003257 262 17 0 00 000001 GET 1
2483 003260 263 17 0 00 000000 RTN
2484 003261 104 00 0 00 000073 PBIN ;GET INPUT CHAR
2485 003262 202 01 0 00 030231 MOVEM 1,$TTCHR
2486 003263 262 17 0 00 000002 GET 2
2487 003264 262 17 0 00 000001 GET 1
2488 003265 254 00 0 00 003371 JRST $HEAR4 ;CHAR TYPED, GO PROCESS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 45
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0316
2489 S^;*********************************************************************^
2490 ;*TELETYPE IMAGE MODE INPUT
2491 ;*PROVIDES UNBUFFERED MODE INPUT
2492 ;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
2493 S^;*********************************************************************^
2494
2495 003266 332 00 0 00 030516 $TTYIN: SKIPE MONTYP
2496 003267 254 00 0 00 003272 JRST .+3
2497 003270 051 00 0 00 000000 INCHRW ;TOPS10 INPUT CHAR AND WAIT
2498 003271 254 00 0 00 003276 JRST .+5
2499 003272 261 17 0 00 000001 PUT 1
2500 003273 104 00 0 00 000073 PBIN
2501 003274 202 01 0 00 030231 MOVEM 1,$TTCHR
2502 003275 262 17 0 00 000001 GET 1
2503 003276 260 17 0 00 003371 GO $HEAR4 ;PROCESS IT
2504 003277 254 00 0 00 003276 JRST .-1
2505 003300 263 17 0 00 000000 RTN
2506
2507 003301 202 04 0 00 005406 $OPTLK: MOVEM 4,$TACB4#
2508 003302 260 17 0 00 003331 GO $HEAR
2509 003303 254 00 0 00 003302 JRST .-1
2510 003304 350 00 0 17 000000 AOS (P)
2511 003305 201 04 0 00 000001 MOVEI 4,1
2512 003306 202 04 0 00 030225 MOVEM 4,$TWCNT ;INDICATE NO TIMEOUT
2513 003307 200 04 0 00 005406 MOVE 4,$TACB4
2514 003310 263 17 0 00 000000 RTN
2515
2516 S^;*********************************************************************^
2517 ;*TELETYPE ALT-MODE CHECK ROUTINE
2518 S^;*********************************************************************^
2519
2520 003311 260 17 0 00 003241 $TALTM: GO $TTLK
2521 003312 263 17 0 00 000000 RTN ;NO TYPE-IN ...EXIT
2522
2523 003313 302 00 0 00 000175 $TALT2: CAIE 175
2524 003314 306 00 0 00 000176 CAIN 176
2525 003315 254 00 0 00 003320 JRST $TALT1 ;ALT-MODE WAS TYPED
2526 003316 302 00 0 00 000033 CAIE 33
2527 003317 254 00 0 00 003321 JRST .+2 ;NO ALT-MODE
2528
2529 003320 254 00 0 00 030064 $TALT1: JRST CPOPJ1 ;ALT-MODE, RETURN +2
2530
2531 003321 302 00 0 00 000007 CAIE 007 ;IS CHAR A BELL ?
2532 003322 263 17 0 00 000000 RTN
2533 003323 332 00 0 00 030522 SKIPE $$TAX1
2534 003324 256 00 0 00 030522 XCT $$TAX1 ;XCT USERS PRE-ROUTINE
2535 003325 260 17 0 00 003016 GO $SW0 ;YES, DING FOR SWITCH CONTROL
2536 003326 332 00 0 00 030523 SKIPE $$TAX2
2537 003327 256 00 0 00 030523 XCT $$TAX2 ;XCT USERS POST-ROUTINE
2538 003330 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 46
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0317
2539 S^;*********************************************************************^
2540 ;*TELETYPE INPUT CHARACTER
2541 S^;*********************************************************************^
2542
2543 003331 332 00 0 00 030516 $HEAR: SKIPE MONTYP
2544 003332 254 00 0 00 003335 JRST .+3
2545 003333 051 04 0 00 030231 INCHWL $TTCHR ;TOPS10 INPUT CHAR LINE MODE
2546 003334 254 00 0 00 003371 JRST $HEAR4
2547 003335 336 00 0 00 005323 SKIPN INUPTR ;ANY INPUT POINTER ?
2548 003336 254 00 0 00 003343 JRST .+5 ;NO, INPUT CLEARED
2549 003337 134 00 0 00 005323 ILDB 0,INUPTR ;GET CHAR FROM STORE
2550 003340 322 00 0 00 003343 JUMPE 0,.+3 ;USED IT ALL, GET NEW INPUT
2551 003341 202 00 0 00 030231 MOVEM 0,$TTCHR ;SAVE IT
2552 003342 254 00 0 00 003371 JRST $HEAR4 ;GO PROCESS
2553
2554 003343 261 17 0 00 000001 PUT 1
2555 003344 261 17 0 00 000002 PUT 2
2556 003345 261 17 0 00 000003 PUT 3
2557 003346 200 01 0 00 005134 MOVE 1,[POINT 7,D$ISTR]
2558 003347 202 01 0 00 005323 MOVEM 1,INUPTR# ;SETUP INPUT POINTER
2559 003350 200 02 0 00 005135 MOVE 2,[RD%BRK!RD%TOP!^D132]
2560 003351 400 03 0 00 000000 SETZ 3,
2561
2562 003352 104 00 0 00 000523 RDTTY ;GET TTY INPUT FROM MONITOR
2563 003353 254 00 0 00 004530 JRST T20ERR
2564
2565 003354 262 17 0 00 000003 GET 3
2566 003355 262 17 0 00 000002 GET 2
2567 003356 262 17 0 00 000001 GET 1
2568 003357 254 00 0 00 003331 JRST $HEAR ;NOW GO PROCESS
2569
2570 003360 261 17 0 00 000001 $TPCLR: PUT 1
2571 003361 402 00 0 00 005323 SETZM INUPTR ;CLEAR INPUT POINTER
2572 003362 201 01 0 00 000100 MOVEI 1,.PRIIN
2573 003363 336 00 0 00 030516 SKIPN MONTYP
2574 003364 051 11 0 00 000000 CLRBFI ;TOPS10 CLEAR BUFFER
2575 003365 332 00 0 00 030516 SKIPE MONTYP
2576 003366 104 00 0 00 000100 CFIBF ;ERROR, CLEAR TYPE-IN BUFFER
2577 003367 262 17 0 00 000001 GET 1
2578 003370 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 47
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0318
2579 S^;*********************************************************************^
2580 ;*CHARACTER PROCESSING ROUTINE FOR INPUT
2581 ;*CHARACTER RETURNED IN AC0 IS UPPER CASE
2582 ;*ACTUAL CHARACTER IS IN $TTCHR
2583 S^;*********************************************************************^
2584
2585 003371 200 00 0 00 030231 $HEAR4: MOVE 0,$TTCHR ;GET ACTUAL CHARACTER
2586 003372 405 00 0 00 000177 ANDI 0,177 ;CLEAR PARITY BIT
2587 003373 301 00 0 00 000141 CAIL 0,"A"+40 ;CONVERT TO UPPER CASE
2588 003374 303 00 0 00 000172 CAILE 0,"Z"+40
2589 003375 254 00 0 00 003377 JRST .+2
2590 003376 275 00 0 00 000040 SUBI 0,40
2591 003377 202 00 0 00 030232 MOVEM 0,$CHRIN# ;SAVE CHARACTER
2592 003400 302 00 0 00 000015 CAIE 0,15 ;IS IT CR ?
2593 003401 254 00 0 00 003416 JRST $HEAR3 ;NO
2594 003402 402 00 0 00 005335 SETZM $CARCT ;CLEAR CHARACTER COUNTER
2595 003403 336 00 0 00 030516 SKIPN MONTYP
2596 003404 051 00 0 00 000000 INCHRW ;TOPS10 FLUSH LF
2597 003405 332 00 0 00 030516 SKIPE MONTYP
2598 003406 133 00 0 00 005323 IBP INUPTR ;GET RID OF LF
2599 003407 200 00 0 00 030046 MOVE 0,CONSW
2600 003410 607 00 0 00 020000 TLNN 0,PNTLPT ;LPT/LOGICAL DEVICE OUTPUT ?
2601 003411 254 00 0 00 003413 JRST $HEAR2 ;NO
2602 003412 037 00 0 00 030242 PCRL ;YES-ADD CRLF
2603 003413 200 00 0 00 030232 $HEAR2: MOVE 0,$CHRIN ;PUT INPUT CHAR IN AC0
2604 003414 350 00 0 17 000000 AOS (P) ;SKIP RETURN +2
2605 003415 263 17 0 00 000000 RTN ;NORMAL RETURN +1
2606
2607 003416 306 00 0 00 000004 $HEAR3: CAIN 0,04
2608 003417 254 00 0 00 002071 JRST $DDTENT ;CONTROL D, GO TO DDT
2609 003420 200 00 0 00 030046 MOVE 0,CONSW ;GET DATA SWITCHES
2610 003421 607 00 0 00 020000 TLNN 0,PNTLPT ;PRINT ON LPT?
2611 003422 254 00 0 00 003413 JRST $HEAR2 ;NO-EXIT
2612 003423 200 00 0 00 030232 MOVE 0,$CHRIN ;YES
2613 003424 037 12 0 00 000000 PNTCHR ;SEND CHAR TO LPT/LOGICAL DEV
2614 003425 254 00 0 00 003413 JRST $HEAR2 ;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 48
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE SEQ 0319
2615 SUBTTL *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
2616
2617 S^;*********************************************************************^
2618 ;*ACCEPTS Y OR N
2619 ;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
2620 ;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
2621 ;*'Y OR N <CR> - ' ASKED UPON ENTRY
2622 S^;*********************************************************************^
2623
2624 003426 201 00 0 00 000001 $NOYES: MOVEI 0,1 ;INIT FOR N ANSWER
2625 003427 254 00 0 00 003431 JRST .+2
2626 003430 201 00 0 00 000000 $YESNO: MOVEI 0,0 ;INIT FOR Y ANSWER
2627 003431 202 01 0 00 005407 MOVEM 1,$TACC1# ;SAVE AC'S
2628 003432 202 02 0 00 005410 MOVEM 2,$TACC2#
2629 003433 200 02 0 00 000000 MOVE 2,0
2630
2631 003434 $YN1: PMSGF < Y OR N <CR> - >^
2632 003434 037 04 0 00 005136 PSIXMF [SIXBIT\ Y OR N <CR> - _\]^
2633 003435 260 17 0 00 003301 GO $OPTLK
2634 003436 254 00 0 00 003456 JRST $YN2 ;NO RESPONSE
2635 003437 302 00 0 00 000131 CAIE 0,"Y" ;IS IT A 'Y' ?
2636 003440 306 00 0 00 000116 CAIN 0,"N" ;OR AN 'N' ?
2637 003441 254 00 0 00 003443 JRST .+2 ;YES
2638 003442 254 00 0 00 003462 JRST $YN3 ;NEITHER, ERROR
2639 003443 200 01 0 00 000000 MOVE 1,0
2640 003444 242 01 0 00 000007 LSH 1,7 ;POSITION 1ST CHAR
2641 003445 260 17 0 00 003301 GO $OPTLK
2642 003446 254 00 0 00 003456 JRST $YN2 ;NO RESPONSE
2643 003447 434 01 0 00 000000 OR 1,0 ;MERGE 2ND CHAR
2644 003450 316 01 0 02 003465 CAMN 1,$YN4(2) ;COMPARE FOR REQUESTED
2645 003451 254 00 0 00 003455 JRST .+4 ;YES, RETURN +2
2646 003452 316 01 0 02 003466 CAMN 1,$YN4+1(2) ;COMPARE FOR OPPOSITE
2647 003453 254 00 0 00 003456 JRST .+3 ;YES, RETURN +1
2648 003454 254 00 0 00 003462 JRST $YN3 ;ERROR, REPEAT
2649 003455 350 00 0 17 000000 AOS (P) ;YES, RETURN +2
2650 003456 200 02 0 00 005410 $YN2: MOVE 2,$TACC2 ;RESTORE AC2
2651 003457 200 00 0 00 000001 MOVE 0,1
2652 003460 200 01 0 00 005407 MOVE 1,$TACC1 ;RESTORE AC1
2653 003461 263 17 0 00 000000 RTN ;RETURN +1
2654
2655 003462 037 01 0 00 030242 $YN3: PCRLF
2656 003463 260 17 0 00 003360 GO $TPCLR ;CLEAR INPUT
2657 003464 254 00 0 00 003434 JRST $YN1
2658
2659 003465 000000 026215 $YN4: EXP 26215 ;'Y' (CR)
2660 003466 000000 023415 EXP 23415 ;'N' (CR)
2661 003467 000000 026215 EXP 26215 ;'Y' (CR)
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 49
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0320
2662 SUBTTL *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
2663
2664 S^;*********************************************************************^
2665 ;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
2666 ;*NUMBER RETURNED IN AC0.
2667 S^;*********************************************************************^
2668
2669 003470 201 00 0 00 000002 $TPCNV: MOVEI AC0,2 ;SET INDEX TO CONVERT
2670 003471 254 00 0 00 003475 JRST $TPCV1
2671 003472 201 00 0 00 000001 $TPDEC: MOVEI AC0,1 ;SET INDEX TO DECIMAL
2672 003473 254 00 0 00 003475 JRST $TPCV1
2673 003474 201 00 0 00 000000 $TPOCT: MOVEI AC0,0 ;SET INDEX TO OCTAL
2674
2675 003475 202 01 0 00 005411 $TPCV1: MOVEM 1,$TACD1# ;SAVE AC'S 1-3
2676 003476 202 02 0 00 005412 MOVEM 2,$TACD2#
2677 003477 202 03 0 00 005413 MOVEM 3,$TACD3#
2678 003500 200 03 0 00 000000 MOVE 3,0 ;LOAD AC3 WITH THE INDEX
2679 003501 403 01 0 00 000002 SETZB 1,2 ;CLEAR DATA REG, CHAR COUNTER
2680 003502 402 00 0 00 030233 SETZM $TYPNB# ;CLEAR ERR NUMBER
2681 003503 402 00 0 00 005356 SETZM $NEGF# ;CLEAR NEGATE FLAG
2682 003504 402 00 0 00 005337 SETZM $CNVD# ;CLEAR DECIMAL CONVERT FLAG
2683 003505 402 00 0 00 030510 SETZM TTNBRF ;CLEAR DIGIT TYPED FLAG
2684
2685
2686 ;*INPUT AND COMPUTE NUMBER
2687 S^;*********************************************************************^
2688
2689 003506 260 17 0 00 003301 $TYPLP: GO $OPTLK
2690 003507 254 00 0 00 003545 JRST $TPERR ;NO RESPONSE, GO TO ERROR EXIT
2691 003510 306 00 0 00 000055 CAIN 0,"-" ;IS IT MINUS ?
2692 003511 254 00 0 00 003563 JRST $NEGX ;YES
2693 003512 306 00 0 00 000056 CAIN 0,"." ;IS IT PERIOD ?
2694 003513 254 00 0 00 003567 JRST $CNVX ;YES
2695 003514 306 00 0 00 000015 CAIN 0,15 ;IS IT CR ?
2696 003515 254 00 0 00 003531 JRST $TPEXT ;YES
2697 003516 306 00 0 00 000054 CAIN 0,"," ;IS IT COMMA ?
2698 003517 254 00 0 00 003531 JRST $TPEXT ;YES
2699 003520 301 00 0 00 000060 CAIL 0,"0" ;A VALID DIGIT ?
2700 003521 256 00 0 03 003552 XCT $TPCK(3) ;YES
2701 003522 254 00 0 00 003545 JRST $TPERR ;NO ...ERROR EXIT
2702
2703 003523 476 00 0 00 030510 $TYPL1: SETOM TTNBRF ;SET DIGIT TYPED FLAG
2704 003524 350 00 0 00 000002 AOS 2 ;INCREMENT CHARACTER COUNTER
2705 003525 256 00 0 03 003555 XCT $TPMUL(3) ;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
2706 003526 275 00 0 00 000060 SUBI 60 ;ADD IN NEW CHAR
2707 003527 270 01 0 00 000000 ADD 1,0
2708 003530 254 00 0 00 003506 JRST $TYPLP ;REPEAT TILL CR OR COMMA
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 50
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0321
2709 ;*CHECK FOR PROPER AMOUNT OF CHARACTERS
2710 S^;*********************************************************************^
2711
2712 003531 256 00 0 03 003560 $TPEXT: XCT $TPNBR(3) ;PROPER NUMBER OF CHARACTERS
2713 003532 254 00 0 00 003545 JRST $TPERR ;NO ...ERROR EXIT
2714 003533 306 03 0 00 000002 CAIN 3,2 ;CONVERT ? (INDEX = 2)
2715 003534 254 00 0 00 003573 JRST $CNVX1 ;YES
2716 ;NO, EXIT
2717
2718 003535 200 03 0 00 005413 $TPEX1: MOVE 3,$TACD3 ;RESTORE AC'S 3 & 2
2719 003536 200 02 0 00 005412 MOVE 2,$TACD2
2720 003537 200 00 0 00 000001 MOVE 0,1 ;PUT NUMBER IN AC0
2721 003540 332 00 0 00 005356 SKIPE $NEGF ;NEGATE ?
2722 003541 210 00 0 00 000001 MOVN 0,1 ;YES
2723 003542 200 01 0 00 005411 MOVE 1,$TACD1 ;RESTORE AC1
2724 003543 350 00 0 17 000000 AOS (P) ;RETURN +2
2725 003544 263 17 0 00 000000 RTN ;RETURN +1
2726
2727 003545 202 01 0 00 030233 $TPERR: MOVEM 1,$TYPNB ;SAVE NUMBER - ERROR EXIT
2728 003546 200 03 0 00 005413 MOVE 3,$TACD3 ;RESTORE AC'S
2729 003547 200 02 0 00 005412 MOVE 2,$TACD2
2730 003550 200 01 0 00 005411 MOVE 1,$TACD1
2731 003551 263 17 0 00 000000 RTN ;ERROR EXIT )
2732
2733
2734 ;*NUMBER COMPUTING CONSTANTS
2735 S^;*********************************************************************^
2736
2737 003552 303 00 0 00 000067 $TPCK: CAILE 0,"7" ;OCTAL NUMBER CHECK
2738 003553 303 00 0 00 000071 CAILE 0,"9" ;DECIMAL NUMBER CHECK
2739 003554 303 00 0 00 000071 CAILE 0,"9" ;CONVERT NUMBER CHECK
2740 003555 242 01 0 00 000003 $TPMUL: LSH 1,3 ;OCTAL BASE SHIFT
2741 003556 221 01 0 00 000012 IMULI 1,^D10 ;DECIMAL BASE MULTIPLIER
2742 003557 242 01 0 00 000004 LSH 1,4 ;CONVERT SHIFT
2743 003560 303 02 0 00 000014 $TPNBR: CAILE 2,^D12 ;ACCEPT UP TO 12 OCTALS
2744 003561 303 02 0 00 000013 CAILE 2,^D11 ;ACCEPT UP TO 11 DECIMALS
2745 003562 303 02 0 00 000011 CAILE 2,^D9 ;ACCEPT UP TO 9 CONVERT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 51
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0322
2746 003563 332 00 0 00 000002 $NEGX: SKIPE 2 ;1ST CHAR ?
2747 003564 254 00 0 00 003545 JRST $TPERR ;NO, ERROR EXIT )
2748 003565 476 00 0 00 005356 SETOM $NEGF ;YES, SET NEGATE FLAG
2749 003566 254 00 0 00 003506 JRST $TYPLP ;GET NEXT CHAR
2750
2751 003567 302 03 0 00 000002 $CNVX: CAIE 3,2 ;PERIOD, IN CONVERT ?
2752 003570 254 00 0 00 003545 JRST $TPERR ;NO, ERROR EXIT )
2753 003571 476 00 0 00 005337 SETOM $CNVD ;YES, SET DECIMAL FLAG
2754 003572 254 00 0 00 003506 JRST $TYPLP ;GET NEXT CHAR
2755
2756
2757 ;*CONVERT CONVERSION ROUTINE
2758 S^;*********************************************************************^
2759
2760 003573 201 02 0 00 000011 $CNVX1: MOVEI 2,^D9 ;NINE DIGITS
2761 003574 402 00 0 00 000000 SETZM 0
2762 003575 332 00 0 00 005337 SKIPE $CNVD ;OCTAL OR DECIMAL ?
2763 003576 254 00 0 00 003606 JRST $CNVX2 ;DECIMAL
2764 003577 612 01 0 00 005141 TDNE 1,[421042104210] ;OCTAL
2765 003600 254 00 0 00 003545 JRST $TPERR ;OCTAL ERROR, 8 OR 9 INPUT
2766 003601 242 01 0 00 000001 LSH 1,1 ;SQUEEZE OUT 4TH BIT
2767 003602 246 00 0 00 000003 LSHC 0,3 ;COMPACT INTO OCTAL
2768 003603 366 02 0 00 003601 SOJN 2,.-2 ;COMPLETED ?
2769 003604 200 01 0 00 000000 MOVE 1,0 ;YES
2770 003605 254 00 0 00 003535 JRST $TPEX1 ;RETURN
2771
2772 003606 402 00 0 00 000003 $CNVX2: SETZM 3 ;DECIMAL
2773 003607 402 00 0 00 000000 SETZM 0
2774 003610 221 03 0 00 000012 IMULI 3,^D10 ;MULTIPLY BY DECIMAL BASE
2775 003611 246 00 0 00 000004 LSHC 0,4 ;UNPACK NEXT DIGIT
2776 003612 270 03 0 00 000000 ADD 3,0 ;ADD IN
2777 003613 366 02 0 00 003607 SOJN 2,.-4 ;COMPLETED ?
2778 003614 200 01 0 00 000003 MOVE 1,3 ;YES
2779 003615 254 00 0 00 003535 JRST $TPEX1 ;RETURN )
2780
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 52
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE SEQ 0323
2781 SUBTTL *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
2782
2783 S^;*********************************************************************^
2784 ;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
2785 ;*SIXBIT WORD RETURNED IN AC0
2786 S^;*********************************************************************^
2787
2788 003616 202 01 0 00 005414 $TISIX: MOVEM 1,$TSX1# ;SAVE AC'S
2789 003617 202 02 0 00 005415 MOVEM 2,$TSX2#
2790 003620 200 02 0 00 005142 MOVE 2,[POINT 6,1]
2791 003621 201 01 0 00 000000 MOVEI 1,0
2792
2793 003622 260 17 0 00 003301 $TSXB1: GO $OPTLK
2794 003623 254 00 0 00 003645 JRST $TSXB3 ;NO RESPONSE, RTN + 1
2795 003624 306 00 0 00 000015 CAIN 0,15
2796 003625 254 00 0 00 003644 JRST $TSXB2 ;CR, TERMINATE, RTN + 2
2797 003626 306 00 0 00 000054 CAIN 0,","
2798 003627 254 00 0 00 003644 JRST $TSXB2 ;COMMA, TERMINATE, RTN + 2
2799 003630 301 00 0 00 000060 CAIL 0,"0"
2800 003631 303 00 0 00 000132 CAILE 0,"Z"
2801 003632 254 00 0 00 003645 JRST $TSXB3 ;ERROR, RTN + 1
2802 003633 303 00 0 00 000071 CAILE 0,"9"
2803 003634 301 00 0 00 000101 CAIL 0,"A"
2804 003635 254 00 0 00 003637 JRST $TSXB4 ;ALPHA-NUMERIC
2805 003636 254 00 0 00 003645 JRST $TSXB3 ;ERROR, RTN + 1
2806
2807 003637 640 00 0 00 000040 $TSXB4: TRC 0,40 ;CONVERT TO SIX-BIT
2808 003640 602 01 0 00 000077 TRNE 1,77
2809 003641 254 00 0 00 003645 JRST $TSXB3 ;TOO MANY CHAR'S, RTN + 1
2810 003642 136 00 0 00 000002 IDPB 0,2 ;PUT INTO WORD
2811 003643 254 00 0 00 003622 JRST $TSXB1 ;GET NEXT CHARACTER
2812
2813 003644 350 00 0 17 000000 $TSXB2: AOS (P) ;INCR USRPC FOR RTN + 2 (NORMAL)
2814
2815 003645 200 00 0 00 000001 $TSXB3: MOVE 0,1 ;SIXBIT WORD IN AC0
2816 003646 200 01 0 00 005414 MOVE 1,$TSX1 ;RESTORE AC'S
2817 003647 200 02 0 00 005415 MOVE 2,$TSX2
2818 003650 263 17 0 00 000000 RTN ;EXIT + 1/+2
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 53
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0324
2819 SUBTTL *SUBRTN* PRINT SUBROUTINES
2820
2821 S^;*********************************************************************^
2822 ;* $PNTSX PRINT SIXBIT NORMAL
2823 ;* $PTSXF PRINT SIXBIT FORCED
2824 ;* $PNTCW PRINT DF10 CONTROL WORD
2825 ;* $PNTI1 PRINT OCTAL NUMBER
2826 ;* $CHRPN PRINT CHARACTER
2827 ;* $ASCPN PRINT ASCII CHARACTER/LINE
2828 ;* $DECPN PRINT DECIMAL NUMBER
2829 S^;*********************************************************************^
2830
2831 S^;*********************************************************************^
2832 ;*PRINT SUBROUTINE INITIALIZATION
2833 ;*INITIALIZES CONTROL WORDS, AND TTY IF IN USER MODE
2834 S^;*********************************************************************^
2835
2836 003651 402 00 0 00 005344 $PNTIN: SETZM $INTDF# ;CLEAR DEVICE DEFAULT FLAG
2837 003652 402 00 0 00 030226 SETZM $DVOFF# ;CLEAR DEVICE INITED FLAG
2838 003653 402 00 0 00 030221 SETZM PDISF# ;CLEAR PRINT DISABLED FLAG
2839 003654 402 00 0 00 005400 SETZM $PTINH# ;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
2840 003655 402 00 0 00 030222 SETZM PNTINH# ;ALLOW EXEC PRINT TYPE IN INHIBIT
2841 003656 402 00 0 00 005324 SETZM XOFFLAG# ;CLEAR XOFF FLAG
2842 003657 402 00 0 00 030217 SETZM PNTFLG# ;CLEAR IN PRINT FLAG
2843 003660 476 00 0 00 030223 SETOM PNTSPC# ;SET PRINT SPACE FLAG
2844 003661 211 00 0 00 011610 MOVNI 0,^D5000 ;SET PRINT ENABLE TO 5000 LINES
2845 003662 202 00 0 00 030220 MOVEM 0,PNTENB
2846 003663 402 00 0 00 030227 SETZM TTYFIL ;ALLOW EXEC FILLERS
2847 003664 402 00 0 00 030234 SETZM $CRLF# ;ALLOW FREE CR/LF
2848 003665 402 00 0 00 030235 SETZM $TABF ;ALLOW TAB CONVERSION
2849 003666 402 00 0 00 030236 SETZM $FFF ;ALLOW FORM FEED CONVERSION
2850 003667 402 00 0 00 030237 SETZM $VTF ;ALLOW VERTICAL TAB CONVERSION
2851
2852 003670 336 00 0 00 030516 SKIPN MONTYP
2853 003671 254 00 0 00 003677 JRST $PNTIX
2854 003672 201 01 0 00 000101 movei 1,.priou
2855 003673 104 00 0 00 000107 rfmod ;don't translate print output
2856 003674 620 02 0 00 000300 trz 2,tt%dam
2857 003675 660 02 0 00 000300 tro 2,3b29
2858 003676 104 00 0 00 000110 sfmod
2859
2860 003677 201 00 0 00 030006 $PNTIX: MOVEI REENTR ;SETUP REENTER ADDRESS
2861 003700 202 00 0 00 000124 MOVEM JOBREN
2862 003701 335 00 0 00 030043 SKIPGE MONCTL ;MONITOR CONTROL ?
2863 003702 263 17 0 00 000000 RTN ;YES, DON'T PRINT TITLE
2864 003703 332 00 0 00 030056 SKIPE $ONETM ;FIRST TIME?
2865 003704 263 17 0 00 000000 RTN ;NO .....EXIT
2866 003705 254 00 0 00 002101 JRST $PNTNM+2 ;YES ...PRINT PROGRAM NAME
2867 ;AND EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 54
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0325
2868 S^;*********************************************************************^
2869 ;*PRINT SUBROUTINE ENTRY POINT
2870 ;*EXIT VIA $PNTI4 BELOW
2871 S^;*********************************************************************^
2872
2873 003706 476 00 0 00 030217 $PNTIF: SETOM PNTFLG ;SET IN PRINT FLAG
2874 003707 476 00 0 00 005373 SETOM $PNTTY# ;FORCE TO TTY
2875 003710 402 00 0 00 005400 SETZM $PTINH
2876 003711 260 17 0 00 003724 GO $PCLRO ;CLEAR CONTROL 0 & INPUT BUFFER
2877 003712 254 00 0 00 003767 JRST $PNTIA
2878
2879 003713 476 00 0 00 030217 $PNTIT: SETOM PNTFLG ;SET IN PRINT FLAG
2880 003714 402 00 0 00 005373 SETZM $PNTTY ;NOT FORCED TO TTY
2881 003715 331 00 0 00 030220 SKIPL PNTENB# ;PRINT LIMIT REACHED YET?
2882 003716 254 00 0 00 003753 JRST $PNTIB ;YES ..DON'T PRINT
2883 003717 260 17 0 00 002747 GO $SWTCH ;READ DATA SWITCHES INTO AC0
2884 003720 607 00 0 00 040000 TLNN 0,NOPNT ;NO PRINT SWITCH SET?
2885 003721 254 00 0 00 003767 JRST $PNTIA
2886 003722 262 17 0 00 000000 GET AC0 ;YES ...RESTORE AC0 FROM STACK (P - 1)
2887 003723 254 00 0 00 003751 JRST $PRNTX ;EXIT, DON'T PRINT
2888
2889 003724 332 00 0 00 030516 $PCLRO: SKIPE MONTYP
2890 003725 254 00 0 00 003731 JRST .+4
2891 003726 051 13 0 00 000000 TTCALL 13,0 ;TOPS10 CLEAR CONTROL O
2892 003727 255 00 0 00 000000 JFCL
2893 003730 263 17 0 00 000000 RTN
2894 003731 261 17 0 00 000001 PUT 1
2895 003732 261 17 0 00 000002 PUT 2
2896 003733 201 01 0 00 000101 MOVEI 1,.PRIOU
2897 003734 104 00 0 00 000107 RFMOD
2898 003735 621 02 0 00 400000 TLZ 2,(TT%OSP) ;CLEAR CONTROL O
2899 003736 104 00 0 00 000110 SFMOD
2900 003737 262 17 0 00 000002 GET 2
2901 003740 262 17 0 00 000001 GET 1
2902 003741 402 00 0 00 005323 SETZM INUPTR ;CLEAR TTY INPUT BUFFER
2903 003742 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 55
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0326
2904 ;*PRINT ROUTINE EXIT
2905 S^;*********************************************************************^
2906
2907 003743 402 00 0 00 005373 $PNTI4: SETZM $PNTTY ;CLEAR FORCE TO TTY FLAG
2908
2909 003744 200 01 0 00 005357 MOVE 1,$PACA1 ;RESTORE AC'S
2910 003745 200 02 0 00 005360 MOVE 2,$PACA2
2911 003746 200 03 0 00 005361 MOVE 3,$PACA3
2912 003747 200 04 0 00 005362 MOVE 4,$PACA4
2913 003750 200 05 0 00 005363 MOVE 5,$PACA5
2914 003751 402 00 0 00 030217 $PRNTX: SETZM PNTFLG ;CLEAR IN PRINT FLAG
2915 003752 263 17 0 00 000000 RTN ;RETURN
2916
2917 ;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
2918 S^;*********************************************************************^
2919
2920 003753 262 17 0 00 000000 $PNTIB: GET AC0 ;RESTORE THE STACK (P - 1)
2921 003754 332 00 0 00 030221 SKIPE PDISF# ;FIRST TIME PRINT DISABLED?
2922 003755 254 00 0 00 003751 JRST $PRNTX ;YES ...EXIT )
2923
2924 003756 476 00 0 00 030221 $PNTB1: SETOM PDISF ;NO ........SET IT
2925 003757 202 01 0 00 005357 MOVEM 1,$PACA1 ;SAVE AC'S 1 - 5
2926 003760 202 02 0 00 005360 MOVEM 2,$PACA2
2927 003761 202 03 0 00 005361 MOVEM 3,$PACA3
2928 003762 202 04 0 00 005362 MOVEM 4,$PACA4
2929 003763 202 05 0 00 005363 MOVEM 5,$PACA5
2930 003764 476 00 0 00 005373 SETOM $PNTTY ;SET FORCE TO TTY FLAG
2931 MOVEI [ASCIZ/
2932 ******
2933 EXCEEDED ALLOWED PRINTOUTS
2934 003765 201 00 0 00 005143 /]
2935 003766 254 00 0 00 004240 JRST $ASCPN-1 ;PRINT THE WARNING & EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 56
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0327
2936 S^;*********************************************************************^
2937 ;*PRINT ROUTINE SELECTOR
2938 ;*BASED ON "AC FIELD" = 12 - 17
2939 S^;*********************************************************************^
2940
2941 003767 202 01 0 00 005357 $PNTIA: MOVEM 1,$PACA1# ;SAVE AC1.
2942 003770 202 02 0 00 005360 MOVEM 2,$PACA2# ;SAVE AC2.
2943 003771 202 03 0 00 005361 MOVEM 3,$PACA3# ;SAVE AC3.
2944 003772 202 04 0 00 005362 MOVEM 4,$PACA4# ;SAVE AC4.
2945 003773 202 05 0 00 005363 MOVEM 5,$PACA5# ;SAVE AC5.
2946 003774 262 17 0 00 000000 GET AC0 ;RESTORE AC0 FROM STACK (P - 1)
2947 003775 402 00 0 00 005371 SETZM $PNT# ;CLEAR PRINT HALF WORDS FLAG
2948 003776 200 02 0 00 000040 MOVE 2,LUUO
2949 003777 241 02 0 00 000015 ROT 2,15 ;GET X (AC FIELD)
2950 004000 405 02 0 00 000017 ANDI 2,17 ;OUT OF THE UUO
2951
2952 004001 306 02 0 00 000017 $PNTIC: CAIN 2,17 ;X=17?
2953 004002 254 00 0 00 004240 JRST $PNTLN ;YES. PRINT ASCII LINE
2954 004003 322 02 0 00 004241 JUMPE 2,$ASCPN ;X=0? YES. GO PRINT 1 WORD ASCII
2955 004004 306 02 0 00 000015 CAIN 2,15 ;X=15?
2956 004005 254 00 0 00 004256 JRST $DECPN ;YES, PRINT DECIMALS )
2957 004006 306 02 0 00 000016 CAIN 2,16 ;X=16?
2958 004007 254 00 0 00 004255 JRST $DECSP ;YES, PRINT DECIMALS, LEADING SPACES
2959 004010 306 02 0 00 000013 CAIN 2,13 ;X=13?
2960 004011 254 00 0 00 004226 JRST $PNTI3 ;YES, PRINT OCTALS, 6 SP 6
2961 004012 306 02 0 00 000012 CAIN 2,12 ;X=12?
2962 004013 254 00 0 00 004234 JRST $CHRPN ;YES, PRINT CHARACTER )
2963
2964 004014 254 00 0 00 004204 JRST $PNTI1 ;NONE OF THE ABOVE, PRINT OCTAL
2965 ;(AC FIELD <12 OR = TO 14)
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 57
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0328
2966 S^;*********************************************************************^
2967 ;*SIXBIT PRINT SUBROUTINE
2968 ;*PRINTS SIXBIT WORD IN AC0
2969 S^;*********************************************************************^
2970
2971 ;*NORMAL PRINTOUT
2972 S^;*********************************************************************^
2973
2974 004015 261 17 0 00 000001 $PNTSX: PUT 1 ;SAVE AC1 ON STACK (P + 1)
2975 004016 200 01 0 00 000000 MOVE 1,0 ;PUT SIXBIT WORD IN AC1
2976 004017 201 00 0 00 000000 MOVEI 0,0
2977 004020 246 00 0 00 000006 LSHC 0,6 ;GET NEXT CHAR INTO AC0
2978 004021 271 00 0 00 000040 ADDI 0,40 ;CONVERT TO ASCII
2979 004022 037 12 0 00 000000 PNTCHR ;PRINT IT
2980 004023 326 01 0 00 004017 JUMPN 1,.-4 ;LOOP TILL ALL PRINTED
2981 004024 262 17 0 00 000001 GET 1 ;RESTORE AC1 FROM THE STACK (P - 1)
2982 004025 263 17 0 00 000000 RTN ;EXIT
2983
2984 ;*FORCED PRINTOUT
2985 S^;*********************************************************************^
2986
2987 004026 261 17 0 00 000001 $PTSXF: PUT 1 ;SAVE AC1 ON THE STACK (P + 1)
2988 004027 200 01 0 00 000000 MOVE 1,0 ;PUT SIXBIT WORD IN AC1
2989 004030 201 00 0 00 000000 MOVEI 0,0
2990 004031 246 00 0 00 000006 LSHC 0,6 ;GET NEXT CHAR INTO AC0
2991 004032 271 00 0 00 000040 ADDI 0,40 ;CONVERT TO ASCII
2992 004033 037 12 0 00 000001 PNTCHF ;PRINT
2993 004034 326 01 0 00 004030 JUMPN 1,.-4 ;LOOP TILL ALL PRINTED
2994 004035 262 17 0 00 000001 GET 1 ;FROM THE STACK (P - 1)
2995 004036 263 17 0 00 000000 RTN ;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 58
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0329
2996 S^;*********************************************************************^
2997 ;*SIXBIT MESSAGE PRINT ROUTINE
2998 ;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
2999 ;*"BACKARROW" (77) SIGNIFIES END OF TEXT
3000 ;*"UPARROW" (76) SIGNIFIES CR/LF
3001 ;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
3002 S^;*********************************************************************^
3003
3004 004037 261 17 0 00 000005 $PSIXF: PUT 5
3005 004040 474 05 0 00 000000 SETO 5, ;SET FORCED PRINTING FLAG
3006 004041 254 00 0 00 004044 JRST .+3
3007
3008 004042 261 17 0 00 000005 $PSIX: PUT 5
3009 004043 400 05 0 00 000000 SETZ 5, ;NORMAL PRINTING
3010 004044 261 17 0 00 000001 PUT 1
3011 004045 261 17 0 00 000002 PUT 2
3012 004046 261 17 0 00 000003 PUT 3
3013 004047 261 17 0 00 000004 PUT 4
3014
3015 004050 550 04 0 00 000000 HRRZ 4,0 ;MESSAGE ADDRESS TO AC4
3016
3017 004051 201 03 0 00 000006 $PSIX1: MOVEI 3,6 ;6 = NUM OF 6BIT CHAR PER WORD
3018 004052 200 01 0 04 000000 MOVE 1,(4) ;GET FIRST/NEXT WORD OF MESSAGE
3019
3020 004053 400 02 0 00 000000 $PSIX2: SETZ 2,
3021 004054 245 01 0 00 000006 ROTC 1,6 ;C(AC1) = CHAR TO BE PRINTED
3022 004055 306 02 0 00 000077 CAIN 2,77
3023 004056 254 00 0 00 004073 JRST $PSIX5 ;"BACKARROW", DONE
3024 004057 306 02 0 00 000076 CAIN 2,76
3025 004060 254 00 0 00 004070 JRST $PSIX4 ;"UPARROW", CR/LF
3026 004061 306 02 0 00 000075 CAIN 2,75
3027 004062 201 02 0 00 000151 MOVEI 2,151 ;"BRACKET", CHANGE TO TAB (151+40=11)
3028 004063 201 00 0 02 000040 MOVEI 0,40(2) ;CHANGE TO ASCII
3029 JUMPN 5,[PNTCHF
3030 004064 326 05 0 00 005153 JRST .+2] ;FORCED PRINT
3031 004065 037 12 0 00 000000 PNTCHR
3032 004066 366 03 0 00 004053 $PSIX3: SOJN 3,$PSIX2 ;PRINTED ALL CHARS FROM THIS WORD ?
3033 004067 344 04 0 00 004051 AOJA 4,$PSIX1 ;YES, DO NEXT WORD
3034
3035 $PSIX4: JUMPN 5,[PCRLF
3036 004070 326 05 0 00 005155 JRST .+2]
3037 004071 037 00 0 00 030242 PCRL ;PRINT CR/LF
3038 004072 254 00 0 00 004066 JRST $PSIX3
3039
3040 004073 262 17 0 00 000004 $PSIX5: GET 4
3041 004074 262 17 0 00 000003 GET 3
3042 004075 262 17 0 00 000002 GET 2
3043 004076 262 17 0 00 000001 GET 1
3044 004077 262 17 0 00 000005 GET 5
3045 004100 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 59
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0330
3046 S^;*********************************************************************^
3047 ;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
3048 ;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
3049 ;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
3050 S^;*********************************************************************^
3051
3052 004101 261 17 0 00 000005 $POCSF: PUT 5
3053 004102 474 05 0 00 000000 SETO 5, ;FORCED PRINTOUT
3054 004103 254 00 0 00 004106 JRST .+3
3055
3056 004104 261 17 0 00 000005 $POCS: PUT 5
3057 004105 400 05 0 00 000000 SETZ 5, ;NORMAL PRINTOUT
3058 004106 261 17 0 00 000001 PUT 1
3059 004107 261 17 0 00 000002 PUT 2
3060 004110 261 17 0 00 000003 PUT 3
3061 004111 261 17 0 00 000004 PUT 4
3062
3063 004112 200 02 0 00 000000 MOVE 2,0
3064 004113 325 02 0 00 004120 JUMPGE 2,$POCS1 ;IS NUMBER NEGATIVE ?
3065 004114 201 00 0 00 000055 MOVEI "-"
3066 JUMPN 5,[PNTCHF
3067 004115 326 05 0 00 005157 JRST .+2]
3068 004116 037 12 0 00 000000 PNTCHR ;YES, PRINT MINUS SIGN
3069 004117 210 02 0 00 000002 MOVN 2,2 ;MAKE NUMBER POSITIVE
3070
3071 004120 400 04 0 00 000000 $POCS1: SETZ 4,
3072 004121 403 03 0 00 000001 SETZB 3,1
3073 004122 322 02 0 00 004130 JUMPE 2,$POCS3 ;IF NUMBER 0, PRINT 1 ZERO
3074
3075 004123 201 03 0 00 000014 MOVEI 3,^D12 ;PRINT UP TO 12 DIGITS
3076 004124 400 01 0 00 000000 $POCS2: SETZ 1,
3077 004125 246 01 0 00 000003 LSHC 1,3
3078 004126 322 01 0 00 004142 JUMPE 1,$POCS5 ;IS THIS DIGIT ZERO ?
3079 004127 474 04 0 00 000000 SETO 4, ;NO, SET NON-ZERO DIGIT FLAG
3080 004130 201 00 0 01 000060 $POCS3: MOVEI "0"(1) ;MAKE ASCII NUMBER
3081 JUMPN 5,[PNTCHF
3082 004131 326 05 0 00 005161 JRST .+2]
3083 004132 037 12 0 00 000000 PNTCHR ;PRINT DIGIT
3084
3085 004133 367 03 0 00 004124 $POCS4: SOJG 3,$POCS2 ;ALL DONE ?
3086 004134 262 17 0 00 000004 GET 4
3087 004135 262 17 0 00 000003 GET 3
3088 004136 262 17 0 00 000002 GET 2
3089 004137 262 17 0 00 000001 GET 1
3090 004140 262 17 0 00 000005 GET 5
3091 004141 263 17 0 00 000000 RTN
3092
3093 004142 322 04 0 00 004133 $POCS5: JUMPE 4,$POCS4 ;PRINTED NON-ZERO DIGIT ?
3094 004143 254 00 0 00 004130 JRST $POCS3 ;YES, PRINT ZEROS
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 60
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0331
3095 S^;*********************************************************************^
3096 ;*DF10 CONTROL WORD PRINT ROUTINE
3097 ;*PRINTS WORD IN AC0
3098 ;*DF22F = 0, ###### ###### ,18 BIT DF10
3099 ;* -1, ##### ######## ,22 BIT DF10
3100 S^;*********************************************************************^
3101
3102 004144 202 01 0 00 005376 $PNTCW: MOVEM 1,$PTCA# ;SAVE AC1
3103 004145 201 01 0 00 000000 MOVEI 1,0 ;NORMAL PRINTOUT
3104 004146 202 02 0 00 005377 MOVEM 2,$PTCB# ;SAVE AC2
3105 004147 200 02 0 00 000000 MOVE 2,0
3106 004150 336 00 0 00 030142 SKIPN DF22F# ;22 OR 18 BIT DF10 ?
3107 004151 254 00 0 00 004165 JRST $PNTC2
3108 004152 242 00 0 00 777753 LSH 0,-^D21 ;NEW 22 BIT DF10
3109 004153 620 00 0 00 000001 TRZ 0,1
3110 JUMPN 1,[PNT5F
3111 004154 326 01 0 00 005163 JRST .+2]
3112 004155 037 05 0 00 000000 PNT5 ;PRINT WORD COUNT, 14 BITS
3113 004156 200 00 0 00 000002 MOVE 0,2
3114 004157 621 00 0 00 777760 TLZ 0,777760
3115 JUMPN 1,[PNTADF
3116 004160 326 01 0 00 005165 JRST .+2]
3117 004161 037 10 0 00 000000 PNTADR ;PRINT ADDRESS, 22 BITS
3118 004162 200 02 0 00 005377 $PNTC3: MOVE 2,$PTCB
3119 004163 200 01 0 00 005376 MOVE 1,$PTCA
3120 004164 263 17 0 00 000000 RTN ;EXIT
3121
3122 004165 554 00 0 00 000000 $PNTC2: HLRZ ;18 BIT DF10
3123 JUMPN 1,[PNT6F
3124 004166 326 01 0 00 005167 JRST .+2]
3125 004167 037 06 0 00 000000 PNT6 ;PRINT WORD COUNT, 18 BITS
3126 004170 201 00 0 00 000040 MOVEI 40
3127 JUMPN 1,[PNTCHF
3128 004171 326 01 0 00 005171 JRST .+2]
3129 004172 037 12 0 00 000000 PNTCHR ;EXTRA SPACE
3130 004173 550 00 0 00 000002 HRRZ 0,2
3131 JUMPN 1,[PNT6F
3132 004174 326 01 0 00 005173 JRST .+2]
3133 004175 037 06 0 00 000000 PNT6 ;PRINT ADDRESS, 18 BITS
3134 004176 254 00 0 00 004162 JRST $PNTC3
3135
3136 004177 202 01 0 00 005376 $PNTCF: MOVEM 1,$PTCA ;SAVE AC1
3137 ;FORCED PRINTOUT
3138 004200 200 01 0 00 004177 MOVE 1,$PNTCF
3139 004201 202 01 0 00 004144 MOVEM 1,$PNTCW ;SETUP RETURN
3140 004202 201 01 0 00 000001 MOVEI 1,1 ;FORCED PRINT INDEX
3141 004203 254 00 0 00 004146 JRST $PNTCW+2 ;REST AS ABOVE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 61
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0332
3142 S^;*********************************************************************^
3143 ;*OCTAL PRINTOUT ROUTINE
3144 ;*PRINTS NUMBER IN AC0
3145 S^;*********************************************************************^
3146
3147 004204 200 03 0 00 000002 $PNTI1: MOVE 3,2 ;MOVE X INTO AC3.
3148 004205 241 00 0 00 777775 ROT 0,-3 ;ROT OCTAL NUM 3 PLACES
3149 004206 366 03 0 00 004205 SOJN 3,.-1 ;X AMOUNT OF TIMES.
3150
3151 004207 201 01 0 00 000006 $PNTI2: MOVEI 1,6 ;PUT 6 INTO AC1 SO THAT
3152 004210 245 00 0 00 000003 ROTC 0,3 ;C(AC1) AFTER THE ROTC WILL BE 60
3153 004211 265 03 0 00 004306 JSP 3,$TOUT ;PLUS NUMBER TO BE PRINTED
3154 004212 366 02 0 00 004207 SOJN 2,$PNTI2 ;SUB 1 FROM X...PRINT UNTIL X=0.
3155 004213 202 01 0 00 005372 MOVEM 1,$PNTSV# ;SAVE NUMBER
3156 004214 336 00 0 00 030223 SKIPN PNTSPC
3157 004215 254 00 0 00 004220 JRST .+3
3158 004216 201 01 0 00 000040 MOVEI 1,40 ;AT THIS POINT WE HAVE PRINTED
3159 004217 265 03 0 00 004306 JSP 3,$TOUT ;X AMOUNT OF NUMBER(S) AND NOW A SPACE
3160 004220 336 00 0 00 005371 SKIPN $PNT# ;PRINT 6 SP 6 FLAG SET?
3161 004221 254 00 0 00 003743 JRST $PNTI4 ;NO, EXIT )
3162 004222 200 01 0 00 005372 MOVE 1,$PNTSV ;RESTORE NUMBER
3163 004223 201 02 0 00 000006 MOVEI 2,6 ;SETUP FOR 2ND HALF
3164 004224 402 00 0 00 005371 SETZM $PNT ;CLEAR PRINT SPACE FLAG
3165 004225 254 00 0 00 004207 JRST $PNTI2 ;PRINT REST OF NUMBER
3166
3167 004226 201 03 0 00 000014 $PNTI3: MOVEI 3,14 ;SETUP FOR LH WORD
3168 004227 201 02 0 00 000006 MOVEI 2,6 ;SETUP FOR FIRST HALF
3169 004230 476 00 0 00 005371 SETOM $PNT ;SET PRINT 6 SP 6 FLAG
3170 004231 476 00 0 00 030223 SETOM PNTSPC ;SET THE PRINT SPACE FLAG
3171 004232 254 00 0 00 004205 JRST $PNTI1+1 ;PRINT FIRST HALF NUMBER
3172 004233 254 00 0 00 003743 JRST $PNTI4 ;EXIT
3173
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 62
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0333
3174 S^;*********************************************************************^
3175 ;*ASCII/CHARACTER PRINTOUT ROUTINE
3176 ;*PRINTS CHAR IN LOWER 7 BITS OF AC0
3177 S^;*********************************************************************^
3178
3179 004234 405 00 0 00 000177 $CHRPN: ANDI 0,177 ;STRIP CHAR TO 7 BITS
3180 004235 200 01 0 00 000000 MOVE 1,0
3181 004236 265 03 0 00 004306 JSP 3,$TOUT ;PRINT A CHARACTER
3182 004237 254 00 0 00 003743 JRST $PNTI4 ;LEAVE
3183
3184 S^;*********************************************************************^
3185 ;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
3186 S^;*********************************************************************^
3187
3188 004240 476 00 0 00 005371 $PNTLN: SETOM $PNT# ;SET PRINT MORE THAN 1 WORD FLAG.
3189
3190 004241 202 00 0 00 005375 $ASCPN: MOVEM 0,$POINT# ;SAVE ADDRESS OF ASCII MESSAGE.
3191 004242 201 02 0 00 000005 $ASCP1: MOVEI 2,5 ;5 = NUM OF ASCII CHAR. IN A WORD.
3192 004243 200 00 1 00 005375 MOVE 0,@$POINT ;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
3193
3194 004244 400 01 0 00 000000 $ASCP2: SETZ 1, ;CLEAR AC1.
3195 004245 245 00 0 00 000007 ROTC 0,7 ;C(AC1) = CHAR TO BE PRINTED.
3196 004246 322 01 0 00 003743 JUMPE 1,$PNTI4 ;CHAR = NULL?..NO MORE CHAR..EXIT
3197 004247 265 03 0 00 004306 JSP 3,$TOUT ;PRINT A CHAR
3198 004250 366 02 0 00 004244 SOJN 2,$ASCP2 ;PNT ALL CHAR FROM THIS WORD?
3199 004251 350 00 0 00 005375 AOS $POINT ;YES. INC TO GET NEXT WORD.
3200 004252 336 00 0 00 005371 SKIPN $PNT ;PNT MORE THAN ONE WORD FLAG SET?
3201 004253 254 00 0 00 003743 JRST $PNTI4 ;NO..LEAVE
3202 004254 254 00 0 00 004242 JRST $ASCP1 ;YES...RETURN TO PNT NEXT WORD.
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 63
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* PRINT SUBROUTINES SEQ 0334
3203 S^;*********************************************************************^
3204 ;*DECIMAL PRINTOUT ROUTINE
3205 ;*PRINTS NUMBER IN AC0
3206 S^;*********************************************************************^
3207
3208 004255 476 00 0 00 005371 $DECSP: SETOM $PNT ;SET LEADING SPACES PRINT CONTROL
3209
3210 004256 325 00 0 00 004262 $DECPN: JUMPGE 0,.+4 ;IS NUMBER NEGATIVE ?
3211 004257 201 01 0 00 000055 MOVEI 1,"-" ;YES, PRINT MINUS SIGN
3212 004260 265 03 0 00 004306 JSP 3,$TOUT
3213 004261 210 00 0 00 000000 MOVN 0,0 ;MAKE NUMBER POSITIVE
3214 004262 260 17 0 00 004264 GO $RADIX ;DECIMAL-ASCII CONVERSION & PRINT CHARS
3215 004263 254 00 0 00 003743 JRST $PNTI4 ;EXIT
3216
3217 004264 200 02 0 00 030264 $RADIX: MOVE 2,RADLSC ;SETUP DIGIT COUNTER
3218 004265 246 00 0 00 777735 LSHC 0,-^D35 ;SHIFT RIGHT 35 BITS INTO AC1
3219 004266 242 01 0 00 777777 LSH 1,-1 ;VACATE AC1 SIGN BIT
3220
3221 004267 234 00 0 00 030262 $DCCMP: DIV 0,RADIX ;DIVIDE DOUBLE LENGTH INTERGER BY 10
3222 004270 506 01 0 17 000000 HRLM 1,(17) ;SAVE DIGIT
3223 004271 370 00 0 00 000002 SOS 2 ;COUNT DIGIT
3224 004272 322 00 0 00 004300 JUMPE 0,$LDSPS ;ALL DIGITS FORMED?
3225 004273 260 17 0 00 004265 GO $RADIX+1 ;NO, COMPUTE NEXT ONE
3226
3227 004274 554 01 0 17 000000 $DECP1: HLRZ 1,(17) ;YES, RETRIEVE DIGIT
3228 004275 271 01 0 00 000060 ADDI 1,60 ;CONVERT TO ASCII
3229 004276 265 03 0 00 004306 JSP 3,$TOUT ;TYPE-OUT A DIGIT
3230 004277 263 17 0 00 000000 RTN ;GET NEXT/EXIT
3231
3232 004300 336 00 0 00 005371 $LDSPS: SKIPN $PNT ;LEADING SPACES PRINT SET?
3233 004301 254 00 0 00 004274 JRST $DECP1 ;NO ...GO PRINT
3234 ;YES ...DO IT
3235 004302 361 02 0 00 004274 $DCSPS: SOJL 2,$DECP1 ;SPACES COMPLETE ? YES
3236 004303 200 01 0 00 030263 MOVE 1,RADLSP ;NO, PRINT LEADING SPACE
3237 004304 265 03 0 00 004306 JSP 3,$TOUT ;TYPE OUT THE SPACE
3238 004305 254 00 0 00 004302 JRST .-3 ;CHECK FOR NEXT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 66
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0335
3239 SUBTTL *SUBRTN* CHARACTER OUTPUT ROUTINES
3240
3241 S^;*********************************************************************^
3242 ;*OUTPUT TERMINATION CONTROL ROUTINE
3243 S^;*********************************************************************^
3244
3245 004306 202 00 0 00 005364 $TOUT: MOVEM 0,$PACB0# ;SAVE AC0.
3246 004307 202 01 0 00 005374 MOVEM 1,$PNTYC# ;SAVE CHARACTER TO BE PRINTED
3247
3248 S^;*********************************************************************^
3249 ;*OVERALL CHARACTER OUTPUT CONTROL ROUTINE
3250 S^;*********************************************************************^
3251
3252 004310 200 00 0 00 030046 $TOUTB: MOVE AC0,CONSW ;DATA SWITCHES INTO AC0
3253 004311 350 00 0 00 005335 AOS $CARCT# ;INC CHAR CNTR.
3254 004312 306 01 0 00 000007 CAIN 1,7 ;CHAR A BELL ?
3255 004313 402 00 0 00 005400 SETZM $PTINH ;YES, CLEAR PRINT INHIBIT
3256 004314 302 01 0 00 000015 CAIE 1,15 ;CHAR A CR?
3257 004315 254 00 0 00 004321 JRST $TOUB1 ;NO-CHK FOR LF
3258 004316 336 00 0 00 005400 SKIPN $PTINH ;DON'T COUNT ^O'ED LINES
3259 004317 350 00 0 00 030220 AOS PNTENB ;COUNT LINES, TILL NO MORE
3260 004320 402 00 0 00 005335 SETZM $CARCT ;CLR CHAR CNTR.
3261
3262 004321 306 01 0 00 000012 $TOUB1: CAIN 1,12 ;IS CHAR A LF?
3263 004322 402 00 0 00 005335 SETZM $CARCT ;YES-CLR CHAR CNTR.
3264 004323 332 00 0 00 005373 SKIPE $PNTTY ;NO-IS PRINT FORCED ON?
3265 004324 254 00 0 00 004327 JRST $TOUB2 ;YES-DON'T CHECK NON-PNT SW
3266 004325 603 00 0 00 040000 TLNE 0,NOPNT ;IS NON PNT SWITCH ON?
3267 004326 254 00 0 03 000000 JRST (3) ;YES, RETURN
3268
3269 004327 265 04 0 00 004352 $TOUB2: JSP 4,$TOUT2 ;SEND CHARACTER USER MODE
3270
3271 004330 332 00 0 00 030240 $TOUB3: SKIPE USRLFF# ;NEED USER LF FILLERS ?
3272 004331 254 00 0 00 004341 JRST $USRFL ;YES
3273 004332 332 00 0 00 030241 SKIPE USRCRF# ;NEED USER CR FILLERS ?
3274 004333 254 00 0 00 004335 JRST $USRFC ;YES
3275 004334 254 00 0 00 004350 JRST $TOUTA ;NO-BACK TO PRINT ROUTINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 67
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0336
3276 ;*USER MODE LF & CR FILLERS
3277 S^;*********************************************************************^
3278
3279 004335 302 01 0 00 000015 $USRFC: CAIE 1,15 ;CR ?
3280 004336 254 00 0 00 004350 JRST $TOUTA ;NO-RETURN TO PRINT ROUTINE
3281 004337 200 05 0 00 030241 MOVE 5,USRCRF ;SEND FILLERS FOR CR
3282 004340 254 00 0 00 004344 JRST $USRF1 ;DEPENDING ON 'USRCRF'
3283
3284 004341 302 01 0 00 000012 $USRFL: CAIE 1,12 ;LF ?
3285 004342 254 00 0 00 004350 JRST $TOUTA ;NO-RETURN TO PRINT
3286 004343 200 05 0 00 030240 MOVE 5,USRLFF ;SEND FILLERS FOR LF
3287 004344 361 05 0 00 004350 $USRF1: SOJL 5,$TOUTA ;DEPENDING ON 'USRLFF'
3288 004345 201 01 0 00 000001 MOVEI 1,001 ;^A
3289 004346 265 04 0 00 004352 JSP 4,$TOUT2 ;SEND CHARACTER
3290 004347 254 00 0 00 004344 JRST $USRF1
3291
3292 ;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
3293 S^;*********************************************************************^
3294 004350 200 00 0 00 005364 $TOUTA: MOVE AC0,$PACB0 ;RESTORE AC0
3295 004351 254 00 0 03 000000 JRST (3) ;RETURN TO PRINT ROUTINE
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 68
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0337
3296 S^;*********************************************************************^
3297 ;*USER MODE CHARACTER OUTPUT
3298 S^;*********************************************************************^
3299
3300 004352 202 04 0 00 005365 $TOUT2: MOVEM 4,$PACC4#
3301 004353 200 00 0 00 030046 MOVE 0,CONSW
3302 004354 603 00 0 00 020000 TLNE 0,PNTLPT ;IS LPT PRINT SWITCH UP ?
3303 004355 254 00 0 00 004401 JRST $TOUT3 ;YES, GO PRINT ON LOGICAL DEVICE
3304 004356 037 05 0 00 000002 DROPDV ;CLOSE DEV IF SWITCH CHANGED
3305 004357 200 00 0 00 005335 $TOUT6: MOVE 0,$CARCT ;CHARACTER NUMBER
3306 004360 306 00 0 00 000001 CAIN 0,1 ;FIRST CHAR IN LINE ?
3307 004361 254 00 0 00 004367 JRST $TOUT4 ;YES
3308 004362 336 00 0 00 030516 $TOUT5: SKIPN MONTYP
3309 004363 051 01 0 00 000001 OUTCHR 1
3310 004364 332 00 0 00 030516 SKIPE MONTYP
3311 004365 260 17 0 00 004407 GO $$TOU5 ;TOPS-20 OUTPUT
3312 004366 254 00 1 00 005365 JRST @$PACC4 ;GO RESTORE AC0 AND RETURN
3313
3314 004367 331 00 0 00 030043 $TOUT4: SKIPL MONCTL ;SYSTEM EXERCISER
3315 004370 254 00 0 00 004362 JRST $TOUT5 ;NO
3316 004371 261 17 0 00 000001 PUT 1
3317 004372 201 01 0 00 000077 MOVEI 1,"?" ;PRECEDE LINE WITH ?
3318 004373 336 00 0 00 030516 SKIPN MONTYP
3319 004374 051 01 0 00 000001 OUTCHR 1
3320 004375 332 00 0 00 030516 SKIPE MONTYP
3321 004376 104 00 0 00 000074 PBOUT
3322 004377 262 17 0 00 000001 GET 1
3323 004400 254 00 0 00 004362 JRST $TOUT5
3324
3325 ;*USER MODE LOGICAL DEVICE OUTPUT
3326 S^;*********************************************************************^
3327
3328 004401 336 00 0 00 030226 $TOUT3: SKIPN $DVOFF ;DEVICE BEEN INITED YET ?
3329 004402 260 17 0 00 004452 GO $INTDV ;NO, GO DO IT
3330 004403 260 17 0 00 004440 GO $PUTCR ;GO OUTPUT CHAR
3331 004404 336 00 0 00 005373 SKIPN $PNTTY ;SKIP IF MESSAGE ALSO FORCED TO TTY
3332 004405 254 00 1 00 005365 JRST @$PACC4
3333 004406 254 00 0 00 004357 JRST $TOUT6 ;OUTPUT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 69
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0338
3334 ;*TOPS-20 TTY OUTPUT
3335
3336 004407 302 01 0 00 000033 $$TOU5: CAIE 1,33 ;PRINTING AN ALTMODE ?
3337 004410 254 00 0 00 004436 JRST $$TOU6 ;NO
3338 004411 261 17 0 00 000001 PUT 1
3339 004412 261 17 0 00 000002 PUT 2
3340 004413 261 17 0 00 000003 PUT 3
3341 004414 202 01 0 00 005327 MOVEM 1,$$TO5A#
3342 004415 201 01 0 00 000101 MOVEI 1,.PRIOU
3343 004416 104 00 0 00 000112 RFCOC ;YES, DON'T TRANSLATE IT
3344 004417 261 17 0 00 000002 PUT 2
3345 004420 261 17 0 00 000003 PUT 3
3346 004421 620 03 0 00 600000 TRZ 3,600000
3347 004422 660 03 0 00 400000 TRO 3,400000
3348 004423 104 00 0 00 000113 SFCOC
3349 004424 200 01 0 00 005327 MOVE 1,$$TO5A
3350 004425 104 00 0 00 000074 PBOUT ;PRINT AN ACTUAL 33 CODE
3351 004426 201 01 0 00 000101 MOVEI 1,.PRIOU
3352 004427 262 17 0 00 000003 GET 3
3353 004430 262 17 0 00 000002 GET 2
3354 004431 104 00 0 00 000113 SFCOC ;RESTORE OUTPUT TRANSLATION
3355 004432 262 17 0 00 000003 GET 3
3356 004433 262 17 0 00 000002 GET 2
3357 004434 262 17 0 00 000001 GET 1
3358 004435 263 17 0 00 000000 RTN
3359
3360 004436 104 00 0 00 000074 $$TOU6: PBOUT ;NORMAL OUTPUT
3361 004437 263 17 0 00 000000 RTN
3362
3363 ;* LOGICAL DEVICE OUTPUT ROUTINES
3364 S^;*********************************************************************^
3365
3366 004440 336 00 0 00 030516 $PUTCR: SKIPN MONTYP
3367 004441 254 00 0 00 004566 JRST $PUT10
3368 004442 261 17 0 00 000001 PUT 1
3369 004443 261 17 0 00 000002 PUT 2
3370 004444 200 02 0 00 000001 MOVE 2,1
3371 004445 200 01 0 00 005322 MOVE 1,DEVJFN
3372 004446 104 00 0 00 000051 BOUT
3373 004447 262 17 0 00 000002 GET 2
3374 004450 262 17 0 00 000001 GET 1
3375 004451 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 70
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0339
3376 S^;*********************************************************************^
3377 ;*LOGICAL DEVICE INITIALIZATION
3378 ;*PHY DEV ASSIGNED AT RUN TIME
3379 S^;*********************************************************************^
3380
3381 004452 200 00 0 00 030021 $INTDV: MOVE 0,PNTEXT
3382 004453 202 00 0 00 030271 MOVEM 0,$OUTEX
3383 004454 200 00 0 00 030020 MOVE 0,PNTNAM ;SETUP LOGICAL OUTPUT FILE NAME
3384 004455 202 00 0 00 030270 MOVEM 0,$OUTNM
3385 004456 202 01 0 00 005366 MOVEM 1,$PACF1#
3386 004457 202 02 0 00 005367 MOVEM 2,$PACF2#
3387 004460 402 00 0 00 005343 SETZM $INTD3#
3388 004461 336 00 0 00 030516 SKIPN MONTYP
3389 004462 254 00 0 00 004576 JRST $INT10 ;TOPS10
3390 004463 200 00 0 00 005175 MOVE [POINT 7,FILASC,27]
3391 004464 200 01 0 00 005176 MOVE 1,[ASCII/DEV:/]
3392 004465 202 01 0 00 005241 MOVEM 1,FILASC
3393 004466 201 01 0 00 030270 $INT21: MOVEI 1,$OUTNM
3394 004467 260 17 0 00 004537 GO SIXASC ;CONVERT SIXBIT TO ASCII
3395 004470 515 01 0 00 400001 HRLZI 1,(GJ%FOU!GJ%SHT)
3396 004471 561 02 0 00 005241 HRROI 2,FILASC
3397 004472 104 00 0 00 000020 GTJFN
3398 004473 320 16 0 00 004504 ERJMP $INT22 ;DEVICE NOT AVAILABLE, DEFAULT TO DSK
3399 004474 202 01 0 00 005322 MOVEM 1,DEVJFN#
3400 004475 200 02 0 00 005177 MOVE 2,[7B5!OF%WR]
3401 004476 104 00 0 00 000021 OPENF
3402 004477 254 00 0 00 004530 JRST T20ERR
3403 004500 476 00 0 00 030226 $INT12: SETOM $DVOFF
3404 004501 200 02 0 00 005367 MOVE 2,$PACF2
3405 004502 200 01 0 00 005366 MOVE 1,$PACF1
3406 004503 263 17 0 00 000000 RTN
3407
3408 004504 332 00 0 00 005343 $INT22: SKIPE $INTD3
3409 004505 254 00 0 00 004530 JRST T20ERR
3410 HRROI 1,[ASCIZ/
3411 ****
3412 USING 'DSK' PRINT FILE
3413 ****
3414 004506 561 01 0 00 005200 /]
3415 004507 104 00 0 00 000076 PSOUT
3416 004510 200 00 0 00 005175 MOVE [POINT 7,FILASC,27]
3417 004511 200 01 0 00 005210 MOVE 1,[ASCII/DSK:/]
3418 004512 202 01 0 00 005241 MOVEM 1,FILASC
3419 004513 476 00 0 00 005343 SETOM $INTD3
3420 004514 254 00 0 00 004466 JRST $INT21
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 71
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0340
3421 ;*USER MODE CLOSE FILE
3422 S^;*********************************************************************^
3423
3424 004515 336 00 0 00 030226 $DRPDV: SKIPN $DVOFF ;DEVICE INITED?
3425 004516 263 17 0 00 000000 RTN ;NO, DON'T BOTHER
3426 004517 336 00 0 00 030516 SKIPN MONTYP
3427 004520 254 00 0 00 004624 JRST $DRP10 ;TOPS10
3428 004521 261 17 0 00 000001 PUT 1
3429 004522 200 01 0 00 005322 MOVE 1,DEVJFN
3430 004523 104 00 0 00 000022 CLOSF
3431 004524 254 00 0 00 004530 JRST T20ERR
3432 004525 262 17 0 00 000001 GET 1
3433 004526 402 00 0 00 030226 SETZM $DVOFF
3434 004527 263 17 0 00 000000 RTN ;EXIT
3435
3436 004530 201 01 0 00 000101 T20ERR: MOVEI 1,.PRIOU
3437 004531 525 02 0 00 400000 HRLOI 2,.FHSLF
3438 004532 400 03 0 00 000000 SETZ 3,
3439 004533 104 00 0 00 000011 ERSTR
3440 004534 104 00 0 00 000170 HALTF
3441 004535 104 00 0 00 000170 HALTF
3442 004536 104 00 0 00 000170 HALTF
3443
3444 004537 261 17 0 00 000002 SIXASC: PUT 2
3445 004540 261 17 0 00 000003 PUT 3
3446 004541 261 17 0 00 000004 PUT 4
3447 004542 200 03 0 00 000000 MOVE 3,0
3448 004543 200 04 0 00 000001 MOVE 4,1
3449 004544 200 01 0 04 000000 MOVE 1,(4)
3450 004545 260 17 0 00 004560 GO SIXSTR
3451 004546 201 00 0 00 000056 MOVEI "."
3452 004547 136 00 0 00 000003 IDPB 0,3
3453 004550 510 01 0 04 000001 HLLZ 1,1(4)
3454 004551 332 00 0 00 000001 SKIPE 1
3455 004552 260 17 0 00 004560 GO SIXSTR
3456 004553 136 01 0 00 000003 IDPB 1,3
3457 004554 262 17 0 00 000004 GET 4
3458 004555 262 17 0 00 000003 GET 3
3459 004556 262 17 0 00 000002 GET 2
3460 004557 263 17 0 00 000000 RTN
3461
3462 004560 403 00 0 00 000002 SIXSTR: SETZB 0,2
3463 004561 246 00 0 00 000006 LSHC 0,6
3464 004562 271 00 0 00 000040 ADDI 0,40
3465 004563 136 00 0 00 000003 IDPB 0,3
3466 004564 326 01 0 00 004560 JUMPN 1,.-4
3467 004565 263 17 0 00 000000 RTN
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 72
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0341
3468 ;*TOPS10, LOGICAL DEVICE OUTPUT
3469
3470 004566 332 00 0 00 005340 $PUT10: SKIPE $DVTTY# ;IF DEVICE IS TTY
3471 004567 254 00 0 00 004574 JRST .+5 ;EMPTY BUFFER AFTER EACH CHAR
3472 004570 377 00 0 00 030267 SOSG $OBUF+2 ;INCREMENT BYTE COUNT
3473 004571 254 00 0 00 004574 JRST .+3
3474 004572 136 01 0 00 030266 IDPB 1,$OBUF+1 ;STORE CHAR
3475 004573 263 17 0 00 000000 RTN
3476 004574 057 17 0 00 000000 OUT $DEVCH, ;EMPTY BUFFER
3477 004575 254 00 0 00 004572 JRST .-3
3478
3479 ;*$INT10, TOPS10 INITIALIZE LOGICAL OUTPUT
3480
3481 004576 202 00 0 00 030270 $INT10: MOVEM 0,$OUTNM
3482 004577 041 17 0 00 000000 INIT $DEVCH,0 ;ASCII MODE, DEV CHANNEL
3483 004600 44 45 66 00 00 00 SIXBIT /DEV/ ;LOGICAL DEVICE, LPT,DSK,DTAX
3484 004601 030265 000000 XWD $OBUF, ;OUTPUT ONLY
3485 004602 254 00 0 00 004614 JRST $INT13 ;DEV NOT AVAIL, DEFAULT TO DISK
3486 004603 065 17 0 00 000001 $INT11: OUTBUF $DEVCH,1 ;SETUP OUTPUT BUFFER
3487 004604 077 17 0 00 030270 ENTER $DEVCH,$OUTNM ;INIT OUTPUT FILE
3488 004605 254 00 0 00 004641 JRST $OERR2 ;NO DIR ROOM, ERROR
3489 004606 476 00 0 00 030226 SETOM $DVOFF ;SET DEVICE INITED FLAG
3490 004607 201 00 0 00 000017 MOVEI 0,$DEVCH
3491 004610 047 00 0 00 000004 DEVCHR ;GET DEVICE CHARACTERISTICS
3492 004611 603 00 0 00 000010 TLNE 0,10
3493 004612 476 00 0 00 005340 SETOM $DVTTY ;DEVICE IS TTY
3494 004613 254 00 0 00 004500 JRST $INT12 ;EXIT
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 73
SUBUSM MAC 23-Mar-78 15:02 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0342
3495 004614 336 00 0 00 005344 $INT13: SKIPN $INTDF ;FIRST DEFAULT INIT ?
3496 OUTSTR [ASCIZ/
3497 ****
3498 USING 'DSK' PRINT FILE
3499 ****
3500 004615 051 03 0 00 005200 /]
3501 004616 476 00 0 00 005344 SETOM $INTDF
3502 004617 041 17 0 00 000000 INIT $DEVCH,0
3503 004620 44 63 53 00 00 00 SIXBIT /DSK/
3504 004621 030265 000000 XWD $OBUF,
3505 004622 254 00 0 00 004637 JRST $OERR1
3506 004623 254 00 0 00 004603 JRST $INT11
3507
3508 ;*USER MODE CLOSE FILE
3509
3510 004624 070 17 0 00 000000 $DRP10: CLOSE $DEVCH, ;CLOSE FILE
3511 004625 063 17 0 00 740000 STATZ $DEVCH,740000 ;RECHECK FINAL ERROR BITS
3512 OUTSTR [ASCIZ/
3513 %PRINT CLOSE ERROR
3514 004626 051 03 0 00 005211 /]
3515 004627 071 17 0 00 000000 RELEAS $DEVCH, ;RELINQUISH DEVICE, WRITE DIRECTORY
3516 004630 402 00 0 00 030226 SETZM $DVOFF
3517 004631 263 17 0 00 000000 RTN ;EXIT
3518
3519 004632 $OUTER: OUTSTR [ASCIZ/
3520 %PRINT OUTPUT ERROR
3521 004632 051 03 0 00 005216 /]
3522 004633 332 00 0 00 030520 SKIPE $$OUTER
3523 004634 256 00 0 00 030520 XCT $$OUTER ;EXECUTE USERS ERROR RTN, IF PROV.
3524 004635 047 01 0 00 000012 EXIT 1, ;ERROR, QUIT
3525 004636 254 00 0 00 030000 JRST BEGIN ;RESTART USER SEGMENT
3526
3527 004637 $OERR1: OUTSTR [ASCIZ/
3528 004637 051 03 0 00 005223 DSK INIT ERROR/]
3529 004640 254 00 0 00 004632 JRST $OUTER ;DISK PRINT OUTPUT ERROR
3530
3531 004641 $OERR2: OUTSTR [ASCIZ/
3532 004641 051 03 0 00 005227 NO DIR ROOM/]
3533 004642 254 00 0 00 004632 JRST $OUTER ;DISK PRINT OUTPUT ERROR
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1
SUBUSS MAC 23-Mar-78 15:04 *STOR* RESERVED STORAGE SEQ 0343
3534 SUBTTL *STOR* RESERVED STORAGE
3535
3536 ;MODIFY DEVICE CODE CODE TABLE
3537 004643 $MDLST:
3538 000000 $MDEND=.-$MDLST ;COMPUTES LENGTH OF TABLE
3539
3540 ;PROGRAM LITERALS
3541 004643 LIT
3542 004643 000112 000011
3543 004644 254 00 0 00 002071
3544 004645 254 00 0 00 002136
3545 004646 015 012 105 130 105
3546 004647 103 040 117 116 114
3547 004650 131 015 012 000 000
3548 004651 260 17 0 00 001163
3549 004652 254 00 0 00 001244
3550 004653 76 51 54 54 45 47
3551 004654 41 54 00 65 65 57
3552 004655 76 65 65 57 75 75
3553 004656 46 54 41 47 63 75
3554 004657 00 00 60 43 76 77
3555 004660 777577 030303
3556 004661 76 12 12 12 12 12
3557 004662 76 65 65 57 00 60
3558 004663 54 51 63 64 00 45
3559 004664 62 62 00 60 35 77
3560 004665 037 01 0 00 000026
3561 004666 037 12 0 00 000001
3562 004667 254 00 0 00 001364
3563 004670 037 15 0 00 000003
3564 004671 254 00 0 00 001364
3565 004672 037 14 0 00 000003
3566 004673 254 00 0 00 001364
3567 004674 037 17 0 00 000001
3568 004675 254 00 0 00 001364
3569 004676 000001 000001
3570 004677 76 64 45 63 64 00
3571 004700 60 41 63 63 00 43
3572 004701 57 65 56 64 00 35
3573 004702 00 77 00 00 00 00
3574 004703 76 60 43 35 00 00
3575 004704 77 00 00 00 00 00
3576 004705 76 63 67 51 64 43
3577 004706 50 45 63 00 35 00
3578 004707 77 00 00 00 00 00
3579 004710 76 45 62 62 57 62
3580 004711 00 51 56 00 77 00
3581 004712 00 15 00 77 00 00
3582 004713 76 77 00 00 00 00
3583 004714 037 00 0 00 000000
3584 004715 76 43 57 62 62 45
3585 004716 43 64 32 00 00 77
3586 004717 76 41 43 64 65 41
3587 004720 54 32 00 00 00 77
3588 004721 76 44 51 63 43 62
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1-1
SUBUSS MAC 23-Mar-78 15:04 *STOR* RESERVED STORAGE SEQ 0344
3589 004722 45 60 32 00 00 77
3590 004723 41 60 62 51 44 00
3591 004724 000020 000011
3592 004725 000001 005303
3593 004726 45 62 62 57 62 00
3594 004727 50 41 54 64 00 41
3595 004730 64 00 77 00 00 00
3596 004731 46 41 64 41 54 00
3597 004732 60 62 57 47 62 41
3598 004733 55 00 45 62 62 57
3599 004734 62 00 41 64 00 77
3600 004735 104 104 124 000 000
3601 004736 66 45 62 63 51 57
3602 004737 56 00 77 00 00 00
3603 004740 14 00 63 66 35 77
3604 004741 14 00 64 57 60 63
3605 004742 15 21 20 77 00 00
3606 004743 14 00 64 57 60 63
3607 004744 15 22 20 77 00 00
3608 004745 14 00 53 63 21 20
3609 004746 77 00 00 00 00 00
3610 004747 037 02 0 00 004745
3611 004750 254 00 0 00 002127
3612 004751 14 00 53 54 21 20
3613 004752 77 00 00 00 00 00
3614 004753 332 00 0 00 030524
3615 004754 254 00 0 00 004747
3616 004755 037 02 0 00 004751
3617 004756 254 00 0 00 002127
3618 004757 14 00 53 41 21 20
3619 004760 77 00 00 00 00 00
3620 004761 037 02 0 00 004757
3621 004762 254 00 0 00 002127
3622 004763 14 00 53 51 21 20
3623 004764 77 00 00 00 00 00
3624 004765 14 00 43 60 65 03
3625 004766 35 77 00 00 00 00
3626 004767 76 12 12 12 12 12
3627 004770 76 60 54 51 63 64
3628 004771 00 65 46 54 57 67
3629 004772 76 77 00 00 00 00
3630 004773 002160 002164
3631 004774 200407 000000
3632 004775 000007 000001
3633 004776 76 12 12 12 12 12
3634 004777 76 60 54 51 63 64
3635 005000 00 57 66 45 62 46
3636 005001 54 57 67 00 60 35
3637 005002 77 00 00 00 00 00
3638 005003 76 12 12 12 12 12
3639 005004 76 51 54 54 45 47
3640 005005 41 54 00 51 56 63
3641 005006 64 62 65 43 64 51
3642 005007 57 56 00 77 00 00
3643 005010 76 51 54 54 45 47
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1-2
SUBUSS MAC 23-Mar-78 15:04 *STOR* RESERVED STORAGE SEQ 0345
3644 005011 41 54 00 55 45 55
3645 005012 57 62 71 00 62 45
3646 005013 41 44 77 00 00 00
3647 005014 76 51 54 54 45 47
3648 005015 41 54 00 55 45 55
3649 005016 57 62 71 00 67 62
3650 005017 51 64 45 77 00 00
3651 005020 76 65 56 53 56 57
3652 005021 67 56 00 51 56 64
3653 005022 45 62 62 65 60 64
3654 005023 77 00 00 00 00 00
3655 005024 76 55 45 55 57 62
3656 005025 71 00 60 62 57 64
3657 005026 77 00 00 00 00 00
3658 005027 76 56 57 56 15 70
3659 005030 15 55 45 55 57 62
3660 005031 71 77 00 00 00 00
3661 005032 76 55 45 55 57 62
3662 005033 71 00 60 41 62 51
3663 005034 64 71 77 00 00 00
3664 005035 76 46 54 41 47 63
3665 005036 00 00 60 43 00 00
3666 005037 00 00 00 00 60 62
3667 005040 57 47 76 77 00 00
3668 005041 45 56 44 00 60 41
3669 005042 63 63 00 77 00 00
3670 005043 76 55 45 55 57 62
3671 005044 71 00 55 41 60 00
3672 005045 35 76 46 62 57 55
3673 005046 00 00 00 00 00 64
3674 005047 57 00 00 00 00 00
3675 005050 00 00 00 00 63 51
3676 005051 72 45 17 53 77 00
3677 005052 76 43 50 41 56 47
3678 005053 45 00 44 45 66 51
3679 005054 43 45 00 43 57 44
3680 005055 45 63 14 77 00 00
3681 005056 57 54 44 00 44 45
3682 005057 66 51 43 45 00 43
3683 005060 57 44 45 00 15 00
3684 005061 77 00 00 00 00 00
3685 005062 56 45 67 00 44 45
3686 005063 66 51 43 45 00 43
3687 005064 57 44 45 00 15 00
3688 005065 77 00 00 00 00 00
3689 005066 43 50 41 56 47 51
3690 005067 56 47 00 46 62 57
3691 005070 55 00 77 00 00 00
3692 005071 00 64 57 00 77 00
3693 005072 66 41 54 51 44 00
3694 005073 43 50 41 56 47 45
3695 005074 14 77 00 00 00 00
3696 005075 32 12 0 02 000000
3697 005076 000000 004643
3698 005077 00 11 0 02 000000
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1-3
SUBUSS MAC 23-Mar-78 15:04 *STOR* RESERVED STORAGE SEQ 0346
3699 005100 76 44 45 66 00 43
3700 005101 57 44 45 00 45 62
3701 005102 62 14 00 21 24 15
3702 005103 27 27 24 00 57 56
3703 005104 54 71 76 77 00 00
3704 005105 001600 001600
3705 005106 76 64 64 71 00 63
3706 005107 67 51 64 43 50 00
3707 005110 43 57 56 64 62 57
3708 005111 54 00 37 00 15 00
3709 005112 20 14 63 14 00 71
3710 005113 00 57 62 00 56 00
3711 005114 34 43 62 36 00 15
3712 005115 00 77 00 00 00 00
3713 005116 76 54 50 00 63 67
3714 005117 51 64 43 50 45 63
3715 005120 00 34 03 00 57 62
3716 005121 00 37 36 00 15 00
3717 005122 77 00 00 00 00 00
3718 005123 62 50 00 63 67 51
3719 005124 64 43 50 45 63 00
3720 005125 34 03 00 57 62 00
3721 005126 37 36 00 15 00 77
3722 005127 055 040 131 054 116
3723 005130 054 136 040 074 103
3724 005131 122 076 040 117 122
3725 005132 040 136 132 040 055
3726 005133 040 000 000 000 000
3727 005134 44 07 0 00 005244
3728 005135 600000 000204
3729 005136 00 71 00 57 62 00
3730 005137 56 00 34 43 62 36
3731 005140 00 15 00 77 00 00
3732 005141 421042 104210
3733 005142 44 06 0 00 000001
3734 005143 015 012 052 052 052
3735 005144 052 052 052 015 012
3736 005145 105 130 103 105 105
3737 005146 104 105 104 040 101
3738 005147 114 114 117 127 105
3739 005150 104 040 120 122 111
3740 005151 116 124 117 125 124
3741 005152 123 015 012 000 000
3742 005153 037 12 0 00 000001
3743 005154 254 00 0 00 004066
3744 005155 037 01 0 00 030242
3745 005156 254 00 0 00 004072
3746 005157 037 12 0 00 000001
3747 005160 254 00 0 00 004117
3748 005161 037 12 0 00 000001
3749 005162 254 00 0 00 004133
3750 005163 037 05 0 00 000001
3751 005164 254 00 0 00 004156
3752 005165 037 10 0 00 000001
3753 005166 254 00 0 00 004162
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 1-4
SUBUSS MAC 23-Mar-78 15:04 *STOR* RESERVED STORAGE SEQ 0347
3754 005167 037 06 0 00 000001
3755 005170 254 00 0 00 004170
3756 005171 037 12 0 00 000001
3757 005172 254 00 0 00 004173
3758 005173 037 06 0 00 000001
3759 005174 254 00 0 00 004176
3760 005175 10 07 0 00 005241
3761 005176 104 105 126 072 000
3762 005177 070000 100000
3763 005200 015 012 052 052 052
3764 005201 052 015 012 125 123
3765 005202 111 116 107 040 047
3766 005203 104 123 113 047 040
3767 005204 120 122 111 116 124
3768 005205 040 106 111 114 105
3769 005206 015 012 052 052 052
3770 005207 052 015 012 000 000
3771 005210 104 123 113 072 000
3772 005211 015 012 045 120 122
3773 005212 111 116 124 040 103
3774 005213 114 117 123 105 040
3775 005214 105 122 122 117 122
3776 005215 015 012 000 000 000
3777 005216 015 012 045 120 122
3778 005217 111 116 124 040 117
3779 005220 125 124 120 125 124
3780 005221 040 105 122 122 117
3781 005222 122 015 012 000 000
3782 005223 015 012 104 123 113
3783 005224 040 111 116 111 124
3784 005225 040 105 122 122 117
3785 005226 122 000 000 000 000
3786 005227 015 012 116 117 040
3787 005230 104 111 122 040 122
3788 005231 117 117 115 000 000
SUBUSR (DDQDA) DECSYSTEM DIAGNOSTICS USER SUBROUTINE PROGRAM, VER 0,14 MACRO %53(1020) 15:25 23-Mar-78 Page 2
SUBUSS MAC 23-Mar-78 15:04 *STOR* RESERVED STORAGE SEQ 0348
3789 005235 000000 000000 ENDSLD: 0
3790
3791 ;END OF PROGRAM VARIABLES
3792
3793 005236 000 00 0 00 000000 %ERIN1: Z ;COR/ACT/DESC PRINT JSR
3794 005237 000 00 0 00 000000 %ERIN2: Z
3795 005240 254 00 1 00 005236 JRST @%ERIN1 ;ERROR HANDLER SPECIAL STORAGE WORDS
3796
3797 005241 FILASC: BLOCK 3
3798
3799 005244 D$ISTR: BLOCK ^D30 ;INPUT STORAGE
3800
3801 005302 POWER: BLOCK 20 ;AC SAVE AREA
3802
3803 IFDEF DEBUG,<
3804 005322 PATCH: BLOCK DEBUG ;DEBUGGING AREA
3805 >
3806
3807 ;PROGRAM VARIABLE WORDS
3808
3809 005322 VAR
3810
3811 IFDEF PGMEND,<
3812 005433 000000 000000 END: 0
3813 001000 END START
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 030600
CPU TIME USED 00:13.472
62P CORE USED
ABORT 82# 1881
AC0 66# 1024 1025 1026 1028 1030 1031 1033 1035 1036 1037 1039 1042 1044 SEQ 0349
1046 1047 1048 1057 1060 1061 1072 1075 1078 1079 1199 1200 1201 1202
1204 1206 1208 1214 1215 1216 1223 1227 1261 1570 1582 1585 1598 1610
1611 2204 2205 2234 2468 2669 2671 2673 2886 2920 2946 3252 3294
ALTMGO 585# 1440
ANXM 462#
AROV 365#
AROVU 429#
AST 700#
ATSIN 701#
BEGEND 581# 881 888
BEGIN 36 37 38 39 40 41 42 43 44 45 46 512# 886 973
1903 3525
BEGIN1 528# 582
BELL 704#
BIS 369#
CCA 446#
CHAIN 102# 2251
CHNOFF 476#
CHNON 475#
CHNTAB 1683 1702#
CLK 461#
CLKCLR 454#
CLKDIS 452#
CLKENB 453# 460#
CLKU 427#
CLOCKF 567#
CNTLC 584#
CNTRG1 1747 1749 1752 1754 1757 1759 1768#
CNTRLG 1703 1745#
COMMA 693#
CONSW 568# 928 930# 930 1303 1310 1406 1421 1441 2023 2229 2234 2235 2237
2250 2258 2274 2310 2328 2599 2609 3252 3301
CPIERR 868#
CPOPJ 588#
CPOPJ1 586# 2529
CRLF 232 233 688#
CRLF2 236 237 690#
CRY0 366#
CRY1 367#
CSHFLG 747#
CSHMEM 748#
CYCL60 741# 1484
D$ISTR 2557 3799#
DCK 373#
DDT 68# 837 1610
DDTLNK 116# 526 843# 1614
DDTSRT 526# 933
DEBUG 33# 3803 3804
DECVER 5# 12 17 547 859
DEVJFN 3371 3399# 3399 3429
DF22F 652# 3106# 3106
DIAGMN 515#
DIAGNO 67# 836 SEQ 0350
DIAMON 69# 838 877
DIASWS 70# 2323
DING 88# 1465
DOLLAR 707#
DSKUPD 552
DTEBER 866#
DTECER 867#
END 3812#
ENDFIX 827#
ENDSLD 35 3789#
EOPERR 869#
ERMORE 601# 1428
ERRPC 572# 955 1216 1271 1286 1309 1879
ERRTLS 573# 885 1267 1474
ERSTOP 91# 1442 1579 1605
EXCASB 550
EXIOT 371#
FILASC 3390 3392 3396 3416 3418 3797#
FOV 368#
FOVU 428#
FRDLNK 114# 1553 1558
FSELNK 113# 1525 1528
FXU 372#
GJ%FOU 3395
GJ%SHT 3395
HYPEN 698#
IININT 1719 1781#
IMRINT 1720 1785#
IMWINT 1721 1789#
INHCSH 99#
INHPAG 96# 2025
INUPTR 2460 2547 2549 2558# 2558 2571 2598 2902
INXM 463#
IOCLR 451#
ITERAT 54# 545
ITRCH1 605# 1778 1804 1824 1860
ITRCNT 545# 876 968 1877 1883
ITRUSR 1676 1822#
JOB41 387# 1005
JOBAPR 395# 1677
JOBCNI 396# 1825
JOBDDT 389#
JOBFF 393# 921 2090
JOBOPC 398# 1439
JOBREL 388# 1917
JOBREN 394# 2861
JOBSA 392# 920
JOBSYM 390#
JOBTPC 397# 1823
JOBUSY 391#
JOBUUO 386# 1035 1042 1073 1103 1112 1149 1158 1199 1225
JOBVER 399# 1625 1628
KA10 499 SEQ 0351
KAHZ50 104#
KAIFLG 562# 1487 1510 1514 1648 2030
KI10 499
KL10 499
KLFLG 563# 1486 1492 1504 1642 2028
KLOLD 312
LDLNK 115# 515 517
LEVTAB 1683 1696#
LFP 702#
LOOPER 90# 1219 1458
LUOERR 870#
LUUO 379# 1258 2948
LUUO1 632 633
LUUO10 632 637
LUUO11 632 637
LUUO12 632 638
LUUO13 632 638
LUUO14 632 639
LUUO15 632 639
LUUO16 632 640
LUUO17 632 640
LUUO2 632 634
LUUO20 632 641
LUUO21 632 641
LUUO22 632 642
LUUO23 632 642
LUUO24 632 643
LUUO25 632 643
LUUO26 632 644
LUUO27 632 644
LUUO3 632 634
LUUO30 632 645
LUUO31 632 645
LUUO32 632 646
LUUO33 632 646
LUUO4 632 635
LUUO5 632 635
LUUO6 632 636
LUUO7 632 636
LUUOI 380#
MAPNEW 653# 879 1920
MARGIN 575#
MCNVER 6# 12 17 547 859
MEMLOW 655# 1982 1997 2093
MEMMAP 30# 553
MEMSIZ 656# 1916 1918 1919 1962 1966 1977 1979 1998 2001 2006 2076 2078 2081
2083
MEMTOT 654# 2089
MINUS 697#
MODCHK 844 856#
MODDVC 98# 2103
MODDVL 34# 297 548
MODDVU 35# 298 549 SEQ 0352
MODLNK 117# 512 844#
MONCTL 565# 969 1291 1472 1575 1602 1621 2063 2227 2228 2253 2269 2469 2862
3314
MONFLG 564# 970
MONTEN 566# 971 1898
MONTYP 779# 910 915 922 924 1494 1586 1637 1639 1674 1900 2232 2471 2495
2543 2573 2575 2595 2597 2852 2889 3308 3310 3318 3320 3366 3388 3426
MPVU 424# 1678 1830
MUOERR 865#
NOEXEC 862# 977
NOPNT 86# 1287 2884 3266
NXMU 425# 1678 1832
OF%WR 3400
OPRSEL 100#
OPTIME 667#
P 143 144 145 146 357# 587 936 938 939 1020 1022 1025 1030 1039
1057 1088 1089 1090 1093 1214 1224 1269 1532 1598 1746 1748 1750 1755
1793 1794 1796 1863 1891 2040 2431 2432 2433 2434 2510 2604 2649 2724
2813
PAG 444#
PALERS 92# 1278
PARCLR 470#
PARDIS 471#
PAREA1 48# 543
PAREA2 49# 544
PAREA3 50# 541
PAREA4 51# 542
PAREA5 52# 554
PAREA6 53# 555
PAREA7 554#
PAREA8 555#
PARENB 472#
PARU 426# 1678 1826
PASCNT 569# 884 1294 1297 1876 1887
PATCH 3804#
PC2 1697 1700# 1777
PDISF 664# 2838# 2838 2921# 2921 2924
PDLINT 1712 1775#
PDLOVU 423# 1678 1828
PERIOD 694#
PFSTRT 521#
PGINGO 945#
PGMEND 31# 3811
PGMNAM 546 890#
PICHN1 490#
PICHN2 491#
PICHN3 492#
PICHN4 493#
PICHN5 494#
PICHN6 495#
PICHN7 496#
PICHNA 497#
PICLR 473# SEQ 0353
PIOFF 477#
PION 478# 484#
PLERR 863# 1086
PLERR1 864# 1091
PLIST 733# 733 936 1026 1089 1090 1751 1794
PLISTE 733 735# 1028 1090 1753
PLISTS 734#
PLUS 699#
PNTENB 663# 2845 2881# 2881 3259
PNTEXT 542# 3381
PNTFLG 662# 2842# 2842 2873 2879 2914
PNTINH 665# 2840# 2840
PNTLPT 87# 2248 2600 2610 3302
PNTNAM 541# 3383
PNTSPC 666# 2843# 2843 3156 3170
POWER 1522 1523 1534 1555 1556 3801#
PSHERR 934 1667#
PVPAGI 760# 2024
PWFCLR 469#
QUEST 705#
RADIX 708# 3221
RADLSC 710# 3217
RADLSP 709# 3236
RANDBS 543#
RD%BRK 2559
RD%TOP 2559
REENTR 523# 2860
REINIT 839 854#
RELIAB 94#
REPT 358# 1211 1275 1284
REPT1 359# 1212 1276 1285
REPTU 621# 1236# 1236
REQSET 474#
RESRT1 598#
RESRT2 599#
RETURN 530# 878 974 990 997 1899
RSTART 83#
RTP 703#
RUNFLG 570#
SADR1 36# 519
SADR10 45# 535
SADR11 46# 536
SADR2 37# 521
SADR3 38# 523
SADR4 39#
SADR5 40# 584
SADR6 41# 585
SADR7 42# 532
SADR8 43# 533
SADR9 44# 534
SBINIT 156 529#
SCOPE 622# 954 1220 1221 1260 1459 1878
SFSTRT 519# SEQ 0354
SIXASC 3394 3444#
SIXSTR 3450 3455 3462#
SLASH 706#
SM10 810# 1485 1507 1643
SPACE 695#
SRTDDT 525#
START 34 513 853# 3813
START1 532#
START2 533#
START3 534#
START4 535#
START5 536#
STARTA 528 888#
SUBINI 845 855#
SUBLNK 118# 529 845#
SUBRTN 858#
SUBVER 859# 1631 1634
SWPTAB 816# 2339
SWTAB 2333 2373#
SWTEXR 544#
SYSEXR 517#
T20ERR 2563 3402 3409 3431 3436#
TAB 696#
TABLE0 1061 1064#
TESTPC 571#
TICKS 574#
TOTALS 84#
TT%DAM 2856
TT%OSP 2898
TTNBRF 754# 2683 2703
TTYFIL 670# 2846
TTYSPD 671#
TXTINH 95# 1311 1407 1422
USER 561# 906
USERF 370# 908 966
USRASB 32# 551
USRCRF 680# 3273# 3273 3281
USRLFF 679# 3271# 3271 3286
UUODIS 633# 1051
UUOEXT 589#
UUORTN 590# 1045
UUOSKP 587#
XOFFLA 2841# 2841
$$INT 1777# 1783 1787 1791
$$MUUO 785#
$$OUTE 791# 3522 3523
$$PAC0 905 956# 956
$$SNX 1503# 1503 1653 1656
$$TAX1 803# 1761 1762 2533 2534
$$TAX2 804# 1764 1765 2536 2537
$$TO5A 3341# 3341 3349
$$TOGG 797# 2220 2255 2267
$$TOU5 3311 3336# SEQ 0355
$$TOU6 3337 3360#
$$UUO 774# 1018 1019
$ACC0 612# 1775 1781 1785 1789 1822 1844 1866
$ACMP5 1934# 1934 1947
$ACMP6 1935# 1935 1948
$ACMP7 1936# 1936 1949
$ACMP8 1937# 1937 1950
$ACMP9 1938# 1938 1951
$ASCP1 3191# 3202
$ASCP2 3194# 3198
$ASCPN 2935 2954 3190#
$BEND1 582#
$BEND2 583# 1476 1583 1606 1612
$CARCT 2594 3253# 3253 3260 3263 3305
$CFLUS 1141 1175#
$CGAC0 1745# 1745 1768
$CHRIN 673# 2591# 2591 2603 2612
$CHRPN 2962 3179#
$CINVA 1140 1176#
$CLOCK 1145 1177#
$CNVD 2682# 2682 2753 2762
$CNVX 2694 2751#
$CNVX1 2715 2760#
$CNVX2 2763 2772#
$CPINI 1494# 1516
$CPKAI 1491 1510#
$CPKL 1488#
$CPUTP 945 1484#
$CRLF 675# 2847# 2847
$CWRTB 1141 1178#
$DCCMP 3221#
$DCSPS 3235#
$DDTEN 932 1609# 2608
$DECP1 3227# 3233 3235
$DECPN 2956 3210#
$DECSP 2958 3208#
$DEVCH 437# 3476 3482 3486 3487 3490 3502 3510 3511 3515
$DRP10 3427 3510#
$DRPDV 1124 3424#
$DSKUP 552#
$DVCH1 438#
$DVOFF 669# 2837# 2837 3328 3403 3424 3433 3489 3516
$DVTTY 3470# 3470 3493
$ECK 968#
$EG177 1108 1158#
$EG4 1110 1149#
$EGX 1154 1156 1161 1164 1167 1169# 1173
$EGX1 1151 1172#
$EMODE 550# 975
$END 1145 1876#
$END1 1884#
$END2 1882 1886#
$END3 1884 1891# SEQ 0356
$EOP 1147 1898#
$ERH0 1568 1570# 1570 1589 1591
$ERHL1 1578#
$ERHL3 1582#
$ERHL4 1576 1580 1585#
$ERHLT 1146 1448 1566#
$FATAL 1146 1596#
$FATL1 1603 1608#
$FFF 677# 2849
$FRD36 1143 1547#
$FRD8 1144 1545#
$FREAD 1143 1549#
$FSEL1 1526 1539#
$FSEL2 1529 1533# 1540 1559 1560
$FSELE 1142 1520#
$FSELF 1521# 1521 1531 1551
$HEAR 2508 2543# 2568
$HEAR2 2601 2603# 2611 2614
$HEAR3 2593 2607#
$HEAR4 2475 2488 2503 2546 2552 2585#
$IBUF 725#
$IIN 1782 1803#
$IMR 1786 1811#
$IMW 1790 1814#
$INEXT 727#
$INNM 726#
$INT10 3389 3481#
$INT11 3486# 3506
$INT12 3403# 3494
$INT13 3485 3495#
$INT21 3393# 3420
$INT22 3398 3408#
$INTD3 3387# 3387 3408 3419
$INTDF 2836# 2836 3495 3501
$INTDV 3329 3381#
$ITR1A 1801 1809 1812 1815 1836 1839 1842 1847 1853#
$ITR1B 1857#
$ITRHL 593#
$ITRIN 950 1674#
$ITRX1 594# 1867
$LDSPS 3224 3232#
$MDEND 2178 3538#
$MDLST 2178 3537# 3538
$MDSR1 2186# 2190
$MDSR2 2181 2187#
$MDSRC 2129 2132 2176#
$MDVCN 2125# 2125 2131 2149 2207
$MDVCO 2120# 2120 2128 2151 2206
$MEMMP 952 1140 1916#
$MMAP 553# 951
$MNCON 1939# 1939
$MODCK 856 965#
$MODD0 2106# SEQ 0357
$MODD1 2113# 2137 2139
$MODD2 2118 2123 2159#
$MODD3 2117# 2193
$MODD4 2122#
$MODD5 2127#
$MODD6 2130#
$MODD7 2135#
$MODD8 2138 2145# 2212
$MODD9 2162#
$MODDB 2106# 2106 2197 2208
$MODDC 2107# 2107 2196 2209
$MODDD 2108# 2108 2195 2210
$MODDP 1125 2204#
$MODDV 1125 2102#
$MODDX 2115 2195# 2213
$MODER 2163 2166 2168 2192#
$MODVL 548# 2145 2148
$MODVU 549# 2146
$MPAC0 2018# 2018 2041
$MPAD2 2027 2031 2048#
$MPAD3 2021 2041# 2045
$MPAD4 2035 2044#
$MPAD5 2036# 2046
$MPAD6 2033#
$MPAD7 2040# 2054 2057
$MPADL 2029 2056#
$MPADR 1127 2018#
$MPCNK 1128 1179#
$MPSET 1128 1180#
$MPVU 1831 1838#
$MSEG 1126 1934#
$MSEG3 1946# 1957 1963 1965 1973 1978 1980 1987
$MSEGP 1959#
$MSKA 1942 1975#
$MSKAP 1944 1956#
$MTROP 1142 1181#
$MZRO 1127 1993#
$MZRO2 1996#
$MZRO3 2001# 2008
$MZROB 1993# 1993 2011
$MZROC 1994# 1994 2010
$MZROX 1999 2002 2010#
$NEGF 2681# 2681 2721 2748
$NEGX 2692 2746#
$NOU20 985 991#
$NOUSR 981#
$NOYES 1132 2624#
$NXMU 1833 1841#
$OBUF 716# 3472 3474 3484 3504
$OERR1 3505 3527#
$OERR2 3488 3531#
$ONETM 576# 883 953 2066 2864
$OPTLK 1131 2278 2284 2407 2422 2507# 2633 2641 2689 2793 SEQ 0358
$OUTER 3519# 3529 3533
$OUTEX 718# 3382
$OUTNM 717# 3384 3393 3481 3487
$PACA1 2909 2925 2941# 2941
$PACA2 2910 2926 2942# 2942
$PACA3 2911 2927 2943# 2943
$PACA4 2912 2928 2944# 2944
$PACA5 2913 2929 2945# 2945
$PACB0 3245# 3245 3294
$PACC4 3300# 3300 3312 3332
$PACF1 3385# 3385 3405
$PACF2 3386# 3386 3404
$PAPER 56# 350
$PARER 600# 1845
$PAREX 1827 1844#
$PCLRO 1172 2876 2889#
$PDOVP 1088# 1088 1095 1793# 1793 1798
$PDOVU 1776 1793# 1829
$PGMIN 855 905#
$PGMN1 920#
$PMAP 1129 1921 2062#
$PMAP1 2065 2068#
$PMAP3 2064 2066#
$PMAP4 2086 2089#
$PMAP6 2094 2097#
$PMAP7 2087#
$PMAPL 2068 2075#
$PNAME 546# 989 995 1623
$PNM2 1622 1654 1659#
$PNM3 1645 1647 1650 1653#
$PNT 2947# 2947 3160# 3160 3164 3169 3188# 3188 3200 3208 3232
$PNTB1 2924#
$PNTC2 3107 3122#
$PNTC3 3118# 3134
$PNTCF 1123 3136# 3138
$PNTCW 1123 3102# 3139 3141
$PNTI1 2964 3147# 3171
$PNTI2 3151# 3154 3165
$PNTI3 2960 3167#
$PNTI4 2907# 3161 3172 3182 3196 3201 3215
$PNTIA 2877 2885 2941#
$PNTIB 2882 2920#
$PNTIC 2952#
$PNTIF 1106 2873#
$PNTIN 947 2836#
$PNTIT 1104 2879#
$PNTIX 2853 2860#
$PNTLN 2953 3188#
$PNTMG 1129 1182# 1431
$PNTNM 1124 1621# 2249 2866
$PNTSV 3155# 3155 3162
$PNTSX 1122 2974#
$PNTTY 2874# 2874 2880 2907 2930 3264 3331 SEQ 0359
$PNTYC 3246# 3246
$POCS 1138 3056#
$POCS1 3064 3071#
$POCS2 3076# 3085
$POCS3 3073 3080# 3094
$POCS4 3085# 3093
$POCS5 3078 3093#
$POCSF 1138 3052#
$POINT 3190# 3190 3192 3199
$PRNTX 2887 2914# 2922
$PSHER 604# 935 937 1092 1795
$PSIX 1137 3008#
$PSIX1 3017# 3033
$PSIX2 3020# 3032
$PSIX3 3032# 3038
$PSIX4 3025 3035#
$PSIX5 3023 3040#
$PSIXF 1137 3004#
$PTCA 3102# 3102 3119 3136
$PTCB 3104# 3104 3118
$PTINH 2839# 2839 2875 3255 3258
$PTSXF 1122 2987#
$PUT10 3367 3470#
$PUTCR 3330 3366#
$PVER 547#
$RADIX 3214 3217# 3225
$REINI 854 883#
$RSRTX 596#
$RSRTY 597#
$SBSRT 853 875#
$SPAG1 616#
$START 513# 976 980
$SUBUO 1038 1060#
$SVAPR 614#
$SVCSW 929# 929 2320 2326
$SVPAG 615#
$SVPI 613#
$SVUPC 619# 1041
$SVUUO 618# 1043 1047
$SW 2283# 2283 2286 2304# 2304 2309
$SW0 1763 2244 2266# 2535
$SW1 2277# 2279 2285 2297 2327
$SW10 2270 2323#
$SW11 2272 2326#
$SW12 2273# 2329
$SW13 2303 2331#
$SW14 2308 2337#
$SW2 2292 2301# 2332
$SW3 2306# 2335 2338 2340
$SW4 2299 2310# 2321 2324 2342
$SW5 2311#
$SW6 2288 2298#
$SW7 2294 2315# SEQ 0360
$SW8 2312# 2316 2319
$SW9 2268 2290 2318#
$SWCH1 2227# 2236
$SWERR 2281 2296#
$SWFLG 931# 931 2222 2246
$SWIN1 2245#
$SWONC 2243# 2243 2245 2271 2318
$SWTCH 1126 1218 1268 1432 1578 1604 1880 2102 2220# 2247 2883
$SWTIN 949 2242#
$SWU1 2223 2225 2235#
$SWU2 2221 2237#
$SWUSR 2226 2231#
$SWXX 2334 2341 2345#
$SWXX1 2354# 2359 2365 2404
$SWXX2 2355 2364#
$SWXX3 2360 2366#
$SWXX4 2361 2398#
$SWYYY 2421# 2421 2424
$SWZZ 2358 2406#
$SWZZ1 2410 2434#
$SWZZ2 2412 2433#
$SWZZ3 2426 2432#
$SWZZ4 2414 2428 2431#
$TABF 676# 2848
$TACB4 2507# 2507 2513
$TACC1 2627# 2627 2652
$TACC2 2628# 2628 2650
$TACD1 2675# 2675 2723 2730
$TACD2 2676# 2676 2719 2729
$TACD3 2677# 2677 2718 2728
$TALT1 2525 2529#
$TALT2 2523#
$TALTM 1134 1436 2520#
$TISIX 1135 2788#
$TOUB1 3257 3262#
$TOUB2 3265 3269#
$TOUB3 3271#
$TOUT 3153 3159 3181 3197 3212 3229 3237 3245#
$TOUT2 3269 3289 3300#
$TOUT3 3303 3328#
$TOUT4 3307 3314#
$TOUT5 3308# 3315 3323
$TOUT6 3305# 3333
$TOUTA 3275 3280 3285 3287 3294#
$TOUTB 3252#
$TPCK 2700 2737#
$TPCLR 1136 2296 2570# 2656
$TPCNV 1133 2669#
$TPCV1 2670 2672 2675#
$TPDEC 1133 2671#
$TPERR 2690 2701 2713 2727# 2747 2752 2765
$TPEX1 2718# 2770 2779
$TPEXT 2696 2698 2712# SEQ 0361
$TPMUL 2705 2740#
$TPNBR 2712 2743#
$TPOCT 1132 2159 2302 2307 2673#
$TSX1 2788# 2788 2816
$TSX2 2789# 2789 2817
$TSXB1 2793# 2811
$TSXB2 2796 2798 2813#
$TSXB3 2794 2801 2805 2809 2815#
$TSXB4 2804 2807#
$TTCHR 672# 2473 2485 2501 2545 2551 2585
$TTLK 1134 2468# 2520
$TTYIN 1135 2495#
$TTYSP 860#
$TWCNT 668# 2512
$TYPIN 948 2460#
$TYPL1 2703#
$TYPLP 2689# 2708 2749 2754
$TYPNB 674# 2680# 2680 2727
$UCK 967 979#
$UMODE 551# 979
$UMPV 1831#
$UNXM 1833#
$UOERX 1006 1073# 1136 1144 1147 1209
$UOPLE 1021 1023 1027 1029 1032 1034 1085#
$UORTN 1004 1018#
$UORTX 591# 1082
$UOTAB 1118 1121#
$UPAR 1827#
$UPDL 1829#
$UPLER 1008# 1008 1085 1087
$USRF1 3282 3287# 3290
$USRFC 3274 3279#
$USRFL 3272 3284#
$USRHL 595#
$USRUO 1039#
$USWTF 2224 2242# 2242 2311 2315
$UUO37 1067 1103#
$UUOER 592# 633 1007
$UUOIN 946 1004#
$VTF 678# 2850
$XUUO 1052# 1119
$YESNO 1131 2114 2136 2626#
$YN1 2631# 2657
$YN2 2634 2642 2650#
$YN3 2638 2648 2655#
$YN4 2644 2646 2659#
%AC0 1244# 1244 1250 1424 1426 1427 1477
%AC1 1245# 1245 1251 1353 1377
%AC2 1246# 1246 1252 1355 1379
%AC3 1247# 1247 1253 1357 1381
%ACTFL 625# 1266# 1266 1373
%ACTUL 626# 1391# 1391 1397
%COREC 624# 1367# 1367 1396 SEQ 0362
%CORFL 623# 1265# 1265 1349
%DISCR 627# 1329# 1329 1347 1371 1394 1401
%EACR 1250# 1305 1447
%EACR1 1251# 1418 1471
%EACS 1244# 1264 1430
%ERCNT 1290# 1290 1460
%ERFLG 1198# 1198 1210 1273
%ERFST 1450# 1450 1452
%ERHI1 766# 1262 1263
%ERHI2 767# 1478 1479
%ERHI3 768# 1306 1307
%ERIN1 1366 1390 1400 3793# 3795
%ERIN2 1343 3794#
%ERLP 1065 1198#
%ERLP0 1207 1210#
%ERLP1 1205 1214#
%ERLP2 1203 1218#
%ERMOR 1420 1423 1427#
%ERP2A 1351 1359#
%ERP2B 1334#
%ERP3A 1375 1383#
%ERPNT 1272 1277 1284#
%ERPR1 1315 1321#
%ERPR2 1312 1325 1329#
%ERPR3 1348 1368#
%ERPR4 1372 1393#
%ERPR5 1395 1406#
%ERPR6 1408 1412 1416#
%ERPRA 1292 1450#
%ERPRB 1294# 1453
%ERS1A 1447#
%ERSW1 1279 1288 1436#
%ERSW2 1443 1458#
%ERSW3 1465#
%ERUUO 1066 1258#
%ERX 1223# 1237
%ERX1 1213 1217 1222 1227# 1238
%ERXTR 1419# 1419 1425
%EXCAL 1471#
%EXCL1 1473 1477#
%LUUO 1259# 1259 1334
%REPT 1064 1236#
%RP 1211 1275 1284# 1284
%RP1 1212 1276 1285# 1285
.FHSLF 1682 3437
.ICILI 1686
.ICIRD 1686
.ICIWR 1686
.ICPOV 1686
.JB41 405#
.JBAPR 413#
.JBCNI 414#
.JBDDT 407# SEQ 0363
.JBFF 411#
.JBOPC 416#
.JBREL 406#
.JBREN 412#
.JBSA 410#
.JBSYM 408#
.JBTPC 415#
.JBUSY 409#
.JBUUO 404#
.JBVER 417#
.PRIIN 2478 2572
.PRIOU 2854 2896 3342 3351 3436
.TICCG 1688
AIC 1687
APRENB 1679 SEQ 0364
ATI 1689
BOUT 3372
CFIBF 2576
CFLUSH 268#
CINVAL 267#
CLOKOP 262#
CLOSF 3430
CLRBFI 2574
CWRTBI 269#
DEBRK 1766 1769 1779
DEVCHR 3491
DROPDV 229# 3304
EIR 1685
ENDUUO 275# 581
EOPUUO 276# 583
ERJMP 3398
ERLOOP 320#
ERLP1 321#
ERLP2 322#
ERRHLT 163#
ERROR 329#
ERROR1 340#
ERSTR 3439
ERUUO 319#
EXIT 1588 1901 3524
FATAL 162# 1083 1097 1340 1552 1554 1668 1868 1941 1984
FRD36 304#
FRD8 305#
FREAD 303#
FSELEC 302#
GET 146# 1044 1056 1072 1075 1078 1169 1208 1223 1227 1261 1524 1536 1557
1568 1582 1585 1613 1855 2312 2368 2369 2370 2481 2482 2486 2487 2502
2565 2566 2567 2577 2886 2900 2901 2920 2946 2981 2994 3040 3041 3042
3043 3044 3086 3087 3088 3089 3090 3322 3352 3353 3355 3356 3357 3373
3374 3432 3457 3458 3459
GETTAB 912 982 1501
GO 143# 945 946 947 948 949 950 952 1004 1172 1218 1264 1268 1305
1418 1425 1430 1431 1432 1436 1447 1471 1528 1558 1578 1604 1763 1880
2102 2114 2136 2138 2159 2212 2244 2247 2249 2278 2284 2296 2302 2307
2334 2341 2358 2407 2422 2503 2508 2520 2535 2633 2641 2656 2689 2793
2876 2883 3214 3225 3311 3329 3330 3394 3450 3455
GTJFN 3397
HALT 148# 602 862 863 864 865 866 867 868 869 870 909 977 1086
1091
HALTF 1590 1902 3440 3441 3442
INCHRS 2473
INCHRW 2497 2596
INCHWL 2545
JEN 150#
JRSTF 149#
MAPADR 285#
MAPCNK 286#
MAPMEM 282# SEQ 0365
MAPPNT 288#
MAPSET 287#
MEMSEG 284#
MEMZRO 283#
MODPCP 295#
MODPCU 294#
MTROP 263#
NAME 9# 12
OPENF 3401
OUTCHR 3309 3319
OUTSTR 986 989 3496 3512 3519 3527 3531
PBELL 238# 1466
PBIN 2484 2500
PBOUT 3321 3350 3360
PCRL 232# 1081 1413 1416 1659 1865 2072 2095 2602 3037
PCRL2 236#
PCRL2F 237#
PCRLF 233# 1573 1601 1890 2133 2260 2352 2366 2655 3035
PFORCE 240# 1150 1289 1854
PGMINT 156# 880
PJRST 147#
PMSG 242# 1074 1296 1299 1302 1624 1630 1638 1640 1644 1646 1649 1651 1655
1797 1803 1859 2070
PMSGF 245# 1094 1567 1597 1667 1886 2113 2117 2122 2127 2130 2135 2192 2257
2273 2277 2301 2306 2631
PNT1 198#
PNT11 212#
PNT11F 213#
PNT1F 199#
PNT2 200#
PNT2F 201#
PNT3 202#
PNT3F 203# 2184
PNT4 204#
PNT4F 205#
PNT5 206# 3112
PNT5F 207# 3110
PNT6 208# 1301 1864 3125 3133
PNT6F 209# 1572 1600 3123 3131
PNT7 210#
PNT7F 211#
PNTA 184# 1342
PNTADF 215# 3115
PNTADR 214# 2077 2079 3117
PNTAF 185#
PNTAL 186# 1168
PNTALF 187# 1166
PNTCHF 197# 1153 2992 3029 3066 3081 3127
PNTCHR 196# 1155 2613 2979 3031 3068 3083 3129
PNTCI 194# 1627 1633 2080
PNTCIF 195# 1889 2357
PNTCW 230#
PNTCWF 231# SEQ 0366
PNTDCF 223# 1888
PNTDEC 222# 1298 1657 2087
PNTDS 224#
PNTDSF 225#
PNTHW 218# 1076 1080 1304 1799 1807 1861
PNTHWF 219# 1096 2259 2275
PNTMGN 309#
PNTMSF 191# 2406
PNTMSG 190# 1623
PNTNM 226# 1451 1566 1596
PNTOCF 221#
PNTOCS 220# 1626 1629 1632 1635
PNTOCT 216#
PNTOTF 217#
PNTSIX 227#
PNTSXF 228# 2189 2356
PSIXL 188# 1163 1316 1318 1326 1328 1364 1388 1398 1415 1858
PSIXLF 189# 1160
PSIXM 192# 1074 1296 1299 1302 1624 1630 1638 1640 1644 1646 1649 1651 1655
1797 1803 1859 2070
PSIXMF 193# 1094 1567 1597 1667 1886 2113 2117 2122 2127 2130 2135 2192 2257
2273 2277 2301 2306 2632
PSOUT 994 996 3415
PSP 234# 1077 1862
PSPF 235#
PUT 145# 1024 1046 1049 1073 1111 1520 1533 1550 1569 1609 1853 2266 2345
2346 2347 2476 2477 2499 2554 2555 2556 2570 2894 2895 2974 2987 3004
3008 3010 3011 3012 3013 3052 3056 3058 3059 3060 3061 3316 3338 3339
3340 3344 3345 3368 3369 3428 3444 3445 3446
RDTTY 2562
REPTUO 323#
RESET 925
RFCOC 3343
RFMOD 2855 2897
RTN 144# 589 1009 1058 1170 1183 1228 1248 1254 1480 1505 1508 1537 1660
1680 1690 1885 1892 1952 2012 2042 2097 2104 2154 2198 2230 2238 2252
2254 2261 2313 2371 2408 2419 2423 2429 2435 2461 2470 2474 2483 2505
2514 2521 2532 2538 2578 2605 2653 2725 2731 2818 2863 2865 2893 2903
2915 2982 2995 3045 3091 3120 3230 3358 3361 3375 3406 3425 3434 3460
3467 3475 3517
S 64 74# 76 80 109 111 120 123 138 139 141 152 154 158
160 165 169 315 317 353 355 361 363 375 377 382 384 400
402 419 421 431 435 440 442 447 449 456 458 465 467 480
482 486 488 504 510 537 539 557 559 577 579 608 610 628
630 648 650 658 660 681 686 712 714 721 723 729 731 737
739 743 745 750 752 756 758 762 764 770 772 775 777 781
783 787 789 793 795 799 801 806 808 812 814 818 820 822
824 830 832 849 851 871 873 901 903 916 918 941 943 957
963 1000 1002 1011 1016 1068 1070 1099 1101 1186 1196 1230 1234 1240
1242 1256 1282 1332 1362 1386 1404 1435 1445 1456 1463 1469 1482 1518
1543 1564 1594 1619 1665 1670 1672 1693 1743 1772 1819 1851 1874 1896
1906 1914 1923 1932 1954 1988 1991 2013 2016 2059 2100 2111 2143 2157
2174 2202 2215 2218 2240 2264 2440 2456 2459 2463 2466 2489 2493 2516 SEQ 0367
2518 2539 2541 2579 2583 2617 2622 2664 2667 2687 2710 2735 2758 2783
2786 2821 2829 2831 2834 2868 2871 2905 2918 2936 2939 2966 2969 2972
2985 2996 3002 3046 3050 3095 3100 3142 3145 3174 3177 3184 3186 3203
3206 3241 3243 3248 3250 3277 3293 3296 3298 3326 3364 3376 3379 3422
SFCOC 3348 3354
SFMOD 2858 2899
SIBE 2479
SIR 1684
SIXBTZ 251# 1313 1319 1321 1344 1368 1393 1811 1814 1835 1838 1841 1846
SWITCH 257#
SYSGT 1497
TTALTM 178#
TTICHR 171#
TTICLR 181#
TTICNV 176#
TTIDEC 175#
TTINO 173#
TTIOCT 174#
TTIYES 172#
TTLOOK 177#
TTSIXB 179#
TTYINP 180#
$MDSXB 60#