ASMB,A,B,L,C
*     NAME  : RTE-C RECONFIGURATION PATCH 
*             MODIFIED TO RECOGNIZE DVR05 
*     SOURCE: 09611-18017 REV 1742
*     RELOC:  09611-16017 REV 1742
*     PROGRAMMER:  A.R. SANDERSON   770805
*      REVISED FOR RTE-C BASED 2313/91000 VERIFICATION
*       BASED ON PREVIOUS VERSIONS BY R.K. JUNCKER, 
*       (92064-18139), E.J.W., AND D.L.S. 
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976.  ALL RIGHTS      * 
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       * 
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * 
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.        * 
*  **************************************************************** 
* 
* 
* 
      ORG 2 
      JMP TBG,I      SET UP TO START IN THIS ROUTINE INSTEAD OF 
      ORG 1674B      THE OP SYSTEM. 
      DEF START       BEGINNING OF THIS ROUTINE 
A     EQU 0 
B     EQU 1 
* 
      ORG 37400B
START CLB           STARTS HERE.
      HLT 70B      HALT FOR USER TO SET S AND B TO PARAMETERS.
* 
*     PHOTOREADER    RECONFIGURATION
*     B CONTAINS PHOTOREADER SELECT CODE (IF USED). 
* 
* 
      LDA B 
      AND B77 
      STA NEWCH     SET "NEWCH" TO PHOTOREADER S.C. 
      SZA,RSS 
      JMP CRTIO     PHOTOREADER S.C.=0, SKIP  RECONFIGURATION 
* 
* 
      LDA PRMSK   770630  SET A=EQT TYPE, CHP2=NEW I/O CHANNEL
      JSB SCAN      FIND EQT AND SET NEW I/O CHANNEL IN EQT 
      JSB SINT      SET UP INTERRUPT TABLE & TRAP CELL
* 
* 
*     SYSTEM CONSOLE RECONFIGURATION
* 
CRTIO LIA 1         GET NEW S.C. FOR
      AND B77        CONSOLE FROM S-REG 
      SZA,RSS        BITS 0-5.
      JMP TBGIO     IF ZERO, SKIP CRT SECTION 
* 
      STA NEWCH     SAVE S.C. FOR SCAN AND
      LDA CHSC3      CONFIGURE I-O
      IOR NEWCH      INSTRUCTIONS.
      STA CHSC3 
      LDA CHSC4 
      IOR NEWCH 
      STA CHSC4 
      LDA CHSC2 
      IOR NEWCH 
      STA CHSC2 
* 
      LDA CHMRS     SEND MASTER RESET.FLAG SET=12966A.
CHSC2 CLF 0 
CHSC3 OTA 0 
CHSC4 SFS 0 
* 
      CLE,RSS       IF NOT 12966A CARD, SET E=0.
      CCE           IF 12966A CARD, SET E=1.
* 
      LDB SYSTY     GET 
      ADB D4        OLD 
      LDA B,I       DEVICE
      AND B374C     TYPE. 
      CPA B2400 
      JMP PAS29 
* 
      SEZ 
      JMP PAS28     OLD=00, NEW=05. 
      JMP PAS27     OLD=00, NEW=00. 
* 
PAS29 SEZ 
      JMP PAS27     OLD=05, NEW=05. 
* 
PAS28 CLA,SEZ       OLD=05, NEW=00. 
      LDA B2400     SCAN FOR 00 OR
      JSB SCAN       05 DEVICE. 
* 
      STB SYSTY     SETUP BASE PAGE CONSOLE WORD. 
* 
      STA DRT,I     FIX LU#1. 
* 
PAS25 JSB SINT      SET INTERRUPT TABLE & TRAP CELL 
      LDA DRT,I     GET BACK LU1 EQT   770630 
      LDB DRT       INDEX UP TO      770630 
      ADB D5        LU6     770630
      STA B,I       & ASSIGN IT TO CONSOLE  770630
      JMP TBGIO 
* 
PAS27 ADB M1        CURRENT SYSTEM CONSOLE IS ALRIGHT 
      LDA B,I        EXCEPT FOR THE CHANNEL IN EQT
      AND C77        WORD 4.  FIX UP WORD 
      IOR NEWCH      4 THEN RETURN AND
      STA B,I       FIX UP BASE PAGE
      ADB M3
      JMP PAS25     TRAP CELL AND INTBA.
* 
* 
*     TIME-BASE-GENERATOR RECONFIGURATION 
* 
TBGIO LIA 1         GET NEW S.C.FOR 
      ALF,ALF        TBG FROM S-REG 
      RAL,RAL        BITS 6-11. 
      AND B77 
      SZA,RSS       IF ZERO,
      JMP PRVIO      SKIP TBG SECTION 
* 
      STA TBG 
      CLB           CLEAR 
      LDA INTBA      TBG
      ADA M6         INTERRUPT
      ADA TBG        TABLE
      STB A,I        LOCATION.
* 
      LDA JCICI     SET UP TBG
      STA TBG,I      TRAP CELL. 
* 
* 
*     PRIVILEGED TERMINATOR CARD RECONFIGURATION
* 
PRVIO LIA 1         GET NEW S.C.
      ALF            FOR PRIVILEGED 
      AND B17        INTERRUPT CARD.
      SZA,RSS       IF ZERO,
      JMP FINIS     SKIP PRIVILEGED INTERRUPT SECTION 
* 
      CPA B10       IF NEW S.C=10 
      CLA            THEN CLEAR 
      STA DUMMY      DUMMY. 
* 
      LDB JCICI     PUT 'JSB $CIC,I' INTO BASE
      STB DUMMY,I    PAGE TRAP CELL.
* 
* 
* 
* 
FINIS JMP 3,I       RETURN TO SYSTEM START-UP SEQUENCE
* 
* 
CHMRS OCT 150077    MASTER RESET FOR 12966A CARD. 
PRMSK OCT 400     770630  PHOTOREADER DRIVER TYPE 
OLDCH NOP           SET BY SCAN.
NEWCH NOP 
B10   OCT 10
B17   OCT 17
B77   OCT 77
B2400 OCT 2400
B374C OCT 37400 
C77   OCT 177700
M6    DEC -6
M3    DEC -3
M1    DEC -1
D4    DEC 4 
D5    DEC 5 
D15   EQU B17 
      SKP 
* 
****************************************************************
* 
****************************************************************
* 
*       OPERATION:
*           THE SYSTEM HALTS WITH 102070 AFTER IT IS STARTED. 
*           AT THIS POINT, ENTER THE SELECT CODE OF THE CONSOLE 
*           IN SWITCH REGISTER BITS 0-5, AND THE SELECT CODE OF 
*           THE TBG IN BITS 6-11. 
*           OPTIONAL: 
*             ENTER THE SELECT CODE OF THE PHOTOREADER IN BITS
*           0-5 OF THE B REGISTER.
*           PRESS RUN.
* 
****************************************************************
* 
*     THIS "PROGRAM" IS APPENDED TO THE END OF THE RTE-C
*     ABSOLUTE SYSTEM TAPE. 
****************************************************************
* 
*     SCAN SUBROUTINE - FIND EQT BY TYPE & SET UP NEW I-O CHANNEL 
* 
*     ENTRY:
*      <NEWCH>:=NEW I/O CHANNEL # TO PUT INTO EQT 
*      <A>:=BITS 8-13 = DEVICE TYPE.
*      JSB SCAN 
* 
*     EXIT: 
*      <A>:=EQT#
*      <B>:=EQT1 ADDRESS. 
*      <OLDCH>:=OLD I/O CHANNEL # OF EQT
* 
****************************************************************
* 
SCAN  NOP 
      STA TEMP0     SAVE DEVICE TYPE MASK.
      LDB EQT#      SET 
      CMB,INB       UP
      STB COUNT     COUNT.
      LDB EQTA      POSITION TO FIRST 
      ADB D4         EQT WORD 5 
* 
SCAN1 LDA B,I       GET DEVICE TYPE 
      AND B374C      FROM EQT WORD 5. 
      CPA TEMP0     IF CORRECT TYPE,
      JMP SCAN2      THEN EXIT. 
      ADB D15       POSITION TO NEXT
      ISZ COUNT      EQT WORD 5.
      JMP SCAN1     CONTINUE SCAN.
* 
      LDA TEMP0 
      HLT 61B       IF NO DEVICE, 
      JMP *-1        HLT 61.  (A)=DEVICE TYPE TO BE FOUND 
* 
SCAN2 ADB M1
      LDA B,I 
      AND B77       GET OLD 
      STA OLDCH      CHANNEL AND
      LDA B,I        SAVE IT. 
      AND C77       FIX CHANNEL # 
      IOR NEWCH      IN EQT WORD 4. 
      STA B,I 
      ADB M3        POSITION TO EQT1. 
      LDA COUNT     COMPUTE 
      ADA EQT#       EQT #
      INA            AND
      JMP SCAN,I     RETURN.
* 
***************************************************************** 
* 
*     SINT SUBROUTINE - SET UP INTERRUPT TABLE & TRAP CELL
* 
*     ENTRY:
*      <NEWCH>:=NEW I/O CHANNEL # 
*      <B>:=EQT ADDR
*      JSB SINT 
* 
*     EXIT: 
*      REGISTERS MEANINGLESS
* 
***************************************************************** 
* 
SINT  NOP 
      STB TEMP0     SAVE EQT ADDR 
      LDA NEWCH     GET NEW I/O CHANNEL 
      ADA M6
      STA B 
      ADB INTBA     (B) = ADDR OF INTERRUPT TABLE ENTRY 
      CMA,CLE,SSA   TEST FOR NEGATIVE I/O CHANNEL 
      ADA INTLG     TEST FOR MAX I/O CHANNEL
      LDA TEMP0 
      SEZ,RSS       ANY ERROR IN ABOVE TESTS? 
      JMP BADCH      YES, ERROR HALT
* 
      STA B,I       SET EQT ADDR IN NEW INTERRUPT TABLE ENTRY 
* 
      LDA JCICI     GET 'JSB $CIC-LINK,I' AND 
      STA NEWCH,I    PUT INTO NEW TRAP CELL 
      JMP SINT,I    RETURN
* 
BADCH LDB INTLG     ERROR.  I O CHANNEL # TOO HIGH
      ADB D5
      LDA NEWCH             (A)=NEW I/O CHANNEL 
      HLT 63B       HLT 63  (B)=MAX I/O CHANNEL ALLOWED 
      JMP *-1 
* 
* 
TEMP0 NOP 
COUNT NOP 
* 
* 
JCICI EQU 5B        LOCATION 5 MUST BE 'JSB $CIC-LINK,I'
EQTA  EQU 1650B 
EQT#  EQU 1651B 
DRT   EQU 1652B 
INTBA EQU 1654B 
INTLG EQU 1655B 
TBG   EQU 1674B 
SYSTY EQU 1675B 
DUMMY EQU 1737B 
* 
      END 
                                                      