(logo)
(navigation image)
Home American Libraries | Canadian Libraries | Universal Library | Project Gutenberg | Children's Library | Biodiversity Heritage Library | Additional Collections

Search: Advanced Search

Anonymous User (login or join us)Upload
See other formats

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