ASMB,A,B,L,C
      HED 2100 SERIES COMPUTER POWER FAIL DIAGNOSTIC
      ORG 100B
* 
********************************************************************
* 
* 
* DIAGNOSTIC CHECKS POWER FAIL/RESTART OPERATION
* 
* DIAGNOSTIC ASSUMES THE FOLLOWING TESTS HAVE BEEN RUN
* 
*    MEMORY REFERENCE GROUP  DSN 101R00 
*    ALTER-SKIP GROUP        DSN 101R01 
*    SHIFT-ROTATE GROUP      DSN 101R02 
*    MEMORY                  DSN 102R00 
*    CONSOLE DEVICE (IF USED) 
* 
* RUNS IN 4K MEMORY 
* 
* TELETYPE MAY BE USED BUT NOT REQUIRED 
* 
* DIAGNOSTIC CONFIGURATOR IS REQUIRED 
* 
* DIAGNOSTIC SERIAL NO(DSN) 101206
* 
* OPERATING INSTRUCTIONS: 
* 
*     1.  LOAD AND CONFIGURE DIAGNOSTIC CONFIGURATOR. 
* 
*     2.  LOAD POWER FAIL DIAGNOSTIC. 
* 
*     3.  SET P REGISTER = 100. 
* 
*     4.  SELECT PROGRAM OPTIONS IN SWITCH REGISTER.
* 
*     5.  PRESS PRESET(INT. & EXT. IF PRESENT) AND RUN. 
* 
      SKP 
*************** SWITCH REGISTER OPTIONS *************************** 
* 
*   BIT        MEANING
* 
*   0-7        PROGRAM COUNT (2114 & LATER) 
*    8         RESERVED 
*    9         RESERVED 
*    10        SUPRESS NON ERROR MESSAGES 
*    11        SUPRESS ERROR MESSAGES 
*    12        LOOP ON DIAGNOSTIC.CLEAR TO HALT 102077 AND
*              PRINT OUT PASS COUNT 
*    13        RESERVED 
*    14        SUPPRESS ERROR HALTS 
*    15        HALT PROGRAM (102076)
* 
* 
*************** COMPUTER HALTS *************************************
* 
*   HALT       MEANING
* 
*  1060XX      UNEXPECTED TRAP CELL HALT
*  102001      COMPUTER TYPE IN ADDRESS 115 INCORRECT.RECONFIGURE 
*              DIAGNOSTIC CONFIGURATOR
*  102002      MEMORY LOC ERROR  A = ADDRESS;B = CONTENTS 
*  102003      SHUTDOWN TIME ERROR  A = EXP COUNT; B = ACT COUNT
*  102005      NO PWR FAIL INTERRUPT
*  102006      PWR DID NOT GO DOWN AFTER PWR FAIL 
*  102007      B REG ERROR  A = EXP VALUE; B = ACT VALUE
*  102076      SWR BIT 15 HALTED BACKGROUND ROUTINE 
*  102077      END OF PASS. A REGISTER = PASS COUNT 
* 
* 
******************************************************************* 
* 
************** POWER FAIL DELAY TIME *******************************
* 
*   COMPUTER   DELAY     OVERHD    LOOP    LOOP     TEST
*     TYPE     TIME       TIME     TIME    COUNT    TIME
*              (MSEC)    (USEC)   (USEC)            (MSEC)
* 
*     2116     >1.4        32      11.2      90      1.040
*     2115     >1.4        40      14.0      70      1.020
*     2114     >1.4        40      14.0      70      1.020
*     2100     >0.5        25       9.8      45       .466
*     21MX M   >0.5        29      12.64     35       .474
*     21MX E   >0.5        22      12.64     50       .474
* 
* 
********************************************************************
      SKP 
      JMP ISTRT,I   OPERATOR START LOCATION 
      SPC 1 
************* CONFIGURATOR AREA ************************************
* 
TTY.I BSS 1         TAPE INPUT
TTY.O BSS 1         LIST OUTPUT 
TTY.P BSS 1         PUNCH OUTPUT
TTY.K BSS 1         KEYBOARD INPUT
FWAMI DEF FWAM      FIRST WORD AVAILABLE MEMORY 
LWAM  BSS 1         LAST WORD AVAILABLE MEMORY
      ORG 126B
      OCT 101206    DIAGNOSTIC SERIAL NUMBER
LOSC  EQU 112B
CTO   EQU 115B
MSIZE EQU 117B
********************************************************************
* 
      SPC 3 
      ORG 130B
      JMP IRSTR,I   OPERATOR RESTART LOCATION 
      NOP 
      NOP 
ERTRN DEF PS,I      RETURN LOCATION 
FERC  ABS -FER
FER   DEF *+1       ERROR NUMBER TABLE
      DEF H0
      NOP 
      DEF E2
      DEF E3
      DEF H4
      DEF E5
      NOP 
      DEF E7
LER   DEF * 
      SPC 2 
FMI   DEF *+1       MESSAGE ADDRESS TABLE 
      DEF M0
      NOP 
      DEF M2
      DEF M3
      DEF M4
      DEF M5
      NOP 
      DEF M7
      SPC 2 
FML   DEF *+1       MESSAGE LENGTH TABLE
      DEF L0
      NOP 
      DEF L2
      DEF L3
      DEF L4
      DEF L5
      NOP 
      DEF L7
      SPC 2 
A     EQU 0         A REGISTER
B     EQU 1         B REG 
SWR   EQU 1         SWITCH REGISTER 
      SPC 2 
AL    OCT 0 
AS    OCT 0 
BS    OCT 0 
CNVR  OCT 0         VALUE TO BE REPORTED AT E3
COUNT OCT 0         VALUE OF B REGISTER 
CVT1  OCT 0 
CVT2  OCT 0 
CVT3  OCT 0 
CYCLE OCT 0         TOTAL NUMBER OF CYCLES
ELOC  OCT 0 
LCYCL OCT 0         LAST CYCLE COUNT OUTPUT 
LOCAL OCT 0 
LP11  BSS 1         LOOP COUNT SAVE 
P4    OCT 0 
P5    OCT 0 
PS    OCT 0 
PSAVE OCT 0 
SS    OCT 0 
SWBGN OCT 0 
TEMP4 OCT 0 
TEMP5 OCT 0 
B2    DEC 2 
B4    DEC 4 
D7    DEC 7 
D10   DEC 10
B16   DEC 14
B77   DEC 63
B100  DEC 64
D100  DEC 100 
B377  DEC 255 
D1000 DEC 1000
B3407 OCT 3407
MM1   DEC -1
MM12  OCT -12 
MM10  DEC -10 
MM100 DEC -100
M1000 DEC -1000 
ASCZZ ASC 1,00
BIT8  OCT 400 
BIT11 OCT 4000
BIT12 OCT 10000 
BIT13 OCT 20000 
BIT14 OCT 40000 
CRLFI DEF *+1 
      OCT 006412    CR,LF 
P7400 OCT 177400
P7700 OCT 177700
THLT  OCT 106002    TRAP CELL HALT
BKI   DEF BKGND 
IRSTR DEF RST 
ISTRT DEF START 
P002A DEF JP02A 
P002B DEF JP02B 
P003A DEF JP03A 
P003B DEF JP03B 
P004A DEF JP04A 
P007A DEF JP07A 
P007B DEF JP07B 
P1    DEF ST1 
P2    DEF SAVE
P3    DEF SAVE1 
PFI   JSB POWER,I   FOR LOCATION 4
PFMI  DEF FMI 
PFML  DEF FML 
POWER DEF PWRFL 
* 
MEMAX OCT 0 
MSMK  OCT 70000 
MSINC OCT 6477
TSV1  OCT 0 
TSV2  OCT 0 
CTM   OCT 17
CTOS  OCT 0 
      SKP 
OTBLS OCT 0 
OTBLD DEF *         POINTER TO TBL OF OVERHEAD TIME 
      DEC 32        2116A 
      DEC 32        2116B 
      DEC 32        2116C 
      DEC 40        2115A 
      DEC 40        2114A 
      DEC 40        2114B 
      DEC 25        2100A 
      DEC 29        21MX M
      DEC 22
LTBLS OCT 0 
LTBLD DEF *         POINTER TO TBL OF LOOP TIMES
LTBL  DEC 11        2116A 
      DEC 11        2116B 
      DEC 11        2116C 
      DEC 14        2115A 
      DEC 14        2114A 
      DEC 14        2114B 
      DEC 10        2100A 
      DEC 13        21MX M
      DEC 11        21MX E
CTBLS OCT 0 
CTBLD DEF *         POINTER TO TBL OF TIMER COUNTS
CTBL  DEC 90        2116A 
      DEC 90        2116B 
      DEC 90        2116C 
      DEC 70        2115A 
      DEC 70        2114A 
      DEC 70        2114B 
      DEC 45        2100A 
      DEC 35        21MX M
      DEC 50        21MX E
      HED START 
*     START 
      SPC 1 
*      CALCULATES CORE SIZE AND FILLS EACH UNUSED 
*      CORE LOCATION WITH THE ADDRESS OF THE CORE LOCATION
*               USES B10CK,TTY.O,ERR
      SPC 1 
START CLC 0,C       TURN EVERYTHING OFF 
      LDB PFI       INITIALIZE
      STB 4B        POWER FAIL INTERRUPT
      LDA MSIZE 
      AND MSMK      FORM LWAM 
      ADA MSINC 
      STA MEMAX 
      LDA CTO       FORM
      ALF                INDEX FOR
      AND CTM       TABLE 
      STA CTOS            LOOK-UP 
      ADA MM12      CHECK FOR CORRECT 
      SSA,RSS        COMPUTER TYPE
      JMP ERR1      WRONG TYPE-E1 
      LDA CTBLD 
      ADA CTOS
      LDA A,I 
      STA CTBLS 
      LDA OTBLD     FORM
      ADA CTOS           POINTER TO 
      STA OTBLS     COMPUTER OVERHEAD TIME
      LDA LTBLD     FORM
      ADA CTOS           POINTER TO 
      STA LTBLS     COMPUTER LOOP TIME
      LDA LOSC
      STA SWBGN     SWITCH REGISTER AT BEGINNING
      JSB B10CK     IS TTY SUPPRESSED?
      JMP ST3-1 
      CLA 
H0    JSB PRINT     PRINT INTRO MESSAGE 
      LDB FWAMI     INITIALIZE B TO FIRST AVAIL CORE
ST3   STB B,I       FILL CORE WITH ITS ADDRESS
      INB           MOVE TO NEXT CORE LOCATION
      CPB MEMAX     DONE ?
      RSS           YES 
      JMP ST3       NO
      CLA           ZERO B-REGISTER 
      STA COUNT      COUNTER
      STA CYCLE 
      STA LCYCL 
      LDB B2        TRAP CELL LOCATION
      LDA THLT      TRAP CELL HALT
ST2   STA B,I 
      INB 
      INA 
      CPB B100      TRAP CELL HALTS COMPLETE? 
      RSS           YES 
      JMP ST2       NO,REPEAT 
      LDB PFI       INITIALIZE
      STB 4B         POWER FAIL INTERRUPT 
      HED BKGND 
      SPC 1 
*     BKGND 
*     THIS PROGRAM INCREMENTS THE B-REGISTER TWO OR 
*     THREE TIMES EACH SECOND AND VERIFIES THE
*     CONTENTS OF ALL UNUSED CORE MEMORY ONCE EACH
*     INCREMENT 
*               USES DATA,B10CK,ERR,TTY.O,SWR 
      SPC 1 
BKGND LDB COUNT     INCREMENT 
      INB            B-REGISTER 
      LDA B         LIMIT 
      AND B377       COUNT
      LDB A           TO BITS 0-7 
      STB COUNT 
      LIA SWR 
      AND P7400     USE COUNT 
      IOR COUNT      FOR RIGHT HALF 
      OTA SWR 
      STA SS        SAVE S-REGISTER 
      LDA FWAMI     INITIALIZE MEMORY CHECK 
MORE  CPA A,I       CHECK FOR ERROR 
      RSS           OK
      JMP ERR2      REPORT ERROR
      INA           ADVANCE A 
      CPA MEMAX     DONE ?
      JMP WAIT      YES 
      JMP MORE      NO
ERR2  STA LOCAL     SAVE LOCATION 
      STA TSV1      SAVE ERROR DATA 
      LDB P002A     ADDRESS 
      JSB CNWRT 
      LDA LOCAL,I   CONTENTS
      STA TSV2      SAVE ERROR DATA 
      LDB P002B 
      JSB CNWRT 
E2    JSB ERROR     CHANGED CORE,ADDRESS = XXXXXX 
*                                   CONTENTS = YYYYYY 
      LDA LOCAL     RESTORE 
      STA A,I       CORE
      JMP BKGND 
WAIT  LDB COUNT 
      LIA SWR 
      AND P7400     USE COUNT 
      IOR COUNT      FOR RIGHT HALF 
      OTA SWR 
      STA SS        SAVE SWR
      CLA 
      INA,SZA 
      JMP *-1 
      CPB COUNT     IS B EQUAL TO COUNT?
      JMP JOK       YES 
      LDA B         NO,CONVERT
      STA TSV1      SAVE ERROR DATA 
      LDB P007A      B-REGISTER 
      JSB CNWRT       AND 
      LDA COUNT        COUNT
      STA TSV2      SAVE ERROR DATA 
      LDB P007B         TO
      JSB CNWRT          ASCII
E7    JSB ERROR     B-REGISTER NOT EQUAL TO COUNT,
*                                   B = XXXXXX COUNT = XXXXXX 
JOK   LIA SWR 
      SSA 
      JMP PHLT+5    ALLOW FOR ORDERLY HALT
      AND BIT12 
      SZA           HALT & PRINT PASS COUNT?
      JMP BKGND     NO
      LDA CYCLE     YES.WAS COUNT DONE THIS CYCLE?
      CPA LCYCL 
      JMP BKGND     YES 
      STA LCYCL     NO,OUTPUT MESSAGE 
      JSB B10CK     TTY SUPPRESSED? 
      JMP H4+1      YES.GO HALT 
      LDB P004A 
      LDA CYCLE 
      JSB DCIN2     SET UP MESSAGE
      LDA B4
H4    JSB PRINT     THERE HAVE BEEN XXXX TESTS OF 
      LDA CYCLE     A = # OF PASSES 
      HLT 77B 
      JMP BKGND     RETURN AFTER PRINTOUT 
*                                   THE POWER FAIL OPTION 
PHLT  LIA SWR 
      RAL 
      AND BIT11     POSITION BIT 10 
      SZA           SUPPRESS HALT ? 
      JMP BKGND     YES 
      LDA CYCLE 
      HLT 76B       A = # OF PASSES 
      JMP BKGND 
      HED PWRFL 
      SPC 1 
*     PWRFL 
*      THIS ROUTINE CALLS RSTRT IF POWER IS BEING RESTORED. 
*      IF POWER IS FAILING,THIS ROUTINE SAVES REGISTERS AND 
*      ESTIMATES TIME BEFORE POWER IS OFF.
      SPC 1 
PWRFL NOP 
      SFC 4         SKIP IF POWER IS FAILING
      JMP RSTRT 
      STA AS        SAVE A-REG
      CCA           COMPUTER
      STA AL         IS RUNNING 
      STB BS        SAVE B-REG
      LDA PWRFL     SAVE
      STA PS         P-REGISTER 
      LIA SWR 
      STA SS         S-REGISTER 
      CLA 
      STA LP11
ST1   INA           COUNTER 
      STA LP11              FOR 
      NOP                       FORMING 
      CPA CTBLS     POWER FAIL
      JMP *+2                  DELAY
      JMP ST1 
      CLC 4         SET UP FOR RESTART
      HLT 6 
SAVE1 JMP *-1       IN CASE OPERATOR HITS RUN 
SAVE  INA           TIMER 
      STA LP11            IMAGE 
      NOP           USED TO RESTORE 
      CPA CTBLS     PWRFL TIMER IN
      JMP *+2       CASE POWER DROPS
      JMP ST1       OUT IN LESS TIME
      CLC 4 
      HLT 6 
      HED RSTRT 
      SPC 1 
*     RSTRT 
*      THIS ROUTINE IS ENTERED THROUGH THE PWRFL ROUTINE. IT
*      VERIFIES PROPER OPERATION OF THE PWRFL ROUTINE AND INCREMENTS
*      THE CYCLE COUNT. THE LAST PART OF PWRFL AND ALL THE
*      ASSOCIATED COUNTERS ARE REBUILT IN CASE POWER-OFF OCCURRED 
*      DURING A CORE-FETCH. 
      SPC 1 
LL5   LDA SS
      OTA SWR 
E5    JSB ERROR     POWER FAIL ROUTINE NOT ENTERED
RST   LDA BKI       SET UP
      STA PS         RETURN 
      JMP ROK 
RSTRT LDA AL
      SZA,RSS       WAS PWRFL ENTERED?
      JMP LL5       NO
      CLA           CLEAR 
      STA AL         FLAG 
      LDA LP11      DID DELAY TIME OUT? 
      CPA CTBLS 
      JMP GOK       YES,EXIT
      STA CNVR      NO,FIND ERROR 
      JMP CONVT 
      SPC 3 
TIME  NOP           CALCULATE TIME TAKEN
      CMA           LOOP COUNT
      STA LOCAL 
      LDA OTBLS,I   OVERHEAD TIME 
TM1   ISZ LOCAL     DONE? 
      RSS           NO
      JMP TIME,I    YES 
      ADA LTBLS,I   LOOP TIME 
      JMP TM1 
      SPC 3 
CONVT LDA CTBLS 
      STA TSV1      SAVE ERROR DATA 
      JSB TIME      CONVERT TO
      LDB P003A      MICROSECONDS 
      JSB DCIN2 
      LDA CNVR      PROGRAM COUNT 
      STA TSV2      SAVE ERROR DATA 
      JSB TIME      CONVERT TO
      LDB P003B      MICROSECONDS 
      JSB DCIN2 
E3    JSB ERROR     SHUTDOWN ROUTINE DID NOT
*                                   COMPLETE. SHOULD COMPLETE XXXX
*                                   MICROSECONDS, COMPLETED XXXX
*                                   MICROSECONDS
GOK   CLA           RESET 
      STA LP11       COUNTERS 
ROK   LDA P2        RESTORE 
      STA P4         LAST 
      LDB P1          PART
      STB P5           OF 
JMORE LDA P4,I          POWER 
      STA P5,I           FAIL 
      ISZ P4
      INB 
      STB P5
      CPB P3
      RSS 
      JMP JMORE 
      ISZ CYCLE     BUMP CYCLE COUNT
      LDA SS        RESTORE 
      OTA 1          S-REGISTER 
      LDA AS        RESTORE 
      LDB BS         A AND B
      STC 4 
      JMP ERTRN,I   RETURN(TWO LEVELS OF INDIRECT)
      HED ERROR 
*     ERROR 
*      REPORT ERROR MESSAGES
*              THE RETURN ADDRESS IS USED TO LOOK UP THE ADDRESS, 
*              LENGTH AND NUMBER OF THE ERROR MESSAGE 
*              USES SWR,B11CK,TTY.O 
      SPC 2 
ERROR NOP 
      CLF 0         DISABLE INTERRUPTS
      CCB 
      ADB ERROR 
      LDA FER       FIND ERROR NUMBER BASED ON RETRN
ER2   EQU * 
      CPB A,I       ADDRESS AND TABLE 
      JMP ER1       FOUND IT
      INA 
      CPA LER       TERMINATE IF PROGRAMMER ERRED 
      JMP 100B      PROGRAM ERROR,PAGE 0 MAY BE 
*                                   WIPED OUT 
      JMP ER2       CONTINUE SEARCH 
ER1   EQU * 
      ADA FERC      NORMALIZE NUMBER
      ADA MM1 
      STA ELOC
      JSB PRINT     PRINT MESSAGE 
      JSB B11CK     TTY AVAILABLE 
      JMP ERH1      NO
      CLA 
      JSB TTY.O,I   PRINT BLANK LINE
ERH1  LIA SWR 
      AND BIT14 
      SZA           HALT? 
      JMP ERROR,I   NO
      LDA ERH2      YES 
      AND P7700      BUILD
      IOR ELOC        HALT
      STA ERH2
      STC 4         TURN OFF RESTART
      LDA TSV1      EXP VALUE 
      LDB TSV2      ACT VALUE 
ERH2  HLT 0 
      JMP ERROR,I 
      HED B11CK - B10CK 
      SPC 1 
*          B11CK - FOR ERROR MESSAGES 
*      IF TTY SUPPRESSED RETURN 
*      IF TTY NOT SUPPRESSED SKIP NEXT INSTRUCTION ON RETURN
*              USES SWR 
      SPC 1 
B11CK NOP 
      LDA SWBGN     WAS TELETYPE CONFIGURED?
      SZA,RSS 
      JMP B11CK,I   NO
      LIA SWR 
      AND BIT11 
      SZA,RSS       IS TTY SUPRESSED? 
      ISZ B11CK     NO
      JMP B11CK,I   YES 
* 
* 
*           B10CK - FOR NON ERROR MESSAGES
*          IF TTY SUPPRESSED RETURN 
*          IF TTY NOT SUPPRESSED SKIP NEXT INSTRUCTION ON RETURN
*                 USES SWR
      SPC 1 
B10CK NOP 
      LDA SWBGN     WAS TELETYPE CONFIGURED?
      SZA,RSS 
      JMP B10CK,I   NO
      LIA SWR 
      RAL 
      AND BIT11 
      SZA,RSS 
      ISZ B10CK 
      JMP B10CK,I 
* 
* 
      HED PRINT 
*     PRINT 
*      A = ERROR NUMBER 
* 
PRINT NOP 
      STA PSAVE 
      JSB B11CK 
      JMP PRINT,I 
      LDA PSAVE 
      LDB A 
      ADB PFMI,I    MESSAGE ADDRESS 
      LDB B,I 
      ADA PFML,I    MESSAGE LENGTH
      LDA A,I 
      JSB TTY.O,I 
      JMP PRINT,I 
      HED CNWRT,CNVRT 
*     THE CNWRT ROUTINE USES CNVRT TO CONVERT THE WORD IN THE A REG.
*     TO OCTAL AND MOVES THE THREE ASCII WORDS TO THE LOCATION
*     SPECIFIED BY THE B REG. 
* 
CNWRT NOP 
      STB TEMP4     SAVE ADDRESS FOR OCTAL WORDS
      JSB CNVRT     CONVERT ACTUAL WORD TO OCTAL
      LDA CVT1      LOAD FIRST WORD 
      STA TEMP4,I 
      ISZ TEMP4     BUMP ADDRESS
      LDA CVT2
      STA TEMP4,I 
      ISZ TEMP4 
      LDA CVT3
      STA TEMP4,I 
      JMP CNWRT,I 
* 
*     THE CNVRT ROUTINE CONVERTS THE SINGLE WORD IN 
*     THE A REG. TO THREE ASCII WORDS (OCTAL) IN CVT1,CVT2 AND CVT3.
* 
CNVRT NOP 
      STA TEMP5     SAVE WORD 
      LDB A         WORD TO B ALSO
      ALF 
      AND D7
      SSB 
      IOR BIT8      ONE FOR LEFT OCTAL DIGIT
      IOR ASCZZ 
      STA CVT1
      LDA TEMP5     GET WORD BACK 
      ALF,ALF 
      RAL,RAL 
      AND B77       LEAVE TWO DIGITS
      LDB A         SAVE FOR A WHILE
      ALF,RAL       LEFTMOST TO POSITION
      IOR B         OR THE TWO TOGETHER 
      AND B3407 
      IOR ASCZZ 
      STA CVT2
      LDA TEMP5     GET WORD BACK 
      AND B77       LEAVE LAST TWO DIGITS 
      LDB A 
      ALF,RAL 
      IOR B 
      AND B3407 
      IOR ASCZZ 
      STA CVT3      SAVE RIGHTMOST DIGITS 
      JMP CNVRT,I   RETURN
      HED ERR1
* 
*     REPORTS E1 IF CONSOLE DEVICE PRESENT AND HALTS
* 
ERR1  EQU * 
      LDA 112B      IS THERE
      AND B77        A CONSOLE
      SZA,RSS       DEVICE? 
      JMP E1        NO.GO HALT
      CLA,CLE       YES.REPORT
      LDB L1         ERROR
      JSB 127B,I      E1
E1    HLT 1 
      JMP *-1       IRRECOVERALBE 
      HED DECIN,DCIN2 
*     DECIN 
*      CONVERTS DECIMAL INTEGERS TO ASCII 
*      A = VALUE ON INPUT 
*      CVT1 = FIRST TWO DIGITS ON EXIT
*      CVT2 = SECOND TWO DIGITS ON EXIT 
* 
DECIN NOP 
      CCB           B = -1
DLP1  ADA M1000     ASSUME INTEGER LESS THAN 10000
      INB           COUNT UP THOUSANDS PART 
      SSA,RSS       SKIP WHEN B REG IS CORRECT
      JMP DLP1
      ADA D1000     RESTORE 
      BLF,BLF 
      ADB MM1 
DLP2  ADA MM100 
      INB           COUNT UP HUNDREDS PART
      SSA,RSS       SKIP WHEN B REG IS CORRECT
      JMP DLP2
      ADA D100      RESTORE 
      ADB ASCZZ 
      STB CVT1
      CCB           B = -1
DLP3  ADA MM10
      INB           COUNT UP TENS PART
      SSA,RSS       SKIP WHEN B REG IS CORRECT
      JMP DLP3
      ADA D10       RESTORE 
      BLF,BLF 
      IOR B 
      IOR ASCZZ 
      STA CVT2
      JMP DECIN,I 
* 
*     DCIN2 
*      STORE TWO WORDS OF CONVERTED A STARTING AT B 
* 
DCIN2 NOP 
      STB LOCAL     SAVE POINTER
      JSB DECIN     CONVERT TO ASCII
      LDA CVT1      STORE 
      LDB LOCAL      TWO
      STA B,I         WORDS 
      INB              INTO 
      LDA CVT2          MESSAGE 
      STA B,I 
      JMP DCIN2,I 
      HED MESSAGES
      SPC 2 
***       MESSAGES        *** 
      SPC 2 
      SUP 
M0    OCT 6412
      ASC 17,H0 2100 SERIES PWR FAIL DIAGNOSTIC 
L0    EQU *+*-M0-M0 
L1    DEF M1
M1    ASC 12,E1 WRONG COMPUTER TYPE / 
M2    ASC 13,E2 CHANGED CORE,ADDRESS =
JP02A BSS 3 
      ASC 06, CONTENTS =
JP02B BSS 3 
L2    EQU *+*-M2-M2 
M3    ASC 19,E3 SHUTDOWN ROUTINE DID NOT COMPLETE.
      OCT 6412
      ASC 08,SHOULD COMPLETE
JP03A BSS 2 
      ASC 09, USECS, COMPLETED
JP03B BSS 2 
      ASC 03, USECS 
L3    EQU *+*-M3-M3 
M4    ASC 10,H4 THERE HAVE BEEN 
JP04A BSS 2 
      ASC 17, TESTS OF THE POWER FAIL CIRCUITRY 
L4    EQU *+*-M4-M4 
M5    ASC 17,E5 POWER FAIL ROUTINE NOT ENTERED
L5    EQU *+*-M5-M5 
M7    ASC 19,E7 B-REGISTER NOT EQUAL TO COUNT, B =
JP07A BSS 3 
      ASC 05, COUNT = 
JP07B BSS 3 
L7    EQU *+*-M7-M7 
      ORG 2000B     RESTART FOR 
      JMP 100B       LONG DIAGNOSTIC
FWAM  EQU *         FIRST WORD AVAILABLE MEMORY 
      END 
                                                                                                                                                                                                              