Full text of ""
;DHKBG
SEQ 0001
IDENTIFICATJON
NUMBER A
BOARD UH
Bits 9-1
VARYING
AS FOLIC
PRODUCT CODE:
DIAGNOSTIC CODE;
PRODUCT NAME:
VERSION:
DATE RELEASED:
MAINTAINED BY:
AUTHOR:
AH-F0^5E-DD
DHKBG
DHKBGEO MF20 DIAGNOSTIC, PART 2 OF 2.
0.5
JUNE 1984
DIAGNOSTIC ENGINEERINP
JEFFREY ARNO BARRY 29857
COPYRIGHT Uj 1978, 1979, 1984
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 OThfR PERSON EXCEPT rOR 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 INFr>1ATI0N 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.
YYYY
UUWWWW
WW • • ■ Wff
pp
A
"t
NN
SS
MMM
ONE IS
THEN WO
JUMPERS
BOARD.
THE FOR
**♦* PL
♦♦** ER
0.0
TABLE OF CONTENTS
SEQ 0002
1.0
ABSTRACT
SYSTEM REQUIREMENTS AND PRELIMINARY PROGRAMS
THEORY OF OPERATION
PROGRAM OPERATING PROCEDURE
LOADING PROCEDURE
4.2 STARTING ADDRESS
A. 3 OPERATING PROCEDURES
A. 4 CONSOLE SWITCHES
5.0 COMMAND MODE
5.1 TS - TEST START (TEST »)
5.2 TL - TEST LOOP (FIRST TEST M, LAST TEST #)
5.3 PS - PRINT SYMPTOM
5.4 /COMMANDS TO THE DIAGNOSTIC
5.4.1 NORMAL USE /COMMANDS FOR DHKBG
5.4.2 /COMMANDS NOT FOR NORMAL USE
5.4.3 /COMMANDS RESIDE JG IN DBG0VL.A11 OVERLAY
5.5 KLDCP COMMANDS
MF20 SBUS DIAG WORD FORMATS S ORGANIZATIONAL DATA
HISTORY FILE
PROGRAM DOCUMENTATION FILE
DHKBG DIAGNOSTIC LISTING
St£ DHKBF LISTING FOR LISTINGS OF DBGOVL (DEBUGGER)
AND DSMOSM (SIGNAL NAMES).
ABSTRACT
THE TWO DIAGNOSTICS. OHl'Bf AND DHKBG. TOGETHER ARE USED TO CHECK OUT/N
HF20 MOS MEMORY CONTROLLEF AND THE ASSOCIATED MOS ARRAY STORAGE BOARDS. NEITHER
eOBEBITHeSf TUQ OTflENOSSISSFPIBfeMI.A TOG
BASIC FUNCTIONAL CHECK OF THE CONTROL LOGIC AND NOS RAM ARRAY SUFFICIENT TO GET
THE MEMORY WORKING TO THE POINT WHERE PDP-10 FUNCTIONAL DIAGNOSTICS CAN BE RUN.
NOTE THAT NEITHER OF THESE DIAGNOSTICS CAN BE CONSIDERED A 'IRELIAPILITY" TEST.
DHKBF DOFS NOT CHECK THE STORAGE ARRAY BOARDS AT ALL, WHERcAS DHKBG
LOOKS AT THEM AND DOES TESTS U^ON THEM. ALL ARRAY BOARDS ARE TESTED. TEST TIME
IS ROUGHLY PROPORTIONAL TO THE NUMBER OF ARRAY BOARDS.
THE DIAGNOSTICS DO BASIC CHECKS OF THE MF20'S DIAGNOSTIC LOGIC FIRST.
AND THEREAFTER ASSUME IT IS WORKING. ALL ERROR CALLOUTS ARE BASED UPON GOOD
DIAGNOSTIC LOGIC. IF YOU GET NO RESPONSE AT ALL. UNDEFINED SIGNALS. OR^
UNEXPECTED SBUS DIAG FUNCTION ERRORS THEN SUSPECt PROBLEMS IN THE DIAGNOSTIC
LOGIC.
SEQ 0003
2.0
SYSTEM REQUIREMENTS AND PRELIMINARY PROGRAMS
THIS PROGRAM RUNS IN THE FRONT END PROCESSOR CONNECTED TO A KL10 MODEL
"B" CPU. IT REQUIRES A WORKING CPU, A MASTER OSCILLATOR WITH THE OPTION PIT
WIRED INTO THE APRID WORD, AND ONE OR MORE MF20S TO TEST. IF fHE APRiD MASTER
OSCILLATOR BIT IS NOT WIR^D UP THEN THIS DIAGNOSTIC WILL TEST NOTHING. ALSO
MF20S WHICH DO NOT REPOND TO AN SBUS DIAG FUNCTION 1 WILL NOT BE TESTED.
BEFORE ATTEMPTING TO RUN DHKBG RUN:
DHKAA, DHKAB. DHKBA. DHKBB, & DHKBF ^^^ ^^^ ^^^^ ^^^^ , ,xT.r».ncT,/.cx
(EBOX. MBOX, CORE MEMORY SYSTEM, AND MF20 PART 1 DIAGNOSTICS)
THE PRESENCE OF FAULTS WHICH CAN BE DETECTED BY THE FOREGOING TESTS WILL CAUSE
IMPROPER OPERATION OF THIS DIAGNOSTIC.
3.0
THEORY OF OPERATION
THIS DIAGNOSTIC IS ASSEMBLED WITH AND RUNS UNDER DIACON, THE DIAGNOSTIC
CONTROL EXECUTIVE. THE TEST METHOD WHICH IS USED BY TH:S DIAGNOSTIC IS THE PURE
BUILDING-BLOCX APPROACH WHERE A SMALL AMOUNT OF LOGIC IS TESTED, AND THEN THIS
LOGIC MAY BE USED TO TEST ADDITIONAL LOGIC.
CONTROL IS PASSED TO THE DIAGNOSTIC BY PERFORMING AN SED N COMMAND FROM
KLDCP, WHERE N IS AN OPTIONAL ITERATION COUNT. IF SWITCH 1 IS SET, DIACON
COMMAND MODE I'S INVOKED, OTHERWISE EXECUTION OF THE DIAGNOSTIC PROGRAM IS BEGUN.
TESTS ARE RUN IN SEQUENTIAL ORDER UNTIL EITHER AN ERROR IS DETECTED OR THE
PROGRAM IS COMPLETED. IN THE CASE OF AN ERPOR FREE PASS, THE TEST IS RERUN
UNTIL ABORTED OR THE ITERATION COUNT SPECIFIED HAS BEEN EXHAUSTED.
IN ORDER TO PROVIDE A HIGH CONFIDENCE THAT A DETECTED FAULT WAS NOT DUE
TO AN INTERMITTENT FAILURE IN LOGIC PREVIOUSLY TESTED, A FAULT CONVERGENCE
ALGORITHM IS USED BEFORE YOU GET THE FAULT TYPEOUT AND ISOLATION ROUTINES ARE
RUN. UPON DETECTION OF A FAULT, THE DIAGNOSTIC EXEC TYPES 'TAULT DETECTED" AND
THEN ATTEMPTS TO DETERMINE IF THE FAULT IS SOLID OR INTERMITTENT. IT DOES THIS
BY LOOPING ON THE TEST FOUR TIMES, AND IF THE SAME FAULT IS DETECTED, IT RUNS ^
THE PROGRAM ONE MORE TIME BEFORE PRINTING THE SOLID FAULT SYMPTOM. IF NO FAULT
IS DETECTED OR IF AN EARLIER FAULT SYMPTOM IS NOTED, DIACON ENTERS FAULT
CONVERGENCE MODE.
DIACON PERFORMS FAULT CONVERGENCE BY RUNNING THE DIAGNOSTIC PROGRAM UP
TO AND INCLUDING THE EARLIEST TEST WHICH PREVIOUSLY DETECTED A FAULT. IF NO
FAULT IS DETECTED, '^O FAULT" IS TYPED AND IT TRIES AGAIN. NOTHING IS TYPED IF
THE SAME TEST ^'AS FAILED UNTIL CONFIDENCE OF A VALID FAULT SYMPTOM IS
ESTABLISHED, if A NEW (AND BETTER) SYMPTOM IS DETECTED, "CONVERGING" IS TYPED,
AND IT RUNS THE DIAGNOSTIC UP TO AND INCLUDING THE NEW TEST UNTIL FAULT
CONFIDENCE IS ESTABLISHED OR A HEV SYMPTOM IS FOUND. ERROR REPORTING NORMALLY
OCCURS WHEN CONFIDENCE IS ESTABLISHED OR AFTER THE ABORT SWITCH IS SET. THE
CONSOLE SWITCHES MAY BE USED TO CAUSE THE TYPING OF NORMALLY INHIBITED TYPEOUTS
DURING FAULT CONVERGENCE. IF FAULT CONVERGENCE CANNOT BE COMPLETED AND THE ^,,^
PROGRAM HAS COMPLETED FIFTY NO FAULT PASSES, FAULT CONFIDENCE IS CALCULATED, THE
ERROR IS REPORTED AND THE PROGRAM IS ABORTED.
SEQ 0004
4.1
PROGRAM OPERATING PROCEDURE
LOADING PROCEDURE
DHKB6 IS SUPPLIED AS AN '.AIT FILE AND CAN BE LOADED FROM DECTAPE.^^,^_^
FLOPPY, OR FRONT END RP04/RP06 PACK BY SELECTING THE DEVICE (SEE KLDCP OPERATING
PROCEDURES) AND DOING: 'P DHKBG.AII'. AN ADDITIONAL PART OF THE PROGRAM IS IN
THE FILE DHKB6X.A11. THIS WILL BE LOADED AUTOMATICALLY WHEN REQUIRED.
THE MAIN PROGRAM FILE WILL LOAD OTHER FILES AS NEEDED DURING OPERATION.
IN THE ABSENCE OF AN RP04/RP06, WHICH CONTAINS ALL THE FILES THE PROGRAM WILL
NEED, THE PROGRAM MAY ASK FOR ASSISTANCE IN LOCATING A FILE. IN MOST CASES THAT
MEANS MOUNTING THE DECTAPE/FLOPPY CONTAINING THE ASKED-FOR FILE, SELECTING THE
DEVICE WITH A KLDCP COMMAND AND DOING AN 'HC (HALT-CONTINUE COMMAND). If ASKED
TO LOAD A FILE, DO A 'P' COMMAND BEFORE CONTINUING.
A.2
STARTING ADDRESS
MAINDEC 10-DHKB6 CAN BE STARTED OR RESTARTED BY THE CONSOLE COMMAND
•SED' OR 'SE3000'. IT WILL BE STARTED AUTOMATICALLY IF THE P COMMAND WHICH
LOADS IT IS FOLLOWED BY AN ALTMODE (ESCAPE).
A. 3
OPERATING PROCEDURES
NORMAL DIAGNOSTIC PROGRAM OPERATION IS INVOKED BY PERFORMING AN SED
COMMAND FROM KLDCP WITH THE CONSOLE SWITCHES ALL DOWN. IN THIS MODE, THE
PROGRAM IS RUN, FAULT CONVERGENCE IS PERFORMED, THE FAULT SYMPTOM IS REPORTED,
THE ISOLATION ROU.INE IS LOADED AND RUN, AND THE BOARD CALLOUT IS TYPED WITHOUT
OPERATOR INTERVENTION. PERFORMANCE OF ^N HC CONSOLE COTrAND WITH THE LOOP ON
ERROR SWITCH SET PERMITS A TEST LOOP ON THE FAILING TEST TO BE INITIATED. ERROR
REPORTING IS INHIBITED DURING TEST LOCPS UNLESS A NEW SYMPTOM IS DETECTED.
CONSOLE SWITCHES nAY BE USED TO MODIFY THE OPERATION AS DESIRED.
4.A
CONSOLE SWITCHES
MOST REAL-TIME CONTROL OF THE PROGRAM IS PERFORMED BY THE USE OF THE
CONSOLE SWITCHES. THE SWITCH BIT ASSIGNMENTS ARC PDP-10 COMPATIBLE._ONLY THE
PDP-11 SWITCHES ARE USED. THESE SWHCHES MAY BE SET OR CLEARED EITHER BY
SETTING THE DESIRED SWITCHES ON THE PDP-11 CONSOLE OR PERFORMING AN ES COMMAND
TO KLDCP. THE ES COMMAND PERMITS THE USER TO ENTER A SWITCH VALUE WHICH XORS
WITH THE REAL PDP-11 SWITCHES. WITH THE PDP-11 SWITCHES ALL DOWN, THE SWITCH
VALUE USED IS THE ES VALUE. WITH THE ES VALUE =0 (THE DEFAULT), THE^PDP-ll
SWITCHES ARE USED. TYPING AN ALTMODE (ESCAPE) WHILE THE PROGRAM IS RUNNING,
WILL CAUSE THE PROGRAM TO BE INTERRUPTED SO THAT A KLDCP COMMAND LINE MAY B^
ENTERED TO CHANGE THE SWITCHES. THE PROGRAM WIlL BE CONTINUED AUTOMATICALLY
FOLLOWING THE PERFORMANCE OF THE COMMANDS ENTERED. USE OF THE SWITCHES IS AS
FOLLOWS:
SWITCH 15 - ABORT
SU15 CAUSES AN ABORT OF THE DIAGNOSTIC PROGRAM AT COMPLETION OF THE PROGRAM, THE
CURRENT CONVERGENCE PASS OR OR THF. CURRENT TEST LOOP.
SWITCH 12 - INHIBIT TYPEOUTS
SW12 INHIBITS TYPING OF ALL MESSAGES EXCEPT THOSE WHICH ARE FORCE TYPED. FORCE
TYPEOUTS OCCUR IN ORDER TO ENSURE THAT A DETECTED FAULT SYMPTOM WILL BE ALWAYS
BE PRINTED.
SWITCH 10 - RING TTY BELL ON ERROR
SW10 CAUSES THE TTY BELL TO BE RUNG FOR EVERY FAULT DETECTED. NO BELL
INDICATION MAY BE PROVIDED FOR FAST LOOPS RUNNING IN THE DEVICE BEING TESTED.
SWITCH 9 - LOOP ON ERROR
SW9 CAUSES DIACON TO LOOP ON THE FAILING TEST AFTER THE FAULT ISOLATION HAS
OCCURED. DEPENDING UPON THE PROGRAM, SCOPE LOOPS WILL EITHER BE ITERATIONS OF
PDP-11 CODE OR A FAST INSTRUCTION LOOP IN THE DEVICE BEING TESTED.
SWITCH 8 - HALT ON ERROR
SW8 CAUSES DIACON TO HALT RETURN TO THE CONSOLE PROGRAM AT EACH FAULT DETECTION.
SETTING THIS SWITCH DOES NOT CHANGE THE DEFAULT TYPEOUT MODE, SO THE PRINT ALL
ERRORS SWITCH MUST BE SET IF IT IS DESIRED TO HALT ON THE FIRST ERROR AND REPORT
THE SYMPTOM UNLESS THE RELIABILITY TEST VERSION IS BEING USED. AN HC COMMAND TO
KLDCP WILL CONTINUE THE PROGRAM. WITH THE RELIABILITY TEST VERSION OF DIACON,
THE NEXT SUBTEST WILL BE PERFORMED. WITH THE DIAGNOSTIC TEST V.-^SION, FAULT
CONVERGENCE WILL PROCEED.
SWITCH 7 - PRINT ALL ERRORS
SW7 CAUSES DIACON TO REPORT A FAULT SYMPTOM EVERY TIME A FAULT IS DETECTED.
SWITCH 5 - TEXT INHIBIT
SW5 INHIBITS TYPING THE TEXT PORTION OF AN ERROR REPORT.
SWITCH 2 - INHIBIT CACHE
CAUSES THOSE TESTS WHICH USE CACHE NOT TO BE RUN UNDER ANY CIRCUMSTANCES,
SWITCH 1 - OPERATOR SELECT
SW1, IF SET ON AN SED. CAUSES DIACON TO ENTER COMMAND MODE. TYPE H FOR HELP.
SEQ 0005
^00
5.0
COMMAND MODE
SEQ 0006
OIACON COMMAND MODE IS INVOKED BY PERFORMING A SED WITH CONSOLE SWITCH 1
SET. THE COMMAND HANDLER SUPPORTS STARTING AT A SPECIFIC TEST, LOOPING ON A
RANGE OF TESIS. AND OTHER ACTIONS INVOKED BY COMMANDS LISTED BELOW.
5.1
TS - TEST START (TEST #)
THE TS COMMAND SOLICITS A TEST NUMBER IF ONE IS NOT SPECIFIED. STARTING
AT TEST 1 PROVIDES A NORMAL DIAGNOSTIC RUN. IF A TEST NUMBER IS SPECIFIED, THE
INITIALIZATION IS RUN UP TO THE TEST, AND NORMAL TESTING BEGINS.
5.2 TL - TEST LOOP (FIRST TEST #, LAST TEST #)
A TL COMMAND SOLICITS A FIRST TEST AND LAST TEST NUMBER IF THEY ARE NOT
SPECIFIED. THEY ARE USED TO IDENTIFY THE TEST RANGE FOR THE LOOP. A CARRIAGE
RETURN INSTEAD OF A LAST TEST NUMBER INDICATES THAT A SINGLE TEST IS TO BE
LOOPED. THE ABORT SWITCH RETURNS THE PROGRAM TO THE CONSOLE.^ IH Sr°^^^°y„SAL
BE USED TO REPORT THE FIRST ERROR IN EVERY 'ZST BY SETTING THE PRINT ALL ERRORS
AND ABORl SWITCHES AND SPECIFYING A TEST RANGE OF THE ENTIRE PROGRAM.
5.3
PS - PRINT SYMPTOh
A PS COWAND CAUSES DIACON TO REPORT UNREPORTED ERRORS OR TO REPEAT ITS
LAST ERROR REPORT. CALLING OF ISOLATION ROUTINES IS ALSO PERMITTED. NO SYMPTOM
WILL BE PRINTED IF THE TEST HAS BEEN RESTARTED OR NO FAULT HAS OCCURED.
5.4
/COMMANDS TO THE DIAGNOSTIC
COMMANDS PRECEDED BY A "/" GO DIRECTLY TO THE DIAGNOSTIC (AND NOT TO
KLDCP OR DIACON), AND THEY PERFORM VARIOUS FUNCTIONS PECULIAR TO THE DIAGNOSTIC
AND THE HARDWARE BEING TESTED. THE VARIOUS /COMMANDS ARE LISTED ON THE NEXT 2
PAGES.
J L
5. A.I NORMAL USE /COMMANDS FOR DHKB6
/CU TOGGLE THE CACHE-USE SWITCH. NORMALLY TESTS WHICH USE CACHE ARE SHUi
OFF BECAUSE AT THE POINT IN THE "B" STRING WHERE THIS DIAGNOSTIC IS RUN
WE DON'T KNOW IF CACHE IS WORKING. WHEN THE SWITCH IS ON "E LET THOSE
TESTS RUN. IF YOU HAVE CACHE AND KNOW IT IS WORKING THEN TURN THIS ON.
THIS SWITCH IS TURNED ON WHENEVER THE QV SWITCH IS TURNED ON, AND SHUT
OFF WHENEVER THE QV SWITCH IS SHUT OFF (SEE /QV).
/DR R N DUMP THE CONTENT OF THE ECL LOGIC CONTROL RAM "R" TO THE. CTY. R IS "A"
FOR ADDRESS RESPONSE RAM, "B" FOR BIT SUBSTITUTION RAM, "F'' FOR FIXED
VALUE LOGIC RAM, OR 'T' FOR THE TIMING RAM. NOTE THAT IF REFRESH IS_^^
RUNNING IT MAY INTERFERE SLIGHTLY WITH A TIMING RAM DUMP. N IS THE MF20
CONTROLLER NUMBER IN THE RANGE 10-17, SEE /TC ALSO.
/IC N FORCE AN INITIALIZATION OF ^HE ^^^^IFIED MF20 'V'. THIS PERFORM^^
MINIMUM INIT REQUIRED TO rA^^ TC THE MF20. THE ADDRESS RESPONSE RAM IS
SET UP SO THAT ADDRESS BITS ^8-2^ DETERMINE WHICH BLOCK YOU ARE USING.
/MO N SELECT MASTER OSCILLATOR FREQUENCY SOURCE N WHERE N: =3 FOR NORMAL, 30
MHZ; =2 FOR SLOW, 25 MHZ, WHICH IS FOR EXTENDING A BOARD; =1 FOR FAST,
31 MHZ, FOR MARGINING THE SYSTEM; =0 IS EXTERNAL OSCILLATOR. DO JOT
USE UNLESS YOU HAVE PHYSICALLY ATTACHED A RUNNING VFO TO THE E'-T-^RNAL
OSCILLATOR INPUT.
/QV TOGGLE THE QV SWITCH. IN QV MODE WE PERFORM CERTAIN TESTS WHICH REQUIRE
MANUAL INTERVENTION. THESE TESTS SHOULD BE DONE AT A MANUFACTURING
QUICK-VERIFY STATION. THEY ARE NOT NORMALLY DONE IN THE FIELD, BUT MAY
BE DONE IF DESIRED. DEFAULT IS OFF.
/RI RE-INITIALIZE THE DIAGNOSTIC. THE VARIOUS SWITCHES AND CONTROL FLAGS
ARE PUT BACK THE WAY THEY WERE WHEN THE PROGRAM WAS FIRST LOADED.
/SD W TAKE THE 3o-BIT WORD W AND USE IT AS THE '70 MEM" WORD OF AN SBUS DIAG
CYCLE AND TYPE THE WORD SENT BACK "FROM MEM". IF THE SBDIAG INSTRUCTION
FAILS THEN NOTHING IS TYPED. IF THE LEFT HAND 5 BITS OF W ARE THEN
THE DEFAULT CONTROLLER NUMBER (SEE /TO IS AUTOMATICALLY USED.
/SM SET UP THE PROPER FLAGS TO MAKE THE DIAGNOSTIC RUN A VOLTAGE MARGIN
ShMOOOOO. A COMPLETE SHMGOOOO IS 81 PASSES THROUGH THE DIAGNOSTIC.
THIS WILL TAKE HOURS.
/SR DO AN SBUS RESET.
/TC N FORCE TESTING OF MF20 CONTROLLER N ONLY, N IS 10-17. TYPE TO GET BACK
TO TESTING ALL MF20S. TYPE NO PARAM TO FIND OUT WHAT YOU ARE TESTING.
THIS CONTROLLER NUMBER IS ALSO UfED AS THE DEFAULT FOR THE /DR, /IC, AND
/SD COMMANDS. DEFAULT N IS "ALL".
/TN TOGGLE THE TEST-NUMBER-TYPEOUT SWITCH. WHEN ON, THIS SWITCH CAUSES THE
TYPING OF THE TEST NUMBER AS WE START EACH TEST.
/VM V SET VOLTAGE MARGIN V, WHERE V IS THE INTEGER PART OF THE MARGIN VOLTAGE.
12 IS FOR 12.6 VOLTS. 11 FOR 11.40; 5 IS FOR 5.25 VOLTS, A IS FOR/.75;
-2 IS FOR -2.10 VOLT§, -1 IS FOR -1.90; -5 IS FOR -5.A6, -A FOR -A.9A. ^
VOLTAGE MARGINS ACCUMULATE AS /VM N CO^NDS ARE TYPED. /VM ALONE TELLS
YOU WHAT THE MARGINS ARE CURRENTLY SET TO. /VMO CLEARS ALL MARGINS.
SEQ 0007
APR ID
70000
CONO
7002C
CONI
7002<
RDER/
700A(
CONO
70061
5. A. 2 /COMMANDS NOT FOR NORMAL USE
/CD S CORE DUMP GENERATED DIAGNOSTIC WITH STRING S.
/DA
/PD
/RA
/SA
/TI
5. A. 3 /COMMANDS RESIDING IN DBGOVL.All OVERLAY
DUMP PC. VMA. PREVIOUS AND CURRENT AC BLOCK NUMBERS. AND THE CONTENTS OF
AC BLOCKS 0-6. VERY USEFUL DATA TO ACCOMPANY A DIAGNOSTIC BUG REPORT.
ENTER A PROGRAM PATCHING DIALOG WHERE THE ADDRESS AND CONTENT OF THAT
ADDRESS ARE TYPED. AND THEN THE VALUE YOU TYPE IN GOES TO THAT ADDRESS.
TYPING <CR> CAUSE THE DATA NOT TO BE CHANGED. TYPING <ESC> CAUSES THE
PATCHER TO ASK FOR A NEW ADDRESS. TYPING <ESC> TO THE ADDRESS ENQUIRY
CAUSES EXIT. THE FIRST ADDRESS USED BY THE PATCHER IS THE FIRST FREE
LOCATION. THE FIRST FREE POINTER IS AUTOMATICALLY UPDATED AS REQUIRED.
DO A "START MICROCODE" AND RESTORE TO AC BLOCK THE AC CONTENTS SAVED
EARLIER BY THE /SA COMMAND. THIS DATA IS LOST IF THE OVERLAY AREA HAS
BEEN UIPED OUT.
SAVE ACS FROM CURRENT AC BLOCK FOR LATER RESTORE BY /RA.
ALLOWS TYPE-IN AND TIMING OF PDP-11 CODE LOOP.
5.5
KLDCP COMMANDS
KLDCP COMMANDS MAY BE EXECUTED DIRECTLY FROM DIACON COMMAND MODE.
A NAMING CONFLICT OCCURS. A PERIOD PRECEDING THE COMMAND WILL ENSURE THAT
KLDCP WILL ACT ON iT.
IF
SEQ 0008
2.
;MF20.FMT.61
FUNCTION GO
LH(E)
TO MEM
RH(E)
TO MEM
*** MF20 MEMORY CONTROLLER SBUS DIAGNOSTIC FUNCTIONS ***
SEQ 0009
00/18 01/19 02/20 03/21 OA/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
1* <
2*
.+ + * +.
CONTROLLER NUMBER
! 1 ! ? * ? !
+ 1,.
> ! CLEAR*
? ! 0-5 *
*
*
3*
4*
I
I
I
I
I
I
I
I
I
FUNCTION NUMBER > *
* ! ! *
LH(E+1) 5*C0NTR!C0RR IINCMP* <PARITY ERRORS> *INTERLEAVE ! <LAST WORD REQUESTS > *<LAST TYPE>! < ERROR ADDRESS *
FROM MEM 6* ERR ! ERR !CYCLE*READ lURITE! ADR * 1 ! 1 ! RQO * RQ1 ! RQ2 ! RQ3 * RD ! WR ! 14 * 15 ! 16 I 17 *
RH(E+1) 7* ERROR ADDRESS (CONTINUED) > *
FROM MEM 8* 18 ! 19 ! 20 * 21 ! 22 ! 23 * 24 ! 25 ! 26 * 27 ! 28 ! 29 * 30 ! 31 ! 32 * 33 ! 34 ! 35 *
»— ~+ + — — .* — — + — — +— — *. — -- .+— — +——*——_+ — ».+»_.-_*_».—+.-._»+«««».*_...»+.«_-«+»-.—*
:HA^
r6ui
BET!
:HAr
I •
:HA^
FUNCTION 01
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
LH(E) 1*
TO MEM 2*
<
CONTROLLER
! 1 ! ?
«>4.*> — — —- >•!- — — —
NUMBER
* ? !
> !
? !
*
.— +- — -+~ — *_-_—+ +_
11*11
-* + + *-
*<6R0UP LOOPBACK >*
*ENABL! 6N2 ! 6N1 *
»*K X J. ^
._+ +
RH(E) 3*
TO MEM 4*
w^«
mX.^
1
*
! < STATUS > !LD EN!
IDSABL! SF2 * SF1 125-27!
*
! < FUNCTION
! ! *
NUMBER >
! ! 1
LH(E*1) 5*
FROM MEM 6*
tw^»
^^s
1
*
! <MEM CONTROLLER TYPE>
! ! * 1 ! ! 1
*
*
<LPBK 6RP SEL> *
! 1 ! 2 *
1 1
RH(E+1) 7*
FROM MEM 8*
—I—
— i—
— i—
1
*
! < STATUS > !
IDSABL! SF2 * SF1 ! !
— + + * + +-
*
-*-
! ! *
— — +— — _+ *«
1 1
,^4. i
SF2 & SF1 ARE SOFTWARE FLAGS DO NOT EFFECT THE HARDWARE, NOR DOES THE HARDWARE AFFECT THEM EXCEPT TO CLEAR THEM ON POWER-UP. THEIR
COMBINED MEANINGS ARE: 0/CONTROLLER WAS JUST POWERED UP; 1/ALL RAMS BUT ADRESP ARE LOADED, CRUDE PATCHING IS DONE AND BITSUB RAM
SAYS WHICH BLOCKS MAY BE USED; 2/SAME AS 1 BUT CONTROLLER IS CONFIGURED; 3/SAME AS 2 EXCEPT THAT TGHA HAS FINISHED ITS WORK.
FUNCTION 02
LH(E)
TO MEM
RH(E)
TO Mi^M
2*
♦
3*
4*
LH(E*1) 5*
FROM MEM 6*
RH(E+1) 7*
FROM MEM 8*
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
* + 4—— — ♦- + •f * + + * + ■»■ * + + ♦ + + *
1* < CONTROLLER NUMBER > ! * < SM PROM SELECT > :<PROM BYTE>* *
1
*
*
.* — —
MOS
* 1
! ? ! * ! ! * GN2 ! 6N1 ! FN2 * FNl . ..
■+—•'-+——»——+ — — +— — *— — _+——+—_—* +.»..
1 < DIAG MIXER INPUT SELECT > ! ! <
! ! 2 * 3 ! 4 ! 5 * 6 ! ! * !
.+ + * + + * + + * +
!<ERROR WD*>! < SELECTED DIAG DATA OR PROM DATA
! !2*1!0!1*2!3!4*516
ADDRESS (SINGLE STEP ONLY) > !<CTL RAM PAR ERR>!
! 2 ! 3 ♦ 4 ! 5 ! 6 * 7 ! TIM I SUB * ADR !
.+— — +- — — ♦— — + — - — +-_— *— — f__— _+ — _ — *_..—+. —
1
* I !
* + +-
FUNCTION NUMBER
* ! 1 !
* + +.
> *
7 * ! !
i, + +.
*
— *
> »
*
*
-*
*
-*
NOTE: BITS 23-27 ARE ONLY USED DURING SINGLE STEP DIAGNOSTIC TESTS. THE LEFTMOST 1 BIT SELECTS THE CORRESPONDING MIXER INPUT
FOR RIadInG DIAGNOSTIC SIGNALS. IF 23-27 ARE THEN THE DATA RETURNED IS THE SELECTED SM PROM WORD. NOTE ALSO THAT
BITS 26-27 ARE USED TO SELECT THE ADDRESS WHICH IS SENT BACK IN THE MOS ADDRESS FIELD.
*♦* MF20 MEMORY CONTROLLER SBUS DIAGNOSTIC FUNCTIONS ***
SEQ 0010
FUNCTION 03 00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
* + + 1 + + * + + * + ■-+ *ZZ':Z~t''Z,TZ'ZT.TZ'Z7., 1
CONTROLLER NUMBER
! 1 ! ? * ?
; i — ~ — *—■ 1 —
! < FIXED
! ! * 1
+ + *
LH(E) 1+ <
TO MEM 2*
RH(E) 3*
TO MEM 4*
*-. —
LH(E+1) 5*
FROM MEM 6* ! ! *
1, + + *
RH(E+1) 7*
FROM MEM 8* ! ! ♦
♦ + + *
> !
IFAST *
! BUS *
VALUE LOGIC RAM LOAD ADDRESS
2 ! 3 * 4 ! 5 ! 6 *
!FAST *
! BUS *
KFIXED VAL LOGIC RAMS >!LD EN*LD EN!
lACKN !D VLD*RDA34!RDA35! 10 *11-13!
— + + * + + ♦ +
> ! ! < FUNCTION NUMBER
7 1 ' * ! ! * ! 1
— ; + * + + * +
KFIXED VAL LOGIC RAMS >!
!ACKN !D VLD*RDA34!RDA35! * !
— + + * + + * +
I
I
I
*
*
> *
1 ♦
*
*
*
*
NOTES: THE ACKN_RAM ^BIT^10)^USES^ADR^BITS^1 jJ^ONLV.^^ ^^ ^^^^ ^^ ^^^^ ^^^ ^^^^^^^^^^ COMPATABILITY.
FUNCTION 04 00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
* + + * + + * + •♦• * + + * + + *'ZZT.ZtZ'.
LH(E)
TO MEM
RH(E)
TO MEM
1* < CONTROLLER NUMBER > IPORT * , , *<.„«.« rnSlt!%f,x.
2* ! 1 ! ? * ? ! ? !LPBK * ! ! *A COM!B COM!D VLD*
3* SS*CLrCTL"'>'*REFR'!LD EN! * < REFRESH INTERVAL (GATED CLOCK/16)
A* ! !RNOU *ALLOW! 24-30! *1!2!3*4!5!6*
* + + * + +. ' - ^--
STEP
I
CLOCK CONTROL *
!SSCLK*SSMOD! *
— + + * + + *
> ! < FUNCTION NUMBER > ♦
7!0!0*1 !0!0*
— + + 1, + + *
iH(E+1) 5* * < SS CLOCK CONTROL
FROM MEM 6* ! ! * ! ! * ! ! .*5.E?? '?„.?!!' I I—
RH(E+1) 7* * * *REFr"! !*<" REFRESH INTERVAL COUNTER ^ > !
FROM MEM 8* ! ! *ALLOW! !0*1!2!3*4!5!6*7
* + + * + + * + + * + + *
ECHO
.-+ —
> !
♦SSMOD!
I
I
-+-
I
-+-
NOTE: IF PORT LOOPBACK IS SET (BIT 5) THE CONTROLLER WILL JUST ECHO ANYTHING SENT OUT BY AN SBUS DIAG AS LONG AS THE PROPER
CONTROLLER NUMBER IS GIVEN. ONLY AN SBUS RESET CAN CLEAR THIS CONDITION.
FUNCTION 05 00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
* + + * + + * + + * + + * + + * + + *
LH(E) 1* <
TO MEM 2*
RH(E) 3*
TO MEM 4*
*- —
LH(E+1) 5*
FROM MEM 6*
RH(E+1) 7*
FROM MEM 8*
•— —
* < SINGLE STEP SIMULATED
CONTROLLER NUMBER > ! - - -„ -.„.-, ^^^
! 1 ! ? * ? ! ? ! *ST A !ST B ! RQO * RQ1 ! RQ2
. -- SINGLE STEP REQUEST SIMULATED ADDRESS BITS
! ! 14 * 15 ! 16 ! 17 * 18 ! 19 ! 20 * 21 !
.+ + * + + 4r + + * +
REQUEST BITS >
RQ3 * RD ! WR
* i
> ! <
34 * 35 !
— __* — -_+——.
I
4-
I
I
I
4"
* <
*
SS MOS
! 1 !
RAS
2 *
I
. — +.
> I
5 !
. — +.
! *LD EN! *
! * SS ! ! *
+ * + + *
FUNCTION NUMBER > *
! * 1 ! ! 1 *
,+ * + + *
*
!!*!!*
.; i * + ; *
*
!!*!!*
.; + * + ♦ *
*** MF20 MEMORY CONTROLLER SBUS DIAGNOSTIC FUNCTIONS ***
SEQ 0011
DHI
FUNCTION 06
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
LH(E) 1* < CONTROLLER NUMBER > ! ! < DIAGNOSTIC DATA TO SY OR WP BOARD > *LD EN! *
TO MEM 2* ! 1 !?*?!? ! * ! 32 ! 16 * 8 ! 4 ! 2 * 1 .'MISC .'MISC *07-14! ! *
RH(E) 3* !<ECC DIAG SUBFCN>! ! < FUNCTION NUMBER > ♦
TO MEM 4* ! ! * ! ! * ! 4 ! 2 * 1 ! ! * ! ! * 1 ! 1 ! *
* ._+ + * + + 1 +— — ^ 1, + + 1 + + * + + *
LH(E+1) 5* f ! < DIAGNOSTIC DATA FROM SY OR WP BOARD > * *
FROM MEM 6* '! ! * ! ! * ! 32 ! 16 * 8 ! 4 ! 2 * 1 .'MISC .'MISC * ! ! *
:^H(E+1) 7* * < SS MOS CAS > ! *
FROM MEM 8* ! ! * ! ! * ! 1 ! 2 * 3 ! ! * ! .' * ! ! *
NOTE;
6.0
6.1
6.2
6.3
6.4
6.5
6.6
6.7
SBDIAG FCN 6 DOES DIFFERENT THINGS DEPENDING ON THE SU8FUNCTI0N CODE IN BITS 25-27:
READ THE ECC REGISTER ON THE SYN BOARD.
READ THE SYNDROME BUFFER ON THE SYN BOARD. THIS FUNCTION IS ALSO NORMALLY USED BY MONITOR.
SEL DIAG BITS 07-13 IN PLACE OF MOS BITS 36-42, FORCE ZEROS ON 00-35. RUN THRU A CORRECTION PASS, AND RETURN 00-35.
*♦* PLEASE NOTE THAT FCN 6.2 RETURNS THE ENTIRE WORD, NOT JUST BITS 7-14. ***
UNUSED
WR ECC COMPLEMENT REG IF BIT 15 SET, THEN READ IT BACK.
WR ECC COMPLr lENT REG IF BIT 15 SET, THEN ENABLE IT TO BE SENT TO MEM IN PLACE OF D36-42 ON NEXT WR TO MEM.
READ D36-43 k.XER.
ENABLE LATCHING OF D36-43 MIXER AFTER NEXT WRITE.
8
12
SUBF UNCTION
6.0
SUBFUNCTION
6.1
FUNCTION 07
LH(E)
TO MEM
9 10 11
♦——4.——*——+- + — ..*.....
! < MEM BITS 36-43 LATCHED ON LAST
!ECC32!ECC16*ECC8 !ECC4 !ECC2 *ECC1
+——+——» — — +— — + — _.-*—..
13 14
,+——+- *
RD ERROR > *
!E PAR .'SPARE*
,+——+— — t
>——.».——»— — + — -.—+——«»_ — __4.__. — + — — .*
! <SYNDROME LATCHED ON LAST RD ERR> !<ERR TYPE >*
! 32 ! 16 * 8 ! 4 ! 2 * 1 ! CORR! DBL *
+ 4 * + + 1 + + *
SUBFUNCTION
6.4
SUBFUNCTION
6.6
7 8 9 10 11 12 13 14
+——+——*——+——+-.-. — * + -+ «
! < ECC BITS TO BE COMPLEMENTED ON WR > ! PAR *
! 32 • 16 * 8 ! 4 ! 2 * 1 !E PAR! CTL *
+— — +— — -*—»-+_- — +—..*-.,__.+ «+»—».*
+— — +— — * +- — ».».. — .»_«..«+.»«_»+__«__*
! <BITS 36-43 AS WRITTEN TO MEM AFTER FCN 6.7 > *
!ECC32!ECC16*ECC8 !tCC4 !ECC2 *ECC1 !E PAR!SPAKE*
+— ~— f— — * — — +— — 4. — —*——+— — +«»«««»
RH(E)
TO MEM
2*
*
3*
4*
LH(E*1) 5*
FROM MEM 6*
RH(E*1) 7*
FROM MEM 8*
*
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 1(/29 12/30 13/3 14/32 15/33 16/34 17/35
* -f +- — * + + * + + * + 4. 1 + + 1, 4. 4. tk
1* < CONTROLLER NUMBER > ! ! < BIT. SUBSTITUTION RAM DATA (BIT NUMBERS) > *LD EN! *
1
* <
*
: ? ! * ! 32 ! 16 *
.4.— — _4._— — 1, — — 4..-...4..__ — i,.
31 T SUBSTITUTION RAM LOAD ADDRESS
8
GN2 ! GN1 ! BN2 * BNI
34
I
4-
I
4-
* <
*
33
! <
! 32 ! 16
— + + —
SS MOS WR
! 1 ! 2
— f~ — +
* 35
BIT SUBSTITUTION RAM DATA ECHO
8
*
-♦ +-
EN > !
* 3 !
-* ♦-
I
1
1
ICE ! PAR *07-14! ! ♦
4. * 4. 4. «
< FUNCTION NUMBER > *
! * 1 ! 1 ! 1 *
— — 4.— — _* 4—— — 4— — *
> * *
! PAR * ! ! *
.4 4. * 4. 4 1,
!!*!!*
.4 4 1, ; •♦• *
ICE
iCE" MEANS IGNORE CORRECTABLE ERROR (IE DON'T SET C0^9 ERR FLAG)
*** MF20 MEMORY CONTROLLER SBUS DIAGNOSTIC FUNCTIONS ***
SEQ 0012
FUNCTION 10
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
LH(E) 1* < CONTROLLER NUMBER > ! ! < VOLTAGE MARGINS > ! < V MARGIN ENABLES > *LD EN! ♦
TO MEM 2* ! 1 !?*?!? ! * !12.60!5.25 *-2.10!-5.46! 12 * 5 ! -2 '-5.2*07-14! ! *
RH(E) 3* !C0RR * CLR ! ! < FUNCTION NUMBER > *
TO MEM 4* ! ! * ! ! * ! ! DIS *DCBAD! ! * ! ! 1 * ! ! *
LH(E+1) 5* ! < VOLTAGE MARGINS > ! < V MARGINS ENABLED > * *
FROM MEM 6* ! ! * ! ! * !12. 6015.25 *-2. 101-5.46! 12 * 5 ! -2 1-5.2 * 1 1 ♦
*- +— — +_— — * — — +— — +- «, +- +——*——+ — — + -*—_-+——+——♦——+ — — +— — -♦
RH(E+1) 7* !CORR * DC 1 *
FROM MEM 8* ! ! * 1 ! * 1 ! DIS * BAD ! 1 * ! ! * 1 1 *
NOTE: THE VOLTAGES GIVEN ABOVE APPLY FOR ONES IN BITS 7-10 WHERE ENABLED BY BITS 11-14. THE VOLTAGES CORRESPONDING TO ZEROS
IN BITS 7-10 ARE 11.40, 4.75, -1.90, AND -4.94. MORE THAN ONE MARGIN MAY BE SET CONCURRENTLY.
FUNCTION 11
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
LH(E) 1*
TO MEM 2*
*_
<
CONTROLLER NUMBER
1 1 1 ? * ? 1
+ i, + + « + —
> 1
? 1 * 1 ! * 1
— +.
1
-*-
*
mmifm
1
i
<
TIMING RAM LOAD ADR.
! 1 * 2 ! 3 1
4 *
RH(E) 3*
TO MEM 4*
• •
r
.ADR >
1 6
ILD
121-
EN* <
-30* RAS 1
TIMING RAM DATA > 1
CAS 1 PAR *WR EN! 2ND AID RDY*B CLR!
1
*
1
i
<
FUNCTION NUMBER
1*010
> *
LH(E+1) 5*
FROM MEM 6*
1
t
*
!*!!*!
1
t
!
*
1
RH(E+1) 7»
FROM MEM 8*
*-
1
1
* <
* RAS 1
— 1, +.
TIMING RAM DATA ECHO > !
CAS 1 PAR *WR EN! 2ND AID RDY*B CLR!
+ i, + + * +__.
1
i
— +.
4K
EN
*-DSEL!
*CYCEN1
-* +.
— i-
*
-*-
1
— 1—
-+-
FUNCTION 12
LH(E)
TO MEM
RH(E)
TO MEM
2*
*
3^
4*
LH(E+1) 5*
FROM MEM 6*
*
RH(E*1) 7*
FROM MEM 8*
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
t— —»•——♦— — * + + *- + + * + — —+_——*- — -_+ — ___+___-_*.. — +.» — + — — *
1* < CONTROLLER NUMBER > 1 1 < ADDRESS RESPONSE RAM DATA > *LD EN! *
1
I
<
14
? 1 ? 1 * 1 1 PAR *TYPE .
+-. — + * + + * +.
ADDRESS RESPONSE RAM LOAD ADDRESS > 1
15 1 16 1 17 * 18 ! 19 1 20 * 21 1
^ + * + + * +-
1 < ADDRESS
GN2 1 GN1
* BN2
.* — —
PAR *TYPE 1
— ..* +.
.+ *.
RESPONSE
RAM
GN2 1 GNi A BN2
BN1
+
1 <
1
+
ECHO
1 BN1
'DESEL*08-14:
-+ — — *— — -+— —
FUNCTION NUMBER
11*011
.+ «, +
> *
IDESEL*
.f *.
*
I
> *
*
*
*
*
NOTE: 'DESEL" (BIT U) IS 'BOX DESELECTED ON 1".
*** MF20 STORAGE ORr^ANIZATION ***
MF20 STORAGE IS COMPOSED OF GROUPS. FicLDS, BLOCKS, S SUB8L0CKS.
A GROUP IS A SFT OF FOUR STORAGE BOARDS. A FIELD IS ONE BOARD (11 BITS)
WIDE. 4 FIELDS USED IN ''ARALLEL GIVE A A4-BIT WORD: 36 DATA BITS. 6 ECC
(ERROR CHECK ft CORRECT) ^ITS, ONE 43-BIT PARITY BIT, AND ONE SPARE BIT.
A BIT'S GROUP (^ND FIELD NUMBERS UNIQUELY PICK THE BIT'S STORAGE BOARD.
A GROUP HAS 1 TO 4 BLOCKS (USUALLY 4) NUMBERED FROM 0. A BLOCK'S SIZE
IS 4 TIMES RAM SIZE. ITS START ADDRESS IS PROGRAMMABLE (SBDIAG FCN 12).
EACH BLOCK HAS 4 SUB8L0CKS. SUBBLOCKS ARE THE BASIC MF20 STORAGE UNIT,
ARE 1 WORD (44 BITS) WIDE, AND ARE SELECTED BY ADDRESS 34-35. EVERY 4TH
WORD OF A BLOCK'S MEMORY BELONGS TO A GIVEN SUB8L0CK. THERE IS 1 SPARE
BIT RAM PER SUBBLOCK. DURING A MEMORY CYCLE ALL OF THE BLOCK'S FIELDS
AND SUBBLOCKS ARE ALWAYS CYCLED, WITH THE 4 XBUS REQUEST BITS SPECIFYING
WHICH SUBBLOCK'S WORDS ARE ACTUALLY TO BE USED.
TABLE OF SLOT NUMBERS VS. GROUP, FIELD, AND BIT.
SEQ 0013
SLOT GROUP FIELD
BITS
I
.....
10
11
2
12
1
13
14
2
15
1
16
17
2
18
1
19
.J
36,38,00,02,04,06,08,10,12,14,16
SAME
SAME
37.39,01,03,05,07,09.11,13,15,17
SAME
SAME
40,42,18,20,22.24,26.28,30.32,34
SAME
SAME
41,43,19,21,23.25.27,29,31,33,35
SAME
SAME
KL10 BIT NUMBER VS. "FIELD" LOCATION
CAlCULm ■ 3 A FAILED RAM "E" NUMBER
TO CALCULAT"^ THE "t" NUMBER '/" ' RAM ON AN M8579 BOARD YOU NEED
THE BLOCK NUMBER (BN), WORD NUMBER (W: " , AND BIT-IN-FIELD NW'ficR (BIFN).
USE ERROR ADDRESS BITS 14-21 IN AN JBDIAG FUNCTION 12 TO REM) THE
ADDRESS RESPONSE RAM. BITS 12-13 O;" THE S3DIAG ECHO ARE BN, ERROR
ADDRESS BITS 34-35 ARE WN. BIFN CAN BE DERIVED FROM THE TABLE ON THE
RIGHT USING EITHER THE SYNDROME (FROM FUNCTION 6.1) OR KNOWN ERRO"^ ■)ATA
PATTERN. USE BIFN TO SELECT A NUMBER FROM THE TABLE BELOW A^D PLUo THAT
NUMBER INTO THE FORMULA TO GET THE ACTUAL "E" NUMBER.
BIFN: 0123456789 10
TABLE: 19. 38. 57, 76. 96. 116. 149. 167. 188. 204. 224.
FORMULA: E# = TABLE (BIFN) - (4 * WN) - BN
NOTE 1: THE SYNDROME IS A SIX BIT NUMBER AND IS SHOWN HERE OCTALLY GROUPED Ab IT WOULD APPEAR IN AN SBDIAG FUNCTION 6.1 ECHO
IN BITS 07-12. NOTE THAT THE 43-6IT PARITY BIT IS NOT INCLUDED t'V THIS LIS;.
NOTE 2: THE SPARE BIT HAS NO ASSOCIATED SYNDROME. IF THE SPARE BIT HAPPENS TC BE REPLACING THE BIT WHICH YOUR SYNDROME
POINTS TO. THEN THE ERROR IS IN THE SPARE BIT AND NOT THE BIT WHICH THE 3YNDRJME POINTS TO.
KL10
BIT
BIT IN
SYNDROME
BIT
USE
FIELD
FIELD
(NOTE 1)
00
DATA
02
014
DATA
'
C2
024
)2
DATA
1
'J3
030
)3
DATA
1
03
034
)4
DATA
04
044
)5
DATA
1
04
050
)6
DATA
054
)7
DATA
1
05
060
)8
DATA
06
064
09
DATA
1
06
070
10
DATA
07
074
11
DATA
1
07
104
12
DATA
08
110
13
DATA
1
08
114
14
DATA
09
120
15
DATA
I
09
124
16
DATA
10
130
17
DATA
1
10
134
18
DATA
2
02
140
19
DATA
3
02
144
20
DATA
03
150
21
DATA
3
03
154
22
DATA
2
04
160
25
DATA
3
164
24
DATA
2
05
170
25
DATA
3
05
174
26
D.*JA
2
204
27
DATA
3
06
210
23
DATA
2
07
214
29
?0
DATA
3
07
220
DATA
2
08
;i
DATA
08
230
. 2
DATA
2
09
234
DATA
3
09
240
1^
DATA
10
244
5
DATA
3
10
250
6
ECC32
00
200
37
ECC16
1
00
100
'8
ECC8
01
040
39
ECC4
1
01
020
40
ECC2
2
00
010
41
ECC1
3
00
004
^'^
ECCPAR
2
01
000
43
SPARE
3
01
(NOTE 2)
MF20 ARRAY BOARD PROM DATA.
EVERY MF20 STORAGE ARRAY BOARD HAS ASSOCIATED WITH IT A SERIAL
NUMBER AND OTHER RELATED DATA. THERE IS ONE 32;;BIT PROM "WORD PER
BOARD WHICH IS READ USING FUNCTION 2. WHICH WORD YOU GET DEPENDS UPON
Bits 9-12. FOUR SBDIAGS ARE NECESSARY TO READ THE ENTIRE WORD BY
VARYING THE BYTE NUMBER IN BITS 13 & U. THE LAYOUT OF A PROM WORD IS
AS FOLLOWS:
PROM BIT^ 01 23456701 23456701 23456701 23A567
CONTENT: YYYYWWWWWW*########**PPABNNSSMMM
YYYY IS THE 4 BIT YEAR NUMBER WHICH !S THE BCD EQUIVALENT OF THE
LAST DIGIT OF THE CALENDAR YEAR.
UWWWWW IS THE 6 BIT WEEK NUMBER.
##...## IS AN 11 BIT SERIAL NUMBER WHICH IS RESTARTED FROM 1 EACH WEEK.
PP IS A MOS RAM POPULATION CODE: 00 - MOS RAM BLOCK EXISTS
01 - BLOCKS & 1 EXIST
10 - BLOCKS 0, 1, 8 2 EXIST
11 - BOARD IS FULLY POPULATED
A
B
NN
SS
HMM
PARITY BIT SUCH THAT BYTES 0-2 OF THE WORD HAVE EVEN PARITY.
ANOTHER PARITY BIT SUCH THAT BYTE 3 HAS ODD PARITY.
IS THE 2 BIT "TIMING NUMBER". THIS NUMBER DETERMINES WHICH
DISTINCT TIMING IS TO BE USED WITH THE RAMS ON THIS BOARD.
IS THE MOi RAM SIZE CODE:
11 - INDICATES 4K RAMS
10 - 16K RAMS
01 - 32K RAMS
00 - 64K RAMS
IS THE 3 BIT MOS RAM MANUFACTURER CODE;
000 - MOSTEK
001 - INTEL
010 - FUJITSU
Oil - HITACHI
100 - MOTOROLA
101 - T.I.
110 - OTHER (DEC, DEC PART NUMBER, ETC.)
111 - UNASSI6NED
THERE ARE ACTUALLY 8 PROM WORDS PER ARRAY BOARD, OF WHICH ONLY
ONE IS ALLOWED OUT BY THE STATE OF THE 3 JUMPERS. IF NO JUMPER IS CUT
THEN WORD IS SELECTED, IF ALL ARE CUT THEN WORD 7 IS SELECTED. THESE
JUMPERS ARE CUT IN RELAtlON TO THE MANUFACTURER OF THE MOS RAMS ON THE
BOARD. NOTE ALSO THAT THE SERIAL NUMBER IS ALSO PRINTED ON THE BOARD IN
THE FORM:
YWW**##
♦♦♦♦ PLEASE MAKE SURE WHEN AN ARRAY BOARD IS SENT IN FOR REPAIR THAT THE
♦♦*♦ ERROR TYPEOUT SHOWING THE SERIAL NUMBER IS ATTACHED TO THE BOARD.
M8579 MF20 STORAGE ARRAY BOARD E NUMBE SEQ_0014^
THE M8579 STORAGE BOARDS n HAVC ANY E NUMBERS
ETCHED ON THEM, MAKING If JCULT TO LOCATE A
SPECIFIC DIP. USE THE MAP _:lOW TO LOCATE MOS RAM
DIPS OR DC008 MUX DIPS. EXAMPLE: THE E NUMBER FOR
BLOCK (BLK) 2. SUBBLOCK (SBLK) 1. BIT 18 WOULD BE ^
51. USE BLK i SBLK TO FIND THE ROW. USING THE BIT
NUMBER, LOOK IN THE LOWER TABLE TO FIND THE COLUMN.
THE MA^ IS ORIENTED AS IF YOU HELD THE BOARD WITH
THE COMPONENT SIDE UP AND THE CONNECTOR EDGE TOWARDS
YOU. NOTE THAT THE ROW OF MUX CHIPS IS STAGGERED.
BLK
SBLK
MOS RAM AND MUX CH
IP E
NUM
BERS
224 204 188 167 149 116
96
76
57
38
19
1
223 203 187 166 148 115
95
75
56
S7
18
222 202 186 165 147 114
94
74
55
36
^7
3
221 201 185 16^ 146 113
93
75
54
35
]^
Q
1
220 200 184 163 145 112
92
72
53
^A
15
^
1
219 199 183 162 144 111
91
71
5?
Si
14
2
1
218 198 182 161 143 110
90
70
51
32
13
3
1
217 197 181 160 142 109
89
69
50
31
12
216 196 180 159 141 108
88
68
49
30
11
1
2
215 195 179 158 140 107
87
67
48
29
10
?
214 194 178 157 139 106
86
66
4^
28
9
3
213 193 177 156 138 105
85
65
46
27
8
3
212 192 176 155 137 104
84
64
45
26
7
1
3
211 191 175 154 136 103
83
63
44
25
6
210 190 174 153 135 102
82
62
43
24
5
3
3
209 189 173 152 134 101
81
61
42
25
4
MU>
( ==>
207 205 171 169 131 98
79
59
40
20
2
FIELD KLIO BIT NUMBERS AS POSITIONED IN FIELD
1^
35
14 12 10 08 06 04 02 00 38 36
15 13 11 09 07 05 03 01 39 37
32 30 28 26 24 22 20 18 42 40
33 31 29 27 25 23 21 19 43 41
CONTROL BOARD SLOT NUMBERS & BASIC FUNCTIONS
NUMBER NAME SLOT
FUNCTION
WRP 04 XBUS DATA/WR PATH/ECC GEN/SPARE OUT
CTL 05 XBUS i CYC CTL/WD & GRP SEL/PRQM RD
SYN 06 SPARE IN/CHK/CORR/ADR 14-21 /V NARG
ADT 07 MOS ADR/TIMING/REFRESH/BLK SEL/ERR
MG20 ARRAY BOARD (M8570)
CALCULATING A FAILED RAM "E" NUMBER
SEQ 0015
DHKBG K
TO CALCULATE THE "E" NUMBER OF A RAM ON AN M8570 BOARD YOU NEED
THE BLOCK NUMBER (BN). WORD NUMBER (UN), AND BIT-IN-FIELD NUMBER (BI FN).
USE ERROR ADDRESS BIT§ U-21 IN AN SBDIAG FUNCTION 12 TO READ THE
ADDRESS RESPONSE RAM. BITS 12-13 OF THE SBDIAG ECHO ARE BN. ERROR
ADDRESS BITS 3A-35 ARE UN. BIFN CAN BE DERIVED FROM THE TABLE ON THE^^
RIGHT USING EITHER THE SYNDROME (FROM FUNCTION 6.1) OR KNOWN ERROR DATA
PATTERN. USE BIFN TO SELECT A NUMBER FROM THE TABLE BELOW AND PLUG THAT
NUMBER INTO THE FORMULA TO GET THE ACTUAL "E" NUMBER.
BIFN: 012345 6 7 8 9 10
TABLE: 19. 38. 57. 75. 92. 112. U6. 165. 183. 202. 221.
FORMULA: E# = TABLE(BIFN) - (4 * WN) - BN
M8570 MG20 STORAGE ARRAY BOARD E NUMBER LAYOUT
M8570 STORAGE BOARDS DO NOT HAVE ANY E NUMBERS ETCHED ON THEM, MAKING IT DIFFICULT TO LOCATE A SPECIFIC DIP. USE THE MAP BELOW
TO LOCATE MOS RAM DIPS OR DC008 MUX DIPS. EXMPIE: THE E NUMfiER FOR BLOCK igLK 2, SUBBLpCK (SBLK) 1 , B T 18 WOULD BE 51. USE
BLK ft SBLK TO FIND THE ROW. USING THE BIT NUMBER, LOOK IN THE LOWER TABLE TO FIND^THE COLUMN. THE MAP IS ORIENTED AS IF YOU
HELD THE BOARD WITH THE COMPONENT SIDE UP AND THE CONNECTOR EDGE TOWARDS YOU. NOTE THAT THE ROW OF MUX CHIPS IS STAGGERED.
BLK SBLK
MOS RAM AND MUX CHIP E NUMBERS
1
2
3
1
2
3
1
1
1
1
1
2
2
3
3
221
220
219
218
217
216
215
2U
213
212
211
210
209
208
207
206
MUX ^-■> 2Ci*
202
201
200
199
198
|J7
196
195
194
193
192
191
190
189
188
187
203
183
182
181
180
179
178
177
176
175
174
173
172
171
170
169
168
185
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
148
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
128
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
114
92
91
90
89
88
87
86
85
i!
80
79
78
77
95
75
57
38
19
74
56
37
18
73
55
36
17
72
54
35
16
71
53
l^
15
70
52
; 3
14
69
51
'2
13
68
50
M
12
67
49
30
11
66
48
29
10
65
47
is
9
64
46
27
?
63
45
26
62
44
25
\
61
43
24
^
42
23
4
40
20
2
FIELD KL10 BIT NUMBERS AS POSITIONED IN FIELD
i^ i^ i? la h l\ li i\ If t5 1?
*** MF20 ERROR CORRECTION CODE (ECO CALCULATION ***
SEQ 0016
DHKBG I
rAiriJlATION OF THF FCC IS BASED UPON BIT CHANGES FROM A DATA WORD OF ALL ZEROS. THE ECC FOR ALL ZE^OS IS DEFINED TO BE
11 111 11 (OR 376 AS T WOULD APPEAR IN BITS 07-13 OF AN SBDIAG FUNC 6.0). TO CALCULATE WHAT THE fCC^SHOULD BE FOR ANY GIVEN WORD:
TAKE EACH 'T' BIT FROM THE DATA WORD. GET THE SYNDROME FOR THAT BIT FROM THE TABLE BELOW, AND XOR IT INTO THE PREVIOUS ECC.
IMIIALLY THE ECC IS THE ECC FOR A DATA WORD OF ZERO.
IF THERE ARE MORE ONFS THAN ZEROS IN THE WORD THEN DO THE SAME AS ABOVE ONLY APPLY THE SYNDROMES FOR EACH "0" BIT AND USE
THE INITIAL ECC VALUE OF 10 iOl 11 (256 OCTAL). NOTE THAT THE FOLLOWING RELATION ALWAYS HOLDS:
WHICH MEANS THAt"hE^ECC^f6r°THe"oMPLEMENT OF A WORD DIFFERS FROM THE ECC OF THE WORD BY 120 OCTAL.
*♦* SYNDROME & 43-BIT PARITY TABLE ***
BIT
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
70
!1
!2
13
14
'5
!6
!7
!8
!9
to
11
FCN 6
OCTAL
SYN SYN
32 16
SYN SYN SYN
8 4 2
SYN 43B
1 PAR
016
1
1
) C
1
1
032
) C
1
1
1
034
) C
1
1
0^6
C
1
1
052
C
1
1
1
054
c
1
1
062
1 1
1
064
(
1 1
070
(
1 1
1
?
076
1 1
1
106
(
1
112
(
1
1
114
(
1
?
122
(
1
124
130
1
1
136
1
1
1
1
142
8 ■
1
1
144
1
1
8
150
(
1
1
156
(
1
1
1
1
160
g
1 1
166
1 1
1
1
172
8
1 1
1
1
174
1 1
1
1
206
^
OOCD
ooo
1
1
212
1
1
V^
1
1
1
1
llo
^
g
1
!
s
244
250
1
*
1
»
1
1
8
EXAMPLE: CALCULATE THE ECC & 43-BIT PARITY FOR A DATA WORD OF 3
376 IS ECC FOR ZERO
250 IS SYNDROME i 43B PAR FOR BIT 35
244 IS SYNDROME I 43B PAR FOR BIT 34
— .XOR. ALL OF THE ABOVE
362 IS THE ECC FOR 3
ANOTHER METHOD FOR COMPUTING THE ECC IS AS FOLLOWS: FOR EACH OF THE 7
ECC BITS TAKE THE DATA WORD, .AND. IT WITH THE APPROPRIATE MASK BELOW,
AND COMPUTE THE RESULT'S ODD PARITY. THAT BIT IS ONE OF THE ECC BITS.
)00000 001777
QQ1 77 776000
)37600 776007
S43617 036170
>54663 146631
665325 253252
ECC 32
ECC 16
ECC 8
ECC '♦
ECC 2
ECC
2351 455514 43B PAR
BITS 03, 09, 10, 13, 15, 25, AND 32 (040624 002010) FORM A SET WHICH IS
ONE OF MANY POSSIBLE "INDEPiNDENT"^" BIT SETS. BY VARYING THE VALUES OF
THESE 7 BITS ONE CAN GENERATE ALL 128 ECC CODES, THOUGH NOT IN ANY
SPECIAL ORDER. ADDING BIT 35 ALLOWS PLAYING WITH THE SPARE BIT BUT DOES
NOT ALTER THE INDEPENDENCE OF THIS BIT SET.
NOTE THAT THE OCTAL NUMBER 200,.2217 (33555599 DECIMAL) IS A SMALL,
RELATIVELY EASY TO REMEMBER NU^ER WHICH PRODUCES AN ALL ZEROS ECC.
10 15 18 19 20 20 20 <== SUM OF SYNDROME ONE BITS
J
*** MF20 ERROR DETECTION AND CORRECTION *'^*
SEQ 0017
DHKBG
HOW MF20 ERROR CORRECTION WORKS.
WHEN A WRITE IS DONE THE MF20 CALCULATES AN ECC BASED UPON THE
DATA IT GOT FROM THE CPU. THE DATA AND THE ECC ARE THEN PUT IN MEMORY.
WHEN A READ IS DONE THE MF20 GETS THE DATA AND THE OLD ECC FROM MEMORY.
IT THEN COMPUTES A NEW ECC ON THE DATA AND XOR'S THE OLD AND NEW ECC'S
WHICH RESULTS IN A SYNDROME. OBVIOUSLY IF THERE WAS NO ERROR IN MEMORY
THE OLD AND NEW ECC'S WILL BE THE SAME. AND THE SYNDROME WILL BE ZERO
SINCE XOR'ING EQUAL VALUES PRODUCES 0.
NOW. WHEN THERE IS AN ERROR IN ONE BIT THE NEW SYNDROME WILL
DIFFER FROM WHAT IT WOULD HAVE BEEN BY A VALUE EQUAL TO THE SYNDROME OF
THE BAD BIT. THUS XOR'ING THE NEW SYNDROMfi WITH THE OLD ONE FROM MEMORY
WILL RESULT IN A SYNDROME EQUAL TO THAT OF THE BAD BIT. THE SYNDROME
mPPED TO A BIT WHICH. IN TURN. IS USED TO COMPLEMENT (IE CORRECT) THE
BAD BIT. SEE EXAMPLE ON RIGHT AT TOP.
WHEN ONE BIT IS BAD ON A READ THEN, OBVIOUSLY, THE PARITY OF THE
43-BIT WORD FROM MEMORY WILL BE BAD. BAD PARITY IS WHAT CAUSES THE MF20
TO RECOGNIZE A CORRECTABLE ERROR. THE MF20 THEN GOES OFF AND COMPUTES
THE syndrom:, if the SYNDROME IS THAT OF ONE OF THE ECC BITS THEN THE
MAPPED CORRECTION BIT GOES NOWHERE SINCE WE DON'T SEND THE ECC BACK TO
THE CPU.
IF THERE IS NO PARITY ERROR AND THE SYNDROME IS ZERO THEN THERE
IS NO CORRECTION NECESSARY. HOWEVER A DOUBLE BIT (UNCORRECTABLE) ERROR
GIVES GOOD PARITY (SINCE 2 BITS ARE BAD) AND A NONZERO SYNDROME. THIS
IS HOW AN MF20 RECOGNIZES AN DOUBLE BIT ERROR. WHEN A DOUBLE BIT ERROR
IS DETECTED THE MFPO SHIPS THE DATA, AS IS, TO THE CPU WHILE FORCING BAD
XBUS PARITY. S£E THE TABLE ON THE RIGHT AT THE BOTTOM FOR A CONCISE
LIST OF ERROR CONDITIONS.
SOFTWARE DOUBLE BIT ERROR CORRECTION.
WHEN A DOUBLE BIT ERROR OCCURS ALL IS NOT LOST. WE MAY BE ABLE
TO RECOVER THE DATA USING A SOFTWARE ALGORITHM PROVIDED THAT AT LEAST
ONE OF THE BAD BITS IS A HARD FAILURE. (1) GET THE WORD AND ITS
SYNDROME. (2) WRITE THE WORD'S COMPLEMENT TO THE FAILED LOCATION. (3)
EQUIVALENCE THE MEMORY WORD WITH THE ORIGINAL WORD. (4) IF THE RESULT IS
ZERO OR HAS MORE THAN 2 BITS SET. PUNT. (5) IF EXACTLY TWO BITS ARE SET
IN THE EQUIVALENCE THEN XOR IT INTO THE ORIGINAL WORD AND YOU'RE DONE.
(6) IF THERE IS ONE BIT SET IN THE EQUIVALENCE THEN GET ITS BIT NUMBER.
(?) USE THE ORIGINAL SYNDROME TO FIND THE LINE IN THE TABLE ON THE NEXT
PAGE WHERE YOU WILL LOOK. (8) FIND THE BIT PAIR CONTAINING THE BIT. (9)
IF NOT FOUND, PUNT. (10) CORRECT THE BITS IN THE ORIGINAL WORD INDICATED
BY THE BIT PAIR AND YOU'RE DONE.
THIS ALGORITHM BECOMES MORE COMPLICATED WHEN THE ECC t SPARE ARE
TAKEN INTO CONSIDERATION TOO. HOWEVER THE ESSENTIAL IDEA REMAINS THE
SAME. WHILE SOFTWARE CORRECTION OF DOUBLE BIT ERRORS IS NOT IMPLEMENTED
THE BASIC ALGORITHM IS INCLUDED HERE SHOULD THE NEED FOR IT ARISE.
AN EXAMPLE OF ERROR CORRECTION.
WRITE A 3 TO MEMORY, ASSUME THAT BIT 27 IS STUCK
HIGH IN MEMORY. AS SHOWN ON THE PREVIOUS PAGE
THE ECC FOR 3 IS 362, THEREFORE:
3<362> GOES TO MEMORY.
ON THE READ BIT 27 IS STUCK HIGH SO THAT WE SEE:
403<362> FROM MEMORY.
WE CALCULATE THE NEW ECC:
374 IS ECC FOR (LESS 438 PAR BIT)
250 IS SYNDROME FOR BIT 35
244 IS SYNDROME FOR BIT 34
210 IS SYNDROME FOR BIT 27
XOR THE WHOLE MESS TOGETHER
170 IS THE NEW ECC.
WE NOW CALCULATE THE SYNDROME:
360 IS THE OLD ECC (LESS 43B PAR BIT)
170 IS THE NEW ECC
— XOR
210 IS THE SYNDROME
THE HARDWARE MAPS THE SYNDROME TO THE PROPER BIT
AND CHANGES THE BIT:
403 IS DATA FROM MEMORY
400 IS THE MAPPED BIT
XOR
3 IS WHAT GOES BACK TO THE CPU.
HOCUS-POCUS-PRESTO-CHANGO. THE ERROR IS GONE!
ZERO
OK
ZERO
BAD
\l-M'-
BAD
NOT OR
1.2. ETC
BAD
NOT
OK
EVERY THING IS OK. TAKE DATA
AS IT IS.
43-BIT PARITY BIT IS BAD.
USE THE DATA AS IT IS.
AN ECC BIT IS BAD. USE THE
DATA AS IT IS.
A DATA BIT IS BAD. CORRECT IT
AND SEND BACK CORRECTED WORD.
THIS IS A NON-CORRECTABLE
ERROR. PUT DATA ON XBUS AS
IT IS PLUS BAD PARITY.
THIS IS THE TABLE OF SYNDROMES VS. ALL POSSIBLE BIT PAIRS WHICH COULD CAUSE A DOUBLE
BIT ERROR WITH THAT SYNrOME. THE SYNDROME IS THE OCTAL NUMBER ON THE LEFT. REMEMBER THAT
IT IS ONLY 6 BITS BUT I SHOWN ALIGNED AS IT IS IN AN SBUS DIA6 FUNCTION 6.1. ALL THE BIT
PAIRS WHICH WOULD RESULT IN A GIVEN SYNDROME ARE ON THE LINE TO THE RIGHT OF THE SYNDROME. ^^^
THESE PAIRS ARE DECIMAL KLIO BIT NUMBERS WITH THE LOWER NUMBER OF THE PAIR TO THE LEFT OF THE
COMMA. THE PAIRS ARE IN ORDER BY THE LOWER NUMBER. THE TABLE CONTINUES ON THE NEXT PAGE.
SEQ 0018
DHKBG
SYN BIT PAIRS WHICH COULD CAUSE A DBE WITH THE GIVEN SYNDROME
37A
370
364
360
35A
350
3AA
3A0
33A
330
32A
320
314
310
304
300
274
270
264
260
254
250
244
240
234
230
224
220
ho
>04
^00
15.35 16,34 17,33 18,32
14,35 16,33 17,34 18,31
14.34 15,33 17,35 18,30
14.33 15,34 16,35 18.29
11.35 12.34 13.33 18.28
12.33 13.34 18.27 19.28
11.33 13.35 18.26 19.36
11.34 12.35 18.36 19.26
11.31 12.30 13.29 14.28
11.32 12.29 13,30 14.27
11.29 12.32 13.31 14,26
11.30 12,31 13.32 14.36
11.27 12.26 13.36 14.32
11.28 12.36 13.26 14.31
11.36 12.28 13.27 14.30
11.26 12.27 !3.28 14.29
01.35 02.34 03.33 04.31
02.33 03.34 04.32 05.29
01.33 03.35 04.29 05.32
01.34 02.35 04.30 05,31
00,33 04,27 05,26 06,36
00,34 04,28 05,36 06,26
00,35 04,36 05,28 06,27
04.26 05.27 06.28 07.29
00.29 01.27 02,26 03,36
00.30 01.28 02.36 03,26
00,31 01.36 02.28 03.27
00.32 01.26 02.27 03,28
19,31 20,30 21,29 22,28 23,27 24,26
19:32 20,29 21,30 22,27 23,28 24,36
19.29 20,32 21,31 22,26 23,36 24,28
19.30 20,31 21,32 22,36 23,26 24,27
19,27 20,26 21,36 22,32 23,31 24.30
20,36 21,26 22,31 23,32 24,29 25,30
20,28 21,27 22,30 23,29
20,27 21,28 22,29 23,30
15.27 16,26 17,36 23,35
15.28 16,36 17,26 22,35
15,36 16,28 17,27 22,34
15,26 16,27 17,28 22,33
15.31 (6,30 17,29 19,35
15.32 16.29 17.30 18.35
24.32 25.31
24.31 25.32
24.34 25.33
24.33 25.34
23.33 25.35
23.34 24.35
20.34 21,33
20.33 21.34
15.29 16.32 17.31 18.34 19.33 21.35
15.30 16.31 17.32 18.33 19.34 20.35
05.30 06.29 07.28 08.27 09.26 10.36
06.30 07.27 08.28 09.36 10.26 31,38
06.31 07.26 08.36 09.28 10.27 30.38
06.32 07.36 08,26 09.27 10.28 29.38
07.32 08.31 09.30
07.31 08.32 09,29
07,30 08,29 09,32
08,30 09,31 10,32
08,35 09,34 10,33
07 35 09,33 10,34
07,34 08,33 10,35
07.33 08.34 09.35
10.29 28.38
10.30 27.38
54.40
53.40
1.31
!,42
>6,38 33,41
54,41 35,40
28.39 30.40 31.41
27.39 29.40 31.42
26.39
29.42
'9.41 30.42
50.41 31.40
00.36 01.31
00.26 01.32
2.30 03.29
2.29 03.30
04.;
05.:
05.34 06.33 26.40 27.41
06.34 27,42 28,41 31,39
\-M
mui'MmuBik^mntiUhtuHiki
25,36
25,26
25,27
25,28
25,29
35,37
34,3"
33,37
32,37
31,37
30,37
29,37
28,37
27,37
26,37
36,37
32,38
35,39
34,39
33,39
35.41
35.42
34.42
36.38
32.42
32.41
32.40
56.39
52.39
56.40
J6.41
$6.42
SYN BIT PAIRS WHICH COULD CAUSE A DBE WITH THE GIVEN SYNDROME (CONTINUED FROM PREVIOUS PAGE)
SEQ 0019
17A 00,22 01,20 02.19 03,18 04,16 05,15 06,14
170 00,23 01,21 02,18 03,19 04,17 05,14 06,15
164 00,24 01.18 02,21 03,20 04,14 05,17 06,16
160 00,25 01,19 02,20 03,21 04.13 05,16 06,17
154 00,18 01,24 02,23 03,22 04,12 05,11 06,37
150 00,19 01,25 02,22 03,23 04,13 05,37 06,11
144 00.20 01,22 02,25 03,24 04.37 05.13 06.12
140 00,21 01,23 02,24 03,25 04,11 05,12 06,13
134 00,14 01,12 02,11 03,37 04,24 05,23 06,22
130 00,15 01,13 02,37 03,11 04,25 05,22 06,23
124 00,16 01,37 02,13 03,12 04,22 05,25 06,24
120 00,17 01,11 02,12 03,13 04,23 05,24 06,25
114 00,37 01,16 02,15 03,14 04,20 05.19 06.18
110 00.11 01.17 02.14 03.15 04.21 05.18 06.19
104 00,12 01,14 02,17 03,16 04.18 05,21 06,20
100 00,13 01,15 02,16 03,17 04,19 05,20 06.21
074 00,07 01.05 02.04 03.38 06.39 08.40 09.41
070 00;08 0i;06 02:38 03.04 05.39 07.40 09,42
064 00,09 01,38 02,06 03.05 C4.39 07.41 08.42 10.40
060 00.10 01.04 02.05 03.06 07.42 08.41 09.40 11.23
054 00.38 01.09 02,08 03,07 04,40 05,41 06,42 10,3?
050 00,04 01,10 02,07 03,08 05,42 06,41 09,39 11,21
044 00,05 01,07 02,10 03,09 04,42 06.40 08.39 11.18
040 00;06 01.08 02.09 03.10 04.41 05.40 07,39 11.19
034 00.39 01.40 02.41 03.42 04.09 05.08 06.07 10.38
030 00^01 02.42 03.41 04,10 05,07 06,08 09,38 11,17
024 00,02 01,42 03,40 04,07 05,10 06.09 08.38 11.14
020 00:03 0i:41 02:40 04:08 05.09 06.10 07.38 11.15
014 00,42 01,02 03,39 04,05 06.38 07.10 08.09 11.12
010 00.41 01.03 02.39 04.06 05.38 07.09 08.10 11,13
004 00,40 01,39 02,03 04,38 05,06 07.08 09,10 11.37
000 A ZERO SYNDROME NEVER CAUSES A DOUBLE BIT ERROR
07.13 08,12 09,11
07,12 08,13 09,37
07,11 08,37 09,13
07.37 08,11 09.12
07.17 08.16 09,15
07,16 08,17 09,14
07,15 08,14 09.17
07.14 08.15 09.16
07.21 08,20 09,19
07,20 08,21 09,18
07,19 08,18 09,21
07.18 08,19 09,20
07,25 08.24 09.23
07.24 08,25 09,22
07,23 08,22 09,25
07.22 08,23 09,24
10,42 11,24 12,23
10,41 11,25 12.22
11.22 12,25
12.24 13.25
11.20 12.19
12.18 13.19
12.21 13.20
12.20 13.21
11.16 12.15
12.14 13.15
12.17 13.16
12.16 13.17
13.37 14.17
12.37 14.16
10.37 17.38 21,39 23,40 24,41 25,42
10:11 16,38 20,39 22,40 24,42 25,41
10,12 15,38 19,39 22,41 23,42 25.40
10:13 14,38 18,39 22,42 23,41 24,40
10.14 13,38 19,40 20,41 21,42 25.39
10.15 12.38 18.40 20,42 21,41 24,39
10.16 11,38 18,41 19,42 21,40 23,39
10:17 18,42 19,41 20,40 22,39 37,38
10.18 13,39 15,40 16,41 17,42 25,38
10.19 12,39 14,40 16,42 17,41 24,38
10.20 11,39 14,41 15,42 17,40 23,38
10.21 14,42 15,41 16,40 22,38 37,39
10.22 11,40 12.41 13.42 17.39 21.38
10.23 12.42 13.41 16,39 20,38 37,40
10.24 11,42 13,40 15,39 19,38 37,41
10:25 11:41 12,40 14,39 18,38 37,42
13.22 14,21 15,20 16,19 17,18 25,37
13.23 14.20 15.21 16.18 17,19 24,37
13.24 14,19 15,18 16.21 17.20 23.37
14:i8 15.19 16.20 17.21 22.37 29.33
13.18 14.25 15.24 16.23 17.22 21.37
14.24 15.25 16.22 17.23 20.37 27.33
14.23 15.22 16.25 17.24 19.37 26.33
14.22 15.23 16.24 17.25 18.37 26.34
13.14 17.37 18.25 19.24 20.23 21,22
16.37 18.24 19.25 20.22 21.23 26.32
15.37 18.23 19.22 20.25 21.24 26.29
14:37 18.22 19.23 20.24 21.25 26.30
15.16 18.21 19.20
15.17 18,20 19,21
'2,25 23,24 26,27
?2,24 23.25 26,28
30,35 31,34 32,33
29.35 31.33 32.34
29.34 30.33 32.35
30.34 31.35 38.39
26.35 27.34 28.33
28.34 35.36 38.40
28.35 34.36 38.41
27.35 33.36 38.42
26.31 27.30 28. k> 32.36
27.29 28.30 31.36 39.40
27.32 28,31 30,36 39,41
27,31 28,32 29,36 39,42
28.36 29,32 30,31 34,35 40,41
27,36 29,31 30,32 33,35 40,42
12.13 14.15 16.17 18.19 20.21 22.23 24.25 26,36 27,28 29.30 31.32 33.34 41,42
J L
APR ID
700000
LH(E)
RH(E)
CONG APR,
700200
E
CONI APR.
7002A0
LH(E)
RH(E)
ROERA
700A00
LH(E)
RH(E)
CONG PI,
700600
MISCELLANEOUS KLIO I/O INSTRUCTIONS RELATING TO THE MEMORY SYSTEM.
SEQ 0020
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25 08/26^09/27 J 0/28^1 1/29 J2/30J3/31J4/32J5/33J6/34^
* < MICROCODE OPTIONS
*KLPAG!XADDR!UNSTD* ! ! * !
> * < MICROCODE VERSION NUMBER
TRCKS* !!*!!*!
> *
1 *
-...4-.—*
* < HARDWARE OPTIONS
♦50 HZICACHEICHANL* XADR!MSTR !
> * <
* !
PROCESSOR SERIAL NUMBER
*!!*!!
*
1
> *
I ♦
....4— .— t
»——+—— 4——*— —+——+-
18 19 20 21 22
23 24
25
26 27 28 29 30 31
L — .-.^ — _...X. __**^***** ****** <^***** •4' «
32
33
34 35
* <
SET * SBUS!
NXM
SELECT FLAG > !
. IOPF*MBPAR!C DIR!ADR P*P0WER! SWEEP!
L.....*^.****4.*****^***********4>*****4-«
*
*
PI
4 !
LEVEL *
2 ! 1 *
*——+ — — + - — -* — -- + — — + — " T
OC/18 01/19 02/20 03/21 04/22 05/23 06/24
07/25
08/26 09/27 10/28 11/29 12/30 13/31 14/32 15/33 16/34 17/35
*!!*!!
* <
' SBUS!
NXM
ENABLED FLAGS > !
! I0PF*MBPAR!C DIRiADR P*PGWER! SWEEP!
*
1
*
! *
♦ ! SWEEP!
♦ ! BUSY! * ! !
* SBUS!
* ERR !
NXM
! I/O * MB ! CACHE! ADDR*PGWER! SWEEP!
! PGF * PAR ! DIR ! PAR * FAIL! DONE!
A._— _..*.. ._*▲***** 4. ****** *****4>*****4>«
INT *
REQ *
PI
4 !
LEVEL *
2 ! 1 *
00/18 01/19 02/20 03/21 04/22 05/23 06/24 07/25
08/26 09/27 10/28 11/29 12/30 13/31 '
X....M *..... X..*wwX««»»«»******4*****^«
14/32 15/33 16/34 17/35
* WORD NG ! SWEEP* CHAN! DATA
» ! ! REF * REF ! !
SRC *WRITE.
* REF .
JUNK
1
! JUNK* ! ! * ! i
<f ****** *****^*****4>*****1^*****^w—w«*4«
PHYSICAL
14 * 15 !
ADDRESS *
16 ! 17 *
♦ - 4. + * + .f.
PHYSICAL
23 * 24 ! 25
* +
ADDRESS OF FIRST WORD OF TRANSFER,
! 26 * 27 I 28 ! 29 * 30 ! 31 !
+ * 4. + * -f ♦'
32 •
— — — *-
33 !
> *
34 ! 35 *
——4.——*
DATA SRC
00
01
10
11
WRITE =
MEMORY (READ, RPW)
READ FROM CACHE
(PG REFILL OR CHAN READ)
WRITE = 1
CHANNEL (STORE STATUS)
CHANNEL (DATA STORE)
EBOX STORE FROM AR
WRITEBACK FROM CACHE
18 19 20
* 4. 4——*.
* WRITE EVEN PAR *
* ADDR: DAI A! DIR *
»— — _4-.— 4— — *.
21 22 23 24
! DROP! CLEAR* REQ
! INT ! SYS * INT
.—.4 — —4 *.....
25 26
27 28 29
4 4 *.
TURN CHAN * TURN SYS ! <
ON ! OFF * OFF ! ON ! 1 *
—4 * 4- •♦- *"
30
31 32 33
.4 4 1, 4.
SELECT CHANNEL
! 3 ! 4 • 5 !
.4 4 — — *- 4-
34
35
> *
7 *
_J
DDDDD
D D
D [
D [
D [
D D
DDDDD
H H
K K BBBBB6
GGGGG
H H
K K B B
6 G
H H
K K B B
G
HHHHHHH
KKKK BB6BB6
G
H H
K K B B
G GG6
H H
K K B B
G G
H H
K K BBBBBB
%GGG6
H H
SSSSS
TTTTTTT
H H
S S
H H
S
HHHHHHH
SSSSS
H H
S
H H
S S
H H
SSSSS
SEQ 0021
DHKB
THIS IS A HISTORY OF THE DEVELOPMENT OF DHKBG.
PRODUCT CODE: MAINDEC-10-DHKB6
PRODUCT NAME: KLIO MF20 DIAGNOSTIC, PART 2 OF 2
FIRST RELEASED VERSION: 0.2
ORIGINAL AUTHOR: JEFFREY ARNO BARRY 29857
ORIGINAL RELEASE DATE: OCTOBER 1978
VERSION 0.1 WAS NOT RELEASED TO THE FIELD. THIS VERSION WENT THROUGH MANY, MANY
REVISIONS IT WAS USED TO SUPPORT THE MF20 ENGINEERING AND EARLY MANUFACTURING
EFFORTS. MANUFACTURING IS IS POSSESION OF A FEW DIFFERENT COPIES OF 0.1, BUT
THESE COPIES WILL NOT BE RELEASED.
CHANGES FROM VERSION 0.1 TO 0.2:
1. VERSION 0.2 IS THE FIRST RELEASE VERSION OF THE DIAGNOSTIC. IT HAS ALL
KNOWN BUGS FIXED, ALL THE LATEST FEATURES, AND ALL THE LATEST UPDATES FOR ^^^,„,.
HARDWARE changes! ONLY THE VERSION NUMBER CHANGED TO DIFFERENTIATE THIS VERSION
FROM ALL THE PRERELEASE STUFF FLOATING AROUND.
CHANGES FROM VERSION 0.2 TO 1.2:
1. A PROBLEM WAS DISCOVERED IN THE MEMORY BOOT RELEATING TO THE WAY THAT THE
DOUBLE BIT ERROR SCAN WAS DONE WITH RESPECT TO EACH BLOCKS SHADOW MEMORY WORDS.
THIS WAS FIXED. SINCE DHKBG USES THE MEMORY BOOT'S DBE SCAN, IT HAD TO BE
UPDATED TO INCLUDE THE REPAIRED ROUTINE.
2. IT APPEARS THAT DHKBG VER 0.2 WILL NOT MAKE IT TO THE FIELD AFTER ALL.
L_
CHANGES FROM VERSION 1.2 TO 0.3:
1. ALL NECESSARY UPDATES TO SUPPORT ISOLATION ROUTINES WERE DONE.^ ISOLATION
ROUTINES ARE NOW AUTOMATICALLY CALLED AFTER CONVERGENCE UPON AN ERROR.
2. SEVERAL MIi.uH BUGS WERE FIXED AS WELL AS CHANGES MADE TO SOME TESTS TO GIVE
BETTER RESOLUTION ON FAULTS.
CHANGES FROM VERSION 0.3 TO 0.4:
1. ALL NECESSARY UPDATES TO SUPPORT MG20 WERE DONE.
CHANGES FROM VERSION 0.4 TO 0.5;
1. ALL NECESSARY UPDATES TO SUPPORT MCA25 WERE DONE.
2. BUG RUNNING WITH MG20 AND MB20 CORRECTED.
SEQ 0022
DHKE
L
L_
)W
DHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 1
SEQ 0023
DHK
DOCUMENT
**♦»***♦******
DHKBG KLIO MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5
**************
J.A.BARRY 29857
COPYRIGHT 1984
DIGITAL EQUIPMENT CORPORATION
MAYNARD, MASS. 01754
L
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 2
SEQ 002^
DHI
TABLE OF CONTENTS
*******************
46 *PRM11* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, l-nMi'll
577 DTE20 DEVICE REGISTER AND BIT DEFINITION:, 27-nA'('76
831 KL10 EBOX MACRO DEFINITIONS, 27-MAY-76
1388 KW11 DEVICE REGISTERS AND BIT DEFINITIONS, 27-MAY-76
1396 MM11 DEVICE REGISTERS AND BIT ASSIGNMENTS, 27-MAY-76
2234 MOSMAC — THE MOS DIAGNOSTIC MACRO LIBRARY
2609 LOOP CONTROL MACROS
2716 GENERAL PURPOSE MACROS
3137 SIMPLE CALLER TYPE MACROS
3382 MF20 PROTOTYPE TIMING MACROS (DERIVED FROM M0STIM.P11)
3590 MEMORY BOOT SUBROUTINE CALLER MACROS
3874 *DIACON* DIAGNOSTIC MACROS 15-JUL-77
4180 *DIACON* DIAGNOSTIC EXECUTIVE 4-FEB-77
4259 DIACON COMMANDS
4412 EXEC
5389 STANDARD ERROR DATA STACKING SUBROUTINES
5524 SCOPE SYNC SUBROUTINES 6-APR-78
5619 ERROR REPORTER 15-JUL-77
5677 FORMAT TABLES
6025 REPORT HEADING PRINTER
6061 ERROR STACK SCANNER
6112 JUMP TABLE
L
L
)012
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 3
SEQ 0025
r
DH
TABLE OF CONTENTS
*******************
6187 MAIN REPORT ROUTINES
6780 REPORT SUBROUTINES
7290 SLOT-TO-BOARD* CONVERSION TABLE S DATA U-MAR-77
7359 BOARD CALLOUT PRINT ROUTINE
7505 REPORT VARIABLES AND CONSTANTS
7539 /CMD HANDLING CODE COMMON TO DHKBF/DHKB6
7816 VARIABLES. CONSTANTS. & DEFINITIONS COMMON TO DHKBF/DHKB6
7902 "TEST#0." ONE-TIME INIl COMMON TO DHKBF/DHKBG
7991 TEST#1. MASTER OSC TEST FIRST. COMMON TO DHKBF AND DHKBG.
8035 TEST#2. CONTROLLER CONFIGURATION TEST. COMMON TO DHKBF S DHKBG.
8088 DHKBF/DHKBG DIAGNOSTIC CONTROL SUBROUTINES. COMMON INIT FIRST.
8K2 CONTROLLER SELECT LOOP CODE
8176 CONTROLLER INITIALIZATION CODE
8«03 Dm<B6 TEST DISPATCH TABLES. INI TAB 8 TESTAB
8A56 /CMD CODE PECULIAR TO DHKBG
8A83 TEST*3. STORAGE ARRAY BOARD PROM DATA TEST.
8810 TEST*A. GROUP LOOPBACK GROUP SELECT TEST.
8899 TEST#5. GROUP LOOPBACK DATA PATH TEST
9050 TEST#6. READ ERROR CORRECTION & FLAG TEST USING GROUP LOOPBACK
9422 TEST#7. FULL SPEED REFRESH VERIFICATION TEST
9532 TEST#8 S TEST#9 INITIALIZATION.
9607 TEST#8. NON-ADDRESS CONTROL SIGNALS GENERATION TEST.
L
0013
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
TABLE OF CONTENTS
*******************
9652 TEST*9. NON-ADDRESS CONTROL SIGNALS PROPAGATION TEST.
97A4 TEST#10. 6K MP, BLOCK. SUBBLOCK UNIQUENESS TEST
9978 TEST*11. MOS ADDRESS GENERATION TEST
10157 TEST#12. MOS ADDRESS PROPAGATION TEST
10391 TEST#13. DATA PATH TO RAM TEST
10629 TEST#U. SYN BOARD SPARE-BIT-IN TEST USING RAM
10904 TEST#15. READ ERROR CORRECTION & FLAG TEST USING MEMORY
109A1 TEST*16. FULL SPEED READ-PAUSE-WRITE TEST
11025 TEST*18. PAGE REFILL CYCLE & DATA TEST.
11392 TEST#19. DOUBLE BIT ERROR SCAN S F' TEST
11518 TEST#20. MULTI-WORD CYC TEST, PERMANENTLY RESIDENT CODE.
11657 SUBROUTINES PECULIAR TO DHKBG
12298 SUBROUTINES TO MOVE DATA TO UNUSF*^ "0 BITSUB LOCS
12A63 Initialize all memory boot data areas
12527 MEMORY BOOT DATA AREA
13360 MEMORY CONTROLLER TYPE FORMAT CHECK
13428 DETERMINE CONTROLLER PRESENSE & FUNCTION 01 DATA
13769 READ MOS PROM DATA FOR A CONTROLLER
13047 DIGEST PROM DATA FOR A MOS CONTROLLER
13985 LOAD A MOS CON/ROLLER'S FIXED VALUE RAMS
14073 LOAD A MOS CONTROLLER'S TIMING RAMS
14134 LOAD ft START REFRESH FOR A MOS CONTROLLER
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 4
SEQ 0026
D»
DHICB6 KL10 MF20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-8A 13:U:13 PAGE 5
SEQ 0027
DHKBG K
TABLE OF CONTENTS
*******************
U164 HAKE SURE TIMING FILES ARE LOADED FOR A MOS CONTROLLER
14502 MOS RAM DOUBLE BIT ERROR SCAN S FIX SUBROUTINES
15089 SUBROUTINE TO DO DEFAULT INIT OF MF20 BITSUB RAM
15135 CONFIGURE A MOS BLOCK TO END OF 256K ADDRESS SPACE
15927 REPORT WHAT CONTROLLER DATA UE HAVE TO NOW
16110 SUBROUTINES USED FROM ALL OVER
16\>4 SBUS DIAG SUBROUTINES
16A42 MOS CONTROLLER ERROR DATA DUMPER CODE
1666A COMPARE ROUTINES
16770 MISCELLANEOUS SUPPORT SUBROUTINES
16897 COMMAND PARSER FOR / TYPE CMDS TO DIAGNOSTIC
17366 ROUTINE TO CHANGE THE CURRENT AC BLOCK \
17A56 PROGRAM RUN CONTROL ROUTINES '
17778 NEW AC LOAD ROUTINES
18069 RESET SUBROUTINES
18213 REGISTER SAVE S RESTORE ROUTINES
18791 JAB — THE "JUMP TO AC BLOCK" INSTRUCTION
18931 ** LITERALS PUT HERE •*
18942 DHKBG TESTS-USING-CACHE EXTENSION FOR OVERLAY AREA
19000 MACROS ASSOCIATED WITH CACHE RESIDENT PROGRAMS
19027 MULTIPLE WORD MEMORY CYCLE TEST, OVERLAY RESIDENT CODE
19338 SUBROUTINES
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:U:1 3 PAGE 6
SEQ 0028
DHKBG
TABLE OF CONTENTS
19A39 PDP-11 PROGRAM PATCHER
19A97 END OF TESTS-USING-CACHE OVERLAY
J
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
46
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 7
SEQ 0029
DHKBG
577
*****************************************************************
♦PRM11* DECSYSTEMIO PDP-11 PROGRAM/SUBROUTINE PARAMETERS. 7-MAR-77
*****************************************************************
48 PROGRAM CONTROL SWITCHES
72 OPERATOR DEFINITION - SUBROUTINE CALLS (EMTS)
80 TELETYPE INPUT SUBROUTINE CALLS (EMTS)
109 TELETYPE OUTPUT SUBROUTINE CALLS (EMTS)
149 MISCELLANEOUS FUNCTION SUBROUTINE CALLS (EMTS)
166 DEVICE ROUTINE SUBROUTINE C. LLS (EMTS)
203 COMMUNICATION ROUTINE SUBROUTINE CALLS (EMTS)
216 KL10 ROUTINE SUBROUTINE CALLS (EMTS)
289 FILES-11 SUBROUTINE CALLS (EMTS)
299 BASIC MACROS
439 STANDARD PROGRAM ASSIGNMENTS
452 REGISTER DEFINITIONS
464 PDP-11/40 STANDARD TRAP VECTOR ASSIGNMENTS
481 PDP-11/40 STANDARD ADDRESS ASSIGNMENTS
493 BIT ASSIGNMENTS
526 PRIORITY ASSIGNMENTS
537 ASCII CHARACTER DEFINITIONS
*****************************************************************
DTE20 DEVICE REGISTER AND BIT Dl5INITI0NS. 27-MAY-76
♦♦♦♦***♦*♦***♦*»********»***•♦***•********♦****♦«****************
735 KL10 DIAGNOSTIC FUNCTION DEFINITIONS
J
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, \/ER 0.5 J.A.BARRY 29857
831
OECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 8
SEQ 0030
DHKBG
*****************************************************************
KL10 EBOX MACRO DEFINITIONS, 27-MAY-76
*****************************************************************
*****************************************************************
1388 KU11 DEVICE REGISTERS AND BIT DEFINITIONS, 27-MAY-76
*****************************************************************
*****************************************************************
1396 IW11 DEVICE REGISTERS AND BIT ASSIGNMENTS, 27-MAY-76
*****************************************************************
*****************************************************************
223A MOSMAC — THE MOS DIAGNOSTIC MACRO LIBRARY
*****************************************************************
2237
2254
2282
2308
2326
2i<5
2380
2389
2408
MACRO SPRADR GENERATES A LIST OF PUSHES WHICH PUSH THE ARGUMENT
ADDRESSES IN REVERSE ORDER. UP TO 8 ARGUMENTS MAY BE GIVEN.
GENERATES TABLE ENTRIES TO IDENTIFY BITS OF DIAGNOSTIC FUNCTIONS TO BE
TESTED BY CMP.S AND SIO. ORDER IS MSB TO LSB. A NEGATIVE VALUE INDICATES THE
TABLE END.
MACRO TO ENCODE 'AGNOSTIC FUNCTION, BIT NUMBER & FLAVOR INTO A PDP11
UORD.
PDP10 DIAGNOSTIC DATA BIT TEST ROUTINE. ARGUMENT IS PDP10 BIT NUMBER OF
A WORD LOCATED IN THE DTE20 DEXWDS.
STARTS THE KL RUNNING AND WAITS FOR EITHER A HALT OR A TIMEOUT.
THE RUN MACRO GENERATES A CALL TO A SUBROUTINE WHICH RUNS A 10 SIDE
PROGRAM. THERE ARE TWO PARAMETERS: PC AND TIM. PC IS THE STARTING PC (USING
THE CURRENT AC BLOCK). IF IT NOT GIVEN THE PC USED IS THE PC SPECIFIED BY THE
LAST •'MABL" WHICH GAVE THE STARTING PC. TIM IS THE TIMEOUT PARAMETER. IF LEFT
BLANK THE TIME IS ASSUMED TO BE ONE 60 CYCLE CLOCK TICK.
MACRO USED TO GENERATE ASCII TEXT OF A NUMERIC ARS IN CURRENT RADIX.
USE \ TO PRECEED ARGUMENT IN CALL.
MACRO C60T0 DOES A COMPUTED GO-TO BASED ON THE GIVEN PARAM (0 TO N) OR
THE VALUE IN RO IF NO PARAM GIVEN. CHECKS THE RANGE OF THE PARAM VS. THE
LENGTH OF THE PARAM LIST.
CALLER FOR CLOCK CONTROL ROUTINE. FIRST ARGUMENT IS THE PDP11 ADDRESS
OF A PDP10 INSTRUCTION TO BE EXECUTED WITH CONTROLLED CLOCKING. THE SECOND
ARGUMENT SPECIFIES HOW TO DETERMINE THE NUMBER OF CLOCKS. IF IT IS AN INTEGER,
IT IS USED AS A BURST COUNT. OTHERWISE IT HAY BE OF THE FORM __^^ ^^,
<0IA6FCN,BITNBR,FLAV0R> TO SPECIFY THAT THE CLOCK IS TO BE SINGLE-STEPPED UNT L
BIT 'BITNBR" OF DIAGNOSTIC FUNCTION "DIAGFCN" TRANSITIONS TO "FLAVOR^' (0 OR 1).
J
_J
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5
2423
J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 9
SEQ 0031
DHKBG
2609
CALLER FOR A ROUTINE WHICH TESTS FOR THE LEADING EDGE OF AN EVENT. THE
EVENT IS SPECIFIED BY <D1AGFCN.BITNBR,FLAV0R>.
2442 CALLER FOR ROUTINE WHICH STEPS THE CLOCK UNTIL AN EVENT IS DETECTED.
THE EVENT IS SPECIFIED BY <DIAGFCN, BITNBR, FLAVOR>.
2460 STEP10 CONTINUATION CALL
2470 MACRO TO CALL SOBAC. PARAMS ARE STD FUNC ARGS.
2481 MACRO TO CALL DSOBAC. PARAM ASSUMED ALREADY LOADED IN RO.
2490 MACRO TO GENERATE A CALL TO A ROUTINE TO GENERATE A BURST OF CLOCKS.
2506 MACRO TO GENERATE A CALL TO A ROUTINE WHICH STEPS THE MBOX CLOCK ONCE.
THIS ROUTINE SUPPORTS FUNCTION BREAKPOINTS.
2533 MACRO FOR CALLING ACLOAD S ACSCAT. TWO FORMATS ARE PERMITTED.
LOADAC ACMASK. ADDRESS ;CALLS ACLOAD ^ ^^_^
LOADAC ACMASK,<ADR1.ADR2.....ADRN> ; CALLS ACSCAT
2561 MACRO TO CALL AC8LK: A SUBROUTINE TO SET THE AC BLOCK.
2581 CALLER TO PRINT PROGRAM VERSION NUMBER
2591 GENERATE A CALL TO A PROGRAM WHICH INVALIDATES THE CACHE
2599 MACRO PWTES GENERATES A CALL TO A SUBROUTINE WHICH PUTS AN INVISIBLE
PARAM WORD ON THE ERROR STACK. IF NO PARAM IS GIVEN. IT IS ASSUMED LOADED
ALREADY IN RO.
*****************************************************************
LOOP CONTROL MACROS
*****************************************************************
2611 THE PURPOSE OF THE LOOP CONTROL MACROS IS TO SIMPLIFY THE CODING OF
LOOPS IN CIRCUMSTANCES WHERE THE LOOP PARAMETER CONTROL IS RATHER COMPLEX, AND
THE LOOP IS TO BE DONE IN MORE THAN ONE PLACE. THESE MACROS ARE BROKEN INTO 3
BASIC GROUPS: THE LOOP DEFINITION, THE LOOP CONTROL, AND THE PRIVATE CODE
MACROS.
THE LOOP DEFINITION MACROS DEFINE THE LIMITS OF A LOOP AND THE _^
PARAMETERS FOR INITIALIZING THE LOOP. THEY ARE LOOP, ENDLOOP, AND STOPLOOP._
THE LOOP CONTROL MACROS ARE USED IN CONJUNCTION WITH THE LOOP PARAMETER CONTROL
SUBROUTINES. THEIR PURPOSE IS TO EASE THE INTERFACE BETWEEN THE SUBROUTINE AND
THE LOOP DEFINITION MACROS. THSES MACROS ARE LOOPCONTROL. DOLOOP, LOOPDONE, AND
ENBLPS. THE PRIVATE CODE MACROS ARE USED BY THE OTHER MACROS TO GENERATE UNIQUE
SYMBOLS. THEY SHOULD NOT BE USED DIRECTLY BY THE PROGRAMMER.
IN STRUCTURED PROGRAMMING TERMS THESE MACROS GENERATE DO-WHILE
LOOPS RATHER THAN DO-UNTIL LOOPS. SINCE DO-UNTIL LOOPS ARE A SUBSET OF
DO-WHILE LOOPS, DO-UNTIL LOOPS CAN BE IMPLIMENTED.
n
OHKBG KLIO MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 10
SEQ 0032
DHKB(
*****************************************************************
2716 GENERAL PURPOSE MACROS
*****************************************************************
2719
2739
2748
2771
2817
2905
2949
2957
THE MOSDMP MACRO IS USED TO CALL THE MOSDMP SUBROUTINE. MOSDMP IS
SIMILAR TO MASK36 IN THAT IT TYPES OUT EXPECTED, ACTUAL, AND DIS- CREPENCY
WORDS? T IS, HOWEVER SPECIFICLY AIMED AT MF20 CONTROLLERS AND IS USED JO DUMP
THE SGNALS WHICH IT GETS FROM THE CONTROLLER USING SBUS DIA6S. WHEN THE MOS
MEMORY DS FILE IS AVAILABLE IT WILL ALSO NAME THE FAILING BIT(S). THE ARGUMENTS
ARE THE EXPECTED VALUE, THE ACTUAL VALUES, AND THE MASK. THERE ARE 2 ACTUAL
VALUES: THE SBUS DIA6 TO MEMORY WORD AND fHE FROM MEMORY WORD; THE FROM MEM WORD
MUST IMMEDIATELY FOLLOW THE TO MEM WORD. BOTH THE EXPECTED VALUE AND THE ACTUAL
VALUES MAY BE IN AN AC IN WHICH CASE EXAMINE(S) ARE DONE AUTOMATICLY TO GET THE
WORD(S).
MACRO TO LOAD THE ERROR STACK WITH A 5-BYTE PATTERN.
THE EXECUTE MACRO CALLS A SUBROUTINE WHICH EXECUTES A PDP-10 INSTRUCTION
AND THEN CHECKS TO MAKE SURE IT FINISHED. THE ARGUEMNT TO THE MACRO IS THE 11
ADR OF THE INSTRUCTION. IF NO ARG IS GIVEN THEN IT IS ASSUMED THE ADR IS
ALREADY IN RO.
THE SBDIAG MACRO CALL A SUBROUTINE WHICH DOES AN SBUS DIAG. AC16 & AC17
OF THE CURRENT BLOCK ARE CLOBBERED. THERE ARE 3 FORMS OF PARAMS: NONE SAYS SBUS
DIAG WD IS POINTED TO BY RO, 1 PARAM SAYS THAT THE PARAM IS THE ADR OF THE WORD,
AND 3 PARAMS INDICATES THE WORD ITSELF BROKEN INTO THREE 12-BIT BLOCKS A LA
WD36. SBDIAG IS INCOMPATABLE WITH THE SBUSDG MACRO.
HERE ARE THE MACROS FOR THE "FAST SBUS DIAG" ROUTINES:
.-LOAD FAST SBDIAG PROGRAM
;LOAD A MASK FOR FAST SBUS DIAG PRGM
'WHERE *
;ARG=<NyLL> MEANS JUST DO SBDIAG
;"FAULT^' ==> DO SBDIAG & FAULT ON ERROR
;D0 FUNCTION SDWADR & CHECK UNDER MSKADR
LDFSDP
FSDMSK MASKADR
FSD SDWADR, ARG
FSDCHK SDWADR, MSKADR
THE FOLLOWING IS THE MACRO USED TO LOAD MULTIPLE AC BLOCKS;
WHERE:
MABL <B0M,B1M B6M>,TDEA,SJDATA
B0M...86M ARE THE AC LOAD MASKS THE SAME AS USED BY LOADAC.
TDEA IS THE FIRST 11 ADR OF THE TEN DATA. ,,.„..„ ..«
SJDATA IS THE 16 BIT DATA FOR THE RH END OF THE STARTUP JAB
DEFERRED LOAD CODE DEFINITIONS FOR SUBROUTINE LDEFER.
IND36 IS USED IN CONJUNCTION WITH MABL AND THE LDEFER SUBRTN. ITS
PURPOSE IS TO PROVIDE AN "INDIRECT" LOAD FACILITY FOR LDEFER. THE MACRO
GENERATES A PSEUD0-36-BIT WORD WHICH CONTAINS A POINTER TO THE ACTUAL WORD^IN
POP-11 MEMORY. IF THE ADDRESS IS < THE DIAGNOSTIC START ADDRESS (3000) THEN THE
11 ADR USED IS THE ADR * RO (AT TIME OF CALL TO LDEFER), OTHERWISE THE ADDRESS
IS USED DIRECTLY. THE OPTIONAL SECOND ARGUMENT IS A LABEL FOR THE ADR WORD
WHICH THE MACRO CREATES.
OHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 11
2978 MACROS BLK10, XIO, X010, AND ENDBLK ARE ALL RELATED.^ BLKIO AND ENDBLK
ARE USED TO ENABLE THE CALCULATION OF PDPIO SYMBOLIC RELATIVE ADDRESSES. X10
AND XOIO ARE THE SAME AS 110 AND lOlO EXCEPT THAT THEY USES THE RELATIVE
ADDRESSES INSTEAD OF THE ABSOLUTE NUMBERS USED BY THE T MACROS.
3013 MY VERSIONS OF WD36, 110, AND 1010 ARE THE SAME AS THOSE IN PRM11 EXCEPT
THAT 1) THEY ALLOW SETTING . VALUE INTO THE UNUSED 4 BITS OF A 10 WORD IN 11
MEMORY. 2) INDIRECTION MAY NOW BE SPECIFIED USING AN a INSTEAD OF A 1. AND 3)
THEY ASSEMBLE FASTER.
3078 THE READAC MACRO CALLS A SUBROUTINE WHICH EXAMINES AN AC FROM THE
CURRENT OR SPECIFIED BLOCK. AND CHECKS TO MAKE SURE THAT THE EXAMINE WORKED
PROPERLY. RO POINTS TO WORD UPON RETURN. LEAVING THE BLOCK PARAM OUT SAYS TO
USE THE CURRENT JLOCK.^^ ^^^ ^^^^^ ^^^ ^^ ^^ ^ ^p^^.^^^^ ^^ ^^^^^^^^
3110 REGISTER SAVE AND RESTORE ROUTINES: "SAV.4" SAVE RA^RI ON THE STACK.
"RST.4" RESTORES THOSE REGISTERS. "R^.HS" IS EQIVALENT TO ''RST.V' THEN ''RTS
R5". THE CORRESPONDING SUBROUTINES HAVE STACK CHECK WHEN SDEBUG IS IN FORCE.
*****************************************************************
3137 SIMPLE CALLER TYPE MACROS
*****************************************************************
3191 SETRAM IS USED TO SET ALL THE LOCATIONS OF A PARTICULAR SET OF MOS^^^
CONTROL RAMS TO A PARTICULAR VALUE. THE PARAMETER IS AN SBDI AG WORD WITH (1)
THE MAXIMUM RAM ADDRESS, (2) THE DESIRED RAM DATA. (3) THE PROPER LOAD
ENABLE (S), AND (4) THE JUNCTION NUMBER. THE WORD IS IN WD36 FORMAT. THE
CONTROLLER NUMBER IS RETRIEVED FROM TSTCON.
3215 CALLER FOR ROUTINE TO COMPARE 5-BYTE ACTUAL & EXPECTED DATA
(TRAILING PARAMETERS). PARAMS ARE PDP11 ADDRESSES ONLY.
EXP = POINTER TO EXPECTED DATA
ACT = POINTER TO ACTUAL DATA
MSK = POINTER TO MASK (36-BIT. OPTIONAL)
3232 CALLER FOR ROUTINE TO COMPARE 5-BYTE ACTUAL AND EXPECTED
DATA. PARAMETERS PASSED IN REGISTERS & ARE PDP11 ADDRESSES ONLY.
R2 = MASK POINTER
R3 = EXPECTED POINTER
R4 = ACTUAL POINTER
3245 CALLER FOR ROUTINE TO COMPARE DATA FROM THE DTE-20 TO SOME ^
EXPECTED DATA (TRAILING PARAMETERS). PARAMS ARE PDP11 ADRESSES ONLY.
EXP = POINTER TO EXPECTED DATA
MSK = POINTER TO MASK (36-BIT. OPTIONAL)
3305 THE JAB MACRO EXECUTES A JAB (JUMP TO AC BLOCK) INSTRUCTION USING THE
PARAMETER (TP OR IN RO) AS THE RH 16 BITS OF THE INSTRUCTION. THE PARAM IS OF
THE FORM PPPPXY WHERE PPPP IS A 10-BIT PC VALUE. X IS THE 3-BIT NEW CURRENT AC
BLOCK NUMBER. S Y IS THE NEW PREVIOUS BLOCK.
SEQ 0033
DHKB
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:U:13
3323 UMAC IS USED TO ASSEMBLE KL10 MICROCODE INTO A PDP-11 DIAGNOSTIC
3349 OVRLOD IS USED TO LOAD A MICROCODE OVERLAY DEFINED BY UMAC.
*****************************************************************
3382 MF20 PROTOTYPE TIMING MACROS (DERIVED FROM M0STIM.P11)
*****************************************************************
PAGE 12
3385
3m !3
3A31
3462
THIS FILE PROVIDES THE MACROS AND VARIABLE DEFINITIONS NECESSARY FOR
GENERATING A 32 TICK MOS TIMING FILE. THE DATA IS ASSUMED TO START FROM TICK
(TIMING RAM LOCATION 0). THE ASSEMBLY WILL GENERATE A .BIN FILE.^ ^JL^
NECESSARY TO CONVERT THIS TO All FORMAT. THE FILENAMES HAVE THE FOLLOWING
FORMAT:
WHERE:
M
F
SS
N
X
1)
2)
3)
A)
MFSSNX
THE KL10 MODEL DESIGNATOR, EITHER "A" OR "B".
\k');mTuffu a^ii^is^". ■•16". ■32". OR ••««■•.
is "N" FOR NUCBER
THE TIMING NUMBER! A SINGLE DIGIT FROM "0" TO '3". THE TIMING NUMBER
IS UNIQUE FOREACH DIFFERENT TIMING FOR A GIVEN RAM SIZE. THIS NUMBER
HAS NO RELATION TO MANUFACTURER OR RAM TYPE.
THE MACROS MUST BE USED IN THE FOLLOWING ORDER:
10 OR FEWER TIMSI6 MACROS TO DEFINE TIMING SIGNALS. NOTE THAT THE
PROTOTYPE MF20 DEFINITION HAS ONLY 7 DIFFERENT TIMING SIGNALS.
1 CALL TO TIMING TO GENERATE THE TIMING ID. ^^_
AS MANY CALLS TO TICK AS NEEDED TO GENERATE THE TIMING WORDS.
FINALLY, 1 CALL TO ENDTIM TO CLEAN UP.
THE TIMSIG MACRO DEFINES SYMBOLS USED IN THE GENERATION OF THE TIMING
WORDS. ARGUMENTS ARE SIGNAL NAME ( <7 CHARACTERS) AND A BIT # WHICH CORRESPONDS
TO THE SBUS DIAG FUNCTION 11 BIT (20-30). ^^ ^^ ,, ^^.. ^^^^^ ,^ ^^^
NOTE THAT ONE OF THE DEFINED SIGNALS MUST BE "TRPAR". TRPAR IS THE
TIMING RAM PARITY BIT. IT MUST BE DEFINED BUT NEVER USED AS IT IS HANDLED
AUTOMATICLY. PARITY IS ASSUMED TO BE ODD.
THE TIMING MACRO GENERATES THE TIMING ID. THE FOUR.ARGS ARE:,THE KLI.O
MODEL, EITHER "KLIOA" OR 'XLlOB"; THE MOS RAM SIZE, EITHER "AK'* ''16K'' /32K ,
OR "6k^': THE TIMING NUMBER IN THE RANGE TO 3; AND FINALLY THE DECIMAL VALUE
TO BE LOADED INTO THE REFRESH INTERVAL COUNTER (BETWEEN 16 AND 127, TYPICALLY IN
THE FIFTH ARGUMENT, OTHR, IS RESERVED FOR FUTURE USE.
THE TICK MACRO GENERATES THE TIMING WORDS. THESE WORDS ARE THE RIGHT-
HAND-END BITS (20-35) OF AN SBUS DIAG FUNCTION 11 TO MEMORY. THE ARGUMENTS ARE
N, THE DECIMAL TICK NUMBER; TIMSIG, THE SIGNAL NAME DEFINED BY A TIMSIG MACRO
cAlL; AND LOHI, A VALUE EQUAL TO "L" FOR OR "H" FOR 1. ALL SIGNALS START OUT
AS (L) EXCEPf TRPAR. TRPAR MUST NOT BE GIVEN AS A SI(=MAL AS IT IS HANDLED
AUTOMATICLY. IF TWO OR MORE SIGNALS CHANGE ON THE SAME TICK, AS MANY CALLS TO
TICKMAY BE DONE AS NECESSARY WITH THE SAME TICK NUMBER (N). TICK NUMBERS MUST
BE IN ASCENDING ORDER.
SEQ 0034
L_
OHKBG KL10 MF2C DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:K:13 PAGE 13
3A99 THE ENDTIM MACRO FINISHES UP THE GENERATION OF THE TIMING. THE FIRST
ARGUMENT IS THE DECIMAL TICK NUMBER OF THE FIRST TICK AFTER THE LAST TICK THE
CONTROLLER WILL USE. THE SECOND ARGUMENT IS A LIST OF SIGNALS WHICH ARE TO BE
DEASSERTED WHEN HIGH, AND HAS THE FORM <SIG1,..,SIGN>.
3527 MISCELLANEOUS MEMORY BOOT ASSEMBLY CONSTANTS.
3576 MF20 TIMING SIGNAL DEFINITIONS.
*****************************************************************
3590 MEMORY BOOT SUBROUTINE CALLER MACROS
*****************************************************************
3749 MACRO TO HANDLE SETTING OF BOTH THE HARDWARE & SOFTWARE COPIES OF AN
MF20'S SOFTWARE STATUS BITS.
3760 MACROS FOR HANDLING DATA STORED IN UNUSED MF20 BITSUB RAM LOCATIONS.
ALL OF THE ROUTINES INVOLVED RETURN WITH C-BIT SET IF THERE^IS ANY SORT OF
ERROR. ALL USE RO TO PASS OR RETURN THE DATA. SBSRL S GBSRL TAKE A PARAMETER
WHICH IS THE BITSUB RAM LOCATION ADDRESS AS IT APPEARS IN THE SBDIAGFCN 7.
note" CURRENTLY ONLY LOCATIONS 744-774 ARE DEFINED FOR USE BY THE SOFTWARE. IF
MORE LOCATIONS ARE TO BE USED THEN THE SYMBOL "ISBSRL" MUST BE REDEFINED.
3828 MACRO TO CALL SUBROUTINE WHICH LOADS AN MF20 TIMING FILE. FIRST AR6 IS
THE PDP-11 ADDRESS OF THE STD FORMAT TIMING DATA. SECOND ARG IS THE FIRST MF20
TIMING RAM LOC TO LOAD, FOR TYPSEL=0, 64 FOR TYPSEL=1.
*****************************************************************
3874 *DIACON* DIAGNOSTIC MACROS 15-JUL-77
*****************************************************************
3v59 NORMAL - TEST COMPLETION MACRO.
3976 NORSKP - ALTERNATE TEST COMPLETION MACRO. USE IF THE CURRENT
TEST IS PROPER INITIALIZATION FOR THE NEXT ONE. CAUSES THE NEXT
TEST INITIALIZATION TO BE SKIPPED EXCEPT DURING SCOPE LOOPS.
3986 FAULT - FAULT RETURN MACRO. ASSUMES THAT ERROR REPORTING DATA
IS ALREADY ON THE ERROR STAC OPTIONAL TEXT IS A MESSAGE TO BE
TYPED FOLLOWING ERROR REPORTi
4009 PFAULT - ALTERNATE FAULi RETURN MACRO. ASSUMES THAT ERROR
REPORTING DATA IS ALREADY ON THE ERROR STACK. THE ARGUMENT IS A
POINTER TO TEXT TO BE TYPED FOLLOWING ERROR REPORTING.
4019 ERROR & ERRORA - ILLOGICAL FAULT RETURN MACROS. USE ONLY IF A_
FAULT IS DETECTED IN PREVIOUSLY TESTED LOGIC OR FUNCTIONS. HAS ALL THE
PROPERTIES OF FAULT EXCEPT THAT NO ISOLATION ROUTINE MAY BE CALLED.
DOES NOT REPORT SUBTEST IN ORDER TO PERMIT CALLS FROM INITIALIZATION
ROUTINES OR ANY SUBROUTINE DEPTH.
SEQ 0035
DHK
J
L
23
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE U
4050 SYNC. SYNCIF & INSYNC - SCOPE SYNC MACROS
4069
SEQ 0036
OHI
4129
4158
ERROR REPORT MACROS TO SIMULATE PNTXXX CALLS BY PUTTING
THE EMT AND DATA ON THE ERROR STACK FOR LATER EXECUTION.
MACRO TO GENERATE A FORMAT TABLE: TO USE:
LABEL: FTM. <FUNC1 ,FUNC2,FUNC3,FUNC4> ^ _ «.«.«„„
WHERE FUNCN IS THE LABEL OF TH^ JUMP TABLE ENTRY TO PERFORM
THE DESIRED FUNCTION.
TEST CONTROL IS FACILITATED BY TABLES SUPPLIED BY THE USER.
TABLE INITAB IS A LIST OF INITIALIZATION ROUTINES TO BE EXECUTED BEFORE
CALLING A TEST. TABLE TESTAB IS A LIST OF TESTS. SINCE ALL LEGAL
ADDRESSES FOR INITIALIZATION OR TEST CALL ARE EVEN AND LESS THAN 100000.
BITS » 15 ARE USED TO PROVIDE DIACON WITH INFORMATION REGARDING
DISPATCHING OPTIONS. THE USE OF THESE BITS IS AS FOLLOWS:
TABLE S BIT
INITAB BIT
INITAB BIT 15
TESTAB BIT
TESTAB BIT 15
FUNCTION
REINITIALIZE AFTER FAULT
ENTER INIT AT PC+2 EXCEPT FOR SCOPE LOOPS
PDP-10 FAST LOOP USED FOR SCOPE LOOPS
TEST NOT REQUIRED FOR XOR TESTING
4180
THIS VERSION OF DIACON SUPPORTS TEST INTERRUPTION CAPABILITIES. AN
ALTMODE (ESCAPE) TYPED DURING EXECUTION PERMITS THE USER TO PERFORM
A KLDCP COMMAND LINE. FOLLOWING COMMAND EXECUTION. THE TEST WILL
CONTINUE.
*****************************************************************
•UIACON* DIAGNOSTIC EXECUTIVE 4-FEB-77
t************^*** '.*•;****************<(****************************
A182 THIS ROUTINE DOES TEST DISPATCHING. FAULT CONVERGENCE.
AND SCOPE LOOPS. SWITCH 1 PUTS THE PROGRAM IN COMMAND MODE.
THE XOR TESTER IS ENABLED BY BEING READY UPON INITIAL START.
TYPE H FOR HELP.
J
-_J
L
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 15
SEQ 0037
DH
4259
4412
5389
3524
*****************************************************************
DIACON COMMANDS
*****************************************************************
*****************************************************************
EXEC
*****************************************************************
5112
THIS SUBROUTINE HANDLES ERROR TYPEOUTS
*****************************************************************
STANDARD ERROR DATA STACKING SUBROUTINES
*****************************************************************
5391 THE FOLLOWING SUBROUTINES PUT STANDARD 16-BIT & 36-BIT
ERROR INFORMATION ON THE ERROR STACK S RETURN TO THE DIAGNOSTIC
EXECUTIVE.
5A44 STK36T- SUBROUTINE TO PUT 36-BIT ERROR REPORTING DATA ON THE
ERROR STACK. THE FIRST PARAMETER IS A POINTER TO TEXT WHICH IS TO
PRECEDE THE DATA.
5457 STKDAT- SUBROUTINE TO PUT 36-BIT ERROR REPORTING DATA ON THE
ERROR STACK.
5470 STKADR- SUBROUTINE TO PUT A 22-BIT ADDi^ESS ON THE ERROR STACK.
PARAMETER IN RO.
5480 STK22H- SUBROUTINE TO REPORT ADDRESS: % THE ADDRESS.
PARAMETER TRAILS.
*****************************************************************
SCOPE SYNC SUBROUTINES 6-APR-78
*****************************************************************
5526 THESE SUBROUTINES ARE USED TO GENERATE A SCOPE SYNC ON
THE DTE20. ENTRY POINTS ARE AS FOLLOWS:
SYNC
SYNCIF
INSYNC
PROVIDE THE SCOPE SYNCHRONIZATION.
SYNC IF FAILING SUBTEST = R5.
INCREMENT R5 ft SYNC IF = FAILING SUBTEST.
SYNCIF ft INSYNC CAUSE AN ERROR RETURN IF IN XOR MODE
ft THE XOR HAS DETECTED AN ERROR. CALLED VIA JSR.PC.
—J L
L
n
1025
OHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
5619
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 16
SEQ 0038
Dl
*****************************************************************
ERROR REPORTER 15-JUL-77
*****************************************************************
5635 TYPOUT ROUTINES FOR UNPACKING AND FORMATTING THE INFORMATION
LEFT IN THE ERROR STACK. EACH ENTRY IN THE ST^^'^.^LS^^^^'^ ^^ ^
POINTER WHICH IS USED BY THIS ROUTINE TO ADDRESS A FORMAT
TABLE WHOSE CONTENTS DIRECT THE HANDLING OF EACH ITEM
TN THF STACK FNTRY
EACH BYTE OF THE FORMAT TABLE IS USED AS AN INDEX TO A JUMP TABLE
TO CALL THE FORMATTING SUBROUTINE FOR THE CURRENT ITEM IN THE ERROR
STACK. THE FORMATTING ROUTINES MASSAGE THE DATA FOR ONE^LINE OF
TYPOUT ADDING LABELS WHERE NEEDED AND THEN CALL THE SUBROUTINE
PACKAGE WHICH PERFORMS THE ACTUAL TYPEOUTS.
SAMPLE TYPOUT AND HOW TO ^(AKE IT HAPPEN
TEST NUMBER 27 SUBTEST 5 PC = 102A4
EXPECTED^DAfr-MoO XXX XXX XXX 0X0 IXX XXX XXX XXX XXX XXX 111
ACTUAL DATA - 101 010 010 010 000 Oil 111 001 101 000 100 111
DIFFERENCE - 1 1
THE FIRST LINE'S DATA ARE CAPTURED BY THE TEST MONITOR. ^__^
THE DATA FOR THE REST OF THE TYPOUT IS FROM AN ENTRY IN THE
ERROR STACK MADE BY THE ROUTINE DETECTING THE ERROR:
STACK: <ADDRESS OF FORMAT TABLE>
♦1 <DIAGNOSTIC FUNCTION>
♦2 <ADDRESS OF 5-BYTE MASK>
♦3 <ADDRESS OF 5-BYTE EXPECTED DATA>
♦4 <ADDRESS OF 5-BYTE ACTUAL DATA>
THE FORMAT TABLE CONTROLS THE PRINTING OF THE 'NOISE WORDS' AND
THE OVERALL APPEARANCE OF THE OUTPUT. THE FTM. MACRO (SEE NEXT
PAGE) FOR THIS SAMPLE TYPOUT WOULD BE.:
FTM. <pIAFR-IMSK36.IEXP36,IACT36,DIFF36> ^. _,«,,,,
WHICH DIRECTS: WhE klQHT BYTE OF THE FIRST WORD IS A DIAGNOSTIC
FUNCTION. THE SECOND WORD POINTS TO A MASK WHICI^ TELLS WHERE TO
PUT X'S IN THE TYPOUT. THE THIRD WORD POINTS TO THE EXPECTED DATA.
THE FOURTH WORD POINTS TO THE ACTUAL DATA. FINALLY. DISPLAY
THE XOR DIFFERENCE BETWEEN THE EXPECTED AND ACTUAL DATA."^-
L
X)26
DHKB6 KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 17
r
SEQ 0039
*****************************************************************
5677 FORMAT TABLES
*****************************************************************
5679
5756
5766
5777
5791
FORMAT TABLES CONSIST OF BYTES WHICH ARE INDEXES ON THE JUMP TABLE
•7JHPr'. THE LAST BYTE OF A BYTE TABLE CONTAINS A 1 IN BIT
ZERO. THIS WORKS BECAUSE ALL INDEX VALUES ARE EVEN.
STACK CONTENTS:
S FTA16
S+2 16-BIT ACTUAL
SH 16-BIT EXPECTED
STACK CONTENTS:
S FTM16
S+2 16-BIT MASK WORD
S+4 16-BIT ACTUAL
S+6 16-BIT EXPECTED
STACK CONTENTS:
S FTA36
S+2 ACTUAL, BITS 20-35
S+4 ACTUAL, BITS A-19
S+6 ACTUAL, BITS 0-3 (1 BYTE)
S+7 EXPECTED, BITS 27-35 (1 BYTE)
S+10 EXPECTED, BITS 12-26
S+12 EXPECTED, BITS 0-11
STACK CONTENTS:
S FTM36
S+2 POINTER TO 36-BIT MASK
S+4 ACTUAL, BITS 20-35
S+6 ACTUAL. BITS A-19
S+10 ACTUAL, BITS 0-3,(1 BYTE) ^
S+11 EXPECTED, BITS 27-35 (1 BYTE)
S+12 EXPECTED, BITS 12-26
S+U EXPECTED, BITS 0-11
5805
STACK CONTENTS;
FT3
POINTER TO
POINTER TO
POINTER TO
POINTER TO
A TABLE OF DIAG. FCN. BYTES
A TABLE OF EBUS BYTE POINTERS
A TABLE OF MASK BYTES
A TABLE OF EXPECTED DATA B"TES
ACTUAL DATA BYTE
INDEX ON ABOVE TABLES
DHKBG KL10 f.f20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 18
SEQ 0040
DHKBG
5824
5835
5862
5878
5887
S*N FINAL ACTUAL DATA BYTE
S+N+1 FINAL INDEX ON TABLES. SIGN BIT = 1
STACK CONTENTS:
S FT6
S+2 POINTER TO C-RAM ADDRESS
S+4 TO S+14 11 BYTE ACTUAL C-RAM CONTENTS
S+15 TO S+25 11 BYTE EXPECTED C-RAM CONTENTS
STACK CONTENTS:
S FT8
S+2 TO S+N+1 VARIABLE NUMBER OF MULTI-FORMAT ENTRIES:
E
E+1
IF E
TABLE SIZE - "MSIZE" OR "CSIZE"
DIAG FCN IN RANGE 160-177, SIGN BIT IS
SET IF THIS IS LAST ENTRY.
= CSIZE, THEN:
E+2 TO E+4
E+5 TO Ev7
EXPECTED BITS 0-19
ACTUAL BITS 0-19
IF E NOT= CSIZE, THEN
IF DIAG FCN 160-162
E+2 TO E+4 EXP. BITS 12-35
E+5 TO E+7 ACT. BITS 12-35
if DIAG FCN 163-166, 170-177
E+2 AND E+3 EXP. BITS 20-35
E+4 AND E+5 ACT. BITS 20-35
STACK CONTENTS:
S FTMEM
S+2 ACTUAL REQUESTS. RQ0-RQ3 IS \
S+3 ACTUAL 22-81 T ADDRESS. BITS i
S+4 ACTUAL ADDRESS. BITS 14-26
S+6 EXPECTED REQUEST BITS
S+7 EXPECTED ADDRESS, BITS 27-35
S+10 EXPECTED ADDRESS, BITS 14-26
STACK CONTENTS:
S FTO
S+2 A DIAGNOSTIC FUNCTION CODE
STACK CONTENTS:
ITS^7,6,5,4
7-j
-55
S+2
S+3
S+N
FT9
DIAG. FCN. (BYTE) SIGN BIT IS «CTUAL STATE OF SIGNAL
EBUS BIT NUMBER. SIGN BIT SET IF MORE ENTRIES FOLLOW
FINAL DIAG. FNC. AND BIT VALUE
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 19
S+N+1 FINAL EBUS BIT NUMBER WITH ZERO SIGN BIT
STACK CONTENTS:
SEQ 0041
D iG
5901
5911
5921
5933
5942
5955
5969
S FT10
S^2 A "PNTXXX" EMT TO BE EXECUTED
S+4 EMT ARGUMENT TO BE LOADED INTO RO BEFORE EMT EXECUTION
STACK CONTENTS:
S+? 36-BIT DATA PATTERN BITS 20-35
S+4 DATA BITS 4-19
S+6 DATA BITS 0-3
STACK CONTENTS:
S*2 22-BIT ACTUAL, BITS 20-35
S*4 S-BIT ACTUAL, BITS 14-19,^
^-BIT EXPECTED, BITS 20-35
-BIT EXPECTED, BITS 14-19
S+10
STACK CONTENTS:
S F TPRM
$♦2 NON-PRINTING USER PARAMETER
STACK CONTENTS:
h
$♦4
S*6
fTDAT
36-BIT DATA 20-35
BITS 4-19
BITS 0-3
STACK CONTENTS;
$♦4
$♦10
FT36T
TEXT POINTER
36-BIT DATA 20-35
BITS 4-19
BITS 0-3
STACK CONTENTS:
$♦2
S*4
FTADR
22-BIT DATA 20-35
BITS 14-19
J
DHKBG KL10 I1F20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J. A. BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 20
"1
SEO 0042
DHK8G
5981
5993
6006
6019
STACK CONTENTS:
S fT22H
S+2 22-BIT DATA 20-35
S+4 BITS U-19
STACK CONTENTS:
S FTUSR
S*2 ADDRESS OF USER SUPPLIED TYPEOUT SUBROUTINE
S+A SrART OF USER SUPPLIED DATA
$+•> END OF USER SUPPLIED DATA
STACK CONTENTS:
3 FTVAR
S+2 FORMAT CONTROL WORD
S+4 START OF BINARY DATA
S+? END OF BINARY DATA
UNDEFINED FORMAT OR PARAMETER
6025
*****************************************************************
REPORT HEADING PRINTER
6027 ERROR REPORTING ROUTINE CALLED BY DISPATCHER AT
APPROPRIATE TIMES. TYPES OUT THE ERJ^OR PC, TEST NUMBER. ^
AND SUBTEST NUMBER, FOLLOWED BY ALL THE ENTRIES ON THE ERROR
STACK. THE DISPATCHER TAKES CARE OF SETTING THE FORCE PRINTOUT
FLAG.
»♦♦****»*♦••*»****♦******♦♦*******»***♦*******♦*********♦♦*******
6061 ERROR STACK SCANNER
♦♦**♦»***♦*#***♦♦»*♦*•**♦***»**»**»♦♦*♦*******♦*♦*♦**************
6063 USES R5 TO POINT TO THE ERROR STACK AND RA TO POINT TO THE
CURRENT FORMAT SPECIFICATION TABLE. THE SCANNER PICKS UP
THE FORMAT TABLE POINTER FROM THE ERROR STACK. IT THEN DISPATCHES
TO EACH FORMAT ROUTINE IN SEQUENCE. WHEN THE END OF A FORMAT
TABLE IS REACHED, A CARRIAGE RETURN LINE FEED IS OUTPUT
AND THE ERROR STACK IS LOOKED AT FOR A: ""THER ENTRY. WHEN
THE END OF THE ERROR STACK IS REACHED. ANOTHER CRLF IS
PRINTED AND THE SCANNER EXITS. THE ^CANNER DOES NOT CHANGE THE^
ERROR STACK POINTERS JUST IN CASE WE HAY WANT TO PASS THIS INFO^
TO THE ISOLATION ROUTINES. IN ANY CASE THE BASELINE TEST MONITOR
RESETS THE POINTERS AT THE RIGHT TIME.
J
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 21
*****************************************************************
6112 JUMP TABLE
*****************************************************************
SEQ 0043
6114
THE ERROR STACK SCANNER DISPATCHES THRU THIS TABLE
TO EXECUTE THE FORMAT ROUTINES.
6187
*****************************************************************
MAIN REPORT ROUTINES
*****************************************************************
6206 ACTUAL DATA IS 22-BITS IN TWO WORDS ON STACK
6217 ACTUAL IS 5 BYTES ON STACK IN USUAL UPSIDE-DOWN
36-BIT FORMAT.
6314 STACK HAS AN ADDRESS IN 16-BIT FORM
6323 STACK ENTRY IS DIAGNOSTIC FUNCTION IN BITS 6-0
6361 COMPUTE AND TYPE DIFFERENCE BETWEEN 22-BIT ACT AND EXP
6386 CALCULATE AND TYPE THE XOR DIFFERENCE BETWEEN THE ACTUAL
AND THE EXPECTED 36-BIT DATA-
6533 EXPECTED DATA IS 22 BITS IN TWO WORDS ON STACK
6545 STACK CONTAINS 5 BYTES OF EXPECTED 36-BIT DATA
6634 STACK POINTS TO BYTE POINTER
6o.''9 POINTER TO 5-BYTE MASK IS ON ERROR TABLE
6699 STACK HAS 3 WORDS CONTAINING A 36-BIT DATA PATTERN TO 3E PRINTED
IN BINARY FORMAT.
6711 THE STACK HAS AN EMT PNTXXX AND RO CONTENTS
6721 STACK HAS 3 WORDS CONTAINING 36-BIT DATA TO BE TYPED IN
PDP-10 FORMAT.
6731 STACK HAS TEXT POINTER
6740 STACK HAS PDP-10 FORMAT 22-BIT ADDRESS
6753 STACK HAS ADDRESS OF A USER SUPPLIED TYPEOUT SUBROUTINE,^ ^_
FOLLOWED BY THE DATA NECESSARY FOR THAT SUBROUTINE. UPON ENTRY TO THE
SUBROUTINE R5 POINTS TO THE FIRST DATA BYTE; UPON EXIT R5 MUST HAVE BEEN
UPDATED TO POINT TO THE NEXT STACK ENTRY. RETURN IS TO PC. R0-R4 MAY
BE USED FREELY.
DHKB(
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857
6780
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 22
*****************************************************************
REPORT SUBROUTINES
*****************************************************************
*****************************************************************
7290 SLOT-TO-BOARD* CONVERSION TABLE S DATA U-MAR-77
*****************************************************************
7292 EACH TABLE IS INDEXED BY SLOT NUMBER. WHICH TABLE 8 HOU THAT
TABLE IS USED DEPENDS UPON THE BACKPLANE NUMBER. FOR THOSE
BACKPLANES WHICH HAVE EXCULSIVELY M8500 BOARDS. THE TABLE
CONTAINS THE LAST 2 DIGITS OF THE BOARD #. FOR INTERNAL
MEMORY BACKPLANES, THE TABLE CONTAINS A DISPLACEMENT INTO A
STRING OF CHARACTERS. NOTE THAT IN ALL TABLES A MEANS A SPARE
AND A -1 INDICATES A CABLE. ANY OTHER NEGATIVE # MEANS THAT
BOARD REPLACEMENT REQUIRES DESKEWING OF OTHER SYSTEM COMPONENTS.
*****************************************************************
7359 BOARD CALLOUT PRINT ROUTINE
*****************************************************************
7362
7497
ROUTINE TO PRINT BOARD CALLOUTS. TABLE DRIVEN FROM
A FOUR-WORD UML TABLE CONTAINING ONES IN POSITIONS
REPRESENTING BOARDS (SLOTS) TO BE CALLED OUT.
TO USE:
JSR R5,PNTUML
.WORD TABLE .-ADDRESS OF UML TABLE
EACH ONE-BIT FOUND IN THE TABLE WILL BE USED TO CAUSE A PRINT-
OUT OF THE FORM 'W8520,SL0T 30.". UP TO THREE SUCH ITEMS ARE
PRINTED PER LINE UNTIL THE TABLE IS EXHAUSTED. BITS.,IN POS-
ITIONS FOR CABLES CAUSE A PRINTOUT OF CABLE,SLOT 2.'' WHILE A .
BIT IN AN EMPTY SLOT POSITION CAUSE PRINTING OF "ERROR, SLOT 18.'
BITS IN THE LAST WORD IN PHANTOM SLOTS 55 AND 56 ARE IGNORED.
IF THE BYTE IN BITS 0-7 OF THE FOURTH WORD EQUALS THE SLOT
NUMBER OF THE ITEM BEING PRINTED, THAT ITEM IS FLAGGED AS
BEING THE MOST LIKELY FAILING BOARD. NOTE THAT THE BACKPLANE
NUMBER IS PRINTED FIRST, NOT AS A PART OF THE BOARD LOCATION.
SUBROUTINE 'BACKPLANE" SETS THE BACKPLANE NUMBER USED BY
PNTUML. IT IS PROVIDED FOR USE FROM AN ISOLATION ROUTINE.
THE UPPER HALF OF RO MAY BE USED TO IDENTIFY THE DEVICE IN
THE BACKPLANE BEING SET.
SEQ 0044
DHKB
•■"]
OHKBG KL10 MFSO DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857
7505
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 23
SEQ 0045
DHKE
75^9
7816
7902
7991
*****************************************************************
REPORT VARIABLES AND CONSTANTS
*****************************************************************
*****************************************************************
/CMD HANDLING CODE COMMON TO DHKBF/DHK66
*****************************************************************
7552 /COMMAND DISPATCH TABLE FOR DIAGNOSTIC COMMANDS.
7682 SLSHIC IS A QUICKY SUBROUTINE FOR THE BREADBOARD WHICH PUTS A CONTROLLER
INTO A KNOWN STATE: VOLTAGE MARGINS SET ACCORDING TO THE SWITCH SETTING (/VM),
FIXED VALUE AND TIMING RAMS LOADED. ECC COMP REG CLEARED, ERR FLAGS CLEARED, A
STD 16K RESPONSE PATTERN LOADED IN THE ADR RESPONSE RAM ^ADR 18-21 SELECT GROUP
S BLOCK), ALL SPARES DESELECTED, ALL ICE SET, AND FINALLY REFRESH IS TURNED ON.
*****************************************************************
VARIABLES, CONSTANTS, & DEFINITIONS COMMON TO DHKBF/DHKBG
*****************************************************************
7819 THE VARIABLES GIVEN f.ERE HAVE ABSOLUTE CONTROL OVER THE EXECUTION OF THE
diagnostic; they are arranged INTO FOUR GROUPS: THOSE WHOSE DEFAULT VALUES ARE
ZERO, -1, OTHER, AND THOSE WHOSE DEFAULTS ARE SET ONLY AT ASSEMBLY TIME.
*****************************************************************
"TEST#0." ONE-TIME INIT COMMON TO DHKBF/DHKBG
*****************************************************************
790A
THIS ROUTINE PERFORMS ONCE-ONLY INITIALIZATION.
*****************************************************************
Tc;T#1. MASTER OSC TEST FIRST, COMMON TO DHKBF AND DHKB6.
*****************************************************************
7994 THIS TEST IS DONE IN THE TEST INIT ROUTINE TO INSURE THAT IT
IS ALWAYS DONE
THE TEST CONSISTS OF FIRST TESTING TO SEE IF THERE IS MOS MEMORY
TO TEST BY CHECKING THE MASTER OSCILLATOR BIT IN THE APRID. IF THIS BIT
IS NOT SET, IT IMPLIES THERE IS NO MOS MEMORY IN THE SYSTEM AND WE IMMEDIATELY
HALT PROGRAM EXECUTION USING AN ERREOP. NEXT. THE MASTER OSCILLATOR IS
SELECTED AND AN ATTEMPT IS MADE TO SEE IF IS ^EALLY RUNNING BY TRYING TO
PERFORM A 'START MICRO-CODE' USING PRGCMD. ON AN ERROR RETURN FROM THE
PROGRAM COMMAND WE KNOW THAT IT IS NOT RUNNING AND THE USER MUST TURN
POWER OFF AND THEN ON AGAIN TO RESELECT THE INTERNAL CLOCK. THIS MUST
BE DONE BEFORE ANY OPERATION CAN TAKE PLACE ON THE 10.
_J
L_
OHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857
8035
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 24
8088
*****************************************************************
TEST*2. CONTROLLER CONFIGURATION TEST, COMMON TO OHKBF & DHKB6.
*****************************************************************
8142
8038 THIS IS THE CONTROLLER CONFIGURATION TEST. IT CHECKS TO MAKE SURE THAT
THE CONTROLLER RESPONSE SEEN IS RESONABLE. THE INIT DETERMINES WHAT CONTROLLER
TYPES ARE RESPONDING TO WHAT CONTROLLER NUMBERS (CONDET). IT THEN TYPES THE
RESPONSE (ONLY ONCE). THE TEST ITSELF MEARLY CALLS THE MEMORY BOOT'S STANDARD
CONTROLLER TYPE FORMAT CHECK SUBROUi NE (CTFMTC) TO CHECK THE RESPONSE.
CTFMTC ERROR CODES HAVE THE FOLLOWP o MEANINGS AND PROBABLE CAUSES:
1 NO CONTROLLERS FOUND AT ALL. PROBABLE CAUSE FOR MULTIPLE CONTROLLER
SYSTEMS IS FAILURE BY CPU TO TRANSMIT SBUS DIAG PROPERLY. IN A SINGLE
CONTROLLER SYSTEM THE FAULT MAY ALSO LIE IN THE MEM CONTROLLER ITSELF.
2 AN UNRECOGNIZED CONTROLLER TYPE WAS SEEN. PROBABLE CAUSE IS TWO MEM
CONTROLLERS RESPONDING TO THE SAME CONTROLLER NUMBER, OR A CONTROLLERS
3 iPfOR^A MISPLACED CONTROLLER, IE. A CONTROLLER IS RESPONDING TO THE
WRONG CONTROLLER NUMBER, OR ITS RESPONSE IS BAD. ^^^^^^ ^^^ ^^^ ^^ ^,^^
4 MF20/MX20 VS. MASTER OSCILLATOR MISMATCH. APRID MASTER OSC BIT IS NOT
SET BUT AN MF20 OR MX20 IS SEEN, OR MASTER OSC BIT IS SET BUT THERE IS
NO MF20.
*****************************************************************
DHKBF/DHKBG DIAGNOSTIC CONTROL SUBROUTINES. COMMON INIT FIRST.
*****************************************************************
8091 INIT TAKES CARE OF THE THINGS WHICH MUST BE DONE FOR EACH TEST, AND
BEFORE AND AFTER EACH LOOP THROUGH THE TESTS.
*****************************************************************
CONTROLLER SELECT LOOP CODE
*****************************************************************
8145
8156
HF20 CONTROLLER LOOP INITIALIZATION CODE.
SELECT NEXT CONTROLLER UNLESS CONTROLLER NUMBER IS FROZEN.
SEQ 0046
DHK
L
S4
1 r-
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF I. VER 0.5 J.A.BARRY 29857
8176
8179
8263
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 25
SEQ ^1^1
DHD
*****************************************************************
CONTROLLER INITIALIZATION CODE
*****************************************************************
MF20 DESIRED STATUS CONTROL BIT DEFINITIONS. THESE DEFINITIONS ARE IN
THE ORDER THEY ARE DONE IN IF DESIRED.
THIS IS THE AC CODE WHICH CALCULATES WHAT THE ECC SHOULD BE BASED UPON
THE DATA PATTERN IN BLK1 AC1. OUTPUT IS AC17 OF BLK3. ENTRY IS TO BLK2 AC7,
EXIT IS TO BLKA AC1.
*****************************************************************
8403 DHKBG TEST DISPATCH TABLES, INITAB & TESTAB
*****************************************************************
*****************************************************************
8456 /CMD CODE PECULIAR TO DHKBG
*****************************************************************
*****************************************************************
8483 TEST#3. STORAGE ARRAY BOARD PROli DATA TEST.
*****************************************************************
8485 THIS IS THE PROM DATA VERIFY TEST. THIS TEST IS DONE AS AN INI T ROUTINE
BECAUSE IT MUST ALWAYS BE DONE REGARDLESS OF WHICH TEST DIACON WAS TOLD TO START
AT. THERE IS NO ISOLATION ROUTINE FOR THIS TEST BECAUSE IT IS AN INIT. FOUR^^
LEVELS OF TESTING ARE DONE: STORAGE MODULE (FIELD). GROUP. CONTROLLER, 6 SYSTEM.
FIELD THE YEAR NUMBER IS 0-9. THE WEEK NUMBER IS < 55. PROM BYTES
0-2 HAVE EVEN PARITY. AND BYTE 3 HAS ODD PARITY.
GROUP ALL FOUR FIELD EITHER EXIST OR DO NOT EXIST. THE PP. NN, & SS
BITS ARE ARE THE SAME WITHIN THE GROUP.
CONTR GROUP MUST EXIST. THERE ARE 1 OR 2 RAM SIZES. THERE IS ONLY
1 TIMING NUMBER PER RAM SIZE.
SYSTEM ALL SERIAL NUMBERS ARE UNIQUE.
*****************************************************************
8810 TEST#4. GROUP LOOPBACK GROUP SELECT TEST.
*****************************************************************
8813 THIS IS THE STORAGE MODULE LOOPBACK SELECT TEST. ALL WE TRY TO^DO
IN THIS TEST IS TO TRY TO FIRST SELECT AND THEN DESELECT EACH GROUP IN EACH
MF20.
8861 **»*****♦♦***♦*
♦♦♦***♦••******
L
35
OHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J. A. BARRY 29857 DECDOC VER 00.25
*****************************************************************
8899 TEST#5. GROUP LOOPBACK DATA PATH TEST
*****************************************************************
8902 GRLBK TESTS THE 4A BIT DATA PATH OUT THRU THE MUX CHIPS ON THE^ ^_^^
88570 - M8579 STORAGE ARRAY BOARDS. THE TEST MUST BE DONE IN 2 PARTS
BECAUSE IT IS IMPOSSIBLE TO TEST THE SPARE BIT AND ALL THE
OTHERS AT THE SAME TIME. THIS IS A SERIAL-PARALLEL TEST IN THAT
ALL GROUPS WITHIN A CONTROLLER ARE TESTED BEFORE ANY ERRORS ARE
CALLED OUT. THIS TEST IS PRIMARILY A CONTROL BOARD TEST BUT MAY
FIND BROKEN MUX CHIPS THOUGH THIS IS UNLIKELY DUE TO THE VERY
SMALL AMOUNT OF CIRCUITRY INVOLVED IN THE MUX CHIPS. MASSIVE
ERRORS WHERE THE MAJORITY OF BITS ARE BAD INDICATE CONTROL BOARD
PROBLEMS. A MASSIVE FIELD ERROR INDICATES A 6R0UP-LPBK CONTROL
SIGNAL PROPAGATION ERROR. PROBABLY WITHIN A SINGLE ARRAY BOARD.
A FEW ERRORS COMMON TO ALL GROUPS IN THE CONTROLLER INDICATE A
DATA PATH PROBLEM IN THE CONTROL BOARDS. A SMALL NUMBER OF
ERRORS NOT IN COMMON TO ALL GROUP PROBABLY MEANS A MUX CHIP
ERROR. THIS TEST USES THE SAME AL 'R06RAM AS THE DATA PATH TO
RAM TEST, EXCEPT THAT IT IS RUN IN GROUP-LOOPBACK MODE. FIRST
ALL GROUPS ARE DATA PATH TESTED, THEN ALL ARE ECC/SPARE TESTED,
AND FINALLY A CHECK IS DONE FOR ERRORS. IF FOUND WE DIE,
OTHERWISE WE GO ON TO THE NEXT CONTROLLER.
*****************************************************************
9050 TEST*6. READ ERROR CORRECTION I FLAG TEST USING GROUP LOOPBACK
*****************************************************************
12-JUN-84 13:14:13 PAGE 26
SEQ 0048
DH
9053
THIS TEST CHECKS THE ABILITY OF THE SYNDROME NET AND ERROR FLAG CIRCUITS
TO DETECT, CORRECT, AND INDICATE READ ERRORS. THERE ARE FOUR POSSIBLE CYCLES IN
THIS RESPECT:
SUBTEST 1. A '>iO-ERROR" CYCLE. NO BIT SHOULD BE CORRECTED, THE SYNDROME SHOULD
BE WITH NEITHER FLAG SET, NO FCN FLAG, NO CONI APR FLAG, AND THE ERROR WORD
NUMBER SHOULD NOT BE LATCHED UP.
SUBTEST 2. A "CORRECTABLE-ERROR" CYCLE. THE PROPER BIT MUST BE CORRECTED. THE^
SYNDROME SHOULD HAVE THE PROPER VALUE WITH THE CORRECTABLE ERROR FLAG^SET, FCN
SHOULD SAY CORR & READ ERRORS, APR SHOULD INDICATE SBUS ERROR, AND THE ERROR WD
# MUST HAVE THE CORRECT VALUE LOCKED UP.
SUBTEST 3. A "CORRECTABLE-ERROR-IGNORED" CYCLE. THIS IS CAUSED IN THE SAME
FASHION AS THE ABOVE, ONLY WE HAVE FORCED THE CONTROLLER NOT TO REPORT THE
ERROR. THE PROPER BIT MUST BE CORRECTED. THE SYNDROME SHOULD HAVE THE PROPER ^
VALUE WITH THE CORR ERROR FLAG StT, FCN AND APR SHOULD SHOW NO ERRORS, AND THE
ERROR WD « SHOULD NOT BE LOCKED.
SUBTEST A. A "DOUBLE -BIT -ERROR" CYCLE. NO BIT SHOULD BE CORRECTED. THE
SYNDROME SHOULD HAVE THE PROPER VALUE WITH THE DBE FLAG SET, FCN SHOULD HAVE^
THE RD ERR FLAG UP, THE APR SHOULD HAVE SBUS AND MB PARITY ERROR FLAGS, AND THE
PROPER VALUE MUST BE LOCKED IN THE ERROR WO #.
THIS TEST TAKES ADVANTAGE OF 2 DIAGNOSTIC FEATURE OF THE MF20. FIRST WE
1
I
L
)36
OHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF I. VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-8A 13:U:13 PAGE 21
USE THE STORAGE MODULE LOOPBACK FEATURE TO PROVIDE A RELIABLE PATH FOR^THE DATA
PATTERNS. SECOND. WE MANIPULATE THE CONTENTS OF THE ECC COMPLEMENT REGISTER IN
SUCH A WAY AS NOT TO CAUSE WRITE ERRORS WHILE LOOPING AROUND "SYNDROME" DATA
THAT SHOULD CAUSE THE SYNDROME NET TO DO THE APPROPRIATE THING.
9257
THIS IS THE AC PROGRAM FOR THE SYNDROME NET AND READ ERROR FLAGS TEST.
BASICALLY IT IS A D0U6LELY NESTED LOOP. THE OUTER LOOP SELECTS A SYNDROME FOR
TESTING. THE INNER LOOP SELECTS A DATA PATTERN. LOOPS IT AROUND. THEN CHECKS TO
SEE WHICH BIT. IF ANY. WAS CORRECTED. AND PROCEEDS TO CHECK THE IrROR FLAGS.
THE AC PRO'-jRAM IS MODIFIED BY THE PDP-II SO AS TO DO THE 4 BASIC CYCLE TYPES
DESCRIBED EARLIER.
********** FOR FAST SCOPE LOOPS **********
FOR ALL ERROR TYPES PUT A 10A000..122 INTO AC2 OF BLOCK 5. FOR EACH
INDIVIDUAL TYPE PUT A 104000.. 55 INTO ThI AC INDICATED BELOW. START THE PROGRAM
AT PC=0. ACBLK 5.
ERROR 1: ACA. BLOCK 2
ERROR 3: AC5, BLOCK 3
ERROR 5: AC7. BLOCK A
ERROR 2: AC3. BLOCK 2
ERROR A: ACI. BLOCK A
ERROR 6: AC3. BLOCK 2
9A22
*****************************************************************
TEST*7. FULL SPEED REFRESH VERIFICATION TEST
*****************************************************************
9A25 THIS TEST MAKES SURE THAT WE CAN TURN ON REFRESH AND RUN IT AT FULL^
SPEED. REFRESH FUNCTION WAS VERIFIED IN SINGLE STEP MODE. NOW WE TURN IT LOOSE
AND SEE IF IT REALLY WORKS. THIS TEST HAS A VERY TIGHTLY TIMED AC PROGRAM WHICH
KEEPS ITSELF IN PHASE WITH REFRESH. ANY DEVIATION WILL CAUSE AN ERROR. BECAUSE
THESE TIMING TOLERANCES ARE SO TIGHT. THIS TEST WILL NOT RUN AT OTHER THAN CRO.
9A63 BELOW IS THE AC PROGRAM FOR THE FULL SPEED REFRESH TEST. IT TAKES
ADVANTAGE OF THE MF20'S PR06RAMABLE REFRESH RATE. IT SLOWS DOWN THE REFRESH
ENOUGH SO THAT THE CPU CAN SEE EVERY CYCLE THAT HAPPENS. WE DETERMINE THAT A
REFRESH IS BEING DONE BY WATCHING FOR A CONI APR SBUS ERROR. WE GET THESE ^
ERRORS BECAUSE WE PUT A BAD PARITY WORD INTO EACH OF ^he TWO TIMINGS. AND WHEN
REFRESH OCCURS THE TIMING RAM IS READ. THE PARITY ERROR IS DETECTED % REPORTED.
*************** FAST SCOPE LOOP:
YOU NEED NOT DO ANYTHING FOR A FAST SCOPE LOOP.
REFRESH SHOULD ALREADY BE ON.
SEQ 00A9
r
Df
037
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857
9532
9535
DECDOC VER 00.25 12-JiJN-84 13:14:13 PAGE 28
"1
SEQ 0050
*****************************************************************
TEST#8 & TEST#9 INITIALIZATION.
*****************************************************************
9607
THESE ARE THE INNS FOR THE NON-ADDRESS CONTROL SIGNALS GENERATION AND
PROPAGATION TESTS. THEY SIMPLY LOAD THE AC PROGRAM.
*****************************************************************
TEST#8. NON-ADDRESS CONTROL SIGNALS GENERATION TEST.
*****************************************************************
9610 THIS IS THE NON-ADDRESS CONTROL SIGNALS GENERATION TEST. ITS PURPOSE IS
TO MAKE SURE THAT THE CONTROL SIGNALS ARE GETTING OFF THE CONTROL BOARDS ONTO
THE BACKPLANE. IT DOES THIS BY MAKING SURE THAT SELECTED WORDS CAN BE^HADE TO
CHANGE. AN ERROR OF MORE THAN 17 BITS IS ASSUMED TO BE A GENERATION ERROR
BECAUSE THINGS ARE MOSTLY WRONG. A SMALLER ERROR IS IGNORED UNTIL A LATER TEST.
ERROR PATTERNS ARE RECORDED UNTIL ALL THE SELECTED ADDRESSES HAVE BEEN TESTED.
IF ANY ERRORS >17 BITS WERE SEEN THEN THE ERROR DATA IS SET UP TO BE DUMPED OUT
AS A MAP.
*****************************************************************
9652 TEST#9. NON-ADDRESS CONTROL SIGNALS PROPAGATION TEST.
*****************************************************************
9655 THIS IS THE NON-ADDRESS CONTROL SIGNALS PROPAGATION TEST. IT IS USED TO
MAKE SURE THAT THE VARIOUS CONTROL SIGNALS ARE GETTING AROUND ON THE ARRAY
BOARDS. LIKE THE GENERATION TEST IT CREATES A MAP OF ERRORS BEFORE CALLING
FAULT. IT DIFFERS FROM THE GENERATION TEST IN 3 WAYS:
1) ERRORS ARE ACCUMULATED AND DUMPED AT THE END OF A GROUP NOT AT THE
END OF THE CONTROLLER BECAUSE THEY SHOULD BE CONFINED TO THE GROUP.
2) THERE IS AN ADDITIONAL INNER LOOP WHICH SELECTIVELY IGNORES THE
RESULTS FROM ALL BUT THE FIELD WE ARE TESTING. ^ ^^
3) THE ERROR COUNT IN A FIELD WHICH TRIGGERS THE FAULT OUTPUT IS 5 OR
GREATER. ANYTHING LESS IS ASSUMED TO BE SOME PROBLEM OTHER THAN
CONTROL SIGNAL PROPAGATION. AND WILL BE FOUND BY A LATER TEST.
9703 NACSUB IS FOR BOTH THE GENERATION i PROPAGATION TESTS. IT RUNS THE AC
PROGRAM AND TESTS THE RESULTS, UPDATING THE ERR MAP t SETTING THE ERR FLAG IF
NECESSARY. R1=ERR MAP WORD INDEX. R2=WORD0 BLOCK BIT. THE T.P. IS THE MAX
NUMBER OF BIT ERRS WHICH WILL NOT COUNT AS AN ERROR.
X)38
OHKBG KL10 MF20 DlAG.iOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25
*****************************************************************
974A TEST#10. GROUP, BLOCK, SUBBLOCK UNIQUENESS TEST
*****************************************************************
9747 TEST TO SEE IF EACH GROUP. BLOCK, AND SUBBLOCK (SB) IS UNIQUE TO ITSELF,
IE THAT ACCESSING ONE DOES NOT INtERFERE WITH ANOTHER. THIS TEST IS, AT FIRST,
NSENSTIVE TO PROBLEMS UITHIN AN ARRAY BOARD SC THAT IF AN ERROR IS FOUND ITS
SOURCE IS KNOWN TO BE IN THE CONTROL BOARDS. THE NON-ADR CTL SIG GEN TEST HAS
ALREADY TOLD US THAT WE CAN USE ALL SUBBLOCKS WHICH ARE SUPPOSED TO EXIST BUT
IT DIDN'T TELL US WE WENT TO THE RIGHT ONE. THIS TEST HAKES SURE THAT ALL SB'S
ARE UNIQUE (WHICH IMPLIES THAT ALL GROUPS I BLOCKS ARE ALSO UNIQUE). ^^_ ^^^
ONCE WE KNOW THE CONTROL BOARDS CAN CORRECTLY GENERATE ALL SB SELECT
SIGNALS WE SENSITIZE THE PROGRAM TO ERRORS IN 1 FIELD AT A TIME AND LOOK FOR
CONTROL SIGNAL PROPAGATION ERRORS WITHIN THE ARRAY BOARDS. NOTE THAT IT IS
SUFFICIENT TO TEST THE DATA BITS ONLY SINCE THE CTL SIGS INVOLVED GO TO ALL BIT
POSITIONS^N^THE BOARDS.^ ^^ ^^^^^^^ ^^^^^ ^^^^^^ ^ ^^ ^^^ ^^^^^^^ ^ ^^ ^^^^^
0. 3 IS FIELD 1, 2 IS FIELD 2, AND 1 IS FIELD 3.
9869 THIS IS THE AC PROGRAM FOR THE GROUP, BLOCK, SUBBLOCK UNIQUENESS TEST.
IT TESTS THAT ANY GIVEN SUBBLOCK DOES NOT INTERFERE WITH ANY OTHER SUBBLOCK. A
MASK IS USED WHICH ALLOWS US TO IGNORE CERTAIN BITS; THUS WE CAN LOOK AT ALL
BITS TO SEE IF THERE IS A CONTROL GENERATION ERROR. OR JUST THE BITS FOR A FIELD
TO SEE IF THERE WAS A CONTROL SIGNAL PROPAGATION ERROR.^ THIS PROGRAM ALSO
WRITES TO NON-EXISTANT SUBBLOCKS ON THE THEORY THAT WRITING TO THEM SHOULD NOT
CAUSE EXISTING SB'S TO CHANGE.
********** FOR A FAST SCOPE LOOP:
>.ACBLK1
>.DM10/25A000
>.STO
*****************************************************************
9978 TESTfll. MOS ADDRESS GENERATION TEST
*****************************************************************
9981 MADRG TESTS THE MOS ADDRESS GENERATION CAPABILITY OF THE "ADT" (M8_577)
BOARD. IT MAKES SURE THAT THE ROW t COLUMN ADDRESS BITS DO NOT INTERFERE WITH
EACH OTHER AND ALSO THAT THEY ARE NOT STUCK. LIKE THE OTHER GENERATION TESTS,
THIS ONE IS INSENSITIVE TO PROBLEMS ON AN ARRAY BOARD. SINCE WE KNOW THAT WE ,
CAN SELECT ANY SUBBLOCK WE NEED ONLY TEST THE ADDRESS GENERATION AS IT APPLIES
TO ONE SB. WE USE A SUBBLOCK IN EACH GROUP WHICH REPRESENTS A DIFFERENT RAM
SIZE IN A CONTROLLER SO THAT WE CAN TEST THE COLUMN ADDRESS SHIFT FUNCTION &
MAXIMUM ADDRESS WIDTH.
10101 THIS IS THE AC PROGRAM FOR THE MOS ADDRESS GENERATION TEST. ITS VERY
SIMILAR ^ ^HE GBS UNIQUENESS Ar PROGRAM IN THAT IT MAKES PAIRS OF ADDRESSES AND
INTERFEF TESTS THEM AGAINST EACH OTHER. THE ADDRESSES HOWEVER ARE AIMED AT
THE ENT .XTENT OF A PARTICULAR SUBBLOCK SO AS TO TEST MOS ADR GENERATION.
FAST LOOP PUT A JRST,,,1IN BLK 1 AC5 % START AT BLK 1 PC 1 .
12-JUN-84 13:14:13 PAGE 29
SEQ 0051
J
0039
0HKB6 KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 30
**************t********************************* *****************
10157 TEST#12. MOS ADDRESS PROPAGATION TEST
*****************************************************************
10160 MADRP TESTS THE PROPAGATION OF MOS ADR BITS AROUND ON THE ARRAY BOARDS.
THERE ARE A COUPLE OF UNIQUE PROBLEMS HERE. THE PROPAGATION IS 2 LEVELS. A
FIRST LEVEL ERROR WILL CAUSE A MULTIPLE BIT ERROR WITHIN A FIELD. A SECOND
LEVEL ERROR WILL CAUSE ONLY A 1 BIT FAILURE. TO DISTINGUISH BETWEEN ADDRESS^^^^
PROP ERRORS AND RAM ERRORS IT IS NECESSARY TO TEST ALL 4 SUBBLOCKS. IF THE SAME
BIT IS BAD IN 3 OR 4 SB'S IT IS TAKEN TO BE AN ADR PROP ERROR. IF NOT IT IS
IGNORED. A FURTHER PROBLEM ARISES BECAUSE THE SECOND LEVEL ADR PROP IS DONE ON
A BIT PLANE. THIS MEANS THAT AN ADDRESS PROP ERROR CAN CONFINE ITSELF TO AN ECC
BIT WHICH IN TURN MEANS THAT WE MUST TEST ALL 44 BITS TO MAKE SURE THAT WE CATCH
THEM ALL. SORRY FOR THE COMPLEXITY THIS ADDS TO THE TEST.
10278 THIS IS THE AC PROGRAM FOR THE MOS ADDRESS PROPAGATION TEST. IT IS A
STANDARD ADDRESS INTERFERENCE TEST WITH A FEW TWISTS. INSTEAD OF READING A WORD
TWICE FROM X, WRITING ITS COMPLEMENT TO Y, AND THEN MAKING SURE X HASN'T
CHANGED, WE WRITE A KNOWN VALUE TO X AND fHEN WRITE THE COMPLEMENT TO Y AND
CHECK X THIS IS DONE BECAUSE OF THE DIFFICULTY OF WRITING COMPLEMENTARY ECC
VALUES. ANOTHER TWIST IS THAT WE ACCUMULATE ERROR DATA THRU 4 SUBBLOCKS RATHER
THAN JUST LOOKING AT THE NUMBER OF BITS THAT FAIL. THIS MUST BE DONE BECAUSE OF
THE LAYOUT OF THE ARRAY BOARDS. NOTE THAT AC BLOCK ZERO FOR THE MOS ADR GEN
TEST IS BORROWED AND MODIFIED FOR USE BY THIS TEST.
*****************************************************************
10391 TEST#13. DATA PATH TO RAM TEST
*****************************************************************
SEQ 0052
10394
DPTR TESTS THE 44 BIT PATH TO THE MEMORIES. THE TEST MUSI BE DONE IN 2^
PARTS: THE 36-BIT REAL DATA, AND THE 8-BIT ECC (| SPARE). „IT {JUST BE DONE IN 2
PARTS BECAUSE IT IS IMPOSSIBLE TO TEST THE SPARE I ALL THE OTHER BITS TOGETHER.
THIS IS A SERIAL-PARALLEL TEST. ALL ERRORS IN A GROUP ARE DETERMINED BEFORE ANY
FAULT IS DONE. ERRORS ARE MAPPED BY BLOCK, SUB-BLOCK. AND BIT. IT IS NOT
EXPECTED THERE WILL BE A MASSIVE DROPOUT IN THIS TEST; THOSE SHOULD HAVE BEEN
CAUGHT IN THE CTLSIG GEN t PROP TESTS EARLIER. THIS IS THE FIRST TEST WHICH IS
SENSITIVE TO SINGLE MOS RAM OR MUX CHIP (DC008) ERRORS. IT WILL ALSO SHOW UP
UIRF~OR ^TUCK HI PROBLEMS
THE TEST LOOPS THRU ALL CONTROLLERS AND EACH EXTANT GROUP THEREIN.^
FIRST ALL MEMORY IN THE GROUP IS DATA BIT TESTED, THEN IT IS ECC BIT TESTED.
THE SUM OF ANY ERRORS IS USED IN CREATING THE ERROR MAP. THE DATA TEST IS IN AC
'>""' °'a?1o^'SaJ5SJ iMlA^l }5rADD«SS CAN BE DETERmNEDFROJJ GROUP.
?i&*?!iE'^^r?S!S Ki7?§"?iic.{!)!Et'{HrM^nAT8g? U'fo [Xs " !§ gSoS^^f
PATTERNS OF ALL IS OR OS WITH THE AFFECTED BIT HAVING THE OPPOSITE VALUE.
DHK9G KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857
10629
10632
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 31
SEQ 0053
DHKBG
TEST#K. SYN BOARD SPARE-BIT-IN TEST USING RAM
10703
THIS TEST CHECKS THE ABILITY OF THE SYN BOARD TO PROPERLY PUT^ THE SPARE
BIT COMING FROM MEMORY IN PLACE OF SOME OTHER BIT AS DETERMINED BY THE SPARE BIT
NUMBER ("SBN") IN THE BITSUB RAM.
SBIPRG IS THE AC PROGRAM FOR THE SPARE-BIT-IN TEST. ESSENTIALLY WHAT IT
DOES IS WRITE A PATTERN OF ALL OS (OR ALL IS) DATA & CCC TO MEMORY, ONLY A
SINGLE BIT OF THIS DATA IS A 1 BIT (OR BIT). THE SPARE BIT RAM IS SET UP SO
THAT THE SINGLE BIT OF DIFFERENT POLARITY IS ALSO COPIED INTO THE ?PARE BIT RAM.
THEN REPEATED READS ARE DONE WITH CHANGING SPARE BIT NUMBERS ("SBN'^') SO THAT THE
'Different" VALUE in the spare bit should replace some bit depending upon the
SBN used, four "PATTERNS" ARE USED SO THAT THE TEST COVERS ALL BIT POSITIONS
and DATA BIT FLAVORS:
DATA & ECC WRITTEN W/SBN SHOWN
OOOOOO'OOOOIC 000 32.
000000 000004 000 33.
mvi mm m 32.
777777 777771 376 33.
EXAMPLE OF RETURNED DATA I ECC REG W/TEST SBN
ooooorooooio
000000 000004
777777 777767
777777 777771
001
17.
201
36.
376
63.
376
33.
FOR EACH OF THE FOUR DATA/ECC PATTERNS SHOWN ON THE LEFT THERE ARE 64
READS DONE WITH VARYING SPARE BIT NUMBERS. AN EXAMPLE OF THE RESULTS OF ONE OF
THESE READS IS SHOWN TO THE RIGHT ALONG WITH THE SBN USED FOR THE^PARTICULAR
READ. IN THE FIRST EXAMPLE WE SEE THE SINGLE 1 BIT SHOW UP IN THREE PLACES: IN
BIT 17 BECAUSE THAT IS WHERE THE READ SBN SAID FOR THE SPARE BIT TO GO. IN BH
32 BECUASE ON THE WRITE THE SPARE WAS NEARLY COPIED FROM BIT 32, AND THE T IN
THE ECC REGISTER BECAUSE THAT BIT POSITION ALWAYS REFLECTS THE SPARE BIT VALUE^
AS IT CAME FROM MEMORY. THE SECOND EXAMPLE SHOWS HOW THE SPARE CAN REPLACE ONE
OF THE ECC BITS. IN THIS CASE BIT 36 (ECC32). THE THIRD EXAMPLE HAS THE READ
SBN OUT OF RANG^ SO THAT THE SPARE GOES OFF TO NEVER-NEVER LAND AND DOESN'T
AFFECT THE READ RESULT. THE FOURTH EXAMPLE HAS THE SAME READ SBN AS THE WRITE,
THEREFORE THE SPARE BIT IS SUBSTITUTED FOR THE ORIGINIAL BIT WHICH CAUSES NO
APPARENT CHANGE.
IT IS MOST LIKELY THAT A FAILURE DETECTED BY THIS TEST WILL BE A PROBLEM
ON THE SYN BOARD. HOWEVER, THIS TEST DEPENDS UPON THE WRP BOARD PUTTING THE
CORRECT SPARE BIT CUT TO MEMORY, AND UPON THE MEMORY HOLDING THAT DATA. THESE
POSSIBILITIES ARE MINIMIZED BECAuSE THE REQUIRED CIRCUITRY NOT !N THE
SPARE-BIT-IN LOGIC HAS ALREADY BEEN TESTED.
*************** FOR FAST SCOPE LOOP:
>.ACBLK3
>.DM3/700500 14
C jG KLIO MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
>.DN254000 1
>.ST1
DECDOC VER 00.25 12-JUN-8A 13:14:13 PAGE 32
SEQ 0054
DHKBG
THIS WILL GIVE A LOOP CONSISTING OF A MEMORY READ, AN SBUS DIAG TO READ THE ECC
REGISTER, AND ANOTHER SBUS DIAG TO CLEAR THE ERROR FLAGS.
10855
10904
P44AXD PRINTS 44-BIT ACTUAL, EXPECTED, AND DISCREPENCY. CALL IS BY PC.
R5 MUST POINT TO THE PARAMETERS TO BE PRINTED! AFTERWARDS R5 WILL POINT BEYOND
THE PARAMETERS. THE PARAMETER FORMAT IS:
Q(R5) STD 5 BYTE 36-BIT WORD, ACTUAL VALUE
5(R5) 1 BYTE ACTUAL ECC
6(R5) STD 5 BYTE 36-BIT WORD, EXPECTED VALUE
13(R5) 1 BYTE EXPECTED ECC
14(R5) ADDRESS OF 44-BIT, CONSTANT MASK
*****************************************************************
TEST#15. READ ERROR CORRECTION I FLAG TEST USING MEMORY
10907
THIS TEST IS EXACTLY THE SAME AS "SNTSTR" (TEST#6) EXCEPT THAT INSTEAD
OF USING GROUP LOOPBACK TO PROVIDE A DATA PATH, WE ARE NOW USING THE MOS RAMS.
IF WE PASSED "SNTSTR" THEN THIS RUN OF IT OUGHT TO PASS ALSO. THERE ARE TWO
POSSIBLE THINGS WHICH CAN HAPPEN HERE WHICH COULDN'T HAPPEN WHILE IN GROUP
LOOPBACK MODE:
1. A MOS RAM CELL COULD BE BAD. TO MINIMIZE THE POSSIBILITY. OF THIS HAPPENING
WE USE THE SAME ADDRESS AS IS TESTED BY THE "DATA PATH TO RAM" TEST IF YOU GOT
AN ERROR IN THAT TEST THEN THIS TEST WILL FAIL ALSO, PROBABLY IN SUBTEST 1. WE
MAKE ONE SMALL MODIFICATION TO THE PROGRAM SO THAT IT STICK; TO THAT 1 LOCATION,
WHEREAS IN LPBK MODE WE CHANGES THE ADDESSES TO MAKE IT A BETTER TEST OF THE
ERROR WORD NUMBER. HOWEVER SINCE WE HAVE ALREADY TESTED THAT WE DON'T NEED TO
DO SO AGAIN.
2. A MISSING TERMINATOR OP OTHER SUCH SPEED SENSITIVE PROBLEM IS MUCH MORE
LIKELY TO SHOW UP HERE. IN LOOPBACK MODE THERE IS FAR MORE TIME FOR SIGNALS TO
MOVE AROUND THAN THERE IS DURING REAL MEMORY CYCLES.
PLEASE SEE THE LISTING AT "SNTSTR" FOR DETAILS OF HOW THE TEST WuRKS.
DIJRE'^ARD COMMENTS CONCERNING LOOPBACK SINCE WE WERE NOT RUNNING IN THAT hODE.
J
n
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I, VER 0.5 J.A.BARRY 29857
10941
109AA
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 33
♦♦♦**♦***** t*^ ***************************************************
TEST#16. FULL SPEED READ-PAUSE-WRITE TEST
*****************************************************************
11025
RPUTST IS THE READ-PAUSE-WRITE TEST. IT DOES THE SAME RPW TQ^EACH
CONTROLLER MANY TIMES WITH REFRESH OFF TO VERIFY THAT RPW WRKS BY ITSELF. IT
THEN DOES THE SAME WITH REFRESH TURNED ON TO VERIFY THAT THERE IS NO^^ ^^^^^^
INTERFERENCE BETWEEN RPW I REFRESH. ONLY 1 LOCATION PER CONTROLLER IS TESTED.
♦♦♦*♦♦♦***»♦*******»***********♦****»*********»♦*♦***************
TEST#18. PAGE REFILL CYCLE ft DATA TEST.
*****************************************************************
11028 THIS IS THE THE PAGE REFILL CYCLE TEST. THIS IS THE ONLY TEST WHICH
PERFORMS A FULL SPEED 4 WORD READ WITHOUT USING CACHE. IN THIS TEST Wt WRITE
KNOWN DATA INTO LOCATIONS 600-603 OF SOME PAGE IN THE BLOCK BEING TESTED. WE
SET THE EBR TO THAT PAGE AND FORCE A 4 WORD READ FROM LOCATIONS 600-603 USING A
HAP INSTRUCTION. AT THIS POINT WE DISABLE THE CONTROLLER AND PROCEDE TO DO MAPS
OF ADDRESSES IN THC FIRST 8 PAGES IN ASCENDING ORDER. SINCE THE FIRST MAP
INSTRUCTION SHOULD HAVE CAUSED A 4 WORD READ WF SHOULD GET NO NXMS WHEN DOING
THESE HAP INSTRUCTIONS. WE COMPARE THE HAP ECHOS WITH THE DATA ORIGINALLY
WRITTEN INTO LOCATIONS 600-603 AND REPORT ANY DIFFERENCES.
IN ORDER TO TEST ALL DATA POSITIONS 00-43 WE RUN THIS TEST 3 TIHES FOR
EACH BLOCK PRESENT. IN THE FIRST TEST WE WRITE ALL 16 COHBINATIONS OF ALL OS
AND ALL IS INTO LOCATIONS 600-603. IN THE SECOND TEST WE USE THE SAME PATTERN
SET AND ENABLE BIT SUBSTITUTION. IN THE THIRD TEST WE USE ALL 16 COMBINAriONS
OF ALL OS (TO GENERATE AN ALL IS ECO AND 400000,, 4001 00 (TO GEN AN ALL OS ECO.
BECAUSE WE HAVE NOT YET FULLY TESTED THE ARRAY BOARD RAMS, WE , DO NOT
TERHINATE THIS TEST WHEN WE GET A DATA ERROR. WHEN ALL WE^gH ARE DATA ERRORS.
WE JUST MAINTAIN THE OR OF ALL THE BIT POSITIONS IN WHICH ERRORS OCCURRED AND
RESUME THE TEST.
11228 •**♦♦*♦*»*»***♦
***************
********************** *«****!»•**•*''•************♦**»***♦ ***♦♦*♦**
11392 TEST#19. DOUBLE BIT ERROR SCAN ft FIX TEST
•♦**********«*•♦****♦♦•******♦♦*♦*•*■♦»***•******♦*****♦*•**•*•♦•*
11395 FIXTST SCANS MEHORY FOR v": ' BH »=RRORS. FIXES THEM IF IT CAN. AND
THEN TFSTS AGAIN. IF A BLOCK CAN Bt v IT IS LEFT^PATCHED, ELSE THE
APPROPRIATE BIT IS SET IN THE BAD BLOCK ftAP LOCATED IN THE BITSUB RAM. MOST OF
THE WORK IS DONE BY STANDARD MEH BOO^ CODE SO AS TO CORRESPOND TO THE OPERATION
OF THE HEH BOOT. AN AWFUL LOT OF : 'UPS CAN OCCUR AND THIS TEST WILL STILL
PASS? IT PUNTS ONLY IF IT FINDS LEii iHAN 128K (TOTAL) USABLE HOS HEMORY.
SEQ 0055
DHKBC
OHKBG KLIO MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J. A. BARRY 29857
11518
11543
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 34
SEQ 0056
DHKBI
*****************************************************************
TEST#20. MULTI-WORD CYC TEST, PERMANENTLY RESIDENT CODE,
*****************************************************************
11657
TUCOVL MAKES SURE THAT THE TEST-USIN6-CACHE OVERLAY DHKBGX IS IN MEMORY.
IF NOT IT GETS IT. ONCE IN IT CHECKS VERSION NUMBERS.
*****************************************************************
SUBROUTINES PECULIAR TO DHKB6
*****************************************************************
11700
11812
11837
THIS CODE IS THE LOOP CONTROL CODE FOR ALLBLK t ALLGRP. THESE LOOPS ,^_^
MUST BE NESTED INSIDE A CONTROLLER LOOP. ALLBLK DOES THE LOOP FOR EACH EXISTING
BLOCK FOR THE CURRENT CONTROLLER. ALLGRP WORKS SIMILARLY FOR GROUPS. THE
ROUTINES HAVE THE SAME CODE AND DIFFER ONLY IN THE BLOCK NUMBER ^ INCREMENT (BNI),
ALLGRP HITTING EVERY FOURTH BLOCK, ALLBLK TRYING EVERY BLOCK. „IN ADDITION TO
SELECTING EXTANT BLOCKS/GROUPS, THESE ROUTINES SET UP SEVERAL PARAMETERS WHICH
ARE DESCRIBED BELOW. ALSO IF THE BIT "C16KR'^' IS NOT SET IN '^DSTAT" THEN THE
BLOCK (FIRST BLOCK OF GROUP ONLY FOR ALLGRP) IS CONFIGURED TO RESPOND TO
ADDRESSES 256K-BLKSIZ THROUGH 256K-1
PNT44 JUST TAKES 44-BIT DATA AND PRINTS IT IN THE FORM
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XX XXX XXX
CALL IS BY PC, R5 MUST POINT TO THE DATA TO BE PRINTED.
BEYOND THE DATA. DATA FORMAT IS: .«„„..
Q(R5) 36-BIT DATA IN STANDARD FORMAT
5(R5) 1 BYTE WORTH OF ECC DATA
UPON EXIT R5 POINTS
PBITS IS A FANCY BINARY PRINT SUBROUTINE WHICH XORS THE ACTUAL AND
EXPECTED DATA, AND THEN SHUTS OFF BITS ACCORDING TO THE MASK. THE CALL IS OF
THE FORM:
MOV #LHMSK,R2
MOV #LHEXP,R3
MOV #LHACT,R4
JSR R5 F'BITS
.BYTE ZFkL,BITCNT,BITHSK,B8NS
WHERE *
LHMSK,"lHEXP, S LHACT are THE BYTE ADDRESSES OF THE BYTE WHi^y.$9'^^i^.!!lM!;!Lf^°^^
SIGNIFICANT (IE LEFT HAND) BIT OF THE MASK, EXPECTED DATA, AND ACTUAL
2FILL IS THE CHARACTER TO BE USED WHEREVER A WOULD BE PRINTED. NORMALLY
OR SPACE FOR DIFFERENCES PRINTING.
BITCNT THE TOTAL NUMBER OF BITS TO BE PRINTED.
BITMSK A BYTE CONTAINING A SINGLE 1 BIT IN THE POSITION OF THE FIRST BIT IN THE
BYTES POINTED TO BY R2, R3, i R4.
B6NS BITS BEFORE NEXT SPACE. THIS NUMBER OF BITS ARE PRINTED ADJACENTLY
BEFORE A SPACE IS PRINTED. THEREAFTER 3 ARE PRINTED BEFORE THE NEXT
SPACE. A SPACE IS PRINTED WHENEVER THE COUNT EXPIRES.
TWO ADDITIONAL ENTRY POINTS ARE PROVIDED: PBITSN FOR A DEFAULT HASK OF
ZERO. A ZERO MASK SAYS THAT THE BIT IS NOT SHUT OFF. PBITSD FOR A MASK OF ZERO
AND AN EXPECTED VALUE OF ZERO; THE PRINTED VALUE IS JUST THE ACTUAL VALUE.
DHKBG KLIO MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 35
SEQ 0057
DHKE
12298
UPON EXIT R2, R3^ & R4 POINT TO THE LAST BYTE FROM WHICH A BIT WAS
PRINTED. Rl & R5 AR^ NOf AFFECTED. RO IS DESTROYED.
*****************************************************************
SUBROUTINES TO MOVE DATA TO UNUSED MF20 BITSUB LOCS
*****************************************************************
1230A
12335
12423
HF20 BLOCKS CONTAINING IRREPARABLE DOUBLE BIT ERRORS WILL BE. MARKED AS
BAD. IN ORDER TO COMMUNICATE THIS INFORMATION BETWEEN PROCESSES. A 'BAD BLOCK-
HAP WILL BE KEPT IN OTHERWISE UNUSED BITSUB RAM LOCATIONS IN ALL MF20
CONTROLLERS. THIS BIT MAP HAS THE FOLLOWING FORMAT:
BITSUB RAM LOC:
SBDIAG FCN 7 BIT:
GROUP/BLOCK:
770 770 770 770 770 770
7 8 9 10 11 12
2/3 212 2/y 2/0 1/3 1/2
774 774 774 774 774 774
/ 8 9 10 11 12
1/1 1/0 0/3 0/2 0/1 0/0
IF A BIT IS THEN THERE ARE NO KNOWN, IRREPARABLE, DOUBLE BIT ERRORS IN
THE CORRESPONDING BLOCK. IF A BIT IS 1 THEN fHERE IS AT LEAST ONE OF THIS TYPE
OF ERROR IN THAT BLOCK.
THIS DATA IS CONSIDERED INVALID IN A CONTROLER AT STATE 0. AT THE
BEGINNING OF THE TRANSITION TO STATE 1, THE MEMORY BOOT WILL RESET THIS MAP TO
ZEROS. IF A BLOCK IS FOUND TO CONTAIN AN IRREPARABLE DOUBLE BIT ERROR DURING
THE MOS RAM DBE SCAN THEN THE BLOCK'S MAP BIT WILL BE SET TO 1.
AT RESOURCE DETERMINATION (RESDET) TIME THE MEMORY BOOT WILL REMOVE BAD
BLOCKS FROM THE ADDRESS RESPONSE OF STATE 2 AND 3 CONTROLLERS. THIS IS DONE TO
INSURE THAT BAD BLOCKS ARE NEVER USED UNTIL THE SYSTEM PROGRAM T6HA HAS HAD A
CHANCE TO WORK ON THEM. THIS WILL ALWAYS BE DONE UNLESS THE BYTE FLAG KEEPB8 IS
NONZERO. KEEPBB SHOULD ONLY BE SET IF TOPS IS COMING UP WARM AND HAS NOT LOST
ITS PAGING data! AS WOULD BE VAl CASE AFTER A SHORT POWER GLITCH, FOR EXAMPLE.
KEEPBB IS CLEARED BY MBINI AND BY MOSDET IF THE CONFIGURATION CONSISTENCY CHECK
FAILS. KEEPBB WILL NEVER BE SET BY THE MEMORY BOOT ITSELF.
SETBBD DOES ALL THE NECESSARY THINGS TO SET THE BAD BLOCK MAP DATA FOR
AN MF20. RO IS PRESERVED. C-BIT IS SET UPON ANY KIND OF ERROR.
CERTAIN DATA IS PASSED BETWEEN PROCESSES IN BITSUB CONTROL RAM LOCATIONS
(600-774) WHICH ARE NOT USED BY THE HARDWARE. THIS DATA IS CLEARED AT THE START
OF THE TRANSITION FROM SOFTWARE STATE TO 1. IT IS ALWAYS INVALID IN STATE 0.
OF THE 8 BITS IN EACH LOCATION, ONLY 6 (07-l|),MAY BE USED FOR DATA. B T 3 S
SET TO 0, AND BIT 14 HAS A VALUE SUCH THAT 07-14 HAS EVEN PARITY. IF BIT 13 IS
NOT ZERO OR THE PARITY IS ODD THEN THE DATA IS CONSIDERED INVALID REGARDLESS OF
THE SOFTWARE STATE. THE USE OF THE SIX DATA BITS IS SPECIFIC TO EACH
APPLICATION.
FOR DIAGNOSTIC PURPOSES BITSUB RAM LOCATIONS 600-634 WILL CONTAIN THE
VALUE 254. THIS SAYS THAT THE BITSUB RAH LOCATIONS FOR GROUPj BLOCK (WHICH
DOESN'T EXIST) HAVE BAD PARITY. ALL ADDRESS RESPONSE RAM LOCATIONS IN WHICH THE
DESELECT BIT IS SET WILL POINT TO GROUP 3 BLOCK 0. ILI^I J^t^.^iPJ^Itl^Lt?^^^
SHOULD FAIL, THEN WE WILL GET CONTR ERR RATHER THAN CORR ERR AND THE BAD DATA
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857
WHICH WOULD COME WITH CORR ERR.
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 36
SEQ 0058
DHKI
12A63
12527
12AAA SBSRL MOVE THE RH 6 BITS OF RO TO THE SPECIFIED BITSUB RAM LOCATION,
FIRST JUSTIFIING IT FOR BITS 7-12. SHUTTING OFF BIT 13, AND PUTTING BAD PARITY
INTO BIT U. ECHO CHECK FAILURE ^ESULTS IN A C-BIT SEf RETURN. RO IS DESTROYED.
*****************************************************************
INITIALIZE ALL MEMORY BOOT DATA AREAS
*****************************************************************
12466
SUBROUTINES TO CLEAR THIS. THAT, OR THE OTHER TABLE SET.
*****************************************************************
MEMORY BOOT DATA AREA
*****************************************************************
12530
12548
12583
12634
1<:c44
12667
12748
12794
CALL DOWN CHAIN CONTROL FLAGS. THESE FLAGS SAY THAT THE CORRESPONDING
MEMORY BOOT SUBROUTINE GROUP HAS BEEN DONE IF THEY ARE NOT (INZ).
MEMORY BOOT OPERATION CONTROL FLAGS AND VARIABLES. THESE PIECES OF DATA
HAVE CONSIDERABLE EFFECT ON JUST HOW THE MEMORY BOOT WORKS. THEY ARE NOT ALL
RELATED TO ONE AND OTHER, BUT ARE ALL HERE JUST SO THAT THEY ARE IN ONE PLACE.
IF THE CONTROL PROGRAM I§ TO SET UP ANY OF THESE IT SHOULD DO SO AFTER MBINI HAS
BEEN RUN.
DATA DETERMINED FROM THE HARDWARE AT RUN TIME AND PERTINENT TO THE
MEMORY BOOT PROCESS AS A WHOLE.
SCRATCH AREAS.
CONSTANT DATA.
INTERNAL FLAGS WHICH USED TO BE IN LINE AND WHICH ARE INITIALIZED TO -1
BY MBINI. THESE SHOULD NEVER BE TOUCHED BY THE CONTROL PROGRAM.
FUNCTION BAF CALCULATES THE ADDRESS OF THE SIZE BYTE FOR BLOCK OF AN
MF20 CONTROLLER WHOSE NUMBER IS IN TSTCON. BAFO EXPECTS THE NUMBER IN RO.
RAMSZO, TIMNOO. AND TIMN01 ARE TABLES FILLED WITH DIGESTED ARRAY _ ^
BOARD PROM DATA WHICH ^ELATES TO THE MOS RAM SIZE AND THE REQUIRED TIMING FILE
NUMBERS. THE INDIVIDUAL TABLE BYTES ARE REFERENCED BY CONTROLLER NUMBER (-10 .
THE MF20 BLOCK SIZE BYTES (MDFSIZ) EXIST FOR EVERY POSSIBLE BLOCK (0-13)
FOR EACH POSSIBLE MF20 CONTROLLER (10-17). BLOCK HAS DISPLACEMENT 0. ETC._
THE MF20 START ADDRESSES (MOSSA) ARE PHYSICAL ADDRESSES AND AR| VALID
AFTER FITMEM. THEY ARE GIVEN FOR EACH POSSIBLE BLOCK IN ALL POSSIBLE MF20S.
FUTURE DATA AREA FOR MX2G WILL GO HERE.
L_
<*b
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857
13360
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 37
*****************************************************************
MEMORY CONTROLLER TYPE FORMAT CHECK
*****************************************************************
13363 CTFMTC IS A QUICKY SUBROUTINE DESIGNED TO CHECK THE MEMORY CONTROLLER
TYPE VS CONTROLLER NUMBER RESPONSE. MEMORY BOOT SUBROUTINE CONDET MUST ALREADY
HAVE BEEN called: RETURN IS TO PC. A NO ERROR RETURN HAS C-BIT CLEAR AND R0=0,
OTHERWISE C-BIT IS SET AND RO HAS ONE OF THESE ERROR CODES:
1 NO CONTROLLERS FOUND AT ALL. PROBABLE CAUSE FOR MULTIPLE CONTROLLER
SYSTEMS IS FAILURE BY CPU TO TRANSMIT SBUS DIAG PROPERLY. IN A SINGLE
CONTROLLER SYSTEM THE FAULT MAY ALSO LIE IN THE MEM CONTROLLER ITSELF.
2 AN UNRECOGNIZED CONTROLLER TYPE WAS SEEN. PROBABLE^CAUSE IS TWO MEM
CONTROLLERS RESPONDING TO THE SAME CONTROLLER NUMBER, OR A CONTROLLERS
RESPONSE IS BAD
3 IS FOR A MISPLACED CONTROLLER, IE. A CONTROLLER IS RESPONDING TO THE
WRONG CONTROLLER NUMBER, OR ITS RESPONSE IS BAD.
A MF20/MX20 VS. MASTER OSCILLATOR MISMATCH. APRID MASTER OSC BIT IS NOT
SET BUT AN MF20 OR MX20 IS SEEN, OR MASTER OSC BIT IS SET BUT THERE IS
NO MF20.
*****************************************************************
13428 DETERMINE CONTROLLER PRESENSE & FUNCTION 01 DATA
*****************************************************************
13A31 CONDET IS RESPONSIBLE FOR FIGURING OUT WHAT CONTROLLERS ARE ON^THE_ ^__,^
SYSTEM AND LOGGING THAT INFORMATION IN "TYPNUM". IT ALSO FINDS OUT WHETHER THIS
IS A MODEL A OR B^ AND WHETHER WE HAVE A MASTER OSCILLATOR OR NOT. TRACKS THE
INTERLOCK VARIABLE CONRD.
*****************************************************************
13769 READ MOS PROM DATA FOR A CONTROLLER
*****************************************************************
13772
RDPROM IS A SUBROUTINE DESIGNED TO READ THE PROM DATA FROM THE CURRENT
HF20 CONTROLLER (TSTCON) AND PLACE THIS DATA IN DBUF. IT IS ASSUMED THERE ARE
A8 BYTES OF DATA TO BE READ FOR ANY MOS CONTR.
AS SET UP IN DBUF. THE DATA HAS THE FOLLOWING FORMAT:
PDP-11 BYTE;
PROM BYTE:
CONTENTS:
\ \ \ ?
Y Y Y YWWWWWW«###I######PPABNNSSMMM
WHERE :
YYYY
WWWWWW
# M
VV • ■ • • r^
PP
L
IS THE A-BIT LAST-DIGIT-OF-THE-YEAR CODE.
IS THE WEEK-OF-THE-YEAR CODE.
IS THE 11-BIT SERIAL NUMBER FOR THE WEEK. ^ ^ ,^
IS THE POPULATION CODE: 11 => A BLOCKS (FULLY POPULATED) , 10 =>
3 BLOCKS (0,1,2). 01 => 2 BLOCKS (0,1). AND 00 => 1 BLOCK (0). ^
IS A PARITY bIt §UCH THAT YYYYWWWWWWffi^fffff/TflPPA HAS EVEN PARITY.
IS A PARITY BIT SUCH THAT BNNSSMHM HAS ODD PARITY. ^ ^.
IS THE TIMING NUMBER. 0-3 PERMITTED. MUST BE DIFFERENT FOR EACH ACTUAL
SEQ 0059
DHK
147
DHKB6 KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 38
IN
DIFFERENT TIMING USED. NUMBERS MAY BE REUSED FOR DIFFERENT RAM SIZES.
RAM SIZE CODE. 00-64K RAMS, 01-32K, 10-16K, 11-AK.
RAM MANUFACTURER CODE.
13847
13985
14073
12 OF THESE 4 BYTE ENTRIES ARE SET UP IN THE FOLLOWING ORDER: GROUP 0,
FIELD 0; GRP FLD 1; .... ; GRP 2 FLD 3.
*****************************************************************
DIGEST PROM DATA FOR A MOS CONTROLLER
*****************************************************************
13850 SUBROUTINE DPD "DIGESTS" PROM DATA. IT FIRST FINDS OUT WHICH IS THE
SMALLER OF THE CONTROLLER'S 2 RAM SIZES. THIS IS THE TYPSEL=0 RAM SIZE. (IT IS
REQUIRED THAT THERE ARE ONLY 1 OR 2 RAM SIZES IN THE CONTROLLER.) AFTER FINDING
THIS IT SETS THE REST OF THE INFO AVAILABLE FROM THE PROM: PHYSICAL BLOCK MAP,
BLOCK TYPSEL, AND TIMING ID FOR BOTH TYPSELS. IT IS ASSUMED THAT RDPROM HAS
ALREADY BEEN CALLED FOR THIS CONTROLLER.
*****************************************************************
LOAD A MOS CONTROLLER'S FIXED VALUE RAMS
*****************************************************************
13988 LDFVR IS THE SIJBROUTINE WHICH LOADS AND MF20'S FIXED VALUE RAMS. THE
CONTENT OF THESE RAMS IS USED TO CONTROL WORD NUMBERS, ACKNS, AND DATA VALID
DURING READ CYCLES.
14044 THIS IS THE MF20 FIXED VALUE RAH DATA., THE DATA APPEARS HERE AS IT
WOULD APPEAR IN BITS 09-13 OF AN SBDIAG FUNC 03 TYPEOUT. FIXED VALUE RAM
ADDRESSES INCREASE FROM LEFT TO RIGHT.
LOAD A MOS CONTROLLER'S TIMING RAMS
*♦♦*•***♦***♦**************♦***•***♦*******»**♦****♦»**»*♦****»**
14076 LDTIMR LOADS THE TIMING RAM WITH THE TVPSEL=0 TIMING IN THE LOW END AND.
IF PRESENT, THE TYPSEL=1 TIMING IN THE HIGH END. ALL THE REST IS FILLED WITH
BAD PARITY DATA.
SEQ 0060
1 ^.
[)48
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF I. VER 0.5 J.A.BARRY 29857
141 5A
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 39
SEQ 0061
*****************************************************************
LOAD I START REFRESH FOR A MOS CONTROLLER
U137 LDREFR LOADS AND STARTS HOS REFRESH FOR THE SELECTED CONTROLLER.
»♦*******♦♦**♦**********♦•*****♦*****»*********♦♦*♦♦*************
1416A HAKE SURE TIMING FILES ARE LOADED FOR A HOS CONTROLLER
*****************************************************************
1A167 SUBROUTINE TO GET THE TIMING FILES NECESSARY FOR A GIVEN (TSTCON)
CONTROLLER^ THE FILES ARE NEARLY LOADED IN PDP-11 MEMORY BOOT TIMING FILE
BUFFERS. CGETTF MAKES SURE PROM INFO FOR THE CONTROLLER IS VALID. GETTF
ASSUMES THAT IT IS VALID.
14270 HERE IS THE DEFAULT TYPSEL=0 TIMING FOR THE MF20. ALSO SPACE IS LEFT
FOR SOME TYPSEL=1 TIMING. THOUGH NONE IS CURRENTLY DEFINED.
*****************************************************************
U502 MOS RAM DOUBLE BIT ERROR SCAN I FIX SUBROUTINES
*****************************************************************
14505
14515
U=09
14791
LDBESP IS THE SUBROUTINE WHICH LOADS THE AC PROGRAM BELOW. THE PROGRAM
RESIDES IN AC BLOCKS O-r
BTOFIX IS CALLED EACH TIME A NEW MOS BLOCK IS TO BE TESTED. IT SETS UP
THE NECESSARY CONTROLLER, GROUP, AND BLOCK RELATED PARAMETERS AND LOADS THOSE
ACS WHICH NEED TO BE L0.a6eD. if ASSUMES: (1) THAT THE AC PROGRAM IS LOADED AND
THAT (2) IT IS CALLED FROM INSIDE AN "ALLBLK" LOOP AS IT USES PARAMETERS CREATED
BY ALLBLK.
THIS IS THE AC PROGRAM WHICH SCANS FOR DOUBLE BIT ERRORS (DBE) AND
RECORDS THEM. ACBLK DOES A SIMPLE READ/WRITE MARCH TEST IN ONE DIRECTION ONLY
CHANGING ONE PATTERN (APAT) TO ANOTHER (BPAT). THE PDP-11 MAY CHANGE THE^
DIRECTION. LENGTH, AND DATA OF THE SCAN AS REQUIRED. EVERY FOURTH WORD IS
TESTED WhIcH CONFInES THE MARCH TO A PARTICULAR SUBBLOCK (AS DEFINED BY ADR ^^
34-35). THE TEST REMAINS IN AC BLOCK UNTIL AN ERROR IS DETECTED. WHEREUPON IT
GOES THROUGH AC BLOCKS 1-5 (IN THAT ORDER) TO DECIPHER THE ERROR. ANYTHING
OTHER THAN A DOUBLE GIT ERROR (DBE) WILL CAUSE AN IMMEDIATE HALT. CORRECTABLE
ERRORS ARE ASSUMED TO BE IGNORED, THEREFORE WE SHOULD NEVER SEE ONE.
THE PURPOSE OF ALL THIS Is TO FIND WHERE DBE'S OCCUR IN A WAV THAT
ALLOWS US TO SUBSTITUTE FOR ONE OF THE 2 BAD BITS. IN THIS MANNER WE CAN
ELIMINATE (MAYBE) DBE'S. BECAUSE ONE OF THE ADDRESS INPUTS TO THE BIT SUB RAM S
ADDRESS BIT 33 WE ALSO BREAKDOWN THE ERRORS ACCORDING TO ADR 33 THE NATURE OF
THE SUBSTITUTION IS SUCH THAT IF WE HAVE MORE THAN 2 DBE'S FOR EACH VALUE OF ADR
33. THEN ONE BAD BIT OF EACH DBE MUST BE THE SAME OR WE CANNOT SUBSTITUTE. IF
THIS HAPPENS WE STOP.
INDEPR IS A SET OF 11 36-BIT WORDS WHICH HAS THE FOLLOWING PROPERTY: ALL
4 STATES (00.01.10.11) OF EVERY POSSIBLE BIT PAIR IN THE 36 DATA | 7 ECC BITS
(THERE ARE 963 ^AlftS IN 43 BITS) EXIST IN AT LEAST 1 OF THE PATTERNS. THIS
MEANS THAT ANY HARD FAILURE OF 2 (OR 1) BITS WILL BE DETECTED BY THESE 7ATTERNS
REGARDLESS OF THE FAILING BITS' POLARITIES. _ , ,^ ^.,. „,„ ,.,^
THE FIRST 10 PATTERNS ARE SUFFICIENT TO COVER THE 36 DATA BITS. THE
)(K9
DHKB6 KL10 HF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J. A. BARRY 29857
OECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 40
11TH PATTERN COVERS THE FEW HOLES LEFT IN ECC/ECC J DATA/ECC PAIR STATES. NOTE
THAT ECC IS DEFINED HERE AS BEING THE MF20 ECC SCHEME. NOTE ALSO THAT THE FIRST
10 DATA PATTERNS ALSO TEST ALL BIT PAIRS INVOLVING THE 36-BIT PARITY BIT.
1A830 FIXSB IS THE SUBROUTINE WHICH CONTROLLS THE RUNNING OF THE DBE^SCANNER
AC PROGRAM. THE THEORY IS SIMPLE ALTHOUGH H LOOKS RATHER BAD WHEN THIS
ROUTINE IS CALLED THE SUB8L0CK IS ALREADY INITIALIZED TO THE FIRST DATA PATTERN.
ALL SPARE BITS ARE DESELECTED AND ALL ICE (IGNORE CORRECTABLE ERROR) BITS ARE
ON. WE THEN LOAD UP THE PARAMETERS REQUIRED TO WORK ON THE SUBBLOCK (# IN RO)
AND RUN THE PROGRAM. WHEN IT HALTS WE CHECK THE HALT CODE. FATAL ERRORS STOP
THE PROGRAM RIGHT HERE. ELSE WE SEE IF THERE WERE ANY DEE'S. IF NOT WE SIMPLY
RETURN WITH C-BIT CLEAA. ELSE WE GO GET THE ERROR MAPS. JHERE ARE 2 MAPS; ONE
FOR ADR 33=0 AND THE OTHER FOR ADR 33=1. WE SCAN THESE MAPS TO GET 0,1. OR 2
ERROR BIT NUMBERS FROM EACH. WE CHECK TO SEE IF THERE IS A COMMON ERROR BIT
BETWEEN THE TWO HAPS. IF SO WE USE THIS BIT # FOR SUBSTITUTION. ELSE WE USE THE
RIGHTMOST BIT FOR EACH ADR 33. AFTER SUBSTITUTION WE RE-WRITE JhE A-PATTERN
THROUGH THE BLOCK AND GO TEST THE SUBBLOCK AGAIN.^ IF NO DBES SHOW UP WE RETURN
WITH THE C-BIT CLEAR AND THE #S OF THE SWAPPED BITS IN RO. ELSE WE DO A C-BIT
SET RETURN INDICATING THE SUBBLOCK CANNOT BE USED.
15089 SUBROUTINE TO DO DEFAULT INIT OF MF20 BITSUB RAM
*****************************************************************
15092 INIBSR LOADS AN MF20'S BITSUB RAH WITH THE FOLLOWING DATA:
LOCATION CONTENT MEANING __
SPARrBIT"DESELicTED"lHAPPED TO ITSELF). IGNORE CORRECTABLE
ERRORS. GOOD BITSUB RAH PARITY.
SPARE 6lT DESLECTED, DO NOT IGNORE CORRECTABLE ERRORS. BAD
BITSUB RAM PARITY
CLEAR DATA BITS USED BY SOFTWARE. DO NOT IGNORE CORRECTABLE
ERRORS. BAD BITSUB RAH PARITY.
??? IS THE BOUNDARY BETWEEN THE TRULY UNUSED BITSUB RAM LOCATIONS AND THOSE
LOCATIONS USED ONLY BY THE SOFTWARE. NEW SOFTWARE LOCATIONS SHOULD BE DEFINED
IN A DOWNWARDS DIRECTION. SYMBOL IS LSBSRL.
LOCATION 744 IS USED ONLY BY TGHA. THE ONLY TIME WE EVER TOUCH IT IS
WHEN THIS ROUTINE IS CALLED. FURTHER. THIS ROUTINE IS ONLY CALLED WHEN AN MF20
IS GOING FROM STATE TO STATE 1. AT THIS TIME 744 IS LOADED WITH 254.
SEO 0062
000-574
256
600-???
254
???-774
000
n
DHKBG KLIO I1F20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857
15135
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 41
15927
16110
16154
*****************************************************************
CONFIGURE A MOS BLOCK TO END OF 256K ADDRESS SPACE
»********t»*************»****«********* **************************
15138 CABTE DOES THE NECESSARY SBDIAGS TO MAKE A GIVEN MOS BLOCK RESPOND TO
ADDRESSES 256K-<BLK SIZ> THROUGH 256K-1 . UPON ENTRY RO MUST POINT TO THE
SIZE TABLE BYTE FOR THE DESIRED BLOCK. RO IS DESTROYED. ASIDE FROM THE N
RESPONSE RAM LOCATIONS USED THE RESPONSE RAM IS NOT AFFECTED. THE CONTROLLER IS
NOT TURNED ON. C-BIT SET IF NO BLOCK.
*****************************************************************
REPORT WHAT CONTROLLER DATA WE HAVE TO NOW
******************************************************************
15930
REPCON REPORTS THE RESOURCES AVAILABLE FOR CONFIGURATION.
»********t *******************************************************
SUBROUTINES USED FROM ALL OVER
*****************************************************************
*****************************************************************
SBUS DIAG SUBROUTINES
*****************************************************************
16158 THE FOLLOWING CODE IS THE 'TAST SBUS DIAG PROGRAM" AND ITS SUPPORT CODE.
IT WORKS BY HAVING AN AC PROGRAM CONSTANTLY RUNNING IN AC BLOCK 6 WHICH WAITS
FOR A NONZERO VALUE IN AC14 THEN DOES AN SBUS DIAG USING THAT WORD AND CHtCKS
THE RESULT. IF ALL IS WELL THE PROGRAM JUST KEEPS RUNNING. IF NOT. IT HALTS.
SBUS DIAGS ARE BEING DONE THIS WAY IN ORDER TO SPEED THEM UP: ONLY 1 DEPOSIT IS
REQUIRED PER SBDiAG.
1o<80 SUBROUTINE TO STICK THE CURRENT CONTROLLER NUMBER INTO AN SBUS DIAG_^^
WORD. THE ADDRESS OF THE SBUS DIAG WORD IS A T.P. OR IN RO IF ENTRY AT CNTSDI.
CNTSD1 DOESN'T AFFECT RO.
16403 SUBROUTINE SETRAM IS CALLED BY THE SETRAM MACRO. IT IS USED TO FILL AN
ENTIRE MOS CONTROL RAM SET WITH A DESIRED VALUE. IT USES^AND IS INTIMATELY
LINKED TO FSD. IT IS ASSUMED THAT THE FSO MASK HAS ALREADY BEEN LOADED. NOTE
THAT SOME ROUTINES DEPEND UPON THE FACT THAT SETRAM STARTS WITH THE ADDRESS
GIVEN IN THE SBDIAG WORD AND WORKS DOWN FROM THERE.
SEQ 0063
i0i/t*lMMiij9^^J»
0051
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857 DFCDOC VER 00.25 12-JUN-84 13:U:13 PAGE 42
16AA2
16664
*******»*ttt****************************»******* *********** ******
MOS CONTROLLER ERROR DATA DUMPER CODE
♦*»*****»t ************************************************* ******
****t ************************************************ ************
COMPARE ROUTINES
*****************************************************************
16667
167U
16740
10. '57
36-BIT DATA COMPARE ROUTINE. PERFORMS A MASKED COMPARISON OF 5-BYTES OF
DATA TO SOME EXPECTED DATA. SETS THE C-BIT ft LOADS THE ERROR STACK IF
MISCOMPARE. CALL IS:
JSR R5,MSK36R ,
R2 = POINTER TO MASK (OS IMPLY TEST)
R3 = POINTER TO EXPECTED DATA
R4 = POINTER TO ACTUAL DATA
36-BIT DATA COMPARE ROUTINE (TRAILING PARAMETERS). USES MSK36R. ^ ^^
PARAMETERS MAY BE AC NUMBERS IN WHICH CASE EXAMINES ARE AUTOMATICALLY DONE TO
GET THE DATA. CALL IS:
JSR R5,MASK36
ENTRY+2 = JOINTER TO MASK (OS IMPLY TEST)
ENTRY+4 = POINTER TO EXPECTED DATA
ENTRY+6 = POINTER TO ACTUAL DATA
36-BIT DTE-20 DATA COMPARE ROUTINE (TRAILING PARAMETERS) USES MSK36R.
JSR R5,MSKDAT
ENTRY+2 = POINTER TO MASK
ENTRYH = POINTER TO EXPECTED DATA
SUBROUTINE TO PLACE A PARAMETER WORD ON THE ERROR STACK. THIS WORD IS
IGNORED BY THE ERROR REPORTER. BUT MAY BE USED BY THE ISOLATION ROUTINE. THE
WORD IS PASSED TO THIS ROUTINE IN RO.
CALL IS:
16770
*****************************************************************
MISCELLANEOUS SUPPORT SUBROUTINES
*****************************************************************
16774 INITM - ROUTINE TO INITIALIZE TABLES FOR MSUB.
16822 TRAP HANDLER. EMULATES AN R5 CALLING CONVENTION IF BITO OF SUBROUTINE
ADDRESS IN TRAP TABLE IS 0, OTHERWISE DOES A PC CALL.
SEQ 0064
0052
DHKB6 KL10 MF20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J. A. BARRY 29857
16897
DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 43
SEQ 0065
♦»*»**************************************«.-*********************
COMMAND PARSER FOR / TYPE CMDS TO DIAGNOSTIC
*****************************************************************
17366
17456
16960
17243
17320
PNTVER - SUBROUTINE TO PRINT PROGRAM VERSION IF SET
SLSHDR DUMPS THE CONTENTS OF THE SELECTED MOS CONTROLLER RAM TO THE CTY.
COMMAND FORMAT IS "/DR RAMNAM CONTRA". /DR IS ABLE TO USE DEFAULT CONTR # GIVEN
BY /TC COMMAND.
SLSHSD PERMITS THE USER TO DO ANY SBUS DIAG AND GET THE RESULTS. THIS
ROUTINE WILL NOT DISTURB ANYTHING, BUT IT EXPECTS THAT THE LKU IS USABLE.
DELIVERS NO RESULT IF ANYTHING GO§S WRONG. IF THE CONTROLLER NUMBER IN THE WORD
TYPED IN IS 0, AND THE VARIABLE '7C0N" EXISTS AND IS VALID, THEN THE NUMBER IN
TCON WILL BE USED AS THE CONTR # INSTEAD OF 0.
*****************************************************************
ROUTINE TO CHANGE THE CURRENT AC BLOCK
*****************************************************************
17369 SUBROUTINE ACBLK SETS THE CURRENT AC BLOCK NUMBER ACCORDING TO THE VALUE
IN RO WITHOUT USING AN AC OR MEMORY. PREVIOUS AC BLOCK NUMBER IS SET TO ZERO.
17416 READAC IS A CONVENIENCE SUBROUTINE TO GET ANY AC AND DUMP IT INTO A
TEMPORARY BUFFER SOMEWHERE. RO HAS WD ADR UPON RETURN.
*****************************************************************
PROGRAM RUN CONTROL ROUTINES
*<,»*************»************************************************
17460 SUBROUTINE CGOTO JUMPS TO THE NTH ADDRESS FROM A LIST OF ADDRESSES,
WHERE THE N COMES FROM RO. A VALUE OF IN RO WILL CAUSE A JUMP TO THE FIRST
ADDRESS IN THE LIST. CGOTO ALSO CHECKS THE RANGE OF THE JUMP INDEX VS. THE
SIZE OF THE LIST.
17480 PROGRAM RUN ROUTINES. AUTORP AND AUTORB RUN THE PROGRAM USING THE
STARTING AC t AC BLOCK SET BY MABL (MULTIPLE AC BLOCK LOAD). RUNPRG AND RUNBIG
USE THE T. P. AS THE START ADR IN THE CURRENT BLOCK. AUTORB AND RUNBIG USE THE
T.P. AS A TIME LIMIT OF N 60 CYC CLK TICKS, WHEREAS AUTORP AND RUNPRG DEFAULT
TO i TICK. AUTORP t AUTORB ARE DEFINED ONLY IF $JAB IS DEFINED AS THEY EXPECT
TO BE ABLE TO USE THE JAB INSTRUCTION.
17515 CONTIN - STARTS THE KL RUNNING. SP^i THE C-BIT IF NO HALT WITHIN THE
TIMING INTERVAL SPECIFIED.
17663 ERROR POINT FOR EBOX CLOCK STOP ERRORS. DETERMINES THE ERROR TYPE &
PRINTS THE ERROR TYPE i SUBROUTINE ENTRY POINT.
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I. VEP 0.5 J.A.BARRY 29857
17778
17782
DEC DOC VER 00.25 12-JUN-84 13:U:13 PAGE 4A
SEQ 0066
*****************************************************************
NEW AC LOAD ROUTINES
*****************************************************************
ITS
18069
MABL IS A SUBROUTINE DESIGNED TO LOAD A MULTIPLE AC BLOCK PROGRAM.
PARAMS INCLUDE STARTING AC & BLOCK NUMBERS (OR -1), AN AC BLOCK MASK BYTE
(BIT0=1 ==> LD BLK 0. ETC), AN INITIAL PDP11 ADDRESS OF CONTIGUOUS 10 WORDS TO
LOAD, AND A VARIABLE LENGTH LIST OF AC LOAD MASKS (1 FOR EACH BLOCK LOADED).
MABL USES ACBLK AND LOADAC.
17829 ACLOAD IS A SUBROUTINE WHICH PERFORMS A "RANDOM" LOAD OF THE ACS IN THE
CURRENT BLOCK. WHICH ACS ARE LOADED DEPENDS ON THE MASK: BITO= SAYS TO LOAD
ACO, ETC. ACS ARE LOADED FROM TO 17 FROM CONTIGUOS WORDS IN 11 MEMORY. ENTRY
AT ACSCAT ALLOWS A LIST OF ADDRESSES IN CASE THE WORDS ARE SCATTERED IN 11 MEM.
F ANY OF THE A "UNUSED*^" BITS OF A 10 WORD ARE NOT ZERO, THE DEPOSIT IS
DEFERED UNTIL LATER. A LIST OF DEFERED DEPOSITS IS CONSTRUCTED... NOTE THAT IF
ANY WORDS ARE PROCESSED IN THIS MANNER THEN YOU MUST INIT "DLNXT" TO POINT TO
"DFRLST" PRIOR TO LOADING ANY AC BLOCKS.
17950 LDEFER IS THE SL6R0UTINE WHICH ACTUALLY DOES THE DEFERRED AC LOADING.
IT HAS NO PARAMS AS IT ASSUMES THAT THE DEFERRED LOAD L ST IS ALREADY SET UP.
NOTE THAT RO MUST HAVE THE CORRECT ADDRESS IN IT IF IT IS TO BE USED FOR
RELATIVE INDIRECT LOADING.
18054 INVAL - INVALIDATES THE CACHE.
*****************************************************************
RESET SUBROUTINES
*****************************************************************
18072
18137
18166
RESET IS A SUBROUTINE TO DO MINIMAL RESETS^IN AS LITTLE TIME AS
POSSIBLE. IT CAN DO A BASIC MASTER RESET AND AN SBUS RESET. DONT USE IT FOR
CHANNELS, ETC. NOTE THAT IT IS NOT SUFFICIENT FOR A MACHINE JUST POWERED ON.
BIT15 OF THE PARAMETER WORD SAYS TO DO AN SBUS RESET. BIT7 SAYS TO RESET THE
CPU. IF NEITHER IS GIVEN A CPU RESET IS DONE.
• .♦♦»*♦»♦******»»****♦****♦***********♦*♦*******************************
THIS EXECUTE ROUTINE WILL EVENTUALLY BE REPLACED BY A ROUTINE
WHICH DOES AN EXECUTE WITHOUT ALL THE OVERHEAD OF A KLDCP EXCT. FOR
THE MOMENT WE ARE USING EXCT.
**********************************************************************
9 t
SUBROUTINE TO MAKE SURE THAT EXAM/DEPOST, EXECUTE, OR PROGRAM RUN
FINISHED UP CORRECTLY. CHECKS C-BIT. RETURNS IF CLEAR, ELSE DOES ERROR WITH
MESSAGE DEPENDING ON ENTRY POINT (CHKED, CHKX, OR CHKP).
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:14:13 PAGE 45
SEQ 0067
*****************************************************************
18213 REGISTER SAVE & RESTORE ROUTINES
*****************************************************************
18284
18300
18319
SETPAR MAKES THE PARITY OF RO ODD BY CONDITIONALLY CHANGING A SINGLE BIT
(DEFINED BY THE TRAILING PARAM) FROM A TO A 1.
CALPAR CALCULATES THE PARITY OF THE WORD IN RO. THE RESULT IS RETURNED
AS BITO IN RO. A 1 MEANS PARITY WAS ODD. MEANS PARITY EVEN.
ERRMAP IS A SUBROUTINE WHICH RETRIEVES DATA FROM THE ERROR
STACK AND PRINTS IT IN THE FORM SHOWN BELOW BETWEEN THE LINES OF .
***** ERROR MAP *****
l^^ia-M-^-M-M-B-— 1 — — — ^-
■ WMWWMMWM«W*«>M«
COLLIM
STAND AA
EE FF GG HH
STAND BB
EE FF GG HH
STAND CC
EE FF GG HH
STAND DD
EE FF GG HH
ROW J J
ROW KK
ROW LL
ROW MM
• « • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • • •
• • « •
"." IS
NO ERR, "E" IS
ERROR.
STAND, COLUM, AND ROW REPRESENT THREE HEADERS WHICH MAY BE PICKED FROM
THE FOLLOWING SET^^^ , .^^^^^ . ..^^^^^ ..^ .^^^^^ ..^ ,^^^ „
THESE HEADERS HAVE NUMBERS ASSOCIATED WITH THEM FROM 0-4 AND ARE REFERENCED BY
THESE NUMBERS. THE VALUES AA-MM ARE POSITIVE INTEGER BYTES WHICH ARE PRINTED AS
2 OCTAL DIGITS UNLESS THE HEADER WAS "BIT" IN WHICH CASE THE BYTE IS PRINTED AS
DECIMAL.
THERE IS FOR EACH "STAND" (WHAT ELSE DO YOU CALL A BUNCH OF COLUMNS) A
16-BIT WORD. THE RELATION BETWEEN BIT POSITION AND,THE STAND IS AS FOLLOWS:
BITO BITI BIT2 BIT3
BIT4 BIT5 BIT6 BIT7
BITS BIT9 BIT10 BIT11
BIT12 BIT13 BIT14 BIT15
STAND HEADERS AND STAND DATA WORbS MUST MATCH 1 FOR 1. THE FIRST STAND HEADER
GOES TO STAND ERR MAP WORD 0, ETC.
ADDITIONAL PARAMETERS LIMIT THE NUMBER 0^ STANDS, COLUMNS, AND ROWS .
PRINTED. DATA NOT TO BE USED BY REASON OF LiMITiNG COUNT IS IGNORED. THE DATA
PLACED ON THE STACK IS OF FIXED FORMAT AS FOLLOWS:
#FTUSR USER FORMAT ID
#ERRMAP ADR OF SUBROUTINE
.BYTE « Of ROWS
.BYTE 'W* HEADtR NUMBER
.BYTE » OF COLUMNS
.BYTE "COLUM'^' HEADE;< NUMBER
n
OHKBG KLIO HF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 46
SEQ 0068
18371
18423
18570
18661
18706
18733
.Byte # OF STANDS
.BYTE "STAND" HEADER NUMBER
.BLKW 4 WORDS OF STAND INFO
.BLKB 12. BYTES FOR AA-MM
S*10
S*11
S*12
S*22
S+36
THE DATA AREAS FOR ERRMAP FOLLOW. THE USUAL METHOD OF USE IS FOR THE
DIAGNOST C TEST TO INIT THE DATA BY CALLING INIEMD, MAKE ANY CHANGES INDICATED
BY HARDWARE CONFIGURATION AND FAULT DATA. AND CALL STKEMD TO PUT THE DATA ON THE
ERROR STACK.
INIEMD INITIALIZES THE AREA ABOVE. DATA WORDS ARE ZEROED. COUNTS ARE
SET TO AND ACTUAL NUMBERS TO -1 UNLESS THE HEADER TYPE IS FIELD OR WRD IN
WHICH CASE THE COUNT IS SET TO 4 AND THE ACTUAL NUMBERS TO 0. 1. 2. AND 3. THE
HEADER NUMBER BYTES FOLLOW THE CALL:
JSR R5. INIEMD
.BYTE R.C.S.O
STKMEP AND PNTMEP ARE. RESPECTIVELY, ROUTINES DESIGNED TO PUT MOS ERROR
POINTERS ON THE ERROR STACK AND THEN TO TAKE THEM OFF THE ERROR, STACK FOR
PRINTING. THE ERROR DATA IS TAKEN FROM THOSE PLACES INDICATED IN THE CODE.
HOCMD IS A LITTLE SUBROUTINE DESIGNED TO OBTAIN THE MASTER OSCILLATOR
CLOCK SOURCE NUMBER. VERIFY If, AND GO SET IT INTO THE HARDWARE. THE VALUES ARE
3 THIS IS NOMINAL. 30 MHZ. THIS IS WHAT IS NORMALLY USED. ^ ^^
2 SLOW. 25 MHZ. tniS MUST BE USED IF AN MF20 BOARD IS ON AN EXTENDER.
1 FAST 31 MHZ. NORMALLY USED TO SPEED MARGIN AN MF20 OR THE CPU.
EXTERNAL. YOU MUST HAVE ALREADY HOOKED UP AND HAVE RUNNING AN ^^
OSCILLATOR. IF YOU DON'T. YOU WILL HAVE TO SHUT THE MACHINE OFF TO
CLEAR THIS. BEWARE!
NOTE THAT THIS COMMAND MEARLY SELECTS THE MASTER OSCILLATOR SOURCE. . TO ACTUALLY
USE THE MASTER OSC, YOU MUST SELECT IT USING THE KLDCP COMMAND "CS2". DO NOT
ISSUE A CS2 C0MMAN6 UNLESS YOU HAVE THE MASTER OSCILLATOR.
THE NUMBER ENTERED BECOMES BITS 34 AND 35 OF A DI AG FUNCTION WRITE 72.
ANY SORT OF ERROR LEADS TO A PROMPT. A REPLY OF GIVES THE USER A CHANCE TO
CHANGE HIS MIND.
GMCN IS USED TC ';0L:CIT the CONTROLLER NUMBER FOR VARIOUS PUSPOSES.
IT WILL ACCEPT ANY VALl: :Of,ITR0LLER NUMBER (0-37 OCTAL). IF NO NUMBER IS GIVEN.
BUT THF VARI/dLE "TCON^' JS DEFINED AND VALID. THEN IT WILL USE THE VALUE OF TCON
AS THE NUMBcR. IF HON IS BAD mO THE TYPE ^ARAM IS NON-EXISTENT THEN
GMCN PROMPTS FOR A CONTnOLLER NUMBER.
PNTAPR IS
LOADED IN RO OR T
LITTLE SUBROUTINE WHICH PRINTS THE APR FLAGS.
TP POINTS TO THE RHE OF THE CONI APR WORD.
THE FLAGS ARE
DHKB6 KL10 HF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5
18770
J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 47
SEQ 0069
ROUTINE TO LOAD A SEQUENCE OF CRAM LOf IONS, WHERE THE CRAM DATA HAS
BEEN ASSEMBLED WITH THE "UMAC*^' I ^MAC" MACROS PASS THE ROUTINE TWO TRAILING
PARAMETERS?. FIRST POINTS TO THE CRAM BUFFER. SECOND TELLS HOW MANY RAM WORDS
TO LOAD.
JSR R5,0VRL0D
.WORD BU^F PNT ;POINTER TO CRAM BUFF
.WORD #WRDS : HOW MANY WORDS TO LOAD
*****************************************************************
18791 JAB — THE "JUMP TO AC BLOCK" INSTRUCTION
♦***♦***♦♦♦♦♦***«#****♦***************•*******♦•*♦***********•***
1879A THE JAB INSTRUCTION IS A SPECIAL INSTRUCTION WHICH IS CREATED BY THIS
DIAGNOSTIC BY LOADING A MICROCODE OVERLAY WHICH DEFINES THE INSTRUCTION. WE
ASSUME THE STANDARD DIAGNOSTIC MICROCODE (DIAGA/DIA6B) IS ALREADY LOADED.^IT IS
USEOBY MULTIPLE AC BLOCK PROGRAMS TO FACILITATE PROGRAM FLOW BETWEEN BLOCKS.
IT HAY ALSO BE EXECUTED FROM THE PDP-11 TO SET THE CURRENT I PREVIOUS AC BLOCK
NUMBERS AND THE PC. AN EXACT DESRIPTION FOLLOWS:
JAB AC,aY(X) ;0.E IS CALCULATED FROM aY(X) NORMALLY
TEMPC53:35J <— OLD PREVIOUS AC BLOCK NUMBER
TEMPC30:32J <— OLD CURRENT AC BLOCK NUMBER
TEMPC12:29: <— UPDATED PCC18:35J
TEMPCOOrin <— THE JAB OPCODE (lOA) LEFT JUSTIFIED
PREV AC BLK NO <— O.EC33:353
CURR AC BLK NO <— Q.E[30:323
PCC18:35] <- 0,EC12:29]
IF AC IS NONZERO THEN: AC <— TEMP
TEMP IS DEFINED AS SOME CPU REGISTER TRANSPARENT TO THE PROGRAM.
NOTE THAT WHEN A NONZERO AC IS GIVEN THE AC MODIFIED IS IN THE NEW ^^^
... .-_ ^^g j^^j AFTER
IS 0.
CURRENT AC BLOCK. IE THE BLOCK TO WHICH WE ARE GOING. NOTE THAT
THE INSTRUCTION IS DONE PCn8:233 WILL BE ZERO BECAUSE 0,EC12:17]
AN EXAMPLE OF A SIMPLE JUMP FOLLOWS
JAB 1345
;THE PC WILL BECOME 13, THE CURRENT BLOCK WILL
;BE 4, AND THE PREVIOUS BLOCK WILL BE 5. NO AC
;IN ANY AC BLOCK IS CHANGED.
AN EXAMPLE OF AN INTERBLOCK CALL:
JAB
JAB
2.1345 ;AS BEFORE EXCEPT THAT THE RETURN "ADDRESS"
;IS LOADED INTO AC 2 OF BLOCK 4 SO THAT
(2) .-WILL RETURN US TO THE INSTRUCTION FOLLOWING
; JAB 2,1345
NOTE THAT THE JAB (2) WILL RETURN TO THE CALLER. SINCE THE WORD
PLACED IN AC2 WAS A COMPLETE JAB INSTRUCTION IT IS SUFFICIENT MEARLY TO
FALL INTO AC2 TO RETURN.
MM*M*. ,
57
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 48
18931
18942
19000
SINCE 12 BITS ARE AVAILABLE FOR THE NEW 9i THIS INSTRUCTION
MAY BE USED WITH CAUTION TO JUMP TO ANY LOCATION FROM TO 7777. BE
CAREFULL TO PUT THE CORRECT ADDRESS INTO E, REMEMBERING THAT IT IS
OFFSET BY 6 BITS TO THE LEFT.
18898 JABS IS THE SUBROUTINE TO EXECUTE A JAB INSTR IN ORDER TO SET UP THE PC.
CURRENT ft PREVIOUS BLOCK NUMBERS WHENEVER NEEDED. SUCH AS BEFORE RUNNI% A
MULTIPLE AC BLOCK PROGRAM.
18915 LITTLE SUBROUTINE TO START A USER DEFINED FORMAT ERROR STACK ENTRY.
PUTS THE 'TTUSR" ON THE STACK AND THE PRINT ROUTINE ADR. WHICH IS THE TP.
RETURNS THF NEXT STK ADR IN R1 . RO NOT MODIFIED.
*****************************************************************
*• LITERALS PUT HERE **
*****************************************************************
*♦*♦♦***♦**♦***•***♦********♦*♦*•♦*******♦*****************♦*****
DHKBG TESTS-USING-CACHE EXTENSION FOR OVERLAY AREA
*****************************************************************
i8'« - ssss
s
sss
s
ssss
DUE TO PDP-n MEMORY CONSTRAINTS (IE NOT ENUF) THE TESTS WHICH USE CACHE
RESIDE IN THE OVERLAY AREA. SINCE THESE TESTS MUST BE ENABLED BY HAND (/CU OR
/QV cWlAND) THEY ARE NOT RUN DURING THE NORMAL "B" CMD SCRIPT AND WILL NOT BE
N COReTwHICH means they will not INTERFERE with the „?' COMMAND. IT IS
IMPORTANT TO NOTE THAT THIS CODE IS ASSEMBLED AS PART OF THE DIAGNOSTIC.^^
THEREFORE YOU MUST. REPEAT. MUST HAVE MATCHING VERSIONS OF DHKBG AND DHKBGX.
*♦*♦♦♦♦♦♦*♦**♦**♦♦*♦♦********************************************
MACROS ASSOCIATED WITH CACHE RESIDENT PROGRAMS
♦**»******»*********t ********************************************
19003 GENERATE A CALL TO A SUBROUTINE WHICH LOADS THE CACHE REFILL ALGORITHM
TO ACCESS ONLY ONE CACHE. ARG = CACHE.
19016 DPV1PG IS USED TO DEPOSIT AND VERIFY EXACTLY 1 KLIO PAGE. IT DIFFERS ■
FROM 'LOAD' IN THAT IT DOES 1 PAGE ONLY, ZERO FILLING IF NECES- SARY. AND DOES 2
VERIFIES? ONE AFTER EACH DEPOSIT AND ON^E MORE AFTER ALL DEPOSITS AR^ DONE.
SCATTER LOADING ISN'T SUPPORTED.
SEQ 0070
RRRR
EEEEE
AAA
DDDD
TTTTT
H H
mil
R R
E
A A
D D
T
H H
I
RRRR
EEE
AAAAA
D D
T
HHHHH
I
R R
E
A A
D D
T
H H
I
i R
EEEEE
A A
DDDD
T
H H
mil
J
58
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DECDOC VER 00.25 12-JUN-8A 13:14:13 PAGE 49
SEQ 0071
RRRR
EEEEE
AAA
DDDD
TTTTT
H H
mil
R R
E
A A
D D
T
H H
I
RRRR
EEE
AAAAA
D D
T
HHHHH
I
R R
E
A A
D D
T
H H
I
R R
EEEEE
A A
DDDD
T
H H
mil
*********************** t*****************************************
19027 MULTIPLE WORD MEMORY CYCLE TEST, OVERLAY RESIDENT CODE
************** ir**************«***********************************
19030 _____ 3333
S
SSS
S
SSSS
DURING THE NORMAL COURSE OF DIAGNOSING A KLIO WE DO NOT KNOW AT THIS
POINT WHETHER OR NOT THE CACHE EXISTS AND IF IT IS WORKING. THIS TEST IS,
THEREFORE NOT NORMALLY RUN AS IT REQUIRES THE CACHE. IF YOU BELIEVE THAT YOUR
CACHE IS FUNCTIONAL THEN YOU MAY ENABLE THIS TEST BY ISSUING THE /CU COMMAND TO
DIACON. IF THE CACHE IS NOT WORKING THEN THE RESULTS OF THIS TEST WILL BE
UNPREDICTABLE. USE WITH CAUTION.
SINCE THE CACHE IS ASSUMED TO BE WORKING IT IS USED TO HOLD THE PROGRAM
WHICH TESTS THE CONTROLLER'S MULTIPLE WORD CYCLE ABILITIES. ALL COMBINATIONS OF
DATA (-18 "word REQUESTS, AND (FOR READS ONLY) FIRST WORD NUMBERS ARE^ ^, ^^
TESTED. THE ASSUMPTION IS MADE THAT THERE IS NO INTER-BIT INTERFERENCE SO THAT
DATA PATTERNS OF -1 8 ARE SUFFICIENT. EACH GROUP OF EACH CONTROLLER IS TESTED
SO THAT THE MUX CHIPS AND THE CONTROL LOGIC MAY BE TESTED.
19105 MWTP IS THE 10-SIDE PROGRAM FOR THE MOS MULTIWORD READ/WRITE PROGRAM.
THIS CODE RESIDES IN THE 10 IN CACHE BANK WITH A STARTING ADDRESS OF 4000. ^
ITS PURPOSE IS TO TEST FULL SPEED MULTIWORD READ AND WRITE CYCLES WITH VARYING
DATA. FOR READS AND WRITES ALL COMBINATIONS OF RQ BITS AND OS/IS PATTERNS ARE
TRIED. THE OS/IS PATTERNS REFERED TO ARE WHOLE WORDS OF ALL OS OR ALL IS, THE
PATTERN PART OF IT COMING IN IN THAT THESE REQUESTS CAN HAVE UP TO 4 WORDS EACH
AND THEREFORE ALL THE ARRANGEMENTS OF OS/IS WORDS ARE TRIED FOR EACH RQ PATTERN.
ADDITIONALLY FOR READ CYCLES ALL POSSIBLE FIRST WORD NUMBERS ARE TRIED FOR EACH
RQ/DATA PATTERN.
THIS PROGRAM IS LOADED BY THE PDP-11, WHICH IS ALSO RESPONSIBLE FOR
INITIALIZING THE CONTROLLER, THE CACHE AND CACHE USE ALGORITHMS, AND SETTING UP
THE 2 PARAMETERS REQUIRED BY THIS PROGRAM (IN AC BLOCK 1> •c^^Sc^inr^^..^?.^^^^
FUNCTION WORD (WITH THE CONTROLLER NUMBER), AND AC1/ GETS THE TEST GROUP
ADDRESS (+20).
THE PROGRAM GOES THROUGH ALL THE CODE NECESSARY TO SET UP A SINGLE TEST.
THE RESULT OF ALL THIS WORK IS A PROGRAM LOADED IN AC BLOCK 0. THIS AC PROGRAM
CAN PROVIDE A FAST LOOP SHOULD THE CACHE RESIDENT PROGRAM DETECT AN ERROR.
AFTER AN ERROR IS DETECTED YOU NEED ONLY DO AN "SM <CR> ST1<CR>" TO GET THE FAST
LOOP GOING.
DHKE
PRM'
WORKING AC USAGE (BLOCK 1)
SBDIAG FO WORD LOADED HERE BY THE PDP-11 AND KEPT HERE.
ECHO FROM THE ABOVE ^ ^^^
EXPECTED VALUE OF THE ABOVE ECHO IS BUILT UP HERE.
SCRATCH
SCRATCH
)59
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 DECDOC VER 00.25 12-JUN-84 13:U:13 PAGE 50
ACS FIRST REQUEST BIT POINTER < 1000-0001)^^^ ,^"
AC6 DATA WORD PATTERN (1111 => ALL WORDS ARE 1S),^ ^ ,^
AC7 REQUEST (RQ) PATTERN (1111 => ALL WORDS. BIT35=RQ3)
AC10 1ST WORD NUMBER
AC11 RD/WR FLAG: -1=RD, 0=WR
AC12 WORD ACTUAL VALUE OR SCRATCH
AC13 WORD 1 ACTUAL VALUE OR SCRATCH
ACK WORD 2 ACTUAL VALUE OR SCRATCH
AC15 WORD 3 ACTUAL VALUE OR SCRATCH ^ ,^ ^ ^^^
AC16 ERROR FLAGS: 7700=APR. 20=SBDIAG FO, 10=WORD 0. ETC.
AC17 GROUP BASE ADDRESS (+^0) LOADED HERE BY PDP-11 AND KEPT HERE
AGAIN PLEASE NOTE THAT THESE ARE THE ACTIVE CONTROL ACS AND ARE IN BLOCK 1.
BLOCK IS WHERE THE FAST LOOP AC PROGRAM IS PUT BY THE CACHE RESIDENT PROGRAM.
*****************************************************************
19338 SUBROUTINES
»*********♦♦*♦♦****•***************'■*****************************
193A2 CRRONE - ROUTINE TO LOAD A CACHE USE ALGORITHM TO ACCESS ONLY ONE CACHE.
19371 SUBROUTINE DPVlPG IS USED TO DEPOSIT EXACTLY 1 PAGE IN THE KLIO. THE
PARAM LIST CONTAINS THE 10 8 11 ADDRESSES, AND THE NUMBER OF WORDS TO BE USED
THE SUBROUTINE ZERO FILLS TO MAKE A WHOLE PAGE. THIS SUB- ROUTINE WAS WRITTEN
TO BE USED WITH THE LOCKED CACHE PAGE SCHEME OF RUNNING PROGRAMS, BUT CAN BE
USED ANYWHERE LOADING 1 PAGE IS DESIRED.
*****************************************************************
19A39 PDP-11 PROGRAM PATCHER
*****************************************************************
*****************************************************************
19497 END OF TESTS-USING-CACHE OVERLAY
♦************»******»*********»***************«t *****************
SEQ 0072
DHK
PRH
L_
060
DHKBG
PRM11
KL10
.P11
HF20 DIAGNOSTIC. PART
07-MAR-77 15:A6
2 OF 2, VER 0.5 J.A.BARRY 29857
TABLE OF CONTENTS
MACY11 306(1063) 12-JUN-84 13:03
SEQ 0073
DHI
PRI
A6
577
831
1388
1396
223A
2609
2716
3137
3382
3590
3874
4180
4259
4412
5389
5524
5619
5677
6025
6061
6112
6187
6780
7290
7359
7505
7539
7816
7902
7991
8035
8088
8142
8176
8403
8456
\%l
JIO
J99
)50
9422
9532
9607
9652
9744
9978
♦PRMll* DECSYSTEMIO PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 7-nAR'77
DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 27-HAY-76
KLIO EBOX MACRO DEFINITIONS, 27-MAY-76 _ ^, ^_ ,^
KU11 DEVICE REGISTERS AND BIT DEFINITIONS, 27-MAY-76
MM11 DEVICE REGISTERS AND BIT ASSIGNMENTS, 27-MAY-76
HOSMAC — THE MOS DIAGNOSTIC MACRO LIBRARY
LOOP CONTROL MACROS
GENERAL PURPOSE MACROS
SIMPLE CALLER TYPE MACROS ,.„„,«»
MF20 PROTOTYPE TIMING MACROS (DERIVED FROM M0STIM.P11)
MEMORY BOOT SUBROUTINE CALLER MACROS^
♦DIACON* DIAGNOSTIC MACROS 15-JUL-77
*DIACON* DIAGNOSTIC EXECUTIVE 4-FEB-77
DIACON COMMANDS
EXEC
STANDARD ERROR DATA STACKING SUBROUTINES
SCOPE SYNC SUBROUTINES 6-APR-78
ERROR REPORTER 15-JUL-77
FORMAT TABLES
REPORT HEADING PRINTER
ERROR STACK SCANNER
JUMP TABLE
MAIN REPORT ROUTINES
REPORT SUBROUTINES „ ,, ^_ „
SLOT-TO-flOARD# CONVERSION TABLE £ DATA 14-MAR-77
BOARD CALLOUT PRINT ROUTINE
REPORT VARIABLES AND CONSTANTS
/CMD HANDLING CODE COMMON TO DHKBF /DHKBG
VARIABLES, CONSTANTS, I DEFINITIONS COMMON TO DHKBF /DHKBG
"TFSTfO." ONE-TIME INIT COMMON TO DHKBF/DHK66
Tt;T*l. MASTER OSC TEST FIRST. COMMON TO DHKBF AND DHKBG.
TEST#2. CONTROLLER CONFIGURATION TEST. COMMON TO DHKBF l DHKBG.
DHKBF/DHKBG DIAGNOSTIC CONTROL SUBROUTINES. COMMON INIT FIRST.
CONTROLLER SELECT LOOP CODE
CONTROLLER INITIALIZATION CODE
DHKBG TEST DISPATCH TABLES, INI TAB ft TESTAB
/CMD CODE PECULIAR TO DHKBG
TESTES. STORAGE ARRAY BOARD PROM DATA TEST.
TEST#4. GROUP LOOPBACK GROUP SELECT TEST.
TEST#5. GROUP LOOPBACK DATA PATH TEST
TEST#6. READ ERROR CORRECTION ft FLAG TEST USING GROUP LOOPBACK
TEST#7. FULL SPEED REFRESH VERIFICATION TEST
TEST#8 ft TEST#9 INITIALIZATION.
TEST#8,, NON-ADDRESS CONTROL SIGNALS GENERATION TEST.
TEST#9. NON-ADDRESS CONTROL SIGNALS PROPAGATION TEST.
TESTfiO. GROUP. BLOCK, SUB8L0CK UNIQUENESS TEST
TESTfll. MOS ADDRESS GENERATION TEST
TEST#12. MOS ADDRESS PROPAGATION TEST
TEST#13. DATA PATH TO RAM TEST
TEST*14. SYN BOARD SPARE-BIT-IN TEST USING RAM
TEST#15. READ ERROR CORRECTION ft FLAG TEST USING MEMORY
TEST#16. FULL SPEED READ-PAUSE-WRITE TEST
TEST#18. PAGE REFILL CYCLE ft DATA TEST.
TESTf19. DOUBLE BIT ERROR SCAN ft FIX TEST
TEST#20. MULTI-WORD CYC TEST, PERMANENTLY RESIDENT CODE.
SUBROUTINES PECULIAR TO DHKBG
..^„
OHKBG KL10 W20 DIAGNOSTIC. PART 2
HBSUB.P11 27-APR-84 12:11
OF 2, VER 0.5 J.A.BARRY 29857
T^LE OF CONTENTS
MACYll 306(1063) 12-JUN-84 13:03
SEQ 0074
DH
PR
12298
12A63
1527
13985
U073
U13A
U16A
U502
15089
15135
15927
16110
161 5A
16AA2
1666A
16770
16897
17366
17A56
17778
18069
18213
18791
18931
189A2
19000
19027
19338
19A39
19497
SUBROUTINES TO MOVE DATA TO UNUSED MF20 BITSUB LOCS
INITIALIZE ALL HEHORY BOOT DATA AREAS
HEMORY BOOT DATA AREA
MEMORY CONTROLLER TYPE FORMAT CHECK__^ ^, ^^^^
determine controller presense ft function 01 data
read mos prom data for a controller
digest prom data for a mos controller
load a mos controller's fixed value rams
load a mos controller's timing rams
load ft start refresh for a mos controller
make sure timing files are loaded for a mos controller
mos ram double bit error scan ft fix subroutines
subroutine to do default init of mf20 bitsub ram
configure a mos block to end of 256k address space
report what controller data we have to now
subroutines used from all over
sbus diag subroutines
mos controller error data dumper code
compare routines
miscellaneous support subroutines
command parser for / type cmds to diagnostic
routine to change the current ac block
program run control routines
new ac load routines
reset subroutines
register save ft restore routines
jab — the "jump to ac block" instruction
•• literals put here *•
dhkb6 tests-using-cache extension for overlay area
macros associated with cache resident programs
Multiple word memory cycle test, overlay resident code
subroutines
PDP-11 program patcher
END OF TESTS-USING-CACHE OVERLAY
i ^f i ^ i mViT I '" T i l - -1 - - T"'" 'r*' I •* "' r ii l i^Hifc
L_
0062
OHKBG KL10 HF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5
DHKBGT.P11 2A-«AY-84 09:09
J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 1
"1 r
SEQ 0075
Dl
PI
000001
000000
000005
000001
000001
000001
000001
000001
)0001
)0001
)0001
)C001
)0001
)0001
)0001
)00001
3000A
)52242
)00001
;uJ256
)00104
)Q0001
500001
003000
.NLIST CND.BEX
[tItlE DHKBG' KLIO «F20 DIAGNOSTIC. PART 2 OF 2. VER 0.5
J.A.BARRY 29857
DHKBG=1
;SAY THAT UE ARE ASSEMBLING DHKBG
$VER=0. .-MINOR VERSION NUMBER
SREV=5. .MAJOR VERSION NUMBER
$DEBUG=1
0TEASB=1
DTEDEF=1
KUASB=1
. DIACON
iMB0X=1
$0PSEL=1
$DTE=1
$UDFMT=1
DHNAME=1
ISAME=1
N016R=1
SNOSC0=1
$N0MRQ=1
$DFTBP=4
DEXWDS=.DAT3
.•ASSEMBLE DIAGNOSTIC'S DEBUG CODE
ASSEMBLE DTE20 DEFS
ASSEMBLE CLOCK PARAMETERS
ASSEMBLY CONTROL FLAGS
FORCES ASSEMBLY OF MBOX ERROR STUFF
;ALLOW "/COMMANDS" FOR USE BY DIAGNOSTIC
;DON'T SUPPORT FUNCTION BREAKPOINTS
; ALLOW USER DEFINED FORMAT ERROR REPORTING
FORCES MODEL B VERSION ASSEMBLY IN DIACON
USE SAME ISOLATION NAMES FOR MODEL A/B
DONT ASMBL DIACON'S 16 BIT ERROR REPORT CODE
DONT ASMBL DIACON'S SCANOUT ERR RPT CODE
DONT ASMBL DIACON'S MEM REQ ERR RPT CODE
;DEFAULT BACKPLANE IS 4 (CPU)
. MOSSUB t
iENTHA=1
PXCT=XCT
JAa=10A
$JAB=1
$SBSRL=1
MBSUB ASSEMBLY CONTROL FLAGS
;ENABLE TRAP HANDLER ASSEMBLY
;PXCT INSTR IS XCT INSTR WITH NON-ZERO AC FIELD
JAB (JUMP TO AC BLOCK) INSTRUCTION OPCODE
.ENABLE ASSEMBLY OF JAB SUPPORT CODE
;PREVENTS P FLAGS (PHASE ERRORS) IN ASSEMBLY
; GENERAL ASSEMBLY CONTROL
.ENABL AO:>.AMA
.=3000
... .. .,.„....^ -| ^
L
n
0063
DHKBG
PRNlT.PIl
KL10 «F20 DIA6N0
07-«AR-77 1
S^
jTIC. PART 2 OF 2
1:46
...r^ V . ..^.v— -w'. 12-JUM-84 13:03
*hm^* DECSYSTEMTO PDP-11 program/ subroutine parameters. 7-«AR-77
VER 0.5 J.A.BARRY 29857 NACY11 306(1063)
PAGE 2
■^1 r
SEQ 0076
D
P
100000
OAOOOO
020000
010000
004000
002000
001000
000400
000200
000100
000040
000020
00C010
000004
000002
000001
.SBTTL •PRM11* DECSYSTEM10 PDP-11 PROGRAM/ SUBROUTINE PARAMETERS. 7-MAR-77
.-♦PROGRAM CONTROL SWITCHES
ABORT = 100000
RSTART= 40000
TOTAL S= 20000
NOPNT= 10000
PNTLPT= 4000
DING= 2000
L00PER= 1000
ERST0P= 400
PALERS= 200
RELIAB= 100
TXTINH= 40
INHPAG= 20
MODDVC= 10
INHCSH= 4
DPRSEL= 2
CHAINS 1
ABORT AT PROGRAM PASS COMPLETION
RESTART TEST
PRINT TEST TOTALS
INHIBIT ALL PRINT OUT (EXCEPT FORCED)
PRINT ON LINE-PRINTER
RING TTY BELL ON ERROR
LOOP ON ERROR
HALT ON ERROR
PRINT ALL ERRORS
RELIABILITY RUN MODE
TEXT INHIBIT
INHIBIT PAGING
MODIFY DEVICE CODE
INHIBIT CACHE
OPERATOR SELECTION
CHAIN CONTROL SWITCH
{
r
OHKBG KL10 WF20 DIAGNOSTIC. PART 2
PRHII.PII 07-HAR-77 15:46
72
73
7A
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
104000
104001
104002
104003
104226
104004
104224
104225
104005
104254
104144
104006
104007
104010
104200
104011
104012
104013
104014
104015
104016
104017
iu-020
104021
104022
104023
104201
104217
OF 2, VER 0.5 J.A.BARRY 29857 HACY11 306(1063) 12-jyN-84 13:03 PAGE 3
t^RMII* DECSYSTEH10 PDP-11 PROGRAM/ SUBROUTINE PARAMETERS, 7-MAR-77
.-•OPERATOR DEFINITION - SUBROUTINE CALLS (EMTS)
r
SEO 0077
FATAL= EMTIO
ERRHLT= EMTll
PRGHLT= EMT!2
RUNLP= EMT;3
DFLE6AL=EMT!226
FATAL PROGRAMMING ERROR.
PROGRAM HALT. ONLY IF "ERSTOP" SWITCH SET
PROGRAM HALT, DON'T CHECK SWITCH
CONSOLE IDLE RUN LOOP
DIAGNOSTIC FUNCTION LEGALITY CHECK
.-•TELETYPE INPUT SUBROUTINE CALLS (EMTS)
; *** CALL SEQUENCE **•
. 7j
; RETURN. C BIT SET FOR NO/ERROR RESPONSE
TTILIN=
TTILNU=
TTICCL=
TTICHR=
TTCCHR=
TTBACK=
TTLOOK=
TTIOCT=
TTCOCT=
TTOCTE=
TT1DEC=
TTiyES=
TTALTM=
TTI36=
TTIBRK=
TTISDL=
TTISDO=
TTIS36=
TTICRA=
TTITRM=
TTBTRM=
TTER«=
TTPINI=
EMTl
4
EMT.
224
EMT.
225
EMT
5
EMT
254
EMT
144
EMT
^
EMT
EMT
10
EMT
200
EMT
11
EMT
12
EMT
13
EMT
14
EMT
'15
EMT
!16
EMT
117
EMT
!20
EMT
!21
EMT
J 22
EMT
123
EMT
'eOl
EMT
1217
READ TTY LINE INPUT INTO BUFFER
READ TTY LINE INPUT. WAIT FOREVER
PROCESS TTY INPUT FROM INDIRECT CCL BUFFER
INPUT A CHARACTER FROM BUFFER
INPUT CHAR. ABORT IF NON-AVAIL
BACKUP INPUT POINTER
LOOK FOR A TTY INPUT
INPUT AN OCTAL NUMBER FROM BUFFER
INPUT I CHECK OCTAL. RTN IF OK
INPUT EVEN OCTAL NtMBER
INPUT A DECIMAL NUMBER FROM BUFFER
ASK YES-NO. N BIT ON NO, C BIT SET ON ERROR
ALT-MODE CHECK. C BIT SET IF NON-ALT-MODt
READ 36 DIGIT NUMBER FROM BUFFER
GET NUMBER INPUT BREAK CHARACTER
SPACE DELETE. C BIT SET ON NON-NUMBER
SPACE DELETE ( OCTAL INPUT. RTN IF OK
SPACE DELETE i 36BIT INPUT. RTN IF OK
INPUT C-RAM ADDRESS
CHECK INPUT TERMINATOR. RTN IF OK
BACKUP. THEN "
NUMBER TERMINATION CHECK. C BIT SET IF ERROR
INITIALIZE INPUT t OUTPUT BUFFER POINTERS
DHKBG KL10 HF20 DIAGNOSTIC, PART 2 OF
PRMII.PII 07-MAR-77 15:46
109
110
111
112
113
1U 10402A
115 10A025
116 104026
117 104027
118 104214
119 104030
120 104031
121 104032
122 104033
123 104034
124 104227
125 104035
126 104036
127 104037
128 104040
129 104041
130 104041
131 104042
132 104134
133 104137
134 104043
135 104044
136 104045
137 104046
138 104047
139
140 104151
141 104152
142 104153
143 104154
144
145 104177
146
147 104215
2, VER 0.5 J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03
t^RMIl* DFCSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 7-MAR-77
;*TELETYPE OUTPUT SUBROUTINE CALLS (EMTS)
; *** CALL SEQUENCE ***
; 110V ARG,RO ;IF CALL REQUIRES AN ARGUMENT
. p
PAGE 4
SEQ 0078
PNTAL=
$PHSG=
$PMSGR=
PNTCHR=
PNTCI=
PNTNBR=
PCRLF=
PSPACE=
PSLASH=
PCOMMA=
PTAB=
PNTOCT=
PNTOCS=
PNTDEC=
PNT18=
PNT23=
PNT22=
PNT36=
PNT36B=
PNTADR=
PFORCE=
PNORML=
PBELL=
PNTODC=
PNTODT=
PRINTT= EMT
PTTY= EMT
PLPT= EMT
PLDBUF= EMT
EMT!
l^ ;
EMT!
25 ;
EMT!
26 ;
EMT!
27 ;
EMT.
214 ;
EMT.
30 ;
EMT.
31 ;
EMT.
i2 ;
EMT
33 ;
EMT
34 ;
EMT
227 ;
EMT
35 ;
EMT
36 ;
EMT
37 ;
EMT
40 ;
EMT
41 ;
EMT
41 ;
EMT
42 ;
EMT
'134 ;
EMT
!137 ;
EMT
!43 ;
EMT
!44 ;
EMT
!45 ;
EMT
!46 ;
EMT
!47 ;
PRINT ASCII LINE. ADDRESS IN RO
PRINT MESSAGE, TRAILING PARAMETER
PRINT MESSAGE, CONDITIONAL ON "RPTFLG"
PRINT ASCII CHARACTER IN RO
PRINT CHAR IMMEDIATE, TRAILING CHARS
PRINT NUMBER
PRINT CR-LF
PRINT
PRINT
PRINT
PRINT
A SPACE
A SLASH
A COMMA
A TAB
PRINT OCTAL NUMBER IN RO
PRINT OCTAL IN RO, SUPPRESS LEADING ZEROS
PRINT DECIMAL NUMBER IN RO
PMNT LOWER 18 OF 36 BIT NUMBER
PRINT LOWER 23 BITS OF 36 BIT NUMBER
■• OLD PNT23 " ^
PRINT 36 BIT NUMBER, ADDRESS IN RO
PRINT 36 BIT NUMBER IN BINARY
PRINT PDP-IO ADDRESS
SET FORCED PRINTOUT FLAG
CLEAR FORCED PRINTOUT FLAG
DING THE TTY BELL
PRINT SPECIFIED OCTAL DIGITS
PRINT SPECIFIED DIGITS, TRAILING PARAMETER
151 .-PRINT, TTY OUTPUT
152 .-PRINT, TTY DRIVER
153 .-PRINT, LPT DRIVER
154 .-PRINT, LOAD BUFFER
PNTBAK= EMT! 177 .-PRINT, BACKUP OUTPUT INSERTION POINTER
PNTRSTs EMT!215 .-PRINT, OUTPUT POINTERS RESET
DHKBG KL10 nF20 DIAGN
PRM11.P11
07-MAR-77
H9
150
151
104050
152
\m
153
15A
104054
155
104146
156
104055
157
104072
158
104056
159
104057
160
104060
161
104061
162
104062
163
104063
16A
104255
165
166
167
168
104206
169
104207
170
104210
171
104155
172
104165
173
104156
17A
104157
175
104166
176
104160
177
104211
178
104212
179
1U':213
180
104161
181
104205
104167
182
183
104170
]n
' 1
4171
' 1
4172
186
' 1
4162
187
' 1
4173
188
4174
189
4175
190
4237
04163
191
192
14164
193
14230
19A
423
1
195
42 ''
2
196
■423
3
197
3423
4
198
j42^
5
199
3423
6
200
3425
201
04?!
1
NOSTIC. PART 2 OF
15:46
2. VER 0.5 J.A.BARRY 29857
*^RM11* DECSYSTEmO PDP-11 '
PROG
HACY11 306(1063) 12-JUN-84 13:03
RAM/SUBROUTINE PARAMETERS, 7-MAR-77
PAGE 5
SEC 0079
.-♦MISCELLANEOUS FUNCTION SUBROUTINE CALLS (EMTS)
REGSAV=
RE6RST=
SHIFTR=
SHIFTL=
PR0L36=
SETFLG=
HULTPY=
TDELAY=
SUITCH=
SUTSAM=
EOP=
ERREOP=
EOPSET=
ITRCNT=
EMTI50
EMTI51
EMT153
EMTI54
EMT!146
EMTI55
EMT! 72
EMTI56
EMT! 57
EMT! 60
EMT i 61
EMT! 62
EMT! 63
EMT! 255
;SAVE RO THRU R5
.•RESTORE RO THRU R5 „.„„..,
.•SHIFT RO RIGHT. TRAILING PARAMETER
.•SHIFT RO LEFT, TRAILING PARAMETER
.•ROTATE LEFT 36 BITS
.•SET -1 TO FLAG. TRAILING PARAMETER
.•MULTIPLY
.•SMALL DELAY
;READ THE SWITCH REGISTER, RETURNED IN RO
.•RETURN PRESENT STORED SWITCHES IN RO
;END OF PASS ROUTINE. RETURNS IF NOT COMPLETED
; ERROR END OF PASS
.•SET END OF PASS PRINTOUT INTERVAL
;GET PASS ITERATION COUNT
.-♦DEVICE ROUTINE SUBROUTINE CALLS (EMTS)
NAMEXT=
DTAFILE=
RPFILE=
R50UPK=
ASCR50=
DTINIT=
RPINIT=
RPL0AD=
DVDATA=
DTRDFL=
DTWTFL=
DTBASE=
DTREAD=
OTWRT=
RPFIND=
RPLKUP=
RPRDFL=
RPWRFL=
RPREAD=
RPWRIT=
RPADDR=
RPBASE=
RPERROR=
DVFRAM=
DVWRD=
RXFILE=
RXINIT=
RXRDFL=
RXWTFL=
RXBASE=
RXREAD=
RXWRT=
DIRCMP=
DIRPNT=
EMT! 206
EMT! 207
EMT!210
EMT! 155
EMT! 165
EMT! 156
EMT! 157
EMT
EMT
EMT
EMT
EMT
EMT
EMT
EMT
EMT
166
160
!211
!212
!213
!161
!205
!167
!170
EMT! 171
EMT! 172
EMT! 162
EMT! 173
EMT! 174
EMT! 175
:EMT!237
EMT
EMT
EMT!
EMT!
EMT!
EMT!
EMT!
EMT!
EMT!
EMT!
EMT!
163
164
51
FILE NAME. EXT PROCESS
DECTAPE FILE SELECTION
RP04 FILE SELECTION
RAD50 TO ASCII UNPACK
ASCII TO RAD50 CONVERSION
DECTAPE INITIALIZATION
RP04 INITIALIZATION
RP04 LOAD PACK
DEVICE DATA BLOCK READ
DECTAPE READ FILE
DECTAPE WRITE FILE
RETURN DECTAPE PARAMETER BASE ADDRESS
DECTAPE READ
DECTAPE WRITE
RP04 FIND FILE
RP54 file directory LOOKUP
RPQ4 READ FILE
RPQ4 WRITE FILE
RPQ4 READ
Rp64 WRITE
RP04 ADDRESS CALCULATION
RETURN RP04 PARAMETER BLOCK BASE ADDRESS
RP04 ERROR REPORTER
DEVICE DATA FRAME READ
DEVICE WORD READ
RXll/RXOl FLOPPY FILE SELECTION
FLOPPY INITIALIZATION
FLOPPY READ FILE
FLOPPY WRITE FILE
FLOPPY PARAMETER BLOCK BASE ADDRESS
FLOPPY READ
FLOPPY WRITE
DIRECTORY ENTRY COMPARE
DIRECTORY ENTRY PRINT
~1
DHKBG KL10
PRM11.P11
203
20A
205
207
208
209
210
211
212
213
2U
215
216
217
218
219
>20
21
22
i23
224
225
28
129
230
231
232
133
234
235
236
237
238
239
240
241
>44
>45
?50
WF20 DIAGNOSTIC,
07-MAR-77 15:46
104220
104221
104222
104223
104064
104065
104066
104067
104070
104071
104073
104074
104075
104203
104204
104076
104145
104077
104176
104100
lU'rIOl
104102
104147
104135
104105
104106
•107
104052
104113
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) _^^
t^RMII* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS.
.••COMMUNICATION ROUTINE SUBROUTINE CALLS (EMTS)
12-JUN-84 13:03 PAGE 6
7-MAR-77
SEQ 0080
C0nCMD=
COHRTRY^
COMENQ=
C0«E0T=
CGMLIN-
COnSND=
COnACK=
COMNAK=
COHCLR=
COHCTL=
EMTI220 .-COMMUNICATIONS COMMAND
:EMT!221 ; COMMUNICATIONS COMMAND RETRY
EMT1222 ; COMMUNICATIONS ENQUIRY
EMTI223 .-COMMUNICATIONS END OF TRANSMISSION
EMT164 .-COMMUNICATIONS LINE INPUT
EMT!65 .-COMMUNICATIONS LINE OUTPUT
EMT!66 .-COMMUNICATIONS ACKNOWLEDGE
EMT!67 .-COMMUNICATIONS NEGATIVE ACKNOWLEDGE
EMTI70 .-COMMUNICATIONS CLEAR
EMTI71 .-COMMUNICATIONS CONTROL SEQUENCE
;*KL10 ROUTINE SUBROUTINE CALLS (EMTS)
WCRAM= EMT173 .-WRITE IN TO C-RAM
RCRAM= EMTI74 .-READ THE C-RAM
WWADR= EMTI75 .-WRITE C-RAM ADDRESS
MICNUL= EMT!203 .-C-RAM FILL WITH OS
HICFIL= EMT!204 ;C-RAM FILL WITH I'S
HRESET= EMTI76 .-MASTER RESET
TENSW= EMT1145 ;PDP-10 SWITCHES
TENSP= EMT! 77 .-TURN OFF TEN RUNNING
TENCHR= EMT! 176 .-PDP-10 LAST TYPED CHARACTER
SM= EMT! 100 .-START MACHINE
EXCT= EMT! 101 .-EXECUTE PDP10 INSTR. REQUIRES SM
L0DAR= EMT! 102 .-SPECIAL AR LOAD FOR EXCT AND MBOX
SETMPH= EMT! 147 .-SET M-BOX PHASE
ECLOK= EMT! 135 ;E BOX CLOCK
TEST
EXAM=
EXAMT=
0POS=
0POST=
0POSVR=
OPQSVT=
D1QM0N::
D102R0'
EMT! 103
EMT! 104
EMT! 105
EMT! 106
EMT 11 07
EMI; 110
EMT! Ill
EMT! 112
.-EXAMINE
.-EXAMINE
.-DEPOSIT
.-DEPOSIT
.lEPOSIT
.»;EPOSIT
.-DEPOSIT
10 MEMORY
10 MEMORY. TRAILING PARAMETERS
INTO 10 MEMORY
INTO 10 MEMORY. TRAILING PARAMETERS
km VERIFY 10 MEMORY
AND VERIFY 10 MEMORY. TRAILING PARAMETERS
-1 INTO 10 FLAG WORD
.-PDP-10 MEMORY ZERO
CMPR36= EMT! 52 .-COMPARE 5 BYTE 36-BIT WORD
DTEBAS= EMT! 113 .-RETURN DTE20 BASE ADDRESS
OHKBG KL10 nF20 DIAGNOSTIC,
PRNII.PII 07-MAR-77 15:46
252 1041U
253 10A115
255 104116
256 104140
257 104117
258
259 1041 <!0
260 104141
261 104121
262
263 104122
264
265 104123
104124
104125
104150
104126
104127
104130
104202
104131
104132
104142
1uU3
104133
104216
104252
104253
104240
104241
]43
^44
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 305(1063) 12-jyN-84 13:03
*^rSi1» DECSYSTEM10 PDP-11 PROGRAM/ SUBROU TINE PARAMETERS. 7-HAR-77
DFXCT= EMTI114 .-DIAGNOSTIC FtJNCTION EXECUTE
DFXCTT= EMTI115 ;DF EXECUTE. TRAILING PARAMETER
PAGE 7
SEQ 0081
PRH1
EMT!116 .-DIAGNOSTIC FUNCTION READ
EMTI140 ;DF READ,
DFRD= w ,
DFRDT= EMTI145 ;DF READ. TRAILING PARAMETER
DFRDMV= EMT:117 .-DIAGNOSTIC FUNCTION READ i HOVE
DFWRT= EMT1120 .-DIAGNOSTIC FUNCTION WRITE
DFWRTTr EMT!141 ;DF WRITE, TRAILING PARAMETERS
DFWIR= EMTI121 .-DIAGNOSTIC FUNCTION WRITE IR
DFSCLK= EMTI122 .-DIAGNOSTIC FUNCTION. SINGLE STEP CLOCK
DFPC= EMTI123 .-DIAGNOSTIC FUNCTION READ PC
DFVMA= EMTI124 ;DIAGf 3STIC FUNCTION READ VMA
DFADB= EMT!125 .-DIAGNOSTIC FUNCTION READ ADDRESS BREAK
DFVMAH= EMTI150 ;DIAGNOSTIC FUNCTION READ VMA HELD
EMT!i26 .-READ D-RAM
WDRAM= EMT.'1 27 .-WRITE D-RAM
RDRAM=
EMT!127
DRAMAD= EMTI130 .-SELECT D-RAM ADDRESS
CLKPRM= EMT1202 .-RETURN ADDRESS OF "CLKDFL" WORD
BURST= EMT1131 .-BURST H-BOX CLOCK
PNTCPU= EMTI132 .-PRINT CPU. C-RAM t REGISTERS
PNTCRM= EMTI142 .-PRINT C-RAM. LOGICAL FIELD FORMAT
PNTDRM= EMT!143 .-PRINT D-RAM. LOGICAL FIELD FORMAT
PRGCMD= EMTI133 .PROGRAM COMMAND
PRGNPT= EMT1216 .-PROGRAM COMMAND. NO PRINT
PRGSEL- EMTI252 .-PROGRAM FILE SELECTION
PR6RD8= EMTI253 .-PROGRAM FILE 8 BIT READ
;*FILES-11 SUBROUTINE CALLS (EMTS)
F11L0AD=EMT!,
fiiread=emt:
F11IDR= EMT!,
F11FRD= EMT!,
F11FIND=EMT!u ,
RPFA0R= EMT 1 24?
DVBPNTs EM7!f36
.-FILES-11 LOAD
;FILES-11 READ
.-FILES-11 READ HEADER
;FJLES-11 FILE READ
; FILES-11
;RP04 FIL- . ,
.-ITESTX FlLES-lT
VIA ID#
FILE FIND
FILES-11 LOGICAL
BLOCK #
DEVICE BUFFER
TO CYL/SURF/SECT
PRINT
WMtiwiia» < «i w ii»itp> " " »w*. *!Wi » lMi»ii'
DHKBG KL10
PRmi.PlI
^
nF20 DIAGNOSTIC,
07-MAR-77 15:46
060366
PART 2 OF
2, VER
tpRHII*
;*BASIC
.MACRO
0.5 J.A.BARRY 29857 «ACY11 306(1063) 12-JUN-84
DECSYSTENIO PDP-11 PROGRAM/ SUBROUTINE PARAMETERS,
13:03
7-MAR-77
PAGE 8
SEQ 0082
MACROS
$»CLIT=$$LITT
.LITERAL STORAGE ASSIGNMENT
.ENDM
PMSG SARG
SPMSG,S$CLiT
.NLIST SRC
$SCLC=.
.=$$CLIT
.ASCIZ XSARGX
$$CLIT=.
.=$$CLC
.LIST SRC
.MACRO
PMSGR
SARG
$PMSGR,S$CLIT
.NLIST SRC
$$CLC=.
.s$$CLIT
.ASCIZ X$AR6X
$$CLIT=.
.=$$CLC
.LIST SRC
.ENDM
.MACRO
PNTMSG
SARG
MOV
#SSCLIT,RO
PNTAL
.NLIST SRC
.=SSCLiT
.ASCIZ XSARGX
.EVEN
SSCLIT=.
.=SSCLC
.LIST SRC
.ENDM
.MACRO
EXIT
JMP
SEXIT
.ENDM
.MACRO
EXITSKP
JMP
SEXITS
.ENDM
.MACRO
EXITERR
JMP
SEXITE
.ENDM
DHKBG KL10 nF20 DIAGNOSTIC.
PRmi.PII 07-WAR-77 15:46
PART 2 OF 2- VER 0.5 J.A.BARRY 29857 MACYll 306(1063) 12-jyN-84 13:03 PAGE 9
KAKi ^ ur $^pJ^5»"5|(;SYStEMT0 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 7-MAR-77
SEQ 0083
.MACRO PUSH A
.NLIST SRC
IRP B <A>
MOV b!-(SP) ;PUSH B ON STACK
.ENDR
.LIST SRC
.ENDM
.MACRO
.ENDM
.MACRO
POP A
.NLIST SRC
IRP 6 <A>
MOV (SP)+.B ;POP STACK INTO B
.ENDR
.LIST SRC
.ENDM
.MACRO
.ENDM
MULT SOURCE. REG
PUSH SOURCE
PUSH REG
MULTPY
POP REG
.NTYPE X.REG
.IF EQ.XftI
.IFT
POP REG+1
.IFF
TST (SP)*
.ENDC
.LIT $LTAG LARG
$$CLC=.
.=$$CLIT
.EVEN
$LTAG=.
.IIF B.<$LARG>.0
.IF NB.<$LARG>
$LARG
.ENDC
.EVEN
i$CLIT=.
.=$$CLC
:REG GETS LO-ORDER 16 BITS
:REG^1 GET HI-ORDER IF REG EVEN «
DHKB(
PRMV
8(
8(
8:
8i
8:
8:
8:
8
8
8
8
8
a
81
8J
a
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
'1
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF
PRMIl.PII 07-HAR-77 15:46
392
393
39A
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432 '
433
434
435
436
437
2, VER 0.5 J.A.BARRY 29857 MACYll 306(1063) 12-jyN-84 13:03 PAGE 10
*^rSi1* DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 7-MAR-77
SEQ 0084
MACRO
SL
REG.NUM
.NLIST
SRC
.IF
GT,NUM-7
.IFT
SUAB
REG
.REPT
NUM-*D8
ASL
REG
.ENDR
.IFF
.REPT
NUM
ASL
REG
.ENDR
.ENDC
.LIST
SRC
ENDM
MACRO
SR
REG,NUM
.NLIST
SRC
.IF
GT,NUM-7
.IFT
SUAB
REG
.REPT
NUM-*D8
ASR
REG
.ENDR
.IFF
.REPT
NUM
ASR
REG
.ENDR
.ENDC
.LIST
SRC
.ENDM
.MACRO
EXOR
REG,DESTIN,SCRTCH
.If
NB.SCRTCM
.IFT
MOV
REG.SCRTCH
BIC
DEStiN,
SCRTCH
BIC
REG.DESTIN
BIS
SCRTCH.
.Iff
DESTIN
MOV
REG.-(SP)
BIC
OESflN.
(SP)
BIC
REG.DESTIN
BIS
(SP)*. DESTIN
.ENDC
.ENDM
DHKBG
PRH11.P11
A39
4A1
442
443
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
483
Ap
486
487
488
489
490
491
KL10 MF20 DIAGNOSTIC, PART 2 OF
07-MAR-77 15:46
2^ VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12;jyN-84 13:03 PAGE 11
*^RM11* DECSYSTEMIO PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 7-MAR-77
SEQ 0085
DHKE
PRM'
157776
100000
100014
100004
000001
000010
000004
000002
000020
000000
000001
000002
000003
000004
000005
000006
000006
000007
000000
000004
000010
QuJOK
000020
000024
000030
000034
QQ0060
000064
000260
000214
000014
000014
177776
177774
177570
177566
177564
17756<
1775(
174f
174
.-♦STANDARD PROGRAM ASSIGNMENTS
STACK= 157776
CONS0L= 100000
$C0NSL= 100014
$CNTLC= 100004
CBIT=
NBIT=
ZBIT=
VBIT=
TBIT=
1
10
4
2
20
.-♦REGISTER DEFINITIONS
R0«
Rl«
I
R4»
R6«
t
XO
XI
X2
X3
X4
X5
X6
X6
X7
; INITIAL STACK POINTER
; CONSOLE START ADDRESS
.•CONSOLE RETURN ADDRESS
; CONSOLE CONTROL C ADDRESS
.•CARRY BIT
.•NEGATIVE BIT
;ZERO BIT
.•OVERFLOW BIT
;TRAP BIT
.•GENERAL REGISTERS
; STACK POINTER
.•PROGRAM COUNTER
;*PDP-11/40 STANDARD TRAP VECTOR ASSIGNMENTS
RESVED=
ERRVEC= 4
RESVEC= 10
TRTVEC= 14
I0TVEC= 20
PWRVEC= 24
EHTVEC= 30
TRAPVEC=34
TKVEC= 60
TPVEC= 64
TA11= 260
TC11= 214
TBITVEC=14
BPTVEC= 14
.•RESERVED
.•TIME OUT. BUS ERROR ^
.•RESERVED INSTRUCTION
.•BREAK POINT VECTOR
;IOT TRAP VECTOR
;POWER FAIL TRAP VECTOR
;EMT TRAP VECTOR
.•^•TRAF" TRAP VECTOR
.•TTY KEYBOARD VECTOR
.•TTY PRINTER VECTOR
; CASSETTE TAPE READER
; DEC TAPE VECTOR
.•♦PDP-11 /40 STANDARD ADDRESS ASSIGNMENTS
PS=
STKLMT=
SWRr
TTODBR=
TTOCSR=
TTIDBR=
TTICSRs
XORCR=
XORSR=
177776
177774
177570
177566
177564
17756<
1775(
174f
1741
;CPU STATUS
.•STACK LIMIT
.•CONSOLE SWITCH REGISTER
;TTY OUT DBR
;TTY OUT CSR
;TTY IN DBR
;TTY IN CSR
DHKBG KLIO NF20 DIAGNOSTIC. PART
PRmi.PII 07-MAR-77 15:46
000001
0QQ001
000002
QQ0002
OOOOOA
OOOOOA
000010
000010
000020
000020
OOOOAO
OOOOAO
000100
000100
000200
000200
QQ0400
00C400
001000
001000
002000
004000
010000
Q20QQ0
040000
100000
)Q00
)040
)100
)140
0^0
moq
)0?40
2 OF
2. VER 0.5
*^R«11*
.. J.A.BARRY 29857 MACY11 300(1063) 12; J yN-84 13:03
DECSYSTEM10 PDP-11 PROGRAM/SUBROUTINE PARAMETERS, 7-HAR-77
PAGE 12
SEQ 0086
DHK
PRF
;*BIT ASSIGNMENTS
BIT00=
BITO=
BIT01=
BIT1 =
BIT02=
BIT2=
BIT03=
BIT3=
BIT04=
BIT4=
BIT05=
BIT5=
BIT06=
BIT6=
BIT07=
BIT7=
BIT08=
BIT8=
BIT09=
BIT9=
BIT10=
BIT11=
1
BITOO
BIT01
4
BIT02
10
BIT03
20
BIT04
40
BIT05
100
BIT06
200
BIT07
400
BIT08
1000
BIT09
2000
4000
BIT12= 10000
BIT13= 20000
BIT14= 40000
BIT15= 100000
;*PRIORITY ASSIGNMENTS
PRO=
PR1 =
PR2=
PR3=
PR4=
PR5=
PR6=
PR7=
000
040
100
140
DHKBG KL10
PRmi.PII
537
538
539
540
5A1
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
nF20 DIAGNOSTIC,
- >77 - •'
07-«AR-
15:46
PART 2 OF 2^ VER 0.5 J.A.BARRY 29857 HACY11 306(1063) 12; jyN-84 13:03
•^RNII* DECSYSTEWIO PDP-11 PROGRAM/ SUBROUTINE PARAMETERS. 7-HAR-77
PAGE 13
SEQ 0087
DHI
PRI
30030
)0000
)0011
)0011
5012
)0013
)014
.3015
30007
30040
30040
3054
30057
3134
30137
3023
3021
)17
3C025
3001
30003
^3
3014
300022
300024
000030
300032
5uJ177
300033
300027
300001
:*ASCII CHARACTER DEFINITIONS
MSWCHR^ 030
TEXTERM=0
TAB=
CNTRLI=
LF=
VT=
FF =
CR=
BELL=
BLANK=
SPACE=
comA=
SLASH=
BKSLH=
BKARU=
XOFF=
XON=:
CNTRLO=
CNTRLU=
CNTRLA=
CNTRLC=
CNTRLD=
CNTRLK=
CNTRLL=
CNTRLR=
CNTRLT=
CNTRLX=
CNTRLZ=
RUBOUT=
ALTMOD=
ETB=
NULL=
SYN=
11
11
12
14
15
7
40
40
54
57
134
137
023
021
017
025
001
003
004
013
14
022
024
030
???
1}
MONITOR TO "KLDCP
TERMINATES TEXT
TAB
CONTROL-I (TAB)
LINE FEED
VERTICAL TAB
FORM FEED
CARRIAGE RETURN
PfLL
Blm,'JK (SPACE)
SPACE
COMMA
SLASH
BACK SLASH
BACK ARROW
X-OFF
SWITCH CHAR, CONTROL X
X-ON
CONTROL
CONTROL U
A
C
D
K
L
R
T
X
Z
(CONTROL S)
(CONTROL Q)
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
RUB OUT
ALTMODE
END OF TRANSMISSION BLOCK
NULL FILLER CHAR
COMMUNICATIONS SYNC CHAR (CONTROL A)
(CONTROL W)
"-1
L-
DHKBG KL10 «F20 DIAGNOSTIC, PART 2 OF
PRHll.PII 07-HAR-77 15:46
577
578
579
580
581
582
583
585
586
587
588
589
590
591
592
593
59A
595
596
597
598
599
600
601
602
603
60A
605
606
607
608
610
611
612
613
6U
615
616
17AA00
000040
000004
000005
000000
000002
000004
000006
000010
000012
000014
000016
000020
000022
000024
000026
000030
000032
000034
0uJ036
000774
000770
000764
000760
2^ VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 14
DfE20 DEVICE REGISTER AND SIT DEFINITIONS, 27-MAY-76
.SBTTL DTE20 DEVICE REGISTER AND BIT DEFINITIONS, 27-MAY-76
SEQ 0088
OH
DTEADR= 174400
DTESIZ= 000040
DTEMAX= 4
DTESZS= 5
ADDRESS OF (FIRST) DTE20 DEVICE REGISTER BLOCK
SPACING BETWEEN CONSECUTIVE DTE20'S ^^
MAXIMUM NUMBER OF DTE20'S ON ONE PDP-11
SHIFT TO CONVERT DTE ADDRESS TO DTE #
.-OFFSETS FROM THE BASE OF THE DTE20 DEVICE REGISTER BLOCK
;T0 SPECIFIC 10/11 INTERFACE RAM LOCATIONS AND REGISTERS.
; THE FIRST 12 REGISTERS ARE NOT INITIALIZED BY "INIT" (BECAUSE THEY ARE IN RAMS)
DLYCNT=
DEXUD3=
DEXUD2=
DEXUD1=
TENAD1=
TENAD2^
T010BC=
T011BC=
T010AD=
T011AD=
T010DT=
T011DT=
00
02
04
06
10
12
14
16
20
22
24
26
DELAY COUN
DEPOSIT OR
DEPOSIT OR
DEPOSIT OR
10 ADDRESS
10 ADDRESS
T010 BYTE
T011 BYTE
T010 PDP11
T011 PDP11
T010 PDP11
T011 PDP11
EXAMINE WORD 3
EXAMINE WORD 2
EXAMINE WORD 1
FOR DEX
FOR DEX
WORD 1
WORD 2
COUNT
COUNT
MEMORY ADDRESS
MEMORY ADDRESS
DATA WORD
DATA WORD
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
(ADDRESS
XXXXOO)
XXXX02)
XXXX04)
XXXX06)
XXXX10)
XXXX12)
XXXX14)
XXXX16)
XXXX20)
vat22)
XXXX24)
XXXX26)
THE LAST 4 REGISTERS ARE INITIALIZED BY "INIT" (BECAUSE THEY ARE IN FLIP-FLOPS)
0IAG1= 30
DIA62= 32
STATyS= 34
DIAG5= 36
DIAGNOSTIC WORD 1
DIAGNOSTIC WORD 2
10/11 INTERFACE STATUS
DIAGNOSTIC WORD 3
WORD
(ADDRESS XXXX30)
(ADDRESS XXXX32)
(ADDRESS XXXX34)
(ADDRESS XXXX36)
THE ADDRESSES OF THE DTE20 INTERRUPT VECTORS
DTcIVO= 774
DTEIV1- 770
DTEIV2= 764
0TEIV3= 760
INTERRUPT VECTOR FOR DTE20 #0
INTERRUPT VECTOR FOR DTE20 #1
INTERRUPT VECTOR FOR DTE20 #2
INTERRUPT VECTOR FOR DTE20 #3
""H
r
"1
DHKBG
PRHII.PII
KL10 HF20 DIAGNOSTIC. PART 2 OF
07-HAR-77 15:46
100000
060000
040000
020000
010000
004000
000000
100000
040000
020000
020000
100000
040000
020000
010000
004000
002000
001000
000200
000060
)00001
)00001
)00004
)00010
000040
000200
)00400
iooioo
)00020
500010
QQ0004
001000
002000
004000
2. VER 0.5
DtE20 DEVICE
J.A.BARRY 29857 MACYII 306(1063) 12-JUN-84 13:03 PAGE 15
REGISTER AND BIT DEFINITIONS. 27-HAY-76
SEQ 0089
r
Dl
n
.-BIT ASSIGNMENTS FOR 10/11 INTERFACE REGISTERS
;B1T ASSIGNMENTS FOR TENAU1
PHYS=
USEVIR=
XUPTr
EXVIRT=
OEP=
PaTOFF=
XEPT=
8IT15
BITU1B1T13
6IT14
BIT13
BIT12
BIT11
.■EXAPiriVE/DEP PHYSICAL ADDRESS
;EX/DP JSER VIRTUAL ADDRESS
;EX/DP VIA USER PROCESS TA6L6
;EX/DP EXEC VIRTUAL ADDRESS
;HOr'E BIT FOR DEPOSIT (0=EXA«INE)
;PROTFCT OFF
;EX/DP VIA EXEC PROCESS TABLE
.-BIT ASSIGWENTS FO^ T011BC
INT10=
2ST0P=
BYTE2=
T0118«=
BIT15
8IT14
BIT13
BIT13
;SET DONE mi> INTERRUPT BOTH 10 AND 11
;STOP ON NULL (ZERO) CHARACTER
;TtfO EK )T BIT BYTES PER WORD
;T0«11 BYTE MODE
;BIT ASSIGNMENTS FOR DIvO (WRITE)
DSOO=
DS01 =
DSQ2=
0S03=
DS04=
0S05=
DS06=
DFUNC=
PULSE =
DC0MST=
OCSRT^
DSEND=
DIKL10=
01011=
BIT15
BIT14
BIT15
BiT12
8ini
BIT10
BIT9
BIf7
BIT4IBJT5
BITO
BITO
BIT2
BIT3
BiT5
.•DIAGNOSTIC STATUS
.-DOING DIAGNOSTIC FUNCTION (DFRD.DFURT.DFXCT)
.•SINGLE PULSE THE 10/11 CLOCK (ALSO SETS
;10/11 DIAGNOSTIC MODE)
;DIA6N0STIC COMMAND START
.-DIAGNOSTIC COMMAND START (NEW NAME FOR DCUMST)
.SEND THE EBUS DURING DIAGNOSTIC FUNCTION
;XL10 DIAGNOSTIC MODE
; 10/11 INTERFACE DIAGNOSTIC ^HDE
.-BIT ASSIGNMENTS FOR DIA61 (READ)
T010=
DEX=
T011 =
VEC04=
VEC03=
VtC02=
BJT7
BITS
BIT6
BIT4
BIT3
BIT2
HALTLP= BIT9
KLRUN= BIT10
ERRSTP= BIT11
.-INTERFACE MAJOR STATE " T010 TRANSFER
• •' " •• = DEPOSIT OR EXAMINE
" = T011 TRANSFER
.•VECTOR INTERRUPT ADDRESS BIT 4
^ ■ t 1 1 • . "5
•EBOX IS IN HALT LOOP
;RUN FLOP. KL IS EXECUTING INSTRUCTIONS
;EBOX CLOCK STOPPED DUE TO ERROR
r
DHKBG
PR«11.P11
667
675
676
677
678
679
680
681
682
683
688
689
690
691
692
693
694
695
696
KL10 HF20 DIAGNOSTIC.
07-MAR-77 15:46
PART 2 OF 2^ VER 0.5 J.A.BARRY 29857 HACY11 300(1063) 12-JUN-84 13:03 PAGE 16
DtE20 DEVICE REGISTER AND BIT DEFINITIONS. 27-NAV-76
SEQ 0090
r-
I
040000
000100
000040
000020
000010
000002
000001
100000
040000
020000
010000
100000
040000
000020
000004
QQ0002
orooo
;BIT ASSIGNMENTS FOR DIAG2 (WRITE)
EDONES= BIT14
DRESET= BIT6
;SET EBUS DONE
;PERFORM DIAGNOSTIC CLEAR
;BIT ASSIGNMENTS FOR DIAG2 (READ)
;BIT ASSIGNMENTS FOR D1AG3 (WRITE)
SCD= BIT5
CDD= BIT4
WEP= BIT3
CNUPE= BIT1
T010BM= BUG
SHIFT CAPTURED DATA (PARITY ERROR DATA)
CLEAR DUPE t DURE ERROR FLAGS
WRITE EVEN (BAD) PARITY
CLEAR NUPE ^ ,,
TO-10 TRANSFER BYTES FROM THE 11
;BIT ASSIGNMENTS FOR DIA63 (READ)
RFMADO= BIT15
RFMAD1= BIT14
RFMAD2= BIT13
RFMAD3= BIT12
;BIT ASSIGNMENTS FOR DIAG3 (READ)
RFM ADDRESS BIT
II 11 "1
SWSLFT= BIT15
CAB08= BIT14
DUPE= BIT4
DURE= BIT2
NUPE= BIT1
SWAP SELECT LEFT
CAPTURED UNIBUS ADDRESS BIT 08
DATO UNIBUS PARITY ERROR
DATO UNIBUS RECIEVER ERRDR
NPR UNIBUS PARITY ERROR
UPECD= BIT13!BIT*2.'BITll!BIT10!BIT9 ;UNIBUS PARITY ERR. CAPTURED DATA
1 r
DHKB6 KLIO MF20 DIAGNOSTIC, PART 2
PRMII.PII 07-MAR-77 15:46
698
699
700
701
702
703
70A
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
100000
040000
020000
010000
004000
002000
001000
000400
000200
000100
000040
000020
000010
000004
000002
0C0001
100000
020000
010000
004000
002000
001000
000400
000200
000100
Gu.*040
000020
000010
000004
000002
000001
OF 2^ VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84
DfE20 DEVICE REGISTER AND BIT DEFINITIONS, 27-MAY-76
;B1T ASSIGNMENTS FOR STATUS (WRITE)
13:03 PAGE 17
SEQ 0091
DON10S=
D0N1QC=
ERR10S=
ERR10C=
INT11S=
INT11C=
PERCLR=
INT10S=
0Oi'Jl1S=
D0N11C=
INTR0N=
EBUSPC=
INTR0F=
EBUSPS=
ERR11S=
ERR11C=
BIT15
BIT14
BIT13
BIT12
BiTll
BITIO
BIT9
BITS
BIT7
BIT6
BIT5
B1T4
BIT3
BIT2
BITl
BITO
SET T010 DONE
CLEAR TOlO DONE
SET TOlO ERROR
CLEAR TOlO ERROR
SET 10 REQ INTERRUPT (INTERRUPTS 11) ^ ,,^
CLEAR 10 REQ INTERRUPT (REMOVES INTERRUPT TO 11)
CLEAR -11 MEMORY PARITY ERROR
SET REQUEST 10 INTERRUPT (INTERRUPTS 10)
SET TC11 DONE
CLEAR TOll DONE
ENABLE DTE20 TO INTERRUPT THE 11
CLEAR EBUS PARITY ERROR
DISABLE THE DTE20 11-INTERRUPTS
SET EBUS PARITY ERROR
SET TOll ERROR
CLEAR TOll ERROR
;BIT ASSIGNMENTS FOR STATUS (READ)
T010DN=
T010ER=
RAMISO=
T011DB=
DXURD1=
011MPE=
T010DB=
T011DN=
EBSEL=
NULSTP=
BPARER=
RH=
DEXDON=
T011ER=
INTS0N=
BIT15
BIT13
BIT12
BITll
BITIO
BIT9
BIT8
BIT7
BIT6
BITS
BIT4
BIT3
BIT2
BITl
BITO
TOlO DONE
TO 10 ERROR (NPR TIMEOUT OR BUS ERROR)
DATA OUT OF DTE RAM IS ALL OS (RFM=0)
10 REQUESTING 11 INTERRUPT (DOORBELL FROM 10)
DEPOSIT OR EXAMINE WORD ONE
-11 MEMORY PARITY ERROR
REQUEST 10 INTERRUPT (DOORBELL FROM 11)
TOll DONE
E BUFFER SELECT
NULL STOP
EBUS PARITY ERROR
THIS DTE20 IN RESTRICTED MODE
DEPOSIT OR EXAMINE DONE
TO 11 ERROR (NPR TIMEOUT OR BUS ERROR)
INTERRUPTS ON, DTE20 ENABLED TO INTERRUPT 11
DHKBG KLIO «F20 DIAGNOSTIC. PART 2 OF
PRH11.P11 07-MAR-77 15:46
735
736
737
738
739 000000
7A0 000001
7A1 000002
742 000003
743 000004
744 000006
745 000007
746 000005
747
748
749
750 000042
751 000043
752 000044
753 000045
754 000046
755 000047
756
757
758
75? 000060
760 000061
761 000062
762 000063
763 000064
764 000133
765 0u.n35
766 000134
767
768
769
770 000065
771 000066
in 000067
2, VER 0.5 J.A.BARRY 29857 MACYII 30G(1Q63) 12-JUN-84 13:03 PAGE 18
DtE20 DEVICE REGISTER AND BIT DEFINITIONS, 27-MAY-76
;*KL10 DIAGNOSTIC FUNCTION DEFINITIONS
.•CLOCK CONTROL FUNCTIONS
SEQ 0092
STPCLK= 000
STRCLK= 001
SSCLK= 002
SECLK= 003
CECLK= 004
CLRI1R= 006
SETMR= 007
BRCLK= 005
STOP CLOCK
START CLOCK
SINGLE STEP THE MBOX CLOCK
SINGLE STEP EBOX CLOCK
CONDITIONAL EBOX CLOCK
CLEAR MR RESET
SET MR RESET
BURST THE CLOCK
.•CLOCK LOAD FUNCTIONS
LDBRR= 42
LDBRL= 43
LDSEL= 44
LDDIS= 45
LDCHK1= 46
LDCHK2= 47
.-DRAM FUNCTIONS
LDRAM1= 60
LDRA«2= 61
LDRAM3= 62
LDRJEV= 63
LDRJOD= 64
DRAMAB= 133
DRJ710= 135
DRJ1.4= 134
;IR DRAM CONTROL
DISIOJ= 65
DISACF= 66
ENIOJA= 67
LOAD BURST REGISTER RIGHT HALF
LOAD BURST REGISTER LEFT HALF
LOAD SOURCE AND RATE SELECTS
LOAD EBOX CLOCK DISTRIBUTION REGISTER ^ ^^^^^
LOAD PARITY CHECK REGISTER (ENABLE BAD PARITY STOP)
LOAD EBOX INTERNAL CHECK REGISTER
LOAD A & B FIELDS EVEN
LOAD A a B FIELDS ODD
LOAD COMMON J1-J4
LOAD PARITY & J8-J10 EVEN
LOAD PARITY & J8-J10 ODD
READ D-RAM A S B
READ D-RAM J7-J10
READ D-RAM J1-J4
DISABLE 7XX S JRST=254
DISABLE THE IR AC'C
ENABLE 7XX. JRST=254 & IR AC'S
n r
DHKB6 KL10 HF20 DIAGNOSTIC. PART 2
PRmi.PII 07-HAR-77 15:46
77A
775
776
777
778
779
780
781
782
783
78A
785
786
787
788
789
790
791
792
793
79A
795
796
797
798
799
800
801
802
181
805
808
000057
000056
000055
00005A
000053
000052
000051
000U7
000146
000145
000144
000141
000014
"W015
J88]?
)0012
)0077
000071
000070
)0100
)0101
18181
OF 2^ VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84
DtE20 DEVICE REGISTER AND BIT DEFINITIONS. 27-HAY-76
13:03 PAGE 19
SEQ 0093
.-CRAM FUNCTIONS
LCRA«1= 57
LCRAM2= 56
LCRAH3= 55
LCRAM4= 54
LCRA«5= 53
LCRDAL= 52
LCRDAR= 51
RCRAH1= 147
RCRAM2= 146
RCRAH3= 145
RCRA«4= 144
RCSPEC= 141
; LOAD C-RAM DATA
LOAD CRAH ADDRESS LEFT (00-04)
LOAD CRAH ADDRESS RIGHT (05-10)
READ C-RAM DATA
READ C-RAH SPEC
;WISC CONTROL FUNCTIONS
IRL0AD= 14
DRLTCH= 15
CLRRUN= 10
SETRUN= 11
C0NBUT= 12
LDAR= 11
LOAD THE IR FROM AD
LOAD D-RAM LATCHES
CLEAR RUN FLIP-FLOP
SET RUN FLIP-FLOP
THE CONTINUE BUTTON
LOAD THE AR
;MBOX CONTROL FUNCTIONS
LD«BXA= 71
LDCHAN= 70
LOAD MEMORY TO CACHE SELECTOR
LOAD CHANNEL DIAGNOSTIC CONDITIONS
;PI CONTROL FUNCTIONS
READO^:
READ1=
READ2=
READ3=
10^
1
18^
PI
PI
PI
PI
(READ STATUS 0)
(RFAO STATUS 1)
(RE^D STATUS 2)
(READ STATUS 3)
DHKBG KL10
prhTi.pii
NF20 DIAGNOSTIC . PAJ»T
07-«AR-77 15:46
)00120
m
muz
)001U
300124
5(10126
)C0127
0C0153
000157
000157
000153
000167
000132
000133
000130
000131
2 OF 2. VER 0.5 J.A.BARRr 29857 HACrll 306(1063)
6tE20 DEVICE REGISTER AND BIT DEFINITIONS. 27-«Ay
;OATA PATH CONTROL FUNCTIONS
41
'-JUN-84 13:03 PAGE 20
SEQ 0094
DPAR
DPBR
DPm
DPFH
DPFNA
DPBRy
DPARk
DPADX
DPAD
DPPC
DPVNA
DPVHHD
DPAD6
DPERG
DPFE
DPFEl
DPSC
DPSCl
AR
BR
NQ
F«
FM ADR
BRX
ARX
ADX
AD
PC
VMA
VMA HELD
ADDRESS BREAK
E-6US REGISTER
FE 05-09
FE 00-04
SC 05-09
SC 00-
04
■<W H< 'i" W il M li . « .W
r"
OHKBG KLIO HF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857 ^, HACY11
PRHII.PII 073iAR-7n5:46 KLIO EBOX MACRO DEFINITIONS. 27-MAY-76
J.A.BARRY 29857 HACY11 30G(1063) 12-JUN-84 13:03 PAGE 21
SEQ 0095
831
832
833
83A
835
836
837
838
839
8A0
841
8A2
8AA
846
847
848
849
850
851
§^2
853
854
855
m
858
859
860
861
862
863
864
865
866
.SBTTL KLIO EBOX MACRO DEFINITIONS. 27-MAY-76
.-MACRO TO TURN 36 BIT UORDS INTO 5 UPSIDE DOWN BYTES
.MACRO UD36 A.B.C
NLIST SRC
.BYTE <377|C>.«<C|7400>/400>!«BH7>*20».«BJ7760>/20>
.BYTE <Aft377>.«Aft7400>/400>
.LIST SRC
.ENDM
;PDP10 CPU INSTRUCTION MACRO. TAKES 5 ARGUMENTS AS IN NORMAL
;10 CODE. 5 FIELDS MUST BE PRESENT (4 FIELD SEPARATORS)
•BUT THE AD^AC.I. AND XR FIELDS MAY BE LEFT BLANK AND IF SO.
:-WILL ASSEM6lE AS ZERO. THE OP FIELD MUST NOT BE LEFT BLANK.
.MACRO no OP.CAC.CI.CAD.CXR
ADH=0
ADL=0
.IF NB.CAD
.IRPC ADi.CAD .^^^„
.IIF GE.<ADL-10000>,ADH=ADL/10000
ADL=10*<ADLfc7777>+ADl
.ENDM
.ENDC
.IIF B,CAC.AC=0
.IIF NB.CAC,AC=CAC
.IIF B. CI. 1=0
.IIF NB.CI,I=CI
.IIF B,CXR.XR=0
.IIF NB.CXR.XR=CXR
NLIST SRC
.BYTE <ADL|377> . «ADL /400> ! <ADH*2001377» . <ACH *200*< I *1 00*<XR*4»*<ADH/2»
.BYTE <OPI37*10*<AC/2».<OP/40>
.LIST SRC
.ENDM no
KL10 HF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACVIl 30G(1063) 12-JUN-84 13:03 PAGE 22
OHKBG ..
PRH11.P11 07-MAR
868
869
870
871
872
873
87A
875
876
877
878
879
880
881
882
883
88A
'^5
lAGNG
-77 1
:46
902
000002
000003
)00000
)00001
)Q0004
)00005
}Q0006
)00007
JOOO
)000A
0010
Joou
)00020
00002A
KL10 EBOX MACRO DEFINITIONS, 27-MAY-76
;l«IACR0 TO GENERATE A RIGHT JUSTIFIED 3-flYTE VALUE
.-FOR A 22-BIT ARGUMENT
.MACRO WD22 AD
ADH=0
ADL=0
IRPC AD1 AD
!lIF GE,<ADL-10000>,ADH=<10*ADH>+<ADL/10000>
ADL=10*<ADLft7777>*ADl
.ENDM
NLIST SRC
!bYTE <ADL8377>,«ADL/AO0>!<ADH*2008377»,<ADH/2>
.LIST SRC
.ENDM UD22
;PDP10 I/O INSTRUCTION MACRO. TAKES 5 ARGUMENT AS NOTED ABOVE
IN THE DESCRIPTION OF THE 110 MACRO. THE 8 I/O OP CODES ARE
•DEFINED AS ARE DEVICE CODES APR. PI, PAG. CCA. TIM, AND MTR.
•IN ADDITION. 1010 WILL HANDLE THE U COMMON ^UNNY INSTRUCTIONS" (SUCH
AS APRID)? TO USE THIS FEATURE PLACE THE MNEUMONIC IN THE INSTRUCTION
l-FIELD AND LEAVE THE DEVICE FIELD EMPTY.
BLK0=2
DATA0=3
BLKJ^O
DATAI=1
C0N0=A
C0NI=5
C0NSZ=6
C0NS0=7
APR=0
PI=A
PAG=10
CCA=14
TIM=20
MTR=2A
SEQ 0096
DHKBG KL10 «F20 DIAGNOSTIC, PART 2
PRMII.PII 07-P1AR-77 15:46
905
906
907
908
909
910
911
912
913
9U
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
000000
OQ0002
iooooo
--)002
000001
000002
000003
000005
000006
000007
000000
000001
000002
000000
000001
OQOOOO
000000
000004
000004
000010
000014
000014
000014
000014
000014
OOOCU
000020
000020
OuJ020
000024
000024
OF 2, VER 0.5 J.A.BARRY 29857 „ MACYll 306(1063)
KL10 EBOX MACRO DEFINITIONS, 27-MAY-76
$APRID=BLKI
$URFIL=BLK0
$RDERA=BUI
|SBDIAG=BLK0
$CLRPT=BLK0
$SUPIA=DATAI
$SWPVA=BLK0
$SWPUA=DATA0
|SWPI0=C0NI
|SWPVO=CONSZ
$SWPUO=CONSO
$RDPERF=8LKI
$RDTIME=DATAI
$URPAE=BLKO
$RDMACT=8LKI
$RDEACT=DATAI
$$APRID=APR
$$WRFIL=APR
$$RDERA=PI
$$SBDIA6=PI
$$CLRPT=PAG
$$SUPIA=CCA
$$SWPVA=CCA
$$SUPUA=CCA
$$SWPIO=CCA
$$SWPVO=CCA
$$SUPUO=CCA
$$RDPERF=TIM
$$RDTIHE=TIM
$$WRPAE=TIM
$$RO«ACT=MTR
$$RDEACT=MTR
12-JUN-84 13:03 PAGE 23
1
SEQ 0097
1 r
DHKBG
PRMII.PII
939
9A0
9A1
9A2
943
9AA
9A5
9A6
9A7
9A8
9A9
950
951
952
953
954
955
956
957
958
959
960
961
KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 ^MACYI] 306(1063) 12-JUN-84 13:03 PAGE 24
' 07-SaR-77 15:A6 KL10 EBOX MACRO DEFINITIONS. 27-MAY-76
SEQ 0098
.MACRO 1010 OP,DV.CI,AD,CXR
1=0
.IIF NB.CM=CI
XR=0
.IIF NB.CXR,XR=CXR
.IF B,DV
XOP^S'OP
XDV=$$'OP
.IFF
XOP=OP
XDV=DV
.ENDC
ADH=0
ADL=0
IRPC AD1 AD
!lIF GE.<ADL-10000>.ADH=ADL/10000
ADL=10*<ADL87777>MD1
.ENDM
NLIST SRC
.BYTE <ADL8377>,«ADL/AOO>!<ADH*2008377»,<XOP81*200+<I*100+<XR*4»+<ADH/2»
.BYTE <XDV8374*<X0P/2».<XDV/400+16>
.LIST SRC
.ENDM 1010
DHKBG
PRM11.P11
963
%A
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
98A
985
986
987
988
989
990
991
992
993
KL10 MF20 DIAGNOSTIC.
07-MAR-77 15:A6
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 ^, MACY11
KL10 EBOX MACRO DEFINITIONS. 27-MAY-76
306(1063) 12-JUN-8A 13:03 PAGE 25
SEQ 0099
;THIS IS A MACRO TO WAIT FOR A DONE FLAG
.MACRO
91$:
92$:
.ENDM
WFZERO BITSEL
MOV #*D2500.-(SP)
BIT #BITSEL.a.DIAG1
92$
(SP)
91$
RPTFLG
92$
R1,$DFTIM
(SP)*
SET TIMEOUT CNT
TEST BIT
LEAVE IF BIT ZERO(OK)
DECREMENT CNT
CONTINUE LOOP
OTHERWISE TIME OUT
.•RESET STACK ft CONTINUE
.-THIS MACRO IS A WAIT FOR FLAG MACRO.
;IT WAITS FOR A TEST BIT TO GO TO ONE
;FROM A ZERO
.MACRO
WFONE
BITSEL
MOV
#*D2500.-(SP)
93$:
BIT
#BITSEL,a.STDTE
BNE
94$
DEC
(SP)
BNE
93$
TST
RPTFLG
BNE
94$
JSR
R1,$DFTIM
94$:
TST
(SP)*
.ENDM
SET TIMEOUT CNT
TEST BIT
LEAVE IF NOW A ONE (OK)
DECREMENT CNT
CONTINUE LOOP
OTHERWISE TIME OUT
.•RESET STACK
DHK
MOS
OHKBG KL10 NF20 DIAGNOSTIC,
PRmi.PII 07-MAR-77 15:46
1388
1389
1390
1391
1392
1393
139A
1395
1396
1397
1398
1399
UOO
KOI
1402
1403
1404
1405
1406
1407
1408
1409
1410
000100
177546
000100
000114
172100
172136
100000
007740
000005
000004
000001
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84
Klin DEVICE REGISTERS AND BIT DEFINITIONS, 27-^^-76
.SBTTL KU11 DEVICE REGISTERS AND BIT DEFINITIONS, 27-MAy-76
KWLIV= 100 ; VECTOR ADDRESS
KWLKS= 177546 ; LINE CLOCK STATUS DEVICE ADDRESS
KWLKE= 100 ; LINE CLOCK INTERRUPT ENABLE BIT
.SBTTL (Hill DEVICE REGISTERS AND BIT ASSIGNMENTS, 27-MAY-76
13:03 PAGE 36
SEQ 0100
DHI
NO!
H«LPIV= 114
(WLPBA= 172100
WLPEA= 172136
(WERRF= BIT15
W1ADD«= 7740
mADDS= 5
WPIE
'= BIT2
= 81 TO
;VECT0R ADDRESS
;1ST MMll-LP DEVICE ADDRESS
;LAST MMll-LP DEVICE ADDRESS
; ERROR FLAG
.•ADDRESS MASK
; ADDRESS SHIFT
; WRITE WRONG PARITY
; PARITY INTERRUPT ENABLE
"1
n r
0088
DHKBG
N0SMAC.P11
225A
2235
2236
2237
2238
2239
22A0
22A1
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2271
2274
2275
2276
2277
2278
2279
KL10 HF20 DIAGNOSTIC,
11-MAR-79 19:U
NARG
$$NARG
NB,H,
NB,G.
NB.F,
Ne,E,
NB,D,
Ne,c,
NB,B#
NB«A,
ENDM
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACYVI 306(1063) 12-JUN-84 13:03 PAGE 47
«6SMAC — THE MOS DIAGNOSTIC MACRO LIBRARY
.SBTTL MOSMAC — THE MOS DIAGNOSTIC MACRO LIBRARY
REM X
MACRO SPRADR GENERATES A LIST OF PUSHES WHICH PUSr! THE ARGUMENT
ADDRESSES IN REVERSE ORDER. UP TO 8 ARGUMENTS MA'' BE GIVEN.
t
.MACRO SPRADR A,B.C,D,E,F.G,H
PUSH #H
PUSH #G
PUSH /TF
PUSH #E
PUSH #D
PUSH #C
PUSH #B
PUSH #A
GENERATES TABLE ENTRIES TO IDENTIFY BITS OF DIAGNOSTIC FUNCTIONS TO BE
TESTED BY CMPVS AND S10. ORDER IS MSB TO LSB. A NEGATIVE VALUE INDICATES THE
TABLE END.
X
.MACRO BP. B
.IRP B1.<B>
Bl6=''D'B1
F=0
.IF LT BIO
BX=-B10
F=1
.IFF
BX=B10
.ENDC ,^
B11=*D35-BX
U11=B11/*D16
P11=B11-<U11**D16>
.IF NDF.R$$20F
NL I ST SRC
.BYTE <F»100>1<P11*4>!<W11>
.LIST SRC
.IFF
i8P.=<F*100>!<P11*4>!Ul1
.ENDC
.ENDR
.ENDM
SEQ 0101
r
DH
MG
1 r
"1
DHKBG -
H0S«AC.P11
2281
2283
228A
2285
2286
2287
2288
2289
2290
2291
2292
2293
229A
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
KL10 «F20 DIAGNOSTIC,
ll-HAR-79 19:14
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACYll 30G(1063)
«6SI>WC - THE «0S DIAGNOSTIC MACRO LIBRARY
12-JUN-84 13:03 PAGE 48
SEQ 0102
Dl
.REH
WORD.
.MACRO
.NLIST
.NARG
.IF
.IF
.IFF
fSl0.=A
.ENDC
.IFF
.IIF
.IIF
.IF
MACRO TO ENCODE DIAGNOSTIC FUNCTION, BIT NUMBER t FLAVOR INTO A PDP11
X
S10.
A,8,C
XXX
EQ <XXX-1>
NDF,R$$20F
.WORD A
B
-B
EQ.C, BP.
NE,C, BP.
NDF,A$$20F
.BYTE 200!A
.IFF
$S10.=«200!A>*400>!$8P.
.ENDC
.ENDC
.LIST
.ENDM
REM X
PDP10 DIAGNOSTIC DATA BIT TEST ROUTINE.
A WORD LOCATED IN THE DTE20 DEXWDS.
X
.MACRO TBIT N
BB=*D'N*12.
BBD=B6/16.
BM=1
.REPT <15.-<BB-<16.*88D»>
BM=BM^BM
.ENDR
NLIST SRC
!lIF NDF,R$$20F, MOV #*D'N,ERBIT
BIT #BM.a<.DAT1-<2*BBD»
.LIST SRC
.ENDM
ARGUMENT IS PDP10 BIT NUMBER OF
.REM
.MACRO
.IIF
.IIF
.ENDM
STARTS THE KL RUNNING AND WAITS FOR EITHER A HALT OR A TIMEOUT.
X
CONTIN
DF.R$$20F, JSR PC.CONIIN ;RUN | CONTINUE
ND^RSS
%f.
JSR R5. CONTIN
;RUN i CONTINUE
r
I
DHKBG KL10
H0SMAC.P11
2533
233A
■"15
1^
2338
2339
23A0
23A1
23A2
23A3
23AA
23A5
2346
23A7
23A8
23A9
2350
2351
2352
2353
235A
2355
2356
2357
2358
2359
2360
236A
2365
2366
1367
>368
369
170
371
372
1373
J374
2375
2376
n
nF20 DIAGNOSTIC,
11-HAR-79 19: U
PART 2 OF
2. VER
nOSMAC
.REM
0.5 J.A.BARRY 29857
— THE MOS DIAGNOSTIC
NACY11 306(1063)
MACRO LIBRARY
12-JUN-84 13:03 PAGE 49
SEQ 0103
THE RUN MACRO GENERATES A CALL TO A SUBROUTINE WHICH RUNS A 10 SIDE
PROGRAM. THERE ARE TWO PARAMETERS: PC AND TIM. PC IS THE STARTING PC (USING
THE CURRENT AC BLOCK). IF IT NOT GIVEN THE PC USED IS THE PC SPECIFIED BY THE
LAST 'fiABL" WHICH GAVE THE STARTING PC. TIM IS THE TIMEOUT PARAMETER. IF LEFT
BLANK THE TIME IS ASSUMED TO BE ONE 60 CYCLE CLOCK TICK.
.MACRO
SRUN^I
.IF
.IIF
.IIF
.IF
.IIF
.IIF
.IFF
.IIF
.IIF
.ENDC
.IFF
.IF
.IF
.IIF
.IIF
.IFF
.IIF
.IIF
.ENDC
.IFF
.IF
.IIF
.IIF
.IFr
.IIF
.IIF
.ENDC
.ENDC
.IIF
.IIF
.ENDC
.ENDM
X
RUN
SPC.TIH.7L
DF,RS$20F
JSR R5.L
NBJIM.
NB.SPC,
B.SPC
B.TIM, L:
n6.TIM.L:
B.TIM. L:
N§,TIM.L!
POP
.WORD
.WORD
R5
B,SPC
B.TIM
NDF. STRAPS,
DF, STRAPS,
NDF .STRAPS,
DF, STRAPS,
B.TIM
NDF -STRAPS,
DF, STRAPS.
NDF. STRAPS,
DF, STRAPS,
TIM-1
SPC
JSR
JSR
JSR
JSR
JSR
TRAP
JSR
TRAP
JSR
TRAP
JSR
TRAP
;SAV R5, PT TO t SKIP ARG LIST
;# 60 CYC CLK TICKS TO
.•STARTING ADR
RUN PRGM (-1)
PCAUTORP ;RJN PRGM 1
PCAUTORB ;RUN PRGM N
PC.RUNPRG ;RUN PRGM 1
PCRUNBIG ;RUN PRGM N
.•RESTORE R5
R5,AUT0RP ;RUN PRGM 1
6. ;RUN PRGM 1
R5,AUT0RB ;RUN PRGM N
7. ;RUN PRGM N
R5.RUNPR6 ;RUN PRGM 1
8. ;RUN PRGM 1
R5,RUNBIG ;RUN PRGM N
9. ;RUN PRGM N
TICK.
TICS,
USE
USE
MABL
MABL
START
START
TIC USING GIVEN PC
TICS USING GIVEN PC
TICK,
TICK.
TICS.
TICS,
USE
USE
USE
USE
MABL
MABL
MABL
MABL
START
START
START
START
TIC
TIC
TICS
TICS
USING
USING
USING
USING
GIVEN
GIVEN
GIVEN
GIVEN
PC
PC
PC
PC
NB,TIM,
NB.SPC,
.WORD
.UORD
TIM-1
SPC
;# 60 CYC CLKS TO RUN PRGM (-1)
.•GIVEN STARTING ADR
r
Q 0091
DHKBG KL10 I1F20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACYll 30G(1063)
SoSMAC.PIl 11-HAR-79 19:U m6sMAC - THE MOS DIAGNOSTIC MACRO LIBRARY
12-JUN-84 13:03 PAGE 50
r
SEQ 01 OA
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
RFM X
MACRO USED TO GENERATE ASCII TEXT OF A NUMERIC ARG IN CURRENT RADIX.
USE \ TO PRECEED ARGUMENT IN CALL.
X
.MACRO
.ENDM
NUMTXT A.. ,.
.ASCII "A"
MACRO CGOTO DOES A COMPUTED GO-TO BASED ON THE GIVEN PARAM (0 TO N) OR
THE VALUE IN RO IF NO PARAM GIVEN. CHECKS THE RANGE OF THE PARAM VS. THE
LENGTH OF THE PARAM LIST.
X
iCGOTO=l"°^° LST,NDX ^^^^ ASSEMBLY OF CGOTO SUBROUTINE ^
.IIF NB.NDX, MOV NDX.RO ;MOV LIST INDEX TO RO
NUMARG LSf ;GEf # AR6S IN LIST
.IIF NDF.STRAPS, JSR R5, CGOTO
.IIF DF, STRAPS. TRAP 1.
.WORD $$NARG-1,LST
.ENDM
.-CALL COMPUTED GOTO SUBROUTINE
;CALL COMPUTED GOTO SUBROUTINE
.MACRO
.NARG
.ENDM
NUMARG
$$NARG
A.B,C,D,E.F,G,H.I,J.K,L,M,N.O,P.Q,R.S,T,U,V,U,X.Y,Z
r
OHICBG KL10 K1F20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857 NACY11 306(1063)
N0SMAC.P11 ll-MAR-?? 191U h6sMAC - THE MOS DIAGNOSTIC MACRO LIBRARY
12-JUN-8A 13:03 PAGE 51
SEQ 0105
2A06
2A07
2408
2A09
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
c442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
>454
>455
5456
?457
CALLER FOR CLOCK CONTROL ROUTINE. FIRST ARGUMENT IS THE PpPII ADDRESS
OF A PDP10 INSTRUCTION TO BE EXECUTED WITH CONTROLLED CLOCK NG. THE SECOND
ARGUMENT SPECIFIES HOW TO DETERMINE THE NUMBER OF CLOCKS. _IF IT IS AN INTEGER.
IT IS USED AS A BURST COUNT. OTHERWISE IT MAY BE OF THE FORM ^^„„^^ ,.^.^,,
<DIAGFCN.BITN8R,FLAV0R> TO SPECIFY THAT THE fLOCK I? TO BE SINGLE-STEPPED UNTIL
BIT 'BITNBR" OF DIAGNOSTIC FUNCTION "DIAGFCN" TRANSITIONS TO "FLAVOR" (0 OR 1).
X
INSTR.EPNT
.MACRO STEP10
$STEP10=1
JSR
R5,STEP10
.ENDM
EVENT I
.MACRO
$EVENT=
.IF
L:
.IFF
.ENDC
.ENDM
.WORD INSTR
S10. EPNT
;STEP TO EVENT OR BURST NXT WD POS
.•INSTRUCTION TO EXECUTE
CALLER FOR A ROUTINE WHICH TESTS FOR THE LEADING EDGE OF AN EVENT.
S SPECIFIED BY <DIAGFCN,BITNBR.FLAVOR>.
X
THE
1
EVENT ARG.7L
1
DF.R$$20F
JSR R5.L
510. ARG
.WORD $S10.
JSR PC. EVENT
POP R5
JSR
S10.
R5. EVENT
ARG
SAV R5. PT TO & SKIP ARG LIST
CALC PARAM VALUE
PARAM LIST
.EVENT THIS CLOCK?
.•RESTORE R5
.•EVENT THIS CLOCK?
CALLER FOR ROUTINE WHICH STEPS THE CLOCK UNTIL AN EVENT IS DETECTED.
THE EVENT IS SPECIFIED BY <DIAGFCN. BITNBR. FLAVOR>.
X
.MACRO
$FIND=1
.IF
L:
.IFF
.ENDC
.ENDM
FIND
ARG,?L
DF.R$$20F
JSR R5.L
310. ARG
.WORD $S10.
JSR PC. FIND
POP R5
JSR
S10.
R5.FIND
ARG
;SAV R5. PT TO S SKIP ARG LIST
;CALC PARAM VALUE
.-PARAM LIST
.•STEP TO EVENT
.-RESTORE R5
.-STEP TO EVENT
DHKBG
MOSMAC.
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
DHKBG KL10 MF20 DIAGNOSTIC,
M0SMAC.P11 11-HAR-79 19:14
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
]479
[480
5481
]482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
'500
501
502
?503
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 52
m6sMAC - THE MOS DIAGNOSTIC MACRO LIBRARY
RFM X
STEP10 CONTINUATION CALL
X
.MACRO STPCON EPNT
$STPC0N=1 ^^^ R5, STPCON ;STEP TO EVENT OR BURST NXT UD POS
S10. EPNT
.ENDM
SEQ 0106
.REM X
MACRO TO CALL SOBAC.
X
.MACRO SOBAC ARG
iS0BAC=1 ^ ^
JSR R5, SOBAC
.WORD -1
S10. ARG
.ENDM
PARAMS ARE STD FUNC ARCS.
.-STEP TO EVNT, OR BRST ft CHK EVNT
;INIT BURST CNT
REM X
MACRO TO CALL DSOBAC. PARAM ASSUMED ALREADY LOADED IN RO.
X
.MACRO DSOBAC
iDS06AC=1
.ENDM
.REM
JSR R5, DSOBAC
.•STEP TO EVNT, OR BRST ft CHK EVNT
MACRO TO GENERATE A CALL TO A ROUTINE TO GENERATE BURST OF CLOCKS,
X
.MACRO BRST K,?L
$fiRST=1
Af DF,R$$20F
JSR R5,L
L:
.IFF
.ENDC
.ENDM
.WORD K
JSR PC. BRST
POP R5
JSR R5.BRST
.WORD K
;SAV R5. PT TO ft SKIP ARG LIST
;# OF CLOCKS
.•BURST
.•RESTORE R5
.•BURST
;* OF CLOCKS
DHKBG ...
N0SMAC.P11
KL10 MF20 DIAGNOSTIC,
11-MAR-79 19: U
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
l«l6SMAC — THE MOS DIAGNOSTIC MACRO LIBRARY
12-JUN-8A 13:03 PAGE 53
SEQ 0107
000001
000002
)00004
)0010
)0020
)00A0
.)0100
000200
000400
001000
002000
004000
010000
020000
040000
100000
MACRO TO GENERATE A CALL TO A ROUTINE WHICH STEPS THE MBOX CLOCK ONCE,
THIS ROUTINE SUPPORTS FUNCTION BREAKPOINTS.
X
.MACRO STEP
MV^^ DF,R$$20r, JSR PC, STEP
.IIF ND^R$$20^ JSR R5.STEP
.ENDM
;STEP THE CLOCK
;STEP THE CLOCK
ACC0=0UU001
AC CI =000002
ACC2=000004
ACC3=000010
ACC4=000020
ACC5=000040
ACC6=000100
ACC7=000200
AC CI 0=000400
ACC1 1=001 000
AC CI 2=002000
AC CI 3=004000
ACC14=01QQ00
ACC15=026000
ACC16=040000
ACC17=100000
;AC MASK SYMBOLS FOR EASING THE USE OF LOADAC MACRO.
*EM
.MACRO
SLOADAC
NUMARG
.IF
IIF
,IIF
.IFF
.IF
.IIF
.IIF
.IFF
.IIF
.IIF
.ENDC
.ENDC
.ENDM
MACRO FOR CALLING ACLOAD t ACSCAT. TWO FORMATS ARE PERMITTED.
LOADAC ACMASK. ADDRESS ;CALLS ACLOAD ^ ^^^^^^
LOADAC ACMASK,<ADR1.ADR5 ADRN> ;CALLS ACSCAT
X
LOADAC AC«ASK,WDADR.?L
; RE TURNS » OF ARGS IN $$NARG
WDADR
0F,R$$20F
JSR nSA
.WORD ACMASK
.WORD WDADR
6T,$$NARG-1,L: JSR
EQ-$$NARG-1,L: JSR
POP R5
6T-$$NARG-i
NDF-$TRAPS. JSR
DF.iTRAPS, TRAP
NDF-JTRAPS, JSR
DF, STRAPS. TRAP
.WORD ACMASK
.WORD WDADR
;SAV R5, PT TO t SKIP ARG LIST
.•LOAD MASK
;PDP11 MEM ADR(S)
k. ACSCAT
PC.ACLOAD
.•RESTORE R5
R5. ACSCAT
14.
R5. ACLOAD
15.
;LD ACS FROM SCATTERED 11 ADRS
.•LOAD ACS FROM CONTIGUOUS 11 MEM
.•LOAD ACS FROM SCATTERED 11 MEM
;LOAD ACS FROM SCATTERED 11 HEM
:LOAD ACS FROM CONTIGUOUS 11 MEM
.•LOAD ACS FROM CONTIGUOUS 11 MEM
;LOAD MASK
;PDP11 MEM ADR(S)
1 r
DHKBG
HOSHAC.Pll
2560
1561
?562
>563
^56A
i565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
P
lit?
2588
?589
>590
[591
|592
593
?59A
>595
^596
>597
>598
[599
>600
[601
[602
[603
[604
>605
,606
>607
KL10 HF20 DIAGNOSTIC- PART 2 OF
11-HAR-79 19:14
2. VER
NOSMAC
.REM
.MACRO
iACBLK:
.IF
.IIF
.IIF
.IFF
.IF
.IFF
.ENOC
.ENDC
.ENDM
0.5 J.A.BARRY 29857 MACY11 30G(1063)
— THE MOS DIAGNOSTIC MACRO LIBRARY
12-JUN-84 13:03 PAGE 54
SEQ 0108
MACRO TO CALL ACBLK: A SUBROUTINE TO SET THE AC BLOCK.
X
ATBI K BN
:1 ;T0 FORCE ASSEMBLY OF SUBROUTINE
PCACBLKI .-SWITCH TO AC BLOCK (RO)
R5,ACBLK1 .-SWITCH TO AC BLOCK (RO)
D^,R$$20F,
NDF.R$$20F.
JSR
JSR
DF.R$S20F
NOV ITBN.RO
JSR PC.ACBLK1
JSR R5. ACBLK
.WORD BN
;AC BLK TO RO
.-SWITCH TO AC BLK
.-SWITCH TO AC BLOCK
;AC BLOCK #
REM X
CALLER TO PRINT PROGRAM VERSION NUMBER
X
.MACRO PNTVER
SPNTVER=1
.IIF DF,R$$20F, JSR PC, PNTVER .'PRINT VE»<SION #
.IIF ND^R$l20^ JSR R5.PNTVER .-PRINT VERSION #
.ENDM
REM X
GENERATE A CALL TO A PROGRAM WHICH INVALIDATES THE CACHE
X
.MACRO INVAL
tINVAL~1
JSR R5. INVAL .-INVALIDATE CACHE
.ENDM
REM X
MACRO PWTES GENERATES A CALL TO A SUBROUTINE WHICH PUTS AN INVISIBLE
PARAM WORD ON THE ERROR STACK. IF NO PARAM IS GIVEN, IT IS ASSUMED LOADED
ALREADY IN RO.
X
MACRO PWTES ARG
iPWTES=1 ' ; FORCE ASSEMBLY OF PWTES SUBROUTINE
.IIF NB,.ARG. NOV .ARG,RO
JSR R5.PWTES ;MOV INVISIBLE PARAM TO ERROR STACK
.ENDM
DHKBG KL10 miO
N0SHAC.P11
2609
]610
[611
\6^2
613
?6U
>615
>616
5617
1618
?619
>620
2621
2622
2623
262A
2625
2626
2627
2628
2629
2630
2631
2632
2633
263A
2635
2636
2637
2638
2639
26A0
26A1
2642
26A3
26AA
26A5
]646
[6A7
l6A8
}6A9
2650
|651
J652
>653
65A
?655
DIAGNOSTIC,
11-HAR-79 19:U
PART 2 OF 2, VER 0.5 J.A.BARRY 29857
LOOP CONTROL MACROS
MACY11 306(1063) 12-JUN-8A 13:03 PAGE 55
SEQ 0109
>658
>659
.SBTTL LOOP CONTROL MACROS
RFM X
THE PURPOSE OF THE LOOP CONTROL MACROS IS^TO SIMPLIFY THE CODING OF
LOOPS IN CIRCUMSTANCES WHERE THE LOOP PARAMETER CONTROL IS RATHER COMPLEX, AND
THE LOOP IS TO BE DONE IN MORE THAN ONE PLACE. THESE^MACROS ARE BROKEN INTO 3
BASIC GROUPS: THE LOOP DEFINITION, THE LOOP CONTROL, AND THE PRIVATE CODE
MACROS
' THE LOOP DEFINITION MACROS DEFINE THE LIMITS OF A LOOP AND THE
PARAMETERS FOR INITIALIZING THE LOOP. THEY ARE LOOP, ENDLOOP, AND STOPLOOP.
THE LOOP CONTROL MACROS ARE USED IN CONJUNCTION WITH THE LOOP PARAMETER CONTROL
SUBROUTINES. THEIR PURPOSE IS TO EASE THE INTERFACE BETWEEN THE SUBROUTINE AND
THE LOOP DEFINITION MACROS. THSES MACROS ARE LOOPCONTROL, DOLOOP, LOOPDONE, AND
ENBLPS. THE PRIVATE CODE MACROS ARE USED BY THE OTHER MACROS TO GENERATE UNIQUE
SYMBOLS. THEY SHOULD NOT BE USED DIRECTLY BY THE PROGRV?MER. ^^ _,„„^
IN STRUCTURED PROGRAMMING TERMS THESE MACROS GENERATE DO-WHILE
LOOrS RATHER THAN DO-UNTIL LOOPS. SINCE DO-UNTIL LOOPS ARE A SUBSET OF
DO-WHILE LOOPS, DO-UNTIL LOOPS CAN BE IMPLIMENTED.
X
ENBLPS IS A CONTROL MACRO AND SHOULD OCCUR ONLY ONCE IN THE PROGRAM
PRIOR TO THE FIRST USE OF THE LOOP MACRO.
ENBLPS
ne! Ill, .ERROR ill ;loop-endloop mismatch
.MACRO
.IF
.IIF
.ENDC
$LG=0
8LL=0
.ENDM
;INIT LOOP GROUP PARAMETER
;INIT LOOP LEVEL PARAMETER
THE LOOP MACRO DEFINES THE TOP OF A LOOP. ENDLOOP THE BOTTOM. ^LOOP
AND ENDLOOP MUST BE PAIRED. LOOP/ENDLOOP PaIrS MAY BE NESTED. THERE ARE
THREE PARAMETERS FOR LOOP: LCSA, SA. AND LA. LCSA IS THE LOOP CONTROL
SUBROUTINE ADDRESS. THIS SUBROUTINE IS CALLED USING A JSR R5.^ SA IS OPTIONAL
AND IF PRESENT IS THE LIST OF ARGUEMENTS USED TO INITIALIZE THE
LIST OF ARGUEMENTS PASSED TO THE SUBROUTINE EVERY TIME THRU THE
AND LA ARE OPTIONAL.
LOOP.
LOOP.
LA IS A
BOTH SA
.MACRO LOOP
$LL=$LL+1
$CN6
LCSA, SA, LA
.IIF
.IIF
.ENDM
\$LL
JSR R5,aLCSA
NB,<SA>,
SLOOP LCSA,\$LG
NB,<LA>,
.•CALL LOOP STARTUP SUBRTN
.WORD SA ; STARTUP ARG(S)
.WORD LA
.•EVERY LOOP ARG(S)
.MACRO ENDLOOP
$RDG \$LL
$ENDLO \$LGN
$LL=$LL-1
.IIF LT.SLL, .ERROR
.ENDM
;T00 MANY ENDLOOP MACROS
97
OHKBG
H0SMAC.P11
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
268A
2685
2686
2687
2688
2689
2690
2691
2692
2693
269A
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
]709
>710
>711
712
713
?714
KL10 HF20 DIAGNOSTIC,
11-MAR-79 19:14
PART 2 OF 2. VER 0.5 J.A.BARRY 29857
LOOP CONTROL MACROS
MACY11 306(1063) 12-JUN-84 13:03 PAGE 56
SEQ 0110
. STOPLOOP IS A CONVENIENCE MACRO WHICH GENERATES A JUMP TO THE FIRST
; INSTRUCTION FOLLOWING THE NEXT ENDLOOP. IT HAS NO ARGS.
.MACRO STOPLOOP
$RDG \$LL
SSTOPL \$LGN
.ENDM
. THE LOOPCONTROL MACRO MUST BE THE FIRST CODE IN A LOOP CONTROL
; SUBROUTINE. ITS ARGUEMENT IS THE ADDRESS OF THE LOOP INITIALI- ZATION
ROUTINE. THE ACTUAL LOOP CONTROL CODE SHOULD IMMEDIATELY FOLLOW THE
; LOOPCONTROL MACRO.
.MACRO LOOPCONTROL LSR
.WORD LSR .-LOOP STARTUP ROUTINE ADR
MOV (R5) + ,-(SP) .-SAVE THE FALL-THRU ADR FOR LOOPS
.ENDM
THE DOLOOP AND LOOPDONE ARE USED TO EXIT FROM THE LOOP CONTROL
SUBROUTINE. DOLOOP RETURNS TO JUST BEYOND THE LOOP MACRO. AN RTS R5 SHOULD
END THE STARTUP ROUTINE. THE OPTIONAL PARAMETER, N, OF THE DOLOOP MACRO WILL
CAUSE N*2 TO BE ADDED TO R5 BEFORE THE RTS IS EXECUfED. LOOPDONE CAUSES A
RETURN TO THE FIRST INSTRUCTION BEYOND THE ENDLOOP; THIS IS THE FALL-THRU
; ADDRESS.
.MACRO DOLOOP
.IIF
.ENDM
.MACRO
.ENDM
TST
NB,N,
RTS
N
(SP) +
ADD
R5
:DEL FALL-THRU ADR... NOT NEEDED
#<N>*2,r5 ;SKIP PARAM WORDS ON RETURN
.•RETURN to START NEXT PASS OF LOOP
LOOPDONE
MOV (SP)+,R5
RTS R5
;GET THE FALL-THRU ADR
.•RETURN TO IT. THUS EXITING THE LOOP
. THE FOLLOWING ARE THE PRIVATE CODE MACROS.
.MACRO $CNG LEV
$LG=$LG+1
$L'LEV=$LG
.ENDM
.MACRO SLOOP LCSA.ID
$B'ID=.
JSR
.WORD
R5-LCSA+2
$E^ID
.ENDM
.MACRO ,..,
$LGN=$L'LEV
.ENDM
.MACRO SSTOPL
JMP
.ENDM
;G0 TO LOOP CONTROL SUBRTN
; FALL-THRU ADR FOR THIS LOOP
SRD6 LEV
ID
SE'ID
.-EXIT THE CURRENT LOOP
•MACRO SENDLO I
iLBD=.+2-SB'ID-256.
.IIF
'=MD=.
iE
.ENDM
LE.SLBD, BR
GT.SLBD, JMP
;THE FALL-THRU ADR
SBMD
SB' ID
;D0 LOOP AGAIN
:D0 LOOP AGAIN
198
DHKBG Kl.10
M0SMAC.P11
2716
2717
2718
2719
2720
2721
2722
2723
272A
2725
2726
2727
2728
2729
2730
2731
2732
2733
273A
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
]764
765
766
767
^768
nF20 DIAGNOSTIC,
11-HAR-79 19:14
PART 2 OF 2, VER 0.5 J.A.BARRY 29857
GENERAL PURPOSE MACROS
MACYll 306(1063) 12-JUN-84 13:03 PAGE 57
SEQ 0111
.SBTTL
GENERAL PURPOSE MACROS
REM 1
THE MOSDMP MACRO IS USED TO CALL THE MOSDMP SUBROUTINE. MOSDMP IS
SIMILAR TO MASK36 IN THAT IT TYPES OUT EXPECTED, ACTUAL, AND DIS- CREPENCY
words: T IS, HOWEVER SPECIFICLY AIMED AT MF20 CONTROLLERS AND IS USED TO DUMP
THE SIGNALS WHICH IT GETS FROM THE CONTROLLER USING SBUS DIAGS.^ "^^I^ THE MOf^.Tc
MEMORY DS FILE IS AVAILABLE IT WILL ALSO NAME THE FAILING BIT(S). THE ARGUMENTS
ARE THE EXPECTED VALUE, THE ACTUAL VALUES, AND THE MASK. THERE ARE 2 ACTUAL
VALUES: THE SBUS DIAG to MEMORY WORD AND fHE FROM MEMORY WORD; THE FROM MEM WORD
MUST IMMEDIATELY FOLLOW THE TO MEM WORD. BOTH THE EXPECTED VALUE AND^THE ACTUAL
VALUES MAY BE IN AN AC IN WHICH CASE EXAMINE(S) ARE DONE AUTOMATICLY TO GET THE
WORDCS).
X
.MACRO MOSDMP
$M0SDMP=1
JSR
.IIF N6,MSK,
.IIF B,MSK,
.ENDM
EXP,ACT,MSK
R5, MOSDMP ; PLACE MOS DATA ON STK FOR LATER DUMP
.WORD MSK,ACT,EXP
.WORD ZERO.., ACT, EXP
REM X
MACRO TO LOAD THE ERROR STACK WITH A 5-BYTE PATTERN.
X
.MACRO PATERR PTR
SPATERR=1
.IIF N6,PTR, MOV #PTR,RO .-PATTERN TO ERROR STACK
JSR R5, PATERR ; PATTERN TO ERROR STACK
.ENDM
THE EXECUTE MACRO CALLS A SUBROUTINE WHICH EXECUTES A PDP-10 INSTRUCTION
AND THEN CHECKS TO MAKE SURE IT FINISHED. THE ARGUEMNT TO THE MACRO IS THE 11
ADR OF THE INSTRUCTION. IF NO ARG IS GIVEN THEN IT IS ASSUMED THE ADR IS
ALREADY IN RO.
X
.MACRO
$QXCT=
.IF
.IIF
.IIF
.IFF
.IF
.IFF
.ENDC
.ENDC
.ENDM
1
EXECUT I
B,I
DF,R$$20F,
NDF,R$$20F,
NDF,R$$20F
JSR R5,QXCT
.WORD I
JSR
JSR
PCQXCTI
R5,QXCT1
; EXECUTE THE INSTR PTD TO BY RO
.•EXECUTE THE INSTR PTD TO BY RO
MOV
JSR
#I,RO
PCQXCTI
.•EXECUTE A PDP-10 INSTR
;ADR OF THE INSTR
;PT TO INSTR TO BE EXECUTED
.-EXECUTE THE INSTR PTD TO BY RO
OHKBG -
nOSHAC.PIl
2770
2771
2772
^773
277A
2775
2776
nn
2778
2779
2780
2781
2782
2783
278A
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
'802
J803
?805
>806
5807
^808
5809
^810
2811
2812
2813
KLIO MF20 DIAGNOSTIC
11-HAR-79 '" "
..... PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 58
19 :U GENERAL PURPOSE MACROS
SEQ 0112
THE SBDIAG MACRO CALL A SUBROUTINE WHICH DOES AN SBUS DIAG. AC16 8 AC17
OF THE CURRENT BLOCK ARE CLOBBERED. THERE ARE 3 FORMS OF PARAMS: NONE SAYS SBUS
DIAG UD IS POINTED TO BY RO. 1 PARAM SAYS THAT THE PARAM IS THE ADR OF THE WORD,
AND 3 PARAMS INDICATES THE WORD ITSELF BROKEN INTO THREE 12-BIT BLOCKS A LA
UD36. SBDIAG IS INCOMPATABLE WITH THE SBUSD6 MACRO.
X
.MACRO
.SBDIAG
.IF
.IF
.NLIST
.WORD
.LIST
L:
.IFF
.IIF
.IIF
.NLIST
.WORD
.LIST
.ENDC
.IFF
. IF
.IIF
.IFF
.ENDC
.IFF
.IIF
.IF
.IIF
.IIF
.ENDC
.ENDC
.ENDC
.ENDM
SBDIAG A,B,C,?L
=1
NB,C
DF,R$$20F
JSR R5.L
SRC
Bt 1 7*4096 . ! C , <A8377*256 . > ! <B/ 1 6 . a377>
SRC
JSR PC.SBDT ;D0 SBUS DIAG... WORD FOLLOWS
POP R5 .-RESTORE R5
;SAV R5, PT TO & SKIP ARG LIST
DHK
MOS
3
3
3
JSR R5,SBDT
TRAP 4.
NDF. STRAPS.
DF. STRAPS.
SRC
B*17*4096.IC.<A6377*256.>!<B/16.8377>
SRC
;D0 SBUS DIAG... WORD FOLLOWS
;D0 SBUS DIAG... WORD FOLLOWS
NB A
ND^R$$20F
NDF .STRAPS.
DF. STRAPS.
.WORD A
JSR R5.SBDI
TRAP 5.
;ADR OF WORD
;D0 SBUS DIAG
;D0 SBUS DIAG
MOV
JSR
#A.RO
PC.SBDO
;PT TO ARG
;D0 SBUS DIAG... ADR OF WD IN RO
DF.RSS20F.
NDF .RSS20F
NDF. STRAPS.
DF. STRAPS.
JSR
JSR
TRAP
PC.SBDO
R5.SBD0
3.
.-DO SBUS DIAG... ADR OF WD IN RO
;D0 SBUS DIAG... ADR OF WD IN RO
:D0 SBUS DIAG... ADR OF WD IN RO
1 r
n
1
OHKBG KL10 HF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J. A. BARRY 29857
H0SHAC.P11 11-HAR-79 19:U GENERAL PURPOSE MACROS
MACY11 306(1063) 12-JUN-84 13:03 PAGE 59
SEO 0113
DHI
no:
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
283A
2835
2836
2837
2838
2839
28A0
28A1
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
P
\B5t
157
)58
159
iO
)1
i2
i3
^
)5
.REM
LDFSDP
FSDMSK
FSD
FSDCHK
.MACRO
.IF
.IF
.IFF
.IIF
.IIF
.ENDC
.IFF
.IF
.IIF
.IIF
.IFF
.ENDC
.ENDC
.ENDM
.MACRO
.IF
.IF
.IIF
.IIF
.IFF
.IIF
.IIF
.ENDC
.IFF
.IF
.IIF
.IIF
.IFF
.IIF
.IIF
.ENDC
.ENDC
.ENDM
HERE ARE THE MACROS FOR THE "FAST SBUS DIAG" ROUTINES:
.-LOAD FAST SBDIAG PROGRAM
MASKADR .-LOAD A MASK FOR FAST SBUS DIAG PRGM
SDWADR.AR6 .-WHERE: ^, ^ .^
:ARG=<NULL> MEANS JUST DO SBDIAG
;"FAULT*^ ==> DO SBDIAG ft FAULT ON ERROR
:D0 FUNCTION SDUADR t CHECK UNDER MSKADR
SDUADR.MSKADR
X
FSDMSK ADR
B.ADR
D^R$S20F
JSR PCFSDMI
NDF -STRAPS,
DF, STRAPS.
NDF.R$$20F
NDF- STRAPS.
DF. STRAPS.
.WORD ADR
;LD SBDIAG CHK MASK PTD TO BY RO
JSR
TRAP
R5.FSDM1
16.
JSR R5, FSDMSK
TRAP 17.
.-MASK ADDRESS
;LD SBDIAG CHK MASK PTD TO BY RO
;LD SBDIAG CHK MASK PTD TO BY RO
;LD SBDIAG CHK MASK
;LD SBDIAG CHK MASK
MOV
JSR
#ADR.RO
PC.FSDM1
;PT TO MASK
;LD SBDIAG CHK MASK PTD TO BY RO
ADR.AR6.7L
FSD
B.ADR
B.ARG
Df,RSS20F.
NDF.RSS20F,
DF,RSS20F.
NDF.RSS20F.
DF.RSS20F
JSR R5.L
.WORD ADR
B.ARG.L:
NB.ARG.L:
POP R5
B.ARG, JSR
NB.ARG. JSR
.WORD ADR
JSR
JSR
JSR
JSR
PCFSDl
Rf;.FSD1
PC.FSDCH1
R5,fSDCHl
.•FAST SBDIAG. WD ADR IN RO
.•FAST SBDIAG, WD ADR IN RO
;FAST SBDIAG. ADR IN RO. PUNT ON ERR
;FAST SBDIAG. ADR IN RO, PUNT ON ERR
JSR
JSR
;SAV R5. PT TO ft SKIP ARG LIST
: SBDIAG WORD ADDRESS
k.FSD ;D0 FAST SBUS DIAG
PC.FSDCH ;D0 FAST SBDIAG. FAULT ON ERR
.•RESTORE R5
R5.FSD .-DO FAST SBUS DIAG
R5.FSDCH ;D0 FAST SBDIAG, FAULT ON ERR
: SBDIAG WORD ADDRESS
1 r
DHKBG
H0SHAC.P11
^870
!871
P
?875
>876
1877
|878
5879
g880
>881
2882
2883
288A
2885
2886
2887
2888
2889
2890
2891
2892
2893
289A
2895
2896
28'^7
2893
2899
2900
2901
2902
KL10 «F20 DIAGNOSTIC, PART 2 OF
11-HAR-79 19: 1A
000200
100000
2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 60
GENERAL PURPOSE MACROS
SEQ 0114
D^
ME
.IWCRO LDFSDP
iF SD=1
.ENDM
JSR PCLFSDP
.•FORCE ASM OF FSD CODE
.MACRO FSDCHK T0MEM.MSIC.7L
.IF DF.R$$20F
JSR R5.L
.WORD MSKJOMEM
JSR PC. FSDCHK
POP R5
.IFF
.ENDC
.ENDM
JSR R5. FSDCHK
.WORD MSK.TOMEM
.-LOAD THE FAST SBUS DIA6 PROGRAM
;SAV R5, P TO & SKIP AR6 LIST
.-MASK I FUNCTION ADDRESSES
;D0 SBUS D I AG ft CHECK
.•RESTORE R5
;D0 SBUS DIA6 t CHECK
:MASK t FUNCTION ADDRESSES
.MACRO RESET AR6.7L
$RESET=1
.IF DF.R$$20F
JSR R5,L
L:
.IFj--
.ENDC
.ENDM
.WORD ARC
JSR PC. RESET
POP R5
JSR R5. .RESET
.UORD ARG
;SAV R5, PT TO ft SKIP ARG LIST
.•RESET SPECIFIED HARDWARE
.•RESTORE R5
.•RESET SPECIFIED HARDWARE
CPU=BIT7 ;FORCE MINIMAL MASTER RESET
SBUS=BIT15 ;FORCE SBUS RESET
T r—
'T r
DHKBG
H0SHAC.P11
290A
2905
2906
2907
2908
2909
2910
2911
2912
2913
29U
2915
2916
2917
2918
2919
2920
2921
2922
2923
292A
2925
2926
2927
2928
2929
2930
2931
2932
2953
2934
2935
2936
2937
2936
2939
2940
m^
^942
1943
1944
2% 5
2946
KL10 «F20 DIAGNOSTIC, PART 2 OF
11-«AR-79 19:14
2, VER 0.5 J.A.BARRY 29857
GENERAL PURPOSE MACROS
MACYll 306(1063) 12-JUN-84 13:03 PAGE 61
SEQ 0115
D
n
.REN
WHERE:
THE FOLLOWING IS THE MACRO USED TO LOAD MULTIPLE AC BLOCKS:
MABL <B0M„B1 «,.... B6M>,TDEA,SJDATA
B0M.,.a6K ARE THE AC LOAD MASKS THE SAME AS USED BY LOADAC.
TDEA IS THE FIRST 11 ADR OF THE TEN DATA. _ ^ ^^
SJDATA IS THE 16 BIT DATA FOR THE RH END OF THE STARTUP JAB
X
.MACRO
$MABL=1
X=0
2=1
.IRP
.IIF
2=2*2
.ENDR
.IF
.HF
.IRP
.IIF
.ENDR
.IIF
.IJF
.IFF
.IF
.IIF
.IIF
• IFF
.IIF
.IIF
EWDC
.IRP
.IIF
.ENDR
.ENDC
.ENDM
KA8L
BMS,EA,SJ,?L
Y,<aKS>
NB.Y.X=X^-Z
DF.R$$20f
JSR R5,L
NB.SJ, .WORD SJ
.WORD X,EA
Y,<a«s>
NB„V. .WORD V
B,SJ,L:
NB.SJ,L:
POP R5
JSR
PC.MABL
JSR
;SAV R5, PT TO ft SKIP ARG LIST
;RH 16 BITS OF STARTUP JAB INSTRUCTION
;AC BLOCK MASK t INITIAL 11 ADR OF 10 DATA
;AC LOAD MASK(S)
;LD AC PRGM. NO SF ADR GIVEN
B SJ
NDF. STRAPS.
DF, STRAPS,
NDF, STRAPS.
DF. STRAPS,
.WORD SJ
.WORD X,EA
Y,<8MS>
N6«Y, .WORD
JSR
TRAP
JSR
TRAP
PC .NABLX
.RESTORE R5
R5,MABL
12.
R5.MABLX
13.
;SPklFY ST ADR, LD AC PRGM
;LD AC PRGM, NO ST ADR GIVEN
.LD AC PRGM. NO ST ADR GIVEN
.•SPECIFY ST ADR. LD AC PRGM
SPECIFY ST ADR, LD AC PRGM
;RH 16 BUS OF stARTUP JAB INSTRUCTION
;AC BLOCK MASK ft INITIAL 11 ADR OF 10 DATA
;AC LOAD MASK(S)
■~1
r
-n.
0103
OHKBG -
NOS«AC.Pn
29A8
29A9
2950
2951
2952
2953
295A
2955
2956
2957
2958
2959
2%0
2961
2962
2963
296A
2965
2966
2967
2%8
2969
2970
2971
2972
2973
2974
2975
KLIO liF20 DIAGNOSTIC-
11-HAR-79 19:U
PART 2 OF 2, VER 0.5 J. A. BARRY 29857 MACYll 306(1063) 12-JUN-8A 13:03 PAGE 62
GENERAL PURPOSE MACROS
SEQ 0116
000001
000002
000003
.REM
|REL0AD=1
$IND36=3
DEFERRED LOAD CODE DEFINITIONS FOR SUBROUTINE LDEFER
X
; FORCES RELOAD OF WORD EACH TIME LDEFER IS CALLED
;HOVE TSTCON INTO SBUS DIA6 WORD I RELOAD iT ,„ ^^^
-PSEUDO- 36-BIT WORD HAS ADR OR DISP(RO) OF REAL 10 WORD
RFM X
IND36 IS USED IN CONJUNCTION WITH MABL AND THE LDEFER SUBRTN. ITS
PURPOSE IS TO PROVIDE AN "INDIRECT" LOAD FACILITY FOR LDEFER. THE MACRO
GENERATES A PSEUD0-36-BIT WORD WHICH CONTAINS A POINTER TO THE ACTUAL WORD IN
PDP-11 MEMORY. IF THE ADDRESS IS < THE DIAGNOSTIC START ADDRESS (3000) THEN THE
11 ADR USED IS THE ADR Ho (AT TIME OF CALL TO LDEFER), OTHERWISE THE ADDRESS
IS USED DIRECTLY. THE OPTIONAL SECOND ARGUMENT IS A LABEL FOR THE ADR WORD
WHICH THE MACRO CREATES.
X
.MACRO
.NLIST
X=.
.EVEN
.IIF
.=X*4
.LIST
.ENDM
IND36 ADR, LABEL
N6, LABEL, LABEL=.
.WORD ADR
.BYTE $IND36*16.
;REAL ADDR OF 10 WD IN 11 MEM
; INDIRECT FLAG
■■~1
aik A A^ £ '
2 0104
DHKBG KLIO I1F20 DIAGNOSTIC, PART 2 OF I. VER 0.5 , J; A. BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 63
H0SHAC.P11 11-I1AR-79 19: U GENERAL PURPOSE MACROS
SEQ 0117
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3U17
3018
3019
3020
3021
3022
3023
3024
3025
3026
RFM Z
MACROS BLK10, XIO, X010, AND ENDBLK ARE ALL RELATED. BLKIO AND ENDBLK
ARE USED TO ENABLE THE CALCULATION OF PDPIO SYMBOLIC RELATIVE ADDRESSES. XIO
AND XOIO ARE THE SAME AS 110 AND 1010 EXCEPT THAT THEY USES THE RELATIVE
/BdRESSES instead of the ABSOLUTE NUMBERS USED BY THE 'I' MACROS.
X
Mff-NDF.RELEAStftJSVMfs^T"" feg^' "'iriSrlSJlNSlON BINARY SO THAT U IS AVAILABLE
.ENDM
.MACRO
.ENDM
.MACRO
.ENDM
XIO OP,AC,I,Y,X.DLF^ ^
110 0P,AC.I,\Y-iEB/5+$TB,X.DLF
XOIO OP,DEV,I,Y,X.DLF^
1010 0P.DEV,I.\Y-iEB/5+$TB,X.DLF
AM
.MACRO ENDBLK
$TL=.-$EB/5
.IF N8.AM
AM=0
.REPT $TL
AM=AM+AM+1
.ENDR
.REPT STB
AM=AM+AM
.ENDR
!lIF NDP,RELEAS8R$$20F,.NLIST
.ENDM
; NUMBER OF PDPIO WORDS IN THE BLOCK
MEB
MY VERSIONS OF UD36, 110, AND 1010 ARE THE SAME AS THOSE IN PRM11 EXCEPT
THAT 1) THEY ALLOW SETTING A VALUE INTO THE UNUSED 4 BITS OF A 10 WORD IN 11
MEMORY, 2) INDIRECTION MAY NOW BE SPECIFIED USING AN a INSTEAD OF A 1, AND 3)
THEY ASSEMBLE FASTER.
%
.MACRO
XsO
.IIF
.NLIST
.BYTE
.BYTE
.LIST
.ENDM
WD36
A,B,C,F
NB, F,X=$'F
77iC , C87400/400 ! <B&1 7*20> ,B87760/20
A8377,A47400/400!<X*20>
SRC
OHKBG KLIO m20 DIAGNOSTIC-
H0SHAC.P11 11-NAR-79 19: U
PART 2 OF 2, VErl 0.5 .. ._
GENERAL PURPOSE MACROS
J.A.BARRY 29857 MACYll 30G(1063) 12-JUN-84 13:03 PAGE 64
SEQ 0118
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
30A0
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
no
OP.CAC,CI,CAD.CXR,F
.MACRO
ADH=0
ADL=0
.IF NB-CAD
llIF GE,<ADL-10000>,ADH=ADL/10000
ADL=10*<ADHi7777>+AD1
.ENDR
.ENDC
AC=0
.IIF NB,CAC.AC=CAC
1=0
.IIF NB,CI,I=1
XR=0
.IIF NB.CXR,XR=CXR
NB,F,X=$'F
SRC
A0L&377,ADL/400!<ADH*2008377>,AC81*200+<I*100+<XR*4»+<ADH/2>
0P&37*10+<AC/2>,OP/40!<X*20>
SRC
.IIF
.NLIST
.BYTE
.BYTE
.LIST
.ENDM
.MACRO 1010 0P,DV,CI,AD,CXR.F
1=0 ,
.IIF NB.CIJ=1
XR=0
.IIF NB,CXR.XR=CXR
X=0
.IIF NB,F.X=$'F
.IF B,DV
X0P=$'0P
XDV=$$'0P
.IFF
X0P=0P
XDV=DV
.ENDC
ADH=0
ADL=0
JRPC AD1 AD
!lIF GE,<ADL-10000>,ADH=ADL/10000
ADL=10*<ADL&7777>+AD1
.ENDR
NLlST SRC
!byTE ADL8377,ADL/400!<ADH*200&377>,XOP61*200kI*100+<XR*4»+<ADH/2>
.BYTE XDVft374+<X0P/2> , XDV/400+1 6 ! <X*20>
.LIST SRC
.ENDM
DHKBG
MBMAC.
3554
3555
3556
3557
3558
3559
356C
3561
3562
3563
356<
3571
3572
357^
3575
357<
357?
357?
357S
358(
3581
358:
358:
358^
358:
358(
358;
3581
DHKBG KL10
M0SHAC.P11
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
309A
3095
3096
3097
3098
3099
3100
3101
1102
[103
1lOA
3105
3106
3107
MF20 DIAGNOSTIC- PART 2
11-MAR-79 19:14
OF
2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 65
GENERAL PURPOSE MACROS
REM X
THE READAC MACRO CALLS A SUBROUTINE WHICH EXAMINES AN AC FROM THE
CURRENT OR SPECIFIED BLOCL AND CHECKS TO MAKE SURE THAT THE EXAMINE WORKED ^^
PROPERLY. RO POINTS TO W06d UPON RETURN. LEAVING THE BLOCK PARAM OUT SAYS TO
USE THE CURRENT JLOCK.^^^ ^^^ ^^^^^ ^^^ ^^ ^^ ^ ^^^^^^^^ ^^ ^^^^^^^^
X
SEQ 0119
.MACRO READAC
$READAC=1
BLK.AC.7L
.IF
.IIF
.IIF
L:
.IFF
.IIF
.IIF
.ENDC
.ENDM
DF,R$$20F
JSR R5,L
B.BLK,
NB.BLK,
JSR
POP
.BYTE -I.AC
.BYTE BLK.AC
PC. READAC
R5
JSR
B.BLK.
N6.BLK.
R5, READAC
.BYTE -I.AC
.BYTE BLK.AC
;SAV R5. PT TO I SKIP ARG LIST
.-READ THE SPECIFIED ACCUMULATOR
.•RESTORE R5
.•READ THE SPECIFIED ACCUMULATOR
•MACRO COPYAC BLK.AC.ADDR
iC0PYAC=l
JSR R5. COPYAC
.IIF B.BLK, .BYTE -I.AC
.IIF NB.BLK- .BYTE BLK.AC
.WORD ADDR
.ENDM
.•COPY THE AC TO THE SPECIFIED ADDRESS
1
DHKBG -
H0SMAC.P11
KLIO HF20 DIAGNOSTIC,
11-HAR-79 19:U
PART 2 OF 2, VER 0.5 J.A.BARRY 29857
GENERAL PURPOSE MACROS
MACYll 306(1063) 12-JUN-84 13:03 PAGE 66
SEQ 0120
RFM 1
REGISTER SAVE AND RESTORE RffiJ^Ni?.^:SAV.4;; SAVE W7RI ON JHE STA«
"HSIA" RESTORES THOSE RE JISTERS. ^H^.rV' IS EQIVALENT T0^''RST.4" THEN JRTS
RS*^". THE CORRESPONDING SUBROUTINES HAVE STACK CHECK WHEN SDEBUG IS IN FORCE.
.MACRO
.IIF
.IIF
.ENDM
.MACRO
.IIF
.IIF
.ENDM
.MACRO
.IIF
.IIF
.ENDM
.MACRO
.ENDM
.MACRO
.ENDM
.MACRO
.ENDM
SAV.A
DF,R$$20F,
ND^R$$20^
RST.A
DF,R$$20F.
NDF.R$$20F.
RA.R5
DF.R$$20F,
NDF.R$$20F,
JSR
JSR
JSR
JSR
JMP
jr'
PCSAV.S
PC.SAV.A
PC,RST.5
PCRST.A
R5.PC
R4.R5
;SAVE R1-R5
.•SAVE R1-RA
.•RESTORE R1-R5
.•RESTORE R1-R4
.•RESTORE R1-R5 l DO AN RTS PC
.•RESTORE R1-R4 ft DO AN RTS R5
SAV.5
JSR
RST.5
JSR
R5.PC
JMP
PC. SAV.5
PC. RST.5
R5.PC
.-SAVE R5-R1 ON STACK
.•RESTORE R1-R5 FROM STACK
.•RESTORE R1-R5 FROM STACK I DO RTS PC
OHKBG
N0SHAC.P11
137
138
139
UO
HI
U2
143
UA
H5
146
147
148
149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
KL10 HF20 DIAGNOSTIC ,
11-NAR-79 19: U
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 HACY11 30G(1063) 12-JUN-84 13:03 PAGE 67
SIMPLE CALLER TYPE MACROS
SEQ 0121
(186
Il87
.SBTTL
-MACRO CALPAR
iCALPAR=1
JSR
.ENDM
SIMPLE CALLER TYPE MACROS
PC, CALPAR
.MACRO SETPAR PARBIT,?L
$SETPAR=1
.IF DF.R$$20F^
JSR R5.L
.WORD PARBIT
JSR PC. SETPAR
POP R5
.IFF
.ENDC
.ENDM
JSR R5. SETPAR
.WORD PARBIT
.MACRO CNTSD ADR
$CNTSD=1
.IF
.IIF
.IIF
.IFF
.IF
.IFF
.ENDC
.ENDC
.ENDM
.IF
.IIF
.IIF
.IFF
.IF
.IFF
.ENDC
.ENDC
.ENDM
B.ADR
D^R$$20F,
NDF,R$$20F,
NDF.R$$20F
JSR R5, CNTSD
.WORD ADR
JSR
JSR
MOV
JSR
.MACRO XX
$XX=1
#ADR,RO
PCCNTSDI
ADR
B.ADR
D^R$$20F,
NDF,RS$20F,
NDF.R$$20F
JSR R5.XX
.WORD ADR
JSR
JSR
MOV
JSR
#ADR.RO
PC, XXI
;CALC PARITY OF VALUE IN RO
;SAV R5. PT TO t SKIP AR6 LIST
;SET PARITY BIT IN RO USING PARBIT
.•RESTORE R5
;SET PARITY BIT IN RO USING PARBIT
PCCNTSDI
R5.CNTSD1
;CONTR # TO SBDIAG WD. ADR IN RO
;CONTR # TO SBDIAG WD. ADR IN RO
;CONTR # TO SBDIAG WD (ADDR BELOW)
;PT TO SBDIAG WD
;CONTR # TO SBDIAG WD (ADDR IN RO)
PC. XXI
R5.XX1
:D0 INSTR (ADR IN RO) t EXAM ACO
;D0 INSTR (ADR IN RO) ft EXAM ACO
;EXEC INSTR (ADDR BELOW) t EXAM ACO
;PT RO AT INSTR
:EXEC INSTR (ADDR IN RO) I EXAM ACO
KL10 NF20 DIAGNOSTIC,
HOSMAC.PiT 1T-HAR-79 19: 1A
DHKBG
D1A5N0SIIC. P«T 2 Of 2. VER Osf^,^•^Af^?g^??f'JACROr'" """""
12-JUN-8A 13:03 PAGE 68
SEQ 0122
DHk
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
320A
3205
3206
3207
3208
3209
3210
3211
3212
pCM X
SETRAM IS USED TO SET ALL THE LOCATIONS OF A PARTICULAR SET OF MOS
CONTROL RAHS TO A PARTICULAR VALUE. THE PARAMETER I§ AN SBDIAG WORD WITH (1)
THE MAXIMUM RAM ADDRESS, (2) THE DESIRED RAM DATA, (3) THE PROPER LOAD
ENABLE (S), AND (4) THE JUNCTION NUMBER. THE WORD IS IN WD36 FORMAT. THE
CONTROLLEI^ NUMBER IS RETRIEVED FROM TSTCON.
X
.MACRO SETRAM
$SETRAM=1
A,8,C,?L
.IF
.=.-1
L:
.IFF
.IIF
.IIF
. = .-1
.ENDC
.ENDM
DF.R$$20F
JSR R5,L
WD36 A,6,C
JSR
POP
PC. SETRAM
R5
NDF.$TRAPS. JSR
DF, STRAPS. TRAP
WD36 A.B.C
;SAV R5. PT TO S SKIP ARG LIST
; SBDIAG WD NECESSARY TO DO IT
;SET CTL RAM LOC N TO TO GIVEN VALUE
.•RESTORE R5
R5, SETRAM ;SET CTL RAM LOC N TO TO GIVEN VALUE
18. ISET CTL RAM LOC N TO TO GIVEN VALUE
.-SBDIAG WD NECESSARY TO DO IT
"1
10
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5^^ J.A.BARRY 29857 MACY11 306(1063)
M0SMAC.P11 11-HAR-79 19:lA SIMPLE CALLER TYPE MACROS
12-JUN-84 13:03 PAGE 69
SEQ 0123
321 A
3215
3216
3217
3218
3219
3220
3221
3222
3223
322A
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
RFM 1
CALLER FOR ROUTINE TO COMPARE 5-BYTE ACTUAL S EXPECTED DATA
(TRAILING PARAMETERS). PARAMS ARE PDP11 ADDRESSES ONLY.
EXP = POINTER TO EXPECTED DATA
ACT = POINTER TO ACTUAL DATA
HSK = POINTER TO MASK (36-BIT, OPTIONAL)
* ' .-GENERATES MASK36 CALL
.MACRO MASK36 EXP,ACT,MSK
$MASK36=1
JSR R5,MASK36
.IIF B,MSK, .WORD ZERO.
.IIF NB.MSK, .WORD MSK
.WORD EXP
.WORD ACT
.ENDM
; 36-BIT COMPARE
:MAS' POINTER
;EXPECTEDJfCiNTER
;ACTUAL POINTER
CALLER FOR ROUTINE TO COMPARE 5-BYTE ACTUAL AND EXPECTED
DATA. PARAMETERS PASSED IN REGISTERS I ARE PDP11 ADDRESSES ONLY.
R2 = MASK POINTER
R3 = EXPECTED POINTER
R4 = ACTUAL POINTER
X
.MACRO MSK36R
$MSK36R=1 ^^^ R5,MSK36R ; 36-BIT COMPARE
.ENDM
REM X
CALLER FOR ROUTINE TO COMPARE DATA FROM THE DTE-20 TO SOME
EXPECTED DATA (TRAILING PARAMETI^Si . PARAMS ARE PDP11 ADRESSES ONLY.
EXP - POINTER TO EXPECTED DATA
MSK = POINTER TO MASK (36-BIT, OPTIONAL)
; GENERATES MSKDAT CALL
DHK
MBn
3
3
3
3
3
3
3
3
3
3
3
3
\
\
\
\
\
.MACRO MSKDAT
$MSKDAT=1
JSR
.IIF
.IIF
.ENDM
B,MSK,
NB,MSK
!wOR6 EXP
EXP, MSK
R5, MSKDAT
.WORD ZERO..
.WORD MSK
;DTE20 COMPARE
:MASK POINTER
.•EXPECTED POINTER
r
11
DHKBG -
M0SMAC.P11
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
KL10 MF20 DIAGNOSTIC,
11-MAR-79 19:U
PART 2 OF I. VER 0.5 J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03 PAGE 70
SIMPLE CALLER TYPE MACROS
SEQ 0124
0H»
DI/
000001
000002
000004
000010
.MACRO STKMEP ARG
$STKMEP=1
JSR R5, STKMEP
.WORD ARG
.ENDM
; STACK MOS ERROR POINTERS
;DATA TO STACK
TCN=1
TGN=2
TBN=4
TADR=10
.•CAUSES STACKING OF TSTCON
; STACKS GRPN
.•STACKS BIGN
.•STACKS THE ERROR ADDRESS (ERRADR)
THIS MACRO CAUSES THE STACKING OF THE ERROR MAP DATA DEFINED IN STKEMD
; FOR PRINTOUT AT THE PROPER TIME.
.MACRO STKEMD
$STKEMD=1^^^ PC. STKEMD ;ERR MAP DATA TO ERR STK
.ENDM
THIS MACRO CALLS A SUBROUTINE WHICH PRINTS THE APR ERROR FLAGS.
EITHER THE RHE OF THE CONI APR WORD IS ALREADY IN RO OR THE TP POINTS TO THE
WORD (WHICH MAY BE IN AN AC).
.MACRO PNTAPR ARG
$PNTAPR=1
.IF N6.ARG
JSR R5, PNTAPR
.WORD ARG
•if''
JSR R5.PNTAP2
.ENDC
.ENDM
. MACRO TO CAUSE PRINTING OF ENABLED/DISABLED FOR THE SPECIFIED FLAG
.MACRO PENDIS FLGADR
$PENDIS=1 R5,pENDIS ;PRINT IF FLAG ENABLED OR DISABLED
.WORD FLGADR 'FLAG ADDRESS (0=DISABLED)
.ENDM
.•PRINT APR ERR FLAGS
;ADR OF CONI APR WORD
.•PRINT APR FLAGS IN RO
r
DHKBG .
H0SMAC.P11
KLIO MF20 DIAGNOSTIC
11-MAR-79 " ■
o.aw PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
19:U SIMPLE CALLER TYPE MACROS
12-JUN-84 13:03 PAGE 71
SEQ 0125
DH
DI
. MACRO TO CAUSE INPUT ft CHECK OF MOS CONTROLLER NUMBER
.MACRO GMCN
$6MCN=1 ^^^ PC, GMCN ;6ET MOS CONTROLLER NUMBER
.ENDM
RFM X
THE JAB MACRO EXECUTES A JAB (JUMP TO AC BLOCK) INSTRUCTION USING THE
PARAMETER (TP OR IN RO) AS THE RH 16 BITS OF THE INSTRUCTION. THE PARAM IS OF
THE FORM PPPPXY WHERE PPPP IS A 10-BIT PC VALUE, X IS THE 3-BIT NEU CURRENT AC
BLOCK NUMBER, 8 Y IS THE NEW PREVIOUS BLOCK.
.MACRO JAB RH16
$JABS=1
.IF B,RH16
JSR R5,JABS1
.IFF
JSR R5,JABS
.WORD RH16
.ENDC
• ENDM
.REM
.NLIST
.LIST
;D0 JAB INSTR, RH 16 BITS ALREADY IN RO
;D0 JAB INSTR
;RH 16 BITS OF INSTR
X
UMAC
X
IS USED TO ASSEMBLE KLiO MICROCODE INTO A PDP-11 DIAGNOSTIC
.MACRO UMAC ADDR.Xl ,X2,X3.X4.X5,X6.X7
SRC
B72.79=
864.71=
856.63=
848.55=
840.47=
832.39=
824.31=
816.23=
808.15=
800.07=
8DS0.4=
.WORD
.BYTE
.BYTE
.BYTE
.BYTE
.EVEN
SRC
.ENDM
«X581 00>**D2> ! «X2&4000>/*D64> ! «X5640>/*D4> ! «X5&20>/*D8>^ ^^
«X3J2000>/*D8> ! «X3i1 000>/*D1 6> ! «X38200>/*D1 6> ! «X381 00>/*D32>
«X3fc7>**D32> ' «X6ft1 00>/*D4> ! <X481 0> ! <X482>
<<X5ll 7>**D1 6> ! <<x5i40>/*D4> ! <<X6ft400>/*D64> ! «X3i20>/:D8> ! <<X6a200>/*D1 2
<X44300> ! <<X4t20>**D2> ! «X5ft200>/*D1 6> ! «X384000>/*D51 2> ! «X5&3000>/*D51 2
«X2H >* •DI 28> ! «X7|70>**D2> ! «X3|400>/*D32> ! <X7|7> ^^^^ ^
«X2J2000>/*D8> ! «X2|70>**D2> ! «X2»2>**D4> ! «X74700>/*D64>
«X3|1 Q>**D1 6> ! «X6l7000>/*D32> ! «X211 700>/*D64>
<xii377>
«X4ft400>/*D2> I «X4a7000>/*D32> ! «X4»1 >**D8> ! «X1 ft3400>/*D256>
<X6ft77>
ADDR ,
B72. 79,864.71 .856.63
B48. 55, 840.47,832. 3?
824.31.816.23,808.15
800.07,BOS0.4
UMAC
1
DHKBG KL10
H0SMAC.P11
33A8
33A9
3350
3351
3352
3353
335A
3355
3356
3357
3358
3359
3360
3361
3362
3363
336A
3365
3366
3367
3368
3369
3370
3371
3372
3373
337A
I1F20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACYll 30G(1063) 12-JUN-84 13:03 PAGE U
11-HAR-79 19:U SIMPLE CALLER TYPE MACROS
REM Z
OVRLOD IS USED TO LOAD A MICROCODE OVERLAY DEFINED BY UMAC.
X
1
.MACRO OVRLOD ADR, SI Z
$0VRL0D=1
JSR R5, OVRLOD
.WORD ADR,SIZ
.ENDM
.MACRO INIUDF X
$INIUDF=1
JSR R5, INIUDF
.WORD X
.ENDM
.MACRO FATAL ID
.WORD FATAL
.ENDM
.MACRO LDEFER
$LDEFER=1
.IIF NDF .STRAPS,
.IIF DF, STRAPS,
.ENDM
;LD UCODE OVERLAY
; GIVEN PDP-11 ADDR I SIZE OF OVERLAY
;INI USER DEFINED FORMAT ERR STK DUMP
;ADR OF FORMAT PRINT OUT ROUTINE
.•ASSEMBLE AS SIMPLE EMT FATAL. NO IDENTIFIER
SEQ 0126
Dl
D
JSR PC, LDEFER
TRAP 10.
:D0 DEFERED LOADS NOW
;D0 DEFERED LOADS NOW
AJ «■» AV *%A^r *9/
r
"1
DHKBG KL10 «F20 DIAGNOSTIC, PART 2 OF
HBHAC.PII 16-JAN-84 16:05
3582
3383
338A
3387
3388
3389
3390
3391
3392
3393
339A
3395
3396
3397
3398
3399
3A00
3401
3A02
3403
3404
3405
3406
3407
3408
3409 000040
3410 000044
3411
3412
3413
~.14
,15
^16
i17
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 74
MF20 PROTOTYPE TIMING MACROS (DERIVED FROM M0STIM.P11)
SEQ 0127
r
D
D
.SBTTL
HF20 PROTOTYPE TIMING MACROS (DERIVED FROM M0STIM.P11)
RFM Z
THIS FILE PROVIDES THE MACROS AND VARIABLE Slf/illTIOWS NECESSARY FOR
GENERATING A 32 TICK HOS TIMING FILE. THE DATA IS ASSUMED TO START FROM TICK
(TIMING RAM LOCATION 0). THE ASSEMBLY WILL GENERATE A -BIN FILE. ^ IT IS
NECESSARY TO CONVERT THIS TO All FORMAT. THE FILENAMES HAVE THE FOLLOWING
FORMAT:
WHERE:
n
F
ss
N
X
1)
MFSSNX
"A" OR 'B".
"32", OR
'64'
THE KLIO MODEL DESIGNATOR. EITHER
IS "f ' FOR MF20 CONTROLLER.
THE RAM SIZE IN K, EITHER "04", "16*
T^ 'ii" FOR NLtfKER
THE TIMING NUHBER! A SINGLE DIGIT FROM "0" TO '3". THE TIMING NUMBER
IS UNIQUE FOREACri DIFFERENT TIMING FOR A GIVEN RAM SIZE. THIS NUMBER
HAS NO RELATION TO MANUFACTURER OR RAM TYPE.
THE MACROS MUST BE USED IN THE FOLLOWING ORDER:
10 OR FEWER TIMSI6 MACROS TO DEFINE TIMING SIGNALS. NOTE THAT THE
PROTOTYPE MF20 DEFINITION HAS ONLY 7 DIFFERENT TIMING SIGNALS.
1 CALL TO TIMING TO GENERATE THE TIMING ID. ^ ^
AS MANY CALLS TO TICK AS NEEDED TO GENERATE THE TIMING WORDS.
FINALLY, 1 CALL TO ENDTJM TO CLEAN UP.
t
.•MAXIMUM NUMBER OF TICKS IN TIMING FILE
.•TIMING FILE SIZE (PDP11 WORDS)
MNTITF=32.
TIMFS=36.
REM Z
THE TIMSIG MACRO DEFINES SYMBOLS USED IN THE GENERATION OF THE TIMING
WORDS. ARGUMENTS ARE SIGNAL NAME ( <7 CHARACTERS) AND A BIT WHICH CORRESPONDS
™ ™^ ^^^E^W^r'SirrTlJ Uhi^-fiUs m^i u 'irpar-. trpar is the
TIMING RA« PARITY BIT. IT MUST BE DEFINED BUT NEVER USED hS IT IS HANDLED
AUTOMATICLY. PARITY IS ASSUMED TO BE ODD.
X
.MACRO
.IIF
.IIF
NAME=1
.REPT
NAME^NAHE^NAME
.ENDR
.ENDM TIMSIG
TIMSIG NAME.BIT
LT.*D'BIT-21., .ERROR
GT,*D'BIT-27., .ERROR
35.-*D'BIT
.•TIMING BIT OUT OF RANGE (21-27. MF20 PROTO)
.•TIMING BIT OUT OF RANGE (21-27. MF20 PROTO)
. 4 « A y 9 \
r^ iiui tkJ 4T.A7 nA/T 7C
DHKBG KL10 NF20 DIAGNOSTIC. PART 2 OF I, VER 0.5 J-A-BARRY 29857 MACYll 30G(]063) 12-JUN-84 13:03 PAGE 75
IWIAC.PII 16-JAN-8A 16:05 MF20 PROTOTYPE TIMING MACROS (DtRIVtD FKOn m^Mn.vw)
SEQ 0128
3A30
3A31
3A32
|A33
3A3A
3A35
5A36
3A37
3A38
5439
y*AO
3^»A1
3AA2
?AA3
3AAA
3AA5
3AA6
3AA7
3AA8
3AA9
3A50
3A51
3A52
3A53
3A5A
3A55
3A56
3A57
3A58
3A59
3A60
3A61
"162
163
;6A
^65
;66
167
.168
3A69
3A70
000101
000102
032060
033061
031063
032066
RFM X
THE TIMING MACRO GENERATES THE TIMING ID. THE FOUR. ARCS ARE: THE KLIO
MODEL. EITHER 'XLlOA" OR "KLIOB"; THE MOS RAM SIZE. EITHER "AK ' ••16K'' 32K ,
OR ••6iK'^' THE TIMING NUMBER IN THE RANGE TO 3; AND FINALLY TH! DECIMAL VALUE
TO BE LOADED INTO THE REFRESH INTERVAL COUNTER (BETWEEN 16 AND 127, TYPICALLY IN
THF TWENTIES)
THE FIFTH ARGUMENT, OTHR, IS RESERVED FOR FUTURE USE.
$KL10A='A
$KL10B=*8
$SIZAK='t)A
|SIZ16K="16
isiZ32K='32
$SIZ6AK="6A
.•SYMBOLS USED BY TIMING MACRO
.MACRO
.HF
TIMING KLMOD.RAHSIZ.TIMNO,REFR.OTHR
NDF,RELEAStR$i20F,
.BYTE S'KLMOD.'F
.WORD $SIZ'RAMSIZ
.BYTE 'N."TIMNO
.IIF NDF.TRPAR, .ERROR
X=0 : CURRENT TICK #
Y=1000111tRPAR : CURRENT TIMING
.IIF LT,'*D'REFR-16., .ERROR
.IIF 6T,*D'REFR-127.,
.BYTE •D'REFR,OTHR
.ENDM TIMING
.LIST MEB
;KL10 MODEL ID I F FOR MF20
;RAM SIZE _
:THE LETTER N & THE TIMING NUMBER
.•TIMING ftAM PARITY BIT NOT DEFINED
VALUE
.•REFRESH TICK COUNT TOO LOW
.ERROR .•REFRESH TICK COUNT TOO
.•REFRESH BYTE AND OTHER DATA
HIGH
REM Z
THE TICK MACRO GENERATES THE TIMING WORDS. THESE WORDS ARE THE RIGHT-
HAND-END BITS (20-35) OF AN SBUS DIAG FUNCTION 11 TO MEMORY. THE ARGUMENTS ARE
N. THE DECIMAL TICK NUMBER; TIMSIG, THE SIGNAL NAME DEFINED BY A TIMSIG MACRO ^
CALL- AND LOHI, A VALUE EQUAL TO ''L" FOR OR "H" FOR 1. ALL SIGNALS START OUT
AS (L) EXCEPf TRPAR. TRPAR MUST NOT BE GIVEN AS A SIGNAL AS IT IS HANDLED^^
AUTOMATICLY. IF TWO OR MORE SIGNALS CHANGE ON THE SAME TICK, AS MANY CALLS TO
TICK MAY BE DONE AS NECESSARY WITH THE SAME TICK NUMBER (N). TICK NUMBERS MUST
BE IN ASCENDING ORDER.
%
"•— T
...«>w44 V/\.>/4A^V\
4 '^ ^ II ■&!_ O i
IT. AT DA/:C 7L
-~!,
n
SgK?.Pi^^^° 7^?Uini!J^' '''' ' '' '' '" °«?2o ^RStg^PE^ ??S1Jg haKS^ ^g^il?^D^^RjJ-i«?T?i.pl?i°^ '^'^ ''
SEQ 0129
5A72
3A73
3A74
3A75
5^76
3A77
3A78
3A79
3A80
3A81
3482
3A83
3484
3485
3486
3487
3488
3489
3490
g?J
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
1510
J511
J512
5513
J514
5515
3516
3517
1518
J519
5520
5521
5522
1523
5524
.MACRO
.IIF
.IIF
.NLIST
.REPT
.WORD
.ENDR
.LIST
X=Y
.IF
.IIF
.ENDC
.IIF
.IIF
.IF
.ERROR
.IFF
.IF
TICK NJIMSIG.LOHI
LT.*D'N-X.
6E.*D'N-«NTITF,
SRC
*D'N-K
Y
SRC
DIF,L0HI,H
DIF,L0HI,L.
.ERROR
.ERROR
;TICK(S) OUT OF ORDER
;TICK NUMBER TOO LARGE
.ERROR .-SIGNAL NOT SPECIFIED GOING L OR H
Y=Y»«-1>-TIHSIG>
Y=Y!TIMSIG
IDN,LOHI.L,
IDN,LOHI,H,
EQ.X-Y
.SIGNAL DID NOT CHANGE VALUE
NE,Y8TRPAR
Y=Yft«-1>-fRPAR>
.IFF
Y=Y!TRPAR
.ENDC
.ENDC
X=*D'N
.ENDM TICK
REM Z
THE ENDTIM MACRO FINISHES UP THE GENERATION OF THE TIMING. THE FIRST
ARGUMENT IS THE DECIMAL TICK NUMBER OF THE FIRST TICK AFTER THE LAST TICK THE
CONTROLLER WILL USE. THE SECOND ARGUMENT IS A LIST OF SIGNALS WHICH ARE TO BE
DEASSERTED WHEN HIGH, AND HAS THE FORM <SI61 SIGN>.
X
LE^*dWiCK-x:"IeRROR .-TICK given NOT greater than last TICK
GE>D'NXTICK-MNTITF-1. .ERROR .-TICK NUMBER TOO BIG.
SRC
*D"NXTICK-X
Y
.MACRO
.IIF
.IIF
.NLIST
.REPT
.WORD
.ENDR
X=0
Y=1 00011
.IRP
Y=Y+Z
X=X*1
.ENDR
.IIF
.WORD
.IIF
.REPT
.WORD
.ENDR
.LIST
.ENDM
z,<hideas>
NE,X81.Y=Y+TRPAR
Y
NDF.RELEAS8R$$20F.
MNTITF-*D'NXTICK-1
Y
SRC
ENDTIM
.NLIST MEB
TA/-/iAZ7\ 1')-Iiiu-Q/ IT. 07 DAr:c 77
J 0117
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12- JUN-84 13:03 PAGE 17
HBMAC.PII 16-JAN-8A 16:05 MF^lO PROTOTYPE TIMING MACROS (DERIVED FROM MOSTIM.PlN
SEQ 0130
3526
3527
3528
3529
3530
3531
3532
3533
353A
3535
3536
3537
3538
3539
35A0
35A1
3542
35A3
3544
3545
3546
3547
3548
3549
3550
3551
3552
000037
000001
000003
000000
000003
000002
000004
000004
000006
000007
000005
000010
00C017
000006
000036
000037
000007
.REM
MISCELLANEOUS MEMORY BOOT ASSEMBLY CONSTANTS.
X
HAXCN=37 .-MAXIMUM CONTROLLER NUMBER
I1ACTN=1 ;HA20 CONTROLLER TYPE NUMBER
MBCTN=3 ;HB20 CONTROLLER TYPE NUMBER
HNM.CN=0 :-MINIMUM MA20/MB20 CONTROLLER NUMBER
HXM.CN=3 -MAXIMUM MA20/MB20 CONTROLLER NUMBER
DMACTN=2 ;DMA20 CONTROLLER TYPE NUMBER
DMACN=4 ;DMA20 CONTROLLER NUMBER
HXCTN=4 ;MX20 CONTROLLER TYPE NUMBER
MNMXCN=6 .-MINIMUM MX20 CONTROLLER NUMBER
MXMXCN=7 -MAXIMUM MX20 CONTROLLER NUMBER
MFCTN=5 ;MF20 CONTROLLER TYPE NUMBER
MNMFCN=10 .-MINIMUM MF20 CONTROLLER NUMBER
MXMFCN=17 ^MAXIMUM MF 20 CONTROLLER NUMBER
BRCTN=6 .-BUS RECORDER CONTROLLER TYPE NUMBER
HNBRCN=36 ;MIN BUS RECORDER CONTR #
MXBRCN=37 ; MAX BUS RECORDER CONTR #
UNDCTN 7 .-UNDEFINED CONTROLLER TYPES ARE SET TO THIS VALUE
loHKBG KLIO •1F20 DIAGNOSTir PART 2 OF 2. VER 5 J.A.BARRJ 298^/ HACYll 306(1063) 12- JUN-84 13:03 PAGE 78
HBMAC.P11 16-JAN-8A 16:05 MF20 PROTOTYPE TIMING MACROS (DfcRIvtD PROn TOSlin.Pii/
SEO 0131
355A
3555
3556
3557
3558
3559
3560
3561
3562
3563
356A
3571
3572
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
THE FOLLOWING D'SPLACEMENTS ARE PUT HERE TO SOLVE JHE PROBLEM OF
COMPUTATIONAL GLOBALS WHICH MACYll CANNOT HANDLE. REMEMBER THAT IF YOU
SHUFFLE THINGS AROUND IN THE MEMORY BOOT DATA AREA THAT YOU MUST CHECK THESE,
OOOUO
000010
000010
000001
000001
MSAMSZ=<MXMFCN-MNMFCN+1>*12.
RS0RS1=<«XMFCN-MNMFCN+1>
RS0TN0=<MXMFCN-MNMFCN+1>
.•DISPLACEMENT FROM MDFSI2 TO MOSSA
.•DISPLACEMENT FROM RAMSZO TO RAMSZ1
.•DISPLACEMENT FROM RAMSZO TO TIMNOO
. MISCELANEOUS ASSEMBLY CONTROL.
MBDATA=1
C0NMMR=1
.REM
; ENABLE ASSEMBLY OF MEMORY BOOT DATA AREA
.•AIDS IN MEMORY BOOT ERROR CHECKING
003000
003000
003000
003000
003000
003000
003000
000744
000600
MF20 TIMING SIGNAL DEFINITIONS.
%
TIMSIG RAS,21 ;RAS
TIMSIG CAS, 22 ;CAS
TIMSIG TRPAR.23 ;TIMING RAM PARITY BIT
TIMSIG WENABL,24 .-WRITE ENABLE
TIMSIG ADR2ND,25 .-ADDRESS SECOND HALF
TIMSIG DREADY.26 ;DATA READY
TIMSIG BSYCLR, 27 ;BUSY CLEAR
LSBSRL=744 ;LOWEST BITSUB RAM LOCATION CURRENTLY USED BY SOFTWARE
i:UBSRL=600 ; LOWEST TRULY UNUSED BITSUB RAM LOCATION
1
DHKBG KL10 HF20 DIAGNOSTIC,
MBMAC.P11 16-JAN-8A 16:05
3590
3591
3592
3593
359A
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3643
PART 2 OF 2. VER
NEnORY
0.5 J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 79
BOOT SUBROUTINE CALLER MACROS
SEQ 0132
.SBTTL MEMORY BOOT SUBROUTINE CALLER MACROS
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
"^"^JSR^^^PCImB^^ ; master MEMORY REPORT S CONFIGURE SEQUENCE
DHKB(
DIAC(
42!
42'
42
42
CONFIG
NDF,R$$20F,$C0NFIG=1
JSR PC. CONFIG
CONDMA
NDF,R$$20F.$C0NDMA=1
JSR PC. CONDMA
CONMOS
NDF,R$$20F.$CONMOS=1
JSR PC. CONMOS
CONMAB
NDF.R$$20F.$C0NMAB=1
JSR PC. CONMAB
REPFIT
NDF.R$$20F.$REPFIT=1
JSR PCREPFIT
FITMEM
NDF.R$$20F.$FITMEM=1
JSR PC. FITMEM
RESDET
NDF.R$$20F.$RESDET=1
JSR PC.RESDET
DMADET
NDF.R$$20F.$DMADET=1
JSR PC. DMADET
MOSDET
NDF.RS$20F,$«OSDET=1
JSR PC, MOSDET
RDPROM
NDF.R$$20F.$RDPROM=1
jSR PC. RDPROM
DPD
NDF,R$$20F.$DPD=1
JSR PC. DPD
MMRESP
NDF.R$$20F,$«MRESP=1
jSr PC. MMRESP
.•MASTER CONFIGURE MEMORY SEQUENCE
.•PHYSICALLY CONFIGURE DMA20
.•PHYSICALLY CONFIGURE MF20 CONTROLLERS
.-PHYSICALLY CONFIGURE MA20 i MB20 CONTROLLERS
.•REPORT ON MEMORY FIT RESULTS
;FIT MEMORY PIECES TOGETHER
.•MASTER RESOURCE DETERMINATION SEQUENCE
;DET DMA20 (EXTERNAL MEM) RESPONSE ft INTERLEAVE
.•DETERMINE AND/OR SET MOS CONTROLLER DATA
;READ MOS PROM DATA FOR A CONTROLLER
.•DIGEST PROM DATA FOR A MOS CONTROLLER
.•DETERMINE RESPONSE FOR A CONFIGURED MOS CONTROLLER
OHKBG KL10 HF20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857
SbRaC.PII 16-JAN-84 16:05 B^NORY BOOT SUBROUTINE CALLER
MACYII 300(1063) 12-JUN-8A 13:03 PAGE 80
MACROS
■H .1 1 H i^ .1 — ■- . ■ . '*». ■■ ■■■-■
t
i
SEO 0133 I
.MACRO
.IIP
.ENDn
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
LDNADR
NDF,R$$20F.$LDNADR=1
J§R PC, LDNADR
LDFVR
NDF.R$$20F.$LDFVR=1
JSR PC. LDFVR
LDTIMR
NDF.R$$20F,tLDTIMR=1
JSR PC. LDTIMR
LDREFR
NDF.R$$20F.$LDREFR=1
JSR PC. LDREFR
6ETTF
NDF.R$$20F.$GETTF=1
JSR PC.6ETTF
DBESCN
NDF,R$$20F.$DBESCN=1
JSR PC. DBESCN
CABTE
NDF.R$$20F.$CABTE=1
JSR PC. CABTE
MABDET
NDF.R$$20F.$MAflDET=1
JSR PC.MABDET
NDF,R$$20F.$MABPAD=1
J§R PC.MABPAO
REPCON
NDF.R$$20F,$REPCON=1
JSR PC. REPCON
CTFMTC
NDF,R$$20F.$CTFHTC=1
J§R PC, CTFMTC
CONDET
NDF.R$$20F.$CONDET=1
J§R PC. CONDET
MBINI
NDF.RS$20F.$MBINI=1
J§R PC.MBINI
.-LOAD ALL NON-ADDRESS-RESPONSE RAMS FOR A MOS CONTROLLER
.•LOAD A MOS CONTROLLER'S FIXED VALUE RAMS
.•LOAD A MOS CONTROLLER'S TIMING RAMS
.•LOAD t START .lEFRESH FOR A MOS CONTROLLER
;MAKE SURE TIMING FILES ARE LOADED FOR A MOS CONTROLLER
.•SCAN FOR t FIX MF20 DBE. RET BAD BLK MAP IN RO
.•CONFIGURE A MOS BLOCK TO END OF 256K ADR SPACE
;DPTERISINE MA20/MB20 MASKED START ADDRESSES t LENGTHS
.•MASKED START ADDRESSES t LcNGTHS FOR AN MA20. X,20 PAIR
.•REPORT WHAT CONTROLLER DATA UE HAVE TO NOW
.•MEMORY CONTROLLER TYPE FORMAT CHECK
.•DETERMINE CONTROLLER PRESENSE t FUNCTION 01 DATA
.•INITIALIZE ALL MEMORY 300T DATA AREAS
— T
DHKBG KL10 nf2Q DIAGNOSTIC,
HBMAC.P11 16-JAN-8A lc:05
3698
3699
3700
3701
3702
3703
370A
J705
5706
5707
J708
3709
3710
3711
3712
3713
37U
3715
3716
3717
3718
3719
3720
3721
3722
3723
372A
3725
3726
3727
3728
3729
3730
3731
3732
1733
5734
5735
5736
i737
3738
3739
17A0
57A1
^7^2
5743
5744
5745
S746
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 HACY11 306(1063) 12-JUN-84 13:03 PAGE 81
ninoRy boot subroutine caller macros
SEQ 0134
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.ENDM
.MACRO
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
ICEON
NDF,RS$20F,$ICEON=1
JSR PC. ICEON
DCNFfifi
NDF,R$$20F,$DCNFBB=1
JSR PC.DCNFBB
LDBESP
NDF,R$$20F.$LDBESP=1
JSR PC. LDBESP
BTOFIX
JSR PC.BTOFIX
FIXSB
JSR PC. FIXSB
MX20MD
NDF.R$$20F.$MX20HD=1
JSR PC.MX20MD
MX T ADR
NDF.R$$20F.$MXTADR=1
JSR PC.MXTADR
CONMX
NDF.R$$20F.$CONMX=1
JSR PC. CONMX
SCAN
NDF.R$$20F.$SCAN=1
JSR PC. SCAN
EXP16K
NDF.R$$20F.$EXP16IC=1
JSR PC.EXP16IC
;TURN ON ALL ICE (IGNORE CORR ERR) BITS
.-DECONFIGURE BAD MF20 BLOCKS. BAD BLK MAP IN RO
;LD DOUBLE BIT ERR SCAN AC PRGM
;SET UP DBE SCAN PARAMS FOR BLK TO FIX
.-SCAN SUB8LK FOR DBE. PATCH. I RETEST
:DET MX20 RESOURCES AND ACQUIRE IF POSSIBLE
;SET UP TEMP MX20 RESP FOR MF20 TESTING
.•PHYSICALLY CONFIGURE MX20S BASED ON LOGICAL
.•SCAN 16K MEMORY BIT MAP
.•EXPAND 16K FMT ADR IN RO INTO 36 BITS IN REAPUD
__J
k V M * ^^ a^
DHKBG
MBHAC.P11
37A8
37A9
3750
3751
3752
3753
375A
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
377A
3775
3776
3777
3778
3779
1780
5781
5782
5783
578A
3785
3786
3787
3788
3789
3790
3791
3792
KL10 MF20 DIAGNOSTIC,
16-JAN-8A 16:05
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 300(1063) 12-JUN-8A 13:03 PAGE 82
H^HORY BOOT SUBROUTINE CALLER MACROS
MACRO TO HANDLE SETTING OF BOTH THE HARDWARE ft SOFTWARE COPIES OF AN
HF20'S SOFTWARE STATUS BITS.
X
SEO 0135
DH»
01/
.MACRO SMFSS SS
.IIF NDF,R$$20F,$SMFSS=1
JSR PCSMFSS'SS
.ENDM
;G0 SET SOFTWARE STATE TO SS
REM X
MACROS FOR HANDLING DATA STORED IN UNUSED «f20BITSU8 RAM LOCATIONS.
ALL OF THE ROUTINES INVOLVED RETURN WITH C-BIT SET IF THERE IS ANY SORT OF
ERROR. ALL USE RO TO PASS OR RETURN THE DATA. SBSRL t GBSRL TAKE A PARAMETER
WHICH IS THE BITSUB RAM LOCATION ADDRESS AS IT APPEARS IN THE SBDIAG FCN 7.
NOTE: CURRENTLY ONLY LOCATIONS 7AA-77A ARE DEFINED FOR US| BY THE SOFTWARE. IF
MORE LOCATIONS ARE TO BE USED THEN THE SYMBOL 'ISBSRL" MUST BE REDEFINED.
X
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
.IIF
.ENDM
INIBSR
NDF,R$$20F,$INIBSR=1
JSR PC. INIBSR
SETBBD
NDF,R$$20F,$SETBBD=1
JSR PC. SETBBD
GETBBD
NDF,R$$20F.$GETBBD=1
JSR PC. GETBBD
SETCMP
NDF,R$$20F.$SETCMP=1
JSR PC. SETCMP
GETCMP
NDF.R$$20F.$6ETCMP=1
J§R PC. GETCMP
;D0 A DEFAULT INIT OF AN MF20'S BITSUB RAM
;MOV MF20 BAD BLK DATA FROM RO TO BITSUB RAM
;MOV MF20 BAD BLK DATA FROM BITSUB RAM TO RO
;MOV MF20 CPU CONNECT DATA FROM RO TO BITSUB RAM
;MOV MF20 CPU CONNECT DATA FROM BITSUB RAM TO RO
k«v\ m *% i*iki a/ 47. AT n^i^r D7
23
DHKBG KL10 «F20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
HBMAC.PII 16-JAN-8n6:05 MEMORY BOOT SUBROUTINE CALLER MACROS
12-JUN-84 13:03 PAGE 83
SEQ 0136
OH
DI
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
'821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
.MACRO
.IIP
.IIF
.IF
.IFF
.ENDC
.ENDM
.MACRO
.IIF
.IIF
.IF
.IFF
.ENDC
.ENDM
SBSRL LOCN
NOF,R$$20F,$SBSRL=1
LT.LOCN-LSBSRL, .ERROR
DF.R$$20F
PUSH R5
PUSH <*L0CN*64.+7>
MOV SP.R5
JSR PC-SBSRL
MOV (SP)+,R5
MOV (SP)+,R5
JSR R5, SBSRL
.WORD L0CN*64.*7
GBSRL LOCN
NDF,R$$20F,$GBSRL=1
LT,L0CN-LSBSRL, .ERROR
DF.R$$20F
PUSH R5
PUSH <#L0CN*64.+7>
MOV SP.R5
JSR PC, GBSRL
MOV (SP)+,R5
MOV (SP)+,R5
JSR R5, GBSRL
.WORD L0CN*64.+7
.•LOWEST ALLOWED SFTWR BITSUB RAM LOC EXCEEDED
*SAV R5
;PUSH AR6S ON STK IN REVERSE ORDER
;PT TO ARGS WITH R5 «...,«..
I-MOV RH 6 BITS OF RO TO BITSUB RAM LOCATION
!-DEL ARG WD FROM STK — C BIT NOT AFFECTED
.•RESTORE R5
;MOV RH 6 BITS OF RO TO BITSUB RAM LOCATION
;RHE OF FCN 7 WD TO DO THE JOB
.•LOWEST ALLOWED SFTWR BITSUB RAM LOC EXCEEDED
•SAV R5
•PUSH ARGS ON STK IN REVERSE ORDER
;PT TO ARGS WITH R5 ^ ^^ ^^ ^„
;MOV BITSUB RAM LOCATION TO RH 6 BITS OF RO
•DEL ARG WD FROM STK — C BIT NOT AFFECTED
.•RESTORE R5
;MOV BITSUB RAM LOCATION TO RH 6 BITS OF RO
;RHE OF FCN 7 WD TO DO THE JOB
MACRO TO CALL SUBROUTINE WHICH LOADS AN MF20 TIMING FILE.^ FIpSL^^SriS
THE PDP-11 ADDRESS OF THE STD FORMAT TIMING DATA. SECOND ARG IS THE FIRST MF20
TIMING RAM LOC TO LOAD. FOR TYPSEL=0. 64 FOR TYPSEL=1.
%
.MACRO
.IIF
.IF
.IFF
.ENDC
.ENDM
LDATIM TBA.RSA
NDF-R$$20F,$LDATIM=1
DF,6$$20F
PUSH R5
PUSH <#RSA.#TBA>
MOV SP,R5
JSR PC.LDATIM
BIT (SP)+.(SP)+
MOV (SP)+,R5
JSR R5. LDATIM
•SAV R5
•PUSH ARGS ON STK IN REVERSE ORDER
;PT TO ARGS WITH R5
.•LOAD A TIMING INTO MF20 TIMING RAM
;DEL ARG WDS FROM STK -- C BIT NOT AFFECTED
.•RESTORE R5
;LOAD A TIMING INTO MF20 TIMING RAM
.WORD TBA.RSA ;11 TIMING FILE BUF ADR. RAM LD START ADR
u«/>u'ii 7n/?/inz7\ lO-iiiM-B/ 17<n7 DA^P flA
r
24
OHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF
DIAC0N.P11 06-APR-78 09:52
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
2, VER 0.5
*DIACON*
J.A.BARRY 29857
DIAGNOST" "
.SBTTL *DIACON*
DIAGNOSTIC MACROS 15-JUL-77
MACYll 30G(1063) 12-JUN-84 13:03 PAGE 86
IS 15-JUL-77
DIAGNOSTIC MACROS 15-JUL-77
SEQ 0137
r
Dh
D]
MACRO TO GENERATE A CALL TO PRINT VARIBLE LENGTH OCTALLY GROUPED
BINARY DATA. PARAMETER N IS THE NUMBER OF BITS (NOT TO EXCEED 48.)
SUBROUTINE ASSEMBLED ONLY IF PARAMETER SPNTVAR IS DEFINED.
\
.MACRO PNTVAR
JSR
.VBIN
.ENDM PNTVAR
N
R5, PNTVAR
N
.•PRINT N BIT BINARY
REM \
MACRO TO PUT VARIBLE LENGTH BINARY DATA ON^THE ERROR STACK.
PARAMETER N IS THE NUMBER OF BITS (NOT TO EXCEED 48.)
\
.MACRO STKVAR
JSR
.VBIN
.ENDM STKVAR
N
R5, STKVAR
N
.•PRINT N BIT BINARY
RFM \
MACRO TO GENERATE BYTE LENGTH. OF SHIFTS TO LEFT JUSTIFY AND
THE NUMBER OF OCTAL GROUPS FROM THE NUMBER OF BINARY BITS SPECIFIED.
\
.MACRO .VBIN N
.NLIST SRC
NN=*D'N
BYT=NN/*D8
.IIF GT,NN-<BYT**D8>, BYT=BYT+1 ;# OF BYTES
JST=<BYT**D8>-NN ;* OF SHIFTS TO MSB
CHR=NN/3 ;# OF OCTAL CHARACTERS
0DC=NN-<CHR*3> ,, :# OF LEFTOVER BITS
XXX=BYT ! <JST**D8> ! <0DC**D256> ! <CHR**D2048>
.WORD XXX
.LIST SRC
.ENDM .VBIN
9/\^ / 4 A:/ V \
4 1 II ifti_oy
iT.AT OArc fiiL.1
r
125
DHKBG KLIO MF20 DIAGNOSTIC.
0IACON.P11 06-APR-78 09:52
PART 2 OF
2. VER 0.5
*OIACON*
J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 86-1
DIAGNOSTIC MACROS 15-JUL-77
SEQ 0138
r
D
D
3918
3919
3920
3921
3922
3923
392A
3925
3926
3927
3928
3929
3930
3931
3932
3933
393A
3935
3936
3937
3938
3939
39A0
39A1
39A2
39A3
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
.REM
.MACRO
\
16-BIT
STANDARD ERROR REPORTING MACRO.
COR = ADDRESS OF CORRECT DATA
ACT = ADDRESS OF ACTUAL DATA ^
HSK = ADDRESS OF MASK (OPTIONAL)
AR6 = ASCII MESSAGE (OPTIONAL)
.IIF
.ENDM
ERR16
.IF
JSR
.IFF
JSR
.ENDC
.IF
.NLIST
.LIT
.LIST
.WORD
.IFF
.WORD
.ENDC
NB#MSK«
.WORD
.WORD
ERR16
COR.ACT.MSK,ARG
NB.MSK
R5,MERR16
R5.ERR16
NB.<ARG>
SRC
TEXT,<.ASCIZ
SRC
TEXT!8IT15
.WORD MSK
ACT
COR
X'ARG'JO
;MASK POINTER
.•ACTUAL POINTER
.•EXPECTED POINTER
.REM \
36-BIT STANDARD ERROR REPORTING MACRO.
EXCEPT THAT DATA POINTED TO IS 5-BYTE FORMAT.
.MACRO ERR36 COR.ACT.MSK.ARG
NB.MSK
R5.MERR36
SAME AS ERR16
.IIF
.ENDM
ERR36
.IF
JSR
.IFF
JSR
.ENDC
.IF
.NLIST
.LIT
.LIST
R5,ERR36
NB.<AR6>
SRC
TEXT.<.ASCIZ
SRC
:W0RD TEXT!BIT15
.WORD
.ENDC
NB.MSK. .WORD MSK
.WORD ACT
.WORD COR
ERR36
X'ARG'X>
•MASK POINTER
.•ACTUAL POINTER
.•EXPECTED POINTER
1
11 ii»i_oy iT.nT Dkrc aiL_0
1
3126
OHKBG KL10 «F20 DIAGNOSTIC. PART 2 OF 2, VER 0.5
DIAC0N.P11 06-APR-78 09:52 *DIACON*
J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 86-2
DIAGNOSTIC MACROS 15-JUL-77
1 r
SEO 0139
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
398A
3985
3986
3987
3988
3989
3990
3991
3992
3993
399A
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
NORMAL - TEST COMPLETION MACRO.
NORMAL
JMP
NORMAL
.-TEST PASSES
.REM
X
.MACRO
.ENDM
NORSKP - ALTERNATE TEST COMPLETION MACRO. USE IF THE CURRENT
TEST IS PROPER INITIALIZATION FOR THE NEXT ONE. CAUSES THE NEXT
TEST NITIALIZATION TO BE SKIPPED EXCEPT DURING SCOPE LOOPS.
X
.MACRO
.ENDM
NORSKP
JMP
NORSKP
;TEST PASSES. SKIP NEXT INIT.
REM X
FAULT - FAULT RETURN MACRO. ASSUMES THAT ERROR REPORTING DATA
IS ALREADY ON THE ERROR STACK. OPTIONAL TEXT IS A MESSAGE TO BE
TYPED FOLLOWING ERROR REPORTING.
X
.MACRO
.ENDM
FAULT
JSR
.IF
.WORD
.IFF
.NLIST
.IF
.LIT
.LIST
.WORD
.IFF
.ASCIZ
.EVEN
.LIST
.ENDC
.ENDC
FAULT
ARG
PC, FAULT
B,<ARG>
SRC
DF,$RELIA
TEXT, <. ASCIZ
SRC
TEXT.'8IT15
X'ARG'S
SRC
JCARG'X>
REM Z
PFAULT - ALTERNATE FAULT RETURN MACRO. ASSUMES THAT ERROR
REPORTING DATA IS ALREADY ON THE ERROR STACK. THE ARGUMENT IS A
POINTER TO TEXT TO BE TYPED FOLLOWING ERROR REPORTING.
X
.MACRO
.ENDM
PFAULT MSGPTR
JSR PC, FAULT ^
.WORD MSGPTR!BIT15
PFAULT
.•TEXT POINTER
I *m A r
B«nBw 100C7
MArvii ^nn^^r\A^\ 13. iiikuftA IXrOX PkRf AA-^
0127
DHKBG KL10 MF20 DIAGNOSTIC- PART 2 OF 2- VER 0.5
0IACON.P11 06-APR-78 09:52 *D1AC0N*
J.A.BARRY 29857 I1ACY11 306(1063) 12-JUN-84 13:03 PAGE 86-3
DIAGNOSTIC MACROS 15-JUL-77
SEO OUO
A018
A019
A020
A021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
RFM 1
ERROR I ERRORA - ILLOGICAL FAULT RETURN MACROS. USE ONL> IF A
FAULT IS DETECTED IN PREVIOUSLY TESTED LOGIC OR FUNCTIONS. HAS ALL THE
PROPERTIES OF FAULT EXCEPT THAT NO ISOLATION ROUTINE HAY BE CALLED.
DOES NOT REPORT SUBTEST IN ORDER TO PERMIT CALLS FROM INITIALIZATION
ROUTINES OR ANY SUBROUTINE DEPTH.
X
.MACRO
ERROR
JSR
.IF
.WORD
.IFF
.NLIST
.IF
.LIT
.LIST
ARG
PC, ERROR
B.<ARG>
SRC
DF,$RELIA
TEXT,<.ASCIZ
SRC
'word TEXT!8IT15
.IFF
X'ARG'X
X'ARG'i:>
.ENDM
.MACRO
.ASCIZ
.EVEN
.LIST
.ENDC
.ENDC
ERROR
SRC
ERRORA MSGPTR
JSR PC. ERROR
.WORD HSGPTRIBIT15
.ENDM ERRORA
.REM X
SYNC. SYNCIF & INSYNC
X
.MACRO SYNC
JSR PC. SYNC
.ENDM
.MACRO SYNCIF
JSR PC. SYNCIF
.ENDM
.MACRO INSYNC
JSR PC. INSYNC
.ENDM
.MACRO NEWSUB
JSR PC .NEWSUB
.ENDM
.-TEXT POINTER
- SCOPE SYNC MACROS
;SYNC SCOPE a A36.E1
;SYNC a A36.E1 IF FAILING SUBTEST
.•NEXT SUBTEST. FAULT SYNC a A36.E1
;NEW SUBTEST. CHECK TTY
*» A >« V ^ ^*
..rn AC • jk DADDw 1QOC7 MATvn ^f\n^^f^t.x^\ 1?. iiMtuflA i^^n^ PARF 87
0128
DHKBG
01AC0N.P11
A068
A069
A070
4071
4072
A073
407A
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
KL10 l«IF20 DIAGNOSTIC. PART 2 OF
06-APR-78 09:52
VER 0.5
*
*6lAC0N
.REM
X
.MACRO
.ENDM
.MACRO
.ENDM
.MACRO
.IIF
.ENDM
.MACRO
J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 87
DIAGNOSTIC MACROS 15-JUL-77
SEO 0141
.ENDM
.MACRO
.ENDM
ERROR REPORT MACROS TO SIMULATE P^'TXXX^CALLS BY PUTTING
THE EMT AND DATA ON THE ERROR STACK FOR LATER EXECUTION.
ERRCOM EMT.
JSR R5.$ERPNT
.WORD EMT.
ERRCOM
ERRMS6
.NLIST
.LIT
.LIST
MOV
ERRCOM
ERRMSG
SARG
SRC
TEXT,<.ASCIZ
SRC
IrTEXT.RO
PNTAL
$DAT
ERRDAT
NB,$DAT,
JSR R5,STKDAT
ERRDAT
MOV
ERR36T
JSR
.NLIST
.LIT
.LIST
.WORD TEXT
.WORD SDAT
ERR36T
$TXT,$DAT
R5.STK36T
SRC
TEXT,<.ASCIZ
SRC
$ADR
6.$ADR
R5,STKADR
ERRADR
.IF
JSR
.IFF
JSR R5-STK22H
.WORD $ADR
.ENDC
ERRADR
;R0 & EMT TO ERROR STACK
X'$ARG'X>
#$DAT.R0 .-POINT TO 36-BIT DATA
;PUT IT ON THE ERROR STACK
;TEXT t 36-BIT DATA TO ERROR STACK
X'$TXT'X>
; 22-BIT ADDRESS TO ERROR STACK
; 22-BIT ADDRESS TO ERROR STACK
.•ADDRESS POINTER
BADDw looc? MArvii ^(^^.^^n^X) 1?. iiim-R^ 1^:0^ PAGF 87-1
1 r
I 0129
DHKBG
D1AC0N.P11
A108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
KL10 «F20 DIAGNOSTIC- PART 2 OF
06-APR-78 09:52
2, VER 0.5 J.A.BARRY 29857 HACVll 306(1063)
•6lAC0N» DIAGNOSTIC MACROS 15-JUL-77
.MACRO ERRCHR
ERRCO« PNTCHR
.ENDN ERRCHR
.MACRO ERROCT
ERRCOM PNTOCT
.ENDM ERROCT
.MACRO ERROCS
ERRCOM PNTOCS
.ENDM ERROCS
.MACRO ERRDEC
ERRCOM PNTDEC
.ENDM ERRDEC
.MACRO ERCRLF
ERRCOM PCRLF
.ENDM ERCRLF
12-JUN-84 13:03 PAGE 87-1
SEQ 0142
Miii^n^
u. iA MnA rvt.rkincTff DADT nc \ifO (\ K I A PARDV PQR«57 MAfVll 306(1063) 12-JUN-84 13:03 PAGE 87-2
.- I
0HKB6 KL10 «F20 DIAGNOSTIC- PART 2 OF
DIAC0N.P11 06-APR-78 09:52
A128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4 '74
4175
4176
4177
2. VER 0.5
*DIACON*
J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 87-2
DIAGNOSTIC MACROS 15-JUL-77
SEQ 0143
.REM
.MACRO
ZZZ=0
XXX=0
.IRP
.IF EQ
.NARG
.ENDC
XXX=XXX
.IF EQ
.IFF
.ENDC
.ENDM
.ENDM
MACRO TO GENERATE A FORMAT TABLE: TO USE:
LABEL: FTM. <FUNC1,FUNC2,FUNC3.FUNC4>
WHERE FUNCN IS THE LABEL OF TH^ JUMP TABLE ENTRY TO PERFORM
THE DESIRED FUNCTION.
X
FTM. FUNC
F,<FUNC>
<Z^2>
ZZZ
+1
<ZZZ-XXX>
.BYTE <F-TJMPT>!1
.BYTE <F-TJMPT>
FTM.
TEST CONTROL IS FACILITATED BY TABLES SUPPLIED BY THE USER.
TABLE INITAB IS A LIST OF INITIALIZATION ROUTINES TO BE EXECUTED BEFORE
CALLING A TEST. TABLE TESTAB IS A LIST OF TESTS. SINCE ALL LEGAL
ADDRESSES FOR INITIALIZATION OR TEST CALL ARE fVEN AND LESS THAN 100000,
BITS 8 15 ARE USED TO PROVIDE DIACON WITH INFORMATION REGARDING
DISPATCHING OPTIONS. THE USE OF THESE BITS IS AS FOLLOWS:
TABLE S BIT
INITAB BIT
INITAB BIT 15
TESTAB BIT
TESTAB BIT 15
FUNCTION
REINITIALIZE AFTER FAULT
ENTER INIT AT PC+2 EXCEPT FOR SCOPE LOOPS
PDP-10 FAST LOOP USED FOR SCOPE LOOPS
TEST NOT REQUIRED FOR XOR TESTING
THIS VERSION OF DIACON SUPPORTS TEST INTERRUPTION CAPABILITIES. AN
ALTMODE (ESCAPE) TYPED DURING EXECUTION PERMITS THE USER TO/ERFORM
A KLDCP COWAND LINE. FOLLOWING COMMAND EXECUTION, THE TEST WILL
CONTINUE.
Z
M7777 007025
007025
007022
OHKBG KL10 «F20 DIAGNOSTIC. PART 2 OF
D1AC0N.P11 06-APR-78 09:52
4180
A181
4182
4183
4184
4185
4186
4187 003000
4188 003002
4189 003010
4190 003012
4191 003016
4202 003022
4203 003024 010037 007034
4204 003030 005037 007026
4205 003034 005037 007030
4207 003040
4208 003042 020027 000057
4209 003046 . :_
4210 003050 004737 052456
4211 003054
4215 003056 032700 000002
4216 003062
4217
4218
4219
4220
4221
4222 003064
(1) 003064
(1) 060366
4223 003070
4224 0Ci072
(1) 003072
(1) 060376
4229 003076
4230 003100
4231 003102
4232 003106
4233 003110
4234 003114
4236 003116
4237 003122
4238 003124
4239 003130
4240 003132
4244 003134
4245 003136
4246 003140
4247 003142
4248 003144
4249 003150
4250 003152
4251 003154
4252 003156
4253 003162
2. VER 0.5
*DIAC0N»
J.A.BARRY 29857 HACYll 30G(1Q63)
DIAGNOSTIC EXECUTIVE 4-FEB-77
12-JUN-84 13:03 PAGE 88
SEQ 0144
.SBTTL DIACON*
.REM X
THIS ROUTINE DOES
AND SCOPE LOOPS. SWITCH 1
THE XOR TESTER IS ENABLED
TYPE H FOR HELP.
DIAGNOSTIC EXECUTIVE 4-FEB-77
TEST DISPATCHING, FAULT CONVERGENCE,
PUTS THE PROGRAM IN COMMAND MODE.
BY BEING READY UPON INITIAL START.
000404
112737
000402
105037
010037
104215
010037
005037
005037
104015
020027
001002
004737
104057
032700
001542
000012
104025
Of: 504
104043
104025
057452
104224
104005
020027
001770
020027
001423
020027
001003
004737
000757
010001
104005
000300
150100
005001
020061
001410
005201
705201
X
START:
STARTAi
STARTB;
DIACON;
1$:
BR STARTA ; START 9 3000, CONVERGENCE ALLOWED
MOVB #-l,HARD ;START 5 3002, NO CONVERGENCE
BR STARTB
CLRB HARD 'CLEAR SOLID FAULT FLAG
MOV RO,TESTSP ;SAVE STACK LOCATION
PNTRST .-RESET OUTPUT BUFFER
MOV RO.STTYO ;SAVE ITS LOCATION
CLR TSfART .'CLEAR TEST START
CLR TEND. .'CLEAR LOOP END
TTIBRK ;6ET LAST CHARACTER TYPED
CMP MJ'/ .'SWITCH SPECIFIED?
JSR PC.USERSU ;YES, GO TO USER SWITCH ROUTINE
SWITCH GET CONSOLE SWITCHES
BIT #OPRSEL,RO .-OPERATOR SWITCH SET?
BEQ MX.. .-NO. START TEST
.-DIACON COMMAND PROCESSOR
DIAEND=CMDLST-DIATAB
060366
041501 047117
060376
000
000015
000056
000057
052456
PMSG <DIACON\>
$PMSG.$$CLIT
DIACOM: PFORCE
PMSG <*,>
$PMS6.$$CLIT
003176
000012
NOPSEL;
1$:
TTILNW
TTICHR
CMP
BEQ
CMP
BEQ
CMP
BNE
JSR
BR
MOV
TTICHR
SWAB
BISB
CLR
CMP
BEQ
BIT
ro.*cr
DIACOM
M.M\
CONCMD
RO./t'V
NOPSEL
PCUSERSW
DIACOM
R0.R1
RO
Rl.RO
Rl
R0,DIATAB(R1)
DIACMD
Rl
Rl
R1,#DIAEND
1$
.-FORCE TYPEOUTS
.-PRINT AN *
WAIT FOR REPLY
GET FIRST CHARACTER
CARRIAGE RETURN?
YES. IGNORE IT
PERIOD?
YES. CONSOLE COMMAND
SLASH?
NO
YES. GO DO USER SWITCH ROUTINE
BACK TO COMMAND MODE
ASSEMBLE 2 CHARACTERS
CLEAR SCAN INDEX
SCAN COMMAND LIST
•*r\j' t *r\jf\ 11 iiiti_a/ IT.ni OkftC QQ_1
DHKBG
DIACON
.p^s'" %i^^%tmi\ii '""
OF 2. VER 0.5
*6lAC0N*
J.A.BARRL2?857_^.MACyl 1^3060^^3)
DIAGNOSTIC EXECUTIVE A-FEB-
12-JUN-84 13:03 PAGE 88-1
SEQ 0U5
0031 6A
A255 063166
4256 003170
A257 003172
0Q50QQ
104133
000737
000171
003210
CONCMD: CLR
PRGCfID
BR
DIACMD: JMP
RO
DIACOn
acnDLST(RI)
.•PASS INPUT TO CONSOLE
:NEXT COMMAND
;D0 COnnAND FOUND
DHKB
DIAC
49
4S
49
49
49
49
49
49
49
49
■k A ■««« o ^AtkfV
MA/»u4i TA/'/inxTx 10. I1I4I.Q/ 1T«AT DkCC AO
r'
DHKBG -
DIAC0N.P11
KL10 W20 DIAGNOSTIC.
06-APR-78 09:52
PART 2 OF 2. VER 0.5 J.A.BARRY 29857
DIACON COMMANDS
liACYll 30G(1063) 12-JUN-84 13:03 PAGE 89
SEQ 0U6
DHK
01/
A259
A260
A261
4263
426A
4265
4266
4273
4274
4275
4276
4277
4278
4285
4286
(2)
4287
4288
4289
(1)
(1)
4290
4291
4292
4293
4294
(1)
(1)
4295
(1)
(1)
4296
(1)
(1)
4297
(1)
(1)
4298
(1)
(1)
4299
(1)
(1)
4306
003176
003200
003202
003204
003206
003210
003212
003214
003216
003220
003222
003222
003224
003230
03232
ss
060401
003236
00324C
003242
003242
060412
003246
003246
060437
003252
003252
060455
003256
003256
060511
003262
003262
060530
003266
003266
060546
003272
110
110
124
124
120
$240
. . 5274
003336
003374
003316
00
00
012600
104214
000717
104025
124
104062
104044
104025
051120
iu025
110
104025
057
104025
124
104025
046124
104Q2S
051520
000676
015
105
123
114
123
060437
004505
060455
050011
060511
004523
060530
052011
060546
050011
.SBTTL
DIATA6:
CHDLST:
DIACON COMMANDS
.•DIACON COMMAND LIST
.BYTE 'H.CR
.BYTE 'H/E
.BYTE 'T/S
.BYTE 'T 'L
.BYTE 'P/S
000077
060401
046511 047505
060412
050117 051105
STKERR:
DIAERR:
CONRET:
.WORD
.WORD
.WORD
.WORD
.WORD
POP
H..
HE..
TC
TL..
PS..
RO
PNTCI,'?
BR DIACOM
PMSG <TIMEOUT\>
$PMS6.$$CLIT
ERREOP
H - HELP
HE - MORE HELP
TS - TEST START
TL - TEST LOOP
PS - PRINT SYMPTOM
LIST MUST FOLLOW DIATAB
DISCARD SUBR ENTRY POINT
IMPROPER COMMAND. PRINT ?
;TRY AGAIN
n • • ■
^HELP COMMANDS
PMSG <PROPER ENTRIES )iRE:\>
$PMS6.$$CLIT
.•RETURN TO CONSOLE
NOT FORCED
047515
04/522
042524
051505
044522
PMSG <HE
$PMS6.$$CLIT
PMSG </
$PMS6.$$CLIT
PMSG <TS
$PMSG.$$CLIT
PMSG <TL
SPMSG.SSCLIT
PMSG <PS
SPMSG.SSCLIT
M DIACOM
MORE HELP\>
PROGRAM DEFINED SWITCHES\>
TEST START\>
TEST LOOP\>
PRINT SYMPTOM\>
•h * a»«fth^ ^^m
MA ^ w4 4 VA/> / 1 Ay T\ i ^_ iit^i^O/ 1 V. AT OA/tC ttO— 1
.DHKBG KLIO »1F20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A^RRV 29857
I0IACON.P11 06-APR-78 09:52 DIACON COMMANDS
<>308
4309
4310
(1)
(1)
4311
4314
4315
4316
4317
4318
4319
4324
4326
(1)
(1)
4327
4328
4329
4330
4331
4332
4333
4334
4335
(1)
(1)
4336
4337
4338
4339
003274
003276
003276
060570
003302
003306
003310
003314
003316
003322
003324
003330
003330
060605
)3334
003!
003336
003340
003342
003346
003350
003350
060621
003354
003360
003364
003370
104044
104025
020110
01 2700
104133
004737
000665
HE.,
060570
044504
U7777
052632
041501
013703 007000
001402
000137 005606
104025 060605
116 020117 054523
000655
104016
103403
004737 003500
000404
PS.
1$:
PNORML
P«SG <H DIAC0N.HLP>
$P«S6.$$CLJT
NOV #-1,R0
PRGCMD
JSR PCUSRHLP
BR DIACOn
.•REPORT LAST SYHPTOH
«0V LSTPC.R3
BEQ IS
JIV TYPSy«
P«SG <N0 SY«PT0«\>
$P«S6.$$CLIT
HACrll 30G(1063) 12-JUN-84 13:03 PAGE 89-1
;NOT FORCING TYPEOUTS
SEQ 0147
DHK
DU
.-PRINT HELP FILE
.•PRINT USER HELP INFORMATION
.•GET LAST FAULT PC
;N0 FAULT
.•TYPE SYMPTOM
BR
DIACOM
;TEST START
104025
004737
0i.»037
005037
000137
060621
051111
003472
007026
007030
003536
052123
IS..
nt
2$:
MX.
TTISDL
BCS
JSR
BR
PMSG
1$
PC.TCHK..
2$
<FIRST >
$PMSG.S$CLIT
JSR
MOV
CLR
JMP
PC.6ETTST
RO.TSTART
TEND.
MODEX
.•TEST SPECIFIED?
.•NO. GET ONE
.•TEST FORMAT
•ASK FOR FIRST TEST #
.•GET IT
.•SAVE TEST START
.•CLEAR LOOP END
; START TEST
.i» a^ A
. • n*nnu nnoc-v MArwII TAr/in/.7\ 1D-lll4l.flZ l7*nX DA^P AO»P
35
DHKBG KL10 «F20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A^RRY 29857
0IAC0N.P11 06-APR-78 09:52 DIACON COMMANDS
A5A1
43A2
^343
A3AA
A3A5
A3A6
A3A7
A3A8
43A9
4350
4351
4352
(1)
(1)
4353
4354
4355
(1)
(1)
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
(1)
(1)
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
003374
003376
003400
003404
003410
003412
003414
003420
003422
003422
060630
003426
003432
003436
003436
060637
003442
003446
003450
003452
003456
003462
003464
003470
003472
003472
060645
003476
003500
003502
003504
003506
003510
003512
003514
003520
003522
003526
003530
003534
104016
103411
004737
010037
104016
103417
004737
000416
104025
044506
004737
010037
104025
114
004737
005700
001002
013700
020037
002660
010037
000422
104025
124
104224
104011
010000
103001
001245
001001
005200
020027
101240
120037
003402
113700
000207
.•TEST LOOP
TL.,
003500
007026
003500
060630
051522
003472
007026
111
TTISDL
BCS
JSR
nov
TTISDL
BCS
JSR
BR
PMSG
1$
PC.TCHK..
ROJSTART
2$
PC.TCHK..
3S
<FIRST >
020124
060637
051501 020124
003472
007026
007026
007030
060645
051505
035124
TCHK.
000376
016744
016744
$PMSG,$$CLIT
JSR PC.6ETTST
MOV R0,TSTART
PMSG <LAST >
$PMSG,$$CLIT
JSR
TST
BNE
MOV
CMP
BIT
MOV
BR
PC.6ETTST
RO
3S
TSTART,R0
RO.TSTART
DIAERR
ROJEND.
MODEX
GETTST: PMSG <TEST: _>
$PMSG.$$CLIT
TTILNU
TTIDEC
MOV
BCC
BNE
BNE
INC
CMP
BHI
CMPB
BLE
MOVB
RTS
RO.RO
1$
STKERR
2$
RO
R0,*376
STKERR
RO.TESTAB
3$
TESTA8.R0
PC
MACYII 306(1063) 12-JUN-84 13:03 PAGE 89-2
;TEST SPECIFIED?
;N0, GET ONE
.•TEST FORMAT
;SAVE LOWER LIMIT
;2ND TEST SPECIFIED?
.•NO. USE LOWER LIMIT
)6Et I TEST UPPER LIMIT
•
•GET START OF TEST LOOP
.-SAVE TEST START
.•GET TEST END
.-ANY SPECIFIED?
;YES. USE IT
;N0. USE LOWER LIMIT
;TEST RANGE
.•UPPER LIMIT TOO SMALL
.-SET UPPER LIMIT
.•START TEST
.•SOLICIT TEST #
.•WAIT FOR REPLY
.•CONVERT TEST TO OCTAL
.•TEST RO W/O LOSING C-BIT
.•FORMAT OK
.•IMPROPER INPUT IF NOT ZERO
.-TEST # NOT
;ZER0, DEFAULT TO 1
.•TEST FORMAT
.•IMPROPER FORMAT
;TEST RANGE
;0.K.
.-TOO BIG, USE LAST TEST #
.•TEST # IN RO
SEQ 0148
r
DHI
Dl
wrn A C
A OADDV OOBC?
irvll Yn/:nnA7) 17.IIIM.R^ 1^:0^ PUGf 91
l\l
136
OHKBG KLIO HF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DIACON.Pll 06-APR-78 09:52 EXEC
MACYll 300(1063) 12-JUN-84 13:03 PAGE 91
SEQ 0U9
OK
Dl
4A12
AA13
44U
4A15
4416
4417
4418
4419
4420
4421
4422
4423
4424
4426
4427
(2)
4428
4429
4430
4431
4432
4433
4434
4435
(2)
4437
4439
4447
4448
4451
4464
4465
4466
4467
4468
4469
4470
4472
4473
4474
4475
4476
(1)
(1)
4477
4478
003536
003542
003544
003550
003552
003560
003566
003572
003576
003602
003606
003606
003612
003620
003624
003630
003632
003640
003642
003646
003646
003652
003656
003660
003662
003664
003670
003674
003700
003706
003712
003714
003720
003722
003722
060655
003726
003734
012704
005024
022704
003374
013737
013737
012700
010037
010037
110037
013746
012737
013700
105737
001406
033727
001002
105037
012637
013703
001404
104043
004713
105037
005037
105037
112737
105737
001413
105737
001002
104025
130
013737
012737
006770
007020
010064
010070
m777
006764
006762
007006
.SBTTL
MODEX:
1$:
EXEC
010066
010072
000004
004132
174204
007006
000004
174202 000200
007006
000004
016672
007014
006776
007013
000004
007006
007014
060655
051117
007026
000377
XREST:
CLRLP:
NEWPAS:
011314
051440
007016 1$:
007026
.•MODE DETERMINATION S INITIALIZATION
MOV
CLR
CMP
B6T
MOV
MOV
MOV
MOV
MOV
MOVB
PUSH
MOV
MOV
TSTB
BEQ
BIT
BNE
CLRB
POP
MOV
BEQ
PFORCE
JSR
CLRB
#C0NVRG,R4
(R4) +
#SAVETP,R4
IS
ERSI..,ERSP..
ERTI...ERTP..
#77777,R0
R0,SAVEPC
RO.SUBTST
RO.XMODE
ERRVEC
fNOXOR.ERRVEC
X0RSR+5,R0
XMODE
XREST
X0RSR.#BIT07
XREST
XMODE
ERRVEC
INITAB,R3
NEWPAS
PC,(R3)
LOOPEN
;NEW PROGRAM PASS
CLR TSTNUM
CLRB SKPFLG
MOVB #$DFT8P,$BPN
TSTB XMODE
BEQ TSTINI
TSTB LOOPEN
BNE 1$
PMSG <XOR START\>
$PMSG,$$CLIT
MOV TSTART.XSAVE
MOV #377,TSTART
CLEARS EXEC FLAGS
CLEARS A WORD
LAST ONE CLEARED?
NO, LOOP
RESET ERROR STACKS
SET ERROR PC MAX
SET SUBTEST MAX
SET XOR MODE
SAVE TIMEOUT VECTOR
SET TIMEOUT VECTOR
CHECK FOR XOR
XOR CLEAR O.K.?
NO
XOR READY?
YES
NO,
CLEAR XOR MODE
RESTORE TIMEOUT VECTOR
PROGRAM INITIALIZATION?
NONE SPECIFIED
FORCE TYPEOUTS
PROGRAM I.D./ PARAMETERS
CLEAR LOOP ENABLE
CLEAR TEST #
CLEAR INITIALIZATION SKIP
RE-INIT BACKPLANE # TO DEFAULT
XOR MODE?
NO
LOOPING ?
IF SO. DON'T PRINT
;SAVE TEST START
.•INITIALIZE XOR
iMiunr- ui in urtn i\f«rtinrTTr QADT nc V/CD H ^
A PAPRV 90R«57 MAfYll 30Gn063) 12-JUN-84 13:03 PAGE 92
f:
1137
DHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5^^ J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 EXEC
MACYll 306(1063) 12-JUN-84 13:03 PAGE 92
SEQ 0150
D
D
AA81
AA82
A483
AA8A
4A85
4A86
(1)
(1)
4A87
4488
4489
(1)
4490
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4511
4515
4516
4517
4518
4519
4520
4521
4523
4524
4525
4526
4530
4531
4532
4533
4534
4535
4537
4538
4539
.•TEST DISPATCHING
003742
003746
003750
003752
003752
060670
003756
003762
003764
003764
003766
003770
003774
004000
004004
004006
004012
004016
004020
004024
004026
004030
004034
004036
004040
004044
004050
004052
004056
004062
004064
004070
004072
004074
004100
004102
004106
004110
004114
004116
004120
004122
004126
004130
004132
004136
020637
00U07
104043
104025
051520
013700
104037
104000
104044
005237
013704
120437
101402
000137
105737
001403
105037
000412
006304
016403
001406
100002
062703
042703
004713
004737
0i<704
001435
020437
002724
006304
016403
100003
105737
001315
042703
005005
000113
006304
016403
001751
000745
105037
000002
007022
060670
042440
006776
006776
006776
016744
004432
007013
007013
016672
000002
100001
007470
006776
007026
016744
007006
100001
016672
007006
051122
TSTINI: CMP SPJESTSP
BEQ 1$
PFORCE
PMSG <PS ERR, TEST >
$PMSG,$$ClIT
1$:
2$:
RE TEST:
I TEST:
RTEST:
1$:
LOOPT:
LOOPTl
NOXOR:
nov
PNTDEC
FATAL
.WORD
PNORML
INC
MOV
CMPB
BLOS
JMP
TSTB
BEQ
CLRB
BR
ASL
MOV
BEQ
BPL
ADD
BIC
JSR
JSR
MOV
CLRB
RTI
TSTNUM.RO
FATAL
TSTNUM
TSTNUM,R4
R4,TESTAB
2$
DONE
SKPFLG
RETEST
SKPFLG
RTEST
INITA6(R4).R3
RTEST
ITEST
#2,R3
#BIT0!BIT15,R3
PC,(R3)
PC.CHKCC.
TSTNUM, R4
NORINI
R4,TSTART
TSTINI
TESTA8(R4),R3
1$
XMODE
TSTINI
#BIT0!BIT15.R3
(R3)
INI[A8(R4),R3
RTEST
ITEST
XMODE
.•STACK POINTER O.K.?
;YES
PRINT TEST #
SP CHANGED BY TEST
ASSEMBLE AS SIMPLE EMT FATAL. NO IDENTIFIER
CLEAR FORCED TYPEOUTS
SET NEXT TEST *
GET TEST #
last test done?
no. continue
yes, end program
skip initialization?
no. flag not set
clIar initialization skip
next test
mul test # by 2
get initialization
bypass if none
if no load routine
change pointer to load
discard lsb & msb
do initialization
tty input check
GET TEST #
NO TEST DISPATCH FOR INIT
START REACHED?
NO, INITIALIZE
MUL TEST # BY 2
GET TEST ENTRY
BIT 15 SET?
YES, BYPASS TEST IF XOR
NEXf TEST
DISCARD LSB & MSB
CONVENTION AT ENTRY
DO TEST
MUL TEST # BY 2
GET INITIALIZATION
RUN TEST IF NONE
INITIALIZE
TIMEOUT. CLEAR XOR MODE
RETURN
wco n c
A DADDv 70R<;7 MAfvn ^n(;nn<<>^) ip-jun-84 13:03 PAGE 93
r
I I
0138
DHKBG KL10 MF20 DIAGNOSTIC- PART 2 OF 2. VER 0.5 J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 EXEC
I1ACY11 306(1063) 12-JUN-84 13:03 PAGE 93
r r
SEQ 0151
A5A2
45A3
A5A4
A5A5
4552
455A
A555
A556
A562
A563
A595
A596
4597
(1)
(1)
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
004140
004144
004152
004156
004162
004166
004172
004174
004200
004202
004202
060706
004206
004212
004214
004222
004224
004232
004236
004242
004244
004252
004254
004260
004262
105137
013737
013704
105037
004737
105737
001035
023704
001260
104025
047516
005237
104057
123737
003403
113737
105037
105737
001004
023727
002003
030027
001500
000137
.•RETURN FROM DIAGNOSTIC FOR TEST COMPLETION, RETURN IS
;VIA JMP.
007013
010064
006776
007015
006532
007006
006770
060706
043040
006772
007010
007010
007010
007024
006772
100000
005416
010066
NORSKP:
NORMAL :
NORINI:
1$:
052501
007011
00701 1
000062
COMB SKPFLG
MOV ERSI..,ERSP..
MOV TSTNUM.R4
CLRB FASTLP
JSR PC.TLOOP
TSTB XMODE
811 C0NVR6.R4
BNE TSTINI
PMSG <N0 FAULT\>
$PMSG,$$CLIT
DKPASS:
1$:
2S:
3$:
INC
SWITCH
CMPB
BLE
novB
CLRB
TSTB
BNE
CMP
B6E
BIT
BEQ
JMP
PASS
DURERR.MAXERR
U
DURERR,MAXERR
DURERR
NOTIME
2S
PASS. #50.
3$
RO,^ABORT
NEUJMP
CONCAL
SET SKIP NEXT INITIALIZATION
RESET WORKING ERROR STACK
GET TEST #
CLEAR FAST LOOP ENABLE
TEST FOR SCOPE LOOPS
XOR MODE?
YES
CONVERGE HERE?
NO. CONTINUE
INCREMENT PASS COUNT
GET SWITCH REG
DURATION GT MAX?
NO
SET NEW MAX CONSECUTIVE
CLEAR CONSECUTIVE FAULTS
TIMEOUT ACTIVE?
NO
50 PASSES?
YES. ABORT
ABORT?
NO. RESTART TEST
CALCULATE CONFIDENCE
... .^ ^..-./v ....--...^^T./- n«nT -\ nt ■\ ticB AC I A DADOv ?QB^7 MAfvll TncMDA^) 17-.)IIM-84 13:03 PAGE 93->1
'1 r
"!
0139
0HICB6 KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5^ J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 EXEC
46U
4615
A616
4617
4618
4619
4620
4621
4622
4623
4624
(1)
(1)
4625
4626
4627
(1)
(1)
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
464 S
4646
4647
4648
;XOR TEST HANDLING
004266
004272
004276
004302
004304
004310
004312
004316
004320
004320
060720
004324
004326
004330
004330
060726
004334
004336
004340
004342
004346
004352
004354
004360
004362
004366
004372
004374
004400
004402
004404
004410
004412
004416
004420
004424
004426
013706
013701
030127
001521
030127
00U16
105737
001016
104025
042524
010400
104037
104025
020054
010500
104037
104031
110137
105737
001425
023704
003022
010437
030127
001407
020427
Gu'430
005304
010437
000643
030127
001021
005037
000635
000137
007022 XTEST:
174202
000200
100000
007014
060720
052123 000040
060726
052523 052102
007014
007014 1$:
006770 2$:
006770
000400
000001
006776
000010 3$:
006770
003742 4$:
MOV
MOV
BIT
BEQ
BIT
BEQ
TSTB
BNE
PHSG
TESTSP,SP
X0RSR.R1
Rl,#BiT07
XUAIT
R1.#BIT15
1$
LOOPEN
2$
<TEST >
$P«SG,$$CLIT
NOV R4,R0
PNTDEC
PHSG <. SUBTEST >
$P«SG.$iCLIT
MOV
PNTDEC
PCRLF
N0V8
TSTB
BEQ
CMP
BGT
NOV
BIT
BEQ
CNP
BEQ
DEC
NOV
BR
BIT
BNE
CLR
BR
JNP
R5.R0
R1. LOOPEN
LOOPEN
4$
C0NVRG,R4
4S
R4.C0NVRG
R1,#BIT08
3S
R4.#1
NEUJNP
R4
R4,TSTNUM
LOOPT
R1,*BIT03
NEUJNP
CONVRG
LOOPT
TSTINI
NACY11 30G(1063) 12-JUN-84 13:03 PAGE 93-1
RESET STACK POINTER
GET XOR STATUS
XOR READY?
NO- QUIT
XERCPU?
NO ERFOR DETECTED
FIRST FAULT?
NO
;GET TEST #
.•PRINT IT
GET SUBTEST #
PRINT IT
CARRIAGE RETURN
SET LOOP ENABLE
LOOP?
NO. NEXT TEST
END OR NO GOBACK OR RERUN?
NO- DO NEXT TEST
SEt CONVERGE AT TEST #
SEQ 0152
GOBACK?
NO. TEST FOR RERUN
FIRST TEST?
YES. SANE AS RERUN
BACKUP ONE TEST
CORRECT TEST *
DO PREVIOUS TEST
RERUN?
YES, DO IT
CLEAR TEST CONVERGENCE
LOOP ON TEST
NEXT INITIALIZATION
1
^kAk^rxr'
ui iA Mr')A r\i kr.kincr i r OADT nc ? UFO H ^
A PiPRV P98S7 NACYII 30G(1063) 12-JUN-84 13:03 PAGE 93-2
— .., I
ouo
! «
DHKBG KL10
0UC0N.P11
m20 DIAGNOSTIC.
06-APR-78 09:52
PART 2 OF 2. VER
0.5
EXEC
J.A.BARRY 29857 MACYll 30G(1063) 12-JUN-84 13:03 PAGE 93-2
4651
A662
4663
4667
4669
4670
4671
4678
4679
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
004432
004440
004442
004446
004452
004454
004460
004462
004466
004472
004500
004506
004512
004520
004522
004526
004530
004532
004536
004544
004546
004550
004554
004556
004562
004570
004572
004576
023727
001412
105037
105737
001017
005237
104061
000137
005037
012737
013737
000137
052737
104057
032700
001401
104062
004737
033727
001372
104057
030027
001402
000137
033727
001766
005737
GU.M37
007026 000377 DONE:
007025
007006
006772
003670
006776
000001 174200
007016 007026
003742
000004 174200
000001
007470
174202 000200
100000
100000
174202 000200
174204
003664
SEQ 0153
1$:
NEUJMP:
lONLY:
XDONE :
1$:
XUAIT:
1$:
XCLEAR;
;LAST TEST DONE OR END OF INITIALIZATION.
CHP
BEQ
CLRB
TSTB
BNE
INC
EOP
J«P
CLR
NOV
NOV
JHP
BIS
SWITCH
BIT
BEQ
ERREOP
JSR
BIT
BNE
SWITCH
BIT
BEQ
JW>
BIT
BEQ
TST
JNP
TSTART.#377
lONLY
HARD
xnoDE
XDONE
PASS
NEWPAS
TSTNUH
#BIT00.X0RCR
XSAVEJSTART
TSTINI
#8IT02,XORCR
fCHAIN.RO
1$
PC.CHKCC.
XORSR,#BIT07
1$
R0,#ABORT
1$
CONSOL
XORSR.*BIT07
XWAIT
X0RSR^2
CLRLP
INITIALIZATION ONLY?
YES
CANNOT BE HARD FAULT IF END PASS
XOR MODE?
YES, MODULE PASS
INCREMENT PASS COUNT
NORMAL END
RESTART TEST
CLEAR TEST NUMBER
ENABLE XOR
RESTORE TEST START
START TEST
SET XOR MUT PASS
GET SWITCH REG
CHAIN MODE?
NO
YES, RETURN TO CONSOLE
CHECK FOR *C
XOR READY?
YES, WAIT FOR POWER OFF
GET SWITCH REG
ABORT?
NO
RETURN TO CONSOLE
XOR READY?
NO, WAIT FOR POWER ON
.CLEAR XOR
.•RESTART TEST
tiu^ar. wi ^(\ MOD ntAr:uncTir part ? nF
?. VFR 0.5 J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 94
»^ A A« f J
) 0U1
DHKBG KL10 HF20 DIAGNOSTIC. PART 2 OF
01AC0N.P11 06-APR~78 09:52
2. VER 0.5 J.A.BARRY 29857
EXEC
A703
A70A
A705
4706
A707
4708
4709
4710
4712
(2)
4713
4714
4715
4722
4724
4725
4726
4727
4728
4729
4731
4732
4733
4734
4735
4736
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
HACY11 300(1063) 12-JUN-84 13:03 PAGE 94
RETURN
SEQ 0154
004602 012705 077777
004606
004606
004610
004614
004620
004624
004630
004636
004642
004650
004656
004662
004666
004672
004674
004700
004704
004712
004720
004724
004730
004734
004736
004742
004746
004752
004754
004760
004762
004764
004770
004774
004776
005000
005004
005010
005014
005020
005022
005030
005032
005040
005042
005046
012603
010337
010537
013706
013701
013737
010137
013737
013737
010137
013704
105737
001412
105037
105037
013737
052737
004737
004737
105737
00U02
Gu.'137
005237
023704
001126
023^05
001403
003124
000137
023703
001403
101120
000137
005237
105237
105737
001014
023727
001010
U2737
003124
105237
000137
007000
007002
007022
010070
010064
010064
010072
010066
010066
006776
007006
007014
007006
007016
000002
006270
006532
007025
005606
006772
006770
006762
005362
006764
005362
006774
007010
007011
007004
000004
007011
003670
010070
007020
010072
007026
174200
000001
007010
.•RETURN FROM DIAGNOSTIC TEST FOR ILLOGICAL FAULTS.
ilS VIA JSR PC. REGISTER R5 IS MEANINGLESS.
ERROR: MOV
#77777, R5
.-FLAG ILLOGICAL FAULT
.•RETURN FROM DIAGNOSTIC TEST IF FAULT DETECTED. RETURN
lis VIA JSR PC. REGISTER R5 MUST CONTAIN SUBTEST #.
FAULT: POP
NOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
TSTB
BEQ
CLR6
CLRB
MOV
BIS
1$: JSR
JSR
TSTB
BEG
JMP
Hi INC
CMP
BNE
CMP
BEQ
B6T
JMP
3$: CMP
BEQ
BHI
JMP
4S: INC
INCB
TSTB
BNE
CMP
BNE
CMPB
BGT
INCB
JMP
R3
R3.LSTPC
R5,LSTSUB
TESTSP.SP
ERTI...R1
ERSI..,ERTI..
R1.ERSI..
ERTP...SAVETP
ERSP..,ERTP..
R1-ERSP..
TSTNUM.R4
XMODE
IS
LOOPEN
XMCDE
XSAVE.TSTART
«BIT01,XORCR
PCERHAND
PC.TLOOP
HARD
2%
TYPSYM
PASS
C0NVRG.R4
10$
SUBTST,R5
11$
OLDSYM
SAVEPC,R3
4$
12$
OLDSYM
FAULTS
DURERR
MAXERR
5$
SYMPT.#1
5$
#4.DURERR
13i
MAXERR
NEUPAS
;GET ERROR PC
SAVE IT
SAVE SUBTEST
RESET STACK POINTER
INTERCHANGE BASE OF
WORKING t TYPE OUT
STACKS.
SAVE OLD TYPEOUT END
SET TYPEOUT END
RESET WORKING STACK POINTER
GET TEST #
XOR MODE?
HO
YES, CLEAR LOOP ENABLE
CLEAR XOR MODE
RESTORE TEST START
SET SYSTEM ERROR
HANDLE ERROR TYPEOUTS
TEST FOR SCOPE LOOPS
CONVERGENCE ALLOWED?
YES
NO, BYPASS IT
INCREMENT PROGRAM PASS
SAME TEST?
NO
SAME SUBTEST?
YES
NEW SYMPTOM
RESTORE TYPEOUT STACK
SAME PC?
YES
NEW SYMPTOM
RESTORE TYPEOUT STACK
COUNT SAME SYMPTOMS
COUNT SEQUENTIAL FAULTS
ANY NORMAL PASSES?
YES. INTERMITTENT
FIR^T SYMPTOM?
NO- INTERMITTENT
4 SEQUENTIAL FAULTS?
NO. LOOP ON TEST
SET MAX SEQUENTIAL=1
RESTART TEST
huirDr
VI in
w>n niArjan^Tir. part ? OF 7. VER 0.5 J.A.BARRY 29857 HACYll 306(10o3) 12-JUN-84 13:03 PAGE 94-1
,>r-A ni CC I
0U2
DHKBG KL10
D1AC0N.P11
m20 DIAGNOSTIC.
06-APR-78 09:52
PART 2 OF 2. VER
0.5
EXEC
J.A.BARRY 29857 liACVll 306(1063) 12-JUN-84 13:03 PAGE 94-1
SEQ 0155
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
(3)
(3)
(1)
(3)
(1)
4784
4785
(3)
(3)
(1)
(3)
(1)
4786
4787
4788
4789
4790
4791
4792
005052
005060
005062
005070
0050'2
0051s
0051 >2
005110
005114
005120
005122
005126
005130
005136
005142
005144
005146
005146
005152
005154
005156
005160
005162
005166
005166
005172
005174
005176
005200
005202
005204
005206
005214
005216
005222
005224
122737
003015
123737
001004
123727
001522
112737
000137
022704
002410
022705
002405
112737
000137
010401
005201
000005
006774
007004
000141
005540
000001
000001
000143
005540
007010
007010
000001
007012
007012
5$:
6$:
7$:
8$:
013746 006736
010146
104072
012601
005726
013703 006774
013746
010346
104072
012603
Gu?726
020301
002404
112737
000551
030027
001075
000137
006734
000132 007012
100000
003670
9$:
.-INTERMITTENT FAULT CONVERGENCE
CWPB #5.DURERR
BGT 7$
C«PB FAULTS, DURERR
BNE 6S
CHPB SY«PT.#1
BEQ SOLID
NOVB #97.,PCT
JW> CONFID
CMP #1 ,R4
BLT 8$ ^
CHP *1.R5
BLT 8$
NOVB #99..PCT
J«P CONFID
MOV R4,R1
INC R1
HULT C0N90.R1
HULTPY
TST
NOV
NULT
(SP) +
FAULTS, R3
SCALE, R3
NULTPY
TST
CNP
BLT
NOVB
BR
P'T
BHE
JNP
(SP)*
R3,R1
9$
#90.,PCT
CONFID
R0,#ABORT
CONCAL
NEUPAS
5 SEQUENTIAL FAULTS?
NO, CHECK FREQUENCY
ALL FAULTS SEQUENTIAL?
NO, INTERNITTENT
ONLY ONE SYNPTOM?
YES, SOLID FAULT
CONFIDENCE=97J!
TYPE CONFID. t SYNPTON
FIRST TEST?
NO
FIRST SUBTEST?
NO
C0NFIDENCE=99J!
TYPE CONFID. t SYNPTON
TEST # TO R1
USE N*1
100X=231(N*1)
.-GET X
; SCALE IT
CONFIDENCE REACHED?
NO
CONFIDENCE=90X
TYPE CONFID. I SYNPTON
ABORT?
YES- CALCULATE CONFIDENCE
RESTART TEST
.- I
nwiTBr, run MF?n DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857 NACYll 306(1063) 12-JUN-84 13:03 PAGE 94-2
PC/V A1 CiL
EQ 0U3
DHKB6 KL10 i»1F20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
0IACON.P11 06-APR-78 09:52 EXEC
MACY11 306(1063) 12-JUN-84 13:03 PAGE 94-2
SEQ 0156
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
(1)
(1)
4808
4809
4810
4811
4812
4813
4814
(1)
(1)
4815
4816
4817
(1)
(1)
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
005230
005234
005240
005244
005250
005256
005264
005270
005276
005300
005304
005306
005306
060741
005312
005316
005320
005324
005330
005334
005336
005336
060761
005342
005346
005350
005350
060775
005354
005360
005362
005366
005374
005400
005404
005412
;NEU SYMPTOM DETECTED
010437
010537
010337
005237
012737
112737
105037
023727
001012
030027
001002
104025
106
005737
001533
000137
005037
030027
001030
104025
103
000137
104043
104025
123
1u>237
000512
006770
006762
006764
007004
000001 006774
000001 007010
007011
007004 000001
000200
060741
052501 052114
006776
004026
007026
100000
060761
047117 042526
003664
060775
046117 042111
007025
10$
11$
12$
13$:
14$:
CONCON:
SOLID:
MOV
MOV
MOV
INC
MOV
MOVB
CLRB
CMP
BNE
BIT
BNE
PMSG
$PMSG
TST
BEQ
JMP
CLR
BIT
BNE
PMSG
013701 010070
013737 01G064 010070
010137 010064
010137 010066
013737 007020 010072
000137 004206
R4,C0NVRG
R5,SUBTST
R3.SAVEPC
SYW»T
#1. FAULTS
«1,DURERR
MAXERR
SYMPT,#1
14$
RO.#PALERS
13i
<FAULT DETECTED\>
,$$CLIT
SAVE TEST #
SAVE SUBTEST #
SAVE ERROR PC
COUNT NEW SYMPTOM
SAME SYMPT0M=1
SEQUENTIAL FAULTS=1
MAX SEQUENTIAL=0
FIRST SYMPTOM?
NO
PRINT ALL ERRORS?
YES, ALREADY DONE
TSTNUM
TYPSYM
RE TEST
TSTART
R0,*ABORT
CONCAL
<C0NVERGING\>
$PMSG,$$CLIT
JMP CLRLP
PFORCE
PMSG <S0LID FAULT\>
$PMSG,$$CLIT
INC6
BR
HARD
TYPSYM
ERROR IN ONE-TIME INIT?
YES, PRINT SYMPTOM
NO, LOOP ON TEST
CLEAR TEST START
ABORT?
YES, CALCULATE CONFID.
CONTINUE CONVERGENCE
RESTART PROGRAM
FORCE TYPEOUT
;SET HARD FAULT FLAG
;TYPE SYMPTOM
.•RESTORES TYPEOUT STACK TO PREVIOUS SYMPTOM
OLDSYM:
ERTI...R1
ERSI..,ERTI.
R1,ERSI..
R1,ERSP..
SAVETP,ERTP.
DKPASS
INTERCHANGE BASE OF
TYPEOUT AND WORKING
STACKS
RESET WORKING STACK
RESTORE TYPEOUT STACK END
CONTINUE CONVERGENCE
DHKB6 KLIO HF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857
0IAC0N.P11 06-APR-78 09:52 cXEC
MACYH 30G(1063) 12-JUN-84 13:03 PAGE 94-3
SEQ 0157
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
(3)
(3)
(1)
(3)
(1)
4841
4842
4843
4844
(3)
(3)
(1)
(3)
(1)
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
(1)
(1)
4858
4859
4860
(1)
(1)
4861
(1)
(1)
4862
4863
4864
4865
4949
4950
4952
4953
005416
005422
005426
005430
005434
005442
005444
005450
005450
005454
005456
005460
005462
005464
005466
005470
005474
005474
005476
005500
005502
005504
005506
005510
005512
005514
005520
005522
005526
005532
005534
005540
005542
005546
005550
005550
061012
005554
005560
005562
005562
061035
005566
005566
061046
005572
005576
005600
005604
005606
005612
005614
005620
113701
123701
003402
113701
116137
005204
013701
013746
010146
104072
012601
005726
010102
005000
116001
01 0446
010146
104072
012601
005726
020201
002404
005200
022700
003363
licOOl
120137
003h02
110137
104043
013700
104037
1C':'^25
047440
013700
104037
104025
040
104025
047503
113700
104037
104214
104031
005737
00701 1
007010
007010
006740
006774
006734
006754
000006
006745
007012
007012
006774
061012
020106
006772
061035
040520
061046
043116
007012
000045
006770
006764
006776
.-ABORT HAS FORCED CALCULATION OF FAULT CONVERGENCE
.-CONFIDENCE OR CONVERGENCE HAS COMPLETED.
CONCAL: MOVB
CMPB
BLE
novB
007012 1$: MOVB
INC
MOV
MULT
MAXERR,R1
DURERR.R1
1$
DURERR,R1
DURC0N(R1),PCT
R4
FAULTS. R1
SCALE, R1
GET flAX DURATION
DURATION GT MAX?
NO. USE MAX
USE CURRENT DURATION
GET DURATION CONFIDENCE
N+1
ff OF SAME SYMPTOMS
100X
2$:
MULTPY
TST (SP)+
MOV R1.R2
CLR RO
MOVB VALUE (RO).RI
MULT R4.R1
MULTPY
TST
CMP
Ilt
INC
CMP
BGT
3$: MOVB
CMPB
BLE
MOVB
CONFID: PFORCE
MOV
PNTDEC
PMSG
(SP) +
R2,R1
3$
RO
*6.R0
2$
FRECON(RO).R1
R1.PCT
CONFID
RI.PCT
FAULTS. RO
< OF THIS FAULT
044124
051523
042111
TYPSYM;
006770
$PMSG.$$CLIT
MOV PAbS.RO
PNTDEC
PMSG < PASSES\>
$PMSG,$$CLIT
PMSG <CONFIDENCE OF
$PMSG.$$CLIT
MOVB PCT.RO
PNTDEC
PNTCI.'X
PCRLF
TST CONVRG
BNE 1$
MOV R3.SAVEPC
MOV TSTNUM. CONVRG
VALUE INDEX
GET MAGIC VALUE * 100
COMPUTE 100 (VALUE) (N+1)
FAULTS GT VALUE (N+1 )?
NO
NEXT INDEX
LAST VALUE?
NO, LOOP AGAIN
GET FREQUENCY CONFIDENCE
FREQUENCY GT DURATION?
NO
USE FREQUENCY
GET M OF THIS SYMPTOM FAULTS
PRINT IT
ON >
.-GET # OF PROGRAM PASSES
.-PRINT IT
SOLID FAULT SYMPTOM IS >
GET CONFIDENCE
PRINT IT
PRINT X
CARRIAGE/LINEFEED
SYMPTOM SAVED?
YES
NO. SAVE IT
t<cB n c
I A DADDV 300^7
MArvil xn^nnA^) 1?-.lllN-fi4 1^:03 PAGE 94-4
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5_ J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 EXEC
495A
A955
A956
A957
A958
4960
4961
4962
4963
4965
005626
005634
005640
005644
005650
005652
005656
005660
013737
013703
013704
013705
10404?
10573/
001 404
033727
007002 006762
006764
006770
006762
007025
1$:
im 'mi
7 00703? 000200
006346
2$:
MOV
MOV
MOV
MOV
PFORCE
TSTB
BEQ
m
JSR
lstsub.subtst
savepcr!
C0NVR6,R4
SUBTST,R5
HARD
$rosav.#palers
ISODET
PC.FORSYM
MACY11 306(1063) 12-JUN-84 13:03 PAGE 94-4
GET ERROR PC
GET TEST #
GET SUBTEST *
FORCE TYPEOUTS
SOLID FAULT?
NO. DO TYPEOUT
PRINT ALL ERRORS?
YES, NO NEED TO REPEAT
FORtE ERROR TYPEOUT
SEQ 0158
ui in MriA Mts^&inrrrr
DADT O nc
ucD n ^ I A OADDv P0««>7 liArvn ^0G(1063) 12-JUN-84 13:03 PAGE 95
46
DHKBG KL10 MF20 DIAGNOSTIC- PART
DIAC0N.P11 06-APR-78 09:52
2 OF 2.
VER 0.5
EXEC
J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 95
SEQ 0159
4970
A971
A97
497
4974
4975
4976
4980
4981
49a
498
4984
(1)
(1)
4986
4987
(1)
(1)
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
"024
025
026
027
5030
5037
005674
005700
005704
005706
005712
005714
005720
005722
005730
005732
005732
061114
005736
005740
005740
061143
005744
005746
005750
005754
005756
005760
005762
005766
005770
005772
005772
005774
005776
006000
006004
006010
006012
006020
006022
006024
006026
006032
006036
006042
006044
006050
006056
006062
006066
006072
006076
006102
105237
020527
001504
113700
003501
105737
001024
123727
002020
104025
047514
104043
104025
122
104004
103002
000137
104U12
103767
100004
105037
104044
000452
104043
iu031
104044
113701
120137
001004
123737
001416
104214
020120
004737
012700
004737
103465
110137
113737
012704
013703
013702
01C?37
012705
0127QQ
104133
013737
007014
077777
016745
007025
007012
061114
020127
061143
047125
003232
007012
000132
040506
044440
ISODET: INCB
CflP
BEQ
NOVB
BLE
TSTB
BNE
C«PB
B6E
PMS6
.•DETERMINE IF ISOLATION ROUTINE IS TO BF CALLED
LQOPEN .-ENABLE SCOPE LOOP
R5, 077777 .-ILLOGICAL FAULT?
DIAdON ;YES. NO ISOLATION
TESTAB+l.RO ;GET PROGRAM PARAMETERS
DIADON ;N0 ISOLATION ROUTINES
HARD .-SOLID FAULT?
ISCALL ;YES, DO ISOLATION
PCT.#90. ;HI6H CONFIDENCE?
ISCALL ;YES. DO ISOLATION
<LOW FAULT CONFIDENCE. >
DHK(
DIAI
5
5:
RISOL:
$PMSG.$$CLIT
PFORCE ; FORCE TYPOUT
PMSG <RUN ISOLATION? _>
$PMSG,$$CLIT
1$:
ISCALL:
016745
077777
006770 077776
006250
m777
006436
lit
TTILIN
BCC
JHP
TTIYES
BCS
BPL
CLRB
PNORML
BR
;L0AD i
PFORCE
PCRLF
PNORML
MOVB
CMPB
BNE
CMPB
BEQ
PNTCI
IS
CONRET
RISOL
ISCALL
PCT
DIADON
077777
006770
006762
010070
010072
007020
006110
006526
077776
007020 010072 1$:
JSR
MOV
JSR
BCS
MOVB
MOVB
ISOPRM: MOV
MOV
MOV
MOV
MOV
MOV
PR6CMD
MOV
;6ET REPLY
;60T IT
.-TIMEOUT
;YES OR NO?
.-GARBAGE
.-YES. DO IT
.-CLEAR CONFIDENCE
.-CLEAR FORCED TYPEOUTS
.-DONE
CALL ISOLATION ROUTINE ,_ ^
.-FORCE TYPEOUTS TO END CONTROL
.-CARRIAGE RETURN
.•NORMAL TYPOUT S
.-GET USER PREFIX
.•LOADED?
:N0, DO LOAD
TESTAB+l.Rl
Rl.CONSOL-l
IS
C0NVR6.C0NS0L-2
ISOPRM
PC-ISONAM
#-1,R0
PC.LODPRG
LOOKER
Rl.CONSOL-1
CONVRG.CONSOL-2
#SUBTST,R4
ERTI...R3
ERTP...R2
R2.SAVETP
#li,R5
#STARTI.RO
SAVETP.ERTP..
•YES. BYPASS LOAD
.-BUILD P COMMAND
.-GET ISOLATION ROUTINE NAME
.-POINT TO OUTPUT BUFFER
.•LOAD PROGRAM
.•LOOKUP OR LOAD ERROR
.•IDENTIFY OVERLAY
•POINTER TO SUBTEST ft PC
.•TYPEOUT STACK POINTER
;TYPEOUT STACK END
;SAVE IT
.•PASS RETURN ADDRESS
.•CALL PROGRAM
:G0 COMMAND
.•RESTORE TYPE POINTER
uco n c
A QADov ?QR<;7 MArvll ^0(;n0^3) 1?-JUN-84 13:03 PAGE 96
TtUk
DHKBG KL10 f1F20 DIAGNOSTIC. PART 2 OF 2. VER 0.5_ J.A.BARRY 29857
01ACON.P11 06-APR-78 09:52 EXEC
HACYll 306(1063) 12-JUN-84 13:03 PAGE 96
SEQ 0160
DHk
5675
507A
5078
5079
5080
5081
5082
508A
5085
(1)
(1)
5086
5087
(1)
(1)
5088
5089
5090
5091
5092
5093
5104
5105
5106
5107
5108
(1)
(1)
5109
006116
006120
0061 2A
006126
006132
0061 3A
006U0
006K2
006U2
061164
006146
006150
006150
061203
006154
006154
061237
006160
006162
006164
006166
006172
006174
006200
006202
006206
006212
006216
006216
061262
006222
006226
006226
061271
006232
006234
006240
006244
006250
006250
006252
006254
006260
006262
006262
061312
006266
104057
030027
001045
030027
001012
105737
001403
104025
044134
000402
104025
134
104025
040
104002
104044
104057
03C027
001022
105737
001004
105237
000137
000137
104025
Oh '51 5
004737
104025
040
104002
000137
013704
000137
010100
104027
013700
104037
104025
030501
000207
001000
000040
007025
061164
020103
061203
041510
061237
051117
001000
007025
007024
005336
003030
061262
047125
006250
061271
044040
005736
006770
004120
006770
061312
000061
DIADON:
047524
052040
046040
III
2$:
3$:
4$:
BIT RO./TLOOPER
BNE XLOOP
BIT RO,#TXTINH
BNE 3$
TSTB HARD
BEO IS
P«SG <\HC TO RESTART>
$PMS6.$$CLIT
BR 2$
PMSG <\HC TO CONTINUE CONVERGENCE>
$PHSG,$$CLIT
PMSG < OR LOOP ON ERROR\>
$PHSG,$$CLIT
;GET CONSOLE SWITCHES
.•LOOP ON ERROR?
;YES. START LOOP
.•INHIBIT TYPE TEXT?
•YES
!• SOLID FAULT OR NO CONVERGENCE?
.•NO. INTERMITTENT
51:
PR6HLT
PNORML
SWITCH
BIT
BNE
TSTB
BNE
INCB
JMP
JMP
RO.fLGOPER
XLOOP
HARD
5$
NOTIME
CONCON
DIACON
020124
020103
LOOKER: P«SG <MOUNT >
$PMS6.$$CLIT
PC.ISONAM
JSR ri.,jour»nn .u
P«SG < HC WHEN READY\>
$PMS6.$$CLIT
;CONTINUABLE RETURN
.•CLEAR FORCED PRINT
;6ET SWITCH REG
.-LOOP ON ERROR?
;VES, START LOOP
; SOL ID FAULT?
;YES. RESTART
;SET NO TIMEOUT
.•CONTINUE CONVERGENCE
.•RESTART PROGRAM
.-REQUEST MANUAL INTERVENTION
GET ISOLATION ROUTINE NAME
XLOOP:
ISONAM:
PRGHLT
JMP RISOL
MOV C0NVRG.R4
JMP LOOPT
;PUT ISOLATION ROUTINE
MOV Rl.RO
PNTCHR
MOV CONVRG.RO
PNTDEC
PMSG <A11>
$PMSG.$$CLIT
RTS
PC
.•CONTINUABLE RETURN
.•MOUNTED, TRY AGAIN
;GET TEST #
.•LOOP ON TEST
NAME IN OUTPUT BUFFER
.•PROGRAM NAME IS
I USER PREFIX
1 + TEST #
;.A11 EXTENSION
.•RETURN
tkititisf I/I in lar^n i\i kfikincri r dadt nc
3 uPD n «: I A RARRY PQRS7 MACYII 30G(1063) 12-JUN-84 13:03 PAGE 97
DM
DHKBG KL10
0IACON.P11
«F20 DIAGNOSTIC.
06-APR-78 09:52
5111
5112
5113
511A
5115
5116
5117
5118
5119
5120
5130
5131
5133
51 3A
5135
5136
5137
5138
5139
5K0
5141
5U2
(2)
5K3
(2)
SKA
(2)
5U5
5146
5147
5148
5149
(2)
5150
(2)
5151
(2)
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
006270
006272
006276
006302
006304
006306
006314
006316
006322
006324
006330
006332
006336
006340
006344
006346
006346
006350
006350
006352
006352
006354
006360
006362
006364
006370
006370
006372
006372
006374
006374
006376
006400
006404
006406
006410
006412
006414
006416
or -cc
0OO'.-^4
006430
006432
006434
PART 2 OF 2, VER
.REM
0.5
EXEC
J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03 PAGE 97
SEQ 0161
DH
DI
104057
010037
030027
001401
104045
033727
001014
105737
001442
020437
001006
020337
001003
020537
001431
010546
010446
010346
020527
001001
005005
Ou-737
012603
012604
012605
104057
030027
001011
010300
005710
001406
100003
011000
042700
104024
<." • --T'l
I \/-*\/^ .
104044
104001
000207
007032
002000
007032 000200
007014
006770
006764
006762
ERHAND:
U:
THIS SUBROUTINE HANDLES
X
2S:
SWITCH
NOV
BIT
BEQ
PBELL
BIT
BNE
TSTB
BEQ
CMP
BNE
CMP
BNE
CMP
BEQ
R0,$R0SAV
R0,#DING
IS
$R0SAV,#PALERS
FORSYM
LOOPEN
RDONE
R4,C0NVRG
FORSYM
R3,SAVEPC
FORSYM
R5,SUBTST
RDONE
ERROR TYPEOUTS
GET SWITCH REG
SAVE SWITCHES
BELL ON ERROR?
NO
RING BELL
PRINT ALL ERRORS?
YES. REPORT IT
SCOPE LOOP ENABLED?
NO, BYPASS REPORT
SAME TEST?
NO, REPORT ERROR
SAME PC?
NO, REPORT ERROR
SAME SUBTEST?
YES, BYPASS REPORT
077777
007672
000040
100000
.•FORCED SYMPTOMS ENTER HERE
FORSYM: PUSH R5 ;SAVE SUBTEST #
PUSH R4 ;SAVE TEST #
PUSH R3 .-SAVE ERROR PC
CMP R5, #77777 ; ILLOGICAL FAULT?
BNE 1$ :N0
CLR R5 ;YES, DON'T REPORT SUBTEST
1$: JSR PC.REPORT .-REPORT BASIC SYMPTOM
POP R3 .-RESTORE ERROR PC
POP R4 .-RESTORE TEST #
POP R5 .-RESTORE SUBTEST #
SWITCH .-GET SWITCH REG
BIT RO.#TXTINH .-INHIBIT TEXT?
BNE RDONE .-YES
MOV R3,R0 ;PC POINTS TO TEXT
TST (r6) .-test word AFTER JSR
BEQ RDONE .-NO TEXT
BPL 2$ .-TEXT IN LINE?
MOV (RO),RO ;6ET POINTER ^
BIC #BITl5,R0 .-NO. DISCARD MSB
2$: PNTAL ;PRInT TEXT
PCRLF .-CARRIAGE RET/ LINEFEED
RDONE: PNORML .'CLEAR FORCED TYPEOUTS
ERRHLT .-HALT IF SWITCH 8 SET
RTS PC .-RETURN
nuvon
^1 in Hfon ni&r:MncTTr
PART ? np ?. VFR 0.5 J.A.BARRY 29857 MACYll 30G(1063) 12-JUN-84 13:03 PAGE 98
#«^M /\4 ^ *\
DI
)U9
OHKBG KL10 MF20 DIAGNOSTIC- PART 2 OF 2, VER 0.5_ J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 EXEC
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 98
SEO 0162
D^
Dl
5167
5168
5169
5170
5171
5172
5173
(2)
(2)
5174
5175
5176
5177
5178
5179
5180
(2)
(2)
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
006436
006442
006444
006446
006452
006452
006454
006456
006462
006466
006470
006472
006474
006476
006476
006500
006502
006504
006506
006510
006512
006514
006516
006522
006524
006526
; SUBROUTINE TO LOAD A PROGRAM
005037 007036
104216
103420
013700 007034
010146
010246
012701 007036
012702 000122
112021
001402
005302
003374
012602
012601
104215
000403
104214
000026
000261
000207
104025 007036
104031
0uJ205
LODPRG: CLR
PR6NPT
BCS
NOV
PUSH
047507
006532
000
1$:
2$:
3$:
4$:
PNTID:
STARTI;
nov
nov
NOVB
BEQ
DEC
B6T
POP
PRGLOD
3$
$TTYO-R0
<R1,R2>
#PRGL0D,R1
#82., R2
(R0)+.(R1)+
2$
R2
1$
<R2,R1>
,1
CLEAR OUT LAST PROGRAM I.D.
DO LOAD
ERROR
GET TTY OUTPUT BUFFER POINTER
SAVE BUFFER CONTENTS
BUFFER AREA
CHARACTER COUNT
SAVE A CHARACTER
DONE
BUFFER FULL?
NO, NEXT CHARACTER
PNTRST
BR 4$
PNTCI
NULL
SEC
RTS PC
RESET OUTPUT BUFFER
RETURN
PRINT ERROR MESSAGE
SET ERROR FLAG
RETURN
.•PRINT LOAD I.D. CALL IS JSR R5, PNTID
$PMSG, PRGLOD
PCRLF
RTS R5
.ASCIZ
.EVEN
XGOX
PRINT MESSAGE
CARRIAGE RETURN
RETURN
;G0 COMMAND
hHifRR Klin MF?0 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 99
ceo niiL7
0150
DHKBG KL10 HF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 EXEC
MACY11 306(1063) 12-JUN-84 13:03 PAGE 99
SEQ 0163
D
D
5198
5199
52A5
(2)
52A6
5247
52A8
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5264
5265
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
(1)
(1)
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
006532
006532
006536
006540
006544
006546
006552
006554
006560
006562
006566
006572
006576
006600
006604
006610
006614
006616
006622
006624
006630
006632
006636
006642
006644
006646
006652
006654
006656
006662
006666
006666
061316
006672
006676
006700
006704
006706
006712
006714
006720
006724
006726
012637
104057
005737
001421
020437
002414
030027
001055
013704
010437
020437
001417
000137
000137
105737
001444
030027
001005
105737
001036
000137
105737
001011
006304
016403
006203
103002
lu>237
000137
104025
040506
004737
104057
005737
001405
032700
001767
000137
032700
001362
000177
006732 000000
006732
007030
007030
100000
007026
006776
007030
004026
003742
007014
001000
007006
006116
007015
016744
007015
004122
061316
052123
007470
007030
100000
003070
001000
000000
;TEST FOR SCOPE LOOPS
TLOOP: POP TLPRET ;6ET ENTRY POINT
LPTST: SWITCH
TST
1$:
2$:
3$:
046040
4$:
5$:
6$:
7$:
8$:
9$:
JSR
SWITCH
TST
BEQ
BIT
BEQ
JMP
BIT
BNE
JMP
TEND.
2$
R4,TEND.
1$
RO./I'ABORT
7$
TSTART,R4
R4,TSTNUM
R4,TEND.
3$
RETEST
TSTINI
LOOPEN
9$
RO./»LOOPER
3$
XMODE
9$
DIADON
FASTLP
5$
TESTA6(R4),R3
R3
4$
FASTLP
L00PT1
<FAST LOOP NOW
l,$$CLIT
PC.CHKCC.
TEND.
8$
#ABORT,RO
6$
DIACOM
#LOOPER.RO
6$
aTLPRET
TLPRET: .WORD
GET SWITCH REG
TEST LOOP?
NO, TEST ERROR LOOP
END LOOP?
NO
ABORT?
YES
SET BEGINNING OF LOOP
ONE TEST?
YES, NORMAL SCOPE LOOP
NO, MULTIPLE TEST LOOP
NEXT TEST
LOOP ENABLED?
NO, RETURN
LOOP ON ERROR?
YES, DO IT
XOR MODE?
YES, RETURN
DONE
FAST LOOP ENABLED?
YES, GO WAIT FOR IT
NO, SHOULD I ENABLE IT?
GEt TESTAB ENTRY FOR THIS TEST
BIT SET?
NO, GO DO LOOP
SET FAST LOOP ENABLE
.GO START LOOP
RUNNING\>
GO CHECK FOR INPUT
GET CONSOLE SWITCHES
TEST LOOP ACTIVE?
NO, MUST BE SCOPE LOOP
ABORT SWITCH SET?
NO, WAIT FOR ABORT OR CONTROL C
REtURN TO DIACON COMMAND MODE
LOOP ON ERROR SET?
YES. WAIT FOR IT TO GO AWAY
SUBROUTINE RETURN
.•NORMAL RETURN POINT
I nuirDn
iriin Mon nTAr,Nn«:Tir part ? OF ?. VER 0.5 J.A.BARRY 29857 HACY11 306(1063) 12-JUN-84 13:03 PAGE 100
i^r-t\ r\^ A I
0151
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 EXEC
.•PROGRAM CONSTANTS
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 100
SEQ 01 6A
5292
5293
5?9A
;PR06R
006734
000144
SCALE:
.WORD
5295
006736
000347
CON90:
.WORD
006740
000 OCO 113 DURCON:
.BYTE
5?97
006745
000 036 050 FRECON:
.BYTE
5298
006754
044 063 105 VALUE:
.brTE
5299
5301
;PROGF
006762
Q77777
SUBTST:
.WORD
530A
006764
077777
SAVEPC:
.WORD
5306
006766
010616
DIAG6I:
.WORD
5309
006770
000000
CONVRG:
.WORD
5310
006772
000000
PASS:
.WORD
5311
006774
000000
FAULTS:
.WORD
531?
006776
000000
TSTNUM:
.UORD
5313
007000
000000
LSTPC:
.WORD
5314
007002
000000
LSTSUB:
.WORD
5315
007004
000000
SYMPT:
.WORD
007006
oocooo
XnODE :
.WORD
5318
007010
000
DURERR:
.BYTE
5319
00701 1
000
NAXERR:
.BYTE
5320
007012
000
PCT:
.BYTE
5324
007013
000
SKPFLG:
.BYTE
5325
007014
000
.OOPEN:
.BYTE
5326
007015
000
FASTLP:
.BYTE
5327
007016
000000
XSAVE :
.WORD
5330
007020
000000
SAVETP:
.UORD
5331
007022
000000
TESTSP:
.WORD
5333
007024
000
NOTIME:
.BYTE
533A
007025
000
HARD:
.BYTE
5336
007026
000000
TSTART:
.UORD
53"' -'
007030
000000
TEND. :
.UORD
533,*
007032
000000
SROSAV:
.UORD
5339
007034
000000
STTYO:
.UORD
53A0
007036
000000
PRGLOD:
.UORD
5341
007040
000050
.BLKU
100. .-SCALE FACTOR
231. .-CONSTANT FOR 90X CONFID.
0.0.75.. 87.. 94. :LOOKUP TABLES
0,36. ,46. .50. .60. .70. .80.
3^. .51. .6^. ,9^.1^0. .161.
; PROGRAM VARIABLES & POINTERS
077777
077777
DIAUML
40.
SUBTEST #
ERROR PC
PTR TO SLOT INFO AND EBUS STUCK
EARLIEST TEST *
PASS COUNT
M OF SYMPTOMS IN TEST
TEST #
LAST FAULT PC
LAST SUBTEST #
ft OF DIFFERENT FAULTS
XOR MODE FLAG
OF CONSECUTIVE FAULTS
MAX # CONSECUTIVE
CONFIDENCE (X)
FLG FOR NEXT INITIALIZTION SKP
ERROR REPORTED FLAG
FAST LOOP ENABLE
XOR START
END OF TYPE STACK
SP AT FAILING TEST
NO TIMEOUT ON TEST
SOLID FAULT OR NO CONVERGENCE FLAG
TEST START
LOOP END
SAVE AREA FOR RO
GETS POINTER TO TTY OUTPUT
80 CHARACTER OVERLAY ID BUFFER
t i\uirBr
IT. in Mon niAr,wn^Tir part ? OF ?. VER 0.5 J.A.BARRY 29857 HACY11 306(1063) 12-JUN-84 13:03 PAGE 102
«>m /\4 it C
0152
DHKBG KL10 «F20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J A.BARRY 298^ MAC Yll 306(1063) 12-JUN-8A 13:03 PAGE 102
0IACON.P11 06-APR-/'8 09:52 STANDARD ERROR DATA STACKING SUBROUTINES
SEQ 0165
5389
5390
5391
5392
5393
539A
5411
(2)
5A12
5413
541 A
5415
5416
5417
(2)
5418
5419
5420
5421
5422
5423
5424
(2)
5425
(2)
5426
(2)
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
007160
007160
007162
007166
007172
007174
007176
007200
007200
007202
007206
007212
007214
007220
007224
007230
007230
007232
007232
007234
007234
007236
007242
007244
007246
007250
007252
007254
007256
007260
010546
013700
012720
005725
012520
000406
010546
013700
012720
005725
004737
004737
01 0037
012600
012605
010046
000137
012501
112120
112120
112120
112120
112120
105020
000207
STANDARD ERROR DATA STACKING SUBROUTINES
.SBTTL
REM X
THE FOLLOWING SUBROUTINES PUT STANDARD 16-BIT 8 36-BIT
ERROR INFORMATION ON THE ERROR STACK t RETURN TO THE DIAGNOSTIC
EXECUTIVE.
X
HERR36: PUSH R5
;36-fiIT WITH MASK
010066
000006
010066
000004
007242
007242
010066
ERR36:
MOV
MOV
TST
MOV
BR
PUSH
MOV
MOV
TST
ERR36A: JSR
JSR
ERR368: MOV
POP
POP
ERSP..,RO
#FTM36,(R0)*
vR5) +
(R5)+,(R0)+
ERR36A
R5
ERSP..,RO
#FTA36.(R0)t
(R5) +
PC,STK36
PC,STK36
RO,ERSP..
RO
R5
PUSH RO
004606
JMP
FAULT
;GET ERROR STACK POINTER
.•FORMAT TO ERROR STACK
.•BYPASS FIRST PARAMETER
;MASK POINTER TO ERROR STACK
; 36-BIT
;6ET ERROR STACK POINTER
.•FORMAT TO ERROR STACK
.-BYPASS FIRST PARAMETER
.•ACTUAL TO ERROR STACK
.•EXPECTED TO ERROR STACK
.•RESET ERROR STACK POINTER
;6ET ENTRY ADDRESS
.•RESTORE SUBTEST #
;SET ERROR PC
.•RETURN TO EXEC
;PUSHES 36-BIT DATA ON ERROR STACK. CALL IS VIA JSR. PC.
R5 IS ADDRESS OF POINTER TO 5-BYTE FORMATTED 36-BIT
;DATA. RO IS ERROR STACK POINTER. R1 IS DESTROYED.
STK36: MOV
STK36A: M0V6
MOVB
MOVB
MOVB
MOVB
CLRB
RTS
(R5)*.R1
(R1)+.(R0)+
(R1)*.(R0)*
(R1)*.(R0)*
(R1)*,(R0)*
(R1)*.(R0)*
(RO)*
PC
DATA POINTER TO R1
MOVE BYTE TO ERR STACK
MOVE BYTE TO ERR STACK
MOVE BYTE TO ERR STACK
MOVE BYTE TO ERR STACK
MOVE BYTE TO ERR STACK
CLR EXTRA BYTE TO EVEN THINGS UP
RETURN
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 .J.A.BARRY 2?857_.._MACY11 .306(1063) 12-JUN-84 13:03 PAGE 102-1
ccn niAA
Q 0153
007262
007262 010U6
007264 013700 010066
007270 012720 000036
00727A 012520
007276 00A737
007302 000434
007242
007304
007304 010146
007306 010001
007310 013700 010066
007314 012720 000034
007320 004737 007244
007324 000423
0HKB6 KL10 HF20 OIAGNOSTIC- PART 2
D1AC0N.P11 06-APR-78 09:52
5443
5444
5445
5446
5447
5448
(2)
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
(2)
5461
5462
5463
5464
5465
5467
5468
5469
5470
5471
5472
5473
(2)
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
(2)
5484
5485
5486
5487
5488
5489
5490
5491
5492
5494
5495
(2)
OF 2, VER 0.5 J.A.BARRY 29857 MACYll 306(1063)
STANDARD ERROR DATA STACKING SUBROUTINES
12-JUN-84 13:03 PAGE 102-1
SEQ 0166
007326
007326 010146
007330 01QQ01
007332 013700 010066
007336 012720 000040
007342 000406
007344
007344
007346
007350
007354
007360
007362
007364
007366
007372
007374
007400
007400
010146
012501
013700 010066
012720 000042
112120
112120
111101
042701
010120
■ ')37
STK36T- SUBROUTINE TO PUT 36-BIT ERROR REPORTING DATA ON THE
ERROR STACK. THE FIRST PARAMETER IS A POINTER TO TEXT yHlCH IS TO
PRECEDE THE DATA.
X
STK36T: PUSH R1 ;SAVE R1
NOV ERSP..,RO^
NOV #FT36T.(R0)*
(WV (R5)*.(R0)*
JSR PC,STK36
BR STKEX
;6ET ERROR STACK POINTER
.-FORMAT TYPE TO ERROR STACK
;TEXT POINTER TO ERROR STACK
.DATA TO ERROR STACK
.•CLEANUP ft RETURN
PFM X
STKDAT- SUBROUTINE TO PUT 36-BIT ERROR REPORTING DATA ON THE
ERROR STACK.
X
STKDAT: PUSH R1 ;SAVE R1
NOV R0.R1
NOV ERSP..,RO
NOV #FTDAT.(R0)*
JSR PC.STK36A
BR STKEX
;6ET DATA POINTER
;6ET ERROR STACK POINTER
;FORNAT TYPE TO ERROR STACK
;DATA TO ERROR STACK
.•CLEANUP ft RETURN
.REN
X
STKADR-
PARANETER IN RO.
X
STKADR: PUSH
NOV
NOV
NOV
BR
SUBROUTINE TO PUT A 22-BIT ADDRESS ON THE ERROR STACK.
R1
R0.R1
ERSP...RO
#FTADR.(RO)*
STK22
;SAVE R1
;6ET POINTER TO ADDRESS
;GET ERROR STACK POINTER
;FORNAT TYPE TO ERROR STACK
:PUT ADDRESS ON ERROR STACK
.REN X
STK22H-
PARAMETER TRAIL
X
STK22H: PUSH
NOV
NOV
NOV
SUBROUTINE TO REPORT ADDRESS: ft THE ADDRESS,
177700
010037 010066
012601
STK22:
STKEX;
NOVB
NOVB
NOVB
BIC
NOV
NOV
POP
S.
R1
(R5)*.R1
ERSP...RO
#FT22H.(R0)*
(R1)+,(R0)*
(R1)*.(R0)*
(RD.Al
#177^00. R1
RI.(RO)*
RO.ERSP..
R1
.•SAVE R1
;GET POINTER TO ADDRESS
;GET ERROR STACK POINTER
; FORMAT TYPE TO ERROR STACK
.•ADDRESS TO ERROR STACK
:NASKING OUT GARBAGE
•UPDATE ERROR STACK POINTER
.•RESTORE R1
I DHKBG
KL10 NF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 .J.A-BARRY 2?857_.,,fMC VI 1.306 (.1063) 12-JUN-84 13:03 PAGE 102-2
eco niA7
Q 0154
DHKBG ._
DlACON.Pn
KL10 «F20 DIAGNOSTIC. PART
06-APR-78 09:52
2 OF 2, VER 0.5 J.A.BARRY 29857 HACYll 306(1063)
STANDARD ERROR DATA STACKING SUBROUTINES
12-JUN-84 13:03 PAGE 102-2
SEO 0167
5496 007402 000205
RTS
RS
.•RETURN
r/t n*ec
DHKBG KLIO W20 DIAGNOSTIC. PART 2 OF 2. VER 0,5.„J,A,BARRYJ9857_ HACYll J06(1063) 12-JUN-84 13:03 PAGE 104
CFQ niAA
EQ 0155
DHKBG
D1AC0N.P11
552A
5525
5526
5527
5528
5529
5530
5531
5532
5533
553A
5535
5536
5537
5539
55A0
5541
5542
5543
5544
5545
5546
5547
5553
5555
5556
5557
5558
5559
KL10 «F20 DIAGNOSTIC. PART 2 OF
06-APR-78 09:52
007404
007406
007412
007416
007420
007426
007430
007434
007440
007442
007446
007452
007456
007460
007462
007464
007466
I. VER 0.5 J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 104
SCOPE SYNC SUBROUTINES 6-APR-78
.SBTTL SCOPE SYNC SUBROUTINES 6-APR-78
RFM X
THESE SUBROUTINES ARE USED TO GENERATE A SCOPE SYNC ON
THE DTE20. ENTRY POINTS ARE AS FOLLOWS:
SEQ 0168
SYNC
SYNCIF
INSYNC
PROVIDE THE SCOPE SYNCHRONIZATION.
SYNC IF FAILING SUBTEST = R5.
INCREMENT R5 S SYNC IF = FAILING SUBTEST.
005205
INSYNC:
INC
004737
007470
SYNCIF:
JSR
105737
007006
TSTB
001415
BEQ
032737
100000 174202
■It
001411
BfQ
013704
005737
006776
m
007030
001402
BcQ
000137
006532
JHP
000137
004266
1$:
J«P
023705
006762
2$:
CWP
001401
BEQ
000207
RTS
104115
SYNC:
DFXCTT
000074
74
000207
RTS
SYNCIF ft INSYNC CAUSE AN
I THE XOR HAS DETECTED AN ERROR.
' R5
PCCHKCC.
xnoDE
2$
#BIT15,X0RSR
2$
TSTNUM,R4
TEND.
1$
TLOOP
XTEST
3UBTST.R5
SYNC
PC
PC
ERROR RETURN IF IN XOR MODE
CALLED VIA JSR. PC.
NEXT SUBTEST
TTY INPUT CHECK
XOR NODE?
NO
XERCPU?
NO
SET UP TEST NUMBER AGAIN
TEST LOOP?
NO, XOR LOOPER
YES. TEST LOOP
XOR LOOPER
POINT OF FAILURE?
YES. SYNC
NO. RETURN
SYNC AT A36,E1
UNUSED FUNCTION
RETURN
PCA AlCiL
DHKBG .KL10 HF20.DIAQN0SIIC^ PART 2 OF 2.
VER 0.5 J.A.BARRY 29857
l«IACY11 306 (1063)
12-JUN-84 13:03 PAGE 104-1
SEQ 0169
>EQ 0156
DHKBG KL10
DIAC0N.P11
MF20 DIAGNOSTIC.
06-APR-78 09:52
5561
5565
5567
5568
5569
5570
5571
5572
(1)
(1)
5573
557A
5575
(1)
(1)
5576
5577
5578
5579
5580
5581
(1)
(1)
5582
5583
5584
5585
5586
5587
5588
5589
5590
(1)
(1)
5591
5592
007470
007470
007472
007474
007500
007502
007504
007504
061345
007510
007514
007516
007516
061351
007522
007526
007530
007532
007534
007536
007536
061405
007542
007544
007546
007550
007554
007556
007560
007562
007564
007564
061420
007570
007572
PART 2 OF 2. ve'R
NEWSU6:
CHKCC:
104013
103010
020027
000003
001034
104043
104025
061345
136
056103
000
000137
100004
104043
104025
061351
044
050011
043522
013700
006776
104037
005705
001405
104177
1$:
104025 061405
054 051440 041125
010500
104037
104031 2$:
104214 027076 3$:
104224
005000
104133
1u<772
104025 061420
050011 043522 020115
J 04044
000207 4$:
0.5 J.A.BARRY 29857
SCOPE SYNC SUBROUTINES
;TTY INPUT CHECK
TTALTM
see IS
CUP R0.*CNTRLC
BNE 4S
PFORCE
PMSG <*C\>
$P«SG,$$CLIT
HACY11 306(1063)
6-APR-78
12-JUN-84 13:03 PAGE 104-1
SEQ 0169
.•CHECK FOR TTY INPUT
;60T AN ALTMOD
.•CONTROL C?
:N0
;YES. FORCE TYPEOUTS
.•ECHO *C
JMP $CNTLC
PFORCE
PMSG <$
SPMSG.WCLIT
PRGM
;G0 TO KLDCP
:ALTMODE. FORCE TYPEOUTS
INTERRUPTED AT TEST >
HOV TSTNUM.RO
PNTDEC
TST R5
BEQ 2$
PNTBAK
PWSG <. SUBTEST >
$PMSG.$iCLIT
MOV R5.R0
PNTDEC
PCRLF
PNTCI.">.
TTILNW
CLR RO
PRGCMD
BCS 3$
PMSG < PRGM
$PMSG.$$CLIT
PNORML
RTS
PC
.•PRINT TEST *
^SUBTEST?
.•NO
.•DISCARD PERIOD
;PRINT SUBTEST *
.•GIVE KLDCP PROMPT
;GET A LINE OF INPUT
;D0 KLDCP COMMAND
•ERROR IN COMMAND. PERMIT RETRY
C0NT1NUED\>
.•NORMAL TYPEOUTS
.•RETURN
1
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF
DIAC0N.P11 06-APR-78 09:52
2. VER 0.5 J.A.BARRY 29857
ERROR REPORTER
5619
5621
5622
5624
5625
5626
5627
5628
5629
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
000017
000014
000055
000042
000130
000040
000060
000061
070000
MACY11 300(1063) 12-JUN-84 13:03 PAGE 105
15-JUL-77
SEQ 0170
.SBTTL ERROR REPORTER
MSIZE=15. ;I1B0X SCAN TABLE SIZE ,
CHANNEL SCAN TABLE SIZE
;DASH
; QUOTE
;X
.•SPACE
;ZERO
:ONE
.-BASE ADDR OF OVERLAY AREA
15-JUL-77
CSIZE=12.
ASDSH=55
ASQT=42
ASX=130
ASSP=40
AS0=60
AS1=61
OVRLAY=70000
TYPOUT ROUTINES FOR UNPACKING / ,<<D FORMATTING THE INFORMATION
LEFT IN THE ERROR STACK. EACH ENTRY IN THE STACK IS HEADED BY A
POINTER WHICH IS USED BY THIS ROUTINE TO ADDRESS A FORMAT
TABLE WHOSE CONTENTS DIRECT THE HANDLING OF EACH ITEM
TM THF ^TACK FNTRY
EACH BYTE OF THE FORMAT TABLE IS USED AS AN INDEX TO A JUMP TABLE ^
TO CALL THE FORMATTING SUBROUTINE FOR THE CURRENT ITEM IN^THE ERROR
STACK. THE FORMATTING ROUTINES MASSAGE THE DATA FOR ONE LINE OF
TYPOUT ADDING LABELS WHERE NEEDED AND THEN CALL THE SUBROUTINE
PACKAGE WHICH PERFORMS THE ACTUAL TYPEOUTS.
SAMPLE TYPOUT AND HOW TO MAKE IT HAPPEN
TEST NUMBER 27 SUBTEST 5 PC = 10244
EXPECTED^DAfr-MoO XxfxXX XXX 0X0 IXX XXX XXX XXX XXX XXX 111
ACTUAL DATA - 101 010 010 010 000 011 111 001 101 000 100 111
DIFFERENCE - 1 1
THE FIRST LINE'S DATA ARE CAPTURED BY THE TEST MONITOR.
THE DATA FOR THE REST OF THE TYPOUT IS FROM AN ENTRY IN THE
ERROR STACK MADE BY THE ROUTINE DETECTING THE ERROR:
STACK: <ADDRESS OF FORMAT TABLE>
+1 <DIAGNOSTIC FUNCTION>
♦i <ADDRESS OF 5-BYTE MASK>
+1 <ADDRESS OF 5-BYTE EXPECTED DATA>
H <ADDRESS OF 5-BYTE ACTUAL DATA>
THE FORMAT TABLE CONTROLS THE PRINTING OF THE 'NOISE WORDS' AND
THE OVERALL APPEARANCE OF THE OUTPUT. THE FTM. MACRO (SEE NEXT
PAGE) FOR THIS SAMPLE TYPOUT WOULD BE.:
FTM. <DIAFR,IMSK36,IEXP36,IACT36,DIFF36>_ ^ ^,.^„«„,,
WHICH DIRECTS: "THE AlGHT BYTE OF THE FIRST WORD IS A DIAGNOSTIC
FUNCTION. THE SECOND WORD POINTS TO A MASK WHICH TELLS WHERE TO
PUT X'S IN THE TYPOUT. THE THIRD WORD POINTS TO THE EXPECTED DATA.
THE FOURTH WORD POINTS TO THE ACTUAL DATA. ^FINALLY. DISPLAY
THE XOR DIFFERENCE BETWEEN THE EXPECTED AND ACTUAL DATA."^"
huirnr;
iriin MFPn niARNnfJTir. part 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 106
ecr\ ni71
DHKBG KLIO MF20 DIAGNOSTIC- PART 2 OF 2. VER 0.5 J.A.BARRY 29857
01AC0N.P11 06-APR-78 09:52 FORMAT TABLES
MACY11 306(1063) 12-JUN-84 13:03 PAGE 106
SEQ 0171
5677
5678
5679
5680
5681
5682
5683
568A
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5699
(1)
5700
(1)
5702
(1)
5703
(1)
5704
(1)
5706
(1)
5708
(1)
5713
(1)
5717
(1)
5721
(1)
5722
(1)
5723
(1)
5729
(1)
5731
(1)
5733
(1)
5734
(1)
5736
(1)
5737
(1)
5748
(1)
FORMAT TABLES
007574
007574
007576
007576
007600
007600
007602
007602
007604
007604
007606
007606
007610
007610
007612
007612
007614
007614
007616
007616
007620
007620
007622
007622
007624
007624
007626
007626
007630
007630
007632
007632
007634
07634
J07636
007636
007640
007640
I
007670
007670
007644
007647
007653
007670
007670
007670
007670
007654
007655
007656
007670
007661
007662
007663
007665
007666
007667
.SBTTL
.REM X
FORMAT TABLES CONSIST OF BYTES WHICH ARE INDEXES ON THE^JUMP TABLE
^^JMPT". THE LAST BYTE OF A BYTE TABLE CONTAINS A 1 IN BIT
ZERO. THIS WORKS BECAUSE ALL INDEX VALUES ARE EVEN.
FORMAT TABLE POINTER TABLE USED TO TRANSLATE ABSOLUTE
; FORMAT NUMBERS INTO THE ADDRESS OF THE FORMAT TABLE.
.MACRO FTT FF
FF=.-TFMTT
.WORD FF'T
.ENDM FTT
TFMTT: FTT FTNON
.WORD FTNONT
FTT FTNON
.WORD FTNONT
FTT FTA36
.WORD FTA36T
FTT FTM36
.WORD FTM36T
FTT FTO
.WORD FTOT
FTT FTNON
.WORD FTNONT
FTT FTNON
.WORD FTNONT
FTT FTNON
.WORD FTNONT
FTT FTNON
.WORD FTNONT
FTT FT10
.WORD FTIOT
FTT FTll
.WORD FT11T
FTT FT22
.WORD FT22T
FTT FTNON
.WORD FTNONT
FTT FTPRM
.WORD FTPRMT
FTT FTDAT
.WORD FTDAT T
FTT FT36T
.WORD FT36TT
FTT FTADR
.WORD FTADR T
FTT FT22H
.WORD FT22HT
FTT FTUSR
.WORD FTUSR T
- FTA16 INHIBITED
2 - FTM16 INHIBITED
4
6
10
12 - FT3 NOT USED
14 - FT6 NOT USED
16 - FT8 INHIBITED
20 - FT9 INHIBTED
22
24
26
30 - FTMEM INHIBITED
32
34
36
40
42
44
nuiror ir
in MP^n ntAr,Nn«:Tir. part ? OF 2. VER 0.5 J.A.BARRY 29857 MACYll 30G(1063) 12-JUN-84 13:03 PAGE 106-1
em n^fo
59
OHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DlACON.Pll 06-APR-78 09:52 FORMAT TABLES
5751 00764S
(1) 007641
5752
5753
007670
000050
FTT FTNON
.WORD FTNONT
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 106-1
;46
SEQ 0172
TFMTH=.-TFI1TT
f,u,ttka If. in MF?n niARNnfiTlc. part 2 OF 2. VER 0.5 J.A.BARRY 29857 HACY11 306(1063) 12-JUN-84 13:03 PAGE 106-2
(•en ni 7T
160
DHKBG -
DIAC0N.P11
5755
5756
5757
5758
5759
5760
5761
5763
576A
5765
5766
5767
5768
5769
5770
5771
5772
577A
5775
5776
5777
5778
5779
5780
5781
5782
5783
578A
5785
5786
5787
(2)
(2)
(2)
5788
5789
5790
5791
5792
5793
579A
5795
5796
5797
5798
5799
5800
5801
5802
(2)
(2)
(2)
(2)
KL10 MF20 DIAGNOSTIC. PART
06-APR-78 09:52
2 OF
2, VER 0.5 J.A.BARRY 29857
FORMAT TABLES
HACYII 30G(1063) 12-JUN-84 13:03 PAGE 106-2
SEQ 0173
.REM
.REM
.REM
00764A
007644
0076A5
007646
002
026
013
FTA36T;
.REM
007647
007647
007650
007651
007652
032
002
FTM36T;
STACK CONTENTS:
l2
♦4
I
FTA16
16-BIT ACTUAL
16-BIT EXPECTED
STACK CONTENTS;
S
S+2
S+4
Sf6
X
FTM16
16-61 T MASK WORD
16-BIT ACTUAL
16-6IT EXPECTED
STACK CONTENTS:
S
S*2
S+4
S+6
S*7
S+10
S+12
X
FTM
FTA36
ACTUAL, BITS 20-35
ACTUAL. BITS 4-19
ACTUAL. BITS 0-3 (1 BYTE)
EXPECTED, BITS 27-35 (1 BYTE)
EXPECTED, BITS 12-26
EXPECTED, BITS 0-11
<ACT36,EXP36,DIFF36>
.BYTE <ACT36-TJMPT>
.BYTE <EXP36-TJMPT> ^
.BYTE <DIFF36-TJMPT>!1
STACK CONTENTS:
S
S*2
S*4
S+6
S+10
S>11
S*12
S+14
X
FTM.
FTM36
POINTER TO 36-BIT MASK
ACTUAL, BITS 20-35
ACTUAL, BITS 4-19
ACTUAL, BITS 0-3 (1 BYTE) _^
EXPECTED, BITS 27-35 (1 BYTE)
EXPECTED, BITS 12-26
EXPECTED, BITS 0-11
<IMSK36,ACT36,EXP36,DIFF36>
.BYTE <IMSK36-TJMPT>
.BYTE <ACT36-TJMPT>
.BYTE <EXP36-TJMPT> ,
.BYTE <DIFF36-TJMPT>!1
DHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.AJARRY 29857 HACYII 30G(1063) 12-JUN-84 13:03 PAGE 106-3
ecn ni7/
"1
)161
0HKB6 _
0IACON.P11
580A
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
KL10 «F20 DIAGNOSTIC. PART
06-APR-78 09:52
2 OF 2. VER 0.5 J.A.BARRY 29857
FORMAT TABLES
MACY11 306(1063) 12-JUN-84 13:03 PAGE 106-3
SEQ 0174
DHK
DI/
.REM
.REM
.REM
STACK CONTENTS;
S FT3
S*2 POINTER TO A TABLE OF DIA6. FCN. BYTES^
S*4 POINTER TO A TABLE OF EBUS BYTE POINTERS
S*6 POINTER TO A TABLE OF MASK BYTES
S*10 POINTER TO A TABLE OF EXPECTED DATA BYTES
S+12 ACTUAL DATA BYTE
S+13 INDEX ON ABOVE TABLES
S+N FINAL ACTUAL DATA BYTE _ ,
S+Ntl FINAL INDEX ON TABLES, SIGN BIT = 1
X
STACK CONTENTS:
S FT6
S*2 POINTER TO C-RAM ADDRESS
S+4 TO S+14 11 BYTE ACTUAL C-RAM CONTENTS
S*15 TO S+25 11 BYTE EXPECTED C-RAM CONTENTS
X
STACK CONTENTS;
S FT8
S*2 TO S+N+1
E
E+1
VARIABLE NUMBER OF HULTI-FORMAT ENTRIES:
TABLE SIZE - "MSIZE" OR "CSIZE"
DIAG FCN IN RANGE 160-177, SIGN BIT IS
SET IF THIS IS LAST ENTRY.
IF E = CSIZE, THEN:
E+2 to E+4 EXPECTED BITS 0-19
E+5 TO E+7 ACTUAL BITS 0-19
IF E NOT= CSIZE, THEN ^ ^^^
IF DIAG FCN 160-162
E+2 TO E+4 EXP. BITS 12-35
E+5 TO E+7 ACT. BITS 12-35
IF DIAG FCN 163-166, 170-177,^
E+2 AND E+3 EXP. BITS 20-35
E+4 AND E+5 ACT. BITS 20-35
DHKBG
KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0,5_... J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 106-4
ceo ni7S
DH
0162
0HKB6 _
0IAC0N.P11
KLIO MF20 DIAGNOSTIC. PART
06-APR-78 09:52
2 OF
2. VER 0.5 J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03 PAGE 106-4
FORMAT TABLES
SEQ 0175
DH
DI
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5875
5876
5877
5878
5879
5880
5881
5882
5883 007653
(2) 007653
588A
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907 007654
(2) 007654
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
(2)
.REM
007
.REM
FTOT:
.REM
.REM
037
FT10T;
.REM
007655
007655
035
FT11T:
STACK CONTENTS:
S F TMEM
S+2 ACTUAL REQUESTS. RQ0-RQ3 IS BITS 7,6,5.4
S+3 ACTUAL 22-BIT ADDRESS. BITS 27-35
S+4 ACTUAL ADDRESS. BITS 14-26
S+6 EXPECTED REQUEST BITS „ ,^
S+7 EXPECTED ADDRESS, BITS 27-35
S+10 EXPECTED ADDRESS, BITS 14-26
X
STACK CONTENTS;
FTO
A DIAGNOSTIC FUNCTION CODE
S
S+2
X
FTM. <DIAFR>
.BYTE <DIAFR-TJMPT>!1
STACK CONTENTS;
U
S+3
S+N
S+N+1
X
FT9
DIA6. FCN. (BYTE) SIGN BIT IS ACTUAL STATE OF SIGNAL
EBUS BIT NUMBER. SIGN BIT SET IF MORE ENTRIES FOLLOW
FINAL DIAG. FNC. AND BIT VALUE ^,^
FINAL EBUS BIT NUMBER WITH ZERO SIGN BIT
STACK CONTENTS;
FT10
A '"DKITYYY** FMT TO RP FyFTIITPD
EMT ARGUMENT TO BE LOADED INTO RO BEFORE EMT EXECUTION
FTM. <PNTEMT>
.BYTE <PNTEMT-TJMPT>!1
S+4
STACK CONTENTS:
fTII
36-BIT DATA PATTERN BITS 20-35
DATA BITS 4-19
DATA BITS 0-3
<PAT36>
.BYTE <PAT36-TJMPT>!1
L
niA7
OHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0,5_,J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 106-5
SEQ 0176
DI
0163
DHKBG
DIACON
5920
5921
5922
5923
592A
5925
5926
5927
5928
5929
(2)
(2)
(2)
5930
5931
5932
5933
593A
5935
5936
5937
5938
(2)
5939
59A0
59A1
59A2
5943
59AA
59A5
59A6
59A7
59A8
5950
(2)
5952
5953
595A
5955
5956
5957
5958
5959
5960
5961
5962
596A
(2)
(2)
5966
5967
5968
5969
5970
5971
5972
KL10
.P11
MF20 DIAGNOSTIC-
06-APR-78 09:52
PART 2 OF 2. VER
.REfi
0.5 J.A.BARRY
FORMAT TABLES
STACK CONTENTS:
29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 106-5
SEQ 0176
Dt
Dl
007656
007656
007657
007660
000
024
Oil
FT22T:
.REM
FT22
22-Bn
22-BIT
22-BIT
22-BIT
ACTUAL, BITS 20-35
ACTUAL, BITS U-19,^
EXPECTED, BITS 20-35
EXPECTED, BITS 14-19
<ACT22B,EXP22B, DIFF22>
<ACT22B-TJMPT>
<EXP22B-TJMPT>
<DIFF22-TJMPT>!1
STACK CONTENTS:
FTPRM
NON-PRINTING USER PARAMETER
007661
007661
041
FTPRMT: FTM. <SKPPRM>
.BYTE <SKPPRM-TJMPT>!1
.REM
STACK CONTENTS;
007662
007662
017
S
S+2
S+4
S+6
X
FTDATT: FTM.
PTDAT
36-BIT DATA 20-35
BITS 4-19
BITS 0-3
<DAT36>
.REM
.BYTE <DAT36-TJMPT>!1
STACK CONTENTS;
007663
007663
007664
014
017
FT36TT;
.REM
S
S+2
S+4
S+6
S+10
X
FTM.
FT36T
TEXT POINTER
36-BIT DATA 20-35
BITS 4-19
BITS 0-3
<HEDTXT,DAT36>
.BYTE <HEDTXT-TJMPT>
.BYTE <DAT36-TJMPT>!1
STACK CONTENTS:
S fTADR
S+2 22-BIT DATA 20-35
DHKBG
KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER O.L„.J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 106-6
<:fq ni77
I 01 6A
DHKBG KLIO MF20 DIAGNOSTIC- PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DIACON.Pll 06-APR-78 09:52 FORMAT TABLES
MACY11 306(1063) 12-JUN-84 13:03 PAGE 106-6
SEQ 0177
D
D
5973
5974
5976 007665
(2) 007665 021
5978
5979
5980
5981
5982
5983
598A
5985
5986
5988 007666
(2) 007666 023
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6001 007667
(2) 007667 045
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6016
6017
6018
6019
6020
6021
6022 007670
(2) 007670 043
6023 007672
FTADRT:
.REM
S+4 BITS 14-19
FTM. <ADR22>
.BYTE <ADR22-TJMPT>!1
STACK CONTENTS!
f'T22H
22-81 T DATA 20-35
BITS 14-19
FT22HT;
.REM
S
S+2
S+4
X
FTM. <ADH22>
.BYTE <ADH22-TJMPT>!1
STACK CONTENTS:
FTUSRT;
.REM
S
S+2
S+4
S+?
X
FTM.
FTUSR
ADDRESS OF USER SUPPLIED TYPEOUT SUBROUTINE
START OF USER SUPPLIED DATA
END OF USER SUPPLIED DATA
<FTUSRD>
.BYTE <FTUSRD-TJMPT>!1
STACK CONTENTS:
S
S+2
S+4
S+?
X
FTVAR
FORMAT CONTROL WORD
START OF BINARY DATA
END OF BINARY DATA
UNDEFINED FORMAT OR PARAMETER
FTNONT: FTM. <N0F0RH>
.BYTE <N0F0RM-TJMPT>!1
.EVEN
.-J
n A4 it C
DHKB6 KLIO MF20 DIAGNOSHC. PART 2 OF 2, VER 0J_J..A,BARRY 29857_ HACY11 306(1063) 12-JUN-84 13:03 PA6E 107
^ea ni78
Q 0165
OHKBG KL10 MF20 DIAGNOSTIC- PART
DIAC0N.P11 06-APR-78 09:52
2 OF
6025
6026
6027
6028
6029
6030
6031
6032
6033
6035
6036
6037
6038
6039
60A1
(1)
(1)
60A6
6047
60A8
60A9
6050
6051
(1)
(1)
6052
6053
605A
6055
(1)
(1)
6056
6057
6058
6059
007672
007676
007700
007702
00770A
007706
007706
06UA1
007712
0077U
007716
007720
007722
007722
06U61
007726
007730
007732
007732
061500
007736
0077A0
007744
007746
012700
005020
005020
005020
005020
104025
134
010400
104037
005705
001404
104025
040
010500
104037
104025
0^J040
010300
162700
104036
104031
2. VER 0.5 J.A.BARRY 29857 MACYll 306(1063) 12-JUN-84 13:03 PAGE 107
REPORT HEADING PRINTER
.SBTTL REPORT HEADING PRINTER
REli %
' ERROR REPORTING ROUTINE CALLED BY DISPATCHER AT
APPROPRIATE TIMES. TYPES OUT THE ERROR PC, TEST NUMBER,
AND SUBTEST NUMBER, FOLLOWED BY ALL THE ENTRIES ON THE ERROR
STACK. THE DISPATCHER TAKES CARE OF SETTING THE FORCE PRINTOUT
FLAG.
X
r
SEO 0178
010616
061441
042524
052123
REPORT: MOV
CLR
CLR
CLR
CLR
PMSG
$PMSG,$$CLIT
#DIAUML,RO
(R0) +
(R0) +
(R0) +
(RO)*
<\TEST NUMBER -
.•CLEAR BOARD TABLE
MOV
PNTDEC
R4,R0
;PRINT TEST NUMBER
061461
020040
061500
020040
000004
051440
041520
TST R5 ;IS THERE A SUBTEST #
BEQ 1$ :N0 BRANCHES
PMSG < SUBTEST r >
$P«SG,$$CLIT
MOV
PNTDEC
R5,R0
.•PRINT SUBTEST NUMBER
1$:
PMSG < PC = >
$PMSG,$$CLIT
MOV R3,R0
SUB #4,R0
PNTOCS
PCRLF
; PRINT ERROR PC
:n niAA
ipHKBG _KL10 MF20.0IAQNOSTI^^ PART 2 OF
2. VER 0.5 J.A.BARRY 29857
rnnnD cTkrif erAktuCD
HACVII 306(1063) 12-JUN-84 13:03 PAGE 108
SEO 0179
Q 0166
DHKBG KL10 «F?0 DIAGNOSTIC- PART 2 OF I. VER 0.5 J.A.BARRY 29857
0IACON.P11 06-APR-78 09:52 ERROR STACK SCANNER
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 108
SEO 0179
6061
6062
6063
606A
6065
6066
6067
6068
6069
6070
6071
6072
6073
607A
6075
6076
6077
6C78
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
609A
6095
6096
6097
6098
6099
6100
6101
6102
(1)
(1)
6103
(1)
61 OA
6105
6106
6107
6108
6109
6110
007750
00775A
007760
00776A
007766
007770
007772
007774
007776
010002
010004
010010
010016
010024
010032
010034
010040
010044
010050
010052
010056
010056
061512
010062
010062
010064
010066
010070
010072
013705
005037
020537
002402
104031
000207
012504
100430
020427
003025
016404
012737
112737
112737
111403
IHJ703
004773
010070
011010
010072
.SBTTL ERROR STACK SCANNER
REM X
' USES R5 TO POINT TO THE ERROR STACK AND R4 TO POINT TO THE
CURRENT FORMAT SPECIFICATION TABLE. THE SCANNER PICKS UP
THE FORI«IAT TABLE POINTER FROM THE ERROR STACK. IT THEN DISPATCHES
TO EACH FORMAT ROUTINE IN SEQUENCE. WHEN THE END Of A fORMAT
TABLE IS REACHED, A CARRIAGE RETURN LINE FEED IS OUTPUT
AND THE ERROR STACK IS LOOKED AT FOR ANOTHER ENTRY WHEN
THE END OF THE ERROR STACK IS REACHED, ANOTHER CRLF IS^_^ ^__^
PRINTED AND THE SCANNER EXITS. THE SCANNER DOES NOT CHANGE THE
ERROR STACK POINTERS JUST IN CASE WE MAY WANT TO PASS THIS INFO
TO THE ISOLATION ROUTINES. IN ANY CASE THE BASELINE TEST MONITOR
RESETS THE POINTERS AT THE RIGHT TIME.
* " ;6ET BASE OF STACK
000050
007574
013032
000130
000060
000001
010074
013030
013100
013102
ERSS: MOV ERTI..,R5
CLR PNAMSV
ERS1: CMP R5.ERTP..
BLT 1$
PCRLF
RTS PC
lit MOV (R5)*,R4
6MI BADFMT
CMP R4,#TFMTH
BGT BADFMT
MOV TFMTT(R4),R4
MOV #ZMK.,MKP.
MOVB #ASX,AXORSP
MOVB «ASO,ZORSP
ERS2: MOVB (R4).R3
BICB #1,R3
JSR PC,aTJMPT(R3)
; FORMAT ROUTINES RETURN HERE
132724 000001
001770
000137 007760
ERSRTN:
BITB
BEQ
JMP
#1,(R4)+
ERS2
ERS1
.•CHECK END ERROR STACK
.•BRANCH IF NOT EMPTY
.•OUTPUT A CRLF PAIR
;G0 BACK TO DISPATCHER
.-GET THE FMT TABLE PTR
.•ERROR IF NOT POSITIVE
.•CHECK UPPER BOUNDS
:T00 BIG
.•GET FMT TABLE ADDRESS
.•DEFAULT ZERO MASK
.•MASK ONES ARE X'S
;ZER0 FILL CHAR
;GET AN ENTRY FROM FMT TBL
.•CLEAR END FLAG
.•DISPATCH TO FORMAT ROUTINE
;TEST END FLAG, BUMP POINTER
;NOT DONE YET. CONTINUE
.•CONTINUE ERROR TABLE SCAN
.•IMPROPER FORMATS GET HERE
104025
037534
104000
012316
012316
012516
012516
061512
051105
047522
BADFMT: PMS6 <\?ERR0R STACK FORMAT\>
SPMSG.UCLIT
FATAL
.WORD FATAL
.•ERROR STACK POINTERS
ERSI..
ERSP..
ERTI..
ERTP..
.WORD
.WORD
.WORD
.WORD
ESTK1
ESTK1
ESTK2
ESTK2
.•ASSEMBLE AS SIMPLE EMT FATAL, NO IDENTIFIER
;BASE OF WORKING STACK
.•POINTER TO WORKING STACK
;BASE OF TYPEOUT STACK
.•POINTER TO END OF TYPEOUT STACK
ca niA7
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF
■k. • A «>«k«. m^m ^ A^ a MM ^O An . Cn
2. VER 0.5 J.A.BARRY 29857
II MO TADI C
MACY11 306(1063) 12-JUN-84 13:03 PAGE 109
SEQ 0180
EG 0167
DHKBG KL10
D1AC0N.P11
6112
6113
6114
6115
6116
6117
6118
6120
6121
6127
6128
6130
6131
6139
6H0
61A1
6U2
6U5
6U6
6155
6160
6162
6163
61 6A
6165
6166
6168
6169
6170
6171
6172
(1)
6173
(1)
6177
(1)
6178
(1)
6179
(1)
6182
(1)
nF20 DIAGNOSTIC.
06-APR-78 09:52
PART 2 OF 2. VER
0.5
JUMP
J. A. BARRY
TABLE
29857 MACY11 306(1063) 12-JUN-8A 13:03 PAGE 109
SEQ 0180
01C07A
010074
010076
010100
010102
010104
010106
010110
010112
010114
010116
010120
010122
010124
010126
010130
010132
010134
010136
01014C
010142
061540
010142
061554
010142
061570
010142
061602
010142
0^1614
010142
061626
010142
010164
010216
010230
010244
010330
010562
010550
010574
010570
010424
010446
010476
010504
010512
010536
010476
010056
010606
050134
040534
041501
047503
044504
020040
052101
042104
052524
051122
041523
020040
042524
042522
046101
041505
042522
020040
JUMP TABLE
.SBTTL
REM X
THE ERROR STACK SCANNER DISPATCHES THRU THIS TABLE
TO EXECUTE THE FORMAT ROUTINES.
TJMPT:
ACT22B:
ACT36:
ADDR16:
DIAFR:
DIFF22:
DIFF36:
HEDTXT:
DAT36:
ADR22:
ADH22:
EXP22B:
EXP36:
IBPTAB:
IMSK36:
PAT36:
PNTEMT:
SKPPRM:
NOFORM:
FTUSRD:
AC22B
AC36
ADR 16
DIFR
DIF22
DIF36
PTTXT
PTDAT
PT22
PT22H
XP22B
XP36
IBPTB
IMK36
PT36
PTEMT
IBPTB
BADFMT
USERFT
;ERROR REPORT HEADINGS AND '>IOISE WORDS'
.LIT
.LIT
.LIT
.LIT
.LIT
.LIT
X>
ERPAT.<.ASCI2 XVPATTERN:
.ASCIZ X\PATTERN: X
ERADR,<.ASCIZ X\ADDRESS:
.ASCIZ X\ADDRESS: X
ERACT,<. ASCIZ XACTUAL:
.ASCIZ XACTUAL: X
ERCOR.<. ASCIZ XCORRECT;
.ASCJZ XCORRECT: X
ERDSC.<. ASCIZ XDISCREP:
.ASCIZ XDISCREP: X
ERBT1,<.ASCIZ X ACTUAL
.ASCIZ X ACTUAL
X>
X>
X>
X>
DISCREP.X>
DISCREP.X
CFQ niAA
DHKBG KLIO MF20 DIAGNOSTIC,
PART 2 OF 2. VER 0.5 J.A.BARRY 29857
MATM OPPODT OnilTIMFC;
MACY11 306(1063) 12-JUN-84 13:03 PAGE 110
SEQ 0181
SEQ 0168
DHKBG KLIO W20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J-A-BARRY 29857
DIAC0N.P11 06-APR-78 09:52 MAIN REPORT ROUTINES
MACYll 30G(1063) 12-JUN-84 13:03 PAGE 110
SEQ 0181
6187
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
(2)
6226
6227
6313
6314
6315
6316
6317
6318
6319
6320
6322
6323
6324
6325
6326
(1)
(1)
6327
6328
6329
6330
010142
010146
010152
010154
010160
010164
010166
010172
010176
010200
010204
010204
010206
010212
010216
01022?
010224
010226
010230
010230
061664
010234
010236
010240
010242
.SBTTL
MAIN REPORT ROUTINES
104025
010537
010502
062705
000137
061570
013046
000004
011104
REM X
'actual DATA IS 22-81 TS IN TWO WORDS ON STACK
X
AC22B: SPMSG.ERACT .'PRINT MESSAGE
AC22BX: NOV R5.ACP.
ADD #4;R5 .-skip OVER DATA
JMP TYP22B ;TYPE ACTUAL DATA
104031
104025
010537
010502
062705
061570
013046
000005
.REM
AC36:
AC36X:
010446
012704 013032
000137 011030
ACTUAL IS 5 BYTES ON STACK IN USUAL UPSIDE-DOWN
36-BIT FORMAT.
X
PCRLF
SPMSG.ERACT
MOV R5,ACP.
NOV R5,R2
ADD #5.R5
PUSH R4
PRINT MESSAGE
SAVE POINTER TO FIRST WORD
POINT TO IT FOR TYPER
SKIP OVER 3 WORDS
.REM
nov
JMP
X
#ZMK.,R4
TYP36
.-PRINT NO X'S
.•TYPE, RETURN TO SCANNER
STACK HAS AN ADDRESS IN 16-BIT FORM
X
104025
012500
104035
000207
104025
042134
012500
104036
104031
000207
061554
ADR16: SPMSG.ERADR
ADR16X: MOV (R5)+.R0
PNTOCT
RTS PC
RFM X
'stack entry IS DIAGNOSTIC FUNCTION IN BITS 6-0
PRINT MESSAGE
GET ADDRESS
PRINT IN OCTAL
061664
040511
DIFR:
047107
PMSG <\DIAGNOSTIC FUNCTION
$PMSG.$$CLIT
MOV
PNTOCS
PCRLF
RTS
(R5)+.R0
PC
GET 'UNCTION
TYPr. NO LEADING ZEROES
CR/LF
BACK TO SCAN
SEQ 0169
DHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF
■\t«f>fMi D11 n<._ADD_7Q no. CO
2, VER 0.5 J.A.BARRY 29857
MAIN RFPnRT ROUTINES
MACYll 306(1063) 12-JUN-84 13:03 PAGE 110-3
SEQ 0182
SEQ 0169
OHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF I, VER 0.5 J^jAgf SSn??§PQ
DIAC0N.P11 06-APR-78 09:52 MAIN REPORT ROUTINES
MACY11 306(1063) 12-JUN-8A 13:03 PAGE 110-3
SEQ 0182
6360
6361
6362
6363
636A
6365
6366
6367
6368
6369
6370
6371
6372
6373
637A
6375
6376
6377
6378
6379
6380
6381
6382
6383
6385
6386
6387
6388
6389
6390
6391
6392
6393
639A
(2)
6395
6396
6397
6398
6399
6400
6A01
6A02
6A03
6A0A
6A05
6A06
6A07
6A08
6A09
010244
010250
010254
010260
010264
010272
010274
010276
010300
010302
010304
010310
010312
010320
010324
104025
013703
013702
013701
012737
111300
141200
112211
142311
150021
005237
100770
112737
013702
000137
010330
010334
010340
010344
010350
010350
010352
010356
010360
010362
010364
010366
010370
010372
010374
010402
010410
010414
010420
061614
013050
013046
013052
177775
104025
Gi<703
013702
013701
010446
012704
111300
141200
112211
142311
150021
005204
100771
112737
112737
013702
013704
000137
013070
013070
000040
013052
011104
013102
REM X
'compute and type DIFFERENCE BETWEEN 22-BIT ACT AND EXP
X
DIF22: $PMSG,ERDSC .-PRINT MESSAGE
DIF22X: MOV EXP..R3
HOV ACP..R2
HOV DFP.,R1
HOV #-3.TEM.
1$: HOVB (R3),R0
BICB (R2).R0
HOVB (R2)+,(R1)
BICB (R3)+.(R1)
BISB RO-(Rl)+
INC TEM.
BMI 1$
HOVB #ASSP,ZORSP
HOV DFP..R2
JHP TYP22B
;GET EXPECTED
;HALF OF RESULT
;XOR RESULT
.-COUNT BYTES
.-HORE
.-SPACE WHERE NO DIFF
.-POINT TO DIFF
.-PRINT IT
REH Z
CALCULATE AND TYPE THE XOR DIFFERENCE BFTUEEN THE ACTUAL
AND THE EXPECTED 36-BIT DATA.
X
061614
013050
013046
013052
177773
DIF36: SPMSG.ERDSC
DIF36X: MOV EXP..R3
MOV ACP..R2
MOV DFP.,R1
PUSH R4
HOV
1$:
HOVB
BICB
HOVB
BICB
BISB
INC
BMI
000040
013100
HOVB
000040
013102
HOVB
013052
HOV
013030
HOV
011030
JHP
#-5.R4
(R3).R0
(R2).R0
(R2)+.(R1)
(R3)+,(R1)
R0.(R1)+
R4
1$
#ASSP,AX0RSP
#ASSP.Z0RSP
DFP..R2
HKP.,R4
TYP36
PRINT MESSAGE
POINT TO EXPECTED
POINT TO ACTUAL
POINT TO DIFF BUFFER
;INIT BYTE COUNT
-ACT .AND. EXP
ACT .AND. -EXP
ACT .XOR. EXP
COUNT BYTES
BRANCH IF MORE
HAKE SPACES FOR ONES IN MASK
BLANK IF NO DIFFERENCE
POINT AT DIFF DATA
ZERO HASK - NO X'S
TYPE. RETURN TO SCANNER
1
DHKBG
<L10 MF20 DIAGNOSTIC. PART 2 OF
P11 06-APR-78 09:52
DIACON.
653
2
653
65^
3
5
010424
104025
^m
653
6
010430
0537
653
7
010434
0' 0502
653
8
010436
062705
000004
6539
010442
0)0137
011104
65A0
65A1
6542
65A4
6545
6546
6547
010446
104025
061602
6548
010452
010537
013050
6549
010456
010502
6550
010460
062705
000005
6551
010464
(2)
010464
010446
6552
010466
013704
013030
6553
010472
000137
011030
6554
6555
6653
6634
6635
6636
6637
010476
012537
013124
66.
58
010502
000207
2. VER 0.5 J.A.BARRY 29857
MAIN REPORT ROUTINES
MACY11 306(1063) 12-JUN-84 13:03 PAGE 110-4
SEQ 0183
EXPECTED DATA IS 2? BITS IN TWO WORDS ON STACK
X
XP22B: $PMS6,ERC0R ;PRINT MESSAGE
XP22BX: MOV R5.EXP.
ADD J4'r5 ;SKIP OVER DATA ^
JMP TyA22B .-type EXPECTED DATA
REM X
STACK CONTAINS 5 BYTES OF EXPECTED 36-BIT DATA
X
$PMSG,ERCOR .'PRINT MESSAGE ^^
MOV R5,EXP. .-SAVE THE POINTER
ADD #5!r5 .-PASS OVER 3 WORDS
PUSH R4
XP36:
XP36X:
MOV
JMP
MKP..R4
TYP36
;USE REAL MASK
;TYPE, RETURN TO SCANNER
.REM %
STACK POINTS TO BYTE POINTER
X
IBPTB:
MOV
RTS
{R5)+,BYP.
PC
.-PICK UP BASE
; RETURN TO SCAN
71
DHKB6 KL10 MFJO DIAfiNOSTJU PART 2 OF 2, VER 0^5,.. J,A.§ARRY.298j^ MACY11 306(1063) 12-JUN-84 13:03 PAGE 110-6
SEQ 0184
DHKB6 KL10 f1F20 DIAGNOSTIC.
DIAC0N.P1T 06-APR-78 09:52
PART 2 OF
6678
6679
6680
6681
6682
6683
668A
6685
6698
6699
6700
6701
6702
6703
670A
6705
(2)
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
I. VER 0.5 J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03 PAGE 110-6
MAIN REPORT ROUTINES
REM X
'POINTER TO 5-BYTE MASK IS ON ERROR TABLE
X
SEQ 0184
DHKBG
DHKBX
764
010504 012537
010510 000207
013030
IMIC36: MOV
RTS
(R5) + ,MKP. .-PICK UP POINTER FROM TABLE
PC .-RETURN TO SCANNER
010512
010516
010520
010524
010524
010526
010532
104025
010502
062705
010446
012704
000137
061540
000006
013032
011030
STACK HAS 3 WORDS CONTAINING A 36-BlT DATA PATTERN TO BE PRINTED
IN BINARY FORMAT.
Z
PT36: $PMSG,ERPAT .-PRINT MESSAGE
MOV R5.R2 .-DATA ALPRESS ^^^^
ADD #6.R5 .-PASS OVER 3 WORDS
PUSH R4
MOV
JMP
#ZMK..R4
TYP36
;N0 MASKING
;G0 TYPE AND RETURN
RFM Z
"the stack has an EMT PNTXXX and RO CONTENTS
z
010536 012537
010542 012500
010544 104000
010546 000207
0105/'.
PTEMT:
1$:
MOV
MOV
EMT
RTS
(R5) + ,U
(R5)+.R0
PC
GET EMT
LOAD RO WITH DATA OR PTR
EXECUTE THE EMT
BACK TO SCAN
J
DHKBG _KL10 MF20.D1AQNOSTIC^ PART 2 OF
J.A.BARRY 29857 MACYll 30G(1063) 12-JUN-84 13:03 PAGE 110-7
2 VER 0.5
u* Tki nrnnnr DniiTrtiCC
SEQ 0185
DHKBi
rtuirn
72
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
D1AC0N.P11 06-APR-78 09:52 MAIN REPORT ROUTINES
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 110-7
SEQ 0185
6720
6721
6722
6723
6724
010550
0500
6725
010552
062705 000006
6726
010556
6727
010560
0)0207
6728
6729
6730
6731
673?
6733
010562
012500
6734
010564
104024
6735
010566
000207
6737
6738
6739
6740
6741
6742
010570
104025 061554
6743
010574
010500 ^__,
6744
010576
062705 000004
6745
010602
104137
6746
010604
00020/
6747
6748
6752
6753
6754
6755
6756
6757
6758
6759
6760
010606
(2)
010606
010446
6761
010610
004735
6762
010612
(2)
010612
012604
6763
010614
000207
.REM X
STACK HAS
PDP-10 FORMAT.
3 WORDS CONTAINING 36-BIT DATA TO BE TYPED IN
X
PTDAT:
.REM
X
PTTXT:
.REM
X
PT22H:
PT22:
MOV
ADD
PNT36
RTS
R5,R0
#6.R5
PC
STACK HAS TEXT POINTER
MOV
PNTAL
RTS PC
(R5)+.R0
POINT TO DATA
PASS OVER 3 WORDS
PRINT THE DATA
BACK TO SCAN
GET THE TEXT POINTER
PRINT IT
BACK TO SCAN
STACK HAS PDP-10 FORMAT 22-BIT ADDRESS
$PMSG,ERADR
MOV R5,R0
ADD #4,R5
PNTADR
RTS PC
PRINT MESSAGE
POINT TO DATA
PASS OVER 2 WORDS
PRINT THE ADDRESS
BACK TO SCAN
STACK HAS ADDRESS OF A USER SUPPLIED TYPEOUT SUBROUTINE, ^ ^,,^
FOLLOWED BY THE DATA NECESSARY FOR THAT SUBROUTINE. UPON ENTRY TO THE
SUBROUTINE R5 POINTS TO THE FIRST DATA BYTE: UPON EXIT R5 MUST HAVE BEEN
UPDATED TO POINT TO THE NEXT STACK ENTf RETURN IS TO PC. R0-R4 MAY
BE USED FREELY.
X
USERFT: PUSH R4
JSR
POP
RTS
PC,a(R5)+
R4
PC
;SAV R4 SO SUBRTN CAN USE IT
.-CALL USER PRINTOUT ROUTINE
; RESTORE R4
; RE TURN TO STK SCANNER
17I
DHKBG KL10 MF20 DIAgNOSnC^ PART 2 OF 2. VER 0.5
J.A.BARRY 29857
nnriT ri mnni IT T iir (*
MACY11 306(1063) 12-JUN-84 13:03 PAGE 111
SEQ 0186
173
DHKBG KL10 MF20 DIAGNOSTIC.
0IAC0N.P11 06-APR-78 09:52
6780
6893
689A
6895
6896
6897
6898
6899
6900
697A
6975
6976
(2)
(2)
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
(1)
(1)
6998
6999
7000
(1)
(1)
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
(2)
(2)
7011
7012
PART 2 OF I, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 111
REPORT SUBROUTINES
f^^^ THIS IS THE^UML^TABLE^REPRESENTING THE PROCESSOR BACKPLANE.
SLOTS ARE MAPPED INTO BITS FROM LEFT TO RIGHT, TOP TO
• BOTTOM. E.G., SLOT 1 IS BIT 14 OF THE FIRST WORD, SLOT 16 IS
:• BIT 15 OF THf SECOND WORD. THE TABLE MUST BE CLEARED UPON
; EACH ENTRY TO "REPORT".
SEQ 0186
010616 000000 000000 000000 DIAUML: .WORD 0,0,0,0
010626
010626
010630
010632
010636
010640
010642
010646
010650
01C652
010654
010660
010662
010666
010672
010676
010702
010706
010712
010716
010720
010724
010726
010726
061714
010732
010736
010740
010740
061723
010744
010746
010752
010754
010756
010762
010764
010770
010772
010774
010774
010776
011000
011002
010146
010046
012701
022021
001004
020127
101773
000450
011600
020037
001450
005037
010037
012037
012037
011037
012700
0o'.737
103016
005737
001026
104025
047515
012700
104024
104025
040
104002
005237
000755
011600
012701
0^2021
.'20127
101774
000241
012600
012601
000207
000261
011006
077776
ENTRY POINT RDNDS IS FOR OVERLAYS OTHER THAN THE PROCESSOR DS FILES.
RO SHOULD POINT TO A SIX BYTE ASCII FILENAME.
ftDNDS: PUSH <R1,R0>'
077772
077776
011010
011006
011010
011014
011016
011020
011012
0064 36
011006
061714
047125 020124
011014
061723
047101 020104
1$:
2$:
21$:
22$:
3$:
31$:
4$:
41$:
MOV
CMP
BNE
CMP
BLOS
BR
MOV
CMP
BEQ
CLR
MOV
MOV
MOV
MOV
MOV
JSR
BCC
TST
BNE
PMSG
$PMSG
#C0NS0L-6,R1
(R0)+,(R1)+
2*
R1,#C0NS0L-2
1$
31$
(SP), RO
RO,PNAMSV
4li
TRIES
RO,PNAMSV
(R0)+,RPBUF
(R0)+,RPBUF+2
(R0),RPBUF+4
#RP8UF0,R0
PC.LODPRG
TRIES
41$
<MOUNT >
,$$CLIT
#RPBUF,RO
MOV
PNTAL
PMSG < AND HC\>
$PMSG,$$CLIT
PRGHLT
INC
BR
MOV
MOV
MOV
CMP
BLOS
CLC
POP
RTS
SEC
TRIES
(SP),RO
#C0NS0L-6,R1
(RO) + ,(RlW
R1 ,/>C0NS0L-2
3J.
<R0,R1>
PC
; POINT AT TAG LOC
.•WRONG TAG, NEED LOAD
;DONE?
:D0 3 WORDS
; OK... ALREADY LOADED
;6ET NAME PTR
.•TRIED BEFORE?
;YES, NOT AGAIN
;N0 SAVE FOR CHECK
.•STORE NAME STRING
;TRY FOR FILE
;IF ALL K
;DONE THIS BEFORE?
;BR IF YES
;ASK FOR FILE TO BE MOUNTED
;SET ONE TIME SWITCH
.•GIVE USER ONE CHANCE
;NAME PTR,AGAIN
;TAG LOC
.•store i.d. tag
;dok:?
;D0 3 WORDS
DHKQ
DHKB
76
76
76
76
76
7<
7(
7(
7<
76
7<
7(
7(
7(
7(
I
li
li
7i
71
7(
;TAKE ERROR EXIT
11 7/
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5
.. J.A.BARRY 29857
DcoriDT ciiooniiTTUCC
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 111-1
SEQ 0187
DHK
hMir
1
)174
DHICB6 KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857
DIAC0N.P11 06-APR-78 09:52 REPORT SUBROUTINES
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 111-1
SEQ 0187
7013
7014
7015
7016
7017
7018
7058
7059
7060
7061
7062
7063
(2)
706A
7065
7066
7067
7068
7069
7070
7071
7072
7073
707A
7075
7076
7077
7078
(2)
7079
(2)
7080
7081
011004
011006
011010
011012
011014
000773
000000
000000
020120
047116
011030
047116 047116
BR
.ASCII
.ASCIZ
4$
;FILE MOUNT TRY CTR
TRIES:
PNAMSV:
RPBUFO:
RPBUF :
EVEN
ROUTINE TO HANDLE TYPING OF A
UNPACKS AND SENDS ONE BYTE AT
XP X
XNNNNNN.AIU
36-BIT WORD POINTED TO BY R2
A TIME TO BINPAK WHICH CONVERTS
TO BINARY-ASCII IN GROUPS OF THREE BITS. ONES IN THE MASK WORD
CAUSE XS TO APPEAR IN THE TYPED BINARY WORD.
011030
011030 010546
011032 012705 177773
011036 004737 011156
TYP36: PUSH
R5
MOV #-5,R5
JSR PCTYPBI
LOOP HERE TO PROCESS THE
011042
011050
011052
011054
011060
011062
011064
011066
011072
011074
011074
011076
011076
011100
011102
012737
112400
112201
004737
005205
100767
010300
062700
104024
012605
1^604
104031
000207
177770 013070 1$:
011174
000006
MOV
MOVB
MOVB
JSR
INC
BMI
#-8..TEM.
(R4)+,R0
(R2)+,R1
PCBINPAK
R5
1$
MOV
ADD
PNTAL
POP
R3,R0
#6,R0
R5
POP
R4
PCRLF
RTS
PC
;SET BYTE COUNT
•SET UP BUFFER
5 BYT§S
;SET BIT COUNTER
;GET MASK BYTE
;GET DATA BYTE
.-EDIT BINARY INTO BUFFER
; CONTINUE
.•PICK UP PTR
.-SKIP LEADING GARBAGE
;CR/LF
;BACK TO SCAN
MTi
DHKBG.. ^K!,10 MF?0.DIA§NO§TI^, PART
2 OF 2, VER 0.5 J.A.BARRY 29857
*■' "- DconoT CI mom IT IMP*:
MACY11 306(1063) 12-JUN-84 13:03 PAGE 111-3
SEO 0188
0175
DHKBG -
DIACON.Pll
KLIO MF20 DIAGNOSTIC- PART 2 OF 2, VER
06-APR-78 09:52
0.5 J.A.BARRY 29857
REPORT SUBROUTINES
MACY11 30G(1063) 12-JUN-84 13:03 PAGE 111-3
SEO 0188
DHk
DH»
7119
7120
7121
(2)
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
(2)
7134
7135
7136
7138
7139
7140
7141
7142
7143
7144
177775
011156
177770
011174
000003
013070 1$:
011104
011104 010546
011106 012705
011112 004737
011116 012737
011124 005000
011126 112201
011130 004737
011134 005205
011136 100767
011140 010300
011142 062700
011146 104024
011150
011150 012605
011152 104031
011154 000207
011156 012703 013012
011162 105043
011164 012737 000002 013104
011172 000207
•TYPE 22-BIT BINARY
tYP22B: PUSH R5
MOV
JSR
MOV
CLR
MOVB
JSR
INC
BMI
MOV
ADD
PNTAL
POP
PCRLF
RTS
#-3.R5
PC-TYPBI
#-8.JEM.
RO
(R2)+,R1
PCBINPAK
R5
1$
R3,R0
#3,R0
R5
PC
.-BYTE COUNT
;SET UP
;BIT COUNT
.•ZERO MASK
;GET DATA BYTE
.•STUFF BUFFER
.•COUNT BYTE
;GET POINTER TO STRING
;SKIP BITS 12,13
.•RESTORE STACK PTR
;CR/LF
.•BACK TO SCAN
; ROUTINE TO INITIALIZE SOME VALUES FOR TYP16 AND TYP36
TYPBI :
MOV #TYPBF+60.,R3
CLRB -(R3)
MOV #2.SPCNT
RTS PC
."POINT TO RIGHT END OF BUFFER
;SET TERMINATOR
;SET SPACE COUNT
0176
DHKBG KLIO MF20 DIAGNOSTIC. PART 2 OF 2. VER 0.5 J.A.BARRY 29857
f\T*rniLi D11 nA.ADD-7fi no*^) RFPORT SUBROUTINES
MACY11 306(1063) 12-JUN-84 13:03 PAGE 113
SEQ 0189
DM
DH
0176
DHKB6 KL10 MF20 DIAGNOSTIC, PART
DIAC0N.P11 06-APR-78 09:52
2 OF
72A7
72A8
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
726A
7265
7266
7267
7268
7269
7270
7271
7272
7273
727A
7275
7276
mi
7278
7279
7280
7281
(2)
7282
7283
7284
7285
(2)
7286
7287
7288
2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 113
REPORT SUBROUTINES
THIS ROUTINE GENERATES CHARACTERS IN AN OUTPUT BUFFER BY
SCANNING UP TO 16-BITS OF DATA AND A MASK. A ONE IN THE MASK
CAUSES AN X TO APPEAR IN THE SUFFER. A ZERO IN^THE MASK CAUSES
THE CORRESPONDING DATA BITS VALUE TO APPEAR. THE MAGIC SPjJCE
COUNT CAUSES A SPACE TO APPEAR AFTER 3 BITS OF DATA AND CAN
BE PRESET TO CASES THE FIRST SPACE TO APPEAR AFTER EITHER 1 BIT
AS FOR A 16-BIT WORD, OR 3 BITS AS FOR A 36-BIT WORD.
SEQ 0189
DH
DH
011174
011200
011202
011206
011210
011214
011216
011222
032700
001403
113743
000410
032701
001003
113743
000402
000001
013100
000001
013102
BINPAK: BIT
BEQ
M0V6
BR
011224 112743 000061
011230
011236
011240
011244
011250
011252
011254
011260
011264
011266
011270
011270
011272
011276
011302
011304
011304
011306
032737 000003 013104
001004
112743 000040
005237 013104
006000
006001
005237
005237
100743
0uJ207
010046
013700
012720
012520
012620
010037
1$:
2$:
3$:
4$:
013104
013070
BIT
BNE
MOVB
BR
novB
BIT
BNE
MOVB
INC
ROR
ROR
INC
INC
BMI
RTS
#BIT0,R0
1$
AX0RSP,-(R3)
3$
#BIT0,R1
2$
Z0RSP,-(R3)
3$
#AS1,-(R3)
#BIT0!BIT1,SPCNT
4$ :N0
#ASSP,-(R3) .-INSERT SPACE
SPCNT ;AND COIJNF IT
.•TEST MASK BIT
;IF ZERO TEST DATA
.•INSERT AN X
; CONTINUE
.•TEST DATA BIT
.-PUT A OR SPACE IN BUFFER
.•CONTINUE
;PUT A 1 IN BUFFER
.-TIME TO SPACE?
RO
Rl
SPCNT
TEM.
BINPAK
PC
; SHIFT MASK
.•SHIFT DATA
.•COUNT BIT
.•COUNT OPERATIONS
;ALL DONE
. HERE IS A LITTLE ROUTINE WHICH PLACES AN EMT ON THE ERROR STACK
: WITH 16-BIT DATA FOR LATER PRINTING.
IeRPNT: PUSH RO
010066
000022
010066
011312 000205
ERSP..,RO
#FT10,(R0)+
(R5)+.(R0)+
(R0) +
MOV RO.ERSP..
RTS R5
;GET STACK PTR
.•FORMAT TYPE
;THE EMT
;R0 CONTENTS
;SAVE NEW PTR
0177
DHKBG KLIO MF20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857 _flACY11 306(1063) 12-JUN;84
svt9X». r^!fV'" Ai_*BB_5o notc^ "^"^ *• " CI nr-Tn-nnARn* rnNVFRSlON TABLE %. DATA 14-MAR-77
13:03 PAGE 114
SEQ 0190
Dl
Dl
0177
OHKBG KLIO MF20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MacjII 306(1063) 12-JUN-^^ 13:03 PAGE 114
DIAC0N.P11 06-APR-r8 09:52 SLOT-TO-BOARD* CONVERSION TABLE S DATA M-MAR-/'/^
SBTTL SLOT-TO-BOARD* CONVERSION TABLE & DATA 14-MAR-77
RFM Z
EACH TABLE IS INDEXED BY SLOT NUMBER. WHICH TABLE 8 HOW THAT
tSlE is used DEPENDS UPON THE BACKPLANE NUMBER. FOR THOSE
BACKPLANES WHICH HAVE EXCULSIVELY M8500 BOARDS, THE TABLE
CONTAINS THE LAST 2 DIGITS OF THE BOARD #. FOR INTERNAL
MEMORY BACKPLANES, THE TABLE CONTAINS A DISPLACEMENT INTO A
STRING OF CHARACTERS. NOTE THAT IN ALL TABLES A MEANS A SPARE
AND A -1 INDICATES A CABLE. ANY OTHER NEGATIVE * MEANS THAT _
BOARD REPLACEMENT REQUIRES DESKEWING OF OTHER SYSTEM COMPONENTS.
%
. COMMON BACKPLANE TABLE PARAMETERS. ^ , ^ .„^ «..«,..., tcn
ImAXBP=5 ; CURRENTLY BACKPLANES 1-5 ARE RECOGNIZED.
NOTE THAT BKPLN MAKES PNTUML A NOP.
$BPN: .BYTE $DFTBP .'BACKPLANE # (DFT OR AS SET)
IflPDEV: BYTE .-BACKPLANE DEVICE FLAG ^ ^^^^
011477 BPTA: .WORD BP1.BP2^BP35,BP4,BP35 :ADRS OF BKPLN BD # TABS _ __
062 .BYTE 58. , 0,50. ,50., 51. .-1 .-SLOTS 11-16
; BACKPLANE 2. DTE20/ftH20 BACKPLANE.^ ^ ^ ^ core n in
305 BP2: .BYTE 0,-1, -59., 54., 53., 52., 0,0, 0.0,-1 ^ ,«'SLOTS 0-10
;-f THE FOLLOWING IS A LIST OF ^ART NAMES FOR THE MA20.
BN35A: .ASCIZ /?/ , ;0
031066 .ASCIZ /M8562/ ;2
000065 .ASCIZ /G235/ ;10
000102 .ASCIZ /H217B/ ;15
000 .ASCIZ /G114/ ;23
050^66 THiloLLOWINf IS^ LIST OF'PART NAMES FOR THE MB20.
BN35B: .ASCIZ /?/ ;0
032466 .ASCIZ /M8565/ ;2
000066 .ASCIZ /6236/ ;
««« ..---eAcJ^yjEsTi'ff INTERNAL--^ Ur (MA20/HB20),
010 .BYTE 15,23,10,15,23,-36,0,0.-30,10 ;2 -30,
010 .BYTE '5,23,10,15,23,10.15,25, 0,15 ;3 -40
015 .BYTE 23,10,15,23,10,15,23,10,15,23 ;4 -50
023 .BYTE 40,15,23,-2 ;51-54
• BACKPLANE 4. KLlO-PV CPU BACKPLANE. ^^ ^^ „ ^ ^
377 &P4: .BYTE 0,-1,-1 ,; ,-16..-16.,- 6.,- 9..-19.,33. ;0-9
042 .BYTE 35., 36.. 34., 0.17., 17. J7., 21., 0,21. ;10-19
037 .BYTE 37.,29.,31.,l5.,2l.,2l.,0,14..1$.,18. .-20-29
346 .BYTE 20..32..-26.,38.,45.,25.,j3..9..42..12. ;30-39
060 .BYTE 48.,12.,48.,l2.,i8.,^l.,^0.,U.,22.,12. ;40-49
060 .BYTE 48., 12., 48., 12., 24. ;50-54
EVEN
: LIST OF BOARDS WITH "YA" PART NUMBERS
024 YALIST: .BYTE 13. ,18. ,20. ,26. ,29. ,31 . ,0
.EVEN
SEQ 0190
Dl
Dl
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
000005
7303
7305
011314
004
7306
011315
000
7307
011316
011347
011370
7308
011330
012222
012222
7309
011342
020
012
7310
7311
011347
000
377
7312
011362
072
000
7313
7314
011370
000
377
7315
7316
011403
077
000
7317
011405
115
032470
7318
011413
107
031462
7319
011420
031110
033461
7320
011426
030507
032061
7321
011433
115
032470
7322
73?3
011441
077
0Q9
7324
011443
115
032470
7325
011451
107
031462
73?6
011456
031110
032062
7327
011464
030507
033061
7328
011471
115
032470
7329
7330
011477
000
376
7331
011512
010
015
733?
011524
015
023
7333
011536
015
023
7334
011550
023
010
7335
011562
040
015
7337
7338
011566
000
377
7339
011600
043
9^^
7340
011612
045
035
7341
011624
024
040
734?
011636
060
014
7343
011650
011656
014
7344
011656
015
022
7357
011666
ni78
OHKBG KLIO MF20 DIAGNOSTIC,
PART 2 OF 2, VER 0.5 J.A.BARRY 29857^ MACYll 306(1063)
onAon rAiiniiT print ROUTINF
12-JUN-84 13:03 PAGE 115
SEQ 0191
Q 0178
OHKBG KLIO HF20 DIAGNOSTIC. PART
DIAC0N.P11 06-APR-78 09:52
2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11
BOARD CALLOUT PRINT ROUTINE
306(1063) 12-JUN-8A 13:03 PAGE 115
SEQ 0191
7359
7360
7361
736A
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
738A
7385
7386
7387
7388
7389
7390
(1)
(1)
7391
7392
7393
7394
7395
7396
(1)
(1)
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
011666
011670
011672
011700
011704
011706
011710
011714
011714
061734
011720
011724
011726
011730
011734
011736
011736
061751
011742
011744
011746
011750
011756
011760
011766
011774
011776
012002
104050
011505
116537
005037
005002
005745
012704
104025
041134
113700
001533
002403
020027
003403
104025
077
000524
010001
104037
116137
060101
016137
016137
000401
104227
?703
012/
.SBTTL
.REM
BOARD CALLOUT PRINT ROUTINE
ROUTINE TO PRINT BOARD CALLOUTS. TABLE DRIVEN FROM
A FOUR-WORD UHL TABLE CONTAINING ONES IN POSITIONS
REPRESENTING BOARDS (SLOTS) TO BE CALLED OUT.
TO USE:
JSR R5,PNTUML „ ^.„, ^
.WORD TA§LE .-ADDRESS OF UML TABLE
EACH ONE-BIT FOUND IN THE TABLE WILL BE USED TO CAUSE A PRINT-
OUT OF THE FORM "M8520,SLOt1o.". UP TO THREE SUCH ITEMS ARE
PRINTED PER LINE UNTIL THE TABLE IS EXHAUSTED. BITS., IN POS-
ITIONS FOR lABLES CAUSE A PRINTOUT OF "CABLE. SLOT 2." WHILE A ,,
BIT IN AN EMPTY SLOT POSITION CAUSE PRINTING OF "ERROR, SLOT 18."
BITS IN THE LAST WORD IN PHANTOM SLOTS 55 AND 56 ARE IGNORED.
IF THE BYTE IN BITS 0-7 OF THE FOURTH WORD EQUALS THE SLOT
NUMBER OF THE ITEM BEING PRINTED, THAT ITEM IS FLAGGED AS ^
BEING THE MOST LIKELY FAILING BOARD.^ NOTE THAT THE BACKPLANE
NUMBER IS PRINTED FIRST, NOT AS A PART OF THE BOARD LOCATION.
X
^NTUML: REGS
MOV
000006
012122
MOVB
013072
CLR
CLR
TST
M7777
MOV
. PRINT
■NON-BACKPLANE RELATED INIT.
061734
041501 050113
011314
000005
(R5),R5
6(R55.12$+2
SKEW.
R2
-(R5)
#-1 ,R4
.... .-.„ LOOP TOP
PMS6 <\BACKPLANE:
$PMSG,$$CLIT
061751
000134
011341 012032
011314 012040
011326 012106
104227
000003
1$:
MOVB
BEQ
BLT
CMP
BLE
PMSG
$6PN,R0
17$
1$
RO,#$MAXBP
2$
<?\>
$PMSG,$$CLIT
;SAV ALL REGS
;ADR OF UML TO R5
;HIGHEST PROBABILITY BOARD
.•CLEAR SKEW ADJ FLAG
;T0 FOOL SLOT SELECTOR
; "CURRENT SLOT *"
;GET CUR BKPLN NUMBER
;BKPLN 0... IGNORE & RETURN
:NEG BKPLN... ERROR
; BKPLN # IN RANGE?
;YES
.-ELSE SEND ERR CHR
BR
2$: MOV
PNTDEC
; BACKPLANE
MOVB
ADD
MOV
MOV
BR
3$: PTAB.PTAB
MOV #3,R3
17$ .1 EXIT
R0,R1 ;HANG ONTO B# FOR NOW
.•PRINT B#
RELATED INIT
HSNPB-1(R1),6$+2 :MAX SLOT # FOR THIS BKPLN
RI^RI ;60UBLE B# FOR WD NDX
BPtA-2(R1),7$42 zCONVERSION TABLE ADDRESS
BPCRA-2(R1).10$+J ;CONVERSION ROUTINE ADR
3$+2 .-SKIP A TAB
ITEMS/LINE COUNT
EG 0179
DHKBG .-
i\TArnu D11
KLIO MF20 DIAGNOSTIC.
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 HACY11 306(1063)
rwi c u ^^^^p CALLOUT PRINT ROUTINE
12-JUN-84 13:03 PAGE 116
SEQ 0192
Q 0179
DHKBG KL10
01ACON.P11
HF20 DIAGNOSTIC.
06-APR-78 09:52
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACYll 30G(1063)
BOARD CALLOUT PRINT ROUTINE
12-JUN-84 13:03 PAGE 116
SEQ 0192
7A09
7A10
7411
7A12
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
(1)
(1)
7433
7434
(1)
(1)
7435
7436
7437
(1)
(1)
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
012006
012010
012012
012014
012016
012022
012024
012026
012030
012034
012036
012042
012044
012046
012050
012054
012060
012062
012066
012070
012070
061754
012074
012076
012076
061762
012102
012104
012110
012110
061771
012114
012116
012120
012124
012126
012132
012136
012144
012146
012150
012152
005204
000241
006002
001003
012702
005725
030215
001767
020427
003047
116401
001412
003017
005401
005237
020127
00U06
104214
000406
104025
051105
000405
104025
041443
Go. '402
004737
104025
054
010400
104037
020427
001004
104214
105437
104032
005303
003317
104031
000711
100000
000000
000000
013072
000001
000043
061754
047522
061762
041101
000000
U:
5$:
6$:
■SECTION
INC
CLC
ROR
BNE
NOV
TST
BIT
BEQ
C«P
B6T
TO SELECT SLOT * ACCORDING TO U«L
R4 ;BU«P SLOT NUMBER
•TO IHPLIMENT A LOGICAL RIGHT SHIFT
R2 ; SHI FT MASK
5$ ;BR IF SOMETHING LEFT IN MASK
#BIT15.R2 ;ELSE RESET MASK
(R5)* ; I PT TO NXT UML WD
R2.(R5) ;BIT SET IN UML UD? ^,,
4$ ;BR IF NO...CHK NXT BIT
R4. #000000 .-SLOT # IN RANGE OF BACKPLANE?
-[{,{ BR IF NOT... EXIT CLEANLY
PRINT BOARD NAME AND SLOT #
Hx
000122
042514
061771
046123 052117
000000
025052
012122
104032 104032
10$:
11$:
12$:
13$:
NOVB
BEQ
BGT
NEG
INC
CMP
BEQ
PNTCI
BR
PMSG
'#
000000 (R4),R1
8$
10$
Rl
SKEW.
Rl.*1
9$
10$
<ERR0R>
$PMSG,$$CLIT
BR 11$
PMSG <#CABLE>
$PMSG.$$CLIT
BR 11$
JSR PC. 000000
PMSG <.SL0T >
$PMSG,$$CLIT
MOV R4,R0
PNTDEC
CMP R4.#000000
BNE 13i
PNTCI,"**
NEGB 12$+2
PSPACE.PSPACE..PSPACE
DEC R3
BGT 4$
PCRLF
BR 3$
;GET BYTE FROM CONV TABLE
;BR IF ERROR
:BR IF NO DESKEU
;DESKEU OR CABLE?
;SET SKEW FLAG
.•CABLE?
•YES
•NO. PRINT DESKEW CHARACTER
.•ELSE ERROR
;CALL CONVERSION ROUTINE
.•PRINT REST OF MSG
;SLOT #
.•HIGHEST PROS SLOT?
;N0
; YES... MARK OUTPUT
.•MARK ** PRINTED
.-SEP BOARD CALLOUT S
.•WHAT TO DO ABOUT <CRLF>
.•NOTHING
.•ELSE SEND LINE
.•LOOP
EQ 0180
DHKBG
KLIO
P11
MF20 DIAGNOSTIC.
nfk-APR-78 09:5?
PART 2 OF 2. VER
0.5 J.A.BARRY 29857 HACY11
BOARD CALLOUT PRINT ROUTINE
30G(1063) 12-JUN-84 13:03 PAGE 117
SEQ 0193
EQ 0180
DHKBG KL10
D1AC0N.P11
f1F20 DIAGNOSTIC.
06-APR-78 09:52
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 HACYll
BOARD CALLOUT PRINT ROUTINE
306(1063) 12-JUN-84 13:03 PAGE 117
SEQ 0193
7A50
7A51
7452
7A53
7A5A
7A55
7456
7A57
(1)
(1)
7458
7459
7460
7461
(1)
(1)
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7473
7474
7475
7476
7477
7478
7479
7480
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
012154
012160
012162
012164
012166
012172
012174
012174
062000
012200
012202
012206
012210
012210
062041
012214
012216
012220
012222
012226
012232
012234
012240
012244
012246
012250
012252
012254
012256
012262
012264
012270
012274
012276
012302
012304
012306
020327
001401
104031
104177
105737
002002
104025
025052
104031
005737
001402
012310
012314
000003
012122
062000
044510
013072
044107
104025 062041
043 054523 052123
104051
005725
000205
14$:
15$:
16$:
17$:
;AT END OF LINE WHEN DONE?
;YES, NO CRLF
-EXIT SECTION
CNP R3 .#3
BEQ 15i
PCRLF
PNTBAK .-BACK UP OUT BUFFER PTR
TSTB 12$+2 ; ** PRINTED?
BGE 16$ :N0
PMSG <**HIGHEST PROBABILITY OF FAILURE>
$P«SG.$$CLIT
PCRLF
TST SKEW. .-SKEW SENSITIVE BOARD?
BEQ 17$ :N0
PHS6 <#SYSTEM DESKEU REQUIRED\>
$Pf1S6,$$CLIT
REGRST
TST
RTS
(R5)*
R5
.•RESTORE THE REGISTERS
.•BYPASS TP
.•RETURN TO CALLER
104214
012700
060100
104037
012700
120110
001403
105720
Ou'374
000402
104214
000207
012700
105737
001402
012700
060100
104024
000207
000115
020464
104177
011656
040531
011403
011315
011441
A8500
1$:
3$:
-n8500 ONLY CONVERSION ROUTINE.
PNTCI.'M
NOV #8500.. RO
ADD RI.RO
PNTDEC.PNTBAK
NOV
CNPB
BEQ
TSTB
BNE
BR
PNTCI."YA
RTS PC
fYALIST.RO
RI.(RO)
2$
(R0) +
1$
3$
PRINT "n"
GET 8500
TACK ON LAST 2 DIGITS
PRINT *, DEL .
POINT TO LIST OF YA TYPES
FIND ONE?
YES
END OF LIST?
NO, CHECK NEXT ENTRY
DONE, GET OUT
ADD YA TO PART #
INENBPi
INTERNAL MEMORY BACKPLANE CONVERSION ROUTINE
1$:
.REM
NOV
TSTB
BEO
NOV
ADD
PNTAL
RTS
«6N35A,R0
$6PDEV
1$
«BN35B,R0
R1,R0
PC
POINT TO MA20 NAMES
NB20?
NO
YES, POINT TO MB20 NAMES
.DISPLACEMENT TO RO
; PR I NT THE NAME STRING
010037
000205
011314
SUBROUTINE 'BACKPLANE" SETS THE BACKPLANE NUMBER USED BY
PNTUML. IT IS PROVIDED FOR USE FROM AN ISOLATION ROUTINE.
THE UPPER HALF OF RO MAY BE USED TO IDENTIFY THE DEVICE IN
THE BACKPLANE BEING SET.
BACKPL: MOV RO,$BPN ;6ET BACKPLANE # FROM RO
RTS R5 ;RETURN TO CALLER
SEQ 0181
DHKBG KL10 MF20 DIAGNOSTIC.
niArnNPll 06-APR-78 09:5?
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 HACYll 306(1063)
REPORT VARIABLES AND CONSTANTS
12-JUN-o4 13:03 PAGE 118
SEQ 0194
SEO 0181
OHKBG KL10
DIAC0N.P11
MF20 DIAGNO:
06-APR-78 I
iJib
7505
7506
7507
7508
7509
7510
7511
7512
7513
75U
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7528
7529
7530
7531
7532
7533
PART 2 OF 2, VER
.SBTTL
0.5 J
REPORT
, A. BARRY 29857
VARIABLES AND
MACY11
CONSTANTS
306(1063) 12-JUN-o4 13:03 PAGE 118
SEQ 01 94
REPORT VARIABLES AND CONSTANTS
012316 000100
012516 000100
012716 000045
013030
013032
013046
013050
013052
013054
013070
013072
013074
013100
013102
013104
013106
013122
013124
013126
013130
013132
013154
013032
000000
000000
000000
013054
000000
000000
000000
044114
000130
000060
OOOOQO
177777
000000
000000
000000
000000
000001
001000
000000
000000
044114
oo^.coo
000000
^77777 }77777
000002
002000
000004
004000
.-ERROR STACKS - ONE ALSO USED AS TYPEOUT BUFFER SO MIN SIZE IS
: 37 WORDS
hTKl
ESTK2
TYPBF
.BLKU
.BLKU
.BLKU
ESTSIZ
ESTSIZ
37.
.•POINTERS AND OTHER VARIABLES
MKP.
ZNK.
ACP.
EXP.
DFP.
DIF.
TEN.
SKEW. :
LHTAB:
AXORSP:
ZORSP:
SPCNT:
ALL7:
DGP.:
BYP.:
BIT.:
BITTBL:
NTBL:
ZMK.
.WORD
DIF.
.WORD
.ASCII
.WORD
• WORD
.WORD
.WORD
.WORD
.WORD
.WORD
.WORD
.WORD
:MASK POINTER
0.0.0.0.6,0 .-DEFAULT MASK
JOINTER TO ACTUAL DATA
POINTER TO EXPECTED DATA
^POINTER TO DIFFERENCE DATA
.6.0
0,0.0.0
;TEMP
.-TEMP
ZLHLHX
ASX
60
-,.-1.-
BITO.BI
BIT9.BI
.-REPLACEMENT CHAR FOR ONES IN MASK
:FILL CHARACTER OR SPACE
.-SPACE POSITION COUNTER
1,-1.-1,37
.-HOLDS DIA6 FCN PTR
.-HOLDS BYTE PTR TABLE PTR
.-BIT MASK FOR SCANOUT ERR
:ZERO CONSTANT TO GO WITH TABLE
T1.BIT2,BiT3.BIT4.BIT5.BIT6,BIT7.BIT8
Tl6,BITll,Blfl2,BIT13,BITl4,BITl5
SEQ 0182
DHKBG KL10 MF20 DIAGNOSTIC. PART 2
DHKBXC.P11 11-MAR-79 19:17
OF 2, VER 0.5 J.A.BARRY 29857 HACY11 306(1063)
/tm HANDLING CODE COMMON TO DHKBF /DHKBG
12-JUN-84 13:03 PA6E ^20
SEQ 0195
SEQ 0182
DHKBG
DHKBXC
7539
7540
75A1
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7562
7564
7565
7566
7567
7568
7577
7578
7580
7581
7582
7583
7584
7586
7587
7588
KL10 MF20 DIAGNOSTIC.
.P11 11-MAR-79 19:17
PART 2 OF 2, VER 0.5 J.A.BARRY 29857
/CMD HANDLING CODE COMMON TO
MACY11 306(1063)
DHKBF /DHKBG
12-JUN-84 13:03 PAGE 120
SEO 0195
013172
013176
013202
013206
013212
013216
013222
013226
013232
013236
013242
013246
013252
013256
013262
013266
013272
013276
013302
013306
053121
047515
052503
042103
041524
046526
042123
051123
042510
006510
044522
046523
040504
051104
0'*i120
040522
040523
044524
047124
041511
000120
013334
014240
013406
013442
014104
013662
053366
014164
052630
052630
01417/
013i62
070011
053112
013534
070031
070025
070015
013476
013610
.S8TTL /CMD HANDLING CODE COMMON TO DHKBF /DHKBG
D2FAULT LISTING INCLUDES ONLY THE CODE CONTAINED IN gHKBXC (MOSTLY /CMD
AND COMMON TESTS), AND THE TEST CODE. USE THE SWITCHES BELOW TO GET MORE.
LSTMAC
LSBRTN
LSTMB
LSTALL
LSTDIA
RELEAS
LIST MOS MACRO LIBRARY FILE(S)
LIST SUBROUTINES
LIST MEMORY BOOT CODE
LIST EVERYTHING SPECIFIED ABOVE
LIST DIACON (NOT COVERED BY LSTALL) ^ ^,,^ ^^^^^^
GENERATES RELEASE LISTING. OVERRIDES THE ABOVE,
.REM
DOT:
/COMMAND DISPATCH TABLE FOR DIAGNOSTIC COMMANDS.
X
•IQV.SLSHQV
•T10,M0CMD5
"CU.SLSHCU
"CD.SLSHCD
•TCSLSHTC
*VM,SLSHVM
••SD,SLSHSD
"SR. RESETS
•><E,SLSHH
<CR*256.>+'H,SLSHH
•T^I,SLSHRI
"SM.SLSHSM
"DA,$DMPAC+1
'DR.SLSHDR
"PD,GPATCH
"RA,$RSTAC+1
"SA,$SAVAC+1
"TI,$TIMLP*1
"TN,SLSHTN
"ICSLSHIC
DCTS=.-DCT
TOGGLE QUICK-VERIFY MODE SWITCH
SEL MASTER OSCILLATOr^ CLK SOURCE
TOGGLE CACHE USE SWITCH
USED TO CORE DUMP GENERATED DIAGNOSTIC
SPECIFY SINGLE TEST t CMD DEFAULT CONTROLLER
SET VOLTAGE MARGINS
DO AN SBUS DIAG
DO AN SBUS RESET
PRINT DIAGNOSTIC'S HELP FILE
PRINT DIAGNOSTIC'S HELP FILE
RE-INIT DIAG CONTROL VARIABLES
INIT SHMOOOOO MODE TESTING
DUMP KLIO STATE ft SELECTED AC BLOCKS
DUMP SELECTED MF20 CONTROL RAM SET
PATCH PDP-11 DIAGNOSTIC
SM ft RESTORE AC BLOCK
SAVE CURRENT AC BLOCK
TIME PDP-11 CODE LOOP
TOGGLE TEST # TYPEOUT SWITCH
INITIALIZE SPECIFIED MF20 CONTR
.■SIZE OF CMD TBL
:DBGOVL
DBGOVL
DBGOVL
DBGOVL
n
DHKBG KL10
DHKBXC.P11
MF20 DIAGNOSTIC,
11-MAR-79 19:17
PART 2 OF I. VER 0.5 J.A.BARRY 29857
/CMD HANDLING CODE COMMON TO
MACY11 30G(1063)
DHKBF /DHKBG
12-JUN-84 13:03 PAGE 121
SEO 0196
7590
7592
7593
759A
7595
7596
7598
7599
(1)
(1)
7600
7601
7602
7603
7604
7605
7606
7607
7608
7612
(1)
(1)
7613
(1)
(1)
7615
7616
7617
7618
7619
7620
7621
7622
7623
762A
7625
(1)
(1)
7626
(1)
(1)
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
013312 020110 044104 041113
; HELP FILE MESSAGE.
6CTHLP: .ASCIZ "H DHKBG. HLP"
.EVEN
;PRGCMD ^TRING FOR HELP FILE PRINT
013326
013326
062072
013332
013334
013340
013342
013346
013352
013356
013360
013366
013366
062112
013372
013372
013376
013400
013404
013406
013412
013414
013420
013422
013426
013426
062122
013432
013432
013436
013440
013442
013446
013450
013452
013454
013456
013460
013464
013466
SUBROUTINE TO ALTER TKE STATE OF THE QV hOOE FLAG, SET THE CACHE-USE
FLAG (IF ANY) ACCORDINGLY, AND THEN TYPE THE STATUS.
104025
042114
000205
004537
103772
105137
105037
105737
001403
113737
104025
053121
004537
014262
104214
000410
062072
052440 047503
037426
014262
014261
014260
014262 014261
062112
046^40 042117
057352
020054
LDUIST:
PMSG <LD UCODE FIRST\> ;COME HERE IF SM IN CCS FAILED
$PMSG,$$CLIT
RTS R5
SLSHQV: JSR
BCS
COMB
CLRB
TSTE
BEQ
MOVB
PMSG
PSQV:
R5,CCS
LDUIST
QVFLG
CUFLG
CANCSH
PSQV
QVFLG, CUFLG
<0V MODE>
$PMSG,$$CLIT
PENDIS QVFLG
JSR R5, PENDIS
.WORD QVFLG
PNTCI,",
BR PSCU
;FTND OUT IF WE CAN USE CACHE
;SM FAILED. LD UCODE FIRST
;COMP QV fLAG
;CAN WE USE CACHE?
;N0.. LEAVE CACHE-USE FLAG CLEAR
.-ELSE MAKE THE FLGS = . _^^^^
.•ENTER HERE TO TYPE OUT FLAGS' STATES
.-PRINT IF ENABLED/DISABLED
.•PRINT IF FLAG ENABLED OR DISABLED
.•FLAG ADDRESS (0=DISABLED)
;G0 PRINT STATE OF CACHE-USE FLAG
0u':537 037426
103745
105737 014260
001402
105137 014261
104025 062122
042524 052123 020123
004537 057352
014261
000205
SUBROUTINE TO COMPLEMENT THE CACHE-USE FLAG. LEAVES IT ALONE IF WE'RE
NOT ALLOWED TO USE CACHE. TYPES THE FLAGIS STATE.
SLSHCU: JSR
BCS
TST8
BEQ
COMB
PSCU: PMSG
R5,CCS .-CHECK CACHE STATUS
LDUIST ;BR IF SM FAILED
CANCSH ;ARE WE ALLOWED TO USE CACHE?
PSCU ;NO...DONT CNG FLG
CUFLG ;ELSE CNG FLG
<TESTS USING CACHE> .'ENTER HERE TO TYPE FLAG'S STATE
$PMSG.$$CLIT
PENDIS CUFLG
JSR R5, PENDIS
.WORD CUFLG
RTS R5
.•PRINT IF ENABLED/DISABLED
;PRINT IF FLAG ENABLED OR DISABLED
;FLAG ADDRESS (0=DISABLED)
012701
104005
103402
110021
000774
105011
124127
001402
000137
007036
000012
052612
THIS IS THE CORE DUMP COMMAND CODE. IT IS USED AT PROGRAM GENERATION
TIME TO DUMP THE GENERATED DIAGNOSTIC OUT. CDUMP MUST ALREADY BE LOADED. AND
THE DESIRED DEVICE WRITE ENABLED AND SELECTED. AUTOMATICLY DOES A /RI BEFORE
DUMPING THE PROGRAM. COMMAND FORMAT IS: /CD TRAILING TEXT<CRLF>
SLSHCD:
1$:
l*r
MOV #PRGL0D,R1 ;PT TO BUFFER
TTICHR ;GET CHAR
BCS 2$ ;BR IF NO MORE
MOVB R0,(R1)+ ; MOV CHAR TO BUFFER
PR 1$ :-LP TIL ALL CHARS IN BUF
CLRB (RI) ;PUT NULL AT END
CMFB -(R1).#LF .-WAS LAST CHAR A LF?
BEQ 3$ ; YES... OK
JMP WHAT .-ELSE PUNT.... NEED CRLF AT LINE
END
Rl!<i9. .\\^^ "5??M5i(i58o?i!?^
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
rm\ c ur ^fi^j^-^^^^JJ^^ iigg poDf fOMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 121-1
SEQ 0197
76A3 013A72 000137 017016 3$: JMP CD60
SEQ 0197
15
DHKBG KL10 MF20 DIAGNOSTIC, PART 2
rkUVOVr P11 11-MAR-7Q 1Q:17
OF 2, VER 0.5 J.A.BARRY 29857 MACY11 JOG (1063)
/tm HANDLING CODE COMMON TO DHKBF /DHKBG
12-JUN-84 13:03 PAGE ]22
SEQ 0198
15
DHKBG KL10
DHKBXC.P11
MF20 DIAGNOSTIC,
11-MAR-79 19:17
PART 2 OF 2, VER 0.5 J.A.BARRY 29857
/CMD HANDLING CODE COMMON TO
MACY11 30G(1063)
DHKBF /DHKBG
12-JUN-84 13:03 PAGE 122
SEQ 0198
765-4
76A5
76A6
76A7
76A8
(1)
(1)
76A9
7650
7651
7652
7653
~ ''^
(1)
(1)
7655
7656
7657
7663
7664
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
(1)
(1)
7677
(1)
(1)
7678
013476
013502
013502
013506
013510
013512
013516
013520
013524
013526
013526
062144
013532
013534
013540
013544
013550
013552
013556
013560
013562
013566
013570
013574
013574
062147
013600
013600
013604
013606
105137
004537
014264
000205
105737
001405
113700
104037
104025
057440
000205
004737
000137
105737
001403
004537
104031
000205
105137
001402
005037
1O':025
123
004537
014263
000205
014264
057352
014264
006776
062144
000
036720
072300
014263
013562
014263
014254
062147
046510
057352
§LSHTN
TNT:
SUBROUTINES TO HANDLE TEST NUMBER TYPING.
COMB
PENDIS
JSR
.WORD
RTS
TSTB
BEQ
MOVB
PNTDEC
PMSG
TNTFL
TNTFL
R5,PENDIS
TNTFL
R5
TNTFL
1$
TSTNUM.RO
< >
TOGGLE FLAG
PRINT IF ENABLED/DISABLED^^_^_^^
PRINT IF FLAG ENABLED OR DISABLED
FLAG ADDRESS (0=DISABLED)
$PMSG,$$rLIT
1$:
RTS
R5
; PROGRAM PATCHER INTERFACE CODE. ^^, , ,^ ,^,
GPATCH: JSR PCTUCOVL ;MAKE SURE OVERLAY IS IN
JMP PATCH ;G0 TO IT
CSHKIO:
1$:
SLSHSM:
PSSM:
-SUBROUTINES TO TAKE
TSTB
BEQ
JSR
PCRLF
RTS
COMB
BEQ
CLR
PMSG
SHMOOO
1$
R5, SLSHSM
R5
SHMOOO
PSSM
VOLTS
<SHMOOOOO
047517
$PMSG,$$CLIT
CARE OF THE SHMOOOOO MODE FLAG.
FLAG SET?
;NO...EXIT QUIETLY
:ELSE CLR I TELL
TOGGLE SENSE OF SHMOOOOO MODE FLAG
BR IF NOW CLR
ELSE RESET VOLTAGE MARGINS
TESTINf^
PENDIS
JSR
.WORD
RTS
SHMOOO
RS.PENDIS
SHMOOO
R5
PRINT IF ENABLED/DISABLED
PRINT IF FLAG ENABLED OR DISABLED
FLAG ADDRESS (0=DISABLED)
86
DHKBG KLIO MF20 DIAGNOSTIC.
nui^Dvr D11 11.MAD.7Q 10- 17
PART 2 OF 2, VER 0.5 J.A.BARRY 29857
/rm HANDL ING CODE COMMON TO
MACY11 306(1063)
DHKBF /DHKBG
12-JUN-84 13:03 PAGE 122-1
SEQ 0199
B6
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03 PAGE 122-1
DHKBXC.P11 11-MAR-79 19:1^ /CMD HANDLING CODE COMMON TO DHKBF/DHKB6
SEQ 0199
7680
7681
7682
7683
768A
7685
7686
7687
7688
7689
7690
7691
7692
7693
(1)
7694
(1)
7695
7696
7697
(1)
(1)
7698
(1)
(1)
7699
013610
013612
0136U
015620
013622
013622
013626
013626
013632
013636
013640
01 3640
013644
013650
013650
013654
013660
'^^^ SLSHIC IS A QUIC<Y SUBROUTINE FOR THE BREADBOARD WHICH PUTS A CONTROLLER
INTO A KNOWN STATE: VOLTAGE MARGINS SET ACCORDING TO THE SWITCH SETTING (/VM),
FIXED VALUE AND TIMING RAMS LOADED, ECC COMP REG CLEARED, ERR FLAGS CLEARED, A
STD 16K RESPONSE PATTERN LOADED IN THE ADR RESPONSE RAM (ADR 18-21 SELECT ^^
ft BLOCK), ALL SPARES DESELECTED, ALL ICE SET, AND FINALLY REFRESH IS TURNED ON.
104100
103003
104025
000205
014736
004737 050104
SLSHIC;
1$:
004737
004537
003571
004537
021644
9!
04537
40004
000205
057520
015724
050502
000000
050502
000000
SM
BCC 1$
$PMSG,UCSTER
RTS R5
LDFSDP
JSR
GMCN
JSR
JSR
PCLFSDP
PC, GMCN
R5 SSTAT
QWRRD+CSPftD+Cl6KR
SBDIAG 0000,0002,1644
JSR R5,S8DT
SBDIAG 0000,0004,0004
JSR R5,SBDT
RTS R5
RESET CPU
BR IF SM OK
ELSE SAY UCODE ST ERR
ft EXIT
INI FAST-SBUS-DIAG PROGRAM
LOAD THE FAST SBUS DIAG PROGRAM ^
GET MOS CONTROLLER * (OR DEFAULT)
GET MOS CONTROLLER NUMBER
SET CONTR STATUS
AS INDICATED ABOVE _ ^
SET REFRESH INTERVAL (29.)
DO SBUS DIAG... WORD FOLLOWS
REFRESH ON
DO SBUS DIAG... WORD FOLLOWS
187
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF ?, VER 0.5 J.A.BARRY 29857 .„ NfCVII 30G(1063)
nHirnyr P11 ll-MAR-79 19:17 /CMD HANDLING CODE COMMON TO DHKBF /DHKBG
12-JUN-84 13:03 PAGE 125
SEQ 0200
87
DHKBG KL10
DHKBXC.P11
7701
7702
7703
770A
7705
7706
7707
7708
7709
7710
7711
7712
7713
7^^^*
7715
7716
7717
7718
7719
7720
7725
7726
7727
(1)
(1)
7728
7729
7730
(1)
(1)
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
MF20 DIAGNOSTIC.
11-MAR-79 19:17
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACV11 30G(1063)
/CMD HANDLING CODE COMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 125
SEQ 0200
013662
013664
013666
013670
013674
013676
013700
013702
013706
013710
013714
013716
013722
013726
013732
013734
013734
013736
013736
062170
013742
013746
013750
013750
062212
013754
013756
013762
013764
013766
013770
013772
013774
013776
014002
014004
014010
014020
014022
014026
014030
014034
014036
104050
104011
103423
012701
120011
001406
022121
020127
103772
000137
005721
142137
151137
004537
000401
104050
104025
047526
013701
001003
104025
047516
GoJ427
012702
112203
005103
010100
040300
120022
001011
116200
104037
116200
104037
005722
020227
103755
104177
104051
000205
SUBROUTINE TO SET & REPORT VOLTAGE MARGINS. ^If. NO PARAMETER IS GIVEN
JUST REPORT. A PARAM OF RESETS ALL MARGINS. OTHERWISE THE PARAM IS TAKEN
TO BE THE SIGNED INTEGER PART OF THE DESIRED VOLTAGE. SHMOOOO MODE IS RESET
WHEN A PARAM IS GIVEN.
014040
014104
052612
014254
014254
013544
062170
052114 043501
014254
SLSHVM:
1$:
2$:
PMARG:
PSVM2:
PSVM3:
062212
042516
014042
000
177774
177775
104177
014100
104177
104214
REGSAV
TTIDEC
BCS
MOV
CMPB
BEQ
CMP
CMP
BLO
JMP
TST
BICB
BIS6
JSR
BR
REGSAV
PMSG
$PMSG
.-READ VOLTAGE
PSVM2 ;BR IF NO PARAM.. .REPORT ONLY
#VMT.R1 ;INI PTR TO VOLTAGE MARGIN TABLE
R0,(R1) ;IS THIS THE VOLTAGE?
2$ ; YES... GO SET IT UP
(R1)+.(R1)+ ;ELSE GO TO NXT TBL ENTRY
Rl.*VMT+36. ;ANY TBL LEFT?
1$ ; YEAH... TRY AGIN
WHAT ;ELSE ERR
(Rl)+ ;PT TO MASK BITS
(R1)+, VOLTS ;SHUT OFF THIS MARGIN
(Rl), VOLTS ;TURN ON THE NEW ONE
R5,CSHM00 ;CLR SHMOOOOO MODE
PSVM2
<VOLTAGE
,$$CLIT
BR
1$:
MOV
2$:
MOVB
COM
MOV
BIC
CMPB
BNE
MOVB
PNTDEC
MOVB
PNTDEC
3$:
TST
CMP
BLO
PNTBAK
4$:
REGRST
RTS
MOV VOLTS, Rl
BNE 1$
PMSG <NONE>
$PMS6,$$CLIT
4$
#VMT+2,R2
(R2)+,R3
R3
R1,R0
R3.R0
R0.(R2)+
3$
-4(R2),R0
-3(R2),R0
,PNT8AK,PNTCI,'
(R2) +
R2,4fVMT+32.
2$
.PNTBAK
R5
.•DEFUNCT ENTRY (USED TO PRINT REFR INT MRG ALSO)
.•ENTER HERE FOR TYPEOUT ONLY
MARGINS: >
;6ET V MAR 'JORD
;BR IF ANY MAR SET
;EXIT
;INI PTR TO MASK BYTE
;6ET MASK BYTE
;COMP IT CAUSE PDP11 CANT AND
;GET V MAR BYTE
;SHUT OFF OTHER 3 MARGINS
;IS THIS MARGIN USED?
;NOPE...
;ELSE GET I PRINT INTEGER PART
; ft FRACTION
;SKP NUMBERS
;ANY TABLE LEFT?
;YUP...
;ELSE DEL TRAILING .<SPACE>
.-DONE
1188
DHKBG .
DHKBXC.P11
KL10 MF20 DIAGNOSTIC,
11-MAR-79 19:17
PART 2 OF 2,_ VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
/^MD HANDLING CODE COMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 124
SEQ 0201
188
DHKBG KL10 WF20 DIAGNOSTIC- PART 2 OF
DHKBXC.PII 11-MAR-79 19:1^
I. VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
/CMD HANDLING CODE COMMON TO DHKBF/DHKB6
12-JUN-84 13:03 PAGE 124
SEQ 0201
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
(1)
(1)
7777
7778
7779
7780
7781
(1)
(1)
7782
7783
7784
7785
(1)
(1)
7786
7787
014040
014044
014050
014054
014060
014064
014070
014074
014100
014104
014106
014110
014116
014120
014124
014126
014132
014134
014140
014140
062217
014144
014150
014152
014154
014156
014156
062241
014162
014164
014164
014170
014172
014
013
005
004
376
377
373
374
000
104016
103414
012737
104007
020027
103405
020027
101002
010037
104025
124
013700
GuJ402
104036
000205
104025
101
000205
004537
100000
000205
•
VULIAbt
.BYTE
074
210 VMT:
.BYTE
050
210
.BYTE
031
104
.BYTE
113
104
.BYTE
01?
042
.BYTE
13?
042
.BYTE
056
021
.BYTE
136
021
.BYTE
000
377
.BYTE
VOLTAGE MARGIN TABLE USED BY SLSHVM ft OTHERS. FORMAT:
' -- VOLTS INTEGER, VOLTS FRACTION, MAR MASK, MAR VALUE.
12. ,60. ,210,210
11. 40. ,210,010
5. ,25. ,104,104
4. ,75. ,104,004
-2. ,10. ,042,042
-1., 90., 042, 002
-5., 46., 021, 021
-4., 94., 021, 001
0., 00., 377, 000
12.60 VOLTS
11.40
5.25
4.75
-2.10
-1.90
-5.46
-4.94
USED TO RESET ALL FOR PARAM
FOR
000010
000017
014270
062217
051505
014270
062241
046114
055362
014270
SUBROUTINE TO SE' TEST CONTROLLER NUMBER. NO PARAM SAYS JUST REPORT.
THE /IC. /SO. /TR. AND /DR CO««NDS^UF «Y ARE^PRESENJJ^IA G«CN.
.-NON GIVEN OR NON-OCTAL.. .JUST REPORT
;PARAM GIVEN... SET DEFAULT FOR NOW
;GET CONTR *
;IN RANGE OF POSSIBLE MF20 CONTR #?
SLSHTC
PSTC:
TflSDL
BCS
MOV
TTIOCT
CMP
6L0
CMP
BHI
MOV
PMSG
PSTC
#-1,TC0N
RO,*MNMFCN
PSTC
RO,#MXMFCN
PSTC
R0,TCON
<TEST CONTROLLER
;N0PE... DEFAULT IS ALL
;ELSE SAVE »
>
020124
$PMSG,$$CLIT
TCON,R0
1$
1$:
000
MOV
BLT
PNTOCS
RTS R5
PMSG <ALL>
$PMSG,$$CLIT
;BR IF ALL CONTRS
RTS
R5
. LITTLE SUBROUTINE TO DO AN SBUS RESET.
RESETS: RESET SBUS^^^^^ _^^^^^ SPECIFIED HARDWARE
.WORD SBUS
RTS R5
0189
DHKBG ..-
DHKBXC.P11
KL10 MF20 DIAGNOSTIC.
11-MAR-79 19:17
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 30G(1063)
/tm HANDLING CODE COMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 125
SEQ 0202
)189
OHKBG KL10 MF20 DIAGNOSTIC- PART 2 OF
0HKBXC.P11 11-MAR-79 19:17
2, VER 0.5 J.A.BARRY 29857 MACY11 JOG (1063)
/tn\> HANDLING CODE COMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 125
SEQ 0202
7789
7790
7791
7792
7793
779A
7795
7796
7804
7805
(1)
7806
7807
7808
7809
7810
7811
7812
7813
78U
01A17A
0U200
0U202
0K206
0H210
0K2U
0H220
0K222
0U226
0U226
0K232
0U236
012700
105020
020027
103774
112720
020027
103773
005037
004737
104025
000205
014240 004737
014244 000205
000001
014246
014266
M7777
014272
011010
040446
014704
057424
§LSHRI
1$:
SUBROUTINE TO INITALIZE
2$:
MOV
CLRB
CMP
BLO
MOVB
CMP
BLO
CLR
MBINI
JSR
$PMSG,DIA6NM
RTS R5
*FLA60,R0
(R0) +
R0,*FLAG1
1$
*-1,(R0)+
RO^FLAG
2$
PNAMSV
PC. MBINI
ALL DIAGNOSTIC CONTROL VARIABLES.
;INI PTR
;ZERO A BYTE
.-DONE?
;BR IF NO
;NOW DO SAME FOR -1 VARIABLES
UNLOCK OVERLAY LOADER
INI ALL MEMORY BOOT DATA TABLES
INITIALIZE ALL MEMORY BOOT DATA AREAS
PRINT DIAGNOSTIC NAME
DONE
; CALLER CONVERSION FOR /MO CMD CALL. ^ ^^, ^^^ .„uu*».,^
M0CMD5: JSR PCMOCMD ;D0 MASTER OSC. SOURCE SELECT COMMAND
RTS R5
$M0CMD=1
.•ENABLE ASSEMBLY OF MASTER OSC CLK SRC SELECT COMMAND CODE
0190
«c.P?V^° "^Mi^^fJih ""' ' " ?iRy^L?s! ,6l>&>Sl^'y^lmuZ^lh^'\l'VmBi%&'
13:03 PAGE 126
SEQ 0203
0190
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7833
7834
7835
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
13:03 PAGE 126
.SBTTL VARIABLES, CONSTANTS, & DEFINITIONS COMMON TO DHKBF/DHKB6
nwi^Rr, ifiin mf?0 diagnostic PART 2 OF 2 VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84
DHKBXC.P11 11-MAR-79 19il^ VARIABLES. CONSTANTS, & DEFINITIONS COMMON TO DHKBF/DHKB6
SEQ 0203
■"^^ THE VARIABLES GIVEN HERE HAVE ABSOLUTE CONTROL OVER THE EXECUTION^OF THE
DIAGNOSTIC. THEY ARE ARRANGED INTO FOUR GROUPS: THOSE WHOSE DEFAULT VALUES ARE
ZERO, -1, OTHER, AND THOSE WHOSE DEFAULTS ARE SET ONLY AT ASSEMBLY TIME.
014246
014246
014250
014252
014254
014256
014260
014261
014262
014263
014264
000000
000000
000000
000000
000000
000
000
000
000
000
014266
. FLAGS WHICH
FLA60:
PTN:
TFAULT:
OPSED:
VOLTS:
DSTAT:
CANCSH: .BYTE
CUFL6: .BYTE
QVFLG: .BYTE
SHMOOO: .BYTE
TNTFL: .BYTE
.EVEN
DEFAULT TO 0:
PREVIOUS TEST NUMBER ^^^^^
FLAGS FAULTS IN SERIAL-PARALLEL TESTS
CONTROLS ONCE/START FUNCTIONS
STANDARD VOLTAGE MARGIN WORD, 0=NONE
DESIRED CONTROLLER STATUS FOR TEST
(SEE CONTR SELECT CODE FOR BIT DEFS)
CACHE PRESENT £ NOT INHIBITED (BY
INHCSH SW) IF NOT
TESTS USING CACHE ARE RUN IF NOT
IN QUICK VERIFY MODE IF NOT
IN SHMOOOOO MODE IF NOT ZERO
TYPE TEST NUMBERS IF NOT
014266
014266 ymn
014270 177777
014272
014272
014273
005
000
. FLAGS WHICH DEFAULT TO -1:
FLAGI •
OPLOAD: -1 ; CONTROLS ONCE PER LOAD FUNCTIONS
TCONV -1 -TEST ONLY THIS CONTROLLER, -1=ALL
FLAG:
. VARIABLES WHICH ARE INITALIZE ONLY AT ASSEMBLY OR GENERATION TIME.
ftEVNUM: .BYTE $REV .-HARDWARE REV LEVEL
VERNUM: .BYTE $VER .-PROGRAM VERSION
0191
DHKBG
DHKBXC
KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5
.P11 11-MAR-79 19:1? VARIABLES,
J.A.BARRY 29857 MACY11 30G(1063)^^12-jyN-84 13:03 PAGE 127
CONSTANTS, % DEFINITIONS COMMON TO DHKBF/DHKB6
SEQ 0204
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF
DHKBXC.P11 11-MAR-79 19:17
7853
785A
(1)
(1)
7855
(1)
(1)
7856
7867
7868
7869
7870
(1)
(1)
7871
(1)
(1)
7873
7874
7875
7876
7877
7878
7879
7880
(1)
(1)
7881
7882
7883
(1)
(1)
7885
(1)
(1)
7886
7887
7888
7889
7890
7898
(1)
(1)
7899
7900
014274
014274
014277
014301
014301
014304
014306
014306
014311
014313
014313
014316
014320
014322
014324
014325
014325
014330
014332
014332
014335
014337
014337
014342
014344
014344
014347
000
100
377
077
000
377
014352
000
000
377
000
006
000
004
000
006
200
017
017
000410
M7777
000
010
200
001
017
001000
010
000
002
000
010
237
z
000
017
000
377
020
020
2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-jyN-84 13:03 PAGE 127
VARIABLES, CONSTANTS, S DEFINITIONS COMMON TO DHKBF/DHKB6
• sBUS DIAG FUNCTION 00
§CLR05: WD36 0100,0000,0000 ;FCN TO CLR ERR FLAGS
FOEFM: UD36 0077,7777,7777 .-MASK FOR FCN ERR FLAGS
.EVEN
. SBUS DIAG FUNCTION 06
SDCECR: UD36 0000,0400,2006 ;FUNC 6.4 TO CLEAR ECC COMP REG
SDMECR: WD36 7600,0400,7406 ;MASK TO CHK FUNC 6.4
SEQ 0204
020
000
340
374
-SBUS DIAG FUNCTION 10
.EVEN
SDSVM: 410
VMRGUD:
BYTE
SDMVM: WD36 7600,0400,0410 ;MASK FOR THE ABOVE
;RHE OF FUNC 10, CLR DC BAD
.•VOLTAGE MARGIN & LD EN BITS GO HERE
F10CDB=1000 :CORRECTION DISABLE BIT DEF
SDSCD: WD36 6000,0000,1010 ;WD TO SET CORR DISABLE
SDMCD: WD36 7637,7000,0410 ;MSK TO CHK CORR DISABLE BIT
.EVEN
; COMMON VALUES
LK1835: WD36 7777,7700,0000 ;MASK LOOKS AT BITS 18-35 ONLY
.EVEN
DHKBG
DHKBXC.P11
KL10 MF20 DIAGNOSTIC,
11-MAR-79 19:17
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
^'tEST^O." ONE-TIME INIT COMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 128
SEQ 0205
J 0192
DHKBG KL10
DHKBXC.P11
790
790
790A
7905
7906
7907
(2)
7908
7909
7910
7911
7913
(1)
(1)
79U
(1)
7915
(1)
(1)
7916
7917
7918
7919
I1F20 DIAGNOSTIC,
11-MAR-79 19:17
PART 2 OF I
0U352
0U35A
01A35A
0U360
014366
0U372
0U37A
OUAOO
OUAOO
0622A5
OKAOA
01AA0A
01AA10
01AA10
062276
01AA1A
01AA22
01AA2A
01AA30
12-JUN-8A 13:03 PAGE 128
ONE-TIME INIl COWMON TO DHKBF/DHKBG
^ VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
'fEST#0." ONE-TIME INIT COMMON TO DHKBF/DHKBG
SEQ 0205
10A100
0137A6
10A0A3
005237
00101A
10A025
10A025
115
077776
10A0AA
01A266
01A670
0622A5
031106
00A537 05265A
10A025
0200A0
10A057
0OCAO2
10A025
00A537
062276
0A0512
10A035
01A70A
0521 5A
10A031
020060
031102
10A031
.SBTTL "TEST*0."
'^^^ THIS ROUTINE PERFORMS ONCE-ONLY INITIALIZATION.
ONETIM: SM ."CLEAR OUT THE MACHINE
PUSH CONSOL-2 )SAV UD TO PREVENT WIPE BY P ?.RAM
PFORCE.PNORML.PCRLF ;CR/LF _„,„,„.,,. .^
INC oploa6 ;Bump once-per-load flag
BNE 1$ SKIP FULL TITLE IF NOT FIRST TIME
$PMSG,10$ .-PRINT FULL NAME
PMSG <MF20 DIAGNOSTIC, PART 2 >
$PMS6,$$CLIT
PNTVER .-PRINT DIAGNOSTIC VERS.DN *
JSR R5, PNTVER .'PRINT VERSION #
PMSG < JAB29857\SWITCHES = >
$PMSG,$$CLIT
SWITCH, PNTOCT,PCRLF
BR 2$
1$: SPMSG.DIAGNM
2$: JSR R5.INITM
.•PRINT ABBREVIATED TITLE
.•INITIALIZE MBOX SUBROUTINES
0193
DHKBG KL10
DHKBXC.P11
nF20 DIAGNOSTIC.
11-MAR-79 19:17
PART 2 OF R^^VEJ^0,5
J.A.BARRY 29857
ONE-TIME INIT COMMON
MACY11 306(1063)
TO DHKBF/DHKBG
12-JUN-8A 13:03 PAGE 128-1
SEQ 0206
Q 0193
OHKBG KL10 MF20 DIAGNOSTIC. PART
DHKBXC.PII 11-MAR-79 19:17
2 OF 2^ VER 0.5 J.A.BARRY 29857 MACY11 300(1063)
^'fEST#0." ONE-TIME INIT COMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 128-1
SEQ 0206
7921
7922
7923
792A
7925
7926
7927
(1)
(1)
7928
(1)
(1)
7929
7930
7931
7932
(1)
(1)
7933
793A
7935
7936
7937
7938
7939
79A0
(1)
(1)
79A1
79A2
7943
7944
(1)
(1)
7945
7946
7947
(2)
014434
014436
014440
014442
014444
014446
014446
014452
014454
014454
014460
014462
014464
014466
014470
014470
014474
014476
014500
014502
014506
014510
014512
014514
014516
014516
062325
014522
0H526
014530
014532
014532
062342
014536
014540
014542
014542
005002
104100
103005
005702
001423
004737
114736
004537
050033
103005
005702
001412
004737
114713
012003
012001
032710
001015
005702
001007
005202
104025
120
012700
104133
iu<342
104025
042114
104002
000733
3$:
004602
047770
004602
000002
062325
042040 040511
-[77777
0625^2
042040 040511
41:
5$:
6$:
012637 077776
7$;
8$:
SECTION TO LOAD OR VERIFY
CLR
SM
BCC
TST
BEQ
ERRORA
JSR
R2
4$
R2
6$
UCSTER
PC, ERROR
XX
.WORD UCSTERIBIT15
JSR
APRIDO
R5,XX
.WORD APRIDO
BCC
TST
BEO
ERRORA
JSR
5$
R2
6$
ADEEM
PC, ERROR
.WORD A0EEM1BIT15
MOV (R0)*,R3
MOV (R0)+.R1
BIT #2,(R0)
BNE 8$
TST R2
BNE 7$
INC R2
PMS6 <P DIAGB.RAM\>
$PMS6,$$CLIT
#-1,R0
EXISTING MICROCODE.
;2AP UCODE LOADED SWTCH
;TRY A SM
* BR IF OK
•ELSE ERR... DID WE LOAD UCODE?
;BR IF NO... GO LOAD & RETRY
;PUNT. UCODE ST ERR
;TEXT POINTER
;D0 APRID & GET RESULTS^ „ _ ^^^
;EXEC INSTR (ADDR BELOW) 8 EXAM ACO
*BR IF OK
•ELSE DID WE LOAD UCODE?
;N0...60 LOAD IT
;APRID OR EXAM ERR
.-TEXT POINTER
;SAV RAW SERIAL * FOR LATER
;RAW UCODE VER # TO R1 ^ ^ ^.,
;IS UCODE A NSTD (IE A DIAG) VERSION?
;YES.. PROCEED
:DID WE LOAD UCODE?
; YES... PUNT... WRONG VERSION
;IND WE LOADED UCODE
.•LOAD UCODE VIA A PROGRAM CMD
MOV
PRGCMD
BCC 3$ ;BR IF LOAD SUCCESSFUL. ..RETRY
PMSG <i.D DIAGB.RAM ft HC\>
$PMS6.$$CLIT
PRGHLT
BR 2$
POP CONSOL-2
;TRY TO RESTART
;RESTORE Wl/ SAVED BEFORE
EQ 0194
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF ?.. VER 0,5 J -A- BARRY 29857 "ACYl J 306(1063)
DHKBXC.P11 11-MAR-*9 19:1* '^'TESTfO. ONE-TIME INIT COMMON TO DHKBF/DHKBG
12-JUN-84 13:03 PAGE 129
SEQ 0207
EQ 01 W
DHKBG KL10
DHKBXC.P11
MF20 DIAGNOSTIC.
11-MAR-79 19:17
PART 2 OF
2. VER 0.5
'^'fEST#0."
J.A.BARRY 29857
ONE-TIME INIT COMMON
79A9
7950
(1)
(1)
7951
7952
7953
795;
7955
(1)
(1)
7956
(2)
(2)
7957
7958
7959
7960
(1)
(1)
7961
7962
7963
7964
7965
(1)
(1)
7966
7967
7968
7969
7970
7971
(1)
7972
7976
7977
7978
(1)
7979
7980
7981
7982
7983
7984
7986
7987
7988
7989
014546 „^^
014546 004537 057720
014552 057746 000021
-LOAD THE JAB INSTRUCTION
OVRLOD JA80VLJAB0SZ
JSR R5, OVRLOD
.WORD JAB0VL.JAB0S2
MACY11 306(1063)
TO DHKBF/DHKB6
MICROCODE OVERLAY
12-JUN-84 13:03 PAGE 129
SEQ 0207
;LD UCODE
OVERLAY
GIVEN PDP-11
ADDR & SIZE OF OVERLAY
014556
014562
014564
014564
062365
014570
014570
014572
014574
014600
014602
014604
014604
062404
014610
014612
014614
014620
014622
014622
062422
014626
014630
014634
014640
014642
014642
014646
014652
014656
014662
014662
014666
014670
005737
001026
104025
125
006201
006201
042701
010100
104036
104025
020054
104202
011000
042700
104030
104025
020054
010300
042700
104037
104100
004537
004537
005037
005037
004737
000207
014266
062365
047503
177000
062404
046103
177774
062422
051120
170000
104031
055316
037426
014252
014246
050104
. SECTION TO PRINT ALL THE REST OF THE TITLE JUNK.
04'S04
TST
BNE
PMSG
$PMSG.$$CLIT
OPLOAD
9S
<UCODE VERSION
.-DONE ONCE BEFORE?
)IF YES, DONT PRINT THIS JUNK
SR
R1.2
041517
041517
BIC #177000, R1
MOV R1,R0
PNTOCS
PMSG <. CLOCK RATE >
$PMSG,$iCLIT
CLKPRM
MOV (RO).RO
BIC #1 77774, RO
PNTN6R
PMSG <. PROCESSOR ID *>
$PMSG.$$CLIT
^$:
MOV R3,R0
BIC #1 70000, RO
PNTDECPCRLF
■TAKE CARE OF MISCELLANEOUS
SM
014670 040515 047111 042504 10$:
INVAL
JSR
JSR
CLR
CLR
LDFSDP
JSR
RTS
ENBLPS
.ASCII
R5, INVAL
R5,CCS
OPSED
PTN
PCLFSDP
PC
THINGS.
RESET AFTER LOADING UCODE OVERLAY
INVAL CACHE WHETHER OR NOT WE HAV IT
INVALIDATE CACHE
FIND OUT IF WE CAN USE CACHE
INI ONCE-PER-START FLAG
PREV TEST NUMBER IS
LOAD FAST SBUS DIAG PROGRAM IN AC BLK 6
LOAD THE FAST SBUS DIAG PROGRAM
RETURN
;INI LOOP CONTROL MACROS
014704 044104 041113 056107 DIAGNM: .ASCIZ
014713 101 051120 042111 ADEEM: .ASCIZ
014736 041525 042117 020105 UCSTER: .ASCIZ
014760 .EVEN
'WAINDEC-IO "
"DHKBGX"
"APRID OR EXAM ERR\*
"UCODE START ERR\"
EQ 0195
DHKBG
DHKBXC.P11
KLIO MF20 DIAGNOSTIC,
11-HAR-79 19:17
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84
TiST#1. MASTER OSC TEST FIRST. COMMON TO DHKBF AND DHKBG.
13:03 PA6E 130
SEQ 0208
EQ 0195
DHKBG
DHKBXC
7991
7992
7993
799A
7995
7996
7997
7998
7999
8000
8001
8002
8003
800A
8005
8006
8007
8008
(1)
(1)
8009
8010
(1)
(1)
8011
8012
8013
(1)
(1)
80U
8015
8016
8017
8018
8019
8020
(1)
(1)
8021
(1)
(1)
8022
8023
8024
8025
8026
(1)
(1)
8027
8028
8029
8030
8031
8032
8033
KL10 hF20 DIAGNOSTIC. PART 2 OF
.P11 11-MAR-79 19:17
0U760
0U762
0U762
014766
014770
014772
014772
014776
015000
015004
015006
015006
062443
015012
015014
015020
015022
015024
015024
062510
015030
015030
062537
015034
015036
015042
015044
015046
015046
015052
015054
015056
015C62
015064
015071
104100
004537
050033
103003
004737
114713
03271 C
001003
104025
116
104062
012700
104133
103005
104025
040503
104025
124
104002
012700
104133
103771
004537
050033
103765
004537
QQ0207
051503
123
2, VER 0.5 J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03 PAGE 130
T^ST#1. MASTER OSC TEST FiRST, COMMON TO DHKBF AND DHKBG.
.SBTTL TEST#1. MASTER OSC TEST FIRST. COIt^ON TO DHKBF AND DHKBG.
RFM Z
THIS TEST IS DONE IN THE TEST INIT ROUTINE TO INSURE THAT IT
IS ALWAYS DONE. q^ ^j^j^ ^^g^^^g jq jgg jp ^HERE IS MOS MEMORY
TO TEST BY CHECKING THE MASTER OSCILLATOR BIT IN THE APRID. IF THIS BIT
IS NOT SET, IT IMPLIES THERE IS NO MOS MEMORY IN THE SYSTEM AND WE IMMEDIATELY
HALT PROGRAM EXECUTION USING AN ERREOP. NEXT. THE MASTER OSCILLATOR IS
SELECTED AND AN ATTEMPT IS MADE TO SEE IF IS REALLY RUNNING BY TRYING TO
PERFORM A 'START MICRO-CODE' USING PR6CMD. ON AN ERROR RETURN FROM THE
PROGRAM COMMAND UE KNOW THAT IT IS NOT RUNNING AND THE USER MUST TURN
POWER OFF AND THEN ON AGAIN TO RESELECT THE INTERNAL CLOCK. THIS MUSi
BE DONE BEFORE ANY OPERATION CAN TAKE PLACE ON THE 10.
X
SEQ 0208
MOINI
047770
004602
020000
062443
020117 040515
1$:
SM
XX APRIDO
JSR R5,XX ;EXEC
.WORD APRIDO
BCC 1$
ERRORA AOEEM
JSR PC, ERROR
.WORD A0EEM!BIT15 ;TEXT
BIT #20000, (RO)
BNE 2$
PMSG <N0 MASTER OSC. - NO
$PMSG.$$CLIT
; RE SET CPU
;D0 APRID &
INSTR (ADDR
. GET RESULTS
BELOW) S EXAM
ACO
;BR IF
; APR ID
OK
OR
EXAM ERR
POINTER
.•CHECK
;BR IF
MOS MEM TO
IF MASTER OSCILLATOR BIT IS SET
YES
iEST\>
015064
062510
023516
020124
062537
051125 020116
015071
047770
H:
3$:
4$:
ERREOP .-DON'T LET PRG GO ANY FURTHER
-AT THIS POINT WE KNOW THAT THERE IS MOS MEMORY IN THE SYSTEM.
WE NOW WANT TO SEE IF THE MASTER OSCILLATOR IS WORKING. _ ^^^ ^ ^
MOV #CSCMD1,R0 .-SELECT CLOCK SOURCE 2 (EXTERNAL)
BCC^'"^ 4$ ;BR IF NO ERROR
PMSG <CAN'T SEL MASTER OSC.\>
$PMSG.$$CLIT
PMSG <TURN POWER OFF. THEN ON\MASTER OSC. BAD\>
$PMSG.$$CLIT
PRGHLT
MOV
PRGCMD
BCS
XX
JSR
#SMCMD1.R0
3$
APRIDO
R5.XX
015402
031040
000115
000
CSCMD1
SWCMD1
.EVEN
.WORD APRIDO
BCS 3$
JSR R5.INIT
RTS PC
.ASCIZ /CS 2/
.ASCIZ /SM/
.•STOP REGARDLESS OF ERSTOP SWTCH SETTING
;NOW TEST TO SEE IF IT IS REALLY THERE
;BY TRYING TO DO AN 'SM'
;BR IF NOT OK
:D0 APRID & GET RESULTS
;EXEC IN§TR (ADDR BELOW) ft EXAM ACO
; (FORCES A NON-ZERO EXAMINE/DEPOSIT)
;BR IF NOT OK
.-EXIT
.•SELECT MASTER OSCILLATOR COMMAND
.•START MICRO CODE COMMAND
DHKBG KL10 f1F20 DIAGNOSTIC-
DHKBXC.P11 11-MAR-79 19:17
8035
8036
8037
8038
8039
80A0
80A1
80A2
80A3
80AA
80A5
8046
80A7
80A8
80A9
8050
8051
8052
8053
805A
8055
8056
8057
3058 015074
(1) 015074 004737
8059 015100
(1) 015100 004757
8060 015104
(1) 015104 004737
8062 015110 103027
8063 015112 Gu,-;737
8064 015116 IOC. 10
8065 015120
(1) 015120 104025
(1) 062610 053534
8066 015124 013700
8067 015130 104036
8068 015132
(1) 015132 104025
(1) 062673 040
8069 015136 000414
8074 015140
(2) 015140 010046
8075 015142
(1) 015142 004737
«076 015146
(2) 015146 012600
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACYll 30G(1063) 12-JUN-84 13:03
TfST*2. CONTROLLER CONFIGURATION TEST. COMMON TO DHKBF I DHKBG.
PAGE 131
SEQ 0209
.SBTTL VEST#2. CONTROLLER CONFIGURATION TEST, COMMON TO DHKBF & DHKBG.
'^^^ THIS IS THE CONTROLLER CONFIGURATION TEST. IT CHECKS TO MAKE .SURE THAT
THE CONTROLLER RESPONSE SEEN IS RESONABLE. THE INIT DETERMINES WHAT CONTROLLER
TYPES ARE RESPONDING TO WHAT CONTROLLER NUMBERS (CONDET). IT THEN TYPES THE
RESPONSE (ONLY ONCE). THE TEST ITSELF MEARLY CALLS THE MEMORY BOOT'S STANDARD
CONTROLLER TYPE FORMAT CHECK SUBROUTINE (CTFMTC) TO CHECK THE RESPONSE.
CTFMTC ERROR CODES HAVE THE FOLLOWING MEANINGS AND PROBABLE CAUSES:
1 NO CONTROLLERS FOUND AT ALL. PROBABLE CAUSE FOR MULTIPLE CONTROLLER
SYSTEMS IS FAILURE BY CPU TO TRANSMIT S8US DIA6 PROPERLY. 'N A SINGLE
CONTROLLER SYSTEM THE FAULT MAY ALSO LIE IN THE MEM CONTROLLER ITSELF.
2 AN UNRf COGNIZED CONTROLLER TYPE WAS SEEN. PROBABLE CAUSE IS i..'0 MEM
CONTRO! LERS RESPONDING TO THE SAME CONTROLLER NUMBER, OR A CONTROLLERS
RESPONSE I'' BAD
3 IS FOR A MISPLACED CONTROLLER, IE. A CONTROLLER IS RESPONDING TO THE
WRONG CONTKOLLER NUMBER. OR ITS RESPONSE IS BAD. ^__^ ^_ ^^^ ^^ ^_^^
4 MF20/MX20 VS. MASTER OSCILLATOR MISMATCH. APRID MASTER OSC BIT IS NOT
SET BUT AN MF20 OR MX20 IS SEEN, OR MASTER OSC BIT IS SET BUT THERE IS
NO MF20.
040446
041660
041462
014270
062610
051101
014270
CCI:
0445:6
062673
047101 053531
047334
2$:
%
MBINI
JSR
CONDET
JSR
CTFMTC
JSR
BCC
TST
am
PMSG
PC, MBINI
PC, CONDET
PC, CTFMTC
4$
ICON
2$
<\WARNING:
$PMSG,.$CLIT
MOV TCON,R0
PNTOCS
PMSG < ANYWAY\>
$PMSG,$$CLIT
;MAKE CONDET DO ITS THING
INITIALIZE ALL MEMORY BOOT DATA A^EAS
[DETERMINE CONTROLLER CONFIGURATION
[DETERMINE CONTROLLER PRtSENSE S FUNCTION 01 DATA
;D0 CONTROLLER TYPE FORMAT CHECK
iMEMORY CONTROLLER TYPE FORMAT CHECK
;BR IF NO ERR
;ERROR FOUND... ARE WE TESTING A SPECIFIC CONTR?
;NO...GO CALLOUT ERROR TYPE
MEM CONTR TYPE FORMAT ERRVTESTING CONTR >
DHKBG
DHKBG. P
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
(1)
(1)
8470
8471
8472
8473
(1)
(1)
8474
8475
8476
8477
8478
8479
8480
8481
PUSH
REPCON
JSR
POP
4$
RO
PC, REPCON
RO
.•ERROR OVERRIDEN BY /TC CMD. . .CONTINUE WITH INIT
.-SAVE ERROR CODE
.•REPORT CONTR CONF
.•REPORT WHAT CONTROLLER DATA WE HAVE TO NOW
.•RESTORE ERROR CODE
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF
DHKBXC.P11 11-MAR-79 19:17
2, VER 0.5 J.A.BARRY 29857 MACYII 306(1063) 12-JUN-84 13:03
TfST#2. CONTROLLER CONFIGURATION TEST, COMMON TO DHKBF & OHKBG.
PAGE 131-1
SEQ 0210
8078
(1)
(1)
8079
8080
8081
8082
8083
(1)
(1)
808A
(1)
(1)
8085
(1)
(1)
8086
(1)
(1)
015150
015150
01515A
015170
015174
015176
015176
015202
015226
015226
015232
015266
015266
015272
015332
015332
015336
004537 053626
000004 015170 015176
004537 015402
000207
004737 004602
047516 046440 046505
004737 004602
047111 040526 020114
004737 004602
042515 020115 047503
004737 004602
040515 052123 051105
3$:
4$:
5$:
6$:
7$:
8$:
CGOTO <4$,5$,6$,7$,8$> .'BRANCH ON NO ERR/ERR TYPE ^
JSR R5.CG0f0 :CALL COMPUTED GOTO SUBROUTINE
.WORD $$NARG-1,4$,5$,6$,7$,8$
JSR
RTS
ERROR
JSR
ERROR
JSR
ERROR
JSR
ERROR
JSR
R5,INIT
PC
;D0 INIT COMMON TO ALL TESTS
•INI DONE... NO ERR FOUND IN CONTR CONFIGURATION
<N0 MEM CONTR FOUND>
PC, ERROR
<INVAL MEM CONTR TYPE FOUND>
PC, ERROR
<MEM CONTR TYPE/NUMBER MiSMATCH>
PC, ERROR
<MASTER OSC EXISTS BUT NO MF20 FOUND>
PC. ERROR
;CTFMTC ERR CODE 1
.-CTFMTC ERR CODE 2
;CTFMTC ERR CODE 3
.•CTFMTC ERR CODE 4
DHKBG
DHKBG. P
8483
5484
d485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
(1)
(1)
(2)
(2)
8501
(1)
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
..__J
DHKBG
DHKBXC
8088
8089
8090
8091
8092
8093
809A
8095
8096
(2)
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
(1)
(1)
8111
8112
8113
811A
8115
8116
8117
KL10 MF20 DIAGNOSTIC. PART 2 OF
.P11 11-MAR-79 19:17
2, VER 0.5
DHKBF /DHKBG
J.A.BARRY
DIAGNOSTIC
29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 132
CONTROL SUBROUTINES. COMMON INIT FIRST.
SEQ 0211
015A02
015410
015412
015412
015414
015416
015420
015424
015430
015432
015436
015440
015444
015446
015452
015454
015456
015456
062704
015462
015464
015470
015472
015474
015476
015502
.SBTTL DHKBF/DHKBG DIAGNOSTIC CONTROL SUBROUTINES. COMMON INIT FIRST.
'^^^ INIT TAKES CARE OF THE THINGS WHICH MUST BE DONE FOR EACH TEST. AND
BEFORE AND AFTER EACH LOOP THROUGH THE TESTS.
X
023737
006776 007026
002002
012605
000207
104050
013701
006776
020137
014246
003026
■
105737
014263
001417
005737
006774
001014
012702
014254
105212
001002
104025
062704
042534
042116 051440
011200
004737
050044
051200
020012
0u!366
0052:7
014252
005237
014266
INIT;
CMP TSTNUM.TSTART
B6E 1$
POP R5
HAVE WE REACHED STARTING TEST?
YES. ..FINISH INIT
ELSE SKIP INIT
1$:
RTS PC
-CODE EXECUTED AFTER
REGSAV
•RETURN TO DIACON
EVERY tEST LOOP (OR ENDPASS)
2$:
3S:
4$:
NOV
CMP
BGT
TSTB
?l?
INCB
BNE
PMSG
TSTNUM.RI
RI.'^TN
5$
SHNOOO
4$
FAULTS
4$
#V0LTS,R2
(R2)
3$
<\END SHMOOOOO PASS!\>
WHERE R WE RELATIVE TO PREV TEST #?
MORE ADVANCED... NOT END OF LOOP
DOING SHMOOOOO PASS?
NOPE... SKIP SHMOOOOO CODE
ANY FAULTS DETECTED?
YES... DON'T CHANGE SHMOOOOO CONDITIONS
PTR SAVES SPACE
CALC NEXT VOLTAGE MAR6 BYTE
SKIP IF NOT BAK TO NOM YET
$PMSG,$$CLIT
MOV
JSR
m
BNE
INC
INC
(R2),R0
PC,ASR0.4
(R2),R0
R0.(R2)
2$
OPSED
OPLOAD
;CHK VOLT MARG BYTE VALIDITY
.•SHIFT RO RIGHT 4 BITS
VALID?
NO... TRY NEXT VALUE
PASS DONE... ZAP ONCE-PER-SED FLAG
MAKE SURE OPLOAD IS BUMPED TOO
DHKBG
DHKBG. F
8514
8515
8516
8517
8518
8519
8520
8521
(1)
(1)
(1)
(1)
8522
(1)
8523
8524
8525
8526
8527
(1)
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
DHKBG
DHKBXC
8119
8120
8121
8122
8123
8124
8125
8126
8127
(1)
(1)
8123
8129
8130
8132
8133
8134
8136
(1)
(1)
8137
8138
8139
8U0
KL10 MF20 DIAGNOSTIC- PART
.P11 11-MAR-79 19:17
2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 300(1063) 12-jyN-84 13:03
DlHKBF/DHlCBG DIAGNOSTIC CONTROL SUBROUTINES. COMMON INIT FIRST.
PAGE 132-1
SEQ 0212
015506
015512
015514
015520
015522
015526
015530
015534
015534
062731
015540
015544
015550
015556
015562
015566
015566
015572
015574
015576
015604
020137
001012
105737
001407
005737
001004
004537
104025
056
010137
005037
012737
004537
004537
004537
000200
104051
012737
000205
007026
014263
006774
013734
062731
000134
014246
014250
M7777
013512
052706
055362
054756
■CODE DONE BEFORE EACH TEST LOOP.
5$: CMP
Rl.TSTART
BNE .
6$
TSTB
SHMOOO
BEQ
6$
TST
FAULTS
BNE
6$
JSR
RS.PMARG
PMSG
$PMSG
,$$CLIT
; CODE DONE
FOR EACH TEST
6$: MOV
R1,PTN
CLR
TFAULT
053762
MOV
#-1,SJDATA
JSR
R5.TNT
JSR
R5,INIACS
RESET
CPU
JSR
R5. .RESET
.WORD
CPU
REGRST
054754
INITDL: MOV
#DFRLST.DLNXT
RTS
R5
AT START OF LOOP
NO... SKIP THIS CODE
IN SHMOOOOO M0D5?
NO...DONT TYPE MARGIN STUFF
FAULTS DETECTED?
YES...DONT TYPE MARG STUFF
TYPE MARG STUFF
FORCE TYPEOUT NOW
;CUR TEST * IS NOW PREV TEST #
;CLR SER-PAR FAULT IND
;ST JAB DATA NOT SET BY MABL YET
.-TEST NUMBER TYPOUT
;SET ACS IN BLKS 0-5 TO KNOWN VALUES
.•RESET SPECIFIED HARDWARE
.•RESET DEFERED LOAD LIST
.•RETURN TO INDIVIDUAL INIT CODE
DHKBG
DHKBG. r
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
(1)
(1)
8556
(1)
(1)
8557
8558
8559
(1)
(1)
8560
8561
(1)
(1)
8562
8563
(1)
(1)
8564
8565
8566
8567
8568
8569
r
DHKBG KL10
DHKBXC.P11
81 A2
8K3
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
(1)
(1)
8159
8160
8161
8162
8163
8164
8165
(1)
(1)
8166
8167
8168
8169
8170
8171
8172
8173
(1)
(1)
8174
(1)
MF20 DIAGNOSTIC.
11-MAR-79 19:1^
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACYll 30G(1063)
CONTROLLER SELECT LOOP CODE
12-JUN-84 13:03 PAGE 133
SEQ 0213
015606
015612
015614
015620
015622
015626
015632
015634
015634
015636
015640
015644
015650
015654
015656
015662
015664
015664
015666
015670
015674
015676
015704
015706
015712
015716
015716
015720
015722
015722
013700
002002
012700
005300
010037
012537
000205
015606
012546
005237
013700
005737
002405
020037
001411
012605
000205
020027
003373
1^^027
001355
013700
004537
005726
000205
104000
014270
000010
050706
014256
050706
050706
014270
014270
000017
.SBTTl.
.REM
ALLMFI
1$:
.REM
1$;
2$;
3$:
040576 000005
014256
015726
CONTROLLER SELECT LOOP CODE
U:
MF20 CONTROLLER LOOP INITIALIZATION CODE.
X
MOV
BGE
MOV
DEC
MOV
MOV
RTS
TCON,R0
1$
#MNMFCN,RO
RO
ROJSTCON
(R5)+,DSTAT
R5
TESTING A CERTAIN CONTROLLER?
YES
ELSE START WITH 1ST POSSIBLE
(BECAUSE ALLMF INCREMENTS FIRST)
SAVE FIRST TEST CONTROLLER NUMBER
GET DESIRED CONTROLLER STATUS
LOOP I NIT DONE
SELECT NEXT CONTROLLER
X
ALLMF: LOOPCO ALLMF I
.WORD ALLMF I
(R5)+,-(SP)
TSTCON
TSTCON.RO
TCON
31
RO,TCON
4$
(SP)+.R5
R5
RO,#MXMFCN
2$
TYPNUM(R0),#5
1$
MOV
INC
MOV
TST
BLT
CMP
BEQ
LOOPDONE
MOV
RTS
CMP
BGT
CMPB
BNE
CONTROLLER IS SELECTED.
DSTAT,RO
R5,SSTAT1
MOV
JSR
DOLOOP
TST (SP)+
RTS R5
FATAL
.WORD FATAL
UNLESS CONTROLLER NUMBER IS FROZEN.
;MF20 ONLY LOOP CONTROL
LOOP STARTUP ROUTINE ADR
SAVE THE FALL-THRU ADR FOR LOOPS
NEXT CONTR *
ALSO TO RO
ARE WE FROZEN TO A PARTICULAR CONTR?
NO...CHK TSTCON CONTR TYPE. ETC
ELSE IS TSTCON THE TEST CONTR?
YES. ..GO INIT & TEST IT
EXIT LOOP... NO MORE CONTRS FOR NOW
GET THE FALL-THRU ADR
RETURN TO IT, THUS EXITING THE LOOP
HAS CONTR # OVERFLOWED?
YES... LOOP IS DONE
IS CONTR AN MF20?
.NO... TRY NXT CONTR #
S§T UP CONTR STATUS S DO LOOP CODE.
DESIRED CONTR STATUS TO PARAM REG
SET CONTR STATUS
NEVER RETURN (AT LEAST NOT HERE)
DEL FALL-THRU ADR... NOT NEEDED
RETURN TO START NEXT PASS OF LOOP
SHD NOT HAV RETURNED
ASSEMBLE AS SIMPLE EMT FATAL. NO IDENTIFIER
DHKBG
DHKBG.
8571
8572
8573
8574
8575
8576
8577
8578
(1)
(1)
8579
8580
8581
8582
8583
8584
8585
8586
(1)
(1)
8587
8588
8589
859C
8591
8592
8593
859<
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857 MACYll 306(1063)
DHKBXC.P11 11-MAR-79 19:1? CONTROLLER INITIALIZATION lODE
12-JUN-84 13:03 PAGE 134
sEQ mi^
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
819'
819*«
8195
8196
8197
8198
(2)
8199
8200
(1)
(1)
8201
8202
8203
(1)
(1)
8204
(1)
(1)
8205
(1)
(1)
015724
015726
015726
015730
015732
015732
015736
015740
015744
015746
015746
015752
015756
015756
015762
015766
015766
015772
000400
000010
000040
000020
000200
000100
000004
001000
0U2000
000001
003431
012500
010246
010002
004537
000006
032702
001404
004537
100411
004537
020004
004537
100200
053530
000020
050502
000000
050502
000000
055362
CONTROLLER INITIALIZATION CODE
THESE DEFINITIONS ARE IN
.SBTTL
REM X
MF20 DESIRED STATUS CONTROL BIT DEFINITIONS.
THE ORDER THEY ARE DONE IN IF DESIRED.
%
MARGINING ENABLED FOR THIS TEST (FUNC 10)
FIXED VALUE RAMS ARE LOADED (FUNC 03)
STD 16K PER BLOCK RESPONSE PATTERN IS LOADED (FUNC 12)
TIMING RAMS ARE LOADED (FUNC 11)
REFRESH STARTED (FUNC 04)
ALL SPARE BITS ARE DESELECTED, ALL ICE SET (FUNC 07)
* THE CORRECTION DISABLE BIT IS SET (FUNC 10)
ECC COMP REG = (FUNC 06.4)
CLEAR ERR FLAGS (FUNC 00) „^ ,
* CONTR IS ENABLED (IE THE DISABLE BIT IS 0) (FUNC 01)
CMRG=400
CFVR=10
C16KR=40
CTIM=20
CRFR=200
CSPRD=100
C0RDIS=4
COECR^'JOO
CLR05=2000
\ *"(CLEARED BY SBUSIe SET 'THEREFORE mOst'BE SPECIfIED'IF'DESIRED:)
QURRD=CMRG+CFVR+CTIM+C0ECR+CLR05+CEN ;FOR QUICK WR/RD...NO REFRESH
. GET POINTERS AND DESIRED STATUS BITS
ftSTATi
SSTAT1
MOV
PUSH
(R5)+,R0
R2
1$:
MOV R0,R2
ACBLK 6
JSR R5, ACBLK
.WORD 6
BIT #CTIM,R2
BEQ 1$
SBDIAG 0000.0010,0411
JSR R5,SBDT
SBDIAG 0000,0002,0004
JSR R5,SBDT
RESET SBUS+CPU
JSR R5.. RESET
.WORD SBUS+CPU
GET DESIRED STATUS WORD
R2 HAS DESIRED STATUS WD
SEL AC BLOCK 6 TO PREVENT DESTRUCTION
SWITCH TO AC BLOCK
AC BLOCK #
ARE WE GOING TO LOAD THE TIMING?
NO
KLUGE FORCES BUSY-CLR, PREVENTS POWER-ON ERROR
DO SBUS DIAG...WORD FOLLOWS
OFF REFRESri, REFRESH INTERVAL=0
DO SBUS DIAG...WORD FOLLOWS
RESET ALL CONTRS ON GENERAL PRINCIPLES
RESET SPECIFIED HARDWARE
DHKB6 KL10 MF20 DIAGNOSTIC, PART 2 OF I. VER 0.5 J.A.BARRY 29857 MACYll 30G(1063)
DHKBXC.P11 11-MAR-79 19:1^ CONTROLLER INITIALIZATION CODE
12-J'JN-84 13:03 PAGE 13A-1
SEQ 0215
8207
8208
8209
8210
8211
8212
8213
82K
(1)
(1)
8215
8216
8217
8218
(1)
8219
8220
8221
8222
015774
016000
016002
016006
C16012
016016
016022
016022
016026
016032
016036
0160A0
016040
0160AA
016050
016052
032702
001414
013700
004737
052700
010037
004537
014325
032702
001402
004737
032702
001402
004737
000400
014254
050060
000020
014322
050414
014320
000010
042572
000040
016442
h:
i$:
-SET VOLTAGE MARGINGS.
BIT #CMRG,R2
BEQ 2$
MOV VOLTS,RO
JSR PC-ASL0.5
BIS #20,R0
MOV RO.VrtRGWD
FSDCHK SDSVM.SDMVM
JSR R5,FSDCHK
.yORD SDMVM.SDSVM
-LOAD FIXED VALUE LOGIC
BIT *CFVR,R2
BEQ 3$
LDFVR
JSR PC, LDFVR
-STANDARD 16K PER BLOCK
BIT
BEQ
JSR
#C16KR,R2
4$
PC,LD16KR
; VOLTAGE MARGINING DESIRED?
;N0
;6ET STD MR6 BYTE
;P0SITI0N
;LD EN
TO SBDIAG WD
;SET & CHK VOLTAGE MARGINS
;D0 SBUS DIAG % CHECK
jMASK I FUNCTION ADDRESSES
RAMS.
;SHD RAMS BE LOADED?
;N0
;ELSE LD THEM
jLOAD a MOS CONTROLLER'S FIXED VALUE RAMS
RESPONr rODE.
STr toK RESP PTRN DESIRED?
;N0
;ELSE SET IT UP
DHKBG KL10 MF20 DIAGNOSTIC,
DHKBXC.P11 11-MAR-79 19:17
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
CONTROLLER INITIALIZATION CODE
12-JUN-84 13:03 PAGE 135
SD^ 0216
822A
8225
8226
8227
(1)
8229
8231
8232
8233
823A
(1)
8236
8237
8<f38
8239
(1)
8240
82A1
8242
82A3
(1)
(1)
82AA
82A5
82A6
82A;
(1)
(1)
82A8
82A9
8250
8251
(1)
(1)
8252
8253
825A
8255
(1)
(1)
8256
8257
(1)
(1)
8258
8259
(2)
8260
016056
016062
01 :06A
01606A
016070
016070
01607A
016076
016076
016102
016106
016110
016110
01611A
016120
016122
016122
016126
016132
016136
0161A0
O161A0
■^(61AA
016150
01615A
016156
016156
016162
01616A
016170
016172
016172
016176
016202
01620A
01620A
016210
01621A
0162U
016216
032702
001 A02
00A737
032702
001 A02
00A737
032702
001 A02
00A737
032702
001 AOA
0OA537
01A337
032702
001 AOA
00A537
01A313
032702
Gu'A03
004537
01A27A
032702
001A05
00A537
000201
OOOAOA
00A537
002201
012602
000205
000020
0A3116
000200
0A331A
000100
OA70AA
OOOOOA
050A1A
01A332
001000
050A1A
01A306
002000
030530
000001
050502
000000
050502
000000
U:
j$:
b%:
H:
10$:
11$:
12$:
-LOAD THE TIMING RAMS.
BIT
BEQ
LDTIMR
JSR
#CTIH,R2
5$
PC, LDTIMR
LOAD TIMING RAMS?
NO
ELSE LD THEM
LOAD A MOS CONTROLLER'S TIMING RAMS
-LOAD REFRESH INTERVAL AND START REFRESH
BIT
BEQ
LDREFR
JSR
#CRFR,R2
6$
PC, LDREFR
REFRESH LD S START DESIRED?
NO
ELSE LOAD
LOAD & START REFRESH FOR A MOS CONTROLLER
. SHOULD WE DESELECT ALL SPA^E BITS AND IGNORE CORR ERR ALTOGETHER?
6%: BIT *CSPRD,R2 ;D0 WE WANT TO DO THIS?
BEQ 7$
INIBSR
JSR PC, INIBSR
• CORRECTION DISABLE
H: BIT #C0RDIS,R2
BEQ 8$
FSDCHK SDSCD-SDMCD
JSR R5, FSDCHK
.WORD SDMCD,SDSCD ,,.r.-,. w
CLEAR ECC COMPLEMENT REGISTER IF DESIRED.
DO WE WANT TO DO THIS?
NO
DO STD INIT OF BITSUB RAM
DO A DEFAULT INIT OF AN MF20'S BITSUB RAM
CORRECTION DISABLE DESIRED FOR TEST?
NO...CONTR WILL CORRECT BAD READS
SET CORR DISABLE... FAULT ON ERR
DC SBUS DIAG i CHECK
MASK & FUNCTION ADDRESSES
BIT
BEQ
FSDCHK
JSR
#C0ECR,R2
9$
SDCECR,SDMECR
R5, FSDCHK
.WORD SDMECR,SDCECR
■CLEAR ERR FLAGS IF IMPORTANT.
.•SHOULD WE CLEAR IT
.•NAHDONBOTHA
.-ELSE CLR IT
;D0 SBUS DIAG S CHECK
;MASK t FUNCTION ADDRESSES
;SHD WE CLR
;N0... DON'T
.•ELSE DO SBDi
;D0 SBUS DIAG
;ADR OF WORD
M
HER
to' CLEAR THE ERR FLAGS
BIT #CLR05.R2
BEQ 10$
SBDIA6 SCLR05
JSR R5,SBDI
.WORD SCLR05
•CONTROLLER DISABLED STATUS
BIT #CEN,R2 ;SHD CONTR BE ENABLED?
BEQ 11$ ;NO...JUST OFF SFTWR BITS
SBDIAG 0000,0000.0201 .-ELSE YES... OFF DISABLE I SFTWR BITS
JSR RS.SBDT ;D0 SBUS DIAG... WORD FOLLOWS
BR 12$
SBDIAG 0000.0000,2201
JSR R5,SBDT
POP R2
RTS R5
.•LEAVE CONTR DISABLED. . .OFF 5FTWR BITS
.•DO SBUS DIAG... WORD FOLLOWS
.•RETURN TO CALLER
;ALL DONE
DHKBG KL10 MF20 DIAGNOSTIC. PART
DHKBXC.P11 11-MAR-79 19:17
8262
8263
826A
8265
8266
8267
8268
(1)
(1)
(2)
(2)
8269
8270
8271
8272
8273
827A
8275
8276
8277
8278
8279
8280
8281
8:82
8283
828A
8235
8286
8287
8288
8289
8290
8291
8292
8293
829A
8295
8296
8297
8298
8299
8300
8301
0302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
2 OF
2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
CONTROLLER INITIALIZATION CODE
016220
016220
016224
016230
016232
016234
016236
016236
016243
016250
016255
016262
016267
016274
016301
016306
016313
016320
016325
016332
016337
004537 054356
000014 016236
037777
016776
000205
000000/000000
000001/000177
000002/037600
0C0003/343617
000004/554663
000005/665325
000006/732351
000007/201740
000010/256200
000011/404717
000012/104440
000013/365740
000014/104000
uJOOl 5/200700
001777
776000
776007
036170
146631
253252
455514
000006
000015
000000
000132
000010
001230
000001
016344
016351
C1635d
016363
016370
016375
016402
016407
016414
016421
016426
016433
0^7777
000001/256200
000002/651700
000003/541740
000004/322700
000005/405716
000006/344740
000007/621^40
000010/241740
000014
000016
000001
000007
777777
000004
007777
777777
000012/242740 77777}
000013/104000 000143
000014/200700 000016
016776
016434
12-JUN-84 13:03 PAGE 136
SEQ 0217
THIS IS THE AC CODE WHICH CALCULATES WHAT THE ECC SHOULD BE BASED UPON
THE DATA PATTERN IN BLKl ACI. OUTPUT IS AC17 OF BLK3. ENTRY IS TO BLK2 AC7,
EXIT IS TO BLK4 ACI.
X
; SUBROUTINE TO LOAD THIS AC PROGRAM PORTION.
LDECCP: MABL <,,ECCPM2,ECCPM3>,ECCP2 ;LOAD BLOCKS 2 8 3,
JSR R$,MABL
.WORD X,ECCP2
.WORD ECCPM2
.WORD ECCPfl3
RTS R5
THIS BLOCK GETS THE DATA
.AND. MASKS FOR EACH ECC BI
WHO CALCULATES AND SAVES THE
BLK10
ECCP2: WD36
WD36
WD36
WD36
WD36
WD36
WD36
no
no
no
no
no
}]?
ECCPM2=037777
0000,0000,1777
0001,7777,6000
0376,0077,6007
3436,1703,6170
5546,6314,6631
6653,2525,3252
7323, 5145. 55U
M0VEI,17..6
PXCT-4,,15
AND, 16, ,0.17
JAB, 11, ,0132
SOJGE,17,.10
JAB, ,.1230
MOVE, 16, ,1
LD AC PR6M, NO ST ADR GIVEN
AC BLOCK MASK & INITIAL 11 ADR OF 10 DATA
AC LOAD MASK(S)
AC LOAD MASK(S)
PATTERN WHEN REQUIRED AND LOOPS THRU THE
T. WHEN TH^ AND. IS CALCULATED IT CALLS BLK3
ECC BITS.
0-ECC32 AND MASK
1-ECC16 AND MASK
2-ECC8 AND MASK
3-ECC4 AND MASK
4-ECC2 AND MASK
5-ECCl AND MASK
6-ECCPAR AND MASK
7-<FR0M 1> INI LP CNT/NDX
10-GET DATA PTRN
11-OFF BITS NOT AFFFECTING THIS ECC BIT
12-CALL 1 ECC BIT CALC
13-<FR0M 3> LP TIL ALL ECC BITS DONE
14-ALL DONE... GO POSITION ECC FOR USE
15-PXCTD TO GET DATA PTRN FROM BLKl ACI
16-AND RESULT
17-LP CNT/NDX
THIS BLOCK IS A BASIC
1 BIT AT A TIME. FINALLY
FCN 6 WORD.
PARITY CALCULATOR WHICH MEARLY
IT POSITIONS THE 7 ECC BITS TO
SAVES ITS RESULTS
RESEMBLE AN SBUS DIAG
I
I
I
i
n
I
I
PXCT,4,,14
TSC,16.,16
HRRI,17,,1
JUMPEJ6,.7
0-
1-<FR0M 2> GET AND RESULT
2-CALC PAR OVER 18 BITS
3-SET UP FOR PAR CALC LP
4-BR IF NO MORE BITS FOR PAR CALC
ANDI,l6,,>77777,l6 ;5-ELSE REMOVE BIT
AOJA.17,.4 ' "
TLZ,l7,, 607777
ROT, 17,, 777777
11!
LSH, 17-, 777771
JAB,, ,0143
MOVE, 16, ,16
ECCPM3=016776
ENDBLK
.EVEN
6-CNT BIT I LOOP
7-ZAP GARBAGE
10-PUT ECC BIT NEXT TO OTHERS
11-JAB PUT HERE TO RETURN TO BLK 2
12-<FR0M 2> POSITION ECC AS PER FCN
13-GO TO BLK 4 PC 1
14-PXCTD TO GET AND RESULT
15-
16-SCRATCH
17-ECC BUILT
HERE IN 07-13
DHKB6 KL10 MF20 DIAGNOSTIC^ PART 2 OF I. VER 0.5 J.A.BARRY 29857 MACY11 30G(1063) 12-JUN-84 13:03 PAGE 137
DHKBXC.PII 11-MAR-79 19:lt CONTROLLER INITIALIZATION CODE
SEQ 0218
8315
8316
8317
8318
8320
8321
8322
8323
(1)
8327
(1)
(1)
8329
8330
8331
8332
8333
8335
8336
8337
8338
8339
8340
8342
8343
8344
8346
8347
(1)
8349
8350
8351
8352
8353
8355
8357
(1)
(1)
8358
8359
8360
8361
8362
(1)
(1)
8363
8364
8365
8366
8367
8368
8369
8370
8371
(1)
8372
016434
016440
016442
016450
016450
016454
016454
016460
016462
016466
016472
016476
016502
016504
016506
016510
016512
016514
016516
016520
016522
016524
016524
016526
016532
016534
016540
016542
016546
016546
016552
016554
016560
016564
016570
016570
016574
016576
005037
000403
012737
004737
004537
016631
013700
116005
116505
004737
010004
005003
010300
OOC300
006200
006200
105724
003005
001401
104000
016530
0:>J700
000405
126405
001402
052700
004537
004000
052700
010037
110337
004537
016624
005203
016530
000040
056072
050174
050706
041260
041212
041250
M7111
M7777
002000
056150
000020
016626
016625
050222
016600 020327 000020
016604 002740
016606 012700 000060
016612 020327 000400
016616 002760
016620
016620 000137 056130
SUBROUTINE TO LOAD THE ADDRESS RESPONSE RAMS IN SUCH A WAY THAT ADR
BITS 18-21 ARE EFFECTIVELY THE GROUP % BLOCK NUMBERS: GGBB. SETS DESELECT FOR
BLOCKS NOT PRESENT. PLEASE
DO NO" NECESSARILY. START AT
016530
L16KRA:
LD16KR:
X16KR:
CLR
BR
MOV
SAV.5
JSR
FSDMSK
JSR
.WORD 9$
DSL16K
X16KR
#40,DSL16K
PC. SAV.5
9$
R5. FSDMSK
MOV
MOVB
MOVB
JSR
MOV
CLR
; INITIAL
h: MOV
SUAB
ASR
ASR
; PUT IN
TSTB
Q
FATAL
.WORD
DSL16K=.*2
TSTCON,R0 ,ww.
RA«SZ0-MNMFCN(R0),R5
NOTE THAT THE LOCATIONS ACCESSABLE IN EACH BLOCK
RELATIVE TO THE BLOCK.
.•FORCE SELECT EVEN IF NO BLOCK
.•ALLOW DESELECT FOR NO BLOCK
;SAV REGS
;SAVE R5-R1 ON STACK
;LOAD FSD MASK
;LD SBDIAG CHK MASK
;MASK ADDRESS
GET TYPSEL=0 BLK SIZ
lie
BSIZE(R5),R5
PC.8AF0
R0,R4
R3
VALUES LOADED.
R3.R0
RO
RO
RO
TYPE SEL
(R4) +
3$
2$
. IN R5
;CALC BLK SIZ TABLE PTR
; IN R4
;INI RESP RAM LOAD ADR
NOW CREATE RESPONSE RAM WORDS S LOAD THEM.
;GET S POSITION SKELETON RESP RAM DATA
FATAL
I DESELECT BITS IF NECESSARY.
DOES BLK EXIST?
YES
.NO
;BLK IS ALLOCATED... SHOULD NOT BE
.•ASSEMBLE AS SIMPLE EMT FATAL, NO IDENTIFIER
2$:
3$:
4$:
BIS
BR
CMPB
BEQ
BIS
SETPAR
JSR
^$:
BIS
-NOW DO
MOV
MOVB
FSD
JSR
WORD 4060
# RO ;SET DESELECT BIT FOR BLOCK
-1(R4).R5 .-DOES BLOCK HAV TYPSEL=0 RAMS?
4$ ;YES
#2000, RO ;ELSE SET TYPSEL=1 BIT
4000 ;SET PAR BIT AS REQUIRED
R5. SETPAR .-SET PARITY BIT IN RO USING 4000
#20, RO
SBUS DIAG
R0,8$
R3,7$
6$. FAULT
R5,FSDCH
INC
RESPONSE
DESELECTED.
CMP
J
.WORD 6$
R3
WORDS
0-15
;LD EN BIT (15)
TO SET «JP RESPONSE WORD.
;RESP TO SBDIAG WD (04-19)
;RESP RAM LD ADR TO WD (20-27)
:D0 S CHK SBDIAG
;D0 FAST SBDIAG, FAULT ON ERR
.•SBDIAG WORD ADDRESS
.•NEXT ADR
(0-256K) ARE SET UP. ABOVE THAT EVERYTHING
IS
i
5. PC
JMP
R3.#16.
1$
#60, RO
R3,#256.
5$
R5.PC
DONE WITH FIRST 256K?
NOPE... DO MORE
ELSE SET RO TO DESEL & LD EN
REST OF RAM LOADED ALREADY?
NOPE... GO LOAD IT
ALL DONE... RETURN
RESTORE R1-R5 FROM STACK & DO RTS PC
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACYll 30G(1063)
DHKBXC.P11 11-MAR-79 19:1? CONTROLLER INITIALIZATION CODE
12-JUN-8A 13:03 PAGE 137-1
SEQ 0219
83?3
8374
8375
8376
8377
(1)
(1)
016624
016625
016626
016630
016631
016631
016634
012
6$:
.BYTE
000
7$:
.BYTE
000000
8$:
.WORD
000
.BYTE
9$:
UD36
012
377
020
200
017
12
7600,0417,7412
.-BLANK SBDIAG FUNC 12 (ADR RESP)
;RAM LD ADR
;ADR RESP RAM DATA
.•MASK FOR Fi'"C 12 RAM LOAD
DHKI
DHKI
8
8:
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
S
fi
e
G
fi
fi
i
i
I
i
OHKBG KL10 MF20 DIAGNOSTIC, PART
DHKBXC.P11 11-MAR-79 19:17
2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 30G(1063)
CONTROLLER INITIALIZATION CODE
12-JUN-84 13:03 PAGE 138
SEQ 0220
8379
8389
8390
8391
(1)
8392
(1)
8393
839A
8395
8396
(1)
8397
(1)
(1)
8398
8399
8400
8A01
016636
016636
016636
0166A2
01 6642
0166A6
016650
016650
016650
016654
016654
016660
016662
016664
016666
016670
&LDRUN:
COMMON DEFERED LOAD AND RUN ROUTINE
004737 055102
004537 053714
000405
004737 055102
004537 053720
000007
005700
001401
000261
000207
LDEFER
JSR
RUN
JSR
BR
PC, LDEFER
R5,AUT0RP
DLDRNX
DLDRNL;
DLDRNX:
1$:
LDEFER
JSR
RUN
JSR
.WORD
TST
BEQ
SEC
RTS
PC.LDEFER
j6
R5,AUT0RB
10-1
RO
1$
PC
•DO DEFERED LOADING
;D0 DEFEftED LOADS NOW
;RUN PRGM 1 TICK, USE MABL START
:D0 DEFERED LOADING
;D0 DEFERED LOADS NOW
;RUN A LONG TIME
;RUN PRGM N TICS, USE MABL START
;# 60 CYC CLKS TO RUN PRGM (-1)
;TEST HALT CODE (PC), CLR C-BIT
;BR ON PC=0, NO ERR DETECTED
;ELSE SET C-BIT
DHK
DHK
8
8
8
8
8
8
8
8
8
8
OHKBG KL10
DHKBG.P11
MF20 DIAGNOSTir,
13-APR-84 H:?:
PART 2 OF 2, VER 0.5 J.A.BARRY 29857 hACYll 306(1063)
DHKB6 TEST DISPATCH TABLES, INITAB & TESTAB
12-JUN-8A 13:03 PAGE UO
SEQ 022^
8A03
840A
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
016672 014352
01667^
016676
016700
016702
016704
016706
016710
016712
016714
016716
016720
016722
016724
016726
016730
016732
016734
016736
016740
016742
016744
016745
016746
016750
016752
016754
016756
016760
016762
016764
016766
016770
016772
016776
017000
017002
017004
017006
017010
017012
017014
014760
015074
017076
021100
021472
022250
024406
025050
025050
026064
027170
030066
021462
032332
033444
033464
000000
034064
036024
036612
.;24
111
0uU4
004144
004144
021122
021540
022316
024450
025302
025512
026114
027220
07017')
031240
032362
0223 i 6
033572
004144
034120
036036
036642
000024
.SBTTL DHKBG TEST DISPATCH TABLES, INITAB S TESTAB
;0-0NE TIME INITIALIZATION
INITAB: .WORD
ONETIME
.WORD
MOINI
.WORD
CCI
.WORD
PRVINI
.WORD
GLSINI
.WORD
GRLBKI
.WORD
SNTINI
.WORD
FSRINI
.WORD
NACSGI
.WORD
NACSPI
.WORD
GBSUI
.WORD
MADRI
.WORD
MAPINI
.WORD
DPTRI
.WORD
SBIINI
.WORD
SNTMEM
.WORD
RPWINI
.WORD
.WORD
PFCINI
.WORD
FIXINI
.WORD
MWTINI
TESTAB: .BYTE
$NT
.BYTE
•I
.WORD
NORMAL
.WC"'
NORMAL
.WOr^i/
NORMAL
.WORD
GLSSTR
.WORD
GRLBKT
.WORD
SNTSTif
.WORD
FSRTST
.WORD
NACSGT
.WORD
NACSPT
.WORD
6BSUT
.WORD
MADRT
^npn
mapt<;t
.WORD
DPTRT
.WORD
SBISTR
.WORD
SNTSTR
.WORD
RPWTST
.WORD
NORMAL
.WORD
PFCSTR
.WORD
FixrsT
.WORD
MWTEST
1-MASTER OSCILLATOR SELECT AND TEST
2-CONTROLLER CONFIGURATION TEST
3-ST0RA6E MODULE PROM READ AND VERIFICATION
4-STD INIT
5-STD INIT
6-STD INIT (FORCES SNTSTR TO RUN IN LPBK MODE)
7-STD INIT
8-STD INIT
9-STD INIT
10-STD INIT
11-STD INIT
12-STD INIT
13-STD INIT
14-STD INIT
15-STD INIT (FORCES SNTSTR TO RUN IN MEM MODE)
16-STD INIT
1 8-STD INIT
19-STD INIT
20-CHECKS /CU SWITCH, LOADS OVERLAY DHKB6X.A11
.•NUMBER OF TESTS
; "I" IS THE DHKBF ISO. RTN. !D
1-NO TEST (TEST DONE BY INIT)
2-NO TEST (TEST DONE BY INIT)
3-NO TEST (TEST DONE BY INIT)
4-GROUP LOOPBACK GROUP SELECT TEST.
5-6R0UP LOOPBACK '^ATA PATH TEST
6~RD ERR CORR & FLmG TEST USING GROUP LOOPBACK.
7-FJLL SPEED REFRESH VERIFICATION TEST
8-NON-ADDPPSS CONTROL SIGS GENERATION TEST
9-NON-ADDM SS CONTROL SIGS PROPAGATION TEST
lO-GRCJP, "3. . <, SUBOLOr UNIQUENESS f^ST
lENERATI' TEST
: "ROPAGATIUV TEST
II KAM itbl
14-SVN BCW SPARE-BIT-IN TEST USING RAM.
15-Ri) ERP CORR & FLAG TEST USING MOS RAMS
16-FULL SPEED READ-PAUSE-WRITE TEST
17-
18-?AGE REFILL CYCLE.
19-DC'JBLE BIT cRR SCAN I FIX TEST
20-FULL SPEED, MULTIWORD CYCLE TEST USING CACHE
DHK
DHU
f
ll-MOr ADD"
i?-Mns fi'
13-OATA rM!
$nt=<.-:estab>/2-i
.•NUMBER OF TtST^ 'N DIAGNOSTIC
DHKBG KL10
DHKBG.P11
8A56
8A57
8458
8A59
8A60
8A61
8462
8463
8464
8465
8466
8467
8468
8469
(1)
(1)
8470
8471
8472
8473
(1)
(1)
8474
8475
8476
8477
8478
8479
8480
8481
MF20 DIAGNOSTIC,
13-APR-84 14:26
PART 2 OF I. VER 0.5 J.A.BARRY 29857
/CMD CODE PECULIAR TO DHKBG
MACY11 30G(1063) 12-JUN-84 13:03
14!
SEQ ^222
.SBTTL /CMD CODE PECULIAR TO DHKBG
THIS CODE DOES A SEMI-AUTOMATIC CORE DUMP (AS IN KLDCP'S CD COMMAND)
IT IS ASSUMED THAT CDUMP IS ALREADY LOADED AND THE PROPER OUTPUT DEVICE
SELECTED AND WRITE-ENABLED. OUTPUT VERIFY IS AUTOMATIC.
*** WARNING *** THIS DUMP WILL FAIL IF THE OVERLAY AREA CREATED
BY THE .BIN FILE HAS BEEN WIPED OUT (IE USING DBGOVL OR DSMOSM) .
017016
017022
017026
017032
017034
017034
062734
017040
017044
017050
017052
017052
062752
017056
017062
017064
012700
005037
004737
103004
104025
052524
000137
005737
001405
104025
052524
104224
100764
000137
017070 044104
017070
011010
010626
062734
020103
052612
011010
062752
020103
104012
070000
041113
054105
054105
CDGO:
1$:
2$:
MOV #8GXNAM,R0
CLR PNAMSV
JSR PCRDNDS
BCC 2$
PMSG <TUC EXT GONE\>
$PMSG,$$CLIT
PT TO CACHE USE OVERLAY FILE NAME
FORCE OVERLAY IF FILE NOT IN ALREADY
MAKE SURE OVERLAY STILL IN
YES... OK
OVERLAY GONE... PUNT
WAS OVERLAY LOADED?
NO...ALi^EADY IN... OK
JMP WHAT
TST PNAMSV
BEQ 3$ -
PMSG <TUC EXT REOVLD. PROCEED? > ;HAD TO LOAD IT IF HERE
$PMSG,$$CLIT
TTILNW,TTIYES
6MI 1$
JMP $BGCD
;ASK FOR Y OR N
; NO... PUNT
;G0 TO OVERLAY TO DO THE CD
3$:
053107 BGXNAM: .ASCII "DHK86V" ;TESTS-USING-CACHE OVERLAY FILE NAME
; *** NOTE THAT THE V IS CHANGED TO AN X BY /CD *♦*
DHKBG
DHKBG.
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
888C
8881
8882
888]
888^
888!
888e
888/
888$
888<
889(
8891
889;
889:
889^
889!
889(
J
DHKBG KLIO MF20 DIAGNOSTIC, PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
DHKBG.PII 13-APR-84 U:26 T§ST#3. STORAGE ARRAY BOARD PROM DATA TEST.
12-JUN-84 13:03 PAGE 142
SEQ 0223
8483
S484
d4d5
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
(1)
(1)
(2)
(2)
8501
(1)
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
017076
017102
017102
017106
017110
017114
017116
017116
017122
017126
017132
017136
017140
017142
017144
017146
01715C
017152
000004
010637 020620
004577
000400
004537
020406
176526
015636
004737 042230
012701
012702
116200
150001
000301
Gu.^100
140001
C00301
077210
010137
177400
000060
040713
.SBTTL TEST#3. STORAGE ARRAY BOARD PROM DATA TEST.
'^^^ THIS IS THE PROM DATA VERIFY TEST. THIS TEST IS DONE AS AN INIT ROUTINE
BECAUSE IT MUST ALWAYS BE DONE REGARDLESS OF WHICH TEST DIACON WAS TOLD TO START
AT. THERE IS NO ISOLATION ROUTINE FOR THIS TEST BECAUSE IT IS AN INIT.^ FOUR
LEVELS OF TESTING ARE DONE: STORAGE MODULE (FIELD), GROUP, CONTROLLER, ASYSTEM.
FIELD THE YEAR NUMBER IS 0-9. THE WEEK NUMBER IS < 55. PROM BYTES
0-2 HAVE EVEN PARITY, AND BYTE 3 HAS ODD PARITY.
GROUP ALL FOUR FIELD EITHER EXIST OR DO NOT EXIST. THE PP
BITS ARE ARE THE SAME WITHIN THE GROUP.
CONTR GROUP MUST EXIST. THERE ARE 1 OR 2 RAM SIZES
1 TIMING NUMBER PER RAM SIZE.
NN, & SS
THERE IS ONLY
5535
P
5538
3540
3541
3542
3548
3549
3550
3551
3552
3553
020624
SYSTEM
X
:TBN
ALL SERIAL NUME
ERS ARE UNIQUE.
TFN=
PRVINI: MOV
SP.PROMSP
:SAVE STK PTR AT ENTRY
—CONTROLLER LOOP. SELECT
Mf20 AND READ PROM DATA.
LOOP
ALLMF,CMRG
; SELECT MF20, SET MARGINS
JSR
R5,aALLMF
.•CALL LOOP STARTUP SUBRTN
.WORD
CMRG .-STARTUP ARG(S)
JSR
R5,ALLMF+2
;G0 TO LOOP CONTROL SUBRTN
.WORD
$e1
; FALL-THRU ADR FOR THIS LOOP
RDPROM
;GET PROM DATA INTO DBUF
JSR
PC, RDPROM
.•READ MOS PROM DATA FOR A CONTROLLER
...1 nnp TURi 1
PROM DATA BYTEJ
#1 77400, R1
; SETTING UP ANDS ft ORS IN CASE
.-GETS ANDS & ORS
OF CTL BOARD ERR
9
Luur 1 nrtu
MOV
MOV
#48., R2
;NDX INTO DBUF
1$:
MOVB
DBUF-1(R2),R0
;6ET PROM BYTE
61 SB
R0,R1
;D0 OR
SWAB
R1
COM
RO
:D0 AND
6ICB
R0,R1
SWAB
R1
SOB
R2,1$
;LP TIL DONE
MOV
R1,P0RAND
.-SAVE RESULT
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF 2, VER 0.5 J.A.BARRY 29857 _ MACY11 306(1063)
DHKBG.P11 13-APR-8A U:26 TEST#3. STORAGE ARRAY BOAKD PROM DATA TEST.
12-JUN-84 13:03 PAGE 1A2-1
SEQ ^22t^
8514
8515
8516
8517
8518
8519
8520
8521
(1)
(1)
(1)
(1)
8522
(1)
8523
852A
8525
8526
8527
(1)
8528
8529
8530
8531
8532
8533
853A
8535
8536
8537
017156
017162
017166
017172
017174
017176
017200
017^00
017^02
01720A
017206
017210
017210
017214
017216
017220
017222
017226
017226
017232
017234
017236
017240
017244
017250
017252
017254
017260
017264
005037
004737
004737
001441
01020'
10500
010146
040016
040100
052600
004737
005700
001023
010200
042700
004737
005700
001414
010100
042700
020027
101006
010100
042700
020027
103404
020622
020630
020650
056172
177400
056172
007777
110000
170077
006700
2$:
-LOOP THROUGH PROM DATA DOING A BASIC FORMAT CHECK OF EACH PROM'S DATA.
;N0 ERRS YET
;INI R3.R4 FOR LOOP
GET FlkD DATA & CHECK FOR EXISTENCE OF SM
;BR IF SM DOES NOT EXIST
.•MAKE SURE BYTES 0-2 HAVE EVEN PAR
CLR
JSR
JSR
BEQ
MOV
CLRB
EXOR
MOV
BIC
BIC
BIS
CALPAR
JSR
TST
6NE
MOV
BJC
CALPAR
JSR
TST
BEQ
MOV
BIC
CMP
BHI
MOV
BIC
CMP
BLO
PRNFE
pc.prlpin
pc.gfacex
ri.ro
Rl.-(SP)
RO.(SP)
Rl.RO
(SP)+.RO
PC. CALPAR
RO
3$
R2.R0
#1^7400.R0
PC. CALPAR
RO
3$
Rl.RO
#067777. RO
R0.#9. 12.
3$
Rl.RO
#1^0077,R0
R0.#55. 6
4$
;CALC PARITY OF VALUE IN RO
.-PAR ODD. BAD NEWS
.•MAKE SURE BYTE 3 HAS ODD PAR
;CALC PARITY OF VALUE IN RO
;EVEN PAR. BAD NEWS
.-MAKE SURE YEAR * OK
; >9, BAD
;MAKE SURE WEEK NUMBER OK
; < 55. IS OK
J
J
DHKBG KL10
DHKBG.P11
MF20 DIAGNOSTIC.
13-APR-84 14:26
PART 2 OF 2. VER 0.5 J.A.BARRY 29857
T^ST*3. STORAGE ARRAY BOARD
MACY11
PROM DATA
30G(1063)
TEST.
12-JUN-8A 13:03 PAGE U3
SEQ 0225
8539
85A0
017266
005237
020622
85A1
017272
010337
020626
85A2
85A3
85AA
85A5
017276
005203
85A6
017300
020A27
0A077A
85A7
01730A
103730
85A8
017306
005337
020622
85A9
017312
0025A2
8550
01731A
001 A56
8551
8552
8553
85 5A
8555
017316
(1)
01 731 b
00A537
057122
(1)
017322
000001
8556
01732A
(1)
01732A
00A537
060350
(1)
017330
017A1A
8557
017332
013721
02062A
8558
017336
010137
010066
8559
0173A2
(1)
0173A2
00A737
00A602
(1)
0173A6
051120
0A6517 0A20A0
8560
8561
017A1A
(1)
017A1A
I0A025
063005
(1)
063005
OAO
0A7AA2 000122
856?
017A20
00A737
017A30
8563
017;2A
(1)
01 /A2A
10A025
063012
(1)
063012
02113A
0A7101 00010A
856A
017A30
10A025
021060
8565
017A3A
01050A
8566
017A36
005205
8567
017AA0
00A537
0A016A
8568
017AAA
060
010 200
8569
017A50
000207
. HERE ON SM DATA ERROR.
5$: INC PRNFE
MOV R3,ERFLAD
COUNT THE ERROR S SAVE ERR INFO.
.-COUNT THE ERR
;SAV BAD PROM LOCATOR INFO
GO DO NEXT SM.
. BOTTOM OF BASIC INTEGRITY LOOP.
: OUT APPROPRIATE ERR INFO, IF ANY.
i$: INC R3
CMP RA,#DBUF+A8.
BLO 2$
DEC PRNFE
BLT PRGRLP
BEQ 7$
LOOP UNTIL ALL PROMS CHECKED, THEN TYPE
NXT C/G/F H
DONE?
NO
HOW MANY FIELD ERRORS?
NONE, CONTINUE
ONE, ASSUME IS PROM ERR
HERE WHEN WE GET MULTIPLE PROM DATA ERRORS. THIS MAKES IT HIGHLY PROBABLE
THAT THE FAULT IS NOT IN THE PROMS, BUT IN THE CTL BOARD WHCIH READS THE
PROMS. TYPE ANDS & ORS OF BITS FROM PROMS TO HELP LOCATE BAD LOGIC ON CTL.
STKMEP TCN
JSR R5. STKMEP
.WORD TCN
INIUDF 5$
JSR R5. INIUDF
.WORD 5$
MOV P0RAND.(R1)+
MOV RLERS**..
ERROR <PROM DATA READ WRONG, M8576 AT FAULT>
JSR PC. ERROR
MULTIPLE ERRS, PROBABLY CTL BOARD
STACK MOS ERROR POINTERS
DATA TO STACK
INI CUSTOM PRINT ROUTINE
INI USER DEFINED FORMAT ERR STK DUMP
ADR OF FORMAT PRINT OUT ROUTINE
SAVE NEC DATA
5$:
61:
PMSG < "0R>
$PMSG.$$CLIT
JSR PC, 6$
PMSG <\''AND>
$PMSG,$$CLn
$PMSG,PRPMSG
MOV
INC
JSR
.BYTE
RTS
R5,RA
R5
R5,PBITSD
•0.8. ,200,2
PC
.•PRINT REST OF HEADER % EXPANDED BITS
PRINT REST OF HEADER
SET ACT PTR
UPD DATA PTR
PRINT ONLY ACTUAL DATA
PRINT CTL PARAMS
DHKBG KL10
DHKBG.P11
8571
8572
8573
857A
8575
8576
8577
8578
(1)
(1)
8579
8580
8581
8582
8583
858A
8585
8586
(1)
(1)
8587
8588
8589
8590
8591
8592
8593
859A
MF20 DIAGNOSTIC.
13-APR-84 U:26
PART 2 OF
2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
T^ST#3. STORAGE ARRAY BOARD PROM DATA TEST.
12-JUN-8A 13:03 PAGE K3-1
SEQ 0226
017A52
017A56
017A62
017A64
01746A
017A70
017A72
017A74
017500
017502
017504
017510
017514
017520
017520
017524
017574
017600
017602
017604
017606
017612
017616
013703
004537
000007
004537
017574
010300
042700
006300
006300
016021
016021
010137
004737
051120
104025
022525
010504
005304
004537
060
000207
020626
020670
060350
177760
040714
040716
010066
004602
046517
021065
040164
040
. HERE WHEN WE ONLY GOT A SINGLE PROM ERROR DURING THE BASIC FORMAT CHECK.
THIS ALMOST GUARANTIES THAT THE PROBLEM IS IN THE PROM HSELF. TYPE THE
1 CONTR. FIELD, & GROUP. THIS GIVES SUFFICIENT INFORMATION TO LOCATE THE BOARD.
H: MOV ERF LAD, R3
.-PRINT LOCATOR INFO
;INIT FOR CUSTOM PRINT
;INI USER DEFINED FORMAT ERR STK DUMP
;ADR OF FORMAT PRINT OUT ROUTINE
;CALC BAD PROM DATA LOC
047440
JSR RS.PRESTK
TCN+TGN+TFN
INIUDF 8$
JSR R5. INIUDF
.WORD 8$
MOV R3.R0
SIC #-20. RO
ASL RO
ASL RO
MOV D8UF(R0),(R1)+ ;PROM DATA TO ERR STK
MOV DBUF+2(R0),(R1)+
MOV RI.ERSP..
ERROR <PROM ON INIDICATED M8570 - M8579 IS BAD>
JSR PC. ERROR
8$:
$PMSG.PRPMSG+5
200
CMP
MOV
DEC
JSR
.BYTE
RTS
(R5)+.(R5)+
R5.R4
R4
R5.PBITSD
•0.32.. 200. 2
PC
.•PRINT HEADER
;UPD PTR
;PT TO ACT DATA LHE BYTE
.•PRINT ACT DATA ONLY
.-PRINT CONTROL
»»
J
DHKBG KL10 MF20 DIAGNOSTIC,
DHKBG.P11 13-APR-84 14:26
PART 2 OF 2. VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
T^ST*3. STORAGE ARRAY BOARD PROM DATA TEST.
12-JUN-84 13:03 PAGE U4
SEQ 0227
8596
8597
8598
8599
8600
8601
8602
8603
860A
8605
(2)
(2)
8606
8607
8608
8609
8610
8611
8612
8613
86U
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
(1)
(1)
017620
017626
017634
017640
017644
017646
017646
017650
017652
017656
017660
017662
017666
017670
017674
017676
017700
017704
017706
017712
017716
017720
017722
017724
017726
017732
017734
017736
017740
017742
017746
017750
017752
017754
017756
017760
017764
017766
017766
017772
012737
112737
004737
004737
001531
010146
010246
042716
050316
010200
042700
005200
032703
001025
01C005
012701
010200
042700
042702
105711
100407
120011
001004
120261
Gu!571
000445
077111
110011
110261
000563
005705
001500
020005
001557
004537
000003
004737
051120
M7777
\77777
020630
020650
020622
020624
. TOP OF PROM GROUP LOOP.
^RGRLP: MOV #-l,PRSIZ
MOVB #-l,PRSIZ+2
JSR PCPRLPIN
JSR PCGFACEX
BEQ 7$
-HERE WHEN SM DOES EXIST.
PUSH <R1 ,R2>
1$:
003777
174607
000003
020624
177747
177637
000003
000003
2$:
3$:
4$:
5$:
BIC
BIS
MOV
BIC
INC
BIT
BNE
MOV
MOV
MOV
BIC
BIC
TSTB
BMI
CMPB
BNE
CMPB
BEQ
BR
SOB
MOVB
MOVB
BR
TST
BEQ
CMP
BEQ
#003777, (SP)
R3,(SP)
R24RO
#1^4607,R0
RO
*3,R3
5$
R0,R5
#PRSIZ+2,R1
R2.R0
*1^7747,R0
#177637, R2
(Rl)
4$
R0,(R1)
3$
;IND NO SIZ CODES STORED YET
;INI R3,R4 FOR LOOP
;6ET FIELD DATA % CHECK FOR EXISTENCE OF SM
;BR IF SM DOES NOT EXIST
;PUSH PROM DATA ONTO STK FOR SYS WIDE SER # CHK
PUT CONTR,GRP,FLD # ONTO STK TOO
ISO PPNNSS
(TO GUARANTY A BIT SET)
IS THIS FIELD OF THE GRP?
NO, CHK TO SEE IF THIS SM SHD EXIST
YES, SAV PPNNSS TO
PROM SIZE & TIMING
ISOLATE SIZE CODE
FLAG THAT GROUP EXISTS
SEARCH NDX
ISOALTE TIMING CODE
IS A SIZ DEFINED HERE?
NO, GO DEFINE IT
IS THIS THE SIZ?
NO, TRY NEXT
R2,PRTIM-PRSIZ(R1) .-timing same as ON 1ST OCCURENCE OF THIS SIZ?
lli "
6$
Rl,2$
R0,(R1) . — w ... V —
R2.PRTIM-PRSIZ(R1) ;SAV TIM COD TOO
lli ;0N TO NXT SM
YES, GO ON TO NEXT SM
ELSE ERR
LP TIL SIZ OR EMPTY SLOT FOUND
SAVE SIZ CODE
R5
9$
R0.R5
;SM EXISTS. BUT SHD IT?
;N0 IT SHOULD NOT. PUNT
;IS PPNNSS RIGHT?
;YES, ON TO NXT SM
020670
004602
046517 050040
HERE WHEN THE POPULATION, TIMING, OR SIZE CODES WITHIN A GROUP ARE NOT ALL
THE SAME. THE HARDWARE CANNOT BE MADE TO HANDLE THIS SITUATION. THE FIELD
PROM IS TAKEN AS THE MASTER FOR THE GROUP. THE OTHER 3 MUST MATCH IT.
JSR R5,PRESTK ;DUMP LOCATOR INFO
TCN+TGN
ERROR <PROM POP., SIZE, OR TIMING DISAGREE IN GROUPS
JSR PC, ERROR
004537 020670
000003
004737 004602
052515 052114
OHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF
DHKBG.P11 13-APR-84 14:26
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
(1) 026662 052515 052TT4 050111
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
(1)
(1)
8669
(1) 620166 034115 033465 020060
020050
020054
020056
020056
020062
020130
020134
020136
020142
020144
020146
020150
020152
020154
020154 004537 057122
020160 000001
020162
020162 004737 004602
020166 034115 033465
2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUN-84 13:03 PAGE 145
T^ST#3. STORAGE ARRAY BOARD PROM DATA TEST.
. HERE WHEN UE DETECT THAT THERE IS MORE THAN ONE TIMING FOR A GIVEN RAM
SIZE IN AN MF20. THIS IS A SITUATION WHICH CANNOT BE HANDLED BY THE HARDWARE
AND IS A FATAL ERROR. THIS IS MOST LIKELY DUE TO PUTTING A NEW.
FASTER M8570 - M8579 INTO AN OLD MF20. THE NEW BOARD HAS A TIMING
WHICH IS INCOMPATABLE WITH THE OLD M8570S - M8579S. THE PROBLEM COULD
.-ALSO BE CAUSED BY A BAD PROM. BUT THIS IS UNLIKELY.
6%: JSR R5.PRESTK ;DUMP LOCATOR INFO
TCN+TGN
ERROR <MULTIPLE TIMINGS EXIST FOR 1 RAM SIZE>
JSR PC. ERROR
SEQ 0228
032703
000003
.......
001005
032703
000014
001444
005005
000463
005705
8S:
001461
•_••..
HERE WHEN
BIT
BNE
BIT
BEQ
CLR
BR
TST
BEQ
SM DOES
#3.R3
8$
« 2.R3
10$
R5
11$
R5
11$
NOT
EXIST.
IS
THIS THE FIRST SM OF THE GRP?
HERE WHEN EITHER WE HAVE
M8579 PRESENT. OR AN EXISTING
EITHER YOU HAVE THE BOARDS IN
(PROM SELECT LOGIC).
STKMEP TCN
.BUSTED
JSR
.WORD
ERROR
JSR
R5. STKMEP
TCN
<M8570 - M8579
PC. ERROR
NO. MAKE SURE THIS GRP DOES NOT EXIST
GRP DOESN'T EXIST. IS THIS GRP 0?
YES ERR
ELSE INDICATE GRP SHD NOT EXIST
NXT SM
SHD GRP EXIST?
NO. OK
A NON-EXISTENT GROUP WHICH HAS AN M8570
GROUP WHICH IS MISSING AN M8570 - M8579.
THE WRONG SLOT OR YOUR CTL BOARD IS
.•STACK MOS ERROR POINTERS
;DATA TO STACK
IN WRONG SLOT OR PROM SEL ERR ON M8576>
._!
0HKB6 KL10 MF20 DIAGNOSTIC, PART 2
DHKBG.Pn 13-APR-84 U:26
8671
8672
8673
867A
8675
8676
8677 02025A
(1) 020254
(1) 020260
8678 020262
(1) 020262
(1) 020266
8679
8680
8681 C20316
8682 020320
8683 020324
8684 020326
8685 020332
8686 020336
8687
8688
8689
8690
8691 020340
(1) 020340
(1) 020344
8692 020346
(1) 020346
(1) 020352
8693
8694
8695 020376
(1) 020376
8696 020402
(2) 020402
8697
OF 2, VER 0.5 J.A.BARRY 29857 MACYll 306(1063)
TiST#3. STORAGE ARRAY BOARD PROM DATA TEST.
12-JUN-84 13:03 PAGE 145-1
SEQ 0229
004537 057122
000001
004737 004602
051107 052517 020120
005203
020427 040774
103002
000137 017640
105737 020622
100417
004537 057122
000001
004737 004602
020063 040522 020115
004737 042410
000137 017110
HERE WHEN NO GROUP IS DETECTED FOR THE CONTROLLER. GROUP MUST EXIST
BECAUSE IT HAS THE TERMINATORS FOR SIGNALS GOING TO THE M8570 -^ ^_
M8579S. CHECK TO SEE IF YOUR BOARDS ARE IN THE RIGHT SLOTS. FAILING
THAT, TRY CHANGING THE M8576 AS IT CONTROLS THf OROM READ SELECT
LINES.
10$:
STKMEP
JSR
.WORD TCN
TCN
R5, STKMEP
ERROR <GROUP DOES NOT EXIST>
JSR PC, ERROR
ERR. 6RP MUSI :XIST. IT HAS THE TERMINATORS.
STACK MOS ERROR POINTERS
DATA TO STACK
1l$:
12$:
-END OF GROUP TEST LOOP.
INC R3
CMP R4./^DBUF+48.
BHIS 12$
JMP 1$
TSTB PRSIZ
BMI 13$
FINISH TESTING CONTROLLER LEVEL ITEMS.
;NXT GRP/FLD #
;DONE ALL 3 GROUPS?
;YES, CHK FOR <3 RAM SIZES
;ELSE KEEP GOING
;DID UE HAVE 3 RAM SIZES
;N0, 1 OR 2, OK
HERE WHEN MORE THAN 2 RAM SIZES ARE DETECTED IN A SINGLE MF20. EITHER^THE
CONFIGURATION IS TOTALLY WHACKO, OR YOU HAVF A PROM DATA ERROR. I DON'T SEE
HOW YOU COULD EVER GET THIS ERROR.
STKMEP TCN
JSR R5, STKMEP .-STACK MOS ERROR POINTERS
.WORD TCN :DATA TO STACK
ERROR <3 RAM SIZES IN MF20>
PC. ERROR
13$:
JSR
■END OF CONTROLLER LOOP.
DPD
JSR PC, DPD
ENDLOOP
JMP $81
DIGEST PROM DATA FOR PHYS RES TYPEOUT
DIGEST PROM DATA FOR A MOS CONTROLLER
ALL MF20
DO LOOP AGAIN
DHKBG KL10 m'c lAGNOSTIC, PART 2 OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
0HKBG.P11 13-APR-84 14:26 T^ST#3. STORAGE ARRAY BOARD PROM DATA TEST.
12-JUN-84 13:03 PAGE 146
SEQ 0230
8699
8700
(2)
(2)
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
(2)
(1)
(2)
(2)
8721
8722
8723
8724
8725
8726
8727
(1)
(1)
020406
020406
020410
020412
020414
020420
020422
020424
020426
020430
020434
020436
020440
020444
020446
020452
020454
020456
063020
020456
020462
020466
020470
020474
020500
020502
020504
020510
020512
020512
020516
012602
012601
010200
042700
010603
012305
022301
001004
042705
020500
001407
020337
103766
020637
103755
000444
040523
012700
004537
104024
016303
004537
GuJ007
010203
004537
000007
004737
052123
003777
003777
020620
020620
042515
063020
011270
177774
020670
020670
004602
051117
. NOW MAKE SURE THAT ALL SERIAL NUMBERS IN THE SYSTEM ARE UNIQUE.
f>RCSER: POP <R2,R1> ;P0P SER i CONTR #S
1$:
2$:
MOV
6IC
MOV
MOV
CMP
BNE
SIC
CMP
BEQ
CMP
BLO
CMP
BLO
BR
R2.R0
#063777, RO
SP4R3
(R3)+,R5
(R3)+,R1
2$
#003777, R 5
R5,R0
3$
R3,PR0MSP
1$
SP,PRQMSP
PRCSER
4$
CPY SN RH
ISO RH 5 BITS OF SN
INI SCAN PTR
GET SN RH
SN LH SAME?
NO, OK
GET RID OF C/6/F
SN RH SAME?
YES, ERR
DONE INNER LP?
NO
ARE WE DONE YET?
LP TIL OUTER LOOP DONE
ALL DONE. WHEW, WHAT A JOB!
051440
; HERE WHEN 2 IDENTICAL SERIAL NUMBERS ARE FOUND. THIS CAN MEAN SEVERAL
• THINGS: 1) IF BOTH ARE IN THE SAME MF20 YOU PROBABLY HAVE A PROM SELECT ERR IN
• THE M8576. 2) IF THEY ARE IN DIFFERENT MF20S THEN THERE MAY WELL BE AN SBDIAG
: CONTROLLER NUMBER MATCHING FAULT ON AN M8574. 3) MANUFACTURING HAS GOOFED.
S$: ERRMSG <SAME SN FOUND IN:\>
043501
MOV #TEXT,RO
JSR R5,$ERPNT
.WORD PNTAL
MOV -4(R3),R3
JSR R5,PRESTK
TCN+TGN+TFN
MOV R2,R3
JSR R5-PRESTK
TCN+TGN+TFN
ERROR <STORAGE BOARD
JSR PC, ERROR
;R0 & EMT TO ERROR STACK
;GET ONE SN'S LOCATION
;GET OTHER SN'S LOC
SERIAL NUMBERS NOT UNIQUE>
DHKBG KL10 MF20 DIAGNOSTIC, PART 2
DHKBG.P11 13-APR-84 14:26
8729
8730
8731
8732
8733
873A
8735
(1)
8736
8737
8738
8739
87A0
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
OF 2^ VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
itSlffZ. STORAGE ARRAY BOARD PROM DATA TEST.
12-JUN-84 13:03 PAGE 146-1
SEQ 0231
020566
013706
020620
U:
-btKlAL NU
MOV
PROMSP,SP
020572
005737
014266
TST
OPLOAD
020576
001005
BNE
5$
020600
112737
177777
040545
MOVB
#-1 ,RDDONE
020606
REPCON
020606
004737
047334
JSR
PC, REPCON
020612
004537
015402
5$:
JSR
R5, INI T
020616
000207
RTS
-DATA S. \JC
PC
IRK AREA.
020620
020622
020625
020622
020624
020626
020630
020634
020640
020642
020646
000000
000
000
020622
000000
000
000000
013700
004737
010003
012704
000207
000
000
000
000
000
PROMSP:
.BYTE 0.0.0
.BYTE 0.0.0
PRSIZ!
PRTIM:
. = .-6
PRNFE:
PORAND ;
ERFLAD:
.BYTE 0,0
lECKED OK. DO PHYSICAL RESOURCE TYPEOUT S EXIT,
RESTORE SP
ABSOLUTELY FIRST PASS?
NO
SAY WE HAVE DONE RESDET
ELSE REPORT PHYS CONFIG
REPORT WHAT CONTROLLER DATA WE HAVE TO NOW
FINALLY NOW DO STD INIT
RET TO DIACON
STK PTR AT ENTRY
PROM SIZE CODES
PROM TIMING CODES
# OF FIELD ERRS
ORS ft ANDS OF ALL POSSIBLE PROM DATA (WD ALLIGNED)
ERROR FIELD DATA ADR
05070.
050062
040714
LOCAL ROUTINE TO INI R3 (CONTR/GRP/FLD #) & R4 (DBUF PTR) FOR SCAN LOOP
MF2
DHK
3
3
3
3
3
3
3
\
!
i
i
\
\
1
;
i
f>RLriN
MOV
jSR
MOV
MOV
RTS
TSTCON.RO
PC.ASL0.4
R0,R3
#DBUF.R4
PC
;PUT 9-BIT C0NTR.6RP.FLD # INTO R3
;INI PROM DATA PTR
19
DHKBG KL10 MF20 DIAGNOSTIC, PART 2
DHKBG.P11 13-APR-84 14:26
OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
T^ST*3. STORAGE ARRAY BOARD PROM DATA TEST.
12-JUN-8A 13:03 PAGE 147
SEQ 0232
hf;
DHI
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
(1)
(1)
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
020650
020652
020654
020660
020662
020666
020670
020670
020674
020676
020700
020702
020706
020710
020712
020716
020720
020724
020726
020732
020736
020740
020744
020746
020750
020752
020756
020760
020764
020772
020774
021010
021017
021026
021030
021032
021034
021042
021044
021050
021052
021054
021056
012402
012401
020227
001002
020127
000207
004537
020710
012521
010321
010137
000205
012501
042701
012502
004537
020774
004737
012703
004513
177740
Gu=200
006200
004513
177774
004513
177774
104177
000207
047503
051107
106
042500
006201
103003
104036
012500
030127
001402
104024
010200
000205
GFACEX
LOCAL ROUTINE PUTS PROM DATA INTO R1,R2 i SETS CONDITION OF EXISTENCE.
177777
)77777
1$:
MOV
MOV
CMP
BNE
CMP
RTS
{R4)+,R2
(R4)+,R1
1$
R'^J'^
PC
GET PROM BYTES 2 4 3
GET PROM BYTES & 1
DOES THIS STORAGE MOD EXIST?
YES
.•RETURN WITH 'TNE" CONDITION FOR EXTANT SM
060350
010066
177770
021042
050044
021026
021010
021017
000000
104177
052116
052517
042511
104214
000001
. ROUTINE TO STACK ERROR MF20, GROUP, AND FIELD NUMBERS AT RUN TIME. AT
TYPEOUT TIME UE GET THEM OFF THE ERR STACK AND PRINT THEM. ARGUMENTS ARE IN
• R3 IN THE FORM CCCCCGGFF. THE TRAILING PARAM SAYS WHICH TO PRINT. THE CODE
WHICH ACTUALLY DOES THE PRINTING IS VERY SNEAKY. I'M PROUD OF MYSELF.
^RESTK: INIUDF 1$
1$:
104031
047522
020120
042114
020054
2$
3$
4$
5t:
6$:
021060 020042 043117 050040
71 »
PRPMSG:
JSR R5, INIUDF
.WORD 1$
MOV (R5)+-(R1)+
MOV R3,(R1)+
MOV R1,ERSP..
RTS R5
MOV (R5)+,R1
BIC *-8.,R1
MOV (R5)+,R2
JSR R5,6$
2$
JSR PC.ASR0.4
MOV *5$,R3
JSR R5,(R3)
-40,3$
ASR RO
ASR RO
JSR R5,(R3)
-4,4$
JSR R5,(R3)
pnt6ak,pntbak,pcrlf
INI USER DEFINED FORMAT ERR STK DUMP
ADR OF FORMAT PRINT OUT ROUTINE
GIL WD TO ERR STK
MS TO STK
;6ET CTL WD
;GET NUMBERS
;NQW GO DO THE PRINTING
PC
"CONTROLLER
"GROUP "
"FIELD "
RTS
.ASCIZ
.ASCIZ
.ASCIZ
.EVEN
BIC
ASR
BCC
PNTOCS,PNTCI,",
MOV (R5)+,R0
BIT R1,#1
BEQ 7$
PNTAL
MOV R2,R0
RTS R5
.ASCIZ X" OF PROM DATA X
(R5)+,R0
R1
6$
20
DHKBG KL10 MF20 DIAGNOSTIC, PART 2 OF
DHKBG.P11 13-APR-84 14:26
8810
8811
8812
8813
88U
8815
8816
8817
8818 021100
8819 021 104
(1) 021104
(1) 021110
(1) 021112
(2) 021116
8820 021120
2. VER C.5 J
TEST#4. GROUP
.A.BARRY 29857
LOOPBACK GROUP
MACY11 306(1063)
SELECT TEST.
12-JUN-84 13:0? PAGE 148
SEQ 0233
HF
DH
004537 015402
004537
OOCOOO
000001
070177
000207
054352
021356
.SBTTL TEST#4. GROUP LOOPBACK GROUP SELECT TEST.
'^^^ THIS IS THE STORAGE MODULE LOOPBACK SELECT TEST ALL WE JRY JO DO
IN THIS TEST IS TO TRY TO FIRST SELECT AND THEN DESELECT EACH GROUP IN EACH
MF20.
X
GLSINI: JSR R5.INIT :D0 COMMON INIT
MABL <GLSLMO>,GLSACO,0000
JSR R5.MA6LX .-SPECIFY ST ADR, LD AC PRGM
.WORD 0060 ;RH 16 BITS OF STARTUP JAB INSTRUCTION
.WORD X,6LSAC0 ;AC BLOCK MASK S INITIAL 11 ADR OF 10 DATA
.WORD GLSLMO ;AC LOAD MASK(S)
RTS PC
•2\
DHKBG KL10
DHKBG.P11
MF20 DIAGNOSTIC,
13-APR-8A U:26
PART 2 OF 2, VER 0.5 J.A.BARRY 29857
T^ST#4. GROUP LOOPBACK GROUP
MACYII 30G(1063)
SELECT TEST.
12-JUN-8A 13:03 PAGE U8-1
SEQ 0234
r
8822
8823
(1)
(1)
(2)
(2)
882A
(1)
(2)
(2)
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
(1)
(1)
8836
8837
(1)
(1)
8838
(1)
(1)
8839
88A0
8841
(1)
(1)
8842
(1)
(1)
8843
8844
(2)
8846
(2)
8847
(1)
8846
8849
8850
8851
8852
8S53
021122
021122
021126
021130
021134
021136
021136
021142
021146
004577
000400
004537
021346
004577
004537
021344
021150 004737
021154
021160
021162
021164
021170
021174
021200
021200
021204
021214
0212U
021220
021226
021226
021232
021264
021270
021270
021274
021^02
021 i02
021306
021342
021342
021 5^4
021344
021346
021346
021352
021353
021354
113700
006200
006200
062700
111037
004737
004537
000002
004537
052252
004737
046523
174506
015636
016470
037634
021440
037652
021352
021430
016636
053626
021342
0^1032
000016
004606
046040
105037 021430
004537
052252
00.737
C^0503
000677
000671
000137
200
100
040
021356
051032
000014
004606
023516
004144
GLSSTR: LOOP ALLf1F,CMRG
JSR R5,aALLMF
.WORD CMR6 .-STARTUP
JSR R5.ALLMF+2
.WORD $E2
LOOP ALLGRP
JSR RS.aALLGRP
JSR R5.ALLGRP+2
.WORD $E3
. PUT THE 2 BIT GROUP NUMBER
SELECT A GROUP
021214
000015
047517
021426
020124
JSR
; SET THE
mvB
ASR
ASR
ADD
ROVB
JSR
CGOTO
JSR
.WORD SSNAR^
. TO HERE IF THE
h: MOSDMP ACi:.
JSR
.WORD
FAULT
PC.SMLPBK
CORRECT BIT IN THE
BLKNO.RO
RO
RO
*4$,R0
vR0).GLSXU2
PC.DLDRUN
<3ij$,2$>
R5. CGOTO
LOOP ON ALL CONTROLLERS
CALL LOOP STARTUP SUBRTN
ARG(S)
GO TO LOOP CONTROL SUBRTN
FALL-THRU ADR FOR THIS LOOP
LOOP ON ALL GROUPS
CALL LOOP STARTUP SUBRTN
GO TO LOOP CONTROL SUBRTN
FALL-THRU ADR FOR THIS LOOP
INTO THE SBDIA6 FUNCTION 1 WHICH WILL
SBDIA6 FUNCTION 1 EXPECTED ECHO.
;GET THE BLOCK/GROUP *
.•STRIP OFF THE BLK #
;6ET TABLE ENTRY ADDR
;HOVE THE GRP SWT BYTE INTO EXPEC
;D0 DEFERED LOAD AND RUN AC PROG
3$.1$.2i
■J (OR NO)
CALL COMPUTED GOTO SUBROUTINE
GROUP WAS SELECTED.
JSR
R5,M0i.MP .-PLACE MOS DATA ON STK FOrt LATER DUMP
ZER0..,AC16.AC15
<SM LOOPBACK GRP SEL ERR\>
PC. FAULT
^$:
■TO HERE IF WE CANNOT DESELECT THE GROUP.
CLRB GLSXU2 ;SET UP THE CORRECT EXP
HOSDMP GLSX1.AC14
JSR R5,M0SDMP ;PLACE MOS DATA ON STK FOR LATER DUMP
.WORD ZER0...AC14.GLSX1
FAULT <CAN'T TURN OFF SM LOOPBACK\>
JSR PC, FAULT
3$:
ENDLOOP
BR $63
tNULUUP
BR $B2
NORMAL
JMP NORMAL
.-ALLGRP LOOP
.-DO LOOP AGAIN
.-MLLnf Luur
;D0 LOOP AGAIN
;TEST PASSES
\y.
.EVEN
THIS TABLE CONTAINS THE RELATIVE FLAG BIT FOR EACH SELECTED GROUP.
.BYTE
.BYTE
•BYTE
200
1G0
040
GRP SELECTED
GRP 1 SELECTED
GRP 2 SELECTED
L
DHKBG KL10 MF20 DIAGNOSTIC. PART 2 OF I, VER 0.5 J.A.BARRY 29857 MACY11 30G(1063)
DHKBG.P11 13-APR-84 U:26 T^ST*4. GROUP L00P8ACK GROUP SELECT TEST.
12-JUN-8A 13:03 PAGE U9
SEQ 0235
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
021 35o
021356
021363
021370
021375
021402
021407
021414
021421
021426
021433
021440
021440
021444
021450
021454
021460
THE 10 SIDE CODE FOR THE GROUP LOOPBACK SELECT TEST SIMPLY INyOLVES
EXECUTING AN SBDIAG FUNCTION 1 TO SELECT A GROUP AND THEN VERIFING
THAT GROUP GOT SELECTED. BEFORE EXITING WE ALSO TRY TO DESELECT
THE GROUP AND VERIFY THAT THIS WORKED. THE EXPECTED VALUE OF THE
SELECT ECHO IS GENERATED IN THE 11 SIDE CODE.
****************
SCOPE LOOP
ON A SELECT ERROR PLACE A JRST,.,0 INTO AC 1 START THE LOOP AT AC 0.
ON A DESELECT ERROR PLACE A JRST,,.3 INTO AC 4 START THE LOOP AT AC 3.
****************
BLK10
000000/700500 000016
GLSACO:
1010
000001/312640 000017
110
000002/254200 000001
no
000003/700500 000014
1010
000004/603640 000070
no
000005/254200 000002
^Vi
000006/254200 000000
no
000014/000000 000001
000015/000500 002000
000016/000000 000001
O/.'l 77
WD36
GLSX1 : UD36
GLSXO: WD36
GLSLM0=0701 77
SBDIAG,,. 16
CAME, 15, ,17
JRST,4,,1
SBDIAG.,, 14
TLNE,15,.70
JRST.4..2
JRST.4,.0
0000.0000,0001
0005,0000,2000
0000,0000,0001
;00 <START> - SELECT A GROUP
;01 - COMPARE AGAINST EXPECTED
;02 <ERROR 1> - WRONG OR NO GRP SELECTED
;03 - TRY TO DESELECT THE GROUP
04 - SKIP IF OK
" <ERROR 2> - LOOPBACK NOT CLEARED
:06 <HALT-KORMAL>
'" :UNUSED3
:UNUSED]
[UNUSED]
:UNUSED]
JUNUSED]
; 4 - SBDIAG FCN 01 CLR
RELOAD ;15 - EXPECTED VALUE SKELETON
SDW ;16 - SBDIAG FCN 1 SKELETON
;17 - SBDIAG ECHO
;AC BLOCK LOAD MASK
DHKBG
DHKBG. I
9093
9094
(1)
(1)
(2)
(2)
9095
(1)
(2)
(2)
9096
9097
9098
9099
9100
9101
:07
10
11
12
SDW
ENDBLK
.EVEN
013700 037730
052700 000004
004737 050060
110037 021435
000207
• LITTLE
SMLPBK: MOV
BIS
JSR
MOVB
RTS
SUBROUTINE
GRPN.RO
#4,R0
PC,ASL0.5
R0,GLSX0*2
PC
TO SET UP A FCN 1 GROUP LOOPBACK ENABLE WORD.
GET THE 2-BIT GROUP NUMBER
SET ENB BIT
POSITION
PUT ENABLES INTO FCN 1 WD
J
070000 000137 070012
070004
070010 104002
070012
070022
070026 000115
.TITLE MF20 ISOLATION ROUTINE FOR DHKB6 TEST#4.
START: JMP STARTI ; 70000 JUMPS TO REAL START OF ISOLATION ROUTINE
.——CODE TO TEST THIS ISOLATION ROUTINE. DO SE70004 TO RUN ISOLATION TEST.
tSTART: PMSG <N0 ISO TEST WR1TTEN\> ;70004 IS ISO TEST ENTRY
PRGHLT ;ST0P
; REAL START OF ISOLATION ROUTINE CODE.
PMSG ' <THE GROUP LOOPBACK SELECT LOGIC ON THE WRP BOARD IS BAD.\>
JMP (R5) .-RETURN TO DIACON
SEQ 0236
J
DHKBG KL10 MF20 DIAGNOSTIC. PART
DHKBG.P11 13-APR-84 U:26
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8^1 5
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926 021462 004537 056412
8927 021466 004 001
8928 021472 004537 015402
8929 021476 0u:537 016220
8930 021502
(1) 021502 004537 054352
(1) 021506 001340
(1) 021510 000023 032052
(2) 021514 003777
(2) 021516 077776
(2) 021520 014776
8931 021522 012700 040714
8932 021526 012701 000060
8933 021532 005020
8934 021534 077102
8935 '"'1536 000207
OF 2, VER 0.5 J.A.BARRY 29857 MACY11 306(1063) 12-JUM 34 13:03 PAGE 150
TfST#5. GROUP LOOPBACK DATA PATH TEST
.SBTTL TEST*5. GROUP LOOPBACK. OATA PATH TEST
'"^^ 6RLBK TESTS THE 44 BIT DATA PATH OUT THRU THE MUX CHIPS ON THE
H8570 - M8579 STORAGE ARRAY BOARDS. THE TEST MUST !E DONE IN 2 PARTS
BECAUSE IT IS IMPOSSIBLE TO TEST THE SPARE BIT AND ALL THE _ ^_,_^^
OTHERS AT THE SAME TIME. THIS IS A SERIAL-PARALLEL TEST IN THAT
ALL GROUPS WITHIN A CONTROLLER ARE TESTED BEFORE ANY ERRORS ARE
CALLf) OUT. THIS TEST IS PRIMARILY A CONTROL BOARD TEST BUT MAY
FIND uROKEN MUX CHIPS THOUGH THIS IS UNLIKELY DUE TO THE VERY
SMALL AMOUNT OF CIRCUITRY INVOLVED IN THE MUX CHIPS. MASSIVE
ERRORS WHERE THE MAJORITY OF BITS ARE BAD INDICATE CONTROL BOARD
PROBLEMS. A MASSIVF FIELD ERROR INDICATES A GROUP-LPBK CONTROL
SIGNAL PROPAGATION ERROR, PROBABLY WITHIN A SINGLE ARRAY BOARD.
A FEW ERRORS COMMON TO ALL GROUPS IN THE CONTROLLER INDICATE A
DATA PATH PROBLEM IN THE COK^ROL BOARDS. A SMALL NUMBER OF
ERRORS NOT IN COMMON TO ALL GROUPS PROBABLY MEANS A MUX CHIP
ERROR. THIS TEST USES THE SAME AC PROGRAM AS THE DATA PATH TO^
RAM TEST, EXCEPT THAT IT IS RUN IN GROUP-LOOPBACK MODE. FIRST
ALL GROUPS ARE DATA PATH TESTED, THEN ALL ARE ECC/SPARE TESTED,
AND FINALLY A CHECK IS DONE FOR ERRORS. IF FOUND WE DIE.
OTHERWISE WE GO ON TO THE NEXT CONTROLLER.
X
. TEST INITIALIZATION CODE. LOAD AC PROGRAM, INIT ERR MAP TABLES.
: DPTRI IS THE INIT FOR THE DATA PATH TO RAM TEST WHICH COMES LATER.
SEQ 0237
000
DPTRI:
6RLBKI :
JSR
.BYTE
JSR
JSR
MABL
JSR
.WORD
R5,INIEMD ;INI ERR MAP DATA AREA
EMHWD,EMHBLK.EMHBIT,0 ;ERR MAP HEADER DESCRIPTORS
R5,INIT
LOAD 10-SIDE ECC CAl C PRGM
DPTRM4>,DPTRP0.1340 ;LD AC PRGM
SPECIFY ST ADR, LD AC PRGM
RH 16 BITS OF STARTUP JAB INSTRUCTION
;AC BLOCK MASK % INITIAL 11 ADR OF 10 DATA
LOAD MASK(S)
U:
R5,LDECCP
<DPTRM0,DPTRM1,,
R5,MABLX
.^ . 13^0
WORD X,DPTRP0
.WORD DPTRMO
.WORD DPTRM1
.WORD DPTRM4
MOV #DBUF.RO
MOV #16.*3,R1
CLR (R0)+
SOB Rl.lS
RTS PC
AC
AC
AC
SET
LOAD MASK(S)
LOAD MASK(S)
UP FOR DBUF CLEAR
CLEAR DBUF
INIT DONE
J
OHKBG KL1C MF20 DIAGNOSTIC, PART 2
0HKBG.P11 13-APR-8A 14:26
OF 2^ VER 0.5 J.A.BARRY 29857 MACY11
T^ST#5. GROUP LOOPBACK DATA PATH TEST
306(1063) 12-JUN-8A 13:03 PAGE 151
SEQ 0238
8937
8938
8939
021540
(1)
021540
004577
174070
(1)
021544
003575
(?)
021546
004537
015636
(?)
021552
021764
89A0
021554
005002
89A1
89A2
8943
021556
(1)
021556
004577
016050
(2)
021562
004537
037634
(?)
021566
021650
8944
021570
004537
021770
8945
021574
040714
8946
021576
104106
000013 037552
8947
021604
004737
055606
8948
021610
010337
021624
8949
021614
(1)
021614
004537
053776
8950
021620
104104
000014
8951
021624
}77777
8952
021626
004737
055606
8953
021632
012046
8954
021634
052016
8955
021636
051026
8956
021640
001402
8957
021642
005237
014250
8958
021646
(2)
021646
GuJ745
. TEST CONTROLLER LOOP CONTROL S DATA BITS TEST INIT. _„,„„..,„
GRLBKT: LOOP ALLMF.QWRRD+C0RDIS+C16KR+CSPRD ;SEL & SET UP CONTROLLER
JSR RS.aALLMF ;CALL LOOP STARTUP SUBRTN ^ ^
.WORD QwArD+C0RDIS+C16KR+CSPRD :STARTUP ARG(S)
JSR R5,ALLMF+2 ;G0 TO LOOP CONTROL SUBRTN
.WORD $e4 ;FALL-THRU ADR FOR THIS LOOP
CLR R2 ;CLR EXTANT GRP MAP WD
II:
2$:
•GROUP LOOP FOR DATA BITS
LOOP ALL GRP
JSR R5,aALLGRP
JSR R5.ALLGRP+2
.UORD $E3
JSR R5.4$
DBUF
DP0ST,AC13,BLKADR
Jf'" PCCHKED
I* . R3J$
CO' IN
jSR R5,C0NTIN
EXAMT,AC14
JSR
MOV
BIS
BIS
BEQ
INC
ENDLOOP
BR
PC.CHKED
(R0)+,-(3P)
(R0)+,(SP)
(RO).(SP)+
2$
TFAULT
$B5
(00-35) TESTING.
.-LOOP THRU ALL EXTANT GROUPS IN CONTR
.-CALL LOOP STARTUP SUBRTN
;60 TO LOOP CONTROL SUBRTN
; FALL-THRU ADR FOR THIS LOOP
.•PERFORM GRUdP INIT FUNCTION
;LD GRP RESP ADR
;SET UP 11 -ADR FOR EXAMT
;RUN PRGM TO TEST PATH TO ONE WORD
:RUN & CONTINUE
.•RECORD ERRS IF ANY
; (WHERE TO RECORD ERRS)
;WERE ANY ERRS FOUND FOR WORD TESTED?
BR IF NO ERR
ELSE BUMP ERR FLAG... CAUSES FAULT LATER
END OF GROUP LOOP FOR DATA BITS
DO LOOP AGAIN
DHKBG KL10 iiF20 DIAGNOSTIC, PART
DHKBG.P11 13-APR-84 U:26
OF 2^ VER 0.5 J.A.BARRY 29857 MACY11 306(1063)
T^ST#5. GROUP LOOPBACK DATA PATH TEST
12-JUN-84 13:03 PAGE 151-1
SEC 0239
8960
8961
8962
(1)
(1)
8963
(1)
(2)
(2)
896A
(1)
(2)
(2)
8965
8966
8967
(1)
8968
(1)
(1)
8969
(1)
(1)
8970
8971
8972
8973
8974
8975
8976
8977
(2)
8978
8979
8980
8981
8982
(2)
8983
(1)
021650
021650
021654
021656
021656
021662
021665
021666
021666
021672
021676
021700
021704
021706
021 70o
021712
021712
021716
021720
021720
021724
021726
021732
021736
021740
021742
021744
021750
021752
021752
021754
021760
021762
021762
021764
021764
004537
041216
004537
007
021
004577
004537
021754
004537
040721
004737
004537
000007
004537
004
016000
004737
105000
000300
001403
005237
110013
000747
005737
001025
000671
000137
050174
050710
177
000
015740
037634
021770
055102
053720
053556
012
000002
050064
014250
014250
004144
360
-INIT FOR ECC BITS GROUP LOOP
FSDMSK SDnSBR
JSR R5,FSDMS<
.WORD SDMS6R
SETRAM 0021,7407,7407
JSR R5,SETRAM
LOOP
ALLGRP
JSR
R5.aALLGRP
JSR
R5,ALLGRP+2
.WORD
$E6
JSR
R5,4$
DBUF+5
LDEFER
JSR
PC.LDEFER
RUN
,l6
JSR
R5.AUT0RB
.WORD
iO-l
READAC
BLK4,AC12
JSR
R5. READAC
.BYTE BLK4,AC12
NOV
2(R0),R0
JSR
PC,ASL0.3
CLRB
RO
SUAB
RO
BEQ
3$
INC
TFAULT
MOVB
R0,(R3)
$: ENDLOOP
BR
$B6
BOTTOM OF
CONTROLLER LOOP.
TST
TFAULT
BNE
5$
ENDLOOP
BR
$B4
NORMAL
JMP
NORMAL
LD BITSUB RAM LD CHK MSK
LD SBDIAG CHK MASK
MASK ADDRESS
PUT SPARE IN PLACE OF BIT35, ALL ICE
SET CTL RAM LOC N TO TO GIVEN VALUE
LOOP THRU ALL EXTANT GROUPS IN CONTR
CALL LOOP STARTUP SUBRTN
60 TO LOOP CONTROL SUBRTN
FALL-THRU ADR FOR THIS LOOP
PERFORM GROUP DEPENDENT FUNCTIONS
DO DEFERED LOADS
DO DEFERED LOADS NOW
RUN AC PRGM AS SPECIFIED BY MA8L PARAMS
RUN PRGM N TICS, USE MABL START
# 60 CYC CLKS TO RUN PRGM (-1)
GET ECC ERR BITS
READ THE SPECIFIED ACCUMULATOR
POSITION & ISOLATE THEM
ERR BITS NOW IN RHE OF RO
BR IF NO ERRS...DONT SET FLAG
BUMP ERR FLAG... CAUSES FAULT LATER
RECORD ERRS
END OF ECC/SPARE BITS GROUP LOOP
DO LOOP A6AIN
CHECK FOR ERRORS.
ANY ERRS DETECTED IN GROUP JUST TESTED?
YE..... 60 SET UP MAP AND FAULT
BOTTOM OF CONTR LOOP
DO LOOP A6AIN
END OF TEST
TEST PASSES
DHKBG
DHKBG
918
918
918
918
918
919
919
(1
('
919
(T
(1
919
(1
('
919
(1
(1
919
919
9V
9V
9V
92C
92C
(1
(1
92(
._J
DHKBG KL10 MF20 DIAGNOSTIC. PART 2
DHKB6.P11 13-APR-8A U:26
OF 2, VER 0.5 J.A.BARRY 29857 MACY11
liSJMS. GROUP LOOPBACK DATA PATH TEST
306(1063) 12-JUN-84 13:03 PAGE 152
SEQ 0240
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
(1)
(1)
8999
(1)
(1)
9000
9001
9002
9003
(1)
(1)
9004
(1)
(1)
9005
9006
9007
9008
9009
9010
9011
(1)
(1)
021770
021774
022000
022002
022004
022006
022010
022012
022016
022016
022022
022024
022024
022030
022032
022034
022034
022040
022042
022042
022046
022050
022052
022056
022062
022064
022066
022072
022072
022076
013700
156002
006300
010003
006300
060003
062503
022012
004737
004537
000200
004537
021433
000205
004537
000001
004537
022140
010221
012703
1^700
012021
077302
010137
004737
051107
037730
050074
021440
055362
050530
057122
060350
000014
040714
010066
004606
052517
LOCAL SUBROUTINE TO DO 3 THINGS: 1) MARK EXISTING GROUPS BY SETTING
APPROPRIATE BIT IN R2. 2) POINT TO WHERE ERR MAP DATA SHOULD 60 FOR THIS
GROUP. 3) PUT THE CONTROLLER IN GROUP LOOPBACK MODE FOR THE APPROPRIATE
.- GROUP.
U: MOV GRPN^RO ;GET GROUP NUMBER
-- MARK THAT THE GROUP EXISTS
CALC 6RP**6
SETGLB=.
^$:
6$:
020120
MOV
BISB
ASL
MOV
ASL
ADD
ADD
'JSR
RESET
JSR
.WORD
SBDIAG
JSR
.WORD
RTS
6RPN,R0
BYBITM(R0),R2
RO
R0.R3
RO
R0.R3
(R5)+,R3
PCSMLPBK
CPU
R5. .RESET
CPU
6LSX0
R5,S8DI
GLSXO
R5
;ADD DISPLACEMENT FOR WHERE DATA SHD 60
;SET UP FCN 1 WD
;G0 TO BLK SO AS NOT TO
.•RESET SPECIFIED HARDWARE
;SET GROUP LOOPBACK
;D0 SBUS DIAG
.•ADR OF WORD
CLOBBER ACPRGM
•SECTION TO
STKMEP
JSR
.WORD
INIUDF
JSR
.WORD
MOV
MOV
MOV
MOV
SOB
MOV
FAULT
JSR
DUMP ERR MAPS TO ERR STACK.
CONTR # TO ERR STK
STACK MOS ERROR POINTERS
DATA TO STACK
SET UP FOR UDF
INI USER DEFINED FORMAT ERR STK DUMP
ADR OF FORMAT PRINT OUT ROUTINE
PUT EXTANT GROUP MAP ON ERR STK
TCN
R5. STKMEP
TCN
P44FES
R5-INIUDF
P44FES
R2.(R1)+
#4.*3.R3
#DBUF.RO
(R0)+.(R1)+
R3 6S
RI'ERSP.. ;SAV UPDATED ERR STK PTR
<G/^OUP LOOPBACK DATA PATH ERROR {S)>
PC. FAULT
;PUT ALL 4 44-BIT ERR MAPS ON STK
OHKBG KL10 MF20 DIAGNOS