*TAPE & FLOPPY DISC BOOTSTRAP LOADER(S)                 HEADER  FUPBOO  0001.000
         M.PGM     FUPBOOT,MPX-32,3.6.1,00                              0002.000
         SPACE                                                          0003.000
*                                                                       0004.000
************************************************************************0005.000
*                                                                      *0006.000
*                    PROPRIETARY INFORMATION                           *0007.000
*                    -----------------------                           *0008.000
*   THE INFORMATION CONTAINED HEREIN IS PROPRIETARY TO ENCORE          *0009.000
*   COMPUTER CORPORATION AND/OR ITS VENDORS, AND ITS USE, DISCLOSURE,  *0010.000
*   OR DUPLICATION IS SUBJECT TO THE RESTRICTIONS STATED IN THE        *0011.000
*   STANDARD ENCORE COMPUTER CORPORATION LICENSE TERMS AND CONDITIONS  *0012.000
*   OR THE APPROPRIATE THIRD-PARTY SUBLICENSE AGREEMENT.               *0013.000
*                                                                      *0014.000
*                       RESTRICTED RIGHTS                              *0015.000
*                       -----------------                              *0016.000
*   USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT       *0017.000
*   TO RESTRICTIONS AS SET FOURTH IN SUBDIVISION (c) (1) (ii) OF       *0018.000
*   THE RIGHTS IN TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT       *0019.000
*   252.227.7013                                                       *0020.000
************************************************************************0021.000
* (C) COPYRIGHT 1989 ENCORE COMPUTER CORPORATION                       *0022.000
*     ALL RIGHTS RESERVED                                              *0023.000
************************************************************************0024.000
*                                                                       0025.000
         SPACE                                                          0026.000
************************************************************************0027.000
*                                                                      *0028.000
**                                                                    **0029.000
***                                                                  ***0030.000
****             * * *  W A R N I N G  * * *                        ****0031.000
*****                                                              *****0032.000
****             SOME PARAMETERS (AMONG THE ONES THAT ARE DEF'ED)   ****0033.000
***              ARE INITIALIZED BY THE SDT MODULE/ROUTINE(S)        ***0034.000
**                                                                    **0035.000
*                                                                      *0036.000
************************************************************************0037.000
*                                                                       0038.000
*        EXTERNAL DEFINITIONS                                           0039.000
*                                                                       0040.000
         SPACE                                                          0041.000
* (C) COPYRIGHT 1989 ENCORE COMPUTER CORPORATION                        0042.000
*     ALL RIGHTS RESERVED                                               0043.000
         SPACE                                                          0044.000
         DEF       BOOTL           # BYTES IN BOOTSTRAP                 0045.000
         DEF       MTB             STARTING ADDRESS OF BOOTSTRAP LOADER 0046.000
         DEF       SDTFLG          SDT LOAD FLAGS                       0047.000
         DEF       MAXSECT         MAXIMUM STARTING SECTOR FOR FLOPPY   0048.000
         DEF       IOCD.ZR         REZERO COMMAND CODE                  0049.000
         DEF       IOCD1           IOCD #1 FOR IPL                      0050.000
         DEF       IOCD.BKR        BACKSPACE RECORD COMMAND CODE        0051.000
         SPACE                                                          0052.000
************************************************************************0053.000
*                                                                      *0054.000
*               SYSTEM DISTRIBUTION BOOTSTRAP LOADER                   *0055.000
*                     (MAG TAPE OR FLOPPY)                             *0056.000
*                                                                      *0057.000
************************************************************************0058.000
*                                                                      *0059.000
*        THE FOLLOWING LOADER IS COPIED TO THE BEGINNING OF THE        *0060.000
*        SYSTEM DISTRIBUTION MEDIUM.  IT IS EXECUTED BY ENTERING       *0061.000
*        THE ADDRESS OF THE DEVICE UPON WHICH THE MEDIUM (TAPE         *0062.000
*        OR FLOPPY) IS MOUNTED VIA THE CPU FRONT PANEL AND             *0063.000
*        DEPRESSING THE IPL SWITCH.                                    *0064.000
*                                                                      *0065.000
*        THIS SYSTEM DISTRIBUTION BOOTSTRAP LOADS CODE IN              *0066.000
*        MPX-32 LOAD MODULE FORMAT AND WILL DEFAULT TO A STARTING      *0067.000
*        LOCATION OF X'800' (32/7X) OR X'780' (32/27) UNLESS A         *0068.000
*        DIFFERENT BIAS VALUE IS ENTERED IN R3 PRIOR TO DEPRESSING     *0069.000
*        IPL ON THE CPU FRONT PANEL.                                    0070.000
*        THIS VERSION OF THE BOOTSTRAP IS THE MPX 2.0 VERSION.          0071.000
*        IT HAS BEEN MODIFIED TO READ ONLY THE OPERATING SYSTEM         0072.000
*        IMAGE, AND THEN TRANSFER CONTROL TO SYSINIT, WHICH WILL        0073.000
*        INITIALIZE THE SYSTEM AND ACTIVATE THE KEY LOAD MODULES        0074.000
*        THAT FOLLOW THE SYSTEM ON THE SDT TAPE. THIS BOOT SHOULD       0075.000
*        NOT BE USED WITH ANY EARLIER VERSION OF MPX.                   0076.000
*                                                                      *0077.000
************************************************************************0078.000
         LIST      NOMAC                                                0079.000
         M.REQS                                                         0080.000
         M.PR.                                                          0081.000
         M.COMM.                                                        0082.000
         M.BREGS                                                        0083.000
         M.TSA.                                                         0084.000
         SPACE                                                          0085.000
*                                                                       0086.000
*        BOOTSTRAP EQUATES AND CONSTANTS                                0087.000
*                                                                       0088.000
         SPACE                                                          0089.000
MT       EQU       X'10'           MT CHANNEL ADDRESS                   0090.000
DELAY    EQU       1                                                    0091.000
ACTIVE   EQU       2                                                    0092.000
MTBUF    EQU       0               START 0F MT BUFFER IS L0C 0          0093.000
MTREAD   EQU       X'B000'         800BPI,PACKED,ODD PARITY - READ TD   0094.000
BKSPCREC EQU       X'0800'         BACKSPACE RECORD TD                  0095.000
MTSKF    EQU       X'0200'         SKIPFILE CT COMMAND CODE             0096.000
EORFFLG  EQU       7               SET = CLASS F                        0097.000
INTRLVL  EQU       8               BOOT INTRPT PRIORITY LEVEL           0098.000
RCNT     EQU       -5              XIO ERROR RETRY COUNT                0099.000
IOCB27   EQU       X'724'          IOCB LOC FOR 32/27 TAPE I/O          0100.000
         SPACE                                                          0101.000
         BOUND     1W                                                   0102.000
         SPACE                                                          0103.000
         BOUND     8W                      START ON AN 8W BOUNDARY      0104.000
MTB      EQU       $                       SETUP CONFIGURATION RAM      0105.000
         BU        BOOT.ST-MTB                                          0106.000
         DATAW     X'00004000'             2ND WD OF NEW PSD BLOCKED    0107.000
IOCD1    GEN       8/X'53',24/0            BKSR OR RZR TO RE-READ       0108.000
         GEN       8/X'60',24/1            CMD CHAIN; SUPRESS INCOR LGTH0109.000
IOCD2    GEN       8/X'02',24/0            READ/ADDRESS 0               0110.000
         GEN       8/0,24/BOOTLEN          # BYTES IN BOOTSTRAP (*SDT)  0111.000
         BOUND     1D                                                   0112.000
FORCEPSD GEN       8/X'80',24/W(REALST-MTB)    PRIV ONLY                0113.000
         DATAW     X'00004000'             2ND WD OF PSD -- BLOCKED     0114.000
CLAS.MSK DATAW     X'F000'                 MSK, BITS 16-19=1 "F", 0 "E" 0115.000
CPUMASK  DATAW     X'0000000F'     GET MACHINE TYPE                     0116.000
BOOT.ST  EQU       $                                                    0117.000
         LPSD      FORCEPSD-MTB            FORCE PRIV ONLY              0118.000
REALST   EQU       $                                                    0119.000
         STW       R0,GPR0-MTB     SAVE USER IMAGE CHOICE       EMST-35 0120.000
         STW       R2,NUMSKIP-MTB       SAVE SYSBUILD FILE SKIP NO.     0121.000
         SPACE                                                          0122.000
*                                                                       0123.000
*  NOTE:  THE CPU MODEL INDICATOR IS CONTAINED IN BITS 28-31 OF THE     0124.000
*  CPU STATUS WORD.  THIS FIELD SHOULD BE INTERPRETED AS AN INTEGER,    0125.000
*  DEFINED AS FOLLOWS:                                                  0126.000
*        0  -  CONCEPT-32/2000                                  EMST-35 0127.000
*        1  -  RESERVED                                         EMST-35 0128.000
*        2  -  CONCEPT-32/27                                    EMST-35 0129.000
*        3  -  CONCEPT-32/67                                    EMST-35 0130.000
*        4  -  CONCEPT-32/87                                    EMST-35 0131.000
*        5  -  CONCEPT-32/97                                    EMST-35 0132.000
*        6  -  RESERVED                                         EMST-35 0133.000
*        7  -  RESERVED                                         EMST-35 0134.000
*                                                                       0135.000
         SPACE                                                          0136.000
         RDSTS     R2                   READ CPU STATUS WORD            0137.000
         ANMW      R2,CPUMASK-MTB  GET MACHINE TYPE                     0138.000
         STB       R2,MACH-MTB     SAVE IT                              0139.000
         CI        R2,1            TEST FOR 32/75                       0140.000
         BNE       NOT1-MTB        IF NOT, GO ON                EMST-35 0141.000
         BL        ERR.B-MTB       IF MACH TYPE = 1, ERROR      EMST-35 0142.000
NOT1     CI        R2,5            IS MACH TYPE > 5?            EMST-35 0143.000
         BLE       NOTBIG-MTB      IF NOT, GO ON                EMST-35 0144.000
         BL        ERR.B-MTB       IF SO, ERROR                 EMST-35 0145.000
NOTBIG   CI        R2,0            IS MACH TYPE < 0?            EMST-35 0146.000
         BGE       SET27-MTB       MACHINE TYPE OK - GO ON      EMST-35 0147.000
         BL        ERR.B-MTB       IF SO, ERROR                 EMST-35 0148.000
*        BGT       SET27-MTB       BRANCH FOR 32/27 OR 32/87    EMST-35 0149.000
*                                                                       0150.000
*        32/7X SCRATCHPAD SET-UP                                        0151.000
*                                                                       0152.000
*        LI        R5,X'8F'             DRT INDEX IN SPAD       EMST-35 0153.000
*        SLL       R5,16                FORM SPAD SETTING       EMST-35 0154.000
*        TSCR      R5,R4                R4 = DEVICE PROTOCOL    EMST-35 0155.000
*        ANMW      R4,CLAS.MSK-MTB      MASK OUT CLASS          EMST-35 0156.000
*        BCT       ZR,ECLAS7X-MTB       IF 'E' CLASS ... BRANCH EMST-35 0157.000
*        SBM       EORFFLG,CLASS-MTB    SHOW 'F' CLASS          EMST-35 0158.000
*        SBM       EORFFLG,DEVTBL-MTB   SET CLASS IN DEVICE TBL EMST-35 0159.000
*        LI        R4,SI.TRAP-MTB       R4 = SPAD TRAP ADDRESS  EMST-35 0160.000
*        STW       R4,INTRTBL-MTB       STORE IN INTRPT TABLE   EMST-35 0161.000
*        ZR        R2                   STATUS IN WORDS 0,1     EMST-35 0162.000
*        BL        STATF.I-MTB          CHECK STATUS            EMST-35 0163.000
*        BL        BTERR1-MTB           ERROR...HALT, R0=ABT AD EMST-35 0164.000
*ECLAS7X  EQU       $                    'E' CLASS TAPE DRIVE   EMST-35 0165.000
*        LW        R5,IPL7X-MTB         R5 = IPLDEV SPAD LOC.   EMST-35 0166.000
*        TSCR      R5,R4                R4 = IPL DEVICE ADDR.   EMST-35 0167.000
*        STB       R4,CH.SA+1B-MTB      SAVE SUBADDR FOR XIO    EMST-35 0168.000
*        ARMW      R4,DEVTBL-MTB        ADD CH/SUBA TO DEV WORD EMST-35 0169.000
*        SRLD      R4,8                 SUBADDRESS TO R5        EMST-35 0170.000
*        LI        R4,X'10' USE BAS AD 10 FOR INT ENT 11AUG81BS EMST-35 0171.000
*        TBM       EORFFLG,CLASS-MTB    'F' CLASS DEVICE?       EMST-35 0172.000
*        BS        CHONLY-MTB           IF YES ... USE CH ONLY  EMST-35 0173.000
*        SRL       R5,24                RIGHT JUSTIFY SUBADDR   EMST-35 0174.000
*        ADR       R5,R4                ADD CHAN AND SUBADDR    EMST-35 0175.000
*        SLL       R5,16 ADD SUBA TO DEV ENT AD/E-CLAS 11AUG81  EMST-35 0176.000
*        ARMW      R5,DEVTBL+2W-MTB UPDAT DEV ENT AD  11AUG81BS EMST-35 0177.000
*CHONLY   SLL       R4,16                FORM SPAD SETTING      EMST-35 0178.000
*        ARMW      R4,INTRTBL-MTB       ADD TO INTRPT WORD      EMST-35 0179.000
*        LW        R1,DEVTBL-MTB        R1 = SPAD DEVICE ENTRY  EMST-35 0180.000
*        LW        R2,DEVTBL+2W-MTB     R2 = SPAD LOCATION      EMST-35 0181.000
*        TRSC      R1,R2                DEVICE WORD TO SPAD     EMST-35 0182.000
*        ZR        R2  NEED AT LOC 10 IF SUBA 14AUG81 BS        EMST-35 0183.000
*        SBR       R2,11  SINCE I/O IS TO CHAN X'10'114AUG81 BS EMST-35 0184.000
*        TRSC      R1,R2           TRANSFER TO SPAD 14AUG81 BS  EMST-35 0185.000
*        LW        R1,INTRTBL-MTB       R1 = SPAD INTRPT ENTRY  EMST-35 0186.000
*        LW        R2,INTRTBL+1W-MTB    R2 = SPAD LOCATION      EMST-35 0187.000
*        TRSC      R1,R2                INTRPT WORD TO SPAD     EMST-35 0188.000
*        BU        BOOTTD-MTB           SPAD SET ... CONTINUE   EMST-35 0189.000
*                                                                       0190.000
*        32/27 SCRATCHPAD SET-UP                                        0191.000
*                                                                       0192.000
SET27    LI        R5,X'F8'             R5 = SPAD DRT INDEX             0193.000
         SLL       R5,16                FORM SPAD SETTING               0194.000
         TSCR      R5,R4                R4 = DEVICE PROTOCOL            0195.000
         ANMW      R4,CLAS.MSK-MTB      MASK OUT CLASS                  0196.000
         BCT       ZR,ECLASPX-MTB       IF 'E' CLASS ... BRANCH         0197.000
         SBM       EORFFLG,CLASS-MTB    SHOW 'F' CLASS                  0198.000
         SBM       EORFFLG,DEVTBL+1W-MTB   SET CLASS IN DEVICE TBL      0199.000
         LI        R4,X'F1'             LOAD SPAD ITBA INDEX            0200.000
         SLL       R4,16                FORM SPAD SETTING               0201.000
         LA        R5,ITBA-MTB          R5 = ITBA FOR BOOT              0202.000
         TRSC      R5,R4                BOOT ITBA TO SPAD               0203.000
         ZR        R2                   STATUS IN WORDS 0,1             0204.000
         BL        STATF.I-MTB          CHECK STATUS                    0205.000
*        BL        BTERR1-MTB      ERROR...HALT, R0=ABORT ADDR  EMST-35 0206.000
         BL        ERR.3-MTB       ERROR...HALT, R0=ABORT ADDR  EMST-35 0207.000
         BU        GETIPL-MTB           FETCH IPL ADDRESS               0208.000
ECLASPX  EQU       $                                                    0209.000
         LI        R5,X'F2'             IOCDBA SPAD INDEX               0210.000
         LI        R4,X'700'            IOCD BASE ADDRESS               0211.000
         SLL       R5,16                SHIFT INDEX INTO POS.           0212.000
         TRSC      R4,R5                INIT IOCDBA IN SPAD             0213.000
GETIPL   LW        R5,IPL27-MTB         R5 = IPLDEV SPAD LOC.           0214.000
         TSCR      R5,R4                R4 = IPL DEVICE ADDR.           0215.000
         STB       R4,CH.SA+1B-MTB      SAVE SUBADDR FOR XIO            0216.000
         ANMW      R4,SPAD.MSK-MTB      REMOVE ALL BUT CHANNEL 7-29-81BS0217.000
*        TRSC      R4,R5                THIS INST. NOT NEEDED 7-30-81BS 0218.000
         ORMW      R4,DEVTBL+1W-MTB     R4 = SPAD DEVICE WORD           0219.000
         LW        R2,DEVTBL+2W-MTB     R2 = SPAD LOCATION              0220.000
         TRSC      R4,R2                DEVICE WORD TO SPAD             0221.000
         LW        R2,INTRTBL+2W-MTB    R2 = INTRPT SPAD LOC.           0222.000
         TRSC      R4,R2                INTRPT WORD TO SPAD             0223.000
         LA        R4,MTTCW-MTB         R4 = MAG TAPE TCW LOCATION      0224.000
         STW       R4,IOCB27            TCW ADDR TO IOCD                0225.000
         LI        R4,X'780'            32/27 LOAD POINT                0226.000
         STW       R4,DEFAULT-MTB       SET 32/27 DEFAULT LOAD PT.      0227.000
*                                                                       0228.000
*        INITIALIZE CHANNEL FOR 'F' CLASS I/O                           0229.000
*                                                                       0230.000
*BOOTTD   TBM       EORFFLG,CLASS-MTB    CK IF "F" CLASS        EMST-35 0231.000
*        BCF       SET,NOT.F-MTB        BR IF "E"               EMST-35 0232.000
         BL        DO.INCH-MTB          DO THE INCH                     0233.000
         BU        MTB1-MTB             CONTINUE                        0234.000
*NOT.F    TD        MT,X'8000'  TEST STATUS FOR 'E' CLASS       EMST-35 0235.000
*        BANY      E.ERR-MTB       BRANCH IF ANY ERRORS         EMST-35 0236.000
*        TBM       MASTER,SDTFLG-MTB    TEST FOR MASTER SDT BOOTEMST-35 0237.000
*        BNS       MTB1-MTB        NO, GO ON                    EMST-35 0238.000
*                                                                       0239.000
*        SKIP THE TAPE AHEAD 1 FILE TO FIND THE 32/75 MASTER IMAGE      0240.000
*        THIS IS DONE WITH INTERRUPTS BECAUSE THE CONTROLLER DOES       0241.000
*        NOT RETURN A BUSY STATUS ON A TD INSTRUCTION. AND IT IS        0242.000
*        NICE TO KNOW WHEN THE SKIPFILE IS DONE!!!                      0243.000
*                                                                       0244.000
*        UEI                       UNBLOCK EXTERNAL INTERRUPTS  EMST-35 0245.000
*        DI        X'18'           DISABLE THE INTERRUPT        EMST-35 0246.000
*        EI        X'18'           RE--ENABLE IT                EMST-35 0247.000
*                                                                       0248.000
*        THE CD BELOW HAS ITS ICB @ X'7BC' AND WILL RETURN TO           0249.000
*        LABEL MTB1 WITH INTERRUPTS BLOCKED                             0250.000
*                                                                       0251.000
*        CD        MT,MTSKF        DO THE SKIPFILE              EMST-35 0252.000
*        WAIT                      WAIT FOR I/O COMPLETE        EMST-35 0253.000
*E.ERR    BL        BTERR1.MTB      ERROR...HALT, R0=ABORT ADDR EMST-35 0254.000
         SPACE                                                          0255.000
*                                                                       0256.000
* NOTE: THERE ARE THREE IMAGES ON THE MASTER SDT:               EMST-35 0257.000
*       MSTRALL (DEFAULT IMAGE FOR CONCEPT-32/XX MACHINES,      EMST-35 0258.000
*                VALID OPTION FOR CONCEPT-32/2000)              EMST-35 0259.000
*       MSTREXT (EXTENDED MPX - VALID OPTION FOR ALL CONCEPT    EMST-35 0260.000
*                MACHINES EXCEPT 32/27)                         EMST-35 0261.000
*       MSTROUT (DEFAULT IMAGE FOR CONCEPT-32/2000 - INVALID    EMST-35 0262.000
*                OPTION FOR ALL OTHER MACHINES)                 EMST-35 0263.000
*                                                               EMST-35 0264.000
* THE USER CAN CHOOSE AN IMAGE OTHER THAN THE DEFAULT BY        EMST-35 0265.000
* SETTING GPR0 TO ONE OF THE FOLLOWING VALUES BEFORE IPL:       EMST-35 0266.000
* (NOTE ABOVE CONSTRAINTS)                                      EMST-35 0267.000
*       GPR0 = 1 -- MSTRALL                                     EMST-35 0268.000
*       GPR0 = 2 -- MSTREXT                                     EMST-35 0269.000
*                                                               EMST-35 0270.000
DO.INCH  EQU       $                    'F' CLASS INCH                  0271.000
         STW       R0,INCH.RT-MTB       SAVE RETURN ADDRESS             0272.000
         TBM       MASTER,SDTFLG-MTB    IS THIS A MASTER SDT            0273.000
         BNS       SKF.L1-MTB           NO, SKIP THE SKIPFILES          0274.000
         LB        R5,MACH-MTB     GET THE MACHINE TYPE BYTE            0275.000
*        CI        R5,2            IS THIS A 32/27 BOOT?        EMST-35 0276.000
*        BEQ       SKF.L1-MTB      YES, NO FILE SKIPS           EMST-35 0277.000
*        SBM       1,IOCD.SM+1W-MTB   SET CMD CHAIN BIT TO      EMST-35 0278.000
*                               DO ONE SKIP FILE ON TAPE BOOT   EMST-35 0279.000
*        SBM       1,INCH.FP+1W-MTB SET CMD CH BIT FOR FLP      EMST-35 0280.000
*                                     TO DO ONE SKIP FILE       EMST-35 0281.000
*        CI        R5,1            IS THIS A 32/75 BOOT?        EMST-35 0282.000
*        BEQ       SKF.L1-MTB      YES, ONLY 1 SKIPFILE FOR 75  EMST-35 0283.000
*        SBM       1,IOCD.SK1+1W-MTB  DO TWO SKIPFILES          EMST-35 0284.000
         LW        R0,GPR0-MTB     GET USER'S IMAGE CHOICE      EMST-35 0285.000
         BNN       GPR0CHK2-MTB    IF NOT < 0, CHECK IF > 2     EMST-35 0286.000
         BL        ERR.A-MTB       IF SO, INVALID - HALT        EMST-35 0287.000
GPR0CHK2 CI        R0,2            IS GPR0 > 2?                 EMST-35 0288.000
         BLE       GPR0OK-MTB      IF NOT, VALUE IS OK          EMST-35 0289.000
         BL        ERR.A-MTB       IF SO, INVALID - HALT        EMST-35 0290.000
GPR0OK   CI        R5,0            IS THIS A 32/2000?           EMST-35 0291.000
         BNE       NOTOUT-MTB      NO, CAN'T USE MAPPED OUT     EMST-35 0292.000
         CI        R0,0            DO THEY WANT MAPPED OUT?     EMST-35 0293.000
         BNE       NOTOUT-MTB      NO, CHOOSE ANOTHER IMAGE     EMST-35 0294.000
         SBM       1,IOCD.SK1+1W-MTB  SKIP SECOND IMAGE ON TAPE EMST-35 0295.000
         BU        SKIPF1-MTB      GO SKIP THE FIRST IMAGE, TOO EMST-35 0296.000
NOTOUT   CI        R0,2            DO THEY WANT EXTENDED?       EMST-35 0297.000
         BNE       SKF.L1-MTB      NO - GO GET FIRST IMAGE      EMST-35 0298.000
         CI        R5,2            IS THIS A 32/27?             EMST-35 0299.000
         BNE       SKIPF1-MTB      NO - SKIP FIRST IMAGE        EMST-35 0300.000
         BL        ERR.C-MTB       MSTREXT INVALID FOR 32/27    EMST-35 0301.000
SKIPF1   SBM       1,IOCD.SM+1W-MTB  SET CMD CHAIN BIT TO       EMST-35 0302.000
*                             DO ONE SKIP FILE ON TAPE BOOT     EMST-35 0303.000
         SBM       1,INCH.FP+1W-MTB  SET CMD CHAIN BIT FOR      EMST-35 0304.000
*                             FLOPPY TO DO ONE FILE SKIP        EMST-35 0305.000
SKF.L1   EQU       $                                                    0306.000
         TBM       FLP,SDTFLG-MTB       IPL FROM FLOPPY?                0307.000
         BNS       INIT.TAP-MTB         IF NOT ... INIT FOR TAPE        0308.000
         LA        R5,INCH.FP-MTB       FETCH FLOPPY IOCD ADDRESS       0309.000
         BU        $+2W-MTB             JOIN COMMON CODE                0310.000
INIT.TAP LA        R5,INCH.TP-MTB       FETCH TAPE IOCL ADDRESS         0311.000
         STW       R5,IOCLA             STORE IOCL PTR. IN CONTROL BLK  0312.000
         LH        R5,CH.SA-MTB         FETCH LOGICAL CHANNEL           0313.000
         ECI       R5,0                 ENABLE CHANNEL INTERRUPT        0314.000
         UEI                            UNBLOCK INTERRUPTS              0315.000
         BL        DO.SIO-MTB           INITIALIZE CHANNEL              0316.000
         BL        CK.STATF-MTB         CHECK STATUS                    0317.000
*        BL        BTERR1-MTB      ERROR...HALT, R0=ABORT ADDR  EMST-35 0318.000
         BL        ERR.3-MTB       ERROR...HALT, R0=ABORT ADDR  EMST-35 0319.000
         TBM       FLP,SDTFLG-MTB       IPL FROM FLOPPY?                0320.000
         BNS       IOCL.TAP-MTB         IF NOT ... SET IOCL FOR TAPE    0321.000
         LA        R0,IOCD.SK-MTB       FETCH ADDR. OF SEEK IOCD        0322.000
         BU        $+2W-MTB             JOIN COMMON CODE                0323.000
IOCL.TAP LA        R0,IOCD.RD-MTB       FETCH ADDR. OF READ IOCD        0324.000
         STW       R0,IOCLA             STORE IOCL PTR. IN CONTROL BLK  0325.000
         BU        *INCH.RT-MTB         RETURN TO CALLER                0326.000
*                                                               EMST-35 0327.000
*     ERROR PROCESSING                                          EMST-35 0328.000
*                                                               EMST-35 0329.000
ERR.A    LD        R6,ERRA.MSG-MTB  INVALID VALUE IN GPR0       EMST-35 0330.000
         BU        ERR.HALT-MTB     HALT MACHINE                EMST-35 0331.000
ERR.B    LD        R6,ERRB.MSG-MTB  INVALID MACHINE TYPE        EMST-35 0332.000
         BU        ERR.HALT-MTB     HALT MACHINE                EMST-35 0333.000
ERR.C    LD        R6,ERRC.MSG-MTB  INVALID IMAGE FOR MACHINE   EMST-35 0334.000
         BU        ERR.HALT-MTB     HALT MACHINE                EMST-35 0335.000
ERRA.MSG DATAD     C'INV GPR0'                                  EMST-35 0336.000
ERRB.MSG DATAD     C'MACHTYPE'                                  EMST-35 0337.000
ERRC.MSG DATAD     C'INV IMAG'                                  EMST-35 0338.000
GPR0     DATAW     0               CONTAINS USER'S IMAGE CHOICE EMST-35 0339.000
*                                                                       0340.000
*        INCH DATA AREA                                                 0341.000
*                                                                       0342.000
MODE     DATAW     X'80000000'          MODE = PACKED, ODD PARITY (TAPE)0343.000
INCH.RT  DATAW     0                    CALLER'S RETURN ADDRESS         0344.000
         BOUND     1D                                                   0345.000
INCH.TP  GEN       8/0,24/W(INCH.BUF-MTB)      TAPE INCH BUFFER         0346.000
         GEN       8/X'40',24/1                COMMAND CHAIN; 1 BYTE    0347.000
IOCD.SM  GEN       8/X'83',24/W(MODE-MTB)      SET MODE                 0348.000
         GEN       8/0,24/1                    1 BYTE                   0349.000
IOCD.TIC GEN       8/X'08',24/W(IOCD.SK1-MTB)  TRANSFER TO SKIPFILE     0350.000
         DATAW     0                            IOCD'S IF NEEDED        0351.000
INCH.FP  GEN       8/0,24/A(IOSTAT-MTB)        STATUS ADDRESS           0352.000
         GEN       16/0,16/1                   1 BYTE                   0353.000
IOCD.SK1 GEN       8/X'63',24/0    SKIP ONE FILE                        0354.000
         DATAW     1                                                    0355.000
IOCD.SK2 GEN       8/X'63',24/0                                         0356.000
         DATAW     1                                                    0357.000
         SPACE                                                          0358.000
INT.RET  DI        X'18'           DISABLE THE INTERRUPT ON RETURN      0359.000
MTB1     EQU       $               INITIALIZE LOAD POINTER              0360.000
         CI        R3,0            WAS A LOAD BIAS SUPPLIED?            0361.000
         BNE       $+2W-MTB        ..YES, SKIP NEXT INSTRUCTION         0362.000
         LW        R3,DEFAULT-MTB  ELSE FORCE DEFULT LOAD POINT         0363.000
         ANMW      R3,WORDMASK-MTB MASK TO WORD BOUND                   0364.000
         STW       R3,BIAS-MTB     SAVE BIAS VALUE                      0365.000
         BU        READPR-MTB      ..THEN READ PREAMBLE BLOCK 1         0366.000
         SPACE                                                          0367.000
SPAD.MSK DATAW     X'0000FF00'     MASK ALL BUT CHANNEL OF SPAD WORD    0368.000
DEFAULT  DATAW     X'800'          DEFAULT START LOAD POINT             0369.000
DEVTBL   DATAW     X'0E670000'     32/7X SPAD DEVICE WORD               0370.000
         DATAW     X'0E770000'     32/27 SPAD DEVICE WORD               0371.000
         DATAW     X'00100000'     USE SPAD=CH10+SA0                    0372.000
INTRTBL  DATAW     MT.ICB-MTB      32/7X SPAD INTR ENTRY                0373.000
*                                  SETS TCW ADDR TO 77C                 0374.000
         DATAW     X'00980000'     32/7X SPAD INTR LOC                  0375.000
         DATAW     X'00880000'     32/27 SPAD INTR LOC                  0376.000
IPL7X    DATAW     X'00840000'     32/7X IPL DEVICE SPAD LOC.           0377.000
IPL27    DATAW     X'00F40000'     32/27 IPL DEVICE SPAD LOCATION       0378.000
CLASS    DATAB     X'0E'           DEVICE CLASS                 EMST-35 0379.000
MACH     DATAB     0               SAVE AREA FOR MACHINE TYPE   EMST-35 0380.000
WORDMASK DATAW     X'7FFFC'        WORD MASK                    EMST-35 0381.000
ICLEND   EQU       $                                                    0382.000
         REZ       X'300'+MTB-ICLEND    PAD SO THAT READPR WILL         0383.000
*                                 BEGIN AT X'300' LEAVING 000 TO 2FF    0384.000
*                                       AS THE 192W MT BUFFER           0385.000
         BOUND     8W                                                   0386.000
SAVEREG  REZ       8W              REGISTER SAVE AREA                   0387.000
INCH.BUF REZ       8W              EXT. I/O INCH BUFFER                 0388.000
SI.TRAP  ACW       SI.BLKA-MTB     SPAD TRAPS HERE..TO SI BLK           0389.000
SI.BLKA  REZ       2W                        XIO CONTROL BLK (OLD PSD)  0390.000
NEW.PSD  GEN       8/X'80',24/W(HNDLR-MTB)   NEW PSD                    0391.000
         DATAW     X'00008000'               RETAIN CURRENT BLOCK MODE  0392.000
         REZ       2W                        IOCLA AND STATUS ADDRESS   0393.000
SI.BLK   EQU       SI.BLKA-MTB     SI POINTER-CLASS F                   0394.000
IOCLA    EQU       SI.BLK+4W       IOCLA...REL TO SI BLK                0395.000
STAT.ADR EQU       SI.BLK+5W       STATUS POINTER                       0396.000
ITBA     REZ       4*INTRLVL       INTRPT TBL FOR 32/27 BOOT            0397.000
         ACW       SI.BLKA-MTB     POINTER TO SI BLOCK                  0398.000
NUMSKIP  DATAW     0               NO. OF FILES/BLKS SYSBUILD TO SKIP   0399.000
MTHTCW   GEN       12/384,20/H(MTBUF)   HANDLER TCW                     0400.000
*CH.SA    DATAH     X'1000'         LOG CH & PHYS SUBAD (INSRT) EMST-35 0401.000
*MAXSECT  DATAH     0               MAX START SECT FOR FLOPPY   EMST-35 0402.000
*CLASS    DATAB     X'0E'           DEVICE CLASS                EMST-35 0403.000
*SDTFLG   DATAB     0               SDT LOAD FLAGS              EMST-35 0404.000
*MACH     DATAB     0               SAVE AREA FOR MACHINE TYPE  EMST-35 0405.000
PHX      EQU       0               32/27 CPU                            0406.000
FLP      EQU       1               IPL FROM FLOPPY                      0407.000
MASTER   EQU       2               IPL FROM MASTER SDT                  0408.000
         SPACE                                                          0409.000
*                                                                       0410.000
*        IOCD CHAIN FOR 'F' CLASS TAPE                                  0411.000
*                                                                       0412.000
         BOUND     1D                                                   0413.000
IOCD.BKR GEN       8/X'53',24/0    BKSR                                 0414.000
         GEN       8/X'40',24/1    COM.CHAIN/1 BYTE                     0415.000
IOCD.RD  GEN       8/X'02',24/0    READ/ADDR X'0'                       0416.000
         GEN       16/0,16/X'300'  BYTE CNT (192W)                      0417.000
*                                                                       0418.000
*        IOCD CHAIN FOR IOP FLOPPY                                      0419.000
*                                                                       0420.000
IOCD.ZR  GEN       8/X'37',24/0                   REZERO                0421.000
         GEN       8/X'40',24/0                   COMMAND CHAIN, 0 BYTE 0422.000
IOCD.SK  GEN       8/X'17',24/A(SEEKINFO-MTB)     BINARY SEEK           0423.000
         GEN       8/X'40',24/4                   COMMAND CHAIN, 4 BYTES0424.000
IOCD.RD2 GEN       8/X'02',24/0                   READ, ADDRESS X'0'    0425.000
         GEN       8/0,24/X'300'                  768 BYTES (192W)      0426.000
IOSTAT   REZ       1D                             IO STATUS DBLWORD     0427.000
SEEKINFO DATAW     6               SEEK INITIALIZED TO 6                0428.000
         SPACE                                                          0429.000
*                                                                       0430.000
*        ALL UNRECOVERABLE ERRORS DURING THE LOAD OPERATION             0431.000
*        BRANCH AND LINK TO THIS POINT.                         EMST-35 0432.000
*        R0 CONTAINS THE ABORT ADDRESS.                         EMST-35 0433.000
*        R4,R5 CONTAIN BOOTSTRAP FAIL MESSAGE                   EMST-35 0434.000
*        R6,R7 CONTAIN TYPE OF FAILURE                          EMST-35 0435.000
*                                                                       0436.000
ERR.1    LD        R6,ERR1.MSG-MTB BAD LOAD MODULE              EMST-35 0437.000
         BU        ERR.HALT-MTB                                 EMST-35 0438.000
ERR.2    LD        R6,ERR2.MSG-MTB CHECKSUM ERROR               EMST-35 0439.000
         BU        ERR.HALT-MTB                                 EMST-35 0440.000
ERR.3    LD        R6,ERR3.MSG-MTB I/O STATUS ERROR             EMST-35 0441.000
         BU        ERR.HALT-MTB                                 EMST-35 0442.000
*BTERR1   EQU       $                                           EMST-35 0443.000
ERR.HALT LD        R4,BOOT.MSG-MTB  BOOTFAIL MESSAGE            EMST-35 0444.000
         HALT                      ERROR WHILE LOADING BOOTSTRAP        0445.000
*        BU        BTERR1-MTB      NO RECOVERY ALLOWED          EMST-35 0446.000
         BU        ERR.HALT-MTB    NO RECOVERY ALLOWED          EMST-35 0447.000
BOOT.MSG DATAD     C'BOOTFAIL'                                  EMST-35 0448.000
ERR1.MSG DATAD     C'LOAD MOD'                                  EMST-35 0449.000
         PAGE                                                           0450.000
*                                                                       0451.000
*        STATUS CHECK FOR 'F' CLASS I/O                                 0452.000
*                                                                       0453.000
CK.STATF EQU       $                                                    0454.000
         LW        R2,STAT.ADR     STATUS CELLS LOC.                    0455.000
STATF.I  EQU       $               SPECIAL BOOT ENTRY                   0456.000
         LI        R4,X'FFD3'      ALLOW CONT.END/CH END/DEVEND         0457.000
         LMH       R6,2H,X2        CK STATUS                            0458.000
         BNZ       STAT.RET-MTB    IF ERROR ... NORMAL RETURN           0459.000
         ABR       R0,29           IF NO ERROR ... RETURN + 1W          0460.000
STAT.RET TRSW      R0              RETURN TO CALLER                     0461.000
         SPACE                                                          0462.000
*                                                                       0463.000
*        'F' CLASS I/O ROUTINE                                          0464.000
*                                                                       0465.000
DO.SIO   LH        R7,CH.SA-MTB    LOGICAL CHANNEL/SUBCHANNEL ADDR      0466.000
         SIO       R7,0            ISSUE I/O REQUEST                    0467.000
         BCF       6,WAIT-MTB      IF CC3/CC4 = 0 ... WAIT              0468.000
*        BU        BTERR1-MTB      OTHERWISE ... ERROR          EMST-35 0469.000
         BL        ERR.3-MTB       OTHERWISE ... ERROR          EMST-35 0470.000
WAIT     WAIT                      WAIT FOR INTERRUPT                   0471.000
         TRSW      R0              RETURN TO CALLER                     0472.000
         SPACE                                                          0473.000
*                                                                       0474.000
*        'F' CLASS INTERRUPT HANDLER                                    0475.000
*                                                                       0476.000
         BOUND     1W                                                   0477.000
*HNDLR    LW        R7,DACI-MTB     FETCH DACI INSTRUCTION SHELLEMST-35 0478.000
HNDLR    LH        R7,CH.SA-MTB    FETCH LOGICAL CHANNEL        EMST-35 0479.000
*        LH        R6,CH.SA-MTB    FETCH LOGICAL CHANNEL        EMST-35 0480.000
*        ORR       R6,R7           FORM DACI INSTRUCTION        EMST-35 0481.000
*        STW       R7,DACI.EXE-MTB STORE IN-LINE                EMST-35 0482.000
         ABM       30,SI.BLK       BUMP RETURN ADDRESS BY 1H            0483.000
         DACI      R7,0            DEACTIVATE CHANNEL INTERRUPT EMST-35 0484.000
*DACI.EXE DATAW     0               DEACTIVATE CHANNEL INTERRUPTEMST-35 0485.000
         LPSD      SI.BLK          I/O COMPLETED                        0486.000
*DACI     DACI      0,0             DACI INSTRUCTION SHELL      EMST-35 0487.000
         SPACE                                                          0488.000
*                                                                       0489.000
*        READ LOAD MODULE PREAMBLE AND SAVE PARAMETERS                  0490.000
*                                                                       0491.000
READPR   EQU       $               READ LOAD MODULE PREAMBLE            0492.000
*        ZMW       CBLKNUM-MTB     INIT CURR BLK # IN BUFFER    EMST-35 0493.000
         BL        READBL-MTB      READ 1ST BLOCK OF PREAMBLE           0494.000
         LW        R5,MTBUF+PR.TRAN     TRANSFER ADDRESS                0495.000
         STW       R5,TRAN-MTB                                          0496.000
         SPACE                                                          0497.000
         LW        R5,MTBUF+PR.ORGC     CSECT LOAD ORIGIN + COMMON DELTA0498.000
         STW       R5,ORGC-MTB                                          0499.000
         SPACE                                                          0500.000
         LI        R2,-7                SET UP LOOP COUNT               0501.000
         ZR        R1                   SET UP INDEX                    0502.000
         ZR        R3              SET UP ANOTHER FOR LATER     EMST-35 0503.000
PR.CSECT EQU       $                                                    0504.000
         LW        R5,MTBUF+PR.SFAC,R1  SAVE CSECT DATA START BLOCK #   0505.000
         STW       R5,SFAC-MTB,R1       TO DSECT LOAD ORIGIN + C DELTA  0506.000
         ADI       R1,1W                INCR INDEX                      0507.000
         BIB       R2,PR.CSECT-MTB      LOOP TO GET ALL 7 PARAMETERS    0508.000
         LI        R2,-6                SETUP NEXT LOOP COUNT           0509.000
*        ZR        R1                   SETUP INDEX             EMST-35 0510.000
PR.DSECT EQU       $                                                    0511.000
*        LW        R5,MTBUF+PR.SFAD,R1  SAVE DSECT DAT ST BLK # EMST-35 0512.000
         LW        R5,MTBUF+PR.SFAD,R3  SAVE DSECT DAT ST BLK # EMST-35 0513.000
*        STW       R5,SFAD-MTB,R1       TO DSECT RELOC CHECKSUM EMST-35 0514.000
         STW       R5,SFAD-MTB,R3       TO DSECT RELOC CHECKSUM EMST-35 0515.000
*        ADI       R1,1W                INCR INDEX              EMST-35 0516.000
         ADI       R3,1W                INCR INDEX              EMST-35 0517.000
         BIB       R2,PR.DSECT-MTB      LOOP TO GET ALL 6 PARAMETERS    0518.000
*                                                                       0519.000
*        SKIP RRS BLOCK                                                 0520.000
*                                                                       0521.000
         BL        READBL-MTB           READ RRS BLOCK AND IGNORE IT    0522.000
*                                                                       0523.000
*        LOAD CSECT DATA                                                0524.000
*                                                                       0525.000
LDCSEC   EQU       $                                                    0526.000
         LW        R3,DBYTEC-MTB   GET CSECT DATA BYTE COUNT            0527.000
         BZ        LDDSEC-MTB      ..IF ZERO, GO LOAD DSECT             0528.000
*        ABR       R3,31           ROUND UP TO NEAREST HALFWORD EMST-35 0529.000
*        SRL       R3,1            CONVERT TO HALFWORD COUNT    EMST-35 0530.000
         LW        R2,ORGC-MTB     GET CSECT RELATIVE LOAD POINT        0531.000
*        ADMW      R2,BIAS-MTB     ADD BIAS TO ABSOLUTIZE LD PT EMST-35 0532.000
*        STW       R2,LOADPT-MTB   SAVE LOAD POINT              EMST-35 0533.000
*        LW        R7,CBLKNUM-MTB  GET CURRENT BLOCK NUMBER     EMST-35 0534.000
         BL        SETUP1-MTB      COMMON SETUP ROUTINE         EMST-35 0535.000
         CAMW      R7,SFAC-MTB     AND VALIDATE                         0536.000
         BEQ       LDCSEC1-MTB     ..OK - CONTINUE                      0537.000
*        HALT                      ELSE HALT - BAD LOAD MODULE  EMST-35 0538.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0539.000
         BL        ERR.1-MTB       BAD LOAD MODULE              EMST-35 0540.000
LDCSEC1  EQU       $                                                    0541.000
*        ZMW       COMPCKSM-MTB    ZERO CHECKSUM ACCUMULATOR    EMST-35 0542.000
*        BL        DATARD-MTB      READ & STORE CSECT DATA     ENBH-35  0543.000
         BL        COMRD-MTB       READ & STORE CSECT DATA     ENBH-35  0544.000
*        LW        R6,COMPCKSM-MTB GET COMPUTED CHECKSUM        EMST-35 0545.000
         CAMW      R6,DCHECKC-MTB  AND VALIDATE AGAINST PREAMBLE CKSM   0546.000
         BEQ       RELCSEC-MTB     ..OK - GO PROCESS RELOC MATR         0547.000
*        HALT                      ELSE HALT - CSECT DATA CHECKSEMST-35 0548.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0549.000
         BL        ERR.2-MTB       CHECKSUM ERROR               EMST-35 0550.000
*                                                                       0551.000
*        PROCESS CSECT RELOCATION MATRIX                                0552.000
*                                                                       0553.000
RELCSEC  EQU       $                                                    0554.000
         LW        R3,RBYTEC-MTB   GET RELOCATION MATRIX BYTE COUNT     0555.000
         BZ        LDDSEC-MTB      ..IF ZERO, GO LOAD DSECT             0556.000
*        ABR       R3,31           ROUND UP TO NEAREST HALFWORD EMST-35 0557.000
*        SRL       R3,1            CONVERT TO HALFWORD COUNT    EMST-35 0558.000
         LW        R2,LOADPT-MTB   INITIALIZE R2 = LOAD POINT           0559.000
*        LW        R7,CBLKNUM-MTB  GET CURR BLOCK NUMBER        EMST-35 0560.000
         BL        SETUP2-MTB      COMMON SETUP ROUTINE         EMST-35 0561.000
         CAMW      R7,SFACR-MTB    AND VALIDATE                         0562.000
         BEQ       RELCSEC1-MTB    ..OK - CONTINUE                      0563.000
*        HALT                      ELSE HALT - BAD LOAD MODULE  EMST-35 0564.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0565.000
         BL        ERR.1-MTB       BAD LOAD MODULE              EMST-35 0566.000
RELCSEC1 EQU       $                                                    0567.000
*        ZMW       COMPCKSM-MTB    ZERO CHECKSUM ACCUMULATOR    EMST-35 0568.000
*        BL        RELOCRD-MTB     PROCESS RELOCTION MATRIX    ENBH-35  0569.000
         BL        COMRD-MTB       PROCESS RELOCTION MATRIX    ENBH-35  0570.000
*        LW        R6,COMPCKSM-MTB GET COMPUTED CHECKSUM        EMST-35 0571.000
         CAMW      R6,RCHECKC-MTB  VALIDATE RELOCATION CHECKSUM         0572.000
         BEQ       LDDSEC-MTB      ..OK - GO PROCESS DSECT DATA         0573.000
*        HALT                      ELSE HALT - DSECT REL CKSM EREMST-35 0574.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0575.000
         BL        ERR.2-MTB       CHECKSUM ERROR               EMST-35 0576.000
*                                                                       0577.000
*        LOAD DSECT DATA                                                0578.000
*                                                                       0579.000
LDDSEC   EQU       $                                                    0580.000
         LW        R3,DBYTED-MTB   GET DSECT DATA BYTE COUNT            0581.000
         ADI       R3,192W         ADD A BLOCK FOR DEBUG BLOCK          0582.000
*                                  NOT CHECKSUMMED                      0583.000
         BZ        LDDONE-MTB      ..IF ZERO,LOAD DONE, GO EXECUTE      0584.000
*        ABR       R3,31           ROUND UP TO NEAREST HALFWORD EMST-35 0585.000
*        SRL       R3,1            CONVERT TO HALFWORD COUNT    EMST-35 0586.000
         LW        R2,ORGD-MTB     GET DSECT RELATIVE LOAD POINT        0587.000
*        ADMW      R2,BIAS-MTB     ADD BIAS TO ABSOLUTIZE LD PT EMST-35 0588.000
*        STW       R2,LOADPT-MTB   SAVE LOAD POINT              EMST-35 0589.000
*        LW        R7,CBLKNUM-MTB  GET CURRENT BLOCK NUMBER     EMST-35 0590.000
         BL        SETUP1-MTB      COMMON SETUP ROUTINE         EMST-35 0591.000
         CAMW      R7,SFAD-MTB     VALIDATE AGAINST START BLOCK #       0592.000
         BEQ       LDDSEC1-MTB     ..OK - CONTINUE                      0593.000
*        HALT                      ELSE HALT - BAD LOAD MODULE  EMST-35 0594.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0595.000
         BL        ERR.1-MTB       BAD LOAD MODULE              EMST-35 0596.000
LDDSEC1  EQU       $                                                    0597.000
*        ZMW       COMPCKSM-MTB    ZERO CHECKSUM ACCUMULATOR    EMST-35 0598.000
*        BL        DATARD-MTB      READ & STORE DSECT DATA     ENBH-35  0599.000
         BL        COMRD-MTB       READ & STORE DSECT DATA     ENBH-35  0600.000
*        LW        R6,COMPCKSM-MTB GET COMPUTED CHECKSUM        EMST-35 0601.000
         CAMW      R6,DCHECKD-MTB  AND VALIDATE AGAINST PREAMBLE CKSM   0602.000
         BEQ       RELDSEC-MTB     ..OK - GO PROCESS RELOC MATR         0603.000
*        HALT                      ELSE HALT - DSECT DATA CHECKSEMST-35 0604.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0605.000
         BL        ERR.2-MTB       CHECKSUM ERROR               EMST-35 0606.000
*                                                                       0607.000
*        PROCESS DSECT RELOCATION MATRIX                                0608.000
*                                                                       0609.000
RELDSEC  EQU       $                                                    0610.000
         LW        R3,RBYTED-MTB   GET RELOCATION MATRIX BYTE COUNT     0611.000
         BZ        LDDONE-MTB      ..IF ZERO,DONE, GO EXECUTE           0612.000
*        ABR       R3,31           ROUND UP TO NEAREST HALFWORD EMST-35 0613.000
*        SRL       R3,1            CONVERT TO HALFWORD COUNT    EMST-35 0614.000
         LW        R2,LOADPT-MTB   INITIALIZE R2=LOAD POINT             0615.000
*        LW        R7,CBLKNUM-MTB  GET START BLOCK NUMBER       EMST-35 0616.000
         BL        SETUP2-MTB      COMMON SETUP ROUTINE         EMST-35 0617.000
         CAMW      R7,SFADR-MTB    AND VALIDATE                         0618.000
         BEQ       RELDSEC1-MTB    ..OK - CONTINUE                      0619.000
*        HALT                      ELSE HALT - BAD LOAD MODULE  EMST-35 0620.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0621.000
         BL        ERR.1-MTB       BAD LOAD MODULE              EMST-35 0622.000
RELDSEC1 EQU       $                                                    0623.000
*        ZMW       COMPCKSM-MTB    ZERO CHECKSUM ACCUMULATOR    EMST-35 0624.000
*        BL        RELOCRD-MTB     PROCESS RELOCATION MATRIX   ENBH-35  0625.000
         BL        COMRD-MTB       PROCESS RELOCATION MATRIX   ENBH-35  0626.000
*        LW        R6,COMPCKSM-MTB GET COMPUTED CHECKSUM        EMST-35 0627.000
         CAMW      R6,RCHECKD-MTB  VALIDATE RELOCATION CHECKSUM         0628.000
         BEQ       LDDONE-MTB      ..OK - DONE, GO EXECUTE              0629.000
*        HALT                      ELSE HALT - DSECT REL CKSM EREMST-35 0630.000
*        BU        $-1W-MTB        NO RECOVERY                  EMST-35 0631.000
         BL        ERR.2-MTB       CHECKSUM ERROR               EMST-35 0632.000
*                                                                       0633.000
*        MODULE LOAD COMPLETE                                           0634.000
*                                                                       0635.000
LDDONE   EQU       $                                                    0636.000
         TBM       FLP,SDTFLG-MTB  IPL FROM FLOPPY?                     0637.000
         BNS       TPGO-MTB        IF NOT ... BRANCH                    0638.000
         LW        R7,CBLKNUM-MTB  GET NO. OF BLOCKS READ               0639.000
         ARMW      R7,NUMSKIP-MTB  ADD TO BLOCK COUNT FOR 'SYSINIT'     0640.000
*        LW        R2,NUMSKIP-MTB  GET SKIP COUNT FOR SYSINIT  ENBH-35  0641.000
         LW        R0,NUMSKIP-MTB  GET SKIP COUNT FOR SYSINIT  ENBH-35  0642.000
         LW        R7,FL.CONST-MTB GET FLOPPY CONSTANT                  0643.000
*        STW       R7,X'0'         PUT AT ZERO                  EMST-35 0644.000
*        BU        *C.REGS         GO TO SYSINIT                EMST-35 0645.000
         BU        LDGO-MTB        COMMON EXIT                  EMST-35 0646.000
TPGO     LW        R7,TP.CONST-MTB GET TAPE STARTUP FLAG                0647.000
*        STW       R7,X'0'         PUT AT ZERO                  EMST-35 0648.000
LDGO     STW       R7,X'0'         PUT AT ZERO                  EMST-35 0649.000
         LW        R1,C.CTSAD      GET ADDR OF SYSINIT TSA     ENBH-35  0650.000
         LFBR      B0,*T.MPXBR+3W,X1 LOAD THE BASE REGS        ENBH-35  0651.000
         LW        R1,T.REGP,X1    GET THE GPR STACK POINTER   ENBH-35  0652.000
         LF        R2,T.R2,X1      LOAD GPR'S 2 TO 7           ENBH-35  0653.000
         LPSD      T.PSD1,X1       HANDOFF TO SYSINIT          ENBH-35  0654.000
*IGO     BU        *C.REGS         GO TO SYSINIT FOR INITIALIZATION     0655.000
*                                                               EMST-35 0656.000
*        COMMON SETUP ROUTINES                                  EMST-35 0657.000
*                                                               EMST-35 0658.000
SETUP1   ADMW      R2,BIAS-MTB     ADD BIAS TO ABSOLUTIZE LD PT EMST-35 0659.000
         STW       R2,LOADPT-MTB   SAVE LOAD POINT              EMST-35 0660.000
         SBR       R2,1            FLAG FOR DATA READ          ENBH-35  0661.000
SETUP2   ABR       R3,31           ROUND UP TO NEAREST HALFWORD EMST-35 0662.000
*        SRL       R3,1            CONVERT TO HW COUNT EMST-35 ENBH-35  0663.000
         LW        R7,CBLKNUM-MTB  GET CURRENT BLOCK NUMBER     EMST-35 0664.000
         ZMW       COMPCKSM-MTB    ZERO CHECKSUM ACCUMULATOR    EMST-35 0665.000
         SRL       R3,1            CONVERT TO HW COUNT EMST-35 ENBH-35  0666.000
         TRSW      R0              GO BACK TO CALLER            EMST-35 0667.000
         SPACE                                                          0668.000
FL.CONST DATAW     C'FLOP'                                              0669.000
TP.CONST DATAW     C'TAPE'                                              0670.000
         PAGE                                                           0671.000
*                                                              ENBH-35  0672.000
*                  DATARD - READS BLOCK OF DATA & LOADS IN MEMOENBH-35  0673.000
*                                                              ENBH-35  0674.000
*                    ENTRY:                                    ENBH-35  0675.000
*                      R2 - LOAD POINTER                       ENBH-35  0676.000
*                      R3 - HALFWORD COUNT                     ENBH-35  0677.000
*                    EXIT:                                     ENBH-35  0678.000
*                      COMPUTED CHECKSUM IN COMPCKSM           ENBH-35  0679.000
*                          AND IN R6                   EMST-35 ENBH-35  0680.000
*        SPACE                                                 ENBH-35  0681.000
*ATARD   EQU       $                                           ENBH-35  0682.000
*        TRR       R0,R5            SAVE RETURN REGISTER       ENBH-35  0683.000
*        TRN       R3,R3            NEGATE # HALFWORDS OF DATA ENBH-35  0684.000
*R1      EQU       $                READ 192W AT A TIME        ENBH-35  0685.000
*        BL        READBL-MTB FETCH NEXT BLOCK OF DATA TO MTBUFENBH-35  0686.000
*        LI        R1,-384H         SETUP LOOP COUNTER         ENBH-35  0687.000
*R2      EQU       $                                           ENBH-35  0688.000
*        LH        R6,MTBUF+384H,R1 GET NEXT HWORD OF DATA     ENBH-35  0689.000
*        ARMW      R6,COMPCKSM-MTB  ADD TO CHECKSUM ACCUMULATORENBH-35  0690.000
*        STH       R6,0,R2          STORE HALFWORD IN MEMORY   ENBH-35  0691.000
*        ADI       R2,1H            INCREMENT LOAD POINTER     ENBH-35  0692.000
*        BIB       R3,$+2W-MTB INCR HW CNT-IF NOT DONE,SKIP    ENBH-35  0693.000
*        BU        DRXIT-MTB        ..ALL DONE - EXIT  EMST-35 ENBH-35  0694.000
*        BU        COMXIT-MTB       ..ALL DONE - EXIT  EMST-35 ENBH-35  0695.000
*        BIH       R1,DR2-MTB       IF NOT DONE, GET NEXT HWORDENBH-35  0696.000
*        BU        DR1-MTB          ELSE SETUP TO READ NEXT BLKENBH-35  0697.000
*DRXIT    EQU       $                DATA ALL LOADED   EMST-35 ENBH-35  0698.000
*        TRR       R5,R0            RESTORE RETURN REG EMST-35 ENBH-35  0699.000
*        TRSW      R0               RETURN             EMST-35 ENBH-35  0700.000
*        PAGE                                                  ENBH-35  0701.000
*                                                              ENBH-35  0702.000
*                  RELOCRD - READ & PROCESS RELOCATION MATRIX  ENBH-35  0703.000
*                                                              ENBH-35  0704.000
*                    ENTRY:                                    ENBH-35  0705.000
*                      R2 - LOAD POINTER                       ENBH-35  0706.000
*                      R3 - HALFWORD COUNT OF RELOCATION DATA  ENBH-35  0707.000
*                    EXIT:                                     ENBH-35  0708.000
*                      COMPUTED CHECKSUM IN COMPCKSM           ENBH-35  0709.000
*                                                              ENBH-35  0710.000
*        SPACE                                                 ENBH-35  0711.000
*ELOCRD  EQU       $                                           ENBH-35  0712.000
*        TRR       R0,R5            SAVE RETURN REGISTER       ENBH-35  0713.000
*        TRN       R3,R3            NEGATE # HWORDS OF RELOC   ENBH-35  0714.000
*        LW        R4,LOADPT-MTB    SET R4 = RELOCATION BIAS   ENBH-35  0715.000
*EL1     EQU       $                                           ENBH-35  0716.000
*        BL        READBL-MTB       RD NXT REL BLK INTO MTBUF  ENBH-35  0717.000
*        LI        R1,-384H         SETUP LOOP COUNTER         ENBH-35  0718.000
*EL2     EQU       $                                           ENBH-35  0719.000
*        LI        R7,-16           SETUP FOR 16 BITS          ENBH-35  0720.000
*        LH        R6,MTBUF+384H,R1 GET NEXT HW OF RELOC MATRIXENBH-35  0721.000
*        ARMW      R6,COMPCKSM-MTB  ADD TO CHECKSUM ACCUMULATORENBH-35  0722.000
*EL3     EQU       $                                           ENBH-35  0723.000
*        TBR       R6,16            BIT SET?                   ENBH-35  0724.000
*        BNS       $+2W-MTB        NO - SKIP NEXT INSTRUCTION  ENBH-35  0725.000
*        ARMW      R4,0,R2         ADD BIAS TO MEMORY LOCATION ENBH-35  0726.000
*        ADI       R2,1W           INCREMENT LOAD POINTER      ENBH-35  0727.000
*        SLL       R6,1            SHIFT RELOC WORD 1 BIT LEFT ENBH-35  0728.000
*        BIB       R7,REL3-MTB     IF NOT DONE, TEST NEXT BIT  ENBH-35  0729.000
*        BIB       R3,$+2W-MTB     INC HW CNT-IF NOT DONE,SKIP ENBH-35  0730.000
*        BU        RELXIT-MTB      ..ALL DONE - EXIT   EMST-35 ENBH-35  0731.000
*        BU        COMXIT-MTB      ..ALL DONE - EXIT   EMST-35 ENBH-35  0732.000
*        BIH       R1,REL2-MTB     IF NOT DONE, GET NEXT HWORD ENBH-35  0733.000
*        BU        REL1-MTB        ELSE READ NXT BLK OF RELOC  ENBH-35  0734.000
*RELXIT   EQU       $                                  EMST-35 ENBH-35  0735.000
*        TRR       R5,R0           RESTORE RETURN REG  EMST-35 ENBH-35  0736.000
*        TRSW      R0              RETURN              EMST-35 ENBH-35  0737.000
*        SPACE                                                 ENBH-35  0738.000
*                                                              ENBH-35  0739.000
*        COMMON EXIT FROM READ SUBROUTINES             EMST-35 ENBH-35  0740.000
*                                                              ENBH-35  0741.000
*OMXIT   LW        R6,COMPCKSM-MTB GET COMPUTED CHECKSUEMST-35 ENBH-35  0742.000
*        TRR       R5,R0           RESTORE RETURN REGISEMST-35 ENBH-35  0743.000
*        TRSW      R0              RETURN              EMST-35 ENBH-35  0744.000
         PAGE                                                           0745.000
*                                                              ENBH-35  0746.000
*        COMMON READ SUBROUTINE FOR DATA AND RELOCATION MATRIX ENBH-35  0747.000
*                                                              ENBH-35  0748.000
*        INPUTS:   R2 = LOAD POINTER                           ENBH-35  0749.000
*                  R3 = HALFWORD COUNT                         ENBH-35  0750.000
*        OUTPUT:   COMPUTED CHECKSUM IN COMPCKSM               ENBH-35  0751.000
*                  AND IN R6                                   ENBH-35  0752.000
*                                                              ENBH-35  0753.000
COMRD    CEQU      $                                           ENBH-35  0754.000
         TRR       R0,R5           SAVE RETURN ADDR            ENBH-35  0755.000
         TRN       R3,R3           NEGATE # HW EXPECTED        ENBH-35  0756.000
         LW        R4,LOADPT-MTB   SET R4=RELOC BIAS           ENBH-35  0757.000
RD1      CEQU      $                                           ENBH-35  0758.000
         BL        READBL-MTB      READ BLOCK INTO MTBUF       ENBH-35  0759.000
         LI        R1,-384H        LOOP COUNTER (192 W)        ENBH-35  0760.000
RD2      CEQU      $                                           ENBH-35  0761.000
         LH        R6,MTBUF+384H,R1 GET HW FROM BUFFER         ENBH-35  0762.000
         ARMW      R6,COMPCKSM-MTB  ADD TO CHECKSUM            ENBH-35  0763.000
         TBR       R2,1            IS THIS A DATA READ?        ENBH-35  0764.000
         BNS       RELRD-MTB       RD & PROC RELOC MATRIX      ENBH-35  0765.000
DATRD    STH       R6,0,R2         STORE HW IN MEMORY          ENBH-35  0766.000
         ADI       R2,1H           INCREMENT LOAD PTR          ENBH-35  0767.000
         BU        COMRD2-MTB      JOIN COMMON CODE            ENBH-35  0768.000
RELRD    CEQU      $                                           ENBH-35  0769.000
         LI        R7,-16          SETUP FOR 16 BITS           ENBH-35  0770.000
RELRD2   CEQU      $                                           ENBH-35  0771.000
         TBR       R6,16           IS BIT 16 SET?              ENBH-35  0772.000
         SLL       R6,1            SHIFT FOR NEXT LOOP         ENBH-35  0773.000
         BNS       SKIPADD-MTB     NO, DON'T ADD BIAS          ENBH-35  0774.000
         ARMW      R4,0,R2         ADD BIAS TO MEMORY LOC      ENBH-35  0775.000
SKIPADD  ADI       R2,1W           INCREMENT WORD COUNT        ENBH-35  0776.000
         BIB       R7,RELRD2-MTB   TEST NEXT BIT IN HW         ENBH-35  0777.000
COMRD2   CEQU      $                                           ENBH-35  0778.000
         BIB       R3,NEXTHW-MTB   INCR HW COUNT               ENBH-35  0779.000
         LW        R6,COMPCKSM-MTB EXITING - GET CKSUM         ENBH-35  0780.000
         TRR       R5,R0           EXITING - GET RET ADDR      ENBH-35  0781.000
         TRSW      R0              GO BACK TO CALLER           ENBH-35  0782.000
NEXTHW   BIH       R1,RD2-MTB      GET ANOTHER HW              ENBH-35  0783.000
         BU        RD1-MTB         GET ANOTHER BLOCK           ENBH-35  0784.000
*                                                                       0785.000
*        READBL - READ NEXT BLOCK INTO MT BUFFER                        0786.000
*                                                                       0787.000
         SPACE                                                          0788.000
READBL   EQU       $                                                    0789.000
         ABM       31,CBLKNUM-MTB       INCREMENT CURRENT BLOCK NUMBER  0790.000
*         TBM       EORFFLG,CLASS-MTB    F CLASS?               EMST-35 0791.000
*         BCT       SET,READBLF-MTB      IF SO ... READ VIA XIO EMST-35 0792.000
*MTH      EQU       $                    MAG TAPE HANDLER       EMST-35 0793.000
*         LW        R1,MTHTCW-MTB        GET HANDLER TCW        EMST-35 0794.000
*         STW       R1,MTTCW-MTB         STORE IN TCW LOCATION  EMST-35 0795.000
*CDREAD   CD        MT,MTREAD            READ A BLOCK           EMST-35 0796.000
*TDREAD   TD        MT,X'8000'           DONE?                  EMST-35 0797.000
*         BCT       DELAY,TDREAD-MTB     NO - WAIT              EMST-35 0798.000
*         BCT       ACTIVE,TDREAD-MTB    NO - WAIT              EMST-35 0799.000
*         BCT       ANY,RETRY-MTB        ANY ERRORS?  YES - RETREMST-35 0800.000
*         TRSW      R0                   ELSE RETURN            EMST-35 0801.000
         SPACE                                                          0802.000
READBLF  EQU       $                    'F' CLASS READ                  0803.000
         STF       R0,SAVEREG-MTB       SAVE REGS                       0804.000
         TBM       FLP,SDTFLG-MTB       IPL FROM FLOPPY?                0805.000
         BNS       RD.TAPE-MTB          IF NOT ... READ FROM TAPE       0806.000
         LH        R4,SEEKINFO+1H-MTB   FETCH LAST SECTOR ADDR.         0807.000
         ADI       R4,3                 3 SECTOR INCREMENTS (192W)      0808.000
         CAMH      R4,MAXSECT-MTB       IS SECTOR NO. TOO LARGE?        0809.000
         BLE       $+2W-MTB             IF NOT ... CONTINUE             0810.000
*        BL        BTERR1-MTB      ERROR...HALT, R0=ABORT ADDR  EMST-35 0811.000
         BL        ERR.3-MTB       ERROR...HALT                 EMST-35 0812.000
         STH       R4,SEEKINFO+1H-MTB   UPDATE SEEK DATA                0813.000
         LI        R3,-2                TWO RETRY CYCLES                0814.000
RTRY1    LI        R5,RCNT              RETRY 'RCNT' TIMES              0815.000
FLP.LOOP BL        DO.SIO-MTB           READ BLOCK                      0816.000
         BL        CK.STATF-MTB         CHECK STATUS                    0817.000
         BU        $+2W-MTB             IF ERROR ... ATTEMPT TO RETRY   0818.000
         BU        OK.TOGO-MTB          READ SUCCESSFUL ... RETURN      0819.000
         BIB       R5,FLP.LOOP-MTB      RETRY 'RCNT' TIMES              0820.000
         BIB       R3,$+2W-MTB          HAVE WE REZEROED?               0821.000
*        BL        BTERR1-MTB      ERROR...HALT, R0=ABORT ADDR  EMST-35 0822.000
         BL        ERR.3-MTB       ERROR...HALT, R0=ABORT ADDR  EMST-35 0823.000
         LA        R5,IOCD.ZR-MTB       FETCH ADDR. OF REZERO IOCD      0824.000
         STW       R5,IOCLA             STORE IT IN CONTROL BLOCK       0825.000
         BL        DO.SIO-MTB           REZERO HEADS                    0826.000
         BL        CK.STATF-MTB         CHECK STATUS                    0827.000
*        BL        BTERR1-MTB      ERROR...HALT, R0=ABORT ADDR  EMST-35 0828.000
         BL        ERR.3-MTB       ERROR...HALT, R0=ABORT ADDR  EMST-35 0829.000
         LA        R5,IOCD.SK-MTB       FETCH ADDR OF SEEK CD           0830.000
         STW       R5,IOCLA             RESTORE IT IN CONTROL BLOCK     0831.000
         BU        RTRY1-MTB            RETRY ONE MORE CYCLE            0832.000
*                                                                       0833.000
RD.TAPE  LI        R5,RCNT              LOAD RETRY COUNT                0834.000
         BL        DO.SIO-MTB           READ BLOCK                      0835.000
TAP.LOOP BL        CK.STATF-MTB         CHECK STATUS                    0836.000
         BU        $+2W-MTB             ERROR ... ATTEMPT TO RETRY      0837.000
         BU        OK.TOGO-MTB          SUCCESSFUL READ ... RETURN      0838.000
         LA        R7,IOCD.BKR-MTB      FETCH BACKRECORD IOCD ADDR      0839.000
         STW       R7,IOCLA             STORE IT IN CONTROL BLOCK       0840.000
         BL        DO.SIO-MTB           BACKSPACE AND READ              0841.000
         LA        R7,IOCD.RD-MTB       FETCH ADDR OF READ IOCD         0842.000
         STW       R7,IOCLA             RESTORE IT IN CONTROL BLOCK     0843.000
         BIB       R5,TAP.LOOP-MTB      RETRY 'RCNT' TIMES              0844.000
OK.TOGO  EQU       $                    NORMAL RETURN SEQUENCE          0845.000
         LF        R0,SAVEREG-MTB       RESTORE REGS                    0846.000
         TRSW      R0                   RETURN TO CALLER                0847.000
*                                                                       0848.000
*        RETRY FOR 'E' CLASS I/O                                        0849.000
*                                                                       0850.000
*         BOUND     1W                                          EMST-35 0851.000
*RETRY    HALT                                                  EMST-35 0852.000
*CDBKSPC  CD        MT,BKSPCREC     BACKSPACE RECORD            EMST-35 0853.000
*TDBKSPC  TD        MT,X'8000'      DONE?                       EMST-35 0854.000
*         BCT       DELAY,TDBKSPC-MTB    NO - WAIT              EMST-35 0855.000
*RETRY1   TD        MT,X'2000'                                  EMST-35 0856.000
*         TBM       13,0            BACKSPACE IN PROGRESS?      EMST-35 0857.000
*         BS        RETRY1-MTB      YES - TEST AGAIN            EMST-35 0858.000
*         TD        MT,X'8000'      DONE?                       EMST-35 0859.000
*         BCF       ANY,MTH-MTB     RE-READ BLOCK IF NO ERROR ONEMST-35 0860.000
*RETRY2   HALT                      ELSE HALT                   EMST-35 0861.000
*         BU        RETRY2-MTB      NO RECOVERY                 EMST-35 0862.000
*SDTEND   EQU       $                    END OF SDT LOADER      EMST-35 0863.000
*         REZ       X'728'+MTB-SDTEND    ZERO FILL TO X'728' FOREMST-35 0864.000
*                                        IOCD                   EMST-35 0865.000
         PAGE                                                           0866.000
*                                                                       0867.000
*        LOCAL BOOTSTRAP STORAGE                                        0868.000
*                                                                       0869.000
         SPACE                                                          0870.000
SDTFLG   DATAB     0               SDT LOAD FLAGS               EMST-35 0871.000
         BOUND     1D                                                   0872.000
TRAN     DATAW     0               TRANSFER ADDRESS                     0873.000
ORGC     DATAW     0               CSECT LOAD ORIGIN + COMMON DELTA     0874.000
SFAC     DATAW     0               START CSECT DATA BLOCK #             0875.000
DBYTEC   DATAW     0               CSECT DATA BYTE COUNT                0876.000
DCHECKC  DATAW     0               CSECT DATA CHECKSUM                  0877.000
SFACR    DATAW     0               START CSECT REL MATRIX BLOCK #       0878.000
RBYTEC   DATAW     0               CSECT REL BYTE COUNT                 0879.000
RCHECKC  DATAW     0               CSECT REL CHECKSUM                   0880.000
ORGD     DATAW     0               DSECT LOAD ORIGIN + COMMON DELTA     0881.000
MTTCW    DATAW     0               MAG TAPE TCW LOCATION                0882.000
SFAD     DATAW     0               START DSECT DATA BLOCK #             0883.000
DBYTED   DATAW     0               DSECT DATA BYTE COUNT                0884.000
DCHECKD  DATAW     0               DSECT DATA CHECKSUM                  0885.000
SFADR    DATAW     0               START DSECT REL MATRIX BLOCK #       0886.000
RBYTED   DATAW     0               DSECT REL BYTE COUNT                 0887.000
RCHECKD  DATAW     0               DSECT REL CHECKSUM                   0888.000
LOADPT   DATAW     0               MEMORY LOAD POINTER                  0889.000
COMPCKSM DATAW     0               CHECKSUM ACCUMULATOR                 0890.000
CBLKNUM  DATAW     0               CURRENT BLOCK NUMBER                 0891.000
*WORDMASK DATAW     X'7FFFC'        WORD MASK                   EMST-35 0892.000
BIAS     DATAW     0               BIAS SUPPLIED IN R3 AT IPL           0893.000
ERR2.MSG DATAD     C'CHECKSUM'                                  EMST-35 0894.000
ERR3.MSG DATAD     C'IO ERROR'                                  EMST-35 0895.000
CH.SA    DATAH     X'1000'         LOG CH & PHYS SUBAD (INSRT)  EMST-35 0896.000
MAXSECT  DATAH     0               MAX START SECT FOR FLOPPY    EMST-35 0897.000
         ORG       MTTCW+X'40'     SI LOC IS 40B FROM TCW               0898.000
MT.ICB   DATAW     $-MTB           ICB POINTS TO ITSELF                 0899.000
         DATAW     0               OLD PSD2                             0900.000
         GEN       1/1,31/A(INT.RET-MTB)   NEW PSD                      0901.000
         DATAW     X'4000'         INTERRUPTS BLOCKED                   0902.000
         DATAW     0,0             REST OF ICB                          0903.000
BOOTEND  EQU       $                                                    0904.000
BOOTLEN  EQU       BOOTEND-MTB     # OF BYTES IN BOOTSTRAP LOADER       0905.000
*                                                                       0906.000
*                  END OF BOOTSTRAP                                     0907.000
*                                                                       0908.000
BOOTL    DATAW     BOOTLEN         # BYTES IN BOOTSTRAP                 0909.000
         END                                                            0910.000
