Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/subkl.seq
There are no other files named subkl.seq in the archive.
;DFQDA
SEQ 0001
IDENTIFICATION
--------------
PRODUCT CODE: AH-F079A-DD
DIAGNOSTIC CODE: DFQDA (SUBKL)
PRODUCT NAME: DFQDAA0 DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM
VERSION: 0.1
DATE RELEASED: SEPTEMBER 1978
MAINTAINED BY: DIAGNOSTIC ENGINEERING
AUTHOR: JOHN R. KIRCHOFF
COPYRIGHT (C) 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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL) 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-DFQDA.TXT (SUBKL)
PAGE 3 SEQ 0004
1.0 ABSTRACT
--------
THE PDP-10 SUBROUTINES (PARAM.KLM,FIXED.KLM,STOR.KLM & SUBKL.SAV)
PROVIDE THE BASIC SUBROUTINES AND SOURCE FILES NEEDED TO
FACILITATE DEVELOPMENT OF DIAGNOSTIC AND UTILITY PROGRAMS FOR
THE PDP-10 KL10 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
SUBKL - 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-DFQDA.TXT (SUBKL) SEQ 0005
PAGE 4
2.0 REQUIREMENTS
------------
2.1 EQUIPMENT
---------
THE PDP-10 KL10 SUBROUTINES ARE CONFIGURED TO BE ABLE TO OPERATE
ONLY IN EXEC MODE. 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-DFQDA.TXT (SUBKL)
PAGE 5 SEQ 0006
2.3 MEMORY UTILITIZATION MAP
------------------------
0 -----------------------------------------
I
I EXEC PAGE TABLE
I
1000 -----------------------------------------
I
I SUBKL
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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:
EXEC MODE - KL10 - SWITCHES READ FROM DTE20 COMM
AREA. THESE ARE DEPOSITED INTO THE DTE20
COMM AREA BY THE CONSOLE PROCESSOR.
B. PRINT INITIALIZATION - THE PRINT SUBROUTINE PROVIDES OUTPUT
TO THE TTY AND/OR LPT IN EXEC MODE.
USE OF THE TTY OR LPT DEVICE IS SPECIFIED BY THE SWITCHES.
MAINDEC-10-DFQDA.TXT (SUBKL)
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) RESERVED
17 (000001) RESERVED
MAINDEC-10-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
(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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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-DFQDA.TXT (SUBKL)
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
--------------------
HISTORY FILE FOR SUBKL SEQ 0039
----------------------
---------------------------------------------------------------
CODE: MAINDEC-10-SUBKL
TITLE: DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM
VERSION: 0.1
DATE: SEPTEMBER 1978
REASON: ORIGINAL RELEASE OF THIS PROGRAM FOR KL-10.
SUBRTN WAS SPLIT INTO SEPARATE VERSIONS FOR THE KL10 AND
KA/KI TO PROVIDE ROOM IN SUBKL FOR MEMORY ERROR HANDLING.
---------------------------------------------------------------
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 1
SEQ 0040
DOCUMENT
**************
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^
**************
COPYRIGHT 1978
DIGITAL EQUIPMENT CORPORATION
MAYNARD, MASS. 01754
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 2
SEQ 0041
TABLE OF CONTENTS
*******************
24 *SUBKL* SPECIAL ASSEMBLY PARAMETERS
106 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
141 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
347 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
385 STANDARD PROGRAM ASSIGNMENTS
841 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
1169 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
1347 *CONTRL* UUO HANDLING SUBROUTINE
1540 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
1843 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
2015 PROCESSOR TYPE DETERMINATION
2052 "DIAMON" FILE SELECTION & READ
2096 PROGRAM HALTS
2152 PROGRAM NAME PRINTER
2205 *SUBRTN* INTERRUPT HANDLING ROUTINES
2468 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
2512 *SUBRTN* KL10 CACHE ENABLE
2759 *SUBRTN* KL10 MEMORY INITIALIZE
2863 *SUBRTN* MEMORY MAPPING ROUTINES
2973 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
3073 *SUBRTN* "MAPSET" SETUP KL10 PAGE MAP
3108 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 3
SEQ 0042
TABLE OF CONTENTS
*******************
3236 *SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
3277 *SUBRTN* "MEMZRO"
3321 *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
3347 *SUBRTN* PRINT MEMORY MAP
3416 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
3534 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
3816 *SUBRTN* TELETYPE INPUT ROUTINES
3994 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
4040 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
4159 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
4197 *SUBRTN* PRINT SUBROUTINES
4598 *SUBRTN* CHARACTER OUTPUT ROUTINES
4712 *STOR* RESERVED STORAGE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 4
SEQ 0043
1 MAINDEC-10-DFQDA (SUBKL)
17 COPYRIGHT 1978
DIGITAL EQUIPMENT CORPORATION
MARLBORO, MASS.
21 JOHN R. KIRCHOFF
*****************************************************************
24 *SUBKL* SPECIAL ASSEMBLY PARAMETERS
*****************************************************************
26 ASSEMBLY PARAMETERS
58 A MACRO TO DEFINE DEVICE NEUMONICS TO OCTAL DEVICE CODE
62 DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
77 DTE20 DEVICE CODES
86 KL10 EPT COMMUNICATION AREA
*****************************************************************
106 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
*****************************************************************
111 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
*****************************************************************
141 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
*****************************************************************
144 SPECIAL SUBPROGRAM LINKAGES
155 SPECIAL SUBROUTINE FATAL HALTS
USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
187 SUBROUTINE INITIALIZATION CALL
193 HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
200 TERMINAL INPUT UUO'S
ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
216 TERMINAL OUTPUT UUO'S.
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 5
SEQ 0044
282 SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
CONSERVES CORE OVER ASCIZ
287 CONSOLE SWITCH INPUT UUO.
READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
USER MODE.
293 CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
299 KL10 ONLY CACHE OPERATION UUO'S
304 END OF PASS/PROGRAM UUOS
307 DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
312 MEMORY MANAGEMENT UUO'S
UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
ADDRESS CONVERSION, ETC...
324 DEVICE CODE MODIFICATION UUO
ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
IOT'S TO A DIFFERENT DEVICE CODE.
334 "DIAMON" FILE SELECTION AND READ UUOS
341 KI10 ONLY UUO FOR PRINTING MARGIN VALUES
*****************************************************************
347 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
*****************************************************************
350 ERROR HANDLER PARAMETERS
359 THE ERROR HANDLER MACROS
361 A MACRO TO REPORT AN ERROR AND LOOP
372 A MACRO TO REPORT AN ERROR AND NOT LOOP
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 6
SEQ 0045
*****************************************************************
385 STANDARD PROGRAM ASSIGNMENTS
*****************************************************************
388 ACCUMULATORS
396 PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
410 PDP-10 STANDARD ADDRESS ASSIGNMENTS
417 JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
435 JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
454 USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
466 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.
475 PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
482 PDP-10 STANDARD APR CONO ASSIGNMENTS
491 PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
500 PDP-10 STANDARD PI CONO ASSIGNMENTS
515 PDP-10 STANDARD PI CONI ASSIGNMENTS
521 PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
534 KL10 CONO APR 000 ASSIGMENTS
590 KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)
603 KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)
625 KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)
635 KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)
643 KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)
653 KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)
659 KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)
666 KL10 BLKI APR 000 ASSIGMENTS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 7
SEQ 0046
675 KL10 CONO PI 004 ASSIGMENTS
698 KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)
709 KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)
731 KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)
744 KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)
750 KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)
763 KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)
768 KL10 CONO PAG 010 ASSIGMENTS
779 KL10 CONI PAG 010 ASSIGMENTS
791 KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)
797 KL10 EXEC PAGE MAP PAGE ASSIGNMENTS
810 KL10 USER PAGE MAP PAGE ASSIGNMENTS
*****************************************************************
841 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
*****************************************************************
846 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.
879 PROGRAM FIXED PARAMETER AREA
899 PROGRAM VARIABLE PARAMETER AREA
919 SPECIAL PROGRAM DISPATCH ADDRESSES
950 PROCESSOR CONTROL STORAGE
970 UUO DISPATCH TABLE
990 MEMORY MANAGMENT STORAGE
1000 PRINT CONTROL STORAGE
1023 THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
MOVEI NAME
PNTA ;OR PNTAF
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 8
SEQ 0047
1054 USER MODE OUTPUT FILE INFORMATION
1063 DISK UPDATE MODE FILE INFORMATION
1071 PUSHDOWN LIST CONTROL INFORMATION
1079 POWER LINE CLOCK FREQUENCY FLAG
1085 KL10 CACHE CONTROL FLAGS
1092 NUMBER INPUT DIGIT FLAG
1098 KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
1104 ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
1112 SPECIAL USERS UUO INTERCEPT INSTRUCTION
1117 USER MODE MONITOR TYPE FLAG
1123 SPECIAL USERS MUUO INTERCEPT INSTRUCTION
1129 SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
1135 "SWITCH" CALL USAGE CONTROL
1141 SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
1148 SM10 (KS-10) PROCESSOR TYPE FLAG
1154 RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
1160 SPECIAL FUTURE EXPANSION ROOM
1164 END OF FIXED STORAGE
*****************************************************************
1169 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
*****************************************************************
1172 SPECIAL SUBPROGRAM LINKAGES
1191 INITIALIZE THE SUBROUTINE PACKAGE
1213 SPECIAL SUBROUTINE ONLY INITIALIZATION
1242 CONTRL* SUBROUTINE PACKAGE INITIALIZATION
1259 INITIALIZE PROCESSOR FLAGS AND PUSH LIST
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 9
SEQ 0048
1280 INITIALIZE SUBROUTINES
1301 -- 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.
1331 $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
0 TO 112K POINTS TO ITSELF
*****************************************************************
1347 *CONTRL* UUO HANDLING SUBROUTINE
*****************************************************************
1350 UUO INITIALIZATION
1361 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
1418 UUO ERROR EXIT ROUTINE
1449 MONITOR UUO ERROR EXIT ROUTINE
1468 DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
*****************************************************************
1540 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
*****************************************************************
1543 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
1594 REPEAT LOOP ROUTINE
EITHER CONTINUES IN-LINE
OR TRANSFERS TO E FIELD OF UUO
1604 COMMON ERROR HANDLER AC SAVE/RESTORE
1618 ERROR REPORTING ROUTINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 10
SEQ 0049
1644 BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
1694 GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
1724 AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
1748 AC1 CONTAINS THE ACTUAL TEST RESULTS.
1766 PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
1796 EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
1806 EXECUTE HALT IF SWITCH ERSTOP SET.
1817 EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
1824 RING TTY BELL IF DING SWITCH IS SET.
1830 RETURN TO ERROR CALL ADDRESS+1
*****************************************************************
1843 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
*****************************************************************
1846 THESE ROUTINES ARE CONCERNED WITH DATA TRANSFER FOR THE KL10 CPU
THEY USE THE DTE-20 AND THE DTE-20 COMMUNICATIONS AREA
1869 DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE
1889 DTE20 COMMUNICATIONS ROUTINE
1909 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
1948 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.
1988 METER INTERRUPT ROUTINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 11
SEQ 0050
*****************************************************************
2015 PROCESSOR TYPE DETERMINATION
*****************************************************************
*****************************************************************
2052 "DIAMON" FILE SELECTION & READ
*****************************************************************
2077 "DIAMON" FILE READ
*****************************************************************
2096 PROGRAM HALTS
*****************************************************************
2098 SUBROUTINE ERROR HALT
2126 FATAL PROGRAM ERROR HALT
*****************************************************************
2152 PROGRAM NAME PRINTER
*****************************************************************
2154 PRINT PROGRAM NAME IF NOT STAND-ALONE
*****************************************************************
2205 *SUBRTN* INTERRUPT HANDLING ROUTINES
*****************************************************************
2208 PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
2216 INTERRUPT ROUTINE INITIALIZATION
SETUP INTERRUPT VECTORS
2234 DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES
2258 COMMON INTERRUPT HANDLERS
2266 PRINT CAUSE AND OTHER PERTINENT INFO
2297 COMMON INTERRUPT ROUTINE
2309 RESTORE PROCESSOR ON POWER FAIL RESTART
2336 KL10 PUSHDOWN OVERFLOW TRAP ROUTINE
2344 KL10 PAGE FAIL TRAP ROUTINE
2356 KL10 TRAP 3 ROUTINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 12
SEQ 0051
2364 KL10 COMMON TRAP & MMUO SETUP
2383 KL10 INTERRUPT ROUTINE
2429 KL10 INTERRUPT AND TRAP INITIALIZATION
*****************************************************************
2468 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
*****************************************************************
2470 END OF PASS ROUTINE
2497 END OF PROGRAM ROUTINE
*****************************************************************
2512 *SUBRTN* KL10 CACHE ENABLE
*****************************************************************
2714 KL10 CACHE INVALIDATE
2744 KL10 CACHE FLUSH
2752 KL10 CACHE WRITE-BACK & INVALIDATE
*****************************************************************
2759 *SUBRTN* KL10 MEMORY INITIALIZE
*****************************************************************
2762 MFICE - FIND ALL MF20 MEMORY CONTROLLERS IN THE SYSTEM AND MAKES
SURE THAT ALL IGNORE-CORRECTABLE-ERROR BITS ARE SET.
ALSO KNOCKS SOFTWARE STATUS 3 DOWN TO 2 AND CLEARS THE
ERROR FLAGS.
2775 <START HERE> TOP OF CONTROLLER LOOP. IF CONTROLLER IS MF20 THEN
SET ITS SOFTWARE STATUS PROPERLY & THEN DO BITSUB RAM LOOP, ELSE
JUST GO ON TO NEXT CONTROLLER.
2792 BITSUB RAM LOOP. READ EACH RAM LOC & CHANGE STATE OF ICE
BIT. IF WAS OFF THEN SET IT ELSE GO ON TO NEXT LOCATION.
2805 CREATE THE SBDIAG FCN 0 WORD TO CLEAR THE ERROR FLAGS,
AND THEN GO CLEAR THEM.
2816 MREPORT - REPORT MEMORY CONTROLLERS WITH ERRORS
2833 MEMSAV - DETERMINE MEMORY CONTROLLERS ON SYSTEM AND SAVE THE
ERROR STATUS FROM THEM.
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 13
SEQ 0052
*****************************************************************
2863 *SUBRTN* MEMORY MAPPING ROUTINES
*****************************************************************
2866 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 KL10
$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
2877 EXEC MODE MEMORY MAPPING
2905 MEMORY MAPPING CONTROL
MAP 4096K, 256K, 112K OR 256K SPECIAL USER
2932 COMBINE EXISTENT CHUNKS FROM MAPCNK
PUT POINTERS IN MEMSIZ TABLE
*****************************************************************
2973 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
*****************************************************************
2976 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
3004 NON-X-MEMORY SEGMENT MAPPER
3021 RESTORE OVERALL SYSTEM STATUS AFTER MAPPING
3035 EXISTANT MEMORY MAPPER
3051 SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
TEMPORY STORAGE POINTER IN AC1
VIRTUAL ADDRESS IN AC0
"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 14
SEQ 0053
*****************************************************************
3073 *SUBRTN* "MAPSET" SETUP KL10 PAGE MAP
*****************************************************************
3076 FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
ARGUMENTS PASSED IN AC0:
NEG - CLEAR PAGE MAP
0-37 - MAP CORRESPONDING 128K SEGMENT
*****************************************************************
3108 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
*****************************************************************
3111 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
3138 SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE
3180 EXIT FROM MEMSEG ROUTINE
3200 PHYSICAL CORE ASSIGNMENT
*****************************************************************
3236 *SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
*****************************************************************
3239 ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
RETURNED IN AC0:
0 - NO MEMORY AVAILABLE
START ADDRESS,,END ADDRESS
RETURNS +1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 15
SEQ 0054
*****************************************************************
3277 *SUBRTN* "MEMZRO"
*****************************************************************
3280 ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
MAPNEW = 0 DIRECT MEMORY ZERO
=-1 4096K KL10 PAGED MEMORY ZERO
*****************************************************************
3321 *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
*****************************************************************
3324 VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KL10 PAGE INACCESSIBLE
*****************************************************************
3347 *SUBRTN* PRINT MEMORY MAP
*****************************************************************
*****************************************************************
3416 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
*****************************************************************
3426 ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
3459 CHANGE THE DEVICE CODE LIST
3473 INPUT OLD CODE AND CHECK FOR VALIDITY
3490 GET THE OLD/NEW CODE FROM DEVICE CODE LIST
3520 DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
AC0 = [OLD,,NEW]
*****************************************************************
3534 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
*****************************************************************
3537 INPUT CONSOLE SWITCHES IN EXEC MODE
3555 SWITCH INITIALIZATION ROUTINE
3580 PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES
3643 SWITCH INITIALIZATION ROUTINE
3721 PROMPT FOR SWITCHES
3769 PROCESS PROMPT
CONTROL Z, ENDS PROMPTING
UPARROW, BACK UP ONE PROMPT
Y, SET SWITCH
N, DON'T SET SWITCH
CR, DON'T SET SWITCH
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 16
SEQ 0055
*****************************************************************
3816 *SUBRTN* TELETYPE INPUT ROUTINES
*****************************************************************
3819 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
3837 TELETYPE INPUT INITIALIZATION
3844 CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
NO INPUT CHECKING ON KL10
3852 TELETYPE IMAGE MODE INPUT
PROVIDES UNBUFFERED MODE INPUT
WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
3866 TELETYPE INPUT OPERATOR RESPONSE ROUTINE
3880 TELETYPE ALT-MODE CHECK ROUTINE
3934 TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC
3959 CHARACTER PROCESSING ROUTINE FOR INPUT
CHARACTER RETURNED IN AC0 IS UPPER CASE
ACTUAL CHARACTER IS IN $TTCHR
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 17
SEQ 0056
*****************************************************************
3994 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
*****************************************************************
3997 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
*****************************************************************
4040 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
*****************************************************************
4043 ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
NUMBER RETURNED IN AC0.
4064 INPUT AND COMPUTE NUMBER
4087 CHECK FOR PROPER AMOUNT OF CHARACTERS
4112 NUMBER COMPUTING CONSTANTS
4135 CONVERT CONVERSION ROUTINE
*****************************************************************
4159 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
*****************************************************************
4162 INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
SIXBIT WORD RETURNED IN AC0
*****************************************************************
4197 *SUBRTN* PRINT SUBROUTINES
*****************************************************************
4200 $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
4210 PRINT SUBROUTINE INITIALIZATION
INITIALIZES CONTROL WORDS
4239 PRINT SUBROUTINE ENTRY POINT
EXIT VIA $PNTI4 BELOW
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 18
SEQ 0057
4263 PRINT ROUTINE EXIT
4276 PRINT LIMIT WARNING & ALTERNATE EXIT PATH
4296 PRINT ROUTINE SELECTOR
BASED ON "AC FIELD" = 12 - 17
4326 SIXBIT PRINT SUBROUTINE
PRINTS SIXBIT WORD IN AC0
4330 NORMAL PRINTOUT
4343 FORCED PRINTOUT
4356 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
4406 OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
4455 DF10 CONTROL WORD PRINT ROUTINE
PRINTS WORD IN AC0
DF22F = 0, ###### ###### ,18 BIT DF10
-1, ##### ######## ,22 BIT DF10
4502 OCTAL PRINTOUT ROUTINE
PRINTS NUMBER IN AC0
4534 ASCII/CHARACTER PRINTOUT ROUTINE
PRINTS CHAR IN LOWER 7 BITS OF AC0
4544 PRINTS ASCII WHOSE ADDRESS IS IN AC0
4563 DECIMAL PRINTOUT ROUTINE
PRINTS NUMBER IN AC0
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^ DECDOC VER 00.24 11-SEP-78 15:06:41 PAGE 19
SEQ 0058
*****************************************************************
4598 *SUBRTN* CHARACTER OUTPUT ROUTINES
*****************************************************************
4601 OUTPUT TERMINATION CONTROL ROUTINE
4609 OVERALL CHARACTER OUTPUT CONTROL ROUTINE
4631 ALT-MODE TRANSFER TO USER ROUTINE
4643 EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE
4665 RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
4670 EXEC MODE LPT OUTPUT
4692 TELETYPE FF & VT CONVERSION
4704 EXEC MODE CHARACTER OUTPUT
*****************************************************************
4712 *STOR* RESERVED STORAGE
*****************************************************************
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 1
SUBKLT MAC 11-Sep-78 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0059
1 ;*MAINDEC-10-DFQDA (SUBKL)
2
3 000001 DECVER=001
4 000000 MCNVER=000
5
6 XLIST
7 LIST
8 LALL
9
10 NAME \MCNVER,\DECVER^
11
12 TITLE SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1^
13
14 000137 LOC 137
15 000137 000000 000001 MCNVER,,DECVER
16
17 ;*COPYRIGHT 1978
18 ;*DIGITAL EQUIPMENT CORPORATION
19 ;*MARLBORO, MASS.
20
21 ;*JOHN R. KIRCHOFF
22
23 NOSYM
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2
SUBKLT MAC 11-Sep-78 11:38 *SUBKL* SPECIAL ASSEMBLY PARAMETERS SEQ 0060
24 SUBTTL *SUBKL* SPECIAL ASSEMBLY PARAMETERS
25
26 ;*ASSEMBLY PARAMETERS
27
28 000001 KL10==1
29 000001 KL10P0==1
30 000001 MEMMAP==1
31 000001 PGMEND==1
32 000001 EXCASB==1
33 000000 DEBUG==00
34 001000 MODDVL==START
35 006541 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 535400 PAREA3=SIXBIT/SUBKL/
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>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 3
SUBKLT MAC 11-Sep-78 11:38 *SUBKL* SPECIAL ASSEMBLY PARAMETERS SEQ 0061
62 ;*DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
63 S^;*********************************************************************^
64
65 000000 AC0= 0
66 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
67 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS
68 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
69 020007 DIASWS= 20007 ;DIAMON LH SWITCHES
70 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
71 001000 DING10= 1B26 ;10 DOORBELL (FROM THE 11)
72 001000 DNG10C= 1B26 ;10 DOORBELL CLEAR
73
74 000024 MTR= 24 ;METER CODE
75 000020 TIM= 20 ;METER CODE
76
77 ;*DTE20 DEVICE CODES
78 S^;*********************************************************************^
79
80 000200 DTE== 200 ;DTE0
81 000200 DTE0== 200
82 000204 DTE1== 204
83 000210 DTE2== 210
84 000214 DTE3== 214
85
86 ;*KL10 EPT COMMUNICATION AREA
87 S^;*********************************************************************^
88
89 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
90 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
91 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
92 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
93
94 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
95 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
96 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
97 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
98 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
99 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
100 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
101 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE #
102 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
103 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
104 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
105 000457 $DTSWR= 457 ;DTE20 10 SWITCH REGISTER
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 1
PARAM KLM 1-Aug-77 08:33 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0062
106 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
107
108 DEFINE S,<;*********************************************************************>
109
110 S^;*********************************************************************^
111 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
112 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
113 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
114 S^;*********************************************************************^
115
116 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
117 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
118 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
119
120 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
121 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
122 010000 DING== 010000 ;RING BELL ON ERROR
123
124 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
125 002000 ERSTOP==002000 ;HALT ON TEST ERROR
126 001000 PALERS==001000 ;PRINT ALL ERRORS
127
128 000400 RELIAB==000400 ;RELIABILITY MODE
129 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
130 000100 INHPAG==000100 ;INHIBIT PAGING
131
132 000040 MODDVC==000040 ;MODIFY DEVICE CODE
133 000020 INHCSH==000020 ;INHIBIT CACHE
134 000010 OPRSEL==000010 ;OPERATOR SELECTION
135
136 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
137
138 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
139
140 ;SWITCH 17 RESERVED !!!
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0063
141 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
142
143 S^;*********************************************************************^
144 ;*SPECIAL SUBPROGRAM LINKAGES
145 S^;*********************************************************************^
146
147 027772 FSELNK= 27772 ;FILE SELECT LINK
148 027773 FRDLNK= 27773 ;FILE READ LINK
149 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
150 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
151 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
152 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
153
154 S^;*********************************************************************^
155 ;*SPECIAL SUBROUTINE FATAL HALTS
156 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
157 S^;*********************************************************************^
158
159 ;ADDRESS TAG REASON
160 ;---------------------
161
162 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
163 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
164 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
165 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
166 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
167 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
168 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
169 ; 1017 EOPERR ;END OF PROGRAM ERROR
170 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
171
172 S^;*********************************************************************^
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 3
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0064
173 S^;*********************************************************************^
174 ;OPERATOR DEFINITIONS (NON-UUO'S)
175 S^;*********************************************************************^
176
177 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
178 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
179 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
180 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
181 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
182 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
183 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
184 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
185
186 S^;*********************************************************************^
187 ;*SUBROUTINE INITIALIZATION CALL
188 S^;*********************************************************************^
189
190 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
191
192 S^;*********************************************************************^
193 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
194 S^;*********************************************************************^
195
196 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
197 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
198
199 S^;*********************************************************************^
200 ;*TERMINAL INPUT UUO'S
201 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
202 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
203 S^;*********************************************************************^
204
205 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
206 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
207 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
208 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
209 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
210 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
211 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
212 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
213 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
214 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
215 037500 000003 OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 4
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0065
216 ;*TERMINAL OUTPUT UUO'S.
217
218 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
219 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
220 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
221 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
222 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
223 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
224 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
225 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
226 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
227 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
228 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
229 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
230 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
231 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
232 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
233 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
234 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
235 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
236 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
237 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
238 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
239 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
240 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
241 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
242 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
243 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
244 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
245 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
246 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
247 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
248 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
249 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
250 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
251 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
252 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
253 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
254 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
255 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
256 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
257 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
258 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
259 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 5
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0066
260 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
261 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
262 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
263 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
264 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
265 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
266 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
267 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
268 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
269 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
270 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
271 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
272 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
273
274 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
275
276 DEFINE PMSG (ARG),<
277 PSIXM [SIXBIT\ARG'_\]>
278
279 DEFINE PMSGF (ARG),<
280 PSIXMF [SIXBIT\ARG'_\]>
281
282 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
283 ;* CONSERVES CORE OVER ASCIZ
284
285 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
286
287 ;*CONSOLE SWITCH INPUT UUO.
288 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
289 ;* USER MODE.
290
291 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
292
293 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
294 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
295
296 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
297 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
298
299 ;*KL10 ONLY CACHE OPERATION UUO'S
300
301 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
302 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
303 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 6
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0067
304 ;*END OF PASS/PROGRAM UUOS
305
306 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
307 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
308
309 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
310 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
311
312 ;*MEMORY MANAGEMENT UUO'S
313 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
314 ;*ADDRESS CONVERSION, ETC...
315
316 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
317 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
318 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
319 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
320 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
321 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
322 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
323
324 ;*DEVICE CODE MODIFICATION UUO
325 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
326 ;*IOT'S TO A DIFFERENT DEVICE CODE.
327
328 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
329 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
330
331 IFNDEF MODDVL,<MODDVL==BEGIN>
332 IFNDEF MODDVU,<MODDVU==BEGIN>
333
334 ;*"DIAMON" FILE SELECTION AND READ UUOS
335
336 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
337 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
338 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
339 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
340
341 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
342
343 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
344
345 XLIST
346 IFNDEF KLOLD,<LIST
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 7
PARAM KLM 1-Aug-77 08:33 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976 SEQ 0068
347 SUBTTL ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
348
349 S^;*********************************************************************^
350 ;*ERROR HANDLER PARAMETERS
351 S^;*********************************************************************^
352
353 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
354 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
355 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
356 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
357 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
358
359 ;*THE ERROR HANDLER MACROS
360
361 ;*A MACRO TO REPORT AN ERROR AND LOOP
362
363 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
364 SALL
365 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
366 CORECT,,ACTUAL
367 [SIXBIT\D'_\],,ERR]
368 XALL
369 ERLOOP ADR ;IF ERROR, LOOP TO ADR
370 >
371
372 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP
373
374 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
375 SALL
376 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
377 CORECT,,ACTUAL
378 [SIXBIT\D'_\],,ERR]
379 XALL>
380
381 >;END OF KLOLD CONDITIONAL
382
383 XLIST
384 IFDEF $PAPER,<LIST>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 8
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0069
385 SUBTTL STANDARD PROGRAM ASSIGNMENTS
386
387 S^;*********************************************************************^
388 ;*ACCUMULATORS
389 S^;*********************************************************************^
390
391 000017 P= 17 ;PUSHDOWN POINTER AC (IF PUSH LIST USED)
392 000015 REPT== 15 ;ERROR HANDLER REPEAT AC
393 000016 REPT1== 16 ; "
394
395 S^;*********************************************************************^
396 ;*PDP-10 STANDARD PC CONTROL FLAGS (SAVED ON PUSHJ, JSR, ETC..)
397 S^;*********************************************************************^
398
399 400000 AROV== 400000 ;ARITHMETIC OVERFLOW
400 200000 CRY0== 200000 ;CARRY 0
401 100000 CRY1== 100000 ;CARRY 1
402 040000 FOV== 40000 ;FLOATING POINT OVERFLOW
403 020000 BIS== 20000 ;BYTE INTERRUPT
404 010000 USERF== 10000 ;USER MODE
405 004000 EXIOT== 4000 ;USER PRIV I/O
406 000100 FXU== 100 ;FLOATING POINT UNDERFLOW
407 000040 DCK== 40 ;DIVIDE CHECK
408
409 S^;*********************************************************************^
410 ;*PDP-10 STANDARD ADDRESS ASSIGNMENTS
411 S^;*********************************************************************^
412
413 000040 LUUO== 40 ;UUO STORAGE, UUO 1-37
414 000041 LUUOI== 41 ;UUO SERVICE INSTRUCTION
415
416 S^;*********************************************************************^
417 ;*JOB DATA AREA EXTERNALS (OLD DEFINITIONS)
418 S^;*********************************************************************^
419
420 000040 JOBUUO==40
421 000041 JOB41== 41
422 000044 JOBREL==44
423 000074 JOBDDT==74
424 000116 JOBSYM==116
425 000117 JOBUSY==117
426 000120 JOBSA== 120
427 000121 JOBFF== 121
428 000124 JOBREN==124
429 000125 JOBAPR==125
430 000126 JOBCNI==126
431 000127 JOBTPC==127
432 000130 JOBOPC==130
433 000137 JOBVER==137
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 9
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0070
434 S^;*********************************************************************^
435 ;*JOB DATA AREA EXTERNALS (NEW DEFINITIONS)
436 S^;*********************************************************************^
437
438 000040 .JBUUO==40
439 000041 .JB41== 41
440 000044 .JBREL==44
441 000074 .JBDDT==74
442 000116 .JBSYM==116
443 000117 .JBUSY==117
444 000120 .JBSA== 120
445 000121 .JBFF== 121
446 000124 .JBREN==124
447 000125 .JBAPR==125
448 000126 .JBCNI==126
449 000127 .JBTPC==127
450 000130 .JBOPC==130
451 000137 .JBVER==137
452
453 S^;*********************************************************************^
454 ;*USER MODE APR ASSIGNMENTS (FOR "APRENB" CALL)
455 S^;*********************************************************************^
456
457 200000 PDLOVU==200000 ;PUSHDOWN LIST OVERFLOW
458 020000 MPVU== 20000 ;MEMORY PROTECTION VIOLATION
459 010000 NXMU== 10000 ;NON-X-MEMORY
460 004000 PARU== 4000 ;PARITY ERROR
461 001000 CLKU== 1000 ;CLOCK
462 000100 FOVU== 100 ;FLOATING OVERFLOW
463 000010 AROVU== 10 ;ARITHMETIC OVERFLOW
464
465 S^;*********************************************************************^
466 ;*USER MODE PRINT OUTPUT CHANNEL ASSIGNMENTS (FOR SUBROUTINE PACKAGE)
467 ;*THE USER SHOULD BE CAUTIONED NOT TO USE THESE CHANNELS WHEN
468 ;*USING THE SUBROUTINE PACKAGE AND CODING USER MODE PROGRAMS.
469 S^;*********************************************************************^
470
471 000017 $DEVCH==17 ;LOGICAL DEVICE CHANNEL
472 000016 $DVCH1==16 ;LOGICAL DEV UPDATE INPUT CHANNEL
473
474 S^;*********************************************************************^
475 ;*PDP-10 SPECIAL COMPATABILITY ASSIGNMENTS
476 S^;*********************************************************************^
477
478 000010 PAG== 010 ;PAGING I/O DEVICE CODE, KI/KL
479
480 000014 CCA== 014 ;CACHE I/O DEVICE CODE, KL10
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 10
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0071
481 S^;*********************************************************************^
482 ;*PDP-10 STANDARD APR CONO ASSIGNMENTS
483 S^;*********************************************************************^
484
485 200000 IOCLR== 200000 ;CLEAR ALL I/O DEVICES
486 004000 CLKDIS==4000 ;DISABLE CLOCK INTERRUPTS
487 002000 CLKENB==2000 ;ENABLE CLOCK INTERRUPTS
488 001000 CLKCLR==1000 ;CLEAR CLOCK FLAG
489
490 S^;*********************************************************************^
491 ;*PDP-10 STANDARD APR CONI ASSIGNMENTS, RIGHT HALF
492 S^;*********************************************************************^
493
494 002000 CLKENB==2000 ;CLOCK INTERRUPT ENABLED
495 001000 CLK== 1000 ;CLOCK FLAG
496 010000 ANXM== 10000 ;KA10, NON-X-MEMORY
497 000100 INXM== 100 ;KI10
498
499 S^;*********************************************************************^
500 ;*PDP-10 STANDARD PI CONO ASSIGNMENTS
501 S^;*********************************************************************^
502
503 400000 PWFCLR==400000 ;CLEAR POWER FAIL FLAG
504 200000 PARCLR==200000 ;CLEAR PARITY ERROR FLAG
505 100000 PARDIS==100000 ;DISABLE PARITY INTERRUPTS
506 040000 PARENB==40000 ;ENABLE PARITY INTERRUPTS
507 010000 PICLR== 10000 ;CLEAR PI SYSTEM
508 004000 REQSET==4000 ;SET PROGRAM PI REQUEST
509 002000 CHNON== 2000 ;TURN ON CHANNEL
510 001000 CHNOFF==1000 ;TURN OFF CHANNEL
511 000400 PIOFF== 400 ;TURN OFF PI SYSTEM
512 000200 PION== 200 ;TURN ON PI SYSTEM
513
514 S^;*********************************************************************^
515 ;*PDP-10 STANDARD PI CONI ASSIGNMENTS
516 S^;*********************************************************************^
517
518 000200 PION== 200 ;PI SYSTEM ON
519
520 S^;*********************************************************************^
521 ;*PDP-10 STANDARD PI CHANNEL ASSIGNMENTS
522 S^;*********************************************************************^
523
524 000100 PICHN1==100 ;PI CHANNEL 1
525 000040 PICHN2==40 ;PI CHANNEL 2
526 000020 PICHN3==20 ;PI CHANNEL 3
527 000010 PICHN4==10 ;PI CHANNEL 4
528 000004 PICHN5==4 ;PI CHANNEL 5
529 000002 PICHN6==2 ;PI CHANNEL 6
530 000001 PICHN7==1 ;PI CHANNEL 7
531 000177 PICHNA==177 ;ALL PI CHANNELS, 1 THRU 7
532 XLIST
533 IFDEF $PAPER,<LIST>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 18
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0072
534 ;*KL10 CONO APR 000 ASSIGMENTS
535 S^;*********************************************************************^
536 200000 LIOCLR==200000 ;CLEAR ALL I/O DEVICES
537 100000 LFLGEN==100000 ;ENABLE SELECTED FLAG
538 040000 LFLGDS==40000 ;DISABLE SELECTED FLAG
539 020000 LFLGCL==20000 ;CLEAR SELECTED FLAG
540 010000 LFLGST==10000 ;SET SELECTED FLAG
541 004000 LSBUSE==4000 ;SBUS ERROR FLAG
542 002000 LNXMER==2000 ;NON-EXISTENT MEMORY FLAG
543 001000 LIOPFE==1000 ;I/O PAGE FAIL FLAG
544 000400 LPARER==400 ;MB PARITY ERROR FLAG
545 000200 LCADRP==200 ;CACHE ADDRESS PARITY ERROR FLAG
546 000100 LSADRP==100 ;S-BUS ADDRESS PARITY ERROR FLAG
547 000040 LPWRFL==40 ;POWER FAIL FLAG
548 000020 LCASWD==20 ;CACHE SWEEP DONE FLAG
549 000007 LAPRP7==7 ;APR PI CHANNEL 7
550 000006 LAPRP6==6 ;APR PI CHANNEL 6
551 000005 LAPRP5==5 ;APR PI CHANNEL 5
552 000004 LAPRP4==4 ;APR PI CHANNEL 4
553 000003 LAPRP3==3 ;APR PI CHANNEL 3
554 000002 LAPRP2==2 ;APR PI CHANNEL 2
555 000001 LAPRP1==1 ;APR PI CHANNEL 1
556 104000 LESBER==104000 ;ENABLE SBUS ERRORS
557 044000 LDSBER==044000 ;DISABLE SBUS ERRORS
558 024000 LCSBER==024000 ;CLR SBUS ERRORS
559 014000 LSSBER==014000 ;SET SBUS ERROR
560 102000 LENXER==102000 ;ENABLE NON-EXISTENT MEMORY
561 042000 LDNXER==042000 ;DISABLE NON-EXISTENT MEORY
562 022000 LCNXER==022000 ;CLR NON-EXISTENT MEMORY
563 012000 LSNXER==012000 ;SET NON-EXISTENT MEMORY
564 101000 LEIOPF==101000 ;ENABLE I/O PAGE FAILS
565 041000 LDIOPF==041000 ;DISABLE I/O PAGE FAILS
566 021000 LCIOPF==021000 ;CLR I/O PAGE FAIL
567 011000 LSIOPF==011000 ;SET I/O PAGE FAIL
568 100400 LEPAER==100400 ;ENABLE PARITY ERRORS
569 040400 LDPAER==040400 ;DISABLE PARITY ERRORS
570 020400 LCPAER==020400 ;CLR PARITY ERROR
571 010400 LSPAER==010400 ;SET PARITY ERROR
572 100200 LECAER==100200 ;ENABLE CACHE ADR PARITY ERRORS
573 040200 LDCAER==040200 ; " DISABLE
574 020200 LCCAER==020200 ; " CLR
575 010200 LSCAER==010200 ; " SET
576 100100 LESAER==100100 ;ENABLE S-BUS ADR PARITY ERRORS
577 040100 LDSAER==040100 ; " DISABLE
578 020100 LCSAER==020100 ; " CLR
579 010100 LSSAER==010100 ; " SET
580 100040 LEPWRF==100040 ;ENABLE POWER FAIL
581 040400 LDPWRF==040400 ;DISABLE POWER FAIL
582 020040 LCPWRF==020040 ;CLR POWER FAIL
583 010040 LSPWRF==010040 ;SET POWER FAIL
584 100020 LECASD==100020 ;ENABLE CACHE SWEEP DONE
585 040020 LDCASD==040020 ;DISABLE CACHE SWEEP DONE
586 020020 LCCASD==020020 ;CLR CACHE SWEEP DONE
587 010020 LSCASD==010020 ;SET CACHE SWEEP DONE
588 127760 LAPRAL==127760 ;CLR ALL ERROR FLAGS & ENABLE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 19
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0073
589 S^;*********************************************************************^
590 ;*KL10 CONI APR 000 ASSIGMENTS (LEFT HALF)
591 S^;*********************************************************************^
592
593 004000 LSBSEN==4000 ;SBUS ERRORS ENABLED
594 002000 LNXMEN==2000 ;NON-EXISTENT MEMORY ERRORS ENABLED
595 001000 LIOPFE==1000 ;I/O PAGE FAILURES ENABLED
596 000400 LPAREN==400 ;PARITY ERRORS ENABLED
597 000200 LCADEN==200 ;CACHE ADR PARITY ERRORS ENABLED
598 000100 LSADEN==100 ;S-BUS ADR PARITY ERRORS ENABLED
599 000040 LPWRFE==40 ;POWER FAILURES ENABLED
600 000020 LCASDE==20 ;CACHE SWEEP DONE ENABLED
601
602 S^;*********************************************************************^
603 ;*KL10 CONI APR 000 ASSIGMENTS (RIGHT HALF)
604 S^;*********************************************************************^
605
606 200000 LCASWB==200000 ;CACHE SWEEP BUSY
607 004000 LSBUSE==4000 ;SBUS ERROR FLAG
608 002000 LNXMER==2000 ;NON-EXISTENT MEMORY FLAG
609 001000 LIOPFE==1000 ;I/O PAGE FAIL FLAG
610 000400 LPARER==400 ;PARITY ERROR FLAG
611 000200 LCADRP==200 ;CACHE ADR PARITY ERROR FLAG
612 000100 LSADRP==100 ;S-BUS ADR PARITY ERROR FLAG
613 000040 LPWRFL==40 ;POWER FAIL FLAG
614 000020 LCASWD==20 ;CACHE SWEEP DONE FLAG
615 000007 LAPRP7==7 ;APR PI CHANNEL 7
616 000006 LAPRP6==6 ;APR PI CHANNEL 6
617 000005 LAPRP5==5 ;APR PI CHANNEL 5
618 000004 LAPRP4==4 ;APR PI CHANNEL 4
619 000003 LAPRP3==3 ;APR PI CHANNEL 3
620 000002 LAPRP2==2 ;APR PI CHANNEL 2
621 000001 LAPRP1==1 ;APR PI CHANNEL 1
622 000010 LINT==10 ;APR INTERRUPT
623
624 S^;*********************************************************************^
625 ;*KL10 DATAO APR 000 ASSIGMENTS (LEFT HALF)
626 S^;*********************************************************************^
627
628 000400 LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH
629 000200 LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH
630 000100 LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE
631 000040 LUSCMP==40 ;USER ADDRESS COMPARE
632 000000 LEXCMP==0 ;EXEC ADDRESS COMPARE
633
634 S^;*********************************************************************^
635 ;*KL10 DATAO APR 000 ASSIGMENTS (RIGHT HALF)
636 S^;*********************************************************************^
637
638 ;DATAO APR,ADDRESS SWITCHES=13-35
639 >
640 XLIST
641 IFDEF $PAPER,<LIST>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 20
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0074
642 S^;*********************************************************************^
643 ;*KL10 DATAI APR 000 ASSIGMENTS (LEFT HALF)
644 S^;*********************************************************************^
645
646 000400 LINSTF==400 ;ADDRESS BREAK REQUEST FOR INST. FETCH
647 000200 LDATAF==200 ;ADDRESS BREAK REQUEST FOR DATA FETCH
648 000100 LWRITE==100 ;ADDRESS BREAK REQUEST FOR DATA WRITE
649 000040 LUSCMP==40 ;USER ADDRESS COMPARE
650 000000 LEXCMP==0 ;EXEC ADDRESS COMPARE
651
652 S^;*********************************************************************^
653 ;*KL10 DATAI APR 000 ASSIGMENTS (RIGHT HALF)
654 S^;*********************************************************************^
655
656 ;DATAI APR,ADDRESS SWITCHES=13-35
657
658 S^;*********************************************************************^
659 ;*KL10 BLKO APR 000 ASSIGMENTS (IMMEDIATE MODE)
660 S^;*********************************************************************^
661
662 ;REFILL ALGORITHM BITS 18-20
663 ;REFILL ALGORITHM ADDRESS 27-33
664
665 S^;*********************************************************************^
666 ;*KL10 BLKI APR 000 ASSIGMENTS
667 S^;*********************************************************************^
668
669 ;MICRO-CODE OPTIONS = 0-8
670 ;MICRO-CODE VERSION NUMBER = 9-17
671 ;HARDWARE OPTIONS =18-23
672
673 ;PROCESSOR SERIAL NUMBER = 24-35
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 22
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0075
674 S^;*********************************************************************^
675 ;*KL10 CONO PI 004 ASSIGMENTS
676 S^;*********************************************************************^
677
678 400000 LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS
679 200000 LEVNPD==200000 ;WRITE EVEN PARITY DATA
680 100000 LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0
681 020000 LRQCLR==20000 ;DROP INTERRUPT ON SELECTED CHANNEL
682 010000 LPICLR==10000 ;CLEAR PI SYSTEM
683 004000 LREQSE==4000 ;REQUEST INTERRUPT ON SELECTED CHANNEL
684 002000 LCHNON=2000 ;TURN ON SELECTED CHANNEL
685 001000 LCHNOF==1000 ;TURN OFF SELECTED CHANNEL
686 000400 LPIOFF==400 ;TURN PI SYSTEM OFF
687 000200 LPION==200 ;TURN PI SYSTEM ON
688 000100 LPICH1==100 ;PI CHANNEL 1
689 000040 LPICH2==40 ;PI CHANNEL 2
690 000020 LPICH3==20 ;PI CHANNEL 3
691 000010 LPICH4==10 ;PI CHANNEL 4
692 000004 LPICH5==4 ;PI CHANNEL 5
693 000002 LPICH6==2 ;PI CHANNEL 6
694 000001 LPICH7==1 ;PI CHANNEL 7
695 000177 LPICHA==177 ;ALL PI CHANNELS
696
697 S^;*********************************************************************^
698 ;*KL10 CONI PI 004 ASSIGMENTS (LEFT HALF)
699 S^;*********************************************************************^
700
701 000100 LPRCH1==100 ;PROGRAM REQUEST ON CHANNEL 1
702 000040 LPRCH2==40 ;PROGRAM REQUEST ON CHANNEL 2
703 000020 LPRCH3==20 ;PROGRAM REQUEST ON CHANNEL 3
704 000010 LPRCH4==10 ;PROGRAM REQUEST ON CHANNEL 4
705 000004 LPRCH5==4 ;PROGRAM REQUEST ON CHANNEL 5
706 000002 LPRCH6==2 ;PROGRAM REQUEST ON CHANNEL 6
707 000001 LPRCH7==1 ;PROGRAM REQUEST ON CHANNEL 7
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 23
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0076
708 S^;*********************************************************************^
709 ;*KL10 CONI PI 004 ASSIGMENTS (RIGHT HALF)
710 S^;*********************************************************************^
711
712 400000 LEVNPA==400000 ;WRITE EVEN PARITY ADDRESS
713 200000 LEVNPD==200000 ;WRITE EVEN PARITY DATA
714 100000 LEVNCD==100000 ;WRITE EVEN CACHE DIRECTORY PARITY *P0
715 040000 LPIIP1==40000 ;PI IN PROGRESS ON CHANNEL 1
716 020000 LPIIP2==20000 ;PI IN PROGRESS ON CHANNEL 2
717 010000 LPIIP3==10000 ;PI IN PROGRESS ON CHANNEL 3
718 004000 LPIIP4==4000 ;PI IN PROGRESS ON CHANNEL 4
719 002000 LPIIP5==2000 ;PI IN PROGRESS ON CHANNEL 5
720 001000 LPIIP6==1000 ;PI IN PROGRESS ON CHANNEL 6
721 000400 LPIIP7==400 ;PI IN PROGRESS ON CHANNEL 7
722 000200 LPION==200 ;PI SYSTEM ON
723 000100 LPICH1==100 ;PI CHANNEL 1 ON
724 000040 LPICH2==40 ;PI CHANNEL 2 ON
725 000020 LPICH3==20 ;PI CHANNEL 3 ON
726 000010 LPICH4==10 ;PI CHANNEL 4 ON
727 000004 LPICH5==4 ;PI CHANNEL 5 ON
728 000002 LPICH6==2 ;PI CHANNEL 6 ON
729 000001 LPICH7==1 ;PI CHANNEL 7 ON
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 24
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0077
730 S^;*********************************************************************^
731 ;*KL10 DATAO PAG 010 ASSIGMENTS (LEFT HALF)
732 S^;*********************************************************************^
733
734 400000 LLACBL==400000 ;LOAD AC BLOCKS
735 200000 LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION
736 100000 LLDUSB==100000 ;LOAD USER BASE REGISTER
737 000040 LCWSX==40 ;
738
739 ;CURRENT AC BLOCKS BITS 6 - 8
740 ;PREVIOUS AC BLOCKS BITS 9 - 11
741 ;PREVIOUS CONTEXT SECTION BITS 13 - 17
742
743 S^;*********************************************************************^
744 ;*KL10 DATAO PAG 010 ASSIGMENTS (RIGHT HALF)
745 S^;*********************************************************************^
746
747 ;USER BASE REGISTER BITS 23 - 35
748
749 S^;*********************************************************************^
750 ;*KL10 DATAI PAG 010 ASSIGMENTS (LEFT HALF)
751 S^;*********************************************************************^
752
753 400000 LLACBL==400000 ;LOAD AC BLOCKS
754 200000 LLPRCN==200000 ;LOAD PREVIOUS CONTEXT SECTION
755 100000 LLDUSB==100000 ;LOAD USER BASE REGISTER
756 000040 LCWSX==40 ;
757
758 ;CURRENT AC BLOCKS BITS 6 - 8
759 ;PREVIOUS AC BLOCKS BITS 9 - 11
760 ;PREVIOUS CONTEXT SECTION BITS 13 - 17
761
762 S^;*********************************************************************^
763 ;*KL10 DATAI PAG 010 ASSIGMENTS (RIGHT HALF)
764 S^;*********************************************************************^
765
766 ;USER BASE REGISTER BITS 23 - 35
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 25
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0078
767 S^;*********************************************************************^
768 ;*KL10 CONO PAG 010 ASSIGMENTS
769 S^;*********************************************************************^
770
771 400000 LCASLO==400000 ;CACHE STRATEGY LOOK
772 200000 LCASLD==200000 ;CACHE STRATEGY LOAD
773 040000 LSMODE==40000 ;SECTION MODE
774 020000 LTRPEN==20000 ;TRAP AND PAGE ENABLE
775
776 ;EXEC BASE REGISTER = 23-35
777
778 S^;*********************************************************************^
779 ;*KL10 CONI PAG 010 ASSIGMENTS
780 S^;*********************************************************************^
781
782
783 400000 LCSLOO==400000 ;CACHE STRATEGY LOOK
784 200000 LCSLOA==200000 ;CACHE STRATEGY LOAD
785 040000 LSECMO==40000 ;SECTION MODE
786 020000 LTRPAE==20000 ;TRAP AND PAGE ENABLE
787
788 ;EXEC BASE REGISTER = 23-35
789
790 S^;*********************************************************************^
791 ;*KL10 BLKO PAG 010 ASSIGMENTS (IMMEDIATE MODE)
792 S^;*********************************************************************^
793
794 XLIST
795 IFDEF $PAPER,<LIST>
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 27
PARAM KLM 1-Aug-77 08:33 STANDARD PROGRAM ASSIGNMENTS SEQ 0079
796 S^;*********************************************************************^
797 ;*KL10 EXEC PAGE MAP PAGE ASSIGNMENTS
798 S^;*********************************************************************^
799
800 000421 LAROVT==421 ;ARITHMETIC TRAP
801 000422 LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP
802 000423 LTRP3T==423 ;TRAP 3 TRAP
803
804 000510 LTBASH==510 ;TIME-BASE, HI
805 000511 LTBASL==511 ;TIME-BASE, LO
806 000512 LPRFMH==512 ;PERFORMANCE ANAYLYSIS, HI
807 000513 LPRFML==513 ;PERFORMANCE ANAYLYSIS, LO
808
809 S^;*********************************************************************^
810 ;*KL10 USER PAGE MAP PAGE ASSIGNMENTS
811 S^;*********************************************************************^
812
813 000421 LAROVT==421 ;ARITHMETIC TRAP
814 000422 LPDOVT==422 ;PUSHDOWN OVERFLOW TRAP
815 000423 LTRP3T==423 ;TRAP 3 TRAP
816
817 000424 LMUUO== 424 ;MUUO STORAGE
818 000425 LMUUOP==425 ;C(PC) OF MUUO STORAGE
819 000426 LCNTXT==426 ;PROCESS CONTEXT WORD
820
821 000430 LKNTRP==430 ;KERNAL NO TRAP - NEW PC'S-
822 000431 LKTRP== 431 ;" TRAP
823 000432 LSNTRP==432 ;SUPERVISOR NO TRAP
824 000433 LSTRP== 433 ;" TRAP
825 000434 LCNTRP==434 ;CONCEAL NO TRAP
826 000435 LCTRP== 435 ;" TRAP
827 000436 LPNTRP==436 ;PUBLIC NO TRAP
828 000437 LPTRP== 437 ;" TRAP
829
830 000500 LEUPFW==500 ;EXEC & USER PAGE FAIL WORD
831 000501 LPFWPC==501 ;C(PC) OF PAGE FAIL WORD
832 000502 LPGFTR==502 ;PAGE FAIL NEW PC
833
834 000504 LEBXMH==504 ;E-BOX CLOCK TICK METER, HI
835 000505 LEBXML==505 ;E-BOX CLOCK TICK METER, LO
836 000506 LMBXMH==506 ;M-BOX CYCLE METER, HI
837 000507 LMBXML==507 ;M-BOX CYCLE METER, LO
838
839 >> ;END CONDITIONAL ON KL10
840 LIST
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 1
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0080
841 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
842
843 030000 LOC 30000
844
845 S^;*********************************************************************^
846 ;*PROGRAM STARTING ADDRESSES
847 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
848 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
849 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
850 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
851 S^;*********************************************************************^
852
853 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
854 030001 254 00 0 00 001000 $START: JRST START ;MODE CHECK STARTING ADDRESS
855
856 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
857
858 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
859
860 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
861
862 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
863
864 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
865
866 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
867 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
868
869 030010 254 00 0 00 001034 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
870 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
871 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
872
873 030013 000000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
874 030014 000000 030000 START2: SADR8 ; "
875 030015 000000 030000 START3: SADR9 ; "
876 030016 000000 030000 START4: SADR10 ; "
877 030017 000000 030000 START5: SADR11 ; "
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0081
878 S^;*********************************************************************^
879 ;*PROGRAM FIXED PARAMETER AREA
880 S^;*********************************************************************^
881
882 030020 636542 535400 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
883 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
884 030022 123456 123456 RANDBS: PAREA1 ;RANDOM BASE NUMBER
885 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
886 030024 000000 000001 ITRCNT: ITERAT ;PROGRAM ITERATIONS
887 030025 000000 001035 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
888 030026 000000 000001 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
889 030027 000000 001000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
890 030030 000000 006541 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
891 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
892 030032 000000 000000 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
893 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
894 030034 777777 777777 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
895 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
896 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
897
898 S^;*********************************************************************^
899 ;*PROGRAM VARIABLE PARAMETER AREA
900 S^;*********************************************************************^
901
902 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
903 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
904 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
905 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
906 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
907 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
908 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
909 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
910 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
911 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
912 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
913 030052 000000 000000 ERRPC: 0 ;ERROR PC
914 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
915 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
916 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
917 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 3
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0082
918 S^;*********************************************************************^
919 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
920 S^;*********************************************************************^
921
922 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
923 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
924 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
925 030062 000000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
926 030063 000000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
927 030064 CPOPJ1: ;SKIP RETURN
928 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
929 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
930 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
931 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
932 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
933 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
934 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
935 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
936 030073 255 00 0 00 000000 $USRHL: JFCL ; "
937 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
938 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
939 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
940 030077 255 00 0 00 000000 RESRT2: JFCL ; "
941 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
942 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
943 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
944
945 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
946 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
947 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
948
949 S^;*********************************************************************^
950 ;*PROCESSOR CONTROL STORAGE
951 S^;*********************************************************************^
952
953 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
954 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
955 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
956 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
957 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
958
959 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
960 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
961
962 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
963 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
964 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
965 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
966 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
967 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
968 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 4
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0083
969 S^;*********************************************************************^
970 ;*UUO DISPATCH TABLE
971 S^;*********************************************************************^
972 XLIST
973 LIST
974 030124 030070 030070 UUODIS: LUUO1,,$UUOER
975 030125 030070 030070 LUUO3,,LUUO2
976 030126 030070 030070 LUUO5,,LUUO4
977 030127 030070 030070 LUUO7,,LUUO6
978 030130 030070 030070 LUUO11,,LUUO10
979 030131 030070 030070 LUUO13,,LUUO12
980 030132 030070 030070 LUUO15,,LUUO14
981 030133 030070 030070 LUUO17,,LUUO16
982 030134 030070 030070 LUUO21,,LUUO20
983 030135 030070 030070 LUUO23,,LUUO22
984 030136 030070 030070 LUUO25,,LUUO24
985 030137 030070 030070 LUUO27,,LUUO26
986 030140 030070 030070 LUUO31,,LUUO30
987 030141 030070 030070 LUUO33,,LUUO32
988
989 S^;*********************************************************************^
990 ;*MEMORY MANAGMENT STORAGE
991 S^;*********************************************************************^
992
993 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
994 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
995 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
996 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
997 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
998
999 S^;*********************************************************************^
1000 ;*PRINT CONTROL STORAGE
1001 S^;*********************************************************************^
1002
1003 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
1004 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
1005 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
1006 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
1007 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
1008 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
1009 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
1010 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
1011 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
1012 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
1013 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
1014 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
1015 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
1016 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
1017 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
1018 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
1019 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
1020 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
1021 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 5
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0084
1022 S^;*********************************************************************^
1023 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
1024 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
1025 ;* MOVEI NAME
1026 ;* PNTA ;OR PNTAF
1027 S^;*********************************************************************^
1028
1029 030242 CRLF: ASCII/
1030 030242 015 012 000 000 000 /
1031 030243 CRLF2: ASCII/
1032
1033 030243 015 012 015 012 000 /
1034 030244 054 000 000 000 000 COMMA: ASCII/,/
1035 030245 056 000 000 000 000 PERIOD: ASCII/./
1036 030246 040 000 000 000 000 SPACE: ASCII/ /
1037 030247 011 000 000 000 000 TAB: ASCII/ /
1038 030250 MINUS:
1039 030250 055 000 000 000 000 HYPEN: ASCII/-/
1040 030251 053 000 000 000 000 PLUS: ASCII/+/
1041 030252 052 000 000 000 000 AST: ASCII/*/
1042 030253 100 000 000 000 000 ATSIN: ASCII/@/
1043 030254 050 000 000 000 000 LFP: ASCII/(/
1044 030255 051 000 000 000 000 RTP: ASCII/)/
1045 030256 007 0000000000 BELL: BYTE (7) 007
1046 030257 077 000 000 000 000 QUEST: ASCII/?/
1047 030260 057 000 000 000 000 SLASH: ASCII!/!
1048 030261 044 000 000 000 000 DOLLAR: ASCII/$/
1049 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
1050 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
1051 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
1052
1053 S^;*********************************************************************^
1054 ;*USER MODE OUTPUT FILE INFORMATION
1055 S^;*********************************************************************^
1056
1057 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
1058 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
1059 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
1060 030272 BLOCK 2
1061
1062 S^;*********************************************************************^
1063 ;*DISK UPDATE MODE FILE INFORMATION
1064 S^;*********************************************************************^
1065
1066 030274 $IBUF: BLOCK 3
1067 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
1068 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
1069 030301 BLOCK 2
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 6
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0085
1070 S^;*********************************************************************^
1071 ;*PUSHDOWN LIST CONTROL INFORMATION
1072 S^;*********************************************************************^
1073
1074 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
1075 030304 PLISTS: BLOCK 200
1076 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
1077
1078 S^;*********************************************************************^
1079 ;*POWER LINE CLOCK FREQUENCY FLAG
1080 S^;*********************************************************************^
1081
1082 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
1083
1084 S^;*********************************************************************^
1085 ;*KL10 CACHE CONTROL FLAGS
1086 S^;*********************************************************************^
1087
1088 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
1089 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
1090
1091 S^;*********************************************************************^
1092 ;*NUMBER INPUT DIGIT FLAG
1093 S^;*********************************************************************^
1094
1095 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
1096
1097 S^;*********************************************************************^
1098 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
1099 S^;*********************************************************************^
1100
1101 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
1102
1103 S^;*********************************************************************^
1104 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
1105 S^;*********************************************************************^
1106
1107 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
1108 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
1109 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
1110
1111 S^;*********************************************************************^
1112 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
1113 S^;*********************************************************************^
1114
1115 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 7
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0086
1116 S^;*********************************************************************^
1117 ;*USER MODE MONITOR TYPE FLAG
1118 S^;*********************************************************************^
1119
1120 030516 000000 000000 MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
1121
1122 S^;*********************************************************************^
1123 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
1124 S^;*********************************************************************^
1125
1126 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
1127
1128 S^;*********************************************************************^
1129 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
1130 S^;*********************************************************************^
1131
1132 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
1133
1134 S^;*********************************************************************^
1135 ;*"SWITCH" CALL USAGE CONTROL
1136 S^;*********************************************************************^
1137
1138 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
1139
1140 S^;*********************************************************************^
1141 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
1142 S^;*********************************************************************^
1143
1144 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
1145 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
1146
1147 S^;*********************************************************************^
1148 ;*SM10 (KS-10) PROCESSOR TYPE FLAG
1149 S^;*********************************************************************^
1150
1151 030524 000000 000000 SM10: 0 ;IF -1 THIS IS A KS-10
1152
1153 S^;*********************************************************************^
1154 ;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
1155 S^;*********************************************************************^
1156
1157 030525 000000 000000 SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
1158
1159 S^;*********************************************************************^
1160 ;*SPECIAL FUTURE EXPANSION ROOM
1161 S^;*********************************************************************^
1162
1163 S^;*********************************************************************^
1164 ;*END OF FIXED STORAGE
1165 S^;*********************************************************************^
1166
1167 030577 LOC 30577
1168 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 1
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0087
1169 SUBTTL *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL
1170
1171 S^;*********************************************************************^
1172 ;*SPECIAL SUBPROGRAM LINKAGES
1173 S^;*********************************************************************^
1174
1175 000440 LOC 440
1176
1177 000440 254 00 0 00 030000 JRST DIAGNOS
1178 000441 254 00 0 00 010000 JRST DDT
1179 000442 254 00 0 00 020000 JRST DIAMON
1180 000443 254 00 0 00 001001 JRST REINIT
1181
1182 027775 LOC 27775
1183
1184 027775 000000 010000 DDTLNK: 10000 ;DDT LINKAGE
1185 027776 000000 001003 MODLNK: MODCHK ;OPERATIONAL MODE CHECK LINKAGE
1186 027777 000000 001002 SUBLNK: SUBINI ;SUBROUTINE LINKAGE
1187
1188 001000 LOC 1000 ;RESET THE PC AFTER "FIXED" @ 30,000
1189
1190 S^;*********************************************************************^
1191 ;*INITIALIZE THE SUBROUTINE PACKAGE
1192 S^;*********************************************************************^
1193
1194 001000 254 00 0 00 001021 START: JRST $SBSRT ;START SUBROUTINE BY ITSELF
1195 001001 254 00 0 00 001030 REINIT: JRST $REINI ;REINIT SUBROUTINE
1196 001002 254 00 0 00 001046 SUBINI: JRST $PGMIN ;SUBROUTINE INIT ROUTINE
1197 001003 254 00 0 00 001124 MODCHK: JRST $MODCK ;OPERATIONAL MODE CHECK LINKAGE
1198 001004 000000 000000 0
1199 001005 63 65 42 62 64 56 SUBRTN: SIXBIT/SUBRTN/ ;"SUBRTN" IDENTIFICATION WORD
1200 001006 000000 000001 SUBVER: MCNVER,,DECVER ;"SUBRTN" VERSION INFORMATION
1201 001007 777777 777777 $TTYSPD:-1 ;MONITOR TTY SPEED
1202
1203 001010 254 04 0 00 001010 NOEXEC: HALT . ;PROGRAM NOT CODED FOR EXEC MODE
1204 001011 254 04 0 00 001011 PLERR: HALT . ;FATAL PUSH LIST POINTER ERROR
1205 001012 254 04 0 00 001012 PLERR1: HALT . ;INITIAL PUSH LIST POINTER ERROR
1206 001013 254 04 0 00 001013 MUOERR: HALT . ;MUUO WITH LUUO HANDLER WIPED OUT
1207 001014 254 04 0 00 001014 DTEBER: HALT . ;DTE20 INTERRUPT WITHOUT DOORBELL
1208 001015 254 04 0 00 001015 DTECER: HALT . ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
1209 001016 254 04 0 00 001016 CPIERR: HALT . ;CPU INITIALIZATION ERROR
1210 001017 254 04 0 00 001017 EOPERR: HALT . ;END OF PROGRAM ERROR
1211 001020 254 04 0 00 001020 LUOERR: HALT . ;INTERRUPT WITH LUUO HANDLER WIPED OUT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0088
1212 S^;*********************************************************************^
1213 ;*SPECIAL SUBROUTINE ONLY INITIALIZATION
1214 S^;*********************************************************************^
1215 001021 201 00 0 00 000001 $SBSRT: MOVEI 1
1216 001022 202 00 0 00 030024 MOVEM ITRCNT ;ALLOW ONLY ONE PASS
1217 001023 201 00 0 00 020000 MOVEI DIAMON
1218 001024 202 00 0 00 030012 MOVEM RETURN
1219 001025 476 00 0 00 030143 SETOM MAPNEW ;FULL 4096K MAPPING
1220 001026 265 00 0 00 030011 PGMINT
1221 001027 254 00 0 00 030057 JRST BEGEND
1222
1223 001030 402 00 0 00 030056 $REINI: SETZM $ONETM ;FOR NOW
1224 001031 402 00 0 00 030047 SETZM PASCNT
1225 001032 402 00 0 00 030053 SETZM ERRTLS
1226 001033 254 00 0 00 030000 JRST BEGIN
1227
1228 001034 254 00 0 00 030057 STARTA: JRST BEGEND
1229
1230 001035 PGMNAM: ASCIZ/
1231 001035 015 012 104 105 103 DECSYSTEM DIAGNOSTIC KL10 SUBROUTINE'S
1232 001036 123 131 123 124 105
1233 001037 115 040 104 111 101
1234 001040 107 116 117 123 124
1235 001041 111 103 040 113 114
1236 001042 061 060 040 123 125
1237 001043 102 122 117 125 124
1238 001044 111 116 105 047 123
1239 001045 015 012 000 000 000 /
1240
1241 S^;*********************************************************************^
1242 ;*CONTRL* SUBROUTINE PACKAGE INITIALIZATION
1243 S^;*********************************************************************^
1244
1245 001046 202 00 0 00 006637 $PGMIN: MOVEM 0,$$PAC0
1246 001047 476 00 0 00 030037 SETOM USER
1247 001050 265 00 0 00 001051 JSP 0,.+1 ;LOAD FLAGS INTO AC0
1248 001051 607 00 0 00 010000 TLNN 0,USERF ;USER MODE ?
1249 001052 402 00 0 00 030037 SETZM USER ;EXEC MODE
1250 001053 336 00 0 00 030042 SKIPN MONFLG ;DIAG MON, SPECIAL USER MODE ?
1251 001054 402 00 0 00 030037 SETZM USER ;YES, TREAT I/O AS EXEC
1252 001055 332 00 0 00 030037 SKIPE USER
1253 001056 254 00 0 00 001143 JRST $NOUSR ;NO USER MODE IN "SUBKL"
1254 001057 7 004 20 0 00 010000 CONO PI,PICLR ;CLEAR PI SYSTEM
1255 001060 7 000 20 0 00 200000 CONO APR,IOCLR ;CLEAR I/O
1256 001061 402 00 0 00 006605 SETZM $MTRI ;CLEAR METER
1257 001062 402 00 0 00 006606 SETZM $MTRWC
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 3
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0089
1258 S^;*********************************************************************^
1259 ;*INITIALIZE PROCESSOR FLAGS AND PUSH LIST
1260 S^;*********************************************************************^
1261
1262 001063 554 00 0 00 000120 $PGMN1: HLRZ JOBSA ;RESET JOB FIRST FREE TO
1263 001064 202 00 0 00 000121 MOVEM JOBFF ;END OF LOW SEGMENT
1264 001065 254 02 1 00 001066 JRST 2,@.+1 ;CLEAR PC FLAGS
1265 001066 000000 001067 0,,.+1
1266 001067 200 00 0 00 030046 MOVE CONSW
1267 001070 202 00 0 00 006715 MOVEM $SVCSW# ;SAVE PREVIOUS SWITCHES
1268 001071 402 00 0 00 030046 SETZM CONSW# ;CLEAR SWITCH REGISTER
1269 001072 402 00 0 00 006717 SETZM $SWFLG# ;DISALLOW SWITCHES TILL INITED
1270 001073 200 00 0 00 006043 MOVE [JRST $DDTENT] ;SETUP DDT START
1271 001074 202 00 0 00 030007 MOVEM DDTSRT ;DDT IF LOADED, EOPUUO IF NOT
1272 001075 200 00 0 00 006044 MOVE [JRST PSHERR]
1273 001076 202 00 0 00 030103 MOVEM $PSHER ;INIT FOR UNDERFLOW
1274 001077 200 17 0 00 030303 MOVE P,PLIST ;INIT PUSH POINTER
1275 001100 201 00 0 00 030103 MOVEI 0,$PSHER
1276 001101 261 17 0 00 000000 PUSH P,0 ;SET ERR FOR EXCESSIVE POP'S
1277 001102 261 17 0 00 000000 PUSH P,0
1278
1279 S^;*********************************************************************^
1280 ;*INITIALIZE SUBROUTINES
1281 S^;*********************************************************************^
1282
1283 001103 260 17 0 00 002135 PGINGO: GO $CPUTP ;DETERMINE CPU TYPE (KL/KI/KA)
1284 001104 332 00 0 00 030041 SKIPE KLFLG
1285 001105 260 17 0 00 001146 GO $MAPEX ;MAP EXEC
1286 001106 260 17 0 00 001162 GO $UUOIN ;INIT UUO TRAP TRANSFER LOCATION
1287 001107 260 17 0 00 001755 GO $DTEIN ;INIT DTE-20 INTERRUPT TRANSFER PROCESS
1288 001110 260 17 0 00 005235 GO $PNTIN ;INIT PRINT SUBROUTINE
1289 001111 260 17 0 00 004633 GO $TYPIN ;INIT TTY INPUT SUBROUTINE
1290 001112 260 17 0 00 004311 GO $SWTIN ;INIT SWITCH INPUT SUBROUTINE
1291 001113 260 17 0 00 003253 GO MFICE ;INIT MF20 MEMORY
1292 001114 260 17 0 00 002367 GO $ITRIN ;INIT INTERRUPT SUBROUTINE
1293 001115 332 00 0 00 030034 SKIPE $MMAP ;MEMORY ROUTINES ?
1294 001116 260 17 0 00 003343 GO $MEMMP ;MAP MEMORY
1295 001117 260 17 0 00 002730 GO $KLCSH ;DO CACHE
1296 001120 476 00 0 00 030056 SETOM $ONETM ;SET ONE TIME FLAG
1297 001121 402 00 0 00 030116 SETZM SCOPE ;INIT ERROR SCOPE LOOP
1298 001122 402 00 0 00 030052 SETZM ERRPC ;INIT ERROR PC
1299 001123 254 00 1 00 006637 JRST @$$PAC0#
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 4
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* MAIN SUBROUTINE PACKAGE CONTROL SEQ 0090
1300 S^;*********************************************************************^
1301 ;* -- THIS ROUTINE IS USED TO DETERMINE THE PROPER OPERATIONAL
1302 ;*MODE FOR A DIAGNOSTIC JUST LOADED. IT WILL CHECK WHETHER OR NOT
1303 ;*IT IS IN USER MODE OR EXEC MODE. AND THEN WILL CHECK TO SEE WHAT
1304 ;*MODE HAS BEEN SELECTED FOR THIS TEST TO RUN IN. THIS MODE IS SELECTED
1305 ;*AT ASSEMBLY TIME.
1306 S^;*********************************************************************^
1307
1308 001124 265 00 0 00 001125 $MODCK: JSP 0,.+1 ;GET FLAG CONDITIONS
1309 001125 603 00 0 00 010000 TLNE 0,USERF ;IN USER MODE ?
1310 001126 254 00 0 00 001141 JRST $UCK ;YES
1311 001127 476 00 0 00 030024 $ECK: SETOM ITRCNT ;EXEC, RUN FOREVER
1312 001130 402 00 0 00 030043 SETZM MONCTL ;NOT HERE IF UNDER MONITOR CONTROL
1313 001131 476 00 0 00 030042 SETOM MONFLG ;SET TO NORMAL OPERATION
1314 001132 332 00 0 00 030044 SKIPE MONTEN ;LOADED BY "DIAMON" ?
1315 001133 254 00 0 00 001136 JRST .+3 ;YES, RETURN TO "DIAMON" UPON COMPLETION
1316 001134 201 00 0 00 030000 MOVEI BEGIN ;SET UP RETURN IN CASE WE EVER COUNT OUT
1317 001135 202 00 0 00 030012 MOVEM RETURN ;FOR THE RETURN ADDRESS
1318 001136 332 00 0 00 030031 SKIPE $EMODE ;EXEC MODE ALLOWED?
1319 001137 254 00 0 00 030001 JRST $START ;YES - CONTINUE
1320 001140 254 04 0 00 001010 HALT NOEXEC ;THIS PROGRAM NOT CODED FOR EXEC MODE OPERATION!
1321
1322 001141 332 00 0 00 030032 $UCK: SKIPE $UMODE ;USER MODE ALLOWED?
1323 001142 254 00 0 00 030001 JRST $START ;YES - CONTINUE
1324 001143 $NOUSR: OUTSTR [ASCIZ/
1325 EXEC ONLY
1326 001143 051 03 0 00 006045 /]
1327 001144 051 03 1 00 030025 OUTSTR @$PNAME ;PRINT THE NAME OF THIS FILE
1328 001145 254 00 1 00 030012 JRST @RETURN ;LEAVE FOR EVER
1329
1330 S^;*********************************************************************^
1331 ;* $MAPEX - KL10 0 TO 112K PAGE MAP SETUP
1332 ;* 0 TO 112K POINTS TO ITSELF
1333 S^;*********************************************************************^
1334
1335 001146 200 00 0 00 006050 $MAPEX: MOVE [540000,,540001]
1336 001147 336 00 0 00 030506 SKIPN CSHFLG
1337 001150 660 00 0 00 020000 TRO 020000
1338 001151 202 00 0 00 000600 MOVEM 600 ;SET EPT NON-CACHED
1339 001152 205 01 0 00 777621 MOVSI 1,-157
1340 001153 200 00 0 00 006050 MOVE [540000,,540001]
1341 001154 336 00 0 00 030506 SKIPN CSHFLG ;REST CACHED IF ALLOWED
1342 001155 670 00 0 00 006051 TDO [020000,,020000]
1343 001156 270 00 0 00 006052 ADD [2,,2]
1344 001157 202 00 0 01 000601 MOVEM 601(1)
1345 001160 253 01 0 00 001156 AOBJN 1,.-2
1346 001161 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 5
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0091
1347 SUBTTL *CONTRL* UUO HANDLING SUBROUTINE
1348
1349 S^;*********************************************************************^
1350 ;*UUO INITIALIZATION
1351 S^;*********************************************************************^
1352
1353 001162 200 00 0 00 006053 $UUOIN: MOVE [GO $UORTN] ;BRING IN UUORTN ENTRY INSTR.
1354 001163 202 00 0 00 000041 MOVEM JOB41 ;SETUP UUO TRAP AT JOB41
1355 001164 200 00 0 00 006054 MOVE [JRST $UOERX]
1356 001165 202 00 0 00 030070 MOVEM $UUOER ;SET UUO ERROR IN "FIXED"
1357 001166 402 00 0 00 006732 SETZM $UPLER#
1358 001167 263 17 0 00 000000 RTN ;EXIT
1359
1360 S^;*********************************************************************^
1361 ;*THIS ROUTINE FIELDS ALL TRAPPED UUO'S AND SELECTS BETWEEN SUBROUTINE
1362 ;*PACKAGE UUO'S (037), TEST ERROR UUO'S (034, 035 & 036), AND DIAGNOSTIC
1363 ;*PROGRAM SEGMENT UUO'S (001 - 033).
1364 ;*AC0 IS SAVED ON THE STACK INITIALLY
1365 S^;*********************************************************************^
1366
1367 001170 332 00 0 00 030515 $UORTN: SKIPE $$UUO ;IF NON-ZERO, XCT USERS UUO INTERCEPT
1368 001171 256 00 0 00 030515 XCT $$UUO
1369 001172 607 17 0 00 777000 TLNN P,777000
1370 001173 254 00 0 00 001264 JRST $UOPLE ;CHECK THAT P LOOKS LIKE A P POINTER
1371 001174 602 17 0 00 747000 TRNE P,747000
1372 001175 254 00 0 00 001264 JRST $UOPLE
1373 001176 261 17 0 00 000000 PUT AC0 ;SAVE AC0 ON PUSH LIST
1374 001177 550 00 0 00 000017 HRRZ AC0,P ;VERIFY THAT THE PUSH POINTER
1375 001200 307 00 0 00 030303 CAIG AC0,PLIST ;IS STILL OK
1376 001201 254 00 0 00 001264 JRST $UOPLE ;OUT OF RANGE
1377 001202 301 00 0 00 030504 CAIL AC0,PLISTE
1378 001203 254 00 0 00 001264 JRST $UOPLE
1379 001204 554 00 0 00 000017 HLRZ AC0,P ;GET CONTROL COUNT
1380 001205 307 00 0 00 777577 CAIG AC0,777577
1381 001206 254 00 0 00 001264 JRST $UOPLE ;OUT OF RANGE
1382 001207 301 00 0 00 777777 CAIL AC0,777777
1383 001210 254 00 0 00 001264 JRST $UOPLE
1384 001211 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET THE UUO
1385 001212 242 00 0 00 777745 LSH AC0,-^D27 ;ISOLATE INSTRUCTION FIELD FOR UUO (RT 27 PLACES)
1386 001213 303 00 0 00 000033 CAILE AC0,33 ;IS IT 33 OR LESS? (LOW)
1387 001214 254 00 0 00 001241 JRST $SUBUO ;DECODE 34 - 37 @ $SUBUO
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 6
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0092
1388 001215 200 00 0 17 777777 $USRUO: MOVE AC0,-1(P) ;GET USRPC + 1 (AC0 IS ALSO ON THE STACK)
1389 001216 275 00 0 00 000001 SUBI 1 ; - 1
1390 001217 202 00 0 00 030114 MOVEM $SVUPC ;SAVE FOR USER UUO ROUTINE (IF NEEDED)
1391 001220 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET UUO FROM LOCATION 40 IN JDA
1392 001221 202 00 0 00 030113 MOVEM $SVUUO ;SAVE FOR USER UUO ROUTINE
1393 001222 262 17 0 00 000000 GET AC0
1394 001223 256 00 0 00 030066 XCT UUORTN ;EXECUTE USERS ROUTINE IF SUPPLIED
1395 001224 261 17 0 00 000000 PUT AC0
1396 001225 200 00 0 00 030113 MOVE AC0,$SVUUO
1397 001226 242 00 0 00 777745 LSH AC0,-^D27 ;RIGHT SHIFT FOR INDEX INTO UUO TABLE
1398 001227 261 17 0 00 000001 PUT 1
1399 001230 246 00 0 00 777777 LSHC 0,-1
1400 001231 271 00 0 00 030124 ADDI UUODIS ;ADD USER UUO TABLE START TO THE UUO
1401 001232 607 01 0 00 400000 $XUUO: TLNN 1,400000
1402 001233 550 00 1 00 000000 HRRZ @0 ;EVEN UUO
1403 001234 603 01 0 00 400000 TLNE 1,400000
1404 001235 554 00 1 00 000000 HLRZ @0 ;ODD UUO
1405 001236 262 17 0 00 000001 GET 1
1406 001237 250 00 0 17 000000 EXCH AC0,(P) ;PUT ADR ON STACK, AC0 BACK IN AC0
1407 001240 263 17 0 00 000000 RTN ;SPECIAL XFER TO ROUTINE USING ADR ON STACK
1408
1409 001241 275 00 0 00 000034 $SUBUO: SUBI AC0,34 ;NORMALIZE TO MAKE LOWEST UUO = 0
1410 001242 271 00 0 00 001244 ADDI AC0,TABLE0 ;ADDR OF TABLE + NORM. UUO (0-3)
1411 001243 254 00 1 00 000000 JRST @0 ;SELECT THE CORRECT ERROR UUO VIA TABLE
1412
1413 001244 254 00 0 00 001455 TABLE0: JRST %REPT ;UUO = 34 ......................REPEAT
1414 001245 254 00 0 00 001410 JRST %ERLP ;UUO = 35 ...........LOOP ON THE ERROR
1415 001246 254 00 0 00 001472 JRST %ERUUO ;UUO = 36 .REPORT THE ERROR CONDITIONS
1416 001247 254 00 0 00 001317 JRST $UUO37 ;UUO = 37 .......DECODE SUBROUTINE UUO
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 7
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0093
1417 S^;*********************************************************************^
1418 ;*UUO ERROR EXIT ROUTINE
1419 S^;*********************************************************************^
1420 SALL
1421 001250 262 17 0 00 000000 GET AC0 ;POP OFF AC0 (KA MUUO'S)
1422 001251 261 17 0 00 000040 $UOERX: PUT JOBUUO ;SAVE BAD UUO WHILE PRINTING VIA AC0 (P + 1)
1423 001252 037 02 0 00 006055 PMSG <^ILLEGAL UUO^UUO]]FLAGS] PC^>
1424 001253 262 17 0 00 000000 GET AC0 ;GET BAD UUO FROM THE STACK (P - 1)
1425 001254 037 13 0 00 000000 PNTHW ;PRINT IT
1426 001255 037 00 0 00 000040 PSP ;PRINT SPACE
1427 001256 262 17 0 00 000000 GET AC0 ;GET FLAGS & UUO PC + 1 FROM STACK (P - 1)
1428 001257 275 00 0 00 000001 SUBI AC0,1 ;SUBTRACT 1
1429 001260 037 13 0 00 000000 PNTHW ;PRINT FLAGS & UUO PC
1430 001261 037 00 0 00 030242 PCRL ;PRINT C/R & L/F
1431 001262 256 00 0 00 030067 XCT $UORTX ;EXECUTE USERS UUO EXIT, IF PROV
1432 001263 037 15 0 00 000004 FATAL
1433
1434 001264 332 00 0 00 006732 $UOPLE: SKIPE $UPLER ;FIRST TIME ?
1435 001265 254 04 0 00 001011 HALT PLERR ;NO, FATAL HALT THEN
1436 001266 476 00 0 00 006732 SETOM $UPLER
1437 001267 202 17 0 00 006702 MOVEM P,$PDOVP ;SAVE "P"
1438 001270 200 17 0 00 030303 MOVE P,PLIST
1439 001271 312 17 0 00 006062 CAME P,[PLIST-PLISTE,,PLIST]
1440 001272 254 04 0 00 001012 HALT PLERR1 ;INITIAL POINTER BAD
1441 001273 201 00 0 00 030103 MOVEI $PSHER
1442 001274 261 17 0 00 000000 PUSH P,0
1443 001275 037 04 0 00 006063 PMSGF <^*****^UUO PLIST ERR P=>
1444 001276 200 00 0 00 006702 MOVE $PDOVP
1445 001277 037 13 0 00 000001 PNTHWF
1446 001300 037 15 0 00 000004 FATAL
1447 LALL
1448 S^;*********************************************************************^
1449 ;*MONITOR UUO ERROR EXIT ROUTINE
1450 S^;*********************************************************************^
1451 SALL
1452 001301 332 00 0 00 030517 MUUOER: SKIPE $$MUUO
1453 001302 256 00 0 00 030517 XCT $$MUUO ;EXECUTE USERS MUUO ROUTINE, IF PROV
1454 001303 200 00 0 00 000041 MOVE AC0,JOB41 ;GET UUO HANDLER
1455 001304 312 00 0 00 006053 CAME AC0,[GO $UORTN]
1456 001305 254 04 0 00 001013 HALT MUOERR ;NOT VALID
1457 001306 200 00 0 00 000425 MOVE LMUUOP
1458 001307 202 00 0 00 030104 MOVEM ITRCH1
1459 001310 7 000 24 0 00 030110 CONI APR,$SVAPR
1460 001311 7 004 24 0 00 030107 CONI PI,$SVPI
1461 001312 037 02 0 00 006067 PMSG <^ERROR MUUO = >
1462 001313 200 00 0 00 000424 MOVE LMUUO
1463 001314 037 13 0 00 000000 PNTHW ;PRINT MUUO
1464 001315 402 00 0 00 000000 SETZM 0
1465 001316 254 00 0 00 002442 JRST $ITR1B ;COMMON INTERRUPT ROUTINE START
1466 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 8
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0094
1467 S^;*********************************************************************^
1468 ;*DECODE ROUTINE FOR SUBROUTINE UUO'S (037)
1469 S^;*********************************************************************^
1470
1471 001317 550 00 0 00 000040 $UUO37: HRRZ JOBUUO ;GET CALLING UUO
1472 001320 322 00 0 00 005267 JUMPE $PNTIT ;PRINT UUO
1473 001321 306 00 0 00 000001 CAIN 0,1
1474 001322 254 00 0 00 005263 JRST $PNTIF ;PRINT FORCED UUO
1475 001323 602 00 0 00 777600 TRNE 777600
1476 001324 254 00 0 00 001375 JRST $EG177 ;PRINT MESSAGE UUO
1477 001325 301 00 0 00 000005 CAIL 5
1478 001326 254 00 0 00 001370 JRST $EG4 ;PRINT CHAR IMMEDIATE UUO
1479 001327 261 17 0 00 000001 PUT 1
1480 001330 200 01 0 00 000040 MOVE 1,JOBUUO
1481 001331 242 01 0 00 777751 LSH 1,-^D23 ;EXTRACT UUO AC FIELD
1482 001332 405 01 0 00 000017 ANDI 1,17
1483 001333 242 00 0 00 000004 LSH 0,4 ;POSITION E FIELD
1484 001334 434 00 0 00 000001 IOR 0,1 ;COMBINE E & AC FIELD
1485 001335 246 00 0 00 777777 LSHC 0,-1 ;SET ODD/EVEN
1486 001336 271 00 0 00 001320 ADDI $UOTAB-20 ;COMPUTE TABLE ENTRY OFFSET
1487 001337 254 00 0 00 001232 JRST $XUUO
1488
1489 001340 $UOTAB: ;E FIELD = 2
1490 001340 005370 005357 $PTSXF,,$PNTSX
1491 001341 005541 005506 $PNTCF,,$PNTCW
1492 001342 001407 002310 $DRPDV,,$PNTNM
1493 001343 004150 004261 $MODDV,,$MODDP
1494 001344 003602 004272 $MSEG,,$SWTCH
1495 001345 004036 003775 $MPADR,,$MZRO
1496 001346 003453 003553 $MPCNK,,$MPSET
1497 001347 004057 001407 $PMAP,,$PNTMG
1498 ;E FIELD = 3
1499 001350 005015 004647 $YESNO,,$OPTLK
1500 001351 005060 005013 $TPOCT,,$NOYES
1501 001352 005054 005056 $TPCNV,,$TPDEC
1502 001353 004661 004636 $TALTM,,$TTLK
1503 001354 004640 005202 $TTYIN,,$TISIX
1504 001355 001251 001251 $UOERX,,$UOERX
1505 001356 005401 005404 $PSIXF,,$PSIX
1506 001357 005443 005446 $POCSF,,$POCS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 9
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* UUO HANDLING SUBROUTINE SEQ 0095
1507 ;E FIELD = 4
1508 001360 003214 003343 $CINVAL,,$MEMMP
1509 001361 003247 003243 $CWRTB,,$CFLUSH
1510 001362 002176 002053 $FSELECT,,$MTROP
1511 001363 002222 002224 $FRD36,,$FREAD
1512 001364 001251 002220 $UOERX,,$FRD8
1513 001365 002026 002670 $CLOCK,,$END
1514 001366 002264 002240 $FATAL,,$ERHLT
1515 001367 001251 002717 $UOERX,,$EOP
1516
1517 001370 200 00 0 00 000040 $EG4: MOVE JOBUUO ;IMMEDIATE CHARACTER PRINT
1518 001371 603 00 0 00 000040 TLNE (1B12)
1519 JRST [PNTCHF
1520 001372 254 00 0 00 006072 JRST $EGX]
1521 001373 037 12 0 00 000000 PNTCHR
1522 001374 254 00 0 00 001405 JRST $EGX
1523
1524 001375 200 00 0 00 000040 $EG177: MOVE JOBUUO ;IMMEDIATE MESSAGE PRINT
1525 001376 603 00 0 00 000200 TLNE (4B12)
1526 JRST [PSIXLF
1527 001377 254 00 0 00 006074 JRST $EGX]
1528 001400 603 00 0 00 000100 TLNE (2B12)
1529 JRST [PSIXL
1530 001401 254 00 0 00 006076 JRST $EGX]
1531 001402 603 00 0 00 000040 TLNE (1B12)
1532 JRST [PNTALF
1533 001403 254 00 0 00 006100 JRST $EGX]
1534 001404 037 17 0 00 000000 PNTAL
1535 001405 262 17 0 00 000000 $EGX: GET 0
1536 001406 263 17 0 00 000000 RTN
1537
1538 001407 $DRPDV: ;N/A IN EXEC MODE
1539 001407 263 17 0 00 000000 $PNTMG: RTN ;N/A ON KL-10
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 10
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0096
1540 SUBTTL *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER
1541
1542 S^;*********************************************************************^
1543 ;*THE DIAGNOSTIC ERROR HANDLER IS A SUBROUTINE CAPABLE OF REPORTING
1544 ;*A STANDARD BUT FLEXIBLE FORMAT OF TEST DATA AND DIAGNOSTIC
1545 ;*INFORMATION. THE ERROR HANDLER ALSO INTERPRETS AND CONTROLS TEST
1546 ;*SWITCHES SUCH AS TYPEOUT SUPPRESSION, CONTINUE/HALT OR LOOP ON
1547 ;*ERROR, AND BELL ON ERROR.
1548 ;*ERROR LOOPING ROUTINE
1549 ;*EITHER CONTINUES IN-LINE
1550 ;*OR TRANSFERS TO E FIELD OF UUO
1551 ;*CHECKS PC OF ERROR TO DETERMINE LOOPING
1552 S^;*********************************************************************^
1553
1554 001410 402 00 0 00 006741 %ERLP: SETZM %ERFLG#
1555 001411 261 17 0 00 000040 PUT JOBUUO
1556 001412 260 17 0 00 004661 GO $TALTM ;DO ALTMODE CHECK
1557 001413 254 00 0 00 001417 JRST .+4 ;NOT ONE
1558 001414 201 00 0 00 001417 MOVEI .+3 ;SAVE RESTART ADDRESS
1559 001415 202 00 0 00 000130 MOVEM JOBOPC
1560 001416 254 00 1 00 030063 JRST @ALTMGO ;TRANSFER TO ALTMODE ROUTINE
1561 001417 262 17 0 00 000040 GET JOBUUO
1562 001420 200 00 0 00 000040 MOVE AC0,JOBUUO ;GET AC FIELD OF UUO
1563 001421 242 00 0 00 777751 LSH AC0,-^D23
1564 001422 405 00 0 00 000017 ANDI AC0,17
1565 001423 306 00 0 00 000002 CAIN AC0,2
1566 001424 254 00 0 00 001443 JRST %ERLP2 ; 2 = LOOP IF ANY ERROR
1567 001425 306 00 0 00 000001 CAIN AC0,1
1568 001426 254 00 0 00 001437 JRST %ERLP1 ; 1 = LOOP IF PC'S MATCH
1569 001427 306 00 0 00 000000 CAIN AC0,0
1570 001430 254 00 0 00 001433 JRST %ERLP0 ; 0 = PC'S, REPT, REPT1 & ERROR
1571 001431 262 17 0 00 000000 GET AC0
1572 001432 254 00 0 00 001251 JRST $UOERX
1573 001433 476 00 0 00 006741 %ERLP0: SETOM %ERFLG
1574 001434 316 15 0 00 006745 CAMN REPT,%RP ;ARE REPEAT COUNTS SAME AS ERROR ?
1575 001435 312 16 0 00 006746 CAME REPT1,%RP1 ;(AT RIGHT PLACE IN TEST LOOPS ?)
1576 001436 254 00 0 00 001453 JRST %ERX1 ;NO, CONTINUE IN LINE
1577 001437 550 00 0 17 777777 %ERLP1: HRRZ AC0,-1(P) ;GET PC OF LOOP CALL FROM STACK
1578 001440 275 00 0 00 000002 SUBI AC0,2 ;LESS 2
1579 001441 312 00 0 00 030052 CAME AC0,ERRPC ;NOW EQUAL TO PC OF ERROR CALL ?
1580 001442 254 00 0 00 001453 JRST %ERX1 ;NO, CONTINUE IN LINE
1581 001443 260 17 0 00 004272 %ERLP2: GO $SWTCH ;READ SWITCHES INTO AC0
1582 001444 607 00 0 00 004000 TLNN LOOPER ;LOOP ON ERROR ?
1583 001445 402 00 0 00 030116 SETZM SCOPE ;NO ..........CLEAR LOOP CONTROL
1584 001446 331 00 0 00 030116 SKIPL SCOPE ;YES ...WAS THERE AN ERROR ?
1585 001447 254 00 0 00 001453 JRST %ERX1 ;NO, CONTINUE IN LINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 11
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0097
1586 001450 262 17 0 00 000000 %ERX: GET AC0 ;RESTORE AC0
1587 001451 274 17 0 00 006102 SUB P,[1,,1] ;CORRECT PUSH LIST POINTER FOR NO "RTN"
1588 001452 254 00 1 00 000040 JRST @JOBUUO ;TRANSFER TO E FIELD OF UUO
1589
1590 001453 262 17 0 00 000000 %ERX1: GET AC0 ;RESTORE AC0
1591 001454 263 17 0 00 000000 RTN
1592
1593 S^;*********************************************************************^
1594 ;*REPEAT LOOP ROUTINE
1595 ;*EITHER CONTINUES IN-LINE
1596 ;*OR TRANSFERS TO E FIELD OF UUO
1597 S^;*********************************************************************^
1598
1599 001455 373 00 0 00 030115 %REPT: SOSLE REPTU# ;REPEAT TEST SECTION ?
1600 001456 254 00 0 00 001450 JRST %ERX ;YES, E FIELD OF UUO IS RETURN
1601 001457 254 00 0 00 001453 JRST %ERX1 ;NO, CONTINUE IN LINE
1602
1603 S^;*********************************************************************^
1604 ;*COMMON ERROR HANDLER AC SAVE/RESTORE
1605 S^;*********************************************************************^
1606
1607 001460 202 00 0 00 006734 %EACS: MOVEM 0,%AC0#
1608 001461 202 01 0 00 006735 MOVEM 1,%AC1#
1609 001462 202 02 0 00 006736 MOVEM 2,%AC2#
1610 001463 202 03 0 00 006737 MOVEM 3,%AC3#
1611 001464 263 17 0 00 000000 RTN
1612
1613 001465 200 00 0 00 006734 %EACR: MOVE 0,%AC0
1614 001466 200 01 0 00 006735 %EACR1: MOVE 1,%AC1
1615 001467 200 02 0 00 006736 MOVE 2,%AC2
1616 001470 200 03 0 00 006737 MOVE 3,%AC3
1617 001471 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 12
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0098
1618 ;*ERROR REPORTING ROUTINE
1619 S^;*********************************************************************^
1620
1621 001472 200 00 0 00 000040 %ERUUO: MOVE LUUO
1622 001473 202 00 0 00 006744 MOVEM %LUUO#
1623 001474 476 00 0 00 030116 SETOM SCOPE
1624 001475 262 17 0 00 000000 GET AC0
1625 001476 332 00 0 00 030512 SKIPE %ERHI1 ;ANY USERS INSTRUCTION ?
1626 001477 256 00 0 00 030512 XCT %ERHI1 ;YES, DO USERS ROUTINE
1627 001500 260 17 0 00 001460 GO %EACS ;SAVE AC0 - AC3
1628 001501 402 00 0 00 030117 SETZM %CORFLG#
1629 001502 402 00 0 00 030121 SETZM %ACTFL#
1630 001503 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS
1631 001504 260 17 0 00 004272 GO $SWTCH
1632 001505 550 03 0 17 000000 HRRZ 3,(P) ;GET <ADDRESS> OF ERROR CALL FROM STACK
1633 001506 275 03 0 00 000001 SUBI 3,1
1634 001507 312 03 0 00 030052 CAME 3,ERRPC ;SKIP IF SAME ERROR
1635 001510 254 00 0 00 001520 JRST %ERPNT
1636 001511 336 00 0 00 006741 SKIPN %ERFLG
1637 001512 254 00 0 00 001516 JRST .+4 ;DON'T CHECK REPEAT COUNTS
1638 001513 316 15 0 00 006745 CAMN REPT,%RP
1639 001514 312 16 0 00 006746 CAME REPT1,%RP1
1640 001515 254 00 0 00 001520 JRST %ERPNT ;DIFFERENT, PRINT ERROR
1641 001516 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ?
1642 001517 254 00 0 00 001720 JRST %ERSW1 ;THIS ERROR ALREADY REPORTED ONCE.
1643
1644 ;*BYPASS ERROR REPORT IF NOPNT SWITCH IS SET
1645 S^;*********************************************************************^
1646
1647 001520 202 15 0 00 006745 %ERPNT: MOVEM REPT,%RP# ;SAVE REPEAT COUNTS
1648 001521 202 16 0 00 006746 MOVEM REPT1,%RP1#
1649 001522 202 03 0 00 030052 MOVEM 3,ERRPC ;SAVE ERROR CALL ADDRESS
1650 001523 603 00 0 00 040000 TLNE 0,NOPNT
1651 001524 254 00 0 00 001720 JRST %ERSW1
1652 001525 037 01 0 00 000026 PFORCE ;OVERRIDE CONTROL O
1653 001526 402 00 0 00 006740 SETZM %ERCNT#
1654 001527 335 00 0 00 030043 SKIPGE MONCTL ;DIAG MON OR SYS EXER ?
1655 001530 254 00 0 00 001732 JRST %ERPRA ;YES, GO PRINT TITLE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 13
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0099
1656 SALL
1657 001531 336 00 0 00 030047 %ERPRB: SKIPN PASCNT
1658 001532 254 00 0 00 001536 JRST .+4 ;DON'T PRINT PASS COUNTER ON FIRST PASS
1659 001533 037 02 0 00 006103 PMSG <^TEST PASS COUNT = >
1660 001534 200 00 0 00 030047 MOVE 0,PASCNT
1661 001535 037 15 0 00 000000 PNTDEC ;PRINT TEST PASS COUNTER
1662 001536 037 02 0 00 006107 PMSG <^PC= >
1663 001537 201 00 0 03 000000 MOVEI 0,(3)
1664 001540 037 06 0 00 000000 PNT6 ;PRINT PC OF ERROR CALL.
1665 001541 037 02 0 00 006111 PMSG <^SWITCHES = >
1666 001542 200 00 0 00 030046 MOVE CONSW
1667 001543 037 13 0 00 000000 PNTHW ;PRINT SWITCHES AT ERROR
1668 001544 260 17 0 00 001465 GO %EACR
1669 001545 332 00 0 00 030514 SKIPE %ERHI3 ;IF NON-ZERO, XCT USERS ROUTINE
1670 001546 256 00 0 00 030514 XCT %ERHI3
1671
1672 001547 550 03 1 00 030052 HRRZ 3,@ERRPC ;GET "E FIELD" OF ERROR CALL
1673 001550 200 00 0 00 030046 MOVE 0,CONSW ;AC3 HAS THE ERROR CALL ADDR IN IT
1674 001551 603 00 0 00 000200 TLNE TXTINH ;TEXT INHIBITED ?
1675 001552 254 00 0 00 001573 JRST %ERPR2 ;YES
1676 001553 201 00 0 00 006114 MOVEI 0,SIXBTZ <^ERROR IN >
1677 001554 554 01 0 03 000000 HLRZ 1,(3) ;GET NAME OF FAILING TEST
1678 001555 322 01 0 00 001563 JUMPE 1,%ERPR1 ;JUMP IF NO TEST NAME
1679 001556 037 14 0 00 000003 PSIXL ;*DEFINE T=0 TO INHIBIT TEST NAME
1680 001557 200 00 0 00 000001 MOVE 0,1
1681 001560 037 14 0 00 000003 PSIXL ;REPORT NAME OF FAILING TEST
1682 001561 201 00 0 00 006116 MOVEI 0,SIXBTZ < - >
1683 001562 254 00 0 00 001564 JRST .+2
1684 001563 201 00 0 00 006117 %ERPR1: MOVEI 0,SIXBTZ <^>
1685 001564 550 01 0 03 000000 HRRZ 1,(3) ;GET ADDRESS OF FUNCTION MSG
1686 001565 200 01 0 01 000000 MOVE 1,(1) ;GET MESSAGE
1687 001566 316 01 0 00 006110 CAMN 1,[SIXBIT\_\] ;BLANK MESSAGE ?
1688 001567 254 00 0 00 001573 JRST %ERPR2 ;JUMP IF NO FUNCTION CALLED OUT.
1689 001570 037 14 0 00 000003 PSIXL
1690 001571 550 00 0 03 000000 HRRZ 0,(3) ;GET MESSAGE ADDRESS AGAIN
1691 001572 037 14 0 00 000003 PSIXL ;REPORT FUNCTION BEING TESTED.
1692 001573 476 00 0 00 030123 %ERPR2: SETOM %DISCR# ;SET 'DISCREPANCY FLAG'.
1693 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 14
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0100
1694 ;*GET X (AC FIELD) FROM ERROR UUO. PASS X ARGUMENT ONTO $PRINT.
1695 S^;*********************************************************************^
1696 SALL
1697 001574 200 00 0 00 006744 %ERP2B: MOVE %LUUO
1698 001575 241 00 0 00 000015 ROT 0,15 ;GET THE X ARGUEMENT
1699 001576 405 00 0 00 000017 ANDI 0,17
1700 001577 326 00 0 00 001601 JUMPN 0,.+2 ;PRINT 12 OCTAL DIGITS IF X=0
1701 001600 201 00 0 00 000014 MOVEI 0,14
1702 001601 303 00 0 00 000014 CAILE 0,14 ;MAKE SURE THAT X IS A LEGAL ARGUMENT
1703 001602 037 15 0 00 000004 FATAL ;PROGRAM CALL ERROR
1704 001603 242 00 0 00 000027 LSH 0,^D<35-12> ;PUT X IN AC FIELD
1705 001604 270 00 0 00 006120 ADD 0,[PNTA] ;PRINT THE X ARGUEMENT
1706 001605 202 00 0 00 006612 MOVEM 0,%ERIN2
1707 001606 201 00 0 00 006121 MOVEI 0,SIXBTZ <^CORRECT: >
1708 001607 554 02 0 03 000001 HLRZ 2,1(3) ;GET ADDRESS OF EXPECTED TEST RESULTS
1709 001610 326 02 0 00 001613 JUMPN 2,.+3
1710 001611 402 00 0 00 030123 SETZM %DISCR ;NO 'CORRECT RESULT' TYPEOUT
1711 001612 254 00 0 00 001632 JRST %ERPR3
1712 001613 476 00 0 00 030117 SETOM %CORFLG
1713 001614 303 02 0 00 000003 CAILE 2,3 ;ARE TEST RESULTS IN AC THAT HAS BEEN SAVED?
1714 001615 254 00 0 00 001625 JRST %ERP2A
1715 001616 306 02 0 00 000001 CAIN 2,1 ;AC1?
1716 001617 200 01 0 00 006735 MOVE 1,%AC1
1717 001620 306 02 0 00 000002 CAIN 2,2 ;AC2?
1718 001621 200 01 0 00 006736 MOVE 1,%AC2
1719 001622 306 02 0 00 000003 CAIN 2,3 ;AC3?
1720 001623 200 01 0 00 006737 MOVE 1,%AC3
1721 001624 254 00 0 00 001626 JRST .+2
1722 001625 200 01 0 02 000000 %ERP2A: MOVE 1,(2)
1723 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 15
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0101
1724 ;*AC1 NOW CONTAINS THE CORRECT TEST RESULTS.
1725 S^;*********************************************************************^
1726 SALL
1727 001626 037 14 0 00 000003 PSIXL ;CORRECT RESULTS.
1728 001627 200 00 0 00 000001 MOVE 0,1
1729 001630 264 00 0 00 006611 JSR %ERIN1 ;REPORT CORRECT DATA
1730 001631 202 01 0 00 030120 MOVEM 1,%COREC# ;SAVE CORRECT DATA
1731 001632 201 00 0 00 006123 %ERPR3: MOVEI 0,SIXBTZ <^ACTUAL: >
1732 001633 550 02 0 03 000001 HRRZ 2,1(3) ;GET ADDRESS OF ACTUAL TEST RESULTS.
1733 001634 326 02 0 00 001637 JUMPN 2,.+3
1734 001635 402 00 0 00 030123 SETZM %DISCR ;NO 'ACTUAL RESULT' TYPEOUT.
1735 001636 254 00 0 00 001656 JRST %ERPR4
1736 001637 476 00 0 00 030121 SETOM %ACTFL
1737 001640 303 02 0 00 000003 CAILE 2,3 ;ARE ACTUAL TEST RESULTS IN AC THAT IS SAVED?
1738 001641 254 00 0 00 001651 JRST %ERP3A
1739 001642 306 02 0 00 000001 CAIN 2,1 ;AC1?
1740 001643 200 01 0 00 006735 MOVE 1,%AC1
1741 001644 306 02 0 00 000002 CAIN 2,2 ;AC2?
1742 001645 200 01 0 00 006736 MOVE 1,%AC2
1743 001646 306 02 0 00 000003 CAIN 2,3 ;AC3?
1744 001647 200 01 0 00 006737 MOVE 1,%AC3
1745 001650 254 00 0 00 001652 JRST .+2
1746 001651 200 01 0 02 000000 %ERP3A: MOVE 1,(2)
1747 LALL
1748 ;*AC1 CONTAINS THE ACTUAL TEST RESULTS.
1749 S^;*********************************************************************^
1750 SALL
1751 001652 037 14 0 00 000003 PSIXL ;ACTUAL RESULTS
1752 001653 200 00 0 00 000001 MOVE 0,1
1753 001654 264 00 0 00 006611 JSR %ERIN1 ;REPORT ACTUAL DATA
1754 001655 202 01 0 00 030122 MOVEM 1,%ACTUL# ;SAVE ACTUAL DATA
1755
1756 001656 201 00 0 00 006125 %ERPR4: MOVEI 0,SIXBTZ <^DISCREP: >
1757 001657 336 00 0 00 030123 SKIPN %DISCR ;REPORT DATA DISCREPANCY IF BOTH CORRECT AND
1758 001660 254 00 0 00 001667 JRST %ERPR5 ;ACTUAL DATA REPORTED.
1759 001661 200 01 0 00 030120 MOVE 1,%COREC
1760 001662 430 01 0 00 030122 XOR 1,%ACTUL ;XOR CORRECT & ACTUAL DATA
1761 001663 037 14 0 00 000003 PSIXL
1762 001664 200 00 0 00 000001 MOVE 0,1
1763 001665 264 00 0 00 006611 JSR %ERIN1 ;REPORT DISC BETWEEN COR & ACT
1764 001666 202 01 0 00 030123 MOVEM 1,%DISCR ;SAVE DISCREPANCY DATA
1765 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 16
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0102
1766 ;*PICK UP AND REPORT DIAGNOSTIC COMMENT IF ANY.
1767 S^;*********************************************************************^
1768
1769 001667 200 00 0 00 030046 %ERPR5: MOVE 0,CONSW
1770 001670 603 00 0 00 000200 TLNE TXTINH ;TEXT INHIBITED ?
1771 001671 254 00 0 00 001701 JRST %ERPR6 ;YES
1772 001672 554 01 0 03 000002 HLRZ 1,2(3) ;GET ADDRESS OF ASCIZ TEXT.
1773 001673 200 01 0 01 000000 MOVE 1,(1) ;GET MESSAGE
1774 001674 316 01 0 00 006110 CAMN 1,[SIXBIT\_\] ;BLANK MESSAGE ?
1775 001675 254 00 0 00 001701 JRST %ERPR6 ;EXIT FROM ERROR PRINT IF NO DIAGNOSTIC TEXT.
1776 001676 037 00 0 00 030242 PCRL
1777 001677 554 00 0 03 000002 HLRZ 0,2(3) ;GET MESSAGE ADDRESS AGAIN
1778 001700 037 14 0 00 000003 PSIXL
1779 001701 037 00 0 00 030242 %ERPR6: PCRL
1780 001702 550 00 0 03 000002 HRRZ 0,2(3) ;GET ADDRESS OF ADDITIONAL ERROR PRINT ROUTINE
1781 001703 260 17 0 00 001466 GO %EACR1
1782 001704 202 00 0 00 006743 MOVEM 0,%ERXTR#
1783 001705 322 00 0 00 001714 JUMPE 0,%ERMORE ;JUMP IF NONE
1784 001706 200 00 0 00 030046 MOVE 0,CONSW
1785 001707 603 00 0 00 000200 TLNE 0,TXTINH ;TEXT INHIBITED ?
1786 001710 254 00 0 00 001714 JRST %ERMORE ;YES, NO ADDITIONAL PRINT
1787 001711 200 00 0 00 006734 MOVE 0,%AC0
1788 001712 260 17 1 00 006743 GO @%ERXTR ;XFER TO PRINT ROUTINE, RETURN TO ERMORE
1789 001713 202 00 0 00 006734 MOVEM 0,%AC0
1790 001714 200 00 0 00 006734 %ERMORE:MOVE 0,%AC0
1791 001715 256 00 0 00 030101 XCT ERMORE ;TO ADD ROUTINE PLACE XFR AT ERMORE
1792 ;IN "FIXED"
1793 001716 260 17 0 00 001460 GO %EACS
1794 001717 260 17 0 00 004272 GO $SWTCH
1795
1796 ;*EXAMINE DATA SWITCHES (OR SOFTWARE SWITCHES IF USER MODE).
1797 S^;*********************************************************************^
1798 001720 260 17 0 00 004661 %ERSW1: GO $TALTM ;ALTMODE CHECK
1799 001721 254 00 0 00 001725 JRST .+4 ;NONE
1800 001722 201 00 0 00 001725 MOVEI .+3 ;SAVE ADDRESS FOR CONTINUE
1801 001723 202 00 0 00 000130 MOVEM JOBOPC
1802 001724 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER
1803 001725 200 03 0 00 030046 MOVE 3,CONSW
1804 001726 607 03 0 00 002000 TLNN 3,ERSTOP ;IS 'HALT ON ERROR' SWITCH SET, (SWITCH ERSTOP)
1805 001727 254 00 0 00 001736 JRST %ERSW2 ;NO
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 17
SUBKLM MAC 11-Sep-78 11:38 *CONTRL* PDP-10 DIAGNOSTIC ERROR HANDLER SEQ 0103
1806 ;*EXECUTE HALT IF SWITCH ERSTOP SET.
1807 S^;*********************************************************************^
1808
1809 001730 260 17 0 00 001465 %ERS1A: GO %EACR ;RESTORE AC'S
1810 001731 254 00 0 00 002240 JRST $ERHLT ;USE SUBROUTINE ERROR HALT
1811
1812 001732 336 00 0 00 006742 %ERPRA: SKIPN %ERFST# ;PRINT PROGRAM NAME
1813 001733 037 04 0 00 000002 PNTNM
1814 001734 476 00 0 00 006742 SETOM %ERFST
1815 001735 254 00 0 00 001531 JRST %ERPRB
1816
1817 ;*EXAMINE LOOPER SWITCH AND SCOPE LOOP ON ERROR IF SET.
1818 S^;*********************************************************************^
1819
1820 001736 607 03 0 00 004000 %ERSW2: TLNN 3,LOOPER
1821 001737 402 00 0 00 030116 SETZM SCOPE ;CLEAR SCOPE LOOP CONTROL
1822 001740 350 00 0 00 006740 AOS %ERCNT ;INCREMENT ERROR COUNT
1823
1824 ;*RING TTY BELL IF DING SWITCH IS SET.
1825 S^;*********************************************************************^
1826
1827 001741 603 03 0 00 010000 %ERSW3: TLNE 3,DING
1828 001742 037 01 0 00 000007 PBELL
1829
1830 ;*RETURN TO ERROR CALL ADDRESS+1
1831 S^;*********************************************************************^
1832
1833 001743 260 17 0 00 001466 %EXCAL: GO %EACR1
1834 001744 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
1835 001745 254 00 0 00 001751 JRST %EXCL1 ;NO, CONTINUE PROGRAM
1836 001746 200 00 0 00 030053 MOVE 0,ERRTLS ;YES
1837 001747 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ?
1838 001750 254 00 0 00 030061 JRST $BEND2 ;END OF PROGRAM
1839 001751 200 00 0 00 006734 %EXCL1: MOVE 0,%AC0
1840 001752 332 00 0 00 030513 SKIPE %ERHI2 ;ANY USERS INSTRUCTION ?
1841 001753 256 00 0 00 030513 XCT %ERHI2 ;YES, DO USERS ROUTINE
1842 001754 263 17 0 00 000000 RTN ;CONTINUE PROGRAM
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 18
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0104
1843 SUBTTL *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES
1844
1845 S^;*********************************************************************^
1846 ;*THESE ROUTINES ARE CONCERNED WITH DATA TRANSFER FOR THE KL10 CPU
1847 ;*THEY USE THE DTE-20 AND THE DTE-20 COMMUNICATIONS AREA
1848 S^;*********************************************************************^
1849
1850 001755 402 00 0 00 006654 $DTEIN: SETZM $DTER1# ;CLEAR DTE20 OUT-OF-SEQUENCE COUNT
1851 001756 402 00 0 00 000140 SETZM 140
1852 001757 402 00 0 00 000444 SETZM $DTFLG
1853 001760 200 00 0 00 006127 MOVE 0,[140,,141]
1854 001761 251 00 0 00 000177 BLT 0,177 ;CLEAR DTE20 EPT LOCATIONS
1855 001762 200 00 0 00 006130 MOVE 0,[$DTFLG,,$DTCLK]
1856 001763 251 00 0 00 000452 BLT 0,$DTSEQ ;CLEAR DTE COMMUNICATIONS AREA
1857 001764 200 00 0 00 000453 MOVE AC0,$DTOPR ;GET OPERATIONAL DTE #
1858 001765 436 00 0 00 002020 ORM AC0,$$DTE0 ;INSERT IN DTE I/O INST'S
1859 001766 436 00 0 00 001776 ORM AC0,$$DTE1
1860 001767 436 00 0 00 002051 ORM AC0,$$DTE2
1861 001770 200 00 0 00 006131 MOVE AC0,[JSR $DTRPT];LOAD INTERRUPT TRANSFER INSTR.
1862 001771 202 00 0 00 000142 MOVEM AC0,142 ;PUT IN THE DTE-20 AREA
1863 001772 202 00 0 00 000152 MOVEM AC0,152
1864 001773 202 00 0 00 000162 MOVEM AC0,162
1865 001774 202 00 0 00 000172 MOVEM AC0,172
1866 001775 263 17 0 00 000000 RTN ;EXIT
1867
1868 S^;*********************************************************************^
1869 ;*DTE20 INTERRUPT VECTOR INSTRUCTION TRANSFERS TO HERE
1870 S^;*********************************************************************^
1871
1872 001776 $$DTEI:
1873 001776 7 200 20 0 00 001000 $$DTE1: CONO DTE,DNG10C ;CLEAR THE 10 DOORBELL BIT
1874 001777 336 00 0 00 000445 SKIPN $DTCLK ;THIS DTE20 CLOCK INTERRUPT ?
1875 002000 254 00 0 00 002006 JRST $$DTER ;NO FLAGS SET, IMPOSSIBLE CONDITION
1876
1877 002001 402 00 0 00 000445 $CLKDTE:SETZM $DTCLK ;CLEAR CLOCK FLAG
1878 002002 476 00 0 00 030045 SETOM CLOCKF ;SET DIAG SEGMENT CLOCK FLAG
1879 002003 332 00 0 00 000446 SKIPE $DTCI ;ANY XCT INSTRUCTION ?
1880 002004 256 00 0 00 000446 XCT $DTCI ;YES, DO USERS REQUEST
1881 002005 254 12 1 00 006603 JEN @$DTRPT ;RESUME PROGRAM
1882
1883 002006 261 17 0 00 000000 $$DTER: PUT 0 ;REPORT DTE ERROR
1884 PMSGF <^SPURIOUS DTE INT^>^
1885 002007 037 04 0 00 006132 PSIXMF [SIXBIT\^SPURIOUS DTE INT^_\]^
1886 002010 262 17 0 00 000000 GET 0
1887 002011 254 12 1 00 006603 JEN @$DTRPT ;RESUME
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 19
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0105
1888 S^;*********************************************************************^
1889 ;*DTE20 COMMUNICATIONS ROUTINE
1890 S^;*********************************************************************^
1891
1892 002012 $DTEXX:
1893 002012 332 00 0 00 000444 $DTEX1: SKIPE $DTFLG ;DTE20 INTERRUPT FLAG SET?
1894 002013 350 00 0 00 006654 AOS $DTER1 ;YES, NEVER FINISHED LAST OPERATION
1895
1896 002014 402 00 0 00 000444 $DTEX2: SETZM $DTFLG ;INITIALIZE INTERRUPT FLAG
1897 002015 202 00 0 00 000451 MOVEM AC0,$DTCMD ;SETUP 10 TO 11 COMMAND WORD
1898 002016 402 00 0 00 000450 SETZM $DTF11 ;CLEAR RESPONSE WORD
1899 002017 350 00 0 00 000452 AOS $DTSEQ ;COUNT DTE20 OPERATION
1900
1901 002020 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11 ;RING BELL
1902 002021 336 00 0 00 000444 SKIPN $DTFLG ;WAIT FOR DTE20 COMM INTERRUPT
1903 002022 254 00 0 00 002021 JRST .-1
1904
1905 002023 402 00 0 00 000444 $DTEX3: SETZM $DTFLG ;CLEAR INTERRUPT FLAG
1906 002024 200 00 0 00 000450 MOVE AC0,$DTF11 ;PUT RESPONSE IN AC0
1907 002025 263 17 0 00 000000 RTN ;RESUME CALLING SUBROUTINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 20
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0106
1908 S^;*********************************************************************^
1909 ;*this routine looks @ ac0 to determine whether to enable/disable
1910 ;*setting clock ticked flag "clockf" IN THE 10 WHEN A POWER LINE
1911 ;*CLOCK CYCLE OCCURS IN THE 11 (EVERY 16.67 MS)
1912 ;*or TO executE an instruction upon occurrence of the clock tick
1913 ;* ac0 = 0 for disable
1914 ;* ac0 = -1 for enable
1915 ;* AC0 = INST FOR ENABLE & EXECUTE INST
1916 ;* AC0 = 0,,X FOR WAIT X THEN CLOCK XCT OF INST IN AC1
1917 ;* AC0 = 0,,1 FOR READ PRESENT CLOCK COUNT SINCE ENABLED
1918 s^;*********************************************************************^
1919
1920 002026 306 00 0 00 000001 $clock: CAIN AC0,1
1921 002027 254 00 0 00 002047 JRST $CLKRD ;READ CLOCK COUNT
1922 002030 402 00 0 00 000446 SETZM $DTCI
1923 002031 322 00 0 00 002041 JUMPE AC0,$CLKOF ;ENABLE the 11 clock to 10?
1924 002032 316 00 0 00 006136 CAMN AC0,[-1] ;YES ...DOES AC0 HAVE -1?
1925 002033 254 00 0 00 002037 JRST $CLKON ;YES ...NOTIFY WHEN CLOCK TICKS
1926 002034 607 00 0 00 777777 TLNN AC0,-1 ;IS AC0 = 0,,X ?
1927 002035 254 00 0 00 002043 JRST $CLKWT ;YES...(AC1) IS INST, AC0 = WAIT COUNT
1928 002036 202 00 0 00 000446 MOVEM AC0,$DTCI ;INST IN AC0, SAVE
1929
1930 002037 201 00 0 00 001001 $CLKON: MOVEI AC0,1001 ;TURN CLOCK ON
1931 002040 254 00 0 00 002051 JRST $CLKXX
1932
1933 002041 201 00 0 00 001000 $clkof: MOVEI ac0,1000 ;TURN CLOCK OFF
1934 002042 254 00 0 00 002012 PJRST $DTEXX
1935
1936 002043 202 01 0 00 000446 $CLKWT: MOVEM 1,$DTCI ;(AC1) = INST, (AC0) = WAIT COUNT
1937 002044 202 00 0 00 000447 MOVEM AC0,$DTT11 ;SETUP DATA WORD TO PDP-11
1938 002045 201 00 0 00 001002 MOVEI AC0,1002
1939 002046 254 00 0 00 002051 JRST $CLKXX
1940
1941 002047 201 00 0 00 001003 $CLKRD: MOVEI AC0,1003 ;READ CLOCK COUNT
1942 002050 254 00 0 00 002012 PJRST $DTEXX ;CLOCK COUNT RETURNED IN AC0
1943
1944 002051 $CLKXX:
1945 002051 7 200 20 0 00 000021 $$DTE2: CONO DTE,21 ;TURN DTE20 INTERRUPTS ON
1946 002052 254 00 0 00 002012 PJRST $DTEXX
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 21
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0107
1947 S^;*********************************************************************^
1948 ;*THIS ROUTINE CONTROLS THE DK20 METER FOR NORMAL DIAGNOSTICS
1949 ;*ALLOWS METER TO BE ENABLED/DISABLED AND FOR EVERY METER
1950 ;*PERIOD THE "CLOCKF" FLAG IS SET AND AN OPTIONAL INSTRUCTION
1951 ;*EXECUTED. THE METER PERIOD IS SET FOR 16.67 MS (60 HZ).
1952 ;* OR FOR 20 MS FOR A 50HZ PROCESSOR.
1953 S^;*********************************************************************^
1954
1955 002053 306 00 0 00 000001 $MTROP: CAIN AC0,1
1956 002054 254 00 0 00 002102 JRST $MTRRD ;0,,1 = READ CLOCK COUNT
1957 002055 7 024 20 0 00 000000 CONO MTR,0 ;CLEAR INTERRUPT ASSIGNMENT
1958 002056 7 020 20 0 00 400000 CONO TIM,400000 ;CLEAR TIMER
1959 002057 402 00 0 00 006605 SETZM $MTRI
1960 002060 402 00 0 00 006606 SETZM $MTRWC
1961 002061 322 00 0 00 002100 JUMPE AC0,$MTROF ;0,,0 = DISABLE
1962 002062 316 00 0 00 006136 CAMN AC0,[-1]
1963 002063 254 00 0 00 002067 JRST $MTRON ;-1 = ENABLE
1964 002064 607 00 0 00 777777 TLNN AC0,-1
1965 002065 254 00 0 00 002104 JRST $MTRW ;0,,X = WAIT
1966 002066 202 00 0 00 006605 MOVEM AC0,$MTRI ;XCT INST
1967
1968 002067 200 00 0 00 006137 $MTRON: MOVE [JSR $MTRIR]
1969 002070 202 00 0 00 000514 MOVEM 514 ;SETUP METER VECTOR
1970 002071 402 00 0 00 006607 SETZM MTRCNT ;CLEAR METER COUNT
1971 002072 336 00 0 00 030505 SKIPN CYCL60
1972 002073 7 020 20 0 00 463203 CONO TIM,463203 ;60 HZ
1973 002074 332 00 0 00 030505 SKIPE CYCL60
1974 002075 7 020 20 0 00 463720 CONO TIM,463720 ;50 HZ
1975 002076 7 024 20 0 00 000001 CONO MTR,1 ;ON PI CHN 1
1976 002077 263 17 0 00 000000 RTN
1977
1978 002100 7 024 20 0 00 000000 $MTROF: CONO MTR,0 ;TURN METER OFF
1979 002101 263 17 0 00 000000 RTN
1980
1981 002102 200 00 0 00 006607 $MTRRD: MOVE 0,MTRCNT ;READ METER COUNT
1982 002103 263 17 0 00 000000 RTN
1983
1984 002104 202 01 0 00 006605 $MTRW: MOVEM 1,$MTRI ;WAIT, INSTRUCTION IN AC1
1985 002105 202 00 0 00 006606 MOVEM 0,$MTRWC ;WAIT COUNT IN AC0
1986 002106 254 00 0 00 002067 JRST $MTRON
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 22
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DTE-20 INPUT/OUTPUT ROUTINES SEQ 0108
1987 S^;*********************************************************************^
1988 ;*METER INTERRUPT ROUTINE
1989 S^;*********************************************************************^
1990
1991 002107 000000 000000 $MTRIR: 0 ;METER INTERRUPT ROUTINE
1992 002110 7 024 20 0 00 000000 CONO MTR,0 ;CLEAR METER
1993 002111 336 00 0 00 030505 SKIPN CYCL60
1994 002112 7 020 20 0 00 063203 CONO TIM,63203 ;RESET PERIOD
1995 002113 332 00 0 00 030505 SKIPE CYCL60
1996 002114 7 020 20 0 00 063720 CONO TIM,63720
1997 002115 7 024 20 0 00 000001 CONO MTR,1 ;REENABLE
1998 002116 350 00 0 00 006607 AOS MTRCNT ;COUNT CLOCK INTERVAL
1999 002117 332 00 0 00 006606 SKIPE $MTRWC ;DOING A WAIT ?
2000 002120 254 00 0 00 002125 JRST $MTIR2 ;YES
2001 002121 476 00 0 00 030045 $MTIR1: SETOM CLOCKF ;SET DIAG SEGMENT CLOCK FLAG
2002 002122 332 00 0 00 006605 SKIPE $MTRI ;ANY XCT INSTRUCTION ?
2003 002123 256 00 0 00 006605 XCT $MTRI ;YES, DO USERS REQUEST
2004 002124 254 12 1 00 002107 JEN @$MTRIR ;RESUME PROGRAM
2005
2006 002125 202 00 0 00 006610 $MTIR2: MOVEM 0,$MTRAC
2007 002126 200 00 0 00 006607 MOVE 0,MTRCNT
2008 002127 311 00 0 00 006606 CAML 0,$MTRWC ;WAITED LONG ENOUGH ?
2009 002130 254 00 0 00 002133 JRST $MTIR3 ;YES
2010 002131 200 00 0 00 006610 MOVE 0,$MTRAC ;NOT YET
2011 002132 254 12 1 00 002107 JEN @$MTRIR ;JUST EXIT
2012
2013 002133 200 00 0 00 006610 $MTIR3: MOVE 0,$MTRAC
2014 002134 254 00 0 00 002121 JRST $MTIR1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 23
SUBKLM MAC 11-Sep-78 11:38 PROCESSOR TYPE DETERMINATION SEQ 0109
2015 SUBTTL PROCESSOR TYPE DETERMINATION
2016 S^;*********************************************************************^
2017
2018 002135 402 00 0 00 030505 $CPUTP: SETZM CYCL60
2019 002136 402 00 0 00 030041 SETZM KLFLG
2020 002137 402 00 0 00 030040 SETZM KAIFLG
2021 002140 200 01 0 00 006102 $CPKL: MOVE 1,[1,,1] ;IF KL10, AC1 AFTER BLT WILL CHANGE
2022 002141 251 01 0 00 000001 BLT 1,1
2023 002142 316 01 0 00 006102 CAMN 1,[1,,1]
2024 002143 254 00 0 00 001016 JRST CPIERR ;WRONG PROCESSOR
2025 002144 476 00 0 00 030041 SETOM KLFLG ;KL10 - SET FLAG
2026
2027 002145 7 000 00 0 00 000000 $CPLII: BLKI APR,0 ;GET KL10 HARDWARE OPTIONS
2028 002146 602 00 0 00 400000 TRNE 0,1B18 ;50 HZ BIT SET ?
2029 002147 476 00 0 00 030505 SETOM CYCL60 ;YES, SET INDICATOR
2030 002150 606 00 0 00 200000 TRNN 0,1B19 ;CACHE OPTION BIT SET ?
2031 002151 476 00 0 00 030506 SETOM CSHFLG ;NO, INHIBIT CACHE
2032 002152 200 00 0 00 000457 MOVE $DTSWR ;GET INITIAL SWITCHES
2033 002153 603 00 0 00 000004 TLNE CHAIN ;IS "CHAIN MODE" SET ?
2034 002154 476 00 0 00 030056 SETOM $ONETM ;YES, DON'T PRINT ID INFO
2035 002155 332 00 0 00 030043 SKIPE MONCTL ;DIAGNOSTIC MONITOR ?
2036 002156 263 17 0 00 000000 RTN ;YES, NO FURTHER INIT
2037 002157 201 00 0 00 002647 MOVEI $IPGFL ;SETUP INITIALIZATION PAGE FAIL TRAP
2038 002160 202 00 0 00 000502 MOVEM LPGFTR
2039 002161 7 010 24 0 00 000000 CONI PAG,0
2040 002162 620 00 0 00 057777 TRZ 0,57777
2041 002163 7 010 20 1 00 000000 CONO PAG,@0 ;CLEAR EBR
2042 002164 7 010 24 0 00 000000 CONI PAG,0 ;READ EBR
2043 002165 620 00 0 00 620000 TRZ 0,620000 ;CLEAR CACHE & TRPENB
2044 002166 302 00 0 00 000000 CAIE 0,0
2045 002167 254 04 0 00 001016 HALT CPIERR ;NOT CLEAR, FATAL ERROR
2046 002170 7 010 14 0 00 006140 DATAO PAG,[LLPRCN!LLDUSB,,400000] ;CLEAR UBR
2047 002171 7 010 04 0 00 000000 DATAI PAG,0 ;READ UBR
2048 002172 621 00 0 00 747700 TLZ 0,747700 ;CLEAR MISC, CURR & PREV AC BLOCK
2049 002173 302 00 0 00 000000 CAIE 0,0
2050 002174 254 04 0 00 001016 HALT CPIERR ;NOT CLEAR, FATAL ERROR
2051 002175 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 24
SUBKLM MAC 11-Sep-78 11:38 "DIAMON" FILE SELECTION & READ SEQ 0110
2052 SUBTTL "DIAMON" FILE SELECTION & READ
2053 S^;*********************************************************************^
2054
2055 002176 261 17 0 00 000000 $FSELECT:PUT 0
2056 002177 402 00 0 00 006656 SETZM $FSELF#
2057 002200 200 00 0 00 006141 MOVE 0,[1,,POWER+1] ;SAVE ACS
2058 002201 251 00 0 00 006632 BLT POWER+16
2059 002202 262 17 0 00 000000 GET 0
2060 002203 336 00 0 00 027772 SKIPN FSELNK ;ANY FILE SELECT LINK ?
2061 002204 254 00 0 00 002216 JRST $FSEL1 ;NO
2062
2063 002205 260 17 1 00 027772 GO @FSELNK ;TRANSFER TO "DIAMON"
2064 002206 254 00 0 00 002211 JRST $FSEL2 ;ERROR RTN, AC0 HAS CODE
2065
2066 002207 476 00 0 00 006656 SETOM $FSELF ;FOUND, SET FILE SELECTED FLAG
2067 002210 350 00 0 17 000000 AOS (P) ;SKIP RETURN
2068 002211 261 17 0 00 000000 $FSEL2: PUT 0
2069 002212 204 00 0 00 006141 MOVS 0,[1,,POWER+1] ;RESTORE ACS
2070 002213 251 00 0 00 000016 BLT 16
2071 002214 262 17 0 00 000000 GET 0
2072 002215 263 17 0 00 000000 RTN
2073
2074 002216 402 00 0 00 000000 $FSEL1: SETZM 0 ;NO "DIAMON" CAPABILTY
2075 002217 254 00 0 00 002211 JRST $FSEL2
2076
2077 ;*"DIAMON" FILE READ
2078 S^;*********************************************************************^
2079
2080 002220 201 00 0 00 000001 $FRD8: MOVEI 0,1 ;SET FLAG FOR 8BIT READ
2081 002221 254 00 0 00 002225 JRST .+4
2082 002222 474 00 0 00 000000 $FRD36: SETO ;SET FLAG FOR 36 BIT READ
2083 002223 254 00 0 00 002225 JRST .+2
2084 002224 400 00 0 00 000000 $FREAD: SETZ ;SET FLAG FOR 7 BIT ASCII READ
2085 002225 261 17 0 00 000000 PUT 0
2086 002226 336 00 0 00 006656 SKIPN $FSELF ;WAS ANY FILE SELECTED ?
2087 002227 037 15 0 00 000004 FATAL ;NO
2088 002230 336 00 0 00 027773 SKIPN FRDLNK ;ANY FILE READ LINK ?
2089 002231 037 15 0 00 000004 FATAL ;NO
2090 002232 200 00 0 00 006141 MOVE 0,[1,,POWER+1] ;SAVE ACS
2091 002233 251 00 0 00 006632 BLT POWER+16
2092 002234 262 17 0 00 000000 GET 0 ;GET FORMAT FLAG
2093 002235 260 17 1 00 027773 GO @FRDLNK ;TRANSFER TO "DIAMON"
2094 002236 254 00 0 00 002211 JRST $FSEL2 ;EOF
2095 002237 254 00 0 00 002210 JRST $FSEL2-1 ;OK, SKIP RETURN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 25
SUBKLM MAC 11-Sep-78 11:38 PROGRAM HALTS SEQ 0111
2096 SUBTTL PROGRAM HALTS
2097
2098 ;*SUBROUTINE ERROR HALT
2099 S^;*********************************************************************^
2100
2101 002240 037 04 0 00 000002 $ERHLT: PNTNM ;PRINT PROGRAM NAME
2102 PMSGF <ERROR HALT AT >^
2103 002241 037 04 0 00 006142 PSIXMF [SIXBIT\ERROR HALT AT _\]^
2104 002242 262 17 0 00 006655 GET $ERH0
2105 002243 261 17 0 00 000000 PUT 0
2106 002244 200 00 0 00 006655 MOVE AC0,$ERH0# ;LOAD HALT LOC WITH USRPC + 1 FOR RESTART
2107 002245 370 00 0 00 000000 SOS ;SUBTRACT ONE FOR USRPC OF ERROR
2108 002246 037 06 0 00 000001 PNT6F ;PRINT USRPC FORCED
2109 002247 037 01 0 00 030242 PCRLF
2110
2111 002250 331 00 0 00 030043 SKIPL MONCTL ;UNDER MONITOR CONTROL ?
2112 002251 254 00 0 00 002257 JRST $ERHL4 ;NO..HALT AT USRPC WHERE UUO OCCURRED
2113
2114 002252 260 17 0 00 004272 $ERHL1: GO $SWTCH ;READ SWITCHES INTO AC0
2115 002253 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ?
2116 002254 254 00 0 00 002257 JRST $ERHL4 ;YES...HALT
2117
2118 002255 262 17 0 00 000000 $ERHL3: GET AC0 ;RESTORE THE STACK (P - 1)
2119 002256 254 00 0 00 030061 JRST $BEND2 ;END OF PROGRAM
2120
2121 002257 476 00 0 00 006635 $ERHL4: SETOM KLNSW
2122 002260 201 00 0 00 000402 MOVEI AC0,402 ;IF KL10, NOTIFY PDP-11
2123 002261 260 17 0 00 002012 GO $DTEXX
2124 002262 262 17 0 00 000000 GET AC0
2125 002263 254 04 1 00 006655 HALT @$ERH0 ;NO, HALT WHERE ERROR OCCURED
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 26
SUBKLM MAC 11-Sep-78 11:38 PROGRAM HALTS SEQ 0112
2126 ;*FATAL PROGRAM ERROR HALT
2127 S^;*********************************************************************^
2128
2129 002264 037 04 0 00 000002 $FATAL: PNTNM
2130 PMSGF <FATAL PROGRAM ERROR AT >^
2131 002265 037 04 0 00 006145 PSIXMF [SIXBIT\FATAL PROGRAM ERROR AT _\]^
2132 002266 200 00 0 17 000000 MOVE AC0,(P) ;RETRIEVE USRPC + 1 FROM THE STACK
2133 002267 370 00 0 00 000000 SOS ;- 1
2134 002270 037 06 0 00 000001 PNT6F ;PRINT IT
2135 002271 037 01 0 00 030242 PCRLF
2136 002272 331 00 0 00 030043 SKIPL MONCTL ;EXEC - DIAGNOSTIC MONITOR ?
2137 002273 254 00 0 00 002277 JRST $FATL1 ;NO, END OF PROGRAM
2138 002274 260 17 0 00 004272 GO $SWTCH ;YES ... READ SWITCHES
2139 002275 607 00 0 00 002000 TLNN ERSTOP ;STOP ON ERROR ?
2140 002276 254 00 0 00 030061 JRST $BEND2 ;NO, END OF PROGRAM
2141
2142 002277 476 00 0 00 006635 $FATL1: SETOM KLNSW
2143 002300 201 00 0 00 000401 MOVEI AC0,401
2144 002301 260 17 0 00 002012 GO $DTEXX ;NOTIFY PDP-11
2145
2146 002302 261 17 0 00 000000 $DDTENT:PUT 0
2147 002303 200 00 0 00 010001 MOVE AC0,DDT+1 ;GET DDT ID
2148 002304 312 00 0 00 006151 CAME AC0,[ASCII/DDT/]
2149 002305 254 00 0 00 030061 JRST $BEND2 ;NOT LOADED, END PROGRAM
2150 002306 262 17 0 00 000000 GET 0
2151 002307 254 00 1 00 027775 JRST @DDTLNK ;DDT LOADED, GO TO IT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 27
SUBKLM MAC 11-Sep-78 11:38 PROGRAM NAME PRINTER SEQ 0113
2152 SUBTTL PROGRAM NAME PRINTER
2153
2154 ;*PRINT PROGRAM NAME IF NOT STAND-ALONE
2155 S^;*********************************************************************^
2156 SALL
2157 002310 331 00 0 00 030043 $PNTNM: SKIPL MONCTL ;DIAG MON / SYS EXR ?
2158 002311 254 00 0 00 002356 JRST $PNM2 ;NO
2159 002312 037 00 1 00 030025 PNTMSG @$PNAME ;PRINT PROGRAM NAME
2160 002313 037 02 0 00 006152 PMSG <VERSION >
2161 002314 554 00 0 00 000137 HLRZ JOBVER
2162 002315 037 16 0 00 000003 PNTOCS ;PRINT MCN LEVEL
2163 002316 037 00 0 00 000056 PNTCI "."
2164 002317 550 00 0 00 000137 HRRZ JOBVER
2165 002320 037 16 0 00 000003 PNTOCS ;PRINT DEC VERSION
2166 002321 037 02 0 00 006154 PMSG <, SV=>
2167 002322 554 00 0 00 001006 HLRZ SUBVER
2168 002323 037 16 0 00 000003 PNTOCS ;PRINT "SUBRTN" MCN LEVEL
2169 002324 037 00 0 00 000056 PNTCI "."
2170 002325 550 00 0 00 001006 HRRZ SUBVER
2171 002326 037 16 0 00 000003 PNTOCS ;PRINT "SUBRTN" DEC VERSION
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 28
SUBKLM MAC 11-Sep-78 11:38 PROGRAM NAME PRINTER SEQ 0114
2172 002327 7 000 00 0 00 006660 $KLSN: BLKI APR,$KLSNX# ;GET KL10 CPU ID INFO
2173 002330 200 00 0 00 006660 MOVE $KLSNX
2174 002331 405 00 0 00 007777 ANDI 7777
2175 002332 260 17 0 00 002360 GO $SNPNT ;PRINT CPU SERIAL NUMBER
2176 002333 037 02 0 00 006155 PMSG <, MCV=>
2177 002334 200 00 0 00 006660 MOVE $KLSNX
2178 002335 207 00 0 00 000000 MOVSS
2179 002336 405 00 0 00 000777 ANDI 777
2180 002337 037 16 0 00 000003 PNTOCS ;PRINT MICRO-CODE VERSION
2181 002340 037 02 0 00 006157 PMSG <, MCO=>
2182 002341 200 00 0 00 006660 MOVE $KLSNX
2183 002342 242 00 0 00 777745 LSH -^D27
2184 002343 405 00 0 00 000777 ANDI 777
2185 002344 037 16 0 00 000003 PNTOCS ;PRINT MICRO-CODE OPTIONS
2186 002345 037 02 0 00 006161 PMSG <, HO=>
2187 002346 200 00 0 00 006660 MOVE $KLSNX
2188 002347 242 00 0 00 777764 LSH -^D12
2189 002350 405 00 0 00 000077 ANDI 77
2190 002351 037 16 0 00 000003 PNTOCS ;PRINT HARDWARE OPTIONS
2191
2192 002352 336 00 0 00 030505 $PNM1: SKIPN CYCL60
2193 002353 037 02 0 00 006162 PMSG <, 60HZ>
2194 002354 332 00 0 00 030505 SKIPE CYCL60
2195 002355 037 02 0 00 006164 PMSG <, 50HZ>
2196
2197 002356 037 00 0 00 030242 $PNM2: PCRL
2198 002357 263 17 0 00 000000 RTN ;EXIT
2199
2200 002360 261 17 0 00 000000 $SNPNT: PUT 0
2201 002361 037 02 0 00 006166 PMSG <, CPU#=>
2202 002362 262 17 0 00 000000 GET 0
2203 002363 037 15 0 00 000000 PNTDEC ;PRINT CPU SERIAL NUMBER
2204 002364 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 29
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0115
2205 SUBTTL *SUBRTN* INTERRUPT HANDLING ROUTINES
2206 LALL
2207
2208 ;*PUSH DOWN LIST EXCESSIVE POPJ ROUTINE
2209 S^;*********************************************************************^
2210
2211 002365 PSHERR: PMSGF <^*****^PLIST UFLOW^>^
2212 002365 037 04 0 00 006170 PSIXMF [SIXBIT\^*****^PLIST UFLOW^_\]^
2213 002366 037 15 0 00 000004 FATAL ;PRINT LOCATION AND EXIT
2214
2215 S^;*********************************************************************^
2216 ;*INTERRUPT ROUTINE INITIALIZATION
2217 ;*SETUP INTERRUPT VECTORS
2218 S^;*********************************************************************^
2219
2220 002367 200 00 0 00 006174 $ITRIN: MOVE [JSR ITRCH1]
2221 002370 202 00 0 00 000042 MOVEM 42
2222 002371 202 00 0 00 000044 MOVEM 44
2223 002372 202 00 0 00 000046 MOVEM 46
2224 002373 202 00 0 00 000050 MOVEM 50
2225 002374 202 00 0 00 000052 MOVEM 52
2226 002375 202 00 0 00 000054 MOVEM 54
2227 002376 202 00 0 00 000056 MOVEM 56
2228
2229 002377 200 00 0 00 006175 MOVE [JRST $ITRC1] ;SETUP "FIXED" LINKING
2230 002400 202 00 0 00 030105 MOVEM ITRCH1+1
2231 002401 200 00 0 00 006176 MOVE [JRST RESRTX]
2232 002402 202 00 0 00 030076 MOVEM RESRT1
2233 002403 254 00 0 00 002631 JRST $KL10
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 30
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0116
2234 ;*DIAG SEGMENT TRANSFER POINT FOR INTERRUPT ROUTINES
2235 S^;*********************************************************************^
2236 SALL
2237 002404 202 17 0 00 006702 $PDOVU: MOVEM P,$PDOVP#
2238 002405 200 17 0 00 030303 MOVE P,PLIST ;RESET POINTER
2239 002406 201 00 0 00 030103 MOVEI 0,$PSHER
2240 002407 261 17 0 00 000000 PUSH P,0
2241 002410 037 02 0 00 006177 PMSG <^*****^PLIST OVERFLOW P=>
2242 002411 200 00 0 00 006702 MOVE 0,$PDOVP
2243 002412 037 13 0 00 000000 PNTHW
2244 002413 400 00 0 00 000000 SETZ
2245 002414 254 00 0 00 002442 JRST $ITR1B ;COMMON INTERRUPT ROUTINE
2246
2247 002415 201 00 0 00 006204 $MPVU: MOVEI SIXBTZ <^MEMORY PROT>
2248 002416 254 00 0 00 002431 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
2249
2250 002417 201 00 0 00 006207 $NXMU: MOVEI SIXBTZ <^NON-EX MEMORY>
2251 002420 254 00 0 00 002431 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
2252
2253 002421 200 00 0 00 030106 $PAREX: MOVE 0,$ACC0
2254 002422 256 00 0 00 030100 XCT $PARER ;EXECUTE USER ROUTINE, IF PROVIDED
2255 002423 201 00 0 00 006212 MOVEI SIXBTZ <^MEMORY PARITY>
2256 002424 254 00 0 00 002431 JRST $ITR1A ;COMMON INTERRUPT ROUTINE
2257 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 31
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0117
2258 ;*COMMON INTERRUPT HANDLERS
2259 S^;*********************************************************************^
2260 SALL
2261 002425 200 00 0 00 030106 $ITRHZ: MOVE 0,$ACC0
2262 002426 256 00 0 00 030071 XCT $ITRHL ;EXECUTE USER ROUTINE, IF SUPPLIED
2263 002427 7 004 20 0 00 000400 CONO PI,PIOFF ;CLEAR PI SYSTEM
2264 002430 201 00 0 00 006215 MOVEI SIXBTZ <^UNKNOWN INTERRUPT>
2265 LALL
2266 ;*PRINT CAUSE AND OTHER PERTINENT INFO
2267 S^;*********************************************************************^
2268 SALL
2269 002431 261 17 0 00 000000 $ITR1A: PUT 0
2270 002432 037 01 0 00 000026 PFORCE
2271 002433 700400 006542 700400,,$SVERA ;READ ERA
2272 002434 037 02 0 00 006221 PMSG <^ERROR ADDRESS REG = >
2273 002435 200 00 0 00 006542 MOVE $SVERA
2274 002436 037 13 0 00 000000 PNTHW
2275 002437 260 17 0 00 003316 GO MEMSAV ;SAVE & RESET MEMORY CONTROLLERS
2276 002440 260 17 0 00 003305 GO MREPORT ;REPORT CONTROLLERS WITH ERRORS
2277 002441 262 17 0 00 000000 GET 0
2278 002442 332 00 0 00 000000 $ITR1B: SKIPE 0
2279 002443 037 14 0 00 000003 PSIXL ;PRINT CAUSE
2280 002444 037 02 0 00 006225 PMSG <^APR PI FLAGS PC PROG^>
2281 002445 200 00 0 00 030110 MOVE $SVAPR#
2282 002446 037 13 0 00 000000 PNTHW ;PRINT APR CONI BITS
2283 002447 037 00 0 00 000040 PSP
2284 002450 200 00 0 00 030107 MOVE $SVPI#
2285 002451 037 13 0 00 000000 PNTHW ;PRINT PI CONI BITS
2286 002452 037 00 0 00 000040 PSP
2287 002453 200 00 0 00 030104 MOVE ITRCH1
2288 002454 037 13 0 00 000000 PNTHW ;PRINT FLAGS, PC
2289 002455 037 00 0 00 000040 PSP
2290 002456 550 00 0 17 000000 HRRZ 0,(P)
2291 002457 037 06 0 00 000000 PNT6 ;PRINT LAST PUSHJ ENTRY
2292 002460 037 00 0 00 030242 PCRL
2293 002461 200 00 0 00 030106 MOVE 0,$ACC0
2294 002462 256 00 0 00 030072 XCT $ITRX1 ;EXECUTE USER ROUTINE, IF SUPPLIED
2295 002463 037 15 0 00 000004 FATAL
2296 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 32
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0118
2297 ;*COMMON INTERRUPT ROUTINE
2298 S^;*********************************************************************^
2299
2300 002464 202 00 0 00 030106 $ITRC1: MOVEM AC0,$ACC0# ;SAVE AC0
2301 002465 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE APR SYSTEM
2302 002466 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI SYSTEM
2303 002467 200 00 0 00 000041 MOVE AC0,JOB41
2304 002470 312 00 0 00 006053 CAME AC0,[GO $UORTN]
2305 002471 254 04 0 00 001020 HALT LUOERR ;UUO HANDLER INVALID
2306 002472 200 00 0 00 030106 MOVE AC0,$ACC0
2307 002473 254 00 0 00 002562 JRST $KLITR
2308
2309 ;*RESTORE PROCESSOR ON POWER FAIL RESTART
2310 S^;*********************************************************************^
2311 SALL
2312 002474 336 00 0 00 006713 RESRTX: SKIPN $PWRF ;DID POWER FAIL WORK?
2313 002475 254 00 0 00 002516 JRST $PWRFL ;NO
2314 002476 254 00 0 00 002664 JRST $KLRST ;KL10
2315
2316 002477 552 01 0 00 030107 $RSTCM: HRRZM 1,$SVPI
2317 002500 552 03 0 00 030110 HRRZM 3,$SVAPR
2318 002501 204 00 0 00 006141 MOVS [1,,POWER+1] ;RESTORE AC'S
2319 002502 251 00 0 00 000017 BLT 17
2320 002503 037 04 0 00 006236 PMSGF <^POWER FAIL RESTART^>
2321 002504 402 00 0 00 006713 SETZM $PWRF#
2322 002505 200 00 0 00 006614 MOVE 0,POWER
2323 002506 256 00 0 00 030074 XCT $RSRTX ;EXECUTE USER ROUTINE, IF PROVIDED
2324 002507 7 000 20 1 00 030110 CONO APR,@$SVAPR ;RESET APR SYSTEM
2325 002510 7 004 20 1 00 030107 CONO PI,@$SVPI ;RESET PI SYSTEM
2326 002511 204 00 0 00 006141 MOVS [1,,POWER+1] ;RESTORE AC'S
2327 002512 251 00 0 00 000017 BLT 17
2328 002513 200 00 0 00 006614 MOVE 0,POWER
2329 002514 256 00 0 00 030075 XCT $RSRTY ;EXECUTE USER ROUTINE, IF PROVIDED
2330 002515 254 02 1 00 006714 JRSTF @$PWRST
2331
2332 002516 265 00 0 00 030011 $PWRFL: PGMINT ;REINIT THE SUBROUTINE PACKAGE
2333 002517 037 04 0 00 006242 PMSGF <^POWER INTERRUPT FAILED^>
2334 002520 254 04 0 00 030000 HALT BEGIN
2335 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 33
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0119
2336 ;*KL10 PUSHDOWN OVERFLOW TRAP ROUTINE
2337 S^;*********************************************************************^
2338
2339 002521 202 00 0 00 030104 $PDLOV: MOVEM AC0,ITRCH1 ;SAVE USRPC (VIA JSP)
2340 002522 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE PROCESSOR STATUS
2341 002523 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI STATUS
2342 002524 254 00 0 00 002404 JRST $PDOVU ;GO HANDLE IT
2343
2344 ;*KL10 PAGE FAIL TRAP ROUTINE
2345 S^;*********************************************************************^
2346 002525 200 00 0 00 000501 $PGFL: MOVE AC0,LPFWPC ;KL10, GET PAGE FAIL PC
2347 002526 202 00 0 00 030104 MOVEM AC0,ITRCH1 ;SAVE USRPC
2348 002527 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE PROCESSOR STATUS
2349 002530 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI STATUS
2350 PMSG <^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- >^
2351 002531 037 02 0 00 006247 PSIXM [SIXBIT\^PAGE FAIL TRAP ERROR^PAGE FAIL WORD- _\]^
2352 002532 200 00 0 00 000500 $PGFL1: MOVE LEUPFW ;GET KL10 PAGE FAIL WORD
2353 002533 037 13 0 00 000000 PNTHW ;PRINT IT
2354 002534 254 00 0 00 002660 JRST $PGFL2 ;KL10, REPORT APR ERRORS ALSO
2355
2356 ;*KL10 TRAP 3 ROUTINE
2357 S^;*********************************************************************^
2358 002535 202 00 0 00 030104 $TRP3: MOVEM AC0,ITRCH1 ;SAVE THE USRPC
2359 002536 7 000 24 0 00 030110 CONI APR,$SVAPR ;SAVE PROCESSOR STATUS
2360 002537 7 004 24 0 00 030107 CONI PI,$SVPI ;SAVE PI STATUS
2361 002540 201 00 0 00 006256 MOVEI AC0,SIXBTZ ^TRAP 3 ERROR^ [SIXBIT\^TRAP 3 ERROR_\]^
2362 002541 254 00 0 00 002442 JRST $ITR1B ;COMMON INTERRUPT ROUTINE START
2363
2364 ;*KL10 COMMON TRAP & MMUO SETUP
2365 S^;*********************************************************************^
2366
2367 002542 205 00 0 00 255000 $KIKLI: MOVSI (JFCL)
2368 002543 202 00 0 00 000421 MOVEM LAROVT ;SETUP ARITHMETIC OV TRAP
2369 002544 200 00 0 00 006261 MOVE [JSP $PDLOV]
2370 002545 202 00 0 00 000422 MOVEM LPDOVTP ;SETUP PDL OV TRAP
2371 002546 200 00 0 00 006262 MOVE [JSP $TRP3]
2372 002547 202 00 0 00 000423 MOVEM LTRP3TP ;SETUP TRAP 3
2373 002550 201 00 0 00 001301 MOVEI MUUOER ;SETP MUUO AS ERROR FOR THE FOLLOWING:
2374 002551 202 00 0 00 000430 MOVEM LKNTRP ;KERNAL MODE - NO TRAP ENABLED
2375 002552 202 00 0 00 000431 MOVEM LKTRP ; " TRAP ENABLED
2376 002553 202 00 0 00 000432 MOVEM LSNTRP ;SUPERVISOR - NO TRAP
2377 002554 202 00 0 00 000433 MOVEM LSTRP ; " TRAP
2378 002555 202 00 0 00 000434 MOVEM LCNTRP ;CONCEALED - NO TRAP
2379 002556 202 00 0 00 000435 MOVEM LCTRP ; " TRAP
2380 002557 202 00 0 00 000436 MOVEM LPNTRP ;PUBLIC - NO TRAP
2381 002560 202 00 0 00 000437 MOVEM LPTRP ; " TRAP
2382 002561 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 34
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0120
2383 ;*KL10 INTERRUPT ROUTINE
2384 S^;*********************************************************************^
2385 SALL
2386 002562 7 010 04 0 00 030111 $KLITR: DATAI PAG,$SVPAG# ;SAVE PAGE
2387 002563 7 010 24 0 00 030112 CONI PAG,$SPAG1#
2388 002564 7 000 34 0 00 000040 CONSO APR,LPWRFL ;POWER FAILURE?
2389 002565 254 00 0 00 002601 JRST $KLIT1 ;NO ...LOOK FOR PARITY ERROR
2390
2391 002566 200 00 0 00 006141 $KLPWR: MOVE [1,,POWER+1] ;YES
2392 002567 251 00 0 00 006633 BLT POWER+17
2393 002570 200 00 0 00 030106 MOVE $ACC0
2394 002571 202 00 0 00 006614 MOVEM POWER
2395 002572 200 00 0 00 030104 MOVE ITRCH1
2396 002573 202 00 0 00 006714 MOVEM $PWRST# ;USER RESTART IF WANTED
2397 002574 200 00 0 00 006263 MOVE [JRST PFSTRT]
2398 002575 202 00 0 00 000070 MOVEM 70
2399 002576 260 17 0 00 003243 GO $CFLUSH ;FLUSH CACHE IF ON
2400 002577 476 00 0 00 006713 SETOM $PWRF ;NOTIFY OF POWER FAIL ON RESTART
2401 002600 254 04 0 00 030000 HALT BEGIN ;UNTIL POWER ON
2402
2403 002601 200 00 0 00 030110 $KLIT1: MOVE $SVAPR ;GET APR CONDITIONS
2404 002602 606 00 0 00 007700 TRNN LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
2405 002603 254 00 0 00 002425 JRST $ITRHZ ;NONE OF THESE INTERRUPTS
2406 002604 602 00 0 00 002000 TRNE LNXMER ;NON-X-MEM ERROR ?
2407 002605 254 00 0 00 002417 JRST $NXMU ;YES
2408 002606 602 00 0 00 000400 TRNE LPARER ;PARITY ERROR ?
2409 002607 254 00 0 00 002421 JRST $PAREX ;YES
2410 002610 602 00 0 00 004000 TRNE LSBUSE ;S-BUS ERROR ?
2411 002611 254 00 0 00 002621 JRST $KLSBE
2412 002612 602 00 0 00 001000 TRNE LIOPFE ;I/O PAGE FAIL ?
2413 002613 254 00 0 00 002623 JRST $KLIOP
2414 002614 602 00 0 00 000200 TRNE LCADRP ;CACHE ADR PARITY ?
2415 002615 254 00 0 00 002625 JRST $KLCAD
2416 002616 602 00 0 00 000100 TRNE LSADRP ;S-BUS ADR PARITY ?
2417 002617 254 00 0 00 002627 JRST $KLSAD
2418 002620 254 00 0 00 002425 JRST $ITRHZ ;NO ...REST ARE COMMON
2419
2420 002621 201 00 0 00 006264 $KLSBE: MOVEI SIXBTZ <^S-BUS>
2421 002622 254 00 0 00 002431 JRST $ITR1A
2422 002623 201 00 0 00 006266 $KLIOP: MOVEI SIXBTZ <^I/O PAGE FAIL>
2423 002624 254 00 0 00 002431 JRST $ITR1A
2424 002625 201 00 0 00 006271 $KLCAD: MOVEI SIXBTZ <^CACHE ADR PARITY>
2425 002626 254 00 0 00 002431 JRST $ITR1A
2426 002627 201 00 0 00 006274 $KLSAD: MOVEI SIXBTZ <^S-BUS ADR PARITY>
2427 002630 254 00 0 00 002431 JRST $ITR1A
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 35
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* INTERRUPT HANDLING ROUTINES SEQ 0121
2428 LALL
2429 ;*KL10 INTERRUPT AND TRAP INITIALIZATION
2430 S^;*********************************************************************^
2431
2432 002631 201 00 0 00 002650 $KL10: MOVEI $KLPGFL
2433 002632 202 00 0 00 000502 MOVEM LPGFTR ;SETUP PAGE FAIL TRAP
2434 002633 260 17 0 00 002542 GO $KIKLI ;SETUP TRAPS & MUUOS
2435 002634 7 004 20 0 00 031400 $KLCLR: CONO PI,LRQCLR!LPICLR!LCHNOF!LPIOFF ;CLEAR PI SYSTEM,CHNL & REQ PEND
2436 002635 7 000 20 0 00 127740 CONO APR,LAPRAL-20 ;CLEAR PROCESSOR ALL
2437
2438 002636 336 00 0 00 030042 $KLENB: SKIPN MONFLG ;MONITOR CONTROL (SPECIAL USER) ?
2439 002637 254 00 0 00 002644 JRST .+5
2440 002640 200 00 0 00 030046 MOVE CONSW
2441 002641 336 00 0 00 030511 SKIPN PVPAGI ;PREVENT PAGE INHIBIT ?
2442 002642 607 00 0 00 000100 TLNN INHPAG ;PAGING & TRAPPING INHIBITED ?
2443 002643 260 17 0 00 003467 GO KLPAG ;NO, SETUP TRAP ENABLE
2444 002644 7 000 20 0 00 000001 CONO APR,LAPRP1 ;ENABLE CHANNEL 1
2445 002645 7 004 20 0 00 002377 CONO PI,LCHNON!LPION!LPICHA ;ENABLE ALL PI CHNS
2446 002646 263 17 0 00 000000 RTN ;EXIT
2447
2448 002647 254 04 0 00 001016 $IPGFL: HALT CPIERR ;KL10 INITIALIZATION PAGE FAIL
2449
2450 002650 554 00 0 00 000500 $KLPGFL:HLRZ 0,LEUPFW ;GET PAGE FAIL WORD
2451 002651 405 00 0 00 770000 ANDI 0,770000 ;ISOLATE PAGE FAIL CODE
2452 002652 302 00 0 00 360000 CAIE 0,360000 ;AR PARITY ERROR ?
2453 002653 254 00 0 00 002525 JRST $PGFL ;NO
2454 002654 7 000 34 0 00 002000 CONSO APR,LNXMER ;YES, ALSO NON-X-MEMORY ?
2455 002655 254 00 0 00 002525 JRST $PGFL ;NO, REAL AR PARITY ERROR
2456 002656 350 00 0 00 000501 AOS LPFWPC ;YES, INCREMENT PAGE FAIL PC
2457 002657 254 02 1 00 000501 JRSTF @LPFWPC ;RETURN TO NEXT INSTRUCTION
2458
2459 002660 200 00 0 00 030110 $PGFL2: MOVE $SVAPR
2460 002661 606 00 0 00 007700 TRNN LNXMER!LPARER!LSBUSE!LIOPFE!LCADRP!LSADRP
2461 002662 254 00 0 00 002444 JRST $ITR1B+2 ;NO APR ERRORS
2462 002663 254 00 0 00 002601 JRST $KLIT1 ;YES, REPORT APR ERRORS
2463
2464 002664 200 17 0 00 006633 $KLRST: MOVE 17,POWER+17 ;RESTORE PUSH POINTER
2465 002665 260 17 0 00 002634 GO $KLCLR ;CLEAR & ENABLE APR & PI
2466 002666 260 17 0 00 002730 GO $KLCSH ;SETUP CACHE IF IT WAS ON
2467 002667 254 00 0 00 002477 JRST $RSTCM ;RESTORE CPU & RESTART
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 36
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES SEQ 0122
2468 SUBTTL *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES
2469 LALL
2470 ;*END OF PASS ROUTINE
2471 S^;*********************************************************************^
2472 SALL
2473 002670 350 00 0 00 030047 $END: AOS PASCNT ;INCREMENT PASS COUNTER
2474 002671 370 00 0 00 030024 SOS ITRCNT
2475 002672 402 00 0 00 030116 SETZM SCOPE
2476 002673 402 00 0 00 030052 SETZM ERRPC
2477 002674 260 17 0 00 004272 GO $SWTCH
2478 002675 603 00 0 00 400000 TLNE ABORT ;ABORT AT END OF PASS ?
2479 002676 254 00 0 00 002703 JRST $END2 ;YES
2480 002677 260 17 0 00 002712 GO $END4
2481 002700 336 00 0 00 030024 SKIPN ITRCNT
2482 002701 254 00 0 00 002710 $END1: JRST $END3 ;SKIP RETURN, COMPLETED ALL ITERATIONS
2483 002702 263 17 0 00 000000 RTN ;NON - SKIP , KEEP RUNNING
2484 002703 037 04 0 00 006277 $END2: PMSGF <END PASS >
2485 002704 200 00 0 00 030047 MOVE PASCNT ;PRINT END OF PASS COUNT
2486 002705 037 15 0 00 000001 PNTDCF
2487 002706 037 01 0 00 000056 PNTCIF "."
2488 002707 037 01 0 00 030242 PCRLF
2489 002710 350 00 0 17 000000 $END3: AOS (P)
2490 002711 263 17 0 00 000000 RTN
2491 002712 335 00 0 00 030043 $END4: SKIPGE MONCTL
2492 002713 263 17 0 00 000000 RTN ;"DIAMON" CONTROL
2493 002714 201 00 0 00 000404 MOVEI AC0,404 ;END OF PASS CODE
2494 002715 260 17 0 00 002012 GO $DTEXX ;NOTIFY PDP-11
2495 002716 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 37
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* END OF PASS/END OF PROGRAM ROUTINES SEQ 0123
2496 LALL
2497 ;*END OF PROGRAM ROUTINE
2498 S^;*********************************************************************^
2499
2500 002717 400 00 0 00 000000 $EOP: SETZ
2501 002720 037 13 0 00 000004 CLOKOP ;DISABLE PDP-11 CLOCK
2502
2503 002721 260 17 0 00 003247 GO $CWRTBI ;WRITEBACK & INVALIDATE CACHE IF ON
2504 002722 7 010 20 0 00 000000 CONO PAG,0 ;TURN OFF CACHE
2505
2506 002723 332 00 0 00 030044 SKIPE MONTEN ;KL10 & EXEC
2507 002724 254 00 1 00 030012 JRST @RETURN ;LOADED BY 10, RETURN TO LOADER
2508
2509 002725 201 00 0 00 000403 MOVEI AC0,403 ;LOADED BY PDP-11
2510 002726 260 17 0 00 002012 GO $DTEXX ;NOTIFY OF EOP
2511 002727 254 04 0 00 001017 HALT EOPERR ;SHOULD NEVER GET HERE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 38
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 CACHE ENABLE SEQ 0124
2512 SUBTTL *SUBRTN* KL10 CACHE ENABLE
2513 S^;*********************************************************************^
2514
2515 002730 332 00 0 00 030506 $KLCSH: SKIPE CSHFLG
2516 002731 263 17 0 00 000000 RTN ;NO CACHE ALLOWED
2517 002732 200 00 0 00 030046 MOVE CONSW
2518 002733 603 00 0 00 000020 TLNE INHCSH
2519 002734 263 17 0 00 000000 RTN ;CACHE INHIBITED
2520
2521 002735 7 010 30 0 00 600000 $CSH: CONSZ PAG,LCASLO!LCASLD ;CACHE ALREADY SETUP ?
2522 002736 263 17 0 00 000000 RTN ;YES, LEAVE IT ALONE THEN
2523 002737 554 03 0 00 006634 HLRZ 3,CLKDFL ;GET CACHE ENABLE BITS
2524 002740 242 03 0 00 777762 LSH 3,-^D14 ;ISOLATE BITS 0,1,2,3
2525 002741 405 03 0 00 000017 ANDI 3,17
2526 002742 336 00 0 00 000003 SKIPN 3 ;ANY CACHES ENABLED ?
2527 002743 263 17 0 00 000000 RTN ;NO CACHE
2528
2529 002744 561 00 0 00 777774 HRROI 0,-4 ;INITIAL "BLKO E"
2530 002745 201 01 0 00 000200 MOVEI 1,200 ;"BLKO" COUNT
2531 002746 402 00 0 00 000004 SETZM 4
2532 002747 200 02 0 03 002777 MOVE 2,CTABLE(3) ;GET CACHE REFILL TABLE POINTER
2533 002750 306 03 0 00 000010 CAIN 3,10
2534 002751 254 00 0 00 002773 JRST $CSH3 ;CACHE 0
2535 002752 306 03 0 00 000004 CAIN 3,4
2536 002753 254 00 0 00 002773 JRST $CSH3 ;CACHE 1
2537 002754 306 03 0 00 000002 CAIN 3,2
2538 002755 254 00 0 00 002773 JRST $CSH3 ;CACHE 2
2539 002756 306 03 0 00 000001 CAIN 3,1
2540 002757 254 00 0 00 002773 JRST $CSH3 ;CACHE 3
2541 002760 271 00 0 00 000004 $CSH1: ADDI 0,4 ;BUMP "BLKO E" BY 4
2542 002761 336 00 0 00 000004 SKIPN 4 ;SINGLE CACHE ?
2543 002762 134 03 0 00 000002 ILDB 3,2 ;EXTRACT BYTE FROM TABLE
2544 002763 137 03 0 00 006301 DPB 3,[POINT 3,0,20] ;DEPOSIT INTO "BLKO" WORD
2545 002764 7 000 10 1 00 000000 BLKO APR,@0 ;LOAD CACHE RAM
2546 002765 365 01 0 00 002760 SOJGE 1,$CSH1 ;LOOP FOR ALL LOC IN RAM
2547
2548 002766 260 17 0 00 003214 GO $CINVAL ;INVALIDATE CACHE
2549
2550 002767 7 010 24 0 00 000000 $CSH2: CONI PAG,0
2551 002770 660 00 0 00 600000 TRO LCASLO!LCASLD ;ENABLE LOOK & LOAD
2552 002771 7 010 20 1 00 000000 CONO PAG,@0
2553 002772 263 17 0 00 000000 RTN
2554
2555 002773 200 03 0 00 000002 $CSH3: MOVE 3,2 ;PUT CACHE DIGIT IN AC3
2556 002774 344 04 0 00 002760 AOJA 4,$CSH1
2557
2558 002775 $CSHER: PMSGF <CSWEEP TIMEOUT^>^
2559 002775 037 04 0 00 006302 PSIXMF [SIXBIT\CSWEEP TIMEOUT^_\]^
2560 002776 037 15 0 00 000004 FATAL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 39
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 CACHE ENABLE SEQ 0125
2561 002777 000000 000000 CTABLE: 0
2562 003000 000000 000003 3 ;CACHE REFILL 3
2563 003001 000000 000002 2 ;CACHE REFILL 2
2564 003002 44 03 0 00 003175 POINT 3,CR23 ;CACHE REFILL 2 & 3
2565 003003 000000 000001 1 ;CACHE REFILL 1
2566 003004 44 03 0 00 003162 POINT 3,CR13 ;CACHE REFILL 1 & 3
2567 003005 44 03 0 00 003147 POINT 3,CR12 ;CACHE REFILL 1 & 2
2568 003006 44 03 0 00 003045 POINT 3,CR123 ;CACHE REFILL 1 & 2 & 3
2569 003007 000000 000000 0 ;CACHE REFILL 0
2570 003010 44 03 0 00 003134 POINT 3,CR03 ;CACHE REFILL 0 & 3
2571 003011 44 03 0 00 003121 POINT 3,CR02 ;CACHE REFILL 0 & 2
2572 003012 44 03 0 00 003060 POINT 3,CR023 ;CACHE REFILL 0 & 2 & 3
2573 003013 44 03 0 00 003106 POINT 3,CR01 ;CACHE REFILL 0 & 1
2574 003014 44 03 0 00 003073 POINT 3,CR013 ;CACHE REFILL 0 & 1 & 3
2575 003015 44 03 0 00 003032 POINT 3,CR012 ;CACHE REFILL 0 & 1 & 2
2576 003016 44 03 0 00 003017 POINT 3,CR0123 ;CACHE REFILL 0 & 1 & 2 & 3
2577
2578 ;CACHE REFILL TABLES FOR 1, 2, 3 AND 4 CACHE COMBINATIONS.
2579 ;DIGITS AFTER 'CR' INDICATE WHICH CACHES ARE ENABLED.
2580
2581 003017 012345 673123 CR0123: 012345673123
2582 003020 212371 271127 212371271127
2583 003021 656755 670323 656755670323
2584 003022 022301 234567 022301234567
2585 003023 077700 074666 077700074666
2586 003024 446431 331113 446431331113
2587 003025 077700 070123 077700070123
2588 003026 456745 574547 456745574547
2589 003027 012201 210566 012201210566
2590 003030 056045 654564 056045654564
2591 003031 012345 670000 012345670000
2592
2593 003032 012245 612122 CR012: 012245612122
2594 003033 212211 211121 212211211121
2595 003034 656255 620626 656255620626
2596 003035 022601 264560 022601264560
2597 003036 000000 004666 000000004666
2598 003037 446451 551115 446451551115
2599 003040 044400 040125 044400040125
2600 003041 456445 504540 456445504540
2601 003042 012201 210566 012201210566
2602 003043 056045 654564 056045654564
2603 003044 012645 640000 012645640000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 40
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 CACHE ENABLE SEQ 0126
2604 003045 312315 673123 CR123: 312315673123
2605 003046 212371 271127 212371271127
2606 003047 656755 677323 656755677323
2607 003050 722331 232567 722331232567
2608 003051 377733 372666 377733372666
2609 003052 226231 331113 226231331113
2610 003053 777777 777123 777777777123
2611 003054 156715 571517 156715571517
2612 003055 512251 216566 512251216566
2613 003056 656655 655565 656655655565
2614 003057 612355 670000 612355670000
2615
2616 003060 032342 673323 CR023: 032342673323
2617 003061 232373 273327 232373273327
2618 003062 626722 670323 626722670323
2619 003063 022307 234067 022307234067
2620 003064 077700 074666 077700074666
2621 003065 446437 337773 446437337773
2622 003066 077700 070723 077700070723
2623 003067 406740 074047 406740074047
2624 003070 062206 260466 062206260466
2625 003071 046044 644464 046044644464
2626 003072 062344 670000 062344670000
2627
2628 003073 013345 173133 CR013: 013345173133
2629 003074 313371 371137 313371371137
2630 003075 151755 170373 151755170373
2631 003076 077301 734507 077301734507
2632 003077 077700 074000 077700074000
2633 003100 440431 331113 440431331113
2634 003101 077700 070173 077700070173
2635 003102 450745 574547 450745574547
2636 003103 015501 510544 015501510544
2637 003104 054045 454544 054045454544
2638 003105 015345 470000 015345470000
2639
2640 003106 015545 115155 CR01: 015545115155
2641 003107 515511 411141 515511411141
2642 003110 151455 140444 151455140444
2643 003111 044401 444500 044401444500
2644 003112 000000 004000 000000004000
2645 003113 440451 551115 440451551115
2646 003114 044400 040145 044400040145
2647 003115 450445 504540 450445504540
2648 003116 015501 510544 015501510544
2649 003117 054045 454544 054045454544
2650 003120 015445 440000 015445440000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 41
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 CACHE ENABLE SEQ 0127
2651 003121 062242 662422 CR02: 062242662422
2652 003122 242266 266626 242266266626
2653 003123 626222 620626 626222620626
2654 003124 022604 264060 022604264060
2655 003125 000000 004666 000000004666
2656 003126 446444 444444 446444444444
2657 003127 044400 040424 044400040424
2658 003130 406440 004040 406440004040
2659 003131 062206 260466 062206260466
2660 003132 046044 644464 046044644464
2661 003133 062644 640000 062644640000
2662
2663 003134 033347 773333 CR03: 033347773333
2664 003135 333373 373337 333373373337
2665 003136 777777 770373 777777770373
2666 003137 077307 734007 077307734007
2667 003140 077700 074000 077700074000
2668 003141 440437 337773 440437337773
2669 003142 077700 070773 077700070773
2670 003143 400740 074047 400740074047
2671 003144 044404 440444 044404440444
2672 003145 044044 444444 044044444444
2673 003146 044344 470000 044344470000
2674
2675 003147 512215 612122 CR12: 512215612122
2676 003150 212211 211121 212211211121
2677 003151 656255 621626 656255621626
2678 003152 122661 262566 122661262566
2679 003153 666666 662666 666666662666
2680 003154 226251 551115 226251551115
2681 003155 555555 555125 555555555125
2682 003156 156515 521512 156515521512
2683 003157 512251 216566 512251216566
2684 003160 656655 655565 656655655565
2685 003161 612655 660000 612655660000
2686
2687 003162 313315 173133 CR13: 313315173133
2688 003163 313371 371137 313371371137
2689 003164 151755 177373 151755177373
2690 003165 777331 737577 777331737577
2691 003166 377733 377777 377733377777
2692 003167 777731 331113 777731331113
2693 003170 777777 777173 777777777173
2694 003171 157715 571517 157715571517
2695 003172 515551 515555 515551515555
2696 003173 555555 355535 555555355535
2697 003174 515355 570000 515355570000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 42
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 CACHE ENABLE SEQ 0128
2698 003175 332372 673323 CR23: 332372673323
2699 003176 232373 273327 232373273327
2700 003177 626722 677323 626722677323
2701 003200 722337 232767 722337232767
2702 003201 377733 372666 377733372666
2703 003202 226237 337773 226237337773
2704 003203 777777 777723 777777777723
2705 003204 776777 777777 776777777777
2706 003205 362236 266366 362236266366
2707 003206 636666 666666 636666666666
2708 003207 662366 670000 662366670000
2709
2710 003210 7 010 30 0 00 600000 KLEXCK: CONSZ PAG,LCASLO!LCASLD
2711 003211 263 17 0 00 000000 RTN ;CACHE IS ON
2712 003212 274 17 0 00 006102 SUB P,[1,,1] ;OTHERWISE DOUBLE RETURN
2713 003213 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 43
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 CACHE ENABLE SEQ 0129
2714 ;*KL10 CACHE INVALIDATE
2715 S^;*********************************************************************^
2716
2717 003214 261 17 0 00 000000 $CINVAL:PUT 0
2718 003215 200 00 0 00 006305 MOVE 0,[DATAI CCA,0] ;CACHE INVALIDATE ALL
2719
2720 003216 261 17 0 00 000001 $CSHZ: PUT 1
2721 003217 261 17 0 00 000002 PUT 2
2722 003220 261 17 0 00 000003 PUT 3
2723 003221 261 17 0 00 000004 PUT 4
2724 003222 7 000 24 0 00 000004 CONI APR,4
2725 003223 405 04 0 00 000007 ANDI 4,7
2726 003224 660 04 0 00 040020 TRO 4,LDCASD
2727 003225 7 000 20 0 04 000000 CONO APR,(4) ;DISABLE CACHE SWEEP DONE INTERRUPT
2728
2729 003226 200 01 0 00 006306 MOVE 1,[CONSZ APR,LCASWB] ;CACHE SWEEP BUSY
2730 003227 200 02 0 00 006307 MOVE 2,[SOJN 4,1] ;WAIT TILL IT GOES AWAY
2731 003230 200 03 0 00 006310 MOVE 3,[JRST $CSHX] ;RETURN FROM AC'S
2732 003231 201 04 0 00 777777 MOVEI 4,-1 ;WAIT COUNT
2733 003232 254 00 0 00 000000 JRST 0 ;GO INVALIDATE/FLUSH CACHE
2734
2735 003233 336 00 0 00 000004 $CSHX: SKIPN 4 ;DID WE TIME OUT ?
2736 003234 254 00 0 00 002775 JRST $CSHER ;YES, REPORT ERROR
2737 003235 262 17 0 00 000004 GET 4
2738 003236 262 17 0 00 000003 GET 3
2739 003237 262 17 0 00 000002 GET 2
2740 003240 262 17 0 00 000001 GET 1
2741 003241 262 17 0 00 000000 GET 0
2742 003242 263 17 0 00 000000 RTN
2743
2744 ;*KL10 CACHE FLUSH
2745 S^;*********************************************************************^
2746
2747 003243 260 17 0 00 003210 $CFLUSH:GO KLEXCK
2748 003244 261 17 0 00 000000 PUT 0
2749 003245 200 00 0 00 006311 MOVE 0,[BLKO CCA,0] ;CACHE FLUSH
2750 003246 254 00 0 00 003216 JRST $CSHZ
2751
2752 ;*KL10 CACHE WRITE-BACK & INVALIDATE
2753 S^;*********************************************************************^
2754
2755 003247 260 17 0 00 003210 $CWRTBI:GO KLEXCK
2756 003250 261 17 0 00 000000 PUT 0
2757 003251 200 00 0 00 006312 MOVE 0,[701540,,0] ;CACHE WRITE-BACK & INVALIDATE
2758 003252 254 00 0 00 003216 JRST $CSHZ
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 44
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 MEMORY INITIALIZE SEQ 0130
2759 SUBTTL *SUBRTN* KL10 MEMORY INITIALIZE
2760
2761 S^;*********************************************************************^
2762 ;*MFICE - FIND ALL MF20 MEMORY CONTROLLERS IN THE SYSTEM AND MAKES
2763 ;* SURE THAT ALL IGNORE-CORRECTABLE-ERROR BITS ARE SET.
2764 ;* ALSO KNOCKS SOFTWARE STATUS 3 DOWN TO 2 AND CLEARS THE
2765 ;* ERROR FLAGS.
2766 S^;*********************************************************************^
2767
2768 ; DEFINITIONS.
2769
2770 000001 MFCN=1 ;CURRENT CONTROLLER NUMBER
2771 000002 MFSDT=2 ;SBUS DIAG WORD TO MEM CONSTRUCTED HERE
2772 000003 MFSDF=MFSDT+1 ;ECHO FOR ABOVE...MODIFIED & SENT OUT AGAIN
2773 700500 000000 OPDEF SBDIAG [BLKO PI,] ;S-BUS DIAG
2774
2775 ;* <START HERE> TOP OF CONTROLLER LOOP. IF CONTROLLER IS MF20 THEN
2776 ;* SET ITS SOFTWARE STATUS PROPERLY & THEN DO BITSUB RAM LOOP, ELSE
2777 ;* JUST GO ON TO NEXT CONTROLLER.
2778
2779 003253 201 04 00 00 000037 MFICE: MOVEI MFCN,37 ;INITIAL CONTROLLER #
2780
2781 003254 201 02 0 00 000001 MFCNLP: MOVEI MFSDT,1 ;SET UP FUNCTION 1
2782 003255 137 01 0 00 006313 DPB MFCN,[POINT 5,MFSDT,4] ;CONTROLLER # TOO
2783 003256 700 12 0 00 000002 SBDIAG MFSDT ;DO THE FUNCTION 1
2784 003257 435 02 0 03 000200 IORI MFSDT,200(MFSDF);EXISTING SFTWR STAT TO F1 W/LD EN
2785 003260 242 03 0 00 777750 LSH MFSDF,-^D24 ;POSITION CONTROLLER TYPE #
2786 003261 302 03 0 00 000005 CAIE MFSDF,5 ;SKIP IF IS MF20
2787 003262 254 00 0 00 003300 JRST MFNXTC ;ELSE GO ON TO NEXT CONTROLLER
2788 003263 602 02 0 00 001000 TRNE MFSDT,1000 ;SKIP IF CONTR STAT LESS THAN 2
2789 003264 620 02 0 00 000400 TRZ MFSDT,400 ;ELSE MAKE SURE IT IS NOT 3
2790 003265 700 12 0 00 000002 SBDIAG MFSDT ;SET PROPER SFTWR STATUS
2791
2792 ;* BITSUB RAM LOOP. READ EACH RAM LOC & CHANGE STATE OF ICE
2793 ;* BIT. IF WAS OFF THEN SET IT ELSE GO ON TO NEXT LOCATION.
2794
2795 003266 541 02 0 00 060007 HRRI MFSDT,60007 ;INIT F7
2796 003267 541 02 0 02 777400 MFBSRL: HRRI MFSDT,-400(MFSDT) ;NEXT RAM LOC
2797 003270 700 12 0 00 000002 SBDIAG MFSDT ;READ RAM LOC
2798 003271 404 03 0 00 006314 AND MFSDF,[3770,,0] ;CLEAR JUNK
2799 003272 434 03 0 00 000002 IOR MFSDF,MFSDT ;CONTR #, LOC, & FUNC TO ECHO
2800 003273 641 03 0 00 000034 TLC MFSDF,34 ;COMP ICE, PAR. SET LD EN BIT
2801 003274 603 03 0 00 000020 TLNE MFSDF,20 ;SKIP IF ICE BIT WAS ALREADY ON
2802 003275 700 12 0 00 000003 SBDIAG MFSDF ;ELSE TURN IT ON FOR THIS LOC
2803 003276 602 02 0 00 077400 TRNE MFSDT,77400 ;SKIP IF ALL LOCS DONE
2804 003277 254 00 0 00 003267 JRST MFBSRL ;ELSE LOOP TILL THEY ARE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 45
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 MEMORY INITIALIZE SEQ 0131
2805 ;* CREATE THE SBDIAG FCN 0 WORD TO CLEAR THE ERROR FLAGS,
2806 ;* AND THEN GO CLEAR THEM.
2807
2808 003300 515 02 0 00 010000 MFNXTC: HRLZI MFSDT,10000 ;CREATE A FUNCTION 0 CLEAR
2809 003301 137 01 0 00 006313 DPB MFCN,[POINT 5,MFSDT,4] ;CONTR # TOO
2810 003302 700 12 0 00 000002 SBDIAG MFSDT ;DO THE CLEAR
2811
2812 003303 365 01 0 00 003254 SOJGE MFCN,MFCNLP ;SEL NXT CONTR UNTIL ALL DONE
2813 003304 263 17 0 00 000000 RTN ; <ALL DONE>
2814
2815 S^;*********************************************************************^
2816 ;*MREPORT - REPORT MEMORY CONTROLLERS WITH ERRORS
2817 S^;*********************************************************************^
2818
2819 003305 261 17 0 00 000001 MREPORT:PUT 1
2820 PMSG <^MEMORY CONTROLLERS^>^
2821 003306 037 02 0 00 006315 PSIXM [SIXBIT\^MEMORY CONTROLLERS^_\]^
2822
2823 003307 201 01 0 00 000037 MOVEI 1,37
2824 003310 200 00 0 01 006543 MOVE AC0,SBDTBL(1) ;GET CONTROLLER FUNCTION 0
2825 003311 603 00 0 00 770000 TLNE AC0,770000 ;ANY ERRORS SET ?
2826 JRST [PNTHW
2827 PCRL
2828 003312 254 00 0 00 006321 JRST .+1] ;YES, PRINT THE FUNCTION 0
2829 003313 365 01 0 00 003310 SOJGE 1,.-3
2830 003314 262 17 0 00 000001 GET 1
2831 003315 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 46
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* KL10 MEMORY INITIALIZE SEQ 0132
2832 S^;*********************************************************************^
2833 ;*MEMSAV - DETERMINE MEMORY CONTROLLERS ON SYSTEM AND SAVE THE
2834 ;* ERROR STATUS FROM THEM.
2835 S^;*********************************************************************^
2836
2837 003316 261 17 0 00 000001 MEMSAV: PUT MFCN
2838 003317 261 17 0 00 000002 PUT MFSDT
2839 003320 261 17 0 00 000003 PUT MFSDF
2840 003321 201 01 0 00 000037 MOVEI MFCN,37 ;INIT CONTROLLER #
2841
2842 003322 201 02 0 00 000001 MEMSLP: MOVEI MFSDT,1 ;SETUP FUNCTION 1
2843 003323 137 01 0 00 006313 DPB MFCN,[POINT 5,MFSDT,4]
2844 003324 700 12 0 00 000002 SBDIAG MFSDT ;READ CONTROLLER TYPE
2845
2846 003325 135 03 0 00 006324 LDB MFSDF,[POINT 5,MFSDF,11]
2847 003326 322 03 0 00 003332 JUMPE MFSDF,.+4 ;NO CONTROLLER TYPE RETURNED
2848
2849 003327 400 02 0 00 000000 SETZ MFSDT, ;HAVE A CONTROLLER, READ ERROR STATUS
2850 003330 137 01 0 00 006313 DPB MFCN,[POINT 5,MFSDT,4]
2851 003331 700 12 0 00 000002 SBDIAG MFSDT
2852 003332 202 03 0 01 006543 MOVEM MFSDF,SBDTBL(MFCN) ;SAVE ERROR STATUS IN TABLE
2853
2854 003333 515 02 0 00 010000 HRLZI MFSDT,10000 ;CREATE A FUNCTION 0 CLEAR
2855 003334 137 01 0 00 006313 DPB MFCN,[POINT 5,MFSDT,4]
2856 003335 700 12 0 00 000002 SBDIAG MFSDT ;CLEAR THE CONTROLLER
2857
2858 003336 365 01 0 00 003322 SOJGE MFCN,MEMSLP ;DO ALL CONTROLLERS
2859 003337 262 17 0 00 000003 GET MFSDF
2860 003340 262 17 0 00 000002 GET MFSDT
2861 003341 262 17 0 00 000001 GET MFCN
2862 003342 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 48
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* MEMORY MAPPING ROUTINES SEQ 0133
2863 SUBTTL *SUBRTN* MEMORY MAPPING ROUTINES
2864
2865 S^;*********************************************************************^
2866 ;*THESE ROUTINES PERFORM CORE MAPPING AND PRINTING AS WELL AS MEMORY
2867 ;*ZEROING AND ADDRESS TRANSLATION FOR PAGING OR DIRECT ADDRESS MODES
2868 ;* $MPCNK (MAPCNK) ACTUAL MEMORY CHUNK MAPPER
2869 ;* $MPSET (MAPSET) SETS UP PAGE MAP FOR KL10
2870 ;* $MSEG (MEMSEG) SET UP SEGMENTS FROM CHUNKS IN PAGE MAP
2871 ;* (MAPNEW=-1 FOR PAGED SEGMENTS UP TO 4096K)
2872 ;* (MAPNEW= 0 FOR DIRECT ADDRESSING UP TO 256K)
2873 ;* $MZRO (MEMZRO) ZERO'S THE MAPPED MEMORY
2874 ;* $MPADR (MAPADR) VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
2875 S^;*********************************************************************^
2876
2877 ;*EXEC MODE MEMORY MAPPING
2878 S^;*********************************************************************^
2879
2880 003343 402 00 0 00 030146 $MEMMP: SETZM MEMSIZ ;CLEAR MAP TABLE START ADDR
2881 003344 200 00 0 00 006325 MOVE [MEMSIZ,,MEMSIZ+1]
2882 003345 251 00 0 00 030216 BLT MEMSIZ+^D40 ;CLEAR MEMSIZ TABLE
2883
2884 003346 336 00 0 00 030042 $MEEX1: SKIPN MONFLG ;SPECIAL USER MODE ?
2885 003347 254 00 0 00 003411 JRST $MPOL1 ;YES, USE UPMP & 256K
2886 003350 201 00 0 00 337777 MOVEI 0,337777 ;NO
2887 003351 200 01 0 00 030046 MOVE 1,CONSW ;SETUP SWITCHES
2888 003352 336 00 0 00 030511 SKIPN PVPAGI ;PREVENT PAGE INHIBIT ?
2889 003353 607 01 0 00 000100 TLNN 1,INHPAG ;PAGING INHIBITED ?
2890 003354 254 00 0 00 003356 JRST $MEPAG ;NO ...USE PAGING
2891 003355 254 00 0 00 003412 JRST $MPOL1+1 ;YES, USE UNPAGED MEM, 0-112K
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 49
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* MEMORY MAPPING ROUTINES SEQ 0134
2892 003356 205 01 0 00 777760 $MEPAG: MOVSI 1,-20 ;SETUP EXEC-PER-PROCESS MAP
2893 003357 200 00 0 00 006326 MOVE [540336,,540337]
2894 003360 336 00 0 00 030506 SKIPN CSHFLG
2895 003361 670 00 0 00 006051 TDO [020000,,020000]
2896 003362 270 00 0 00 006052 ADD [2,,2] ;SO 112K-128K POINTS TO ITSELF
2897 003363 202 00 0 01 000400 MOVEM 400(1) ;VIRTUAL = PHYSICAL
2898 003364 253 01 0 00 003362 AOBJN 1,.-2
2899 003365 205 00 0 00 255000 MOVSI (JFCL) ;SETUP ARITHMETIC TRAP
2900 003366 202 00 0 00 000421 MOVEM 421 ;JUST IN CASE
2901 003367 336 00 0 00 030143 SKIPN MAPNEW ;"MAPNEW" = 0 ?
2902 003370 254 00 0 00 003401 JRST $MPOLD ;YES ...USE 256K MAPPING
2903
2904 S^;*********************************************************************^
2905 ;*MEMORY MAPPING CONTROL
2906 ;*MAP 4096K, 256K, 112K OR 256K SPECIAL USER
2907 S^;*********************************************************************^
2908
2909 003371 200 01 0 00 000121 $MPNEW: MOVE 1,JOBFF ;USE FIRST FREE UP TEMP
2910 003372 201 16 0 00 000037 MOVEI 16,^D31 ;4096K IS 32 128K CHUNKS
2911 003373 200 00 0 00 000016 MOVE 0,16
2912 003374 260 17 0 00 003553 GO $MPSET ;SET PAGE MAP FOR 128K CHUNK
2913 003375 200 00 0 00 006327 MOVE [400000,,777777] ;LOAD AC0 WITH PAGABLE ADDR BOUNDARIES
2914 003376 260 17 0 00 003453 GO $MPCNK ;MAP 128K-256K VIRTUAL
2915 003377 365 16 0 00 003373 SOJGE 16,.-4 ;COMPLETED 4096K ?
2916 003400 254 00 0 00 003416 JRST $MPCMB ;YES, COMBINE POINTERS
2917
2918 003401 205 01 0 00 777600 $MPOLD: MOVSI 1,-200 ;128K-256K VIRTUAL POINTS
2919 003402 200 00 0 00 006330 MOVE [540376,,540377] ;TO PHYSICAL 128K-256K
2920 003403 336 00 0 00 030507 SKIPN CSHMEM
2921 003404 670 00 0 00 006051 TDO [020000,,020000]
2922 003405 270 00 0 00 006052 ADD [2,,2] ;AND MEMORY ENDS AT 256K
2923 003406 202 00 0 01 000200 MOVEM 200(1)
2924 003407 253 01 0 00 003405 AOBJN 1,.-2
2925 003410 260 17 0 00 003467 GO KLPAG ;SET TRAP ENABLE
2926 003411 201 00 0 00 777777 $MPOL1: MOVEI 0,777777 ;MAP 0-256K
2927 003412 200 01 0 00 000121 MOVE 1,JOBFF ;USE FIRST FREE UP TEMP
2928 003413 402 00 0 00 030143 SETZM MAPNEW ;DIRECT ADDRESSING ONLY
2929 003414 260 17 0 00 003453 GO $MPCNK ;MAP CHUNK
2930 003415 254 00 0 00 003416 JRST $MPCMB ;COMBINE POINTERS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 50
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* MEMORY MAPPING ROUTINES SEQ 0135
2931 S^;*********************************************************************^
2932 ;*COMBINE EXISTENT CHUNKS FROM MAPCNK
2933 ;*PUT POINTERS IN MEMSIZ TABLE
2934 S^;*********************************************************************^
2935
2936 003416 402 00 0 00 000002 $MPCMB: SETZM 2 ;SET MEMSIZ TABLE POINTER (AC2) @ 0
2937 003417 275 01 0 00 000001 SUBI 1,1 ;DECREMENT TEMP POINTER
2938 003420 200 00 0 01 000000 MOVE AC0,(1) ;GET LOWEST ADR OF LOWEST CHUNK
2939 003421 302 00 0 00 000000 CAIE 0,0 ;SHOULD BE 0 (THATS WHERE MEMORY STARTS)
2940 003422 037 15 0 00 000004 FATAL ;NOT 0
2941 003423 202 00 0 02 030146 MOVEM MEMSIZ(2) ;PUT IN MEMSIZ TABLE (AC2 IS PTR)
2942 003424 271 02 0 00 000001 ADDI 2,1 ;INCR THE TABLE POINTER
2943
2944 003425 275 01 0 00 000001 $MPCM1: SUBI 1,1 ;DECR TEMP POINTER
2945 003426 307 01 1 00 000121 CAIG 1,@JOBFF ;COMBINED ALL CHUNK POINTERS ?
2946 ;(TEMP PTR > JOBFF)
2947 003427 254 00 0 00 003444 JRST $MPCM2 ;YES )
2948 003430 200 00 0 01 000000 MOVE AC0,(1) ;NO ...GET CHUNK END ADDRESS
2949 003431 200 03 0 01 777777 MOVE 3,-1(1) ;GET NEXT CHUNK START ADR IN AC3
2950 003432 200 04 0 00 000000 MOVE 4,0 ;PUT END ADDR IN AC4
2951 003433 271 04 0 00 000001 ADDI 4,1 ;INCR THE END ADDR
2952 003434 316 03 0 00 000004 CAMN 3,4 ;IF END & START NOW EQUAL
2953 003435 364 01 0 00 003425 SOJA 1,$MPCM1 ;IT IS CONT. CHUNK - DO NEXT ONE
2954
2955 003436 202 00 0 02 030146 $MPCM3: MOVEM 0,MEMSIZ(2) ;IF NOT =, PUT END ADR IN MEMSIZ TABLE
2956 003437 301 02 0 00 000046 CAIL 2,^D38 ;HAVE WE FILLED MEMSIZ TABLE ?
2957 003440 254 00 0 00 003450 JRST $MPCMX ;YES ...IGNORE REST OF CHUNKS )
2958 003441 271 02 0 00 000001 ADDI 2,1 ;NO ...INCR MEMSIZ TABLE PTR (AC2)
2959 003442 202 03 0 02 030146 MOVEM 3,MEMSIZ(2) ;AND NEXT CHUNK START ADR
2960 003443 364 01 0 00 003424 SOJA 1,$MPCM1-1 ;DO NEXT ONE
2961
2962 003444 200 00 0 01 000000 $MPCM2: MOVE (1) ;GET LAST ADDR OF LAST CHUNK
2963 003445 202 00 0 02 030146 MOVEM MEMSIZ(2) ;SAVE LAST ADR OF LAST CHUNK
2964 003446 476 00 0 02 030147 SETOM MEMSIZ+1(2) ;FLAG END OF MEMSIZ TABLE WITH 1'S
2965 003447 254 00 0 00 004057 JRST $PMAP ;PRINT THE MAP
2966
2967 003450 476 00 0 02 030147 $MPCMX: SETOM MEMSIZ+1(2) ;FLAG END OF MEMSIZ TABLE WITH 1'S
2968
2969 PMSGF <^TOO MANY MAP SEGMENTS^>^
2970 003451 037 04 0 00 006331 PSIXMF [SIXBIT\^TOO MANY MAP SEGMENTS^_\]^
2971 003452 254 00 0 00 004057 JRST $PMAP ;PRINT THE MAP
2972
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 51
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER SEQ 0136
2973 SUBTTL *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER
2974
2975 S^;*********************************************************************^
2976 ;*STARTS AT HIGHEST POSSIBLE ADDRESS AND MAPS (ASSUMING NON-X-MEM)
2977 ;*UNTIL THE NXM BIT GOES AWAY - THEN MAPS EXISTENT MEMORY
2978 ;*IF NXM BIT COMES BACK IT SWITCHES BACK TO NON-X-MEM MAPPING AND
2979 ;*MAPS THE HOLE IN EXISTENT MEMORY
2980 ;*AC0 HAS BEEN PREVIOUSLY SET UP BY $MPOLD/$MPNEW WITH ADDR LIMITS
2981 S^;*********************************************************************^
2982
2983 003453 202 02 0 00 006641 $MPCNK: MOVEM 2,$ACMP1# ;SAVE AC2 - AC4
2984 003454 202 03 0 00 006642 MOVEM 3,$ACMP2#
2985 003455 202 04 0 00 006643 MOVEM 4,$ACMP3#
2986
2987 003456 550 02 0 00 000000 HRRZ 2,0 ;LOAD ADDRESSER WITH HIGHEST POSS ADDR
2988 003457 554 03 0 00 000000 HLRZ 3,0 ;LOAD WITH LOWEST POSS ADDR
2989 003460 7 004 24 0 00 006670 CONI PI,$MSPI# ;SAVE THE PI STATUS
2990 003461 7 004 20 0 00 000400 CONO PI,PIOFF ;TURN OFF INTERRUPTS
2991 003462 7 000 24 0 00 006667 CONI APR,$MSAPR# ;SAVE PROCESSOR STATUS
2992 003463 317 02 0 00 000003 CAMG 2,3 ;END GREATER THAN START ?
2993 003464 037 15 0 00 000004 FATAL ;NO
2994
2995 003465 201 04 0 00 022000 $MPCN1: MOVEI 4,LCNXER ;SETUP KL10 NXM BIT
2996 003466 254 00 0 00 003475 JRST $MPNXM ;CONO/CONI BIT(S) SET UP - GO MAP
2997
2998 003467 261 17 0 00 000000 KLPAG: PUT 0
2999 003470 7 010 24 0 00 000000 CONI PAG,0 ;GET PRESENT STATE
3000 003471 660 00 0 00 020000 TRO 0,LTRPEN ;MAKE SURE TRAP ENABLE SET
3001 003472 7 010 20 1 00 000000 CONO PAG,@0 ;PAGE RESET
3002 003473 262 17 0 00 000000 GET 0
3003 003474 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 52
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER SEQ 0137
3004 ;*NON-X-MEMORY SEGMENT MAPPER
3005 S^;*********************************************************************^
3006
3007 003475 7 000 20 0 04 000000 $MPNXM: CONO APR,(4) ;CLEAR NXM BIT, IF SET
3008 003476 310 00 0 02 000000 CAM (2) ;ADDRESS THE MEMORY
3009 003477 310 00 0 02 777777 CAM -1(2) ;INTERLEAVE MAP
3010 003500 310 00 0 02 777776 CAM -2(2) ;IF NON-X-MEM FROM ANY 4-WAY INTERLEAVE
3011 003501 310 00 0 02 777775 CAM -3(2) ;MARK ALL NON-X-MEM
3012 003502 7 000 34 0 04 000000 CONSO APR,(4) ;NON-X-MEMORY BIT SET ?
3013 003503 254 00 0 00 003536 JRST $M5 ;NO ..CONV VIRT & REMAP EXISTENT
3014
3015 003504 7 000 20 0 04 000000 $M2: CONO APR,(4) ;YES ...CLEAR THE BIT
3016 003505 275 02 0 00 020000 SUBI 2,20000 ;STEP DOWN 8K
3017 003506 301 02 0 03 000000 CAIL 2,(3) ;MEMORY CHUNK DONE ? (< LOWEST POSS)
3018 003507 254 00 0 00 003475 JRST $MPNXM ;NO ...MAP THE NEXT CHUNK
3019
3020
3021 ;*RESTORE OVERALL SYSTEM STATUS AFTER MAPPING
3022 S^;*********************************************************************^
3023
3024 003510 7 000 20 0 00 127740 $MPRST: CONO APR,LAPRAL-20 ;RESET KL APR STATUS
3025 003511 550 03 0 00 006667 HRRZ 3,$MSAPR
3026 003512 405 03 0 00 000007 ANDI 3,7
3027 003513 7 000 20 0 03 000000 CONO APR,(3) ;REASSIGN APR CHANNEL
3028 003514 200 03 0 00 006670 $MPRPI: MOVE 3,$MSPI ;GET SAVED PI STATUS
3029 003515 602 03 0 00 000200 TRNE 3,PION ;IF INTERRUPTS WERE ON
3030 003516 7 004 20 0 00 000200 CONO PI,PION ;TURN BACK ON
3031 003517 200 02 0 00 006641 MOVE 2,$ACMP1 ;RESTORE AC'S
3032 003520 200 03 0 00 006642 MOVE 3,$ACMP2
3033 003521 200 04 0 00 006643 MOVE 4,$ACMP3
3034 003522 263 17 0 00 000000 RTN ;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 53
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MAPCNK" MEMORY CHUNK MAPPER SEQ 0138
3035 ;*EXISTANT MEMORY MAPPER
3036 S^;*********************************************************************^
3037 003523 310 00 0 02 000000 $MPEXM: CAM (2) ;ADDRESS THE MEMORY
3038 003524 310 00 0 02 777777 CAM -1(2) ;INTERLEAVE THE MAP
3039 003525 310 00 0 02 777776 CAM -2(2)
3040 003526 310 00 0 02 777775 CAM -3(2)
3041 003527 201 04 0 00 002000 MOVEI 4,LNXMER ;KL10 NXM BIT
3042 003530 7 000 30 0 04 000000 CONSZ APR,(4) ;EXISTANT ?
3043 003531 344 02 0 00 003540 AOJA 2,$M6 ;NO
3044
3045 003532 275 02 0 00 020000 $M4: SUBI 2,20000 ;YES, STEP DOWN 8K
3046 003533 301 02 0 03 000000 CAIL 2,(3) ;BELOW START ADDRESS ?
3047 003534 254 00 0 00 003523 JRST $MPEXM ;NO ...MAP NEXT CHUNK
3048 003535 344 02 0 00 003544 AOJA 2,$M7 ;YES, THIS CHUNK DONE
3049
3050 S^;*********************************************************************^
3051 ;*SAVE POINTERS TO TOP AND BOTTOM OF EXISTANT CHUNKS
3052 ;*TEMPORY STORAGE POINTER IN AC1
3053 ;*VIRTUAL ADDRESS IN AC0
3054 ;*"MAPADR" CONVERTS TO ACTUAL PHYSICAL ADDRESS
3055 S^;*********************************************************************^
3056
3057 003536 260 17 0 00 003546 $M5: GO $MPCXX
3058 003537 344 01 0 00 003523 AOJA 1,$MPEXM ;GO MAP EXISTANT CHUNK
3059
3060 003540 260 17 0 00 003546 $M6: GO $MPCXX
3061 003541 271 01 0 00 000001 ADDI 1,1 ;INCREMENT ADDR
3062 003542 260 17 0 00 003247 GO $CWRTBI ;CACHE WRITE-BACK & INVALIDATE
3063 003543 364 02 0 00 003465 SOJA 2,$MPCN1 ;GO MAP NON-X CHUNK
3064
3065 003544 260 17 0 00 003546 $M7: GO $MPCXX
3066 003545 344 01 0 00 003510 AOJA 1,$MPRST ;RESTORE AC'S AND RETURN )
3067
3068 003546 200 00 0 00 000002 $MPCXX: MOVE 0,2
3069 003547 260 17 0 00 004036 GO $MPADR ;CONVERT VIRTUAL TO PHYSICAL
3070 003550 037 15 0 00 000004 FATAL ;CAN'T DO IT
3071 003551 202 00 0 01 000000 MOVEM (1) ;SAVE IN TEMP
3072 003552 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 54
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MAPSET" SETUP KL10 PAGE MAP SEQ 0139
3073 SUBTTL *SUBRTN* "MAPSET" SETUP KL10 PAGE MAP
3074
3075 S^;*********************************************************************^
3076 ;*FOR VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
3077 ;*ARGUMENTS PASSED IN AC0:
3078 ;* NEG - CLEAR PAGE MAP
3079 ;* 0-37 - MAP CORRESPONDING 128K SEGMENT
3080 S^;*********************************************************************^
3081
3082 003553 332 00 0 00 030037 $MPSET: SKIPE USER
3083 003554 263 17 0 00 000000 RTN ;USER MODE
3084
3085 003555 202 01 0 00 006644 $MPSE1: MOVEM 1,$ACMP4# ;SAVE AC1
3086 003556 325 00 0 00 003565 JUMPGE 0,$MPSE2 ;ARG NEG ?
3087 003557 402 00 0 00 000200 SETZM 200 ;YES, CLEAR PAGE MAP
3088 003560 200 00 0 00 006335 MOVE 0,[200,,201]
3089 003561 251 00 0 00 000377 BLT 0,377
3090
3091 003562 260 17 0 00 003467 $MPSE3: GO KLPAG ;SET TRAP ENABLE
3092 003563 200 01 0 00 006644 MOVE 1,$ACMP4 ;RESTORE AC1
3093 003564 263 17 0 00 000000 RTN ;EXIT
3094
3095 003565 301 00 0 00 000040 $MPSE2: CAIL 0,40 ;ARG 0-37 ?
3096 003566 037 15 0 00 000004 FATAL ;NO, FATAL ERROR
3097 003567 221 00 0 00 000400 IMULI 0,400 ;COMPUTE PHYSICAL RELOCATION
3098 003570 660 00 0 00 540000 TRO 0,540000 ;SET A,W,S BITS
3099 003571 336 00 0 00 030507 SKIPN CSHMEM ;MEM SEG'S CACHED ?
3100 003572 660 00 0 00 020000 TRO 0,020000 ;YES
3101 003573 504 00 0 00 000000 HRL 0,0 ;MAKE BOTH HALVES SAME
3102 003574 271 00 0 00 000001 ADDI 0,1 ;RIGHT HALF ODD PAGE
3103 003575 205 01 0 00 777600 MOVSI 1,-200 ;128K IN PAGE MAP
3104 003576 202 00 0 01 000200 MOVEM 200(1) ;PUT RELOCATION DATA IN PAGE MAP
3105 003577 270 00 0 00 006052 ADD [2,,2] ;BUMP FOR NEXT ENTRY
3106 003600 253 01 0 00 003576 AOBJN 1,.-2
3107 003601 254 00 0 00 003562 JRST $MPSE3 ;CLEAR PAGING MEMORY & EXIT )
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 55
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ## SEQ 0140
3108 SUBTTL *SUBRTN* "MEMSEG" ## MAPNEW = -1 ##
3109
3110 S^;*********************************************************************^
3111 ;*SETS UP TO 128K SEGMENT IN PAGE MAP
3112 ;*ARGUMENTS: 0-37 - MAP CORRESPONDING 128K SEGMENT
3113 ;* GT 37 - MAP USING PHYSICAL ADDRESS
3114 ;*RETURNED IN AC0:
3115 ; 0 - NO MEMORY AVAILABLE
3116 ;* HIGHEST VIRTUAL ADDRESS
3117 ;* BIT 0 SET IF NON-CONSECUTIVE CORE WAS COMBINED
3118 ;*PAGE MAP SET UP SO VIRTUAL ADDRESS 400000 AND UP POINTS
3119 ;*TO MEMORY REQUESTED
3120 ;* RETURNS +2
3121 S^;*********************************************************************^
3122
3123 003602 202 01 0 00 006645 $MSEG: MOVEM 1,$ACMP5# ;AC1 = TEMP STORAGE POINTER
3124 003603 202 02 0 00 006646 MOVEM 2,$ACMP6# ;AC2 = MAP STORAGE POINTER
3125 003604 202 03 0 00 006647 MOVEM 3,$ACMP7# ;AC3 = CHUNK START ADR
3126 003605 202 04 0 00 006650 MOVEM 4,$ACMP8# ;AC4 = CHUNK END ADR
3127 003606 202 05 0 00 006651 MOVEM 5,$ACMP9# ;AC5 = PAGE COUNTER
3128 003607 403 05 0 00 006663 SETZB 5,$MNCON# ;SAVED AC1 - AC5
3129 003610 603 00 0 00 777760 TLNE 0,777760 ;VALID ARGUMENT ?
3130 003611 037 15 0 00 000004 FATAL ;NO
3131 003612 336 00 0 00 030143 SKIPN MAPNEW
3132 003613 254 00 0 00 003742 JRST $MSKA ;DIRECT ADDRESSING ONLY
3133 003614 200 02 0 00 006336 MOVE 2,[POINT 18,200]
3134 003615 301 00 0 00 000040 CAIL 0,40
3135 003616 254 00 0 00 003702 JRST $MSEGP ;ARG IS FOR PHYSICAL CORE
3136 003617 254 00 0 00 003620 JRST $MSEGV ;VIRTUAL CORE
3137
3138 ;*SETUP MAP FOR REQUESTED 128K SEGMENT IN VIRTUAL CORE
3139 S^;*********************************************************************^
3140
3141 003620 200 01 0 00 030145 $MSEGV: MOVE 1,MEMLOW
3142 003621 260 17 0 00 003553 GO $MPSET ;SETUP MAP FOR REQ SEGMENT
3143 003622 200 00 0 00 006327 MOVE [400000,,777777]
3144 003623 260 17 0 00 003453 GO $MPCNK ;MAP THAT SEGMENT
3145
3146 003624 307 01 1 00 030145 $MSGV1: CAIG 1,@MEMLOW
3147 003625 254 00 0 00 003667 JRST $MSEG3 ;NO CORE IN THIS 128K SEGMENT
3148 ;EXIT
3149 003626 402 00 0 00 000200 SETZM 200 ;CLEAR PAGE MAP
3150 003627 200 00 0 00 006335 MOVE [200,,201]
3151 003630 251 00 0 00 000377 BLT 0,377
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 56
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ## SEQ 0141
3152 003631 275 01 0 00 000001 $MSGV2: SUBI 1,1
3153 003632 200 03 0 01 000000 MOVE 3,(1) ;GET CHUNK START ADDRESS
3154 003633 326 03 0 00 003635 JUMPN 3,.+2 ;IF CHUNK ADR IS ZERO
3155 003634 200 03 0 00 030145 MOVE 3,MEMLOW ;USE EVEN BREAK ABOVE JOBFF
3156 003635 275 01 0 00 000001 SUBI 1,1
3157 003636 200 04 0 01 000000 MOVE 4,(1) ;GET CHUNK END ADDRESS
3158 003637 317 04 0 00 000003 CAMG 4,3 ;END GREATER THAN START ?
3159 003640 037 15 0 00 000004 FATAL ;NO ...ABORT
3160 003641 274 04 0 00 000003 SUB 4,3 ;YES ..END - START = SIZE OF CHUNK
3161 003642 271 04 0 00 000001 ADDI 4,1
3162 003643 602 04 0 00 000777 TRNE 4,777 ;CHUNK SHOULD BE EVEN # OF PAGES
3163 003644 037 15 0 00 000004 FATAL ;NO ...ABORT
3164 003645 242 04 0 00 777767 LSH 4,-^D9 ;COMPUTE # OF PAGES
3165 003646 270 05 0 00 000004 ADD 5,4 ;KEEP COUNT
3166 003647 242 03 0 00 777767 LSH 3,-^D9
3167 003650 660 03 0 00 540000 TRO 3,540000 ;CREATE RELOCATION DATA
3168 003651 336 00 0 00 030507 SKIPN CSHMEM ;MEM SEG'S CACHED ?
3169 003652 660 03 0 00 020000 TRO 3,020000 ;YES
3170 003653 361 04 0 00 003657 SOJL 4,$MSGV3
3171 003654 136 03 0 00 000002 IDPB 3,2 ;PUT IN PAGE MAP
3172 003655 271 03 0 00 000001 ADDI 3,1 ;INCREMENT RELOCATION DATA
3173 003656 254 00 0 00 003653 JRST .-3
3174
3175 003657 306 01 1 00 030145 $MSGV3: CAIN 1,@MEMLOW ;ANY MORE CHUNKS IN THIS 128K ?
3176 003660 254 00 0 00 003663 JRST $MSEG2 ;NO ...EXIT)
3177 003661 476 00 0 00 006663 SETOM $MNCON ;YES, NON-CONSECUTIVE CHUNKS
3178 003662 254 00 0 00 003631 JRST $MSGV2 ;PACK INTO VIRTUAL
3179
3180 ;*EXIT FROM MEMSEG ROUTINE
3181 S^;*********************************************************************^
3182
3183 003663 221 05 0 00 001000 $MSEG2: IMULI 5,1000 ;CONVERT # OF PAGES INTO
3184 003664 271 05 0 00 377777 ADDI 5,377777 ;HIGHEST VIRTUAL ADDRESS
3185 003665 332 00 0 00 006663 SKIPE $MNCON ;WERE CHUNKS COMBINED ?
3186 003666 661 05 0 00 400000 TLO 5,400000 ;YES, SET BIT 0 AS FLAG
3187
3188 003667 200 00 0 00 000005 $MSEG3: MOVE 0,5 ;AC0 = RESULTS (SEE TITLE BLOCK)
3189 003670 200 01 0 00 006645 MOVE 1,$ACMP5 ;RESTORE AC'S
3190 003671 200 02 0 00 006646 MOVE 2,$ACMP6
3191 003672 200 03 0 00 006647 MOVE 3,$ACMP7
3192 003673 200 04 0 00 006650 MOVE 4,$ACMP8
3193 003674 200 05 0 00 006651 MOVE 5,$ACMP9
3194 003675 336 00 0 00 030143 SKIPN MAPNEW ;4096K MAPPING (BIG TROUBLE IF NOT)
3195 003676 263 17 0 00 000000 RTN ;NO ...ERROR RETURN +1)
3196
3197 003677 260 17 0 00 003467 $MSEG4: GO KLPAG ;SET TRAP ENABLE
3198 003700 350 00 0 17 000000 AOS (P) ;RETURN +2
3199 003701 263 17 0 00 000000 RTN ;RETURN +1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 57
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MEMSEG" ## MAPNEW = -1 ## SEQ 0142
3200 ;*PHYSICAL CORE ASSIGNMENT
3201 S^;*********************************************************************^
3202
3203 003702 200 01 0 00 000000 $MSEGP: MOVE 1,0
3204 003703 620 01 0 00 000777 TRZ 1,777 ;MAKE PHYSICAL EVEN PAGE
3205 003704 400 04 0 00 000000 SETZ 4,
3206 003705 200 00 0 04 030146 MOVE MEMSIZ(4) ;GET START ADDRESS
3207 003706 321 00 0 00 003667 JUMPL $MSEG3 ;IF END OF TABLE, NO CORE ..EXIT
3208 003707 315 01 0 00 000000 CAMGE 1,0 ;PHY = OR GT START ?
3209 003710 254 00 0 00 003667 JRST $MSEG3 ;NO, NO CORE ...EXIT
3210 003711 200 00 0 04 030147 MOVE MEMSIZ+1(4) ;GET END ADDRESS
3211 003712 271 04 0 00 000002 ADDI 4,2
3212 003713 311 01 0 00 000000 CAML 1,0 ;PHY GT END ?
3213 003714 254 00 0 00 003705 JRST .-7 ;YES, TRY NEXT CHUNK
3214
3215 003715 336 00 0 00 030143 SKIPN MAPNEW
3216 003716 254 00 0 00 003766 JRST $MSKAP+3 ;DIRECT ADDRESSING
3217 003717 274 00 0 00 000001 SUB 0,1 ;COMPUTE # OF PAGES
3218 003720 271 00 0 00 000001 ADDI 0,1
3219 003721 242 00 0 00 777767 LSH 0,-^D9
3220 003722 303 00 0 00 000400 CAILE 0,^D256 ;MORE THAN 128K WORTH ?
3221 003723 201 00 0 00 000400 MOVEI 0,^D256 ;YES, LIMIT AT 128K
3222 003724 202 00 0 00 000003 MOVEM 0,3 ;AC3 = MAP FILL COUNTER
3223 003725 202 00 0 00 000005 MOVEM 0,5 ;KEEP COUNT OF # OF PAGES
3224 003726 402 00 0 00 000200 SETZM 200 ;CLEAR PAGE MAP
3225 003727 200 00 0 00 006335 MOVE [200,,201]
3226 003730 251 00 0 00 000377 BLT 0,377
3227 003731 200 00 0 00 000001 MOVE 0,1
3228 003732 242 00 0 00 777767 LSH 0,-^D9 ;CREATE RELOCATION DATA
3229 003733 660 00 0 00 540000 TRO 0,540000
3230 003734 336 00 0 00 030507 SKIPN CSHMEM ;MEM SEG'S CACHED ?
3231 003735 660 00 0 00 020000 TRO 0,020000 ;YES
3232 003736 361 03 0 00 003663 SOJL 3,$MSEG2 ;EXIT
3233 003737 136 00 0 00 000002 IDPB 0,2 ;PUT DATA IN PAGE MAP
3234 003740 271 00 0 00 000001 ADDI 0,1 ;INCREMENT RELOCATION DATA
3235 003741 254 00 0 00 003736 JRST .-3
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 58
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MEMSEG" ## MAPNEW = 0 ## SEQ 0143
3236 SUBTTL *SUBRTN* "MEMSEG" ## MAPNEW = 0 ##
3237
3238 S^;*********************************************************************^
3239 ;*ARGUMENTS 0-10: SETUP CORRESPONDING CHUNK FROM MEMSIZ TABLE
3240 ;* 11-37 RETURN 0, MAXIMUM OF 8 CHUNKS IN 256K
3241 ;* GT 37 - RETURNS MEMORY AT PHYSICAL ADDRESS
3242 ;*RETURNED IN AC0:
3243 ;* 0 - NO MEMORY AVAILABLE
3244 ;* START ADDRESS,,END ADDRESS
3245 ;*RETURNS +1
3246 S^;*********************************************************************^
3247
3248 003742 301 00 0 00 000040 $MSKA: CAIL 0,40
3249 003743 254 00 0 00 003763 JRST $MSKAP ;DIRECT PHYSICAL CORE
3250 003744 301 00 0 00 000011 CAIL ^D9
3251 003745 254 00 0 00 003667 JRST $MSEG3 ;NO MEMORY 11-37 ...EXIT
3252 003746 200 01 0 00 000000 MOVE 1,0
3253 003747 242 01 0 00 000001 LSH 1,1 ;DOUBLE, 2 ENTRIES PER
3254 003750 200 00 0 01 030146 MOVE 0,MEMSIZ(1) ;GET START ADDRESS
3255 003751 321 00 0 00 003667 JUMPL 0,$MSEG3 ;NO MEMORY ...EXIT
3256 003752 200 02 0 01 030147 MOVE 2,MEMSIZ+1(1) ;GET END ADDRESS
3257 003753 322 02 0 00 003667 JUMPE 2,$MSEG3 ;NO MEMORY ...EXIT
3258 003754 326 00 0 00 003756 JUMPN 0,.+2 ;IF START ADDRESS IS 0
3259 003755 200 00 0 00 030145 MOVE 0,MEMLOW ;USE 'MEMLOW'
3260 003756 317 02 0 00 000000 CAMG 2,0 ;END GREATER THAN START ?
3261 003757 037 15 0 00 000004 FATAL ;NO ...ABORT
3262 003760 200 05 0 00 000002 MOVE 5,2 ;SETUP START ADR,,END ADR
3263 003761 504 05 0 00 000000 HRL 5,0
3264 003762 254 00 0 00 003667 JRST $MSEG3 ;EXIT
3265
3266 003763 303 00 0 00 777000 $MSKAP: CAILE 0,777000 ;REQUEST FOR OVER 256K ?
3267 003764 254 00 0 00 003667 JRST $MSEG3 ;YES, NO MEMORY
3268 003765 254 00 0 00 003702 JRST $MSEGP ;DO PHYSICAL SETUP
3269 003766 200 05 0 00 000000 MOVE 5,0 ;1 = PHY ADR, 0 = END ADR
3270 003767 504 05 0 00 000001 HRL 5,1 ; START ADR,,END ADR
3271 003770 254 00 0 00 003667 JRST $MSEG3 ;EXIT
3272
3273 003771 322 00 0 00 003742 $MSUSR: JUMPE 0,$MSKA ;USER MODE, SEGMENT 0 ONLY
3274 003772 301 00 0 00 000040 CAIL 0,40 ;IF 1-37 NO MEMORY
3275 003773 254 00 0 00 003763 JRST $MSKAP ;PHY, DO DIRECT PHYSICAL
3276 003774 254 00 0 00 003667 JRST $MSEG3 ;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 59
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MEMZRO" SEQ 0144
3277 SUBTTL *SUBRTN* "MEMZRO"
3278
3279 S^;*********************************************************************^
3280 ;*ZERO'S MEMORY FROM MEMLOW UP TO MAXIMUM
3281 ;*MAPNEW = 0 DIRECT MEMORY ZERO
3282 ;* =-1 4096K KL10 PAGED MEMORY ZERO
3283 S^;*********************************************************************^
3284
3285 003775 202 01 0 00 006671 $MZRO: MOVEM 1,$MZROB# ;SAVE AC1 & AC2
3286 003776 202 02 0 00 006672 MOVEM 2,$MZROC#
3287 003777 336 00 0 00 030143 SKIPN MAPNEW ;4096K PAGED OR DIRECT ZERO ?
3288 004000 254 00 0 00 004016 JRST $MZRO2 ;DIRECT ZEROING
3289
3290 004001 474 02 0 00 000000 $MZRO1: SETO 2, ;PAGED ZEROING
3291 004002 271 02 0 00 000001 ADDI 2,1
3292 004003 303 02 0 00 000037 CAILE 2,37
3293 004004 254 00 0 00 004033 JRST $MZROX ;DONE
3294 004005 200 00 0 00 000002 MOVE 0,2
3295 004006 260 17 0 00 003602 GO $MSEG ;SETUP MEMORY SEGMENT
3296 004007 037 15 0 00 000004 FATAL
3297 004010 322 00 0 00 004002 JUMPE 0,$MZRO1+1 ;NO MEMORY THIS SEGMENT
3298 004011 621 00 0 00 400000 TLZ 0,400000 ;DON'T CARE IF COMBINED
3299 004012 402 00 0 00 400000 SETZM 400000
3300 004013 200 01 0 00 006337 MOVE 1,[400000,,400001]
3301 004014 251 01 1 00 000000 BLT 1,@0 ;ZERO VIRTUAL
3302 004015 254 00 0 00 004002 JRST $MZRO1+1
3303
3304 004016 400 02 0 00 000000 $MZRO2: SETZ 2, ;DIRECT MEMORY ZERO
3305 004017 200 00 0 00 030145 MOVE 0,MEMLOW ;START ADDRESS
3306 004020 311 00 0 00 030147 CAML 0,MEMSIZ+1
3307 004021 254 00 0 00 004033 JRST $MZROX
3308 004022 254 00 0 00 004025 JRST .+3
3309 004023 200 00 0 02 030146 $MZRO3: MOVE 0,MEMSIZ(2) ;SEGMENT START ADDRESS
3310 004024 321 00 0 00 004033 JUMPL 0,$MZROX ;DONE
3311 004025 402 00 1 00 000000 SETZM @0
3312 004026 507 00 0 00 000000 HRLS ;CREATE BLT POINTER
3313 004027 271 00 0 00 000001 ADDI 1
3314 004030 251 00 1 02 030147 BLT 0,@MEMSIZ+1(2) ;ZERO DIRECT
3315 004031 271 02 0 00 000002 ADDI 2,2
3316 004032 254 00 0 00 004023 JRST $MZRO3 ;DO NEXT SEGMENT
3317
3318 004033 200 02 0 00 006672 $MZROX: MOVE 2,$MZROC ;RESTORE AC'S
3319 004034 200 01 0 00 006671 MOVE 1,$MZROB
3320 004035 263 17 0 00 000000 RTN ;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 60
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR SEQ 0145
3321 SUBTTL *SUBRTN* "MAPADR" CONV VIRT ADDR TO PHYS ADDR
3322
3323 S^;*********************************************************************^
3324 ;*VIRTUAL ADDRESS IN AC0, PHYSICAL ADDRESS RETURNED IN AC0
3325 ;*SKIP RETURN IS NORMAL, NON-SKIP RETURN IS KL10 PAGE INACCESSIBLE
3326 S^;*********************************************************************^
3327
3328 004036 202 01 0 00 006640 $MPADR: MOVEM 1,$ACMP0# ;SAVE AC1
3329 004037 550 01 0 00 000000 HRRZ 1,0 ;18 BIT VIRTUAL ADR IN AC1
3330 004040 307 01 0 00 000017 CAIG 1,17 ;ACCUMULATOR ADDRESS ?
3331 004041 254 00 0 00 004047 JRST $MPAD3-1 ;YES
3332 004042 200 00 0 00 030046 MOVE 0,CONSW ;GET CONSOLE SWITCHES
3333 004043 336 00 0 00 030511 SKIPN PVPAGI ;PREVENT PAGE INHIBIT ?
3334 004044 607 00 0 00 000100 TLNN 0,INHPAG ;PAGING INHIBITED
3335 004045 254 00 0 00 004052 JRST $MPADL
3336 004046 200 00 0 00 000001 MOVE 0,1
3337
3338 004047 350 00 0 17 000000 $MPAD7: AOS (P)
3339 004050 200 01 0 00 006640 $MPAD3: MOVE 1,$ACMP0 ;RESTORE AC1
3340 004051 263 17 0 00 000000 RTN ;RETURN +1/+2
3341
3342 004052 257 00 0 01 000000 $MPADL: MAP 0,(1) ;KL10. GET RELOCATION DATA
3343 004053 603 00 0 00 200000 TLNE 0,200000 ;PAGE FAILURE
3344 004054 254 00 0 00 004050 JRST $MPAD3 ;YES
3345 004055 621 00 0 00 777000 TLZ 0,777000 ;CLEAR STATUS BITS
3346 004056 254 00 0 00 004047 JRST $MPAD7
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 61
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT MEMORY MAP SEQ 0146
3347 SUBTTL *SUBRTN* PRINT MEMORY MAP
3348 S^;*********************************************************************^
3349
3350 SALL
3351 004057 477 00 0 00 000002 $PMAP: SETOB 0,2
3352 004060 316 00 0 00 030150 CAMN 0,MEMSIZ+2 ;ONLY ONE SEGMENT ?
3353 004061 201 02 0 00 000001 MOVEI 2,1 ;YES, SET INDICATOR
3354 004062 400 04 0 00 000000 SETZ 4,
3355 004063 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
3356 004064 254 00 0 00 004072 JRST $PMAP3 ;NO
3357 004065 332 00 0 00 030037 SKIPE USER ;USER MODE ?
3358 004066 254 00 0 00 004074 JRST $PMAP1 ;YES
3359 004067 554 00 0 00 030043 HLRZ MONCTL ;FIRST PASS ?
3360 004070 302 00 0 00 777777 CAIE -1
3361 004071 254 00 0 00 004074 JRST $PMAP1 ;NO
3362 004072 336 00 0 00 030056 $PMAP3: SKIPN $ONETM ;FIRST TIME ?
3363 004073 474 04 0 00 000000 SETO 4, ;YES, SET FLAG FOR PRINTING
3364 004074 322 04 0 00 004101 $PMAP1: JUMPE 4,$PMAPL-1 ;NO
3365
3366 004075 037 02 0 00 006340 PMSG <^MEMORY MAP =^FROM TO SIZE/K>
3367
3368 004076 302 02 0 00 000001 CAIE 2,1 ;IF (2) = 1, ONLY ONE SEGMENT
3369 004077 037 02 0 00 006347 PMSG <]START ADR/K>
3370 004100 037 00 0 00 030242 PCRL
3371 004101 403 03 0 00 000005 SETZB 3,5
3372
3373 004102 335 00 0 03 030146 $PMAPL: SKIPGE MEMSIZ(3) ;GET MAP COORDINATES
3374 004103 254 00 0 00 004132 JRST $PMAP4
3375 004104 322 04 0 00 004112 JUMPE 4,.+6
3376 004105 200 00 0 03 030146 MOVE MEMSIZ(3)
3377 004106 037 10 0 00 000000 PNTADR ;PRINT START ADDRESS
3378 004107 200 00 0 03 030147 MOVE MEMSIZ+1(3)
3379 004110 037 10 0 00 000000 PNTADR ;PRINT END ADDRESS
3380 004111 037 00 0 00 000011 PNTCI " "
3381 004112 200 00 0 03 030147 MOVE MEMSIZ+1(3)
3382 004113 271 00 0 00 000001 ADDI 0,1
3383 004114 274 00 0 03 030146 SUB MEMSIZ(3)
3384 004115 231 00 0 00 002000 IDIVI ^D1024
3385 004116 270 05 0 00 000000 ADD 5,0
3386 004117 322 04 0 00 004130 JUMPE 4,$PMAP5
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 62
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT MEMORY MAP SEQ 0147
3387 004120 037 15 0 00 000000 $PMAP7: PNTDEC ;PRINT DECIMAL SIZE
3388 004121 306 02 0 00 000001 CAIN 2,1
3389 004122 254 00 0 00 004127 JRST .+5
3390 004123 037 00 0 00 000011 PNTCI " "
3391 004124 200 00 0 03 030146 MOVE MEMSIZ(3)
3392 004125 231 00 0 00 002000 IDIVI ^D1024
3393 004126 037 15 0 00 000000 PNTDEC ;PRINT START ADR IN K
3394 004127 037 00 0 00 030242 PCRL
3395
3396 004130 271 03 0 00 000002 $PMAP5: ADDI 3,2
3397 004131 254 00 0 00 004102 JRST $PMAPL ;GET NEXT IF ANY
3398
3399 004132 202 05 0 00 030144 $PMAP4: MOVEM 5,MEMTOT ;SAVE TOTAL # OF K
3400 004133 550 00 0 00 000121 HRRZ JOBFF ;SETUP LOWEST USABLE
3401 004134 271 00 0 00 001000 ADDI 1000 ;MEMORY ADDRESS
3402 004135 620 00 0 00 000777 TRZ 777 ;EVEN BREAK ABOVE JOBFF
3403 004136 202 00 0 00 030145 MOVEM MEMLOW
3404 004137 322 04 0 00 004147 JUMPE 4,$PMAP6 ;RETURN
3405 004140 306 02 0 00 000001 CAIN 2,1
3406 004141 254 00 0 00 004146 JRST $PMAP6-1 ;CRLF & RETURN
3407
3408 004142 037 02 0 00 006352 PMSG <TOTAL MEMORY/K = >
3409 004143 200 00 0 00 030144 MOVE MEMTOT ;OUTPUT TOTAL MEMORY
3410 004144 037 15 0 00 000000 PNTDEC
3411 004145 037 00 0 00 030242 PCRL
3412 004146 037 00 0 00 030242 PCRL
3413
3414 004147 263 17 0 00 000000 $PMAP6: RTN ;EXIT
3415 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 63
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0148
3416 SUBTTL *SUBRTN* DEVICE CODE CHANGE SUBROUTINE
3417
3418 004150 260 17 0 00 004272 $MODDV: GO $SWTCH ;LOAD SWITCHES INTO AC0
3419 004151 607 00 0 00 000040 TLNN 0,MODDVC ;DEVICE CODE CHANGE SELECTED ?
3420 004152 263 17 0 00 000000 RTN ;NO, DON'T DO IT
3421
3422 004153 202 01 0 00 006664 $MODD0: MOVEM 1,$MODDB# ;SAVE AC'S
3423 004154 202 02 0 00 006665 MOVEM 2,$MODDC#
3424 004155 202 03 0 00 006666 MOVEM 3,$MODDD#
3425
3426 ;*ASK WHETHER CHANGES ARE DESIRED & IF SO; ASK FOR OLD AND NEW DEV CODE
3427 S^;*********************************************************************^
3428
3429 SALL
3430 004156 037 04 0 00 006355 $MODD1: PMSGF <^CHANGE DEVICE CODES,>
3431 004157 260 17 0 00 005015 GO $YESNO ;AFFIRMATIVE ?
3432 004160 254 00 0 00 004254 JRST $MODDX ;NO/NO MORE CHANGES, EXIT
3433
3434 004161 037 04 0 00 006361 $MODD3: PMSGF <OLD DEVICE CODE - >
3435 004162 265 03 0 00 004217 JSP 3,$MODD2 ;GET OLD DEVICE CODE
3436 004163 254 00 0 00 004161 JRST .-2 ;NO RESPONSE ...ASK AGAIN
3437 004164 202 00 0 00 006662 MOVEM 0,$MDVCO# ;SAVE THE OLD CODE
3438
3439 004165 037 04 0 00 006365 $MODD4: PMSGF <NEW DEVICE CODE - >
3440 004166 265 03 0 00 004217 JSP 3,$MODD2 ;GET NEW DEVICE CODE
3441 004167 254 00 0 00 004165 JRST .-2 ;NO RESPONSE ...ASK AGAIN
3442 004170 202 00 0 00 006661 MOVEM 0,$MDVCN# ;SAVE THE NEW CODE
3443
3444 004171 037 04 0 00 006371 $MODD5: PMSGF <CHANGING FROM >
3445 004172 200 01 0 00 006662 MOVE 1,$MDVCO ;GET OLD CODE
3446 004173 265 03 0 00 004234 JSP 3,$MDSRC ;GET THAT CODE OUT OF LIST
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 64
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0149
3447 004174 037 04 0 00 006374 $MODD6: PMSGF < TO >
3448 004175 200 01 0 00 006661 MOVE 1,$MDVCN ;GET NEW CODE
3449 004176 265 03 0 00 004234 JSP 3,$MDSRC ;GET THAT CODE OUT OF LIST (
3450 004177 037 01 0 00 030242 PCRLF
3451
3452 004200 037 04 0 00 006375 $MODD7: PMSGF <VALID CHANGE,>
3453 004201 260 17 0 00 005015 GO $YESNO ;AFFIRMATIVE ?
3454 004202 254 00 0 00 004156 JRST $MODD1 ;NO ...START OVER )
3455 004203 260 17 0 00 004205 GO $MODD8 ;YES ...CHANGE THE LIST
3456 004204 254 00 0 00 004156 JRST $MODD1
3457 LALL
3458
3459 ;*CHANGE THE DEVICE CODE LIST
3460 S^;*********************************************************************^
3461
3462 004205 200 02 0 00 030027 $MODD8: MOVE 2,$MODVL
3463 004206 274 02 0 00 030030 SUB 2,$MODVU
3464 004207 514 02 0 00 000002 HRLZ 2,2
3465 004210 540 02 0 00 030027 HRR 2,$MODVL
3466 004211 200 01 0 00 006661 MOVE 1,$MDVCN
3467 004212 135 00 0 00 006400 LDB 0,[POINT 10,(2),9] ;GET IOT & DEVICE CODE
3468 004213 316 00 0 00 006662 CAMN 0,$MDVCO ;IS IT REQUESTED ONE ?
3469 004214 137 01 0 00 006400 DPB 1,[POINT 10,(2),9] ;YES, MAKE THE CHANGE
3470 004215 253 02 0 00 004212 AOBJN 2,.-3
3471 004216 263 17 0 00 000000 RTN
3472
3473 ;*INPUT OLD CODE AND CHECK FOR VALIDITY
3474 S^;*********************************************************************^
3475
3476 004217 260 17 0 00 005060 $MODD2: GO $TPOCT ;INPUT THE OLD CODE
3477 004220 254 00 1 00 000003 JRST @3 ;NO RESPONSE, RETURN + 1 )
3478
3479 004221 602 00 0 00 000003 $MODD9: TRNE 0,3 ;MUST END IN 0 OR 4
3480 004222 254 00 0 00 004252 JRST $MODER ;ERROR! ASK AGAIN
3481 004223 307 00 0 00 000774 CAIG 0,774 ;IS DEVICE CODE IN PROPER RANGE
3482 004224 305 00 0 00 000014 CAIGE 0,14
3483 004225 254 00 0 00 004252 JRST $MODER ;ERROR, 14 TO 774 ONLY
3484 004226 306 00 0 00 000120 CAIN 0,120 ;CTY MAY NOT CHANGE!
3485 004227 254 00 0 00 004252 JRST $MODER ;ASK AGAIN
3486 004230 660 00 0 00 007000 TRO 0,7000 ;INSERT IOT CODE
3487 004231 242 00 0 00 777776 LSH 0,-2 ;POSITION
3488 004232 350 00 0 00 000003 AOS 3 ;RETURN + 2
3489 004233 254 00 1 00 000003 JRST @3 ;RETURN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 65
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* DEVICE CODE CHANGE SUBROUTINE SEQ 0150
3490 ;*GET THE OLD/NEW CODE FROM DEVICE CODE LIST
3491 S^;*********************************************************************^
3492
3493 SALL
3494 004234 242 01 0 00 000002 $MDSRC: LSH 1,2 ;POSITION FOR COMPARE
3495 004235 620 01 0 00 007000 TRZ 1,7000 ;MASK IOT
3496 004236 200 02 0 00 006401 MOVE 2,[-$MDEND,,$MDLST]
3497 004237 135 00 0 00 006402 LDB [POINT 9,(2),35] ;EXTRACT CODE FROM LIST
3498 004240 316 00 0 00 000001 CAMN 0,1 ;IS THIS THE ONE?
3499 004241 254 00 0 00 004246 JRST $MDSR2 ;YES! ...PRINT IT & EXIT
3500 004242 253 02 0 00 004237 AOBJN 2,.-3 ;NOT YET ...GET NEXT
3501 004243 200 00 0 00 000001 MOVE 0,1
3502 004244 037 03 0 00 000001 PNT3F
3503
3504 004245 254 00 1 00 000003 $MDSR1: JRST @3 ;RETURN
3505 004246 200 00 0 02 000000 $MDSR2: MOVE 0,(2)
3506 004247 620 00 0 00 000777 TRZ 0,777 ;MASK CODE
3507 004250 037 01 0 00 000002 PNTSXF ;PRINT IT
3508 004251 254 00 0 00 004245 JRST $MDSR1 ;EXIT
3509
3510 004252 037 04 0 00 006403 $MODER: PMSGF <^DEV CODE ERR, 14-774 ONLY^>
3511 004253 254 00 0 00 004161 JRST $MODD3 ;ASK WHICH ONE TO CHANGE AGAIN
3512
3513 004254 260 17 0 00 003243 $MODDX: GO $CFLUSH ;IF KL10 & CACHE ON, FLUSH
3514 004255 200 03 0 00 006666 MOVE 3,$MODDD ;RESTORE AC'S
3515 004256 200 02 0 00 006665 MOVE 2,$MODDC
3516 004257 200 01 0 00 006664 MOVE 1,$MODDB
3517 004260 263 17 0 00 000000 RTN ;EXIT
3518 LALL
3519 S^;*********************************************************************^
3520 ;*DEVICE CODE CHANGE SUBROUTINE BY PROGRAM
3521 ;* AC0 = [OLD,,NEW]
3522 S^;*********************************************************************^
3523
3524 004261 242 00 0 00 777776 $MODDP: LSH AC0,-2 ;RIGHT JUSTIFY
3525 004262 434 00 0 00 006410 OR AC0,[1600,,1600] ;INSERT IOT CODE
3526 004263 556 00 0 00 006662 HLRZM $MDVCO ;SETUP OLD CODE
3527 004264 552 00 0 00 006661 HRRZM $MDVCN ;SETUP NEW CODE
3528 004265 202 01 0 00 006664 MOVEM 1,$MODDB
3529 004266 202 02 0 00 006665 MOVEM 2,$MODDC
3530 004267 202 03 0 00 006666 MOVEM 3,$MODDD
3531
3532 004270 260 17 0 00 004205 GO $MODD8 ;CHANGE CODES
3533 004271 254 00 0 00 004254 JRST $MODDX ;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 66
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0151
3534 SUBTTL *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE
3535
3536 S^;*********************************************************************^
3537 ;*INPUT CONSOLE SWITCHES IN EXEC MODE
3538 S^;*********************************************************************^
3539
3540 004272 332 00 0 00 030521 $SWTCH: SKIPE $$TOGGLE ;SWITCHES PREVENTED ?
3541 004273 254 00 0 00 004307 JRST $SWU2 ;YES, USE C(CONSW)
3542 004274 336 00 0 00 006717 SKIPN $SWFLG ;BEEN INITED ?
3543 004275 254 00 0 00 004305 JRST $SWU1 ;NO, USE SAVED SWITCHES
3544 004276 332 00 0 00 006733 SKIPE $USWTF ;TTY SWITCH CONTROL ?
3545 004277 254 00 0 00 004305 JRST $SWU1 ;YES, USE SAVED SWITCHES
3546 004300 260 17 0 00 004412 GO $KLSWR ;KL10
3547 004301 335 00 0 00 030043 $SWCH1: SKIPGE MONCTL ;MONITR CONTROL ?
3548 004302 540 00 0 00 030043 HRR 0,MONCTL ;YES, USE PRESTORED RH SWITCHES
3549 004303 202 00 0 00 030046 MOVEM 0,CONSW ;SAVE
3550 004304 263 17 0 00 000000 RTN ;EXIT
3551 004305 200 00 0 00 030046 $SWU1: MOVE 0,CONSW
3552 004306 254 00 0 00 004301 JRST $SWCH1
3553 004307 200 00 0 00 030046 $SWU2: MOVE 0,CONSW
3554 004310 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 67
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0152
3555 ;*SWITCH INITIALIZATION ROUTINE
3556 S^;*********************************************************************^
3557
3558 SALL
3559 004311 402 00 0 00 006733 $SWTIN: SETZM $USWTF# ;CLEAR TTY CONTROL FLAG
3560 004312 402 00 0 00 006720 SETZM $SWONCE#
3561 004313 260 17 0 00 004416 GO $SW0 ;INIT SWITCH ROUTINE
3562 004314 476 00 0 00 006720 $SWIN1: SETOM $SWONCE
3563 004315 476 00 0 00 006717 SETOM $SWFLG ;SET INITED FLAG
3564 004316 260 17 0 00 004402 GO $KLSWI ;DEMAND SWITCHES IF KL10
3565 004317 260 17 0 00 004272 GO $SWTCH ;READ CONSOLE SWITCHES
3566 004320 603 00 0 00 020000 TLNE PNTLPT ;PRINT ON LPT/LOGICAL DEVICE ?
3567 004321 260 17 0 00 002312 GO $PNTNM+2 ;YES ...PRINT PROGRAM NAME
3568 004322 200 00 0 00 030046 MOVE CONSW
3569 004323 603 00 0 00 000004 TLNE CHAIN ;IN CHAIN MODE ?
3570 004324 263 17 0 00 000000 RTN ;YES, DON'T PRINT FOLLOWING
3571 004325 335 00 0 00 030043 SKIPGE MONCTL
3572 004326 263 17 0 00 000000 RTN ;DIAGNOSTIC MONITOR
3573 004327 332 00 0 00 030521 SKIPE $$TOGGLE
3574 004330 254 00 0 00 004335 JRST .+5
3575 004331 037 04 0 00 006111 PMSGF <^SWITCHES = >
3576 004332 200 00 0 00 030046 MOVE CONSW ;GET THE SAVED SWITCHES
3577 004333 037 13 0 00 000001 PNTHWF ;PRINT PRESENT SWITCH SETTINGS
3578 004334 037 01 0 00 030242 PCRLF
3579 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 68
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0153
3580 ;*PRINT CLOCK SOURCE, CLOCK RATE & CACHE ENABLES
3581 S^;*********************************************************************^
3582
3583 SALL
3584 004335 037 02 0 00 006411 PMSG <CLK SOURCE = >
3585 004336 200 01 0 00 006634 MOVE 1,CLKDFL
3586 004337 242 01 0 00 777776 LSH 1,-2
3587 004340 405 01 0 00 000003 ANDI 1,3
3588 MOVE 0,[SIXBIT\NORMAL\
3589 SIXBIT\FAST\
3590 SIXBIT\EXTERN\
3591 004341 200 00 0 01 006414 SIXBIT\UNUSED\](1)
3592 004342 037 00 0 00 000002 PNTSIX
3593 004343 037 02 0 00 006420 PMSG <, CLK RATE = >
3594 004344 200 01 0 00 006634 MOVE 1,CLKDFL
3595 004345 405 01 0 00 000003 ANDI 1,3
3596 MOVE 0,[SIXBIT\FULL\
3597 SIXBIT\1/2\
3598 SIXBIT\1/4\
3599 004346 200 00 0 01 006423 SIXBIT\1/8\](1)
3600 004347 037 00 0 00 000002 PNTSIX
3601
3602 004350 037 02 0 00 006427 PMSG <, AC BLK >
3603 004351 7 010 04 0 00 000000 DATAI PAG,0 ;READ CURRENT AC BLOCK SELECTION
3604 004352 242 00 0 00 777745 LSH 0,-^D27 ;ISOLATE
3605 004353 405 00 0 00 000007 ANDI 0,7
3606 004354 037 01 0 00 000000 PNT1 ;PRINT AC BLOCK DIGIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 69
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0154
3607 004355 332 00 0 00 030506 SKIPE CSHFLG
3608 004356 254 00 0 00 004400 JRST $SWIN3 ;CACHE PREVENTED
3609 004357 200 00 0 00 030046 MOVE CONSW
3610 004360 603 00 0 00 000020 TLNE INHCSH
3611 004361 254 00 0 00 004400 JRST $SWIN3 ;CACHE INHIBITED
3612 004362 554 01 0 00 006634 HLRZ 1,CLKDFL ;GET CACHE ENABLES
3613 004363 242 01 0 00 777762 LSH 1,-^D14 ;ISOLATE BITS 0-3
3614 004364 405 01 0 00 000017 ANDI 1,17
3615 004365 336 00 0 00 000001 SKIPN 1
3616 004366 254 00 0 00 004400 JRST $SWIN3 ;NOT ENABLED
3617 004367 037 02 0 00 006431 PMSG <, CACHE:>
3618 004370 602 01 0 00 000010 TRNE 1,10 ;CACHE 0 ENABLED ?
3619 004371 037 02 0 00 006433 PMSG < 0>
3620 004372 602 01 0 00 000004 TRNE 1,4 ;CACHE 1 ENABLED ?
3621 004373 037 02 0 00 006434 PMSG < 1>
3622 004374 602 01 0 00 000002 TRNE 1,2 ;CACHE 2 ENABLED ?
3623 004375 037 02 0 00 006435 PMSG < 2>
3624 004376 602 01 0 00 000001 TRNE 1,1 ;CACHE 3 ENABLED ?
3625 004377 037 02 0 00 006436 PMSG < 3>
3626 004400 037 00 0 00 030242 $SWIN3: PCRL
3627 004401 263 17 0 00 000000 RTN
3628
3629 004402 201 00 0 00 001400 $KLSWI: MOVEI 0,1400 ;KL10, GET SWITCHES FROM PDP-11
3630 004403 260 17 0 00 002012 GO $DTEXX
3631 004404 202 00 0 00 000457 MOVEM 0,$DTSWR ;PUT IN DTE20 SWITCH WORD
3632 004405 201 00 0 00 000405 MOVEI AC0,405
3633 004406 260 17 0 00 002012 GO $DTEXX ;GET CLOCK DEFAULT WORD
3634 004407 202 00 0 00 006634 MOVEM AC0,CLKDFL#
3635 004410 402 00 0 00 006635 SETZM KLNSW#
3636 004411 263 17 0 00 000000 RTN
3637
3638 004412 332 00 0 00 006635 $KLSWR: SKIPE KLNSW ;NEED TO DEMAND SWITCHES ?
3639 004413 260 17 0 00 004402 GO $KLSWI ;YES
3640 004414 200 00 0 00 000457 MOVE AC0,$DTSWR
3641 004415 263 17 0 00 000000 RTN
3642 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 70
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0155
3643 ;*SWITCH INITIALIZATION ROUTINE
3644 S^;*********************************************************************^
3645
3646 SALL
3647 004416 261 17 0 00 000000 $SW0: PUT 0
3648 004417 332 00 0 00 030521 SKIPE $$TOGGLE ;SWITCHES PREVENTED ?
3649 004420 254 00 0 00 004472 JRST $SW9+2 ;YES, USE C(CONSW)
3650 004421 254 00 0 00 004464 JRST $SW8 ;EXEC
3651
3652 004422 037 04 0 00 006111 $SW12: PMSGF <^SWITCHES = >
3653 004423 200 00 0 00 030046 MOVE CONSW
3654 004424 037 13 0 00 000001 PNTHWF
3655
3656 004425 037 04 0 00 006437 $SW1: PMSGF <^TTY SWITCH CONTROL ? - 0,S,Y OR N <CR> - >
3657 004426 260 17 0 00 004647 GO $OPTLK ;INPUT THE ANSWER
3658 004427 254 00 0 00 004425 JRST $SW1 ;NO CHARACTER RETURNED, ASK AGAIN
3659 004430 306 00 0 00 000015 CAIN 0,15
3660 004431 254 00 0 00 004447 JRST $SWERR ;1ST CHAR CR, ERROR
3661 004432 242 00 0 00 000007 LSH 0,7 ;POSITION 1ST CHAR
3662 004433 202 00 0 00 006716 MOVEM $SW#
3663 004434 260 17 0 00 004647 GO $OPTLK ;INPUT THE CR
3664 004435 254 00 0 00 004425 JRST $SW1 ;NO CHAR, ASK AGAIN
3665 004436 434 00 0 00 006716 OR 0,$SW
3666 004437 306 00 0 00 014015 CAIN 0,14015 ;"0" (CR) ?
3667 004440 254 00 0 00 004450 JRST $SW6 ;YES-USE ALL SWITCHES = 0
3668 004441 306 00 0 00 024615 CAIN 0,24615 ;"S" (CR) ?
3669 004442 254 00 0 00 004470 JRST $SW9 ;YES-USE SAVED SWITCHES
3670 004443 306 00 0 00 026215 CAIN 0,26215 ;"Y" (CR) ?
3671 004444 254 00 0 00 004452 JRST $SW2 ;YES-USE TTY INPUT SWITCHES
3672 004445 306 00 0 00 023415 CAIN 0,23415 ;"N" (CR) ?
3673 004446 254 00 0 00 004466 JRST $SW7 ;YES-READ CONSOLE SWITCHES & RETURN
3674
3675 004447 254 00 0 00 004425 $SWERR: JRST $SW1 ;ASK AGAIN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 71
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0156
3676 004450 402 00 0 00 000000 $SW6: SETZM 0
3677 004451 254 00 0 00 004462 JRST $SW4
3678
3679 004452 037 04 0 00 006447 $SW2: PMSGF <^LH SWITCHES <# OR ?>- >
3680 004453 260 17 0 00 005060 GO $TPOCT ;INPUT 6 OCTALS
3681 004454 254 00 0 00 004502 JRST $SW13 ;ERROR .....TRY AGAIN
3682 004455 516 00 0 00 006716 HRLZM 0,$SW# ;MOVE LH WORD TO SW
3683
3684 004456 037 04 0 00 006453 $SW3: PMSGF <RH SWITCHES <# OR ?>- >
3685 004457 260 17 0 00 005060 GO $TPOCT ;INPUT 6 OCTALS
3686 004460 254 00 0 00 004507 JRST $SW14 ;ERROR .....TRY AGAIN
3687 004461 500 00 0 00 006716 HLL 0,$SW ;GET LH SWITCHES
3688 004462 202 00 0 00 030046 $SW4: MOVEM 0,CONSW ;SAVE SWITCHES IN CONSW
3689 004463 476 00 0 00 006733 $SW5: SETOM $USWTF ;SET TTY INPUT SWITCH FLAG
3690 004464 262 17 0 00 000000 $SW8: GET 0
3691 004465 263 17 0 00 000000 RTN
3692
3693 004466 402 00 0 00 006733 $SW7: SETZM $USWTF ;N, USE REAL SWITCHES
3694 004467 254 00 0 00 004464 JRST $SW8
3695
3696 004470 332 00 0 00 006720 $SW9: SKIPE $SWONCE ;S, USE SAME AS BEFORE ON "DING" REQUEST
3697 004471 254 00 0 00 004464 JRST $SW8
3698 004472 200 00 0 00 006715 MOVE $SVCSW ;ON INITIALIZATION USE PREVIOUS SWITCHES
3699 004473 254 00 0 00 004462 JRST $SW4
3700
3701 004474 200 00 0 00 020007 $SW10: MOVE 0,DIASWS ;GET DIAMON SWITCHES
3702 004475 254 00 0 00 004462 JRST $SW4
3703
3704 004476 200 00 0 00 006715 $SW11: MOVE 0,$SVCSW ;IF SAVED SW'S ARE ZERO
3705 004477 322 00 0 00 004425 JUMPE 0,$SW1 ;DON'T PRINT THEM
3706 004500 202 00 0 00 030046 MOVEM 0,CONSW
3707 004501 254 00 0 00 004422 JRST $SW12
3708
3709 004502 302 00 0 00 000077 $SW13: CAIE "?" ;QMARK ?
3710 004503 254 00 0 00 004452 JRST $SW2 ;NO, ERROR
3711 004504 201 00 0 00 004546 MOVEI SWTAB
3712 004505 260 17 0 00 004515 GO $SWXX ;PROMPT FOR SWITCHES
3713 004506 254 00 0 00 004455 JRST $SW3-1
3714
3715 004507 302 00 0 00 000077 $SW14: CAIE "?" ;QMARK ?
3716 004510 254 00 0 00 004456 JRST $SW3 ;NO, ERROR
3717 004511 200 00 0 00 030525 MOVE SWPTAB ;GET ADDRESS OF USERS TABLE
3718 004512 322 00 0 00 004456 JUMPE $SW3 ;IF NONE, ERROR
3719 004513 260 17 0 00 004515 GO $SWXX ;PROMPT FOR SWITCHES
3720 004514 254 00 0 00 004461 JRST $SW4-1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 72
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0157
3721 ;*PROMPT FOR SWITCHES
3722
3723 004515 261 17 0 00 000001 $SWXX: PUT 1
3724 004516 261 17 0 00 000002 PUT 2
3725 004517 261 17 0 00 000003 PUT 3
3726 004520 200 01 0 00 000000 MOVE 1,0 ;PUT SWITCH PROMPT TABLE ADDRESS IN 1
3727 004521 505 01 0 00 777756 HRLI 1,-^D18 ;18 SWITCHES
3728 004522 201 02 0 00 400000 MOVEI 2,400000
3729 004523 400 03 0 00 000000 SETZ 3,
3730 004524 037 01 0 00 030242 PCRLF
3731
3732 004525 200 00 0 01 000000 $SWXX1: MOVE (1) ;GET SIXBIT PROMPT
3733 004526 322 00 0 00 004536 JUMPE 0,$SWXX2 ;IF BLANK, NO PROMPT
3734 004527 037 01 0 00 000002 PNTSXF
3735 004530 037 01 0 00 000011 PNTCIF 11 ;PRINT A TAB
3736 004531 260 17 0 00 004577 GO $SWZZ ;GET SWITCH ANSWER
3737 004532 254 00 0 00 004524 JRST $SWXX1-1 ;ERROR
3738 004533 254 00 0 00 004540 JRST $SWXX3 ;CONTROL Z
3739 004534 254 00 0 00 004570 JRST $SWXX4 ;UPARROW
3740 004535 434 03 0 00 000002 OR 3,2 ;YES, OR SWITCH BIT IN
3741 ;NO, DON'T SET SWITCH BIT
3742 004536 242 02 0 00 777777 $SWXX2: LSH 2,-1 ;POSITION TO NEXT SWITCH
3743 004537 253 01 0 00 004525 AOBJN 1,$SWXX1
3744 004540 037 01 0 00 030242 $SWXX3: PCRLF
3745 004541 200 00 0 00 000003 MOVE 0,3 ;RETURN SWITCHES IN 0
3746 004542 262 17 0 00 000003 GET 3
3747 004543 262 17 0 00 000002 GET 2
3748 004544 262 17 0 00 000001 GET 1
3749 004545 263 17 0 00 000000 RTN
3750
3751 004546 41 42 57 62 64 00 SWTAB: SIXBIT/ABORT/
3752 004547 62 63 64 41 62 64 SIXBIT/RSTART/
3753 004550 64 57 64 41 54 63 SIXBIT/TOTALS/
3754 004551 56 57 60 56 64 00 SIXBIT/NOPNT/
3755 004552 60 56 64 54 60 64 SIXBIT/PNTLPT/
3756 004553 44 51 56 47 00 00 SIXBIT/DING/
3757 004554 54 57 57 60 45 62 SIXBIT/LOOPER/
3758 004555 45 62 63 64 57 60 SIXBIT/ERSTOP/
3759 004556 60 41 54 45 62 63 SIXBIT/PALERS/
3760 004557 62 45 54 51 41 42 SIXBIT/RELIAB/
3761 004560 64 70 64 51 56 50 SIXBIT/TXTINH/
3762 004561 51 56 50 60 41 47 SIXBIT/INHPAG/
3763 004562 55 57 44 44 66 43 SIXBIT/MODDVC/
3764 004563 51 56 50 43 63 50 SIXBIT/INHCSH/
3765 004564 57 60 62 63 45 54 SIXBIT/OPRSEL/
3766 004565 43 50 41 51 56 00 SIXBIT/CHAIN/
3767 004566 000000 000000 0
3768 004567 000000 000000 0
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 73
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CONSOLE DATA SWITCH INPUT SUBROUTINE SEQ 0158
3769 ;*PROCESS PROMPT
3770 ;* CONTROL Z, ENDS PROMPTING
3771 ;* UPARROW, BACK UP ONE PROMPT
3772 ;* Y, SET SWITCH
3773 ;* N, DON'T SET SWITCH
3774 ;* CR, DON'T SET SWITCH
3775
3776 004570 306 02 0 00 400000 $SWXX4: CAIN 2,400000 ;BACKED UP ALL THE WAY ?
3777 004571 254 00 0 00 004576 JRST .+5 ;YES
3778 004572 242 02 0 00 000001 LSH 2,1 ;BACKUP SWITCH BIT
3779 004573 274 01 0 00 006102 SUB 1,[1,,1] ;BACKUP SWITCH TABLE POINTER
3780 004574 336 00 0 01 000000 SKIPN (1) ;THIS POSITION BLANK ?
3781 004575 254 00 0 00 004570 JRST .-5 ;YES, BACK UP ANOTHER
3782 004576 254 00 0 00 004524 JRST $SWXX1-1
3783
3784 004577 037 01 0 00 006457 $SWZZ: PNTMSF [ASCIZ/- Y,N, <CR> OR ^,^Z - /]
3785 004600 260 17 0 00 004647 GO $OPTLK
3786 004601 263 17 0 00 000000 RTN ;NO RESPONSE
3787 004602 306 00 0 00 000032 CAIN "Z"-100
3788 004603 254 00 0 00 004631 JRST $SWZZ1 ;^Z, DONE
3789 004604 306 00 0 00 000136 CAIN "^"
3790 004605 254 00 0 00 004630 JRST $SWZZ2 ;^, BACKUP
3791 004606 306 00 0 00 000015 CAIN 15
3792 004607 254 00 0 00 004626 JRST $SWZZ4 ;CR, SAME AS NO
3793
3794 004610 302 00 0 00 000131 CAIE "Y" ;Y, SET SWITCH BIT
3795 004611 306 00 0 00 000116 CAIN "N" ;N, DON'T SET SWITCH BIT
3796 004612 254 00 0 00 004614 JRST .+2
3797 004613 263 17 0 00 000000 RTN ;NEITHER, ERROR
3798 004614 242 00 0 00 000007 LSH 0,7
3799 004615 202 00 0 00 006721 MOVEM $SWYYY#
3800 004616 260 17 0 00 004647 GO $OPTLK ;GET CR
3801 004617 263 17 0 00 000000 RTN ;NO RESPONSE
3802 004620 434 00 0 00 006721 OR 0,$SWYYY
3803 004621 306 00 0 00 026215 CAIN 0,26215
3804 004622 254 00 0 00 004627 JRST $SWZZ3 ;Y <CR>
3805 004623 306 00 0 00 023415 CAIN 0,23415
3806 004624 254 00 0 00 004626 JRST $SWZZ4 ;N <CR>
3807 004625 263 17 0 00 000000 RTN ;ERROR
3808
3809 004626 350 00 0 17 000000 $SWZZ4: AOS (P) ;NO
3810 004627 350 00 0 17 000000 $SWZZ3: AOS (P) ;YES
3811 004630 350 00 0 17 000000 $SWZZ2: AOS (P) ;UPARROW
3812 004631 350 00 0 17 000000 $SWZZ1: AOS (P) ;CONTROL Z
3813 004632 263 17 0 00 000000 RTN
3814
3815 LALL
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 74
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0159
3816 SUBTTL *SUBRTN* TELETYPE INPUT ROUTINES
3817
3818 S^;*********************************************************************^
3819 ;*CARRIAGE RETURN OR COMMA TERMINATES OCTAL, DECIMAL, OR CONVERT TYPE-IN.
3820 ;*CHARACTER OR NUMBER RETURNED IN AC0.
3821 ;*CALL SEQUENCE IS AS FOLLOWS:
3822 ;* NAME
3823 ;* NO/ERROR RESPONSE RETURN (+ 1)
3824 ;* NORMAL RESPONSE RETURN (+ 2)
3825 ;*$OPTLK = INPUT ANY CHARACTER
3826 ;*$YESNO = ASK QUESTION, CORRECT RESPONSE Y
3827 ;*$NOYES = ASK QUESTION, CORRECT RESPONSE N
3828 ;*$TPOCT = INPUT UP TO 12 OCTALS
3829 ;*$TPDEC = INPUT UP TO 11 DECIMALS
3830 ;*$TPCNV = INPUT UP TO 9 CONVERT'S
3831 ;*$TTLK = KEYBOARD CHECK, INPUT ANY CHARACTER (NO WAIT)
3832 ;*$TALTM = KEYBOARD, ALT-MODE CHECK
3833 ;*$TISIX = INPUT UP TO 6 SIXBIT CHARACTERS
3834 S^;*********************************************************************^
3835
3836
3837 ;*TELETYPE INPUT INITIALIZATION
3838 S^;*********************************************************************^
3839 004633 201 00 0 00 000264 $TYPIN: MOVEI ^D180 ;INIT OPERATOR WAIT TIME AS 180 SEC
3840 004634 202 00 0 00 030224 MOVEM OPTIME
3841 004635 263 17 0 00 000000 RTN ;EXIT
3842
3843 S^;*********************************************************************^
3844 ;*CHECKS FOR ANY KEY STRUCK, RETURNS IMMEDIATELY
3845 ;*RETURNS +1 IF NO TYPEIN, RETURNS +2 IF CHAR TYPED
3846 ;*NO INPUT CHECKING ON KL10
3847 S^;*********************************************************************^
3848
3849 004636 400 00 0 00 000000 $TTLK: SETZ AC0,
3850 004637 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 75
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0160
3851 S^;*********************************************************************^
3852 ;*TELETYPE IMAGE MODE INPUT
3853 ;*PROVIDES UNBUFFERED MODE INPUT
3854 ;*WAITS FOREVER, RETURN WITH CHAR UPPER CASED & ECHOED
3855 S^;*********************************************************************^
3856
3857 004640 201 00 0 00 003400 $TTYIN: MOVEI 0,3400 ;DDT INPUT MODE
3858 004641 260 17 0 00 002012 GO $DTEXX
3859 004642 405 00 0 00 000177 ANDI 0,177 ;STRIP EXTRA BITS
3860 004643 322 00 0 00 004640 JUMPE 0,.-3 ;IF 0, NO CHAR, WAIT
3861
3862 004644 260 17 0 00 004743 GO $TIEX2 ;RUN THRU NORMAL PROCESS
3863 004645 037 15 0 00 000004 FATAL ;CAN'T HAPPEN
3864 004646 263 17 0 00 000000 RTN
3865 S^;*********************************************************************^
3866 ;*TELETYPE INPUT OPERATOR RESPONSE ROUTINE
3867 S^;*********************************************************************^
3868
3869 004647 202 04 0 00 006722 $OPTLK: MOVEM 4,$TACB4#
3870 004650 200 04 0 00 030224 MOVE 4,OPTIME ;COMPUTE WAIT DELAY
3871 004651 221 04 0 00 147400 IMULI 4,147400 ;1 SEC FUDGE FACTOR
3872 004652 363 04 0 00 004656 SOJLE 4,.+4 ;WAITED LONG ENOUGH YET ?
3873 004653 260 17 0 00 004733 GO $HEAR ;NO, GO LOOK FOR INPUT & RETURN
3874 004654 254 00 0 00 004652 JRST .-2 ;NO RESPONSE, REPEAT
3875 004655 350 00 0 17 000000 AOS (P) ;CHAR TYPED, RETURN +2
3876 004656 202 04 0 00 030225 MOVEM 4,$TWCNT ;SAVE TTY WAIT COUNT
3877 004657 200 04 0 00 006722 MOVE 4,$TACB4
3878 004660 263 17 0 00 000000 RTN ;NO CHAR, RETURN +1
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 76
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0161
3879 S^;*********************************************************************^
3880 ;*TELETYPE ALT-MODE CHECK ROUTINE
3881 S^;*********************************************************************^
3882
3883 004661 200 00 0 00 000454 $TALTM: MOVE 0,$DTCHR ;GET LAST TYPED CHAR
3884 004662 405 00 0 00 000177 ANDI 0,177
3885 004663 301 00 0 00 000141 CAIL "A"+40
3886 004664 303 00 0 00 000172 CAILE "Z"+40
3887 004665 254 00 0 00 004667 JRST .+2
3888 004666 275 00 0 00 000040 SUBI 40
3889 004667 402 00 0 00 000454 SETZM $DTCHR ;CLEAR FOR NEXT CHAR
3890
3891 004670 302 00 0 00 000175 $TALT2: CAIE 175
3892 004671 306 00 0 00 000176 CAIN 176
3893 004672 254 00 0 00 004675 JRST $TALT1 ;ALT-MODE WAS TYPED
3894 004673 302 00 0 00 000033 CAIE 33
3895 004674 254 00 0 00 004676 JRST .+2 ;NO ALT-MODE
3896
3897 004675 254 00 0 00 030064 $TALT1: JRST CPOPJ1 ;ALT-MODE, RETURN +2
3898
3899 004676 306 00 0 00 000004 CAIN 004 ;IS CHAR CONTROL D (^D) ?
3900 004677 254 00 0 00 002302 JRST $DDTENT ;YES
3901 004700 306 00 0 00 000024 CAIN 024 ;IS CHAR CONTROL T (^T) ?
3902 004701 254 00 0 00 004714 JRST $TALT3 ;YES
3903 004702 306 00 0 00 000005 CAIN 005 ;IS CHAR CONTROL E (^E) ?
3904 004703 254 00 0 00 004722 JRST $TALT4 ;YES
3905 004704 302 00 0 00 000007 CAIE 007 ;IS CHAR A BELL ?
3906 004705 263 17 0 00 000000 RTN
3907 004706 332 00 0 00 030522 SKIPE $$TAX1
3908 004707 256 00 0 00 030522 XCT $$TAX1 ;XCT USERS PRE-ROUTINE
3909 004710 260 17 0 00 004416 GO $SW0 ;YES, DING FOR SWITCH CONTROL
3910 004711 332 00 0 00 030523 SKIPE $$TAX2
3911 004712 256 00 0 00 030523 XCT $$TAX2 ;XCT USERS POST-ROUTINE
3912 004713 263 17 0 00 000000 RTN
3913
3914 004714 $TALT3: PMSGF <TEST PC = >^
3915 004714 037 04 0 00 006464 PSIXMF [SIXBIT\TEST PC = _\]^
3916 004715 550 00 0 00 030051 HRRZ TESTPC
3917 004716 037 06 0 00 000001 PNT6F ;PRINT TEST PC
3918 004717 037 01 0 00 030242 PCRLF
3919 004720 201 00 0 00 000024 MOVEI 0,024
3920 004721 263 17 0 00 000000 RTN
3921
3922 004722 $TALT4: PMSGF <ERROR PC = >^
3923 004722 037 04 0 00 006466 PSIXMF [SIXBIT\ERROR PC = _\]^
3924 004723 550 00 0 00 030052 HRRZ ERRPC
3925 004724 037 06 0 00 000001 PNT6F ;PRINT ERROR PC
3926 PMSGF < ERROR TOTALS = >^
3927 004725 037 04 0 00 006470 PSIXMF [SIXBIT\ ERROR TOTALS = _\]^
3928 004726 200 00 0 00 030053 MOVE ERRTLS
3929 004727 037 15 0 00 000001 PNTDCF ;PRINT ERROR TOTALS
3930 004730 037 01 0 00 030242 PCRLF
3931 004731 201 00 0 00 000005 MOVEI 0,005
3932 004732 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 77
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0162
3933 S^;*********************************************************************^
3934 ;*TELETYPE INPUT CHARACTER ROUTINE - KL10 EXEC
3935 S^;*********************************************************************^
3936
3937 004733 201 00 0 00 002400 $HEAR: MOVEI AC0,2400
3938 004734 260 17 0 00 002012 GO $DTEXX ;COMMAND CODE TO DTE-20
3939 004735 405 00 0 00 000377 ANDI AC0,377
3940 004736 202 00 0 00 030231 MOVEM AC0,$TTCHR ;CHAR DEPOSITED INTO AC0
3941 004737 402 00 0 00 000454 SETZM $DTCHR
3942 004740 326 00 0 00 004757 JUMPN AC0,$HEAR4
3943 004741 201 04 0 00 000001 MOVEI 4,1 ;TIMED OUT
3944 004742 263 17 0 00 000000 RTN
3945
3946 004743 202 00 0 00 030231 $TIEX2: MOVEM $TTCHR#
3947 004744 260 17 0 00 005755 GO $TYOUT ;ECHO CHAR
3948 004745 350 00 0 00 006652 AOS $CARCT
3949 004746 405 00 0 00 000177 ANDI 177
3950 004747 306 00 0 00 000003 CAIN 003 ;CONTROL C ?
3951 004750 254 00 0 00 005010 JRST $HEAR1 ;YES, TERMINATE
3952 004751 302 00 0 00 000015 CAIE 15 ;IS IT CR ?
3953 004752 254 00 0 00 004757 JRST $HEAR4 ;NO, PROCESS IT
3954 004753 402 00 0 00 006652 SETZM $CARCT
3955 004754 201 00 0 00 000012 MOVEI 12
3956 004755 260 17 0 00 005755 GO $TYOUT ;ECHO LF
3957 004756 254 00 0 00 004757 JRST $HEAR4 ;NOW PROCESS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 78
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE INPUT ROUTINES SEQ 0163
3958 S^;*********************************************************************^
3959 ;*CHARACTER PROCESSING ROUTINE FOR INPUT
3960 ;*CHARACTER RETURNED IN AC0 IS UPPER CASE
3961 ;*ACTUAL CHARACTER IS IN $TTCHR
3962 S^;*********************************************************************^
3963
3964 004757 200 00 0 00 030231 $HEAR4: MOVE 0,$TTCHR ;GET ACTUAL CHARACTER
3965 004760 405 00 0 00 000177 ANDI 0,177 ;CLEAR PARITY BIT
3966 004761 301 00 0 00 000141 CAIL 0,"A"+40 ;CONVERT TO UPPER CASE
3967 004762 303 00 0 00 000172 CAILE 0,"Z"+40
3968 004763 254 00 0 00 004765 JRST .+2
3969 004764 275 00 0 00 000040 SUBI 0,40
3970 004765 202 00 0 00 030232 MOVEM 0,$CHRIN# ;SAVE CHARACTER
3971 004766 302 00 0 00 000015 CAIE 0,15 ;IS IT CR ?
3972 004767 254 00 0 00 005000 JRST $HEAR3 ;NO
3973 004770 402 00 0 00 006652 SETZM $CARCT ;CLEAR CHARACTER COUNTER
3974 004771 200 00 0 00 030046 MOVE 0,CONSW
3975 004772 607 00 0 00 020000 TLNN 0,PNTLPT ;LPT/LOGICAL DEVICE OUTPUT ?
3976 004773 254 00 0 00 004775 JRST $HEAR2 ;NO
3977 004774 037 00 0 00 030242 PCRL ;YES-ADD CRLF
3978 004775 200 00 0 00 030232 $HEAR2: MOVE 0,$CHRIN ;PUT INPUT CHAR IN AC0
3979 004776 350 00 0 17 000000 AOS (P) ;SKIP RETURN +2
3980 004777 263 17 0 00 000000 RTN ;NORMAL RETURN +1
3981
3982 005000 306 00 0 00 000004 $HEAR3: CAIN 0,04
3983 005001 254 00 0 00 002302 JRST $DDTENT ;CONTROL D, GO TO DDT
3984 005002 200 00 0 00 030046 MOVE 0,CONSW ;GET DATA SWITCHES
3985 005003 607 00 0 00 020000 TLNN 0,PNTLPT ;PRINT ON LPT?
3986 005004 254 00 0 00 004775 JRST $HEAR2 ;NO-EXIT
3987 005005 200 00 0 00 030232 MOVE 0,$CHRIN ;YES
3988 005006 037 12 0 00 000000 PNTCHR ;SEND CHAR TO LPT/LOGICAL DEV
3989 005007 254 00 0 00 004775 JRST $HEAR2 ;EXIT
3990
3991 005010 201 00 0 00 004733 $HEAR1: MOVEI 0,$HEAR+0 ;CONTROL C, SAVE ENTRY TO
3992 005011 202 00 0 00 000130 MOVEM 0,JOBOPC ;TTY ROUTINE FOR RESTART
3993 005012 254 00 1 00 030062 JRST @CNTLC ;TERMINATE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 79
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE SEQ 0164
3994 SUBTTL *SUBRTN* TELETYPE YES/NO TYPE-IN ROUTINE
3995
3996 S^;*********************************************************************^
3997 ;*ACCEPTS Y OR N
3998 ;*FOR YESNO, Y IS SKIP RETURN, N OR NO RESPONSE IS DIRECT RETURN
3999 ;*FOR NOYES, N IS SKIP RETURN, Y OR NO RESPONSE IS DIRECT RETURN
4000 ;*'Y OR N <CR> - ' ASKED UPON ENTRY
4001 S^;*********************************************************************^
4002
4003 005013 201 00 0 00 000001 $NOYES: MOVEI 0,1 ;INIT FOR N ANSWER
4004 005014 254 00 0 00 005016 JRST .+2
4005 005015 201 00 0 00 000000 $YESNO: MOVEI 0,0 ;INIT FOR Y ANSWER
4006 005016 202 01 0 00 006723 MOVEM 1,$TACC1# ;SAVE AC'S
4007 005017 202 02 0 00 006724 MOVEM 2,$TACC2#
4008 005020 200 02 0 00 000000 MOVE 2,0
4009
4010 005021 $YN1: PMSGF < Y OR N <CR> - >^
4011 005021 037 04 0 00 006473 PSIXMF [SIXBIT\ Y OR N <CR> - _\]^
4012 005022 260 17 0 00 004647 GO $OPTLK
4013 005023 254 00 0 00 005043 JRST $YN2 ;NO RESPONSE
4014 005024 302 00 0 00 000131 CAIE 0,"Y" ;IS IT A 'Y' ?
4015 005025 306 00 0 00 000116 CAIN 0,"N" ;OR AN 'N' ?
4016 005026 254 00 0 00 005030 JRST .+2 ;YES
4017 005027 254 00 0 00 005047 JRST $YN3 ;NEITHER, ERROR
4018 005030 200 01 0 00 000000 MOVE 1,0
4019 005031 242 01 0 00 000007 LSH 1,7 ;POSITION 1ST CHAR
4020 005032 260 17 0 00 004647 GO $OPTLK
4021 005033 254 00 0 00 005043 JRST $YN2 ;NO RESPONSE
4022 005034 434 01 0 00 000000 OR 1,0 ;MERGE 2ND CHAR
4023 005035 316 01 0 02 005051 CAMN 1,$YN4(2) ;COMPARE FOR REQUESTED
4024 005036 254 00 0 00 005042 JRST .+4 ;YES, RETURN +2
4025 005037 316 01 0 02 005052 CAMN 1,$YN4+1(2) ;COMPARE FOR OPPOSITE
4026 005040 254 00 0 00 005043 JRST .+3 ;YES, RETURN +1
4027 005041 254 00 0 00 005047 JRST $YN3 ;ERROR, REPEAT
4028 005042 350 00 0 17 000000 AOS (P) ;YES, RETURN +2
4029 005043 200 02 0 00 006724 $YN2: MOVE 2,$TACC2 ;RESTORE AC2
4030 005044 200 00 0 00 000001 MOVE 0,1
4031 005045 200 01 0 00 006723 MOVE 1,$TACC1 ;RESTORE AC1
4032 005046 263 17 0 00 000000 RTN ;RETURN +1
4033
4034 005047 037 01 0 00 030242 $YN3: PCRLF
4035 005050 254 00 0 00 005021 JRST $YN1
4036
4037 005051 000000 026215 $YN4: EXP 26215 ;'Y' (CR)
4038 005052 000000 023415 EXP 23415 ;'N' (CR)
4039 005053 000000 026215 EXP 26215 ;'Y' (CR)
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 80
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0165
4040 SUBTTL *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE
4041
4042 S^;*********************************************************************^
4043 ;*ACCEPTS 0 TO 12 OCTALS, 0 TO 11 DECIMALS, 0 TO 9 CONVERT CHARACTERS
4044 ;*NUMBER RETURNED IN AC0.
4045 S^;*********************************************************************^
4046
4047 005054 201 00 0 00 000002 $TPCNV: MOVEI AC0,2 ;SET INDEX TO CONVERT
4048 005055 254 00 0 00 005061 JRST $TPCV1
4049 005056 201 00 0 00 000001 $TPDEC: MOVEI AC0,1 ;SET INDEX TO DECIMAL
4050 005057 254 00 0 00 005061 JRST $TPCV1
4051 005060 201 00 0 00 000000 $TPOCT: MOVEI AC0,0 ;SET INDEX TO OCTAL
4052
4053 005061 202 01 0 00 006725 $TPCV1: MOVEM 1,$TACD1# ;SAVE AC'S 1-3
4054 005062 202 02 0 00 006726 MOVEM 2,$TACD2#
4055 005063 202 03 0 00 006727 MOVEM 3,$TACD3#
4056 005064 200 03 0 00 000000 MOVE 3,0 ;LOAD AC3 WITH THE INDEX
4057 005065 403 01 0 00 000002 SETZB 1,2 ;CLEAR DATA REG, CHAR COUNTER
4058 005066 402 00 0 00 030233 SETZM $TYPNB# ;CLEAR ERR NUMBER
4059 005067 402 00 0 00 006673 SETZM $NEGF# ;CLEAR NEGATE FLAG
4060 005070 402 00 0 00 006653 SETZM $CNVD# ;CLEAR DECIMAL CONVERT FLAG
4061 005071 402 00 0 00 030510 SETZM TTNBRF ;CLEAR DIGIT TYPED FLAG
4062
4063
4064 ;*INPUT AND COMPUTE NUMBER
4065 S^;*********************************************************************^
4066
4067 005072 260 17 0 00 004647 $TYPLP: GO $OPTLK
4068 005073 254 00 0 00 005131 JRST $TPERR ;NO RESPONSE, GO TO ERROR EXIT
4069 005074 306 00 0 00 000055 CAIN 0,"-" ;IS IT MINUS ?
4070 005075 254 00 0 00 005147 JRST $NEGX ;YES
4071 005076 306 00 0 00 000056 CAIN 0,"." ;IS IT PERIOD ?
4072 005077 254 00 0 00 005153 JRST $CNVX ;YES
4073 005100 306 00 0 00 000015 CAIN 0,15 ;IS IT CR ?
4074 005101 254 00 0 00 005115 JRST $TPEXT ;YES
4075 005102 306 00 0 00 000054 CAIN 0,"," ;IS IT COMMA ?
4076 005103 254 00 0 00 005115 JRST $TPEXT ;YES
4077 005104 301 00 0 00 000060 CAIL 0,"0" ;A VALID DIGIT ?
4078 005105 256 00 0 03 005136 XCT $TPCK(3) ;YES
4079 005106 254 00 0 00 005131 JRST $TPERR ;NO ...ERROR EXIT
4080
4081 005107 476 00 0 00 030510 $TYPL1: SETOM TTNBRF ;SET DIGIT TYPED FLAG
4082 005110 350 00 0 00 000002 AOS 2 ;INCREMENT CHARACTER COUNTER
4083 005111 256 00 0 03 005141 XCT $TPMUL(3) ;MULT BY OCTAL/DECIMAL BASE, SHIFT CONVERT
4084 005112 275 00 0 00 000060 SUBI 60 ;ADD IN NEW CHAR
4085 005113 270 01 0 00 000000 ADD 1,0
4086 005114 254 00 0 00 005072 JRST $TYPLP ;REPEAT TILL CR OR COMMA
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 81
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0166
4087 ;*CHECK FOR PROPER AMOUNT OF CHARACTERS
4088 S^;*********************************************************************^
4089
4090 005115 256 00 0 03 005144 $TPEXT: XCT $TPNBR(3) ;PROPER NUMBER OF CHARACTERS
4091 005116 254 00 0 00 005131 JRST $TPERR ;NO ...ERROR EXIT
4092 005117 306 03 0 00 000002 CAIN 3,2 ;CONVERT ? (INDEX = 2)
4093 005120 254 00 0 00 005157 JRST $CNVX1 ;YES
4094 ;NO, EXIT
4095
4096 005121 200 03 0 00 006727 $TPEX1: MOVE 3,$TACD3 ;RESTORE AC'S 3 & 2
4097 005122 200 02 0 00 006726 MOVE 2,$TACD2
4098 005123 200 00 0 00 000001 MOVE 0,1 ;PUT NUMBER IN AC0
4099 005124 332 00 0 00 006673 SKIPE $NEGF ;NEGATE ?
4100 005125 210 00 0 00 000001 MOVN 0,1 ;YES
4101 005126 200 01 0 00 006725 MOVE 1,$TACD1 ;RESTORE AC1
4102 005127 350 00 0 17 000000 AOS (P) ;RETURN +2
4103 005130 263 17 0 00 000000 RTN ;RETURN +1
4104
4105 005131 202 01 0 00 030233 $TPERR: MOVEM 1,$TYPNB ;SAVE NUMBER - ERROR EXIT
4106 005132 200 03 0 00 006727 MOVE 3,$TACD3 ;RESTORE AC'S
4107 005133 200 02 0 00 006726 MOVE 2,$TACD2
4108 005134 200 01 0 00 006725 MOVE 1,$TACD1
4109 005135 263 17 0 00 000000 RTN ;ERROR EXIT )
4110
4111
4112 ;*NUMBER COMPUTING CONSTANTS
4113 S^;*********************************************************************^
4114
4115 005136 303 00 0 00 000067 $TPCK: CAILE 0,"7" ;OCTAL NUMBER CHECK
4116 005137 303 00 0 00 000071 CAILE 0,"9" ;DECIMAL NUMBER CHECK
4117 005140 303 00 0 00 000071 CAILE 0,"9" ;CONVERT NUMBER CHECK
4118 005141 242 01 0 00 000003 $TPMUL: LSH 1,3 ;OCTAL BASE SHIFT
4119 005142 221 01 0 00 000012 IMULI 1,^D10 ;DECIMAL BASE MULTIPLIER
4120 005143 242 01 0 00 000004 LSH 1,4 ;CONVERT SHIFT
4121 005144 303 02 0 00 000014 $TPNBR: CAILE 2,^D12 ;ACCEPT UP TO 12 OCTALS
4122 005145 303 02 0 00 000013 CAILE 2,^D11 ;ACCEPT UP TO 11 DECIMALS
4123 005146 303 02 0 00 000011 CAILE 2,^D9 ;ACCEPT UP TO 9 CONVERT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 82
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE OCTAL-DECIMAL-CONVERT TYPE-IN ROUTINE SEQ 0167
4124 005147 332 00 0 00 000002 $NEGX: SKIPE 2 ;1ST CHAR ?
4125 005150 254 00 0 00 005131 JRST $TPERR ;NO, ERROR EXIT )
4126 005151 476 00 0 00 006673 SETOM $NEGF ;YES, SET NEGATE FLAG
4127 005152 254 00 0 00 005072 JRST $TYPLP ;GET NEXT CHAR
4128
4129 005153 302 03 0 00 000002 $CNVX: CAIE 3,2 ;PERIOD, IN CONVERT ?
4130 005154 254 00 0 00 005131 JRST $TPERR ;NO, ERROR EXIT )
4131 005155 476 00 0 00 006653 SETOM $CNVD ;YES, SET DECIMAL FLAG
4132 005156 254 00 0 00 005072 JRST $TYPLP ;GET NEXT CHAR
4133
4134
4135 ;*CONVERT CONVERSION ROUTINE
4136 S^;*********************************************************************^
4137
4138 005157 201 02 0 00 000011 $CNVX1: MOVEI 2,^D9 ;NINE DIGITS
4139 005160 402 00 0 00 000000 SETZM 0
4140 005161 332 00 0 00 006653 SKIPE $CNVD ;OCTAL OR DECIMAL ?
4141 005162 254 00 0 00 005172 JRST $CNVX2 ;DECIMAL
4142 005163 612 01 0 00 006476 TDNE 1,[421042104210] ;OCTAL
4143 005164 254 00 0 00 005131 JRST $TPERR ;OCTAL ERROR, 8 OR 9 INPUT
4144 005165 242 01 0 00 000001 LSH 1,1 ;SQUEEZE OUT 4TH BIT
4145 005166 246 00 0 00 000003 LSHC 0,3 ;COMPACT INTO OCTAL
4146 005167 366 02 0 00 005165 SOJN 2,.-2 ;COMPLETED ?
4147 005170 200 01 0 00 000000 MOVE 1,0 ;YES
4148 005171 254 00 0 00 005121 JRST $TPEX1 ;RETURN
4149
4150 005172 402 00 0 00 000003 $CNVX2: SETZM 3 ;DECIMAL
4151 005173 402 00 0 00 000000 SETZM 0
4152 005174 221 03 0 00 000012 IMULI 3,^D10 ;MULTIPLY BY DECIMAL BASE
4153 005175 246 00 0 00 000004 LSHC 0,4 ;UNPACK NEXT DIGIT
4154 005176 270 03 0 00 000000 ADD 3,0 ;ADD IN
4155 005177 366 02 0 00 005173 SOJN 2,.-4 ;COMPLETED ?
4156 005200 200 01 0 00 000003 MOVE 1,3 ;YES
4157 005201 254 00 0 00 005121 JRST $TPEX1 ;RETURN )
4158
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 83
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE SEQ 0168
4159 SUBTTL *SUBRTN* TELETYPE SIXBIT INPUT ROUTINE
4160
4161 S^;*********************************************************************^
4162 ;*INPUTS UP TO SIX CHARACTERS, TERMINATES WITH A CR OR COMMA.
4163 ;*SIXBIT WORD RETURNED IN AC0
4164 S^;*********************************************************************^
4165
4166 005202 202 01 0 00 006730 $TISIX: MOVEM 1,$TSX1# ;SAVE AC'S
4167 005203 202 02 0 00 006731 MOVEM 2,$TSX2#
4168 005204 200 02 0 00 006477 MOVE 2,[POINT 6,1]
4169 005205 201 01 0 00 000000 MOVEI 1,0
4170
4171 005206 260 17 0 00 004647 $TSXB1: GO $OPTLK
4172 005207 254 00 0 00 005231 JRST $TSXB3 ;NO RESPONSE, RTN + 1
4173 005210 306 00 0 00 000015 CAIN 0,15
4174 005211 254 00 0 00 005230 JRST $TSXB2 ;CR, TERMINATE, RTN + 2
4175 005212 306 00 0 00 000054 CAIN 0,","
4176 005213 254 00 0 00 005230 JRST $TSXB2 ;COMMA, TERMINATE, RTN + 2
4177 005214 301 00 0 00 000060 CAIL 0,"0"
4178 005215 303 00 0 00 000132 CAILE 0,"Z"
4179 005216 254 00 0 00 005231 JRST $TSXB3 ;ERROR, RTN + 1
4180 005217 303 00 0 00 000071 CAILE 0,"9"
4181 005220 301 00 0 00 000101 CAIL 0,"A"
4182 005221 254 00 0 00 005223 JRST $TSXB4 ;ALPHA-NUMERIC
4183 005222 254 00 0 00 005231 JRST $TSXB3 ;ERROR, RTN + 1
4184
4185 005223 640 00 0 00 000040 $TSXB4: TRC 0,40 ;CONVERT TO SIX-BIT
4186 005224 602 01 0 00 000077 TRNE 1,77
4187 005225 254 00 0 00 005231 JRST $TSXB3 ;TOO MANY CHAR'S, RTN + 1
4188 005226 136 00 0 00 000002 IDPB 0,2 ;PUT INTO WORD
4189 005227 254 00 0 00 005206 JRST $TSXB1 ;GET NEXT CHARACTER
4190
4191 005230 350 00 0 17 000000 $TSXB2: AOS (P) ;INCR USRPC FOR RTN + 2 (NORMAL)
4192
4193 005231 200 00 0 00 000001 $TSXB3: MOVE 0,1 ;SIXBIT WORD IN AC0
4194 005232 200 01 0 00 006730 MOVE 1,$TSX1 ;RESTORE AC'S
4195 005233 200 02 0 00 006731 MOVE 2,$TSX2
4196 005234 263 17 0 00 000000 RTN ;EXIT + 1/+2
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 84
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0169
4197 SUBTTL *SUBRTN* PRINT SUBROUTINES
4198
4199 S^;*********************************************************************^
4200 ;* $PNTSX PRINT SIXBIT NORMAL
4201 ;* $PTSXF PRINT SIXBIT FORCED
4202 ;* $PNTCW PRINT DF10 CONTROL WORD
4203 ;* $PNTI1 PRINT OCTAL NUMBER
4204 ;* $CHRPN PRINT CHARACTER
4205 ;* $ASCPN PRINT ASCII CHARACTER/LINE
4206 ;* $DECPN PRINT DECIMAL NUMBER
4207 S^;*********************************************************************^
4208
4209 S^;*********************************************************************^
4210 ;*PRINT SUBROUTINE INITIALIZATION
4211 ;*INITIALIZES CONTROL WORDS
4212 S^;*********************************************************************^
4213
4214 005235 402 00 0 00 006657 $PNTIN: SETZM $INTDF# ;CLEAR DEVICE DEFAULT FLAG
4215 005236 402 00 0 00 030226 SETZM $DVOFF# ;CLEAR DEVICE INITED FLAG
4216 005237 402 00 0 00 030221 SETZM PDISF# ;CLEAR PRINT DISABLED FLAG
4217 005240 402 00 0 00 006712 SETZM $PTINH# ;CLEAR PRINT 'TYPE-IN INHIBIT' FLAG
4218 005241 402 00 0 00 030222 SETZM PNTINH# ;ALLOW EXEC PRINT TYPE IN INHIBIT
4219 005242 402 00 0 00 006636 SETZM XOFFLAG# ;CLEAR XOFF FLAG
4220 005243 402 00 0 00 030217 SETZM PNTFLG# ;CLEAR IN PRINT FLAG
4221 005244 476 00 0 00 030223 SETOM PNTSPC# ;SET PRINT SPACE FLAG
4222 005245 211 00 0 00 011610 MOVNI 0,^D5000 ;SET PRINT ENABLE TO 5000 LINES
4223 005246 202 00 0 00 030220 MOVEM 0,PNTENB
4224 005247 402 00 0 00 030227 SETZM TTYFIL ;ALLOW EXEC FILLERS
4225 005250 402 00 0 00 030234 SETZM $CRLF# ;ALLOW FREE CR/LF
4226 005251 402 00 0 00 030235 SETZM $TABF ;ALLOW TAB CONVERSION
4227 005252 402 00 0 00 030236 SETZM $FFF ;ALLOW FORM FEED CONVERSION
4228 005253 402 00 0 00 030237 SETZM $VTF ;ALLOW VERTICAL TAB CONVERSION
4229
4230 005254 201 00 0 00 030006 $PNTIX: MOVEI REENTR ;SETUP REENTER ADDRESS
4231 005255 202 00 0 00 000124 MOVEM JOBREN
4232 005256 335 00 0 00 030043 SKIPGE MONCTL ;MONITOR CONTROL ?
4233 005257 263 17 0 00 000000 RTN ;YES, DON'T PRINT TITLE
4234 005260 332 00 0 00 030056 SKIPE $ONETM ;FIRST TIME?
4235 005261 263 17 0 00 000000 RTN ;NO .....EXIT
4236 005262 254 00 0 00 002312 JRST $PNTNM+2 ;YES ...PRINT PROGRAM NAME
4237 ;AND EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 85
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0170
4238 S^;*********************************************************************^
4239 ;*PRINT SUBROUTINE ENTRY POINT
4240 ;*EXIT VIA $PNTI4 BELOW
4241 S^;*********************************************************************^
4242
4243 005263 476 00 0 00 030217 $PNTIF: SETOM PNTFLG ;SET IN PRINT FLAG
4244 005264 476 00 0 00 006705 SETOM $PNTTY# ;FORCE TO TTY
4245 005265 402 00 0 00 006712 SETZM $PTINH
4246 005266 254 00 0 00 005300 JRST $PTKL
4247
4248 005267 476 00 0 00 030217 $PNTIT: SETOM PNTFLG ;SET IN PRINT FLAG
4249 005270 402 00 0 00 006705 SETZM $PNTTY ;NOT FORCED TO TTY
4250 005271 331 00 0 00 030220 SKIPL PNTENB# ;PRINT LIMIT REACHED YET?
4251 005272 254 00 0 00 005315 JRST $PNTIB ;YES ..DON'T PRINT
4252 005273 260 17 0 00 004272 GO $SWTCH ;READ DATA SWITCHES INTO AC0
4253 005274 607 00 0 00 040000 TLNN 0,NOPNT ;NO PRINT SWITCH SET?
4254 005275 254 00 0 00 005300 JRST $PTKL
4255 005276 262 17 0 00 000000 GET AC0 ;YES ...RESTORE AC0 FROM STACK (P - 1)
4256 005277 254 00 0 00 005313 JRST $PRNTX ;EXIT, DON'T PRINT
4257
4258 005300 201 00 0 00 003000 $PTKL: MOVEI AC0,3000 ;NORMAL PRINTOUT
4259 005301 332 00 0 00 006705 SKIPE $PNTTY
4260 005302 350 00 0 00 000000 AOS AC0 ;FORCED PRINTOUT
4261 005303 260 17 0 00 002012 GO $DTEXX
4262 005304 254 00 0 00 005331 JRST $PNTIA
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 86
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0171
4263 ;*PRINT ROUTINE EXIT
4264 S^;*********************************************************************^
4265
4266 005305 402 00 0 00 006705 $PNTI4: SETZM $PNTTY ;CLEAR FORCE TO TTY FLAG
4267
4268 005306 200 01 0 00 006674 MOVE 1,$PACA1 ;RESTORE AC'S
4269 005307 200 02 0 00 006675 MOVE 2,$PACA2
4270 005310 200 03 0 00 006676 MOVE 3,$PACA3
4271 005311 200 04 0 00 006677 MOVE 4,$PACA4
4272 005312 200 05 0 00 006700 MOVE 5,$PACA5
4273 005313 402 00 0 00 030217 $PRNTX: SETZM PNTFLG ;CLEAR IN PRINT FLAG
4274 005314 263 17 0 00 000000 RTN ;RETURN
4275
4276 ;*PRINT LIMIT WARNING & ALTERNATE EXIT PATH
4277 S^;*********************************************************************^
4278
4279 005315 262 17 0 00 000000 $PNTIB: GET AC0 ;RESTORE THE STACK (P - 1)
4280 005316 332 00 0 00 030221 SKIPE PDISF# ;FIRST TIME PRINT DISABLED?
4281 005317 254 00 0 00 005313 JRST $PRNTX ;YES ...EXIT )
4282
4283 005320 476 00 0 00 030221 $PNTB1: SETOM PDISF ;NO ........SET IT
4284 005321 202 01 0 00 006674 MOVEM 1,$PACA1 ;SAVE AC'S 1 - 5
4285 005322 202 02 0 00 006675 MOVEM 2,$PACA2
4286 005323 202 03 0 00 006676 MOVEM 3,$PACA3
4287 005324 202 04 0 00 006677 MOVEM 4,$PACA4
4288 005325 202 05 0 00 006700 MOVEM 5,$PACA5
4289 005326 476 00 0 00 006705 SETOM $PNTTY ;SET FORCE TO TTY FLAG
4290 MOVEI [ASCIZ/
4291 ******
4292 EXCEEDED ALLOWED PRINTOUTS
4293 005327 201 00 0 00 006500 /]
4294 005330 254 00 0 00 005602 JRST $ASCPN-1 ;PRINT THE WARNING & EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 87
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0172
4295 S^;*********************************************************************^
4296 ;*PRINT ROUTINE SELECTOR
4297 ;*BASED ON "AC FIELD" = 12 - 17
4298 S^;*********************************************************************^
4299
4300 005331 202 01 0 00 006674 $PNTIA: MOVEM 1,$PACA1# ;SAVE AC1.
4301 005332 202 02 0 00 006675 MOVEM 2,$PACA2# ;SAVE AC2.
4302 005333 202 03 0 00 006676 MOVEM 3,$PACA3# ;SAVE AC3.
4303 005334 202 04 0 00 006677 MOVEM 4,$PACA4# ;SAVE AC4.
4304 005335 202 05 0 00 006700 MOVEM 5,$PACA5# ;SAVE AC5.
4305 005336 262 17 0 00 000000 GET AC0 ;RESTORE AC0 FROM STACK (P - 1)
4306 005337 402 00 0 00 006703 SETZM $PNT# ;CLEAR PRINT HALF WORDS FLAG
4307 005340 200 02 0 00 000040 MOVE 2,LUUO
4308 005341 241 02 0 00 000015 ROT 2,15 ;GET X (AC FIELD)
4309 005342 405 02 0 00 000017 ANDI 2,17 ;OUT OF THE UUO
4310
4311 005343 306 02 0 00 000017 $PNTIC: CAIN 2,17 ;X=17?
4312 005344 254 00 0 00 005602 JRST $PNTLN ;YES. PRINT ASCII LINE
4313 005345 322 02 0 00 005603 JUMPE 2,$ASCPN ;X=0? YES. GO PRINT 1 WORD ASCII
4314 005346 306 02 0 00 000015 CAIN 2,15 ;X=15?
4315 005347 254 00 0 00 005620 JRST $DECPN ;YES, PRINT DECIMALS )
4316 005350 306 02 0 00 000016 CAIN 2,16 ;X=16?
4317 005351 254 00 0 00 005617 JRST $DECSP ;YES, PRINT DECIMALS, LEADING SPACES
4318 005352 306 02 0 00 000013 CAIN 2,13 ;X=13?
4319 005353 254 00 0 00 005570 JRST $PNTI3 ;YES, PRINT OCTALS, 6 SP 6
4320 005354 306 02 0 00 000012 CAIN 2,12 ;X=12?
4321 005355 254 00 0 00 005576 JRST $CHRPN ;YES, PRINT CHARACTER )
4322
4323 005356 254 00 0 00 005546 JRST $PNTI1 ;NONE OF THE ABOVE, PRINT OCTAL
4324 ;(AC FIELD <12 OR = TO 14)
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 88
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0173
4325 S^;*********************************************************************^
4326 ;*SIXBIT PRINT SUBROUTINE
4327 ;*PRINTS SIXBIT WORD IN AC0
4328 S^;*********************************************************************^
4329
4330 ;*NORMAL PRINTOUT
4331 S^;*********************************************************************^
4332
4333 005357 261 17 0 00 000001 $PNTSX: PUT 1 ;SAVE AC1 ON STACK (P + 1)
4334 005360 200 01 0 00 000000 MOVE 1,0 ;PUT SIXBIT WORD IN AC1
4335 005361 201 00 0 00 000000 MOVEI 0,0
4336 005362 246 00 0 00 000006 LSHC 0,6 ;GET NEXT CHAR INTO AC0
4337 005363 271 00 0 00 000040 ADDI 0,40 ;CONVERT TO ASCII
4338 005364 037 12 0 00 000000 PNTCHR ;PRINT IT
4339 005365 326 01 0 00 005361 JUMPN 1,.-4 ;LOOP TILL ALL PRINTED
4340 005366 262 17 0 00 000001 GET 1 ;RESTORE AC1 FROM THE STACK (P - 1)
4341 005367 263 17 0 00 000000 RTN ;EXIT
4342
4343 ;*FORCED PRINTOUT
4344 S^;*********************************************************************^
4345
4346 005370 261 17 0 00 000001 $PTSXF: PUT 1 ;SAVE AC1 ON THE STACK (P + 1)
4347 005371 200 01 0 00 000000 MOVE 1,0 ;PUT SIXBIT WORD IN AC1
4348 005372 201 00 0 00 000000 MOVEI 0,0
4349 005373 246 00 0 00 000006 LSHC 0,6 ;GET NEXT CHAR INTO AC0
4350 005374 271 00 0 00 000040 ADDI 0,40 ;CONVERT TO ASCII
4351 005375 037 12 0 00 000001 PNTCHF ;PRINT
4352 005376 326 01 0 00 005372 JUMPN 1,.-4 ;LOOP TILL ALL PRINTED
4353 005377 262 17 0 00 000001 GET 1 ;FROM THE STACK (P - 1)
4354 005400 263 17 0 00 000000 RTN ;EXIT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 89
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0174
4355 S^;*********************************************************************^
4356 ;*SIXBIT MESSAGE PRINT ROUTINE
4357 ;*PRINTS THE SIXBIT MESSAGE THOSE ADDRESS IS IN AC0
4358 ;*"BACKARROW" (77) SIGNIFIES END OF TEXT
4359 ;*"UPARROW" (76) SIGNIFIES CR/LF
4360 ;*"RIGHT SQUARE BRACKET" (75) SIGNIFIES TAB
4361 S^;*********************************************************************^
4362
4363 005401 261 17 0 00 000005 $PSIXF: PUT 5
4364 005402 474 05 0 00 000000 SETO 5, ;SET FORCED PRINTING FLAG
4365 005403 254 00 0 00 005406 JRST .+3
4366
4367 005404 261 17 0 00 000005 $PSIX: PUT 5
4368 005405 400 05 0 00 000000 SETZ 5, ;NORMAL PRINTING
4369 005406 261 17 0 00 000001 PUT 1
4370 005407 261 17 0 00 000002 PUT 2
4371 005410 261 17 0 00 000003 PUT 3
4372 005411 261 17 0 00 000004 PUT 4
4373
4374 005412 550 04 0 00 000000 HRRZ 4,0 ;MESSAGE ADDRESS TO AC4
4375
4376 005413 201 03 0 00 000006 $PSIX1: MOVEI 3,6 ;6 = NUM OF 6BIT CHAR PER WORD
4377 005414 200 01 0 04 000000 MOVE 1,(4) ;GET FIRST/NEXT WORD OF MESSAGE
4378
4379 005415 400 02 0 00 000000 $PSIX2: SETZ 2,
4380 005416 245 01 0 00 000006 ROTC 1,6 ;C(AC1) = CHAR TO BE PRINTED
4381 005417 306 02 0 00 000077 CAIN 2,77
4382 005420 254 00 0 00 005435 JRST $PSIX5 ;"BACKARROW", DONE
4383 005421 306 02 0 00 000076 CAIN 2,76
4384 005422 254 00 0 00 005432 JRST $PSIX4 ;"UPARROW", CR/LF
4385 005423 306 02 0 00 000075 CAIN 2,75
4386 005424 201 02 0 00 000151 MOVEI 2,151 ;"BRACKET", CHANGE TO TAB (151+40=11)
4387 005425 201 00 0 02 000040 MOVEI 0,40(2) ;CHANGE TO ASCII
4388 JUMPN 5,[PNTCHF
4389 005426 326 05 0 00 006510 JRST .+2] ;FORCED PRINT
4390 005427 037 12 0 00 000000 PNTCHR
4391 005430 366 03 0 00 005415 $PSIX3: SOJN 3,$PSIX2 ;PRINTED ALL CHARS FROM THIS WORD ?
4392 005431 344 04 0 00 005413 AOJA 4,$PSIX1 ;YES, DO NEXT WORD
4393
4394 $PSIX4: JUMPN 5,[PCRLF
4395 005432 326 05 0 00 006512 JRST .+2]
4396 005433 037 00 0 00 030242 PCRL ;PRINT CR/LF
4397 005434 254 00 0 00 005430 JRST $PSIX3
4398
4399 005435 262 17 0 00 000004 $PSIX5: GET 4
4400 005436 262 17 0 00 000003 GET 3
4401 005437 262 17 0 00 000002 GET 2
4402 005440 262 17 0 00 000001 GET 1
4403 005441 262 17 0 00 000005 GET 5
4404 005442 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 90
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0175
4405 S^;*********************************************************************^
4406 ;*OCTAL SUPPRESS LEADING ZEROS PRINT ROUTINE
4407 ;*PRINTS NUMBER IN AC0, SUPPRESSING LEADING ZEROS
4408 ;*PRINTS MINUS SIGN IF NUMBER IS NEGATIVE
4409 S^;*********************************************************************^
4410
4411 005443 261 17 0 00 000005 $POCSF: PUT 5
4412 005444 474 05 0 00 000000 SETO 5, ;FORCED PRINTOUT
4413 005445 254 00 0 00 005450 JRST .+3
4414
4415 005446 261 17 0 00 000005 $POCS: PUT 5
4416 005447 400 05 0 00 000000 SETZ 5, ;NORMAL PRINTOUT
4417 005450 261 17 0 00 000001 PUT 1
4418 005451 261 17 0 00 000002 PUT 2
4419 005452 261 17 0 00 000003 PUT 3
4420 005453 261 17 0 00 000004 PUT 4
4421
4422 005454 200 02 0 00 000000 MOVE 2,0
4423 005455 325 02 0 00 005462 JUMPGE 2,$POCS1 ;IS NUMBER NEGATIVE ?
4424 005456 201 00 0 00 000055 MOVEI "-"
4425 JUMPN 5,[PNTCHF
4426 005457 326 05 0 00 006514 JRST .+2]
4427 005460 037 12 0 00 000000 PNTCHR ;YES, PRINT MINUS SIGN
4428 005461 210 02 0 00 000002 MOVN 2,2 ;MAKE NUMBER POSITIVE
4429
4430 005462 400 04 0 00 000000 $POCS1: SETZ 4,
4431 005463 403 03 0 00 000001 SETZB 3,1
4432 005464 322 02 0 00 005472 JUMPE 2,$POCS3 ;IF NUMBER 0, PRINT 1 ZERO
4433
4434 005465 201 03 0 00 000014 MOVEI 3,^D12 ;PRINT UP TO 12 DIGITS
4435 005466 400 01 0 00 000000 $POCS2: SETZ 1,
4436 005467 246 01 0 00 000003 LSHC 1,3
4437 005470 322 01 0 00 005504 JUMPE 1,$POCS5 ;IS THIS DIGIT ZERO ?
4438 005471 474 04 0 00 000000 SETO 4, ;NO, SET NON-ZERO DIGIT FLAG
4439 005472 201 00 0 01 000060 $POCS3: MOVEI "0"(1) ;MAKE ASCII NUMBER
4440 JUMPN 5,[PNTCHF
4441 005473 326 05 0 00 006516 JRST .+2]
4442 005474 037 12 0 00 000000 PNTCHR ;PRINT DIGIT
4443
4444 005475 367 03 0 00 005466 $POCS4: SOJG 3,$POCS2 ;ALL DONE ?
4445 005476 262 17 0 00 000004 GET 4
4446 005477 262 17 0 00 000003 GET 3
4447 005500 262 17 0 00 000002 GET 2
4448 005501 262 17 0 00 000001 GET 1
4449 005502 262 17 0 00 000005 GET 5
4450 005503 263 17 0 00 000000 RTN
4451
4452 005504 322 04 0 00 005475 $POCS5: JUMPE 4,$POCS4 ;PRINTED NON-ZERO DIGIT ?
4453 005505 254 00 0 00 005472 JRST $POCS3 ;YES, PRINT ZEROS
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 91
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0176
4454 S^;*********************************************************************^
4455 ;*DF10 CONTROL WORD PRINT ROUTINE
4456 ;*PRINTS WORD IN AC0
4457 ;*DF22F = 0, ###### ###### ,18 BIT DF10
4458 ;* -1, ##### ######## ,22 BIT DF10
4459 S^;*********************************************************************^
4460
4461 005506 202 01 0 00 006710 $PNTCW: MOVEM 1,$PTCA# ;SAVE AC1
4462 005507 201 01 0 00 000000 MOVEI 1,0 ;NORMAL PRINTOUT
4463 005510 202 02 0 00 006711 MOVEM 2,$PTCB# ;SAVE AC2
4464 005511 200 02 0 00 000000 MOVE 2,0
4465 005512 336 00 0 00 030142 SKIPN DF22F# ;22 OR 18 BIT DF10 ?
4466 005513 254 00 0 00 005527 JRST $PNTC2
4467 005514 242 00 0 00 777753 LSH 0,-^D21 ;NEW 22 BIT DF10
4468 005515 620 00 0 00 000001 TRZ 0,1
4469 JUMPN 1,[PNT5F
4470 005516 326 01 0 00 006520 JRST .+2]
4471 005517 037 05 0 00 000000 PNT5 ;PRINT WORD COUNT, 14 BITS
4472 005520 200 00 0 00 000002 MOVE 0,2
4473 005521 621 00 0 00 777760 TLZ 0,777760
4474 JUMPN 1,[PNTADF
4475 005522 326 01 0 00 006522 JRST .+2]
4476 005523 037 10 0 00 000000 PNTADR ;PRINT ADDRESS, 22 BITS
4477 005524 200 02 0 00 006711 $PNTC3: MOVE 2,$PTCB
4478 005525 200 01 0 00 006710 MOVE 1,$PTCA
4479 005526 263 17 0 00 000000 RTN ;EXIT
4480
4481 005527 554 00 0 00 000000 $PNTC2: HLRZ ;18 BIT DF10
4482 JUMPN 1,[PNT6F
4483 005530 326 01 0 00 006524 JRST .+2]
4484 005531 037 06 0 00 000000 PNT6 ;PRINT WORD COUNT, 18 BITS
4485 005532 201 00 0 00 000040 MOVEI 40
4486 JUMPN 1,[PNTCHF
4487 005533 326 01 0 00 006526 JRST .+2]
4488 005534 037 12 0 00 000000 PNTCHR ;EXTRA SPACE
4489 005535 550 00 0 00 000002 HRRZ 0,2
4490 JUMPN 1,[PNT6F
4491 005536 326 01 0 00 006530 JRST .+2]
4492 005537 037 06 0 00 000000 PNT6 ;PRINT ADDRESS, 18 BITS
4493 005540 254 00 0 00 005524 JRST $PNTC3
4494
4495 005541 202 01 0 00 006710 $PNTCF: MOVEM 1,$PTCA ;SAVE AC1
4496 ;FORCED PRINTOUT
4497 005542 200 01 0 00 005541 MOVE 1,$PNTCF
4498 005543 202 01 0 00 005506 MOVEM 1,$PNTCW ;SETUP RETURN
4499 005544 201 01 0 00 000001 MOVEI 1,1 ;FORCED PRINT INDEX
4500 005545 254 00 0 00 005510 JRST $PNTCW+2 ;REST AS ABOVE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 92
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0177
4501 S^;*********************************************************************^
4502 ;*OCTAL PRINTOUT ROUTINE
4503 ;*PRINTS NUMBER IN AC0
4504 S^;*********************************************************************^
4505
4506 005546 200 03 0 00 000002 $PNTI1: MOVE 3,2 ;MOVE X INTO AC3.
4507 005547 241 00 0 00 777775 ROT 0,-3 ;ROT OCTAL NUM 3 PLACES
4508 005550 366 03 0 00 005547 SOJN 3,.-1 ;X AMOUNT OF TIMES.
4509
4510 005551 201 01 0 00 000006 $PNTI2: MOVEI 1,6 ;PUT 6 INTO AC1 SO THAT
4511 005552 245 00 0 00 000003 ROTC 0,3 ;C(AC1) AFTER THE ROTC WILL BE 60
4512 005553 265 03 0 00 005650 JSP 3,$TOUT ;PLUS NUMBER TO BE PRINTED
4513 005554 366 02 0 00 005551 SOJN 2,$PNTI2 ;SUB 1 FROM X...PRINT UNTIL X=0.
4514 005555 202 01 0 00 006704 MOVEM 1,$PNTSV# ;SAVE NUMBER
4515 005556 336 00 0 00 030223 SKIPN PNTSPC
4516 005557 254 00 0 00 005562 JRST .+3
4517 005560 201 01 0 00 000040 MOVEI 1,40 ;AT THIS POINT WE HAVE PRINTED
4518 005561 265 03 0 00 005650 JSP 3,$TOUT ;X AMOUNT OF NUMBER(S) AND NOW A SPACE
4519 005562 336 00 0 00 006703 SKIPN $PNT# ;PRINT 6 SP 6 FLAG SET?
4520 005563 254 00 0 00 005305 JRST $PNTI4 ;NO, EXIT )
4521 005564 200 01 0 00 006704 MOVE 1,$PNTSV ;RESTORE NUMBER
4522 005565 201 02 0 00 000006 MOVEI 2,6 ;SETUP FOR 2ND HALF
4523 005566 402 00 0 00 006703 SETZM $PNT ;CLEAR PRINT SPACE FLAG
4524 005567 254 00 0 00 005551 JRST $PNTI2 ;PRINT REST OF NUMBER
4525
4526 005570 201 03 0 00 000014 $PNTI3: MOVEI 3,14 ;SETUP FOR LH WORD
4527 005571 201 02 0 00 000006 MOVEI 2,6 ;SETUP FOR FIRST HALF
4528 005572 476 00 0 00 006703 SETOM $PNT ;SET PRINT 6 SP 6 FLAG
4529 005573 476 00 0 00 030223 SETOM PNTSPC ;SET THE PRINT SPACE FLAG
4530 005574 254 00 0 00 005547 JRST $PNTI1+1 ;PRINT FIRST HALF NUMBER
4531 005575 254 00 0 00 005305 JRST $PNTI4 ;EXIT
4532
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 93
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0178
4533 S^;*********************************************************************^
4534 ;*ASCII/CHARACTER PRINTOUT ROUTINE
4535 ;*PRINTS CHAR IN LOWER 7 BITS OF AC0
4536 S^;*********************************************************************^
4537
4538 005576 405 00 0 00 000177 $CHRPN: ANDI 0,177 ;STRIP CHAR TO 7 BITS
4539 005577 200 01 0 00 000000 MOVE 1,0
4540 005600 265 03 0 00 005650 JSP 3,$TOUT ;PRINT A CHARACTER
4541 005601 254 00 0 00 005305 JRST $PNTI4 ;LEAVE
4542
4543 S^;*********************************************************************^
4544 ;*PRINTS ASCII WHOSE ADDRESS IS IN AC0
4545 S^;*********************************************************************^
4546
4547 005602 476 00 0 00 006703 $PNTLN: SETOM $PNT# ;SET PRINT MORE THAN 1 WORD FLAG.
4548
4549 005603 202 00 0 00 006707 $ASCPN: MOVEM 0,$POINT# ;SAVE ADDRESS OF ASCII MESSAGE.
4550 005604 201 02 0 00 000005 $ASCP1: MOVEI 2,5 ;5 = NUM OF ASCII CHAR. IN A WORD.
4551 005605 200 00 1 00 006707 MOVE 0,@$POINT ;C(AC0) = FIRST/NEXT WORD OF ASCII MESS
4552
4553 005606 400 01 0 00 000000 $ASCP2: SETZ 1, ;CLEAR AC1.
4554 005607 245 00 0 00 000007 ROTC 0,7 ;C(AC1) = CHAR TO BE PRINTED.
4555 005610 322 01 0 00 005305 JUMPE 1,$PNTI4 ;CHAR = NULL?..NO MORE CHAR..EXIT
4556 005611 265 03 0 00 005650 JSP 3,$TOUT ;PRINT A CHAR
4557 005612 366 02 0 00 005606 SOJN 2,$ASCP2 ;PNT ALL CHAR FROM THIS WORD?
4558 005613 350 00 0 00 006707 AOS $POINT ;YES. INC TO GET NEXT WORD.
4559 005614 336 00 0 00 006703 SKIPN $PNT ;PNT MORE THAN ONE WORD FLAG SET?
4560 005615 254 00 0 00 005305 JRST $PNTI4 ;NO..LEAVE
4561 005616 254 00 0 00 005604 JRST $ASCP1 ;YES...RETURN TO PNT NEXT WORD.
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 94
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* PRINT SUBROUTINES SEQ 0179
4562 S^;*********************************************************************^
4563 ;*DECIMAL PRINTOUT ROUTINE
4564 ;*PRINTS NUMBER IN AC0
4565 S^;*********************************************************************^
4566
4567 005617 476 00 0 00 006703 $DECSP: SETOM $PNT ;SET LEADING SPACES PRINT CONTROL
4568
4569 005620 325 00 0 00 005624 $DECPN: JUMPGE 0,.+4 ;IS NUMBER NEGATIVE ?
4570 005621 201 01 0 00 000055 MOVEI 1,"-" ;YES, PRINT MINUS SIGN
4571 005622 265 03 0 00 005650 JSP 3,$TOUT
4572 005623 210 00 0 00 000000 MOVN 0,0 ;MAKE NUMBER POSITIVE
4573 005624 260 17 0 00 005626 GO $RADIX ;DECIMAL-ASCII CONVERSION & PRINT CHARS
4574 005625 254 00 0 00 005305 JRST $PNTI4 ;EXIT
4575
4576 005626 200 02 0 00 030264 $RADIX: MOVE 2,RADLSC ;SETUP DIGIT COUNTER
4577 005627 246 00 0 00 777735 LSHC 0,-^D35 ;SHIFT RIGHT 35 BITS INTO AC1
4578 005630 242 01 0 00 777777 LSH 1,-1 ;VACATE AC1 SIGN BIT
4579
4580 005631 234 00 0 00 030262 $DCCMP: DIV 0,RADIX ;DIVIDE DOUBLE LENGTH INTERGER BY 10
4581 005632 506 01 0 17 000000 HRLM 1,(17) ;SAVE DIGIT
4582 005633 370 00 0 00 000002 SOS 2 ;COUNT DIGIT
4583 005634 322 00 0 00 005642 JUMPE 0,$LDSPS ;ALL DIGITS FORMED?
4584 005635 260 17 0 00 005627 GO $RADIX+1 ;NO, COMPUTE NEXT ONE
4585
4586 005636 554 01 0 17 000000 $DECP1: HLRZ 1,(17) ;YES, RETRIEVE DIGIT
4587 005637 271 01 0 00 000060 ADDI 1,60 ;CONVERT TO ASCII
4588 005640 265 03 0 00 005650 JSP 3,$TOUT ;TYPE-OUT A DIGIT
4589 005641 263 17 0 00 000000 RTN ;GET NEXT/EXIT
4590
4591 005642 336 00 0 00 006703 $LDSPS: SKIPN $PNT ;LEADING SPACES PRINT SET?
4592 005643 254 00 0 00 005636 JRST $DECP1 ;NO ...GO PRINT
4593 ;YES ...DO IT
4594 005644 361 02 0 00 005636 $DCSPS: SOJL 2,$DECP1 ;SPACES COMPLETE ? YES
4595 005645 200 01 0 00 030263 MOVE 1,RADLSP ;NO, PRINT LEADING SPACE
4596 005646 265 03 0 00 005650 JSP 3,$TOUT ;TYPE OUT THE SPACE
4597 005647 254 00 0 00 005644 JRST .-3 ;CHECK FOR NEXT
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 95
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0180
4598 SUBTTL *SUBRTN* CHARACTER OUTPUT ROUTINES
4599
4600 S^;*********************************************************************^
4601 ;*OUTPUT TERMINATION CONTROL ROUTINE
4602 S^;*********************************************************************^
4603
4604 005650 202 00 0 00 006701 $TOUT: MOVEM 0,$PACB0# ;SAVE AC0.
4605 005651 202 01 0 00 006706 MOVEM 1,$PNTYC# ;SAVE CHARACTER TO BE PRINTED
4606 005652 254 00 0 00 005653 JRST $TOUTB ;KL10 ...DON'T CHECK FOR TYPE INS
4607
4608 S^;*********************************************************************^
4609 ;*OVERALL CHARACTER OUTPUT CONTROL ROUTINE
4610 S^;*********************************************************************^
4611
4612 005653 200 00 0 00 030046 $TOUTB: MOVE AC0,CONSW ;DATA SWITCHES INTO AC0
4613 005654 350 00 0 00 006652 AOS $CARCT# ;INC CHAR CNTR.
4614 005655 306 01 0 00 000007 CAIN 1,7 ;CHAR A BELL ?
4615 005656 402 00 0 00 006712 SETZM $PTINH ;YES, CLEAR PRINT INHIBIT
4616 005657 302 01 0 00 000015 CAIE 1,15 ;CHAR A CR?
4617 005660 254 00 0 00 005664 JRST $TOUB1 ;NO-CHK FOR LF
4618 005661 336 00 0 00 006712 SKIPN $PTINH ;DON'T COUNT ^O'ED LINES
4619 005662 350 00 0 00 030220 AOS PNTENB ;COUNT LINES, TILL NO MORE
4620 005663 402 00 0 00 006652 SETZM $CARCT ;CLR CHAR CNTR.
4621
4622 005664 306 01 0 00 000012 $TOUB1: CAIN 1,12 ;IS CHAR A LF?
4623 005665 402 00 0 00 006652 SETZM $CARCT ;YES-CLR CHAR CNTR.
4624 005666 332 00 0 00 006705 SKIPE $PNTTY ;NO-IS PRINT FORCED ON?
4625 005667 254 00 0 00 005672 JRST $TOUB2 ;YES-DON'T CHECK NON-PNT SW
4626 005670 603 00 0 00 040000 TLNE 0,NOPNT ;IS NON PNT SWITCH ON?
4627 005671 254 00 0 03 000000 JRST (3) ;YES, RETURN
4628
4629 005672 254 00 0 00 005703 $TOUB2: JRST $TOUTC ;SEND CHAR EXEC MODE
4630
4631 ;*ALT-MODE TRANSFER TO USER ROUTINE
4632 S^;*********************************************************************^
4633
4634 005673 202 00 0 00 000130 MOVEM 0,JOBOPC ;2-TERMINATED IN JOBOPC
4635 005674 254 00 1 00 030062 JRST @CNTLC ;3-TERMINATE
4636 005675 265 00 0 00 005673 $TUTX2: JSP 0,.-2 ;1-SAVE PC WHERE
4637 005676 254 00 0 00 005653 JRST $TOUTB ;4-HERE IF CONTINUED
4638 005677 202 00 0 00 000130 MOVEM 0,JOBOPC ;2-TERMINATED IN JOBOPC
4639 005700 254 00 1 00 030063 JRST @ALTMGO ;3-TERMINATE
4640 005701 265 00 0 00 005677 $TUTX3: JSP 0,.-2 ;1-SAVE PC WHERE
4641 005702 254 00 0 00 005653 JRST $TOUTB ;4-HERE IF CONTINUED
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 96
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0181
4642 S^;*********************************************************************^
4643 ;*EXEC MODE CHARACTER OUTPUT CONTROL ROUTINE
4644 S^;*********************************************************************^
4645
4646 005703 603 00 0 00 020000 $TOUTC: TLNE 0,PNTLPT ;PRINT ON LINE PRINTER ?
4647 005704 254 00 0 00 005724 JRST $TOUT1 ;YES
4648
4649 005705 332 00 0 00 006712 $PNTY1: SKIPE $PTINH ;NO, TYPE-OUT INHIBIT ?
4650 005706 254 00 0 00 005722 JRST $TOUTA ;YES-EXIT
4651
4652 005707 200 00 0 00 006706 $PNTY2: MOVE 0,$PNTYC ;RESTORE CHAR (SAVED @ $TOUT)
4653 005710 332 00 0 00 030236 SKIPE $FFF ;FORM FEED CONV INHIBITED ?
4654 005711 254 00 0 00 005714 JRST .+3 ;YES, DON'T DO IT
4655 005712 306 00 0 00 000014 CAIN 0,14 ;IS CHAR A FF ?
4656 005713 254 00 0 00 005750 JRST $FFEED ;YES, SUBSTITUTE 8 LF'S
4657 005714 332 00 0 00 030237 SKIPE $VTF ;VERT TAB CONV INHIBITED ?
4658 005715 254 00 0 00 005720 JRST $PNTY3 ;YES, DON'T DO IT
4659 005716 306 00 0 00 000013 CAIN 0,13 ;IS CHAR A VT ?
4660 005717 254 00 0 00 005746 JRST $VTAB ;YES, SUBSTITUTE 4 LF'S
4661
4662 005720 260 17 0 00 005755 $PNTY3: GO $TYOUT
4663 005721 254 00 0 00 005722 JRST $TOUTA ;RETURN
4664
4665 ;*RETURN BACK TO PRINTING ROUTINE FROM CHAR OUTPUT
4666 S^;*********************************************************************^
4667 005722 200 00 0 00 006701 $TOUTA: MOVE AC0,$PACB0 ;RESTORE AC0
4668 005723 254 00 0 03 000000 JRST (3) ;RETURN TO PRINT ROUTINE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 97
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0182
4669 S^;*********************************************************************^
4670 ;*EXEC MODE LPT OUTPUT
4671 S^;*********************************************************************^
4672
4673 005724 306 01 0 00 000007 $TOUT1: CAIN 1,7 ;NO BELLS TO LPT
4674 005725 254 00 0 00 005705 JRST $PNTY1
4675 005726 306 01 0 00 000026 CAIN 1,26 ;NO NULLS TO LPT
4676 005727 254 00 0 00 005705 JRST $PNTY1
4677 005730 242 01 0 00 000001 LSH 1,1 ;C(AC1) HAS TO BE LEFT JUSTIFIED.
4678 005731 405 01 0 00 000376 ANDI 1,376 ;CLEAR PARITY BIT
4679 005732 7 124 14 0 00 000001 DATAO LPT,1 ;PRINT CHAR ONTO LPT.
4680 005733 200 01 0 00 006532 MOVE 1,[^D<<1000*2000>/7>] ;ABOUT TWO SECONDS
4681 005734 7 124 34 0 00 000100 CONSO LPT,100 ;LPT DONE?
4682 005735 367 01 0 00 005734 SOJG 1,.-1 ;NO.
4683 005736 327 01 0 00 005742 JUMPG 1,.+4 ;IF LPT HUNG, CLEAR LPT PRINT
4684 005737 200 00 0 00 030046 MOVE 0,CONSW ;FOR THIS PRINT ENTRY
4685 005740 621 00 0 00 020000 TLZ 0,PNTLPT
4686 005741 202 00 0 00 030046 MOVEM 0,CONSW
4687 005742 336 00 0 00 006705 SKIPN $PNTTY ;SKIP IF MSG ALSO FORCED TO TTY
4688 005743 327 01 0 00 005722 JUMPG 1,$TOUTA ;RETURN IF LPT NOT HUNG, ELSE ALL TO TTY
4689 005744 200 01 0 00 006706 MOVE 1,$PNTYC
4690 005745 254 00 0 00 005705 JRST $PNTY1 ;GO SET UP MORE OUTPUT, IF ANY
4691
4692 ;*TELETYPE FF & VT CONVERSION
4693 S^;*********************************************************************^
4694
4695 005746 201 01 0 00 000004 $VTAB: MOVEI 1,4
4696 005747 334 00 0 00 000000 SKIPA
4697
4698 005750 201 01 0 00 000010 $FFEED: MOVEI 1,^D8
4699 005751 201 00 0 00 000012 MOVEI 0,12
4700 005752 260 17 0 00 005755 GO $TYOUT ;SEND LF'S
4701 005753 367 01 0 00 005751 SOJG 1,$FFEED+1
4702 005754 254 00 0 00 005722 JRST $TOUTA ;RETURN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 98
SUBKLM MAC 11-Sep-78 11:38 *SUBRTN* CHARACTER OUTPUT ROUTINES SEQ 0183
4703 S^;*********************************************************************^
4704 ;*EXEC MODE CHARACTER OUTPUT
4705 S^;*********************************************************************^
4706
4707 005755 261 17 0 00 000000 $TYOUT: PUT AC0
4708 005756 405 00 0 00 000177 ANDI AC0,177 ;CLEAR JUNK BITS
4709 005757 260 17 0 00 002012 GO $DTEXX ;SEND TO PDP-11
4710 005760 262 17 0 00 000000 GET AC0
4711 005761 263 17 0 00 000000 RTN
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 1
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0184
4712 SUBTTL *STOR* RESERVED STORAGE
4713
4714 ;MODIFY DEVICE CODE CODE TABLE
4715 005762 $MDLST: $MDSXB CCI,14^
4716 005762 434351 000014 <SIXBIT/CCI/>!14 ;CCI DEVICE CODE IS 14^
4717 $MDSXB CCI2,20^
4718 005763 434351 220020 <SIXBIT/CCI2/>!20 ;CCI2 DEVICE CODE IS 20^
4719 $MDSXB ADC,24^
4720 005764 414443 000024 <SIXBIT/ADC/>!24 ;ADC DEVICE CODE IS 24^
4721 $MDSXB ADC2,30^
4722 005765 414443 220030 <SIXBIT/ADC2/>!30 ;ADC2 DEVICE CODE IS 30^
4723 $MDSXB DLB,60^
4724 005766 445442 000060 <SIXBIT/DLB/>!60 ;DLB DEVICE CODE IS 60^
4725 $MDSXB DLC,64^
4726 005767 445443 000064 <SIXBIT/DLC/>!64 ;DLC DEVICE CODE IS 64^
4727 $MDSXB DLB2,160^
4728 005770 445442 220160 <SIXBIT/DLB2/>!160 ;DLB2 DEVICE CODE IS 160^
4729 $MDSXB DLC2,164^
4730 005771 445443 220164 <SIXBIT/DLC2/>!164 ;DLC2 DEVICE CODE IS 164^
4731 $MDSXB CLK,70^
4732 005772 435453 000070 <SIXBIT/CLK/>!70 ;CLK DEVICE CODE IS 70^
4733 $MDSXB CLK2,74^
4734 005773 435453 220074 <SIXBIT/CLK2/>!74 ;CLK2 DEVICE CODE IS 74^
4735 $MDSXB LPT,124^
4736 005774 546064 000124 <SIXBIT/LPT/>!124 ;LPT DEVICE CODE IS 124^
4737 $MDSXB LPT2,234^
4738 005775 546064 220234 <SIXBIT/LPT2/>!234 ;LPT2 DEVICE CODE IS 234^
4739 $MDSXB CDP,110^
4740 005776 434460 000110 <SIXBIT/CDP/>!110 ;CDP DEVICE CODE IS 110^
4741 $MDSXB DIS,130^
4742 005777 445163 000130 <SIXBIT/DIS/>!130 ;DIS DEVICE CODE IS 130^
4743 $MDSXB DIS2,134^
4744 006000 445163 220134 <SIXBIT/DIS2/>!134 ;DIS2 DEVICE CODE IS 134^
4745 $MDSXB PLT,140^
4746 006001 605464 000140 <SIXBIT/PLT/>!140 ;PLT DEVICE CODE IS 140^
4747 $MDSXB PLT2,144^
4748 006002 605464 220144 <SIXBIT/PLT2/>!144 ;PLT2 DEVICE CODE IS 144^
4749 $MDSXB CR,150^
4750 006003 436200 000150 <SIXBIT/CR/>!150 ;CR DEVICE CODE IS 150^
4751 $MDSXB CR2,154^
4752 006004 436222 000154 <SIXBIT/CR2/>!154 ;CR2 DEVICE CODE IS 154^
4753 $MDSXB DSK,170^
4754 006005 446353 000170 <SIXBIT/DSK/>!170 ;DSK DEVICE CODE IS 170^
4755 $MDSXB DSK2,174^
4756 006006 446353 220174 <SIXBIT/DSK2/>!174 ;DSK2 DEVICE CODE IS 174^
4757 $MDSXB DLS,240^
4758 006007 445463 000240 <SIXBIT/DLS/>!240 ;DLS DEVICE CODE IS 240^
4759 $MDSXB DLS2,244^
4760 006010 445463 220244 <SIXBIT/DLS2/>!244 ;DLS2 DEVICE CODE IS 244^
4761 $MDSXB DPC,250^
4762 006011 446043 000250 <SIXBIT/DPC/>!250 ;DPC DEVICE CODE IS 250^
4763 $MDSXB DPC2,254^
4764 006012 446043 220254 <SIXBIT/DPC2/>!254 ;DPC2 DEVICE CODE IS 254^
4765 $MDSXB DPC3,260^
4766 006013 446043 230260 <SIXBIT/DPC3/>!260 ;DPC3 DEVICE CODE IS 260^
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 1-1
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0185
4767 $MDSXB DPC4,264^
4768 006014 446043 240264 <SIXBIT/DPC4/>!264 ;DPC4 DEVICE CODE IS 264^
4769 $MDSXB RHA,270^
4770 006015 625041 000270 <SIXBIT/RHA/>!270 ;RHA DEVICE CODE IS 270^
4771 $MDSXB RHB,274^
4772 006016 625042 000274 <SIXBIT/RHB/>!274 ;RHB DEVICE CODE IS 274^
4773 $MDSXB DTC,320^
4774 006017 446443 000320 <SIXBIT/DTC/>!320 ;DTC DEVICE CODE IS 320^
4775 $MDSXB DTC2,330^
4776 006020 446443 220330 <SIXBIT/DTC2/>!330 ;DTC2 DEVICE CODE IS 330^
4777 $MDSXB DTS,324^
4778 006021 446463 000324 <SIXBIT/DTS/>!324 ;DTS DEVICE CODE IS 324^
4779 $MDSXB DTS2,334^
4780 006022 446463 220334 <SIXBIT/DTS2/>!334 ;DTS2 DEVICE CODE IS 334^
4781 $MDSXB TMC,340^
4782 006023 645543 000340 <SIXBIT/TMC/>!340 ;TMC DEVICE CODE IS 340^
4783 $MDSXB TMC2,350^
4784 006024 645543 220350 <SIXBIT/TMC2/>!350 ;TMC2 DEVICE CODE IS 350^
4785 $MDSXB TMS,344^
4786 006025 645563 000344 <SIXBIT/TMS/>!344 ;TMS DEVICE CODE IS 344^
4787 $MDSXB TMS2,354^
4788 006026 645563 220354 <SIXBIT/TMS2/>!354 ;TMS2 DEVICE CODE IS 354^
4789 $MDSXB DSS,460^
4790 006027 446363 000460 <SIXBIT/DSS/>!460 ;DSS DEVICE CODE IS 460^
4791 $MDSXB DSS2,470^
4792 006030 446363 220470 <SIXBIT/DSS2/>!470 ;DSS2 DEVICE CODE IS 470^
4793 $MDSXB DSI,464^
4794 006031 446351 000464 <SIXBIT/DSI/>!464 ;DSI DEVICE CODE IS 464^
4795 $MDSXB DSI2,474^
4796 006032 446351 220474 <SIXBIT/DSI2/>!474 ;DSI2 DEVICE CODE IS 474^
4797 $MDSXB RH0,540^
4798 006033 625020 000540 <SIXBIT/RH0/>!540 ;RH0 DEVICE CODE IS 540^
4799 $MDSXB RH1,544^
4800 006034 625021 000544 <SIXBIT/RH1/>!544 ;RH1 DEVICE CODE IS 544^
4801 $MDSXB RH2,550^
4802 006035 625022 000550 <SIXBIT/RH2/>!550 ;RH2 DEVICE CODE IS 550^
4803 $MDSXB RH3,554^
4804 006036 625023 000554 <SIXBIT/RH3/>!554 ;RH3 DEVICE CODE IS 554^
4805 $MDSXB RH4,560^
4806 006037 625024 000560 <SIXBIT/RH4/>!560 ;RH4 DEVICE CODE IS 560^
4807 $MDSXB RH5,564^
4808 006040 625025 000564 <SIXBIT/RH5/>!564 ;RH5 DEVICE CODE IS 564^
4809 $MDSXB RH6,570^
4810 006041 625026 000570 <SIXBIT/RH6/>!570 ;RH6 DEVICE CODE IS 570^
4811 $MDSXB RH7,574^
4812 006042 625027 000574 <SIXBIT/RH7/>!574 ;RH7 DEVICE CODE IS 574^
4813
4814 000061 $MDEND=.-$MDLST ;COMPUTES LENGTH OF TABLE
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0186
4815 ;PROGRAM LITERALS
4816 006043 LIT
4817 006043 254 00 0 00 002302
4818 006044 254 00 0 00 002365
4819 006045 015 012 105 130 105
4820 006046 103 040 117 116 114
4821 006047 131 015 012 000 000
4822 006050 540000 540001
4823 006051 020000 020000
4824 006052 000002 000002
4825 006053 260 17 0 00 001170
4826 006054 254 00 0 00 001251
4827 006055 76 51 54 54 45 47
4828 006056 41 54 00 65 65 57
4829 006057 76 65 65 57 75 75
4830 006060 46 54 41 47 63 75
4831 006061 00 00 60 43 76 77
4832 006062 777577 030303
4833 006063 76 12 12 12 12 12
4834 006064 76 65 65 57 00 60
4835 006065 54 51 63 64 00 45
4836 006066 62 62 00 60 35 77
4837 006067 76 45 62 62 57 62
4838 006070 00 55 65 65 57 00
4839 006071 35 00 77 00 00 00
4840 006072 037 12 0 00 000001
4841 006073 254 00 0 00 001405
4842 006074 037 15 0 00 000003
4843 006075 254 00 0 00 001405
4844 006076 037 14 0 00 000003
4845 006077 254 00 0 00 001405
4846 006100 037 17 0 00 000001
4847 006101 254 00 0 00 001405
4848 006102 000001 000001
4849 006103 76 64 45 63 64 00
4850 006104 60 41 63 63 00 43
4851 006105 57 65 56 64 00 35
4852 006106 00 77 00 00 00 00
4853 006107 76 60 43 35 00 00
4854 006110 77 00 00 00 00 00
4855 006111 76 63 67 51 64 43
4856 006112 50 45 63 00 35 00
4857 006113 77 00 00 00 00 00
4858 006114 76 45 62 62 57 62
4859 006115 00 51 56 00 77 00
4860 006116 00 15 00 77 00 00
4861 006117 76 77 00 00 00 00
4862 006120 037 00 0 00 000000
4863 006121 76 43 57 62 62 45
4864 006122 43 64 32 00 00 77
4865 006123 76 41 43 64 65 41
4866 006124 54 32 00 00 00 77
4867 006125 76 44 51 63 43 62
4868 006126 45 60 32 00 00 77
4869 006127 000140 000141
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2-1
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0187
4870 006130 000444 000445
4871 006131 264 00 0 00 006603
4872 006132 76 63 60 65 62 51
4873 006133 57 65 63 00 44 64
4874 006134 45 00 51 56 64 76
4875 006135 77 00 00 00 00 00
4876 006136 777777 777777
4877 006137 264 00 0 00 002107
4878 006140 300000 400000
4879 006141 000001 006615
4880 006142 45 62 62 57 62 00
4881 006143 50 41 54 64 00 41
4882 006144 64 00 77 00 00 00
4883 006145 46 41 64 41 54 00
4884 006146 60 62 57 47 62 41
4885 006147 55 00 45 62 62 57
4886 006150 62 00 41 64 00 77
4887 006151 104 104 124 000 000
4888 006152 66 45 62 63 51 57
4889 006153 56 00 77 00 00 00
4890 006154 14 00 63 66 35 77
4891 006155 14 00 55 43 66 35
4892 006156 77 00 00 00 00 00
4893 006157 14 00 55 43 57 35
4894 006160 77 00 00 00 00 00
4895 006161 14 00 50 57 35 77
4896 006162 14 00 26 20 50 72
4897 006163 77 00 00 00 00 00
4898 006164 14 00 25 20 50 72
4899 006165 77 00 00 00 00 00
4900 006166 14 00 43 60 65 03
4901 006167 35 77 00 00 00 00
4902 006170 76 12 12 12 12 12
4903 006171 76 60 54 51 63 64
4904 006172 00 65 46 54 57 67
4905 006173 76 77 00 00 00 00
4906 006174 264 00 0 00 030104
4907 006175 254 00 0 00 002464
4908 006176 254 00 0 00 002474
4909 006177 76 12 12 12 12 12
4910 006200 76 60 54 51 63 64
4911 006201 00 57 66 45 62 46
4912 006202 54 57 67 00 60 35
4913 006203 77 00 00 00 00 00
4914 006204 76 55 45 55 57 62
4915 006205 71 00 60 62 57 64
4916 006206 77 00 00 00 00 00
4917 006207 76 56 57 56 15 45
4918 006210 70 00 55 45 55 57
4919 006211 62 71 77 00 00 00
4920 006212 76 55 45 55 57 62
4921 006213 71 00 60 41 62 51
4922 006214 64 71 77 00 00 00
4923 006215 76 65 56 53 56 57
4924 006216 67 56 00 51 56 64
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2-2
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0188
4925 006217 45 62 62 65 60 64
4926 006220 77 00 00 00 00 00
4927 006221 76 45 62 62 57 62
4928 006222 00 41 44 44 62 45
4929 006223 63 63 00 62 45 47
4930 006224 00 35 00 77 00 00
4931 006225 76 41 60 62 00 00
4932 006226 00 00 00 00 00 00
4933 006227 00 00 00 00 60 51
4934 006230 00 00 00 00 00 00
4935 006231 00 00 00 00 00 00
4936 006232 00 46 54 41 47 63
4937 006233 00 00 60 43 00 00
4938 006234 00 00 00 00 60 62
4939 006235 57 47 76 77 00 00
4940 006236 76 60 57 67 45 62
4941 006237 00 46 41 51 54 00
4942 006240 62 45 63 64 41 62
4943 006241 64 76 77 00 00 00
4944 006242 76 60 57 67 45 62
4945 006243 00 51 56 64 45 62
4946 006244 62 65 60 64 00 46
4947 006245 41 51 54 45 44 76
4948 006246 77 00 00 00 00 00
4949 006247 76 60 41 47 45 00
4950 006250 46 41 51 54 00 64
4951 006251 62 41 60 00 45 62
4952 006252 62 57 62 76 60 41
4953 006253 47 45 00 46 41 51
4954 006254 54 00 67 57 62 44
4955 006255 15 00 77 00 00 00
4956 006256 76 64 62 41 60 00
4957 006257 23 00 45 62 62 57
4958 006260 62 77 00 00 00 00
4959 006261 265 00 0 00 002521
4960 006262 265 00 0 00 002535
4961 006263 254 00 0 00 030005
4962 006264 76 63 15 42 65 63
4963 006265 77 00 00 00 00 00
4964 006266 76 51 17 57 00 60
4965 006267 41 47 45 00 46 41
4966 006270 51 54 77 00 00 00
4967 006271 76 43 41 43 50 45
4968 006272 00 41 44 62 00 60
4969 006273 41 62 51 64 71 77
4970 006274 76 63 15 42 65 63
4971 006275 00 41 44 62 00 60
4972 006276 41 62 51 64 71 77
4973 006277 45 56 44 00 60 41
4974 006300 63 63 00 77 00 00
4975 006301 17 03 0 00 000000
4976 006302 43 63 67 45 45 60
4977 006303 00 64 51 55 45 57
4978 006304 65 64 76 77 00 00
4979 006305 7 003 1 0 00 000000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2-3
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0189
4980 006306 7 000 6 0 00 200000
4981 006307 366 04 0 00 000001
4982 006310 254 00 0 00 003233
4983 006311 7 003 2 0 00 000000
4984 006312 701540 000000
4985 006313 37 05 0 00 000002
4986 006314 003770 000000
4987 006315 76 55 45 55 57 62
4988 006316 71 00 43 57 56 64
4989 006317 62 57 54 54 45 62
4990 006320 63 76 77 00 00 00
4991 006321 037 13 0 00 000000
4992 006322 037 00 0 00 030242
4993 006323 254 00 0 00 003313
4994 006324 30 05 0 00 000003
4995 006325 030146 030147
4996 006326 540336 540337
4997 006327 400000 777777
4998 006330 540376 540377
4999 006331 76 64 57 57 00 55
5000 006332 41 56 71 00 55 41
5001 006333 60 00 63 45 47 55
5002 006334 45 56 64 63 76 77
5003 006335 000200 000201
5004 006336 44 22 0 00 000200
5005 006337 400000 400001
5006 006340 76 55 45 55 57 62
5007 006341 71 00 55 41 60 00
5008 006342 35 76 46 62 57 55
5009 006343 00 00 00 00 00 64
5010 006344 57 00 00 00 00 00
5011 006345 00 00 00 00 63 51
5012 006346 72 45 17 53 77 00
5013 006347 75 63 64 41 62 64
5014 006350 00 41 44 62 17 53
5015 006351 77 00 00 00 00 00
5016 006352 64 57 64 41 54 00
5017 006353 55 45 55 57 62 71
5018 006354 17 53 00 35 00 77
5019 006355 76 43 50 41 56 47
5020 006356 45 00 44 45 66 51
5021 006357 43 45 00 43 57 44
5022 006360 45 63 14 77 00 00
5023 006361 57 54 44 00 44 45
5024 006362 66 51 43 45 00 43
5025 006363 57 44 45 00 15 00
5026 006364 77 00 00 00 00 00
5027 006365 56 45 67 00 44 45
5028 006366 66 51 43 45 00 43
5029 006367 57 44 45 00 15 00
5030 006370 77 00 00 00 00 00
5031 006371 43 50 41 56 47 51
5032 006372 56 47 00 46 62 57
5033 006373 55 00 77 00 00 00
5034 006374 00 64 57 00 77 00
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2-4
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0190
5035 006375 66 41 54 51 44 00
5036 006376 43 50 41 56 47 45
5037 006377 14 77 00 00 00 00
5038 006400 32 12 0 02 000000
5039 006401 777717 005762
5040 006402 00 11 0 02 000000
5041 006403 76 44 45 66 00 43
5042 006404 57 44 45 00 45 62
5043 006405 62 14 00 21 24 15
5044 006406 27 27 24 00 57 56
5045 006407 54 71 76 77 00 00
5046 006410 001600 001600
5047 006411 43 54 53 00 63 57
5048 006412 65 62 43 45 00 35
5049 006413 00 77 00 00 00 00
5050 006414 56 57 62 55 41 54
5051 006415 46 41 63 64 00 00
5052 006416 45 70 64 45 62 56
5053 006417 65 56 65 63 45 44
5054 006420 14 00 43 54 53 00
5055 006421 62 41 64 45 00 35
5056 006422 00 77 00 00 00 00
5057 006423 46 65 54 54 00 00
5058 006424 21 17 22 00 00 00
5059 006425 21 17 24 00 00 00
5060 006426 21 17 30 00 00 00
5061 006427 14 00 41 43 00 42
5062 006430 54 53 00 77 00 00
5063 006431 14 00 43 41 43 50
5064 006432 45 32 77 00 00 00
5065 006433 00 20 77 00 00 00
5066 006434 00 21 77 00 00 00
5067 006435 00 22 77 00 00 00
5068 006436 00 23 77 00 00 00
5069 006437 76 64 64 71 00 63
5070 006440 67 51 64 43 50 00
5071 006441 43 57 56 64 62 57
5072 006442 54 00 37 00 15 00
5073 006443 20 14 63 14 71 00
5074 006444 57 62 00 56 00 34
5075 006445 43 62 36 00 15 00
5076 006446 77 00 00 00 00 00
5077 006447 76 54 50 00 63 67
5078 006450 51 64 43 50 45 63
5079 006451 00 34 03 00 57 62
5080 006452 00 37 36 15 00 77
5081 006453 62 50 00 63 67 51
5082 006454 64 43 50 45 63 00
5083 006455 34 03 00 57 62 00
5084 006456 37 36 15 00 77 00
5085 006457 055 040 131 054 116
5086 006460 054 040 074 103 122
5087 006461 076 040 117 122 040
5088 006462 136 054 136 132 040
5089 006463 055 040 000 000 000
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 2-5
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0191
5090 006464 64 45 63 64 00 60
5091 006465 43 00 35 00 77 00
5092 006466 45 62 62 57 62 00
5093 006467 60 43 00 35 00 77
5094 006470 00 45 62 62 57 62
5095 006471 00 64 57 64 41 54
5096 006472 63 00 35 00 77 00
5097 006473 00 71 00 57 62 00
5098 006474 56 00 34 43 62 36
5099 006475 00 15 00 77 00 00
5100 006476 421042 104210
5101 006477 44 06 0 00 000001
5102 006500 015 012 052 052 052
5103 006501 052 052 052 015 012
5104 006502 105 130 103 105 105
5105 006503 104 105 104 040 101
5106 006504 114 114 117 127 105
5107 006505 104 040 120 122 111
5108 006506 116 124 117 125 124
5109 006507 123 015 012 000 000
5110 006510 037 12 0 00 000001
5111 006511 254 00 0 00 005430
5112 006512 037 01 0 00 030242
5113 006513 254 00 0 00 005434
5114 006514 037 12 0 00 000001
5115 006515 254 00 0 00 005461
5116 006516 037 12 0 00 000001
5117 006517 254 00 0 00 005475
5118 006520 037 05 0 00 000001
5119 006521 254 00 0 00 005520
5120 006522 037 10 0 00 000001
5121 006523 254 00 0 00 005524
5122 006524 037 06 0 00 000001
5123 006525 254 00 0 00 005532
5124 006526 037 12 0 00 000001
5125 006527 254 00 0 00 005535
5126 006530 037 06 0 00 000001
5127 006531 254 00 0 00 005540
5128 006532 000001 056022
SUBKL (DFQDA) DECSYSTEM DIAGNOSTICS KL10 SUBROUTINE PROGRAM, VER 0,1 MACRO %53(1020) 15:05 11-Sep-78 Page 3
SUBKLS MAC 11-Sep-78 11:38 *STOR* RESERVED STORAGE SEQ 0192
5129 006541 000000 000000 ENDSLD: 0
5130
5131 ;END OF PROGRAM VARIABLES
5132
5133 006542 000 00 0 00 000000 $SVERA: Z ;ERROR ADDRESS REGISTER
5134
5135 006543 SBDTBL: BLOCK ^D32 ;MEMORY CONTROLLER SAVE TABLE
5136
5137 006603 000 00 0 00 000000 $DTRPT: Z
5138 006604 254 00 0 00 001776 JRST $$DTEI ;DTE20 INTERRUPT JSR
5139
5140 006605 000000 000000 $MTRI: 0 ;METER XCT INSTRUCTION
5141 006606 000000 000000 $MTRWC: 0 ;METER WAIT COUNT
5142 006607 000000 000000 MTRCNT: 0 ;METER COUNT
5143 006610 000000 000000 $MTRAC: 0 ;METER SAVED AC
5144
5145 006611 000 00 0 00 000000 %ERIN1: Z ;COR/ACT/DESC PRINT JSR
5146 006612 000 00 0 00 000000 %ERIN2: Z
5147 006613 254 00 1 00 006611 JRST @%ERIN1 ;ERROR HANDLER SPECIAL STORAGE WORDS
5148
5149 006614 POWER: BLOCK 20 ;POWER FAIL AC SAVE
5150
5151 IFDEF DEBUG,<
5152 006634 PATCH: BLOCK DEBUG ;DEBUGGING AREA
5153 >
5154
5155 ;PROGRAM VARIABLE WORDS
5156
5157 006634 VAR
5158
5159 IFDEF PGMEND,<
5160 006747 000000 000000 END: 0
5161 001000 END START
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 030600
CPU TIME USED 00:20.772
24P CORE USED
ABORT 116# 2478
AC0 65# 1373 1374 1375 1377 1379 1380 1382 1384 1385 1386 1388 1391 1393 SEQ 0193
1395 1396 1397 1406 1409 1410 1421 1424 1427 1428 1454 1455 1562 1563
1564 1565 1567 1569 1571 1577 1578 1579 1586 1590 1624 1857 1858 1859
1860 1861 1862 1863 1864 1865 1897 1906 1920 1923 1924 1926 1928 1930
1933 1937 1938 1941 1955 1961 1962 1964 1966 2106 2118 2122 2124 2132
2143 2147 2148 2300 2303 2304 2306 2339 2346 2347 2358 2361 2493 2509
2824 2825 2938 2948 3524 3525 3632 3634 3640 3849 3937 3939 3940 3942
4047 4049 4051 4255 4258 4260 4279 4305 4612 4667 4707 4708 4710
ALTMGO 926# 1560 1802 4639
ANXM 496#
APR 1255 1459 2027 2172 2301 2324 2340 2348 2359 2388 2436 2444 2454 2545
2724 2727 2729 2991 3007 3012 3015 3024 3027 3042
AROV 399#
AROVU 463#
AST 1041#
ATSIN 1042#
BEGEND 922# 1221 1228
BEGIN 36 37 38 39 40 41 42 43 44 45 46 853# 1226 1316
2334 2401
BEGIN1 869# 923
BELL 1045#
BIS 403#
CCA 480# 2718 2749
CHAIN 136# 2033 3569
CHNOFF 510#
CHNON 509#
CLK 495#
CLKCLR 488#
CLKDFL 2523 3585 3594 3612 3634# 3634
CLKDIS 486#
CLKENB 487# 494#
CLKU 461#
CLOCKF 908# 1878 2001
CNTLC 925# 3993 4635
COMMA 1034#
CONSW 909# 1266 1268# 1268 1666 1673 1769 1784 1803 2440 2517 2887 3332 3549
3551 3553 3568 3576 3609 3653 3688 3706 3974 3984 4612 4684 4686
CPIERR 1209# 2024 2045 2050 2448
CPOPJ 929#
CPOPJ1 927# 3897
CR01 2573 2640#
CR012 2575 2593#
CR0123 2576 2581#
CR013 2574 2628#
CR02 2571 2651#
CR023 2572 2616#
CR03 2570 2663#
CR12 2567 2675#
CR123 2568 2604#
CR13 2566 2687#
CR23 2564 2698#
CRLF 266 267 1029#
CRLF2 270 271 1031#
CRY0 400# SEQ 0194
CRY1 401#
CSHFLG 1088# 1336 1341 2031 2515 2894 3607
CSHMEM 1089# 2920 3099 3168 3230
CTABLE 2532 2561#
CYCL60 1082# 1971 1973 1993 1995 2018 2029 2192 2194
DCK 407#
DDT 67# 1178 2147
DDTLNK 150# 867 1184# 2151
DDTSRT 867# 1271
DEBUG 33# 5151 5152
DECVER 3# 10 15 888 1200
DF22F 993# 4465# 4465
DIAGMN 856#
DIAGNO 66# 1177
DIAMON 68# 1179 1217
DIASWS 69# 3701
DING 122# 1827
DING10 71#
DNG10C 72# 1873
DOLLAR 1048#
DONG11 70# 1901
DSKUPD 893
DTE 80# 1873 1901 1945
DTE0 81#
DTE1 82#
DTE2 83#
DTE3 84#
DTEBER 1207#
DTECER 1208#
END 5160#
ENDFIX 1168#
ENDSLD 35 5129#
EOPERR 1210# 2511
ERMORE 942# 1791
ERRPC 913# 1298 1579 1634 1649 1672 2476 3924
ERRTLS 914# 1225 1630 1836 3928
ERSTOP 125# 1804 2115 2139
EXCASB 32# 891
EXIOT 405#
FOV 402#
FOVU 462#
FRDLNK 148# 2088 2093
FSELNK 147# 2060 2063
FXU 406#
HYPEN 1039#
INHCSH 133# 2518 3610
INHPAG 130# 2442 2889 3334
INXM 497#
IOCLR 485# 1255
ITERAT 54# 886
ITRCH1 946# 1458 2220 2230 2287 2339 2347 2358 2395
ITRCNT 886# 1216 1311 2474 2481
JOB41 421# 1354 1454 2303 SEQ 0195
JOBAPR 429#
JOBCNI 430#
JOBDDT 423#
JOBFF 427# 1263 2909 2927 2945 3400
JOBOPC 432# 1559 1801 3992 4634 4638
JOBREL 422#
JOBREN 428# 4231
JOBSA 426# 1262
JOBSYM 424#
JOBTPC 431#
JOBUSY 425#
JOBUUO 420# 1384 1391 1422 1471 1480 1517 1524 1555 1561 1562 1588
JOBVER 433# 2161 2164
KA10 533
KAHZ50 138#
KAIFLG 903# 2020
KI10 533
KL10 28# 533
KL10P0 29# 533 795
KLEXCK 2710# 2747 2755
KLFLG 904# 1284 2019 2025
KLNSW 2121 2142 3635# 3635 3638
KLOLD 346
KLPAG 2443 2925 2998# 3091 3197
LAPRAL 588# 2436 3024
LAPRP1 555# 621# 2444
LAPRP2 554# 620#
LAPRP3 553# 619#
LAPRP4 552# 618#
LAPRP5 551# 617#
LAPRP6 550# 616#
LAPRP7 549# 615#
LAROVT 800# 813# 2368
LCADEN 597#
LCADRP 545# 611# 2404 2414 2460
LCASDE 600#
LCASLD 772# 2521 2551 2710
LCASLO 771# 2521 2551 2710
LCASWB 606# 2729
LCASWD 548# 614#
LCCAER 574#
LCCASD 586#
LCHNOF 685# 2435
LCHNON 684# 2445
LCIOPF 566#
LCNTRP 825# 2378
LCNTXT 819#
LCNXER 562# 2995
LCPAER 570#
LCPWRF 582#
LCSAER 578#
LCSBER 558#
LCSLOA 784# SEQ 0196
LCSLOO 783#
LCTRP 826# 2379
LCWSX 737# 756#
LDATAF 629# 647#
LDCAER 573#
LDCASD 585# 2726
LDIOPF 565#
LDLNK 149# 856 858
LDNXER 561#
LDPAER 569#
LDPWRF 581#
LDSAER 577#
LDSBER 557#
LEBXMH 834#
LEBXML 835#
LECAER 572#
LECASD 584#
LEIOPF 564#
LENXER 560#
LEPAER 568#
LEPWRF 580#
LESAER 576#
LESBER 556#
LEUPFW 830# 2352 2450
LEVNCD 680# 714#
LEVNPA 678# 712#
LEVNPD 679# 713#
LEXCMP 632# 650#
LFLGCL 539#
LFLGDS 538#
LFLGEN 537#
LFLGST 540#
LFP 1043#
LINSTF 628# 646#
LINT 622#
LIOCLR 536#
LIOPFE 543# 595# 609# 2404 2412 2460
LKNTRP 821# 2374
LKTRP 822# 2375
LLACBL 734# 753#
LLDUSB 736# 755# 2046
LLPRCN 735# 754# 2046
LMBXMH 836#
LMBXML 837#
LMUUO 817# 1462
LMUUOP 818# 1457
LNXMEN 594#
LNXMER 542# 608# 2404 2406 2454 2460 3041
LOOPER 124# 1582 1820
LPAREN 596#
LPARER 544# 610# 2404 2408 2460
LPDOVT 801# 814# 2370
LPFWPC 831# 2346 2456 2457 SEQ 0197
LPGFTR 832# 2038 2433
LPICH1 688# 723#
LPICH2 689# 724#
LPICH3 690# 725#
LPICH4 691# 726#
LPICH5 692# 727#
LPICH6 693# 728#
LPICH7 694# 729#
LPICHA 695# 2445
LPICLR 682# 2435
LPIIP1 715#
LPIIP2 716#
LPIIP3 717#
LPIIP4 718#
LPIIP5 719#
LPIIP6 720#
LPIIP7 721#
LPIOFF 686# 2435
LPION 687# 722# 2445
LPNTRP 827# 2380
LPRCH1 701#
LPRCH2 702#
LPRCH3 703#
LPRCH4 704#
LPRCH5 705#
LPRCH6 706#
LPRCH7 707#
LPRFMH 806#
LPRFML 807#
LPT 4679 4681
LPTRP 828# 2381
LPWRFE 599#
LPWRFL 547# 613# 2388
LREQSE 683#
LRQCLR 681# 2435
LSADEN 598#
LSADRP 546# 612# 2404 2416 2460
LSBSEN 593#
LSBUSE 541# 607# 2404 2410 2460
LSCAER 575#
LSCASD 587#
LSECMO 785#
LSIOPF 567#
LSMODE 773#
LSNTRP 823# 2376
LSNXER 563#
LSPAER 571#
LSPWRF 583#
LSSAER 579#
LSSBER 559#
LSTRP 824# 2377
LTBASH 804#
LTBASL 805# SEQ 0198
LTRP3T 802# 815# 2372
LTRPAE 786#
LTRPEN 774# 3000
LUOERR 1211# 2305
LUSCMP 631# 649#
LUUO 413# 1621 4307
LUUO1 973 974
LUUO10 973 978
LUUO11 973 978
LUUO12 973 979
LUUO13 973 979
LUUO14 973 980
LUUO15 973 980
LUUO16 973 981
LUUO17 973 981
LUUO2 973 975
LUUO20 973 982
LUUO21 973 982
LUUO22 973 983
LUUO23 973 983
LUUO24 973 984
LUUO25 973 984
LUUO26 973 985
LUUO27 973 985
LUUO3 973 975
LUUO30 973 986
LUUO31 973 986
LUUO32 973 987
LUUO33 973 987
LUUO4 973 976
LUUO5 973 976
LUUO6 973 977
LUUO7 973 977
LUUOI 414#
LWRITE 630# 648#
MAPNEW 994# 1219 2901 2928 3131 3194 3215 3287
MARGIN 916#
MCNVER 4# 10 15 888 1200
MEMLOW 996# 3141 3146 3155 3175 3259 3305 3403
MEMMAP 30# 894
MEMSAV 2275 2837#
MEMSIZ 997# 2880 2881 2882 2941 2955 2959 2963 2964 2967 3206 3210 3254 3256
3306 3309 3314 3352 3373 3376 3378 3381 3383 3391
MEMSLP 2842# 2858
MEMTOT 995# 3399 3409
MFBSRL 2796# 2804
MFCN 2770# 2779 2782 2809 2812 2837 2840 2843 2850 2852 2855 2858 2861
MFCNLP 2781# 2812
MFICE 1291 2779#
MFNXTC 2787 2808#
MFSDF 2772# 2784 2785 2786 2798 2799 2800 2801 2802 2839 2846 2847 2852 2859
MFSDT 2771# 2772 2781 2782 2783 2784 2788 2789 2790 2795 2796 2797 2799 2803
2808 2809 2810 2838 2842 2843 2844 2849 2850 2851 2854 2855 2856 2860 SEQ 0199
MINUS 1038#
MODCHK 1185 1197#
MODDVC 132# 3419
MODDVL 34# 331 889
MODDVU 35# 332 890
MODLNK 151# 853 1185#
MONCTL 906# 1312 1654 1834 2035 2111 2136 2157 2491 3355 3359 3547 3548 3571
4232
MONFLG 905# 1250 1313 2438 2884
MONTEN 907# 1314 2506
MONTYP 1120#
MPVU 458#
MREPOR 2276 2819#
MTR 74# 1957 1975 1978 1992 1997
MTRCNT 1970 1981 1998 2007 5142#
MUOERR 1206# 1456
MUUOER 1452# 2373
NOEXEC 1203# 1320
NOPNT 120# 1650 4253 4626
NXMU 459#
OPRSEL 134#
OPTIME 1008# 3840 3870
P 177 178 179 180 391# 928 1274 1276 1277 1369 1371 1374 1379 1388
1406 1437 1438 1439 1442 1577 1587 1632 2067 2132 2237 2238 2240 2290
2489 2712 3198 3338 3809 3810 3811 3812 3875 3979 4028 4102 4191
PAG 478# 2039 2041 2042 2046 2047 2386 2387 2504 2521 2550 2552 2710 2999
3001 3603
PALERS 126# 1641
PARCLR 504#
PARDIS 505#
PAREA1 48# 884
PAREA2 49# 885
PAREA3 50# 882
PAREA4 51# 883
PAREA5 52# 895
PAREA6 53# 896
PAREA7 895#
PAREA8 896#
PARENB 506#
PARU 460#
PASCNT 910# 1224 1657 1660 2473 2485
PATCH 5152#
PDISF 1005# 4216# 4216 4280# 4280 4283
PDLOVU 457#
PERIOD 1035#
PFSTRT 862# 2397
PGINGO 1283#
PGMEND 31# 5159
PGMNAM 887 1230#
PI 1254 1460 2263 2302 2325 2341 2349 2360 2435 2445 2773 2989 2990 3030
PICHN1 524#
PICHN2 525#
PICHN3 526# SEQ 0200
PICHN4 527#
PICHN5 528#
PICHN6 529#
PICHN7 530#
PICHNA 531#
PICLR 507# 1254
PIOFF 511# 2263 2990
PION 512# 518# 3029 3030
PLERR 1204# 1435
PLERR1 1205# 1440
PLIST 1074# 1074 1274 1375 1438 1439 2238
PLISTE 1074 1076# 1377 1439
PLISTS 1075#
PLUS 1040#
PNTENB 1004# 4223 4250# 4250 4619
PNTEXT 883#
PNTFLG 1003# 4220# 4220 4243 4248 4273
PNTINH 1006# 4218# 4218
PNTLPT 121# 3566 3975 3985 4646 4685
PNTNAM 882#
PNTSPC 1007# 4221# 4221 4515 4529
POWER 2057 2058 2069 2090 2091 2318 2322 2326 2328 2391 2392 2394 2464 5149#
PSHERR 1272 2211#
PVPAGI 1101# 2441 2888 3333
PWFCLR 503#
QUEST 1046#
RADIX 1049# 4580
RADLSC 1051# 4576
RADLSP 1050# 4595
RANDBS 884#
REENTR 864# 4230
REINIT 1180 1195#
RELIAB 128#
REPT 392# 1574 1638 1647
REPT1 393# 1575 1639 1648
REPTU 962# 1599# 1599
REQSET 508#
RESRT1 939# 2232
RESRT2 940#
RESRTX 2231 2312#
RETURN 871# 1218 1317 1328 2507
RSTART 117#
RTP 1044#
RUNFLG 911#
SADR1 36# 860
SADR10 45# 876
SADR11 46# 877
SADR2 37# 862
SADR3 38# 864
SADR4 39#
SADR5 40# 925
SADR6 41# 926
SADR7 42# 873 SEQ 0201
SADR8 43# 874
SADR9 44# 875
SBDTBL 2824 2852 5135#
SBINIT 190 870#
SCOPE 963# 1297 1583 1584 1623 1821 2475
SFSTRT 860#
SLASH 1047#
SM10 1151#
SPACE 1036#
SRTDDT 866#
START 34 854 1194# 5161
START1 873#
START2 874#
START3 875#
START4 876#
START5 877#
STARTA 869 1228#
SUBINI 1186 1196#
SUBLNK 152# 870 1186#
SUBRTN 1199#
SUBVER 1200# 2167 2170
SWPTAB 1157# 3717
SWTAB 3711 3751#
SWTEXR 885#
SYSEXR 858#
TAB 1037#
TABLE0 1410 1413#
TESTPC 912# 3916
TICKS 915#
TIM 75# 1958 1972 1974 1994 1996
TOTALS 118#
TTNBRF 1095# 4061 4081
TTYFIL 1011# 4224
TTYSPD 1012#
TXTINH 129# 1674 1770 1785
USER 902# 1246 1249 1251 1252 3082 3357
USERF 404# 1248 1309
USRASB 892
USRCRF 1021#
USRLFF 1020#
UUODIS 974# 1400
UUOEXT 930#
UUORTN 931# 1394
UUOSKP 928#
XOFFLA 4219# 4219
$$DTE0 1858 1901#
$$DTE1 1859 1873#
$$DTE2 1860 1945#
$$DTEI 1872# 5138
$$DTER 1875 1883#
$$MUUO 1126# 1452 1453
$$OUTE 1132#
$$PAC0 1245 1299# 1299 SEQ 0202
$$TAX1 1144# 3907 3908
$$TAX2 1145# 3910 3911
$$TOGG 1138# 3540 3573 3648
$$UUO 1115# 1367 1368
$ACC0 953# 2253 2261 2293 2300# 2300 2306 2393
$ACMP0 3328# 3328 3339
$ACMP1 2983# 2983 3031
$ACMP2 2984# 2984 3032
$ACMP3 2985# 2985 3033
$ACMP4 3085# 3085 3092
$ACMP5 3123# 3123 3189
$ACMP6 3124# 3124 3190
$ACMP7 3125# 3125 3191
$ACMP8 3126# 3126 3192
$ACMP9 3127# 3127 3193
$ASCP1 4550# 4561
$ASCP2 4553# 4557
$ASCPN 4294 4313 4549#
$BEND1 923#
$BEND2 924# 1838 2119 2140 2149
$CARCT 3948 3954 3973 4613# 4613 4620 4623
$CFLUS 1509 2399 2747# 3513
$CHRIN 1014# 3970# 3970 3978 3987
$CHRPN 4321 4538#
$CINVA 1508 2548 2717#
$CLKDT 1877#
$CLKOF 1923 1933#
$CLKON 1925 1930#
$CLKRD 1921 1941#
$CLKWT 1927 1936#
$CLKXX 1931 1939 1944#
$CLOCK 1513 1920#
$CNVD 4060# 4060 4131 4140
$CNVX 4072 4129#
$CNVX1 4093 4138#
$CNVX2 4141 4150#
$CPKL 2021#
$CPLII 2027#
$CPUTP 1283 2018#
$CRLF 1016# 4225# 4225
$CSH 2521#
$CSH1 2541# 2546 2556
$CSH2 2550#
$CSH3 2534 2536 2538 2540 2555#
$CSHER 2558# 2736
$CSHX 2731 2735#
$CSHZ 2720# 2750 2758
$CWRTB 1509 2503 2755# 3062
$DCCMP 4580#
$DCSPS 4594#
$DDT 90#
$DDTEN 1270 2146# 3900 3983
$DECP1 4586# 4592 4594 SEQ 0203
$DECPN 4315 4569#
$DECSP 4317 4567#
$DEVCH 471#
$DRPDV 1492 1538#
$DSKUP 893#
$DTCHR 102# 3883 3889 3941
$DTCI 96# 1879 1880 1922 1928 1936
$DTCLK 95# 1855 1874 1877
$DTCMD 99# 1897
$DTEIN 1287 1850#
$DTER1 1850# 1850 1894
$DTEX1 1893#
$DTEX2 1896#
$DTEX3 1905#
$DTEXX 1892# 1934 1942 1946 2123 2144 2494 2510 3630 3633 3858 3938 4261 4709
$DTF11 98# 1898 1906
$DTFLG 94# 1852 1855 1893 1896 1902 1905
$DTMTD 103#
$DTMTI 104#
$DTOPR 101# 1857
$DTRPT 1861 1881 1887 5137#
$DTSEQ 100# 1856 1899
$DTSWR 105# 2032 3631 3640
$DTT11 97# 1937
$DVCH1 472#
$DVOFF 1010# 4215# 4215
$ECK 1311#
$EG177 1476 1524#
$EG4 1478 1517#
$EGX 1520 1522 1527 1530 1533 1535#
$EMODE 891# 1318
$END 1513 2473#
$END1 2482#
$END2 2479 2484#
$END3 2482 2489#
$END4 2480 2491#
$EOP 1515 2500#
$ERH0 2104 2106# 2106 2125
$ERHL1 2114#
$ERHL3 2118#
$ERHL4 2112 2116 2121#
$ERHLT 1514 1810 2101#
$FATAL 1514 2129#
$FATL1 2137 2142#
$FFEED 4656 4698# 4701
$FFF 1018# 4227 4653
$FRD36 1511 2082#
$FRD8 1512 2080#
$FREAD 1511 2084#
$FSEL1 2061 2074#
$FSEL2 2064 2068# 2075 2094 2095
$FSELE 1510 2055#
$FSELF 2056# 2056 2066 2086 SEQ 0204
$HEAR 3873 3937# 3991
$HEAR1 3951 3991#
$HEAR2 3976 3978# 3986 3989
$HEAR3 3972 3982#
$HEAR4 3942 3953 3957 3964#
$IBUF 1066#
$INEXT 1068#
$INNM 1067#
$INTDF 4214# 4214
$IPGFL 2037 2448#
$ITR1A 2248 2251 2256 2269# 2421 2423 2425 2427
$ITR1B 1465 2245 2278# 2362 2461
$ITRC1 2229 2300#
$ITRHL 934# 2262
$ITRHZ 2261# 2405 2418
$ITRIN 1292 2220#
$ITRX1 935# 2294
$KIKLI 2367# 2434
$KL10 2233 2432#
$KLCAD 2415 2424#
$KLCLR 2435# 2465
$KLCSH 1295 2466 2515#
$KLENB 2438#
$KLIOP 2413 2422#
$KLIT1 2389 2403# 2462
$KLITR 2307 2386#
$KLPGF 2432 2450#
$KLPWR 2391#
$KLRST 2314 2464#
$KLSAD 2417 2426#
$KLSBE 2411 2420#
$KLSN 2172#
$KLSNX 2172# 2172 2173 2177 2182 2187
$KLSWI 3564 3629# 3639
$KLSWR 3546 3638#
$LDSPS 4583 4591#
$M2 3015#
$M4 3045#
$M5 3013 3057#
$M6 3043 3060#
$M7 3048 3065#
$MAPEX 1285 1335#
$MDEND 3496 4814#
$MDLST 3496 4715# 4814
$MDSR1 3504# 3508
$MDSR2 3499 3505#
$MDSRC 3446 3449 3494#
$MDVCN 3442# 3442 3448 3466 3527
$MDVCO 3437# 3437 3445 3468 3526
$MEEX1 2884#
$MEMMP 1294 1508 2880#
$MEPAG 2890 2892#
$MMAP 894# 1293 SEQ 0205
$MNCON 3128# 3128 3177 3185
$MODCK 1197 1308#
$MODD0 3422#
$MODD1 3430# 3454 3456
$MODD2 3435 3440 3476#
$MODD3 3434# 3511
$MODD4 3439#
$MODD5 3444#
$MODD6 3447#
$MODD7 3452#
$MODD8 3455 3462# 3532
$MODD9 3479#
$MODDB 3422# 3422 3516 3528
$MODDC 3423# 3423 3515 3529
$MODDD 3424# 3424 3514 3530
$MODDP 1493 3524#
$MODDV 1493 3418#
$MODDX 3432 3513# 3533
$MODER 3480 3483 3485 3510#
$MODVL 889# 3462 3465
$MODVU 890# 3463
$MPAD3 3331 3339# 3344
$MPAD7 3338# 3346
$MPADL 3335 3342#
$MPADR 1495 3069 3328#
$MPCM1 2944# 2953 2960
$MPCM2 2947 2962#
$MPCM3 2955#
$MPCMB 2916 2930 2936#
$MPCMX 2957 2967#
$MPCN1 2995# 3063
$MPCNK 1496 2914 2929 2983# 3144
$MPCXX 3057 3060 3065 3068#
$MPEXM 3037# 3047 3058
$MPNEW 2909#
$MPNXM 2996 3007# 3018
$MPOL1 2885 2891 2926#
$MPOLD 2902 2918#
$MPRPI 3028#
$MPRST 3024# 3066
$MPSE1 3085#
$MPSE2 3086 3095#
$MPSE3 3091# 3107
$MPSET 1496 2912 3082# 3142
$MPVU 2247#
$MSAPR 2991# 2991 3025
$MSEG 1494 3123# 3295
$MSEG2 3176 3183# 3232
$MSEG3 3147 3188# 3207 3209 3251 3255 3257 3264 3267 3271 3276
$MSEG4 3197#
$MSEGP 3135 3203# 3268
$MSEGV 3136 3141#
$MSGV1 3146# SEQ 0206
$MSGV2 3152# 3178
$MSGV3 3170 3175#
$MSKA 3132 3248# 3273
$MSKAP 3216 3249 3266# 3275
$MSPI 2989# 2989 3028
$MSUSR 3273#
$MTIR1 2001# 2014
$MTIR2 2000 2006#
$MTIR3 2009 2013#
$MTRAC 2006 2010 2013 5143#
$MTRI 1256 1959 1966 1984 2002 2003 5140#
$MTRIR 1968 1991# 2004 2011
$MTROF 1961 1978#
$MTRON 1963 1968# 1986
$MTROP 1510 1955#
$MTRRD 1956 1981#
$MTRW 1965 1984#
$MTRWC 1257 1960 1985 1999 2008 5141#
$MZRO 1495 3285#
$MZRO1 3290# 3297 3302
$MZRO2 3288 3304#
$MZRO3 3309# 3316
$MZROB 3285# 3285 3319
$MZROC 3286# 3286 3318
$MZROX 3293 3307 3310 3318#
$NEGF 4059# 4059 4099 4126
$NEGX 4070 4124#
$NOUSR 1253 1324#
$NOYES 1500 4003#
$NXMU 2250# 2407
$OBUF 1057#
$ONETM 917# 1223 1296 2034 3362 4234
$OPTLK 1499 3657 3663 3785 3800 3869# 4012 4020 4067 4171
$OUTEX 1059#
$OUTNM 1058#
$PACA1 4268 4284 4300# 4300
$PACA2 4269 4285 4301# 4301
$PACA3 4270 4286 4302# 4302
$PACA4 4271 4287 4303# 4303
$PACA5 4272 4288 4304# 4304
$PACB0 4604# 4604 4667
$PAPER 56# 384 533 641 795
$PARER 941# 2254
$PAREX 2253# 2409
$PDLOV 2339# 2369
$PDOVP 1437 1444 2237# 2237 2242
$PDOVU 2237# 2342
$PGFL 2346# 2453 2455
$PGFL1 2352#
$PGFL2 2354 2459#
$PGMIN 1196 1245#
$PGMN1 1262#
$PMAP 1497 2965 2971 3351# SEQ 0207
$PMAP1 3358 3361 3364#
$PMAP3 3356 3362#
$PMAP4 3374 3399#
$PMAP5 3386 3396#
$PMAP6 3404 3406 3414#
$PMAP7 3387#
$PMAPL 3364 3373# 3397
$PNAME 887# 1327 2159
$PNM1 2192#
$PNM2 2158 2197#
$PNT 4306# 4306 4519# 4519 4523 4528 4547# 4547 4559 4567 4591
$PNTB1 4283#
$PNTC2 4466 4481#
$PNTC3 4477# 4493
$PNTCF 1491 4495# 4497
$PNTCW 1491 4461# 4498 4500
$PNTI1 4323 4506# 4530
$PNTI2 4510# 4513 4524
$PNTI3 4319 4526#
$PNTI4 4266# 4520 4531 4541 4555 4560 4574
$PNTIA 4262 4300#
$PNTIB 4251 4279#
$PNTIC 4311#
$PNTIF 1474 4243#
$PNTIN 1288 4214#
$PNTIT 1472 4248#
$PNTIX 4230#
$PNTLN 4312 4547#
$PNTMG 1497 1539#
$PNTNM 1492 2157# 3567 4236
$PNTSV 4514# 4514 4521
$PNTSX 1490 4333#
$PNTTY 4244# 4244 4249 4259 4266 4289 4624 4687
$PNTY1 4649# 4674 4676 4690
$PNTY2 4652#
$PNTY3 4658 4662#
$PNTYC 4605# 4605 4652 4689
$POCS 1506 4415#
$POCS1 4423 4430#
$POCS2 4435# 4444
$POCS3 4432 4439# 4453
$POCS4 4444# 4452
$POCS5 4437 4452#
$POCSF 1506 4411#
$POINT 4549# 4549 4551 4558
$PRNTX 4256 4273# 4281
$PSHER 945# 1273 1275 1441 2239
$PSIX 1505 4367#
$PSIX1 4376# 4392
$PSIX2 4379# 4391
$PSIX3 4391# 4397
$PSIX4 4384 4394#
$PSIX5 4382 4399# SEQ 0208
$PSIXF 1505 4363#
$PTCA 4461# 4461 4478 4495
$PTCB 4463# 4463 4477
$PTINH 4217# 4217 4245 4615 4618 4649
$PTKL 4246 4254 4258#
$PTSXF 1490 4346#
$PVER 888#
$PWRF 2312 2321# 2321 2400
$PWRFL 2313 2332#
$PWRST 2330 2396# 2396
$RADIX 4573 4576# 4584
$REINI 1195 1223#
$RSRTX 937# 2323
$RSRTY 938# 2329
$RSTCM 2316# 2467
$SBSRT 1194 1215#
$SNPNT 2175 2200#
$SPAG1 957# 2387# 2387
$START 854# 1319 1323
$STD 89#
$STL 91#
$STM 92#
$SUBUO 1387 1409#
$SVAPR 955# 1459 2281# 2281 2301 2317 2324 2340 2348 2359 2403 2459
$SVCSW 1267# 1267 3698 3704
$SVERA 2271 2273 5133#
$SVPAG 956# 2386# 2386
$SVPI 954# 1460 2284# 2284 2302 2316 2325 2341 2349 2360
$SVUPC 960# 1390
$SVUUO 959# 1392 1396
$SW 3662# 3662 3665 3682# 3682 3687
$SW0 3561 3647# 3909
$SW1 3656# 3658 3664 3675 3705
$SW10 3701#
$SW11 3704#
$SW12 3652# 3707
$SW13 3681 3709#
$SW14 3686 3715#
$SW2 3671 3679# 3710
$SW3 3684# 3713 3716 3718
$SW4 3677 3688# 3699 3702 3720
$SW5 3689#
$SW6 3667 3676#
$SW7 3673 3693#
$SW8 3650 3690# 3694 3697
$SW9 3649 3669 3696#
$SWCH1 3547# 3552
$SWERR 3660 3675#
$SWFLG 1269# 1269 3542 3563
$SWIN1 3562#
$SWIN3 3608 3611 3616 3626#
$SWONC 3560# 3560 3562 3696
$SWTCH 1494 1581 1631 1794 2114 2138 2477 3418 3540# 3565 4252 SEQ 0209
$SWTIN 1290 3559#
$SWU1 3543 3545 3551#
$SWU2 3541 3553#
$SWXX 3712 3719 3723#
$SWXX1 3732# 3737 3743 3782
$SWXX2 3733 3742#
$SWXX3 3738 3744#
$SWXX4 3739 3776#
$SWYYY 3799# 3799 3802
$SWZZ 3736 3784#
$SWZZ1 3788 3812#
$SWZZ2 3790 3811#
$SWZZ3 3804 3810#
$SWZZ4 3792 3806 3809#
$TABF 1017# 4226
$TACB4 3869# 3869 3877
$TACC1 4006# 4006 4031
$TACC2 4007# 4007 4029
$TACD1 4053# 4053 4101 4108
$TACD2 4054# 4054 4097 4107
$TACD3 4055# 4055 4096 4106
$TALT1 3893 3897#
$TALT2 3891#
$TALT3 3902 3914#
$TALT4 3904 3922#
$TALTM 1502 1556 1798 3883#
$TIEX2 3862 3946#
$TISIX 1503 4166#
$TOUB1 4617 4622#
$TOUB2 4625 4629#
$TOUT 4512 4518 4540 4556 4571 4588 4596 4604#
$TOUT1 4647 4673#
$TOUTA 4650 4663 4667# 4688 4702
$TOUTB 4606 4612# 4637 4641
$TOUTC 4629 4646#
$TPCK 4078 4115#
$TPCNV 1501 4047#
$TPCV1 4048 4050 4053#
$TPDEC 1501 4049#
$TPERR 4068 4079 4091 4105# 4125 4130 4143
$TPEX1 4096# 4148 4157
$TPEXT 4074 4076 4090#
$TPMUL 4083 4118#
$TPNBR 4090 4121#
$TPOCT 1500 3476 3680 3685 4051#
$TRP3 2358# 2371
$TSX1 4166# 4166 4194
$TSX2 4167# 4167 4195
$TSXB1 4171# 4189
$TSXB2 4174 4176 4191#
$TSXB3 4172 4179 4183 4187 4193#
$TSXB4 4182 4185#
$TTCHR 1013# 3940 3946# 3946 3964 SEQ 0210
$TTLK 1502 3849#
$TTYIN 1503 3857#
$TTYSP 1201#
$TUTX2 4636#
$TUTX3 4640#
$TWCNT 1009# 3876
$TYOUT 3947 3956 4662 4700 4707#
$TYPIN 1289 3839#
$TYPL1 4081#
$TYPLP 4067# 4086 4127 4132
$TYPNB 1015# 4058# 4058 4105
$UCK 1310 1322#
$UMODE 892# 1322
$UOERX 1355 1422# 1504 1512 1515 1572
$UOPLE 1370 1372 1376 1378 1381 1383 1434#
$UORTN 1353 1367# 1455 2304
$UORTX 932# 1431
$UOTAB 1486 1489#
$UPLER 1357# 1357 1434 1436
$USRHL 936#
$USRUO 1388#
$USWTF 3544 3559# 3559 3689 3693
$UUO37 1416 1471#
$UUOER 933# 974 1356
$UUOIN 1286 1353#
$VTAB 4660 4695#
$VTF 1019# 4228 4657
$XUUO 1401# 1487
$YESNO 1499 3431 3453 4005#
$YN1 4010# 4035
$YN2 4013 4021 4029#
$YN3 4017 4027 4034#
$YN4 4023 4025 4037#
%AC0 1607# 1607 1613 1787 1789 1790 1839
%AC1 1608# 1608 1614 1716 1740
%AC2 1609# 1609 1615 1718 1742
%AC3 1610# 1610 1616 1720 1744
%ACTFL 966# 1629# 1629 1736
%ACTUL 967# 1754# 1754 1760
%COREC 965# 1730# 1730 1759
%CORFL 964# 1628# 1628 1712
%DISCR 968# 1692# 1692 1710 1734 1757 1764
%EACR 1613# 1668 1809
%EACR1 1614# 1781 1833
%EACS 1607# 1627 1793
%ERCNT 1653# 1653 1822
%ERFLG 1554# 1554 1573 1636
%ERFST 1812# 1812 1814
%ERHI1 1107# 1625 1626
%ERHI2 1108# 1840 1841
%ERHI3 1109# 1669 1670
%ERIN1 1729 1753 1763 5145# 5147
%ERIN2 1706 5146# SEQ 0211
%ERLP 1414 1554#
%ERLP0 1570 1573#
%ERLP1 1568 1577#
%ERLP2 1566 1581#
%ERMOR 1783 1786 1790#
%ERP2A 1714 1722#
%ERP2B 1697#
%ERP3A 1738 1746#
%ERPNT 1635 1640 1647#
%ERPR1 1678 1684#
%ERPR2 1675 1688 1692#
%ERPR3 1711 1731#
%ERPR4 1735 1756#
%ERPR5 1758 1769#
%ERPR6 1771 1775 1779#
%ERPRA 1655 1812#
%ERPRB 1657# 1815
%ERS1A 1809#
%ERSW1 1642 1651 1798#
%ERSW2 1805 1820#
%ERSW3 1827#
%ERUUO 1415 1621#
%ERX 1586# 1600
%ERX1 1576 1580 1585 1590# 1601
%ERXTR 1782# 1782 1788
%EXCAL 1833#
%EXCL1 1835 1839#
%LUUO 1622# 1622 1697
%REPT 1413 1599#
%RP 1574 1638 1647# 1647
%RP1 1575 1639 1648# 1648
.JB41 439#
.JBAPR 447#
.JBCNI 448#
.JBDDT 441#
.JBFF 445#
.JBOPC 450#
.JBREL 440#
.JBREN 446#
.JBSA 444#
.JBSYM 442#
.JBTPC 449#
.JBUSY 443#
.JBUUO 438#
.JBVER 451#
CFLUSH 302#
CINVAL 301# SEQ 0212
CLOKOP 296# 2501
CWRTBI 303#
DROPDV 263#
ENDUUO 309# 922
EOPUUO 310# 924
ERLOOP 354#
ERLP1 355#
ERLP2 356#
ERRHLT 197#
ERROR 363#
ERROR1 374#
ERUUO 353#
FATAL 196# 1432 1446 1703 2087 2089 2213 2295 2560 2940 2993 3070 3096 3130
3159 3163 3261 3296 3863
FRD36 338#
FRD8 339#
FREAD 337#
FSELEC 336#
GET 180# 1393 1405 1421 1424 1427 1535 1561 1571 1586 1590 1624 1886 2059
2071 2092 2104 2118 2124 2150 2202 2277 2737 2738 2739 2740 2741 2830
2859 2860 2861 3002 3690 3746 3747 3748 4255 4279 4305 4340 4353 4399
4400 4401 4402 4403 4445 4446 4447 4448 4449 4710
GO 177# 1283 1285 1286 1287 1288 1289 1290 1291 1292 1294 1295 1353 1455
1556 1581 1627 1631 1668 1781 1788 1793 1794 1798 1809 1833 2063 2093
2114 2123 2138 2144 2175 2275 2276 2304 2399 2434 2443 2465 2466 2477
2480 2494 2503 2510 2548 2747 2755 2912 2914 2925 2929 3057 3060 3062
3065 3069 3091 3142 3144 3197 3295 3418 3431 3453 3455 3476 3513 3532
3546 3561 3564 3565 3567 3630 3633 3639 3657 3663 3680 3685 3712 3719
3736 3785 3800 3858 3862 3873 3909 3938 3947 3956 4012 4020 4067 4171
4252 4261 4573 4584 4662 4700 4709
HALT 182# 943 1203 1204 1205 1206 1207 1208 1209 1210 1211 1320 1435 1440
1456 2045 2050 2125 2305 2334 2401 2448 2511
JEN 184# 1881 1887 2004 2011
JRSTF 183# 2330 2457
MAPADR 319#
MAPCNK 320#
MAPMEM 316#
MAPPNT 322#
MAPSET 321#
MEMSEG 318#
MEMZRO 317#
MODPCP 329#
MODPCU 328#
MTROP 297#
NAME 7# 10
OUTSTR 1324 1327
PBELL 272# 1828
PCRL 266# 1430 1776 1779 2197 2292 2827 3370 3394 3411 3412 3626 3977 4396
PCRL2 270#
PCRL2F 271#
PCRLF 267# 2109 2135 2488 3450 3578 3730 3744 3918 3930 4034 4394
PFORCE 274# 1652 2270
PGMINT 190# 1220 2332 SEQ 0213
PJRST 181# 1934 1942 1946
PMSG 276# 1423 1461 1659 1662 1665 2160 2166 2176 2181 2186 2193 2195 2201
2241 2272 2280 2350 2820 3366 3369 3408 3584 3593 3602 3617 3619 3621
3623 3625
PMSGF 279# 1443 1884 2102 2130 2211 2320 2333 2484 2558 2969 3430 3434 3439
3444 3447 3452 3510 3575 3652 3656 3679 3684 3914 3922 3926 4010
PNT1 232# 3606
PNT11 246#
PNT11F 247#
PNT1F 233#
PNT2 234#
PNT2F 235#
PNT3 236#
PNT3F 237# 3502
PNT4 238#
PNT4F 239#
PNT5 240# 4471
PNT5F 241# 4469
PNT6 242# 1664 2291 4484 4492
PNT6F 243# 2108 2134 3917 3925 4482 4490
PNT7 244#
PNT7F 245#
PNTA 218# 1705
PNTADF 249# 4474
PNTADR 248# 3377 3379 4476
PNTAF 219#
PNTAL 220# 1534
PNTALF 221# 1532
PNTCHF 231# 1519 4351 4388 4425 4440 4486
PNTCHR 230# 1521 3988 4338 4390 4427 4442 4488
PNTCI 228# 2163 2169 3380 3390
PNTCIF 229# 2487 3735
PNTCW 264#
PNTCWF 265#
PNTDCF 257# 2486 3929
PNTDEC 256# 1661 2203 3387 3393 3410
PNTDS 258#
PNTDSF 259#
PNTHW 252# 1425 1429 1463 1667 2243 2274 2282 2285 2288 2353 2826
PNTHWF 253# 1445 3577 3654
PNTMGN 343#
PNTMSF 225# 3784
PNTMSG 224# 2159
PNTNM 260# 1813 2101 2129
PNTOCF 255#
PNTOCS 254# 2162 2165 2168 2171 2180 2185 2190
PNTOCT 250#
PNTOTF 251#
PNTSIX 261# 3592 3600
PNTSXF 262# 3507 3734
PSIXL 222# 1529 1679 1681 1689 1691 1727 1751 1761 1778 2279
PSIXLF 223# 1526
PSIXM 226# 1423 1461 1659 1662 1665 2160 2166 2176 2181 2186 2193 2195 2201 SEQ 0214
2241 2272 2280 2351 2821 3366 3369 3408 3584 3593 3602 3617 3619 3621
3623 3625
PSIXMF 227# 1443 1885 2103 2131 2212 2320 2333 2484 2559 2970 3430 3434 3439
3444 3447 3452 3510 3575 3652 3656 3679 3684 3915 3923 3927 4011
PSP 268# 1426 2283 2286 2289
PSPF 269#
PUT 179# 1373 1395 1398 1422 1479 1555 1883 2055 2068 2085 2105 2146 2200
2269 2717 2720 2721 2722 2723 2748 2756 2819 2837 2838 2839 2998 3647
3723 3724 3725 4333 4346 4363 4367 4369 4370 4371 4372 4411 4415 4417
4418 4419 4420 4707
REPTUO 357#
RTN 178# 930 1346 1358 1407 1536 1539 1591 1611 1617 1842 1866 1907 1976
1979 1982 2036 2051 2072 2198 2204 2382 2446 2483 2490 2492 2495 2516
2519 2522 2527 2553 2711 2713 2742 2813 2831 2862 3003 3034 3072 3083
3093 3195 3199 3320 3340 3414 3420 3471 3517 3550 3554 3570 3572 3627
3636 3641 3691 3749 3786 3797 3801 3807 3813 3841 3850 3864 3878 3906
3912 3920 3932 3944 3980 4032 4103 4109 4196 4233 4235 4274 4341 4354
4404 4450 4479 4589 4711
S 63 78 87 108# 110 114 143 145 154 157 172 173 175 186
188 192 194 199 203 349 351 387 389 395 397 409 411 416
418 434 436 453 455 465 469 474 476 481 483 490 492 499
501 514 516 520 522 535 589 591 602 604 624 626 634 636
642 644 652 654 658 660 665 667 674 676 697 699 708 710
730 732 743 745 749 751 762 764 767 769 778 780 790 792
796 798 809 811 845 851 878 880 898 900 918 920 949 951
969 971 989 991 999 1001 1022 1027 1053 1055 1062 1064 1070 1072
1078 1080 1084 1086 1091 1093 1097 1099 1103 1105 1111 1113 1116 1118
1122 1124 1128 1130 1134 1136 1140 1142 1147 1149 1153 1155 1159 1161
1163 1165 1171 1173 1190 1192 1212 1214 1241 1243 1258 1260 1279 1281
1300 1306 1330 1333 1349 1351 1360 1365 1417 1419 1448 1450 1467 1469
1542 1552 1593 1597 1603 1605 1619 1645 1695 1725 1749 1767 1797 1807
1818 1825 1831 1845 1848 1868 1870 1888 1890 1908 1918 1947 1953 1987
1989 2016 2053 2078 2099 2127 2155 2209 2215 2218 2235 2259 2267 2298
2310 2337 2345 2357 2365 2384 2430 2471 2498 2513 2715 2745 2753 2761
2766 2815 2817 2832 2835 2865 2875 2878 2904 2907 2931 2934 2975 2981
3005 3022 3036 3050 3055 3075 3080 3110 3121 3139 3181 3201 3238 3246
3279 3283 3323 3326 3348 3427 3460 3474 3491 3519 3522 3536 3538 3556
3581 3644 3818 3834 3838 3843 3847 3851 3855 3865 3867 3879 3881 3933
3935 3958 3962 3996 4001 4042 4045 4065 4088 4113 4136 4161 4164 4199
4207 4209 4212 4238 4241 4264 4277 4295 4298 4325 4328 4331 4344 4355
4361 4405 4409 4454 4459 4501 4504 4533 4536 4543 4545 4562 4565 4600
4602 4608 4610 4632 4642 4644 4666 4669 4671 4693 4703 4705
SBDIAG 2773# 2783 2790 2797 2802 2810 2844 2851 2856
SIXBTZ 285# 1676 1682 1684 1707 1731 1756 2247 2250 2255 2264 2361 2420 2422
2424 2426
SWITCH 291#
TTALTM 212#
TTICHR 205#
TTICLR 215#
TTICNV 210#
TTIDEC 209#
TTINO 207#
TTIOCT 208# SEQ 0215
TTIYES 206#
TTLOOK 211#
TTSIXB 213#
TTYINP 214#
$MDSXB 60# 4715 4717 4719 4721 4723 4725 4727 4729 4731 4733 4735 4737 4739
4741 4743 4745 4747 4749 4751 4753 4755 4757 4759 4761 4763 4765 4767
4769 4771 4773 4775 4777 4779 4781 4783 4785 4787 4789 4791 4793 4795
4797 4799 4801 4803 4805 4807 4809 4811