ASMB,A,B,L,C
      HED INPUT OUTPUT INSTR. GROUP AND CHANNEL/EXTENDER DIAGN. 
      ORG 0    DSN 141103    1 MAR 1978        REV 1810 
      SUP 
*     GENERAL OPERATING PROCEDURE 
* 
*         A. LOAD DIAGNOSTIC CONFIGURATOR AND CONFIG. 
*         B. LOAD DIAGNOSTIC PROGRAM. 
*         C. LOAD ADDRESS 100B
*         D. LOAD SW REG WITH SELECT CODE(S) & TEST OPTIONS 
*                   AS FOLLOWES:
* 
*  ----------------+--+--------+--------+--------+--------+--------+
*  S-REG.          !15!14 13 12!11 10  9! 8  7  6! 5  4  3! 2  1  0!
*  ----------------+--+--------+--------+--------+--------+--------+
*  STANDARD I/O    !  !        !      UPPER      !      LOWER      !
*  TESTS           ! 0!        !  INTERF. BOARD  !   INTERF. BOARD !
*  (TST 00-07)     !  !        !    SC. (USC)    !    SC. (LSC)    !
*  ----------------+--+--+--+--+--------+--------+-----------------+
*  SPECIAL 12979B  !  !  !  !  !        !        !                 !
*  TEST (TST 08)   !  !  !  !  !        !        !                 !
*   1 CPU, 2 EXT'S ! 1! 1! *!  !BSW SC1 !BSW SC2 !INTERF. BOARD SC !
*   2 CPU'S, 1 EXT ! 1! 0! *!  !        ! BSW SC !INTERF. BOARD SC !
*  ----------------+--+--+--+--+--------+--------+-----------------+
*         * BIT 13 SET: DMA BOARD INSTALLED IN EXTENDER, TEST 09
* 
*         E. PRESS RUN WAIT FOR HALT 102074 
*         F. ENTER PROGRAM OPTION: (8-15) 
*                   IF SET =: 
*                   15 = HALT AT END OF EACH TEST 
*                   14 = SUPPRESS ERROR HALTS 
*                   13 = LOOP ON LAST TEST
*                   12 = LOOP ON DIAGNOSTIC 
*                        (SUPPRESS ALL OPERATOR INTERVENTION) 
*                   11 = SUPPRESS ERROR MESSAGES. 
*                   10 = SUPPRESS NON-ERROR MESSAGES. 
*                    9 = GO TO USER CONTROL SECTION 
*                        AT END OF PRESENT TEST 
*                    8 = SUPPRESS OPERATOR INTERVENTION TESTS 
* 
*                    7
*                      = RESERVED 
*                    0
* 
* 
*         G. PRESS RUN. 
*         H. RESTART - LOAD ADDRESS 2000B 
*         I. RECONFIGURE - RETURN TO STEP C 
* 
*         GENERAL COMPUTER HALTS
* 
*         1020XX    E OR H  000 TO 067
*         1060XX    E OR H  100 TO 167
*         1030XX    E OR H  200 TO 267
*         1070XX    E OR H  300 TO 367
* 
      SKP 
* 
*         CONTROL PROGRAM HALT MESSAGES 
* 
*         102077    END OF DIAG (A = PASS COUNT)
*         102076    END OF TEST (A = TEST #)
*         102075    USER SELECTION REQUEST
*         102073    USER SELECT CODE ERROR
*         102072    RESERVED
*         102071    RESERVED
*         102070    RESERVED
* 
*         106077    TRAP CELL HALT
* 
*         106070 -
*            106076   CONFIG. HALTS SEE DIAG. CONFIG. MANUAL
* 
* 
* 
*    ** DEFINITION OF MNEMONICS OR ABBREVIATIONS ** 
* 
*      A, A-REG - A-REGISTER. 
*      ACT - ACTUAL.
*      ADDR - ADDRESS.
*      B, B-REG - B-REGISTER. 
*      CNT - COUNT. 
*      CONFIG - CONFIGURE, CONFIGURATOR.
*      CONST - CONSTANT.
*      DEC - DECIMAL. 
*      DGT - DIGIT. 
*      E, E-REG - EXTEND REGISTER.
*      EXP - EXPECT, EXPECTED.
*      INCR - INCREMENT.
*      INSTR - INSTRUCTION. 
*      INTP - INTERRUPT.
*      MEM - MEMORY.
*      NEG - NEGATIVE 
*      NOS, NUM, NUMB - NUMBER. 
*      O-REG, OVR, - OVERFLOW REGISTER. 
*      P, P-REG - P-REGISTER. 
*      PARAM - PARAMETER. 
*      POS - POSITIVE.
*      REG - REGISTER.
*      RTN - RETURN.
*      SC, SELECT CODE
*      SUBT - SUBTRACT
*      SYS, SYST - SYSTEM.
*      TP,  TABLE POINTER.
*      WD, WDS- WORD, WORDS.
*      WDT, WATCH DOG TIMER.
*      := - REPLACED BY, I.E. A:=B, WHERE A IS REPLACED BY VALUE B. 
      HED TEST DESCRIPTION
*     TEST SELECTION BY OPERATOR: 
* 
********************************************************************* 
*  A-REG SETTING  *  TEST TO BE  *   TEST NAME:                     * 
*    IF SET:      *   SELECTED   *                                  * 
********************************************************************* 
*        0        *    0         * INTRPT FLAG, OV REG & CARD FLAG  * 
*        1        *    1         * OV REG TEST                      * 
*        2        *    2         * INTRPT TEST                      * 
*        3        *    3         * SC SCREEN TEST                   * 
*        4        *    4         * OTA/B, LIA/B, MIA/B TEST         * 
*        5        *    5         * S-REG TEST                       * 
*        6        *    6         * EXTERNAL/INTERNAL PRESET TEST    * 
********************************************************************* 
* 
*  IF A-REG IS CLEAR THEN ALL TESTS ARE RUN.
      HED LINKAGE TABLE 
A     EQU 0         A REGISTER REFERENCE
B     EQU 1         B REGISTER REFERENCE
SW    EQU 1         SWITCH REGISTER REFERENCE 
INTP  EQU 0         INTERRUPT CHANNEL REFERENCE 
DMASC EQU 2         DMA CHANNEL SC
CH    EQU 10B       I-O CHANNEL SELECT CODE 
BSC1  EQU 70B       BUS SWITCH SC1 FOR 12979B EXT 
BSC2  EQU 70B       BUS SWITCH SC2 FOR 12979B EXT 
* 
      ORG 100B
* 
      JMP CFIG,I    GO TO CONFIGURATION SECTION 
FAIN  BSS 1         FAST INPUT (PHOTO READER) 
SLOP  BSS 1         SLOW OUTPUT (LIST)
FAOP  BSS 1         FAST OUTPUT (DUMP OR PUNCH) 
SLIN  BSS 1         SLOW INPUT (KEYBOARD) 
FWAM  DEF FWAA      FIRST WORD OF AVBL. MEMORY
LWAM  BSS 1         LAST WORD OF AVBL. MEMORY 
      BSS 1         NOT USED (MAG TAPE) 
OTMC  BSS 1         1 MILL SEC TIME OUT COUNT 
      BSS 4         SELECT CODES FOR I/O
CPTO  BSS 1         COMPUTER TYPE/OPTIONS 
USSC  BSS 1         USER CARD TYPE AND SELECT CODE
MEMO  BSS 1         MEMORY SIZE AND TYPE
ISWR  BSS 1         INTERNAL SWITCH REGISTER
TMRR  BSS 1         1 MILL SEC TIMER
SWRC  BSS 1         CONFIGURATOR SWITCH CK PTR
I2AS  BSS 1         INTEGER TO ASCII CONVERSION 
O2AS  BSS 1         OCTAL TO ASCII CONVERSION 
AS2N  BSS 1         ASCII CONVERSION
DSN   OCT 141103    DIAGNOSTIC SERIAL NUMBER
FMTR  BSS 1         FORMATTER 
* 
*         CONTROL LINKAGE AND DATA REFERENCES 
* 
CFIG  DEF .CONF     CONFIGURATION SECTION 
MSGC  DEF .MSGC     MESSAGE WITH NO HALT
MSGH  DEF .MSGH     MESSAGE WITH HALT 
ERMS  DEF .ERMS     ERROR MESSAGE 
SWRT  DEF .SWRT     SWITCH REGISTER CHECK ROUTINE 
TSTN  OCT 0         CURRENT TEST NUMBER 
EXRT  DEF .EXRT     RETURN TO CONTROL PROGRAM 
      NOP           RESERVED
      SKP 
* 
      ORG 140B
STDA  OCT 0 
STDB  OCT 0 
STDAS OCT 377 
STDAX OCT 1400
HDMX  DEF HDM1+12 
* 
HDMS  OCT 6412
      ASC 17,I-O INSTRUCTION GROUP & CHANNEL OR 
      OCT 6412
HDM1  ASC 16,EXTENDER DIAGNOSTIC DSN XXXXXX/
* 
TSTP  DEF *+1       TABLE OF TEST NUMBERS 
      DEF TST00     INTRPT FLAG, OV REG & BOARD FLAG TEST 
      DEF TST01     OV REG TEST 
      DEF TST02     INTRPT TEST 
      DEF TST03     SC SCREEN TEST
      DEF TST04     OTA/B, LIA/B, MIA/B TEST
      DEF TST05     S-REG TEST
      DEF TST06     EXTNL. & INTNL. PRESET TEST 
      DEF TST07     CONCATENATED CLF TEST 
      DEF TST08     12979B EXTENDER TEST
      DEF TST09     12979B EXTENDER DMA TEST
      DEC -1
* 
IOID  DEF *+1       TABLE POINTER OF INTRF. SC
* 
      DEF T2.00 
      DEF T2.01 
      DEF T2.02 
      DEF T2.03 
      DEF T2.04 
      DEF T2.05 
      DEF T2.06 
      DEF T2.07 
      DEF T2.08 
      DEF T2.09 
      DEF T2.10 
      DEF T2.11 
      DEF T2.12 
      DEF T2.13 
      DEF T2.14 
      DEF T2.15 
      DEF T2.16 
      DEF T2.17 
      DEF T2.18 
      DEF T2.19 
      DEF T3.00 
      DEF T3.01 
      DEF T4.00 
      DEF T4.01 
      DEF T4.02 
      DEF T4.03 
      DEF T4.04 
      DEF T4.05 
      DEF T4.06 
      DEF T4.07 
      DEF T4.08 
      DEF T4.09 
      DEF T4.10 
      DEF T4.11 
      DEF T4.12 
      DEF T6.01 
      DEF T6.02 
      DEF T8.01 
      DEF T8.02 
      DEF T8.03 
      DEF T8.04 
      DEF T8.05 
      DEF T8.06 
      DEF T8.07 
      DEF T8.08 
      DEF T8.09 
      DEF T8.10 
      DEF T8.11 
      DEF T8.12 
      DEF T8.13 
      DEF T8.14 
      DEF T8.15 
      DEF T8.16 
      DEF T8.17 
      DEF T8.18 
      DEF T9.01 
      DEF T9.02 
      DEF T9.03 
      DEF T9.04 
      DEF T9.05 
      DEF T9.06 
      DEF T9.07 
      DEF T9.08 
      DEC -1
* 
IOSC  NOP 
* 
* 
BSCP1 DEF *+1       TABLE POINTER OF BASE SWITCH SC1
* 
      DEF CPU01 
      DEF CPU02 
      DEF CPU03 
      DEF CPU04 
      DEF CPU05 
      DEF CPU06 
      DEF CPU07 
      DEF CPU08 
      DEF CPU09 
      DEF CPU10 
      DEF CPU11 
      DEF CPU12 
      DEF CPU13 
      DEF CPU14 
      DEF CPU15 
      DEF CPU16 
      DEF CPU17 
      DEF CPU18 
      DEF CPU19 
      DEF CPU20 
      DEF CPU21 
      DEF CPU22 
      DEF CPU23 
      DEF CPU24 
      DEF CPU25 
      DEF EXT01 
      DEF EXT02 
      DEF EXT03 
      DEF EXT04 
      DEF EXT05 
      DEF EXT06 
      DEF EXT07 
      DEF EXT08 
      DEF EXT09 
      DEF CPU27 
      DEF CPU28 
      DEF CPU29 
      DEF CPU30 
      DEF CPU31 
      DEF CPU32 
      DEF CPU33 
      DEF CPU34 
      DEF CPU35 
      DEF CPU36 
      DEF CPU37 
      DEF CPU38 
      DEF CPU50 
      DEF CPU51 
      DEF CPU52 
      DEC -1
* 
* 
BSCP2 DEF *+1       TABLE POINTER OF BASE SWITCH SC2
* 
      DEF EXT01 
      DEF EXT02 
      DEF EXT03 
      DEF EXT04 
      DEF EXT05 
      DEF EXT06 
      DEF EXT07 
      DEF EXT08 
      DEF CPU27 
      DEF CPU28 
      DEF CPU29 
      DEF CPU30 
      DEF CPU31 
      DEF CPU32 
      DEF CPU33 
      DEF CPU34 
      DEF CPU35 
      DEF CPU36 
      DEF CPU37 
      DEF CPU38 
      DEF CPU50 
      DEF CPU51 
      DEF CPU52 
      DEC -1
* 
* 
* 
DMAPT DEF *+1       TABLE POINTER OF DMA SC'S 
      DEF DMA1
      DEF DMA2
      DEF DMA3
      DEF DMA4
      DEF DMA5
      DEF DMA6
      DEC -1
      HED DIAGNOSTIC CONSTANTS & STORAGE LOCATIONS
SAVA  NOP 
SAVB  NOP 
EOLC  NOP 
TSTA  NOP 
SINA  NOP 
SINB  NOP 
UINA  NOP 
UINB  NOP 
BTMP  NOP 
LSC   NOP 
USC   NOP 
SCVA  NOP 
      DEC -10,-9,-8,-7,-6,-5,-4,-3,-2,-1
.     OCT 0 
      DEC 1,2,3,4,5,6,7,8,9,10,11,12
.60   OCT 60
.70   OCT 70
.77   OCT 77
.177  OCT 177 
.7700 OCT 7700
IOM   OCT 177700
S1512 OCT 170000
S1514 OCT 140000
SM14  OCT 137777
SW15  OCT 100000
SW14  OCT 40000 
SW13  OCT 20000 
SW12  OCT 10000 
S812  OCT 010400
SW11  OCT 4000
SW10  OCT 2000
SW9   OCT 1000
SW87  OCT 600 
SW8   OCT 400 
S1412 OCT 70000 
P7777 OCT 77777 
S1587 OCT 100600
SWM9  OCT 176777
SWM11 OCT 173777
M1514 OCT 37777 
T4TL  OCT 177776
      OCT 177777
.1252 OCT 125252
.0525 OCT 052525
DAF3  OCT 146314
T6S15 OCT 113560
T6S   DEC 6000
T5S   DEC 5000
SW150 OCT 100001
.100  OCT 100 
.200  OCT 200 
.204  OCT 204 
.300  OCT 300 
H2    OCT 102000
H6    OCT 106000
H3    OCT 103000
H7    OCT 107000
CFTT  DEC -1
TSTF  DEF *+1 
      ASC 3,TEST
.TSTN ASC 2,XX//
PSC   ASC 6,PASS XXXXXX/
A.E   OCT 105 
PCB   DEF *+1       STORE DECIMAL TEST
      OCT 0           NUMBER IN 
      OCT 0             STRING
PCBX  ASC 1,XX
* 
CPTPY DEF CPTYP     LINKAGE TO SUBROUT "CPTYP"
DAFRS DEF DAFSR        "    "     "    "DAFSR"
T09L  DEF T09       RETURN LINK TO TEST 09
* 
EM50  ASC 10,E050 CPU TIMED OUT/
      SKP 
      HED DIAGNOSTIC PROGRAM CONTROL
* 
*         PUT JSB INSTRUCTION IN TRAP CELL
* 
      ORG 700B
TCJI  NOP 
      LDB JSBI      GET JSB INSTR & STORE IT IN THE TRAP
      STB IOSC,I      CELL OF THE SPECIFIED INTERF BOADR
      LDA TCJI,I    GET LOCATION OF INTRPT ROUTINE & STORE IT IN
      STA 3B          MEM LOC 3 FOR JSB INSTRUCTION 
      ISZ TCJI      ADJUST RETURN 
      JMP TCJI,I    RETURN TO CALLER
* 
JSBI  JSB 3B,I      JSB INSTRUCTION 
* 
* 
* 
*         SC CONVERSION FROM OCTAL TO ASCII 
* 
N2AO  NOP 
      STA IOAD      SAVE NUMBER 
      AND .+7       CONVERT FIRST 
      IOR .60         NUMBER
      STA B         SAVE IT 
      LDA IOAD      GET 
      RAR,RAR         SECOND
      RAR                 NUMBER
      AND .+7       CONVERT 
      IOR .60         IT
      ALF,ALF       MOVE TO UPPER HALF
      IOR B         ADD LOWER 
      JMP N2AO,I      AND RETURN
* 
IOAD  OCT 0 
* 
* 
*         MESSAGE OUTPUT WITHOUT HALT 
* 
.MSGC NOP           ENTRY 
      JSB MSG       OUTPUT MESSAGE
      OCT 2000      SWITCH 10 CHECK 
      JMP .MSGC,I   RETURN TO CALLER
* 
* 
*         MESSAGE OUTPUT WITH HALT
* 
.MSGH NOP           ENTRY 
      JSB MSG       OUTPUT MESSAGE
      OCT 2000      SWITCH 10 CHECK 
      LDA HLT       GET HALT CODE 
      STA *+2       PUT IT IN PLACE 
      LDA SAVA      RESTORE A REGISTER
      NOP           HALT FOR DISPLAY
      JMP .MSGH,I   RETURN TO CALLER
* 
      SKP 
* 
*         ERROR MESSAGE WITH HALT 
* 
.ERMS NOP           ENTRY 
      JSB MSG       OUTPUT MESSAGE
      OCT 4000      SWITCH 11 CHECK 
      CLA 
      LDB SW14      CHECK SWR BIT 14 TO SUPPRESS
      JSB SWRT,I    HALT
      STA *+3       PUT  HALT IN PLACE
      LDA SAVA      RESTORE A & B 
      LDB SAVB
HLT   NOP           WAIT FOR OPERATOR 
      JMP .ERMS,I   RETURN TO CALLER
* 
* 
*         OUTPUT MESSAGE
* 
MSG   NOP 
      STA SAVA      SAVE A AND B REGISTERS
      STB SAVB
      LDB MSG,I     GET SWITCH REGISTER BIT 
      LDA MSG 
      ADA .-2       DECREMENT RETURN ADDRESS
      STA MSG 
      JSB SWRT,I    CHECK TO SUPPRESS MESSAGE 
      JMP MSG0      YES 
      LDA MSG,I     CHECK IF ERROR
      LDA A,I 
      ELA,CLE,ERA 
      LDA A,I       IF SO 
      ALF,ALF 
      AND .177
      CPA A.E 
      JSB CFTN      CHECK TO OUTPUT TEST NUMBER 
      LDA MSG,I     NO RETRIEVE FORMAT
      LDB A,I         ADDRESS 
      ELB,CLE,ERB 
      CLA,CLE 
      JSB FMTR,I
MSG0  LDA MSG,I     CONVERT HALT CODE 
      LDB A,I         FROM ASCII STRING 
      ELB,CLE,ERB 
      CCA,CCE 
      JSB AS2N,I
      STA N2AO      SAVE RESULT 
      AND .300      DECODE
      LDB H2          HALT CODE 
      CPA .100
      LDB H6
      CPA .200
      LDB H3
      CPA .300
      LDB H7
      LDA N2AO      GET HALT NUMBER 
      AND .77 
      IOR B 
      STA HLT       SAVE IT 
MSG1  LDA MSG,I 
      LDA A,I 
      SSA,RSS 
      JMP MSG2
      ISZ MSG,I 
      LDB MSG 
      ADB .+2 
      LDB B,I 
      JSB SWRT,I
      JMP MSG1
      LDA MSG,I 
      LDB A,I 
      ELB,CLE,ERB 
      CLA,CLE 
      JSB FMTR,I
      JMP MSG1
MSG2  ISZ MSG,I     ADJUST RETURN POINTERS
      ISZ MSG 
      ISZ MSG 
      ISZ MSG 
      LDA SAVA      RESTORE A AND B REGISTERS 
      LDB SAVB
      JMP MSG,I 
* 
* 
* 
*     CONVERT BINARY SC TO ASCII & RETURN VALUE IN A-REG
* 
LDSC  NOP 
      LDA IOSC      LOAD SC TO A-REG & GO TO CONVERSION 
      JSB N2AO        ROUTINE 
      JMP LDSC,I
* 
      SKP 
* 
*         TEST NR. VERIFICATION & CONVERSION
* 
CFTN  NOP 
      LDA TSTN      GET TEST NUMBER 
      CPA CFTT      IS IT THE SAME ONE? 
      JMP CFTN,I    YES SKIP OUTPUT 
      STA CFTT      NO - THEN UPDATE IT 
      CLE 
      LDB PCB 
      JSB I2AS,I
      LDB PCBX
      STB .TSTN 
      CLA 
      JSB SLOP,I
      CLA,CLE 
      LDB TSTF
      JSB FMTR,I
      JMP CFTN,I
* 
* 
* 
*         SWITCH REGISTER CHECK 
* 
.SWRT NOP 
      STA N2AO      SAVE A REGISTER 
      LIA SW        GET SWITCH REG. 
      AND B         MASK OUT BIT
      SZA,RSS       IS IT UP? 
      ISZ .SWRT     NO
      LDA N2AO      RESTORE A REGISTER
      LIB SW        LET B = SWITCH REGISTER 
      JMP .SWRT,I   RETURN TO CALLER
* 
* 
* 
*         INITIALIZE TRAP CELL HALTS
* 
ITCH  NOP 
      LDA TSH       GET STARTING TRAP CELL HALT 
      LDB .+2       GET FIRST TRAP CELL LOCATION
TSHL  STA B,I       PUT IT IN PLACE 
      CPB .77       AM I FINISHED 
      JMP ITCH,I    YES 
      INB             NEXT ADDRESS
      JMP TSHL
* 
TSH   OCT 106077
* 
      SKP 
                                                                                                                    