Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 1
    Conditional Compiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 2
    UPT Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 4
    Register Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 6
    CROM Field Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 7
        CROM Field - ALU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 8
            CROM Field - ALU, Subfield - ALU SP FUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 10
            CROM Field - ALU, Subfield - ALU OP 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 11
            CROM Field - ALU, Subfield - ALU SHIFT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 12
            CROM Field - ALU, Subfield - ALU OP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 14
            CROM Field - ALU, Subfield - ALU 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 15
        CROM Field - R SEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 16
            CROM Field - R SEL, Subfield - R SEL TYP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 18
        CROM Field - B SEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 19
            CROM Field - B SEL, Subfield - B SEL TYP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 21
        CROM Field - CARRY OP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 23
        CROM Field - STATUS OP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 25
        CROM Field - U STATUS ENAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 28
        CROM Field - M STATUS ENAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 29
        CROM Field - ALU_Y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 30
        CROM Field - U PROG OP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 31
        CROM Field - TEST SEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 33
        CROM Field - J. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 35
        CROM Field - MAP SEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 41
        CROM Field - MEM OP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 42
        CROM Field - Y SEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 43
    Instruction Macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 45
    Console Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 57
         A - Console Address Break Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 70
         B - Console Bootstrap Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 72
         C - Console Continue Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 73
         D - Console Deposit Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 74
         E - Console Examine Memory Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 76
        DI - Console Deposit I/O Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 78
        EI - Console Examine IO Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 79
        DR - Console Deposit Ramfi1e Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 80
        ER - Console Examine Ramfile Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 81
        DV - Console Deposit Virtual Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 82
        EV - Console Examine Virtual Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 84
         H - Console Halt Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 85
         I - Console Initialize Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 86
         R - Console Repeat Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 88
         S - Console Start Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 89
        SH - Console Shut Down Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 90
        SI - Console Single Instruction Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 91
        SM - Console Start u-code Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 93
         T - Console Self Test Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 94
        ZM - Console Zero memory Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 96
    Write Halt Status Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Page: 98
    Instruction fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 100
    Effective Address Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 103
    Operand Fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 105
    User Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 109
        Byte Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 113
        Floating Point Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 117
    Full Word Data Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 119
        Fixed Point Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 121
        Double Precision Fixed Point Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 124
        Shift and Rotate Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 126
        Program Control Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 130
        Stack Operation Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 135
        Arithmetic Testing Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 140
        Boolean Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 143
        Half Word Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 145
        Logical Testing and Modification Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 148
        Extend Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 150
        CIS Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 151
        IO Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 156
    Executive Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 157
        Arithmetic Processor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 158
            APRID - APR Identification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 159
            WRAPR - Write APR Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 161
            RDAPR - Read APR Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 164
            SZAPR (CONSZ APR) - Skip on masked APR conditions all zero. . . . . . . . . . . . . . . . . . . . . . . . . . Page: 165
            SNAPR (CONSO APR) - Skip on any masked APR conditions non-zero. . . . . . . . . . . . . . . . . . . . . . . . Page: 166
        PI System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 168
            WRPI - Write PI Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 169
            RDPI - Read PI Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 172
            SZPI - Skip on masked PI conditions all zero. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 174
            SNPI - Skip on any masked PI conditions non-zero. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 175
        Pager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 176
            WREBR - Write Executive Base Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 177
            RDEBR - Read the Executive Base Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 179
            WRUBR (DATAO PAG) - Write User Base Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 181
            RDUBR - Read User Base Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 183
            WRSPB - Write the SPT base address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 184
            RDSPB - Read SPT base address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 185
            WRCSTM - Write CST Mask register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 186
            RDCSTM - Read CST Mask register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 188
            WRPUR - Write process use register (CSTDATA). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 189
            RDPUR - Read process use register (CSTDATA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 190
            WRCSB - Write Core status table base address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 191
            RDCSB - Read Core status table base address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 192
            CLRPT - Clear Page Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 193
        Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 194
            RDTIM - Read time base register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 195
            WRTIM - Write time base register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 197
            RDINT - Read Interval Timer register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 198
            WRINT - Write Interval Timer register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 199
        Halt Status Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 200
            WRHSB - Write Halt Status Block Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 201
            RDHSB - Read Halt Status Block Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 203
        PCI Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 204
            RDTTY - Read TTY Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 205
        External IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 216
    Trap Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 219
    Interrupt Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 221
    Memory Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 226
        Store Instruction Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 227
        TOPS20 Page Refill. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 231
        TOPS10 Page Refill. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 234
        Unmapped Memory Read. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 236
        Memory Read Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 239
        Unmapped Memory Write Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 241
        Memory Write Routine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 243
        Page Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 245
    Dispatch Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 248
        Dispatch Table Field Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 249
        Dispatch Table Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 250
        Opcodes 000 - 037 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 252
        Opcodes 040 - 077 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 253
        Opcodes 100 - 137 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 255
        Opcodes 140 - 177 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 257
        Opcodes 200 - 237 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 259
        Opcodes 240 - 277 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 261
        Opcodes 300 - 337 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 262
        Opcodes 340 - 377 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 264
        Opcodes 400 - 437 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 265
        Opcodes 440 - 477 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 267
        Opcodes 500 - 537 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 269
        Opcodes 540 - 577 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 270
        Opcodes 600 - 637 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 272
        Opcodes 640 - 677 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 274
        Opcodes 700 - 737 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 275
        Opcodes 740 - 777 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page: 277
|  -1|1|//
|  -1|2|// KT-20 Microcode originally created by Digital Equipment Corporation (DEC).
|  -1|3|//  This code was archived (with no copyright notice attached) on:
|  -1|4|//  <http://bitsavers.org/pdf/dec/pdp10/KT20_Minnow/minnow_uCodeSrc.pdf>
|  -1|5|//
|  -1|6|// Microcode changes to the original are Copyright 2009 by Rob Doyle
|  -1|7|//
|  -1|8|
|  -1|9|.DEBUG/0
|  -1|10|
|  -1|11|.TITLE "KT-20 MICROCODE"
|  -1|12|.TOC "Conditional Compiles"
|  -1|13|
|  -1|14|;
|  -1|15|;   DEBUG2   - UCODE ERR
|  -1|16|;   DEBUG3   - POOP FLAG
|  -1|17|;   DEBUGPF  - Debug Page Faults
|  -1|18|;   DEBUGTTY - Replaces RDIOB instruction with RDTTY instruction (73510)
|  -1|19|;   FAST     -
|  -1|20|;   FTADRB   - installs address breakpoint
|  -1|21|;   FTAGEPF  - Page Fault Aging?
|  -1|22|;   FTBB     -
|  -1|23|;   FTCKBP   - Check Bus Parity
|  -1|24|;   FTCRC    - Adds CRC Calculation
|  -1|25|;   FTCTLR   - Adds ^R Console Command
|  -1|26|;   FTDDTM   - DDT Mode
|  -1|27|;   FTFCSL   - Engineering Console Commands
|  -1|28|;   FTFP     - Adds Floating Point
|  -1|29|;   FTDIAG   - Diagnostics
|  -1|30|;   FTLDIAG  - Long Diagnosics
|  -1|31|;   FTMBZ    - Enforces "Must be zero" in instructions.
|  -1|32|;   FTPFRMER - Something to do with page fail and memory errors
|  -1|33|;   FTTTYF   -
|  -1|34|;   FTTTYR   - TTY Line Reset when ??? occurs
|  -1|35|;   FTTTYSB  - TTY Something about stop on buffer
|  -1|36|;   FTSM     - Add SM Engineering Console Command
|  -1|37|;   FTSMER   - Something to do with Memory Errors
|  -1|38|;   FTZM     - Add ZM Engineering Console Command
|  -1|39|;   FT7PI    - MUUO if try to set PI to 1
|  -1|40|;   SILLY    -
|  -1|41|;   SH_N_TL  - Show and Tell
|  -1|42|;
|  -1|43|; Instruction Set Options
|  -1|44|;   FT10PAG  - Include TOP10 Instructions
|  -1|45|;   FT20PAG  - Include TOP20 Instructions
|  -1|46|;   FTEXTEND - Include Extend Instructions
|  -1|47|;   FTBYTE   - Include Byte Instructions
|  -1|48|;   FTCIS    - Include CIS Instructions
|  -1|49|;
|  -1|50|
|  -1|51|.SET/DEBUG2 = 1
|  -1|52|.SET/DEBUG3 = 1
|  -1|53|.SET/DEBUGPF = 1
|  -1|54|.SET/DEBUGTTY = 1
|  -1|55|.SET/FAST = 1
|  -1|56|.SET/FTADRB = 1
|  -1|57|.SET/FTAGEPF = 1
|  -1|58|.SET/FTBB = 1
|  -1|59|.SET/FTCKBP = 1
|  -1|60|.SET/FTCRC = 0
|  -1|61|.SET/FTCTLR = 1
|  -1|62|.SET/FTDDTM = 1
|  -1|63|.SET/FTFCSL = 1
|  -1|64|.SET/FTFP = 1
|  -1|65|.SET/FTDIAG = 1
|  -1|66|.SET/FTLDIAG = 1
|  -1|67|.SET/FTMBZ = 1
|  -1|68|.SET/FTPFRMER = 1
|  -1|69|.SET/FTTTYF = 1
|  -1|70|.SET/FTTTYR = 1
|  -1|71|.SET/FTTTYSB = 1
|  -1|72|.SET/FTSM = 1
|  -1|73|.SET/FTSMER = 1
|  -1|74|.SET/FTZM = 1
|  -1|75|.SET/FT7PI = 1
|  -1|76|.SET/SILLY = 1
|  -1|77|.SET/SH_N_TL = 1
|  -1|78|.SET/FT10PAG = 1
|  -1|79|.SET/FT20PAG = 1
|  -1|80|.SET/FTEXTEND = 1
|  -1|81|.SET/FTBYTE = 1
|  -1|82|.SET/FTCIS = 1
|  -1|83|
|  -1|84|.TOC "UPT Format"
|  -1|85|
|  -1|86|;                    TOPS10                                        TOPS20
|  -1|87|;       +-----------------------------------+      +-----------------------------------+
|  -1|88|;     0 | Reserved                          |      | User pg 0,,User pg 1              |
|  -1|89|;   377 |                                   |      | User pg 776,,User pg 777          |
|  -1|90|;       +-----------------------------------+      +-----------------------------------+
|  -1|91|;   400 | Reserved                          |      | Exec pg 340,,Exec pg 341          |
|  -1|92|;   417 |                                   |      | Exec pg 376,,Exec pg 377          |
|  -1|93|;       +-----------------------------------+      +-----------------------------------+
|  -1|94|;   420 | Adr of LUUO block                 |
|  -1|95|;       +-----------------------------------+
|  -1|96|;   421 | User arith overflow trap ins      |
|  -1|97|;       +-----------------------------------+
|  -1|98|;   422 | User stack overflow trap ins      |
|  -1|99|;       +-----------------------------------+
|  -1|100|;   423 | User trap 3 ins                   |
|  -1|101|;       +--------------------+--------------+
|  -1|102|;   424 | MUUO flags         | MUUO op code |
|  -1|103|;       +--------------------+--------------+
|  -1|104|;   425 | MUUO old PC                       |
|  -1|105|;       +-----------------------------------+
|  -1|106|;   426 | E of MUUO                         |
|  -1|107|;       +-----------------------------------+
|  -1|108|;   427 | MUUO process context word         |
|  -1|109|;       +-----------------------------------+
|  -1|110|;   430 | Exec no trap MUUO new PC          |
|  -1|111|;       +-----------------------------------+
|  -1|112|;   430 | Reserved                          |
|  -1|113|;   433 |                                   |
|  -1|114|;       +-----------------------------------+
|  -1|115|;   434 | User no trap MUUO new PC          |
|  -1|116|;       +-----------------------------------+
|  -1|117|;   435 | Reserved                          |
|  -1|118|;   477 |                                   |
|  -1|119|;       +-----------------------------------+
|  -1|120|;   500 | Page fail word                    |
|  -1|121|;       +-----------------------------------+      +-----------------------------------+
|  -1|122|;   501 | Page fail flags                   |      | Page fail old flags,,PC           |
|  -1|123|;       +-----------------------------------+      +-----------------------------------+
|  -1|124|;   502 | Page fail old PC                  |      | Page fail new PC                  |
|  -1|125|;       +-----------------------------------+      +-----------------------------------+
|  -1|126|;   503 | Page fail new PC                  |      | Reserved                          |
|  -1|127|;       +-----------------------------------+      +-----------------------------------+
|  -1|128|;   504 | Reserved                          |
|  -1|129|;   537 |                                   |
|  -1|130|;       +-----------------------------------+
|  -1|131|;   540 | User section 0                    |
|  -1|132|;   500 |   ...                             |
|  -1|133|;   577 | User section 37                   |
|  -1|134|;       +-----------------------------------+
|  -1|135|;   600 | Reserved                          |
|  -1|136|;   777 |                                   |
|  -1|137|;       +-----------------------------------+
|  -1|138|
|  -1|139|.TOC "Register Usage"
|  -1|140|
|  -1|141|;               EXT     INT
|  -1|142|;     Reg 0     W1      PC FLAGS
|  -1|143|;     Reg 1     W2      AC-OP+1
|  -1|144|;     Reg 2     W3      MEM-OP+1
|  -1|145|;     Reg 3     W4      EPT
|  -1|146|;     Reg 4     W5      UPT
|  -1|147|;     Reg 5     W6      SPT
|  -1|148|;     Reg 6     IR      PMA
|  -1|149|;     Reg 7     PC      TIME
|  -1|150|;     Reg 10    E       PI REG(loads 2914 status reg)
|  -1|151|;     Reg 11    MB      BIT4(first part done)
|  -1|152|;     Reg 12    AC-OP   BIT12
|  -1|153|;     Reg 13    MEM-OP  BIT17
|  -1|154|;     Reg 14    PXCT    CO!C1
|  -1|155|;     Reg 15    K 77    K 7777.-1
|  -1|156|;     Reg 16    K 777   K 407777.0
|  -1|157|;     Reg 17    K -1.0  K -1
|  -1|158|
|  -1|159|.UCODE
                                                                             |  -1|160|.LTOR                                   ;Assume MIN6 CRM 00 to be leftmost bit.
                                                                             |  -1|161|
                                                                             |  -1|162|.TOC 1, "CROM Field Definitions"
                                                                             |  -1|163|.TOC 2, "CROM Field - ALU"
                                                                             |  -1|164|
                                                                             |  -1|165|;
                                                                             |  -1|166|; ALU Functons
                                                                             |  -1|167|;
                                                                             |  -1|168|
                                                                             |  -1|169|ALU/=<0:8>                       	;AM2903 OP[8:0]
                                                                             |  -1|170|
                                                                             |  -1|171|;
                                                                             |  -1|172|; ALU Special Functions
                                                                             |  -1|173|;
                                                                             |  -1|174|
                                                                             |  -1|175|.TOC 3, "CROM Field - ALU, Subfield - ALU SP FUN"
                                                                             |  -1|176|ALU SP FUN/=<0:8>                       ;AM2903 OP[8:0]
                                                                             |  -1|177|        MUL=0000                        ;or 040, unsigned multiply
                                                                             |  -1|178|        TCM=0100                        ;or 140, Twos complement multiply
                                                                             |  -1|179|        S+1+C_B=0200                    ;increment by one or two
                                                                             |  -1|180|        SM=0240                         ;sign/magnitude twos complement
                                                                             |  -1|181|        TCM COR=0300                    ;or 340, twos complement multiply correction
                                                                             |  -1|182|        SLN=0400                        ;or 440, single length normalize
                                                                             |  -1|183|        DLN=0500                        ;or 540, double length normalize and first divide op
                                                                             |  -1|184|        TCDIV=0600                      ;or 640, twos complement divide
                                                                             |  -1|185|        TCDIV COR=0700                  ;or 740, twos complement divide correction and remainder
                                                                             |  -1|186|
                                                                             |  -1|187|;
                                                                             |  -1|188|; ALU OP 0
                                                                             |  -1|189|;
                                                                             |  -1|190|
                                                                             |  -1|191|.TOC 3, "CROM Field - ALU, Subfield - ALU OP 0"
                                                                             |  -1|192|ALU OP 0/=<0>                           ;AM2903 OP[8]
                                                                             |  -1|193|
                                                                             |  -1|194|;
                                                                             |  -1|195|; ALU Shift (and Destination) Functions
                                                                             |  -1|196|;
                                                                             |  -1|197|
                                                                             |  -1|198|.TOC 3, "CROM Field - ALU, Subfield - ALU SHIFT"
                                                                             |  -1|199|ALU SHIFT/=<0:3>,.DEFAULT=014           ;AM2903 OP[8:5] - This controls the destination (w/shift)
                                                                             |  -1|200|        ASR F_B                         "ALU SHIFT/000,ALU_Y/YES"                          ;ASR F_Y Q_Q WRITE=0
                                                                             |  -1|201|        LRS F_B                         "ALU SHIFT/001,ALU_Y/YES"                          ;LRS R_Y Q_Q WRITE=1
                                                                             |  -1|202|        F_LRS Y_B                       "ALU SHIFT/001,ALU_Y/NO"                           ;LRS R_Y Q_Q WRITE=1
                                                                             |  -1|203|        (MC F)RS_[]                     "MC_SION SIO0_QION,LRS F_B,B SEL/@1"               ;
                                                                             |  -1|204|        (MN F)RS_[]                     "MN_SION SIO0_QION,LRS F_B,B SEL/@1"               ;
                                                                             |  -1|205|        ASRC_B                          "ALU SHIFT/002,ALU_Y/YES"                          ;F3_Y3;Y2 FQ/2_BQ
                                                                             |  -1|206|        LSRC_B                          "ALU SHIFT/003,ALU_Y/YES"                          ;LRS F_Y LRS Q_Q WRITE=3
                                                                             |  -1|207|        Y_[] QRS_Q                      "ALU SHIFT/003,ALU_Y/NO,B SEL/@1"                  ;LRS F_LRS Q_Q WRITE=3
                                                                             |  -1|208|        F_B                             "ALU SHIFT/004,ALU_Y/YES"                          ;F_Y Q_Q WRITE=4
                                                                             |  -1|209|        Y_B                             "ALU SHIFT/004,ALU_Y/NO"                           ;F_Y Q_Q WRITE=4
                                                                             |  -1|210|        F_Y QRS_Q                       "ALU SHIFT/005,ALU_Y/YES"                          ;F_Y LRS Q_Q=5
                                                                             |  -1|211|        F_Q                             "ALU SHIFT/006,ALU_Y/NO"                           ;F_Y F_Q=6
                                                                             |  -1|212|        F_Q_Y                           "ALU SHIFT/006,ALU_Y/YES"                          ;F_Y F_Q=6
                                                                             |  -1|213|        F_Q_B                           "ALU SHIFT/007,ALU_Y/YES"                          ;F_Y F_Q WRITE=7
                                                                             |  -1|214|        Y_B F_Q                         "ALU SHIFT/007,ALU_Y/NO"                           ;F_Y F_Q WRITE=7
                                                                             |  -1|215|        ALS F_[]                        "ALU SHIFT/010,ALU_Y/YES,#0_SIO0 #0_QIO0,B SEL/@1" ;ALS F_Y
                                                                             |  -1|216|        LLS F_B                         "ALU SHIFT/011,ALU_Y/YES"                          ;
                                                                             |  -1|217|        F_LSZ Y_[]                      "ALU SHIFT/011,ALU_Y/NO,#0_SIO0 #0_QIO0,B SEL/@1"  ;LLS F_Y
                                                                             |  -1|218|        ALSC_B                          "ALU SHIFT/012,ALU_Y/YES"                          ;ALS F_Y LLS Q_Q WRITE=012
                                                                             |  -1|219|        LLSC_B                          "ALU SHIFT/013,ALU_Y/YES"                          ;LLS F_Y LLS Q_Q WRITE=013
                                                                             |  -1|220|        Y_[] QLS_Q                      "ALU SHIFT/013,ALU_Y/NO,B SEL/@1"                  ;LLS F_Y LLS Q_Q WRITE=013
                                                                             |  -1|221|        F_Y                             "ALU SHIFT/014,ALU_Y/YES"                          ;F_Y Q_Q=014
                                                                             |  -1|222|        QLS_Q                           "ALU SHIFT/015"                                    ;F_Y LLS Q_Q=015
                                                                             |  -1|223|        F_Y QLS_Q                       "ALU SHIFT/015,ALU_Y/YES"                          ;F_Y LLS Q_Q=015
                                                                             |  -1|224|                                        ;SIO0_Y Q_Q WRITE=016              
                                                                             |  -1|225|                                        ;F_Y    Q_Q WRITE=017
                                                                             |  -1|226|;
                                                                             |  -1|227|; ALU Operations
                                                                             |  -1|228|;
                                                                             |  -1|229|
                                                                             |  -1|230|
                                                                             |  -1|231|.TOC 3, "CROM Field - ALU, Subfield - ALU OP"
                                                                             |  -1|232|ALU OP/=<4:7>,.DEFAULT=010              ;AM2903 OP[4:1]
                                                                             |  -1|233|        S-R-1+C=001
                                                                             |  -1|234|        R-S-1+C=002
                                                                             |  -1|235|        R+S+C=003
                                                                             |  -1|236|        S+C=004
                                                                             |  -1|237|        SBAR+C=005
                                                                             |  -1|238|        R+C=006
                                                                             |  -1|239|        RBAR+C=007
                                                                             |  -1|240|        LOW=010
                                                                             |  -1|241|        RBAR.AND.S=011
                                                                             |  -1|242|        R.XNOR.S=012
                                                                             |  -1|243|        R.XOR.S=013
                                                                             |  -1|244|        R.AND.S=014
                                                                             |  -1|245|        R.NOR.S=015
                                                                             |  -1|246|        R.NAND.S=016
                                                                             |  -1|247|        R.OR.S=017
                                                                             |  -1|248|
                                                                             |  -1|249|;.TOC 3, "CROM Field - ALU, Subfield - ALU OP"
                                                                             |  -1|250|;ALU OP/=<4:8>,.DEFAULT=020              ;AM2903 OP[4:1]
                                                                             |  -1|251|;        HIGH=001
                                                                             |  -1|252|;        S-R-1+C=002
                                                                             |  -1|253|;        R-S-1+C=004
                                                                             |  -1|254|;        R+S+C=006
                                                                             |  -1|255|;        S+C=010
                                                                             |  -1|256|;        SBAR+C=012
                                                                             |  -1|257|;        R+C=015
                                                                             |  -1|258|;        RBAR+C=017
                                                                             |  -1|259|;        LOW=021
                                                                             |  -1|260|;        RBAR.AND.S=022
                                                                             |  -1|261|;        R.XNOR.S=024
                                                                             |  -1|262|;        R.XOR.S=026
                                                                             |  -1|263|;        R.AND.S=030
                                                                             |  -1|264|;        R.NOR.S=032
                                                                             |  -1|265|;        R.NAND.S=034
                                                                             |  -1|266|;        R.OR.S=036
                                                                             |  -1|267|
                                                                             |  -1|268|.TOC 3, "CROM Field - ALU, Subfield - ALU 10"
                                                                             |  -1|269|
                                                                             |  -1|270|;
                                                                             |  -1|271|; ALU OP LSB.  Shared with AM2904 OP[10]
                                                                             |  -1|272|; This selects either B RAM or Q Reg as the S input to the ALU.
                                                                             |  -1|273|;
                                                                             |  -1|274|
                                                                             |  -1|275|ALU 10/=<8:8>,.DEFAULT=<B_S>            ;AM2903 OP[0]
                                                                             |  -1|276|	B_S=0                           ;S source is B RAM
                                                                             |  -1|277|	Q_S=1                           ;S source is Q reg
                                                                             |  -1|278|
                                                                             |  -1|279|.TOC 2, "CROM Field - R SEL"
                                                                             |  -1|280|R SEL/=<9:14>,.DEFAULT=00
                                                                             |  -1|281|        REG-EXT=002
                                                                             |  -1|282|         W1=002
                                                                             |  -1|283|         W2=006
                                                                             |  -1|284|         W3=012
                                                                             |  -1|285|         W4=016
                                                                             |  -1|286|         W5=022
                                                                             |  -1|287|         W6=026
                                                                             |  -1|288|         IR=032
                                                                             |  -1|289|         PC=036
                                                                             |  -1|290|         E=042
                                                                             |  -1|291|         MB=046
                                                                             |  -1|292|         AC-OP=052
                                                                             |  -1|293|         MEM-OP=056
                                                                             |  -1|294|         PXCT=062
                                                                             |  -1|295|         K 77=066
                                                                             |  -1|296|         K 777=072
                                                                             |  -1|297|         K -1.0=076
                                                                             |  -1|298|        REG-INT=003
                                                                             |  -1|299|         PC FLAGS=003
                                                                             |  -1|300|         AC-OP+1=007
                                                                             |  -1|301|         MEM-OP+1=013
                                                                             |  -1|302|         EPT=017
                                                                             |  -1|303|         UPT=023
                                                                             |  -1|304|         SPT=027
                                                                             |  -1|305|         PMA=033
                                                                             |  -1|306|         TIME=037
                                                                             |  -1|307|         PI REG=043
                                                                             |  -1|308|         BIT4=047
                                                                             |  -1|309|         BIT12=053
                                                                             |  -1|310|         BIT17=057
                                                                             |  -1|311|         C0!C1=063
                                                                             |  -1|312|         K 7777.-1=067
                                                                             |  -1|313|         K 407777.0=073
                                                                             |  -1|314|         K -1=077
                                                                             |  -1|315|
                                                                             |  -1|316|.TOC 3, "CROM Field - R SEL, Subfield - R SEL TYP"
                                                                             |  -1|317|
                                                                             |  -1|318|R SEL TYP/=<13:14>                      ;R_SEL[4:5]
                                                                             |  -1|319|        RESERVED=00
                                                                             |  -1|320|	LINE=01
                                                                             |  -1|321|        REG EXT=02
                                                                             |  -1|322|        REG INT=03
                                                                             |  -1|323|        LINE #_[]                       "R SEL TYP/LINE,ALU OP/R+C,ALU 10/Q_S,#0_CO,F_[@1]"
                                                                             |  -1|324|
                                                                             |  -1|325|.TOC 2, "CROM Field - B SEL"
                                                                             |  -1|326|B SEL/=<15:20>,.DEFAULT=00
                                                                             |  -1|327|        REG-EXT=00
                                                                             |  -1|328|         W1=000
                                                                             |  -1|329|         W2=004          
                                                                             |  -1|330|         W3=010
                                                                             |  -1|331|         W4=014
                                                                             |  -1|332|         W5=020
                                                                             |  -1|333|         W6=024
                                                                             |  -1|334|         IR=030
                                                                             |  -1|335|         PC=034
                                                                             |  -1|336|         E=040
                                                                             |  -1|337|         MB=044
                                                                             |  -1|338|         AC-OP=050
                                                                             |  -1|339|         MEM-OP=054
                                                                             |  -1|340|         PXCT=060
                                                                             |  -1|341|         K 77=064
                                                                             |  -1|342|         K 777=070
                                                                             |  -1|343|         K -1.0=074
                                                                             |  -1|344|        REG-EXT-LH=01
                                                                             |  -1|345|         W1 LH=001
                                                                             |  -1|346|         W2 LH=005
                                                                             |  -1|347|         W3 LH=011
                                                                             |  -1|348|         W4 LH=015
                                                                             |  -1|349|         W5 LH=021
                                                                             |  -1|350|         W6 LH=025
                                                                             |  -1|351|         IR LH=031
                                                                             |  -1|352|         PC LH=035
                                                                             |  -1|353|         E LH=041
                                                                             |  -1|354|         MB LH=045
                                                                             |  -1|355|         AC-OP LH=051
                                                                             |  -1|356|         MEM-OP LH=055
                                                                             |  -1|357|         PXCT LH=061
                                                                             |  -1|358|         K 77 LH=065
                                                                             |  -1|359|         K 777 LH=071
                                                                             |  -1|360|         K -1.0 LH=075
                                                                             |  -1|361|        REG-EXT-RH=02
                                                                             |  -1|362|         W1 RH=002
                                                                             |  -1|363|         W2 RH=006
                                                                             |  -1|364|         W3 RH=012
                                                                             |  -1|365|         W4 RH=016
                                                                             |  -1|366|         W5 RH=022
                                                                             |  -1|367|         W6 RH=026
                                                                             |  -1|368|         IR RH=032
                                                                             |  -1|369|         PC RH=036
                                                                             |  -1|370|         E RH=042
                                                                             |  -1|371|         MB RH=046
                                                                             |  -1|372|         AC-OP RH=052
                                                                             |  -1|373|         MEM-OP RH=056
                                                                             |  -1|374|         PXCT RH=062
                                                                             |  -1|375|         K 77 RH=066
                                                                             |  -1|376|         K 777 RH=072
                                                                             |  -1|377|         K -1.0 RH=076
                                                                             |  -1|378|        REG-INT=03
                                                                             |  -1|379|         PC FLAGS=003
                                                                             |  -1|380|         AC-OP+1=007
                                                                             |  -1|381|         MEM-OP+1=013
                                                                             |  -1|382|         EPT=017
                                                                             |  -1|383|         UPT=023
                                                                             |  -1|384|         SPT=027
                                                                             |  -1|385|         PMA=033
                                                                             |  -1|386|         TIME=037
                                                                             |  -1|387|         PI REG=043
                                                                             |  -1|388|         BIT4=047
                                                                             |  -1|389|         BIT12=053
                                                                             |  -1|390|         BIT17=057
                                                                             |  -1|391|         C0!C1=063
                                                                             |  -1|392|         K 7777.-1=067
                                                                             |  -1|393|         K 407777.0=073
                                                                             |  -1|394|         K -1=077
                                                                             |  -1|395|
                                                                             |  -1|396|.TOC 3, "CROM Field - B SEL, Subfield - B SEL TYP"
                                                                             |  -1|397|
                                                                             |  -1|398|B SEL TYP/=<19:20>                      ;B_SEL[4:5]
                                                                             |  -1|399|        REG EXT=00
                                                                             |  -1|400|        REG EXT LH=01
                                                                             |  -1|401|        REG EXT RH=02
                                                                             |  -1|402|        REG INT=03
                                                                             |  -1|403|
                                                                             |  -1|404|        S SEL[]                         "B SEL/@1,ALU 10/B_S"
                                                                             |  -1|405|
                                                                             |  -1|406|.TOC 2, "CROM Field - CARRY OP"
                                                                             |  -1|407|
                                                                             |  -1|408|CARRY OP/=<21:22>,.DEFAULT=0            ;AM2904 OP[12:11]
                                                                             |  -1|409|        #0_CO                           "CARRY OP/00"
                                                                             |  -1|410|        #1_CO                           "CARRY OP/01"
                                                                             |  -1|411|        CX_CO                           "CARRY OP/02"  ;This is Z for ALU SP FUN stuff
                                                                             |  -1|412|
                                                                             |  -1|413|SHARED OP/=<23:28>,.DEFAULT=00
                                                                             |  -1|414|SET FLAG/=<23:28>                       ;with shared op4.5=00
                                                                             |  -1|415|        CLEAR LOCAL                     "SET FLAG/010"
                                                                             |  -1|416|        SET GLOBAL                      "CLEAR LOCAL"
                                                                             |  -1|417|        SET LOCAL                       "SET FLAG/014"
                                                                             |  -1|418|        CLEAR USER                      "SET FLAG/020"
                                                                             |  -1|419|        SET EXEC                        "CLEAR USER"
                                                                             |  -1|420|        SET USER                        "SET FLAG/024"
                                                                             |  -1|421|        CLEAR PAGED                     "SET FLAG/030"
                                                                             |  -1|422|        SET PAGED                       "SET FLAG/034"
                                                                             |  -1|423|        CLEAR RUN                       "SET FLAG/040"
                                                                             |  -1|424|        SET RUN                         "SET FLAG/044"
                                                                             |  -1|425|        CLEAR TOPS20                    "SET FLAG/050"
                                                                             |  -1|426|        SET TOPS20                      "SET FLAG/054"
                                                                             |  -1|427|        CLEAR PXCT                      "SET FLAG/060"
                                                                             |  -1|428|        SET PXCT                        "SET FLAG/064"
                                                                             |  -1|429|        CLEAR TRAP                      "SET FLAG/070"
                                                                             |  -1|430|        SET TRAP                        "SET FLAG/074"
                                                                             |  -1|431|
                                                                             |  -1|432|SHIFT OP/=<23:28>                       ;with shared op4,5=01
                                                                             |  -1|433|                                        ;AM2904 OP[9:6] Shift linkage mux
                                                                             |  -1|434|                                        ;AM2904 OP[10] comes from AM2903 OP[8]
                                                                             |  -1|435|        #0_SION #0_QION                 "SHIFT OP/001,ALU OP 0/0"
                                                                             |  -1|436|        #1_SION #1_QION                 "SHIFT OP/005,ALU OP 0/0"
                                                                             |  -1|437|        #0_SION SIO0_MC MN_QION         "SHIFT OP/011,ALU OP 0/0"
                                                                             |  -1|438|        #1_SION SIO0_QION               "SHIFT OP/015,ALU OP 0/0"
                                                                             |  -1|439|        MC_SION SIO0_QION               "SHIFT OP/021,ALU OP 0/0"
                                                                             |  -1|440|        MN_SION SIO0_QION               "SHIFT OP/025,ALU OP 0/0"
                                                                             |  -1|441|        #0_SION SIO0_QION               "SHIFT OP/031,ALU OP 0/0"
                                                                             |  -1|442|        SIO0_SION QIO0_QION             "SHIFT OP/051,ALU OP 0/0"
                                                                             |  -1|443|        QIO0_SION SIO0_QION             "SHIFT OP/075,ALU OP 0/0"
                                                                             |  -1|444|
                                                                             |  -1|445|        SION_MC #0_SIO0 #0_QIO0         "SHIFT OP/001,ALU OP 0/1"
                                                                             |  -1|446|        #0_SIO0 #0_QIO0                 "SHIFT OP/011,ALU OP 0/1"
                                                                             |  -1|447|        #1_SIO0 #1_QIO0                 "SHIFT OP/015,ALU OP 0/1"
                                                                             |  -1|448|        SION_MC QION_SIO0 #0_QIO0       "SHIFT OP/021,ALU OP 0/1"
                                                                             |  -1|449|        QION_SIO0 #0_QIO0               "SHIFT OP/031,ALU OP 0/1"
                                                                             |  -1|450|        SION_SIO0 QION_QIO0             "SHIFT OP/051,ALU OP 0/1"
                                                                             |  -1|451|        SION_QIO0 QION_SIO0             "SHIFT OP/075,ALU OP 0/1"
                                                                             |  -1|452|
                                                                             |  -1|453|
                                                                             |  -1|454|INT OP/=<23:28>                         ;with shared opt4,5=10 2904 Instruction
                                                                             |  -1|455|        MASTER CLEAR=002
                                                                             |  -1|456|        CLEAR ALL INTS=006
                                                                             |  -1|457|        CLEAR INTS FROM Y-BUS=012
                                                                             |  -1|458|        CLEAR INTS FROM MASK REGISTER=016
                                                                             |  -1|459|        CLEAR INT LAST VECTOR READ=022
                                                                             |  -1|460|        GRANT INTERRUPT                 "INT OP/026"
                                                                             |  -1|461|        #2914 STATUS_Y                  "INT OP/032"
                                                                             |  -1|462|        #2914 MASK_Y                    "INT OP/036"
                                                                             |  -1|463|        #377_2914 MASK                  "INT OP/042"
                                                                             |  -1|464|        Y_2914 STATUS                   "INT OP/046"
                                                                             |  -1|465|        ;BIT CLEAR MASK REG=052
                                                                             |  -1|466|        ;BIT SET MASK REG=056
                                                                             |  -1|467|        #000_2914 MASK                  "INT OP/062"
                                                                             |  -1|468|        ;DISABLE INT REQ=066
                                                                             |  -1|469|        Y_2914 MASK                     "INT OP/072"
                                                                             |  -1|470|        ;ENABLE INT REQ=076
                                                                             |  -1|471|
                                                                             |  -1|472|SPEC SEL/=<23:28>                       ;with shared op4,5=11 Load Ram/PCI adr
                                                                             |  -1|473|        Y=003                           ;Low order 12 bits of Y bus are Ramfile adr
                                                                             |  -1|474|                                        ; If this is an I/O adr = PCI
                                                                             |  -1|475|                                        ;   Y31 is 2651 A1
                                                                             |  -1|476|                                        ;   Y32 is 2651 A0
                                                                             |  -1|477|                                        ;   Y33-35 are line number
                                                                             |  -1|478|
                                                                             |  -1|479|        VMA=023                         ;Uses low order bits from previous spec sel/page table entry
                                                                             |  -1|480|        AC+N=027
                                                                             |  -1|481|        XR=033
                                                                             |  -1|482|        PAGE TABLE ENTRY=077
                                                                             |  -1|483|        IW=053                          ; If bits 0,1 = 11 set ILLEGAL IW else clear ILLEGAL IW.
                                                                             |  -1|484|                                        ; If section 0 or if bits 0,1=10 set NOT GLOBAL, else CLEAR LOCAL.
                                                                             |  -1|485|                                        ; If GLOBAL load I and index reg from 1-5, else load from 13-17.
                                                                             |  -1|486|        SEL AC+[]                       "SPEC SEL/027,J.AC/@1"
                                                                             |  -1|487|        Y_RAMFILE ADR                   "SPEC SEL/Y"
                                                                             |  -1|488|        Y_TTY ADR                       "Y_RAMFILE ADR"
                                                                             |  -1|489|
                                                                             |  -1|490|AMD2904 I5-I4/=<29:30>                  ;AM2904 OP[5:4]
                                                                             |  -1|491|        MX_Y                            "AMD2904 I5-I4/2,STATUS_Y,ALU_Y/NO"
                                                                             |  -1|492|        MX_[]                           "MX_Y,Y_[@1]"
                                                                             |  -1|493|        F_Q MX_[]                       "AMD2904 I5-I4/2,STATUS_Y,F_Q Y_[@1]"
                                                                             |  -1|494|        UX_[]                           "STATUS OP/001,STATUS_Y,Y_[@1]"
                                                                             |  -1|495|
                                                                             |  -1|496|.TOC 2, "CROM Field - STATUS OP"
                                                                             |  -1|497|STATUS OP/=<29:34>,.DEFAULT=020         ;AM2904 OP[5:0]
                                                                             |  -1|498|        Y_MX                            "STATUS OP/000,M STATUS ENAB/YES"	; YX -> MX
                                                                             |  -1|499|        #1_UX                           "STATUS OP/001,U STATUS ENAB/YES"	; 1  -> UX
                                                                             |  -1|500|        #1_MX                           "STATUS OP/001,M STATUS ENAB/YES"	; 1  -> MX
                                                                             |  -1|501|        MX_UX                           "STATUS OP/002,U STATUS ENAB/YES"	; MX -> UX
                                                                             |  -1|502|        UX_MX                           "STATUS OP/002,M STATUS ENAB/YES"	; UX -> MX
                                                                             |  -1|503|        MX_UX UX_MX                     "STATUS OP/002,M STATUS ENAB/YES,U STATUS ENAB/YES"	; MX <-> UX
                                                                             |  -1|504|        #0_UX                           "STATUS OP/003,U STATUS ENAB/YES"	; 0  -> UX
                                                                             |  -1|505|        #0_MX                           "STATUS OP/003,M STATUS ENAB/YES"	; 0  -> MX
                                                                             |  -1|506|        IX!UOVR_UX                      "STATUS OP/006,U STATUS ENAB/YES"	;
                                                                             |  -1|507|        IX!MOVR_MX                      "STATUS OP/006,M STATUS ENAB/YES"	;
                                                                             |  -1|508|
                                                                             |  -1|509|        #0_UZ                           "STATUS OP/010,U STATUS ENAB/YES"	;Reset zero bit
                                                                             |  -1|510|        #1_UZ                           "STATUS OP/011,U STATUS ENAB/YES"	;Set zero bit
                                                                             |  -1|511|        #0_UC                           "STATUS OP/012,U STATUS ENAB/YES"	;Reset carry bit
                                                                             |  -1|512|        #1_UC                           "STATUS OP/013,U STATUS ENAB/YES"	;Set carry bit
                                                                             |  -1|513|        #0_UN                           "STATUS OP/014,U STATUS ENAB/YES"	;Reset sign bit
                                                                             |  -1|514|        #1_UN                           "STATUS OP/015,U STATUS ENAB/YES"	;Set sign bit
                                                                             |  -1|515|        #0_UOVR                         "STATUS OP/016,U STATUS ENAB/YES"	;Reset overflow bit
                                                                             |  -1|516|        #1_UOVR                         "STATUS OP/017,U STATUS ENAB/YES"	;Set overflow bit
                                                                             |  -1|517|
                                                                             |  -1|518|
                                                                             |  -1|519|        IX_UX                           "STATUS OP/020,U STATUS ENAB/YES"	;
                                                                             |  -1|520|        IX_MX                           "STATUS OP/020,M STATUS ENAB/YES"	;
                                                                             |  -1|521|        IX ICBAR_UX                     "STATUS OP/030,U STATUS ENAB/YES"	;
                                                                             |  -1|522|        IX ICBAR_MX                     "STATUS OP/030,M STATUS ENAB/YES"	;
                                                                             |  -1|523|
                                                                             |  -1|524|        MX_UX Y_MX                      "Y_MX,U STATUS ENAB/YES"		;
                                                                             |  -1|525|        #0_UC IX_MX                     "#0_UC,M STATUS ENAB/YES"		;
                                                                             |  -1|526|        #1_UC IX_MX                     "#1_UC,M STATUS ENAB/YES"		;
                                                                             |  -1|527|
                                                                             |  -1|528|;Carry operation
                                                                             |  -1|529|        MC_C                            "CARRY OP/003,STATUS OP/047"
                                                                             |  -1|530|        UC_C                            "CARRY OP/003,STATUS OP/000"
                                                                             |  -1|531|
                                                                             |  -1|532|;Test conditions
                                                                             |  -1|533|; U - micro status
                                                                             |  -1|534|; M - macros tatus
                                                                             |  -1|535|; I - current status (I bus)
                                                                             |  -1|536|; Z - zero;
                                                                             |  -1|537|; N - negative;
                                                                             |  -1|538|; OVR - overflow
                                                                             |  -1|539|; C - carry
                                                                             |  -1|540|; ! - inclusive or
                                                                             |  -1|541|; X - xor
                                                                             |  -1|542|; & - and
                                                                             |  -1|543|; E - xnor = equivalence
                                                                             |  -1|544|
                                                                             |  -1|545|        UZ                              "STATUS OP/024"          		; Micro Zero
                                                                             |  -1|546|        MZ                              "STATUS OP/044"          		; Macro Zero
                                                                             |  -1|547|        IZ                              "STATUS OP/064"          		; I-bus Zero
                                                                             |  -1|548|        NOT UZ                          "STATUS OP/025"          		; Micro Not-Zero
                                                                             |  -1|549|        NOT MZ                          "STATUS OP/045"          		; Macro Not-Zero
                                                                             |  -1|550|        NOT IZ                          "STATUS OP/065"          		; I-bus Not-Zero
                                                                             |  -1|551|        UOVR                            "STATUS OP/026"          		; Micro Overflow
                                                                             |  -1|552|        MOVR                            "STATUS OP/046"          		; Macro Overflow
                                                                             |  -1|553|        IOVR                            "STATUS OP/066"          		; I-bus Overflow
                                                                             |  -1|554|        NOT UOVR                        "STATUS OP/027"          		; Micro Not-Overflow
                                                                             |  -1|555|        NOT MOVR                        "STATUS OP/047"          		; Macro Not-Overflow
                                                                             |  -1|556|        NOT IOVR                        "STATUS OP/067"          		; I-bus Not-Overflow
                                                                             |  -1|557|        UC                              "STATUS OP/032"				; Micro Carry
                                                                             |  -1|558|        MC                              "STATUS OP/052"				; Macro Carry
                                                                             |  -1|559|        IC                              "STATUS OP/072"				; I-bus Carry
                                                                             |  -1|560|        NOT UC                          "STATUS OP/033"                         ; Micro Not-Carry
                                                                             |  -1|561|        NOT MC                          "STATUS OP/053"				; Macro Not-Carry
                                                                             |  -1|562|        NOT IC                          "STATUS OP/073"				; I-bus Not-Carry
                                                                             |  -1|563|        UN                              "STATUS OP/036"          		; Micro Negative
                                                                             |  -1|564|        MN                              "STATUS OP/056"				; Macro Negative
                                                                             |  -1|565|        IN                              "STATUS OP/076"				; I-bus Negative
                                                                             |  -1|566|        NOT UN                          "STATUS OP/037"				; Micro Not-Negative
                                                                             |  -1|567|        NOT MN                          "STATUS OP/057"				; Macro Not-Negative
                                                                             |  -1|568|        NOT IN                          "STATUS OP/077"				; I-bus Not-Negative
                                                                             |  -1|569|        (UNxUOVR)!UZ                    "STATUS OP/020"				; (UNxUOVR)!UZ
                                                                             |  -1|570|        (MNxMOVR)!MZ                    "STATUS OP/040"				; (MNxMOVR)!MZ
                                                                             |  -1|571|        (INxIOVR)!IZ                    "STATUS OP/060"				; (INxIOVR)!IZ
                                                                             |  -1|572|
                                                                             |  -1|573|        INxorMN                         "STATUS OP/016"				; INxorMN
                                                                             |  -1|574|        MNxMOVR                         "STATUS OP/042"				; MNxMOVR
                                                                             |  -1|575|
                                                                             |  -1|576|
                                                                             |  -1|577|        MC_C IX_MX                      "MC,M STATUS ENAB/YES"
                                                                             |  -1|578|        MC_C IX_UX                      "MC,U STATUS ENAB/YES"
                                                                             |  -1|579|        UZ IX_MX                        "UZ,M STATUS ENAB/YES"
                                                                             |  -1|580|        UZ UX_MX                        "UZ,U STATUS ENAB/YES"
                                                                             |  -1|581|        MZ IX_MX                        "MZ,M STATUS ENAB/YES"
                                                                             |  -1|582|        MZ IX_UX                        "MZ,U STATUS ENAB/YES"
                                                                             |  -1|583|        IZ IX_UX                        "IZ,M STATUS ENAB/YES"
                                                                             |  -1|584|        IZ IX_MX                        "IZ,U STATUS ENAB/YES"
                                                                             |  -1|585|        UOVR IX_MX                      "UOVR,M STATUS ENAB/YES"
                                                                             |  -1|586|        IOVR IX_MX                      "IOVR,M STATUS ENAB/YES"
                                                                             |  -1|587|	NOT IOVR IX_MX			"NOT IOVR,M STATUS ENAB/YES"
                                                                             |  -1|588|        UN IX_MX                        "UN,M STATUS ENAB/YES"
                                                                             |  -1|589|        UN IX_UX                        "UN,U STATUS ENAB/YES"
                                                                             |  -1|590|        MN IX_MX                        "MN,M STATUS ENAB/YES"
                                                                             |  -1|591|        MN IX_UX                        "MN,U STATUS ENAB/YES"
                                                                             |  -1|592|        IN IX_MX                        "IN,M STATUS ENAB/YES"
                                                                             |  -1|593|        IN IX_UX                        "IN,U STATUS ENAB/YES"
                                                                             |  -1|594|        (MNxMOVR)!MZ IX_MX              "(MNxMOVR)!MZ,M STATUS ENAB/YES"
                                                                             |  -1|595|        (MNxMOVR)!MZ IX_UX              "(MNxMOVR)!MZ,U STATUS ENAB/YES"
                                                                             |  -1|596|
                                                                             |  -1|597|.TOC 2, "CROM Field - U STATUS ENAB"
                                                                             |  -1|598|U STATUS ENAB/=<35:35>,.DEFAULT=<NO>
                                                                             |  -1|599|        YES=0
                                                                             |  -1|600|        NO=1
                                                                             |  -1|601|
                                                                             |  -1|602|.TOC 2, "CROM Field - M STATUS ENAB"
                                                                             |  -1|603|M STATUS ENAB/=<36:36>,.DEFAULT=<NO>
                                                                             |  -1|604|        YES=0
                                                                             |  -1|605|        NO=1
                                                                             |  -1|606|
                                                                             |  -1|607|.TOC 2, "CROM Field - ALU_Y"
                                                                             |  -1|608|ALU_Y/=<37:37>,.DEFAULT=<NO>            ;2903
                                                                             |  -1|609|        NO=0
                                                                             |  -1|610|        YES=1
                                                                             |  -1|611|
                                                                             |  -1|612|;
                                                                             |  -1|613|; This field controls the AM2910 controller op code.
                                                                             |  -1|614|;
                                                                             |  -1|615|
                                                                             |  -1|616|.TOC 2, "CROM Field - U PROG OP"
                                                                             |  -1|617|U PROG OP/=<38:41>,.DEFAULT=<CONT>      ;AM2910 OP[3:0]
                                                                             |  -1|618|        JZ=000                                  ; Jump to address zero (not used)
                                                                             |  -1|619|        CJS=001                                 ; Conditional Jump Subroutine (address from Pipeline)
                                                                             |  -1|620|        JMAP=002                                ; Jump MAP (not used)
                                                                             |  -1|621|        CJP=003                                 ; Conditional Jump to address from Pipeline
                                                                             |  -1|622|        PUSH=004                                ; Push /Conditional Load Register
                                                                             |  -1|623|        JSRP=005                                ; Conditional Jump Subroutine to Register address or Pipeline address
                                                                             |  -1|624|        CJV=006                                 ; Conditional Jump to address from Vector (Dispatch ROMS)
                                                                             |  -1|625|        JRP=007                                 ; Conditional Jump to Register address or Pipeline address (not used)
                                                                             |  -1|626|        RFCT=010                                ; Repeat Loop until Counter = 0, Start Address is TOS
                                                                             |  -1|627|        RPCT=011                                ; Repeat Loop until Counter = 0, Start Address is Pipeline
                                                                             |  -1|628|        CRTN=012                                ; Conditional Return from Subroutine
                                                                             |  -1|629|        CJPP=013                                ; Conditional Jump to Pipeline and Pop.  Exit loop which uses stack.
                                                                             |  -1|630|        LDCT=014                                ; Load Counter and Continue
                                                                             |  -1|631|        TEOL=015                                ; Test End-Of-Loop
                                                                             |  -1|632|        CONT=016                                ; Continue
                                                                             |  -1|633|        TWB=017                                 ; Three Way Branch  (not used)
                                                                             |  -1|634|
                                                                             |  -1|635|.TOC 2, "CROM Field - TEST SEL"
                                                                             |  -1|636|TEST SEL/=<42:47>,.DEFAULT=<NEVER>
                                                                             |  -1|637|        NEVER=000
                                                                             |  -1|638|        ALWAYS=001
                                                                             |  -1|639|        CT=002                                  ;2904 CT =0 MIN1 STATUS TEST
                                                                             |  -1|640|        NOT CT=003
                                                                             |  -1|641|        NOT INDEXED=004
                                                                             |  -1|642|        INDEXED=005
                                                                             |  -1|643|        AC.EQ.0=006
                                                                             |  -1|644|        AC.NE.0=007
                                                                             |  -1|645|        INDIRECT=010
                                                                             |  -1|646|        NOT INDIRECT=011
                                                                             |  -1|647|        NOT (I OR XR)=012
                                                                             |  -1|648|        I OR XR=013
                                                                             |  -1|649|        ILLEGAL IW=014                          ;Signal from SPEC SEL/IW =<not section 0> and <bit0,bit1=11)
                                                                             |  -1|650|        NOT ILLEGAL IW=015
                                                                             |  -1|651|        GLOBAL IW=016                           ;Signal from SPEC SEL/IW
                                                                             |  -1|652|        LOCAL IW=017                            ; <not section 0> and <bit0=1>
                                                                             |  -1|653|        NO PI REQ=020                           ;i.e. something wants to interrupt
                                                                             |  -1|654|        PI REQ=021
                                                                             |  -1|655|        NOT AC REF=022
                                                                             |  -1|656|        AC REF=023
                                                                             |  -1|657|        LEGAL SECTION=024
                                                                             |  -1|658|        ILLEGAL SECTION=025
                                                                             |  -1|659|        NOT SECTION 0=026
                                                                             |  -1|660|        SECTION 0=027
                                                                             |  -1|661|        CONTEXT MATCH=030                       ;i.e. no match, AC ref, or not paged
                                                                             |  -1|662|        NOT CONTEXT MATCH=031
                                                                             |  -1|663|        NOT MEM FAULT=032
                                                                             |  -1|664|        MEM FAULT=033
                                                                             |  -1|665|        LOCAL=034
                                                                             |  -1|666|        GLOBAL=035
                                                                             |  -1|667|        USER=036
                                                                             |  -1|668|        EXEC=037                                ;Not exec
                                                                             |  -1|669|        PAGED=040                               ;PAGED and NOT AC REF
                                                                             |  -1|670|        NOT PAGED=041                           ;AC REF or NOT PAGED
                                                                             |  -1|671|        RUN=042
                                                                             |  -1|672|        NOT RUN=043
                                                                             |  -1|673|        TOPS20=044
                                                                             |  -1|674|        TOPS10=045
                                                                             |  -1|675|        PXCT=046
                                                                             |  -1|676|        NOT PXCT=047
                                                                             |  -1|677|        B BIT 3=050                             ;i.e. bit 3 on B port register is set
                                                                             |  -1|678|        NOT B BIT 3=051
                                                                             |  -1|679|        ;B BIT 4=052                            ;i.e. bit 4 on B port register is set
                                                                             |  -1|680|        ;NOT B BIT 4=053
                                                                             |  -1|681|        B BIT 9=054
                                                                             |  -1|682|        NOT B BIT 9=055
                                                                             |  -1|683|        B BIT 18=056                            ;i.e. bit 18 on B port register is set
                                                                             |  -1|684|        NOT B BIT 18=057
                                                                             |  -1|685|        ANY BUS ERROR=060
                                                                             |  -1|686|        NO BUS ERROR=061
                                                                             |  -1|687|        NOT AC LOW=062
                                                                             |  -1|688|        AC LOW=063
                                                                             |  -1|689|        LOCK=064
                                                                             |  -1|690|        NOT LOCK=065
                                                                             |  -1|691|        TRAP=066
                                                                             |  -1|692|        NOT TRAP=067
                                                                             |  -1|693|        MEM EXISTS=070
                                                                             |  -1|694|        NOT MEM EXISTS=071
                                                                             |  -1|695|        UNPAGED OR AC=072
                                                                             |  -1|696|        NOT UNPAGED OR AC=073
                                                                             |  -1|697|        NOT TIMER FLAG=074
                                                                             |  -1|698|        TIMER FLAG=075
                                                                             |  -1|699|        SPARE=076
                                                                             |  -1|700|        NOT SPARE=077
                                                                             |  -1|701|        NOT MF & NOT PXCT=062
                                                                             |  -1|702|
                                                                             |  -1|703|.TOC 2, "CROM Field - J"
                                                                             |  -1|704|J.AC/=<52:55>                                   ;4 bits in J field for AC+[]
                                                                             |  -1|705|J/=<48:59>,.ADDRESS,.DEFAULT=0
                                                                             |  -1|706|        U-CODE VERSION=04002                    ;Version of u-code
                                                                             |  -1|707|   ;EPT offsets
                                                                             |  -1|708|        PFW=00500                               ;Page fail word
                                                                             |  -1|709|        ESECT=00540                             ;Section pointers
                                                                             |  -1|710|   ;UPT offsets
                                                                             |  -1|711|   ;Console error codes
                                                                             |  -1|712|        ERR.URC=00001                           ;Unrecognized command
                                                                             |  -1|713|        ERR.NWR=00002                           ;Not while machine is running
                                                                             |  -1|714|        ERR.NEA=00003                           ;Not enough arguments
                                                                             |  -1|715|        ERR.NXA=00004                           ;Non existent address
                                                                             |  -1|716|        ERR.MER=00005                           ;Memory error
                                                                             |  -1|717|    ;PCI hdw bits
                                                                             |  -1|718|        A0=00010                                ;PCI adr for read status or write syn/syn/dle
                                                                             |  -1|719|        A1=00020                                ;PCI adr for MR1/MR2
                                                                             |  -1|720|        A1!A0=00030                             ;PCI adr for CR
                                                                             |  -1|721|        TXEN=00001                              ;Transmitter enable in CR
                                                                             |  -1|722|        RXEN=00004                              ;Receiver enable in CR
                                                                             |  -1|723|
                                                                             |  -1|724|;Ramfile offsets
                                                                             |  -1|725|        BYTE MASK=00000                         ;Following are "byte masks"
                                                                             |  -1|726|        PAGE # MASK=00011                       ;bits 23-35 (9 bits)
                                                                             |  -1|727|        #10B MASK=00012                         ;10 bits
                                                                             |  -1|728|        #12B MASK=00014
                                                                             |  -1|729|        SECTION # MASK=00014                    ;bits 24-35 (12 bits)
                                                                             |  -1|730|        #13E MASK=00015
                                                                             |  -1|731|        #22B MASK=00026
                                                                             |  -1|732|        #23B MASK=00027
                                                                             |  -1|733|        #24B MASK=00030
                                                                             |  -1|734|        #27B MASK=00033
                                                                             |  -1|735|        #30B MASK=00036
                                                                             |  -1|736|        #32B MASK=00040
                                                                             |  -1|737|        JFCL MASK=00040                         ;bits 4-35
                                                                             |  -1|738|        #33B MASK=00041
                                                                             |  -1|739|;locations 45-77 contain -1
                                                                             |  -1|740|
                                                                             |  -1|741|;Set of sliding bits
                                                                             |  -1|742|        BIT0=00100
                                                                             |  -1|743|         OVERFLOW=00100
                                                                             |  -1|744|        BIT1=00101
                                                                             |  -1|745|         CARRY 0=00101
                                                                             |  -1|746|        BIT2=00102
                                                                             |  -1|747|         CARRY 1=00102
                                                                             |  -1|748|        BIT3=00103
                                                                             |  -1|749|         FLOATING OVERFLOW=00103
                                                                             |  -1|750|        BIT4=00104
                                                                             |  -1|751|         FIRST PART DONE=00104
                                                                             |  -1|752|        BIT5=00105
                                                                             |  -1|753|         USER=00105
                                                                             |  -1|754|        BIT6=00106
                                                                             |  -1|755|         USER IO=00106
                                                                             |  -1|756|         PCU=00106                              ;Previous context user
                                                                             |  -1|757|        BIT7=00107
                                                                             |  -1|758|         PUBLIC=00107
                                                                             |  -1|759|        BIT8=00110
                                                                             |  -1|760|         ADDRESS FAILURE INHIBIT=00110
                                                                             |  -1|761|        BIT9=00111
                                                                             |  -1|762|         TRAP 2=00111
                                                                             |  -1|763|        BIT10=00112
                                                                             |  -1|764|         TRAP 1=00112
                                                                             |  -1|765|        BIT11=00113
                                                                             |  -1|766|         FLOATING UNDERFLOW=00113
                                                                             |  -1|767|        BIT12=00114
                                                                             |  -1|768|         NO DIVIDE=00114
                                                                             |  -1|769|        BIT13=00115
                                                                             |  -1|770|        BIT14=00116
                                                                             |  -1|771|        BIT15=00117
                                                                             |  -1|772|        BIT16=00120
                                                                             |  -1|773|        BIT17=00121
                                                                             |  -1|774|        BIT18=00122
                                                                             |  -1|775|        BIT19=00123
                                                                             |  -1|776|        BIT20=00124
                                                                             |  -1|777|        BIT21=00125
                                                                             |  -1|778|        BIT22=00126
                                                                             |  -1|779|        BIT23=00127
                                                                             |  -1|780|        BIT24=00130
                                                                             |  -1|781|        BIT25=00131
                                                                             |  -1|782|        BIT26=00132
                                                                             |  -1|783|        BIT27=00133
                                                                             |  -1|784|        BIT28=00134
                                                                             |  -1|785|        BIT29=00135
                                                                             |  -1|786|        BIT30=00136
                                                                             |  -1|787|        BIT31=00137
                                                                             |  -1|788|        BIT32=00140
                                                                             |  -1|789|        BIT33=00141
                                                                             |  -1|790|        BIT34=00142
                                                                             |  -1|791|        BIT35=00143
                                                                             |  -1|792|        BIT36=00144                             ;Phoney location
                                                                             |  -1|793|        PUSHJ FLAGS=00145                       ;Flags to clear on a PUSHJ =021600,,0
                                                                             |  -1|794|        ;UNUSED=00146
                                                                             |  -1|795|        ;MASK12-22=00147
                                                                             |  -1|796|
                                                                             |  -1|797|        ME RCOVR=00150                          ;Memory error recovery routine adr
                                                                             |  -1|798|        HALT CODE=00151                         ;Halt code
                                                                             |  -1|799|                                                ; -1 = do a console command
                                                                             |  -1|800|                HALT INS=00001                  ; ISP JRST 4,
                                                                             |  -1|801|                HALT CONSOLE=00002              ;Console command
                                                                             |  -1|802|                HALT SI=00003                   ;Single instruction
                                                                             |  -1|803|                HALT PFMER=00004                ;Memory errors, while handling page fault
                                                                             |  -1|804|                HALT HSBMER=00005               ;Memory error while writing HSB
                                                                             |  -1|805|                HALT ADRBRK=00010               ;Address break
                                                                             |  -1|806|
                                                                             |  -1|807|                HALT IOPF=00100                 ;IO Page failure
                                                                             |  -1|808|                HALT III=00101                  ;Illegal interrupt instruction
                                                                             |  -1|809|                HALT DSP=01000                  ;Illegal u-code dispatch
                                                                             |  -1|810|                                                ; Or GLOBAL at IFETCH
                                                                             |  -1|811|                HALT HME=01001                  ;Hard memory error
                                                                             |  -1|812|                HALT SUP=01005                  ;Startup check
                                                                             |  -1|813|        HME STS=00152                           ;Hard memory error status
                                                                             |  -1|814|                                                ; lh 2=Bus fault line,
                                                                             |  -1|815|                                                ;  3-Bus parity error into CPU
                                                                             |  -1|816|                                                ; rh is status from memory
                                                                             |  -1|817|                                                ;Hard memory error address
                                                                             |  -1|818|                                                ;Hard memory error data
                                                                             |  -1|819|        NXM STS=00155                           ;NXM memory error status
                                                                             |  -1|820|                                                ; lh=.,,rh is status from memory
                                                                             |  -1|821|                                                ;Soft memory error address (ECC correctable)
                                                                             |  -1|822|                                                ;Soft memory error data
                                                                             |  -1|823|
                                                                             |  -1|824|        SME STS=00160                           ;Soft memory error status
                                                                             |  -1|825|                                                ;lh=2,,rh is status from memory
                                                                             |  -1|826|                                                ;Soft memory error address (ECC correctable)
                                                                             |  -1|827|                                                ;Soft memory error data
                                                                             |  -1|828|        INT RCOVR=00163                         ;Where to go if interrupted while not running
                                                                             |  -1|829|        PF RCOVR=00164                          ;Routine to go to if encounter page fail
                                                                             |  -1|830|
                                                                             |  -1|831|        TTYRCV BITS=00177                       ;Bit for each receiver which has gone off
                                                                             |  -1|832|;Here begins line block for line 0
                                                                             |  -1|833|; See PCI section for pictures
                                                                             |  -1|834|
                                                                             |  -1|835|        LNOSW=00200                             ;Line 0 status word
                                                                             |  -1|836|                LS.PI=07                        ;Mask for PI channel
                                                                             |  -1|837|                LS.CLS=010                      ;Close receive buffer
                                                                             |  -1|838|                LS.XOFF=020                     ;Xoff flag
                                                                             |  -1|839|                LS.XOFF.ENAB=040                ;Xoff enable
                                                                             |  -1|840|                LS.RGO=0100                     ;Receiver go
                                                                             |  -1|841|                LS.RDN=0200                     ;Receiver done
                                                                             |  -1|842|                LS.REN=0400                     ;Receiver enable
                                                                             |  -1|843|                ;LS.XGO=01000                   ;Transmitter go
                                                                             |  -1|844|                LS.XDN=02000                    ;Transmitter done
                                                                             |  -1|845|                LS.XEN=04000                    ;Transmitter enable
                                                                             |  -1|846|                LS.RESET=010000                 ;Reset line
                                                                             |  -1|847|                LS.DSCHG=020000                 ;Dataset change
                                                                             |  -1|848|                LS.DSENB=040000                 ;Dataset enable
                                                                             |  -1|849|                LS.RMER=0100000                 ;Receiver nxm or memory err
                                                                             |  -1|850|                LS.XMER=0200000                 ;Transmitter nxm or memory err
                                                                             |  -1|851|        LNOMDW=0201                             ;Mode word for CTY
                                                                             |  -1|852|          LNXMDW=001                            ;Offset for mode word
                                                                             |  -1|853|          LNXSYN=002                            ;Offset for synch word
                                                                             |  -1|854|          LNXCRC=003                            ;Offset for CRC word
                                                                             |  -1|855|                                                ; 2-17 =0 xmt crc calculation
                                                                             |  -1|856|                                                ; 20-35 =0 rcv crc calculation
                                                                             |  -1|857|          LNXXHD=004                            ;Offset for adr of transmit header
                                                                             |  -1|858|          LNXXCHR=005                           ;Offset for (DDT mode) transmit char
                                                                             |  -1|859|                                                ; non DDT mode
                                                                             |  -1|860|                                                ; 0-11 count of bytes left
                                                                             |  -1|861|                                                ; 12-13, byte number in word
                                                                             |  -1|862|                                                ; 14-35 current word physical adr
                                                                             |  -1|863|          LNXRHD=006                            ;Offset for adr of receive header
                                                                             |  -1|864|          LNXRCHR=007                           ;Offset for (DDT mode) receive char
                                                                             |  -1|865|;Here begins line block for line 1
                                                                             |  -1|866|        LN1SW=00210                             ;Line 1 status word
                                                                             |  -1|867|;Here begins line block for line 2
                                                                             |  -1|868|        LN2SW=00220                             ;Line 2 status word
                                                                             |  -1|869|;Here begins line block for line 3
                                                                             |  -1|870|        LN3SW=00230                             ;Line 3 status word
                                                                             |  -1|871|;Here begins line block for line 4
                                                                             |  -1|872|        LN4SW=00240                             ;Line 4 status word
                                                                             |  -1|873|;Here begins line block for line 5
                                                                             |  -1|874|        LN5SW=00250                             ;Line 5 status word
                                                                             |  -1|875|;Here begins line block for line 6
                                                                             |  -1|876|        LN6SW=00260                             ;Line 6 status word
                                                                             |  -1|877|;Here begins line block for line 7
                                                                             |  -1|878|        LN7SW=00270                             ;Line 7 status word
                                                                             |  -1|879|        LNZSW=00300                             ; End of line block
                                                                             |  -1|880|
                                                                             |  -1|881|        CMDFLG=00300                            ;Flags for CTY/KLINIK line
                                                                             |  -1|882|           F.O=01                               ;^O has been typed
                                                                             |  -1|883|           F.S=02                               ; Xoff has been typed
                                                                             |  -1|884|           F.O!F.S=03
                                                                             |  -1|885|
                                                                             |  -1|886|        ; F.USR=BIT4                            ;
                                                                             |  -1|887|        CMDRPT=00301                            ; Repeat Counter
                                                                             |  -1|888|        CMRPTR=00302                            ; Putter for command response buffer
                                                                             |  -1|889|                                                ; Byte pointer format
                                                                             |  -1|890|                                                ;  bits 0-17 byte number
                                                                             |  -1|891|                                                ;  bits 18-35 ramfile adr
                                                                             |  -1|892|                                                ; ramfile word adr
                                                                             |  -1|893|                                                ;  bit 0      unused
                                                                             |  -1|894|                                                ;  bits 1-7   1st byte = 4
                                                                             |  -1|895|                                                ;  bits 8-14  2nd byte =3
                                                                             |  -1|896|                                                ;  bits 15-21 3rd byte = 2
                                                                             |  -1|897|                                                ;  bits 22-28 4th byte = 1
                                                                             |  -1|898|                                                ;  bits 29-35 5th byte = 0
                                                                             |  -1|899|        CMRTKR=00303                            ;Taker for command response buffer
                                                                             |  -1|900|                                                ; Format same as C~RPTR
                                                                             |  -1|901|        CMRBUF=00304                            ;Command response buffer
                                                                             |  -1|902|        CMRBUF-1=00303
                                                                             |  -1|903|        CMRBUF END=00337                        ;End of command response buffer
                                                                             |  -1|904|        CMDPTR=00340                            ;Pointer to put command characters into buffer
                                                                             |  -1|905|                                                ; Format same as CMRPTR
                                                                             |  -1|906|        CMDTKR=00341                            ;Pointer to take command characters from buffer
                                                                             |  -1|907|                                                ; Format same as CMRPTR
                                                                             |  -1|908|                                                ; Only nonzero if a break has been typed
                                                                             |  -1|909|        CMDBUF=00342                            ;Command buffer
                                                                             |  -1|910|        CMDBUF-1=00341
                                                                             |  -1|911|        CMDBUF END=00407
                                                                             |  -1|912|        MB REFIL=00441                          ;Save MB here for a page refill
                                                                             |  -1|913|
                                                                             |  -1|914|.IF/FTADRB
                                                                             |  -1|915|        AB IF=00442                             ;Address break instruction fetch
                                                                             |  -1|916|        AB WR=00443                             ;Address break write
                                                                             |  -1|917|        AB RD=00444                             ;Address break read
                                                                             |  -1|918|.ENDIF/FTADRB
                                                                             |  -1|919|
                                                                             |  -1|920|        EXM ADR=00445                           ;Last memory adr examined or deposited
                                                                             |  -1|921|        EIS W1=00446                            ;Extend instruction saves W1 here
                                                                             |  -1|922|        EIS W2=00447                            ;Extend instruction saves W2 here
                                                                             |  -1|923|        EIS W3=00450                            ;Extend instruction saves W3 here
                                                                             |  -1|924|        EIS W4=00451                            ;Extend instruction saves W4 here
                                                                             |  -1|925|        EIS W5=00452                            ;Extend instruction saves W5 here
                                                                             |  -1|926|        EIS W6=00453                            ;Extend instruction saves W6 here
                                                                             |  -1|927|        NBBYTE1=00454                           ;Bits 0-8
                                                                             |  -1|928|        NBBYTE3=00455                           ;Bits 18-26
                                                                             |  -1|929|
                                                                             |  -1|930|        X1=00454                                ;Temporary location
                                                                             |  -1|931|        X2=00455
                                                                             |  -1|932|.IF/DEBUG3
                                                                             |  -1|933|        POOP FLAG=00520
                                                                             |  -1|934|.ENDIF/DEBUG3
                                                                             |  -1|935|        CLK W2=00535
                                                                             |  -1|936|        CLK W3=00536
                                                                             |  -1|937|        ME W1=00537                             ;Save W1 here on memory error
                                                                             |  -1|938|        ME W2=00540                             ;Save W2 here on memory error
                                                                             |  -1|939|        WRIO TMP=00541                          ;Temporary location for WRIO
                                                                             |  -1|940|        HSB=00553                               ;Address of halt status block
                                                                             |  -1|941|        HSB MB=00554                            ;Save MB here when writing HSB
                                                                             |  -1|942|        HSB PMA=00555                           ;Save PMA here when writing HS8
                                                                             |  -1|943|        APR FLAGS=00556                         ;Bits 6-13 are flags which are enabled
                                                                             |  -1|944|                                                ; bits 24-31 are flags which are set
                                                                             |  -1|945|                                                ; bits 33-35 is APR PI level
                                                                             |  -1|946|        PI IN PROG=00557                        ;Interrupts in progress in bits 29-35
                                                                             |  -1|947|        PI SFT REQ=00560                        ;Software PI requests
                                                                             |  -1|948|                                                ; Bits 28-35 are software requests
                                                                             |  -1|949|                                                ; bits 10-17 are tty/apr requests
                                                                             |  -1|950|        PI LVL REG=00561                        ;bit 0 is PI system on/off flag
                                                                             |  -1|951|                                                ; bits 29-35 are levels on
                                                                             |  -1|952|        PROC REG=00562                          ;Processor register
                                                                             |  -1|953|                                                ; For picture see SET PROC REG
                                                                             |  -1|954|        RF PROC REG=00563                       ;Last word we wrote in hdw PROC REG
                                                                             |  -1|955|        TIME INTERVAL=00564                     ;Time interval
                                                                             |  -1|956|        INTERVAL COUNTER=00565                  ;Count it here
                                                                             |  -1|957|        TIME BASE=00566                         ;Two words of time (kept in u-sec)
                                                                             |  -1|958|        TIME BASE+1=00567                       ;Low order word of time
                                                                             |  -1|959|        CST=00571
                                                                             |  -1|960|        CSTMASK=00572
                                                                             |  -1|961|        CSTDATA=00573
                                                                             |  -1|962|        AC BLOCK=00574                          ;Current AC block
                                                                             |  -1|963|        P AC BLOCK=00575                        ;Previous context AC block
                                                                             |  -1|964|        PCS=00576                               ;Previous context section
                                                                             |  -1|965|        AC 0 0=00600
                                                                             |  -1|966|        AC 1 0=00620
                                                                             |  -1|967|        AC 2 0=00640
                                                                             |  -1|968|        AC 3 0=00660
                                                                             |  -1|969|        AC 4 0=00700
                                                                             |  -1|970|        AC 5 0=00720
                                                                             |  -1|971|        AC 6 0=00740
                                                                             |  -1|972|        AC 7 0=00760
                                                                             |  -1|973|        PAGE TABLE-1=00777
                                                                             |  -1|974|        PAGE TABLE=01000
                                                                             |  -1|975|
                                                                             |  -1|976|.TOC 2, "CROM Field - MAP SEL"
                                                                             |  -1|977|MAP SEL/=<48:51>
                                                                             |  -1|978|        DISPATCH 1=010
                                                                             |  -1|979|         OPERAND FETCH=010
                                                                             |  -1|980|        DISPATCH 2=011
                                                                             |  -1|981|         INST EXCT=011
                                                                             |  -1|982|        DISPATCH 3=012
                                                                             |  -1|983|         OPERAND STORE=012
                                                                             |  -1|984|        DISPATCH 4=013
                                                                             |  -1|985|        ;DISPATCH 5=014
                                                                             |  -1|986|        ;DISPATCH 6=015
                                                                             |  -1|987|        ;DISPATCH 7=016
                                                                             |  -1|988|         IO 0=016
                                                                             |  -1|989|        ;DISPATCH 8=017
                                                                             |  -1|990|         MISC=017
                                                                             |  -1|991|
                                                                             |  -1|992|.TOC 2, "CROM Field - MEM OP"
                                                                             |  -1|993|MEM OP/=<60:62>,.DEFAULT=07
                                                                             |  -1|994|        MEM HOLD                "MEM OP/00"                                             ;Do not release memory
                                                                             |  -1|995|        MEM START READ          "MEM OP/01,XFER MEM,#1_SION #1_QION,ALU_Y/YES"          ;Start memory with from ...
                                                                             |  -1|996|        MEM START WRITE         "MEM OP/02,XFER MEM,#1_SION #1_QION,ALU_Y/YES"          ;Start memory with adr from...
                                                                             |  -1|997|        START IO READ           "MEM OP/03,XFER MEM,#1_SION #1_QION,ALU_Y/YES"          ;Start IO read with adr from...
                                                                             |  -1|998|        START IO WRITE          "MEM OP/04,XFER MEM,#1_SION #1_QION,ALU_Y/YES"          ;Start IO write with adr from...
                                                                             |  -1|999|        IO TRANSFER             "MEM OP/05,XFER MEM"                                    ;Transfer IO (on MEM bus)
                                                                             |  -1|1000|         IO_[]                  "Y_[@1],ALU_Y/NO,IO TRANSFER,XFER MEM,IX_MX"
                                                                             |  -1|1001|         ALU_IO                 "ALU_Y/YES,IO TRANSFER,XFER MEM,#1_SION #1_QION,IX_MX"
                                                                             |  -1|1002|        MEM TRANSFER            "MEM OP/05,XFER MEM"                                    ;Transfer MEM
                                                                             |  -1|1003|         ALU_MEM                "ALU_Y/YES,MEM TRANSFER,XFER MEM,#1_SION #1_QION,IX_MX"
                                                                             |  -1|1004|         []_MEM                 "[@1]_[@1],ALU_MEM"
                                                                             |  -1|1005|         MEM_[]                 "Y_[@1],ALU_Y/NO,MEM TRANSFER,XFER MEM,IX_MX"
                                                                             |  -1|1006|         MEM_IR_[]              "Y_[@1],ALU_Y/NO,MEM OP/05,LOAD IR,IX_MX"
                                                                             |  -1|1007|        ;                       "MEM OP/06"                                             ;Reserved
                                                                             |  -1|1008|        ALLOW DCH               "MEM OP/07"                                             ;Allow data channels
                                                                             |  -1|1009|
                                                                             |  -1|1010|.TOC 2, "CROM Field - Y SEL"
                                                                             |  -1|1011|Y SEL/=<63:66>,.DEFAULT=0
                                                                             |  -1|1012|        XFER PIPELINE           "Y SEL/01"
                                                                             |  -1|1013|         J[]_Y24-Y35            "J/@1,XFER PIPELINE,ALU_Y/NO"
                                                                             |  -1|1014|         FJ[]_[]                "J[@1]_Y24-Y35,Y_[@2]"                          ;bits 0-23 from F, bits 24-35 from J
                                                                             |  -1|1015|         F_Q FJ[]_[]            "J[@1]_Y24-Y35,F_Q Y_[@2]"                      ;bits 0-23 from F, bits 24-35 from J
                                                                             |  -1|1016|         J[]_[]                 "ZERO_F,FJ[@1]_[@2]"
                                                                             |  -1|1017|         JS[]_[]                "ZERO_F,J[@1]_Y24-Y35,B SEL/@2,#1_SION #1_QION,F_LRS Y_B" ;Bit 0 or J_[]
                                                                             |  -1|1018|         JN[]_[]                "ONES_F,FJ[@1]_[@2]"                            ;bits 0-23 or J[]_[]
                                                                             |  -1|1019|         []J[]_[]               "[@1]_F,J[@2]_Y24-Y35,Y_[@3]"                   ;bits 0-23 from R-SEL, bits 24-35
                                                                             |  -1|1020|         ALU_CTR                "ALU_Y/YES,XFER PIPELINE"                       ;do not need U PROG OP
                                                                             |  -1|1021|         J[]_CTR                "J/@1,U PROG OP/LDCT"                           ;Load 2910 counter from J field
                                                                             |  -1|1022|         DISP []_Y              "XFER PIPELINE,ALU_Y/NO,MAP SEL/@1,U PROG OP/CJV,TEST SEL/NEVER"
                                                                             |  -1|1023|        XFER MEM                "Y SEL/02"                                      ;Enable MEM bus transceivers
                                                                             |  -1|1024|        ALU_PCI                 "ALU_Y/YES,Y SEL/03"
                                                                             |  -1|1025|        PCI_ALU                 "ALU_Y/NO,Y SEL/03"
                                                                             |  -1|1026|        ALU_RAMFILE             "ALU_Y/YES,Y SEL/04"
                                                                             |  -1|1027|        []_RAMFILE              "[K -1]&[@1]_Y,ALU_RAMFILE"
                                                                             |  -1|1028|        RAMFILE_Y               "ALU_Y/NO,Y SEL/04"
                                                                             |  -1|1029|         RAMFILE_[]             "RAMFILE_Y,Y_[@1]"
                                                                             |  -1|1030|        ALU_MR2                 "Y SEL/05,ALU_Y/YES"
                                                                             |  -1|1031|        STATUS_Y                "Y SEL/06"
                                                                             |  -1|1032|        SWAPPER_Y               "R SEL TYP/REG EXT,ALU_Y/NO,Y SEL/07"           ;A bus swapped goes to Y
                                                                             |  -1|1033|         SWAP []_[]             "SWAPPER_Y,R SEL/@1,Y_[@2]"
                                                                             |  -1|1034|         SWAP []_[] F_Q         "SWAPPER_Y,R SEL/@1,Y_[@2] F_Q"
                                                                             |  -1|1035|        ALU_PROC REG            "Y SEL/010,ALU_Y/YES"
                                                                             |  -1|1036|        LOAD IR                 "Y SEL/011"                                     ;This implies transfer mem
                                                                             |  -1|1037|
                                                                             |  -1|1038|T/=<67:69>,.DEFAULT=0                           ;Time
                                                                             |  -1|1039|MARK1/=<70>,.DEFAULT=0
                                                                             |  -1|1040|MARK2/=<71>,.DEFAULT=0
                                                                             |  -1|1041|
                                                                             |  -1|1042|
                                                                             |  -1|1043|.TOC    "Instruction Macros"
                                                                             |  -1|1044|
                                                                             |  -1|1045|        NOOP                    "U PROG OP/CONT"
                                                                             |  -1|1046|        J[]_D                   "J/@1"
                                                                             |  -1|1047|        GOTO Y                  "XFER PIPELINE,ALU_Y/YES,U PROG OP/CJP,TEST SEL/ALWAYS"
                                                                             |  -1|1048|        CALL Y                  "XFER PIPELINE,ALU_Y/YES,U PROG OP/CJS,TEST SEL/ALWAYS"
                                                                             |  -1|1049|        GOTO []                 "TEST SEL/ALWAYS,U PROG OP/CJP,J[@1]_D"
                                                                             |  -1|1050|        GOTOP []                "TEST SEL/ALWAYS,U PROG OP/CJPP,J[@1]_D" ;Goto and pop stack
                                                                             |  -1|1051|        POP                     "TEST SEL/ALWAYS,U PROG OP/TEOL"
                                                                             |  -1|1052|
                                                                             |  -1|1053|        CALL []                 "TEST SEL/ALWAYS,U PROG OP/CJS,J[@1]_D"
                                                                             |  -1|1054|        RETURN                  "TEST SEL/ALWAYS,U PROG OP/CRTN"
                                                                             |  -1|1055|
                                                                             |  -1|1056|        RFCT                    "U PROG OP/RFCT"
                                                                             |  -1|1057|        LOOP []                 "J[@1]_D,U PROG OP/RPCT"
                                                                             |  -1|1058|        TWB [] []               "@1,J[@2]_D,U PROG OP/TWB"
                                                                             |  -1|1059|        PUSH                    "TEST SEL/NEVER,U PROG OP/PUSH"
                                                                             |  -1|1060|        PUSH J[]_CTR            "TEST SEL/ALWAYS,U PROG OP/PUSH,J[@1]_D"
                                                                             |  -1|1061|
                                                                             |  -1|1062|        IF [] THEN []           "TEST SEL/@1,U PROG OP/CJP,J[@2]_D"
                                                                             |  -1|1063|        IF [] THENP []          "TEST SEL/@1,U PROG OP/CJPP,J[@2]_D"                            ;If branch also pop
                                                                             |  -1|1064|        IF [] THEN Y            "TEST SEL/@1,U PROG OP/CJP,XFER PIPELINE,ALU_Y/YES"
                                                                             |  -1|1065|        IF [] CALL []           "TEST SEL/@1,U PROG OP/CJS,J[@2]_D"
                                                                             |  -1|1066|        IF [] JSRP []           "TEST SEL/@1,U PROG OP/JSRP,J[@2]_D"
                                                                             |  -1|1067|        IF [] D []              "TEST SEL/@1,DISP [@2]"
                                                                             |  -1|1068|        IF [] RETURN            "TEST SEL/@1,U PROG OP/CRTN"
                                                                             |  -1|1069|
                                                                             |  -1|1070|        IF CT [] THEN []        "TEST SEL/CT,@1,U PROG OP/CJP,J[@2]_D"   ;CT is 2904 STATUS TEST
                                                                             |  -1|1071|        IF CT [] THENP []       "TEST SEL/CT,@1,U PROG OP/CJPP,J[@2]_D"
                                                                             |  -1|1072|        IF CT [] THEN Y         "TEST SEL/CT,@1,U PROG OP/CJP,XFER PIPELINE,ALU_Y/YES"
                                                                             |  -1|1073|        IF CT [] CALL []        "TEST SEL/CT,@1,U PROG OP/CJS,J[@2]_D"
                                                                             |  -1|1074|        IF CT [] JSRP []        "TEST SEL/CT,@1,U PROG OP/JSRP,J[@2]_D"
                                                                             |  -1|1075|        IF CT [] RETURN         "TEST SEL/CT,@1,U PROG OP/CRTN"
                                                                             |  -1|1076|        IF CT [] D []           "TEST SEL/CT,@1,DISP [@2]"
                                                                             |  -1|1077|        IF NOT CT [] THEN []    "TEST SEL/NOT CT,@1,U PROG OP/CJP,J[@2]_D"
                                                                             |  -1|1078|        IF NOT CT [] THENP []   "TEST SEL/NOT CT,@1,U PROG OP/CJPP,J[@2]_D"
                                                                             |  -1|1079|        IF NOT CT [] THEN Y     "TEST SEL/NOT CT,@1,U PROG OP/CJP,XFER PIPELINE,ALU_Y/YES"
                                                                             |  -1|1080|        IF NOT CT [] CALL []    "TEST SEL/NOT CT,@1,U PROG OP/CJS,J[@2]_D"
                                                                             |  -1|1081|        IF NOT CT [] JSRP []    "TEST SEL/NOT CT,@1,U PROG OP/JSRP,J[@2]_D"
                                                                             |  -1|1082|        IF NOT CT [] RETURN     "TEST SEL/NOT CT,@1,U PROG OP/CRTN"
                                                                             |  -1|1083|        IF NOT CT [] D []       "TEST SEL/NOT CT,@1,DISP [@2]"
                                                                             |  -1|1084|
                                                                             |  -1|1085|        DISP []                 "MAP SEL/@1,U PROG OP/CJV"
                                                                             |  -1|1086|        DISPATCH []             "TEST SEL/ALWAYS,DISP [@1]"
                                                                             |  -1|1087|
                                                                             |  -1|1088|        J[]_RAMFILE ADR         "J[@1]_Y24-Y35,ALU_Y/NO,Y_RAMFILE ADR"
                                                                             |  -1|1089|
                                                                             |  -1|1090|        Y_[]                    "B SEL/@1,Y_B"
                                                                             |  -1|1091|        Y_[] F_Q                "B SEL/@1,Y_B F_Q"
                                                                             |  -1|1092|        F_Q Y_[]                "B SEL/@1,Y_B F_Q"
                                                                             |  -1|1093|        F_[]                    "B SEL/@1,F_B"
                                                                             |  -1|1094|        F_Q RAMFILE_[]          "F_Q Y_[@1],RAMFILE_Y"
                                                                             |  -1|1095|        F_Q_[]                  "B SEL/@1,F_Q_B"
                                                                             |  -1|1096|        ROR F_[]                "LRS F_B,SIO0_SION QIO0_QION,B SEL/@1"  ;ROR F_Q_Q WRITE=01
                                                                             |  -1|1097|
                                                                             |  -1|1098|        F_ROR Y_[]              "F_LRS Y_B,SIO0_SION QIO0_QION,B SEL/@1" ;ROR F_Q_Q WRITE=01
                                                                             |  -1|1099|        F_Y LSRQ_Q              "F_Y QRS_Q,#0_SION #0_QION"             ;Right shift Q, shift in 0
                                                                             |  -1|1100|        F_Y RORQ_Q              "F_Y QRS_Q,SIO0_SION QIO0_QION"         ;Right shift Q, shift in 0
                                                                             |  -1|1101|        LSZ F_B                 "LLS F_B,#0_SIO0 #0_QIO0"
                                                                             |  -1|1102|        LSZ F_[]                "LSZ F_B,B SEL/@1"
                                                                             |  -1|1103|        ROL F_B                 "LLS F_B,SION_SIO0 QION_QIO0"           ;LLS F_Y Q_Q WRITE=011
                                                                             |  -1|1104|        ROL F_[]                "ROL  F_B,B SEL/@1"                     ;LLS F_Y Q_Q WRITE=011
                                                                             |  -1|1105|
                                                                             |  -1|1106|        ZERO_F                  "ALU OP/LOW,ALU 10/Q_S"
                                                                             |  -1|1107|        ZERO_Y                  "ZERO_F,F_Y"
                                                                             |  -1|1108|        ZERO_[]                 "ZERO_F,F_[@1]"
                                                                             |  -1|1109|
                                                                             |  -1|1110|        ONES_F                  "ALU OP/0,ALU 10/Q_S"
                                                                             |  -1|1111|        ONES_[]                 "ONES_F,F_[@1]"
                                                                             |  -1|1112|
                                                                             |  -1|1113|        BIT0_[]                 "ZERO_F,LRS F_B,#1_SION #1_QION,B SEL/@1"
                                                                             |  -1|1114|
                                                                             |  -1|1115|        Q+C_F                   "ALU 10/Q_S,ALU OP/R+C"
                                                                             |  -1|1116|        Q+1_F                   "#1_CO,Q+C_F"
                                                                             |  -1|1117|        Q_F                     "Q&[K -1]_F"
                                                                             |  -1|1118|        Q_Y                     "Q_F,F_Y"
                                                                             |  -1|1119|        Q_[]                    "Q_F,F_[@1]"
                                                                             |  -1|1120|
                                                                             |  -1|1121|        []+C_F                  "R SEL/@1,ALU OP/R+C,ALU 10/Q_S"
                                                                             |  -1|1122|        []_F                    "[@1]+C_F,#0_CO"
                                                                             |  -1|1123|        []_Y                    "[@1]+C_F,F_Y"
                                                                             |  -1|1124|        []_Q                    "[@1]+C_F,F_Q"
                                                                             |  -1|1125|        []_Q RAMFILE_[]         "[@1]+C_F,F_Q Y_[@2],RAMFILE_Y"
                                                                             |  -1|1126|        []_[]                   "[@1]_F,F_[@2]"
                                                                             |  -1|1127|        []_Q_[]                 "[@1]_F,F_Q_[@2]"
                                                                             |  -1|1128|
                                                                             |  -1|1129|        B[]_F                   "S SEL[@1],#0_CO,ALU OP/S+C"
                                                                             |  -1|1130|
                                                                             |  -1|1131|        #2*Q_Q                   "QLS_Q,#0_SIO0 #0_QIO0"
                                                                             |  -1|1132|        #2*Q_[]                  "Q_F,LSZ F_[@1]"
                                                                             |  -1|1133|        #2*[]_Q                  "R SEL/@1,S SEL[@1],#0_CO,ALU OP/R+S+C,F_Q"
                                                                             |  -1|1134|        #2*[]_[]                 "[@1]_F,LSZ F_[@2]"
                                                                             |  -1|1135|        #2*([]+[])_B             "[@1]+[@2]_F,LSZ F_B"
                                                                             |  -1|1136|        #4*[]_B                  "#2*([@1]+[@1])_B"
                                                                             |  -1|1137|
                                                                             |  -1|1138|        COMPLEMENT []_F         "R SEL/@1,ALU OP/RBAR+C,#0_CO"
                                                                             |  -1|1139|        COMPLEMENT Q_F          "ALU 10/Q_S,ALU OP/SBAR+C,#0_CO"
                                                                             |  -1|1140|
                                                                             |  -1|1141|        ASR []_[]               "[@1]_F,B SEL/@2,LRS F_B,MN_SION SIO0_QION"       ;Right shift,
                                                                             |  -1|1142|        ASR []_[] MC            "[@1]_F,B SEL/@2,LRS F_B,#0_SION SIO0_MC MN_QION"  ;Right shift,
                                                                             |  -1|1143|        ASRC []_[]              "[@1]_F,B SEL/@2,ASRC_B,MN_SION SIO0_QION"
                                                                             |  -1|1144|        ROR []_[]               "[@1]_F,B SEL/@2,LRS F_B,SIO0_SION QIO0_QION"
                                                                             |  -1|1145|        ROR F_B ROR Q_Q         "LSRC_B,SIO0_SION QIO0_QION"
                                                                             |  -1|1146|        F LRS_[]                "B SEL/@1,LRS F_B,#0_SION #0_QION"
                                                                             |  -1|1147|        F LRS_[] SIO0_MC        "B SEL/@1,LRS F_B,#0_SION SIO0_MC MN_QION"
                                                                             |  -1|1148|
                                                                             |  -1|1149|        LRS []_[]               "[@1]_F,F LRS_[@2]"
                                                                             |  -1|1150|        RORC []_[]              "[@1]_F,B SEL/@2,LSRC_B,QIO0_SION SIO0_QION"
                                                                             |  -1|1151|        LSRC []_[]              "[@1]_F,B SEL/@2,LSRC_B,#0_SION SIO0_QION"
                                                                             |  -1|1152|        ROL []_[]               "[@1]_F,B SEL/@2,ROL F_B"
                                                                             |  -1|1153|
                                                                             |  -1|1154|        ROL []_[] ROL Q_Q       "[@1]_F,B SEL/@2,LLSC_B,SION_SIO0 QION_QIO0"
                                                                             |  -1|1155|        LLS []                  "[@1]_F,LSZ F_[@2]"
                                                                             |  -1|1156|        LLS []_[] LLS Q_Q       "[@1]_F,B SEL/@2,LLSC_B,#0_SIO0 #0_QIO0"
                                                                             |  -1|1157|        ROLC []_[]              "[@1]_F,B SEL/@2,LLSC_B,SION_QIO0 QION_SIO0"
                                                                             |  -1|1158|        LLSC []_[]              "[@1]_F,B SEL/@2,LLSC_B,QION_SIO0 #0_QIO0"
                                                                             |  -1|1159|
                                                                             |  -1|1160|        NEGATE Q_F              "ALU 10/Q_S,#1_CO,ALU OP/SBAR+C"
                                                                             |  -1|1161|
                                                                             |  -1|1162|        []BAR+C_F               "R SEL/@1,ALU OP/RBAR+C,ALU 10/Q_S"
                                                                             |  -1|1163|        NEGATE []_F             "[@1]BAR+C_F,#1_CO"
                                                                             |  -1|1164|
                                                                             |  -1|1165|        []+1_F                  "[@1]+C_F,#1_CO"
                                                                             |  -1|1166|        []+1_Y                  "[@1]+1_F,F_Y"
                                                                             |  -1|1167|        []+1_Q                  "[@1]+1_F,F_Q"
                                                                             |  -1|1168|        []+1_Q RAMFILE_[]       "[@1]+1_F,Y_B,F_Q,RAMFILE_Y,B SEL/@2"
                                                                             |  -1|1169|        []+1_[]                 "[@1]+1_F,F_[@2]"
                                                                             |  -1|1170|        []+1_Q_[]               "[@1]+1_F,F_Q_[@2]"
                                                                             |  -1|1171|        []+2_B                  "S SEL[@1],#1_CO,ALU SP FUN/S+1+C_B,ALU_Y/YES"
                                                                             |  -1|1172|
                                                                             |  -1|1173|        Q+[]+C_F                "R SEL/@1,ALU 10/Q_S,ALU OP/R+S+C"
                                                                             |  -1|1174|        Q+[]+1_F                "Q+[@1]+C_F,#1_CO"
                                                                             |  -1|1175|        Q+[]_F                  "Q+[@1]+C_F,#0_CO"
                                                                             |  -1|1176|        Q+[]_Y                  "Q+[@1]_F,F_Y"
                                                                             |  -1|1177|        Q+[]_Q                  "Q+[@1]_F,F_Q"
                                                                             |  -1|1178|        Q+[]_[]                 "Q+[@1]_F,F_[@2]"
                                                                             |  -1|1179|        []+[]+C_F               "R SEL/@1,S SEL[@2],ALU OP/R+S+C"
                                                                             |  -1|1180|        []+[]+C_B               "[@1]+[@2]+C_F,F_B"
                                                                             |  -1|1181|        []+[]_F                 "[@1]+[@2]+C_F,#0_CO"
                                                                             |  -1|1182|        []+[]_Y                 "[@1]+[@2]_F,F_Y"
                                                                             |  -1|1183|        []+[]_Q                 "[@1]+[@2]_F,F_Q"
                                                                             |  -1|1184|        []+[]_B                 "[@1]+[@2]_F,F_B"
                                                                             |  -1|1185|        []+[]+1_F               "[@1]+[@2]+C_F,#1_CO"
                                                                             |  -1|1186|        []+[]+1_Y               "[@1]+[@2]+C_F,F_Y,#1_CO"               ; Doyle added this
                                                                             |  -1|1187|
                                                                             |  -1|1188|        Q-[]_F                  "R SEL/@1,ALU 10/Q_S,#1_CO,ALU OP/S-R-1+C"
                                                                             |  -1|1189|        Q-[]_Y                  "Q-[@1]_F,F_Y"
                                                                             |  -1|1190|        []-Q_F                  "R SEL/@1,ALU 10/Q_S,#1_CO,ALU OP/R-S-1+C"
                                                                             |  -1|1191|        []-[]-1+C_F             "R SEL/@1,S SEL[@2],ALU OP/R-S-1+C"
                                                                             |  -1|1192|        []-[]-1_F               "[@1]-[@2]-1+C_F,#0_CO"
                                                                             |  -1|1193|        []-[]_F                 "[@1]-[@2]-1+C_F,#1_CO"
                                                                             |  -1|1194|        []-[]_Y                 "[@1]-[@2]-1_F,F_Y"
                                                                             |  -1|1195|        []-[]_Q                 "[@1]-[@2]-1_F,F_Q"
                                                                             |  -1|1196|        []-[]_B                 "[@1]-[@2]-1_F,F_B"
                                                                             |  -1|1197|        []-[]-1+C_A             "R SEL/@2,S SEL[@1],ALU OP/S-R-1+C,F_B"
                                                                             |  -1|1198|        []-[]-1_A               "[@1]-[@2]-1+C_A,#0_CO"
                                                                             |  -1|1199|        []-[]_A                 "[@1]-[@2]-1+C_A,#1_CO"
                                                                             |  -1|1200|
                                                                             |  -1|1201|        SM []_B                 "S SEL[@1],CX_CO,ALU SP FUN/SM,ALU_Y/YES"       ;Sign/magnitude, twos complement
                                                                             |  -1|1202|        MUL [] []               "R SEL/@1,S SEL[@2],#0_CO,ALU SP FUN/MUL,#0_SION SIO0_QION,ALU_Y/YES"
                                                                             |  -1|1203|        TCM [] []               "R SEL/@1,S SEL[@2],#0_CO,ALU SP FUN/TCM,#0_SION SIO0_QION,ALU_Y/YES"
                                                                             |  -1|1204|        TCM COR [] []           "R SEL/@1,S SEL[@2],CX_CO,ALU SP FUN/TCM COR,#0_SION SIO0_QION,ALU_Y/YES"
                                                                             |  -1|1205|        TCDIV [] []_B           "R SEL/@1,S SEL[@2],CX_CO,ALU SP FUN/TCDIV,SION_QIO0 QION_SIO0,ALU_Y/YES"
                                                                             |  -1|1206|        TCDIV COR [] []_B       "R SEL/@1,S SEL[@2],CX_CO,ALU SP FUN/TCDIV COR,#1_SIO0 #1_QIO0,ALU_Y/YES"
                                                                             |  -1|1207|
                                                                             |  -1|1208|        Q&[]_F                  "R SEL/@1,ALU 10/Q_S,ALU OP/R.AND.S"
                                                                             |  -1|1209|        Q&[]_Y                  "Q&[@1]_F,F_Y"
                                                                             |  -1|1210|        Q&[]_Q                  "Q&[@1]_F,F_Q"
                                                                             |  -1|1211|        Q&[]_Q RAMFILE_[]       "Q&[@1]_F,F_Q,Y_[@2],RAMFILE_Y"
                                                                             |  -1|1212|        Q&[]_[]                 "Q&[@1]_F,F_[@2]"
                                                                             |  -1|1213|        []&[]_F                 "R SEL/@1,S SEL[@2],ALU OP/R.AND.S"
                                                                             |  -1|1214|        []&[]_Y                 "[@1]&[@2]_F,F_Y"
                                                                             |  -1|1215|        []&[]_Q                 "[@1]&[@2]_F,F_Q"
                                                                             |  -1|1216|        []&[]_B                 "[@1]&[@2]_F,F_B"
                                                                             |  -1|1217|
                                                                             |  -1|1218|        []BAR&Q_F               "R SEL/@1,ALU 10/Q_S,ALU OP/RBAR.AND.S"
                                                                             |  -1|1219|        []BAR&Q_Y               "[@1]BAR&Q_F,F_Y"
                                                                             |  -1|1220|        []BAR&[]_F              "R SEL/@1,S SEL[@2],ALU OP/RBAR.AND.S"
                                                                             |  -1|1221|        []BAR&[]_Y              "[@1]BAR&[@2]_F,F_Y"
                                                                             |  -1|1222|        []BAR&[]_Q              "[@1]BAR&[@2]_F,F_Q"
                                                                             |  -1|1223|        []BAR&[]_B              "[@1]BAR&[@2]_F,F_B"
                                                                             |  -1|1224|
                                                                             |  -1|1225|
                                                                             |  -1|1226|        Q.OR.[]_F               "R SEL/@1,ALU 10/Q_S,ALU OP/R.OR.S"
                                                                             |  -1|1227|        Q.OR.[]_Y               "Q.OR.[@1]_F,F_Y"
                                                                             |  -1|1228|        Q.OR.[]_Q               "Q.OR.[@1]_F,F_Q"
                                                                             |  -1|1229|        Q.OR.[]_[]              "Q.OR.[@1]_F,F_[@2]"
                                                                             |  -1|1230|        [].OR.[]_F              "R SEL/@1,S SEL[@2],ALU OP/R.OR.S"
                                                                             |  -1|1231|        [].OR.[]_Y              "[@1].OR.[@2]_F,F_Y"
                                                                             |  -1|1232|        [].OR.[]_Q              "[@1].OR.[@2]_F,F_Q"
                                                                             |  -1|1233|        [].OR.[]_B              "[@1].OR.[@2]_F,F_B"
                                                                             |  -1|1234|        Q.XOR.[]_F              "R SEL/@1,ALU 10/Q_S,ALU OP/R.XOR.S"
                                                                             |  -1|1235|        [].XOR.[]_F             "R SEL/@1,S SEL[@2],ALU OP/R.XOR.S"
                                                                             |  -1|1236|        [].XOR.[]_Y             "[@1].XOR.[@2]_F,F_Y"
                                                                             |  -1|1237|
                                                                             |  -1|1238|        Q.XNOR.[]_F             "R SEL/@1,ALU 10/Q_S,ALU OP/R.XNOR.S"
                                                                             |  -1|1239|        [].XNOR.[]_F            "R SEL/@1,S SEL[@2],ALU OP/R.XNOR.S"
                                                                             |  -1|1240|
                                                                             |  -1|1241|        READ []                 "[@1]_Q_[E],SPEC SEL/PAGE TABLE ENTRY,CALL [MEMORY READ]"
                                                                             |  -1|1242|        WRITE []                "[@1]_Q_[E],SPEC SEL/PAGE TABLE ENTRY,CALL [MEM WRITE 1]"
                                                                             |  -1|1243|
                                                                             |  -1|1244|        CHECK INTERRUPTS        "IF [PI REQ] CALL [CHK INT]"
                                                                             |  -1|1245|
                                                                             |  -1|1246|        SECTION SELECT          "SPEC SEL/PAGE TABLE ENTRY"
                                                                             |  -1|1247|
                                                                             |  -1|1248|        LIGHTS []               "J[@1]_[PXCT]"          ; Things to fix !!!
                                                                             |  -1|1249|
                                                                             |  -1|1250|;
                                                                             |  -1|1251|; Execution begins here
                                                                             |  -1|1252|;
                                                                             |  -1|1253|; Note:
                                                                             |  -1|1254|;     The first few (6) instructions pop am2910 stack to ensure that
                                                                             |  -1|1255|;     the stack is empty.
                                                                             |  -1|1256|;
                                                                             |  -1|1257|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,6000,00,7,01,0,0,0,0000|1258|0:
                                                                             |0000|1259|BEGIN:  J[06000]_[W1],POP                       ;Will become 30000 next
                                                                             |0000|1260|        ;J[02515]_Y24-Y35,[W1]+[W1]_F,          ;300 baud
                                                                             |0000|1261|        ;J[05115]_Y24-Y35,[W1]+[W1]_F,          ;2400 baud
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,0,15,01,00,7115,00,7,01,0,0,0,0001|1262|        J[07115]_Y24-Y35,[W1]+[W1]_F,           ;9600 baud
                                                                             |0001|1263|         F_LSZ Y_[W1],POP                       ; Ext clocks, 300 baud,
                                                                             |0001|1264|                                                ; 1 stop bit, 8bits, async lx
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,15,01,00,0201,00,7,01,0,0,0,0002|1265|        J[LNOMDW]_RAMFILE ADR,POP               ;CTY mode word
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,5020,00,7,07,0,0,0,0003|1266|        SWAP [W1]_[W1],
                                                                             |0003|1267|         CALL [W1_RAMFILE]
                                                                             |0003|1268|        ; GOTO [TEST]
                                                                             |0003|1269|
                                                                             |0003|1270|;Here to check system seems to be ok
                                                                             |0003|1271|; This clobbers everything in Ramfile except CTY status and mode
                                                                             |0003|1272|; After checking will initialize Ramfile and 2903 regs
                                                                             |0003|1273|
                                                                             |0003|1274|
000,000,0,04,00,1,00,0,77,0,0,00,00,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,0004|1275|TEST:
                                                                             |0004|1276|;Initialize some registers
                                                                             |0004|1277|        ONES_[K -1],POP
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0001,00,7,01,0,0,0,0005|1278|        J[1]_[W1],POP
000,000,0,04,10,0,02,2,57,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0000,00,7,07,0,0,0,0006|1279|        SWAP [W1]_[BIT17],POP
                                                                             |0006|1280|
                                                                             |0006|1281|.IF/FTDIAG
                                                                             |0006|1282|;First quick check on 2903, 2904, and 2910
                                                                             |0006|1283|        LIGHTS [1]                              ;1st ALU test
000,000,0,04,10,1,00,0,60,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0001,00,7,01,0,0,0,0007|1284|        JN[07776]_[W1]                          ;-2 to W1
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,1306,00,7,00,0,0,0,0009|1285|        [W1]_Y,
                                                                             |0009|1286|         IF NOT CT [IN] THEN [ALU BROKE]
000,000,0,04,06,1,02,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1306,00,7,00,0,0,0,0010|1287|        [W1]+1_[W1],
                                                                             |0010|1288|         IF CT [IZ] THEN [ALU BROKE]
000,000,0,04,06,1,02,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,03,00,1306,00,7,00,0,0,0,0011|1289|        [W1]+1_[W1],
                                                                             |0011|1290|         IF NOT CT [IZ] THEN [ALU BROKE]
                                                                             |0011|1291|;Right shift a bit through Q register
                                                                             |0011|1292|;Left rotate a bit through W1
                                                                             |0011|1293|;Count -36 to zero
                                                                             |0011|1294|        JS[0]_[W1]                              ;400000,,0_W1
000,000,0,06,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0043,00,7,00,0,0,0,0013|1295|        [W1]_Q,J[043]_CTR                       ;44(8) = 36(10)
                                                                             |0013|1296|        JN[07733]_[W2]                          ;Number to count up to zero
000,000,0,05,14,1,77,0,00,0,0,00,00,01,00,00,0,64,1,1,1,03,02,00,1306,00,7,00,0,0,0,0015|1297|TALU21: Q_F,F_Y LSRQ_Q,                         ;Shift Q right
                                                                             |0015|1298|         IF CT [IZ] THEN [ALU BROKE]
000,000,1,11,06,1,02,0,00,0,0,00,00,51,00,00,0,64,1,1,1,03,02,00,1306,00,7,00,0,0,0,0016|1299|        ROL [W1]_[W1],                          ;Put 1 in W1
                                                                             |0016|1300|         IF CT [IZ] THEN [ALU BROKE]
000,000,0,04,06,1,06,0,04,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1306,00,7,00,0,0,0,0017|1301|        [W2]+1_[W2],                            ;Check did not go to zero yet
                                                                             |0017|1302|        IF CT [IZ] THEN [ALU BROKE]
                                                                             |0017|1303|        LOOP [TALU21]                           ;Back for rest of count
000,000,0,05,14,1,77,0,00,0,0,00,00,01,00,00,0,64,1,1,1,03,03,00,1306,00,7,00,0,0,0,0019|1304|        Q_F,F_Y LSRQ_Q,
                                                                             |0019|1305|         IF NOT CT [IZ] THEN [ALU BROKE]
000,000,1,11,06,1,02,0,00,0,0,00,00,51,00,00,0,76,1,1,1,03,03,00,1306,00,7,00,0,0,0,0020|1306|        ROL [W1]_[W1],                          ;Rotate one more position
                                                                             |0020|1307|         IF NOT CT [IN] THEN [ALU BROKE]
000,000,0,14,03,0,77,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1306,00,7,00,0,0,0,0021|1308|        [K -1]+[W1]_Y,
                                                                             |0021|1309|         IF NOT CT [IZ] THEN [ALU BROKE]
000,000,0,04,06,1,06,0,04,0,1,00,00,00,00,00,0,64,1,1,1,03,03,00,1306,00,7,00,0,0,0,0022|1310|        [W2]+1_[W2],                            ;Final count out
                                                                             |0022|1311|         IF NOT CT [IZ] THEN [ALU BROKE]
                                                                             |0022|1312|
                                                                             |0022|1313|;Verify UX and MX in 2904
                                                                             |0022|1314|;For this test bits 28-31 is UX, 32-35 is MX
                                                                             |0022|1315|
                                                                             |0022|1316|        LIGHTS [2]
000,000,0,04,10,1,00,0,60,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0002,00,7,01,0,0,0,0023|1317|        J[0377]_[W2]                            ;Start with all flags
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0377,00,7,01,0,0,0,0024|1318|.IF/FTBB
                                                                             |0024|1319|;Set UX from W2 bits 28-31, set KX from W2 bits 32-35
000,000,0,01,06,1,06,0,00,0,0,00,00,51,00,00,0,20,1,1,1,14,00,00,0002,00,7,00,0,0,0,0025|1320|TUMX12: ROR [W2]_[W1],J[2]_CTR
000,000,0,01,06,1,02,0,00,0,0,00,00,51,00,00,0,00,1,0,1,11,00,00,0032,00,7,00,0,0,0,0026|1321|TUMX13: ROR [W1]_[W1],Y_MX,LOOP [TUMX13]        ;Load MA from 32-35
000,000,0,01,06,1,02,0,00,0,0,00,00,51,00,00,0,02,0,1,1,14,00,00,0002,00,7,00,0,0,0,0027|1322|        ROR [W1]_[W1],
                                                                             |0027|1323|         J[2]_CTR,MX_UX                         ;Load UX from 32-35
000,000,0,01,06,1,02,0,00,0,0,00,00,51,00,00,0,00,1,0,1,11,00,00,0034,00,7,00,0,0,0,0028|1324|TUMX14: ROR [W1]_[W1],Y_MX,LOOP [TUMX14]        ;Load MX from 28-31
                                                                             |0028|1325|        MX_UX UX_MX                             ;Exchange MX and Ux
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,02,0,0,0,16,00,00,0000,00,7,00,0,0,0,0029|1326|
                                                                             |0029|1327|;Verify UX & MX by reading onto Y bus
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,01,1,1,0,14,00,00,0003,00,7,06,0,0,0,0030|1328|        UX_[W1],J[3]_CTR                        ;Get micro flags
000,000,1,11,06,1,02,0,00,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,0037,00,7,00,0,0,0,0031|1329|TUMX15: ROL [W1]_[W1],LOOP [TUMX15]             ;Put UX in W1 bits 31-35
                                                                             |0031|1330|        J[017]_[W3]                             ;Mask for extra Y bus bits
000,000,0,07,14,0,12,0,00,0,0,00,00,00,00,00,2,20,1,1,0,14,00,00,0003,00,7,06,0,0,0,0033|1331|        [W3]&[W1]_F,F_Q Y_[W1],                 ;Mask off extra bits
                                                                             |0033|1332|        MX_Y,J[3]_CTR
000,000,1,13,06,1,02,0,00,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,0042,00,7,00,0,0,0,0034|1333|TUMX16: ROL [W1]_[W1] ROL Q_Q,LOOP [TUMX16]     ;Shift left 4 places
                                                                             |0034|1334|        [W3]&[W1]_B                             ;Mask off extra bits
000,000,0,04,14,0,12,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0035|1335|        Q.OR.[W1]_[W1]
000,000,0,14,13,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1306,00,7,00,0,0,0,0037|1336|        [W1].XOR.[W2]_Y,
                                                                             |0037|1337|         IF NOT CT [IZ] THEN [ALU BROKE]
                                                                             |0037|1338|.ENDIF/FTBB
                                                                             |0037|1339|.IFNOT/FTBB
                                                                             |0037|1340|;Set UX from W2 bits 28-31, set MX from W2 bits 32-35
                                                                             |0037|1341|TUMX12: LRS [W2]_[W1],J[2]_CTR
                                                                             |0037|1342|TUMX13: LRS [W1]_[W1],Y_MX,                     ;Load MX from 28-31
                                                                             |0037|1343|         LOOP [TUMX13]
                                                                             |0037|1344|        [W2]_Y,Y_MX MX_UX                       ;Load UX from MX and MX from Y
                                                                             |0037|1345|
                                                                             |0037|1346|;Verify UX & MX by reading onto Y bus
                                                                             |0037|1347|        UX_[W1]                                 ;Get micro flags
                                                                             |0037|1348|        J[17]_[W3]                              ;Mask for extra Y bus bits
                                                                             |0037|1349|        [W3]&[W1]_B,J[1]_CTR                    ;Mask off extra bits
                                                                             |0037|1350|TUMX16: #4*[W1]_B,LOOP [TUMX16]                 ;Put UX in W1 bits 28-31
                                                                             |0037|1351|        MX_[W1],[W3]&[W1]_F,F_Q Y_[W1]          ;Mask off extra bits
                                                                             |0037|1352|        Q.OR.[W1]_[W1]                          ;Combine UX and MX
                                                                             |0037|1353|        [W1].XOR.[W2]_Y,
                                                                             |0037|1354|         IF NOT CT [II] THEN [ALU BROKE]
                                                                             |0037|1355|.ENDIF/FTBB
                                                                             |0037|1356|
                                                                             |0037|1357|;Verify UX & MX with TEST SELECT
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,26,1,1,1,01,02,00,1263,00,7,00,0,0,0,0038|1358|        ZERO_[W1],IF CT [UOVR] CALL [W1+1_W1]
000,000,0,04,03,0,02,0,00,0,0,00,00,00,00,00,0,32,1,1,1,01,02,00,1263,00,7,00,0,0,0,0039|1359|        [W1]+[W1]_B,IF CT [UC] CALL [W1+1_W1]
000,000,0,04,03,0,02,0,00,0,0,00,00,00,00,00,0,36,1,1,1,01,02,00,1263,00,7,00,0,0,0,0040|1360|        [W1]+[W1]_B,IF CT [UN] CALL [W1+1_W1]
000,000,0,04,03,0,02,0,00,0,0,00,00,00,00,00,0,24,1,1,1,01,02,00,1263,00,7,00,0,0,0,0041|1361|        [W1]+[W1]_B,IF CT [UZ] CALL [W1+1_W1]
000,000,0,04,03,0,02,0,00,0,0,00,00,00,00,00,0,46,1,1,1,01,02,00,1263,00,7,00,0,0,0,0042|1362|        [W1]+[W1]_B,IF CT [MOVR] CALL [W1+1_W1]
000,000,0,04,03,0,02,0,00,0,0,00,00,00,00,00,0,52,1,1,1,01,02,00,1263,00,7,00,0,0,0,0043|1363|        [W1]+[W1]_B,IF CT [MC] CALL [W1+1_W1]
000,000,0,04,03,0,02,0,00,0,0,00,00,00,00,00,0,56,1,1,1,01,02,00,1263,00,7,00,0,0,0,0044|1364|        [W1]+[W1]_B,IF CT [MN] CALL [W1+1_W1]
000,000,0,04,03,0,02,0,00,0,0,00,00,00,00,00,0,44,1,1,1,01,02,00,1263,00,7,00,0,0,0,0045|1365|        [W1]+[W1]_B,IF CT [MZ] CALL [W1+1_W1]
000,000,0,14,13,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1306,00,7,00,0,0,0,0046|1366|        [W1].XOR.[W2]_Y,
                                                                             |0046|1367|         IF NOT CT [IZ] THEN [ALU BROKE]
                                                                             |0046|1368|
000,000,0,04,03,0,77,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0031,00,7,00,0,0,0,0047|1369|        [K -1]+[W2]_B,
                                                                             |0047|1370|         IF NOT CT [IN] THEN [TUMX12]
                                                                             |0047|1371|
                                                                             |0047|1372|
                                                                             |0047|1373|;Verify LOCAL, USER, PAGED, RUN, TOPS20, PXCT, and TRAP latches
                                                                             |0047|1374|
                                                                             |0047|1375|        LIGHTS [3]
000,000,0,04,10,1,00,0,60,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0003,00,7,01,0,0,0,0048|1376|        J[0177]_[W2]                            ;1st check all latches
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0177,00,7,01,0,0,0,0049|1377|
000,000,0,07,06,1,06,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0100,00,7,01,0,0,0,0050|1378|TLTCH2:
                                                                             |0050|1379|;Here to set LOCAL, USER, PAGED, RUN, TOPS20, PXCT, & TRAP latches from W2
                                                                             |0050|1380|        J[0100]_Y24-Y35,[W2]_F,Y_[W3] F_Q
000,000,0,15,14,1,12,0,00,0,0,00,10,00,00,00,0,64,1,1,1,01,03,00,1262,00,7,00,0,0,0,0051|1381|        Q&[W3]_F,F_Y QLS_Q,CLEAR LOCAL,
                                                                             |0051|1382|         IF NOT CT [IZ] CALL [SET LOCAL LATCH]
000,000,0,15,14,1,12,0,00,0,0,00,20,00,00,00,0,64,1,1,1,01,03,00,2322,00,7,00,0,0,0,0052|1383|        Q&[W3]_F,F_Y QLS_Q,CLEAR USER,
                                                                             |0052|1384|         IF NOT CT [IZ] CALL [SET USER LATCH]
000,000,0,15,14,1,12,0,00,0,0,00,30,00,00,00,0,64,1,1,1,01,03,00,3315,00,7,00,0,0,0,0053|1385|        Q&[W3]_F,F_Y QLS_Q,CLEAR PAGED,
                                                                             |0053|1386|         IF NOT CT [IZ] CALL [SET PAGED LATCH]
000,000,0,15,14,1,12,0,00,0,0,00,40,00,00,00,0,64,1,1,1,01,03,00,1261,00,7,00,0,0,0,0054|1387|        Q&[W3]_F,F_Y QLS_Q,CLEAR RUN,
                                                                             |0054|1388|         IF NOT CT [IZ] CALL [SET RUN LATCH]
000,000,0,15,14,1,12,0,00,0,0,00,50,00,00,00,0,64,1,1,1,01,03,00,1256,00,7,00,0,0,0,0055|1389|        Q&[W3]_F,F_Y QLS_Q,CLEAR TOPS20,
                                                                             |0055|1390|         IF NOT CT [IZ] CALL [SET TOPS20 LATCH]
000,000,0,15,14,1,12,0,00,0,0,00,60,00,00,00,0,64,1,1,1,01,03,00,1260,00,7,00,0,0,0,0056|1391|        Q&[W3]_F,F_Y QLS_Q,CLEAR PXCT,
                                                                             |0056|1392|         IF NOT CT [IZ] CALL [SET PXCT LATCH]
000,000,0,15,14,1,12,0,00,0,0,00,70,00,00,00,0,64,1,1,1,01,03,00,1257,00,7,00,0,0,0,0057|1393|        Q&[W3]_F,F_Y QLS_Q,CLEAR TRAP,
                                                                             |0057|1394|         IF NOT CT [IZ] CALL [SET TRAP LATCH]
                                                                             |0057|1395|
                                                                             |0057|1396|;Here to read LOCAL, USER, PAGED, RUN, TOPS20, PXCT, & TRAP latches into W1
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,34,00,1263,00,7,00,0,0,0,0058|1397|        ZERO_[W1],IF [LOCAL] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,36,00,1263,00,7,00,0,0,0,0059|1398|        #2*[W1]_[W1],IF [USER] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,40,00,1263,00,7,00,0,0,0,0060|1399|        #2*[W1]_[W1],IF [PAGED] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,42,00,1263,00,7,00,0,0,0,0061|1400|        #2*[W1]_[W1],IF [RUN] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,44,00,1263,00,7,00,0,0,0,0062|1401|        #2*[W1]_[W1],IF [TOPS20] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,46,00,1263,00,7,00,0,0,0,0063|1402|        #2*[W1]_[W1],IF [PXCT] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,66,00,1263,00,7,00,0,0,0,0064|1403|        #2*[W1]_[W1],IF [TRAP] CALL [W1+1_W1]
                                                                             |0064|1404|
                                                                             |0064|1405|        CALL [TVR XY]                           ;Be sure W1 and W2 are same
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1267,00,7,00,0,0,0,0065|1406|
000,000,0,04,03,0,77,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0062,00,7,00,0,0,0,0066|1407|        [K -1]+[W2]_B,                          ;Next combination of latches
                                                                             |0066|1408|         IF NOT CT [IN] THEN [TLTCH2]
                                                                             |0066|1409|
                                                                             |0066|1410|;Verify the PI status register may be read and written
                                                                             |0066|1411|        LIGHTS [4]
000,000,0,04,10,1,00,0,04,0,0,00,00,00,46,00,0,20,1,1,0,16,00,00,0007,00,7,01,0,0,0,0068|1412|        J[7]_[W2],Y_2914 STATUS                 ;1st value for reg
                                                                             |0068|1413|        J[7]_[W3]                               ;Mask for value
000,000,0,04,10,0,00,0,00,0,0,00,00,00,32,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0070|1414|TP12:   #2914 STATUS_Y,Y_[W1]                   ;Get value back from reg
000,000,0,04,14,0,12,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1267,00,7,00,0,0,0,0071|1415|        [W3]&[W1]_B,
                                                                             |0071|1416|         CALL [TVR XY]                          ; Be sure we got correct value
000,000,0,04,03,0,77,0,04,0,0,00,00,00,46,00,0,76,1,1,1,03,03,00,0106,00,7,00,0,0,0,0072|1417|        [K -1]+[W2]_B,Y_2914 STATUS,
                                                                             |0072|1418|         IF NOT CT [IN] THEN [TP12]
                                                                             |0072|1419|
                                                                             |0072|1420|;Verify the PI mask register may be read & written 
                                                                             |0072|1421|.IF/FTLDIAG
                                                                             |0072|1422|        LIGHTS [5]
000,000,0,04,10,1,00,0,04,0,0,00,00,00,72,00,0,20,1,1,0,16,00,00,0377,00,7,01,0,0,0,0074|1423|        J[0377]_[W2],                           ;1st value for mask
                                                                             |0074|1424|         Y_2914 MASK
                                                                             |0074|1425|        J[0377]_[W3]                            ;Mask for mask register
000,000,0,04,10,0,00,0,00,0,0,00,00,00,36,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0076|1426|TP13:   Y_[W1],#2914 MASK_Y                     ;Get value back from mask
000,000,0,04,14,0,12,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1267,00,7,00,0,0,0,0077|1427|        [W3]&[W1]_B,                            ;Mask off extra bits
                                                                             |0077|1428|         CALL [TVR XY]                          ;Be sure we got correct value
000,000,0,04,03,0,77,0,04,0,0,00,00,00,72,00,0,76,1,1,1,03,03,00,0114,00,7,00,0,0,0,0078|1429|        [K -1]+[W2]_B,
                                                                             |0078|1430|         Y_2914 MASK,
                                                                             |0078|1431|         IF NOT CT [IN] THEN [TP13]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,36,00,0,76,1,1,0,03,03,00,0106,00,7,00,0,0,0,0079|1432|        #2914 MASK_Y,                           ;Next value for register
                                                                             |0079|1433|         IF NOT CT [IN] THEN [TP12]
                                                                             |0079|1434|.ENDIF/FTLDIAG
                                                                             |0079|1435|
                                                                             |0079|1436|;Verify the PI mask register blocks interrupts
                                                                             |0079|1437|        LIGHTS [6]
000,000,0,04,10,1,00,0,60,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0006,00,7,01,0,0,0,0080|1438|        J[0377]_[W2]                            ;1st value for mask
000,000,0,04,10,1,00,0,24,0,0,00,00,00,02,00,0,20,1,1,0,16,00,00,7777,00,7,01,0,0,0,0082|1439|TP14:   J[07777]_[W6],                          ;Stall counter
                                                                             |0082|1440|         INT OP/MASTER CLEAR
000,000,0,14,06,1,06,0,00,0,0,00,00,00,72,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0083|1441|        [W2]_Y,Y_2914 MASK                      ;Inhibit some interrupts
                                                                             |0083|1442|        J[0377]_[W1]                            ;Chnls where ints did not happen
000,000,0,01,06,1,02,0,10,0,0,00,00,01,00,00,0,20,1,1,1,16,00,00,0000,00,7,10,0,0,0,0085|1443|        LRS [W1]_[W3],ALU_PROC REG              ;Start ints on all chnls
000,000,0,04,10,1,00,0,14,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0007,00,7,01,0,0,0,0086|1444|TP17:   J[7]_[W4]                               ;Mask for 2914 status
000,000,0,06,06,1,16,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,20,00,0141,00,7,00,0,0,0,0087|1445|        [W4]_Q,
                                                                             |0087|1446|        IF [NO PI REQ] THEN [TP19]
000,000,0,14,06,1,16,0,00,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,01,0,0,0,0088|1447|        [W4]+1_Y,ALU_CTR                        ;Load ctr with 010
000,000,0,14,10,0,00,0,00,0,0,00,00,00,26,00,0,20,1,1,0,03,75,00,0134,00,7,00,0,0,0,0089|1448|        IF [TIMER FLAG] THEN [TP171],
                                                                             |0089|1449|         GRANT INTERRUPT                        ; Grant interrupt
000,000,0,04,10,0,00,0,14,0,0,00,00,00,32,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0090|1450|        #2914 STATUS_Y,Y_[W4]
000,000,0,14,14,1,16,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,01,0,0,0,0091|1451|        Q&[W4]_Y,ALU_CTR                        ;Get interrupting level+1
000,000,0,01,10,1,00,0,14,0,0,00,00,05,00,00,0,20,1,1,1,03,01,00,0136,00,7,00,0,0,0,0092|1452|TP171:  BIT0_[W4],                              ;Bit for interrupt
                                                                             |0092|1453|        GOTO [TP173]
000,000,1,11,06,1,16,0,14,0,0,00,00,51,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0093|1454|TP172: ROL [W4]_[W4]
000,000,0,14,10,1,00,0,00,0,0,00,00,00,46,00,0,20,1,1,1,11,00,00,0135,00,7,00,0,0,0,0094|1455|TP173: ZERO_Y,Y_2914 STATUS,                    ;Allow next interrupt
                                                                             |0094|1456|        LOOP [TP172]
                                                                             |0094|1457|        [W4]BAR&[W1]_B                          ;Flag we got int
000,000,0,04,11,0,16,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,10,0,0,0,0096|1458|        [W4]BAR&[W3]_B,ALU_PROC REG             ;Stop trying to make that kind
000,000,0,04,03,0,77,0,24,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0097|1459|TP19:   [K -1]+[W6]_B
                                                                             |0097|1460|        IF NOT CT [IN] THEN [TP17]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,76,1,1,0,03,03,00,0126,00,7,00,0,0,0,0098|1461|        CALL [TVR XY]                           ;See if right ints were inhibited
000,000,0,04,03,0,77,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0122,00,7,00,0,0,0,0100|1462|        [K -1]+[W2]_B,
                                                                             |0100|1463|         IF NOT CT [IN] THEN [TP14]
                                                                             |0100|1464|
                                                                             |0100|1465|;Save CTY registers
                                                                             |0100|1466|        J[LNOMDW]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0201,00,7,01,0,0,0,0101|1467|        RAMFILE_[PC]                    ;Save mode register here
000,000,0,04,10,0,00,0,34,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0102|1468|
                                                                             |0102|1469|;Ramfile test 1, float a bit through each word in Ramfile
                                                                             |0102|1470|
000,000,0,04,10,1,00,0,60,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0007,00,7,01,0,0,0,0103|1471|TVR 00: LIGHTS [7.]                             ;First ramfile test
                                                                             |0103|1472|        CALL [TVR X0]                           ;Point to highest ramfile adr
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0001,00,7,01,0,0,0,0105|1473|TVR 1:  J[1]_[W2]                               ;Bit to float
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,00,0,20,1,0,1,01,01,00,1266,00,7,04,0,0,0,0106|1474|TVR 2:  [W2]_RAMFILE,IX_MX,                     ;Write next pattern in ramfile
                                                                             |0106|1475|         CALL [TVR XX]                          ; Check we could write bit
000,000,1,11,06,1,06,0,04,0,0,00,00,11,00,00,0,44,1,1,1,03,03,00,0152,00,7,00,0,0,0,0107|1476|        #2*[W2]_[W2],                           ;Write next word in ramfile
                                                                             |0107|1477|         IF NOT CT [MZ] THEN [TVR 2]
000,000,0,14,14,1,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0108|1478|        Q_Y,ALU_RAMFILE                         ;Write words address in word
000,000,0,06,03,1,77,0,00,0,0,00,00,00,00,03,0,76,1,1,1,03,03,00,0151,00,7,00,0,0,0,0109|1479|        Q+[K -1]_F,F_Q_Y,Y_RAMFILE ADR,         ;Next ramfile location
                                                                             |0109|1480|         IF NOT CT [IN] THEN [TVR 1]
                                                                             |0109|1481|
                                                                             |0109|1482|;Ramfile test 2, verify each word has its address written in it
                                                                             |0109|1483|        LIGHTS [8.]                             ;Second ramfile test
000,000,0,04,10,1,00,0,60,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0010,00,7,01,0,0,0,0110|1484|        CALL [TVR X0]                           ;Initialize ramfile adr
000,000,0,04,14,1,77,0,04,0,0,00,00,00,00,03,0,20,1,1,1,01,01,00,1266,00,7,00,0,0,0,0112|1485|TVR 3:  Q_[W2],Y_RAMFILE ADR,                   ;Address should equal data
                                                                             |0112|1486|        CALL [TVR XX]
000,000,0,06,03,1,77,0,00,0,0,00,00,00,00,03,0,76,1,1,1,03,03,00,0160,00,7,00,0,0,0,0113|1487|        Q+[K -1]_F,F_Q_Y,Y_RAMFILE ADR,         ;Next ramfile word
                                                                             |0113|1488|         IF NOT CT [IN] THEN [TVR 3]
                                                                             |0113|1489|
                                                                             |0113|1490|;Ramfile test 3, address ramfile with special selects
                                                                             |0113|1491|         LIGHTS [9.]                            ;Third ramfile test
000,000,0,04,10,1,00,0,04,0,0,00,24,00,00,00,0,20,1,1,0,16,00,00,1477,00,7,01,0,0,0,0115|1492|         J[01477]_[W2],SET USER                 ;Expected page table contents
                                                                             |0115|1493|         J[0000]_[W3]                           ; Illegal section, sect.NE.0,
000,000,0,04,10,1,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,01,0,0,0,0116|1494|                                                ; not AC ref, no context match
000,000,0,14,00,1,00,0,00,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,1247,00,7,00,0,0,0,0117|1495|        ONES_F,F_Y,
                                                                             |0117|1496|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0117|1497|        CALL [RDPG LATCHES]
000,000,0,04,10,1,00,0,04,0,0,00,20,00,00,00,0,20,1,1,0,16,00,00,1000,00,7,01,0,0,0,0118|1498|        J[01000]_[W2],SET EXEC                  ;Correct page table contents
                                                                             |0118|1499|        J[00016]_[W3]                           ; Legal section, sect.EQ.0
000,000,0,04,10,1,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0016,00,7,01,0,0,0,0119|1500|                                                ; AC ref, no context match
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,1247,00,7,10,0,0,0,0120|1501|        ZERO_Y,ALU_PROC REG,                    ;Register block 0
                                                                             |0120|1502|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0120|1503|         CALL [RDPG LATCHES]
                                                                             |0120|1504|        J[0701]_[W1]                            ;Will be AC16, XR=1
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0701,00,7,01,0,0,0,0121|1505|        SWAP [W1]_[W1]
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0122|1506|        J[0601]_[W1]
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,33,0,20,1,1,1,01,01,00,1266,00,7,11,0,0,0,0124|1507|        [W1]_Y,LOAD IR,SPEC SEL/XR,             ;Load IR
                                                                             |0124|1508|         CALL [TVR XX]
                                                                             |0124|1509|        J[0600]_[W2]                             ;What should be in AC0 block 0
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,23,0,20,1,1,1,01,01,00,1266,00,7,00,0,0,0,0126|1510|        ZERO_Y,SPEC SEL/VMA,                    ;Address AC0
                                                                             |0126|1511|         CALL [TVR XX]
                                                                             |0126|1512|        SEL AC+[2]                              ;Select AC2 block 0
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,02,0000,00,7,00,0,0,0,0127|1513|        CALL [TVR XX]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1266,00,7,00,0,0,0,0128|1514|        J[0616]_[W2]
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0616,00,7,01,0,0,0,0129|1515|        SEL AC+[0]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0130|1516|        CALL [TVR XX]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1266,00,7,00,0,0,0,0131|1517|
                                                                             |0131|1518|;Zero entire Ramfile
                                                                             |0131|1519|        CALL [TVR X0]                           ;Set first adr for ramfile
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0133|1520|IRF 2:  ZERO_Y,ALU_RAMFILE
000,000,0,06,03,1,77,0,00,0,0,00,00,00,00,03,0,76,1,1,1,03,03,00,0205,00,7,00,0,0,0,0134|1521|        Q+[K -1]_F,F_Q_Y,Y_RAMFILE ADR,
                                                                             |0134|1522|         IF NOT CT [IN] THEN [IRF 2]
                                                                             |0134|1523|
                                                                             |0134|1524|;Check PCIs are OK
                                                                             |0134|1525|        J[LNOSW]_[W6]                           ;First line block adr
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,0135|1526|
                                                                             |0135|1527|;Verify we can read/write CR register
000,000,0,04,10,1,00,0,60,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0012,00,7,01,0,0,0,0136|1528|TPC10:  LIGHTS [10.]
                                                                             |0136|1529|        [W6]_[PXCT LH]
000,000,0,04,06,1,26,0,61,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0137|1530|        J[0357]_[W4]                            ;Mask for compare
000,000,0,04,10,1,00,0,14,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0357,00,7,01,0,0,0,0138|1531|        J[0377]_[W3]                            ; Initial value
000,000,0,04,10,1,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0377,00,7,01,0,0,0,0139|1532|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0030,00,7,01,0,0,0,0140|1533|TPC 11: J[A1!A0]_[W1]                           ;To address CR register
000,000,0,04,06,1,12,0,04,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3715,00,7,00,0,0,0,0141|1534|        [W3]_[W2],CALL [WR PCI]                 ;Write CR register
                                                                             |0141|1535|        CALL [RD PCI CR]                        ;Get CR now
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3711,00,7,00,0,0,0,0142|1536|        [W4]&[W2]_B                             ;Leave only good data
000,000,0,04,14,0,16,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1267,00,7,00,0,0,0,0144|1537|        [W4]&[W1]_B,                            ;Leave only read data
                                                                             |0144|1538|         CALL [TVR XY]                          ; Compare good with bad
000,000,0,04,03,0,77,0,10,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0214,00,7,00,0,0,0,0145|1539|        [K -1]+[W3]_B,                          ;Next value for CR
                                                                             |0145|1540|         IF NOT CT [IN] THEN [TPC 11]
                                                                             |0145|1541|
                                                                             |0145|1542|;Verify we can read/write MRI/2
                                                                             |0145|1543|        J[021]_[PXCT RH]
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0021,00,7,01,0,0,0,0146|1544|
000,000,0,14,06,1,26,0,00,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0147|1545|        [W6]+1_Y,Y_RAMFILE ADR                  ;Address mode word in ramfile
                                                                             |0147|1546|.IF/FTLDIAG
                                                                             |0147|1547|        J[06000]_[W1]                           ;Will become 30000
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,0,16,00,00,7777,00,7,01,0,0,0,0149|1548|        J[07777]_Y24-Y35,[W1]+[W1]_F,           ;Leave 37777 in W1
                                                                             |0149|1549|        F_LSZ Y_[W1]
                                                                             |0149|1550|        SWAP [W1]_[W2]                          ;Put 37777,,0 in W2
000,000,0,04,10,0,02,2,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0150|1551|.ENDIF/FTLDIAG
                                                                             |0150|1552|.IFNOT/FTLDIAG
                                                                             |0150|1553|        J[4000]_[W1]                            ;Will become 020000
                                                                             |0150|1554|        #4*[W1]_B                                ;Makes 020000
                                                                             |0150|1555|        SWAP [W1]_[W2]                          ;Make 020000,,0
                                                                             |0150|1556|.ENDIF/FTLDIAG
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3500,00,7,04,0,0,0,0151|1557|TPC12:  [W2]_RAMFILE,
                                                                             |0151|1558|        CALL [SET PCI MODE]
                                                                             |0151|1559|        J[A1]_[W1]                              ;For PCI adr to read MR1/2
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0020,00,7,01,0,0,0,0152|1560|        CALL [RD PCI]                           ;Get MR1
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3712,00,7,00,0,0,0,0153|1561|        J[0377]_[W3]                            ;Mask for extra bits
000,000,0,04,10,1,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0377,00,7,01,0,0,0,0154|1562|        [W3]&[W1]_Q                             ;Leave only MR1 in Q
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0003,00,7,03,0,0,0,0156|1563|        PCI_ALU,Y_[W1],J[3]_CTR                 ;Read MR2
                                                                             |0156|1564|        J[077]_[W2]                             ;Mask for MR25-MR20
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0077,00,7,01,0,0,0,0157|1565|        [W2]&[W1]_B
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,0237,00,7,00,0,0,0,0159|1566|TPC14:  #4*[W1]_B,LOOP [TPC14]
                                                                             |0159|1567|        Q+[W1]_[W1]                             ;Combine W1 and W2
000,000,0,14,06,1,26,0,00,0,1,00,00,00,00,03,0,20,1,1,1,01,01,00,4026,00,7,00,0,0,0,0161|1568|        [W6]+1_Y,Y_RAMFILE ADR,                 ;Address ramfile mode word
                                                                             |0161|1569|         CALL [SWAP W1_W1]                      ;Position like ramfile
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1267,00,7,04,0,0,0,0162|1570|        RAMFILE_[W2],CALL [TVR XY]              ;Get correct answer
                                                                             |0162|1571|.IF/FTLDIAG
000,000,0,04,01,0,57,0,04,0,1,00,00,00,00,00,0,76,1,1,1,03,03,00,0227,00,7,00,0,0,0,0163|1572|        [W2]-[BIT17]_A,                         ;On to next combination
                                                                             |0163|1573|         IF NOT CT [IN] THEN [TPC12]
                                                                             |0163|1574|.ENDIF/FTLDIAG
                                                                             |0163|1575|.IFNOT/FTLDIAG
                                                                             |0163|1576|        ROR [W2]_[W2 LH],                       ;On to next bit
                                                                             |0163|1577|         IF NOT CT [IZ] THEN [TPC12]
                                                                             |0163|1578|.ENDIF/FTLDIAG
                                                                             |0163|1579|
                                                                             |0163|1580|;Now ready for Next line
                                                                             |0163|1581|        J[010]_[W1]                              ;Bit to test
000,000,0,04,03,0,57,0,24,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4026,00,7,00,0,0,0,0165|1582|        [BIT17]+[W6]_B,                         ;Next line number in LH
                                                                             |0165|1583|         CALL [SWAP W1_W1]                      ;Position to test line number
000,000,0,14,14,0,02,0,24,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0210,00,7,00,0,0,0,0166|1584|         [W1]&[W6]_Y,                           ;See if we are done
                                                                             |0166|1585|          IF CT [IZ] THEN [TPC10]
                                                                             |0166|1586|
                                                                             |0166|1587|;Restore CTY Ramfile registers
                                                                             |0166|1588|        J[LNOMDW]_RAMFILE ADR
000,000,0,14,14,0,77,0,34,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0764,00,7,04,0,0,0,0168|1589|        [PC]_RAMFILE,
                                                                             |0168|1590|        CALL [CMD&CMR FLUSH]                    ;Flush CMD and CMR buffers
                                                                             |0168|1591|
                                                                             |0168|1592|;Checksum DISPATCH RAM
                                                                             |0168|1593|        LIGHTS [11.]                            ;Check DISPATCH ROM
000,000,0,07,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0170|1594|        ZERO_F,F_Q_[W1]                         ;Initialize checksum
                                                                             |0170|1595|        J[0777]_[W2]                            ;First IR
000,000,0,04,10,0,06,2,10,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0003,00,7,07,0,0,0,0172|1596|TDP1:   SWAP [W2]_[W3],J[3]_CTR
000,000,1,11,03,0,12,0,10,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,0255,00,7,00,0,0,0,0173|1597|TDP2:   #4*[W3]_B,LOOP [TDP2]
000,000,1,11,06,1,12,0,10,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,11,0,0,0,0174|1598|        #2*[W3]_[W3],LOAD IR
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,10,7,01,0,0,0,0175|1599|        DISP [010]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,11,7,01,0,0,0,0176|1600|        DISP [011]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,12,7,01,0,0,0,0177|1601|        DISP [012]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,13,7,01,0,0,0,0178|1602|        DISP [013]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,14,7,01,0,0,0,0179|1603|        DISP [014]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,15,7,01,0,0,0,0180|1604|        DISP [015]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,16,7,01,0,0,0,0181|1605|        DISP [016]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,07,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,00,00,0000,17,7,01,0,0,0,0182|1606|        DISP [017]_Y,Q+[W1]_F,F_Q Y_[W1]
000,000,0,04,03,0,77,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0254,00,7,00,0,0,0,0183|1607|        [K -1]+[W2]_B,                          ;Next value for IR
                                                                             |0183|1608|         IF NOT CT [IN] THEN [TDP1]
                                                                             |0183|1609|        Q+[W1]_[W1]                             ;Make final checksum
000,000,0,04,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0184|1610|        J[07777]_[W3]                           ;Mask for checksum
000,000,0,04,10,1,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,7777,00,7,01,0,0,0,0185|1611|        J[0105]_[W2]                            ;Known checksum
000,000,0,04,14,0,12,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1267,00,7,00,0,0,0,0187|1612|        [W3]&[W1]_B,                            ;Mask result to 12 bits
                                                                             |0187|1613|        CALL [TVR XY]                           ; Compare two values
                                                                             |0187|1614|
                                                                             |0187|1615|;Check memory is OK
                                                                             |0187|1616|        ;GOTO [SYS INIT]                        ;Initialize everything
                                                                             |0187|1617|.ENDIF/FTDIAG
                                                                             |0187|1618|.IFNOT/FTDIAG
                                                                             |0187|1619|        J[LNOMDW]_RAMFILE ADR                   ;Address tty mode word
                                                                             |0187|1620|        J[02000]_[W1]
                                                                             |0187|1621|        RAMFILE_[W6]                            ;Save it
                                                                             |0187|1622|        ZERO_[W2],Y_RAMFILE ADR
                                                                             |0187|1623|IR2:    ZERO_Y,ALU_RAMFILE,
                                                                             |0187|1624|         CALL [W2+1_RFA]
                                                                             |0187|1625|        [K -1]+[W1]_B,
                                                                             |0187|1626|         IF NOT CT [IZ] THEN [IR2]
                                                                             |0187|1627|        J[LNOMDW]_RAMFILE ADR                   ;Address Cty mode word
                                                                             |0187|1628|        [W6]_Y,ALU_RAMFILE,
                                                                             |0187|1629|         CALL [CMD&CMR FLUSH]                   ;Flush CMD and CMR buffers
                                                                             |0187|1630|.ENDIF/FTDIAG
                                                                             |0187|1631|
                                                                             |0187|1632|;Here after TEST has run, to initialize machine for running
000,000,0,04,10,1,00,0,64,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0077,00,7,01,0,0,0,0188|1633|SYS INIT:
                                                                             |0188|1634|
                                                                             |0188|1635|;Setup 2903 registers
                                                                             |0188|1636|        J[0077]_[K 77]                          ;Initialize register
000,000,0,04,10,1,00,0,70,0,0,00,40,00,00,00,0,20,1,1,0,16,00,00,0777,00,7,01,0,0,0,0189|1637|        J[0777]_[K 777],                        ;Initialize register
                                                                             |0189|1638|         CLEAR RUN
                                                                             |0189|1639|        J[027]_[TIME]                           ;Initialize register
000,000,0,04,10,1,00,0,37,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0027,00,7,01,0,0,0,0190|1640|        ZERO_[K -1.0 RH]                        ;Clear RH of register
000,000,0,04,10,1,00,0,76,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0191|1641|        J[3]_[C0!C1]
000,000,0,04,00,1,00,0,75,0,0,00,00,00,00,00,0,20,1,1,1,04,01,00,0002,00,7,00,0,0,0,0193|1642|        ONES_[K -1.0 LH],PUSH J[2]_CTR          ;Set LH of register
000,000,0,01,06,1,63,0,63,0,0,00,00,51,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,0194|1643|        ROR [C0!C1]_[C0!C1],RFCT                ;Load 300000,,0
                                                                             |0194|1644|        J[1]_[W1]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0001,00,7,01,0,0,0,0195|1645|        SWAP [W1]_[BIT17]                       ;Makes 1,,0
000,000,0,01,06,1,57,0,00,0,0,00,00,51,00,00,0,20,1,1,0,16,00,00,7777,00,7,01,0,0,0,0197|1646|        J[07777]_Y24-Y35,[BIT17]_F,             ;Makes 0,,4077777
                                                                             |0197|1647|         F_ROR Y_[W1]
                                                                             |0197|1648|        SWAP [W1]_[K 407777.0]                  ;Initialize register
000,000,0,04,10,0,02,2,73,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0198|1649|        J[0040]_[W1]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,0199|1650|        SWAP [W1]_[BIT12]
000,000,0,04,10,0,02,2,53,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0200|1651|
                                                                             |0200|1652|;Setup RAMFILE byte masks
                                                                             |0200|1653|        J[BYTE MASK]_[W1]                       ;First adr in byte mask area
000,000,0,06,03,0,02,0,77,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0077,00,7,00,0,0,0,0202|1654|        [W1]+[K -1]_Q,                          ;First adr in Ramfi1e to set
                                                                             |0202|1655|         J[0077]_CTR                            ;Number of masks to write
                                                                             |0202|1656|        ZERO_[W1]                               ;First word is all zeros
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1246,00,7,00,0,0,0,0204|1657|IRF 10: CALL [RF WRITE]
000,000,1,11,06,1,02,0,00,0,0,00,00,15,00,00,0,20,1,1,1,11,00,00,0314,00,7,00,0,0,0,0205|1658|        [W1]_F,LLS F_B,#1_SIO0 #1_QIO0,         ;Shift left shifting in ones
                                                                             |0205|1659|        B SEL/W1,LOOP [IRF 10]
                                                                             |0205|1660|
                                                                             |0205|1661|
                                                                             |0205|1662|;Setup RAMFILE bit table
                                                                             |0205|1663|        BIT0_[W1]                               ;First bit
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1246,00,7,00,0,0,0,0207|1664|IRF 12: CALL [RF WRITE]
000,000,0,01,06,1,02,0,00,0,0,00,00,01,00,00,0,64,1,1,1,03,03,00,0317,00,7,00,0,0,0,0208|1665|        LRS [W1]_[W1],
                                                                             |0208|1666|         IF NOT CT [IZ] THEN [IRF 12]
                                                                             |0208|1667|
                                                                             |0208|1668|;Setup other Ramfi1e locations
                                                                             |0208|1669|        J[PUSHJ FLAGS]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0145,00,7,01,0,0,0,0209|1670|        J[04340]_[W1]                            ;Want 021600,,0
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4340,00,7,01,0,0,0,0210|1671|        SWAP [W1]_[W1]
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0005,00,7,04,0,0,0,0212|1672|        #4*[W1]_B,ALU_RAMFILE,
                                                                             |0212|1673|        J[5]_CTR
                                                                             |0212|1674|
                                                                             |0212|1675|;Setup M8628 status register
                                                                             |0212|1676|        J[BIT20]_RAMFILE ADR                    ;Want 100000
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0124,00,7,01,0,0,0,0213|1677|        J[7]_[W5]                               ;Highest possible memory
000,000,0,04,10,0,00,0,14,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0001,00,7,04,0,0,0,0215|1678|        RAMFILE_[W4],J[1]_CTR
                                                                             |0215|1679|        J[06540]_[W1]                            ;Clear error flags
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,0331,00,7,00,0,0,0,0217|1680|IM 12:  #4*[W1]_B,LOOP [IM 12]
000,000,0,06,03,0,16,0,20,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,4,02,0,0,0,0218|1681|IM 20:  [W4]+[W5]_F,F_Q_Y,                      ;Address memory status reg
                                                                             |0218|1682|        START IO WRITE
000,000,0,04,06,1,02,0,00,0,0,00,00,05,00,00,0,20,1,0,1,16,00,00,0000,00,5,02,0,0,0,0219|1683|        [W1]_[W1],ALU_IO                        ;Write status register
000,000,0,04,03,0,77,0,20,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0332,00,7,00,0,0,0,0220|1684|        [K -1]+[W5]_B,                          ;Next memory
                                                                             |0220|1685|         IF NOT CT [IN] THEN [IM 20]            ; Loop back for rest of memories
                                                                             |0220|1686|
                                                                             |0220|1687|;Setup another 2903 reg
                                                                             |0220|1688|        J[BIT4]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0104,00,7,01,0,0,0,0221|1689|        RAMFILE_[BIT4]
000,000,0,04,10,0,00,0,47,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0222|1690|        J[#30B MASK]_RAMFILE ADR
000,000,0,04,10,0,00,0,67,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1174,00,7,04,0,0,0,0224|1691|        RAMFILE_[K 7777.-1],
                                                                             |0224|1692|        CALL [SYS RESET]                        ;Reset a bunch of things
                                                                             |0224|1693|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0567,00,7,00,0,0,0,0225|1694|CONSOLE PROMPT:
                                                                             |0225|1695|        CALL [PUT CMR PROMPT]                   ;Type prompt
                                                                             |0225|1696|        ;GOTOP [CONSOLE]
                                                                             |0225|1697|
                                                                             |0225|1698|.TOC "Console Program"
                                                                             |0225|1699|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,42,00,0347,00,7,00,0,0,0,0226|1700|CONSOLE:
                                                                             |0226|1701|        IF [RUN] THENP [CSL2]
                                                                             |0226|1702|        CHECK INTERRUPTS
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,21,00,4154,00,7,00,0,0,0,0227|1703|        J[INT RCOVR]_RAMFILE ADR                ;Address recovery routine
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0163,00,7,01,0,0,0,0228|1704|        RAMFILE_[W1]
000,000,0,04,06,1,02,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,0000,00,7,01,0,0,0,0230|1705|        [W1]_[W1],
                                                                             |0230|1706|         IF NOT CT [IZ] THEN Y
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0231|1707|CSL2:
                                                                             |0231|1708|CMD PRSEX:
                                                                             |0231|1709|        J[CMDTKR]_RAMFILE ADR
                                                                             |0231|1710|.IF/FTCRAM
                                                                             |0231|1711|        RAMFILE_[W1]                    ;Get break char flag
                                                                             |0231|1712|        [W1]_Y,
                                                                             |0231|1713|         IF CT [IZ] THEN [CSL3]
                                                                             |0231|1714|        J[CMRTKR]_RAMFILE ADR                   ;Address response putter
                                                                             |0231|1715|        RAMFILE_[W1]                    ;Get response taker
                                                                             |0231|1716|        [W1]_Y,
                                                                             |0231|1717|         IF CT [IZ] THEN [CMD PRSE]
                                                                             |0231|1718|.ENDIF/FTCRAM
                                                                             |0231|1719|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,64,1,1,0,03,02,00,0353,00,7,04,0,0,0,0232|1720|        RAMFILE_[W1],                   ;Get break char flag
                                                                             |0232|1721|         IF CT [IZ] THEN [CSL3]
                                                                             |0232|1722|        J[CMRTKR]_RAMFILE ADR                   ;Address response putter
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,64,1,1,0,03,02,00,0372,00,7,04,0,0,0,0234|1723|        RAMFILE_[W2],                   ;Get response taker
                                                                             |0234|1724|         IF CT [IZ] THEN [CMD PRSE]
                                                                             |0234|1725|.ENDIF/FTCRAM
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,42,00,1420,00,7,00,0,0,0,0235|1726|CSL3:   IF [RUN] THENP [IFETCH]
                                                                             |0235|1727|.IF/SH_N_TL
                                                                             |0235|1728|        CALL [SHOW&TELL]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0356,00,7,00,0,0,0,0236|1729|.ENDIF/SH_N_TL
                                                                             |0236|1730|        GOTOP [CONSOLE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0342,00,7,00,0,0,0,0237|1731|.IF/SH_N_TL
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0563,00,7,01,0,0,0,0238|1732|SHOW&TELL:
                                                                             |0238|1733|        J[RF PROC REG]_RAMFILE ADR              ;Address ramfile copy of
                                                                             |0238|1734|        RAMFILE_[W1]                    ; PROC REG
000,000,0,04,10,0,00,0,00,0,0,00,00,00,36,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0240|1735|        #2914 MASK_Y,Y_[W1]
000,000,0,04,10,0,00,0,00,0,0,00,00,00,32,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0241|1736|        #2914 STATUS_Y,Y_[W1]
                                                                             |0241|1737|        J[LNOSW]_[W6]
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,0242|1738|        CALL [RD PCI CR]
000,000,0,04,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3707,00,7,00,0,0,0,0244|1739|        [W1]_[W1],
                                                                             |0244|1740|         CALL [RD PCI SR]
                                                                             |0244|1741|        [W1]_[W1]                               ;Display SR
000,000,0,04,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0245|1742|        J[A1]_[W1]                              ;For PCI adr to read MR1/2
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0020,00,7,01,0,0,0,0246|1743|        CALL [RD PCI]                           ;Get MR1
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3712,00,7,00,0,0,0,0247|1744|        [W1]_[W1]                               ;Display MR1
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,03,0,0,0,0249|1745|        PCI_ALU,Y_[W1],                         ;Read MR2
                                                                             |0249|1746|        RETURN
                                                                             |0249|1747|.ENDIF/SH_N_TL
                                                                             |0249|1748|
                                                                             |0249|1749|;Here to decode next console command
000,000,0,04,10,1,00,0,20,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0514,00,7,00,0,0,0,0250|1750|CMD PRSE:
                                                                             |0250|1751|        ZERO_[W5],                              ;Build command in W5
                                                                             |0250|1752|        CALL [GET CMD CHX]                      ;Get 1st nonblank char from command
                                                                             |0250|1753|        J[015]_[W2]                             ;Ascii "<cr>"
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0505,00,7,00,0,0,0,0252|1754|        [W1]-[W2]_Y,                            ;If end of line done
                                                                             |0252|1755|         IF CT [IZ] THEN [CMD DONE]
                                                                             |0252|1756|        J[054]_[W2]                             ;Ascii "."
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0511,00,7,00,0,0,0,0254|1757|        [W1]-[W2]_Y ,
                                                                             |0254|1758|         IF CT [IZ] THEN [CMD PRSE8]            ;Skip command separator
                                                                             |0254|1759|        GOTO [CMDP5]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0411,00,7,00,0,0,0,0255|1760|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1004,00,7,00,0,0,0,0256|1761|CMDP2:  CALL [GET CMD CHR]                      ;Get next command char
                                                                             |0256|1762|        J[040]_[W2]                             ;Ascii " "
000,000,0,14,02,0,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0420,00,7,00,0,0,0,0258|1763|        [W2]-[W1]_Y,                            ;Compare
                                                                             |0258|1764|         IF CT [IZ] THEN [CMDDSP]
                                                                             |0258|1765|        J[015]_[W2]                             ;Ascii "<cr>"
000,000,0,14,02,0,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0420,00,7,00,0,0,0,0260|1766|        [W2]-[W1]_Y,                            ;Compare
                                                                             |0260|1767|         IF CT [IZ] THEN [CMDDSP]
                                                                             |0260|1768|        J[054]_[W2]                             ;Ascii ","
000,000,0,14,02,0,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0420,00,7,00,0,0,0,0262|1769|        [W2]-[W1]_Y,                            ;Compare
                                                                             |0262|1770|         IF CT [IZ] THEN [CMDDSP]
000,000,1,11,06,1,22,0,20,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0002,00,7,00,0,0,0,0263|1771|        #2*[W5]_[W5],
                                                                             |0263|1772|         J[2]_CTR
000,000,1,11,03,0,22,0,20,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,0410,00,7,00,0,0,0,0264|1773|CMDP3:  #4*[W5]_B,
                                                                             |0264|1774|        LOOP [CMDP3]
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0140,00,7,01,0,0,0,0265|1775|CMDP5:  J[0140]_[W2]                            ;141 - 1ower case "a"
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,02,00,0417,00,7,00,0,0,0,0266|1776|        [W1]-[W2]_Y,                            ;Compare
                                                                             |0266|1777|         IF CT [IN] THEN [CMDP6]
                                                                             |0266|1778|        J[0173]_[W2]                            ;172 - lower case "z"
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0417,00,7,00,0,0,0,0268|1779|        [W1]-[W2]_Y,                            ;Compare
                                                                             |0268|1780|         IF NOT CT [IN] THEN [CMDP6]
                                                                             |0268|1781|        J[040]_[W2]                             ;Mask for bit
000,000,0,04,13,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0270|1782|        [W2].XOR.[W1]_F,F_B                     ;Convert to upper case
000,000,0,04,03,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,0400,00,7,00,0,0,0,0271|1783|CMDP6:  [W1]+[W5]_B,
                                                                             |0271|1784|        GOTO [CMDP2]
                                                                             |0271|1785|
                                                                             |0271|1786|;Consol commands include:
                                                                             |0271|1787|;
                                                                             |0271|1788|;       A       ;(101) Address Break
                                                                             |0271|1789|;       B       ;(102) Bootstrap
                                                                             |0271|1790|;       C       ;(103) Continue
                                                                             |0271|1791|;       D #1 #2 ;(104) Deposit #2 in physical memory location #1
                                                                             |0271|1792|;       DI      ;      Deposit IO
                                                                             |0271|1793|;       DR      ;      Deposit RAMFILE
                                                                             |0271|1794|;       DV      ;      Deposit Virtual
                                                                             |0271|1795|;       E #     ;(105) Examine physical memory location #
                                                                             |0271|1796|;       EI      ;      Examine IO
                                                                             |0271|1797|;       ER      ;      Examine RAMFILE
                                                                             |0271|1798|;       EV      ;      Examine Virtual
                                                                             |0271|1799|;       H       ;(110) Halts the machine and prints out PC
                                                                             |0271|1800|;       I       ;(111) Initialize system
                                                                             |0271|1801|;       R       ;(122) Repeat
                                                                             |0271|1802|;       S #     ;(123) Start at address #
                                                                             |0271|1803|;       SH      ;      Shutdown
                                                                             |0271|1804|;       SI      ;      Single Instruction
                                                                             |0271|1805|;       SM      ;      Start Microcode at uAddr
                                                                             |0271|1806|;       T       ;(124) Perform self test
                                                                             |0271|1807|;       ZM      ;      Zero Memory
                                                                             |0271|1808|;       ^C      ;(003) Abort repeat, or current line
                                                                             |0271|1809|;       ^M <cr> ;(015) ends command
                                                                             |0271|1810|;       ^R      ;(022) ?????
                                                                             |0271|1811|;       ^U      ;(025) deletes current command line
                                                                             |0271|1812|;       ^Z      ;(032) ?????
                                                                             |0271|1813|;       ^\      ;(034) Toggles console/user switch for console tty
                                                                             |0271|1814|;       ;       ;Separate commands
                                                                             |0271|1815|;       rubout  ;(177) deletes previous typed character
                                                                             |0271|1816|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1027,00,7,00,0,0,0,0272|1817|CMDDSP:
                                                                             |0272|1818|        CALL [BKUP CMD TKR]                     ;Backup over command terminator
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0477,00,7,01,0,0,0,0273|1819|        J[CMDERR MER]_[W1],POP                  ;Where to go if memory fails
                                                                             |0273|1820|        CALL [SET PF ME RCOVR]                  ;In case error in command
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0102,00,7,01,0,0,0,0275|1821|        J[0102]_[W1],POP
000,000,0,06,02,0,02,0,20,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1046,00,7,00,0,0,0,0276|1822|        [W1]-[W5]_F,F_Q_Y,
                                                                             |0276|1823|         IF CT [IZ] THEN [B CMD]
                                                                             |0276|1824|.IF/FTADRB
000,000,0,14,03,1,77,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1037,00,7,00,0,0,0,0277|1825|        Q+[K -1]_F,F_Y,
                                                                             |0277|1826|         IF CT [IZ] THEN [A CMD]                ;Ascii "A" = 101
                                                                             |0277|1827|.ENDIF/FTADRB
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1050,00,7,00,0,0,0,0278|1828|        Q+1_F,F_Q_Y,                            ;Ascii "C" = 103
                                                                             |0278|1829|         IF CT [IZ] THEN [C CMD]
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1062,00,7,00,0,0,0,0279|1830|        Q+1_F,F_Q_Y,                            ;Ascii "D" = 104
                                                                             |0279|1831|         IF CT [IZ] THEN [D CMD]
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1107,00,7,00,0,0,0,0280|1832|        Q+1_F,F_Q_Y,                            ;Ascii "E" = 105
                                                                             |0280|1833|         IF CT [IZ] THEN [E CMD]
                                                                             |0280|1834|        J[0110]_[W1]                            ;Ascii "H" = 110
000,000,0,06,02,0,02,0,20,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1165,00,7,00,0,0,0,0282|1835|        [W1]-[W5]_F,F_Q_Y,
                                                                             |0282|1836|         IF CT [IZ] THEN [H CMD]
000,000,0,07,06,1,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1171,00,7,00,0,0,0,0283|1837|        Q+1_F,F_Q_[W1],                         ;Ascii "I" = 111
                                                                             |0283|1838|        IF CT [IZ] THEN [I CMD]
                                                                             |0283|1839|.IF/FTFCSL
000,200,0,14,10,0,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1067,00,7,00,0,0,0,0284|1840|        [W1]+2_B,                               ;Ascii "K" = 113
                                                                             |0284|1841|        IF CT [IZ] THEN [JK CMD]
                                                                             |0284|1842|.ENDIF/FTFCSL
                                                                             |0284|1843|        J[0122]_[W1]                            ;Ascii "R" = 122
000,000,0,06,02,0,02,0,20,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1206,00,7,00,0,0,0,0286|1844|        [W1]-[W5]_F,F_Q_Y,
                                                                             |0286|1845|         IF CT [IZ] THEN [REPEAT]
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1217,00,7,00,0,0,0,0287|1846|        Q+1_F,F_Q_Y,                            ;Ascii "S" = 123
                                                                             |0287|1847|         IF CT [IZ] THEN [S CMD]
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1244,00,7,00,0,0,0,0288|1848|        Q+1_F,F_Q_Y,                            ;Ascii "T" = 124
                                                                             |0288|1849|         IF CT [IZ] THEN [T CMD]
                                                                             |0288|1850|        J[04000]_[W1]
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,0,16,00,00,4710,00,7,01,0,0,0,0290|1851|        J[04710]_Y24-Y35,                       ;Ascii "SH" = 24710
                                                                             |0290|1852|        [W1]+[W1]_F,F_LSZ Y_[W1]
000,000,0,06,02,0,02,0,20,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1222,00,7,00,0,0,0,0291|1853|        [W1]-[W5]_F,F_Q_Y,                      ;Ascii "SI" = 24711
                                                                             |0291|1854|         IF CT [IZ] THEN [SH CMD]
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,1225,00,7,00,0,0,0,0292|1855|        Q+1_F,F_Q_Y,
                                                                             |0292|1856|         IF CT [IZ] THEN [SI CMD]
                                                                             |0292|1857|.IF/FTFCSL
                                                                             |0292|1858|        [W1]J[01111]_[W1]                       ;Ascii "DI" = 21111
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1135,00,7,00,0,0,0,0294|1859|        [W1]-[W5]_Y,
                                                                             |0294|1860|         IF CT [IZ] THEN [DI CMD]
                                                                             |0294|1861|        [W1]J[01122]_[W1]                       ;Ascii "DR" = 21122
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1146,00,7,00,0,0,0,0296|1862|        [W1]-[W5]_Y,
                                                                             |0296|1863|         IF CT [IZ] THEN [DR CMD]
                                                                             |0296|1864|        [W1]J[01126]_[W1]                       ;Ascii "DV" = 21126
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1155,00,7,00,0,0,0,0298|1865|        [W1]-[W5]_Y,
                                                                             |0298|1866|         IF CT [IZ] THEN [DV CMD]
                                                                             |0298|1867|        [W1]J[01311]_[W1]                       ;Ascii "EI" = 21311
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1141,00,7,00,0,0,0,0300|1868|        [W1]-[W5]_Y,
                                                                             |0300|1869|         IF CT [IZ] THEN [EI CMD]
                                                                             |0300|1870|        [W1]J[01326]_[W1]                       ;Ascii "EV" = 21326
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1161,00,7,00,0,0,0,0302|1871|        [W1]-[W5]_Y,
                                                                             |0302|1872|         IF CT [IZ] THEN [EV CMD]
                                                                             |0302|1873|        [W1]J[01322]_[W1]                       ;Ascii "ER" = 21322
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1151,00,7,00,0,0,0,0304|1874|        [W1]-[W5]_Y,
                                                                             |0304|1875|         IF CT [IZ] THEN [ER CMD]
                                                                             |0304|1876|.IF/FTSM
                                                                             |0304|1877|        [W1]J[04715]_[W1]                       ;Ascii "SM" = 24715
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1242,00,7,00,0,0,0,0306|1878|        [W1]-[W5]_Y,
                                                                             |0306|1879|         IF CT [IZ] THEN [SM CMD]
                                                                             |0306|1880|.ENDIF/FTSM
                                                                             |0306|1881|.IF/FTZM
                                                                             |0306|1882|        [W1]J[06515]_[W1]                       ;Ascii "ZM" = 26515
000,000,0,14,02,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1271,00,7,00,0,0,0,0308|1883|        [W1]-[W5]_Y,
                                                                             |0308|1884|        IF CT [IZ] THEN [ZM CMD]
                                                                             |0308|1885|.ENDIF/FTZM
                                                                             |0308|1886|.ENDIF/FTFCSL
                                                                             |0308|1887|
                                                                             |0308|1888|;Here if user typed an invalid command
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0765,00,7,00,0,0,0,0309|1889|CMDERR URC:
                                                                             |0309|1890|        CALL [CMDBUF FLUSH]                     ;Done with CMD buffer
                                                                             |0309|1891|        J[ERR.URC]_[W1]                         ;Unrecognized command
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0001,00,7,01,0,0,0,0310|1892|        GOTOP [CMDERR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0501,00,7,00,0,0,0,0311|1893|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0002,00,7,01,0,0,0,0312|1894|CMDERR NWR:
                                                                             |0312|1895|        J[ERR.NWR]_[W1]                         ;Error code (not while running)
                                                                             |0312|1896|        GOTOP [CMDERR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0501,00,7,00,0,0,0,0313|1897|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,0314|1898|CMDERR NXA:
                                                                             |0314|1899|        J[ERR.NXA]_[W1]                         ;Error code (nonexistent adr)
                                                                             |0314|1900|        GOTOP [CMDERR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0501,00,7,00,0,0,0,0315|1901|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0533,00,7,00,0,0,0,0316|1902|CMDERR E MER:
                                                                             |0316|1903|        CALL [PUT CMR NUM]                      ;Type error status
                                                                             |0316|1904|        CALL [PUT CMR SPACE]
000,000,0,04,06,1,46,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,0477,00,7,00,0,0,0,0318|1905|        [MB]_[W1],                              ;Type data next
                                                                             |0318|1906|         GOTO [CMDERR MER]
                                                                             |0318|1907|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0533,00,7,00,0,0,0,0319|1908|CMDERR MER:
                                                                             |0319|1909|        CALL [PUT CMR NUM]                      ;Type error status
                                                                             |0319|1910|        J[ERR.MER]_[W1]                         ;Error code (memory error)
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0005,00,7,01,0,0,0,0320|1911|        ;GOTOP [CMDERR]
                                                                             |0320|1912|
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0103,00,7,01,0,0,0,0321|1913|CMDERR: J[0103]_[W6]                            ;Ascii "C"
000,000,0,04,06,1,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0556,00,7,00,0,0,0,0322|1914|        [W1]_[W5],                              ;Save error code
                                                                             |0322|1915|        CALL [PUT ? W6]
000,000,0,04,10,0,22,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0540,00,7,07,0,0,0,0323|1916|        SWAP [W5]_[W1],
                                                                             |0323|1917|         CALL [P6DNUM]                          ;Type (6 digit) error number
                                                                             |0323|1918|        GOTOP [CMD DONE 2]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0506,00,7,00,0,0,0,0324|1919|
                                                                             |0324|1920|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0765,00,7,00,0,0,0,0325|1921|CMD DONE:
                                                                             |0325|1922|        CALL [CMDBUF FLUSH]                     ;Done with CMD buffer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,15,01,00,0300,00,7,01,0,0,0,0326|1923|CMD DONE 2:
                                                                             |0326|1924|        J[CMDFLG]_RAMFILE ADR,POP               ;Address command flags
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0000,00,7,04,0,0,0,0327|1925|        RAMFILE_[W1],POP                ;Get flags
000,000,0,14,14,0,47,0,00,0,0,00,00,00,00,00,0,64,1,1,1,01,02,00,0567,00,7,00,0,0,0,0328|1926|        [BIT4]&[W1]_Y,                          ;(F.USR) Check user mode
                                                                             |0328|1927|        IF CT [IZ] CALL [PUT CMR PROMPT]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1240,00,7,00,0,0,0,0329|1928|CMD9:
                                                                             |0329|1929|
                                                                             |0329|1930|;Here when command has been executed
                                                                             |0329|1931|
                                                                             |0329|1932|CMD PRSE8:
                                                                             |0329|1933|        ZERO_[W1],CALL [SET INT RCOVR]          ;Clear interrupt recovery
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5016,00,7,00,0,0,0,0330|1934|        ZERO_[W1],                              ;Clear page fail
                                                                             |0330|1935|         CALL [SET PF ME RCOVR]                 ; and mem err recovery
                                                                             |0330|1936|        GOTOP [CONSOLE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0342,00,7,00,0,0,0,0331|1937|
                                                                             |0331|1938|;Here to get a char from a command line, skiping leading blanks
                                                                             |0331|1939|; Returns with character in W1
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1004,00,7,00,0,0,0,0332|1940|GET CMD CHX:
                                                                             |0332|1941|        CALL [GET CMD CHR]
                                                                             |0332|1942|        J[040]_[W2]
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0514,00,7,00,0,0,0,0334|1943|        [W1]-[W2]_Y,
                                                                             |0334|1944|         IF CT [IZ] THEN [GET CMD CHX]
                                                                             |0334|1945|        RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0335|1946|
                                                                             |0335|1947|;Here to get a number from a command line
                                                                             |0335|1948|; Returns clears UZ if number is found, number in W1
000,000,0,04,10,1,00,0,20,0,0,00,00,00,00,00,0,11,0,1,1,01,01,00,0514,00,7,00,0,0,0,0336|1949|GET CMD NUM:
                                                                             |0336|1950|        ZERO_[W5],#1_UZ,                        ;Build number here
                                                                             |0336|1951|         CALL [GET CMD CHX]                     ; Get 1st nonblank char from command
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0067,00,7,01,0,0,0,0337|1952|GCN 2:  J[067]_[W2]                             ; Ascii '7'
000,000,0,14,02,0,06,0,00,0,0,00,00,00,00,00,0,76,1,1,1,03,02,00,0531,00,7,00,0,0,0,0338|1953|        [W2]-[W1]_Y,
                                                                             |0338|1954|         IF CT [IN] THEN [GCN 4]
                                                                             |0338|1955|        J[060]_[W2]                             ;Ascii '0'
000,000,0,04,01,0,06,0,00,0,1,00,00,00,00,00,0,76,1,1,1,03,02,00,0531,00,7,00,0,0,0,0340|1956|        [W1]-[W2]_A,
                                                                             |0340|1957|         IF CT [IN] THEN [GCN 4]
000,000,1,11,03,0,22,0,20,0,0,00,00,11,00,00,0,10,0,1,1,16,00,00,0000,00,7,00,0,0,0,0341|1958|        #4*[W5]_B,#0_UZ                         ;Clear UZ (we got a num)
                                                                             |0341|1959|        #2*[W5]_[W5]
000,000,0,04,03,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1004,00,7,00,0,0,0,0343|1960|        [W1]+[W5]_B,
                                                                             |0343|1961|         CALL [GET CMD CHR]
                                                                             |0343|1962|        GOTO [GCN 2]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0521,00,7,00,0,0,0,0344|1963|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1027,00,7,00,0,0,0,0345|1964|GCN 4:  CALL [BKUP CMD TKR]                     ;Backup command buffer taker
000,000,0,04,06,1,22,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,0346|1965|        [W5]_[W1],                              ;Copy result
                                                                             |0346|1966|         RETURN                                 ; and dismiss
                                                                             |0346|1967|
                                                                             |0346|1968|
                                                                             |0346|1969|;Here to type number on CTY
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0540,00,7,00,0,0,0,0347|1970|PUT CMR NUM:
                                                                             |0347|1971|        CALL [P6DNUM]                           ;Type first half
                                                                             |0347|1972|        J[054]_[W1]                             ;Ascii ","
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0054,00,7,01,0,0,0,0348|1973|        CALL [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0349|1974|        J[X1]_RAMFILE ADR
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0540,00,7,04,0,0,0,0351|1975|        RAMFILE_[W1],                           ;Get rest of number back
                                                                             |0351|1976|         GOTO [P6DNUM]                          ;Type 2nd half
                                                                             |0351|1977|
                                                                             |0351|1978|;Here to type a six digit octal number on CTY
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0006,00,7,01,0,0,0,0352|1979|P6DNUM: J[6]_[W6]                               ;Keep digit counter in W6
                                                                             |0352|1980|        J[X1]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0002,00,7,00,0,0,0,0354|1981|P6DNM2: J[2]_CTR
000,000,1,11,06,1,02,0,00,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,0543,00,7,04,0,0,0,0355|1982|P6DNM3: ROL [W1]_[W1],ALU_RAMFILE,              ;Rotate left thrice
                                                                             |0355|1983|        LOOP [P6DNM3]
                                                                             |0355|1984|        J[7]_[W2]                               ;Mask for number
000,000,0,07,14,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0060,00,7,01,0,0,0,0357|1985|        [W2]&[W1]_F,F_Q FJ[060]_[W1]            ;Mask number to 3 bits
000,000,0,04,03,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0607,00,7,00,0,0,0,0358|1986|        Q+[W1]_[W1],                            ;Convert octal to ascii
                                                                             |0358|1987|        CALL [PUT CMR CHR]                      ; and print
                                                                             |0358|1988|        J[X1]_RAMFILE ADR                       ; and address word
000,000,0,04,03,0,77,0,24,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,0360|1989|        [K -1]+[W6]_B,IX_MX                     ;Count digits typed
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,44,1,1,0,03,03,00,0542,00,7,04,0,0,0,0361|1990|        RAMFILE_[W1],                           ;Get number back again
                                                                             |0361|1991|         IF NOT CT [MZ] THEN [P6DNM2]
                                                                             |0361|1992|        RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0362|1993|
                                                                             |0362|1994|;Here to type "^X"
                                                                             |0362|1995|;  call with J[x]_[W6]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0136,00,7,01,0,0,0,0363|1996|PUT CNTRL W6:
                                                                             |0363|1997|        J[0136]_[W1]                             ;Ascii "^"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0364|1998|PUTXW6:
                                                                             |0364|1999|        CALL [PUT CMR CHR]
000,000,0,04,06,1,26,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,0607,00,7,00,0,0,0,0365|2000|        [W6]_[W1],
                                                                             |0365|2001|        GOTO [PUT CMR CHR]
                                                                             |0365|2002|
                                                                             |0365|2003|;Here to type "?x"
                                                                             |0365|2004|; Call with J[x]_[W6]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0604,00,7,00,0,0,0,0366|2005|PUT ? W6:
                                                                             |0366|2006|        CALL [PUT CMR CRLF]                     ;Begin with a flourish
                                                                             |0366|2007|        J[034]_[W1]                             ;Ascii "^\\"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0034,00,7,01,0,0,0,0367|2008|        CALL [PUT CMR CHR]                      ;Type it for John Kirchoff
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0368|2009|        J[077]_[W1]                             ;Ascii "?"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0077,00,7,01,0,0,0,0369|2010|GOTO [PUTXW6]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0554,00,7,00,0,0,0,0370|2011|
                                                                             |0370|2012|;Here to type a "/" followed by a " "
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0057,00,7,01,0,0,0,0371|2013|PUT CMR SLSH:
                                                                             |0371|2014|        J[057]_[W1]                             ;Ascii "/"
                                                                             |0371|2015|        CALL [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0372|2016|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,0373|2017|PUT CMR SPACE:
                                                                             |0373|2018|        J[040]_[W1]                             ; Ascii " "
                                                                             |0373|2019|        GOTO [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0607,00,7,00,0,0,0,0374|2020|
                                                                             |0374|2021|;Here to type "<CR><LF>KT20>"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0604,00,7,00,0,0,0,0375|2022|PUT CMR PROMPT:
                                                                             |0375|2023|        CALL [PUT CMR CRLF]                     ;Begin with a flourish
                                                                             |0375|2024|        J[CMDTKR]_RAMFILE ADR                   ;Address command taker
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0376|2025|.IF/FTCRAM
                                                                             |0376|2026|        RAMFILE_[W1]                            ;If already have command
                                                                             |0376|2027|        [W1]_[W1],                              ;Let latches go
                                                                             |0376|2028|         IF NOT CT [IZ] RETURN                  ; do not prompt
                                                                             |0376|2029|.ENDIF/FTCRAM
                                                                             |0376|2030|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,64,1,1,0,12,03,00,0000,00,7,04,0,0,0,0377|2031|        RAMFILE_[W1],                           ;If already have command
                                                                             |0377|2032|         IF NOT CT [IZ] RETURN                  ; do not prompt
                                                                             |0377|2033|.ENDIF/FTCRAM
                                                                             |0377|2034|        J[0113]_[W1]                            ;Ascii "K"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0113,00,7,01,0,0,0,0378|2035|        CALL [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0379|2036|        J[0124]_[W1]                            ;Ascii "T"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0124,00,7,01,0,0,0,0380|2037|        CALL [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0381|2038|        J[062]_[W1]                             ;Ascii "2"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0062,00,7,01,0,0,0,0382|2039|        CALL [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0383|2040|        J[060]_[W1]                             ;Ascii "0"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0060,00,7,01,0,0,0,0384|2041|        CALL [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0385|2042|        J[076]_[W1]                             ;Ascii ">"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0076,00,7,01,0,0,0,0386|2043|        GOTO [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0607,00,7,00,0,0,0,0387|2044|
                                                                             |0387|2045|;Here to type a <CR><LF>
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0015,00,7,01,0,0,0,0388|2046|PUT CMR CRLF:
                                                                             |0388|2047|        J[015]_[W1]
                                                                             |0388|2048|        CALL [PUT CMR CHR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0389|2049|        J[012]_[W1]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0012,00,7,01,0,0,0,0390|2050|        ;CALL [PUT CMR CHR]
                                                                             |0390|2051|        ;RETURN
                                                                             |0390|2052|
                                                                             |0390|2053|;Here to type command responses on CTY
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0300,00,7,01,0,0,0,0391|2054|PUT CMR CHR:
                                                                             |0391|2055|        J[CMDFLG]_RAMFILE ADR                   ;Address command flags
                                                                             |0391|2056|        J[F.O]_[W2]                             ;Flag for we are flushing output
000,000,0,07,06,1,06,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0393|2057|        RAMFILE_Y,[W2]_F,Y_[W2] F_Q             ;Get flags
000,000,0,14,14,1,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,12,03,00,0000,00,7,00,0,0,0,0394|2058|        Q&[W2]_Y,IF NOT CT [IZ] RETURN          ;If flushing we are done
                                                                             |0394|2059|        J[CMRPTR]_RAMFILE ADR                   ;Address putter for CMRBUF
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0302,00,7,01,0,0,0,0395|2060|        J[CMRBUF END]_[W2]                      ;last location in CMRBUF
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0337,00,7,01,0,0,0,0396|2061|        RAMFILE_[W3]                            ;Get putter
000,000,0,14,02,0,06,0,10,0,0,00,00,00,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,0398|2062|        [W2]-[W3]_Y,                            ;If full can not put in
                                                                             |0398|2063|         IF CT [IZ] RETURN
                                                                             |0398|2064|        CALL [CMB NXT]                          ;Adjust pointer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1005,00,7,00,0,0,0,0399|2065|        [W2]_RAMFILE                            ;Write byte into ramfile
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0400|2066|        J[CMRTKR]_RAMFILE ADR                   ;Address taker
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0303,00,7,01,0,0,0,0401|2067|.IF/FTCRAM
                                                                             |0401|2068|        RAMFILE_[W1]                    ;Get taker
                                                                             |0401|2069|        [W1]_[W1],                              ;Let latches go
                                                                             |0401|2070|        IF CT [IZ] CALL [CKR PTR RESET]
                                                                             |0401|2071|.ENDIF/FTCRAM
                                                                             |0401|2072|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,64,1,1,0,01,02,00,0777,00,7,04,0,0,0,0402|2073|        RAMFILE_[W1],                   ;Get taker
                                                                             |0402|2074|         IF CT [IZ] CALL [CMR PTR RESET]
                                                                             |0402|2075|.ENDIF/FTCRAM
000,000,0,04,10,1,00,0,25,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,3675,00,7,00,0,0,0,0403|2076|        ZERO_[W6 LH],                           ;Cty is line 0
                                                                             |0403|2077|         GOTO [SET PCI TXEN]                    ;Start transmitter
                                                                             |0403|2078|
                                                                             |0403|2079|;Here to put characters in the command buffer
                                                                             |0403|2080|
                                                                             |0403|2081|;With 7bit char in Q
000,000,0,04,14,1,77,0,00,0,0,00,00,00,00,00,0,64,1,1,1,13,02,00,3613,00,7,00,0,0,0,0404|2082|CONSOLE CHAR:
                                                                             |0404|2083|        Q_[W1],                                 ; Flush nulls
                                                                             |0404|2084|         IF CT [IZ] THENP [PCI INT CLR]
                                                                             |0404|2085|        J[003]_[W2]                             ; Ascii "C"
000,000,0,14,01,1,06,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0722,00,7,00,0,0,0,0406|2086|        Q-[W2]_Y,
                                                                             |0406|2087|         IF CT [IZ] THEN [CNTRL C U]
                                                                             |0406|2088|        J[017]_[W2]                             ; Ascii "^0" = 17
000,000,0,04,01,0,02,0,04,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0734,00,7,00,0,0,0,0408|2089|        [W2]-[W1]_A,
                                                                             |0408|2090|         IF CT [IZ] THEN [CNTRL O]
000,200,0,14,10,0,00,0,04,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0760,00,7,00,0,0,0,0409|2091|        [W2]+2_B,
                                                                             |0409|2092|        IF CT [IZ] THEN [CNTRL Q]               ;Ascii "^Q" = 21 = Xon
000,200,0,14,10,0,00,0,04,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0746,00,7,00,0,0,0,0410|2093|        [W2]+2_B,
                                                                             |0410|2094|        IF CT [IZ] THEN [CNTRL S]               ;Ascii "^S" = 23 = Xoff
                                                                             |0410|2095|        J[CMDTKR]_RAMFILE ADR                   ;Address command taker
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0411|2096|.IF/FTCRAM
                                                                             |0411|2097|        RAMFILE_[W3]                    ;Get taker
                                                                             |0411|2098|        [W3]_[W3],                              ;Let latches go
                                                                             |0411|2099|         IF NOT CT [IZ] THEN [TYPE AHEAD]       ; Ignore type ahead
                                                                             |0411|2100|.ENDIF/FTCRAM
                                                                             |0411|2101|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,10,0,0,00,00,00,00,00,0,64,1,1,0,03,03,00,0667,00,7,04,0,0,0,0412|2102|        RAMFILE_[W3],                   ;Get taker
                                                                             |0412|2103|        IF NOT CT [IZ] THEN [TYPE AHEAD]        ; Ignore type ahead
                                                                             |0412|2104|.ENDIF/FTCRAM
                                                                             |0412|2105|.IF/FTCTLR
000,000,0,14,03,0,06,0,77,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0703,00,7,00,0,0,0,0413|2106|        [W2]+[K -1]_Y,                          ; Ascii "^R" = 22
                                                                             |0413|2107|        IF CT [IZ] THEN [CNTRL R]
                                                                             |0413|2108|.ENDIF/FTCTLR
000,200,0,14,10,0,00,0,04,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0722,00,7,00,0,0,0,0414|2109|        [W2]+2_B,                               ;Ascii "^U" = 25
                                                                             |0414|2110|         IF CT [IZ] THEN [CNTRL C U]
                                                                             |0414|2111|        J[032]_[W2]                             ;Ascii "^Z"
000,000,0,14,01,1,06,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0754,00,7,00,0,0,0,0416|2112|        Q-[W2]_Y,
                                                                             |0416|2113|         IF CT [IZ] THEN [CNTRL Z]
                                                                             |0416|2114|        J[0177]_[W2]                            ;Ascii "rubout" = 177
000,000,0,14,01,1,06,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0674,00,7,00,0,0,0,0418|2115|        Q-[W2]_Y,                               ;Check for character was a rubout
                                                                             |0418|2116|        IF CT [IZ] THEN [CMD RUBOUT]
                                                                             |0418|2117|        J[CMDPTR]_RAMFILE ADR                   ;Address CMDBUF putter
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0340,00,7,01,0,0,0,0419|2118|        J[CMDBUF END]_[W2]                      ;Last location in CMDBUF
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0407,00,7,01,0,0,0,0420|2119|        RAMFILE_[W3]                            ;Get putter
000,000,0,14,02,0,06,0,10,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0671,00,7,00,0,0,0,0422|2120|        [W2]-[W3]_Y,                            ;If buffer is full stop
                                                                             |0422|2121|         IF CT [IZ] THEN [REFUSE CHAR]          ; accepting chars
                                                                             |0422|2122|        J[015]_[W2]                             ;Carriage return
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0653,00,7,00,0,0,0,0424|2123|        [W1]-[W2]_Y,
                                                                             |0424|2124|         IF CT [IZ] THEN [CMDC 2]
                                                                             |0424|2125|        J[012]_[W6]                              ;Ascii <LF>
000,000,0,14,02,0,26,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,0665,00,7,00,0,0,0,0426|2126|        [W6]-[W1]_Y,
                                                                             |0426|2127|         IF NOT CT [IZ] THEN [CMDC 3]
                                                                             |0426|2128|
                                                                             |0426|2129|;Here when char is <CR> or <LF>
000,000,0,04,06,1,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1001,00,7,00,0,0,0,0427|2130|CMDC 2: [W2]_[W1],                              ;Put <CR> in CMD buffer
                                                                             |0427|2131|         CALL [PUT CMDBUF]
                                                                             |0427|2132|        CALL [ENABLE PARSE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0663,00,7,00,0,0,0,0428|2133|        CALL [PUT CMR CRLF]                     ;End echo with <CR><LF>
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0604,00,7,00,0,0,0,0429|2134|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,43,00,3613,00,7,00,0,0,0,0430|2135|CMDC X: IF [NOT RUN] THENP [PCI INT CLR]
                                                                             |0430|2136|.IF/DEBUG3
                                                                             |0430|2137|        J[POOP FLAG]_RAMFILE ADR
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0432|2138|        ZERO_Y,ALU_RAMFILE
                                                                             |0432|2139|.ENDIF/DEBUG3
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5017,00,7,00,0,0,0,0433|2140|        ZERO_[W1],CALL [SET PF RCOVR]
000,000,0,04,06,1,62,0,43,0,0,00,00,00,46,00,0,20,1,1,1,03,01,00,0347,00,7,00,0,0,0,0434|2141|        [PXCT]_[PI REG],Y_2914 STATUS,          ;Restore previous level
                                                                             |0434|2142|         GOTO [CMD PRSEX]                       ;This is not really an int
                                                                             |0434|2143|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0435|2144|ENABLE PARSE:
                                                                             |0435|2145|        J[CMDTKR]_RAMFILE ADR                   ;Point to command taker
                                                                             |0435|2146|        GOTO [CMD PTR RESET]                    ;We can parse now
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0772,00,7,00,0,0,0,0436|2147|
000,000,0,04,06,1,02,0,24,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1001,00,7,00,0,0,0,0437|2148|CMDC 3: [W1]_[W6],                              ;Save character
                                                                             |0437|2149|        CALL [PUT CMDBUF]                       ; And put in CMDBUF
000,000,0,04,06,1,26,0,00,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,0672,00,7,00,0,0,0,0438|2150|        [W6]_[W1],                              ;Then echo the char
                                                                             |0438|2151|        GOTOP [PUT W1&DISMISS]                  ;Type W1 then dismiss int
                                                                             |0438|2152|
                                                                             |0438|2153|;Here for typeahead
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0301,00,7,01,0,0,0,0439|2154|TYPE AHEAD:
                                                                             |0439|2155|        J[CMDRPT]_RAMFILE ADR                   ;Address repeat counter
000,000,0,14,00,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0440|2156|        ONES_F,F_Y,ALU_RAMFILE                  ;typeahead kills repeat
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0007,00,7,01,0,0,0,0441|2157|REFUSE CHAR:
                                                                             |0441|2158|        J[007]_[W1]                             ;Ascii "^G"
                                                                             |0441|2159|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0607,00,7,00,0,0,0,0442|2160|PUT W1&DISMISS:
                                                                             |0442|2161|        CALL [PUT CMR CHR]
                                                                             |0442|2162|        GOTOP [PCI INT CLR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,0443|2163|
                                                                             |0443|2164|;Here to process a rubout
000,000,0,06,06,1,72,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0340,00,7,01,0,0,0,0444|2165|CMD RUBOUT:
                                                                             |0444|2166|        J[CMDPTR]_RAMFILE ADR,                  ;Address putter
                                                                             |0444|2167|        [K 777]_Q
                                                                             |0444|2168|        RAMFILE_[W1]                    ;Get command putter
000,000,0,07,14,1,02,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0446|2169|        Q&[W1]_F,                               ;Leave only ramfile adr in Q
                                                                             |0446|2170|        F_Q FJ[CMDBUF-1]_[W2]
000,000,0,14,02,0,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,13,02,00,3613,00,7,00,0,0,0,0447|2171|        [W2]-[W1]_Y,                            ;See if any characters to delete
                                                                             |0447|2172|         IF CT [IZ] THENP [PCI INT CLR]         ; Nothing does not echo
                                                                             |0447|2173|        CALL [BKUP POINTER]                     ;Backup pointer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1030,00,7,00,0,0,0,0448|2174|        J[0134]_[W1]                            ;Ascii "\"
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0134,00,7,01,0,0,0,0449|2175|        GOTOP [PUT W1&DISMISS]                  ;Type W1 then dismiss int
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0672,00,7,00,0,0,0,0450|2176|
                                                                             |0450|2177|.IF/FTCTLR
                                                                             |0450|2178|;Here for a "R
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0303,00,7,01,0,0,0,0451|2179|CNTRL R:
                                                                             |0451|2180|        J[CMRTKR]_RAMFILE ADR                   ;Address response taker
                                                                             |0451|2181|.IF/FTCRAM
                                                                             |0451|2182|        RAMFILE_[W2]                    ;When typing ignore
                                                                             |0451|2183|        [W2]_[W2],                              ;let latches go
                                                                             |0451|2184|         IF NOT CT [IZ] THENP [PCI INT CLR]
                                                                             |0451|2185|.ENDIF/FTCRAM
                                                                             |0451|2186|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,64,1,1,0,13,03,00,3613,00,7,04,0,0,0,0452|2187|        RAMFILE_[W2],                   ;When typing ignore
                                                                             |0452|2188|         IF NOT CT [IZ] THENP [PCI INT CLR]
                                                                             |0452|2189|.ENDIF/FTCRAM
                                                                             |0452|2190|        J[0122]_[W6]                            ;Put "R" in W6
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0122,00,7,01,0,0,0,0453|2191|        CALL [PUT CNTRL W6]                     ;Type "^R"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0553,00,7,00,0,0,0,0454|2192|        CALL [PUT CMR PROMPT]                   ;Retype prompt
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0567,00,7,00,0,0,0,0455|2193|;copy CMD buffer to CMR buffer
                                                                             |0455|2194|        CALL [ENABLE PARSE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0663,00,7,00,0,0,0,0456|2195|        GOTO [CR4]                              ;Be sure there is anything to do
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1004,00,7,00,0,0,0,0458|2196|CR2:    CALL [GET CMD CHR]
                                                                             |0458|2197|        CALL [PUT CMR CHR]                      ;Copy byte to CMR buffer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0340,00,7,01,0,0,0,0460|2198|CR4:    J[CMDPTR]_RAMFILE ADR                   ;Address putter
                                                                             |0460|2199|        RAMFILE_[W2]
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0461|2200|        J[CMDTKR]_RAMFILE ADR                   ;Address taker
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0462|2201|        RAMFILE_[W1]
000,000,0,14,13,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,0712,00,7,00,0,0,0,0464|2202|        [W1].XOR.[W2]_Y,
                                                                             |0464|2203|         IF NOT CT [IZ] THEN [CR2]
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,3613,00,7,04,0,0,0,0465|2204|        ZERO_Y,ALU_RAMFILE,                     ;Reset CMD taker
                                                                             |0465|2205|        GOTOP [PCI INT CLR]
                                                                             |0465|2206|.ENDIF/FTCTLR
                                                                             |0465|2207|
                                                                             |0465|2208|;Here for a ^\
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0100,00,7,01,0,0,0,0466|2209|CNTRL BKSLSH:
                                                                             |0466|2210|
                                                                             |0466|2211|;Here for ^C or ^U
                                                                             |0466|2212|CNTRL C U:
                                                                             |0466|2213|        J[0100]_[W6]                            ;To convert "^C" to "C"
000,000,0,04,03,1,26,0,24,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0764,00,7,00,0,0,0,0467|2214|        Q+[W6]_[W6],
                                                                             |0467|2215|         CALL [CMD&CMR FLUSH]                   ;Flush command buffer
000,000,0,04,06,1,47,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0003,00,7,01,0,0,0,0468|2216|        [BIT4]_F,FJ[F.O!F.S]_[W1]               ; (F.USR) Flags to clear
                                                                             |0468|2217|        CALL [CLEAR CMDFLG]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0743,00,7,00,0,0,0,0469|2218|        CALL [PUT CNTRL W6]                     ;Type ^C or ^U
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0553,00,7,00,0,0,0,0470|2219|        CALL [PUT CMR PROMPT]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1240,00,7,00,0,0,0,0472|2220|        ZERO_[W1],CALL [SET INT RCOVR]          ;Clear interrupt recovery
                                                                             |0472|2221|        GOTOP [PCI INT CLR]                     ;Dismiss interrupt
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,0473|2222|
                                                                             |0473|2223|;Here to turn off F.O (the control 0 flag)
                                                                             |0473|2224|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0001,00,7,01,0,0,0,0474|2225|F.O CLEAR:
                                                                             |0474|2226|        J[F.O]_[W1]                             ;Flags to clear for new command
                                                                             |0474|2227|        GOTO [CLEAR CMDFLG]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0743,00,7,00,0,0,0,0475|2228|
                                                                             |0475|2229|;Here for ^O
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0774,00,7,00,0,0,0,0476|2230|CNTRL O:
                                                                             |0476|2231|        CALL [CMRBUF FLUSH]                     ;Flush command response buffer
                                                                             |0476|2232|        J[0117]_[W6]                            ;Ascii "O"
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0117,00,7,01,0,0,0,0477|2233|        CALL [PUT CNTRL W6]                     ;Type ^O
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0553,00,7,00,0,0,0,0478|2234|        J[CMDFLG]_RAMFILE ADR                   ;Address ramfile word
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0300,00,7,01,0,0,0,0479|2235|        J[F.O]_[W1]                             ;Flag we are flushing output
000,000,0,07,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0481|2236|        RAMFILE_Y,[W1]_F,Y_[W1] F_Q             ;Get word from ramfile
000,000,0,14,13,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,3613,00,7,04,0,0,0,0482|2237|        Q.XOR.[W1]_F,F_Y,ALU_RAMFILE,           ;Set/clear flag
                                                                             |0482|2238|         GOTOP [PCI INT CLR]                    ;Dismiss interrupt
                                                                             |0482|2239|
                                                                             |0482|2240|;Here to clear a flag in the CKDFLG word
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0300,00,7,01,0,0,0,0483|2241|CLEAR CMDFLG:
                                                                             |0483|2242|        J[CMDFLG]_RAMFILE ADR                   ;Address ramfile word
000,000,0,07,07,0,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0484|2243|        RAMFILE_Y,Y_[W1] F_Q,           ;Get old flag word
                                                                             |0484|2244|         COMPLEMENT [W1]_F
000,000,0,14,14,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,0485|2245|         Q&[W1]_Y,ALU_RAMFILE,                  ;Clear flag
                                                                             |0485|2246|        RETURN
                                                                             |0485|2247|
                                                                             |0485|2248|;Here for a ^S (Xoff) command
                                                                             |0485|2249|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0002,00,7,01,0,0,0,0486|2250|CNTRL S:
                                                                             |0486|2251|        J[F.S]_[W1]                             ;Flag to set
                                                                             |0486|2252|        CALL [SET CMDFLG]                       ; Set it
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0751,00,7,00,0,0,0,0487|2253|        GOTOP [PCI INT CLR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,0488|2254|
                                                                             |0488|2255|;Here to set a flag in the CMDFLG word
                                                                             |0488|2256|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0300,00,7,01,0,0,0,0489|2257|SET CMDFLG:
                                                                             |0489|2258|        J[CMDFLG]_RAMFILE ADR                   ;Address ramfile word
000,000,0,07,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0490|2259|        RAMFILE_Y,[W1]_F,Y_[W1] F_Q     ;Get old flag word
000,000,0,14,17,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,0491|2260|        Q.OR.[W1]_Y,ALU_RAMFILE,                ;Set flag
                                                                             |0491|2261|         RETURN
                                                                             |0491|2262|
                                                                             |0491|2263|;Here for a ^Z
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,43,00,3613,00,7,00,0,0,0,0492|2264|CNTRL Z:
                                                                             |0492|2265|        IF [NOT RUN] THENP [PCI INT CLR]        ;No user mode if stopped
                                                                             |0492|2266|        J[0132]_[W6]                            ;Ascii "Z"
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0132,00,7,01,0,0,0,0493|2267|        CALL [PUT CNTRL W6]                     ;^Z
000,000,0,04,06,1,47,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0751,00,7,00,0,0,0,0495|2268|        [BIT4]_[W1],                            ;(F.USR) User mode
                                                                             |0495|2269|         CALL [SET CMDFLG]                      ; Set flag
                                                                             |0495|2270|        ;GOTO [CNTRL Q]                         ;Also clear XOF flag
                                                                             |0495|2271|
                                                                             |0495|2272|;Here for a ^Q (Xon)
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0002,00,7,01,0,0,0,0496|2273|CNTRL Q:
                                                                             |0496|2274|        J[F.S]_[W1]                             ;Flag to clear
                                                                             |0496|2275|        CALL [CLEAR CMDFLG]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0743,00,7,00,0,0,0,0497|2276|        CALL [SET PCI TXEN]                     ;Start transmitter again
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3675,00,7,00,0,0,0,0498|2277|        GOTOP [PCI INT CLR]                     ;Dismiss interrupt
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,0499|2278|
                                                                             |0499|2279|
                                                                             |0499|2280|;Here to flush command and command response buffer
                                                                             |0499|2281|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0774,00,7,00,0,0,0,0500|2282|CMD&CMR FLUSH:
                                                                             |0500|2283|        CALL [CMRBUF FLUSH]                     ;First flush the response buffer
                                                                             |0500|2284|        ;GOTO [CMDBUF FLUSH]
                                                                             |0500|2285|
                                                                             |0500|2286|;Here to flush command buffer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0501|2287|CMDBUF FLUSH:
                                                                             |0501|2288|        J[CMDTKR]_RAMFILE ADR
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0502|2289|        ZERO_Y,ALU_RAMFILE                      ;Clear taker
                                                                             |0502|2290|        J[CMDRPT]_RAMFILE ADR                   ;Address repeat counter
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0504|2291|        ZERO_Y,ALU_RAMFILE                      ;Clear repeat counter
                                                                             |0504|2292|        J[CMDPTR]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0340,00,7,01,0,0,0,0505|2293|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0506|2294|CMD PTR RESET:
                                                                             |0506|2295|        J[CMDBUF-1]_[W1]                        ;Adr of 1st word-1 of buffer
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,0507|2296|        [W1]_RAMFILE,                           ; Initialize putter
                                                                             |0507|2297|        RETURN
                                                                             |0507|2298|
                                                                             |0507|2299|;Here to flush command response buffer
                                                                             |0507|2300|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0303,00,7,01,0,0,0,0508|2301|CMRBUF FLUSH:
                                                                             |0508|2302|        J[CMRTKR]_RAMFILE ADR
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0509|2303|        ZERO_Y,ALU_RAMFILE                      ;Clear taker
                                                                             |0509|2304|        J[CMRPTR]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0302,00,7,01,0,0,0,0510|2305|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0303,00,7,01,0,0,0,0511|2306|CMR PTR RESET:
                                                                             |0511|2307|        J[CMRBUF-1]_[W1]                        ;Adr of 1st word-1 of buffer
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,0512|2308|        [W1]_RAMFILE,                           ;Initialize putter
                                                                             |0512|2309|        RETURN
                                                                             |0512|2310|
                                                                             |0512|2311|;Routine to put a byte into the ramfile
                                                                             |0512|2312|
                                                                             |0512|2313|; Call with     [W1] = char to put
                                                                             |0512|2314|;      Will first increment pointer than store indirect it
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0340,00,7,01,0,0,0,0513|2315|PUT CMDBUF:
                                                                             |0513|2316|        J[CMDPTR]_RAMFILE ADR                   ;Address putter for command buffer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1005,00,7,00,0,0,0,0514|2317|PUT CMB:
                                                                             |0514|2318|        CALL [CMB NXT]                          ;Put byte in ramfile word
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,0515|2319|        [W2]_RAMFILE,                           ;Put word back in ramfile
                                                                             |0515|2320|        RETURN
                                                                             |0515|2321|
                                                                             |0515|2322|;Here to get a char from a command line
                                                                             |0515|2323|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0516|2324|GET CMD CHR:
                                                                             |0516|2325|        J[CMDTKR]_RAMFILE ADR                   ;Address command char taker
                                                                             |0516|2326|        ;GOTO [CMS NXT]                         ;Advance to next byte
                                                                             |0516|2327|
                                                                             |0516|2328|;Get or prepare to put next byte in ramfile CMD or CMR buffer
                                                                             |0516|2329|; Call  J[taker or putter]_RAMFILE ADR
                                                                             |0516|2330|;       _[W1]   ;Byte to be stored
                                                                             |0516|2331|; returns
                                                                             |0516|2332|;       [W1]    ;byte from ramfile
                                                                             |0516|2333|;       [W2]    ;Ramfile word with byte inserted
                                                                             |0516|2334|
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0517|2335|CMB NXT:
                                                                             |0517|2336|        RAMFILE_[W2]                            ;Get current pointer
000,000,0,04,03,0,76,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,1012,00,7,00,0,0,0,0518|2337|        [K -1.0]+[W2]_B,                        ;Next byte adr
                                                                             |0518|2338|         IF NOT CT [IN] THEN [CMBP4]
                                                                             |0518|2339|        J[4]_[W3]                               ;First byte is number 4
000,000,0,04,10,1,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,0519|2340|        SWAP [W3]_[W2 LH]                       ;Put byte number in LH
000,000,0,04,10,0,12,2,05,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0520|2341|        [W2]+1_[W2 RH]                          ;Next ramfile adr
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0522|2342|CMBP4:  [W2]_RAMFILE,                           ;Store updated pointer
                                                                             |0522|2343|        Y_RAMFILE ADR                           ; and address buffer
                                                                             |0522|2344|        J[0117]_[W3]
000,000,0,07,14,0,12,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1021,00,7,04,0,0,0,0524|2345|        [W3]&[W1]_F, Y_[W1] F_Q,                ;Get mask for data
                                                                             |0524|2346|         RAMFILE_Y,                             ;Get word from ramfile
                                                                             |0524|2347|         GOTO [CMBP7]
000,000,0,01,06,1,02,0,00,0,0,00,00,01,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0525|2348|CMBP5:  LRS [W1]_[W1]                           ;Shift ramfile word right
000,000,1,13,06,1,12,0,10,0,0,00,00,31,00,00,0,20,1,1,1,14,00,00,0005,00,7,00,0,0,0,0526|2349|        LLSC [W3]_[W3],                         ;Shift mask and byte left
                                                                             |0526|2350|         J[5]_CTR
000,000,0,01,06,1,02,0,00,0,0,00,00,01,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0527|2351|CMBP6:  LRS [W1]_[W1]                           ;Shift ramfile word right
000,000,1,13,06,1,12,0,10,0,0,00,00,31,00,00,0,20,1,1,1,11,00,00,1017,00,7,00,0,0,0,0528|2352|        LLSC [W3]_[W3],                         ;Shift mask and byte left
                                                                             |0528|2353|         LOOP [CMBP6]
000,000,0,04,03,0,76,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,1015,00,7,00,0,0,0,0529|2354|CMBP7:  [K -1.0]+[W2]_B,
                                                                             |0529|2355|         IF NOT CT [IN] THEN [CMBP5]
                                                                             |0529|2356|         J[0117]_[W2]                           ;Get mask for data
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0117,00,7,01,0,0,0,0530|2357|        [W2]&[W1]_B                             ;Leave only data byte
000,000,0,04,14,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0531|2358|        RAMFILE_[W2]                            ;Get ramfile word again
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0532|2359|        [W3]BAR&[W2]_B                          ;Clear slot for byte
000,000,0,04,17,1,06,0,04,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,0534|2360|        Q.OR.[W2]_[W2],                         ;Add new byte
                                                                             |0534|2361|         RETURN
                                                                             |0534|2362|
                                                                             |0534|2363|;Here to backup the command buffer taker
                                                                             |0534|2364|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0341,00,7,01,0,0,0,0535|2365|BKUP CMD TKR:
                                                                             |0535|2366|        J[CMDTKR]_RAMFILE ADR
                                                                             |0535|2367|        ;GOTO [BKUP POINTER]
                                                                             |0535|2368|
                                                                             |0535|2369|;Here to backup a pointer
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,0536|2370|BKUP POINTER:
                                                                             |0536|2371|        J[4]_[W2]
                                                                             |0536|2372|        RAMFILE_[W1]
000,000,0,07,04,0,02,2,06,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0538|2373|        SWAP [W1]_[W2 RH] F_Q,B[W2 RH]_F
000,000,0,14,02,1,06,0,00,0,1,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,0539|2374|        [W2]-Q_F,F_Y,IX_MX                      ;Test for overflow
000,000,0,04,03,0,57,0,00,0,0,00,00,00,00,00,0,44,1,1,1,03,03,00,5020,00,7,00,0,0,0,0540|2375|        [BIT17]+[W1]_B,                         ;Previous byte number
                                                                             |0540|2376|         IF NOT CT [MZ] THEN [W1_RAMFILE]
                                                                             |0540|2377|        ZERO_[W1 LH]
000,000,0,04,03,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,5020,00,7,00,0,0,0,0542|2378|        [K -1]+[W1]_B,                          ;Backup ramfile word
                                                                             |0542|2379|         GOTO [W1_RAMFILE]
                                                                             |0542|2380|
                                                                             |0542|2381|.TOC 2, " A - Console Address Break Command"
                                                                             |0542|2382|
                                                                             |0542|2383|;Here for a "Address Break" command
                                                                             |0542|2384|
                                                                             |0542|2385|.IF/FTADRB
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0520,00,7,00,0,0,0,0543|2386|A CMD:  CALL [GET CMD NUM]
                                                                             |0543|2387|        J[AB IF]_RAMFILE ADR
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0520,00,7,04,0,0,0,0545|2388|        [W1]_RAMFILE,
                                                                             |0545|2389|         CALL [GET CMD NUM]
                                                                             |0545|2390|        J[AB RD]_RAMFILE ADR
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0520,00,7,04,0,0,0,0547|2391|        [W1]_RAMFILE,
                                                                             |0547|2392|         CALL [GET CMD NUM]
                                                                             |0547|2393|        J[AB WR]_RAMFILE ADR
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,0511,00,7,04,0,0,0,0549|2394|        [W1]_RAMFILE,
                                                                             |0549|2395|         GOTO [CMD PRSE8]
                                                                             |0549|2396|.ENDIF/FTADRB
                                                                             |0549|2397|
                                                                             |0549|2398|.TOC 2, " B - Console Bootstrap Command"
                                                                             |0549|2399|
                                                                             |0549|2400|;Here for a B "Bootstrap" command
                                                                             |0549|2401|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,42,00,0470,00,7,00,0,0,0,0550|2402|B CMD:  IF [RUN] THEN [CMDERR NWR]
                                                                             |0550|2403|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0551|2404|
                                                                             |0551|2405|.TOC 2, " C - Console Continue Command"
                                                                             |0551|2406|
                                                                             |0551|2407|;Here for a CONTINUE command
                                                                             |0551|2408|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,42,00,0470,00,7,00,0,0,0,0552|2409|C CMD:  IF [RUN] THEN [CMDERR NWR]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,01,01,00,1057,00,7,00,0,0,0,0553|2410|        SET LOCAL,CALL [GET CMD PC]             ;Try to get a PC from command
000,000,0,04,06,1,47,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0751,00,7,00,0,0,0,0554|2411|        [BIT4]_[W1],                            ; (F.USR) Console now in user mode
                                                                             |0554|2412|        CALL [SET CMDFLG]
                                                                             |0554|2413|        CALL [SET PCI TXEN]                     ;Start transmitter
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3675,00,7,00,0,0,0,0555|2414|        J[HALT CODE]_RAMFILE ADR
000,000,0,14,10,1,00,0,00,0,0,00,44,00,00,00,0,20,1,1,1,01,01,00,3216,00,7,04,0,0,0,0557|2415|        ZERO_Y,ALU_RAMFILE,SET RUN,             ;We have not halted
                                                                             |0557|2416|         CALL [SET PI MASK]                     ; Enable interrupts
                                                                             |0557|2417|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0558|2418|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0520,00,7,00,0,0,0,0559|2419|GET CMD PC:
                                                                             |0559|2420|        CALL [GET CMD NUM]                      ;Get suggested starting address
                                                                             |0559|2421|        IF CT [UZ] RETURN
000,000,0,04,06,1,02,0,34,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,0561|2422|        [W1]_[PC],                              ;Set new PC
                                                                             |0561|2423|        RETURN
                                                                             |0561|2424|
                                                                             |0561|2425|.TOC 2, " D - Console Deposit Command"
                                                                             |0561|2426|
                                                                             |0561|2427|;Here for a D "Deposit memory" command
                                                                             |0561|2428|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,12,0,1,1,01,01,00,1115,00,7,00,0,0,0,0562|2429|D CMD:  ZERO_[W1],                              ;No int recovery routine
                                                                             |0562|2430|        CALL [GET EXM ADR],#0_UC                 ;Get adr to deposit
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4704,00,7,00,0,0,0,0563|2431|DN:     CALL [UNMAPPED WRITE]
                                                                             |0563|2432|.IF/FTFCSL
                                                                             |0563|2433|        CALL [GET CMD NUM]                      ;Get data
000,000,0,04,06,1,02,0,44,0,0,00,00,00,00,00,0,24,1,1,1,03,03,00,1063,00,7,00,0,0,0,0565|2434|        [W1]_[MB],
                                                                             |0565|2435|         IF NOT CT [UZ] THEN [DN]
                                                                             |0565|2436|.ENDIF/FTFCSL
                                                                             |0565|2437|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0566|2438|
                                                                             |0566|2439|.IF/FTFCSL
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1076,00,7,00,0,0,0,0567|2440|JK CMD: CALL [GET JK NUM]                       ;Get adr to deposit into
000,000,0,04,06,1,46,0,33,0,0,00,00,00,00,00,0,24,1,1,1,03,02,00,1130,00,7,00,0,0,0,0568|2441|        [MB]_[PMA],
                                                                             |0568|2442|         IF CT [UZ] THEN [CMDERR NEA]           ;Require address
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1076,00,7,00,0,0,0,0569|2443|JK L:   CALL [GET JK NUM]                       ;Get data to deposit
                                                                             |0569|2444|         IF CT [UZ] THEN [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,24,1,1,0,03,02,00,0511,00,7,00,0,0,0,0570|2445|        J[EXM ADR]_RAMFILE ADR
000,000,0,14,06,1,33,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,04,0,0,0,0572|2446|        [PMA]_Y,ALU_RAMFILE,                    ;Save last adr deposited
                                                                             |0572|2447|        CALL [UNMAPPED WRITE]
000,000,0,04,06,1,33,0,33,0,1,00,00,00,00,00,0,20,1,1,1,03,01,00,1071,00,7,00,0,0,0,0573|2448|        [PMA]+1_[PMA],                          ;Next adr
                                                                             |0573|2449|         GOTO [JK L]
                                                                             |0573|2450|
                                                                             |0573|2451|;Here to get an "Asciized" number
000,000,0,04,10,1,00,0,44,0,0,00,00,00,00,00,0,11,0,1,1,01,01,00,0514,00,7,00,0,0,0,0574|2452|GET JK NUM:
                                                                             |0574|2453|        ZERO_[MB], #1_UZ,
                                                                             |0574|2454|         CALL [GET CMD CHX]                     ;Get 1st nonblank char from command
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0075,00,7,01,0,0,0,0575|2455|JK 1:   J[075]_[W2]
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,02,00,0531,00,7,00,0,0,0,0576|2456|        [W1]-[W2]_Y,
                                                                             |0576|2457|         IF CT [IN] THEN [GCN 4]
                                                                             |0576|2458|        J[0175]_[W2]
000,000,0,14,02,0,02,0,04,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,0531,00,7,00,0,0,0,0578|2459|        [W1]-[W2]_Y,
                                                                             |0578|2460|         IF NOT CT [IN] THEN [GCN 4]
000,000,0,04,14,0,66,0,00,0,0,00,00,00,00,00,0,20,1,1,1,14,00,00,0002,00,7,00,0,0,0,0579|2461|        [K 77]&[W1]_B,                          ;Strip extra bits
                                                                             |0579|2462|        J[2]_CTR
000,000,1,11,03,0,46,0,44,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,1104,00,7,00,0,0,0,0580|2463|JK 2:   #4*[MB]_B,LOOP [JK 2]
000,000,0,04,03,0,02,0,44,0,0,00,00,00,00,00,0,10,0,1,1,01,01,00,1004,00,7,00,0,0,0,0581|2464|        [W1]+[MB]_B,#0_UZ,
                                                                             |0581|2465|         CALL [GET CMD CHR]
                                                                             |0581|2466|        GOTO [JK 1]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1077,00,7,00,0,0,0,0582|2467|.ENDIF/FTFCSL
                                                                             |0582|2468|
                                                                             |0582|2469|.TOC 2, " E - Console Examine Memory Command"
                                                                             |0582|2470|
                                                                             |0582|2471|;Here for a E "Examine memory" command
                                                                             |0582|2472|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,1111,00,7,01,0,0,0,0583|2473|E CMD:  J[E CMD RCOVR]_[W1]                     ;Recovery routine for ints
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,13,0,1,0,01,01,00,1115,00,7,00,0,0,0,0584|2474|        CALL [GET EXM ADR], #1_UC                ;Get memory adr to examine
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,1,02,0,0,0,0585|2475|E CMD RCOVR:
                                                                             |0585|2476|        [PMA]_[PMA],MEM START READ
                                                                             |0585|2477|        CALL [UNMAPPED READ]
000,000,0,04,06,1,46,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0533,00,7,00,0,0,0,0587|2478|EC 3:   [MB]_[W1],
                                                                             |0587|2479|        CALL [PUT CMR NUM]
                                                                             |0587|2480|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0588|2481|
                                                                             |0588|2482|;Here to set an address to examine or deposit
                                                                             |0588|2483|; Call   J[adr]_[W1]                            ; Interrupt recovery address
                                                                             |0588|2484|;        CALL [GET EXM ADR],#0_UC                ;for deposit commands
                                                                             |0588|2485|;        CALL [GET EXM ADR],l_UC                ;For examine commands
                                                                             |0588|2486|;        Returns adr in [E] & [PMA], (and for deposits data in MB)
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0589|2487|GET EXM ADR:
                                                                             |0589|2488|        [W1]_Y                                  ;Set recovery routine
                                                                             |0589|2489|         IF NOT CT [IZ] CALL [SET INT RCOVR]    ; for interrupts
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,64,1,1,0,01,03,00,1240,00,7,00,0,0,0,0590|2490|        J[CMDERR E MER]_[W1]                    ;Recovery routine for examines
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0474,00,7,01,0,0,0,0591|2491|        IF CT [UC] CALL [SET PF ME RCOVR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,32,1,1,0,01,02,00,5016,00,7,00,0,0,0,0592|2492|        CALL [GET CMD NUM]                      ;Get adr to examine
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0520,00,7,00,0,0,0,0593|2493|        J[EXM ADR]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0445,00,7,01,0,0,0,0594|2494|        IF NOT CT [UZ] THEN [GEA2]              ;If no adr use last
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,32,1,1,0,03,03,00,1130,00,7,04,0,0,0,0596|2495|        RAMFILE_[W1],                           ;Get last adr used
                                                                             |0596|2496|         IF NOT CT [UC] THEN [CMDERR NEA]       ;Require address
000,000,0,04,06,1,02,0,40,0,0,00,00,00,00,00,0,32,1,1,1,03,02,00,1132,00,7,04,0,0,0,0597|2497|GEA2:   [W1]_[E],ALU_RAMFILE,                   ;Save address in E and ramfile
                                                                             |0597|2498|         IF CT [UC] THEN [GEA6]                 ; Branch for examine
000,000,0,04,06,1,42,0,33,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0520,00,7,00,0,0,0,0598|2499|        [E]_[PMA],                              ;Save adr in PMA also
                                                                             |0598|2500|        CALL [GET CMD NUM]                      ;Get data
000,000,0,04,06,1,02,0,44,0,0,00,00,00,00,00,0,24,1,1,1,12,03,00,0000,00,7,00,0,0,0,0599|2501|        [W1]_[MB],
                                                                             |0599|2502|         IF NOT CT [UZ] RETURN                  ;Require data
                                                                             |0599|2503|        ;GOTO [CMDERR NEA]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0003,00,7,01,0,0,0,0600|2504|CMDERR NEA:
                                                                             |0600|2505|        J[ERR.NEA]_[W1]                         ;Error code (not enough args)
                                                                             |0600|2506|        GOTOP [CMDERR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,0501,00,7,00,0,0,0,0601|2507|
000,000,0,04,06,1,42,0,33,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0604,00,7,00,0,0,0,0602|2508|GEA6:   [E]_[PMA],                              ;Save adr in PMA also
                                                                             |0602|2509|         CALL [PUT CMR CRLF]                    ;Begin with a flourish
000,000,0,04,06,1,33,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0533,00,7,00,0,0,0,0603|2510|        [PMA]_[W1],                             ;Now type adr
                                                                             |0603|2511|         CALL [PUT CMR NUM]
                                                                             |0603|2512|        GOTO [PUT CMR SLSH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0563,00,7,00,0,0,0,0604|2513|
                                                                             |0604|2514|.TOC 2, "DI - Console Deposit I/O Command"
                                                                             |0604|2515|
                                                                             |0604|2516|;Here for an DI "Deposit I/O" command
                                                                             |0604|2517|.IF/FTFCSL
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,12,0,1,1,01,01,00,1115,00,7,00,0,0,0,0605|2518|DI CMD: ZERO_[W1],                              ;No int recovery
                                                                             |0605|2519|         CALL [GET EXM ADR],#0_UC               ;Get adr to deposit
000,000,0,04,06,1,02,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4042,00,7,00,0,0,0,0606|2520|         [W1]_[MEM-OP],                         ;Put data in right register
                                                                             |0606|2521|        CALL [WRIOX]                            ;Try to do it
                                                                             |0606|2522|        IF CT [UOVR] THEN [CMDERR NXA]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,26,1,1,0,03,02,00,0472,00,7,00,0,0,0,0607|2523|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0608|2524|.ENDIF/FTFCSL
                                                                             |0608|2525|
                                                                             |0608|2526|.TOC 2, "EI - Console Examine IO Command"
                                                                             |0608|2527|
                                                                             |0608|2528|;Here for an EI "Examine I/O" command
                                                                             |0608|2529|.IF/FTFCSL
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,13,0,1,1,01,01,00,1115,00,7,00,0,0,0,0609|2530|EI CMD: ZERO_[W1],                              ;No int recovery
                                                                             |0609|2531|         CALL [GET EXM ADR],#1_UC               ;Get adr to examine
                                                                             |0609|2532|        CALL [RDIOX]                            ;Do read like RDIO
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1540,00,7,00,0,0,0,0610|2533|        IF CT [UOVR] THENP [CMDERR NXA]
000,000,0,04,06,1,56,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0533,00,7,00,0,0,0,0612|2534|        [MEM-OP]_[W1],                          ;Copy data
                                                                             |0612|2535|         CALL [PUT CMR NUM]                     ; Display data
                                                                             |0612|2536|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0613|2537|.ENDIF/FTFCSL
                                                                             |0613|2538|
                                                                             |0613|2539|.TOC 2, "DR - Console Deposit Ramfi1e Command"
                                                                             |0613|2540|
                                                                             |0613|2541|;Here for an DR "Deposit Ramfile" command
                                                                             |0613|2542|
                                                                             |0613|2543|.IF/FTFCSL
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,12,0,1,1,01,01,00,1115,00,7,00,0,0,0,0614|2544|DR CMD: ZERO_[W1],                              ;No int recovery
                                                                             |0614|2545|        CALL [GET EXM ADR],#0_UC                 ;Get adr to examine
000,000,0,14,06,1,33,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0615|2546|        [PMA]_Y,Y_RAMFILE ADR
000,000,0,14,14,0,77,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,0511,00,7,04,0,0,0,0616|2547|DRC 3:  [MB]_RAMFILE,                           ; Deposit ramfile
                                                                             |0616|2548|         GOTO [CMD PRSE8]
                                                                             |0616|2549|
                                                                             |0616|2550|.TOC 2, "ER - Console Examine Ramfile Command"
                                                                             |0616|2551|
                                                                             |0616|2552|;Here for an ER command
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,13,0,1,1,01,01,00,1115,00,7,00,0,0,0,0617|2553|ER CMD: ZERO_[W1],                              ;No int recovery
                                                                             |0617|2554|        CALL [GET EXM ADR],#1_UC                 ;Get adr to examine
000,000,0,14,06,1,33,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0618|2555|        [PMA]_Y,Y_RAMFILE ADR                   ;Address ramfile
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0533,00,7,04,0,0,0,0619|2556|        RAMFILE_[W1],
                                                                             |0619|2557|        CALL [PUT CMR NUM]
                                                                             |0619|2558|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0620|2559|.ENDIF/FTFCSL
                                                                             |0620|2560|
                                                                             |0620|2561|.TOC 2, "DV - Console Deposit Virtual Command"
                                                                             |0620|2562|
                                                                             |0620|2563|;Here for an DV "Deposit Virtual" command
                                                                             |0620|2564|.IF/FTFCSL
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,1157,00,7,01,0,0,0,0621|2565|DV CMD: J[DV CMD RCOVR]_[W1],POP                ;Recovery routine for ints
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,12,0,1,0,01,01,00,1115,00,7,00,0,0,0,0622|2566|        CALL [GET EXM ADR],#0_UC                 ;Get adr to examine
000,000,0,14,10,0,00,0,00,0,0,00,10,00,00,00,0,20,1,1,0,01,01,00,4711,00,7,00,0,0,0,0623|2567|DV CMD RCOVR:
                                                                             |0623|2568|        SET GLOBAL,CALL [MEMORY WRITE]          ;Write virtual
                                                                             |0623|2569|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0624|2570|
                                                                             |0624|2571|.TOC 2, "EV - Console Examine Virtual Command"
                                                                             |0624|2572|
                                                                             |0624|2573|;Here for an EV command
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,1163,00,7,01,0,0,0,0625|2574|EV CMD: J[EV CMD RCOVR]_[W1]                    ;Recovery routine for ints
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,13,0,1,0,01,01,00,1115,00,7,00,0,0,0,0626|2575|        CALL [GET EXM ADR],#1_UC                 ;Get adr to examine
000,000,0,14,10,0,00,0,00,0,0,00,10,00,00,00,0,20,1,1,0,01,01,00,4662,00,7,00,0,0,0,0627|2576|EV CMD RCOVR:
                                                                             |0627|2577|        SET GLOBAL,CALL [MEM READ 0]            ;Read virtual
                                                                             |0627|2578|        GOTO [EC 3]                             ;Rest like E cmd
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1113,00,7,00,0,0,0,0628|2579|.ENDIF/FTFCSL
                                                                             |0628|2580|
                                                                             |0628|2581|.TOC 2, " H - Console Halt Command"
                                                                             |0628|2582|
                                                                             |0628|2583|;Here for a HALT cOMMand
                                                                             |0628|2584|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0002,00,7,01,0,0,0,0629|2585|H CMD:  ;IF [NOT RUN] THEN [CMDERR NWR]         ;This is silly if not running
                                                                             |0629|2586|        J[HALT CONSOLE]_[W1]                    ;Stopped because told to
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0151,00,7,01,0,0,0,0630|2587|SET HALT CODE:
                                                                             |0630|2588|        J[HALT CODE]_RAMFILE ADR
000,000,0,14,06,1,66,0,00,0,0,00,00,00,72,00,0,20,1,1,1,13,43,00,1310,00,7,00,0,0,0,0631|2589|        [K 77]_Y,Y_2914 MASK,                   ;Stop interrupts
                                                                             |0631|2590|         IF [NOT RUN] THENP [WRITE HSB]
000,000,0,14,14,0,77,0,00,0,0,00,40,00,00,00,0,20,1,1,1,13,01,00,1310,00,7,04,0,0,0,0632|2591|        [W1]_RAMFILE,CLEAR RUN,                 ;Save code and go type result
                                                                             |0632|2592|         GOTOP [WRITE HSB]
                                                                             |0632|2593|
                                                                             |0632|2594|.TOC 2, " I - Console Initialize Command"
                                                                             |0632|2595|
                                                                             |0632|2596|;Here for a Initialize command
                                                                             |0632|2597|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,42,00,0470,00,7,00,0,0,0,0633|2598|I CMD:  IF [RUN] THEN [CMDERR NWR]
                                                                             |0633|2599|        CALL [SYS RESET]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1174,00,7,00,0,0,0,0634|2600|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0635|2601|
000,000,0,04,10,1,00,0,03,0,0,00,20,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0636|2602|SYS RESET:
                                                                             |0636|2603|        ZERO_[PC FLAGS],CLEAR USER              ;Initialize register
000,000,0,04,10,1,00,0,17,0,0,00,30,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0637|2604|        ZERO_[EPT],CLEAR PAGED                  ;Initialize register
000,000,0,04,10,1,00,0,23,0,0,00,14,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0638|2605|        ZERO_[UPT],SET LOCAL                    ;Initialize register
000,000,0,04,10,1,00,0,27,0,0,00,60,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0639|2606|        ZERO_[SPT],CLEAR PXCT                   ;Initialize register
                                                                             |0639|2607|
                                                                             |0639|2608|;Set up PROC REG
                                                                             |0639|2609|        J[#33B MASK]_RAMFILE ADR                 ;Want high order 3 bits on
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0041,00,7,01,0,0,0,0640|2610|.IF/FT10PAG
000,000,0,04,10,0,00,0,00,0,0,00,50,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0641|2611|        RAMFILE_[W1],CLEAR TOPS20
                                                                             |0641|2612|.ENDIF/FT10PAG
                                                                             |0641|2613|.IFNOT/FT10PAG
                                                                             |0641|2614|        RAMILE_[W1],SET TOPS20
                                                                             |0641|2615|.IFNOT/FT20PAG
                                                                             |0641|2616|.ERROR 2, "FT10PAG=0 and FT20PAG=0.  Need to enable one or the other"
                                                                             |0641|2617|.ENDIF/FT20PAG
                                                                             |0641|2618|.ENDIF/FT10PAG
000,000,0,04,07,0,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,0642|2619|        FJ[0200]_[W1],                          ; Line PI level
                                                                             |0642|2620|        COMPLEMENT [W1]_F                       ; 700000,,200
                                                                             |0642|2621|        J[PROC REG]_RAMFILE ADR                 ;Address ramfile copy of proc reg
000,000,0,14,14,0,77,0,00,0,0,00,70,00,00,00,0,20,1,1,1,01,01,00,3210,00,7,04,0,0,0,0644|2622|        [W1]_RAMFILE,CLEAR TRAP,
                                                                             |0644|2623|         CALL [RESET PI]
                                                                             |0644|2624|        GOTO [RESET IO]                         ;Perform an IO reset
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3117,00,7,00,0,0,0,0645|2625|
                                                                             |0645|2626|.TOC 2, " R - Console Repeat Command"
                                                                             |0645|2627|
                                                                             |0645|2628|;Here for a REPEAT command
                                                                             |0645|2629|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0520,00,7,00,0,0,0,0646|2630|REPEAT: CALL [GET CMD NUM]                      ;Get repeat count
                                                                             |0646|2631|        J[CMDRPT]_RAMFILE ADR                   ;Address repeat counter
000,000,0,06,07,1,02,0,00,0,1,00,00,00,00,00,0,20,1,0,1,01,01,00,1216,00,7,00,0,0,0,0648|2632|        NEGATE [W1]_F,F_Q_Y,IX_MX,
                                                                             |0648|2633|         CALL [RAMFILE_W1]                      ;Get current value for counter
000,000,0,14,06,1,02,0,00,0,1,00,00,00,00,00,0,64,0,1,1,03,02,00,0511,00,7,04,0,0,0,0649|2634|         [W1]+1_Y,ALU_RAMFILE,                  ;Update repeat counter
                                                                             |0649|2635|        IF CT [IZ IX_MX] THEN [CMD PRSE8]
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,76,1,1,1,03,02,00,1214,00,7,00,0,0,0,0650|2636|        [W1]_Y,
                                                                             |0650|2637|         IF CT [IN] THEN [REPEAT 3]
000,000,0,14,14,1,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0651|2638|        Q_Y,ALU_RAMFILE                         ;Reseed repeat counter
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0663,00,7,00,0,0,0,0652|2639|REPEAT 3:
                                                                             |0652|2640|        CALL [ENABLE PARSE]
                                                                             |0652|2641|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0653|2642|
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,04,0,0,0,0654|2643|RAMFILE_W1:
                                                                             |0654|2644|        RAMFILE_[W1],
                                                                             |0654|2645|         RETURN
                                                                             |0654|2646|
                                                                             |0654|2647|.TOC 2, " S - Console Start Command"
                                                                             |0654|2648|
                                                                             |0654|2649|;Here for a START command
                                                                             |0654|2650|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,42,00,0470,00,7,00,0,0,0,0655|2651|S CMD:  IF [RUN] THEN [CMDERR NWR]
                                                                             |0655|2652|        CALL [SYS RESET]                        ;Reset lots of things
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1174,00,7,00,0,0,0,0656|2653|        GOTO [C CMD]                            ;Rest is like a C command
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1050,00,7,00,0,0,0,0657|2654|
                                                                             |0657|2655|.TOC 2, "SH - Console Shut Down Command"
                                                                             |0657|2656|
000,000,0,04,10,1,00,0,33,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0030,00,7,01,0,0,0,0658|2657|SH CMD: J[030]_[PMA]
000,000,0,04,00,1,00,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,00,0,0,0,0659|2658|        ONES_[MB],                              ;Write -1 in location 30
                                                                             |0659|2659|         CALL [UNMAPPED WRITE]
                                                                             |0659|2660|        GOTO [CMD PRSE8]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0511,00,7,00,0,0,0,0660|2661|
                                                                             |0660|2662|.TOC 2, "SI - Console Single Instruction Command"
                                                                             |0660|2663|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,42,00,0470,00,7,00,0,0,0,0661|2664|SI CMD: IF [RUN] THEN [CMDERR NWR]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,01,01,00,1057,00,7,00,0,0,0,0662|2665|        SET LOCAL,CALL [GET CMD PC]             ;Try to pick up a PC
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5016,00,7,00,0,0,0,0663|2666|        ZERO_[W1],                              ;Memory errs & page fails
                                                                             |0663|2667|        CALL [SET PF ME RCOVR]                  ; are usual
                                                                             |0663|2668|        J[HALT CODE]_RAMFILE ADR                ;Address halt code
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0151,00,7,01,0,0,0,0664|2669|        J[HALT SI]_[W2]                         ;Single instruction halt
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0003,00,7,01,0,0,0,0665|2670|        J[SI I RCOVR]_[W1]
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1240,00,7,04,0,0,0,0667|2671|        [W2]_RAMFILE,                           ;Set Halt code
                                                                             |0667|2672|         CALL [SET INT RCOVR]
                                                                             |0667|2673|        CALL [SET PI MASK]                      ;Allow interrupts
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5016,00,7,00,0,0,0,0669|2674|        ZERO_[W1],                              ;Normal recovery for
                                                                             |0669|2675|        CALL [SET PF ME RCOVR]                  ; for mem errs & page fails
000,000,0,07,06,1,36,0,40,0,0,00,00,00,00,77,0,20,1,1,1,13,01,00,1423,00,7,00,0,0,0,0670|2676|SI RCOVR:
                                                                             |0670|2677|        [PC]_Q_[E],                             ;Put PC in ram address & Q
                                                                             |0670|2678|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0670|2679|        GOTOP [IFETCH 0]
                                                                             |0670|2680|
                                                                             |0670|2681|;Here if got interrupted out of SI cmd
000,000,0,04,03,0,77,0,36,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1236,00,7,00,0,0,0,0671|2682|SI I RCOVR:
                                                                             |0671|2683|        [K -1]+[PC RH]_B,                       ;Backup PC
                                                                             |0671|2684|         GOTO [SI RCOVR]
                                                                             |0671|2685|
                                                                             |0671|2686|;Here to set exit for interrupt service
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0163,00,7,01,0,0,0,0672|2687|SET INT RCOVR:
                                                                             |0672|2688|        J[INT RCOVR]_RAMFILE ADR                ;Address ramfile
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,0673|2689|        [W1]_RAMFILE,RETURN
                                                                             |0673|2690|
                                                                             |0673|2691|.TOC 2, "SM - Console Start u-code Command"
                                                                             |0673|2692|;Here for a START u-CODE command
                                                                             |0673|2693|
                                                                             |0673|2694|.IF/FTSM
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0520,00,7,00,0,0,0,0674|2695|SM CMD: CALL [GET CMD NUM]
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,0000,00,7,01,0,0,0,0675|2696|        [W1]_Y,GOTO Y                           ;Go whither he asketh
                                                                             |0675|2697|.ENDIF/FTSH
                                                                             |0675|2698|
                                                                             |0675|2699|
                                                                             |0675|2700|.TOC 2, " T - Console Self Test Command"
                                                                             |0675|2701|
                                                                             |0675|2702|;Here for a SELF TEST command
                                                                             |0675|2703|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,42,00,0470,00,7,00,0,0,0,0676|2704|T CMD:  IF [RUN] THEN [CMDERR NWR]
                                                                             |0676|2705|        GOTO [TEST]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0004,00,7,00,0,0,0,0677|2706|
                                                                             |0677|2707|;Here to write [W1] into Ramfile location Q+1
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,03,0,20,1,1,1,03,01,00,5020,00,7,00,0,0,0,0678|2708|RF WRITE:
                                                                             |0678|2709|        Q+1_F,F_Q_Y,Y_RAMFILE ADR,              ;Point Ramfile at right location
                                                                             |0678|2710|         GOTO [W1_RAMFILE]                      ;Write Ramfile
                                                                             |0678|2711|
                                                                             |0678|2712|.IF/FTDIAG
                                                                             |0678|2713|;Here to load LEGAL SECTION, SECTION 0, AC REF, CONTEXT MATCH in W1
                                                                             |0678|2714|; Call with expected page table data in W2, expected latches in W3
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1266,00,7,00,0,0,0,0679|2715|RDPG LATCHES:
                                                                             |0679|2716|
                                                                             |0679|2717|        CALL [TVR XX]                           ;Check data expected is obtained
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,24,00,1263,00,7,00,0,0,0,0680|2718|        ZERO_[W1],
                                                                             |0680|2719|         IF [LEGAL SECTION] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,27,00,1263,00,7,00,0,0,0,0681|2720|        #2*[W1]_[W1],
                                                                             |0681|2721|         IF [SECTION 0] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,23,00,1263,00,7,00,0,0,0,0682|2722|        #2*[W1]_[W1],
                                                                             |0682|2723|         IF [AC REF] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,30,00,1263,00,7,00,0,0,0,0683|2724|        #2*[W1]_[W1],
                                                                             |0683|2725|         IF [CONTEXT MATCH] CALL [W1+1_W1]
000,000,0,14,13,0,02,0,10,0,0,00,00,00,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,0684|2726|        [W1].XOR.[W3]_Y,
                                                                             |0684|2727|        IF CT [IZ] RETURN
000,000,0,04,06,1,12,0,04,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1306,00,7,00,0,0,0,0685|2728|        [W3]_[W2],
                                                                             |0685|2729|         GOTO [ALU BROKE]
                                                                             |0685|2730|
000,000,0,14,10,0,00,0,00,0,0,00,54,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0686|2731|SET TOPS20 LATCH:
                                                                             |0686|2732|        SET TOPS20,RETURN
000,000,0,14,10,0,00,0,00,0,0,00,74,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0687|2733|SET TRAP LATCH:
                                                                             |0687|2734|        SET TRAP,RETURN
000,000,0,14,10,0,00,0,00,0,0,00,64,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0688|2735|SET PXCT LATCH:
                                                                             |0688|2736|        SET PXCT,RETURN
000,000,0,14,10,0,00,0,00,0,0,00,44,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0689|2737|SET RUN LATCH:
                                                                             |0689|2738|        SET RUN,RETURN
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0690|2739|SET LOCAL LATCH:
                                                                             |0690|2740|        SET LOCAL,RETURN
                                                                             |0690|2741|
000,000,0,04,06,1,02,0,00,0,1,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,0691|2742|W1+1_W1:
                                                                             |0691|2743|        [W1]+1_[W1],                            ;Flag is set
                                                                             |0691|2744|        RETURN
                                                                             |0691|2745|
                                                                             |0691|2746|;Here to initialize Q with first ramfile adr
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,1777,00,7,01,0,0,0,0692|2747|TVR X0: J[01777]_[W1],Y_RAMFILE ADR              ;Highest adr in Ramfile
000,000,0,06,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,0693|2748|        [W1]_Q,RETURN
                                                                             |0693|2749|
                                                                             |0693|2750|;Here to verify ramfile contents are correct
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,0,0,16,00,00,0000,00,7,04,0,0,0,0694|2751|TVR XX: RAMFILE_[W1],
                                                                             |0694|2752|        IX_MX
000,000,0,14,13,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,0695|2753|TVR XY: [W1].XOR.[W2]_Y,
                                                                             |0695|2754|         IF CT [IZ] RETURN
                                                                             |0695|2755|        GOTO [RF BROKE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1306,00,7,00,0,0,0,0696|2756|.ENDIF/FTDIAG
                                                                             |0696|2757|
                                                                             |0696|2758|.TOC 2, "ZM - Console Zero memory Command"
                                                                             |0696|2759|
                                                                             |0696|2760|;Here for a Zero Kemory command
                                                                             |0696|2761|.IF/FTZM
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,1301,00,7,01,0,0,0,0697|2762|ZM CMD: J[ZMC 5]_[W1]                           ;Routine for memory errors
000,000,0,04,10,1,00,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5016,00,7,00,0,0,0,0698|2763|        ZERO_[MB],
                                                                             |0698|2764|         CALL [SET PF ME RCOVR]
                                                                             |0698|2765|        [K -1]_[PMA]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0445,00,7,01,0,0,0,0700|2766|ZM 10:  J[EXM ADR]_RAMFILE ADR
000,000,0,04,06,1,33,0,33,0,1,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,04,0,0,0,0701|2767|        [PMA]+1_[PMA],ALU_RAMFILE,
                                                                             |0701|2768|         CALL [UNMAPPED WRITE]
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,0702|2769|        [PMA]_[PMA],MEM START READ,
                                                                             |0702|2770|         CALL [UNMAPPED READ]
000,000,0,14,06,1,46,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1274,00,7,00,0,0,0,0703|2771|        [MB]_Y,IF CT [IZ] THEN [ZM 10]
                                                                             |0703|2772|        GOTO [CMDERR MER]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0477,00,7,00,0,0,0,0704|2773|
000,000,0,06,14,0,76,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0705|2774|ZMC 5:  [K -1.0]&[W1]_Q                         ;Get only code
000,000,0,14,13,1,57,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0511,00,7,00,0,0,0,0706|2775|        Q.XOR.[BIT17]_F,F_Y,
                                                                             |0706|2776|         IF CT [IZ] THEN [CMD PRSE8]
                                                                             |0706|2777|        GOTO [CMDERR MER]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0477,00,7,00,0,0,0,0707|2778|.ENDIF/FTZM
                                                                             |0707|2779|
                                                                             |0707|2780|;Here on incorrect u-code dispatch
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,1000,00,7,01,0,0,0,0708|2781|MCE:    ;GOTO [U-CODE ERR]
                                                                             |0708|2782|
                                                                             |0708|2783|;Here on a horrible u-code problem
                                                                             |0708|2784|U-CODE ERR:
                                                                             |0708|2785|        J[HALT DSP]_[W1]                        ;Illegal u-code dispatch
                                                                             |0708|2786|        GOTOP [SET HALT CODE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1166,00,7,00,0,0,0,0709|2787|
                                                                             |0709|2788|;Here if the ALU is broken
000,000,0,06,06,1,62,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0710|2789|ALU BROKE:
                                                                             |0710|2790|;Here if the Ramfile (or addressing logic) is broken
                                                                             |0710|2791|; Bad data in W1, good data in W2, test I on Y bus
                                                                             |0710|2792|RF BROKE:
                                                                             |0710|2793|        [PXCT]_Q                                ;Test code
                                                                             |0710|2794|
                                                                             |0710|2795|; W1 on A bus, W2 on B bus, test # on Y bus
000,000,0,14,06,1,02,0,04,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1307,00,7,00,0,0,0,0711|2796|BROKE9: R SEL/W1,B SEL/W2,#0_CO,Q+C_F,F_Y,
                                                                             |0711|2797|        GOTO [BROKE9]
                                                                             |0711|2798|
                                                                             |0711|2799|
                                                                             |0711|2800|.TOC "Write Halt Status Block"
                                                                             |0711|2801|
                                                                             |0711|2802|;Here when ISP code halts
000,000,0,14,06,1,66,0,00,0,0,00,00,00,72,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,0712|2803|WRITE HSB:
                                                                             |0712|2804|        [K 77]_Y,Y_2914 MASK,POP                ;Disallow interrupts
000,000,0,04,14,0,67,0,34,0,0,00,00,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,0713|2805|        [K 7777.-1]&[PC]_B,POP                  ;Mask PC to 30 bits
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,15,01,00,0555,00,7,01,0,0,0,0714|2806|        J[HSB PMA]_RAMFILE ADR,POP              ;Save PMA here
000,000,0,14,14,0,77,0,33,0,0,00,00,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,04,0,0,0,0715|2807|        [PMA]_RAMFILE,POP                       ;Save PMA
                                                                             |0715|2808|        J[HSB]_RAMFILE ADR                      ;Get adr of Halt Status Block
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0553,00,7,01,0,0,0,0716|2809|.IF/FTCRAM
                                                                             |0716|2810|        RAMFILE_[PMA].NRFRD/1
                                                                             |0716|2811|        [PMA]_[PMA],                            ;Let latches go
                                                                             |0716|2812|         IF CT [IZ] THEN [WHSB2]                ;No block = do not write
                                                                             |0716|2813|.ENDIF/FTCRAM
                                                                             |0716|2814|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,33,0,0,00,00,00,00,00,0,64,1,1,0,03,02,00,1401,00,7,04,0,0,0,0717|2815|        RAMFILE_[PMA],
                                                                             |0717|2816|         IF CT [IZ] THEN [WHSB2]                ;No block = do not write
                                                                             |0717|2817|.ENDIF/FTCRAM
                                                                             |0717|2818|        J[HSB MB]_RAMFILE ADR                   ;Save MB here
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0554,00,7,01,0,0,0,0718|2819|        J[HSB MER]_[W1]                         ;Recovery in case of memory errs
000,000,0,14,14,0,77,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5021,00,7,04,0,0,0,0720|2820|        [MB]_RAMFILE,
                                                                             |0720|2821|         CALL [SET MER]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,34,00,1263,00,7,00,0,0,0,0721|2822|        ZERO_[W1], IF [LOCAL] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,36,00,1263,00,7,00,0,0,0,0722|2823|        #2*[W1]_[W1],IF [USER] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,40,00,1263,00,7,00,0,0,0,0723|2824|        #2*[W1]_[W1],IF [PAGED] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,42,00,1263,00,7,00,0,0,0,0724|2825|        #2*[W1]_[W1],IF [RUN] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,44,00,1263,00,7,00,0,0,0,0725|2826|        #2*[W1]_[W1],IF [TOPS20] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,46,00,1263,00,7,00,0,0,0,0726|2827|        #2*[W1]_[W1],IF [PXCT] CALL [W1+1_W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,66,00,1263,00,7,00,0,0,0,0727|2828|        #2*[W1]_[W1],IF [TRAP] CALL [W1+1_W1]
000,000,0,04,06,1,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,00,0,0,0,0728|2829|        [W1]_[MB],CALL [UNMAPPED WRITE]
000,000,0,04,06,1,06,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0729|2830|        [W2]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,12,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0730|2831|        [W3]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,16,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0731|2832|        [W4]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,22,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0732|2833|        [W5]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,26,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0733|2834|        [W6]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,32,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0734|2835|        [IR]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,36,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0735|2836|        [PC]_[MB],CALL [UNMAPPED WRITE NEXT]
                                                                             |0735|2837|
000,000,0,04,06,1,42,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0736|2838|        [E]_[MB],CALL [UNMAPPED WRITE NEXT]
                                                                             |0736|2839|        J[HSB MB]_RAMFILE ADR                   ;Get saved MB
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4703,00,7,04,0,0,0,0738|2840|        RAMFILE_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,52,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0739|2841|        [AC-OP]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0740|2842|        [MEM-OP]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,62,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0741|2843|        [PXCT]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,66,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0742|2844|        [K 77]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,72,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0743|2845|        [K 777]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,76,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0744|2846|        [K -1.0]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,03,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0745|2847|        [PC FLAGS]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,07,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0746|2848|        [AC-OP+1]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,13,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0747|2849|        [MEM-OP+1]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,17,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0748|2850|        [EPT]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,23,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0749|2851|        [UPT]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,27,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0750|2852|        [SPT]_[MB],CALL [UNMAPPED WRITE NEXT]
                                                                             |0750|2853|        J[HSB PMA]_RAMFILE ADR                  ;Get saved PMA
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4703,00,7,04,0,0,0,0752|2854|        RAMFILE_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,37,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0753|2855|        [TIME]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,43,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0754|2856|        [PI REG]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,47,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0755|2857|        [BIT4]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,53,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0756|2858|        [BIT12]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,57,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0757|2859|        [BIT17]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,63,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0758|2860|        [C0!C1]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,67,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0759|2861|        [K 7777.-1]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,73,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0760|2862|        [K 407777.0]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,77,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0761|2863|        [K -1]_[MB],CALL [UNMAPPED WRITE NEXT]
000,000,0,04,10,1,00,0,20,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0151,00,7,01,0,0,0,0762|2864|        J[HALT CODE]_[W5],                      ;Address halt code in ramfile
                                                                             |0762|2865|        Y_RAMFILE ADR
                                                                             |0762|2866|        J[9.]_[W6]                              ;Also want 9 more locations
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4703,00,7,04,0,0,0,0764|2867|        RAMFILE_[MB],
                                                                             |0764|2868|         CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,22,0,20,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0765|2869|WHSB1:  [W5]+1_[W5],Y_RAMFILE ADR               ;Next ramfile location
                                                                             |0765|2870|        RAMFILE_[MB]
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,04,0,0,0,0767|2871|        ZERO_Y,ALU_RAMFILE,
                                                                             |0767|2872|         CALL [UNMAPPED WRITE NEXT]
000,000,0,04,03,0,77,0,24,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1375,00,7,00,0,0,0,0768|2873|        [K -1]+[W6]_B,
                                                                             |0768|2874|         IF NOT CT [IZ] THEN [WHSB1]
                                                                             |0768|2875|
                                                                             |0768|2876|;Type <CR><LF>?H<halt code> <flags> <PC>
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1240,00,7,00,0,0,0,0769|2877|WHSB2:  ZERO_[W1],CALL [SET INT RCOVR]          ;In case was SI cmd
000,000,0,04,06,1,47,0,00,0,0,00,14,00,00,00,0,20,1,1,0,16,00,00,0003,00,7,01,0,0,0,0770|2878|        [BIT4]J[F.O!F.S]_[W1],                  ;(F.USR) Flags to clear
                                                                             |0770|2879|         SET LOCAL
                                                                             |0770|2880|        CALL [CLEAR CMDFLG]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0743,00,7,00,0,0,0,0771|2881|        J[0110]_[W6]                            ; Ascii "H"
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0110,00,7,01,0,0,0,0772|2882|        CALL [PUT ? W6]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0556,00,7,00,0,0,0,0773|2883|        J[HALT CODE]_RAMFILE ADR
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0533,00,7,04,0,0,0,0775|2884|        RAMFILE_[W1],                           ;Get halt code from ramfile
                                                                             |0775|2885|         CALL [PUT CMR NUM]                     ; and type it
                                                                             |0775|2886|        CALL [PUT CMR SPACE]                    ;Type a space
000,000,0,04,06,1,03,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0540,00,7,00,0,0,0,0777|2887|        [PC FLAGS]_[W1],                        ;Type flags
                                                                             |0777|2888|        CALL [P6DNUM]
                                                                             |0777|2889|        CALL [PUT CMR SPACE]
000,000,0,04,06,1,36,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,0533,00,7,00,0,0,0,0779|2890|        [PC]_[W1],
                                                                             |0779|2891|         CALL [PUT CMR NUM]
                                                                             |0779|2892|        GOTO [CONSOLE PROMPT]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0341,00,7,00,0,0,0,0780|2893|
                                                                             |0780|2894|
                                                                             |0780|2895|;Here in case of memory errors while writing HSB
                                                                             |0780|2896|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0005,00,7,01,0,0,0,0781|2897|HSB MER:
                                                                             |0781|2898|        J[HALT HSBMER]_[W1]
                                                                             |0781|2899|        J[HALT CODE]_RAMFILE ADR
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1401,00,7,04,0,0,0,0783|2900|        [W1]_RAMFILE,
                                                                             |0783|2901|         GOTO [WHSB2]
                                                                             |0783|2902|
                                                                             |0783|2903|.TOC "Instruction fetch"
                                                                             |0783|2904|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,35,00,1304,00,7,00,0,0,0,0784|2905|IFETCH:
                                                                             |0784|2906|.IF/DEBUG2
                                                                             |0784|2907|        IF [GLOBAL] THEN [U-CODE ERR]
                                                                             |0784|2908|.ENDIF/DEBUG2
                                                                             |0784|2909|.IF/SH_N_TL
                                                                             |0784|2910|        CALL [SHOW&TELL]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,0356,00,7,00,0,0,0,0785|2911|.ENDIF/SH_N_TL
000,000,0,07,06,1,36,0,40,0,0,00,00,00,00,77,0,20,1,1,1,13,43,00,1310,00,7,00,0,0,0,0786|2912|        [PC]_Q_[E],                             ;Put PC in ram address & Q
                                                                             |0786|2913|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0786|2914|         IF [NOT RUN] THENP [WRITE HSB]
                                                                             |0786|2915|
000,000,0,04,14,1,72,0,00,0,0,00,60,00,00,00,0,20,1,0,0,13,72,00,1427,00,7,04,0,0,0,0787|2916|IFETCH 0:
                                                                             |0787|2917|        Q&[K 777]_Q RAMFILE_[W1],               ;Put on page adr in Q
                                                                             |0787|2918|        CLEAR PXCT,IX_MX,                       ; Put page entry in W1
                                                                             |0787|2919|         IF [UNPAGED OR AC] THENP [IFETCH 1]
000,000,0,04,17,1,02,0,33,0,0,00,00,05,00,00,0,20,1,1,1,13,30,00,1431,00,1,02,0,0,0,0788|2920|        Q.OR.[W1]_[PMA],                        ;Start memory
                                                                             |0788|2921|         MEM START READ,
                                                                             |0788|2922|         IF [CONTEXT MATCH] THENP [IFETCH 3]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,01,01,00,4662,00,7,00,0,0,0,0789|2923|IFETCH 05:
                                                                             |0789|2924|        [PC]+1_[PC RH],                         ;Increment PC
                                                                             |0789|2925|         CALL [MEM READ 0]
                                                                             |0789|2926|        GOTOP [IFETCH 4]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1435,00,7,00,0,0,0,0790|2927|
                                                                             |0790|2928|;Here if not paged or AC REF
000,000,0,04,06,1,42,0,33,0,0,00,00,00,00,23,0,20,1,1,1,13,23,00,1425,00,7,00,0,0,0,0791|2929|IFETCH 1:
                                                                             |0791|2930|        [E]_[PMA],SPEC SEL/VMA,                 ;Address AC in Ramfile
                                                                             |0791|2931|        IF [AC REF] THENP [IFETCH 05]
000,000,0,04,06,1,42,0,33,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,1,02,0,0,0,0792|2932|        [E]_[PMA],MEM START READ                ;Start memory
                                                                             |0792|2933|
                                                                             |0792|2934|;Here if not paged or paging done
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,01,21,00,4154,00,0,00,0,0,0,0793|2935|IFETCH 3:
                                                                             |0793|2936|        [PC]+1_[PC RH],MEM HOLD,                ; Increment PC
                                                                             |0793|2937|         CHECK INTERRUPTS
000,000,0,04,10,0,00,0,30,0,0,00,00,00,00,33,0,20,1,0,0,16,00,00,0000,00,5,11,0,0,0,0794|2938|        MEM_IR_[IR],SPEC SEL/XR                 ;Read memory into IR
                                                                             |0794|2939|                                                ; Set XR=0 and @ flops
000,000,0,04,06,1,32,0,42,0,0,00,00,00,00,00,0,20,1,1,1,13,61,00,1436,00,0,00,0,0,0,0795|2940|        [IR]_[E RH],MEM HOLD,
                                                                             |0795|2941|         IF [NO BUS ERROR] THENP [IFETCH EFA]
000,000,0,04,03,0,77,0,36,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1425,00,7,00,0,0,0,0796|2942|        [K -1]+[PC RH]_B,                       ;Backup the PC
                                                                             |0796|2943|        GOTO [IFETCH 05]                        ; And try again
                                                                             |0796|2944|
                                                                             |0796|2945|;Here on an XCT, PXCT, LUUO
000,000,0,04,06,1,46,0,30,0,0,00,00,00,00,33,0,20,1,1,1,16,00,00,0000,00,7,11,0,0,0,0797|2946|IFETCH 4:
                                                                             |0797|2947|        [MB]_[IR],SPEC SEL/XR,                  ;Set XR-O and @ flops
                                                                             |0797|2948|         LOAD IR
                                                                             |0797|2949|
                                                                             |0797|2950|;Here with SPEC SEL/XR to set XR=O and @ flags
000,000,0,04,06,1,32,0,42,0,0,00,00,00,00,27,0,20,1,1,1,06,12,00,0000,10,7,00,0,0,0,0798|2951|IFETCH EFA:
                                                                             |0798|2952|        [IR]_[E RH],SEL AC+[0] ,                ;Y rh E rh
                                                                             |0798|2953|         IF [NOT (I OR XR)] D [OPERAND FETCH]   ;Dispatch on op code to get operands
000,000,0,14,06,1,32,0,00,0,0,00,00,00,00,33,0,20,1,1,1,01,01,00,1450,00,7,00,0,0,0,0799|2954|        [IR]_Y,SPEC SEL/XR,                     ;Do effective adr calc
                                                                             |0799|2955|         CALL [EFA 2]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,10,7,00,0,0,0,0800|2956|        SEL AC+[0],
                                                                             |0800|2957|         DISPATCH [OPERAND FETCH]               ;Dispatch on op code to get operands
                                                                             |0800|2958|
                                                                             |0800|2959|;Here if instruction being done under PXCT
                                                                             |0800|2960|
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0400,00,7,01,0,0,0,0801|2961|IFETCH PXCT:
                                                                             |0801|2962|        J[0400]_[PXCT RH]                       ;PXCT bit for effective adr calc
000,000,0,04,14,0,67,0,40,0,0,00,14,00,00,00,0,20,1,1,1,01,01,00,2432,00,7,00,0,0,0,0802|2963|        [K 7777.-1]&[E]_B,SET LOCAL,
                                                                             |0802|2964|         CALL [SET PXCT CTXT]                   ;Set context
000,000,0,04,06,1,32,0,42,0,0,00,00,00,00,33,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0803|2965|        [IR]_[E RH],SPEC SEL/XR                 ;Y rh_E rh
                                                                             |0803|2966|        IF [I OR XR] CALL [EFA 2]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,13,00,1450,00,7,00,0,0,0,0804|2967|        CALL [SET CURRENT CTXT]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,10,7,00,0,0,0,0806|2968|        SEL AC+[0],                             ;Dispatch on op code to get operands
                                                                             |0806|2969|         DISPATCH [OPERAND FETCH]
                                                                             |0806|2970|
                                                                             |0806|2971|.TOC "Effective Address Calculation"
                                                                             |0806|2972|
                                                                             |0806|2973|;Here to do an effective address calculation
                                                                             |0806|2974|; Call:     x_[MB],SPEC SEL/XR
                                                                             |0806|2975|; Returns   adr in E
                                                                             |0806|2976|;           clobbers W1
000,000,0,04,06,1,46,0,42,0,0,00,14,00,00,00,0,20,1,1,1,12,12,00,0000,00,7,00,0,0,0,0807|2977|EFA CALC:
                                                                             |0807|2978|        [MB]_[E RH],SET LOCAL,
                                                                             |0807|2979|         IF [NOT (I OR XR)] RETURN
                                                                             |0807|2980|
000,000,0,07,06,1,73,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,04,00,1462,00,7,04,0,0,0,0808|2981|EFA 2:  [K 407777.0]_Q RAMFILE_[W1],            ;Get index register
                                                                             |0808|2982|        IF [NOT INDEXED] THEN [FETCH IW]
                                                                             |0808|2983|        RAMFILE_[MB]
000,000,0,14,14,1,02,0,00,0,0,00,00,00,00,00,0,20,1,0,1,03,27,00,1461,00,7,00,0,0,0,0810|2984|        Q&[W1]_Y,IX_MX,                         ;Check section # in IDX
                                                                             |0810|2985|         IF [SECTION 0] THEN [EFA LCL INDEX]
000,000,0,06,11,0,76,0,40,0,0,00,00,00,00,00,0,40,1,1,0,03,02,00,1461,00,7,00,0,0,0,0811|2986|        [K -1.0]BAR&[E]_Q,                      ;Put E rh in Q
                                                                             |0811|2987|         IF CT [(MNxMOVR)!MZ] THEN [EFA LCL INDEX]
000,000,0,04,03,1,02,0,40,0,0,00,10,00,00,00,0,20,1,1,1,03,57,00,1457,00,7,00,0,0,0,0812|2988|        Q+[W1]_[E],SET GLOBAL,                  ;IDX(6-35)+Y(18-35)_E(6-35)
                                                                             |0812|2989|        IF [NOT B BIT 18] THEN [EFA 4]
000,000,0,04,03,0,76,0,40,0,0,00,00,00,00,00,0,20,1,1,1,12,11,00,0000,00,7,00,0,0,0,0813|2990|        [K -1.0]+[E]_B,                         ;Sign extend Y
                                                                             |0813|2991|        IF [NOT INDIRECT] RETURN
                                                                             |0813|2992|        GOTO [FETCH IW]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,11,00,0000,00,7,00,0,0,0,0815|2993|EFA 4:  IF [NOT INDIRECT] RETURN
                                                                             |0815|2994|        GOTO [FETCH IW]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1462,00,7,00,0,0,0,0816|2995|
000,000,0,04,03,0,02,0,42,0,0,00,14,00,00,00,0,20,1,1,1,12,11,00,0000,00,7,00,0,0,0,0817|2996|EFA LCL INDEX:
                                                                             |0817|2997|        [W1]+[E RH]_B,                          ;Y rh+IDX rh_E rh
                                                                             |0817|2998|         SET LOCAL,
                                                                             |0817|2999|         IF [NOT INDIRECT] RETURN
                                                                             |0817|3000|        ;GOTO [FETCH IW]
                                                                             |0817|3001|
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,0818|3002|FETCH IW:
                                                                             |0818|3003|        READ [E]                                ;Fetch indirect word
                                                                             |0818|3004|                                                ; and SPEC SEL/IW
                                                                             |0818|3005|.IFNOT/FT20PAG
                                                                             |0818|3006|        GOTO [EFA CALC]
                                                                             |0818|3007|.ENDIF/FT20PAG
                                                                             |0818|3008|.IF/FT20PAG
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,27,00,1447,00,7,04,0,0,0,0819|3009|        RAMFILE_[W1],                           ;Get index register
                                                                             |0819|3010|         IF [SECTION 0] THEN [EFA CALC]
000,000,0,14,10,0,00,0,00,0,0,00,10,00,00,00,0,20,1,1,0,13,14,00,4747,00,7,00,0,0,0,0820|3011|         CLEAR LOCAL,
                                                                             |0820|3012|        IF [ILLEGAL IW] THENP [PF X24]
                                                                             |0820|3013|        IF [LOCAL IW] THEN [EFA CALC]
000,000,0,04,06,1,46,0,40,0,0,00,00,00,00,77,0,20,1,1,1,12,12,00,0000,00,7,00,0,0,0,0822|3014|        [MB]_[E],
                                                                             |0822|3015|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0822|3016|         IF [NOT (I OR XR)] RETURN
000,000,0,06,03,0,46,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,04,00,1462,00,7,00,0,0,0,0823|3017|        [MB]+[W1]_Q,                            ;XR(6-35)+IW(6-35) Q
                                                                             |0823|3018|        IF [NOT INDEXED] THEN [FETCH IW]
000,000,0,04,14,1,77,0,40,0,0,00,00,00,00,77,0,20,1,1,1,12,11,00,0000,00,7,00,0,0,0,0824|3019|        Q_[E],
                                                                             |0824|3020|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0824|3021|         IF [NOT INDIRECT] RETURN
                                                                             |0824|3022|        GOTO [FETCH IW]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1462,00,7,00,0,0,0,0825|3023|.ENDIF/FT20PAG
                                                                             |0825|3024|
                                                                             |0825|3025|.TOC "Operand Fetch"
                                                                             |0825|3026|
                                                                             |0825|3027|;These routines fetch instruction operands
                                                                             |0825|3028|;       if single operand is put in MEM-OP
                                                                             |0825|3029|;       AC & mem operands are put in AC-OP and MEM-OP
                                                                             |0825|3030|;       IX_MX for MEM-OP
                                                                             |0825|3031|;       IX_UX for AC-OP
                                                                             |0825|3032|
                                                                             |0825|3033|;Double AC fetch - AC_MEM-OP, AC+I_MEM-OP+1
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,27,0,20,1,0,0,16,00,01,0000,00,7,04,0,0,0,0826|3034|DFETCH AC:
                                                                             |0826|3035|        RAMFILE_[MEM-OP],                       ;Fetch first AC
                                                                             |0826|3036|         IX_MX,                                 ; Latch IZ in MZ
                                                                             |0826|3037|         SEL AC+[1]                             ; Point RAMFILE at AC+1
000,000,0,04,10,0,00,0,13,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,11,7,04,0,0,0,0827|3038|        RAMFILE_[MEM-OP+1],                     ;Get 2nd AC from RAMFILE
                                                                             |0827|3039|         SEL AC+[0],                            ; Repoint RAMFILE at AC
                                                                             |0827|3040|         DISPATCH [INST EXCT]
                                                                             |0827|3041|
                                                                             |0827|3042|;Double AC & Mem fetch
000,000,0,04,10,0,00,0,50,0,0,00,00,00,00,27,0,20,1,1,0,16,00,01,0000,00,7,04,0,0,0,0828|3043|DFETCH AC&MEM:
                                                                             |0828|3044|        RAMFILE_[AC-OP],                        ;Get 1st AC
                                                                             |0828|3045|         SEL AC+[1]
000,000,0,04,10,0,00,0,07,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1476,00,7,04,0,0,0,0829|3046|        RAMFILE_[AC-OP+1],                      ;Get 2nd AC
                                                                             |0829|3047|        GOTO [DFETCH MEM]
                                                                             |0829|3048|
                                                                             |0829|3049|;Double word fetch from memory
                                                                             |0829|3050|; Sets MX according to highorder operand
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,03,46,00,1502,00,7,00,0,0,0,0830|3051|DFETCH MEM:
                                                                             |0830|3052|        [K 7777.-1]&[E]_F,F_Q_B,                ;Get 1st operand
                                                                             |0830|3053|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0830|3054|         IF [PXCT] THEN [PXCT DFETCH]
                                                                             |0830|3055|        CALL [MEMORY READ]
000,000,0,04,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4660,00,7,00,0,0,0,0832|3056|        [MB]_[MEM-OP],                          ;Save 1st operand
                                                                             |0832|3057|         CALL [READ NEXT]
000,000,0,04,06,1,46,0,13,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1507,00,7,00,0,0,0,0833|3058|        [MB]_[MEM-OP+1],                        ;We do not need to backup E
                                                                             |0833|3059|         GOTO [DFM 8]                           ; because noone uses it again
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,0834|3060|PXCT DFETCH:
                                                                             |0834|3061|        J[0200]_[PXCT RH]                       ;Bit for this flavour PXCT
                                                                             |0834|3062|        CALL [SET PXCT CTXT]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,0836|3063|        [K 7777.-1]&[E]_F,F_Q_B,                ;Get 1st operand
                                                                             |0836|3064|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0836|3065|         CALL [MEMORY READ]
000,000,0,04,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4660,00,7,00,0,0,0,0837|3066|        [MB]_[MEM-OP],                          ;Save 1st operand
                                                                             |0837|3067|        CALL [READ NEXT]
000,000,0,04,06,1,46,0,13,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,2424,00,7,00,0,0,0,0838|3068|        [MB]_[MEM-OP+1],
                                                                             |0838|3069|        CALL [SET CURRENT CTXT]
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,27,0,20,1,0,1,06,01,00,0000,11,7,00,0,0,0,0839|3070|DFM 8:  [MEM-OP]_Y,IX_MX,SEL AC+[0],            ;Set flags
                                                                             |0839|3071|        DISPATCH [INST EXCT]
                                                                             |0839|3072|
                                                                             |0839|3073|;Single AC and memory word fetch
000,000,0,04,10,0,00,0,50,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1511,00,7,04,0,0,0,0840|3074|FETCH AC&MEM:
                                                                             |0840|3075|        RAMFILE_[AC-OP],                        ;Get AC from RAMFILE
                                                                             |0840|3076|         GOTO [FETCH MEM]
                                                                             |0840|3077|
                                                                             |0840|3078|;Single word fetch from memory and set MX according to data
000,000,0,07,06,1,42,0,33,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4663,00,7,00,0,0,0,0841|3079|FETCH MEM:
                                                                             |0841|3080|        [E]_Q_[PMA],                            ;Read memory operand if not PXCT
                                                                             |0841|3081|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0841|3082|         IF [NOT PXCT] CALL [MEMORY READ]
000,000,0,07,06,1,46,0,54,0,0,00,00,00,00,27,0,20,1,0,1,06,47,00,0000,11,7,00,0,0,0,0842|3083|        [MB]_F,F_Q_[MEM-OP],                    ;Copy to right reg and set flags
                                                                             |0842|3084|        IX_MX,SEL AC+[0],
                                                                             |0842|3085|         IF [NOT PXCT] D [INST EXCT]
                                                                             |0842|3086|        CALL [PXCT FETCH 200]                   ;Get data
000,000,0,07,06,1,46,0,54,0,0,00,00,00,00,27,0,20,1,0,1,06,01,00,0000,11,7,00,0,0,0,0844|3087|        [MB]_F,F_Q_[MEM-OP],                    ;Copy to right reg and set flags
                                                                             |0844|3088|         IX_MX,SEL AC+[0],
                                                                             |0844|3089|         DISPATCH [INST EXCT]
                                                                             |0844|3090|
                                                                             |0844|3091|;Single AC and memory word fetch
000,000,0,04,10,0,00,0,50,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1516,00,7,04,0,0,0,0845|3092|FETCH AC&MEM(W):
                                                                             |0845|3093|        RAMFILE_[AC-OP],                        ;Get AC from RAMFILE
                                                                             |0845|3094|         GOTO [FETCH MEM(W)]
                                                                             |0845|3095|
                                                                             |0845|3096|;Single word fetch and verify writable from memory
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4663,00,7,00,0,0,0,0846|3097|FETCH MEM(W):
                                                                             |0846|3098|        [E]_Q_[E],                              ;Read memory operand if not PXCT
                                                                             |0846|3099|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0846|3100|         IF [NOT PXCT] CALL [MEMORY READ]
000,000,0,07,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,0,1,03,47,00,1522,00,7,00,0,0,0,0847|3101|        [MB]_F,F_Q_[MEM-OP],                    ;Copy to right reg and set flags
                                                                             |0847|3102|         IX_MX,
                                                                             |0847|3103|         IF [NOT PXCT] THEN [FM(W) 2]
                                                                             |0847|3104|        CALL [PXCT FETCH 200]                   ;Fetch data
000,000,0,07,06,1,46,0,54,0,0,00,00,00,00,27,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,0849|3105|        [MB]_F,F_Q_[MEM-OP],                    ;Copy to right reg and set flags
                                                                             |0849|3106|        IX_MX, SEL AC+[0]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,50,00,0000,11,7,00,0,0,0,0850|3107|FM(W) 2:
                                                                             |0850|3108|        B SEL/W1,SEL AC+[0],                    ;Check writable from paging ram
                                                                             |0850|3109|        IF [B BIT 3] D [INST EXCT]
                                                                             |0850|3110|        IF [UNPAGED OR AC] D [INST EXCT]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,72,00,0000,11,7,00,0,0,0,0851|3111|        CALL [M W XX]                           ;Try to make writable
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,11,7,00,0,0,0,0853|3112|        SEL AC+[0],DISPATCH [INST EXCT]
                                                                             |0853|3113|
                                                                             |0853|3114|;Single AC fetch and immediate operand
000,000,0,04,10,0,00,0,50,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1527,00,7,04,0,0,0,0854|3115|FETCH AC&I:
                                                                             |0854|3116|        RAMFILE_[AC-OP],                        ;Get AC from ramfile
                                                                             |0854|3117|         GOTO [FETCH I]
                                                                             |0854|3118|; Immediate mode operation
000,000,0,04,10,0,76,2,54,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0855|3119|FETCH I:
                                                                             |0855|3120|        SWAP [K -1.0]_[MEM-OP]                  ;Mask for immediate operand
000,000,0,07,14,0,42,0,54,0,0,00,00,00,00,27,0,20,1,0,1,06,01,00,0000,11,7,00,0,0,0,0856|3121|        [E]&[MEM-OP]_F,F_Q_B,IX_MX,             ;Get immediate operand
                                                                             |0856|3122|         SEL AC+[0],
                                                                             |0856|3123|         DISPATCH [INST EXCT]
                                                                             |0856|3124|
                                                                             |0856|3125|;Single AC fetch but do not set Mx flags
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,11,7,04,0,0,0,0857|3126|FETCH AC:
                                                                             |0857|3127|.IF/FAST
                                                                             |0857|3128|        RAMFILE_[MEM-OP],               ;Get AC from RAMFILE
                                                                             |0857|3129|        DISPATCH [INST EXCT]
                                                                             |0857|3130|.ENDIF/FAST
                                                                             |0857|3131|
                                                                             |0857|3132|;Single AC fetch and set Kx flags
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0858|3133|FETCH AC(MX):
                                                                             |0858|3134|        RAMFILE_[MEM-OP]                ;Get AC from RAMFILE
000,000,0,04,06,1,56,0,54,0,0,00,00,00,00,00,0,20,1,0,1,06,01,00,0000,11,7,00,0,0,0,0859|3135|        [MEM-OP]_[MEM-OP],IX_MX,                ;Set Mx flags
                                                                             |0859|3136|         DISPATCH [INST EXCT]
                                                                             |0859|3137|
                                                                             |0859|3138|;Fetch AC and Fetch IO word
                                                                             |0859|3139|
000,000,0,04,10,0,00,0,50,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,0860|3140|FETCH AC&IO:
                                                                             |0860|3141|        RAMFILE_[AC-OP]                 ;Get AC from RAMFILE
                                                                             |0860|3142|
                                                                             |0860|3143|; Fetch IO word
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1540,00,7,00,0,0,0,0861|3144|FETCH IO:
                                                                             |0861|3145|        CALL [RDIOX]                            ;Get data
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,26,1,1,0,06,03,00,0000,12,7,00,0,0,0,0862|3146|        SEL AC+[0],                             ; Repoint RAMFILE at AC
                                                                             |0862|3147|         IF NOT CT [UOVR] D [DISPATCH 3]
                                                                             |0862|3148|        GOTO [IO PF]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4745,00,7,00,0,0,0,0863|3149|
                                                                             |0863|3150|;Here to do an IO write
                                                                             |0863|3151|; returns with UOVR if illegal
000,000,0,04,14,0,67,0,40,0,0,00,00,00,00,00,0,17,0,1,1,01,01,00,1545,00,7,00,0,0,0,0864|3152|RDIOX:  [K 7777.-1]&[E]_B,#1_UOVR,              ;Strip extraneous bits
                                                                             |0864|3153|        CALL [VAL IO ADR]                       ;Validate IO address
000,000,0,04,06,1,42,0,33,0,0,00,00,05,00,00,0,56,1,1,1,03,02,00,1562,00,3,02,0,0,0,0865|3154|        [E]_[PMA],START IO READ,                ;Send IO address
                                                                             |0865|3155|         IF CT [MN] THEN [RDIO TTY]
                                                                             |0865|3156|        IO_[MEM-OP]                             ;Perform transfer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,16,0,1,0,12,61,00,0000,00,7,00,0,0,0,0867|3157|        #0_UOVR,IF [NO BUS ERROR] RETURN
                                                                             |0867|3158|.IFNOT/FTCKBP
                                                                             |0867|3159|        IF [NOT MEM EXISTS] THEN [SET UOVR]
                                                                             |0867|3160|        IF [NOT MEM FAULT] RETURN
                                                                             |0867|3161|.ENDIF/FTCKBP
                                                                             |0867|3162|;Here to set the u-overflow flag
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,17,0,1,0,12,01,00,0000,00,7,00,0,0,0,0868|3163|SET UOVR:
                                                                             |0868|3164|        #1_UOVR,RETURN                           ;Set flag and exit
                                                                             |0868|3165|
                                                                             |0868|3166|;Here to validate IO address
                                                                             |0868|3167|;   Call with address in E
                                                                             |0868|3168|;       If tty returns IN, address in W6, TTYRCV in W1, 7 in W2
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,7760,00,7,01,0,0,0,0869|3169|VAL IO ADR:
                                                                             |0869|3170|.IF/FTMBZ
                                                                             |0869|3171|        J[07760]_[W1]                           ;Build mask for address
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,17,0,1,0,16,00,00,0000,00,7,07,0,0,0,0870|3172|        SWAP [W1]_[W1],#1_UOVR                  ;We are checking bits 6-13 of E
000,000,0,14,14,0,02,0,40,0,0,00,00,00,00,00,0,64,1,1,1,13,03,00,1551,00,7,00,0,0,0,0871|3173|        [W1]&[E]_Y,                             ;If nonzero illegal
                                                                             |0871|3174|         IF NOT CT [IZ] THENP [VIA9]            ;If illegal POP, POPJ
                                                                             |0871|3175|.ENDIF/FTMBZ
                                                                             |0871|3176|        J[LNZSW]_[W1]                           ;First non tty adr
000,000,0,14,02,0,42,0,00,0,0,00,00,00,00,00,0,76,1,0,1,12,03,00,0000,00,7,00,0,0,0,0873|3177|VIA9:   [E]-[W1]_Y,
                                                                             |0873|3178|         IF NOT CT [IN IX_MX] RETURN
000,000,0,04,06,1,42,0,24,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0874|3179|        [E]_[W6],Y_RAMFILE ADR                  ;Address ramfile
000,000,0,01,06,1,26,0,10,0,0,00,00,01,00,00,0,20,1,1,1,04,01,00,0001,00,7,00,0,0,0,0875|3180|        LRS [W6]_[W3],PUSH J[1]_CTR             ;Copy & shift address
000,000,0,01,06,1,12,0,10,0,0,00,00,01,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,0876|3181|        LRS [W3]_[W3],RFCT                      ;Shift right
                                                                             |0876|3182|        J[7]_[W2]
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0007,00,7,01,0,0,0,0877|3183|        [W2]BAR&[W6]_B                          ;Make adr of status word
000,000,0,04,11,0,06,0,24,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0878|3184|        [W2]&[W3]_B                             ;Leave only line number in W3
000,000,0,04,14,0,06,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0879|3185|        SWAP [W3]_[W6 LH]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0177,00,7,01,0,0,0,0881|3186|        J[TTYRCV BITS]_[W1],                    ;Min legal address
                                                                             |0881|3187|        RETURN
                                                                             |0881|3188|
                                                                             |0881|3189|;Here when reading TTY register
000,000,0,06,02,0,42,0,00,0,1,00,00,00,00,00,0,76,1,0,1,12,02,00,0000,00,7,00,0,0,0,0882|3190|RDIO TTY:
                                                                             |0882|3191|        [E]-[W1]_F,F_Q_Y,
                                                                             |0882|3192|         IF CT [IN IX_MX] RETURN
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,44,1,1,0,03,02,00,1577,00,7,04,0,0,0,0883|3193|        RAMFILE_[MEM-OP],                       ;Get data from ramfile
                                                                             |0883|3194|         IF CT [MZ] THEN [RDIOTM]
                                                                             |0883|3195|        #0_UOVR
000,000,0,06,14,0,06,0,24,0,0,00,00,00,00,00,0,64,1,1,1,12,03,00,0000,00,7,00,0,0,0,0885|3196|        [W2]&[W6]_F,F_Q_Y,                      ;Leave only word offset
                                                                             |0885|3197|         IF NOT CT [IZ] RETURN                  ;If not reading status done
                                                                             |0885|3198|
                                                                             |0885|3199|;Here if reading the status register
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3707,00,7,00,0,0,0,0886|3200|RDIOT0:
                                                                             |0886|3201|        CALL [RD PCI SR]
                                                                             |0886|3202|        J[0300]_[W2]                            ;Mask for SR7&SR6
000,000,0,04,14,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4027,00,7,00,0,0,0,0888|3203|        [W2]&[W1]_B,                            ;Leave only SR7&SR6
                                                                             |0888|3204|         CALL [SWAP W2_W2]
000,000,0,04,11,0,06,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4026,00,7,00,0,0,0,0889|3205|        [W2]BAR&[MEM-OP]_B,                     ;Clear old SR7&SR6
                                                                             |0889|3206|         CALL [SWAP W1_W1]
000,000,0,04,17,0,02,0,54,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,0890|3207|        [W1].OR.[MEM-OP]_B,
                                                                             |0890|3208|         RETURN
                                                                             |0890|3209|
                                                                             |0890|3210|.IF/FTTTYF
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,16,0,1,0,01,01,00,3416,00,7,04,0,0,0,0891|3211|        RAMFILE_[MEM-OP],#0_UOVR,               ;Get received char
                                                                             |0891|3212|         CALL [ZERO RAMFILE]
000,000,0,04,11,0,02,0,24,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0892|3213|        [W1]BAR&[W6]_B,Y_RAMFILE ADR            ;Make adr of line block
000,000,0,04,10,0,00,0,20,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3665,00,7,04,0,0,0,0893|3214|        RAMFILE_[W5],                   ;Get current status
                                                                             |0893|3215|         CALL [CLR RDN]
                                                                             |0893|3216|        GOTO [SET PROC REG]                     ;Be sure int flags are correct
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3225,00,7,00,0,0,0,0894|3217|.ENDIF/FTTTYF
                                                                             |0894|3218|
                                                                             |0894|3219|;Here to read TTYRCV BITS
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,16,0,1,0,12,01,00,0000,00,7,04,0,0,0,0895|3220|RDIOTM: RAMFILE_[MEM-OP],#0_UOVR,
                                                                             |0895|3221|        RETURN
                                                                             |0895|3222|
                                                                             |0895|3223|.TOC "User Instructions"
                                                                             |0895|3224|
                                                                             |0895|3225|;Here for LUUOs have already been through CHK PC SECT
                                                                             |0895|3226|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,27,00,1612,00,7,00,0,0,0,0896|3227|LUUO:   IF [SECTION 0] THEN [LUUO0]             ;Check PC section
                                                                             |0896|3228|        IF [EXEC] THEN [MUUO]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,37,00,1637,00,7,00,0,0,0,0897|3229|        J[0420]_[PMA]                           ;Offset into UPT for LUUO block
000,000,0,04,03,0,23,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,0899|3230|        [UPT]+[PMA]_B,MEM START READ,           ;Location which has block adr
                                                                             |0899|3231|         CALL [UNMAPPED READ]
000,000,0,04,06,1,46,0,33,0,0,00,10,00,00,00,0,20,1,1,1,01,01,00,1625,00,7,00,0,0,0,0900|3232|        [MB]_[PMA],SET GLOBAL,                  ;Save adr in PMA
                                                                             |0900|3233|        CALL [SV UUO STS]
                                                                             |0900|3234|        WRITE [PMA]                             ;Write flags,code,ac
000,000,0,04,06,1,36,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4710,00,7,00,0,0,0,0902|3235|        [PC]_[MB],CALL [WRITE NEXT]             ;Write 30 bit PC
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4710,00,7,00,0,0,0,0903|3236|        [MEM-OP]_[MB],CALL [WRITE NEXT]         ;Write 30 bit E
000,000,0,04,06,1,42,0,40,0,1,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,0904|3237|        [E]+1_[E],                              ;Fetch new PC
                                                                             |0904|3238|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0904|3239|         CALL [MEMORY READ]
000,000,0,04,06,1,46,0,34,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,0905|3240|        [MB]_[PC],SET LOCAL,
                                                                             |0905|3241|        GOTOP [IFETCH]
                                                                             |0905|3242|
                                                                             |0905|3243|;Here if LUUO is done in section 0
000,000,0,04,10,0,32,2,44,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1635,00,7,07,0,0,0,0906|3244|LUUO0:  SWAP [IR]_[MB],                         ;Put opcode A in MB rh
                                                                             |0906|3245|        CALL [LUUO 2]
000,000,0,04,10,0,42,2,45,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1624,00,7,07,0,0,0,0907|3246|        SWAP [E]_[MB LH],                       ;Want E in RH
                                                                             |0907|3247|        CALL [SWAP MB_MB]
                                                                             |0907|3248|        J[040]_[E]
000,000,0,04,06,1,42,0,33,0,0,00,00,00,00,00,0,20,1,1,1,03,37,00,1621,00,7,00,0,0,0,0909|3249|        [E]_[PMA],
                                                                             |0909|3250|         IF [EXEC] THEN [LUUOOE]
                                                                             |0909|3251|        WRITE [E]                               ;Save info
000,000,0,07,06,1,42,0,40,0,1,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,0911|3252|        [E]+1_Q_[E],                            ;Get instruction to execute
                                                                             |0911|3253|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |0911|3254|         CALL [MEMORY READ]
                                                                             |0911|3255|        GOTOP [IFETCH 4]
000,000,0,04,03,0,17,0,33,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,00,0,0,0,0913|3256|LUUOOE: [EPT]+[PMA]_B,                          ;Save opcode and E
                                                                             |0913|3257|         CALL [UNMAPPED WRITE]
000,000,0,04,06,1,33,0,33,0,1,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,0914|3258|        [PMA]+1_[PMA],MEM START READ,
                                                                             |0914|3259|         CALL [UNMAPPED READ]
                                                                             |0914|3260|        GOTO [IFETCH 4]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1435,00,7,00,0,0,0,0915|3261|
000,000,0,04,10,0,46,2,44,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,07,0,0,0,0916|3262|SWAP MB_MB:
                                                                             |0916|3263|        SWAP [MB]_[MB],                         ;Put Opcode in LH
                                                                             |0916|3264|         RETURN
                                                                             |0916|3265|
                                                                             |0916|3266|;Here as part of MUUO or LUUO to put [flags t,opcd],[PC]_F, [E] in MB
                                                                             |0916|3267|; Strips PC to 30 bits, puts E in MEM-OP
000,000,0,04,10,0,32,2,44,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1635,00,7,07,0,0,0,0917|3268|SV UUO STS:
                                                                             |0917|3269|        SWAP [IR]_[MB],                         ;Put opcode A in MB rh
                                                                             |0917|3270|         CALL [LUUO 2]                          ;Put O,,opcode A in MB
                                                                             |0917|3271|        [PC FLAGS]_[MB LH]
000,000,0,04,06,1,03,0,45,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0918|3272|        [K 7777.-1]&[PC]_B                      ;Strip PC to 30 bits
000,000,0,04,06,1,42,0,54,0,0,00,00,00,00,77,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0920|3273|E_MEM-OP:
                                                                             |0920|3274|        [E]_[MEM-OP],SECTION SELECT             ;Preserve RH of AC
000,000,0,04,14,0,67,0,54,0,0,00,00,00,00,00,0,20,1,1,1,12,22,00,0000,00,7,00,0,0,0,0921|3275|        [K 7777.-1]&[MEM-OP]_B,                 ;Strip extraneous bits
                                                                             |0921|3276|        IF [NOT AC REF] RETURN
000,000,0,14,06,1,36,0,00,0,0,00,00,00,00,77,0,20,1,1,1,12,35,00,0000,00,7,00,0,0,0,0922|3277|        [PC]_Y,SECTION SELECT,                  ;Check PC section
                                                                             |0922|3278|        IF [GLOBAL] RETURN
                                                                             |0922|3279|        IF [SECTION 0] RETURN
000,000,0,04,06,1,57,0,55,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,0924|3280|        [BIT17]_[MEM-OP LH],                    ;Sect == 1 here
                                                                             |0924|3281|         RETURN
                                                                             |0924|3282|
                                                                             |0924|3283|;Here to put O,,opcode A in MB
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0037,00,7,01,0,0,0,0925|3284|LUUO 2: J[037]_[W1]                             ;Get mask for OPcode and AC field
000,000,0,04,11,0,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,0926|3285|        [W1]BAR&[MB]_B,                         ;Clear extraneous bits
                                                                             |0926|3286|         RETURN
                                                                             |0926|3287|
                                                                             |0926|3288|;                        TOPS20                             TOPS10
                                                                             |0926|3289|;       +-----------------------------------+ +----------------------------------+
                                                                             |0926|3290|;   424 | flags       | 0 | opcode | A | 00 | | opcode | AC | 00 |      E        |
                                                                             |0926|3291|;       +-----------------------------------+ +----------------------------------+
                                                                             |0926|3292|;   425 | 00 |       PC                     | | flags            |      PC       |
                                                                             |0926|3293|;       +-----------------------------------+ +----------------------------------+
                                                                             |0926|3294|;   426 | 00 |       E                      | | process context word             |
                                                                             |0926|3295|;       +-----------------------------------+ +----------------------------------+
                                                                             |0926|3296|;   427 | process context word              |
                                                                             |0926|3297|;       +-----------------------------------+
                                                                             |0926|3298|
                                                                             |0926|3299|;Here for MUUOs
                                                                             |0926|3300|; Will do several 2910 pops just in case
000,000,0,04,10,1,00,0,33,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0424,00,7,01,0,0,0,0927|3301|MUUO:   J[0424]_[PMA],POP                       ;Offset into UPT for block
000,000,0,04,03,0,23,0,33,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1625,00,7,00,0,0,0,0928|3302|        [UPT]+[PMA]_B,                          ;Physical adr of block
                                                                             |0928|3303|        CALL [SV UUO STS]
                                                                             |0928|3304|.IF/FT20PAG
                                                                             |0928|3305|.IF/FT10PAG
                                                                             |0928|3306|        IF [TOPS20] THEN [MUUO 1]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,44,00,1651,00,7,00,0,0,0,0929|3307|.ENDIF/FT10PAG
                                                                             |0929|3308|.ENDIF/FT20PAG
                                                                             |0929|3309|.IF/FT10PAG
                                                                             |0929|3310|        SWAP [MB]_[MB]                          ;Other side please
000,000,0,04,06,1,42,0,46,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,00,0,0,0,0931|3311|        [E]_[MB RH],
                                                                             |0931|3312|         CALL [UNMAPPED WRITE]
                                                                             |0931|3313|        [PC FLAGS]_[MB]
000,000,0,04,06,1,36,0,46,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0933|3314|        [PC]_[MB RH],
                                                                             |0933|3315|         CALL [UNMAPPED WRITE NEXT]
                                                                             |0933|3316|        CALL [GET CONTEXT WD]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3360,00,7,00,0,0,0,0934|3317|        CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,33,0,33,0,1,00,00,00,00,00,0,20,1,1,1,03,01,00,1656,00,7,00,0,0,0,0936|3318|        [PMA]+1_[PMA],                          ;Point to 427
                                                                             |0936|3319|        GOTO [MUUO 2]
                                                                             |0936|3320|.ENDIF/FT10PAG
                                                                             |0936|3321|;Here for TOPS20 MUUO
                                                                             |0936|3322|.IF/FT20PAG
000,000,0,04,14,0,67,0,34,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,00,0,0,0,0937|3323|MUUO 1: [K 7777.-1]&[PC]_B,                     ;Strip PC to 30 bits
                                                                             |0937|3324|         CALL [UNMAPPED WRITE]                  ;Write flags, op cd, ac
000,000,0,04,06,1,36,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0938|3325|        [PC]_[MB],                              ;Write 30 bit PC
                                                                             |0938|3326|         CALL [UNMAPPED WRITE NEXT]
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0939|3327|        [MEM-OP]_[MB],                          ; Write 30 bit E
                                                                             |0939|3328|         CALL [UNMAPPED WRITE NEXT]
                                                                             |0939|3329|        CALL [GET CONTEXT WD]                   ;Get context word next
000,000,0,07,06,1,33,0,33,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4703,00,7,00,0,0,0,0941|3330|        [PMA]_Q_[PMA],                          ;Write context word in block
                                                                             |0941|3331|         CALL [UNMAPPED WRITE NEXT]
                                                                             |0941|3332|.ENDIF/FT2OPAG
                                                                             |0941|3333|;Heree to get new PC on an MUUO
000,000,0,04,10,1,00,0,03,0,0,00,00,00,00,00,0,20,1,1,1,03,37,00,1663,00,7,00,0,0,0,0942|3334|MUUO 2: ZERO_[PC FLAGS],                        ;Clear flags
                                                                             |0942|3335|         IF [EXEC] THEN [MUUO 4]
000,000,0,04,10,1,00,0,00,0,0,00,20,00,00,00,0,20,1,1,0,15,01,00,0004,00,7,01,0,0,0,0943|3336|        J[4]_[W1],POP,SET EXEC
000,000,0,04,03,0,02,0,33,0,0,00,00,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,0944|3337|        [W1]+[PMA]_B,POP
                                                                             |0944|3338|        J[04000]_[W1]                           ;Bit for previous context user
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4000,00,7,01,0,0,0,0945|3339|        SWAP [W1]_[PC FLAGS]
000,000,0,04,06,1,33,0,33,0,1,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,0947|3340|MUUO 4: [PMA]+1_[PMA],MEM START READ,
                                                                             |0947|3341|        CALL [UNMAPPED READ]                    ;Get new PC
000,000,0,04,06,1,46,0,34,0,0,00,14,00,00,00,0,20,1,1,1,03,44,00,1420,00,7,00,0,0,0,0948|3342|        [MB]_[PC],SET LOCAL,
                                                                             |0948|3343|         IF [TOPS20] THEN [IFETCH]
000,000,0,04,17,0,03,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2315,00,7,00,0,0,0,0949|3344|        [PC FLAGS].OR.[MB]_B,                   ;Add prev context user
                                                                             |0949|3345|         GOTO [MB_PC FLAGS]
                                                                             |0949|3346|
                                                                             |0949|3347|;Here for DMOVNX
000,000,0,06,03,0,13,0,13,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0950|3348|DMOVNX:
                                                                             |0950|3349|        #2*[MEM-OP+1]_Q                         ;Put low order bits in Q
000,000,0,06,05,1,00,0,00,0,1,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,0951|3350|        NEGATE Q_F,F_Q_Y,IX_MX                  ;Negate low order bits
000,000,0,04,07,1,56,0,54,0,0,00,00,00,00,00,0,52,0,1,1,16,00,00,0000,00,7,00,0,0,0,0952|3351|        [MEM-OP]BAR+C_F,MC_C IX_UX,             ;Negate high order bits
                                                                             |0952|3352|         F_[MEM-OP]
000,000,0,01,14,1,77,0,13,0,0,00,00,01,00,00,0,44,1,1,1,06,03,00,0000,12,7,00,0,0,0,0953|3353|        Q_F,LRS F_B,B SEL/MEM-OP+1,             ;Save loworder portion
                                                                             |0953|3354|         #0_SION #0_QION,
                                                                             |0953|3355|         IF NOT CT [MZ] D [OPERAND STORE]
                                                                             |0953|3356|        IF CT [UZ] THEN [SET C0!C1 STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,24,1,1,0,03,02,00,2075,00,7,00,0,0,0,0954|3357|        IF NOT CT [UOVR] D [OPERAND STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,26,1,1,0,06,03,00,0000,12,7,00,0,0,0,0955|3358|        GOTO [SET OV!C1!T1 STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2070,00,7,00,0,0,0,0956|3359|
                                                                             |0956|3360|;Here after P&S SETUP for ADJBP
000,000,0,04,06,1,52,0,07,0,0,00,00,00,00,00,0,20,1,0,1,03,06,00,4127,00,7,00,0,0,0,0957|3361|ADJBP0: [AC-OP]_[AC-OP+1],IX_MX,                ;Copy # of bytes to adjust
                                                                             |0957|3362|         IF [AC.EQ.0] THEN [TO NOWHERE]         ;In case was really IBP
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,00,0,56,1,0,1,03,02,00,1700,00,7,00,0,0,0,0958|3363|        [W6]_Y,                                 ; Check for S=0
                                                                             |0958|3364|         IF CT [MN IX_MX] THEN [ADJ04]
000,000,0,04,10,1,00,0,50,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1701,00,7,00,0,0,0,0959|3365|        ZERO_[AC-OP],GOTO [ADJ06]               ;Set high order word
000,000,0,04,00,1,00,0,50,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0960|3366|ADJ04:  ONES_[AC-OP]
000,000,0,06,11,0,76,0,20,0,0,00,00,00,00,00,0,44,1,0,0,03,02,00,1727,00,7,00,0,0,0,0961|3367|ADJ06:  [K -1.0]BAR&[W5]_Q,                     ;Copy P
                                                                             |0961|3368|        IF CT [MZ IX_MX] THEN [ADJBP9]          ;If S=O done
000,000,0,06,01,1,26,0,00,0,1,00,00,00,00,00,0,76,1,1,0,03,03,00,1702,00,7,00,0,0,0,0962|3369|ADJBP1: Q-[W6]_F,F_Q,
                                                                             |0962|3370|         IF NOT CT [IN] THEN [ADJBP1]
                                                                             |0962|3371|;Count bytes in word
                                                                             |0962|3372|        J[044]_[W1]
000,000,0,04,00,1,00,0,10,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,0964|3373|        ONES_[W3],IX_MX                         ;Count bytes in word here
000,000,0,06,03,1,26,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,0965|3374|ADJBP2: Q+[W6]_F,F_Q
000,000,0,14,02,1,02,0,00,0,1,00,00,00,00,00,0,76,1,1,1,03,02,00,1710,00,7,00,0,0,0,0966|3375|        [W1]-Q_F,F_Y,
                                                                             |0966|3376|         IF CT [IN] THEN [ADJBP3]
000,000,0,04,06,1,12,0,10,0,1,00,00,00,00,00,0,20,1,0,1,03,01,00,1705,00,7,00,0,0,0,0967|3377|        [W3]+1_[W3],IX_MX,                      ;Count bytes in word
                                                                             |0967|3378|        GOTO [ADJBP2]
000,000,0,04,06,1,52,0,07,0,0,00,00,00,00,00,0,40,1,0,1,03,02,00,2157,00,7,00,0,0,0,0968|3379|ADJBP3: [AC-OP]_[AC-OP+1],                      ;Copy # of bytes to adjust
                                                                             |0968|3380|         IF CT [(MNxMOVR)!MZ IX_MX] THEN [SET NO DIVIDE]
000,000,0,04,06,1,12,0,54,0,0,00,00,00,00,00,0,20,1,0,1,01,01,00,2126,00,7,00,0,0,0,0969|3381|        [W3]_[MEM-OP],IX_MX,                    ;Copy divisor
                                                                             |0969|3382|         CALL [DIVSUB]                          ;Get quotient in MEM-OP
000,000,0,14,06,1,13,0,00,0,0,00,00,00,00,00,0,64,0,1,1,03,02,00,1713,00,7,00,0,0,0,0970|3383|        [MEM-OP+1]_Y,                           ;Test remainder
                                                                             |0970|3384|         IF CT [IZ IX_MX] THEN [ADJBP5]
000,000,0,01,06,1,22,0,50,0,0,00,00,51,00,00,0,20,1,1,1,04,01,00,0004,00,7,00,0,0,0,0971|3385|ADJBP5: ROR [W5]_[AC-OP],PUSH J[4]_CTR
000,000,0,01,06,1,52,0,50,0,0,00,00,51,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,0972|3386|        ROR [AC-OP]_[AC-OP],                    ;Justify pointer in AC-OP
                                                                             |0972|3387|         RFCT
                                                                             |0972|3388|        J[04000]_[W1]
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,0974|3389|        SWAP [W1]_[W1],SEL AC+[0]
000,000,0,14,14,0,02,0,50,0,0,00,00,00,00,00,0,64,1,1,0,03,03,00,1721,00,7,00,0,0,0,0975|3390|        [W1]&[AC-OP]_F,
                                                                             |0975|3391|         IF NOT CT [IZ] THEN [ADJBP6]
000,000,0,04,03,0,56,0,52,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,4350,00,7,00,0,0,0,0976|3392|        [MEM-OP]+[AC-OP RH]_B,
                                                                             |0976|3393|         GOTOP [AC TO AC]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4660,00,7,00,0,0,0,0977|3394|ADJBP6: CALL [READ NEXT]                        ;Get 2nd half of pointer
000,000,0,04,03,0,46,0,54,0,0,00,00,00,00,27,0,20,1,1,1,16,00,01,0000,00,7,00,0,0,0,0978|3395|        [MB]+[MEM-OP]_B,SEL AC+[1]
                                                                             |0978|3396|        [K 7777.-1]&[MEM-OP]_B
000,000,0,04,14,0,67,0,54,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,0979|3397|        [K 7777.-1]BAR&[MB]_B
000,000,0,14,17,0,56,0,44,0,0,00,00,00,00,27,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,0981|3398|        [MEM-OP].OR.[MB]_Y,
                                                                             |0981|3399|         ALU_RAMFILE,SEL AC+[0]
000,000,0,14,14,0,77,0,50,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,0982|3400|        [AC-OP]_RAMFILE,SET LOCAL,
                                                                             |0982|3401|         GOTOP [IFETCH]
                                                                             |0982|3402|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,24,1,1,0,06,03,01,0000,13,7,00,0,0,0,0983|3403|ADJBP9: SEL AC+[1],
                                                                             |0983|3404|         IF NOT CT [UZ] D [DISPATCH 4]          ;Dispatch if not global
000,000,0,14,14,0,77,0,13,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,04,0,0,0,0984|3405|        [MEM-OP+1]_RAMFILE,
                                                                             |0984|3406|        DISPATCH [DISPATCH 4]
                                                                             |0984|3407|
                                                                             |0984|3408|;Here for IBP or ADJBP
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,06,00,1761,00,7,00,0,0,0,0985|3409|ADJBP:  IF [AC.EQ.0] THEN [IBP0]
                                                                             |0985|3410|        ;GOTO [P&S SETUP]
                                                                             |0985|3411|
                                                                             |0985|3412|.TOC 2, "Byte Instructions"
                                                                             |0985|3413|
                                                                             |0985|3414|;
                                                                             |0985|3415|;       +------+------+-+-+----+-----------------+
                                                                             |0985|3416|;       |   P  |   S  |X|I| AC |        Y        |
                                                                             |0985|3417|;       +------+------+-+-+----+-----------------+
                                                                             |0985|3418|;        0    0 0    1 1 1 1  1 1               3
                                                                             |0985|3419|;        0    5 6    1 2 3 4  7 8               5
                                                                             |0985|3420|;Common setup routine for byte instructions
                                                                             |0985|3421|; Returns W5/P W6/S Q/S UZ set if global format
                                                                             |0985|3422|
                                                                             |0985|3423|.IF/FTBYTE
000,000,1,11,06,1,56,0,20,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0001,00,7,00,0,0,0,0986|3424|P&S SETUP:
                                                                             |0986|3425|        #2*[MEM-OP]_[W5],                       ;Copy pointer to W5
                                                                             |0986|3426|        J[1]_CTR
000,000,1,11,03,0,22,0,20,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,1733,00,7,00,0,0,0,0987|3427|P&S 2:  #4*[W5]_B,                              ;Shift left 2 at a time
                                                                             |0987|3428|         LOOP [P&S 2]
                                                                             |0987|3429|        #2*[W5]_Q                                ;Leave S left justified in Q
000,000,1,13,06,1,56,0,20,0,0,00,00,51,00,00,0,20,1,1,1,14,00,00,0004,00,7,00,0,0,0,0989|3430|P&S 3:  ROL [MEM-OP]_[W5] ROL Q_Q,              ;Rotate pointer in W5, also rot Q
                                                                             |0989|3431|         J[4]_CTR
000,000,1,13,06,1,22,0,20,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,1736,00,7,00,0,0,0,0990|3432|P&S 4:  ROL [W5]_[W5] ROL Q_Q,                  ;Rotate pointer in W5, also rot Q
                                                                             |0990|3433|         LOOP [P&S 4]
                                                                             |0990|3434|        [K 77]&[W5]_B                           ;Mask P to 6 bits
000,000,0,07,14,1,66,0,24,0,0,00,00,00,00,00,0,20,1,1,1,03,27,00,1744,00,7,00,0,0,0,0992|3435|        Q&[K 77]_F,F_Q_[W6],                    ;Mask S to 6 bits
                                                                             |0992|3436|         IF [SECTION 0] THEN [P&S 5]
000,000,0,14,14,0,53,0,54,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1744,00,7,00,0,0,0,0993|3437|        [BIT12]&[MEM-OP]_Y,                     ;Check for local/global format
                                                                             |0993|3438|         IF CT [IZ] THEN [P&S 5]
000,000,0,07,06,1,42,0,42,0,1,00,00,00,00,00,0,11,0,1,1,03,34,00,1745,00,7,00,0,0,0,0994|3439|        [E]+1_F,F_Q_[E RH],#1_UZ,                ;Make adr of 2nd half
                                                                             |0994|3440|         IF [LOCAL] THEN [P&S 6]
000,000,0,04,14,1,77,0,40,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1745,00,7,00,0,0,0,0995|3441|        Q_[E],GOTO [P&S 6]                      ;Propagate carry
                                                                             |0995|3442|;Here if EFA calc is from first word
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,33,0,10,0,1,1,14,00,00,1447,00,7,00,0,0,0,0996|3443|P&S 5:  [MEM-OP]_Y,SPEC SEL/XR,                 ;Set AC and @ flags
                                                                             |0996|3444|        #0_UZ,J[EFA CALC]_CTR                    ; Load 2910 reg for subroutine call
                                                                             |0996|3445|;Here to do EFA calc for byte pointer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,24,1,1,0,05,02,00,1462,00,7,00,0,0,0,0997|3446|P&S 6:  IF CT [UZ] JSRP [FETCH IW]              ;Do EFA calc
                                                                             |0997|3447|        IF [NOT PXCT] THEN [P&S 64]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,47,00,1752,00,7,00,0,0,0,0998|3448|        J[0100]_[PXCT RH]
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0100,00,7,01,0,0,0,0999|3449|        CALL [PXCT FETCH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2422,00,7,00,0,0,0,1000|3450|        GOTO [P&S 66]
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1002|3451|P&S 64: READ [E]                                ;Get word to write
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,01,0,0,0,1003|3452|P&S 66: J[BYTE MASK]_[W1]                       ;Base of mask for byte size
000,000,0,14,03,0,02,0,24,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1004|3453|        [W1]+[W6]_Y,Y_RAMFILE ADR               ;Address mask for byte
000,000,0,14,03,0,77,0,20,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,01,0,0,0,1005|3454|P&S 7:  [K -1]+[W5]_Y,ALU_CTR, IX_MX            ;Check P for 0 & load ctr
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1006|3455|        RAMFILE_[W2],SEL AC+[0]                 ;Get mask
                                                                             |1006|3456|         DISPATCH [DISPATCH 4]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,13,7,00,0,0,0,1007|3457|
                                                                             |1007|3458|;Setup routine for ILOB, IDPB, and IBP instructions
                                                                             |1007|3459|; Returns W5/P W6/S Q/S                 UZ set if global format
                                                                             |1007|3460|
000,000,0,14,14,0,47,0,03,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1732,00,7,00,0,0,0,1008|3461|IP&S SETUP:
                                                                             |1008|3462|        [BIT4]&[PC FLAGS]_Y,                    ;Check first part done
                                                                             |1008|3463|        IF NOT CT [IZ] THEN [P&S SETUP]
000,000,1,11,06,1,56,0,20,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0001,00,7,00,0,0,0,1009|3464|IBP0:   #2*[MEM-OP]_[W5],                       ;Copy pointer to W5
                                                                             |1009|3465|         J[1]_CTR
000,000,1,11,03,0,22,0,20,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,1762,00,7,00,0,0,0,1010|3466|IP&S 2: #4*[W5]_B,LOOP [IP&S 2]                 ;Shift left 2 at a time
                                                                             |1010|3467|        [W5]+[W5]_Q                             ;Put S left justified in Q
000,000,0,07,11,1,67,0,24,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1012|3468|        [K 7777.-1]BAR&Q_F,F_Q_[W6]             ;Leave only S in Q
000,000,0,04,02,1,56,0,54,0,1,00,00,00,00,00,0,72,1,1,1,03,02,00,2006,00,7,00,0,0,0,1013|3469|        [MEM-OP]-Q_F,F_[MEM-OP],                ; Increment pointer
                                                                             |1013|3470|         IF CT [IC] THEN [IP&S 3]
                                                                             |1013|3471|        JS[4]_[W1]                              ; Put 400000,,4
000,000,0,04,14,0,67,0,54,0,0,00,00,00,00,00,0,20,1,1,1,04,01,00,0002,00,7,00,0,0,0,1015|3472|        [K 7777.-1]&[MEM-OP]_B,                 ;Clear old P
                                                                             |1015|3473|        PUSH J[2]_CTR
000,000,0,01,06,1,02,0,00,0,0,00,00,51,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,1016|3474|        ROR [W1]_[W1],RFCT                      ;Leave 440000,,0 in W1
                                                                             |1016|3475|        [W1].OR.[MEM-OP]_B                      ; Put 36. in P
000,000,0,04,02,1,56,0,54,0,1,00,00,00,00,00,0,20,1,1,1,03,27,00,2005,00,7,00,0,0,0,1018|3476|        [MEM-OP]-Q_F,F_[MEM-OP],                ;Make pointer
                                                                             |1018|3477|         IF [SECTION 0] THEN [IP&S27]
000,000,0,14,14,0,53,0,54,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,2005,00,7,00,0,0,0,1019|3478|        [BIT12]&[MEM-OP]_Y,
                                                                             |1019|3479|         IF CT [IZ] THEN [IP&S27]
000,000,0,07,06,1,42,0,42,0,1,00,00,00,00,00,0,20,1,1,1,03,34,00,1776,00,7,00,0,0,0,1020|3480|        [E]+1_F,F_Q_[E RH],
                                                                             |1020|3481|         IF [LOCAL] THEN [IP&S24]
                                                                             |1020|3482|        Q_[E]                                   ;Propagate carry
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1022|3483|IP&S24: READ [E]                                ;Fetch 2nd half of pointer
                                                                             |1022|3484|        [K 7777.-1]BAR&[MB]_Q                   ;Save non Y portion
000,000,0,06,11,0,67,0,44,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,1023|3485|        [MB]+1_[MB]                             ; Increment Y
000,000,0,04,06,1,46,0,44,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1024|3486|        [K 7777.-1]&[MB]_B                      ;Strip non Y portion
000,000,0,04,17,1,46,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1026|3487|        Q.OR.[MB]_[MB],                         ;Add non Y portion
                                                                             |1026|3488|         CALL [MEMORY WRITE]
                                                                             |1026|3489|        ;[MB]+1_[MB],                           ;Increment 2nd half of pointer
                                                                             |1026|3490|        ;CALL [MEMORY WRITE]
000,000,0,07,03,0,77,0,42,0,0,00,00,00,00,00,0,20,1,1,1,03,34,00,2006,00,7,00,0,0,0,1027|3491|        [K -1]+[E RH]_F,F_Q_[E RH],             ;Make adr of 1st half of pointer
                                                                             |1027|3492|         IF [LOCAL] THEN [IP&S 3]
000,000,0,04,14,1,77,0,40,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2006,00,7,00,0,0,0,1028|3493|        Q_[E], GOTO [IP&S 3]                    ;Propagate carry
000,000,0,04,06,1,56,0,56,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1029|3494|IP&S27: [MEM-OP]+1_[MEM-OP RH]                  ;Increment adr
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1030|3495|IP&S 3: [MEM-OP]_[MB],
                                                                             |1030|3496|         CALL [MEMORY WRITE]                    ;Write updated pointer in memory
000,000,0,06,06,1,26,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,00,0,0,0,1031|3497|        [W6]_Q,                                 ;Load Q with S left justified
                                                                             |1031|3498|         DISPATCH [DISPATCH 3]                  ;IBP is done, otherwise continue
000,000,0,04,17,0,47,0,03,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1735,00,7,00,0,0,0,1032|3499|IP&S 5: [BIT4].OR.[PC FLAGS]_B,                 ;Set first part done
                                                                             |1032|3500|         GOTO [P&S 3]                           ; Rest 1ike P&S setup
                                                                             |1032|3501|
                                                                             |1032|3502|;Here for LDB or ILDB after P&S SETUP, memory word in MB
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,56,1,1,0,03,02,00,2020,00,7,00,0,0,0,1033|3503|LDB:    IF CT [MN] THEN [LDB5]                  ;Branch if P=0
                                                                             |1033|3504|        J[18.]_[W1]                             ;Half word shift
000,000,0,14,02,0,22,0,00,0,0,00,00,00,00,00,0,76,1,0,1,03,02,00,2017,00,7,00,0,0,0,1035|3505|        [W5]-[W1]_Y,
                                                                             |1035|3506|         IF CT [IN IX_MX] THEN [LDB4]
                                                                             |1035|3507|        SWAP [MB]_[MB]                          ;Do first 18 shifts
000,000,0,04,10,1,00,0,45,0,0,00,00,00,00,00,0,44,1,1,1,03,02,00,2020,00,7,00,0,0,0,1037|3508|        ZERO_[MB LH],                           ;Clear half
                                                                             |1037|3509|         IF CT [MZ] THEN [LDB5]
000,000,0,14,02,0,22,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,01,0,0,0,1038|3510|        [W5]-[W1]-1_F,F_Y,ALU_CTR               ;Load ctr with excess 18.
000,000,0,01,06,1,46,0,44,0,0,00,00,01,00,00,0,20,1,1,1,11,00,00,2017,00,7,00,0,0,0,1039|3511|LDB4:   LRS [MB]_[MB],LOOP [LDB4]
000,000,0,14,14,0,46,0,04,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,2037,00,7,04,0,0,0,1040|3512|LDB5:   [MB]&[W2]_Y,ALU_RAMFILE,                ;Mask to byte size
                                                                             |1040|3513|         GOTOP [TO NOWHERE CFPD]
                                                                             |1040|3514|
                                                                             |1040|3515|;Here for DPB or IDPB after P&S SETUP, memory word in MB
000,000,0,04,14,0,06,0,50,0,0,00,00,00,00,00,0,56,1,1,1,03,02,00,2033,00,7,00,0,0,0,1041|3516|DPB:    [W2]&[AC-OP]_B,                         ;Clear extra bits from byte
                                                                             |1041|3517|         IF CT [MN] THEN [DPB5]                 ; Branch if P=0
                                                                             |1041|3518|        J[18.]_[W1]                             ;Half word shift
000,000,0,14,02,0,22,0,00,0,0,00,00,00,00,00,0,76,1,0,1,03,02,00,2030,00,7,00,0,0,0,1043|3519|        [W5]-[W1]_Y,
                                                                             |1043|3520|         IF CT [IN IX_MX] THEN [DPB3]
                                                                             |1043|3521|        SWAP [AC-OP]_[AC-OP]                    ;Do first 18 shifts
000,000,0,04,10,1,00,0,52,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4027,00,7,00,0,0,0,1045|3522|        ZERO_[AC-OP RH],                        ;Clear half
                                                                             |1045|3523|         CALL [SWAP W2_W2]                      ;Shift mask also
000,000,0,04,10,1,00,0,06,0,0,00,00,00,00,00,0,44,1,1,1,03,02,00,2030,00,7,00,0,0,0,1046|3524|        ZERO_[W2 RH],                           ;Clear half of mask
                                                                             |1046|3525|         IF CT [MZ] THEN [DPB3]                 ; FIXME: Cant read code
                                                                             |1046|3526|.WARNING "Can not read the code in the previous line.  It is probably wrong"
000,000,0,14,02,0,22,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,01,0,0,0,1047|3527|        [W5]-[W1]-1_F,F_Y,ALU_CTR               ;Load ctr with excess 18.
000,000,0,06,06,1,06,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,1048|3528|DPB3:   [W2]_Q                                  ;Put mask in Q reg
000,000,1,13,06,1,52,0,50,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,2031,00,7,00,0,0,0,1049|3529|DPB4:   LLS [AC-OP]_[AC-OP] LLS Q_Q,
                                                                             |1049|3530|         LOOP [DPB4]
                                                                             |1049|3531|        Q_[W2]                                  ;Get mask back from Q
000,000,0,04,11,0,06,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,47,00,2036,00,7,00,0,0,0,1051|3532|DPB5:   [W2]BAR&[MB]_B,                         ;Clear old bits from mem word
                                                                             |1051|3533|        IF [NOT PXCT] THEN [DPB6]
000,000,0,04,17,0,52,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,2414,00,7,00,0,0,0,1052|3534|        [AC-OP].OR.[MB]_B,                      ;Set new bits
                                                                             |1052|3535|        CALL [PXCT STORE]                       ;Write word back
                                                                             |1052|3536|        GOTO [TO NOWHERE CFPD]
000,000,0,04,17,0,52,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1054|3537|DPB6:   [AC-OP].OR.[MB]_B,                      ;Set new bits
                                                                             |1054|3538|        CALL [MEMORY WRITE]                     ;Write word in memory
                                                                             |1054|3539|        ;GOTO [TO NOWHERE CFPD]
                                                                             |1054|3540|.ENDIF/FTBYTE
                                                                             |1054|3541|;Here when instruction done, clear first part done
000,000,0,04,11,0,47,0,03,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,1055|3542|TO NOWHERE CFPD:
                                                                             |1055|3543|        [BIT4]BAR&[PC FLAGS]_B,                 ;Clear 1st part done and exit
                                                                             |1055|3544|        SET LOCAL,GOTOP [IFETCH]
                                                                             |1055|3545|
                                                                             |1055|3546|.TOC 2, "Floating Point Instructions"
                                                                             |1055|3547|
                                                                             |1055|3548|;Format for floating point numbers is
                                                                             |1055|3549|; 0 1 2 3 4 5 6 7 8 9l0lll2l~14l5l6l7l8l9202l2223242526272829303l32333435
                                                                             |1055|3550|; | \              / \                                                  /
                                                                             |1055|3551|; |       |                                    + ---fraction
                                                                             |1055|3552|; |       + ---exponent (excess 200)
                                                                             |1055|3553|; + ---sign
                                                                             |1055|3554|
                                                                             |1055|3555|;Here for FIX instruction
000,000,1,11,06,1,56,0,54,0,0,00,00,11,00,00,0,56,1,1,1,03,03,00,2042,00,7,00,0,0,0,1056|3556|FIX:
                                                                             |1056|3557|.IF/FTFP
                                                                             |1056|3558|        #2*[MEM-OP]_[MEM-OP],
                                                                             |1056|3559|         IF NOT CT [MN] THEN [FIX 1]
000,000,0,04,07,1,56,0,54,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1057|3560|        NEGATE [MEM-OP]_F,F_[MEM-OP]            ;Work with positive copy
000,000,1,11,06,1,56,0,54,0,0,00,00,51,00,00,0,20,1,1,1,04,01,00,0006,00,7,00,0,0,0,1058|3561|FIX 1:  ROL [MEM-OP]_[MEM-OP],                  ;Copy operand to extract exponent
                                                                             |1058|3562|         PUSH J[6]_CTR
000,000,1,11,06,1,56,0,54,0,0,00,00,51,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,1059|3563|         ROL [MEM-OP]_[MEM-OP],                 ;Rotate exponent to rh of W1
                                                                             |1059|3564|        RFCT
000,000,0,06,14,0,72,0,54,0,0,00,14,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,1060|3565|        [K 777]&[MEM-OP]_Q,                     ;Get the exponent
                                                                             |1060|3566|         SET LOCAL
                                                                             |1060|3567|        [K 777]BAR&[MEM-OP]_B                   ;Strip exponent from number
000,000,0,04,11,0,72,0,54,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1061|3568|        J[0242]_[W2]
000,000,0,14,02,1,06,0,00,0,1,00,00,00,00,00,0,20,0,1,1,16,00,00,0000,00,7,01,0,0,0,1063|3569|        [W2]-Q_F,F_Y,ALU_CTR,IX_UX
                                                                             |1063|3570|        IF CT [UN] THEN [SET OV!T1 TRAP]
000,000,0,03,14,0,77,0,54,0,0,00,00,31,00,00,0,24,1,1,1,03,02,00,2053,00,7,00,0,0,0,1065|3571|        [K -1]&[MEM-OP]_F,                     ; Position result
                                                                             |1065|3572|         LSRC_B,#0_SION SIO0_QION,
                                                                             |1065|3573|         IF CT [UZ] THEN [FIX 6]
000,000,0,03,14,0,77,0,54,0,0,00,00,31,00,00,0,20,1,1,1,11,00,00,2052,00,7,00,0,0,0,1066|3574|FIX 5:  [K -1]&[MEM-OP]_F,                ;Position result
                                                                             |1066|3575|         LSRC_B,#0_SION SIO0_QION,
                                                                             |1066|3576|        LOOP [FIX 5]
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,00,0,56,1,1,1,06,03,00,0000,12,7,04,0,0,0,1067|3577|FIX 6:  [MEM-OP]_RAMFILE,
                                                                             |1067|3578|        IF NOT CT [MN] D [OPERAND STORE]
000,000,0,04,07,1,56,0,54,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,04,0,0,0,1068|3579|        NEGATE [MEM-OP]_F,F_[MEM-OP],
                                                                             |1068|3580|         ALU_RAMFILE,
                                                                             |1068|3581|        DISPATCH [OPERAND STORE]
                                                                             |1068|3582|.ENDIF/FTFP
                                                                             |1068|3583|
                                                                             |1068|3584|;Here for FIXR = fix and round
000,000,0,14,14,1,77,0,00,0,0,00,00,00,00,00,0,76,1,1,1,13,03,00,1420,00,7,00,0,0,0,1069|3585|FIXR:
                                                                             |1069|3586|.IF/FTFP
                                                                             |1069|3587|        Q_Y,
                                                                             |1069|3588|         IF NOT CT [IN] THENP [IFETCH]
000,000,0,14,06,1,56,0,00,0,1,00,00,00,00,00,0,56,1,1,1,13,03,00,1420,00,7,04,0,0,0,1070|3589|        [MEM-OP]+1_Y,ALU_RAMFILE,
                                                                             |1070|3590|         IF NOT CT [MN] THENP [IFETCH]
000,000,0,14,03,0,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1071|3591|        [K -1]+[MEM-OP]_Y,ALU_RAMFILE,
                                                                             |1071|3592|         GOTOP [IFETCH]
                                                                             |1071|3593|        GOTO [TO AC]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4343,00,7,00,0,0,0,1072|3594|.ENDIF/FTFP
                                                                             |1072|3595|
                                                                             |1072|3596|;Here for FLTR = float and round
000,000,0,14,11,0,76,0,40,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1073|3597|FLTR:   ;DISPATCH [OPERAND STORE]
                                                                             |1073|3598|
                                                                             |1073|3599|;Here for FADx
                                                                             |1073|3600|FADX:   ;DISPATCH [OPERAND STORE]
                                                                             |1073|3601|
                                                                             |1073|3602|;Here for FADRx
                                                                             |1073|3603|FADRX:  ;DISPATCH [OPERAND STORE]
                                                                             |1073|3604|
                                                                             |1073|3605|;Here for FSBx
                                                                             |1073|3606|FSBX:   ;DISPATCH [OPERAND STORE]
                                                                             |1073|3607|
                                                                             |1073|3608|;Here for FSBRx
                                                                             |1073|3609|FSBRX: ;DISPATCH [OPERAND STORE]
                                                                             |1073|3610|
                                                                             |1073|3611|;Here for FMPx
                                                                             |1073|3612|FMPX:   ;DISPATCH [OPERAND STORE]
                                                                             |1073|3613|
                                                                             |1073|3614|;Here for FMPRx
                                                                             |1073|3615|FMPRX: ;DISPATCH [OPERAND STORE]
                                                                             |1073|3616|
                                                                             |1073|3617|;Here for FDVx
                                                                             |1073|3618|FDVX: ;DISPATCH [OPERAND STORE]
                                                                             |1073|3619|
                                                                             |1073|3620|;Here for FDVRx
                                                                             |1073|3621|FDVRX: ;DISPATCH [OPERAND STORE]
                                                                             |1073|3622|
                                                                             |1073|3623|.TOC "Full Word Data Transmission"
                                                                             |1073|3624|
                                                                             |1073|3625|;Here for MOVEI
                                                                             |1073|3626|
                                                                             |1073|3627|.IF/FAST
                                                                             |1073|3628|MOVEI:  [K -1.0]BAR&[E]_F,F_Y,                 ;Strip extra bits
                                                                             |1073|3629|        ALU_RAMFILE,SET LOCAL,
                                                                             |1073|3630|         GOTOP [IFETCH]
                                                                             |1073|3631|
                                                                             |1073|3632|;Here for MOVSI
000,000,0,04,10,0,42,2,40,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1074|3633|MOVSI:  SWAP [E]_[E],SEL AC+[0] ;Position bits
000,000,0,14,14,0,76,0,40,0,0,00,14,00,00,00,0,20,1,1,1,03,01,00,1420,00,7,04,0,0,0,1075|3634|        [K -1.0]&[E]_Y,ALU_RAMFILE,
                                                                             |1075|3635|         SET LOCAL,GOTO [IFETCH]
                                                                             |1075|3636|.ENDIF/FAST
                                                                             |1075|3637|
                                                                             |1075|3638|;Here for MOVSx (also some Hxx instructions)
000,000,0,04,10,0,56,2,54,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,07,0,0,0,1076|3639|MOVSX:  SWAP [MEM-OP]_[MEM-OP],
                                                                             |1076|3640|         DISPATCH [OPERAND STORE]
                                                                             |1076|3641|
                                                                             |1076|3642|;Here for MOVMx
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,56,1,1,0,06,03,00,0000,12,7,00,0,0,0,1077|3643|MOVMX:  IF NOT CT [MN] D [OPERAND STORE]
                                                                             |1077|3644|        ;GOTO [MOVNX]
                                                                             |1077|3645|
                                                                             |1077|3646|;Here for MOVNx
000,000,0,04,07,1,56,0,54,0,1,00,00,00,00,00,0,64,0,1,1,03,02,00,2075,00,7,00,0,0,0,1078|3647|MOVNX:  NEGATE [MEM-OP]_F,F_[MEM-OP],           ;Negate operand
                                                                             |1078|3648|         IF CT [IZ IX_MX] THEN [SET C0!C1 STORE]
                                                                             |1078|3649|        IF NOT CT [MOVR] D [OPERAND STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,46,1,1,0,06,03,00,0000,12,7,00,0,0,0,1079|3650|
000,000,0,04,10,1,00,0,00,0,0,00,74,00,00,00,0,20,1,1,0,16,00,00,5002,00,7,01,0,0,0,1080|3651|SET OV!C1!T1 STORE:
                                                                             |1080|3652|        J[05002]_[W1],SET TRAP                   ;Set overflow, carry 1, and trap 1
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4151,00,7,07,0,0,0,1081|3653|        SWAP [W1]_[W1],
                                                                             |1081|3654|         CALL [#64*W1!PCF]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,12,7,00,0,0,0,1082|3655|        SEL AC+[0],
                                                                             |1082|3656|         DISPATCH [OPERAND STORE]
                                                                             |1082|3657|
                                                                             |1082|3658|.TOC 2, "Fixed Point Instructions"
                                                                             |1082|3659|
                                                                             |1082|3660|;Here for ADDx
000,000,0,04,03,0,52,0,54,0,0,00,00,00,00,00,0,66,1,0,1,03,02,00,2077,00,7,00,0,0,0,1083|3661|ADDX:   [AC-OP]+[MEM-OP]_B,                     ;Add AC & HEM
                                                                             |1083|3662|         IF CT [IOVR IX_MX] THEN [ADDXOV]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,53,1,1,0,06,02,00,0000,12,7,00,0,0,0,1084|3663|ADDX2:  IF CT [NOT MC] D [OPERAND STORE]        ;No carry means done
000,000,0,04,17,0,63,0,03,0,0,00,00,00,00,27,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1085|3664|SET C0!C1 STORE:
                                                                             |1085|3665|        [C0!C1].OR.[PC FLAGS]_B,
                                                                             |1085|3666|         SEL AC+[0],
                                                                             |1085|3667|         DISPATCH [OPERAND STORE]
                                                                             |1085|3668|
                                                                             |1085|3669|;Here for SUBx
000,000,0,04,02,0,52,0,54,0,0,00,00,00,00,00,0,67,1,0,1,03,02,00,2074,00,7,00,0,0,0,1086|3670|SUBX:   [AC-OP]-[MEM-OP]_B,                     ;AC-MEM_MEM and then store
                                                                             |1086|3671|        IF CT [NOT IOVR IX_MX] THEN [ADDX2]
                                                                             |1086|3672|
                                                                             |1086|3673|;Here if got overflow
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,53,1,1,0,03,02,00,2070,00,7,00,0,0,0,1087|3674|ADDXOV: IF CT [NOT MC] THEN [SET OV!C1!T1 STORE]
000,000,0,04,10,1,00,0,00,0,0,00,74,00,00,00,0,20,1,1,0,16,00,00,6002,00,7,01,0,0,0,1088|3675|SET OV!C0!T1 STORE:
                                                                             |1088|3676|        J[06002]_[W1],SET TRAP                  ;Set overflow, carry 0, and trap 1
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4151,00,7,07,0,0,0,1089|3677|        SWAP [W1]_[W1],
                                                                             |1089|3678|         CALL [#64*W1!PCF]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,12,7,00,0,0,0,1090|3679|        SEL AC+[0],
                                                                             |1090|3680|         DISPATCH [OPERAND STORE]
                                                                             |1090|3681|
                                                                             |1090|3682|
                                                                             |1090|3683|;Here for MULx or IMULx
                                                                             |1090|3684|; Memory operand already in Q
                                                                             |1090|3685|.IF/FAST
000,000,0,04,10,1,00,0,54,0,0,00,00,00,00,00,0,20,1,1,1,14,00,00,0041,00,7,00,0,0,0,1091|3686|MULX:   ZERO_[MEM-OP],J[33.]_CTR                ;Initialize work register
                                                                             |1091|3687|        TCM [AC-OP] [MEM-OP]                    ;Do shift and add
000,100,0,14,10,0,52,0,54,0,0,00,00,31,00,00,0,20,1,1,1,11,00,00,2105,00,7,00,0,0,0,1093|3688|MULX 2: TCM [AC-OP] [MEM-OP],             ;Do shift and add
                                                                             |1093|3689|         LOOP [MULX 2]
                                                                             |1093|3690|.ENDIF/FAST
                                                                             |1093|3691|.IFNOT/FAST
                                                                             |1093|3692|MULX:   ZERO_[MEM-OP],J[34.]_CTR                ;Initialize work register
                                                                             |1093|3693|MULX 2: TCM [AC-OP] [MEM-OP]                    ;Do shift and add
                                                                             |1093|3694|         LOOP [MULX 2]
                                                                             |1093|3695|.ENDIF/FAST
                                                                             |1093|3696|        TCM COR [AC-OP] [MEM-OP]                ;Final shift and add
000,000,1,12,06,1,56,0,54,0,0,00,00,21,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1095|3697|        [MEM-OP]_F,B SEL/MEM-OP,ALSC_B,         ;Shift product left
                                                                             |1095|3698|         SION_MC QION_SIO0 #0_QIO0,IX_MX         ; put carry out in MC
000,000,0,01,14,1,77,0,13,0,0,00,00,25,00,00,0,56,1,1,1,06,02,00,0000,12,7,00,0,0,0,1096|3699|        Q_F, (MN F)RS_[MEM-OP+1],               ;Get low order portion
                                                                             |1096|3700|         IF CT [MN] D [OPERAND STORE]
                                                                             |1096|3701|        IF NOT CT [MC] D [OPERAND STORE]
000,000,0,01,10,1,00,0,54,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4143,00,7,00,0,0,0,1098|3702|        BIT0_[MEM-OP],                          ;Architecture says to do this
                                                                             |1098|3703|         CALL [SET OV!T1]                       ;Set overflow & trap 1
000,000,0,01,10,1,00,0,13,0,0,00,00,05,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1099|3704|        BIT0_[MEM-OP+1],                        ;More architecture cyberkrud
                                                                             |1099|3705|        DISPATCH [OPERAND STORE]
                                                                             |1099|3706|
                                                                             |1099|3707|;Here for IMULx after doing MULx
000,000,0,04,06,1,56,0,54,0,1,00,00,00,00,00,0,44,1,0,1,03,02,00,2116,00,7,00,0,0,0,1100|3708|IMULX:  [MEM-OP]+1_[MEM-OP],                    ;In case high order portion neg
                                                                             |1100|3709|         IF CT [MZ IX_MX] THEN [IMULX4]
                                                                             |1100|3710|        IF NOT CT [MZ] CALL [SET OV!T1]         ;Set overflow if high order bits
000,000,0,04,06,1,13,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1102|3711|IMULX4: [MEM-OP+1]_[MEM-OP],
                                                                             |1102|3712|         DISPATCH [DISPATCH 4]
                                                                             |1102|3713|
                                                                             |1102|3714|;Here for IDIVx
000,000,0,04,06,1,52,0,07,0,0,00,00,00,00,00,0,76,1,1,1,03,02,00,2121,00,7,00,0,0,0,1103|3715|IDIVX:  [AC-OP]_[AC-OP+1],                      ;Put argument in right place
                                                                             |1103|3716|         IF CT [IN] THEN [IDIVXN]
000,000,0,04,10,1,00,0,50,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2124,00,7,00,0,0,0,1104|3717|        ZERO_[AC-OP],GOTO [DIVX0]               ;Extend sign
000,000,0,04,00,1,00,0,50,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2124,00,7,00,0,0,0,1105|3718|IDIVXN: ONES_[AC-OP],GOTO [DIVX0]               ;Extend sign
                                                                             |1105|3719|
                                                                             |1105|3720|;Here for DIVx
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,01,0000,00,7,00,0,0,0,1106|3721|DIVX:   SEL AC+[1]                              ;Address low order portion
                                                                             |1106|3722|        RAMFILE_[AC-OP+1]
000,000,0,04,06,1,56,0,10,0,0,00,00,00,00,00,0,20,1,0,1,01,01,00,2126,00,7,00,0,0,0,1108|3723|DIVX0:  [MEM-OP]_[W3],IX_MX,                    ;Copy divisor
                                                                             |1108|3724|         CALL [DIVSUB]
                                                                             |1108|3725|        DISPATCH [OPERAND STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,00,0,0,0,1109|3726|
                                                                             |1109|3727|;Subroutine to do a divide
                                                                             |1109|3728|; Call with dividend in AC-OP, AC-OP+1, divisor in MEM-OP_W3,IX_MX
000,000,0,04,06,1,52,0,04,0,0,00,00,00,00,00,0,56,1,0,1,03,03,00,2130,00,7,00,0,0,0,1110|3729|DIVSUB: [AC-OP]_[W2],                           ;Copy highorder dividend
                                                                             |1110|3730|        IF NOT CT [MN IX_MX] THEN [DIVX02]
000,000,0,04,07,1,12,0,10,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1111|3731|        NEGATE [W3]_F,F_[W3]                    ;Make magnitude of divisor
000,000,0,06,03,0,07,0,07,0,0,00,00,00,00,00,0,56,1,1,0,03,03,00,2133,00,7,00,0,0,0,1112|3732|DIVX02: [AC-OP+1]+[AC-OP+1]_F,F_Q,              ;Put loworder dividend in Q
                                                                             |1112|3733|         IF NOT CT [MN] THEN [DIVX04]
                                                                             |1112|3734|;Following 2 ins for KL10 compatible divide
000,000,0,14,05,1,00,0,00,0,1,00,00,00,00,00,0,20,0,1,0,16,00,00,0000,00,7,00,0,0,0,1113|3735|        NEGATE Q_F,IX_UX                        ;Latch carry out of loworder
000,000,0,04,07,1,06,0,04,0,3,00,00,00,00,00,0,00,1,1,1,16,00,00,0000,00,7,00,0,0,0,1114|3736|        [W2]BAR+C_F,UC_C,F_[W2]
                                                                             |1114|3737|;Following for non KL10 compatible
                                                                             |1114|3738|        ;[W2]BAR+C_F,#0_CO,F_[W2]
000,000,0,14,02,0,06,0,10,0,1,00,00,00,00,00,0,76,1,1,0,03,03,00,2157,00,7,00,0,0,0,1115|3739|DIVX04: [W2]-[W3]_F,
                                                                             |1115|3740|        IF NOT CT [IN] THEN [SET NO DIVIDE]
000,000,0,02,06,1,52,0,50,0,0,00,00,25,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1116|3741|        [AC-OP]_F,ASRC_B,B SEL/AC-OP,
                                                                             |1116|3742|         MN_SION SIO0_QION
                                                                             |1116|3743|.IF/FAST
000,500,1,14,10,0,56,0,50,0,0,00,00,75,00,00,0,20,1,1,1,14,00,00,0041,00,7,00,0,0,0,1117|3744|        R SEL/MEM-OP,S SEL[AC-OP],
                                                                             |1117|3745|         #0_CO,ALU SP FUN/DLN,ALU_Y/YES,
                                                                             |1117|3746|         SION_QIO0 QION_SIO0,J[33.]_CTR
                                                                             |1117|3747|        TCDIV [MEM-OP] [AC-OP]_B
000,600,1,14,10,0,56,0,50,0,2,00,00,75,00,00,0,20,1,1,1,11,00,00,2137,00,7,00,0,0,0,1119|3748|DIVX15: TCDIV [MEM-OP] [AC-OP]_B,
                                                                             |1119|3749|         LOOP [DIVX15]
                                                                             |1119|3750|.ENDIF/FAST
                                                                             |1119|3751|.IFNOT/FAST
                                                                             |1119|3752|        R SEL/MEM-OP,S SEL[AC-OP],
                                                                             |1119|3753|         #0_CO,ALU SP FUN/DLN,ALU_Y/YES,
                                                                             |1119|3754|         SION_QIO0 QION_SIO0,J[34.]_CTR
                                                                             |1119|3755|DIVX15: TCDIV [MEM-OP] [AC-OP]_B,
                                                                             |1119|3756|         LOOP [DIVX15]
                                                                             |1119|3757|.ENDIF/FAST
                                                                             |1119|3758|        TCDIV COR [MEM-OP] [AC-OP]_B
000,000,0,04,06,1,52,0,13,0,0,00,00,00,00,00,0,56,0,1,1,03,02,00,2146,00,7,00,0,0,0,1121|3759|        [AC-OP]_[MEM-OP+1],                     ;Latch remainder sign
                                                                             |1121|3760|         IF CT [MN IX_UX] THEN [DIVX40]         ; Branch if dividend negative
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,36,1,0,1,03,03,00,2156,00,7,00,0,0,0,1122|3761|        [MEM-OP]_Y,                             ;Latch sign of divisor
                                                                             |1122|3762|        IF NOT CT [UN IX_MX] THEN [DIVX90]      ;Positive remainder = OK
                                                                             |1122|3763|        IF CT [MN] THEN [DIVXR]
000,000,0,04,03,0,56,0,13,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1124|3764|DIVXQ:  [MEM-OP]+[MEM-OP+1]_B                   ;Add divisor to remainoer
000,000,0,04,03,1,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1125|3765|DIVXQ1: Q+[K -1]_[MEM-OP],                      ;Adjust quotient and store
                                                                             |1125|3766|         RETURN
                                                                             |1125|3767|
                                                                             |1125|3768|;Here because dividend was negative
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,24,1,0,1,03,02,00,2156,00,7,00,0,0,0,1126|3769|DIVX40: [MEM-OP]_Y,                             ;Latch sign of divisor
                                                                             |1126|3770|        IF CT [UZ IX_MX] THEN [DIVX90]          ;Remainder=O OK
000,000,0,14,03,0,13,0,10,0,0,00,00,00,00,00,0,36,0,1,1,03,02,00,2153,00,7,00,0,0,0,1127|3771|        [MEM-OP+1]+[W3]_Y,                      ;Remainder vs divisor magnitude
                                                                             |1127|3772|         IF CT [UN IX_UX] THEN [DIVX46]         ;R=negative, check quotient
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,56,1,1,0,03,02,00,2144,00,7,00,0,0,0,1128|3773|DIVX42: IF CT [MN] THEN [DIVXQ]                 ;Branch if divisor was negative
000,000,0,04,01,0,56,0,13,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1129|3774|DIVXR:  [MEM-OP+1]-[MEM-OP]_A                   ;Subtract divisor from remainder
000,000,0,04,06,1,00,0,54,0,1,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1130|3775|        Q+1_F,F_[MEM-OP],                       ;Adjust quotient and store
                                                                             |1130|3776|         RETURN
                                                                             |1130|3777|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,24,1,1,0,03,03,00,2156,00,7,00,0,0,0,1131|3778|DIVX46: IF NOT CT [UZ] THEN [DIVX90]
                                                                             |1131|3779|        IF CT [MN] THEN [DIVXR]                 ;Branch if divisor was negative
000,000,0,04,03,0,56,0,13,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2145,00,7,00,0,0,0,1133|3780|        [MEM-OP]+[MEM-OP+1]_B,
                                                                             |1133|3781|         GOTO [DIVXQ1]
                                                                             |1133|3782|
000,000,0,04,14,1,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1134|3783|DIVX90: Q_[MEM-OP],                             ;Save quotient
                                                                             |1134|3784|         RETURN
                                                                             |1134|3785|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,1135|3786|SET NO DIVIDE:
                                                                             |1135|3787|        J[040]_[W1]                             ;Will become no divide
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4153,00,7,07,0,0,0,1136|3788|        SWAP [W1]_[W1],
                                                                             |1136|3789|        CALL [W1!PCF]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,01,01,00,4143,00,7,00,0,0,0,1137|3790|SET OV!T1 TRAP:
                                                                             |1137|3791|        CALL [SET OV!T1],SET LOCAL              ;Set overflow and trap1
                                                                             |1137|3792|        GOTOP [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4130,00,7,00,0,0,0,1138|3793|
                                                                             |1138|3794|.TOC 2, "Double Precision Fixed Point Instructions"
                                                                             |1138|3795|
                                                                             |1138|3796|;Here for DADD
000,000,1,11,06,1,07,0,07,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,2171,00,7,00,0,0,0,1139|3797|DADD:   #2*[AC-OP+1]_[AC-OP+1],                  ;Adjust low order AC operand
                                                                             |1139|3798|        CALL [DADD4]                            ; and adjust low order mem operand
000,000,0,04,03,0,07,0,13,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1140|3799|        [AC-OP+1]+[MEM-OP+1]_B,                 ;Add low order parts
                                                                             |1140|3800|         IX_MX
000,000,0,04,03,0,52,0,54,0,0,00,00,00,00,00,0,52,1,0,1,16,00,00,0000,00,7,00,0,0,0,1141|3801|        [AC-OP]+[MEM-OP]+C_B,                   ;Add AC & MEM
                                                                             |1141|3802|         MC_C IX_MX
000,000,0,01,06,1,13,0,13,0,0,00,00,25,00,00,0,46,1,1,1,03,02,00,2077,00,7,00,0,0,0,1142|3803|DADD2:  ASR [MEM-OP+1]_[MEM-OP+1],              ;Put sign on low order portion
                                                                             |1142|3804|        IF CT [MOVR] THEN [ADDXOV]              ;No carry means done
                                                                             |1142|3805|        IF CT [NOT MC] D [OPERAND STORE]
000,000,0,04,17,0,63,0,03,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1144|3806|        [C0!C1].OR.[PC FLAGS]_B,
                                                                             |1144|3807|         DISPATCH [OPERAND STORE]
                                                                             |1144|3808|
000,000,1,11,06,1,13,0,13,0,0,00,00,11,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1145|3809|DADD4:  #2*[MEM-OP+1]_[MEM-OP+1],                ;Adjust low order mem operand
                                                                             |1145|3810|         RETURN
                                                                             |1145|3811|
                                                                             |1145|3812|;Here for DSUB
000,000,1,11,06,1,07,0,07,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,2171,00,7,00,0,0,0,1146|3813|DSUB:   #2*[AC-OP+1]_[AC-OP+1],                  ;Adjust low order AC operand
                                                                             |1146|3814|         CALL [DADD4]                           ; and adjust low order mem operand
000,000,0,04,02,0,07,0,13,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1147|3815|        [AC-OP+1]-[MEM-OP+1]_B,                 ;Subtract low order parts
                                                                             |1147|3816|         IX_MX
000,000,0,04,02,0,52,0,54,0,0,00,00,00,00,00,0,52,1,0,1,03,01,00,2166,00,7,00,0,0,0,1148|3817|        [AC-OP]-[MEM-OP]-1+C_F,F_B,             ;AC-MEM_MEM and then store
                                                                             |1148|3818|        MC_C IX_MX,
                                                                             |1148|3819|         GOTO [DADD2]
                                                                             |1148|3820|
                                                                             |1148|3821|;Here for DMUL
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,00,0,0,0,1149|3822|DMUL:   ;DISPATCH [OPERAND STORE]
                                                                             |1149|3823|
                                                                             |1149|3824|;Here for DDIV
                                                                             |1149|3825|DDIV:   DISPATCH [OPERAND STORE]
                                                                             |1149|3826|
                                                                             |1149|3827|.TOC 2, "Shift and Rotate Instructions"
                                                                             |1149|3828|
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,20,1,0,0,16,00,00,0000,00,7,00,0,0,0,1150|3829|ASHC SETUP:
                                                                             |1150|3830|        [MEM-OP]_F,IX_MX                        ;Latch MN
000,000,0,06,03,0,13,0,13,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2201,00,7,00,0,0,0,1151|3831|        #2*[MEM-OP+1]_Q,                         ;Load Q with low order portion
                                                                             |1151|3832|         GOTO [ASH SETUP]
                                                                             |1151|3833|
000,000,0,06,06,1,13,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2201,00,7,00,0,0,0,1152|3834|LSHC SETUP:
                                                                             |1152|3835|        [MEM-OP+1]_Q,                           ;Load Q with low order portion
                                                                             |1152|3836|        GOTO [ASH SETUP]
                                                                             |1152|3837|
                                                                             |1152|3838|;Here for ASH, etc. setup
000,000,0,04,10,1,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,16,00,00,0377,00,7,01,0,0,0,1153|3839|ASH SETUP:
                                                                             |1153|3840|        J[0377]_[W1],SET LOCAL                   ;Generate mask for extraneous bits
000,000,0,04,14,0,02,0,40,0,0,00,00,00,00,00,0,20,0,1,1,03,56,00,2206,00,7,00,0,0,0,1154|3841|        [W1]&[E]_B,IX_UX,                       ;Strip extraneous bits
                                                                             |1154|3842|         IF [B BIT 18] THEN [ASHR SETUP]
000,000,0,04,03,0,77,0,40,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,01,0,0,0,1155|3843|        [K -1]+[E]_B,ALU_CTR                    ;Load counter
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,24,1,1,0,06,03,00,0000,12,7,00,0,0,0,1156|3844|        SEL AC+[0],
                                                                             |1156|3845|         IF NOT CT [UZ] D [DISPATCH 3]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1157|3846|        SET LOCAL,GOTOP [IFETCH]
                                                                             |1157|3847|
000,000,0,04,02,0,02,0,40,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,01,0,0,0,1158|3848|ASHR SETUP:
                                                                             |1158|3849|        [W1]-[E]_B,ALU_CTR                      ;Load counter
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,13,7,00,0,0,0,1159|3850|        SEL AC+[0],
                                                                             |1159|3851|        DISPATCH [DISPATCH 4]
                                                                             |1159|3852|
                                                                             |1159|3853|;Here for ASH
000,000,0,04,03,0,56,0,54,0,0,00,00,00,00,00,0,06,0,1,1,11,00,00,2210,00,7,00,0,0,0,1160|3854|ASH:    [MEM-OP]+[MEM-OP]_B,                    ;Shift left
                                                                             |1160|3855|         IX!UOVR_UX,LOOP [ASH]                  ; Latch overflow if any
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,26,1,1,1,13,03,00,1420,00,7,04,0,0,0,1161|3856|        [MEM-OP]_RAMFILE,SET LOCAL,             ;Write AC
                                                                             |1161|3857|         IF NOT CT [UOVR] THENP [IFETCH]
000,000,0,04,03,0,56,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4143,00,7,00,0,0,0,1162|3858|        [MEM-OP]+[MEM-OP]_B,                    ;Shift off sign
                                                                             |1162|3859|         CALL [SET OV!T1]
000,000,0,01,04,0,00,0,54,0,0,00,00,25,00,00,0,20,1,1,1,13,01,00,4130,00,7,04,0,0,0,1163|3860|        B[MEM-OP]_F,MN_SION SIO0_QION,
                                                                             |1163|3861|        LRS F_B,ALU_RAMFILE,
                                                                             |1163|3862|         GOTOP [TRAP]
                                                                             |1163|3863|
000,000,0,01,06,1,56,0,54,0,0,00,00,25,00,00,0,20,1,1,1,11,00,00,2214,00,7,00,0,0,0,1164|3864|ASHR:   ASR [MEM-OP]_[MEM-OP],                  ;Shift right
                                                                             |1164|3865|         LOOP [ASHR]
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1165|3866|        [MEM-OP]_RAMFILE,                       ;Write AC
                                                                             |1165|3867|         SET LOCAL,
                                                                             |1165|3868|         GOTOP [IFETCH]
                                                                             |1165|3869|
                                                                             |1165|3870|;Here for ASHC
000,000,0,02,06,1,56,0,54,0,0,00,00,25,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1166|3871|ASHC:   ASRC [MEM-OP]_[MEM-OP]                  ;Shift right once
000,500,1,14,10,0,56,0,54,0,0,00,00,31,00,00,0,06,0,1,1,11,00,00,2217,00,7,00,0,0,0,1167|3872|ASCH1:  R SEL/MEM-OP,S SEL[MEM-OP],             ;Shift left & latch overflow
                                                                             |1167|3873|         IX!UOVR_UX,
                                                                             |1167|3874|         #0_CO,ALU SP FUN/DLN,ALU_Y/YES,
                                                                             |1167|3875|        QION_SIO0 #0_QIO0,LOOP [ASCH1]
                                                                             |1167|3876|        LLSC [MEM-OP]_[MEM-OP]                  ;Shift left
000,000,1,13,06,1,56,0,54,0,0,00,00,31,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1168|3877|        LLSC [MEM-OP]_[MEM-OP]                  ;Shift left
000,000,0,03,04,0,00,0,54,0,0,00,00,25,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1170|3878|        MN_SION SIO0_QION,LSRC_B,               ;Shift right adding sign
                                                                             |1170|3879|         B[MEM-OP]_F,ALU_RAMFILE                ; Save AC
                                                                             |1170|3880|        SEL AC+[1]                              ;Address AC+1
000,000,0,01,14,1,77,0,13,0,0,00,00,25,00,00,0,26,1,1,1,03,03,00,1420,00,7,04,0,0,0,1172|3881|        Q_F,LRS F_B,MN_SION SIO0_QION,
                                                                             |1172|3882|         B SEL/MEM-OP+1,ALU_RAMFILE,
                                                                             |1172|3883|         IF NOT CT [UOVR] THEN [IFETCH]
                                                                             |1172|3884|        GOTOP [SET OV!T1 TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,2161,00,7,00,0,0,0,1173|3885|
                                                                             |1173|3886|;Here for an ASH shifting right
                                                                             |1173|3887|
000,000,0,02,06,1,56,0,54,0,0,00,00,25,00,00,0,20,1,1,1,11,00,00,2226,00,7,00,0,0,0,1174|3888|ASHCR:  ASRC [MEM-OP]_[MEM-OP],                 ;Shift right
                                                                             |1174|3889|         LOOP [ASHCR]
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,27,0,20,1,1,1,16,00,01,0000,00,7,04,0,0,0,1175|3890|        [MEM-OP]_Y,ALU_RAMFILE,
                                                                             |1175|3891|         SEL AC+[1]
000,000,0,01,14,1,77,0,13,0,0,00,00,25,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1176|3892|        Q_F,LRS F_B,MN_SION SIO0_QION,
                                                                             |1176|3893|         B SEL/MEM-OP+1,
                                                                             |1176|3894|         ALU_RAMFILE,
                                                                             |1176|3895|         GOTOP [IFETCH]
                                                                             |1176|3896|
                                                                             |1176|3897|;Here for LSH
000,000,1,11,06,1,56,0,54,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,2231,00,7,00,0,0,0,1177|3898|LSH:    #2*[MEM-OP]_[MEM-OP],
                                                                             |1177|3899|         LOOP [LSH]
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1178|3900|        [MEM-OP]_RAMFILE,                       ;Write AC
                                                                             |1178|3901|         SET LOCAL,
                                                                             |1178|3902|         GOTOP [IFETCH]
                                                                             |1178|3903|
000,000,0,01,06,1,56,0,54,0,0,00,00,01,00,00,0,20,1,1,1,11,00,00,2233,00,7,00,0,0,0,1179|3904|LSHR:   LRS [MEM-OP]_[MEM-OP],                  ;Shift right
                                                                             |1179|3905|         LOOP [LSHR]
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1180|3906|        [MEM-OP]_RAMFILE,                       ;Write AC
                                                                             |1180|3907|         SET LOCAL,
                                                                             |1180|3908|         GOTOP [IFETCH]
                                                                             |1180|3909|
                                                                             |1180|3910|;Here for LSHC
000,000,1,13,06,1,56,0,54,0,0,00,00,31,00,00,0,20,1,1,1,11,00,00,2235,00,7,00,0,0,0,1181|3911|LSHC:   LLSC [MEM-OP]_[MEM-OP],                 ;Shift left with Q
                                                                             |1181|3912|        LOOP [LSHC]
000,000,0,04,14,1,77,0,13,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4340,00,7,00,0,0,0,1182|3913|        Q_[MEM-OP+1],
                                                                             |1182|3914|         GOTO [D TO AC.0]
000,000,0,03,06,1,56,0,54,0,0,00,00,31,00,00,0,20,1,1,1,11,00,00,2237,00,7,00,0,0,0,1183|3915|LSHCR:  LSRC [MEM-OP]_[MEM-OP],                 ;Shift right with Q
                                                                             |1183|3916|         LOOP [LSHCR]
000,000,0,04,14,1,77,0,13,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4340,00,7,00,0,0,0,1184|3917|        Q_[MEM-OP+1],
                                                                             |1184|3918|         GOTO [D TO AC.0]
                                                                             |1184|3919|
                                                                             |1184|3920|;Here for ROT
000,000,1,11,06,1,56,0,54,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,2241,00,7,00,0,0,0,1185|3921|ROT:    ROL [MEM-OP]_[MEM-OP],
                                                                             |1185|3922|         LOOP [ROT]
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1186|3923|        [MEM-OP]_RAMFILE,                       ;Write AC
                                                                             |1186|3924|         SET LOCAL,
                                                                             |1186|3925|         GOTOP [IFETCH]
                                                                             |1186|3926|
000,000,0,01,06,1,56,0,54,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,2243,00,7,00,0,0,0,1187|3927|ROTR:   ROR [MEM-OP]_[MEM-OP],
                                                                             |1187|3928|         LOOP [ROTR]
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1188|3929|        [MEM-OP]_RAMFILE,                       ;Write AC
                                                                             |1188|3930|         SET LOCAL,
                                                                             |1188|3931|        GOTOP [IFETCH]
                                                                             |1188|3932|
                                                                             |1188|3933|;Here for ROTC
000,000,1,13,06,1,56,0,54,0,0,00,00,75,00,00,0,20,1,1,1,11,00,00,2245,00,7,00,0,0,0,1189|3934|ROTC:   ROLC [MEM-OP]_[MEM-OP],                 ;Rotate left
                                                                             |1189|3935|         LOOP [ROTC]
000,000,0,04,14,1,77,0,13,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4340,00,7,00,0,0,0,1190|3936|        Q_[MEM-OP+1],
                                                                             |1190|3937|         GOTO [D TO AC.0]
000,000,0,03,06,1,56,0,54,0,0,00,00,75,00,00,0,20,1,1,1,11,00,00,2247,00,7,00,0,0,0,1191|3938|ROTCR:  RORC [MEM-OP]_[MEM-OP],                 ;Rotate right
                                                                             |1191|3939|         LOOP [ROTCR]
000,000,0,04,14,1,77,0,13,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4340,00,7,00,0,0,0,1192|3940|        Q_[MEM-OP+1],
                                                                             |1192|3941|         GOTO [D TO AC.0]
                                                                             |1192|3942|
                                                                             |1192|3943|;Register usage:
                                                                             |1192|3944|;       MEM-OP AC contents
                                                                             |1192|3945|;       AC-OP BLT 1imi t
                                                                             |1192|3946|;Here for BLT
000,000,0,04,14,0,67,0,40,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1193|3947|BLT:    [K 7777.-1]&[E]_B                       ;Mask E to 30 bits
000,000,0,04,06,1,42,0,50,0,0,00,00,00,00,00,0,20,1,1,1,03,46,00,2264,00,7,00,0,0,0,1194|3948|        [E]_[AC-OP],                            ;Copy final adr
                                                                             |1194|3949|         IF [PXCT] THEN [BLT PXCT]
                                                                             |1194|3950|.IF/FAST
                                                                             |1194|3951|        SWAP [MEM-OP]_[E RH]                    ;Make first address to read
000,000,0,04,10,0,56,2,42,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1195|3952|        [E]_[W1]                                ;Copy section number
000,000,0,04,06,1,42,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1196|3953|        [MEM-OP]_[W1 RH]                        ;Make destination adr
000,000,0,14,02,0,02,0,40,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,2271,00,7,00,0,0,0,1198|3954|        [W1]-[E]-1_F,F_Y,                       ; Check for "Clear core" case
                                                                             |1198|3955|         IF CT [IZ] THEN [BLT+1]
                                                                             |1198|3956|.ENDIF/FAST
000,000,0,04,10,0,56,2,42,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4662,00,7,07,0,0,0,1199|3957|BLT 2:  SWAP [MEM-OP]_[E RH],                   ;Make adr of location to read
                                                                             |1199|3958|         CALL [MEM READ 0]                      ;Get word to transfer
000,000,0,04,06,1,56,0,42,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1200|3959|        [MEM-OP]_[E RH],                        ;Make destination adr
                                                                             |1200|3960|         CALL [MEMORY WRITE]
000,000,0,14,02,0,42,0,50,0,0,00,00,00,00,27,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1201|3961|        [E]-[AC-OP]_Y,SEL AC+[0],IX_MX
000,000,0,04,03,0,57,0,54,0,1,00,00,00,00,00,0,56,1,1,1,03,03,00,4127,00,7,00,0,0,0,1202|3962|        [BIT17]+[MEM-OP]+1_F,F_B,               ;Increment pointer
                                                                             |1202|3963|         IF NOT CT [MN] THEN [TO NOWHERE]
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2257,00,7,04,0,0,0,1203|3964|        [MEM-OP]_Y,ALU_RAMFILE,                 ;Remember how far we got
                                                                             |1203|3965|         GOTO [BLT 2]
                                                                             |1203|3966|
000,000,0,04,10,0,56,2,42,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2417,00,7,07,0,0,0,1204|3967|BLT PXCT:
                                                                             |1204|3968|        SWAP [MEM-OP]_[E RH],                   ;Make adr of loc to read
                                                                             |1204|3969|         CALL [PXCT FETCH 40]
000,000,0,04,06,1,56,0,42,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,2413,00,7,00,0,0,0,1205|3970|        [MEM-OP]_[E RH],                        ;Make destination adr
                                                                             |1205|3971|         CALL [PXCT STORE 200]                  ; Copy data
000,000,0,14,02,0,42,0,50,0,0,00,00,00,00,27,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1206|3972|        [E]-[AC-OP]_Y,SEL AC+[0],IX_MX
000,000,0,04,03,0,57,0,54,0,1,00,00,00,00,00,0,56,1,1,1,03,03,00,4127,00,7,00,0,0,0,1207|3973|        [BIT17]+[MEM-OP]+1_F,F_B,               ;Increment pointer
                                                                             |1207|3974|         IF NOT CT [MN] THEN [TO NOWHERE]
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2257,00,7,04,0,0,0,1208|3975|        [MEM-OP]_Y,ALU_RAMFILE,                 ;Remember how far we got
                                                                             |1208|3976|         GOTO [BLT 2]
                                                                             |1208|3977|
                                                                             |1208|3978|.IF/FAST
                                                                             |1208|3979|;Here for BLT [#,#+1]
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1209|3980|BLT+1:  READ [E] ;Fetch first word in block
000,000,0,04,06,1,56,0,42,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1210|3981|        [MEM-OP]_[E RH],                        ;Write next word
                                                                             |1210|3982|         CALL [MEMORY WRITE]
                                                                             |1210|3983|        GOTO [BLT 14]
000,000,0,04,03,0,57,0,54,0,1,00,00,00,00,00,0,20,1,1,1,01,21,00,4154,00,7,04,0,0,0,1212|3984|BLT+1N: [BIT17]+[MEM-OP]+1_F,F_B,
                                                                             |1212|3985|         ALU_RAMFILE,
                                                                             |1212|3986|         CHECK INTERRUPTS
000,000,0,07,06,1,42,0,40,0,1,00,00,00,00,77,0,20,1,1,1,01,01,00,4712,00,7,00,0,0,0,1213|3987|        [E]+1_F,F_Q_[E],
                                                                             |1213|3988|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1213|3989|        CALL [MEM WRITE 1]
000,000,0,14,02,0,52,0,40,0,0,00,00,00,00,27,0,76,1,1,1,06,03,00,0000,12,7,00,0,0,0,1214|3990|BLT 14: [AC-OP]-[E]-1_F,F_Y,
                                                                             |1214|3991|         SEL AC+[0],
                                                                             |1214|3992|        IF NOT CT [IN] D [DISPATCH 3]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,03,01,00,1420,00,7,00,0,0,0,1215|3993|        SET LOCAL,GOTO [IFETCH]
                                                                             |1215|3994|.ENDIF/FAST
                                                                             |1215|3995|
                                                                             |1215|3996|.TOC 2, "Program Control Instructions"
                                                                             |1215|3997|;Here for AOBJX instructions
000,000,0,04,06,1,56,0,56,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1216|3998|AOBJX:  [MEM-OP]+1_[MEM-OP RH]                  ; Increment RH of AC
000,000,0,04,03,0,57,0,54,0,0,00,00,00,00,00,0,20,1,0,1,06,01,00,0000,12,7,00,0,0,0,1217|3999|        [BIT17]+[MEM-OP]_B,IX_MX,               ; Increment LH
                                                                             |1217|4000|         DISPATCH [DISPATCH 3]
                                                                             |1217|4001|
                                                                             |1217|4002|;Here for JRST
000,000,1,11,06,1,32,0,00,0,0,00,00,11,00,00,0,20,1,1,1,03,06,00,2647,00,7,00,0,0,0,1218|4003|JRST:   #2*[IR]_[W1],
                                                                             |1218|4004|         IF [AC.EQ.0] THEN [JXA]
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,3067,00,7,00,0,0,0,1219|4005|        #4*[W1]_B,                               ;Keep shifting
                                                                             |1219|4006|         CALL [#2*W1_W1 LOAD IR]
000,000,0,04,14,0,67,0,34,0,0,00,00,00,00,77,0,20,1,1,1,06,01,00,0000,17,7,00,0,0,0,1220|4007|        [K 7777.-1]&[PC]_B,                     ;Reduce PC to 30 bits
                                                                             |1220|4008|         SECTION SELECT,                        ;load SECTION 0 from PC
                                                                             |1220|4009|         DISPATCH [MISC]
                                                                             |1220|4010|
                                                                             |1220|4011|;Jump and restore flags from bits 0-12 of the final indirect or index word
                                                                             |1220|4012|; JRST 2,
000,000,0,04,06,1,32,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,1447,00,7,00,0,0,0,1221|4013|JRSTF:
                                                                             |1221|4014|.IF/SILLY
                                                                             |1221|4015|        [IR]_[MB],                              ;Reseed  MB
                                                                             |1221|4016|        CALL [EFA CALC]
                                                                             |1221|4017|.ENDIF/SILLY
                                                                             |1221|4018|        IF [NOT SECTION 0] THEN [MUUO]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,26,00,1637,00,7,00,0,0,0,1222|4019|        [E]_[PC RH]                             ;New PC
000,000,0,01,06,1,47,0,00,0,0,00,00,01,00,00,0,20,1,1,1,03,37,00,2315,00,7,00,0,0,0,1224|4020|JRSTFX: LRS [BIT4]_[W1],                        ;Make a user mode bit
                                                                             |1224|4021|         IF [EXEC] THEN [MB_PC FLAGS]
                                                                             |1224|4022|        [W1].OR.[MB]_B                          ;Will still be user mode
000,000,0,04,17,0,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1225|4023|        LRS [W1]_[W2]                           ;Make a user I/O bit
000,000,0,01,06,1,02,0,04,0,0,00,00,01,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1226|4024|        [PC FLAGS]BAR&[W2]_B                    ;Make mask for user I/O
000,000,0,04,11,0,03,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1227|4025|        [W2]BAR&[MB]_B                          ;Prohibit new user I/O
000,000,0,06,03,0,46,0,44,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0027,00,7,01,0,0,0,1229|4026|MB_PC FLAGS:
                                                                             |1229|4027|        [MB]+[MB]_Q,                            ;Make user into bit4
                                                                             |1229|4028|        J[#23B MASK]_RAMFILE ADR
000,000,0,14,14,1,47,0,00,0,0,00,20,00,00,00,0,20,1,0,1,01,45,00,2332,00,7,00,0,0,0,1230|4029|        Q&[BIT4]_Y,IX_MX,SET EXEC,              ;Latch new exec as MZ
                                                                             |1230|4030|        IF [TOPS10] CALL [ZERO_PC LH]           ;Size PC for TOPS10
000,000,0,07,06,1,46,0,04,0,0,00,00,00,00,00,0,44,1,1,0,01,03,00,2322,00,7,04,0,0,0,1231|4031|        [MB]_Q RAMFILE_[W2],                    ;Get mask for allowable flags to set
                                                                             |1231|4032|        IF NOT CT [MZ] CALL [SET USER LATCH]
000,000,0,04,11,1,06,0,03,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1232|4033|        [W2]BAR&Q_F,F_[PC FLAGS]                ;Set new flags
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,01,00,4130,00,7,00,0,0,0,1233|4034|        SET LOCAL,
                                                                             |1233|4035|         GOTOP [TRAP]
                                                                             |1233|4036|
000,000,0,14,10,0,00,0,00,0,0,00,24,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,1234|4037|SET USER LATCH:
                                                                             |1234|4038|        SET USER,RETURN
                                                                             |1234|4039|
                                                                             |1234|4040|;JRST 4,
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,36,00,3072,00,7,00,0,0,0,1235|4041|HALT:   IF [USER] CALL [CHECK IO OK]            ;Check if this is legal
                                                                             |1235|4042|        J[HALT INS]_[W1]                        ;Code fer JRST 4,
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1166,00,7,00,0,0,0,1237|4043|        [E]_[PC],                               ;Set new PC from E
                                                                             |1237|4044|         GOTOP [SET HALT CODE]
                                                                             |1237|4045|
                                                                             |1237|4046|;Here for a JRST 5,
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1238|4047|XJRSTF:
                                                                             |1238|4048|        READ [E]                                ;Get new flag word
000,000,0,04,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4660,00,7,00,0,0,0,1239|4049|        [MB]_[MEM-OP],                          ;Save flag word
                                                                             |1239|4050|         CALL [READ NEXT]                       ; Get new PC
000,000,0,04,06,1,46,0,34,0,0,00,00,00,00,00,0,20,1,1,1,01,45,00,2332,00,7,00,0,0,0,1240|4051|        [MB]_[PC],                              ;Set new PC
                                                                             |1240|4052|         IF [TOPS10] CALL [ZERO_PC LH]
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,2310,00,7,00,0,0,0,1241|4053|        [MEM-OP]_[MB],
                                                                             |1241|4054|         GOTOP [JRSTFX]
                                                                             |1241|4055|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,41,00,0000,00,7,00,0,0,0,1242|4056|ZERO_PC LH:
                                                                             |1242|4057|        IF [NOT PAGED] RETURN                   ;If not paged do not do
000,000,0,04,10,1,00,0,35,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1243|4058|        ZERO_[PC LH],RETURN                     ;Be sure only 18 bits
                                                                             |1243|4059|
                                                                             |1243|4060|;JRST 6,
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1244|4061|XJEN:   READ [E]                                ;Get new flag word
000,000,0,04,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4660,00,7,00,0,0,0,1245|4062|        [MB]_[MEM-OP],                          ;Save flag word
                                                                             |1245|4063|         CALL [READ NEXT]                       ; Get new PC
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2354,00,7,00,0,0,0,1246|4064|XJNO:   CALL [DISMISS INT]                      ;Dismiss interrupt
                                                                             |1246|4065|                                                ; If not legal do an MUUO
000,000,0,04,06,1,46,0,34,0,0,00,00,00,00,00,0,20,1,1,1,01,45,00,2332,00,7,00,0,0,0,1247|4066|        [MB]_[PC],                              ;Set new PC
                                                                             |1247|4067|         IF [TOPS10] CALL [ZERO_PC LH]
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2315,00,7,00,0,0,0,1248|4068|        [MEM-OP]_[MB],
                                                                             |1248|4069|         GOTO [MB_PC FLAGS]
                                                                             |1248|4070|
                                                                             |1248|4071|;JRST 7,
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,36,00,3072,00,7,00,0,0,0,1249|4072|XPCW:   IF [USER] CALL [CHECK IO OK]            ;Be sure legal
000,000,0,04,06,1,03,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1250|4073|        [PC FLAGS]_[MB],                        ;Save flags
                                                                             |1250|4074|         CALL [MEMORY WRITE]
000,000,0,04,06,1,36,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4710,00,7,00,0,0,0,1251|4075|        [PC]_[MB],
                                                                             |1251|4076|         CALL [WRITE NEXT]
                                                                             |1251|4077|        CALL [READ NEXT]                        ;Get new flags
000,000,0,04,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4660,00,7,00,0,0,0,1253|4078|        [MB]_[MEM-OP],                          ;Save new flags
                                                                             |1253|4079|         CALL [READ NEXT]                       ; Get new PC
000,000,0,04,06,1,46,0,34,0,0,00,00,00,00,00,0,20,1,1,1,01,45,00,2332,00,7,00,0,0,0,1254|4080|        [MB]_[PC],                              ;Set new PC
                                                                             |1254|4081|         IF [TOPS10] CALL [ZERO_PC LH]
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2315,00,7,00,0,0,0,1255|4082|        [MEM-OP]_[MB],
                                                                             |1255|4083|         GOTO [MB_PC FLAGS]
                                                                             |1255|4084|
                                                                             |1255|4085|;JRST 10,
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2354,00,7,00,0,0,0,1256|4086|JRST 10:
                                                                             |1256|4087|        CALL [DISMISS INT]
000,000,0,04,06,1,42,0,34,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,1257|4088|        [E]_[PC],
                                                                             |1257|4089|         SET LOCAL,
                                                                             |1257|4090|         GOTOP [IFETCH]
                                                                             |1257|4091|
                                                                             |1257|4092|;JRST 12,
000,000,0,04,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,26,00,1637,00,7,00,0,0,0,1258|4093|JEN:    [MB]_[MEM-OP],                          ;Save new flags
                                                                             |1258|4094|        IF [NOT SECTION 0] THEN [MUUO]          ;Not legal in section 0
000,000,0,04,06,1,42,0,44,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,2336,00,7,00,0,0,0,1259|4095|        [E]_[MB],                               ;Save new PC
                                                                             |1259|4096|         GOTOP [XJNO]
                                                                             |1259|4097|
                                                                             |1259|4098|;Here to dismiss an interrupt
                                                                             |1259|4099|; If IO not legal will do an MUUO
                                                                             |1259|4100|; uses Q, W1, W2, updates RF(PI IN PROG) and PI REG
                                                                             |1259|4101|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0557,00,7,01,0,0,0,1260|4102|DISMISS INT:
                                                                             |1260|4103|        J[PI IN PROG]_RAMFILE ADR               ;Address of PIs in progress
                                                                             |1260|4104|        J[0100]_[W2]                            ;Mask for highest PI
000,000,0,07,06,1,06,0,04,0,0,00,00,00,00,00,0,20,1,0,0,01,36,00,3072,00,7,04,0,0,0,1262|4105|        [W2]_Q RAMFILE_[W2],IX_MX,              ;Put mask in Q, Pis in W2
                                                                             |1262|4106|         IF [USER] CALL [CHECK IO OK]           ;Be sure IO is legal
                                                                             |1262|4107|        IF CT [MZ] RETURN                       ;Check if any PIs in progress
000,000,0,05,14,1,06,0,00,0,0,00,00,51,00,00,0,64,1,1,1,03,02,00,2360,00,7,00,0,0,0,1264|4108|JEN2:   Q&[W2]_F,F_Y RORQ_Q,
                                                                             |1264|4109|        IF CT [IZ] THEN [JEN2]
000,000,1,11,14,1,77,0,00,0,0,00,00,51,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1265|4110|        Q_F,ROL F_B,B SEL/W1                    ;Make mask for level
000,000,0,04,11,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,2364,00,7,04,0,0,0,1266|4111|        [W1]BAR&[W2]_B,ALU_RAMFILE,             ;One less PI in progress
                                                                             |1266|4112|         IF NOT CT [IZ] THEN [JEN3]
000,000,0,04,10,1,00,0,43,0,0,00,00,00,46,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1267|4113|        ZERO_[PI REG],Y_2914 STATUS,
                                                                             |1267|4114|         RETURN
                                                                             |1267|4115|
000,000,0,05,14,1,06,0,00,0,0,00,00,51,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1268|4116|JEN3:   Q&[W2]_F,F_Y RORQ_Q,IX_MX
000,000,0,04,03,0,77,0,43,0,0,00,00,00,46,00,0,44,1,1,1,03,02,00,2364,00,7,00,0,0,0,1269|4117|        [K -1]+[PI REG]_B,
                                                                             |1269|4118|        Y_2914 STATUS,
                                                                             |1269|4119|         IF CT [MZ] THEN [JEN3]
                                                                             |1269|4120|        RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,1270|4121|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,26,00,2371,00,7,00,0,0,0,1271|4122|SFM:    IF [NOT SECTION 0] THEN [SFM 2]         ;Legal in nonzero sections
                                                                             |1271|4123|         IF [USER] CALL [CHECK IO OK]           ;Or if IO is 1egal
000,000,0,04,06,1,03,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4371,00,7,00,0,0,0,1273|4124|SFM 2:  [PC FLAGS]_[MEM-OP],                    ;Copy flags and then write them
                                                                             |1273|4125|         GOTO [TO MEM]
                                                                             |1273|4126|
                                                                             |1273|4127|;Here for JFFO
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,44,1,1,1,03,02,00,2376,00,7,00,0,0,0,1274|4128|JFFO:   ZERO_[W1],                              ;Count leading zeros here
                                                                             |1274|4129|         IF CT [MZ] THEN [JFFO X]
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,56,1,1,1,03,02,00,2376,00,7,00,0,0,0,1275|4130|        [E]_[PC],                               ;Take branch
                                                                             |1275|4131|         IF CT [MN] THEN [JFFO X]
000,000,0,04,03,0,56,0,54,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1276|4132|JFFO 1: [MEM-OP]+[MEM-OP]_B,IX_MX               ;Left shift word
000,000,0,04,06,1,02,0,00,0,1,00,00,00,00,00,0,56,1,1,1,03,03,00,2374,00,7,00,0,0,0,1277|4133|        [W1]+1_[W1],                            ;Count leading zeros
                                                                             |1277|4134|        IF NOT CT [MN] THEN [JFFO 1]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,01,0000,00,7,00,0,0,0,1278|4135|JFFO X: SEL AC+[1]                              ;Address AC+1
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1279|4136|        [W1]_RAMFILE,                           ;Clear AC+1
                                                                             |1279|4137|         GOTOP [IFETCH]
                                                                             |1279|4138|
                                                                             |1279|4139|;Here for JFCL
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,1280|4140|JFCL:   J[JFCL MASK]_RAMFILE ADR                ;Point to 037777 777777
000,000,1,11,06,1,32,0,00,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0003,00,7,00,0,0,0,1281|4141|        #2*[IR]_[W1],                            ;Copy IR and shift left once
                                                                             |1281|4142|         J[3]_CTR
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,2402,00,7,00,0,0,0,1282|4143|JFCL4:  #4*[W1]_B,LOOP [JFCL4]                   ;Shift copy of IR
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3134,00,7,04,0,0,0,1283|4144|        RAMFILE_[W2],                           ;Get mask for JFCL test bits
                                                                             |1283|4145|        CALL [W2BAR&W1_B]                       ; Leave only bits to test
000,000,0,14,14,0,02,0,03,0,0,00,14,00,00,00,0,64,1,1,1,13,02,00,1420,00,7,00,0,0,0,1284|4146|        [W1]&[PC FLAGS]_Y,                      ;Test flag bits
                                                                             |1284|4147|         SET LOCAL,
                                                                             |1284|4148|         IF CT [IZ] THENP [IFETCH]
000,000,0,04,11,0,02,0,03,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2647,00,7,00,0,0,0,1285|4149|        [W1]BAR&[PC FLAGS]_B,                   ;Clear flags
                                                                             |1285|4150|         GOTO [JXA]
                                                                             |1285|4151|
                                                                             |1285|4152|;Here for XCT
                                                                             |1285|4153|;       MEM-OP contains instruction to execute
000,000,0,06,14,0,76,0,30,0,0,00,00,00,00,00,0,20,1,1,0,03,36,00,1435,00,7,00,0,0,0,1286|4154|XCT:    [K -1.0]&[IR]_Q,                        ; In case this is PXCT
                                                                             |1286|4155|         IF [USER] THEN [IFETCH 4]
000,000,0,04,14,1,77,0,60,0,0,00,00,00,00,00,0,20,1,1,1,03,06,00,1435,00,7,00,0,0,0,1287|4156|        Q_[PXCT],                               ;In case this is PXCT
                                                                             |1287|4157|        IF [AC.EQ.0] THEN [IFETCH 4]            ;If plain just do it
000,000,0,04,06,1,56,0,30,0,0,00,64,00,00,00,0,20,1,1,1,13,01,00,1441,00,7,11,0,0,0,1288|4158|        [MEM-OP]_[IR],SET PXCT,LOAD IR,         ;Set flag this is PXCT
                                                                             |1288|4159|        GOTOP [IFETCH PXCT]
                                                                             |1288|4160|
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,1289|4161|PXCT STORE 40:
                                                                             |1289|4162|        J[0040]_[PXCT RH]
                                                                             |1289|4163|        GOTO [PXCT STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2414,00,7,00,0,0,0,1290|4164|
                                                                             |1290|4165|;Here for usual case of writing operands to memory
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,1291|4166|PXCT STORE 200:
                                                                             |1291|4167|        J[0200]_[PXCT RH]                       ;Flavour of store
                                                                             |1291|4168|        ;GOTO [PXCT STORE]
                                                                             |1291|4169|
                                                                             |1291|4170|;Here when doing memory write under PXCT
                                                                             |1291|4171|;    Cali J[testbit]_[PXCT RH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2432,00,7,00,0,0,0,1292|4172|PXCT STORE:
                                                                             |1292|4173|        CALL [SET PXCT CTXT]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1293|4174|        [K 7777.-1]&[E]_F,F_Q_B,                ;Get 1st operand
                                                                             |1293|4175|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1293|4176|        CALL [MEMORY WRITE]
                                                                             |1293|4177|        GOTO [SET CURRENT CTXT]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2424,00,7,00,0,0,0,1294|4178|
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,1295|4179|PXCT FETCH 40:
                                                                             |1295|4180|        J[0040]_[PXCT RH]
                                                                             |1295|4181|        GOTO [PXCT FETCH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2422,00,7,00,0,0,0,1296|4182|
                                                                             |1296|4183|;Here for usual PXCT FETCH (i.e. 200)
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,1297|4184|PXCT FETCH 200:
                                                                             |1297|4185|        J[0200]_[PXCT RH]                       ;Flavour of fetch
                                                                             |1297|4186|        ;GOTO [PXCT FETCH]
                                                                             |1297|4187|
                                                                             |1297|4188|;Here when doing a memory read under PXCT
                                                                             |1297|4189|; Call J[testbit]_[PXCT RH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2432,00,7,00,0,0,0,1298|4190|PXCT FETCH:
                                                                             |1298|4191|        CALL [SET PXCT CTXT]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1299|4192|        [K 7777.-1]&[E]_F,F_Q_B,                ;Get 1st operand
                                                                             |1299|4193|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1299|4194|        CALL [MEMORY READ]
                                                                             |1299|4195|        ;GOTO [SET CURRENT CTXT]
                                                                             |1299|4196|
                                                                             |1299|4197|;Here to set current context
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0562,00,7,01,0,0,0,1300|4198|SET CURRENT CTXT:
                                                                             |1300|4199|        J[PROC REG]_RAMFILE ADR                 ;Get what AC blocks should be
000,000,0,04,10,0,00,0,05,0,0,00,20,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1301|4200|        RAMFILE_[W2 LH],
                                                                             |1301|4201|         CLEAR USER
                                                                             |1301|4202|        J[RF PROC REG]_RAMFILE ADR              ;Get current proc reg
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0563,00,7,01,0,0,0,1302|4203|        RAMFILE_[W2 RH]
000,000,0,14,06,1,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,10,0,0,0,1304|4204|        [W2]_Y,ALU_PROC REG                     ;Set proper processor reg
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,1305|4205|        [W2]_RAMFILE,
                                                                             |1305|4206|         RETURN
                                                                             |1305|4207|
000,000,0,04,10,0,62,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1306|4208|SET PXCT CTXT:
                                                                             |1306|4209|        SWAP [PXCT]_[W1]                        ;Copy test bits
000,000,0,14,14,0,02,0,60,0,0,00,00,00,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,1307|4210|        [W1]&[PXCT]_Y,
                                                                             |1307|4211|         IF CT [IZ] RETURN
                                                                             |1307|4212|        ;GOTO [SET PREV CTXT]
                                                                             |1307|4213|
                                                                             |1307|4214|;Here to set previous context
                                                                             |1307|4215|;Called only in exec mode !!
                                                                             |1307|4216|        J[04000]_[W1]                           ;bit 24
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4000,00,7,01,0,0,0,1308|4217|        SWAP [W1]_[W1]                          ;becomes bit 6-prev context user
000,000,0,14,14,0,02,0,03,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1310|4218|        [W1]&[PC FLAGS]_Y,IX_MX                 ;See if he can do this
                                                                             |1310|4219|        J[RF PROC REG]_RAMFILE ADR              ;Address last value of PROC REG
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,44,1,1,0,01,03,00,2322,00,7,04,0,0,0,1312|4220|        RAMFILE_[W1],                   ;Get last PROC REG
                                                                             |1312|4221|        IF NOT CT [MZ] CALL [SET USER LATCH]
                                                                             |1312|4222|        #2*([W1]+[W1 LH])_B                      ;Shift left twice
000,000,1,11,03,0,02,0,01,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1313|4223|        #2*[W1]_[W1 LH]                          ;Puts prev AC in position
000,000,1,11,06,1,02,0,01,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1314|4224|        [W1]_RAMFILE                            ;In case clock interrupts
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,10,0,0,0,1316|4225|        [W1]_Y,ALU_PROC REG,
                                                                             |1316|4226|         RETURN
                                                                             |1316|4227|        ;RAMFILE [E LH],                        ;Get previous section
                                                                             |1316|4228|        ;J[PCS]_RAMFILE ADR                     ;Remember previous section
                                                                             |1316|4229|
                                                                             |1316|4230|;Here for MAP
000,000,0,04,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,36,00,3072,00,7,00,0,0,0,1317|4231|MAP:    [K 7777.-1]&[E]_B,                      ;Strip E to 30 bits
                                                                             |1317|4232|        SPEC SEL/PAGE TABLE ENTRY,              ; Set section flags
                                                                             |1317|4233|         IF [USER] CALL [CHECK IO OK]           ;Be sure allowed to do this
                                                                             |1317|4234|        J[MAP 3]_[W1]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2451,00,7,01,0,0,0,1318|4235|        CALL [SET PF RCOVR]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,12,0,1,1,01,40,00,4426,00,7,00,0,0,0,1320|4236|        ZERO_[W1],#0_UC,
                                                                             |1320|4237|         IF [PAGED] CALL [PAGE R REFIL]         ;Get page info for E
000,000,0,04,14,0,72,0,40,0,0,00,00,00,00,27,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1321|4238|MAP 3:  [K 777]&[E]_B,SEL AC+[0]                ;Leave only on page portion
                                                                             |1321|4239|        J[01000]_[W2]                           ;Will become V bit
000,000,0,04,10,0,06,2,04,0,0,00,00,00,00,00,0,20,1,1,0,01,40,00,3140,00,7,07,0,0,0,1323|4240|        SWAP [W2]_[W2],                         ;Make bit8 = V bit
                                                                             |1323|4241|         IF [PAGED] CALL [W2.OR.W1]
000,000,0,04,17,0,42,0,00,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1324|4242|        [E].OR.[W1]_B,ALU_RAMFILE,              ;Add on page portion
                                                                             |1324|4243|        SET LOCAL,GOTOP [IFETCH]
                                                                             |1324|4244|
                                                                             |1324|4245|.TOC 2, "Stack Operation Instructions"
                                                                             |1324|4246|
                                                                             |1324|4247|;Here for ADJSP after FETCH AC&I and CHK PC SECT
                                                                             |1324|4248|
000,000,0,14,14,0,73,0,50,0,0,00,00,00,00,27,0,20,1,0,1,06,27,00,0000,13,7,00,0,0,0,1325|4249|ADJSP:  [K 407777.0]&[AC-OP]_Y,IX_MX,           ;Latch sign of stack pointer
                                                                             |1325|4250|        SEL AC+[0],                             ; Address AC
                                                                             |1325|4251|         IF [SECTION 0] D [DISPATCH 4]          ; D4 = ADJSP V
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,40,1,1,0,03,02,00,2461,00,7,00,0,0,0,1326|4252|        SET LOCAL,
                                                                             |1326|4253|         IF CT [(MNxMOVR)!MZ] THEN [ADJSP V]
000,000,0,04,03,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,57,00,4343,00,7,04,0,0,0,1327|4254|        [AC-OP]+[MEM-OP]_B,ALU_RAMFILE,         ;Add adjustment
                                                                             |1327|4255|         IF [NOT B BIT 18] THEN [TO AC]
000,000,0,04,03,0,76,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4343,00,7,04,0,0,0,1328|4256|        [K -1.0]+[MEM-OP]_B,ALU_RAMFILE,
                                                                             |1328|4257|         GOTO [TO AC]
                                                                             |1328|4258|
000,000,0,04,03,0,56,0,52,0,0,00,14,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1329|4259|ADJSP V:
                                                                             |1329|4260|        [MEM-OP]+[AC-OP RH]_B,                  ;Adjust RH
                                                                             |1329|4261|         SET LOCAL
                                                                             |1329|4262|        SWAP [MEM-OP]_[MEM-OP]                  ;Prepare to add to LH
000,000,0,04,03,0,56,0,50,0,0,00,00,00,00,00,0,16,1,1,1,03,03,00,1420,00,7,04,0,0,0,1331|4263|        [MEM-OP]+[AC-OP]_B,ALU_RAMFILE,
                                                                             |1331|4264|         IF NOT CT [INxorMN] THEN [IFETCH]
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,16,1,1,1,01,02,00,4147,00,7,00,0,0,0,1332|4265|        [MEM-OP]_Y,                             ;Compare sign of E to AC
                                                                             |1332|4266|         IF CT [INxorMN] CALL [SET TRAP 2]
                                                                             |1332|4267|        GOTO [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4130,00,7,00,0,0,0,1333|4268|
                                                                             |1333|4269|;Here for PUSHJ
                                                                             |1333|4270|; CHK PS SECT loaded SECTION 0 from PC and loaded MB with PC
000,000,0,04,06,1,42,0,13,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1334|4271|PUSHJ:  [E]_[MEM-OP+1]                          ;Save adr where we will go
000,000,0,06,06,1,03,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0145,00,7,01,0,0,0,1335|4272|        [PC FLAGS]_Q,                           ;Save pc flags fer sectO case
                                                                             |1335|4273|         J[PUSHJ FLAGS]_RAMFILE ADR             ;Adr of mask for flags to clear
000,000,0,04,10,0,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,03,27,00,2500,00,7,04,0,0,0,1336|4274|        RAMFILE_[W6],                           ;Get mask
                                                                             |1336|4275|        IF [SECTION 0] THEN [PUSHJ VANILLA]
000,000,0,14,14,0,73,0,54,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1337|4276|        [K 407777.0]&[MEM-OP]_Y,                ;Check for which extended case
                                                                             |1337|4277|         IX_MX
                                                                             |1337|4278|        SWAP [K 777]_[W1]                       ;9bit mask for PC section
000,000,0,04,10,0,72,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1338|4279|                                                ; PC sect to 9 bits (strange but ok)
000,000,0,04,14,0,02,0,45,0,0,00,00,00,00,00,0,40,1,1,1,03,02,00,2501,00,7,00,0,0,0,1339|4280|        [W1]&[MB LH]_B,                         ;We are going to write PC in memory
                                                                             |1339|4281|         IF CT [(MNxMOVR)!MZ] THEN [PJ H]
000,000,0,04,06,1,56,0,54,0,1,00,10,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1340|4282|        [MEM-OP]+1_[MEM-OP],SET GLOBAL          ;Increment pointer
                                                                             |1340|4283|        WRITE [MEM-OP]
000,000,0,04,11,0,26,0,03,0,0,00,00,00,00,27,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1342|4284|        [W6]BAR&[PC FLAGS]_B,                   ;Clear flags
                                                                             |1342|4285|         SEL AC+[0]                             ;Select AC to restore pointer
000,000,0,04,06,1,13,0,34,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4343,00,7,00,0,0,0,1343|4286|        [MEM-OP+1]_[PC],
                                                                             |1343|4287|         GOTO [TO AC]
                                                                             |1343|4288|
000,000,0,04,14,1,77,0,45,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1344|4289|PUSHJ VANILLA:
                                                                             |1344|4290|        Q_[MB LH]                               ;<PC flags,,PC> in MB
000,000,0,04,03,0,57,0,55,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1345|4291|PJ H:   [BIT17]+[MEM-OP LH]_B                   ;Increment LH
                                                                             |1345|4292|        [MEM-OP]+1_[MEM-OP RH]                  ;Increment RH of AC
000,000,0,04,06,1,56,0,42,0,0,00,14,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1347|4293|        [MEM-OP]_[E RH],SET LOCAL,              ;Address to write into
                                                                             |1347|4294|         CALL [MEMORY WRITE]
000,000,0,14,14,0,76,0,54,0,0,00,00,00,00,27,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1348|4295|        [K -1.0]&[MEM-OP]_Y,
                                                                             |1348|4296|         IX_MX,SEL AC+[0]                       ;Check for overflow
                                                                             |1348|4297|        [W6]BAR&[PC FLAGS]_B                    ;Clear flags
000,000,0,04,06,1,13,0,34,0,0,00,14,00,00,00,0,44,1,1,1,13,03,00,4343,00,7,00,0,0,0,1350|4298|        [MEM-OP+1]_[PC],                        ;Perform branch
                                                                             |1350|4299|         SET LOCAL,
                                                                             |1350|4300|         IF NOT CT [MZ] THENP [TO AC]
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2526,00,7,04,0,0,0,1351|4301|        [MEM-OP]_Y,ALU_RAMFILE,                 ;Update pointer
                                                                             |1351|4302|         GOTO [PUSH TRAP]                       ;Set trap flags
                                                                             |1351|4303|
                                                                             |1351|4304|;Here to check PC section, set MZ if section 0
000,000,0,04,06,1,36,0,44,0,0,00,00,00,00,77,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1352|4305|CHK PC SECT:
                                                                             |1352|4306|        [PC]_[MB],SECTION SELECT,               ;Select our section
                                                                             |1352|4307|         DISPATCH [DISPATCH 3]
                                                                             |1352|4308|
                                                                             |1352|4309|
                                                                             |1352|4310|;Here for PUSH
                                                                             |1352|4311|; CHK PC SECT loaded SECTION 0 from PC
000,000,0,14,06,1,36,0,00,0,0,00,00,00,00,77,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1353|4312|PUSH:   [PC]_Y,SECTION SELECT                   ;Select our section
000,000,0,14,14,0,73,0,50,0,0,00,00,00,00,00,0,20,1,0,1,03,27,00,2520,00,7,00,0,0,0,1354|4313|        [K 407777.0]&[AC-OP]_Y,                 ;Test for extended case
                                                                             |1354|4314|         IX_MX,
                                                                             |1354|4315|        IF [SECTION 0] THEN [PUSH VANILLA]
                                                                             |1354|4316|        IF CT [(MNxMOVR)!MZ] THEN [PUSH VANILLA]
000,000,0,04,06,1,52,0,40,0,1,00,00,00,00,00,0,20,1,1,1,01,46,00,2411,00,7,00,0,0,0,1356|4317|        [AC-OP]+1_[E],                          ;New stack address
                                                                             |1356|4318|         IF [PXCT] CALL [PXCT STORE 40]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4712,00,7,00,0,0,0,1357|4319|        [K 7777.-1]&[E]_F,F_Q_B,
                                                                             |1357|4320|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1357|4321|         IF [NOT PXCT] CALL [MEM WRITE 1]
                                                                             |1357|4322|        SEL AC+[0]                              ;Address AC
000,000,0,14,06,1,52,0,00,0,1,00,10,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1359|4323|        [AC-OP]+1_Y,ALU_RAMFILE,                ;Update AC
                                                                             |1359|4324|         CLEAR LOCAL,
                                                                             |1359|4325|         GOTOP [IFETCH]
000,000,0,04,03,0,57,0,51,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1360|4326|PUSH VANILLA:
                                                                             |1360|4327|        [BIT17]+[AC-OP LH]_B                    ; Increment LH of stack pointer
                                                                             |1360|4328|        [AC-OP]+1_[AC-OP RH]                    ; Increment RH
000,000,0,04,06,1,52,0,42,0,0,00,00,00,00,00,0,20,1,1,1,01,46,00,2411,00,7,00,0,0,0,1362|4329|        [AC-OP]_[E RH],                         ;Set in section address
                                                                             |1362|4330|         IF [PXCT] CALL [PXCT STORE 40]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4712,00,7,00,0,0,0,1363|4331|        [K 7777.-1]&[E]_F,F_Q_B,                ; Data already in MB
                                                                             |1363|4332|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1363|4333|         IF [NOT PXCT] CALL [MEM WRITE 1]
000,000,0,14,14,0,76,0,50,0,0,00,00,00,00,27,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1364|4334|        [K -1.0]&[AC-OP]_Y,                     ;Check for overflow
                                                                             |1364|4335|        IX_MX,SEL AC+[0]                        ; Address AC to restore updated version
000,000,0,14,14,0,77,0,50,0,0,00,14,00,00,00,0,44,1,1,1,13,03,00,1420,00,7,04,0,0,0,1365|4336|        [AC-OP]_RAMFILE,                        ;Restore stack pointer
                                                                             |1365|4337|        SET LOCAL,
                                                                             |1365|4338|        IF NOT CT [MZ] THENP [IFETCH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4147,00,7,00,0,0,0,1366|4339|PUSH TRAP:
                                                                             |1366|4340|        CALL [SET TRAP 2]                       ;Set trap 2 flag
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,01,00,4130,00,7,00,0,0,0,1367|4341|        SET LOCAL,GOTOP [TRAP]
                                                                             |1367|4342|
                                                                             |1367|4343|
                                                                             |1367|4344|;Here for POP after CHK PC SECT
000,000,0,14,14,0,73,0,54,0,0,00,00,00,00,00,0,20,1,0,1,03,27,00,2547,00,7,00,0,0,0,1368|4345|POP:    [K 407777.0]&[MEM-OP]_Y,IX_MX,          ;Test stack pointer
                                                                             |1368|4346|         IF [SECTION 0] THEN [POP VANILLA]
000,000,0,04,06,1,42,0,24,0,0,00,00,00,00,00,0,40,1,1,1,03,02,00,2550,00,7,00,0,0,0,1369|4347|        [E]_[W6],                               ;Save effective address
                                                                             |1369|4348|         IF CT [(MNxMOVR)!MZ] THEN [POP V 1]
000,000,0,07,06,1,56,0,40,0,0,00,00,00,00,00,0,20,1,1,1,03,35,00,2536,00,7,00,0,0,0,1370|4349|        [MEM-OP]_Q_[E],                         ;Address of stack data
                                                                             |1370|4350|         IF [GLOBAL] THEN [POP 3]
000,000,0,04,14,0,67,0,40,0,0,00,10,00,00,00,0,20,1,1,1,01,46,00,2417,00,7,00,0,0,0,1371|4351|        [K 7777.-1]&[E]_B,CLEAR LOCAL,
                                                                             |1371|4352|         IF [PXCT] CALL [PXCT FETCH 40]
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4663,00,7,00,0,0,0,1372|4353|        [E]_Q_[E],
                                                                             |1372|4354|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1372|4355|         IF [NOT PXCT] CALL [MEMORY READ]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,03,01,00,2540,00,7,00,0,0,0,1373|4356|        SET LOCAL,GOTO [POP 5]                  ;Restore effective address
000,000,0,04,14,0,67,0,40,0,0,00,00,00,00,00,0,20,1,1,1,01,46,00,2417,00,7,00,0,0,0,1374|4357|POP 3:  [K 7777.-1]&[E]_B,                      ;Read location off stack
                                                                             |1374|4358|        IF [PXCT] CALL [PXCT FETCH 40]
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4663,00,7,00,0,0,0,1375|4359|        [E]_Q_[E],
                                                                             |1375|4360|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1375|4361|         IF [NOT PXCT] CALL [MEMORY READ]       ;Read location off stack
000,000,0,04,06,1,26,0,40,0,0,00,00,00,00,00,0,20,1,1,1,01,46,00,2413,00,7,00,0,0,0,1376|4362|POP 5:  [W6]_[E],
                                                                             |1376|4363|         IF [PXCT] CALL [PXCT STORE 200]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4712,00,7,00,0,0,0,1377|4364|        [K 7777.-1]&[E]_F,F_Q_B,
                                                                             |1377|4365|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1377|4366|         IF [NOT PXCT] CALL [MEM WRITE 1]
                                                                             |1377|4367|        SEL AC+[0]
000,000,0,14,03,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1379|4368|        [K -1]+[MEM-OP]_Y,                      ;Decrement stack pointer
                                                                             |1379|4369|         ALU_RAMFILE,
                                                                             |1379|4370|         SET LOCAL,
                                                                             |1379|4371|         GOTOP [IFETCH]                         ;Store stack pointer
                                                                             |1379|4372|
000,000,0,04,06,1,56,0,42,0,0,00,14,00,00,00,0,20,1,1,1,01,46,00,2417,00,7,00,0,0,0,1380|4373|POP V 3:
                                                                             |1380|4374|        [MEM-OP]_[E RH],SET LOCAL,              ;Get in section address
                                                                             |1380|4375|         IF [PXCT] CALL [PXCT FETCH 40]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4663,00,7,00,0,0,0,1381|4376|        [K 7777.-1]&[E]_F,F_Q_B,                ;Get data from stack
                                                                             |1381|4377|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1381|4378|         IF [NOT PXCT] CALL [MEMORY READ]
000,000,0,14,10,0,00,0,00,0,0,00,10,00,00,00,0,20,1,1,0,03,01,00,2553,00,7,00,0,0,0,1382|4379|        SET GLOBAL,
                                                                             |1382|4380|         GOTO [POP V 5]
                                                                             |1382|4381|
000,000,0,04,06,1,42,0,24,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1383|4382|POP VANILLA:
                                                                             |1383|4383|        [E]_[W6]                                ;Save effective address
                                                                             |1383|4384|
000,000,0,04,06,1,36,0,40,0,0,00,00,00,00,00,0,20,1,1,1,03,35,00,2544,00,7,00,0,0,0,1384|4385|POP V 1:
                                                                             |1384|4386|        [PC]_[E],                               ;Copy pdl section number
                                                                             |1384|4387|         IF [GLOBAL] THEN [POP V 3]
000,000,0,04,06,1,56,0,42,0,0,00,14,00,00,00,0,20,1,1,1,01,46,00,2417,00,7,00,0,0,0,1385|4388|        [MEM-OP]_[E RH],SET LOCAL,              ;Get in section address
                                                                             |1385|4389|         IF [PXCT] CALL [PXCT FETCH 40]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4663,00,7,00,0,0,0,1386|4390|        [K 7777.-1]&[E]_F,F_Q_B,                ;Get data from stack
                                                                             |1386|4391|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1386|4392|         IF [NOT PXCT] CALL [MEMORY READ]
000,000,0,04,06,1,26,0,40,0,0,00,00,00,00,00,0,20,1,1,1,01,46,00,2413,00,7,00,0,0,0,1387|4393|POP V 5:
                                                                             |1387|4394|        [W6]_[E],
                                                                             |1387|4395|        IF [PXCT] CALL [PXCT STORE 200]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,47,00,4712,00,7,00,0,0,0,1388|4396|        [K 7777.-1]&[E]_F,F_Q_B,
                                                                             |1388|4397|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1388|4398|         IF [NOT PXCT] CALL [MEM WRITE 1]
                                                                             |1388|4399|        ;GOTO [POP V PNTR]
000,000,0,14,14,0,76,0,54,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1389|4400|POP V PNTR:
                                                                             |1389|4401|        [K -1.0]&[MEM-OP]_Y,                    ;Check for overflow
                                                                             |1389|4402|         IX_MX
000,000,0,04,01,0,57,0,54,0,1,00,00,00,00,27,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1390|4403|        [MEM-OP]-[BIT17]_A,SEL AC+[0]           ;Decrement LH
000,000,0,04,03,0,77,0,56,0,0,00,14,00,00,00,0,44,1,1,1,13,03,00,4343,00,7,00,0,0,0,1391|4404|        [K -1]+[MEM-OP RH]_B,                   ;Decrement RH of pointer
                                                                             |1391|4405|         SET LOCAL,
                                                                             |1391|4406|         IF NOT CT [MZ] THENP [TO AC]
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2526,00,7,04,0,0,0,1392|4407|        [MEM-OP]_RAMFILE,                       ;Store updated pointer
                                                                             |1392|4408|         GOTO [PUSH TRAP]                       ; Then trap
                                                                             |1392|4409|
                                                                             |1392|4410|;Here for POPJ
000,000,0,14,11,0,76,0,30,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1637,00,7,00,0,0,0,1393|4411|POPJ:
                                                                             |1393|4412|.IF/FTMBZ
                                                                             |1393|4413|        [K -1.0]BAR&[IR]_Y,                     ;E should be 0
                                                                             |1393|4414|        IF NOT CT [IZ] THEN [MUUO]
                                                                             |1393|4415|.ENDIF/FTMBl
000,000,0,14,14,0,73,0,54,0,0,00,00,00,00,00,0,20,1,0,1,03,26,00,2565,00,7,00,0,0,0,1394|4416|        [K 407777.0]&[MEM-OP]_Y,                ;Test stack pointer
                                                                             |1394|4417|         IX_MX,
                                                                             |1394|4418|         IF [NOT SECTION 0] THEN [POPJ 1]
000,000,0,04,06,1,56,0,42,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4662,00,7,00,0,0,0,1395|4419|        [MEM-OP]_[E RH],                        ;Fetch new PC
                                                                             |1395|4420|         CALL [MEM READ 0]
000,000,0,04,06,1,46,0,36,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2555,00,7,00,0,0,0,1396|4421|        [MB]_[PC RH],                           ;Set new PC
                                                                             |1396|4422|         GOTO [POP V PNTR]
                                                                             |1396|4423|
000,000,0,04,06,1,56,0,42,0,0,00,14,00,00,00,0,40,1,1,1,03,03,00,2570,00,7,00,0,0,0,1397|4424|POPJ 1: [MEM-OP]_[E RH],SET LOCAL,
                                                                             |1397|4425|        IF NOT CT [(MNxMOVR)!MZ] THEN [POPJ 2]
                                                                             |1397|4426|        READ [E]                                ;Fetch new PC
000,000,0,04,06,1,46,0,34,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2555,00,7,00,0,0,0,1399|4427|        [MB]_[PC],                              ;Set new PC
                                                                             |1399|4428|         GOTO [POP V PNTR]
                                                                             |1399|4429|
000,000,0,04,06,1,56,0,40,0,0,00,10,00,00,00,0,20,1,1,1,01,01,00,4662,00,7,00,0,0,0,1400|4430|POPJ 2: [MEM-OP]_[E],SET GLOBAL,                ;Stack address
                                                                             |1400|4431|        CALL [MEM READ 0]                       ;Fetch new PC
000,000,0,04,06,1,46,0,34,0,0,00,00,00,00,27,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1401|4432|        [MB]_[PC],                              ;Set new PC
                                                                             |1401|4433|         SEL AC+[0]
000,000,0,14,03,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1402|4434|        [K -1]+[MEM-OP]_Y,                      ;Save new AC
                                                                             |1402|4435|         ALU_RAMFILE,
                                                                             |1402|4436|         SET LOCAL,
                                                                             |1402|4437|         GOTOP [IFETCH]
                                                                             |1402|4438|
                                                                             |1402|4439|;Here to put flags & PC in MB or PC in MB depending on section
                                                                             |1402|4440|; First part of JSR and JSP
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0145,00,7,01,0,0,0,1403|4441|JSR SETUP:
                                                                             |1403|4442|        J[PUSHJ FLAGS]_RAMFILE ADR
000,000,0,04,10,0,00,0,20,0,0,00,00,00,00,00,0,20,1,1,0,03,27,00,2576,00,7,04,0,0,0,1404|4443|        RAMFILE_[W5],                   ;Get bits to clear from flags
                                                                             |1404|4444|         IF [SECTION 0] THEN [JSR SECT 0]
000,000,0,04,14,0,67,0,44,0,0,00,00,00,00,27,0,20,1,1,1,06,01,00,0000,11,7,00,0,0,0,1405|4445|        [K 7777.-1]&[MB]_B,                     ;Mask off bits 0-5
                                                                             |1405|4446|        SEL AC+[0],
                                                                             |1405|4447|         DISPATCH [INST EXCT]
000,000,0,04,06,1,03,0,45,0,0,00,00,00,00,27,0,20,1,1,1,06,01,00,0000,11,7,00,0,0,0,1406|4448|JSR SECT 0:
                                                                             |1406|4449|        [PC FLAGS]_[MB LH],SEL AC+[0],          ;Put flags in memory lh
                                                                             |1406|4450|        DISPATCH [INST EXCT]
                                                                             |1406|4451|
                                                                             |1406|4452|
                                                                             |1406|4453|;Here for JSR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,07,00,1637,00,7,00,0,0,0,1407|4454|JSR:
                                                                             |1407|4455|.IF/FTMBZ
                                                                             |1407|4456|        IF [AC.NE.0] THEN [MUUO]                ;AC field should be 0
                                                                             |1407|4457|.ENDIF/FTMBZ
                                                                             |1407|4458|        CALL [MEMORY WRITE]                     ;MB already setup by JSR SETUP
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4711,00,7,00,0,0,0,1408|4459|        [E]+1_[E RH]                            ;Go to next location
000,000,0,04,06,1,42,0,42,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1409|4460|
000,000,0,04,11,0,22,0,03,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1410|4461|JSR CLEAR FLAGS:
                                                                             |1410|4462|        [W5]BAR&[PC FLAGS]_B                    ;Clear 1st part done, Address failure
                                                                             |1410|4463|                                                ; inhibit, and trap flags
000,000,0,04,06,1,42,0,34,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,1411|4464|        [E]_[PC],SET LOCAL,                     ;Set new PC
                                                                             |1411|4465|         GOTOP [IFETCH]
                                                                             |1411|4466|
                                                                             |1411|4467|;Here for JSP
000,000,0,14,14,0,77,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2602,00,7,04,0,0,0,1412|4468|JSP:    [MB]_RAMFILE,                           ;Write AC and exit
                                                                             |1412|4469|         GOTO [JSR CLEAR FLAGS]
                                                                             |1412|4470|
                                                                             |1412|4471|
                                                                             |1412|4472|;Here for JSA
                                                                             |1412|4473|
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1413|4474|JSA:    [MEM-OP]_[MB],                          ;Copy AC to write in E
                                                                             |1413|4475|         CALL [MEMORY WRITE]
                                                                             |1413|4476|        SWAP [E]_[MEM-OP]                       ;Put E rh in mem lh
000,000,0,04,10,0,42,2,54,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1414|4477|        [PC]_[MEM-OP RH]                        ;Put PC rh in mem rh
000,000,0,04,06,1,36,0,56,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1415|4478|        [E]_[PC]                                ;Set new PC
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,03,01,00,4342,00,7,00,0,0,0,1417|4479|        [PC]+1_[PC RH],                         ;Make E+1 new PC
                                                                             |1417|4480|         GOTO [TO AC.0]
                                                                             |1417|4481|
                                                                             |1417|4482|;Here for JRA
000,000,0,04,06,1,42,0,24,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1418|4483|JRA:    [E]_[W6]                                ;Save E
000,000,0,04,10,0,56,2,42,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4662,00,7,07,0,0,0,1419|4484|        SWAP [MEM-OP]_[E RH],                   ;Address to load AC with
                                                                             |1419|4485|         CALL [MEM READ 0]
000,000,0,04,06,1,26,0,34,0,0,00,00,00,00,27,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1420|4486|        [W6]_[PC],SEL AC+[0]                    ;Set new PC
000,000,0,14,06,1,46,0,00,0,0,00,14,00,00,00,0,20,1,1,1,03,01,00,1420,00,7,04,0,0,0,1421|4487|        [MB]_Y,ALU_RAMFILE,                     ;Write AC and done
                                                                             |1421|4488|        SET LOCAL,GOTO [IFETCH]
                                                                             |1421|4489|
                                                                             |1421|4490|
                                                                             |1421|4491|.TOC 2, "Arithmetic Testing Instructions"
                                                                             |1421|4492|
                                                                             |1421|4493|;Here for CAxx instructions to compare operands
                                                                             |1421|4494|
000,000,0,14,02,0,52,0,54,0,0,00,00,00,00,00,0,20,1,0,1,06,01,00,0000,12,7,00,0,0,0,1422|4495|CAX:    [AC-OP]-[MEM-OP]_Y,IX_MX,               ;Compare operands and dispatch
                                                                             |1422|4496|         DISPATCH [DISPATCH 3]
                                                                             |1422|4497|
                                                                             |1422|4498|;Here for AOxx instructions to increment AC or memory
000,000,0,04,06,1,56,0,54,0,1,00,00,00,00,00,0,64,0,1,1,03,02,00,2075,00,7,00,0,0,0,1423|4499|AOXX:   [MEM-OP]+1_[MEM-OP],                    ;Increment and dispatch
                                                                             |1423|4500|         IF CT [IZ IX_MX] THEN [SET C0!C1 STORE]
                                                                             |1423|4501|        IF NOT CT [MOVR] D [DISPATCH 3]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,46,1,1,0,06,03,00,0000,12,7,00,0,0,0,1424|4502|        GOTO [SET OV!C1!T1 STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2070,00,7,00,0,0,0,1425|4503|
                                                                             |1425|4504|;Here for SOxx instructions to decrement AC or memory
                                                                             |1425|4505|
000,000,0,04,03,0,77,0,54,0,0,00,00,00,00,00,0,44,1,0,1,06,02,00,0000,12,7,00,0,0,0,1426|4506|SOXX:   [K -1]+[MEM-OP]_B,                      ;Decrement and dispatch
                                                                             |1426|4507|        IF CT [MZ IX_MX] D [DISPATCH 3]
                                                                             |1426|4508|        IF NOT CT [MOVR] THEN [SET C0!C1 STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,46,1,1,0,03,03,00,2075,00,7,00,0,0,0,1427|4509|        GOTO [SET OV!C0!T1 STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2100,00,7,00,0,0,0,1428|4510|
                                                                             |1428|4511|;Here for SxL instructions to conditionally skip
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,42,1,1,0,06,03,00,0000,13,7,00,0,0,0,1429|4512|SXL:    IF NOT CT [MNxMOVR] D [DISPATCH 4]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1430|4513|        [PC]+1_[PC RH],
                                                                             |1430|4514|        DISPATCH [DISPATCH 4]
                                                                             |1430|4515|
                                                                             |1430|4516|;Here for SxE instructions to conditionally skip
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,44,1,1,0,06,03,00,0000,13,7,00,0,0,0,1431|4517|SXE:    IF NOT CT [MZ] D [DISPATCH 4]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1432|4518|        [PC]+1_[PC RH],
                                                                             |1432|4519|        DISPATCH [DISPATCH 4]
                                                                             |1432|4520|
                                                                             |1432|4521|;Here for SxLE instructions to conditionaly skip
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,40,1,1,0,06,03,00,0000,13,7,00,0,0,0,1433|4522|SXLE:   IF NOT CT [(MNxMOVR)!MZ] D [DISPATCH 4]
                                                                             |1433|4523|        ; G070 [SXA]
                                                                             |1433|4524|
                                                                             |1433|4525|;Here for SxA instructions to conditionaly skip
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1434|4526|SXA:    [PC]+1_[PC RH],
                                                                             |1434|4527|        DISPATCH [DISPATCH 4]
                                                                             |1434|4528|
                                                                             |1434|4529|;Here for SxGE instructions to conditionaly skip
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,42,1,1,0,06,02,00,0000,13,7,00,0,0,0,1435|4530|SXGE:   IF CT [MNxMOVR] D [DISPATCH 4]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1436|4531|        [PC]+1_[PC RH],
                                                                             |1436|4532|         DISPATCH [DISPATCH 4]
                                                                             |1436|4533|
                                                                             |1436|4534|;Here for SxN instructions to conditionaly skip
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,44,1,1,0,06,02,00,0000,13,7,00,0,0,0,1437|4535|SXN:    IF CT [MZ] D [DISPATCH 4]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1438|4536|        [PC]+1_[PC RH],
                                                                             |1438|4537|         DISPATCH [DISPATCH 4]
                                                                             |1438|4538|
                                                                             |1438|4539|;Here for SxG instructions to conditionaly skip
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,40,1,1,0,06,02,00,0000,13,7,00,0,0,0,1439|4540|SXG:    IF CT [(MNxMOVR)!MZ] D [DISPATCH 4]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1440|4541|        [PC]+1_[PC RH],
                                                                             |1440|4542|        DISPATCH [DISPATCH 4]
                                                                             |1440|4543|
                                                                             |1440|4544|;Here for JXL instructions to conditionaly branch
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,56,1,1,0,06,03,00,0000,13,7,00,0,0,0,1441|4545|JXL:    IF NOT CT [MN] D [DISPATCH 4],
                                                                             |1441|4546|         SET LOCAL
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1442|4547|        [E]_[PC],DISPATCH [DISPATCH 4]
                                                                             |1442|4548|
                                                                             |1442|4549|;Here for JxE instruction to conditionaly branch
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,44,1,1,0,06,03,00,0000,13,7,00,0,0,0,1443|4550|JXE:    IF NOT CT [MZ] D [DISPATCH 4],
                                                                             |1443|4551|         SET LOCAL
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1444|4552|        [E]_[PC],DISPATCH [DISPATCH 4]
                                                                             |1444|4553|
                                                                             |1444|4554|;Here for JxLE instructions to conditionaly branch
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,40,1,1,0,06,03,00,0000,13,7,00,0,0,0,1445|4555|JXLE:   IF NOT CT [(MNxMOVR)!MZ] D [DISPATCH 4],
                                                                             |1445|4556|         SET LOCAL
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1446|4557|        [E]_[PC],DISPATCH [DISPATCH 4]
                                                                             |1446|4558|
                                                                             |1446|4559|;Here for JxA instructions to conditionaly branch
000,000,0,04,06,1,42,0,34,0,0,00,14,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1447|4560|JXA:    [E]_[PC],SET LOCAL,
                                                                             |1447|4561|         DISPATCH [DISPATCH 4]
                                                                             |1447|4562|
                                                                             |1447|4563|;Here for JxGE instructions !o conditionaly branch
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,57,1,1,0,06,03,00,0000,13,7,00,0,0,0,1448|4564|JXGE:   IF NOT CT [NOT MN] D [DISPATCH 4],
                                                                             |1448|4565|         SET LOCAL
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1449|4566|        [E]_[PC],DISPATCH [DISPATCH 4]
                                                                             |1449|4567|
                                                                             |1449|4568|;Here for JxN instructions to conditionaly branch
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,44,1,1,0,06,02,00,0000,13,7,00,0,0,0,1450|4569|JXN:    IF CT [MZ] D [DISPATCH 4],
                                                                             |1450|4570|         SET LOCAL
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1451|4571|        [E]_[PC],DISPATCH [DISPATCH 4]
                                                                             |1451|4572|
                                                                             |1451|4573|;Here for JxG instructions to conditionaly branch
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,40,1,1,0,06,02,00,0000,13,7,00,0,0,0,1452|4574|JXG:    IF CT [(MNxMOVR)!MZ] D [DISPATCH 4],
                                                                             |1452|4575|         SET LOCAL
000,000,0,04,06,1,42,0,34,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1453|4576|        [E]_[PC],DISPATCH [DISPATCH 4]
                                                                             |1453|4577|
                                                                             |1453|4578|;Here for SKIPx instructions to store in AC if AC.NE.0
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,06,00,1420,00,7,00,0,0,0,1454|4579|SKIPX:  SET LOCAL,
                                                                             |1454|4580|        IF [AC.EQ.0] THENP [IFETCH]             ;If nc AC we are done
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1455|4581|        [MEM-OP]_RAMFILE,                       ;Store in AC
                                                                             |1455|4582|        GOTOP [IFETCH]
                                                                             |1455|4583|
                                                                             |1455|4584|.TOC 2, "Boolean Instructions"
                                                                             |1455|4585|
                                                                             |1455|4586|;Here for SETZx
000,000,0,04,10,1,00,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,11,7,00,0,0,0,1456|4587|SETZX:  ZERO_[MEM-OP],
                                                                             |1456|4588|         DISPATCH [INST EXCT]
                                                                             |1456|4589|
                                                                             |1456|4590|;Here for ANDx
000,000,0,04,14,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1457|4591|ANDX:   [AC-OP]&[MEM-OP]_B,                     ;And AC with MEM and store
                                                                             |1457|4592|         DISPATCH [OPERAND STORE]
                                                                             |1457|4593|
                                                                             |1457|4594|;Here for ANDCAx
000,000,0,04,11,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1458|4595|ANDCAX: [AC-OP]BAR&[MEM-OP]_B,                  ;And AC complement with mem and store
                                                                             |1458|4596|         DISPATCH [OPERAND STORE]
                                                                             |1458|4597|
                                                                             |1458|4598|;Here for SETMI = XMOVEI
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1630,00,7,00,0,0,0,1459|4599|XMOVEI: CALL [E_MEM-OP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,01,00,0000,12,7,00,0,0,0,1460|4600|        SEL AC+[0],
                                                                             |1460|4601|         DISPATCH [OPERAND STORE]
                                                                             |1460|4602|
                                                                             |1460|4603|;Here for ANDCMx
000,000,0,04,07,0,56,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2661,00,7,00,0,0,0,1461|4604|ANDCMX: COMPLEMENT [MEM-OP]_F,                  ;Complement mem operand then
                                                                             |1461|4605|        F_[MEM-OP],GOTO [ANDX]                  ; same as AND
                                                                             |1461|4606|
                                                                             |1461|4607|;Here for XORx
000,000,0,04,13,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1462|4608|XORX:   [AC-OP].XOR.[MEM-OP]_F,F_B              ;Xor operands and store
                                                                             |1462|4609|         DISPATCH [OPERAND STORE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,00,0,0,0,1463|4610|
                                                                             |1463|4611|;Here for IORx
000,000,0,04,17,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1464|4612|IORX:   [AC-OP].OR.[MEM-OP]_B,                  ;Ior operands and store
                                                                             |1464|4613|         DISPATCH [OPERAND STORE]
                                                                             |1464|4614|
000,000,0,04,07,0,56,0,54,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1465|4615|ANDCBX:
                                                                             |1465|4616|;Small way is:
                                                                             |1465|4617|;       COMPLEMENT [AC-OP]_F,                   ;Comp1ement AC operand
                                                                             |1465|4618|;        F_[AC-OP], GOTO [ANDCMX]
                                                                             |1465|4619|;Fast way is:
                                                                             |1465|4620|        COMPLEMENT [MEM-OP]_F,
                                                                             |1465|4621|         F_[MEM-OP]
000,000,0,04,11,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1466|4622|        [AC-OP]BAR&[MEM-OP]_B,                  ;And complements and store
                                                                             |1466|4623|         DISPATCH [OPERAND STORE]
                                                                             |1466|4624|
                                                                             |1466|4625|;Here for EQVx
000,000,0,04,12,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1467|4626|EQVX:   [AC-OP].XNOR.[MEM-OP]_F, F_B,           ;Put eqv (XNOR) in mem store
                                                                             |1467|4627|         DISPATCH [OPERAND STORE]
                                                                             |1467|4628|
                                                                             |1467|4629|;Here for SETCAx
000,000,0,04,07,0,56,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1468|4630|SETCAX: COMPLEMENT [MEM-OP]_F,                  ;Complement AC and store
                                                                             |1468|4631|         F_[MEM-OP],
                                                                             |1468|4632|         DISPATCH [OPERAND STORE]
                                                                             |1468|4633|
                                                                             |1468|4634|;Here for ORCAx
000,000,0,04,07,0,52,0,50,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2670,00,7,00,0,0,0,1469|4635|ORCAX: COMPLEMENT [AC-OP]_F,                    ;Complement AC then same as OR
                                                                             |1469|4636|        F_[AC-OP],
                                                                             |1469|4637|         GOTO [IORX]
                                                                             |1469|4638|
                                                                             |1469|4639|;Here for SETCMx
000,000,0,04,07,0,56,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1470|4640|SETCMX: COMPLEMENT [MEM-OP]_F,                  ;Complement mem and store
                                                                             |1470|4641|        F_[MEM-OP],
                                                                             |1470|4642|         DISPATCH [OPERAND STORE]
                                                                             |1470|4643|
                                                                             |1470|4644|;Here for ORCMx
000,000,0,04,07,0,56,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2670,00,7,00,0,0,0,1471|4645|ORCMX:  COMPLEMENT [MEM-OP]_F,                  ;Complement mem and then same as OR
                                                                             |1471|4646|        F_[MEM-OP],
                                                                             |1471|4647|         GOTO [IORX]
                                                                             |1471|4648|
                                                                             |1471|4649|;Here for ORCBx                                 ;And operands then same as SETCM
000,000,0,14,14,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2676,00,7,00,0,0,0,1472|4650|ORCBX:  [AC-OP]&[MEM-OP]_F,
                                                                             |1472|4651|        GOTO [SETCMX]
                                                                             |1472|4652|
                                                                             |1472|4653|;Here for SETOx
000,000,0,04,00,1,00,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,11,7,00,0,0,0,1473|4654|SETOX:  ONES_[MEM-OP],
                                                                             |1473|4655|        DISPATCH [INST EXCT]
                                                                             |1473|4656|
                                                                             |1473|4657|
                                                                             |1473|4658|.TOC 2, "Half Word Instructions"
                                                                             |1473|4659|
                                                                             |1473|4660|;Here for HLL
000,000,0,04,06,1,52,0,56,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1474|4661|HLL:    [AC-OP]_[MEM-OP RH],                    ;Preserve RH of AC then store
                                                                             |1474|4662|         DISPATCH [OPERAND STORE]
                                                                             |1474|4663|
                                                                             |1474|4664|;Here for HLLI = XHLLI
000,000,0,04,06,1,42,0,55,0,0,00,00,00,00,77,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1475|4665|XHLLI:  [E]_[MEM-OP LH],SECTION SELECT          ;Preserve RH of AC
000,000,0,04,14,0,67,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,22,00,4342,00,7,00,0,0,0,1476|4666|        [K 7777.-1]&[MEM-OP]_B,                 ;Strip extraneous bits
                                                                             |1476|4667|         IF [NOT AC REF] THEN [TO AC.0]
000,000,0,14,06,1,36,0,00,0,0,00,00,00,00,77,0,20,1,1,1,03,35,00,4342,00,7,00,0,0,0,1477|4668|        [PC]_Y,SECTION SELECT,                  ;Check PC section
                                                                             |1477|4669|         IF [GLOBAL] THEN [TO AC.0]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,06,27,00,0000,12,7,00,0,0,0,1478|4670|        SEL AC+[0],
                                                                             |1478|4671|        IF [SECTION 0] D [OPERAND STORE]
000,000,0,04,06,1,57,0,55,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4343,00,7,00,0,0,0,1479|4672|        [BIT17]_[MEM-OP LH],                    ;Sect = 1 here
                                                                             |1479|4673|         GOTO [TO AC]
                                                                             |1479|4674|
                                                                             |1479|4675|; Here for HRU,
000,000,0,04,10,0,52,2,50,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1480|4676|HRLM:   SWAP [AC-OP]_[AC-OP]                    ;Swap AC op then same as HLLM
                                                                             |1480|4677|        ;GOTO [HLLM]
                                                                             |1480|4678|
                                                                             |1480|4679|;Here for HLLM
000,000,0,04,06,1,52,0,55,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1481|4680|HLLM:   [AC-OP]_[MEM-OP LH],                    ;Preserve LH of AC then store
                                                                             |1481|4681|        DISPATCH [OPERAND STORE]
                                                                             |1481|4682|
                                                                             |1481|4683|;Here for HRL & HRLI
000,000,0,04,10,0,56,2,51,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,07,0,0,0,1482|4684|HRL:    SWAP [MEM-OP]_[AC-OP LH],               ;Swap memory op then same as HLL
                                                                             |1482|4685|         DISPATCH [OPERAND STORE]
                                                                             |1482|4686|
                                                                             |1482|4687|;Here for HRLS
000,000,0,04,10,0,56,2,55,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,07,0,0,0,1483|4688|HRLS:   SWAP [MEM-OP]_[MEM-OP LH],              ;Put RH in LH then store
                                                                             |1483|4689|        DISPATCH [OPERAND STORE]
                                                                             |1483|4690|
                                                                             |1483|4691|;Here for HLLZX
000,000,0,04,14,0,76,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1484|4692|HLLZX:  [K -1.0]&[MEM-OP]_B,                    ;Mask off rh and store
                                                                             |1484|4693|        DISPATCH [DISPATCH 4]
                                                                             |1484|4694|
                                                                             |1484|4695|;Here for HRLEX
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1485|4696|HRLEX:  [MEM-OP]_Y,IX_MX                        ;Test sign bit
                                                                             |1485|4697|        ;GOTO [HLLEX]
                                                                             |1485|4698|
                                                                             |1485|4699|;Here for HLLEX
000,000,0,04,10,1,00,0,56,0,0,00,00,00,00,00,0,56,1,1,1,06,03,00,0000,13,7,00,0,0,0,1486|4700|HLLEX:  ZERO_[MEM-OP RH],                       ;Clear RH
                                                                             |1486|4701|        IF NOT CT [MN] D [DISPATCH 4]
                                                                             |1486|4702|        ;GOTO [HLLOX]
                                                                             |1486|4703|
                                                                             |1486|4704|;Here for HLLOX
000,000,0,04,00,1,00,0,56,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1487|4705|HLLOX:  ONES_[MEM-OP RH],                       ;Add ones to rh and store
                                                                             |1487|4706|         DISPATCH [DISPATCH 4]
                                                                             |1487|4707|
                                                                             |1487|4708|
                                                                             |1487|4709|;Here for HRR & HRRI
000,000,0,04,06,1,52,0,55,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1488|4710|HRR:    [AC-OP]_[MEM-OP LH],                    ;Preserve ACs lh then store
                                                                             |1488|4711|         DISPATCH [OPERAND STORE]
                                                                             |1488|4712|
                                                                             |1488|4713|;Here for HLRM
000,000,0,04,10,0,52,2,50,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1489|4714|HLRM:   SWAP [AC-OP]_[AC-OP]                    ;Swap AC arg then same as HRRM
                                                                             |1489|4715|        ;GOTO [HRRM}
                                                                             |1489|4716|
                                                                             |1489|4717|;Here for HRRK
000,000,0,04,06,1,52,0,56,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1490|4718|HRRM:   [AC-OP]_[MEM-OP RH],                    ;Copy Rh then store
                                                                             |1490|4719|         DISPATCH [OPERAND STORE]
                                                                             |1490|4720|
                                                                             |1490|4721|;Here for HLR & HLRI
000,000,0,04,10,0,56,2,52,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,12,7,07,0,0,0,1491|4722|HLR:    SWAP [MEM-OP]_[AC-OP RH],               ;Swap mem arg then same as HRR
                                                                             |1491|4723|         DISPATCH [OPERAND STORE]
                                                                             |1491|4724|
                                                                             |1491|4725|;Here for HLRS
000,000,0,04,10,0,56,2,56,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4355,00,7,07,0,0,0,1492|4726|HLRS:   SWAP [MEM-OP]_[MEM-OP RH],              ;Put LH in RH then store
                                                                             |1492|4727|        GOTO [TO SELF]
                                                                             |1492|4728|
                                                                             |1492|4729|;Here for HRRZX
000,000,0,04,10,1,00,0,55,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1493|4730|        HRRZX: ZERO_[MEM-OP LH],                ;Clear LH and store
                                                                             |1493|4731|         DISPATCH [DISPATCH 4]
                                                                             |1493|4732|
                                                                             |1493|4733|;Here for HRREX
000,000,0,04,11,0,76,0,54,0,0,00,00,00,00,00,0,20,1,1,1,06,57,00,0000,13,7,00,0,0,0,1494|4734|HRREX:  [K -1.0]BAR&[MEM-OP]_B,                ; Clear RH and check sign
                                                                             |1494|4735|         IF [NOT B BIT 18] D [DISPATCH 4]
                                                                             |1494|4736|        ;GOTO [HRROX]
                                                                             |1494|4737|
                                                                             |1494|4738|;Here for HRROX
000,000,0,04,00,1,00,0,55,0,0,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,13,7,00,0,0,0,1495|4739|HRROX:  ONES_[MEM-OP LH],                       ;Put ones in LH and store operand
                                                                             |1495|4740|        DISPATCH [DISPATCH 4]
                                                                             |1495|4741|
                                                                             |1495|4742|
                                                                             |1495|4743|.TOC 2, "Logical Testing and Modification Instructions"
                                                                             |1495|4744|
                                                                             |1495|4745|;Here for TRxx Instructions to get test bits and AC
000,000,0,04,10,1,00,0,41,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,2735,00,7,00,0,0,0,1496|4746|TRX:    ZERO_[E LH],                            ;Leave only E RH, then set AC
                                                                             |1496|4747|        GOTO [TDXX]
                                                                             |1496|4748|
                                                                             |1496|4749|;Here for TLxx Instructions to get test bits and AC
000,000,0,04,10,1,00,0,41,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1497|4750|TLX:    ZERO_[E LH]                             ;Strip RH and select AC
000,000,0,04,10,0,42,2,40,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,2735,00,7,07,0,0,0,1498|4751|        SWAP [E]_[E],                           ;Put test bits in LH and select AC
                                                                             |1498|4752|         GOTO [TDXX]
                                                                             |1498|4753|
                                                                             |1498|4754|;Here for TDxx Instructions to get test bits and AC
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1499|4755|TDX:    READ [E]                                ;Fetch test bits
000,000,0,04,06,1,46,0,40,0,0,00,00,00,00,27,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1500|4756|        [MB]_[E],SEL AC+[0]                     ;Copy test bits, and select AC
000,000,0,04,10,0,00,0,54,0,0,00,14,00,00,00,0,20,1,1,0,06,01,00,0000,11,7,04,0,0,0,1501|4757|TDXX:   RAMFILE_[MEM-OP],               ;Get AC and dispatch
                                                                             |1501|4758|        SET LOCAL,
                                                                             |1501|4759|        DISPATCH [DISPATCH 2]
                                                                             |1501|4760|
                                                                             |1501|4761|;Here for TSxx Instructions to get test bits and AC
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1502|4762|TSX:     READ [E]                               ;Fetch test bits
000,000,0,04,10,0,46,2,40,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1503|4763|         SWAP [MB]_[E],SEL AC+[0]               ;Swap test bits and select AC
000,000,0,04,10,0,00,0,54,0,0,00,14,00,00,00,0,20,1,1,0,06,01,00,0000,11,7,04,0,0,0,1504|4764|         RAMFILE_[MEM-OP],              ;Get AC and dispatch
                                                                             |1504|4765|          SET LOCAL,
                                                                             |1504|4766|          DISPATCH [DISPATCH 2]
                                                                             |1504|4767|
                                                                             |1504|4768|;Here for TxE Instructions for conditional skip
000,000,0,14,14,0,42,0,54,0,0,00,00,00,00,00,0,64,1,1,1,06,03,00,0000,12,7,00,0,0,0,1505|4769|TXE:    [E]&[MEM-OP]_Y,                         ; Check for need to skip
                                                                             |1505|4770|         IF NOT CT [IZ] D [DISPATCH 3]
                                                                             |1505|4771|        ;GOTO [TXA]
                                                                             |1505|4772|
                                                                             |1505|4773|;Here for TxA Instructions for conditional skip
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1506|4774|TXA:    [PC]+1_[PC RH],
                                                                             |1506|4775|         DISPATCH [DISPATCH 3]
                                                                             |1506|4776|
                                                                             |1506|4777|;Here for TxN Instructions for conditional skip
000,000,0,14,14,0,42,0,54,0,0,00,00,00,00,00,0,64,1,1,1,06,02,00,0000,12,7,00,0,0,0,1507|4778|TXN:    [E]&[MEM-OP]_Y,                         ;Check for need to skip
                                                                             |1507|4779|         IF CT [IZ] D [DISPATCH 3]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,06,01,00,0000,12,7,00,0,0,0,1508|4780|        [PC]+1_[PC RH],
                                                                             |1508|4781|         DISPATCH [DISPATCH 3]
                                                                             |1508|4782|
                                                                             |1508|4783|;Here for TxZ Instructions to change bits
000,000,0,14,11,0,42,0,54,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1509|4784|TXZ:    [E]BAR&[MEM-OP]_Y,                      ;Store new bits
                                                                             |1509|4785|        ALU_RAMFILE,
                                                                             |1509|4786|         GOTOP [IFETCH]
                                                                             |1509|4787|
                                                                             |1509|4788|;Here for TxC Instructions to change bits
000,000,0,14,13,0,42,0,54,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1510|4789|TXC:    [E].XOR.[MEM-OP]_Y,                     ;Store new bits
                                                                             |1510|4790|        ALU_RAMFILE,
                                                                             |1510|4791|         GOTOP [IFETCH]
                                                                             |1510|4792|
                                                                             |1510|4793|;Here for TxO Instructions to change bits
000,000,0,14,17,0,42,0,54,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1511|4794|TXO:    [E].OR.[MEM-OP]_Y,                      ;Store new bits
                                                                             |1511|4795|         ALU_RAMFILE,
                                                                             |1511|4796|        GOTOP [IFETCH]
                                                                             |1511|4797|
                                                                             |1511|4798|
                                                                             |1511|4799|.TOC 2, "Extend Instructions"
                                                                             |1511|4800|
                                                                             |1511|4801|.IF/FTEXTEND
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1512|4802|EXTEND: READ [E]                                ;Get EO word
                                                                             |1512|4803|        CALL [EFA CALC]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1447,00,7,00,0,0,0,1513|4804|.ENDIF/FTEXTEND
                                                                             |1513|4805|
                                                                             |1513|4806|
                                                                             |1513|4807|.TOC 2, "CIS Instructions"
                                                                             |1513|4808|
                                                                             |1513|4809|.IF/FTCIS
                                                                             |1513|4810|;Current block AC0 wi11 be as follows for interrupts
                                                                             |1513|4811|;
                                                                             |1513|4812|;                  11111111112222222 222333333
                                                                             |1513|4813|;        012345678901234567890123456 789012345
                                                                             |1513|4814|;       +---------------------------+---------+
                                                                             |1513|4815|;       +                           +         +
                                                                             |1513|4816|;       +---------------------------+---------+
                                                                             |1513|4817|;                                    \       /
                                                                             |1513|4818|;                                        + ---number of bytes so far
                                                                             |1513|4819|;Register usage
                                                                             |1513|4820|;       W1 current byte
                                                                             |1513|4821|;       W2 src adr (bit0-immediate;bits 4-35 are 32bit byte adr)
                                                                             |1513|4822|;       W3 src wrd
                                                                             |1513|4823|;       W4 dest adr
                                                                             |1513|4824|;       W5 dest wrd
                                                                             |1513|4825|;       W6 0,,bytes left to do
                                                                             |1513|4826|;       ACO number of bytes to do,,number of bytes written
                                                                             |1513|4827|
                                                                             |1513|4828|;Common routine to do setup for CIS instructions
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0400,00,7,01,0,0,0,1514|4829|CIS SETUP:
                                                                             |1514|4830|        J[0400]_[W1]
                                                                             |1514|4831|        SWAP [W1]_[W1]                          ;Make a bit9
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1515|4832|        [W1]_Q                                  ;Save copy in Q reg
000,000,0,05,14,1,32,0,00,0,0,00,00,01,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1517|4833|        Q&[IR]_F,F_Y LSRQ_Q,IX_MX               ;Test bit 9
000,000,0,05,14,1,32,0,00,0,0,00,00,01,00,00,0,44,1,0,1,03,02,00,2774,00,7,00,0,0,0,1518|4834|        Q&[IR]_F,F_Y LSRQ_Q,                    ;Test bit 10
                                                                             |1518|4835|         IF CT [MZ IX_MX] THEN [CS 2]
                                                                             |1518|4836|;Here if bit 9 is 0
000,000,0,05,14,1,32,0,00,0,0,00,00,01,00,00,0,44,1,0,1,03,03,00,2765,00,7,00,0,0,0,1519|4837|        Q&[IR]_F,F_Y LSRQ_Q,                    ;Test bit 11
                                                                             |1519|4838|         IF NOT CT [MZ IX_MX] THEN [CS 1]
                                                                             |1519|4839|        [E]_[W2]                                ;Copy source adr
000,000,1,11,06,1,06,0,04,0,0,00,00,11,00,00,0,64,1,1,1,01,03,00,2764,00,7,00,0,0,0,1521|4840|        #2*[W2]_[W2],
                                                                             |1521|4841|         IF NOT CT [IZ] CALL [W2+1]
000,000,1,11,06,1,06,0,04,0,0,00,00,11,00,00,0,64,1,1,1,01,03,00,2764,00,7,00,0,0,0,1522|4842|        #2*[W2]_[W2],
                                                                             |1522|4843|         IF NOT CT [IZ] CALL [W2+1]
                                                                             |1522|4844|        [PC FLAGS]&[BIT4]_F                     ;Check first part done
000,000,0,04,06,1,06,0,04,0,1,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1524|4845|W2+1:   [W2]+1_[W2],RETURN
                                                                             |1524|4846|;Here if bits 9,10 are 0,1
000,000,0,05,14,1,32,0,00,0,0,00,00,01,00,00,0,44,1,0,1,03,03,00,1637,00,7,00,0,0,0,1525|4847|CS 1:   Q&[IR]_F,F_Y LSRQ_Q, ;Test bit 12
                                                                             |1525|4848|         IF NOT CT [MZ IX_MX] THEN [MUUO]
000,000,0,04,06,1,42,0,10,0,0,00,00,00,00,00,0,44,1,1,1,03,03,00,2774,00,7,00,0,0,0,1526|4849|        [E]_[W3],                               ;In case immediate
                                                                             |1526|4850|         IF NOT CT [MZ] THEN [CS1 IM]
                                                                             |1526|4851|;Here if first operand is deferred mode
                                                                             |1526|4852|        READ [E]                                ;Get adr of operand
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1527|4853|.IF/FTMBZ
                                                                             |1527|4854|        J[#32B MASK]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,1528|4855|        RAMFILE_[W1]
000,000,0,14,11,0,02,0,44,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1530|4856|        [W1]BAR&[MB]_Y,IX_MX                    ;Test for illegal bits
000,000,0,04,06,1,46,0,04,0,0,00,00,00,00,00,0,44,1,1,1,03,03,00,1637,00,7,00,0,0,0,1531|4857|        [MB]_[W2],                              ;Copy adr
                                                                             |1531|4858|         IF NOT CT [MZ] THEN [MUUO]
                                                                             |1531|4859|.ENDIF/FTMBZ
                                                                             |1531|4860|.IFNOT/FTMBZ
                                                                             |1531|4861|        [MB]_[W2]                               ;Copy adr
                                                                             |1531|4862|.ENDIF/FTKBZ
                                                                             |1531|4863|
                                                                             |1531|4864|; Here if immediate operand
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,11,7,00,0,0,0,1532|4865|CS1 IM:
                                                                             |1532|4866|
                                                                             |1532|4867|;Here is bit 9 is 1
                                                                             |1532|4868|CS 2:   DISPATCH [DISPATCH 2]
                                                                             |1532|4869|
000,000,0,14,14,0,47,0,03,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,1533|4870|MOVC:
                                                                             |1533|4871|        [BIT4]&[PC FLAGS]_F                     ;Check first part done
                                                                             |1533|4872|        JS[0]_[W6]
000,000,0,01,10,1,00,0,24,0,0,00,00,05,00,00,0,20,1,1,0,16,00,00,0000,00,7,01,0,0,0,1534|4873|        LRS [W6]_[W6]
000,000,0,01,06,1,26,0,24,0,0,00,00,01,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1535|4874|        LRS [W6]_[W6]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3017,00,7,00,0,0,0,1537|4875|MOVC 7:
                                                                             |1537|4876|        CALL [NXT SRC BYT]                      ;Get next byte to transfer
                                                                             |1537|4877|        CALL [W NXT DST BYT]                    ;Copy it
000,000,0,04,03,0,77,0,24,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,3001,00,7,00,0,0,0,1539|4878|        [K -1]+[W6]_B,
                                                                             |1539|4879|         IF NOT CT [IZ] THEN [MOVC 7]
                                                                             |1539|4880|        GOTOP [IFETCH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1540|4881|
                                                                             |1540|4882|;Register conventions same as MOVC
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3017,00,7,00,0,0,0,1541|4883|CMPC:
                                                                             |1541|4884|CMPC 7: CALL [NXT SRC BYT]                      ;Get first operand byte
                                                                             |1541|4885|        J[EIS W1]_RAMFILE ADR
000,000,0,14,14,0,72,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3035,00,7,04,0,0,0,1543|4886|        [K 777]&[W1]_Y,ALU_RAMFILE,             ;Save first operand
                                                                             |1543|4887|        CALL [R NXT DST BYT]                    ;Get other byte
000,000,0,06,14,0,72,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0446,00,7,01,0,0,0,1544|4888|        [K 777]&[W1]_Q,
                                                                             |1544|4889|         J[EIS W1]_RAMFILE ADR
                                                                             |1544|4890|        RAMFILE_[W1]
000,000,0,14,01,1,02,0,00,0,1,00,00,00,00,00,0,64,0,1,1,03,03,00,3015,00,7,00,0,0,0,1546|4891|        Q-[W1]_Y,
                                                                             |1546|4892|         IF NOT CT [IZ IX_MX] THEN [CMPC 8]
000,000,0,04,03,0,77,0,24,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,3005,00,7,00,0,0,0,1547|4893|        [K -1]+[W6]_B,
                                                                             |1547|4894|         IF NOT CT [IZ] THEN [CMPC 7]
                                                                             |1547|4895|        GOTOP [IFETCH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,56,1,1,0,03,02,00,3016,00,7,00,0,0,0,1549|4896|CMPC 8: IF CT [MN] THEN [CMPC 9]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1550|4897|CMPC 9: GOTOP [IFETCH]
                                                                             |1550|4898|
                                                                             |1550|4899|
                                                                             |1550|4900|;Move Characters Variable Length
000,000,0,04,06,1,06,0,04,0,1,00,00,00,00,00,0,76,1,0,1,03,02,00,3034,00,7,00,0,0,0,1551|4901|MOVCV:
                                                                             |1551|4902|;Compare Characters Variable Length
                                                                             |1551|4903|CMPCV:
                                                                             |1551|4904|;Compare Numeric Display
                                                                             |1551|4905|CMPND:
                                                                             |1551|4906|;Add Numeric Display
                                                                             |1551|4907|ADDND:
                                                                             |1551|4908|;Subtract Numeric Display
                                                                             |1551|4909|SUBND:
                                                                             |1551|4910|;Move Numeric Display
                                                                             |1551|4911|MOVND:
                                                                             |1551|4912|;Arithmetic Shift Numeric Display
                                                                             |1551|4913|ASHND:
                                                                             |1551|4914|;Convert Numeric Display to Binary
                                                                             |1551|4915|CVTNDB:
                                                                             |1551|4916|;Convert Binary to Numeric Display
                                                                             |1551|4917|CVTBND:
                                                                             |1551|4918|;Test for Legal Numeric Display
                                                                             |1551|4919|TLGND:
                                                                             |1551|4920|;Compare Packed
                                                                             |1551|4921|CMPP:
                                                                             |1551|4922|;Add Packed
                                                                             |1551|4923|ADDP:
                                                                             |1551|4924|;Subtract Packed
                                                                             |1551|4925|SUBP:
                                                                             |1551|4926|;Move Packed
                                                                             |1551|4927|MOVP:
                                                                             |1551|4928|;Arithmetic Shift Packed
                                                                             |1551|4929|ASHP:
                                                                             |1551|4930|;Clear High Order Packed
                                                                             |1551|4931|CHOP:
                                                                             |1551|4932|;Convert Packed to Binary
                                                                             |1551|4933|CVTPB:
                                                                             |1551|4934|;Convert Binary to Packed
                                                                             |1551|4935|CVTBP:
                                                                             |1551|4936|;Convert Numeric Display to Packed
                                                                             |1551|4937|CVTNDP:
                                                                             |1551|4938|;Convert Packed to Numeric Display
                                                                             |1551|4939|CVTPND:
                                                                             |1551|4940|; Convert EBCDIC Numeric Display to Packed
                                                                             |1551|4941|CVTEP:
                                                                             |1551|4942|; Convert Packed to EBCDIC Numeric Display
                                                                             |1551|4943|CVTPE:
                                                                             |1551|4944|
                                                                             |1551|4945|;Here to read the next source byte
                                                                             |1551|4946|NXT SRC BYT:
                                                                             |1551|4947|        [W2]+1_[W2],                            ;Next byte adr
                                                                             |1551|4948|         IF CT [IN IX_MX] THEN [NXT SRC I]
                                                                             |1551|4949|        ASR [W2]_[E] MC                         ;Copy adr to E
000,000,0,01,06,1,06,0,40,0,0,00,00,11,00,00,0,52,1,1,1,03,02,00,3032,00,7,00,0,0,0,1553|4950|        ASR [W2]_[E] MC,                        ;Copy word adr
                                                                             |1553|4951|         IF CT [MC] THEN [NSB 2]                ; Check for odd or even byte
                                                                             |1553|4952|        IF CT [MC] THEN [NSB 3]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,52,1,1,0,03,02,00,3027,00,7,00,0,0,0,1554|4953|
                                                                             |1554|4954|;Here if need to fetch next source word
                                                                             |1554|4955|        READ [E]
000,000,0,04,06,1,46,0,10,0,0,00,00,00,00,00,0,20,1,1,1,14,00,00,0002,00,7,00,0,0,0,1556|4956|        [MB]_[W3],                              ;Copy data
                                                                             |1556|4957|         J[2]_CTR
                                                                             |1556|4958|        SWAP [W3]_[W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,03,01,00,3030,00,7,00,0,0,0,1558|4959|        #2*[W1]_[W1],
                                                                             |1558|4960|         GOTO [NSB 30]
                                                                             |1558|4961|
                                                                             |1558|4962|;Here for 3rd byte in word
000,000,1,11,06,1,12,0,00,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0003,00,7,00,0,0,0,1559|4963|NSB 3:  #2*[W3]_[W1],                            ;Copy to right word
                                                                             |1559|4964|         J[3]_CTR
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,3030,00,7,00,0,0,0,1560|4965|NSB 30: #4*[W1]_B,
                                                                             |1560|4966|        LOOP [NSB 30]
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,07,0,0,0,1561|4967|SWAP W1 W1:
                                                                             |1561|4968|        SWAP [W1]_[W1],
                                                                             |1561|4969|         RETURN
                                                                             |1561|4970|
                                                                             |1561|4971|;Here for 2nd or 4th byte in word
000,000,0,04,06,1,12,0,00,0,0,00,00,00,00,00,0,52,1,1,1,12,02,00,0000,00,7,00,0,0,0,1562|4972|NSB 2:  [W3]_[W1],
                                                                             |1562|4973|         IF CT [MC] RETURN
                                                                             |1562|4974|;Here for 2nd byte in word
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,07,0,0,0,1563|4975|        SWAP [W1]_[W1],
                                                                             |1563|4976|         RETURN
                                                                             |1563|4977|
000,000,0,04,06,1,12,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1564|4978|NXT SRC I:
                                                                             |1564|4979|        [W3]_[W1],                              ;Next byte
                                                                             |1564|4980|         RETURN
                                                                             |1564|4981|
                                                                             |1564|4982|;Here to read the next destination byte
000,000,0,04,06,1,16,0,14,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1565|4983|R NXT DST BYT:
                                                                             |1565|4984|
                                                                             |1565|4985|;Here to write the next destination byte
                                                                             |1565|4986|; Call with byte right justified in W1
                                                                             |1565|4987|W NXT DST BYT:
                                                                             |1565|4988|        [W4]+1_[W4]                             ;Next byte adr
                                                                             |1565|4989|        ASR [W4]_[E] MC                         ;Copy adr to E
000,000,0,01,06,1,16,0,40,0,0,00,00,11,00,00,0,52,1,1,1,03,02,00,3052,00,7,00,0,0,0,1567|4990|        ASR [W4]_[E] MC,                        ;Copy word adr
                                                                             |1567|4991|         IF CT [MC] THEN [WNDB 2]               ; Check for odd or even byte
                                                                             |1567|4992|        IF CT [MC] THEN [WNDB 3]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,52,1,1,0,03,02,00,3046,00,7,00,0,0,0,1568|4993|;Here if need to fetch next source word
                                                                             |1568|4994|        READ [E]
000,000,0,04,06,1,46,0,20,0,0,00,00,00,00,00,0,20,1,1,1,14,00,00,0003,00,7,00,0,0,0,1570|4995|        [MB]_[W5],                              ;Copy data
                                                                             |1570|4996|         J[3]_CTR
                                                                             |1570|4997|        J[NBBYTE1]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0454,00,7,01,0,0,0,1571|4998|        SWAP [W1]_[W1]
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,03,01,00,3050,00,7,00,0,0,0,1573|4999|        #2*[W1]_[W1],
                                                                             |1573|5000|         GOTO [WNDB 30]
                                                                             |1573|5001|
                                                                             |1573|5002|;Here for 3rd byte in word
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0455,00,7,01,0,0,0,1574|5003|WNDB 3: J[NBBYTE3]_RAMFILE ADR
000,000,1,11,06,1,22,0,00,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0003,00,7,00,0,0,0,1575|5004|        #2*[W5]_[W1],                            ;Copy to right word
                                                                             |1575|5005|        J[3]_CTR
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,3050,00,7,00,0,0,0,1576|5006|WNDB 30:#4*[W1]_B,
                                                                             |1576|5007|        LOOP [WNDB 30]
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,04,0,0,0,1577|5008|        RAMFILE_[MB],                           ;Get mask for character
                                                                             |1577|5009|         RETURN
                                                                             |1577|5010|
000,000,0,04,10,0,72,2,44,0,0,00,00,00,00,00,0,52,1,1,0,03,02,00,3057,00,7,07,0,0,0,1578|5011|WNDB 2: SWAP [K 777]_[MB],                      ;Mask for byte
                                                                             |1578|5012|        IF CT [MC] THEN [WNDB 4]
                                                                             |1578|5013|;Here for 2nd byte in word
                                                                             |1578|5014|        SWAP [W1]_[W1]                          ;Position data
000,000,0,04,11,0,46,0,20,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1580|5015|WNDB 20:[MB]BAR&[W5]_B                          ;Strip old byte from word
                                                                             |1580|5016|        [MB]&[W1]_B                             ;Strip data to move
000,000,0,04,17,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1582|5017|        [W1].OR.[W5]_B,                         ;Add new bits to word
                                                                             |1582|5018|        RETURN
                                                                             |1582|5019|
                                                                             |1582|5020|;Here for 4th byte in word
000,000,0,06,11,0,72,0,20,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,1583|5021|WNDB 4: [K 777]BAR&[W5]_Q                       ;Mask off old data
                                                                             |1583|5022|        [K 777]&[W1]_B                          ;Mask off extraneous bits from data
000,000,0,04,17,1,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,1585|5023|        Q.OR.[W1]_[MB],                         ;Add new byte to data
                                                                             |1585|5024|         CALL [MEMORY WRITE]
000,000,0,07,06,1,42,0,40,0,1,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1586|5025|        [E]+1_Q_[E],
                                                                             |1586|5026|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |1586|5027|        CALL [MEMORY READ]
000,000,0,04,06,1,46,0,20,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1587|5028|        [MB]_[W5],
                                                                             |1587|5029|         RETURN
                                                                             |1587|5030|.ENDIF/FTCIS
                                                                             |1587|5031|
                                                                             |1587|5032|.TOC 2, "IO Instructions"
                                                                             |1587|5033|
000,000,1,11,06,1,32,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,36,00,3072,00,7,00,0,0,0,1588|5034|IO:     #2*[IR]_[W1],                            ;Copy IR to W1 shifted left
                                                                             |1588|5035|        IF [USER] CALL [CHECK IO OK]
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,3067,00,7,00,0,0,0,1589|5036|        #4*[W1]_B,                               ;Keep shifting
                                                                             |1589|5037|         CALL [#2*W1_W1 LOAD IR]
                                                                             |1589|5038|        DISPATCH [IO 0]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,16,7,00,0,0,0,1590|5039|
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,12,01,00,0000,00,7,11,0,0,0,1591|5040|#2*W1_W1 LOAD IR:
                                                                             |1591|5041|        #2*[W1]_[W1],                            ;Keep shifting
                                                                             |1591|5042|         LOAD IR,RETURN
                                                                             |1591|5043|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,36,00,3072,00,7,00,0,0,0,1592|5044|IO 4:
                                                                             |1592|5045|
                                                                             |1592|5046|;Here for an illegal IO instruction
                                                                             |1592|5047|XIO:    IF [USER] CALL [CHECK IO OK]
                                                                             |1592|5048|        GOTOP [IFETCH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1593|5049|
                                                                             |1593|5050|;Here to check if EXEC or user IO is set
                                                                             |1593|5051|; If IO is legal return, else do MUUO
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,37,00,4000,00,7,01,0,0,0,1594|5052|CHECK IO OK:
                                                                             |1594|5053|        J[04000]_[W1],IF [EXEC] RETURN           ;Bit 24
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,12,46,00,0000,00,7,07,0,0,0,1595|5054|        SWAP [W1]_[W1],IF [PXCT] RETURN         ;Make bit 6-User I/O
000,000,0,14,14,0,02,0,03,0,0,00,00,00,00,00,0,64,1,1,1,12,03,00,0000,00,7,00,0,0,0,1596|5055|        [W1]&[PC FLAGS]_Y,
                                                                             |1596|5056|         IF NOT CT [IZ] RETURN
                                                                             |1596|5057|        GOTOP [MUUO]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1637,00,7,00,0,0,0,1597|5058|
                                                                             |1597|5059|.TOC 1, "Executive Instructions"
                                                                             |1597|5060|.TOC 2, "Arithmetic Processor"
                                                                             |1597|5061|.TOC 3, "APRID - APR Identification"
                                                                             |1597|5062|
                                                                             |1597|5063|;Arithmetic Processor Identification
                                                                             |1597|5064|;        APRID
                                                                             |1597|5065|;       +-------+---+---+---+
                                                                             |1597|5066|;       | 70000 | I | X | Y |
                                                                             |1597|5067|;       +-------+---+---+---+
                                                                             |1597|5068|;
                                                                             |1597|5069|;  0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1597|5070|;  | \       /\                      / \                                 /
                                                                             |1597|5071|;  |     |                 |                             + ---reserved
                                                                             |1597|5072|;  |     |                 + ---u-code version number
                                                                             |1597|5073|;  |     + ---reserved
                                                                             |1597|5074|;  +---u-code includes address break
                                                                             |1597|5075|
000,000,0,01,06,1,57,0,54,0,0,00,00,51,00,00,0,20,1,1,0,16,00,00,4002,00,7,01,0,0,0,1598|5076|APRID:
                                                                             |1598|5077|
                                                                             |1598|5078|;Possible coding
                                                                             |1598|5079|;       J[X]_[MEM-OP]                           ;load bits 0-11
                                                                             |1598|5080|;       ROL [MEM-OP]_[MEM-OP],J[10.]_CTR
                                                                             |1598|5081|;       ROL [MEM-OP]-[MEM-OP],LOOP [.]
                                                                             |1598|5082|;       [MEM-OP]J[Y]-[MEM-OP]                   ;Add bits 12-23
                                                                             |1598|5083|;       ROL [MEM-OP]-[MEM-OP],J[10.]_CTR
                                                                             |1598|5084|;       ROL [MEM-OP]-[MEM-OP],LOOP [.]
                                                                             |1598|5085|;       [MEM-OP]J[Z]-[MEM-OP],                  ;Add bits 24-35
                                                                             |1598|5086|;        GOTO [TO MEMORY]
                                                                             |1598|5087|
                                                                             |1598|5088|
                                                                             |1598|5089|.IFNOT/FTADRB
                                                                             |1598|5090|        J[U-CODE VERSION]_[MEM-OP]              ;Put u-code version in register
                                                                             |1598|5091|.ENDIF/FTADRB
                                                                             |1598|5092|.IF/FTADRB
                                                                             |1598|5093|        J[U-CODE VERSION]_Y24-Y35,              ;Put u-code version in register
                                                                             |1598|5094|        [BIT17]_F,F_ROR Y_[MEM-OP]              ;Bit for address break feature
                                                                             |1598|5095|.ENDIF/FTADRB
000,000,0,04,10,0,56,2,54,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4371,00,7,07,0,0,0,1599|5096|        SWAP [MEM-OP]_[MEM-OP],                 ;Put u-code version in lh
                                                                             |1599|5097|        GOTO [TO MEM]
                                                                             |1599|5098|
                                                                             |1599|5099|.TOC 3, "WRAPR - Write APR Conditions"
                                                                             |1599|5100|;Conditions Out, arithmetic processor
                                                                             |1599|5101|;        WRAPR,
                                                                             |1599|5102|;       +-------+---+---+---+
                                                                             |1599|5103|;       | 70020 | I | X | Y |
                                                                             |1599|5104|;       +-------+---+---+---+
                                                                             |1599|5105|;
                                                                             |1599|5106|; E bits
                                                                             |1599|5107|;
                                                                             |1599|5108|;       181920212223242526272829303132333435
                                                                             |1599|5109|;        | | | | | | \    flags    / | \   /
                                                                             |1599|5110|;        | | | | | |                 |   + ---PIA
                                                                             |1599|5111|;        | | | | | |                 + ---should be zero
                                                                             |1599|5112|;        | | | | | + ---Set selected flags
                                                                             |1599|5113|;        | | | | + ---Clear selected flags
                                                                             |1599|5114|;        | | | + ---disable selected flags
                                                                             |1599|5115|;        | | + ---enable selected flags
                                                                             |1599|5116|;        | + ---clear all IO devices
                                                                             |1599|5117|;        + ---should be zero
                                                                             |1599|5118|
000,000,0,01,06,1,57,0,00,0,0,00,00,51,00,00,0,20,1,1,0,16,00,00,0010,00,7,01,0,0,0,1600|5119|WRAPR:
                                                                             |1600|5120|.IFNOT/FT7PI
                                                                             |1600|5121|        J[6]_[W1]                               ;Mask for PI channel
                                                                             |1600|5122|        [W1]&[E]_Y,IX_MX
                                                                             |1600|5123|        ROR [W1]_[W1],                          ;Make mask for bit 35
                                                                             |1600|5124|         IF NOT CT [MZ] THEN [CNAPR1]
                                                                             |1600|5125|        [W1]&[E]_Y,                             ;May not put on channel 1
                                                                             |1600|5126|         IF NOT CT [IZ] THEN [MUUO]
                                                                             |1600|5127|CNAPR1:
                                                                             |1600|5128|.ENDIF/FT7PI
                                                                             |1600|5129|.IF/FTMBZ
                                                                             |1600|5130|        J[0010]_Y24-Y35,[BIT17]_F,              ;Makes 0,,400010
                                                                             |1600|5131|        F_ROR Y_[W1]
000,000,0,14,14,0,02,0,40,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1637,00,7,00,0,0,0,1601|5132|        [W1]&[E]_Y,                             ;Check for illegitimate bits
                                                                             |1601|5133|         IF NOT CT [IZ] THEN [MUUO]
                                                                             |1601|5134|.ENDIF/FTMBZ
                                                                             |1601|5135|        J[04000]_[W1]                           ;Mask to test bits
000,000,0,06,03,0,02,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0556,00,7,01,0,0,0,1603|5136|        [W1]+[W1]_Q,                            ;Put mask in Q reg
                                                                             |1603|5137|         J[APR FLAGS]_RAMFILE ADR
                                                                             |1603|5138|        J[07760]_[W2]                           ;Mask for flags
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,7760,00,7,01,0,0,0,1604|5139|        [E]&[W2]_B                              ;leave only flags
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3132,00,7,04,0,0,0,1606|5140|        RAMFILE_[W1],                           ;Get processor flags
                                                                             |1606|5141|         CALL [CAPR X]                          ; Turn on/turn off flags
000,000,0,04,10,0,06,2,04,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3135,00,7,07,0,0,0,1607|5142|        SWAP [W2]_[W2],                         ;Swap halves
                                                                             |1607|5143|         CALL [CAPR Y]                          ; Turn off/turn on flags
                                                                             |1607|5144|        J[7]_[W2]                               ;Mask for PI chnl
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0007,00,7,01,0,0,0,1608|5145|        [W2]BAR&[W1]_B                          ;Strip old PI chnl
000,000,0,04,11,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1609|5146|        [E]&[W2]_B                              ;leave only PI chnl
000,000,0,04,14,0,42,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1610|5147|.IFNOT/FT7PI
                                                                             |1610|5148|        [W2]+[K -1]_Y,                          ;Check for setting PI level 1
                                                                             |1610|5149|         IF CT [IZ] THEN [MUUO]                 ;No you do not
                                                                             |1610|5150|.ENDIF/FT7PI
000,000,0,14,17,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1611|5151|        [W2].OR.[W1]_Y,ALU_RAMFILE              ;Save updated APR flags
000,000,1,15,14,1,42,0,00,0,0,00,00,11,00,00,0,64,1,1,1,01,03,00,3117,00,7,00,0,0,0,1612|5152|        Q&[E]_F,ALU_Y/YES,#2*Q_Q,               ;Test for IO reset
                                                                             |1612|5153|         IF NOT CT [IZ] CALL [RESET IO]
                                                                             |1612|5154|        CALL [SET PROC REG]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1614|5155|        SET LOCAL,
                                                                             |1614|5156|         GOTOP [IFETCH]
                                                                             |1614|5157|
                                                                             |1614|5158|;Here to perform an IO reset function
                                                                             |1614|5159|; Wave IO RESET, clear all APR flags, clear all TTY flags
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0556,00,7,01,0,0,0,1615|5160|RESET IO:
                                                                             |1615|5161|        J[APR FLAGS]_RAMFILE ADR                ;Address APR flags
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1616|5162|        ZERO_Y,ALU_RAMFILE                      ;Clear flags
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,1617|5163|        J[LNOSW]_[W6],Y_RAMFILE ADR             ;Address first TTY link block
                                                                             |1617|5164|        J[04200]_[W6]                           ; CR5-RTS, CR1=DTR
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4200,00,7,01,0,0,0,1618|5165|        SWAP [W5]_[W5]
000,000,1,11,03,0,22,0,20,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1620|5166|        #4*[W5]_B,ALU_RAMFILE                   ;Save initial CTY status
000,000,0,06,06,1,26,0,00,0,1,00,00,00,00,00,0,20,1,1,0,14,00,00,0075,00,7,00,0,0,0,1621|5167|        [W6]+1_F,F_Q,J[075]_CTR                 ;Address mode word
000,000,0,06,06,1,00,0,00,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1622|5168|IOR2:   Q+1_F,F_Q_Y,Y_RAMFILE ADR               ;Address next location
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,11,00,00,3126,00,7,04,0,0,0,1623|5169|        ZERO_Y,ALU_RAMFILE,LOOP [IOR2]
                                                                             |1623|5170|        ;J[02000]_[W1]                          ;Bit for IO reset
                                                                             |1623|5171|        ;[W1]_Y,ALU_PROC REG,                   ;Tell processor reset
                                                                             |1623|5172|        ; CALL [SET PROC REG]                   ; Then tell it right info
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3225,00,7,10,0,0,0,1624|5173|        ZERO_Y,ALU_PROC REG,                    ;Clean processor reg
                                                                             |1624|5174|         CALL [SET PROC REG]                    ; Then load it
                                                                             |1624|5175|        GOTO [SET PCI MODE]                     ;Set mode for CTY
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3500,00,7,00,0,0,0,1625|5176|
                                                                             |1625|5177|;Here to test for set/lest for clear flags
                                                                             |1625|5178|; Mask (to be shifted left) is in Q and is tested with E
                                                                             |1625|5179|; W2 is ored or bar&ed into W1
                                                                             |1625|5180|
000,000,1,15,14,1,42,0,00,0,0,00,00,11,00,00,0,64,1,1,1,01,03,00,3140,00,7,00,0,0,0,1626|5181|CAPR X: Q&[E]_F,ALU_Y/YES,#2*Q_Q,               ;Test for set selected flags/enables
                                                                             |1626|5182|         IF NOT CT [IZ] CALL [W2.OR.W1]         ;Set selected flags/enables
000,000,1,15,14,1,42,0,00,0,0,00,00,11,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,1627|5183|        Q&[E]_F,ALU_Y/YES,#2*Q_Q,               ;Test for clear selected flags/enables
                                                                             |1627|5184|         IF CT [IZ] RETURN
000,000,0,04,11,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1628|5185|W2BAR&W1_B:
                                                                             |1628|5186|        [W2]BAR&[W1]_B,                         ;Clear selected flags/enables
                                                                             |1628|5187|        RETURN
                                                                             |1628|5188|
                                                                             |1628|5189|;Here to test for clear/test for set flags
                                                                             |1628|5190|; Mask (to be shifted left) is in Q and is tested with E
                                                                             |1628|5191|; W2 is ored or bar&ed into W1
000,000,1,15,14,1,42,0,00,0,0,00,00,11,00,00,0,64,1,1,1,03,02,00,3137,00,7,00,0,0,0,1629|5192|CAPR Y: Q&[E]_F,ALU_Y/YES,#2*Q_Q,                ;Test for set selected flags/enables
                                                                             |1629|5193|         IF CT [IZ] THEN [CAPRY2]
                                                                             |1629|5194|        [W2]BAR&[W1]_B                          ;Clear selected flags/enables
000,000,1,15,14,1,42,0,00,0,0,00,00,11,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,1631|5195|CAPRY2: Q&[E]_F,ALU_Y/YES,#2*Q_Q,                ;Test for clear selected flags/enables
                                                                             |1631|5196|        IF CT [IZ] RETURN
000,000,0,04,17,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1632|5197|W2.OR.W1:
                                                                             |1632|5198|        [W2].OR.[W1]_B,                         ;Set selected flags/enables
                                                                             |1632|5199|        RETURN
                                                                             |1632|5200|
                                                                             |1632|5201|.TOC 3, "RDAPR - Read APR Conditions"
                                                                             |1632|5202|;Conditions In, arithmetic processor
                                                                             |1632|5203|;        RDAPR,
                                                                             |1632|5204|;       +-------+---+---+---+
                                                                             |1632|5205|;       | 70024 | I | X | Y |
                                                                             |1632|5206|;       +-------+---+---+---+
                                                                             |1632|5207|;
                                                                             |1632|5208|; 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1632|5209|;            \     flags    /                   \     flags     / | \   /
                                                                             |1632|5210|;                    |                                  |         |   + ---PIA
                                                                             |1632|5211|;                    |                                  |         + ---intrupt req
                                                                             |1632|5212|;                    |                                  + ---flags
                                                                             |1632|5213|;                    + ---flags enabled for interrupts
                                                                             |1632|5214|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3143,00,7,00,0,0,0,1633|5215|RDAPR:
                                                                             |1633|5216|        CALL [CI APR]
                                                                             |1633|5217|        GOTO [TO MEM]                           ;Store results and exit
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4371,00,7,00,0,0,0,1634|5218|
                                                                             |1634|5219|;Here for RDAPR, SZAPR, or SNAPR,
                                                                             |1634|5220|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0556,00,7,01,0,0,0,1635|5221|CI APR: J[APR FLAGS]_RAMFILE ADR                ;Where we keep f1ags
                                                                             |1635|5222|        RAMFILE_[MEM-OP]
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1636|5223|        SWAP [MEM-OP]_[W1]                      ;Put enables in RH
000,000,0,14,14,0,56,0,00,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1638|5224|        [MEM-OP]&[W1]_Y,IX_MX                   ;Mask bits
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,44,1,1,0,12,02,00,0010,00,7,01,0,0,0,1639|5225|        J[0010]_[W1],                           ;Bit for interrupt request
                                                                             |1639|5226|         IF CT [MZ] RETURN
000,000,0,04,17,0,02,0,54,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1640|5227|        [W1].OR.[MEM-OP]_B,
                                                                             |1640|5228|         RETURN
                                                                             |1640|5229|
                                                                             |1640|5230|.TOC 3, "SZAPR (CONSZ APR) - Skip on masked APR conditions all zero"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3143,00,7,00,0,0,0,1641|5231|CONSZ APR:
                                                                             |1641|5232|SZAPR:
                                                                             |1641|5233|        CALL [CI APR]                           ;Get APR bits for CONI
000,000,0,04,10,1,00,0,55,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,3276,00,7,00,0,0,0,1642|5234|        ZERO_[MEM-OP LH],
                                                                             |1642|5235|         GOTO [CONSZ]
                                                                             |1642|5236|
                                                                             |1642|5237|.TOC 3, "SNAPR (CONSO APR) - Skip on any masked APR conditions non-zero"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3143,00,7,00,0,0,0,1643|5238|CONSO APR:
                                                                             |1643|5239|SNAPR:
                                                                             |1643|5240|        CALL [CI APR]                           ;Get APR bits for CONI
000,000,0,04,10,1,00,0,55,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,3301,00,7,00,0,0,0,1644|5241|        ZERO_[MEM-OP LH],
                                                                             |1644|5242|         GOTO [CONSO]
                                                                             |1644|5243|
                                                                             |1644|5244|
                                                                             |1644|5245|.TOC 2, "PI System"
                                                                             |1644|5246|.TOC 3, "WRPI - Write PI Conditions"
                                                                             |1644|5247|;Conditions Out, Priority Interrupt
                                                                             |1644|5248|;        WRPI,
                                                                             |1644|5249|;       +-------+---+---+---+
                                                                             |1644|5250|;       | 70060 | I | X | Y |
                                                                             |1644|5251|;       +-------+---+---+---+
                                                                             |1644|5252|;
                                                                             |1644|5253|; E bits
                                                                             |1644|5254|;       181920212223242526272829303132333435
                                                                             |1644|5255|;        \     / | | | | | | | 1 2 3 4 5 6 7
                                                                             |1644|5256|;         \   /  | | | | | | | \           /
                                                                             |1644|5257|;          \ /   | | | | | | |       + ---Select levels
                                                                             |1644|5258|;           |    | | | | | | + ---Turn on PI system
                                                                             |1644|5259|;           |    | | | | | + ---Turn off PI system
                                                                             |1644|5260|;           |    | | | | + ---Turn off level
                                                                             |1644|5261|;           |    | | | + ---Turn on level
                                                                             |1644|5262|;           |    | | + ---initiate interrupt on level
                                                                             |1644|5263|;           |    | + ---clear PI system
                                                                             |1644|5264|;           |    + ---drop program request on level
                                                                             |1644|5265|;           + ---should be zero
                                                                             |1644|5266|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,7400,00,7,01,0,0,0,1645|5267|WRPI:
                                                                             |1645|5268|.IF/FT7PI
                                                                             |1645|5269|.IF/FTMBZ
                                                                             |1645|5270|        J[07400]_[W1]                           ;Mask for must be zero bits
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,3322,00,7,00,0,0,0,1646|5271|        #4*[W1]_B,                              ;Shift 6 places and check
                                                                             |1646|5272|         CALL [LLS4 MBZ]
                                                                             |1646|5273|.ENDIF/FTMBZ
                                                                             |1646|5274|        BIT0_[W2]                               ;Bit for PI on
000,000,0,01,10,1,00,0,04,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1647|5275|        J[0177]_[W3]                            ;Mask for chnl bits
000,000,0,06,06,1,12,0,00,0,1,00,00,00,00,03,0,20,1,1,0,16,00,00,0561,00,7,01,0,0,0,1649|5276|        [W3]+1_Q,                               ; Put 200 in Q
                                                                             |1649|5277|         J[PI LVL REG]_RAMFILE ADR
                                                                             |1649|5278|        [E]&[W3]_B                              ;Leave only chnls to select
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3132,00,7,04,0,0,0,1651|5279|        RAMFILE_[W1],                           ;Get PI LVL REG from ramfile
                                                                             |1651|5280|         CALL [CAPR X]                          ; Test for PION/PIOFF
                                                                             |1651|5281|.ENDIF/FT7PI
                                                                             |1651|5282|.IFNOT/FT7PI
                                                                             |1651|5283|.IF/FTMBZ
                                                                             |1651|5284|        J[07401]_[W1]                           ;Mask for must be zero bits
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,3322,00,7,00,0,0,0,1653|5285|        #4*[W1]_B,                              ;Shift 6 places and check
                                                                             |1653|5286|        CALL [LLS4 MBZ]
                                                                             |1653|5287|.ENDIF/FTMBZ
                                                                             |1653|5288|        BIT0_[W2]                               ;Bit for PI on
000,000,0,01,10,1,00,0,04,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1654|5289|        [K 77]_[W3]                             ;Mask for chnl bits
000,000,0,06,06,1,12,0,00,0,1,00,00,00,00,03,0,20,1,1,0,16,00,00,0561,00,7,01,0,0,0,1656|5290|        [W3]+1_Q,                               ; Put 100 in Q
                                                                             |1656|5291|         J[PI LVL REG]_RAMFILE ADR
                                                                             |1656|5292|        [E]&[W3]_B                              ;Leave only chnls to select
000,000,1,13,10,0,00,0,00,0,0,00,00,31,00,00,0,20,1,1,0,01,01,00,3132,00,7,04,0,0,0,1658|5293|        RAMFILE_Y,Y_[W1] QLS_Q,                 ;Put PI LVL REG in W1
                                                                             |1658|5294|        QION_SIO0 #0_QIO0,                      ; Put 200 in Q
                                                                             |1658|5295|        CALL [CAPR X]                           ; Test for PION/PIOFF
                                                                             |1658|5296|.ENDIF/FT7PI
000,000,0,04,06,1,12,0,04,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3135,00,7,00,0,0,0,1659|5297|        [W3]_[W2],                              ;Test for turn off/on levels
                                                                             |1659|5298|        CALL [CAPR Y]                           ; Set/clear bits in W1
                                                                             |1659|5299|        [W1]_RAMFILE                            ;Save updated PI LVL REG
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1660|5300|        J[PI SFT REQ]_RAMFILE ADR
000,000,1,15,14,1,42,0,00,0,0,00,00,11,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1662|5301|        Q&[E]_F,ALU_Y/YES,#2*Q_Q,IX_MX           ;Test for initiate int on level
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,44,1,1,0,03,02,00,3201,00,7,04,0,0,0,1663|5302|        RAMFILE_[W2],                           ;Get software interrupt requests
                                                                             |1663|5303|         IF CT [MZ] THEN [C PI 5]
000,000,0,04,17,0,12,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1664|5304|        [W3].OR.[W2]_B,ALU_RAMFILE              ;Add new levels
000,000,1,15,14,1,42,0,00,0,0,00,00,11,00,00,0,64,1,1,1,03,02,00,3204,00,7,00,0,0,0,1665|5305|C PI 5: Q&[E]_F,ALU_Y/YES,#2*Q_Q,                ;Test for clear PI system
                                                                             |1665|5306|         IF CT [IZ] THEN [C PI 6]
                                                                             |1665|5307|        CALL [RESET PI]                         ;Reset the PI system
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1667|5308|        SET LOCAL, GOTOP [IFETCH]
                                                                             |1667|5309|
000,000,0,14,14,1,42,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,3206,00,7,00,0,0,0,1668|5310|C PI 6: Q&[E]_Y,                                ;Test for drop int on level
                                                                             |1668|5311|         IF CT [IZ] THEN [C PI 7]
000,000,0,04,11,0,12,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1669|5312|        [W3]BAR&[W2]_B,ALU_RAMFILE              ;Clear some levels
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3224,00,7,00,0,0,0,1670|5313|C PI 7: CALL [SET PI SYSTEM]                    ;Setup PI hdw
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1671|5314|        SET LOCAL,GOTOP [IFETCH]
                                                                             |1671|5315|
                                                                             |1671|5316|
                                                                             |1671|5317|;Here to reset the PI system
                                                                             |1671|5318|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0557,00,7,01,0,0,0,1672|5319|RESET PI:
                                                                             |1672|5320|        J[PI IN PROG]_RAMFILE ADR               ;Ints in progress in bits 29-35
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1673|5321|        ZERO_Y,ALU_RAMFILE
                                                                             |1673|5322|        J[PI SFT REQ]_RAMFILE ADR               ;Software PI requests
000,000,0,14,10,1,00,0,00,0,0,00,00,00,02,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1675|5323|        ZERO_Y,ALU_RAMFILE,
                                                                             |1675|5324|         INT OP/MASTER CLEAR                    ;bits 29-35 are levels on
                                                                             |1675|5325|        J[PI LVL REG]_RAMFILE ADR               ;bit 0 is PI system on/off flag
000,000,0,04,10,1,00,0,43,0,0,00,00,00,46,00,0,20,1,1,1,03,01,00,3224,00,7,04,0,0,0,1677|5326|        ZERO_[PI REG],ALU_RAMFILE,
                                                                             |1677|5327|         Y_2914 STATUS,
                                                                             |1677|5328|        GOTO [SET PI SYSTEM]                    ;Set mask register
                                                                             |1677|5329|
                                                                             |1677|5330|;Here to set up 2914 PI mask
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0561,00,7,01,0,0,0,1678|5331|SET PI MASK:
                                                                             |1678|5332|        J[PI LVL REG]_RAMFILE ADR               ;Address ramfile list of levels on
                                                                             |1678|5333|        J[0300]_[W2]                            ;Always enable level 0 and 1
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0300,00,7,01,0,0,0,1679|5334|        RAMFILE_[W1]                            ;Get levels from ramfile
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,3223,00,7,00,0,0,0,1681|5335|        [W1]_Y,
                                                                             |1681|5336|         IF NOT CT [IN] THEN [SPM 7]
                                                                             |1681|5337|        [W1].OR.[W2]_B                          ;Enable software levels also
000,000,0,14,07,0,06,0,00,0,0,00,00,00,72,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1683|5338|SPM 7:  COMPLEMENT [W2]_F,F_Y,                  ;Load mask with PIs to permit
                                                                             |1683|5339|        Y_2914 MASK,
                                                                             |1683|5340|         RETURN
                                                                             |1683|5341|
                                                                             |1683|5342|;Here to setup PI system
                                                                             |1683|5343|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3216,00,7,00,0,0,0,1684|5344|SET PI SYSTEM:
                                                                             |1684|5345|        CALL [SET PI MASK]
                                                                             |1684|5346|        ;GOTO [SET PROC REG]
                                                                             |1684|5347|
                                                                             |1684|5348|
                                                                             |1684|5349|;PROC REG (Processor register)
                                                                             |1684|5350|; 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1684|5351|;             \   /                             \ / |\    / \           /
                                                                             |1684|5352|;               |                                |  |  |          + ---PI req
                                                                             |1684|5353|;               |                                |  |  + ---Line PI reg
                                                                             |1684|5354|;               |                                |  + ---IO reset
                                                                             |1684|5355|;               + ---Current AC block            + ---reserved
                                                                             |1684|5356|;
                                                                             |1684|5357|;Ramfile word [PROC REG]
                                                                             |1684|5358|;0 1 2 3 4 5 6 7 8 91011l2l3l41516l7l81920212223242526272829303132333435
                                                                             |1684|5359|;            \   / \   /                       \ /   \   /
                                                                             |1684|5360|;              |     + ---Prev ctxt AC block    |      + ---Line PI lvl
                                                                             |1684|5361|;              + ---Current AC block            + ---reserved
                                                                             |1684|5362|
                                                                             |1684|5363|
                                                                             |1684|5364|;Here to set up hardware PROC reg according to Ramfile
                                                                             |1684|5365|; Called whenever APR/TTY/SoftwarePIReq change
                                                                             |1684|5366|; Uses W1-W4
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0560,00,7,01,0,0,0,1685|5367| SET PROC REG:
                                                                             |1685|5368|        J[PI SFT REQ]_RAMFILE ADR               ;Ramfile list of software pi reqs
                                                                             |1685|5369|        RAMFILE_[W4]
000,000,0,04,10,0,00,0,14,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1686|5370|        J[APR FLAGS]_RAMFILE ADR                ;Address APR flags
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0556,00,7,01,0,0,0,1687|5371|        RAMFILE_[W1]                            ;Get APR flags
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1688|5372|        SWAP [W1]_[W2]                          ;Swap flags and enables
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,01,03,00,3251,00,7,00,0,0,0,1690|5373|        [W1]&[W2]_Y,                            ;Check for flags with enables
                                                                             |1690|5374|        IF NOT CT [IZ] CALL [SPR 77]            ;Set request level
                                                                             |1690|5375|        J[04000]_[W1]                           ;Will become 020000
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,0,16,00,00,2220,00,7,01,0,0,0,1692|5376|        J[02220]_Y24-Y35,                       ;Mask for flags -022220
                                                                             |1692|5377|        [W1]+[W1]_F,F_LSZ Y_[W1]
000,000,0,06,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0007,00,7,00,0,0,0,1693|5378|        [W1]_Q,J[7]_CTR                         ;Save mask
000,000,0,04,10,1,00,0,10,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,1694|5379|         J[LNOSW]_[W3],Y_RAMFILE ADR            ;Address line block
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1695|5380|SPR 2:  RAMFILE_[W1]                    ;Get status for line
000,000,1,11,14,1,02,0,04,0,0,00,00,11,00,00,0,64,1,1,1,03,02,00,3242,00,7,00,0,0,0,1696|5381|        Q&[W1]_F,LSZ F_[W2],                    ;Check for any flags set
                                                                             |1696|5382|         IF CT [IZ] THEN [SPR 4]
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,01,03,00,3251,00,7,00,0,0,0,1697|5383|        [W1]&[W2]_Y,                            ;Check for enables for flags
                                                                             |1697|5384|         IF NOT CT [IZ] CALL [SPR 77]           ; Set int req
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0010,00,7,01,0,0,0,1698|5385|SPR 4:  J[010]_[W1]                             ;To make next line adr
000,000,0,04,03,0,02,0,10,0,0,00,00,00,00,03,0,20,1,1,1,11,00,00,3237,00,7,00,0,0,0,1699|5386|        [W1]+[W3]_B,Y_RAMFILE ADR,              ;Next block adr
                                                                             |1699|5387|         LOOP [SPR 2]
                                                                             |1699|5388|        J[PROC REG]_RAMFILE ADR                 ; Address ramfile copy of proc reg
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0562,00,7,01,0,0,0,1700|5389|        RAMFILE_[W3]                    ;Get ramfile copy of proc reg
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0563,00,7,01,0,0,0,1702|5390|SET RFPRG:
                                                                             |1702|5391|        J[RF PROC REG]_RAMFILE ADR
000,000,0,14,17,0,16,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1703|5392|        [W4].OR.[W3]_Y,ALU_RAMFILE
000,000,0,14,17,0,16,0,10,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,10,0,0,0,1704|5393|        [W4].OR.[W3]_Y,ALU_PROC REG,            ;Change software interrupts
                                                                             |1704|5394|         RETURN
                                                                             |1704|5395|
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0007,00,7,01,0,0,0,1705|5396|SPR 77: J[7]_[W2]                               ;Mask for PI level
000,000,0,04,14,0,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,1706|5397|        [W2]&[W1]_B,IF CT [IZ] RETURN           ;If no channel dismiss
                                                                             |1706|5398|        J[BIT28]_[W2]                           ;Base to index into bit table
000,000,0,14,03,0,06,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1708|5399|        [W2]+[W1]_Y,Y_RAMFILE ADR               ;Make bit for our level
                                                                             |1708|5400|        RAMFILE_[W1]                    ;Get bit for interrupt
000,000,0,04,17,0,02,0,14,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1710|5401|        [W1].OR.[W4]_B,RETURN                   ; Set 1evel
                                                                             |1710|5402|
                                                                             |1710|5403|
                                                                             |1710|5404|.TOC 3, "RDPI - Read PI Conditions"
                                                                             |1710|5405|;Conditions In, Priority Interrupt
                                                                             |1710|5406|;        RDPI,
                                                                             |1710|5407|;       +-------+---+---+---+
                                                                             |1710|5408|;       | 70064 | I | X | Y |
                                                                             |1710|5409|;       +-------+---+---+---+
                                                                             |1710|5410|;
                                                                             |1710|5411|;0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1710|5412|;                      1 2 3 4 5 6 7       1 2 3 4 5 6 7 | 1 2 3 4 5 6 7
                                                                             |1710|5413|;                      \           /       \           / | \           /
                                                                             |1710|5414|;                            |                   |       |       + ---levels on
                                                                             |1710|5415|;                            |                   |       + ---PI system on
                                                                             |1710|5416|;                            |                   + ---interrupt in progress on
                                                                             |1710|5417|;                            + ---program requests on
                                                                             |1710|5418|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3263,00,7,00,0,0,0,1711|5419|RDPI:
                                                                             |1711|5420|        CALL [CPI]                              ;Get PI bits
                                                                             |1711|5421|        J[PI SFT REQ]_RAMFILE ADR               ;Get software requests
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0560,00,7,01,0,0,0,1712|5422|        RAMFILE_[W1]                    ;Get software requests
000,000,0,04,10,0,02,2,55,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4371,00,7,07,0,0,0,1714|5423|        SWAP [W1]_[MEM-OP LH],
                                                                             |1714|5424|         GOTO [TO MEM]                          ;Give user result
                                                                             |1714|5425|
                                                                             |1714|5426|;Here from CONI PI, or CONSO PI, or CONSZ PI
                                                                             |1714|5427|; Returns bits in MEM-OP, and 177 in W1
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0561,00,7,01,0,0,0,1715|5428|CPI:    J[PI LVL REG]_RAMFILE ADR               ;Get PI levels on
                                                                             |1715|5429|        J[0177]_[W1]                            ;Mask for levels
000,000,0,07,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1717|5430|        RAMFILE_Y,[W1]_F,F_Q Y_[W1]
                                                                             |1717|5431|        J[PI IN PROG]_RAMFILE ADR
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1719|5432|        [W1]_Y,IX_MX                            ;Test for PI on
000,000,0,04,14,1,02,0,54,0,0,00,00,00,00,00,0,56,1,1,1,03,03,00,3272,00,7,00,0,0,0,1720|5433|        Q&[W1]_[MEM-OP],                        ;Leave only PI levels on
                                                                             |1720|5434|         IF NOT CT [MN] THEN [CP12]             ; Branch if PI OFF
000,000,0,04,03,1,56,0,54,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1721|5435|        Q+[MEM-OP]+1_F,F_[MEM-OP]               ;Add 200 to MEM-OP
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,04,01,00,0003,00,7,04,0,0,0,1722|5436|CP12:   RAMFILE_[W1],PUSH J[3]_CTR
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,1723|5437|        #4*[W1]_B,RFCT                           ;Shift left 8 places
000,000,0,04,17,0,02,0,54,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1724|5438|        [W1].OR.[MEM-OP]_B,                     ;Add interrupts in progress
                                                                             |1724|5439|         RETURN
                                                                             |1724|5440|
                                                                             |1724|5441|.TOC 3, "SZPI - Skip on masked PI conditions all zero"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3263,00,7,00,0,0,0,1725|5442|SZPI:
                                                                             |1725|5443|        CALL [CPI]                              ;Get bits to test in MEM-OP
000,000,0,14,14,0,56,0,40,0,0,00,14,00,00,00,0,64,1,1,1,13,03,00,1420,00,7,00,0,0,0,1726|5444|CONSZ:  [MEM-OP]&[E]_Y,
                                                                             |1726|5445|         SET LOCAL,
                                                                             |1726|5446|         IF NOT CT [IZ] THENP [IFETCH]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,1727|5447|        [PC]+1_[PC RH],
                                                                             |1727|5448|         GOTOP [IFETCH]
                                                                             |1727|5449|
                                                                             |1727|5450|.TOC 3, "SNPI - Skip on any masked PI conditions non-zero"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3263,00,7,00,0,0,0,1728|5451|SNPI:
                                                                             |1728|5452|        CALL [CPI]                              ;Get bits to test in MEM-OP
000,000,0,14,14,0,56,0,40,0,0,00,14,00,00,00,0,64,1,1,1,13,02,00,1420,00,7,00,0,0,0,1729|5453|CONSO:  [MEM-OP]&[E]_Y,
                                                                             |1729|5454|         SET LOCAL,
                                                                             |1729|5455|         IF CT [IZ] THENP [IFETCH]
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,1730|5456|        [PC]+1_[PC RH],
                                                                             |1730|5457|         GOTOP [IFETCH]
                                                                             |1730|5458|
                                                                             |1730|5459|.TOC 2, "Pager"
                                                                             |1730|5460|.TOC 3, "WREBR - Write Executive Base Address"
                                                                             |1730|5461|
                                                                             |1730|5462|;        WREBR
                                                                             |1730|5463|;       +-------+---+---+---+
                                                                             |1730|5464|;       | 70120 | I | X | Y |
                                                                             |1730|5465|;       +-------+---+---+---+
                                                                             |1730|5466|;
                                                                             |1730|5467|; E format
                                                                             |1730|5468|;       181920212223242526272829303132333435
                                                                             |1730|5469|;       \    / | | \                       /
                                                                             |1730|5470|;        \  /  | |           + ---Executive base address (page number)
                                                                             |1730|5471|;         |    | + ---Enable Pager
                                                                             |1730|5472|;         |    + ---Tops20 Paging
                                                                             |1730|5473|;         + ---should be zero
                                                                             |1730|5474|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,7000,00,7,01,0,0,0,1731|5475|WREBR:
                                                                             |1731|5476|.IF/FTMBZ
                                                                             |1731|5477|        J[07000]_[W1]
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,3322,00,7,00,0,0,0,1732|5478|        #4*[W1]_B,
                                                                             |1732|5479|         CALL [LLS4 MBZ]
                                                                             |1732|5480|.ENDIF/FTMBZ
                                                                             |1732|5481|        CALL [PAGE TABLE CLEAR]                 ;Clear entire page table
000,000,0,04,06,1,42,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3316,00,7,00,0,0,0,1734|5482|        [E]_[W1],                               ;Get page number
                                                                             |1734|5483|        CALL [W1(22) LLS9]
                                                                             |1734|5484|        J[BIT22]_RAMFILE ADR                    ;Mask for enable
000,000,0,04,14,1,06,0,17,0,0,00,54,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1736|5485|        Q&[W2]_[EPT],SET TOPS20                 ;Set new EPT
000,000,0,07,06,1,42,0,04,0,0,00,30,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1737|5486|        [E]_Q RAMFILE_[W2],CLEAR PAGED          ;Get bit for enable
000,000,0,03,14,0,06,0,40,0,0,00,00,51,00,00,0,64,1,1,1,01,03,00,3315,00,7,00,0,0,0,1738|5487|        [W2]&[E]_F,ROR F_B ROR Q_Q,
                                                                             |1738|5488|         IF NOT CT [IZ] CALL [SET PAGED LATCH]
                                                                             |1738|5489|.IF/FT10PAG
                                                                             |1738|5490|.IF/FT20PAG
000,000,0,14,14,1,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4127,00,7,00,0,0,0,1739|5491|        Q&[W2]_Y,
                                                                             |1739|5492|        IF NOT CT [IZ] THEN [TO NOWHERE]
                                                                             |1739|5493|.ENDIF/FT20PAG
000,000,0,14,10,0,00,0,00,0,0,00,50,00,00,00,0,20,1,1,0,03,01,00,4127,00,7,00,0,0,0,1740|5494|        CLEAR TOPS20,
                                                                             |1740|5495|        GOTO [TO NOWHERE]
                                                                             |1740|5496|.ENDIF/FT10PAG
                                                                             |1740|5497|.IFNOT/FT10PAG
                                                                             |1740|5498|        SET LOCAL,
                                                                             |1740|5499|        GOTO [IFETCH]
                                                                             |1740|5500|.ENDIF/FT10PAG
                                                                             |1740|5501|
000,000,0,14,10,0,00,0,00,0,0,00,34,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,1741|5502|SET PAGED LATCH:
                                                                             |1741|5503|        SET PAGED,RETURN
                                                                             |1741|5504|
                                                                             |1741|5505|;Here to shift W1 left 9 places and get 22 bit mask
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0026,00,7,01,0,0,0,1742|5506|W1(22) LLS9:
                                                                             |1742|5507|        J[#22B MASK]_RAMFILE ADR                ;Mask for EPT adr
                                                                             |1742|5508|
                                                                             |1742|5509|;Here to shift W1 left 9 places, leave it in Q and W1 and read ramfile into W2
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,04,01,00,0003,00,7,00,0,0,0,1743|5510|W1 LLS9:
                                                                             |1743|5511|        #2*[W1]_[W1],PUSH J[3]_CTR              ;Shift left 1 place
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,1744|5512|        #4*[W1]_B,RFCT                          ;Keep shifting 2 at a time
000,000,0,07,06,1,02,0,04,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,04,0,0,0,1745|5513|        [W1]_Q RAMFILE_[W2],                    ;Get ramfile
                                                                             |1745|5514|         RETURN
                                                                             |1745|5515|
                                                                             |1745|5516|.IF/FTMBZ
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1746|5517|LLS4 MBZ:
                                                                             |1746|5518|        #4*[W1]_B
                                                                             |1746|5519|        #4*[W1]_B
000,000,0,14,14,0,02,0,40,0,0,00,00,00,00,00,0,64,1,1,1,12,02,00,0000,00,7,00,0,0,0,1748|5520|        [W1]&[E]_Y,
                                                                             |1748|5521|         IF CT [IZ] RETURN
                                                                             |1748|5522|        GOTO [MUUO]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1637,00,7,00,0,0,0,1749|5523|.ENDIF/FTMBZ
                                                                             |1749|5524|
                                                                             |1749|5525|.TOC 3, "RDEBR - Read the Executive Base Address"
                                                                             |1749|5526|
                                                                             |1749|5527|;        RDEBR
                                                                             |1749|5528|;       +-------+---+---+---+
                                                                             |1749|5529|;       | 70124 | I | X | Y |
                                                                             |1749|5530|;       +-------+---+---+---+
                                                                             |1749|5531|;
                                                                             |1749|5532|; E format
                                                                             |1749|5533|;       181920212223242526272829303132333435
                                                                             |1749|5534|;       \    / | | \                       /
                                                                             |1749|5535|;        \  /  | |           + ---Executive base address (page number)
                                                                             |1749|5536|;         |    | + ---Enable Pager
                                                                             |1749|5537|;         |    + ---Tops20 Paging
                                                                             |1749|5538|;         + ---reserved
                                                                             |1749|5539|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0126,00,7,01,0,0,0,1750|5540|RDEBR:
                                                                             |1750|5541|        J[BIT22]_RAMFILE ADR                    ;Bit for paging enabled
000,000,0,04,06,1,17,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3317,00,7,00,0,0,0,1751|5542|        [EPT]_[W1],
                                                                             |1751|5543|        CALL [W1 LLS9]
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,40,00,3140,00,7,07,0,0,0,1752|5544|        SWAP [W1]_[W1],                         ;Put page number in right half
                                                                             |1752|5545|        IF [PAGED] CALL [W2.OR.W1]              ;We are paged
000,000,1,11,06,1,06,0,04,0,0,00,00,11,00,00,0,20,1,1,1,01,44,00,3140,00,7,00,0,0,0,1753|5546|        #2*[W2]_[W2],                            ;Make a bit 21
                                                                             |1753|5547|         IF [TOPS20] CALL [W2.OR.W1]            ;Flag this is TOPS20
000,000,0,04,06,1,02,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4371,00,7,00,0,0,0,1754|5548|        [W1]_[MEM-OP],
                                                                             |1754|5549|         GOTO [TO MEM]
                                                                             |1754|5550|
                                                                             |1754|5551|.TOC 3, "WRUBR (DATAO PAG) - Write User Base Address"
                                                                             |1754|5552|
                                                                             |1754|5553|;        WRUBR
                                                                             |1754|5554|;       +-------+---+---+---+
                                                                             |1754|5555|;       | 70114 | I | X | Y |
                                                                             |1754|5556|;       +-------+---+---+---+
                                                                             |1754|5557|;
                                                                             |1754|5558|; 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1754|5559|; | | |       \   / \   /   \       / |         \                       /
                                                                             |1754|5560|; | | |        \ /   \ /     \     /  |                    + ---User Base adr (page #)
                                                                             |1754|5561|; | | |         |     |       \   /   + ---Do not update accounts
                                                                             |1754|5562|; | | |         |     |         + ---previous context section
                                                                             |1754|5563|; | | |         |     + ---previous context ac block
                                                                             |1754|5564|; | | |         + ---current ac block
                                                                             |1754|5565|; | | + ---load user base address
                                                                             |1754|5566|; | + ---select previous context section
                                                                             |1754|5567|; + ---select ac blocks
                                                                             |1754|5568|
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1755|5569|DATAO PAG:
                                                                             |1755|5570|WRUBR:
                                                                             |1755|5571|        READ [E]                                ;Get data word
                                                                             |1755|5572|        CALL [PAGE TABLE CLEAR]                 ;Clear entire page table
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4420,00,7,00,0,0,0,1756|5573|        BIT0_[W3]                               ;Get mask for enable
000,000,0,06,06,1,12,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0562,00,7,01,0,0,0,1758|5574|        J[PROC REG]_RAMFILE ADR,                ;Where we keep AC block numbers
                                                                             |1758|5575|         [W3]_Q                                 ;Save mask in Q reg
000,000,0,05,14,1,46,0,00,0,0,00,00,01,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1759|5576|        Q&[MB]_F,F_Y LSRQ_Q,IX_MX               ;latch request to set AC blocks
                                                                             |1759|5577|        RAMFILE_[W3]                            ;Get old value for AC block numbers
000,000,0,04,10,0,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1760|5578|        J[07700]_[4]                            ;Build mask for AC blocks
000,000,0,04,10,0,16,2,14,0,0,00,00,00,00,00,0,44,1,1,0,03,02,00,3346,00,7,07,0,0,0,1762|5579|        SWAP [W4]_[W4],
                                                                             |1762|5580|         IF CT [MZ] THEN [DATOP2]               ;If do not want to set blocks
                                                                             |1762|5581|        [W4]BAR&[W3]_B                          ;Strip old AC blocks
000,000,0,04,11,0,16,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1763|5582|        [MB]&[W4]_B                             ;New AC blocks
000,000,0,04,17,0,16,0,10,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3246,00,7,04,0,0,0,1765|5583|        [W4].OR.[W3]_B,ALU_RAMFILE,
                                                                             |1765|5584|         CALL [SET RFPRG]
000,000,0,05,14,1,46,0,00,0,0,00,00,01,00,00,0,64,1,1,1,03,02,00,3353,00,7,00,0,0,0,1766|5585|DATOP2: Q&[MB]_F,F_Y LSRQ_Q,                    ;Check for select prev context sect
                                                                             |1766|5586|          IF CT [IZ] THEN [DATOP4]
                                                                             |1766|5587|        J[PCS]_RAMFILE ADR                      ;Previous context section
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0576,00,7,01,0,0,0,1767|5588|        J[037]_[W1]                             ;Get maskk for section
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0037,00,7,01,0,0,0,1768|5589|        SWAP [W1]_[W1]
000,000,0,14,14,0,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1770|5590|        [W1]&[MB]_Y,ALU_RAMFILE                 ;Save previous context section
000,000,0,14,14,1,46,0,00,0,0,00,00,00,00,00,0,64,1,1,1,13,02,00,1420,00,7,00,0,0,0,1771|5591|DATOP4: Q&[MB]_Y,                               ;Check for load UBR
                                                                             |1771|5592|         IF CT [IZ] THENP [IFETCH]
000,000,0,04,06,1,46,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3316,00,7,00,0,0,0,1772|5593|        [MB]_[W1],                              ;Get page ruBber
                                                                             |1772|5594|         CALL [W1(22) LLS9]
000,000,0,04,14,1,06,0,23,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,1773|5595|        Q&[W2]_[UPT],                           ;Set new UPT
                                                                             |1773|5596|         GOTOP [IFETCH]
                                                                             |1773|5597|
                                                                             |1773|5598|.TOC 3, "RDUBR - Read User Base Address"
                                                                             |1773|5599|;Data In, Pager
                                                                             |1773|5600|;        RDUBR
                                                                             |1773|5601|;       +-------+---+---+---+
                                                                             |1773|5602|;       | 70104 | I | X | Y |
                                                                             |1773|5603|;       +-------+---+---+---+
                                                                             |1773|5604|;
                                                                             |1773|5605|; 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1773|5606|; | | |       \   / \   /   \       /           \                       /
                                                                             |1773|5607|; | | |        \ /   \ /     \     /                       + ---User Base adr (page #)
                                                                             |1773|5608|; | | |         |     |       \   /
                                                                             |1773|5609|; | | |         |     |         + ---previous context section
                                                                             |1773|5610|; | | |         |     + ---previous context ac block
                                                                             |1773|5611|; | | + ---1    + --- current ac block
                                                                             |1773|5612|; | + ---1
                                                                             |1773|5613|; + ---1
                                                                             |1773|5614|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3360,00,7,00,0,0,0,1774|5615|RDUBR:
                                                                             |1774|5616|        CALL [GET CONTEXT WD]                   ;Get process context word
000,000,0,04,06,1,46,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4371,00,7,00,0,0,0,1775|5617|        [MB]_[MEM-OP],                          ;Put in right register
                                                                             |1775|5618|        GOTO [TO MEM]
                                                                             |1775|5619|
                                                                             |1775|5620|;Here to get a "process context word"
000,000,0,04,06,1,23,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3317,00,7,00,0,0,0,1776|5621|GET CONTEXT WD:
                                                                             |1776|5622|        [UPT]_[W1],                             ;Put UPT page number in LH
                                                                             |1776|5623|         CALL [W1 LLS9]
                                                                             |1776|5624|        J[PCS]_RAMFILE ADR                      ;Previous context section
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0576,00,7,01,0,0,0,1777|5625|        SWAP [W1]_[W1]                          ;Put UPT page number in RH
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1778|5626|        [W1]_Q RAMFILE_[W1]
000,000,0,07,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1779|5627|        J[PROC REG]_RAMFILE ADR                 ;Get current AC block number
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0562,00,7,01,0,0,0,1780|5628|        Q.OR.[W1]_[MB]
000,000,0,04,17,1,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1781|5629|        RAMFILE_[W1]
000,000,0,04,17,0,02,0,45,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1783|5630|        [W1].OR.[MB LH]_B,                      ;Add AC blocks to word
                                                                             |1783|5631|         RETURN
                                                                             |1783|5632|
                                                                             |1783|5633|.IF/FT20PAG
                                                                             |1783|5634|.TOC 3, "WRSPB - Write the SPT base address"
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1784|5635|WRSPB:  READ [E]                                ;Get data
000,000,0,04,06,1,46,0,27,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,1785|5636|        [MB]_[SPT],                             ;Set SPT base adr, no checking
                                                                             |1785|5637|         GOTOP [IFETCH]
                                                                             |1785|5638|
                                                                             |1785|5639|.TOC 3, "RDSPB - Read SPT base address"
000,000,0,04,06,1,27,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4371,00,7,00,0,0,0,1786|5640|RDSPB:  [SPT]_[MEM-OP],                         ;Get information he wants
                                                                             |1786|5641|         GOTO [TO MEM]
                                                                             |1786|5642|
                                                                             |1786|5643|.TOC 3, "WRCSTM - Write CST Mask register"
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1787|5644|WRCSTM:
                                                                             |1787|5645|        READ [E]                                ;Get data
                                                                             |1787|5646|        J[CSTMASK]_RAMFILE ADR                  ;Address ramfile
000,000,0,14,14,0,77,0,44,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1789|5647|        [MB]_RAMFILE,                           ;Set mask register, no checking
                                                                             |1789|5648|         SET LOCAL,
                                                                             |1789|5649|        GOTOP [IFETCH]
                                                                             |1789|5650|
                                                                             |1789|5651|.TOC 3, "RDCSTM - Read CST Mask register"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0572,00,7,01,0,0,0,1790|5652|RDCSTM: J[CSTMASK]_RAMFILE ADR                  ;Address ramfile location
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4371,00,7,04,0,0,0,1791|5653|        RAMFILE_[MEM-OP],                       ;Get information he wants
                                                                             |1791|5654|         GOTO [TO MEM]
                                                                             |1791|5655|
                                                                             |1791|5656|.TOC 3, "WRPUR - Write process use register (CSTDATA)"
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1792|5657|WRPUR: READ [E]                                 ;Get data
                                                                             |1792|5658|       J[CSTDATA]_RAMFILE ADR                   ;Address ramfile location for data
000,000,0,14,14,0,77,0,44,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1794|5659|       [MB]_RAMFILE,                            ;Set data word (age) register
                                                                             |1794|5660|        SET LOCAL,
                                                                             |1794|5661|        GOTOP [IFETCH]
                                                                             |1794|5662|
                                                                             |1794|5663|.TOC 3, "RDPUR - Read process use register (CSTDATA)"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0573,00,7,01,0,0,0,1795|5664|RDPUR:  J[CSTDATA]_RAMFILE ADR                  ;Address ramfile location for data
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4371,00,7,04,0,0,0,1796|5665|        RAMFILE_[MEM-OP],                       ;Get information he wants
                                                                             |1796|5666|         GOTO [TO MEM]
                                                                             |1796|5667|
                                                                             |1796|5668|.TOC 3, "WRCSB - Write Core status table base address"
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1797|5669|WRCSB:  READ [E]                                ;Get data
                                                                             |1797|5670|        J[CST]_RAMFILE ADR                      ;Ramfile adr of CST
000,000,0,14,14,0,77,0,44,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1799|5671|        [MB]_RAMFILE,                           ;Set CST register, no checking
                                                                             |1799|5672|         SET LOCAL,
                                                                             |1799|5673|         GOTOP [IFETCH]
                                                                             |1799|5674|
                                                                             |1799|5675|.TOC 3, "RDCSB - Read Core status table base address"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0571,00,7,01,0,0,0,1800|5676|RDCSB:  J[CST]_RAMFILE ADR                      ;Address Ramfile
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4371,00,7,04,0,0,0,1801|5677|        RAMFILE_[MEM-OP],                       ;Get information he wants
                                                                             |1801|5678|         GOTO [TO MEM]
                                                                             |1801|5679|.ENDIF/FT20PAG
                                                                             |1801|5680|
                                                                             |1801|5681|.TOC 3, "CLRPT - Clear Page Tables"
000,000,0,14,10,0,00,0,00,0,0,00,24,00,00,00,0,20,1,1,0,01,01,00,3415,00,7,00,0,0,0,1802|5682|CLRPT:  SET USER,CALL [CLR PTE]                 ;Clear user entry first
000,000,0,14,10,0,00,0,00,0,0,00,20,00,00,00,0,20,1,1,0,01,01,00,3415,00,7,00,0,0,0,1803|5683|        CLEAR USER,CALL [CLR PTE]               ;Now clear exec entry
                                                                             |1803|5684|        GOTOP [IFETCH]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1420,00,7,00,0,0,0,1804|5685|
000,000,0,14,06,1,42,0,00,0,0,00,00,00,00,77,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1805|5686|CLR PTE:
                                                                             |1805|5687|        [E]_Y,SECTION SELECT,
                                                                             |1805|5688|        SPEC SEL/PAGE TABLE ENTRY
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,1806|5689|ZERO RAMFILE:
                                                                             |1806|5690|        ZERO_Y,ALU_RAMFILE,                     ;Clear entry
                                                                             |1806|5691|         RETURN
                                                                             |1806|5692|
                                                                             |1806|5693|.TOC 2, "Timer"
                                                                             |1806|5694|.TOC 3, "RDTIM - Read time base register"
                                                                             |1806|5695|
                                                                             |1806|5696|;TIMER FLAG goes true 27 times/millisecond
                                                                             |1806|5697|;      note: 27.*37.=999.       note: 37.=45
                                                                             |1806|5698|;      note: 27.*148.=3996.     note: 148.=224
                                                                             |1806|5699|;Ramfile locations TIME & TIME+1 are 72bit u-second counter
                                                                             |1806|5700|
000,000,0,04,10,1,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0033,00,7,01,0,0,0,1807|5701|RDTIM:  J[27.]_[MEM-OP]
                                                                             |1807|5702|        [MEM-OP]-[TIME]_A                       ;Number of clock ticks this ms
000,000,0,04,10,1,00,0,13,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3432,00,7,00,0,0,0,1809|5703|        ZERO_[MEM-OP+1],CALL [RDT 4]
                                                                             |1809|5704|        CALL [RDT 4]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3432,00,7,00,0,0,0,1810|5705|        J[TIME BASE+1]_RAMFILE ADR
000,000,1,11,06,1,56,0,54,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,3432,00,7,00,0,0,0,1812|5706|        #2*[MEM-OP]_[MEM-OP],
                                                                             |1812|5707|         CALL [RDT 4]
                                                                             |1812|5708|        RAMFILE_[MEM-OP]                        ;Get low order part of uptime
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1813|5709|        J[TIME BASE]_RAMFILE ADR
000,000,0,04,03,0,56,0,13,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1815|5710|        [MEM-OP]+[MEM-OP+1]_B,IX_MX
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,46,1,1,0,03,03,00,4377,00,7,04,0,0,0,1816|5711|        RAMFILE_[MEM-OP],
                                                                             |1816|5712|         IF NOT CT [MOVR] THEN [D TO MEM]
000,000,0,04,06,1,56,0,54,0,1,00,00,00,00,00,0,20,1,1,1,03,01,00,4377,00,7,00,0,0,0,1817|5713|        [MEM-OP]+1_[MEM-OP],
                                                                             |1817|5714|         GOTO [D TO MEM]
                                                                             |1817|5715|
                                                                             |1817|5716|;Shift MEM-OP left 2 then add to MEM-OP+1
000,000,1,11,03,0,56,0,54,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1818|5717|RDT 4:  #4*[MEM-OP]_B                           ;Shift two left
000,000,0,04,03,0,56,0,13,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,1819|5718|        [MEM-OP]+[MEM-OP+1]_B,
                                                                             |1819|5719|         RETURN
                                                                             |1819|5720|
                                                                             |1819|5721|.TOC 3, "WRTIM - Write time base register"
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1820|5722|WRTIM:  READ [E]                                ;Get high order bits
                                                                             |1820|5723|        J[TIME BASE]_RAMFILE ADR
000,000,0,14,06,1,46,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4660,00,7,04,0,0,0,1822|5724|        [MB]_Y,ALU_RAMFILE,                     ;Write high order bits
                                                                             |1822|5725|         CALL [READ NEXT]                       ;Get low order bits
                                                                             |1822|5726|        J[TIME BASE+1]_RAMFILE ADR
000,000,0,14,14,0,77,0,44,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1824|5727|        [MB]_RAMFILE,                           ;Write low order bits
                                                                             |1824|5728|         SET LOCAL,
                                                                             |1824|5729|         GOTOP [IFETCH]
                                                                             |1824|5730|
                                                                             |1824|5731|.TOC 3, "RDINT - Read Interval Timer register"
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0564,00,7,01,0,0,0,1825|5732|RDINT: J[TIME INTERVAL]_RAMFILE ADR             ;Address ramfile location he wants
                                                                             |1825|5733|        RAMFILE_[MEM-OP]
000,000,1,11,03,0,56,0,54,0,0,00,00,11,00,00,0,20,1,1,1,03,01,00,4371,00,7,00,0,0,0,1827|5734|        #4*[MEM-OP]_B,                          ;Display as u-seconds
                                                                             |1827|5735|        GOTO [TO MEM]
                                                                             |1827|5736|
                                                                             |1827|5737|.TOC 3, "WRINT - Write Interval Timer register"
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1828|5738|WRINT:  READ [E]
                                                                             |1828|5739|        J[INTERVAL COUNTER]_RAMFILE ADR         ;Start interval counter again
000,000,0,01,06,1,46,0,44,0,1,00,00,01,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1830|5740|        [MB]+1_F,B SEL/MB,
                                                                             |1830|5741|         LRS F_B,#0_SION #0_QION
000,000,0,01,06,1,46,0,44,0,1,00,00,01,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1831|5742|        [MB]+1_F,B SEL/MB,
                                                                             |1831|5743|         LRS F_B,#0_SION #0_QION,
                                                                             |1831|5744|         ALU_RAMFILE
                                                                             |1831|5745|        J[TIME INTERVAL]_RAMFILE ADR            ;Save for restarting counter
000,000,0,14,14,0,77,0,44,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1833|5746|        [MB]_RAMFILE,
                                                                             |1833|5747|         SET LOCAL,
                                                                             |1833|5748|         GOTOP [IFETCH]
                                                                             |1833|5749|
                                                                             |1833|5750|.TOC 2, "Halt Status Block"
                                                                             |1833|5751|.TOC 3, "WRHSB - Write Halt Status Block Address"
                                                                             |1833|5752|
000,000,0,07,06,1,42,0,40,0,0,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,1834|5753|WRHSB:  READ [E]                                ;Get new value for HSB
                                                                             |1834|5754|        J[HSB]_RAMFILE ADR                      ;Address ramfile
000,000,0,14,14,0,77,0,44,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,04,0,0,0,1836|5755|        [MB]_RAMFILE,                           ;Put new value in ramfile
                                                                             |1836|5756|         SET LOCAL,
                                                                             |1836|5757|         GOTOP [IFETCH]
                                                                             |1836|5758|
                                                                             |1836|5759|.TOC 3, "RDHSB - Read Halt Status Block Address"
                                                                             |1836|5760|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0553,00,7,01,0,0,0,1837|5761|RDHSB:  J[HSB]_RAMFILE ADR                      ;Address of halt status block
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4371,00,7,04,0,0,0,1838|5762|        RAMFILE_[MEM-OP],
                                                                             |1838|5763|         GOTO [TO MEM]
                                                                             |1838|5764|
                                                                             |1838|5765|.TOC 2, "PCI Devices"
                                                                             |1838|5766|.TOC 3, "RDTTY - Read TTY Conditions"
                                                                             |1838|5767|
                                                                             |1838|5768|;Status word in ramfile
                                                                             |1838|5769|;
                                                                             |1838|5770|; 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1838|5771|; | | \     CR      / | |       \   / | | |         | | | | \ RCV /\    /
                                                                             |1838|5772|; | |        |        | |         |   | | |         | | | | | | | |  + ---PI chn 1
                                                                             |1838|5773|; | |        |        | |         |   | | |         | | | | | | | + ---xof flag
                                                                             |1838|5774|; | |        |        | |         |   | | |         | | | | | | + ---xof enable
                                                                             |1838|5775|; | |        |        | |         |   | | |         | | | | | + ---rcv done
                                                                             |1838|5776|; | |        |        | |         |   | | |         | | | | + ---rcv int enable
                                                                             |1838|5777|; | |        |        | |         |   | | |         | | | + ---xmt done
                                                                             |1838|5778|; | |        |        | |         |   | | |         | | + ---xmt enable
                                                                             |1838|5779|; | |        |        | |         |   | | |         | + ---dataset change flag
                                                                             |1838|5780|; | |        |        | + ---SR6  |   | | |         + ---data set change enable
                                                                             |1838|5781|; | |        |        + ---SR7    |   | | + ---Nxm or mem err on rcv
                                                                             |1838|5782|; | |        + CR7 ... CRO        |   | + ---Nxm or mem err on xmt
                                                                             |1838|5783|; | + Half duplex.                |   + ---flag for TTYRCV BITS
                                                                             |1838|5784|; + ---DDT mode.                  + ---protocol
                                                                             |1838|5785|;
                                                                             |1838|5786|;Mode word in ramfile
                                                                             |1838|5787|;0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1838|5788|;\      / \        / \             / \                                 /
                                                                             |1838|5789|;   |         |             + ---MR17-MR10            + ---CRC seed
                                                                             |1838|5790|;   |         + ---MR25-MR20
                                                                             |1838|5791|;   + ---reserved
                                                                             |1838|5792|;
                                                                             |1838|5793|;Syn word in ramfile
                                                                             |1838|5794|;0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1838|5795|;                       \              / \             / \             /
                                                                             |1838|5796|;                              |                 |              + ---Syn1 char
                                                                             |1838|5797|;                              + ---OLE char     + ---Syn2 char
                                                                             |1838|5798|;
                                                                             |1838|5799|;CRC word in ramfi1e
                                                                             |1838|5800|;0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1838|5801|;   \                                /   \                             /
                                                                             |1838|5802|;                   + ---Incoming CRC                   + ---Outgoing CRC
                                                                             |1838|5803|;
                                                                             |1838|5804|;Transmit and receive header words
                                                                             |1838|5805|; 0 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282~303132333435
                                                                             |1838|5806|; \                         / \                                         /
                                                                             |1838|5807|;             + ---reserved                      + ---phys adr of current header
                                                                             |1838|5808|;
                                                                             |1838|5809|;
                                                                             |1838|5810|;Transmit and receive byte pointer words
                                                                             |1838|5811|; 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435
                                                                             |1838|5812|;\                      /\                                           /\ /
                                                                             |1838|5813|;             |                                |                       + ---byte number
                                                                             |1838|5814|;             + ---byte count                  + ---phys adr of byte word
                                                                             |1838|5815|
                                                                             |1838|5816|
                                                                             |1838|5817|.IF/DEBUGTTY
000,000,0,14,06,1,42,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1839|5818|RDTTY:  [E]_Y, Y_TTY ADR                        ;Address register
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,03,0,0,0,1840|5819|        PCI_ALU,Y_[MEM-OP]                      ;Read register
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,03,0,0,0,1841|5820|        PCI_ALU,Y_[W1]                          ;Get 2nd half
000,000,0,04,10,0,02,2,55,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4342,00,7,07,0,0,0,1842|5821|        SWAP [W1]_[MEM-OP LH],
                                                                             |1842|5822|        GOTO [TO AC.0]
                                                                             |1842|5823|.ENDIF/DEBUGTTY
                                                                             |1842|5824|
                                                                             |1842|5825|
                                                                             |1842|5826|;Here to reset a PCI line
                                                                             |1842|5827|
                                                                             |1842|5828|.IF/FTTTYR
000,000,0,14,14,0,76,0,24,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1843|5829|RESET PCI:
                                                                             |1843|5830|        [K -1.0]&[W6]_Y,IX_MX                   ;Check for CTY
                                                                             |1843|5831|        J[0200]_[W5]                            ;Transmit done
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,44,1,1,1,03,03,00,3471,00,7,00,0,0,0,1845|5832|        [W6]_Y,Y_RAMFILE ADR,                   ;Address status word
                                                                             |1845|5833|         IF NOT CT [MZ] THEN [RPC11]
                                                                             |1845|5834|        J[04200]_[W1]                           ;For RTS & DTR
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4200,00,7,01,0,0,0,1846|5835|        #4*[W1]_B
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1847|5836|        SWAP [W1]_[W5 LH]                       ;Put in LH
000,000,0,14,06,1,22,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3524,00,7,04,0,0,0,1849|5837|RPC11:  [W5]_Y,ALU_RAMFILE,                     ;Update status word
                                                                             |1849|5838|        CALL [SET PCI CR]
000,000,0,06,06,1,26,0,00,0,1,00,00,00,00,03,0,20,1,1,1,14,00,00,0005,00,7,00,0,0,0,1850|5839|        [W6]+1_F,F_Q_Y,Y_RAMFILE ADR,           ;Address of Mode word
                                                                             |1850|5840|         J[5]_CTR
                                                                             |1850|5841|        ZERO_[W1 RH]                            ;Clear CRC seed
000,000,0,04,10,0,00,0,01,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,5020,00,7,04,0,0,0,1852|5842|        RAMFILE_[W1 LH],                        ;Get mode word
                                                                             |1852|5843|         CALL [W1_RAMFILE]
000,000,0,14,06,1,00,0,00,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1853|5844|RPC12:  Q+1_F,F_Y,Y_RAMFILE ADR                 ;Address next ramfile word
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,11,00,00,3475,00,7,04,0,0,0,1854|5845|        ZERO_Y,ALU_RAMFILE,                     ;Zero next location
                                                                             |1854|5846|         LOOP [RPC12]
                                                                             |1854|5847|        ;GOTO [SET USART MODE]
                                                                             |1854|5848|        RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,1855|5849|.ENDIF/FTTTYR
                                                                             |1855|5850|
                                                                             |1855|5851|;Here to set mode register in USART line
                                                                             |1855|5852|; Call with [W6]-linenumber,,adr of ramfile line block
                                                                             |1855|5853|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0030,00,7,01,0,0,0,1856|5854|SET PCI MODE:
                                                                             |1856|5855|        J[A1!A0]_[W1]                           ;Address bits for CR
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3715,00,7,00,0,0,0,1857|5856|        ZERO_[W2],CALL [WR PCI]                 ;Clear command register
000,000,0,14,06,1,26,0,00,0,1,00,00,00,00,03,0,20,1,1,1,01,01,00,1216,00,7,00,0,0,0,1858|5857|        [W6]+1_Y,Y_RAMFILE ADR,                 ;Address mode word
                                                                             |1858|5858|         CALL [RAMFILE_W1]                      ;Get mode word from ramfile
                                                                             |1858|5859|        SWAP [W1]_[W1]                          ;Put mode words in RH
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1859|5860|        J[A1]_[W2]                              ;Makes A1 for mode register
000,000,0,04,10,0,26,2,10,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3516,00,7,07,0,0,0,1861|5861|        SWAP [W6]_[W3],                         ;Get line number
                                                                             |1861|5862|         CALL [SUM 40]                          ; write MR1 & MR2
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,05,0,0,0,1862|5863|        [W1]_Y,ALU_MR2                          ;Write M8626 copy of MR2
                                                                             |1862|5864|        J[A0]_[W2];                             ;Set A0 for SYN1/SYN2/DLE
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0010,00,7,01,0,0,0,1863|5865|        J[LNXSYN]_[W1]                          ;Offset for syn word
000,000,0,14,03,0,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1865|5866|        [W6]+[W1]_Y,Y_RAMFILE ADR               ;Address ramfile word
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3516,00,7,04,0,0,0,1866|5867|        RAMFILE_[W1],                           ;Get synchs and OLE chars
                                                                             |1866|5868|        CALL [SUM 40]                           ;Write SYN1, SYN2 registers
                                                                             |1866|5869|        CALL [SUM 1]                            ;Write DLE register
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1868|5870|        [W6]_Y,Y_RAMFILE ADR                    ;Address ramfile copy of CR
000,000,0,04,10,0,00,0,20,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3524,00,7,04,0,0,0,1869|5871|        RAMFILE_[W5],                           ;Set CR according to ramfile
                                                                             |1869|5872|         GOTO [SET PCI CR]
                                                                             |1869|5873|
                                                                             |1869|5874|;Here to set 2651 mode or syn registers
                                                                             |1869|5875|; Call with MR2, MR1 as low order 8-bit bytes in W1,
                                                                             |1869|5876|; and with A1 or AO in W2 and line number in W3
                                                                             |1869|5877|
000,000,0,14,03,0,06,0,10,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1870|5878|SUM 40: [W2]+[W3]_Y,Y_TTY ADR                   ;Address line and mode registers
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,03,0,0,0,1871|5879|        [W1]_Y,ALU_PCI                          ;Write MR1/SYNl
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0003,00,7,00,0,0,0,1872|5880|SUM 1:  #4*[W1]_B,                              ; Shift 1eft 2 at a time
                                                                             |1872|5881|         J[3]_CTR
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,3521,00,7,00,0,0,0,1873|5882|SUM 2:  #4*[W1]_B,                              ;Shift left 2 at a time
                                                                             |1873|5883|         LOOP [SUM 2]                           ; 10 all together
                                                                             |1873|5884|        SWAP [W1]_[W1]
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1875|5885|        [W1]_Y,ALU_PCI,                         ;Write MR2/SYN2
                                                                             |1875|5886|         RETURN
                                                                             |1875|5887|
                                                                             |1875|5888|;Here to set PCI CR
000,000,1,11,06,1,22,0,04,0,0,00,00,51,00,00,0,20,1,1,1,14,00,00,0010,00,7,00,0,0,0,1876|5889|SET PCI CR:
                                                                             |1876|5890|;       SWAP [W5]_[W2],J[4.]_CTR                ;Copy CR
                                                                             |1876|5891|;SPCR2: #4*[W2]_B,LOOP [SPCR2]                   ;Shift left 10 places
                                                                             |1876|5892|;       SWAP [W2]_[W2]                          ;Right justify CR
                                                                             |1876|5893|        ROL [W5]_[W2],J[8.]_CTR                 ;Copy CR from status word
000,000,1,11,06,1,06,0,04,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,3525,00,7,00,0,0,0,1877|5894|SPCR2:  ROL [W2]_[W2],LOOP [SPCR2]              ;Put CR in W2 rh
000,000,0,14,14,0,76,0,24,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1878|5895|        [K -1.0]&[W6]_Y,IX_MX                   ;Check for CTY line
                                                                             |1878|5896|        J[A1!A0]_[W1]                           ;Address bits for CR
000,000,0,04,04,0,26,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1880|5897|        SWAP [W6]_[W1],F_Q,B[W1]_F              ;Get line number
000,000,0,14,03,1,02,0,00,0,0,00,00,00,00,03,0,44,1,1,1,03,02,00,3533,00,7,00,0,0,0,1881|5898|        Q+[W1]_Y,Y_TTY ADR,                     ;Address command register
                                                                             |1881|5899|         IF CT [MZ] THEN [SPCR7]
000,000,0,14,06,1,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1882|5900|        [W2]_Y,ALU_PCI,                         ;Write CR
                                                                             |1882|5901|         RETURN
                                                                             |1882|5902|;Here when writing CR for CTY
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,1883|5903|SPCR7:  J[4]_[W1]                               ;Bits we always leave on in CTY
000,000,0,14,17,0,02,0,04,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1884|5904|        [W1].OR.[W2]_Y,ALU_PCI,                 ;Write CR
                                                                             |1884|5905|        RETURN
                                                                             |1884|5906|
                                                                             |1884|5907|;Here for a transmitter interrupt for a PCI line
                                                                             |1884|5908|; call with adr of line status register in W6. and status in W5
000,000,0,14,14,0,76,0,24,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,3555,00,7,00,0,0,0,1885|5909|INT XMT:
                                                                             |1885|5910|        [K -1.0]&[W6]_Y,                        ;See if this is the cty
                                                                             |1885|5911|         IF NOT CT [IZ] THEN [XINT10]           ; Branch if not cty
                                                                             |1885|5912|        J[CMDFLG]_RAMFILE ADR                   ;Address console flags
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0300,00,7,01,0,0,0,1886|5913|        RAMFILE_[W1]
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1887|5914|        J[CMRTKR]_RAMFILE ADR                   ;Get taker for response buffer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0303,00,7,01,0,0,0,1888|5915|.IF/FTCRAM
                                                                             |1888|5916|        RAMFILE_[W2]                            ;If no data stop transmitter
                                                                             |1888|5917|        [W2]_[W2],                              ;Let latches go
                                                                             |1888|5918|         IF CT [IZ] THEN [XINT05]
                                                                             |1888|5919|.ENDIF/FTCRAM
                                                                             |1888|5920|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,64,1,1,0,03,02,00,3554,00,7,04,0,0,0,1889|5921|        RAMFILE_[W2],                           ;If no data stop transmitter
                                                                             |1889|5922|        IF CT [IZ] THEN [XINT05]
                                                                             |1889|5923|.ENDIF/FTCRAM
                                                                             |1889|5924|        J[F.S]_[W2]                             ;Xoff flag
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,3626,00,7,00,0,0,0,1891|5925|        [W1]&[W2]_Y,                            ;If Xoff stop typing
                                                                             |1891|5926|         IF NOT CT [IZ] THEN [XINT95]
                                                                             |1891|5927|        CALL [CMB NXT]                          ;Get next byte
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,1005,00,7,00,0,0,0,1892|5928|        CALL [XMT CHR]                          ;Type it
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3652,00,7,00,0,0,0,1893|5929|        J[CMRPTR]_RAMFILE ADR                   ;Get response putter
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0302,00,7,01,0,0,0,1894|5930|        RAMFILE_[W1]
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,1895|5931|        J[CMRTKR]_RAMFILE ADR                   ;Address response taker
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0303,00,7,01,0,0,0,1896|5932|        RAMFILE_[W2]
000,000,0,14,13,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,01,02,00,0774,00,7,00,0,0,0,1898|5933|        [W1].XOR.[W2]_Y,                        ;Check for buffer empty
                                                                             |1898|5934|         IF CT [IZ] CALL [CMRBUF FLUSH]
                                                                             |1898|5935|        GOTO [CMDC X]                           ;Process waiting commands if any
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,0656,00,7,00,0,0,0,1899|5936|
000,000,0,14,14,0,47,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,3626,00,7,00,0,0,0,1900|5937|XINT05: [BIT4]&[W1]_Y,                          ; (f.USR) Exec mode-shut off xmtr
                                                                             |1900|5938|         IF CT [IZ] THEN [XINT95]
                                                                             |1900|5939|
                                                                             |1900|5940|;Here because line is in user mode
000,000,0,04,10,1,00,0,14,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,1901|5941|XINT10:
                                                                             |1901|5942|        J[LNXXHD]_[W4]                          ;Offset for header
                                                                             |1901|5943|.IF/FTDDTM
000,000,0,14,06,1,22,0,00,0,0,00,00,00,00,00,0,76,1,1,1,03,03,00,3564,00,7,00,0,0,0,1902|5944|        [W5]_Y,
                                                                             |1902|5945|         IF NOT CT [IN] THEN [XINT30]           ;Check for DDT mode
                                                                             |1902|5946|
                                                                             |1902|5947|;Here because line is in DDT mode
000,000,0,14,03,0,26,0,14,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1903|5948|        [W6]+[W4]+1_Y,Y_RAMFILE ADR             ;Address ramfile word
                                                                             |1903|5949|.IF/FTCRAM
                                                                             |1903|5950|        RAMFILE_[W1]                            ;Get next char to type
                                                                             |1903|5951|        [W1]_[W1],                              ;Let latches go
                                                                             |1903|5952|         IF CT [IZ] THEN [XINT95]               ; If nothing shut down
                                                                             |1903|5953|.ENDIF/FTCRAM
                                                                             |1903|5954|.IFNOT/FTCRAM
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,64,1,1,0,03,02,00,3626,00,7,04,0,0,0,1904|5955|        RAMFILE_[W1],                           ;Get next char to type
                                                                             |1904|5956|         IF CT [IZ] THEN [XINT95]               ; If nothing shut down
                                                                             |1904|5957|.ENDIF/FTCRAM
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3652,00,7,04,0,0,0,1905|5958|        ZERO_Y,ALU_RAMFILE,                     ;Have sent char now
                                                                             |1905|5959|         CALL [XMT CHR]                         ; Type char
                                                                             |1905|5960|        CALL [SET XDN]                          ;Set done flag in status wcrd
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3670,00,7,00,0,0,0,1906|5961|        GOTOP [PCI INT CLR]                     ;Here because line is not in DDT mode
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,1907|5962|.ENDIF/FTDDTM
                                                                             |1907|5963|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0400,00,7,01,0,0,0,1908|5964|XINT30:
                                                                             |1908|5965|        J[0400]_[W1]                            ;Will become CR0
                                                                             |1908|5966|        SWAP [W1]_[W1]                          ;Makes CRO
000,000,0,14,14,0,22,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,3626,00,7,00,0,0,0,1910|5967|        [W5]&[W1]_Y,
                                                                             |1910|5968|         IF CT [IZ] THEN [XINT95]
                                                                             |1910|5969|;Here to get next byte from buffer
                                                                             |1910|5970|        J[XMT TTY PF]_[W1]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,3622,00,7,01,0,0,0,1911|5971|        CALL [SET PF RCOVR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,5017,00,7,00,0,0,0,1912|5972|        J[#24B MASK]_RAMFILE ADR
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3630,00,7,04,0,0,0,1914|5973|        RAMFILE_[W2],                           ;Get 24 bit Mask
                                                                             |1914|5974|         CALL [NXT RX WRD]
000,000,1,11,06,1,33,0,00,0,0,00,00,51,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,1915|5975|        ROL [PMA]_[W1],IX_MX                    ; byte #ab, a_MN
000,000,1,11,06,1,02,0,00,0,0,00,00,51,00,00,0,56,1,0,1,03,03,00,3577,00,7,00,0,0,0,1916|5976|        ROL [W1]_[W1],                          ;Byte #ab, B_MN
                                                                             |1916|5977|         IF NOT CT [MN IX_MX] THEN [XINT70]
                                                                             |1916|5978|        IF NOT CT [MN] THEN [XINT72]            ;Check for byte 2 or 3
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,56,1,1,0,03,03,00,3600,00,7,00,0,0,0,1917|5979|        GOTO [XINT73]
000,000,0,04,10,0,46,2,44,0,0,00,00,00,00,00,0,56,1,1,0,03,02,00,3603,00,7,07,0,0,0,1919|5980|XINT70: SWAP [MB]_[MB],                         ;Enter here for byte 0
                                                                             |1919|5981|         IF CT [MN] THEN [XINT73]               ;Check for byte 0 or 1
000,000,1,11,06,1,46,0,44,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0003,00,7,00,0,0,0,1920|5982|XINT72: #2*[MB]_[MB],J[3]_CTR                    ;Enter here for byte 2
000,000,1,11,03,0,46,0,44,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,3601,00,7,00,0,0,0,1921|5983|XINT74: #4*[MB]_B,LOOP [XINT74]
                                                                             |1921|5984|        SWAP [MB]_[MB]                          ;Enter here for byte 1
000,000,0,04,06,1,46,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3652,00,7,00,0,0,0,1923|5985|XINT73: [MB]_[W1],CALL [XMT CHR]                ;Enter here for byte 3
                                                                             |1923|5986|        IF NOT CT [UZ] THENP [PCI INT CLR]      ;Check for buffer exhausted
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3670,00,7,00,0,0,0,1925|5987|XINT93: CALL [SET XDN]                          ;We are done with buffer
                                                                             |1925|5988|        J[LNXXHD]_[W4]                          ;Got clobbered so restore
000,000,0,14,03,0,26,0,14,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1927|5989|        [W6]+[W4]_Y,Y_RAMFILE ADR               ; Addr RF copy of current hdr addr
000,000,0,04,10,0,00,0,33,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4105,00,7,04,0,0,0,1928|5990|        RAMFILE_[PMA],                          ;Get adr of header
                                                                             |1928|5991|         CALL [CHNG2]                           ; write pointer back
                                                                             |1928|5992|        CALL [GET NXT RX HDR]                   ;Get header for next buffer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3636,00,7,00,0,0,0,1929|5993|        IF CT [UOVR] CALL [CLR XGO]             ;We have now stopped
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0520,00,7,01,0,0,0,1931|5994|PCI INT CLR:
                                                                             |1931|5995|.IF/DEBUG3
                                                                             |1931|5996|        J[POOP FLAG]_RAMFILE ADR
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1932|5997|        ZERO_Y,ALU_RAMFILE
                                                                             |1932|5998|.ENDIF/DEBUG3
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5017,00,7,00,0,0,0,1933|5999|        ZERO_[W1],CALL [SET PF RCOVR]           ; FIXME:
000,000,0,04,06,1,62,0,43,0,0,00,00,00,46,00,0,20,1,1,1,13,01,00,0342,00,7,00,0,0,0,1934|6000|         [PXCT]_[PI REG], Y_2914 STATUS,        ; Restore previous level
                                                                             |1934|6001|         GOTOP [CONSOLE]                        ;This is not reatly an int
                                                                             |1934|6002|
                                                                             |1934|6003|;Here because memory error reading transmit buffer
                                                                             |1934|6004|
000,000,0,01,06,1,57,0,00,0,0,00,00,51,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1935|6005|XINT91: ROR [BIT17]_[W1]                        ;Need to make a bit 19
                                                                             |1935|6006|        ROR [W1]_[W1]                           ;Make a bit 19
000,000,0,04,17,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,3605,00,7,00,0,0,0,1937|6007|        [W1].OR.[W5]_B,                         ;5et xmtr err bit
                                                                             |1937|6008|         GOTO [XINT93]                          ; and stop transMitter
                                                                             |1937|6009|
                                                                             |1937|6010|;Here when page fail (=nxm or mem fault)
000,000,0,01,06,1,57,0,00,0,0,00,00,51,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1938|6011|XMT TTY PF:
                                                                             |1938|6012|        ROR [BIT17]_[W1]                        ;Make a bit 18
                                                                             |1938|6013|        ROR [W1]_[W1]                           ;Make a bit 19
000,000,0,04,17,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3670,00,7,00,0,0,0,1940|6014|        [W1].OR.[W5]_B,                         ;Set xmt mem err flag
                                                                             |1940|6015|         CALL [SET XDN]                         ; And flag transMitter stopped
                                                                             |1940|6016|        CALL [CLR XGO]                          ;Clear CRO in status word
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3657,00,7,00,0,0,0,1941|6017|
                                                                             |1941|6018|;Here to stop the transmitter
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3677,00,7,00,0,0,0,1942|6019|XINT95: CALL [CLR PCI TXEN]                     ;Disable transmitter
                                                                             |1942|6020|        GOTOP [PCI INT CLR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,1943|6021|
                                                                             |1943|6022|;Here to get next word fra. transmit or receive buffer
                                                                             |1943|6023|; Call with LNXXHD or LNXRHD in W4, 24b mask in W2
                                                                             |1943|6024|; Returns with word :n ~
                                                                             |1943|6025|;       Returns UZ if count expires
                                                                             |1943|6026|
000,000,0,14,03,0,26,0,14,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1944|6027|NXT RX WRD:
                                                                             |1944|6028|        [W6]+[W4]+1_F,F_Y,Y_RAMFILE ADR         ;Address byte pointer
                                                                             |1944|6029|        RAMFILE_[PMA]                           ;Get byte header
000,000,0,04,01,0,06,0,33,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,1946|6030|        [PMA]-[W2]_A,                           ; Increment pointer, decrement count
                                                                             |1946|6031|        ALU_RAMFILE                             ; save updated byte pointer
000,000,0,14,11,0,06,0,33,0,0,00,00,00,00,00,0,20,0,1,1,16,00,00,0000,00,7,00,0,0,0,1947|6032|        [W2]BAR&[PMA]_Y,IX_UX                   ;Set UZ if count has expired
                                                                             |1947|6033|        ROR [PMA]_[PMA]                         ;Address of word which haS byte
000,000,0,01,06,1,33,0,33,0,0,00,00,51,00,00,0,20,1,1,1,03,01,00,4572,00,7,00,0,0,0,1949|6034|        ROR [PMA]_[PMA],                        ;Divide by 2
                                                                             |1949|6035|         GOTO [UNMAPPED READ 0]                 ; get word
                                                                             |1949|6036|
                                                                             |1949|6037|
                                                                             |1949|6038|;Here to get next receive or transmit header
                                                                             |1949|6039|; CALL with LNXXHD or LNXRHD in W1
000,000,0,14,03,0,26,0,14,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1950|6040|GET NXT RX HDR:
                                                                             |1950|6041|        [W6]+[W4]_Y,Y_RAMFILE ADR               ;Address ramfile
                                                                             |1950|6042|.IF/FTTTYSB
000,000,0,04,10,0,00,0,33,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4572,00,7,04,0,0,0,1951|6043|        RAMFILE_[PMA],                          ;Get address of header
                                                                             |1951|6044|        CALL [UNMAPPED READ 0]                  ;Get header status
000,000,0,14,14,0,57,0,44,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,1544,00,7,00,0,0,0,1952|6045|        [BIT17]&[MB]_Y,                         ;Check for stop on buffer
                                                                             |1952|6046|         IF NOT CT [IZ] THEN [SET UOVR]
                                                                             |1952|6047|.ENDIF/FTTTYSB
                                                                             |1952|6048|.IFNOT/FTTTYSB
                                                                             |1952|6049|        RAMFILE_[PMA]                           ;Get adr of header
                                                                             |1952|6050|.ENDIF/FTTTYSB
000,200,0,14,10,0,00,0,33,0,1,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,1953|6051|        [PMA]+2_B,MEM START READ,               ;ftakes adr of next header adr
                                                                             |1953|6052|        CALL [UNMAPPED READ]
000,000,0,14,03,0,26,0,14,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1954|6053|        [W6]+[W4]_Y,Y_RAMFILE ADR               ;Address LNXXHD or LNXRHD
000,000,0,04,06,1,46,0,33,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1544,00,7,04,0,0,0,1955|6054|        [MB]_[PMA],ALU_RAMFILE,                 ;Save adr of new header
                                                                             |1955|6055|         IF CT [IZ] THEN [SET UOVR]
000,000,0,04,06,1,33,0,33,0,1,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,1956|6056|GET RX HDR:
                                                                             |1956|6057|        [PMA]+1_[PMA],MEM START READ,           ;Get byte pointer for new header
                                                                             |1956|6058|        CALL [UNMAPPED READ]
                                                                             |1956|6059|        J[#24B MASK]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0030,00,7,01,0,0,0,1957|6060|        RAMFILE_[W1]                            ;Get mask for count
000,000,0,14,11,0,02,0,44,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,1544,00,7,00,0,0,0,1959|6061|        [W1]BAR&[MB]_F,F_Y,                     ;Check count field
                                                                             |1959|6062|         IF CT [IZ] THEN [SET UOVR]
000,000,0,14,03,0,26,0,14,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1960|6063|        [W6]+[W4]+1_F,F_Y,Y_RAMFILE ADR
000,000,0,14,14,0,77,0,44,0,0,00,00,00,00,00,0,16,0,1,1,12,01,00,0000,00,7,04,0,0,0,1961|6064|        [MB]_RAMFILE,#0_UOVR,                    ;Save new pointer
                                                                             |1961|6065|        RETURN
                                                                             |1961|6066|
                                                                             |1961|6067|;Here to transmit a char on a 2651 line
                                                                             |1961|6068|; Call with [W6]-line number,,adr of ramfile line block, char in W1
                                                                             |1961|6069|
000,000,0,04,10,0,26,2,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1962|6070|XMT CHR:
                                                                             |1962|6071|        SWAP [W6]_[W2]                          ;Put line number in RH
000,000,0,14,06,1,06,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1963|6072|        [W2]_Y,Y_TTY ADR                        ;Address line and mode registers
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1964|6073|        [W1]_Y,ALU_PCI,                         ;Transmit character
                                                                             |1964|6074|         RETURN
                                                                             |1964|6075|
                                                                             |1964|6076|;Here to clear LS.RGO in LNXSWD
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2000,00,7,01,0,0,0,1965|6077|CLR RGO:
                                                                             |1965|6078|        J[02000]_[W1]                           ;Bit to clear
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,03,01,00,3661,00,7,00,0,0,0,1966|6079|        [W6]_Y,Y_RAMFILE ADR,                   ;Address the status word
                                                                             |1966|6080|        GOTO [CLR RXGO]
                                                                             |1966|6081|
                                                                             |1966|6082|;Here to stop transmitter
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1967|6083|CLR XGO:
                                                                             |1967|6084|        [W6]_Y,Y_RAMFILE ADR                    ;Address the status word
                                                                             |1967|6085|        J[0400]_[W1]                            ;Will become CR0
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1969|6086|CLR RXGO:
                                                                             |1969|6087|        SWAP [W1]_[W1]                          ;Make CRO
000,000,0,04,11,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,1970|6088|        [W1]BAR&[W5]_B,ALU_RAMFILE,             ;Write updated status
                                                                             |1970|6089|         RETURN
                                                                             |1970|6090|
                                                                             |1970|6091|;Here to set LS.RDN in LNXSWD
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,1971|6092|SET RDN:
                                                                             |1971|6093|        J[LS.RDN]_[W1]                          ;Bit to set
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,03,01,00,3672,00,7,00,0,0,0,1972|6094|        [W6]_Y,Y_RAMFILE ADR,
                                                                             |1972|6095|        GOTO [W1!W5_RAMFILE]
                                                                             |1972|6096|
                                                                             |1972|6097|.IF/FTTTYF
                                                                             |1972|6098|;Here to clear LS.RDN in LNXSWD
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,1973|6099|CLR RDN:
                                                                             |1973|6100|        J[LS.RDN]_[W1]                          ;Bit to set
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1974|6101|        [W6]_Y,Y_RAMFILE ADR
000,000,0,04,11,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,3225,00,7,04,0,0,0,1975|6102|W1BAR&W5_RAMFILE:
                                                                             |1975|6103|        [W1]BAR&[W5]_B,ALU_RAMFILE,             ;Write updated status
                                                                             |1975|6104|        GOTO [SET PROC REG]
                                                                             |1975|6105|.ENDIF/FTTTYF
                                                                             |1975|6106|
                                                                             |1975|6107|;Here to set LS.XDN in LNXSWD
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2000,00,7,01,0,0,0,1976|6108|SET XDN:
                                                                             |1976|6109|        J[LS.XDN]_[W1]                          ;Bit to set
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1977|6110|        [W6]_Y,Y_RAMFILE ADR
000,000,0,04,17,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,3225,00,7,04,0,0,0,1978|6111|W1!W5_RAMFILE:
                                                                             |1978|6112|        [W1].OR.[W5]_B,ALU_RAMFILE,             ;Write updated status
                                                                             |1978|6113|        GOTO [SET PROC REG]                     ; Adjust int requests
                                                                             |1978|6114|
                                                                             |1978|6115|.IF/FTTTYF
                                                                             |1978|6116|;Here to clear LS.XDN in LNXSWD
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2000,00,7,01,0,0,0,1979|6117|CLR XDN:
                                                                             |1979|6118|        J[LS.XDN]_[W1]                          ;Bit to set
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,03,01,00,3667,00,7,00,0,0,0,1980|6119|        [W6]_Y,Y_RAMFILE ADR,
                                                                             |1980|6120|        GOTO [W1BAR&W5_RAMFILE]
                                                                             |1980|6121|.ENDIF/FTTTYF
                                                                             |1980|6122|
                                                                             |1980|6123|;Here to set TXEN = transmit enable in a PCI
                                                                             |1980|6124|; call with   [W6] = line #,,x
                                                                             |1980|6125|;             clobbers W1, W2
000,000,0,04,06,1,57,0,04,0,1,00,00,00,00,00,0,20,1,1,1,01,01,00,3711,00,7,00,0,0,0,1981|6126|SET PCI TXEN:
                                                                             |1981|6127|        [BIT17]+1_[W2],                         ;Get bit for TXEN
                                                                             |1981|6128|         CALL [RD PCI CR]
000,000,0,14,17,0,02,0,04,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1982|6129|        [W1].OR.[W2]_Y,ALU_PCI,                 ;Set bit
                                                                             |1982|6130|         RETURN
                                                                             |1982|6131|
                                                                             |1982|6132|;Here to clear TXEN = transmit enable in a PCI
                                                                             |1982|6133|; call with   [W6] = line #,,x
                                                                             |1982|6134|;            clobbers W1 & W2
000,000,0,04,06,1,57,0,04,0,1,00,00,00,00,00,0,20,1,1,1,01,01,00,3711,00,7,00,0,0,0,1983|6135|CLR PCI TXEN:
                                                                             |1983|6136|        [BIT17]+1_[W2],                         ;Get bit for TXEN
                                                                             |1983|6137|        CALL [RD PCI CR]
000,000,0,14,11,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1984|6138|        [W2]BAR&[W1]_Y,ALU_PCI,                 ;Clear bit
                                                                             |1984|6139|         RETURN
                                                                             |1984|6140|
                                                                             |1984|6141|;Here to set RXEN  = receive enable in a PCI
                                                                             |1984|6142|; call with   [W6] = line #,,x
                                                                             |1984|6143|;             clobbers W1 & W2
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,1985|6144|SET PCI RXEN:
                                                                             |1985|6145|        J[RXEN]_[W2]                            ;Get bit for RXEN
                                                                             |1985|6146|        CALL [RD PCI CR]
000,000,0,14,17,0,02,0,04,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1987|6147|        [W1].OR.[W2]_Y,ALU_PCI,                 ;Set bit
                                                                             |1987|6148|         RETURN
                                                                             |1987|6149|
                                                                             |1987|6150|;Here to clear RXEN = receive enable in a PCI
                                                                             |1987|6151|; call with   [W6] = line #,,x
                                                                             |1987|6152|;             clobbers W1 & W2
                                                                             |1987|6153|
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,1988|6154|CLR PCI RXEN:
                                                                             |1988|6155|        J[RXEN]_[W2]                            ;Get bit for RXEN
                                                                             |1988|6156|        CALL [RD PCI CR]
000,000,0,14,11,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1990|6157|        [W2]BAR&[W1]_Y,ALU_PCI,                 ;Clear bit
                                                                             |1990|6158|         RETURN
                                                                             |1990|6159|
                                                                             |1990|6160|;Here to read PCI SR register
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0010,00,7,01,0,0,0,1991|6161|RD PCI SR:
                                                                             |1991|6162|        J[A0]_[W1]                              ;Address of status register
000,000,0,07,04,0,26,2,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3713,00,7,07,0,0,0,1992|6163|        SWAP [W6]_[W1] F_Q,B[W1]_F,             ;Get line number
                                                                             |1992|6164|        GOTO [RDPCI2]
                                                                             |1992|6165|
                                                                             |1992|6166|;Here to read PCI CR register
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0030,00,7,01,0,0,0,1993|6167|RD PCI CR:
                                                                             |1993|6168|        J[A1!A0]_[W1]                           ;Bits to address command register
                                                                             |1993|6169|        ;GOTO [RD PCI]
                                                                             |1993|6170|
                                                                             |1993|6171|;Here to read a PCI register
000,000,0,07,04,0,26,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1994|6172|RD PCI: SWAP [W6]_[W1] F_Q,B[W1]_F              ;Get line number
000,000,0,14,03,1,02,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1995|6173|RDPCI2: Q+[W1]_Y,Y_TTY ADR                      ;Address register
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,03,0,0,0,1996|6174|        PCI_ALU,Y_[W1],                         ;Read register
                                                                             |1996|6175|         RETURN
                                                                             |1996|6176|
                                                                             |1996|6177|;Here to write a PCI register
                                                                             |1996|6178|; Call with A[1:0] in W1, and data in W2
000,000,0,07,04,0,26,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,1997|6179|WR PCI: SWAP [W6]_[W1] F_Q,B[W1]_F              ;Get line number
000,000,0,14,03,1,02,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,1998|6180|        Q+[W1]_Y,Y_TTY ADR                      ;Address register
000,000,0,14,06,1,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,03,0,0,0,1999|6181|        [W2]_Y,ALU_PCI,                         ;Write register
                                                                             |1999|6182|         RETURN
                                                                             |1999|6183|
                                                                             |1999|6184|;Here for a receiver interrupt for a PCI line
                                                                             |1999|6185|; call with adr of line status register in W6, and status in W1
000,000,0,04,10,1,00,0,14,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0006,00,7,01,0,0,0,2000|6186|INT RCV:
                                                                             |2000|6187|        J[LNXRHD]_[W4]                          ;Offset for receive header
000,000,0,07,10,1,26,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3713,00,7,07,0,0,0,2001|6188|        SWAP [W6]_[W1] F_Q,ZERO_F,              ;Get line number
                                                                             |2001|6189|        CALL [RDPCI2]                           ;Read receiver register
                                                                             |2001|6190|        J[0377]_[W3]                            ;Mask to strip extraneous bits
000,000,0,04,14,0,02,0,10,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3707,00,7,00,0,0,0,2003|6191|        [W1]&[W3]_B,                            ;Strip extraneous bits
                                                                             |2003|6192|         CALL [RD PCI SR]                       ; and get SR
                                                                             |2003|6193|        J[070]_[W2]                             ;Mask for error bits
000,000,0,04,14,0,06,0,00,0,0,00,00,00,00,00,0,64,1,0,1,03,02,00,3731,00,7,00,0,0,0,2005|6194|        [W2]&[W1]_B,                            ;Leave only error flags
                                                                             |2005|6195|         IF CT [IZ IX_UX] THEN [RINT2]
                                                                             |2005|6196|        J[0400]_[W2]                            ;Error flag
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0400,00,7,01,0,0,0,2006|6197|        [W2].OR.[W3]_B                          ;Add flag
000,000,0,04,17,0,06,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2007|6198|        SWAP [W1]_[W3 LH]                       ;Add flags
000,000,0,14,14,0,76,0,24,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,3740,00,7,00,0,0,0,2009|6199|RINT2:  [K -1.0]&[W6]_Y,                        ;See if this is the cty
                                                                             |2009|6200|        IF NOT CT [IZ] THEN [RINT10]            ; Branch if not cty
                                                                             |2009|6201|        J[0177]_[W2]                            ;Mask to strip parity
000,000,0,07,14,0,12,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0034,00,7,01,0,0,0,2011|6202|        [W3]&[W2]_F,F_Q FJ[034]_[W2]            ;^\ char
                                                                             |2011|6203|        J[CMDFLG]_RAMFILE ADR                   ;Address console flags
000,000,0,14,01,1,06,0,00,0,1,00,00,00,00,00,0,64,1,1,1,03,02,00,0722,00,7,00,0,0,0,2013|6204|        Q-[W2]_Y,                               ;Check for typing ^\
                                                                             |2013|6205|        IF CT [IZ] THEN [CNTRL BKSLSH]
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,2014|6206|        RAMFILE_Y,Y_[W2]                        ;Get console flags
000,000,0,14,14,0,47,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,0624,00,7,00,0,0,0,2015|6207|        [BIT4]&[W2]_Y,                          ;(F.USR) Branch if user mode
                                                                             |2015|6208|         IF CT [IZ] THEN [CONSOLE CHAR]         ;Treat as CTY input
                                                                             |2015|6209|
                                                                             |2015|6210|;Here for a receive interrupt except for CTY in Console mode
                                                                             |2015|6211|; received char in W4
000,000,0,14,06,1,22,0,00,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2016|6212|RINT10:
                                                                             |2016|6213|.IFNOT/FTDDTM
                                                                             |2016|6214|        [W4]+[W6]_Y,Y_RAMFILE ADR               ;Address char word
                                                                             |2016|6215|.ENDIF/FTDDTM
                                                                             |2016|6216|.IF/FTDDTM
                                                                             |2016|6217|        [W5]_Y, IX_MX                           ;Check status reg
000,000,0,14,03,0,16,0,24,0,0,00,00,00,00,03,0,56,1,1,1,03,03,00,3751,00,7,00,0,0,0,2017|6218|        [W4]+[W6]_Y,Y_RAMFILE ADR,              ;Address char word
                                                                             |2017|6219|         IF NOT CT [MN] THEN [RINT30]           ; Branch if not DDT mode
                                                                             |2017|6220|
                                                                             |2017|6221|;Here because line is in DDT mode
                                                                             |2017|6222|.IF/FTCRAM
                                                                             |2017|6223|        RAMFILE_[W2]                            ;Check for already holding
                                                                             |2017|6224|        [W2]_[W2],                              ;Let latches go
                                                                             |2017|6225|        IF CT [IZ] THEN [RINTI2]
                                                                             |2017|6226|.ENDIF/FTCRAM
                                                                             |2017|6227|.IFNOT/FTCRAM
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,64,1,1,0,03,02,00,3745,00,7,04,0,0,0,2018|6228|        RAMFILE_Y,                              ;Check for already holding
                                                                             |2018|6229|        IF CT [IZ] THEN [RINT12]
                                                                             |2018|6230|.ENDIF/FTCRAM
                                                                             |2018|6231|        J[0420]_[W2]                            ;Overrun error
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0420,00,7,01,0,0,0,2019|6232|        [W2].OR.[W1]_B                          ;Add error flag
000,000,0,04,10,0,02,2,15,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,2021|6233|RINT12: SWAP [W1]_[W4 LH]                       ;Put flags in LH
                                                                             |2021|6234|        [W4]_RAMFILE                            ;Save character
000,000,0,14,14,0,77,0,14,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2022|6235|        CALL [SET RDN]                          ;Set receiver done
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3663,00,7,00,0,0,0,2023|6236|        GOTOP [PCI INT CLR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,2024|6237|.ENDIF/FTDDTM
                                                                             |2024|6238|
                                                                             |2024|6239|;Here because line is not in DDT mode
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2000,00,7,01,0,0,0,2025|6240|RINT30: J[02000]_[W1]                           ;Will become bit RXEN
                                                                             |2025|6241|        SWAP [W1]_[W1]                          ;Make RXEN
000,000,0,14,14,0,22,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4004,00,7,00,0,0,0,2027|6242|        [W5]&[W1]_Y,
                                                                             |2027|6243|        IF CT [IZ] THEN [RINT99]
                                                                             |2027|6244|;Here to put next byte into buffer
                                                                             |2027|6245|        J[RCV TTY PF]_[W1]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4010,00,7,01,0,0,0,2028|6246|        CALL [SET PF RCOVR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,5017,00,7,00,0,0,0,2029|6247|        J[#24B MASK]_RAMFILE ADR
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3630,00,7,04,0,0,0,2031|6248|        RAMFILE_[W2],                           ;Get 24 bit mask
                                                                             |2031|6249|        CALL [NXT RX WRD]                       ; Get word for char
                                                                             |2031|6250|        J[0777]_[W1]                            ;Mask for data
000,000,1,11,06,1,33,0,04,0,0,00,00,51,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2033|6251|        ROL [PMA]_[W2],IX_MX                    ;Byte #ab, b_MN
000,000,1,11,06,1,06,0,04,0,0,00,00,51,00,00,0,56,1,0,1,03,03,00,3765,00,7,00,0,0,0,2034|6252|        ROL [W2]_[W2],                          ;Byte #ab, a_MN
                                                                             |2034|6253|         IF NOT CT [MN IX_MX] THEN [RINT70]
                                                                             |2034|6254|        IF NOT CT [MN] THEN [RINT72]            ;Check for byte 2 or 3
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,56,1,1,0,03,03,00,3767,00,7,00,0,0,0,2035|6255|        GOTO [RINT73]
000,000,0,04,10,0,12,2,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,2037|6256|RINT70: SWAP [W3]_[W3]                          ;Enter here for byte 0
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,56,1,1,0,03,02,00,3773,00,7,07,0,0,0,2038|6257|        SWAP [W1]_[W1],                         ;Swap mask also
                                                                             |2038|6258|        IF CT [MN] THEN [RINT73]                ;Check for byte 0 or 1
000,000,1,11,06,1,12,0,10,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2039|6259|RINT72: #2*[W3]_[W3]                             ;Enter here for byte 2
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0003,00,7,00,0,0,0,2040|6260|        #2*[W1]_[W1],J[3]_CTR
000,000,1,11,03,0,12,0,10,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2041|6261|RINT74: #4*[W3]_B
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,3771,00,7,00,0,0,0,2042|6262|        #4*[W1]_B,LOOP [RINT74]                  ;Shift mask also
000,000,0,04,11,0,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2043|6263|RINT73: [W1]BAR&[MB]_B                          ;Enter here for byte 3
                                                                             |2043|6264|                                                ; Clear slot for byte
000,000,0,04,17,0,12,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,00,0,0,0,2044|6265|        [W3].OR.[MB]_B,                         ;Add new byte
                                                                             |2044|6266|        CALL [UNMAPPED WRITE]                   ; Save in buffer
                                                                             |2044|6267|        IF NOT CT [UZ] THEN [RINT99]            ;Check for buffer exhausted
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3663,00,7,00,0,0,0,2046|6268|RINT93: CALL [SET RDN]                          ;We are done with buffer
                                                                             |2046|6269|        J[LNXRHD]_[W4]                          ;Got clobbered so restore
000,000,0,14,03,0,26,0,14,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2048|6270|        [W6]+[W4]_Y,Y_RAMFILE ADR               ;Addr RF copy of current hdr adr
000,000,0,04,10,0,00,0,33,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4105,00,7,04,0,0,0,2049|6271|        RAMFILE_[PMA],                          ;Get adr of header
                                                                             |2049|6272|         CALL [CHNG2]                           ; write pointer back
                                                                             |2049|6273|        CALL [GET NXT RX HDR]                   ;Get header for next buffer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3636,00,7,00,0,0,0,2050|6274|        IF CT [UOVR] CALL [CLR RGO]             ;We have now stopped
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,2052|6275|RINT99: GOTOP [PCI INT CLR]                     ;Dismiss interrupt
                                                                             |2052|6276|
                                                                             |2052|6277|;Here because memory error on receive
000,000,0,01,06,1,57,0,00,0,0,00,00,51,00,00,0,20,1,1,1,14,00,00,0001,00,7,00,0,0,0,2053|6278|RINT91: ROR [BIT17]_[W1], J[1]_CTR              ;Need to make a bit 20
000,000,0,01,06,1,02,0,00,0,0,00,00,51,00,00,0,20,1,1,1,11,00,00,4006,00,7,00,0,0,0,2054|6279|RINT92: ROR [W1]_[W1],LOOP [RINT92]             ;Rotate to bit20
000,000,0,04,17,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,3776,00,7,00,0,0,0,2055|6280|        [W1].OR.[W5]_B,                         ;Add rcv mem err flag
                                                                             |2055|6281|         GOTO [RINT93]                          ; and stop transmission
                                                                             |2055|6282|
                                                                             |2055|6283|;Here when page fail (=nxm or mem fault) on rcv
000,000,0,01,06,1,57,0,00,0,0,00,00,51,00,00,0,20,1,1,1,04,01,00,0001,00,7,00,0,0,0,2056|6284|RCV TTY PF:
                                                                             |2056|6285|        ROR [BIT17]_[W1],PUSH J[1]_CTR          ;Make a bit 18
000,000,0,01,06,1,02,0,00,0,0,00,00,51,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,2057|6286|        ROR [W1]_[W1],RFCT                      ;Make a bit 20
000,000,0,04,17,0,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,3663,00,7,00,0,0,0,2058|6287|        [W1].OR.[W5]_B,                         ;Set rcv mem err flag
                                                                             |2058|6288|         CALL [SET RDN]                         ; And flag transmitter stopped
                                                                             |2058|6289|        GOTO [PCI INT CLR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3613,00,7,00,0,0,0,2059|6290|
                                                                             |2059|6291|;Here for a dataset change interrupt for a PCI line
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3707,00,7,00,0,0,0,2060|6292|INT DSC:
                                                                             |2060|6293|        CALL [RD PCI SR]                        ; Get status register
                                                                             |2060|6294|        J[0300]_[W2]                            ;Mask for DSD & DCD
000,000,0,04,14,0,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4027,00,7,00,0,0,0,2062|6295|        [W2]&[W1]_B,                            ;Leave only new DSD&DCD in W1
                                                                             |2062|6296|        CALL [SWAP W2_W2]                       ;Put mask in LH
000,000,0,06,14,0,06,0,20,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3031,00,7,00,0,0,0,2063|6297|        [W2]&[W5]_Q,                            ;Put only DSD & DCD in Q
                                                                             |2063|6298|         CALL [SWAP W1 W1]                      ;Put new status in LH
000,000,0,14,13,1,02,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4025,00,7,00,0,0,0,2064|6299|        Q.XOR.[W1]_F,F_Y,                       ;Check for change
                                                                             |2064|6300|         IF CT [IZ] THEN [IDSC3]
                                                                             |2064|6301|        [W2]BAR&[W5]_B                          ;Clear old status bits
000,000,0,04,11,0,06,0,20,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2065|6302|        J[04000]_[W2 RH]                        ;Get bit to make dataset change
000,000,0,04,10,1,00,0,06,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4000,00,7,01,0,0,0,2066|6303|        #2*([W2]+[W2 RH])_B                     ;Makes dataset change bit
000,000,0,14,17,0,06,0,20,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2068|6304|        [W2].OR.[W5]_Y,                         ;Set bits
                                                                             |2068|6305|         ALU_RAMFILE
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,3613,00,7,00,0,0,0,2069|6306|IDSC3:  GOTOP [PCI INT CLR]                     ;Dismiss interrupt
                                                                             |2069|6307|
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,07,0,0,0,2070|6308|SWAP W1_W1:
                                                                             |2070|6309|        SWAP [W1]_[W1],
                                                                             |2070|6310|        RETURN
000,000,0,04,10,0,06,2,04,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,07,0,0,0,2071|6311|SWAP W2_W2:
                                                                             |2071|6312|        SWAP [W2]_[W2],
                                                                             |2071|6313|        RETURN
                                                                             |2071|6314|
                                                                             |2071|6315|;Here to accumulate CRC for character
                                                                             |2071|6316|; call with    [W1] char
                                                                             |2071|6317|;              [W2] CRC so far
                                                                             |2071|6318|;              [W3] CRC seed
                                                                             |2071|6319|.IF/FTCRC
                                                                             |2071|6320|CRC CALC:
                                                                             |2071|6321|        [W1].XOR.[W2]_F,F_B,
                                                                             |2071|6322|        J[7]_CTR
                                                                             |2071|6323|CRC 2:  [W2]_F,F LRS_[W2] SIO0_MC
                                                                             |2071|6324|         IF CT [MC] THEN [CRC 3]
                                                                             |2071|6325|        LOOP [CRC 2]
                                                                             |2071|6326|        RETURN
                                                                             |2071|6327|CRC 3:  [W3].XOR.[W2]_F,F_B,
                                                                             |2071|6328|         LOOP [CRC 2]
                                                                             |2071|6329|        RETURN
                                                                             |2071|6330|.ENDIF/FTCRC
                                                                             |2071|6331|
                                                                             |2071|6332|.TOC 2, "External IO"
                                                                             |2071|6333|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,36,00,3072,00,7,00,0,0,0,2072|6334|IO EFA:
                                                                             |2072|6335|        IF [USER] CALL [CHECK IO OK]            ;Give users MUUOs
                                                                             |2072|6336|        DISPATCH [DISPATCH 2]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,06,01,00,0000,11,7,00,0,0,0,2073|6337|
000,000,0,14,14,0,52,0,54,0,0,00,14,00,00,00,0,64,1,1,1,13,03,00,1420,00,7,00,0,0,0,2074|6338|TIOE:   [AC-OP]&[MEM-OP]_Y,                     ;Check for need to skip
                                                                             |2074|6339|         IF NOT CT [IZ] THENP [IFETCH],
                                                                             |2074|6340|         SET LOCAL
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,2075|6341|        [PC]+1_[PC RH],                         ; Skip
                                                                             |2075|6342|         GOTOP [IFETCH]
                                                                             |2075|6343|
                                                                             |2075|6344|;TIOEB:
                                                                             |2075|6345|
000,000,0,14,14,0,52,0,54,0,0,00,14,00,00,00,0,64,1,1,1,03,02,00,1420,00,7,00,0,0,0,2076|6346|TION:   [AC-OP]&[MEM-OP]_Y,                     ;Check for need to skip
                                                                             |2076|6347|         IF CT [IZ] THEN [IFETCH],
                                                                             |2076|6348|         SET LOCAL
000,000,0,04,06,1,36,0,36,0,1,00,00,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,2077|6349|        [PC]+1_[PC RH],                         ; Skip
                                                                             |2077|6350|         GOTOP [IFETCH]
                                                                             |2077|6351|
                                                                             |2077|6352|;TIONB:
                                                                             |2077|6353|
000,000,0,04,10,0,00,0,54,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4037,00,7,04,0,0,0,2078|6354|WRIO:   RAMFILE_[MEM-OP],
                                                                             |2078|6355|        GOTO [WRIO.1]
                                                                             |2078|6356|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4042,00,7,00,0,0,0,2079|6357|WRIO.1: CALL [WRIOX]
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,26,1,1,0,13,03,00,1420,00,7,00,0,0,0,2080|6358|        SET LOCAL,
                                                                             |2080|6359|         IF NOT CT [UOVR] THENP [IFETCH]
                                                                             |2080|6360|        GOTOP [IO PF]                           ;Win an IO page fail
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4745,00,7,00,0,0,0,2081|6361|
                                                                             |2081|6362|;Here to to an IO write
                                                                             |2081|6363|; Call with data in [MEM-OP] and adr in [E]
                                                                             |2081|6364|; returns with UOVR if illegal
000,000,0,04,14,0,67,0,40,0,0,00,00,00,00,00,0,17,0,1,1,01,01,00,1545,00,7,00,0,0,0,2082|6365|WRIOX:  [K 7777.-1]&[E]_B,#1_UOVR,              ;Strip extraneous bits
                                                                             |2082|6366|        CALL [VAL IO ADR]                       ; Validate IO address
000,000,0,04,06,1,42,0,33,0,0,00,00,05,00,00,0,56,1,1,1,03,02,00,4047,00,4,02,0,0,0,2083|6367|        [E]_[PMA],START IO WRITE,               ;Put out IO address
                                                                             |2083|6368|         IF CT [MN] THEN [WRIO TTY]
000,000,0,04,06,1,56,0,54,0,0,00,00,05,00,00,0,20,1,0,1,16,00,00,0000,00,5,02,0,0,0,2084|6369|        [MEM-OP]_[MEM-OP],ALU_IO                ;Perform transfer
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,16,0,1,0,12,61,00,0000,00,0,00,0,0,0,2085|6370|        #0_UOVR,MEM HOLD,
                                                                             |2085|6371|         IF [NO BUS ERROR] RETURN
                                                                             |2085|6372|.IFNOT/FTCKBP
                                                                             |2085|6373|        IF [NOT MEM EXISTS] THEN [SET UOVR]
                                                                             |2085|6374|        IF [NOT MEM FAULT] RETURN
                                                                             |2085|6375|.ENDIF/FTCKBP
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,17,0,1,0,12,01,00,0000,00,7,00,0,0,0,2086|6376|        #1_UOVR,RETURN                           ;Set error flag
                                                                             |2086|6377|
                                                                             |2086|6378|;Here to do an IO write to a TTY register
000,000,0,14,02,0,42,0,00,0,1,00,00,00,00,00,0,76,1,0,1,12,02,00,0000,00,7,00,0,0,0,2087|6379|WRIO TTY:
                                                                             |2087|6380|        [E]-[W1]_F,F_Y,
                                                                             |2087|6381|         IF CT [IN IX_MX] RETURN
000,000,0,04,10,0,00,0,10,0,0,00,00,00,00,00,0,44,1,1,0,03,02,00,4124,00,7,04,0,0,0,2088|6382|        RAMFILE_[W3],                           ;Get old contents of word
                                                                             |2088|6383|         IF CT [MZ] THEN [WRIOTM]
000,000,0,04,06,1,56,0,20,0,0,00,00,00,00,00,0,16,0,1,1,16,00,00,0000,00,7,04,0,0,0,2089|6384|        [MEM-OP]_[W5],ALU_RAMFILE,              ;Write word
                                                                             |2089|6385|        #0_UOVR
000,000,0,06,14,0,06,0,40,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4061,00,7,00,0,0,0,2090|6386|        [W2]&[E]_F,F_Q_Y,                       ;Test which word was written
                                                                             |2090|6387|        IF CT [IZ] THEN [WRIOTO]                ; Branch for wrote status reg
                                                                             |2090|6388|.IF/FTTTYF
                                                                             |2090|6389|        J[LNXXCHR]_[W2]                         ;Offset for xmt char
000,000,0,14,01,1,06,0,00,0,1,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2092|6390|        Q-[W2]_F,F_Y,IX_MX                      ;See if wrote xmt char
000,000,0,04,11,0,02,0,24,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4121,00,7,00,0,0,0,2093|6391|        [W1]BAR&[W6]_B,                         ;Make adr of line block
                                                                             |2093|6392|         IF CT [IZ] THEN [WRIOT5]
                                                                             |2093|6393|.ENDIF/FTTTYF
000,000,0,06,03,1,77,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4060,00,7,00,0,0,0,2094|6394|        Q+[K -1]_F,F_Q_Y,
                                                                             |2094|6395|        IF CT [IZ] THEN [WRIOT12]
000,000,0,06,03,1,77,0,00,0,0,00,00,00,00,00,0,64,1,1,1,12,03,00,0000,00,7,00,0,0,0,2095|6396|        Q+[K -1]_F,F_Q_Y,
                                                                             |2095|6397|        IF NOT CT [IZ] RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3500,00,7,00,0,0,0,2096|6398|WRIOT12:
                                                                             |2096|6399|        GOTO [SET PCI MODE]                     ;Wrote Synch reg
                                                                             |2096|6400|
                                                                             |2096|6401|;Here because wrote status register
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4000,00,7,01,0,0,0,2097|6402|WRIOTO:
                                                                             |2097|6403|.IFNOT/FT7PI
                                                                             |2097|6404|        J[6]_[W1]                               ;Mask for PI channel
                                                                             |2097|6405|        [W1]&[MEM-OP]_Y,IX_MX
                                                                             |2097|6406|        ROR [W1]_[W1]:                          ;Make mask for bit 35
                                                                             |2097|6407|        IF NOT CT [MZ] THEN [WRIOT1]
                                                                             |2097|6408|        [W1]&[MEM-OP]_Y,                        ; Check for putting on channel 1
                                                                             |2097|6409|        IF NOT CT [IZ] THEN [MUUO]              ; Putting on chnl 1 illegal
                                                                             |2097|6410|WRIOT1:
                                                                             |2097|6411|.ENDIF/FT7PI
                                                                             |2097|6412|.IF/FTTTYR
                                                                             |2097|6413|        J[04000]_[W1]                           ;Make a bit 23 from this
                                                                             |2097|6414|        ROL [W1]_[W1]                           ;Makes a bit 23
000,000,0,14,14,0,02,0,54,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,3463,00,7,00,0,0,0,2099|6415|        [W1]&[MEM-OP]_Y,                        ;Check for doing Reset
                                                                             |2099|6416|        IF NOT CT [IZ] THEN [RESET PCI]
                                                                             |2099|6417|.ENDIF/FTTTYR
                                                                             |2099|6418|        J[WRIO TMP]_RAMFILE ADR                 ;Address temp location
000,000,0,04,13,0,22,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2101|6419|        [W5].XOR.[W3]_F,F_B,ALU_RAMFILE         ;Find flags which changed
000,000,0,14,10,0,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,01,54,00,4100,00,7,00,0,0,0,2102|6420|        S SEL[W3],                              ;Check for transmit enable changed
                                                                             |2102|6421|         IF [B BIT 9] CALL [CHNG TXEN]
                                                                             |2102|6422|        J[BIT7]_RAMFILE ADR                     ;Address a bit 7
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0107,00,7,01,0,0,0,2103|6423|        RAMFILE_[W1]                            ;Get a bit 7
000,000,0,14,14,0,02,0,10,0,0,00,00,00,00,00,0,64,1,1,1,01,03,00,4074,00,7,00,0,0,0,2105|6424|        [W1]&[W3]_Y,                            ;Check for RXEN changed
                                                                             |2105|6425|        IF NOT CT [IZ] CALL [CHNG RXEN]
                                                                             |2105|6426|        CALL [SET PCI CR]                       ;Set CR according to status word
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,16,0,1,0,03,01,00,3225,00,7,00,0,0,0,2107|6427|        #0_UOVR,                                ;Flag WRIO won
                                                                             |2107|6428|        GOTO [SET PROC REG]                     ; Be sure ints are right
                                                                             |2107|6429|
000,000,0,04,10,1,00,0,14,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0006,00,7,01,0,0,0,2108|6430|CHNG RXEN:
                                                                             |2108|6431|        J[LNXRHD]_[W4]                          ;Offset for receive header
000,000,0,14,03,0,26,0,14,0,0,00,00,00,00,03,0,17,0,1,1,16,00,00,0000,00,7,00,0,0,0,2109|6432|        [W6]+[W4]_Y,Y_RAMFILE ADR,              ;Address ramfile copy
                                                                             |2109|6433|         #1_UOVR                                ; of current hdr adr
000,000,0,14,14,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4112,00,7,00,0,0,0,2110|6434|        [W1]&[W5]_Y,                            ;Check for went off or on
                                                                             |2110|6435|         IF NOT CT [IZ] THEN [SET RXEN]
                                                                             |2110|6436|        GOTO [CHNG2]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4105,00,7,00,0,0,0,2111|6437|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0400,00,7,01,0,0,0,2112|6438|CHNG TXEN:
                                                                             |2112|6439|        J[0400]_[W1]                            ;Make a bit 9 = CR0
                                                                             |2112|6440|        SWAP [W1]_[W1]                          ;Offset for transmit header
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,2113|6441|        J[LNXXHD]_[W4]
000,000,0,14,03,0,26,0,14,0,0,00,00,00,00,03,0,17,0,1,1,16,00,00,0000,00,7,00,0,0,0,2115|6442|        [W6]+[W4]_Y,Y_RAMFILE ADR,              ;Address ramfile copy
                                                                             |2115|6443|         #1_UOVR                                 ; of current hdr adr
000,000,0,14,14,0,02,0,20,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4115,00,7,00,0,0,0,2116|6444|        [W1]&[W5]_Y,                            ;Check went on or off
                                                                             |2116|6445|        IF NOT CT [IZ] THEN [SET TXEN]
000,000,0,14,03,0,26,0,14,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2117|6446|CHNG2: [W6]+[W4]+1_F,F_Y,Y_RAMFILE ADR          ;Address ramfile copy of pointer
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3416,00,7,04,0,0,0,2118|6447|        RAMFILE_[MB],                           ;Get ramfile copy of pointer
                                                                             |2118|6448|         CALL [ZERO RAMFILE]                    ;Clear ramfile copy
000,000,0,04,06,1,33,0,33,0,1,00,00,00,00,00,0,20,1,1,1,01,01,00,4704,00,7,00,0,0,0,2119|6449|        [PMA]+1_[PMA],                          ;Make adr of pointer in header
                                                                             |2119|6450|         CALL [UNMAPPED WRITE]
                                                                             |2119|6451|        J[WRIO TMP]_RAMFILE ADR
000,000,0,04,10,0,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,04,0,0,0,2121|6452|        RAMFILE_[W3],                           ;Get changed bits back
                                                                             |2121|6453|         RETURN
                                                                             |2121|6454|
000,000,0,04,10,0,00,0,33,0,0,00,00,00,00,00,0,64,1,1,0,01,03,00,3644,00,7,04,0,0,0,2122|6455|SET RXEN:
                                                                             |2122|6456|        RAMFILE_[PMA],                          ;Get current header adr
                                                                             |2122|6457|         IF NOT CT [IZ] CALL [GET RX HDR]
                                                                             |2122|6458|        IF CT [UOVR] CALL [CLR RGO]             ;In case lost
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,26,1,1,0,01,02,00,3655,00,7,00,0,0,0,2123|6459|        GOTO [RSTWTM]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4117,00,7,00,0,0,0,2124|6460|
000,000,0,04,10,0,00,0,33,0,0,00,00,00,00,00,0,64,1,1,0,01,03,00,3644,00,7,04,0,0,0,2125|6461|SET TXEN:
                                                                             |2125|6462|        RAMFILE_[PMA],                          ;Get adr of current header
                                                                             |2125|6463|         IF NOT CT [IZ] CALL [GET RX HDR]
                                                                             |2125|6464|        IF CT [UOVR] CALL [CLR XGO]             ;In case lost
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0541,00,7,01,0,0,0,2127|6465|RSTWTM: J[WRIO TMP]_RAMFILE ADR                 ;Address tmp loc again
000,000,0,04,10,0,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,04,0,0,0,2128|6466|        RAMFILE_[W3],RETURN                     ;Restore W3 and exit
                                                                             |2128|6467|
                                                                             |2128|6468|.IF/FTTTYF
                                                                             |2128|6469|;Here because wrote XMT char word
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3675,00,7,00,0,0,0,2129|6470|WRIOT5: CALL [SET PCI TXEN]                     ;Be sure xmtr going
000,000,0,14,06,1,26,0,00,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2130|6471|        [W6]_Y,Y_RAMFILE ADR                    ;Address status word
000,000,0,04,10,0,00,0,20,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,3673,00,7,04,0,0,0,2131|6472|        RAMFILE_[W5],
                                                                             |2131|6473|         GOTO [CLR XDN]                         ;Clear transmit done int flag
                                                                             |2131|6474|.ENDIF/FTTTYF
                                                                             |2131|6475|
                                                                             |2131|6476|;Here to write TTYRCV BITS
000,000,0,14,06,1,56,0,00,0,0,00,00,00,00,00,0,16,0,1,1,12,01,00,0000,00,7,04,0,0,0,2132|6477|WRIOTM: [MEM-OP]_Y,ALU_RAMFILE,#0_UOVR,
                                                                             |2132|6478|        RETURN
                                                                             |2132|6479|
000,000,0,04,17,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,4037,00,7,00,0,0,0,2133|6480|BSIO:   [AC-OP].OR.[MEM-OP]_B,                  ;Add new bits we want
                                                                             |2133|6481|        GOTOP [WRIO.1]
                                                                             |2133|6482|
                                                                             |2133|6483|;BSIOB:
                                                                             |2133|6484|
000,000,0,04,11,0,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,4037,00,7,00,0,0,0,2134|6485|BCIO:   [AC-OP]BAR&[MEM-OP]_B,                  ;Clear bits we do not like
                                                                             |2134|6486|        GOTOP [WRIO.1]
                                                                             |2134|6487|
                                                                             |2134|6488|;BCIOB:
                                                                             |2134|6489|
                                                                             |2134|6490|.TOC "Trap Handling"
                                                                             |2134|6491|
                                                                             |2134|6492|;Here to store nothing
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,13,67,00,1420,00,7,00,0,0,0,2135|6493|TO NOWHERE:
                                                                             |2135|6494|        SET LOCAL,
                                                                             |2135|6495|        IF [NOT TRAP] THENP [IFETCH]
                                                                             |2135|6496|        ;GOTOP [TRAP]
                                                                             |2135|6497|
                                                                             |2135|6498|;Here at end of instruction to see if need to trap
000,000,0,04,10,1,00,0,00,0,0,00,70,00,00,00,0,20,1,1,0,16,00,00,0600,00,7,01,0,0,0,2136|6499|TRAP:   J[0600]_[W1],CLEAR TRAP                 ;Trap flags
000,000,0,04,10,0,02,2,33,0,0,00,14,00,00,00,0,20,1,1,0,13,41,00,1420,00,7,07,0,0,0,2137|6500|        SWAP [W1]_[PMA],SET LOCAL,
                                                                             |2137|6501|         IF [NOT PAGED] THENP [IFETCH]
000,000,0,04,14,0,03,0,33,0,0,00,00,00,00,00,0,64,1,1,1,13,02,00,1420,00,7,00,0,0,0,2138|6502|        [PC FLAGS]&[PMA]_B,                     ;Check for need to do a trap
                                                                             |2138|6503|         IF CT [IZ] THENP [IFETCH]
                                                                             |2138|6504|        PUSH J[010]_CTR
000,000,1,11,06,1,33,0,33,0,0,00,00,51,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,2140|6505|        ROL [PMA]_[PMA],RFCT
                                                                             |2140|6506|        J[0420]_[W1]
000,000,0,04,03,0,02,0,33,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4140,00,7,00,0,0,0,2142|6507|        [W1]+[PMA]_B,
                                                                             |2142|6508|        CALL [U!E READ]
                                                                             |2142|6509|        GOTO [IFETCH 4]                         ;Do instruction
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,1435,00,7,00,0,0,0,2143|6510|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,37,00,4142,00,7,00,0,0,0,2144|6511|U!E READ:
                                                                             |2144|6512|        IF [EXEC] THEN [U!E R2]
000,000,0,04,03,0,23,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,01,00,4573,00,1,02,0,0,0,2145|6513|        [UPT]+[PMA]_B,MEM START READ,
                                                                             |2145|6514|        GOTO [UNMAPPED READ]
000,000,0,04,03,0,17,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,01,00,4573,00,1,02,0,0,0,2146|6515|U!E R2: [EPT]+[PMA]_B,MEM START READ,
                                                                             |2146|6516|        GOTO [UNMAPPED READ]
                                                                             |2146|6517|
                                                                             |2146|6518|;Here to set overflow and trap 1
000,000,0,04,10,1,00,0,00,0,0,00,74,00,00,00,0,20,1,1,0,16,00,00,4002,00,7,01,0,0,0,2147|6519|SET OV!T1:
                                                                             |2147|6520|        J[04002]_[W1],SET TRAP
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4151,00,7,07,0,0,0,2148|6521|        SWAP [W1]_[W1],
                                                                             |2148|6522|         GOTO [#64*W1!PCF]
                                                                             |2148|6523|
000,000,0,04,10,1,00,0,00,0,0,00,74,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,2149|6524|SET TRAP 1:                                     ;Set trap 1
                                                                             |2149|6525|        J[0200]_[W1],SET TRAP                   ;Bit 28
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4153,00,7,07,0,0,0,2150|6526|        SWAP [W1]_[W1],                         ;Becomes a bit 10
                                                                             |2150|6527|         GOTO [W1!PCF]
                                                                             |2150|6528|
000,000,0,04,10,1,00,0,00,0,0,00,74,00,00,00,0,20,1,1,0,16,00,00,0400,00,7,01,0,0,0,2151|6529|SET TRAP 2:                                     ;Set trap 2
                                                                             |2151|6530|        J[0400]_[W1],SET TRAP                   ;Bit 27
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4153,00,7,07,0,0,0,2152|6531|        SWAP [W1]_[W1],                         ;Becomes bit 9
                                                                             |2152|6532|         GOTO [W1!PCF]
                                                                             |2152|6533|
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,14,00,00,0001,00,7,00,0,0,0,2153|6534|#64*W1!PCF:
                                                                             |2153|6535|        #4*[W1]_B,J[1]_CTR                       ;Shift bits left
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,11,00,00,4152,00,7,00,0,0,0,2154|6536|SPCF 2: #4*[W1]_B,LOOP [SPCF 2]                  ;Keep shifting bits
000,000,0,04,17,0,02,0,03,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2155|6537|W1!PCF: [W1].OR.[PC FLAGS]_B,
                                                                             |2155|6538|        RETURN
                                                                             |2155|6539|
                                                                             |2155|6540|.TOC "Interrupt Handling"
                                                                             |2155|6541|
                                                                             |2155|6542|;If this is a clock interrupt will return, but may clobber W2-W3
                                                                             |2155|6543|; If not clock will return to IFETCH
000,000,0,04,03,0,77,0,37,0,0,00,00,00,26,00,0,20,1,0,1,13,74,00,4226,00,0,00,0,0,0,2156|6544|CHK INT:
                                                                             |2156|6545|        [K -1]+[TIME]_B,IX_MX,                  ;Assume clock & tick it
                                                                             |2156|6546|        MEM HOLD,                               ; do not mess up memory
                                                                             |2156|6547|        GRANT INTERRUPT,                        ; Grant interrupt
                                                                             |2156|6548|         IF [NOT TIMER FLAG] THENP [SKIP CHAIN]
                                                                             |2156|6549|
                                                                             |2156|6550|;Here for an interrupt on level 0 ... clock
000,000,0,14,06,1,43,0,00,0,0,00,00,00,46,00,0,44,1,1,1,12,03,00,0000,00,0,00,0,0,0,2157|6551|        [PI REG]_Y,Y_2914 STATUS,
                                                                             |2157|6552|        MEM HOLD,
                                                                             |2157|6553|         IF NOT CT [MZ] RETURN
                                                                             |2157|6554|
                                                                             |2157|6555|;Here once/millisecond
                                                                             |2157|6556|        J[CLK W2]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0535,00,7,01,0,0,0,2158|6557|        [W2]_RAMFILE
000,000,0,14,14,0,77,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2159|6558|        J[CLK W3]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0536,00,7,01,0,0,0,2160|6559|        [W3]_RAMFILE
000,000,0,14,14,0,77,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2161|6560|        J[27.]_[TIME]                           ;Restart tick counter
000,000,0,04,10,1,00,0,37,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0033,00,7,01,0,0,0,2162|6561|        J[TIME BASE+1]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0567,00,7,01,0,0,0,2163|6562|        J[4000.]_[W2]                           ;Will add four milliseconds
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,7640,00,7,01,0,0,0,2164|6563|        [W2]_Q RAMFILE_[W2]                     ;Get timebase from ramfile
000,000,0,06,03,1,06,0,00,0,0,00,00,00,00,00,0,66,1,1,1,03,03,00,4174,00,7,04,0,0,0,2166|6564|        Q+[W2]_F,F_Q_Y,ALU_RAMFILE,             ;Update time base in ramfile
                                                                             |2166|6565|         IF NOT CT [IOVR] THEN [LO12]
                                                                             |2166|6566|        JS[0000]_[W2]
000,000,0,14,03,1,06,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2168|6567|        Q+[W2]_Y,ALU_RAMFILE                    ;With positive sign
                                                                             |2168|6568|        J[TIME BASE]_RAMFILE ADR                ;Address high order part of count
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0566,00,7,01,0,0,0,2169|6569|        RAMFILE_[W2]
000,000,0,14,06,1,06,0,00,0,1,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2171|6570|        [W2]+1_Y,ALU_RAMFILE
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0564,00,7,01,0,0,0,2172|6571|LO12:   J[TIME INTERVAL]_RAMFILE ADR
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,0,0,16,00,00,0000,00,7,04,0,0,0,2173|6572|        RAMFILE_[W2],IX_MX
                                                                             |2173|6573|        J[INTERVAL COUNTER]_RAMFILE ADR         ;Address the interval counter
000,000,0,07,06,1,06,0,04,0,0,00,00,00,00,00,0,44,1,1,0,03,02,00,4221,00,7,04,0,0,0,2175|6574|        [W2]_Q RAMFILE_[W2],                    ;Get the interval counter
                                                                             |2175|6575|         IF CT [MZ] THEN [LO15]                 ; No interval = no counter
000,000,0,14,03,0,77,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4221,00,7,04,0,0,0,2176|6576|        [K -1]+[W2]_Y,ALU_RAMFILE,              ;Count this interval
                                                                             |2176|6577|         IF NOT CT [IZ] THEN [LO15]
000,000,0,14,14,1,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2177|6578|        Q_Y,ALU_RAMFILE                         ;Reinitialize interval counter
                                                                             |2177|6579|        J[APR FLAGS]_RAMFILE ADR                ;Need to set interval flag in APR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0556,00,7,01,0,0,0,2178|6580|        J[040]_[W2]                             ;Bit for interval
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0040,00,7,01,0,0,0,2179|6581|        [W1]_Q RAMFILE_[W2]
000,000,0,04,17,1,06,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2181|6582|        Q.OR.[W2]_[W2],ALU_RAMFILE              ;Save updated APR FLAGS
                                                                             |2181|6583|        SWAP [W2]_[W3]                          ;Get enables
000,000,0,14,14,0,06,0,10,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2183|6584|        [W2]&[W3]_Y,IX_MX                       ;Check for flag was enabled
                                                                             |2183|6585|        J[7]_[W3]                               ;Mask for PI level
000,000,0,04,14,0,06,0,10,0,0,00,00,00,00,00,0,44,1,0,1,03,02,00,4221,00,7,00,0,0,0,2185|6586|        [W2]&[W3]_B,                            ;Check for zero PI level
                                                                             |2185|6587|         IF CT [MZ IX_MX] THEN [LO15]           ; If not enabled done
                                                                             |2185|6588|        J[BIT28]_[W2]                           ;Base to index into bit table
000,000,0,14,03,0,06,0,10,0,0,00,00,00,00,03,0,44,1,1,1,03,02,00,4221,00,7,00,0,0,0,2187|6589|         [W2]+[W3]_Y,Y_RAMFILE ADR,             ;Address bit
                                                                             |2187|6590|        IF CT [MZ] THEN [LO15]                  ; If PI level=O done
                                                                             |2187|6591|        RAMFILE_[W3]                            ;Get bit
000,000,0,04,10,0,00,0,10,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,2188|6592|        J[RF PROC REG]_RAMFILE ADR              ;Address last value of PROC REG
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0563,00,7,01,0,0,0,2189|6593|        RAMFILE_[W2]                            ;Get last value of processor reg
000,000,0,14,06,1,12,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2191|6594|        [W2].OR:[W3]_Y,ALU_RAMFILE              ;Save new last value of PROC REG
000,000,0,14,17,0,06,0,10,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,10,0,0,0,2192|6595|        [W2].OR.[W3]_Y,ALU_PROC REG             ;Change software interrupts
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0535,00,7,01,0,0,0,2193|6596|LO15:   J[CLK W2]_RAMFILE ADR                   ;Where we saved W2
                                                                             |2193|6597|        RAMFILE_[W2]
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,2194|6598|        J[CLK W3]_RAMFILE ADR                   ;Where we saved W3
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0536,00,7,01,0,0,0,2195|6599|        RAMFILE_[W3]
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,12,01,00,0000,00,1,02,0,0,0,2197|6600|        [PMA]_[PMA],MEM START READ,             ;Restart memory read
                                                                             |2197|6601|         RETURN
                                                                             |2197|6602|
                                                                             |2197|6603|;Here if interrupt is not clock
000,000,0,04,06,1,37,0,37,0,1,00,00,00,00,00,0,20,1,1,1,13,43,00,4230,00,7,00,0,0,0,2198|6604|SKIP CHAIN:
                                                                             |2198|6605|        [TIME]+1_[TIME],                        ;Correct time register
                                                                             |2198|6606|         IF [NOT RUN] THENP [SKPC2]
000,000,0,04,03,0,77,0,36,0,0,00,00,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,2199|6607|        [K -1]+[PC RH]_B,POP                    ;Back up PC
000,000,0,04,06,1,43,0,60,0,0,00,14,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,2200|6608|SKPC2:  SET LOCAL,[PI REG]_[PXCT],POP           ;Save previous level
000,000,0,04,10,0,00,0,43,0,0,00,00,00,32,00,0,20,1,1,0,15,01,00,0000,00,7,00,0,0,0,2201|6609|        #2914 STATUS_Y,Y_[PI REG],POP           ;Get PI REG in case of int
000,000,0,04,10,1,00,0,24,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0007,00,7,01,0,0,0,2202|6610|        J[7]_[W6],POP                           ;In case this is PI lvl 1 int
                                                                             |2202|6611|.IF/DEBUG3
                                                                             |2202|6612|        [W6]&[PXCT]_B
000,000,0,14,13,0,26,0,60,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4234,00,7,00,0,0,0,2204|6613|FOOEY:  [W6].XOR.[PXCT]_Y,
                                                                             |2204|6614|         IF CT [IZ] THEN [FOOEY]
                                                                             |2204|6615|.ENDIF/DEBUG3
000,000,0,04,14,0,26,0,43,0,0,00,00,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,2205|6616|        [W6]&[PI REG]_B,POP                     ;Clear extraneous bits
                                                                             |2205|6617|        IF [PXCT] CALL [SET CURRENT CTXT]
000,000,0,14,13,0,26,0,43,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4262,00,7,00,0,0,0,2207|6618|        [W6].XOR.[PI REG]_Y,                    ;Check level
                                                                             |2207|6619|         IF NOT CT [IZ] THEN [SKPC8]            ; If not 1evel 1 not PCI
                                                                             |2207|6620|.IF/DEBUG3
                                                                             |2207|6621|        J[POOP FLAG]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0520,00,7,01,0,0,0,2208|6622|        RAMFILE_[W1]
000,000,0,04,06,1,02,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4242,00,7,00,0,0,0,2210|6623|POOP:   [W1]_[W1],
                                                                             |2210|6624|         IF NOT CT [IZ] THEN [POOP]
000,000,0,14,00,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2211|6625|        ONES_F,F_Y,ALU_RAMFILE
                                                                             |2211|6626|.ENDIF/DEBUG3
000,000,0,04,06,1,00,1,00,0,0,00,00,00,00,00,0,20,1,1,1,15,01,00,0000,00,7,00,0,0,0,2212|6627|        LINE #_[W1],POP                         ;In case this is a line int
                                                                             |2212|6628|
                                                                             |2212|6629|;Contents of W1 (line # reg) are
                                                                             |2212|6630|;       bits 33-35 =line number
                                                                             |2212|6631|;       bit 31-32 =code, 0-receive, l-transmit, 2-dschange
                                                                             |2212|6632|;       bit 30 = 0
                                                                             |2212|6633|;       bit 29 = invalid
                                                                             |2212|6634|;       bits 0-28 = garbage
                                                                             |2212|6635|        J[0100]_[W2]                            ;Mask for invalid flag
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4246,00,7,00,0,0,0,2214|6636|SKPC5:  [W1]&[W2]_Y,                            ;Check for invalid flag
                                                                             |2214|6637|         IF NOT CT [IZ] THEN [SKPC5]            ;If not valid chase skip chain
                                                                             |2214|6638|        [W1]&[W6]_B                             ;Leave only line number
000,000,0,04,14,0,02,0,24,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2215|6639|        SWAP [W6]_[W6 LH]                       ;Put line number in LH also
000,000,0,04,10,0,26,2,25,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,2216|6640|        #2*([W6]+[W6 RH])_B                      ;Makes 4*linel in W6 RH
000,000,0,07,03,0,26,0,26,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,2218|6641|        [W6]+[W6 RH]_F,                         ;Make 10*line#
                                                                             |2218|6642|         F_Q FJ[LNOSW]_[W6 RH]                  ; adr of first line block
000,000,0,04,03,1,26,0,26,0,0,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2219|6643|        Q+[W6]_[W6 RH],                         ;Leaves line#,,line block adr
                                                                             |2219|6644|         Y_RAMFILE ADR
                                                                             |2219|6645|        RAMFILE_[W5]                            ;Get status word for line
000,000,0,04,10,0,00,0,20,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,2220|6646|        J[010]_[W2]                             ;Mask for dispatch
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,13,03,00,3535,00,7,00,0,0,0,2222|6647|        [W1]&[W2]_Y,                            ;Check for transmit
                                                                             |2222|6648|         IF NOT CT [IZ] THENP [INT XMT]
                                                                             |2222|6649|        J[020]_[W2]                             ;Another mask
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,13,02,00,3720,00,7,00,0,0,0,2224|6650|        [W1]&[W2]_Y,                            ;Check for rcv or dsc
                                                                             |2224|6651|         IF CT [IZ] THENP [INT RCV]
                                                                             |2224|6652|        GOTOP [INT DSC]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4014,00,7,00,0,0,0,2225|6653|
                                                                             |2225|6654|
                                                                             |2225|6655|;Here if interrupt is not for a PCI line
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0144,00,7,01,0,0,0,2226|6656|SKPC8:  J[BIT36]_[W1]                           ;Bit table
000,000,0,14,02,0,02,0,43,0,0,00,00,00,00,03,0,20,1,1,1,01,01,00,1216,00,7,00,0,0,0,2227|6657|        [W1]-[PI REG]_Y,Y_RAMFILE ADR,          ;Address bit for level
                                                                             |2227|6658|        CALL [RAMFILE_W1]                       ; Get bit for level
                                                                             |2227|6659|        J[PI IN PROG]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0557,00,7,01,0,0,0,2228|6660|        [W1]_Q RAMFILE_[W1]
000,000,0,14,17,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2230|6661|        Q.OR.[W1]_Y,ALU_RAMFILE                 ;Add this level also in progress
                                                                             |2230|6662|        J[060]_[E]                              ;New PC is 40+2n
000,000,0,06,02,0,42,0,43,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0027,00,7,01,0,0,0,2232|6663|        [E]-[PI REG]_Q,
                                                                             |2232|6664|        J[#23B MASK]_RAMFILE ADR                ; virtual addresses are 23 bits
000,000,0,07,01,1,43,0,20,0,1,00,00,00,00,00,0,20,1,1,0,03,44,00,4273,00,7,04,0,0,0,2233|6665|        Q-[PI REG]_F,RAMFILE_Y,
                                                                             |2233|6666|        F_Q Y_[W5],IF [TOPS20] THEN [SKPC82]
000,000,0,04,07,0,76,0,20,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2234|6667|        COMPLEMENT [K -1.0]_F,F_[W5]            ;Smaller address for TOPS10
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,4317,00,7,01,0,0,0,2235|6668|SKPC82: J[INT HALT]_[W1]                        ; In case we get a page fail
                                                                             |2235|6669|        CALL [SET PF RCOVR]
000,000,0,04,03,1,17,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,2237|6670|        Q+[EPT]_[PMA],MEM START READ,           ;Pick up interrupt instruction
                                                                             |2237|6671|        CALL [UNMAPPED READ]
000,000,0,04,06,1,46,0,40,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2238|6672|        [MB]_[E],IX_MX                          ;This is adr of XPCW block
000,000,0,14,11,0,22,0,44,0,0,00,00,00,00,00,0,44,1,0,1,03,02,00,4317,00,7,00,0,0,0,2239|6673|        [W5]BAR&[MB]_Y,
                                                                             |2239|6674|         IF CT [MZ IX_MX] THEN [INT HALT]       ; If location is 0 stop
                                                                             |2239|6675|        [PC FLAGS]_[MB]                         ;Save program flags
000,000,0,01,06,1,47,0,00,0,0,00,00,51,00,00,0,20,1,1,1,01,01,00,4321,00,7,00,0,0,0,2241|6676|        ROR [BIT4]_[W1],                        ;Clear user mode
                                                                             |2241|6677|         CALL [W1BAR&FLAGS]
000,000,0,01,06,1,02,0,00,0,0,00,00,51,00,00,0,20,1,1,1,01,01,00,4321,00,7,00,0,0,0,2242|6678|        ROR [W1]_[W1],                          ;Make a bit 6 a prev ctx user
                                                                             |2242|6679|        CALL [W1BAR&FLAGS]
                                                                             |2242|6680|        IF [USER] CALL [W1!PCF]                 ;Set prev ctxt user
000,000,0,04,14,0,67,0,34,0,0,00,20,00,00,00,0,44,1,1,1,03,02,00,4322,00,7,00,0,0,0,2244|6681|        [K 7777.-1]&[PC]_B,SET EXEC,            ;References are now exec
                                                                             |2244|6682|         IF CT [MZ] THEN [SKPC9]                ; Check high order bits
                                                                             |2244|6683|.IF/FT10PAG
                                                                             |2244|6684|        J[0264]_[W1]                            ;JSR instruction
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3317,00,7,07,0,0,0,2246|6685|        SWAP [W1]_[W1],CALL [W1 LLS9]           ;Make a JSR instruction
000,000,0,14,14,0,76,0,34,0,0,00,00,00,00,00,0,20,1,0,1,03,44,00,4317,00,7,00,0,0,0,2247|6686|        [K -1.0]&[PC]_Y,IX_MX,                  ;Check for illegal PC
                                                                             |2247|6687|         IF [TOPS20] THEN [INT HALT]            ; JSR is only for TOPS10
000,000,0,04,13,0,02,0,40,0,0,00,00,00,00,00,0,44,1,1,1,03,03,00,4317,00,7,00,0,0,0,2248|6688|        [W1].XOR.[E]_F,F_B,                     ;Check opcode
                                                                             |2248|6689|        IF NOT CT [MZ] THEN [INT HALT]          ; Check illegal PC
000,000,0,14,14,0,76,0,40,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4317,00,7,00,0,0,0,2249|6690|        [K -1.0]&[E]_Y,                         ;Check if it was a JSR
                                                                             |2249|6691|         IF NOT CT [IZ] THEN [INT HALT]
                                                                             |2249|6692|        J[PUSHJ FLAGS]_RAMFILE ADR              ;Flags to clear on a JSR
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4321,00,7,04,0,0,0,2251|6693|        RAMFILE_[W1],                   ;Get flags to clear
                                                                             |2251|6694|         CALL [W1BAR&FLAGS]
000,000,0,04,06,1,36,0,46,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,2252|6695|        [PC]_[MB RH],                           ;Add PC
                                                                             |2252|6696|         CALL [MEMORY WRITE]                    ;Do JSR
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5017,00,7,00,0,0,0,2253|6697|        ZERO_[W1],
                                                                             |2253|6698|         CALL [SET PF RCOVR]
000,000,0,04,06,1,42,0,36,0,1,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,2254|6699|        [E]+1_[PC RH],SET LOCAL,                ;Set new PC
                                                                             |2254|6700|        GOTOP [IFETCH]
                                                                             |2254|6701|.ENDIF/FT10PAG
                                                                             |2254|6702|
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0101,00,7,01,0,0,0,2255|6703|INT HALT:
                                                                             |2255|6704|        J[HALT III]_[W1]                        ;Illegal interrupt instruction
                                                                             |2255|6705|        GOTOP [SET HALT CODE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1166,00,7,00,0,0,0,2256|6706|
000,000,0,04,11,0,02,0,03,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2257|6707|W1BAR&FLAGS:
                                                                             |2257|6708|        [W1]BAR&[PC FLAGS]_B,
                                                                             |2257|6709|         RETURN
                                                                             |2257|6710|
                                                                             |2257|6711|;Here because interrupt instruction is a 23bit virtual address
000,000,0,04,06,1,02,0,20,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4711,00,7,00,0,0,0,2258|6712|SKPC9:  [W1]_[W5],                              ;Save bit6
                                                                             |2258|6713|         CALL [MEMORY WRITE]                    ;Save flags in block
000,000,0,04,06,1,36,0,44,0,0,00,10,00,00,00,0,20,1,1,1,01,01,00,4710,00,7,00,0,0,0,2259|6714|        [PC]_[MB],SET GLOBAL,                   ;Save PC in block
                                                                             |2259|6715|         CALL [WRITE NEXT]
000,000,0,07,06,1,42,0,40,0,1,00,00,00,00,77,0,20,1,1,1,01,01,00,4663,00,7,00,0,0,0,2260|6716|        [E]+1_Q_[E],                            ;Read new flags
                                                                             |2260|6717|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2260|6718|         CALL [MEMORY READ]
000,000,0,01,06,1,47,0,00,0,0,00,00,51,00,00,0,20,1,1,1,01,01,00,4333,00,7,00,0,0,0,2261|6719|        ROR [BIT4]_[W1],                        ;Make a user mode bit
                                                                             |2261|6720|         CALL [W1BAR&MB_B]
                                                                             |2261|6721|        [W5]BAR&[MB]_B                          ;Clear prev ctxt user
000,000,0,04,11,0,22,0,44,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2262|6722|        [W5]&[PC FLAGS]_B                       ;Leave only previous context user
000,000,0,04,17,0,46,0,03,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4660,00,7,00,0,0,0,2264|6723|        [MB].OR.[PC FLAGS]_B,                   ;Set new flags
                                                                             |2264|6724|         CALL [READ NEXT]                       ;Read new PC
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5017,00,7,00,0,0,0,2265|6725|        ZERO_[W1],                              ;Done with special
                                                                             |2265|6726|         CALL [SET PF RCOVR]                    ; Page fail recovery
000,000,0,04,06,1,46,0,34,0,0,00,14,00,00,00,0,20,1,1,1,13,01,00,1420,00,7,00,0,0,0,2266|6727|        [MB]_[PC],SET LOCAL,                    ;Set new PC
                                                                             |2266|6728|         GOTOP [IFETCH]
                                                                             |2266|6729|
000,000,0,04,11,0,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2267|6730|W1BAR&MB_B:
                                                                             |2267|6731|        [W1]BAR&[MB]_B,                         ; Force exec mode
                                                                             |2267|6732|         RETURN
                                                                             |2267|6733|
                                                                             |2267|6734|
                                                                             |2267|6735|.TOC 1, "Memory Operations"
                                                                             |2267|6736|.TOC 2, "Store Instruction Results"
                                                                             |2267|6737|
                                                                             |2267|6738|;Store one word in memory, and two ACs (MULB, DIVB)
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,47,00,4337,00,7,00,0,0,0,2268|6739|TO MEM D AC:
                                                                             |2268|6740|        [MEM-OP]_[MB],
                                                                             |2268|6741|        IF [NOT PXCT] THEN [TMDAC4]
                                                                             |2268|6742|        CALL [PXCT STORE 200]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2413,00,7,00,0,0,0,2269|6743|        GOTO [D TO AC.0]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,13,0,1,1,01,01,00,4712,00,7,00,0,0,0,2271|6744|TMDAC4: [K 7777.-1]&[E]_F,F_Q_B,#1_UC,           ;Address paging ram
                                                                             |2271|6745|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2271|6746|         CALL [MEM WRITE 1]
                                                                             |2271|6747|        ;GOTO [D TO AC.0]
                                                                             |2271|6748|
                                                                             |2271|6749|;Here to store two words in ACs SEL AC+[0] not already selected
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,01,0000,00,7,00,0,0,0,2272|6750|D TO AC.0:
                                                                             |2272|6751|        SEL AC+[1]                              ;Point ramfile at AC+1
000,000,0,14,14,0,77,0,13,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4342,00,7,04,0,0,0,2273|6752|        [MEM-OP+1]_RAMFILE,                     ;Store AC+1
                                                                             |2273|6753|         GOTO [TO AC.0]
                                                                             |2273|6754|
                                                                             |2273|6755|;Store a word in an AC
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,2274|6756|TO AC.0:
                                                                             |2274|6757|        SEL AC+[0]                              ;Point ramfile at AC
                                                                             |2274|6758|
                                                                             |2274|6759|;Store a word in an AC, AC already selected
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,67,00,1420,00,7,04,0,0,0,2275|6760|TO AC:  [MEM-OP]_RAMFILE,SET LOCAL,             ;Write AC
                                                                             |2275|6761|         IF [NOT TRAP] THENP [IFETCH]
                                                                             |2275|6762|        GOTOP [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4130,00,7,00,0,0,0,2276|6763|
                                                                             |2276|6764|;Here to store two words in ACs SEL AC+[0] already selected
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,27,0,20,1,1,1,16,00,01,0000,00,7,04,0,0,0,2277|6765|D TO AC:
                                                                             |2277|6766|        [MEM-OP]_RAMFILE,SEL AC+[1]             ;Save first half of result
000,000,0,14,14,0,77,0,13,0,0,00,14,00,00,00,0,20,1,1,1,03,67,00,1420,00,7,04,0,0,0,2278|6767|        [MEM-OP+1]_RAMFILE,SET LOCAL,           ;Save second operand
                                                                             |2278|6768|         IF [NOT TRAP] THEN [IFETCH]
                                                                             |2278|6769|        GOTOP [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4130,00,7,00,0,0,0,2279|6770|
                                                                             |2279|6771|;Store a word in an AC, AC already selected
000,000,0,14,14,0,77,0,50,0,0,00,14,00,00,00,0,20,1,1,1,13,67,00,1420,00,7,04,0,0,0,2280|6772|AC TO AC:
                                                                             |2280|6773|        [AC-OP]_RAMFILE,                        ;Write AC
                                                                             |2280|6774|         SET LOCAL,
                                                                             |2280|6775|         IF [NOT TRAP] THENP [IFETCH]
                                                                             |2280|6776|        GOTOP [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4130,00,7,00,0,0,0,2281|6777|
                                                                             |2281|6778|;Here to store to self after having read location
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,23,00,4355,00,2,02,0,0,0,2282|6779|BACK TO SELF:
                                                                             |2282|6780|.IF/FAST
                                                                             |2282|6781|        [PMA]_[PMA],MEM START WRITE,
                                                                             |2282|6782|         IF [AC REF] THEN [TO SELF]
000,000,0,04,06,1,56,0,54,0,0,00,00,05,00,00,0,20,1,0,1,03,06,00,4370,00,5,02,0,0,0,2283|6783|         [MEM-OP]_MEM,                          ;Write data in memory
                                                                             |2283|6784|        IF [AC.EQ.0] THEN [BACK TO MEM 2]
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,61,00,4127,00,0,04,0,0,0,2284|6785|        [MEM-OP]_[MB],ALU_RAMFILE,              ;Write data in AC
                                                                             |2284|6786|        MEM HOLD,
                                                                             |2284|6787|        IF [NO BUS ERROR] THEN [TO NOWHERE]
                                                                             |2284|6788|        ;GOTO (TO SELF]                         ;Try again
                                                                             |2284|6789|.ENDIF/FAST
                                                                             |2284|6790|
                                                                             |2284|6791|;Store to self, At already selected
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,06,00,4371,00,7,00,0,0,0,2285|6792|TO SELF:
                                                                             |2285|6793|        IF [AC.EQ.0] THEN [TO MEM]              ;IF AC is zero store mem, else both
                                                                             |2285|6794|.IF/FAST
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4371,00,7,04,0,0,0,2286|6795|        [MEM-OP]_RAMFILE,                       ;Store AC
                                                                             |2286|6796|         GOTO [TO MEM]
                                                                             |2286|6797|.ENDIF/FAST
                                                                             |2286|6798|
                                                                             |2286|6799|;Store to both
                                                                             |2286|6800|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,2287|6801|TO BOTH.0:
                                                                             |2287|6802|        SEL AC+[0]                              ;Point ramfile at AC
                                                                             |2287|6803|;Store to both, AC already selected
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4371,00,7,04,0,0,0,2288|6804|TO BOTH:
                                                                             |2288|6805|        [MEM-OP]_RAMFILE,                       ;Store AC
                                                                             |2288|6806|        GOTO [TO MEM]
                                                                             |2288|6807|
                                                                             |2288|6808|;Store memory data in AC and AC data in memory (EXCH instruction)
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2289|6809|TO EACH:
                                                                             |2289|6810|        [MEM-OP]_RAMFILE                        ;Write AC
                                                                             |2289|6811|        [AC-OP]_[MEM-OP]
000,000,0,04,06,1,52,0,54,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2290|6812|        ;GOTO [BACK TO MEM]
                                                                             |2290|6813|
                                                                             |2290|6814|;Here when fetched word from memory and want to write back updated number
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,22,00,4367,00,2,02,0,0,0,2291|6815|BACK TO MEM:
                                                                             |2291|6816|.IF/FAST
                                                                             |2291|6817|        [PMA]_[PMA],MEM START WRITE,
                                                                             |2291|6818|         IF [NOT AC REF] THEN [BACK TO MEM 1]
000,000,0,14,06,1,33,0,00,0,0,00,00,00,00,23,0,20,1,1,1,03,46,00,4371,00,7,00,0,0,0,2292|6819|        [PMA]_Y,SPEC SEL/VMA,                   ;Address AC
                                                                             |2292|6820|         IF [PXCT] THEN [TO MEM]
000,000,0,14,14,0,77,0,54,0,0,00,14,00,00,00,0,20,1,1,1,13,67,00,1420,00,7,04,0,0,0,2293|6821|        [MEM-OP]_RAMFILE,SET LOCAL,
                                                                             |2293|6822|        IF [NOT TRAP] THENP [IFETCH]
                                                                             |2293|6823|        GOTO [TRAP]
000,000,0,04,06,1,56,0,54,0,0,00,00,05,00,00,0,20,1,0,1,16,00,00,0000,00,5,02,0,0,0,2295|6824|BACK TO MEM 1:
                                                                             |2295|6825|        [MEM-OP]_MEM                            ;Write data
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,03,61,00,4127,00,0,00,0,0,0,2296|6826|BACK TO MEM 2:
                                                                             |2296|6827|        MEM HOLD,SET LOCAL,
                                                                             |2296|6828|         IF [NO BUS ERROR] THEN [TO NOWHERE]
                                                                             |2296|6829|        ;GOTO [TO MEM]                          ;Try again
                                                                             |2296|6830|.ENDIF/FAST
                                                                             |2296|6831|;Store AC to memory
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,46,00,4375,00,7,00,0,0,0,2297|6832|TO MEM: [MEM-OP]_[MB],                          ;Put data in MB
                                                                             |2297|6833|         IF [PXCT] THEN [TO MEM PXCT]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,13,0,1,1,01,01,00,4712,00,7,00,0,0,0,2298|6834|        [K 7777.-1]&[E]_F,F_Q_B,#1_UC,          ;Address paging ram
                                                                             |2298|6835|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2298|6836|         CALL [MEM WRITE 1]
                                                                             |2298|6837|.IF/FAST
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,03,67,00,1420,00,7,00,0,0,0,2299|6838|        SET LOCAL,
                                                                             |2299|6839|         IF [NOT TRAP] THEN [IFETCH]
                                                                             |2299|6840|        GOTO [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4130,00,7,00,0,0,0,2300|6841|.ENDIF/FAST
                                                                             |2300|6842|.IFNOT/FAST
                                                                             |2300|6843|        GOTO [TO NOWHERE]
                                                                             |2300|6844|.ENDIF/FAST
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2413,00,7,00,0,0,0,2301|6845|TO MEM PXCT:
                                                                             |2301|6846|        CALL [PXCT STORE 200]                   ;Store data
                                                                             |2301|6847|        GOTOP [TO NOWHERE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4127,00,7,00,0,0,0,2302|6848|
                                                                             |2302|6849|;Store 2 words to memory
000,000,0,04,06,1,56,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,46,00,4404,00,7,00,0,0,0,2303|6850|D TO MEM:
                                                                             |2303|6851|        [MEM-OP]_[MB],                          ;Put date in right reg
                                                                             |2303|6852|         IF [PXCT] THEN [D TO MEM PXCT]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,13,0,1,1,01,01,00,4712,00,7,00,0,0,0,2304|6853|        [K 7777.-1]&[E]_F,F_Q_B,#1_UC,           ;Address paging ram
                                                                             |2304|6854|         SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2304|6855|         CALL [MEM WRITE 1]
000,000,0,04,06,1,13,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4710,00,7,00,0,0,0,2305|6856|        [MEM-OP+1]_[MB],                        ;copy rest of data to memory
                                                                             |2305|6857|         CALL [WRITE NEXT]
                                                                             |2305|6858|.IF/FAST
000,000,0,14,10,0,00,0,00,0,0,00,14,00,00,00,0,20,1,1,0,03,67,00,1420,00,7,00,0,0,0,2306|6859|        SET LOCAL,
                                                                             |2306|6860|         IF [NOT TRAP] THEN [IFETCH]
                                                                             |2306|6861|        GOTO [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4130,00,7,00,0,0,0,2307|6862|.ENDIF/FAST
                                                                             |2307|6863|.IFNOT/FAST
                                                                             |2307|6864|        GOTO [TO NOWHERE]
                                                                             |2307|6865|.ENDIF/FAST
                                                                             |2307|6866|
000,000,0,04,10,1,00,0,62,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0200,00,7,01,0,0,0,2308|6867|D TO MEM PXCT:
                                                                             |2308|6868|        J[0200]_[PXCT RH]
                                                                             |2308|6869|        CALL [SET PXCT CTXT]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,13,0,1,1,01,01,00,4712,00,7,00,0,0,0,2310|6870|        [K 7777.-1]&[E]_F,F_Q_B, #1_UC,         ;Address paging ram
                                                                             |2310|6871|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2310|6872|        CALL [MEM WRITE 1]
000,000,0,04,06,1,13,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4710,00,7,00,0,0,0,2311|6873|        [MEM-OP+1]_[MB],                        ;Copy rest of data to memory
                                                                             |2311|6874|        CALL [WRITE NEXT]
                                                                             |2311|6875|        CALL [SET CURRENT CTXT]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,2424,00,7,00,0,0,0,2312|6876|        GOTOP [TO NOWHERE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4127,00,7,00,0,0,0,2313|6877|
                                                                             |2313|6878|;Here to store 4 words in ACs
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,27,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,2314|6879|Q TO AC.0:
                                                                             |2314|6880|        SEL AC+[0]
000,000,0,14,14,0,77,0,54,0,0,00,00,00,00,27,0,20,1,1,1,16,00,01,0000,00,7,04,0,0,0,2315|6881|        [MEM-OP]_RAMFILE,
                                                                             |2315|6882|        SEL AC+[1]
000,000,0,14,14,0,77,0,13,0,0,00,00,00,00,27,0,20,1,1,1,16,00,02,0000,00,7,04,0,0,0,2316|6883|        [MEM-OP+1]_RAMFILE,
                                                                             |2316|6884|        SEL AC+[2]
000,000,0,14,14,0,77,0,50,0,0,00,00,00,00,27,0,20,1,1,1,16,00,03,0000,00,7,04,0,0,0,2317|6885|        [AC-OP]_RAMFILE,
                                                                             |2317|6886|        SEL AC+[3]
000,000,0,14,14,0,77,0,07,0,0,00,14,00,00,00,0,20,1,1,1,13,67,00,1420,00,7,04,0,0,0,2318|6887|        [AC-OP+1]_RAMFILE,
                                                                             |2318|6888|        SET LOCAL,
                                                                             |2318|6889|        IF [NOT TRAP] THENP [IFETCH]
                                                                             |2318|6890|        GOTOP [TRAP]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4130,00,7,00,0,0,0,2319|6891|
                                                                             |2319|6892|;Here to clear page table
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,14,00,00,0777,00,7,01,0,0,0,2320|6893|PAGE TABLE CLEAR:
                                                                             |2320|6894|        J[511.]_CTR,                            ;Want to clear 512 entries
                                                                             |2320|6895|        J[PAGE TABLE-1]_[W1]
000,000,0,04,06,1,02,0,00,0,1,00,00,00,00,03,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2321|6896|CLR RAM:
                                                                             |2321|6897|        [W1]+1_[W1],Y_RAMFILE ADR               ;Address next page table entry
000,000,0,14,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,11,00,00,4421,00,7,04,0,0,0,2322|6898|        ZERO_Y,ALU_RAMFILE,
                                                                             |2322|6899|         LOOP [CLR RAM]
                                                                             |2322|6900|        RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,2323|6901|
                                                                             |2323|6902|
                                                                             |2323|6903|.TOC 2, "TOPS20 Page Refill"
                                                                             |2323|6904|;TOPS20 page refill logic
                                                                             |2323|6905|;Call : x&[K 7777.-1]_[E],                      ;Virtual adr to do page refill for
                                                                             |2323|6906|;      SPEC SEL/PAGE TABLE ENTRY                ;Set section flags
                                                                             |2323|6907|;      #1_UC,CALL [PAGE W REFIL]                ;To do refill for a write reference
                                                                             |2323|6908|;      O=UC,CALL [PAGE R REFIL]                 ;To do refill for a read reference
                                                                             |2323|6909|;
                                                                             |2323|6910|;flag usage:
                                                                             |2323|6911|;      uc = T
                                                                             |2323|6912|;      uz = section pointer
                                                                             |2323|6913|;
                                                                             |2323|6914|;reg usage:
                                                                             |2323|6915|;      W1 = Virtual section number
                                                                             |2323|6916|;      W3 = AND of all section and page pointers (for W)
                                                                             |2323|6917|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,13,0,1,0,16,00,00,0441,00,7,01,0,0,0,2324|6918|PAGE W REFIL:
                                                                             |2324|6919|        J[MB REFIL]_RAMFILE ADR,#1_UC           ;Address location to save MB
000,000,0,14,14,0,77,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4426,00,7,04,0,0,0,2325|6920|        [MB]_RAMFILE,                           ;Save MB
                                                                             |2325|6921|         GOTO [PR 1]
                                                                             |2325|6922|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,45,00,4526,00,7,00,0,0,0,2326|6923|PAGE R REFIL:
                                                                             |2326|6924|        ; #0_UC
                                                                             |2326|6925|PR 1:
                                                                             |2326|6926|.IF/FT20PAG
                                                                             |2326|6927|.IF/FT10PAG
                                                                             |2326|6928|        IF [TOPS10] THEN [T10PR]
                                                                             |2326|6929|.ENDIF/FT10PAG
000,000,0,04,10,0,42,2,33,0,0,00,00,00,00,00,0,20,1,1,0,13,25,00,4751,00,7,07,0,0,0,2327|6930|        SWAP [E]_[PMA],                         ;Put section number in RH
                                                                             |2327|6931|        IF [ILLEGAL SECTION] THENP [PF X27]
000,000,0,04,14,0,66,0,33,0,0,00,00,00,00,00,0,20,1,1,1,03,37,00,4432,00,7,00,0,0,0,2328|6932|        [K 77]&[PMA]_B,                         ;Strip LH
                                                                             |2328|6933|         IF [EXEC] THEN [PR 2]
000,000,0,04,03,0,23,0,33,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4433,00,7,00,0,0,0,2329|6934|        [UPT]+[PMA]_B,GOTO [PR 3]               ;UPT + section # to PMA
000,000,0,04,03,0,17,0,33,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2330|6935|PR 2:   [EPT]+[PMA]_B                           ;EPT + section # to PMA
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0540,00,7,01,0,0,0,2331|6936|PR 3:   J[ESECT]_[W1]                           ;Get offset for section pointers
000,000,0,04,06,1,47,0,10,0,0,00,00,00,00,00,0,10,0,1,1,16,00,00,0000,00,7,00,0,0,0,2332|6937|        [BIT4]_[W3],#0_UZ                       ;W bit(Mask for AND of pointers)
000,000,0,07,03,0,02,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4463,00,1,02,0,0,0,2333|6938|        [W1]+[PMA]_F,F_Q_B,                     ;EPT(UPT)+sect+ESECT
                                                                             |2333|6939|        MEM START READ,
                                                                             |2333|6940|        CALL [PTR EVAL]                         ; Get page adr from section table
000,000,0,04,06,1,46,0,04,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4507,00,7,00,0,0,0,2334|6941|        [MB]_[W2],                              ;Save page number
                                                                             |2334|6942|        CALL [CST UPDATE]                       ;Update CST for page table
000,000,1,11,06,1,42,0,00,0,0,00,00,11,00,00,0,20,1,1,1,04,01,00,0003,00,7,00,0,0,0,2335|6943|        #2*[E]_[W1],PUSH J[3]_CTR               ;Copy virtual address to
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,2336|6944|        #4*[W1]_B,RFCT                          ;Convert to page number
                                                                             |2336|6945|        SWAP [W1]_[PMA]                         ;Right justifty page number
000,000,0,04,10,0,02,2,33,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,2337|6946|        [K 777]&[PMA]_B                         ;Make in section page number
000,000,0,04,03,0,16,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4463,00,1,02,0,0,0,2339|6947|        [W4]+[PMA]_B,MEM START READ,            ;Address page table entry
                                                                             |2339|6948|        CALL [PTR EVAL]                         ; and fetch pointer
000,000,0,04,06,1,46,0,04,0,0,00,00,00,00,00,0,11,0,1,1,01,01,00,4507,00,7,00,0,0,0,2340|6949|        [MB]_[W2],#1_UZ,                        ;Update M
                                                                             |2340|6950|        CALL [CST UPDATE]                       ; Update CST for page
                                                                             |2340|6951|        J[1]_[W1]                               ;Mask for M bit
000,000,0,14,14,0,46,0,00,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2342|6952|        [MB]&[W1]_Y,IX_MX                       ;Latch M as #0_MZ
000,000,0,06,03,0,12,0,10,0,0,00,00,00,00,00,0,44,1,1,0,03,02,00,4451,00,7,00,0,0,0,2343|6953|        #2*[W3]_Q,                              ;Make a bit 4 if writable
                                                                             |2343|6954|         IF CT [MZ] THEN [PR 6]
                                                                             |2343|6955|        Q.OR.[W3]_[W3]                          ;Add M bit if W
000,000,0,06,17,0,12,0,14,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0102,00,7,01,0,0,0,2345|6956|PR 6:   J[BIT2]_RAMFILE ADR,                    ;Bit for valid mapping
                                                                             |2345|6957|         [W3].OR.[W4]_Q                         ;Add W bit
                                                                             |2345|6958|        RAMFILE_[W1]                            ;Get valid bit from ramfile
000,000,0,04,17,1,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,36,00,5012,00,7,00,0,0,0,2347|6959|        Q.OR.[W1]_[MB],                         ;Add valid bit to paging ram word
                                                                             |2347|6960|        IF [USER] CALL [B0!MB]
000,000,0,14,06,1,42,0,00,0,0,00,00,00,00,77,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2348|6961|        [E]_Y,                                  ;Address paging ram location
                                                                             |2348|6962|        SPEC SEL/PAGE TABLE ENTRY
                                                                             |2348|6963|.IF/DEBUGPF
                                                                             |2348|6964|        JS[01776]_[W2]
000,000,0,01,10,1,00,0,04,0,0,00,00,05,00,00,0,20,1,1,0,16,00,00,1776,00,7,01,0,0,0,2349|6965|        ROR [W2]_[W2]
000,000,0,14,14,0,46,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4755,00,7,00,0,0,0,2351|6966|        [MB]&[W2]_Y,
                                                                             |2351|6967|         IF NOT CT [IZ] THEN [HALT PG]
                                                                             |2351|6968|.ENDIF/DEBUGPF
000,000,0,04,06,1,46,0,00,0,0,00,00,00,00,00,0,32,1,1,1,12,03,00,0000,00,7,04,0,0,0,2352|6969|        [MB]_[W1],ALU_RAMFILE,                  ;Fill paging ram
                                                                             |2352|6970|        IF NOT CT [UC] RETURN                   ; If read refill we are done
                                                                             |2352|6971|        J[MB REFIL]_RAMFILE ADR
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,04,0,0,0,2354|6972|        RAMFILE_[MB],
                                                                             |2354|6973|         RETURN
                                                                             |2354|6974|
                                                                             |2354|6975|;Here to evaluate a section pointer or map pointer
                                                                             |2354|6976|; call: x_Q_[PMA],      ;Physical address of 1st pointer
                                                                             |2354|6977|;        MEM START READ,
                                                                             |2354|6978|;        CALL [PTR EVAL]
                                                                             |2354|6979|; Returns
                                                                             |2354|6980|;        accumulates W in W3
                                                                             |2354|6981|;        page number in MB (maybe also other junk)
                                                                             |2354|6982|;        address in W4
                                                                             |2354|6983|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4573,00,0,00,0,0,0,2355|6984|PTR EVAL:
                                                                             |2355|6985|        MEM HOLD,                               ;Get pointer from memory
                                                                             |2355|6986|        CALL [UNMAPPED READ]
                                                                             |2355|6987|        [MB]&[W3]_B                             ;Accumulate W
000,000,1,11,06,1,46,0,14,0,0,00,00,11,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2357|6988|        #2*[MB]_[W4],IX_MX                      ;latch bitO as MN
000,000,1,11,06,1,16,0,14,0,0,00,00,11,00,00,0,56,1,0,1,03,02,00,4744,00,7,00,0,0,0,2358|6989|        #2*[W4]_[W4],                           ;Copy pointer to W4 and shift it
                                                                             |2358|6990|         IF CT [MN IX_MX] THEN [PF X0]          ; for decode on bits 0,1,2
000,000,1,11,06,1,16,0,14,0,0,00,00,11,00,00,0,56,1,0,1,03,03,00,4500,00,7,00,0,0,0,2359|6991|        #2*[W4]_[W4],
                                                                             |2359|6992|         IF NOT CT [MN IX_MX] THEN [PTE 7]      ;Branch if bits OOx
                                                                             |2359|6993|
                                                                             |2359|6994|;Here if bits 0-2 of section pointer are 0
000,000,0,06,11,0,76,0,44,0,0,00,00,00,00,00,0,56,1,1,0,03,03,00,4475,00,7,00,0,0,0,2360|6995|        [K -1.0]BAR&[MB]_Q,                     ;Get SPT index
                                                                             |2360|6996|         IF NOT CT [MN] THEN [PTE 1]            ;branch for 010
                                                                             |2360|6997|
                                                                             |2360|6998|;Here if bits 0-2 of section pointer are 011 = indirect pointer
                                                                             |2360|6999|        SWAP [MB]_[W1]                          ;Put offset in RH
000,000,0,04,14,0,72,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4475,00,7,00,0,0,0,2362|7000|        [K 777]&[W1]_B,                         ;Mask off extra bits
                                                                             |2362|7001|         CALL [PTE 1]                           ;Get table address from SPT
                                                                             |2362|7002|        [W4]_[PMA]                              ;Address of indirect table
000,000,0,04,03,0,02,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,01,00,4463,00,1,02,0,0,0,2364|7003|        [W1]+[PMA]_B,MEM START READ,
                                                                             |2364|7004|         GOTO [PTR EVAL]
                                                                             |2364|7005|
                                                                             |2364|7006|;Here if bits 0-2 of section poin~er are 010 = shared pointer
000,000,0,07,03,1,27,0,33,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,1,02,0,0,0,2365|7007|PTE 1:  Q+[SPT]_F,F_Q_[PMA],                    ;Get SPT entry for page map
                                                                             |2365|7008|        MEM START READ
                                                                             |2365|7009|        CALL [UNMAPPED READ]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4573,00,7,00,0,0,0,2366|7010|        ;This word is not included in the W accumulation
000,000,1,11,06,1,46,0,14,0,0,00,00,11,00,00,0,01,1,0,1,01,01,00,4505,00,7,00,0,0,0,2367|7011|        #2*[MB]_[W4],#1_MX,                     ;Copy page address to WJt
                                                                             |2367|7012|        CALL [#4*W4_B]
                                                                             |2367|7013|
                                                                             |2367|7014|;Here if bits 0-2 of pointer are OOx
000,000,1,11,03,0,16,0,14,0,0,00,00,11,00,00,0,56,1,1,1,03,03,00,4744,00,7,00,0,0,0,2368|7015|PTE 7:  #4*[W4]_B,
                                                                             |2368|7016|        IF NOT CT [MN] THEN [PF X0]
                                                                             |2368|7017|
                                                                             |2368|7018|;Here if bits 0-2 of pointer are 001 = immediate pointer
                                                                             |2368|7019|
000,000,0,04,10,0,66,2,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,07,0,0,0,2369|7020|PTE 8:  SWAP [K 77]_[W1]                        ;Mask for storage medium
000,000,0,14,14,0,46,0,00,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2370|7021|        [MB]&[W1]_Y,IX_MX                       ;See if in core or else where
000,000,0,04,06,1,42,0,15,0,0,00,00,00,00,00,0,44,1,1,1,03,03,00,4744,00,7,00,0,0,0,2371|7022|        [E]_[W4 LH],                            ;Add virtual section
                                                                             |2371|7023|         IF NOT CT [MZ] THEN [PF X0]
                                                                             |2371|7024|        #4*[W4]_B                                ;Shift page number to make adr
000,000,1,11,03,0,16,0,14,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2373|7025|#4*W4_B: #4*[W4]_B
                                                                             |2373|7026|         RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,00,0,0,0,2374|7027|
                                                                             |2374|7028|;Here to update a CST entry
                                                                             |2374|7029|; Call: x_[MB]          ;Physica1 page number for update
                                                                             |2374|7030|;       Call with UC if write reference
                                                                             |2374|7031|;       Call with UZ if want M updated
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0571,00,7,01,0,0,0,2375|7032|CST UPDATE:
                                                                             |2375|7033|        J[CST]_RAMFILE ADR
                                                                             |2375|7034|        J[07777]_[PMA]
000,000,1,11,14,0,77,0,33,0,0,00,00,15,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2377|7035|        [K -1]&[PMA]_F,LLS F_B,                 ;leave 17777 in PMA
                                                                             |2377|7036|         #1_SIO0 #1_QIO0
000,000,0,07,14,0,46,0,33,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,2378|7037|        [MB]&[PMA]_F,                           ;Leave only page number in Q
                                                                             |2378|7038|         F_Q RAMFILE_[PMA]                      ; Get CST adr in PMA
000,000,0,04,03,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,2379|7039|        Q+[PMA]_[PMA],MEM START READ,           ;Get CST entry for page map
                                                                             |2379|7040|        CALL [UNMAPPED READ]
                                                                             |2379|7041|        J[CSTMASK]_RAMFILE ADR
000,000,0,14,11,0,67,0,44,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2381|7042|        [K 7777.-1]BAR&[MB]_Y,IX_MX             ;Check age field
000,000,0,07,06,1,46,0,44,0,0,00,00,00,00,00,0,44,1,1,0,03,02,00,4742,00,7,04,0,0,0,2382|7043|        [MB]_Q RAMFILE_[MB],                    ;Get CSTmask register
                                                                             |2382|7044|         IF CT [MZ] THEN [AGE PF]               ; If age trap page fail
000,000,0,06,14,1,46,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0573,00,7,01,0,0,0,2383|7045|        Q&[MB]_Q,                               ;Mask off bits
                                                                             |2383|7046|        J[CSTDATA]_RAMFILE ADR
                                                                             |2383|7047|        RAMFILE_[MB]
000,000,0,07,17,1,46,0,44,0,0,00,00,00,00,00,0,32,1,1,1,03,03,00,4525,00,7,00,0,0,0,2385|7048|        Q.OR.[MB]_F,F_Q_[MB], ;                 ;Add new bits
                                                                             |2385|7049|         IF NOT CT [UC] THEN [CSTUD8]           ;B ranch if read refill
000,000,0,14,06,1,12,0,00,0,0,00,00,00,00,00,0,24,1,0,1,03,03,00,4525,00,7,00,0,0,0,2386|7050|        [W3]_Y,                                 ;Test W bit
                                                                             |2386|7051|         IF NOT CT [UZ IX_MX] THEN [CSTUD8]
                                                                             |2386|7052|        J[1]_[MB]                               ;Get M bit for CST entry
000,000,0,04,17,1,46,0,44,0,0,00,00,00,00,00,0,44,1,1,1,03,02,00,4744,00,7,00,0,0,0,2388|7053|        Q.OR.[MB]_[MB],                         ;Set M bit
                                                                             |2388|7054|         IF CT [MZ] THEN [PF X0]                ; If not W, page fail
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,01,00,4704,00,2,02,0,0,0,2389|7055|CSTUD8: [PMA]_[PMA],MEM START WRITE,            ;Write updated CST entry
                                                                             |2389|7056|        GOTO [UNMAPPED WRITE]
                                                                             |2389|7057|.ENDIF/FT20PAG
                                                                             |2389|7058|
                                                                             |2389|7059|
                                                                             |2389|7060|.TOC 2, "TOPS10 Page Refill"
                                                                             |2389|7061|
                                                                             |2389|7062|.IF/FT10PAG
000,000,0,14,14,0,76,0,40,0,0,00,00,00,00,00,0,64,1,1,1,13,03,00,4751,00,7,00,0,0,0,2390|7063|T10PR:  [K -1.0]&[E]_Y,                         ;Check for legal section
                                                                             |2390|7064|         IF NOT CT [IZ] THENP [PF X27]
000,000,0,06,11,0,72,0,40,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,2391|7065|        [K 777]BAR&[E]_F,F_Q                    ;Strip onpage portion
000,000,0,04,14,1,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,04,01,00,0003,00,7,00,0,0,0,2392|7066|        Q_[W1],PUSH J[3]_CTR                    ;Shift E left 8 places
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,2393|7067|        #4*[W1]_B,RFCT
000,000,0,04,10,0,02,2,33,0,0,00,00,00,00,00,0,20,1,1,0,03,36,00,4545,00,7,07,0,0,0,2394|7068|        SWAP [W1]_[PMA],                        ;Sign bit  = E bit 26
                                                                             |2394|7069|         IF [USER] THEN [T1PR14]                ; Page #/2 in bits 28-35
000,000,0,14,10,0,00,0,40,0,0,00,00,00,00,00,0,20,1,1,0,03,56,00,4543,00,7,00,0,0,0,2395|7070|        B SEL/E,
                                                                             |2395|7071|         IF [B BIT 18] THEN [T1PR13]
                                                                             |2395|7072|        ROL [PMA]_[W2]                          ;Page # goes to bits 27-35
000,000,1,11,06,1,33,0,04,0,0,00,00,51,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2396|7073|        J[0340]_[W1]
000,000,0,14,02,0,06,0,00,0,0,00,00,00,00,00,0,76,1,1,1,03,02,00,4541,00,7,00,0,0,0,2398|7074|        [W2]-[W1]_Y,                            ;Check for up to 34OOOO
                                                                             |2398|7075|         IF CT [IN] THEN [T1PR12]
                                                                             |2398|7076|        J[0220]_[W1]                            ;Offset for 340000 in UPT
000,000,0,04,03,0,02,0,33,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4545,00,7,00,0,0,0,2400|7077|        [W1]+[PMA]_B,
                                                                             |2400|7078|        GOTO [T1PR14]
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0600,00,7,01,0,0,0,2401|7079|T1PR12: J[0600]_[W1]                            ;Offset for 000000 in exec
                                                                             |2401|7080|        [W1]+[PMA]_B
000,000,0,04,03,0,17,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,2403|7081|T1PR13: [EPT]+[PMA]_B,MEM START READ,           ;Offset for 4OOOOO in EPT
                                                                             |2403|7082|         CALL [UNMAPPED READ]                   ;Get word from EPT
                                                                             |2403|7083|        GOTO [T1PR15]
000,000,0,04,03,0,23,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,2405|7084|T1PR14: [UPT]+[PMA]_B,MEM START READ,           ;Get word from UPT
                                                                             |2405|7085|        CALL [UNMAPPED READ]
000,000,0,14,06,1,33,0,00,0,0,00,00,00,00,00,0,20,1,0,1,16,00,00,0000,00,7,00,0,0,0,2406|7086|T1PR15: [PMA]_Y,IX_MX                           ;Check for odd or even
                                                                             |2406|7087|        IF NOT CT [MN] CALL [SWAP MB_MB]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,56,1,1,0,01,03,00,1624,00,7,00,0,0,0,2407|7088|        J[07777]_[W2]                           ;Want mask for physical page
000,000,1,11,06,1,06,0,04,0,0,00,00,15,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2409|7089|        [W2]_F,LLS F_B,B SEL/W2,                ;Put 17777 in W2
                                                                             |2409|7090|        #1_SIO0 #1_QIO0
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,37,00,4555,00,7,00,0,0,0,2410|7091|        ZERO_[W1],                              ;Build paging ram word here
                                                                             |2410|7092|        IF [EXEC] THEN [T1PR24]
                                                                             |2410|7093|        J[0002]_[W1]                            ;Bit for user
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0002,00,7,01,0,0,0,2411|7094|        SWAP [W1]_[W1]
000,000,0,04,06,1,46,0,02,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2413|7095|T1PR24: [MB]_[W1 RH]                            ;Add APWS
                                                                             |2413|7096|        #2*[W1]_[W1]                            ;Put A in bit17
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2414|7097|        #2*[W1]_[W1 RH]                         ;Put W in bit18(discard P)
000,000,1,11,06,1,02,0,02,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2415|7098|        #4*[W1]_B                               ;Put S in bit17
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2416|7099|        [MB]_[W1 RH]                            ;Add page #
000,000,0,04,14,0,06,0,02,0,0,00,00,00,00,00,0,20,1,1,1,04,01,00,0001,00,7,00,0,0,0,2418|7100|        [W2]&[W1 RH]_B,PUSH J[1]_CTR            ;Clear extra bits
000,000,0,11,03,0,02,0,01,0,0,00,00,00,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,2419|7101|        [W1]+[W1 LH]_F,LLS F_B,RFCT             ;Put S in bit 13
000,000,0,14,06,1,42,0,00,0,0,00,00,00,00,77,0,20,1,1,1,16,00,00,0000,00,7,00,0,0,0,2420|7102|        [E]_Y,SPEC SEL/PAGE TABLE ENTRY         ;Address paging ram
000,000,1,11,06,1,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,04,01,00,0003,00,7,00,0,0,0,2421|7103|        #2*[W1]_[W1],PUSH J[3]_CTR              ;Want to shift left 9
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,0,1,10,00,00,0000,00,7,00,0,0,0,2422|7104|        #4*[W1]_B,IX_MX,RFCT
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,32,1,1,1,12,03,00,0000,00,7,04,0,0,0,2423|7105|        [W1]_Y,ALU_RAMFILE,                     ;Write new paging ram word
                                                                             |2423|7106|         IF NOT CT [UC] RETURN
                                                                             |2423|7107|        J[MB REFIL]_RAMFILE ADR                 ;Address where we left MB
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,12,01,00,0000,00,7,04,0,0,0,2425|7108|        RAMFILE_[MB],RETURN                     ;Restore MB
                                                                             |2425|7109|.ENDIF/FT10PAG
                                                                             |2425|7110|
                                                                             |2425|7111|.TOC 2, "Unmapped Memory Read"
                                                                             |2425|7112|
                                                                             |2425|7113|; CALL: x_[PMA],MEM START READ
                                                                             |2425|7114|;       returns with data in MB
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,1,02,0,0,0,2426|7115|UNMAPPED READ 0:
                                                                             |2426|7116|        [PMA]_[PMA],MEM START READ
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,21,00,4154,00,0,00,0,0,0,2427|7117|UNMAPPED READ:
                                                                             |2427|7118|        MEM HOLD,
                                                                             |2427|7119|         CHECK INTERRUPTS
                                                                             |2427|7120|        MEM_[MB]                                ;Get contents of memory
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,61,00,0000,00,0,00,0,0,0,2429|7121|        MEM HOLD,
                                                                             |2429|7122|         IF [NO BUS ERROR] RETURN
                                                                             |2429|7123|        ;GOTO [MEM ERR]
                                                                             |2429|7124|
                                                                             |2429|7125|;Here on a mem fault
                                                                             |2429|7126|;If soft (ECC correctable error) will save status (even if already
                                                                             |2429|7127|;      latched) set APR flag, SPEC SEL/IW, and return.
                                                                             |2429|7128|;      Will clobber W1&W2
                                                                             |2429|7129|;If RAMFILE_[ME RCOVR] is nonzero will go there with status in W1
                                                                             |2429|7130|;Else will build a page fail code and go to PF XX
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0537,00,7,01,0,0,0,2430|7131|MEM ERR:
                                                                             |2430|7132|        J[ME W1]_RAMFILE ADR                    ;Have to save W1
                                                                             |2430|7133|        [W1]_RAMFILE
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2431|7134|        J[ME W2]_RAMFILE ADR                    ;Have to save W2
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0540,00,7,01,0,0,0,2432|7135|        [W2]_RAMFILE
000,000,0,04,06,1,33,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,0,00,0,0,0,2434|7136|        [PMA]_[W2],MEM HOLD                     ;Copy offending address
000,000,1,11,03,0,06,0,04,0,0,00,00,11,00,00,0,20,1,1,1,16,00,00,0000,00,0,00,0,0,0,2435|7137|        #4*[W2]_B,MEM HOLD                      ;Put board number in lh
000,000,0,04,10,0,06,2,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,0,07,0,0,0,2436|7138|        SWAP [W2]_[W2],MEM HOLD                 ;Put board number in rh
000,000,0,06,14,0,66,0,04,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0124,00,0,01,0,0,0,2437|7139|        [K 77]&[W2]_Q,MEM HOLD,
                                                                             |2437|7140|         J[BIT20]_RAMFILE ADR
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,0,04,0,0,0,2438|7141|        RAMFILE_[W2],MEM HOLD                   ;Get 100000
000,000,0,06,03,1,06,0,00,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,3,02,0,0,0,2439|7142|        Q+[W2]_F,F_Q_Y,START IO READ            ;Address memory status reg
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,5,02,0,0,0,2440|7143|        IO TRANSFER,XFER MEM,                   ;Get status from memory
                                                                             |2440|7144|        Y_[W1],ALU_Y/NO,
                                                                             |2440|7145|        M STATUS ENAB/NO                        ;do not change error flags
000,000,0,04,06,1,57,0,01,0,0,00,00,00,00,00,0,20,1,1,1,03,71,00,4614,00,7,00,0,0,0,2441|7146|        [BIT17]_[W1 LH],                        ;Check for NXM
                                                                             |2441|7147|         IF [NOT MEM EXISTS] THEN [MEM NXM]
000,000,0,04,03,0,57,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,33,00,4616,00,7,00,0,0,0,2442|7148|        [BIT17]+[W1]_B,                         ;1st check Bus fault line
                                                                             |2442|7149|         IF [MEM FAULT] THEN [MEM FAULT]
                                                                             |2442|7150|
                                                                             |2442|7151|;Here if we detected parity from bus
                                                                             |2442|7152|.IF/FTCKBP
000,000,0,04,03,0,57,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,4640,00,7,00,0,0,0,2443|7153|        [BIT17]+[W1]_B,                         ;Must be a bus parity error
                                                                             |2443|7154|        GOTO [MER05]
                                                                             |2443|7155|.ENDIF/FTCKBP
                                                                             |2443|7156|.IFNOT/FTCKBP
                                                                             |2443|7157|        J[ME W1]_RAMFILE ADR                    ;Where we saved W1
                                                                             |2443|7158|        RAMFILE_[W1]
                                                                             |2443|7159|        J[ME W2]_RAMFILE ADR                    ;Where we saved W2
                                                                             |2443|7160|        RAMFILE_[W2]
                                                                             |2443|7161|        [MB]_[MB],SPEC SEL/IW,                  ;In case part of efa calc
                                                                             |2443|7162|        RETURN
                                                                             |2443|7163|.ENDIF/FTCKBP
                                                                             |2443|7164|
                                                                             |2443|7165|;Here because we won a NXM
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0155,00,7,01,0,0,0,2444|7166|MEM NXM:
                                                                             |2444|7167|        J[NXM STS]_[W2],Y_RAMFILE ADR           ;Save status as "nxm"
                                                                             |2444|7168|        GOTO [MER10]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4641,00,7,00,0,0,0,2445|7169|
                                                                             |2445|7170|;Here when memory complains
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,6550,00,7,01,0,0,0,2446|7171|MEM FAULT:
                                                                             |2446|7172|.IF/FTSMER
                                                                             |2446|7173|        J[06550]_[W2]
000,000,1,11,03,0,06,0,04,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,4656,00,7,00,0,0,0,2447|7174|        #4*[W2]_B,CALL [#4*W2_B]
                                                                             |2447|7175|        [W1]&[W2]_Q                             ;Leave only bits we care about
000,000,0,06,14,0,02,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,00,0,0,0,2448|7176|        J[04010]_[W2]                            ;Bits we expect
000,000,1,11,03,0,06,0,04,0,0,00,00,11,00,00,0,20,1,1,1,01,01,00,4656,00,7,00,0,0,0,2450|7177|        #4*[W2]_B,CALL [#4*W2_B]
000,000,0,14,13,1,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4640,00,7,00,0,0,0,2451|7178|        Q.XOR.[W2]_F,F_Y,
                                                                             |2451|7179|         IF NOT CT [IZ] THEN [MER05]
                                                                             |2451|7180|        J[APR FLAGS]_RAMFILE ADR
000,000,0,07,06,1,66,0,04,0,1,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,2453|7181|        [K 77]+1_F,F_Q Y_[W2],                  ;Make 100 = SME flag
                                                                             |2453|7182|         RAMFILE_Y
000,000,0,07,17,1,06,0,04,0,0,00,00,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2454|7183|        Q.OR.[W2]_F,F_Q_[W2],
                                                                             |2454|7184|         ALU_RAMFILE
                                                                             |2454|7185|        SWAP [W2]_[W2]
000,000,0,14,14,1,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4631,00,7,00,0,0,0,2456|7186|        Q&[W2]_Y,
                                                                             |2456|7187|        IF CT [IZ] THEN [MER04]
                                                                             |2456|7188|;**** add code to make interrupt ****
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0160,00,7,01,0,0,0,2457|7189|MER04:  J[SME STS]_[W2],Y_RAMFILE ADR           ;Save status as "soft"
                                                                             |2457|7190|         CALL [MESAV2]                          ;Save status and exit
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,4653,00,7,00,0,0,0,2458|7191|        J[ME W1]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0537,00,7,01,0,0,0,2459|7192|        RAMFILE_[W1]
000,000,0,04,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0000,00,7,04,0,0,0,2460|7193|        J[ME W2]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0540,00,7,01,0,0,0,2461|7194|        RAMFILE_[W2]
000,000,0,14,06,1,46,0,00,0,0,00,00,00,00,53,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2463|7195|        [MB]_Y,SPEC SEL/IW,
                                                                             |2463|7196|        RETURN
                                                                             |2463|7197|.ENDIF/FTSMER
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,03,0,20,1,1,0,15,01,00,0152,00,7,01,0,0,0,2464|7198|MER05:  J[HME STS]_[W2],Y_RAMFILE ADR,          ;Save status as "hard"
                                                                             |2464|7199|         POP
000,000,0,06,06,1,06,0,00,0,0,00,00,00,00,03,0,20,1,1,0,15,01,00,0150,00,7,01,0,0,0,2465|7200|MER10:  J[ME RCOVR]_RAMFILE ADR,                ;Check for recovery routine
                                                                             |2465|7201|         [W2]_Q,POP
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,0000,00,7,04,0,0,0,2466|7202|        RAMFILE_[W2],POP                 ;Get recovery routine
000,000,0,14,06,1,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,0000,00,7,01,0,0,0,2467|7203|        [W2]_Y,IF NOT CT [IZ] THEN Y            ;If there is one do it
                                                                             |2467|7204|.IFNOT/FTPFRMER
                                                                             |2467|7205|        J[PF RCOVR]_RAMFILE ADR                 ;Page fail recovery
                                                                             |2467|7206|        ZERO_Y,ALU_RAMFILE                      ;does not help here
                                                                             |2467|7207|.ENDIF/FTPFRMER
000,000,0,04,14,1,77,0,04,0,0,00,00,00,00,03,0,20,1,1,1,01,01,00,4651,00,7,00,0,0,0,2468|7208|        Q_[W2],Y_RAMFILE ADR,
                                                                             |2468|7209|        CALL [MERSAV]                           ;Save error status
000,000,0,04,13,0,57,0,00,0,0,00,00,00,00,00,0,20,1,1,0,15,01,00,3700,00,7,01,0,0,0,2469|7210|        [BIT17].XOR.[W1]_F,POP,
                                                                             |2469|7211|        FJ[03700]_[W1]                          ;Code for NXM
000,000,0,14,14,0,76,0,00,0,0,00,00,00,00,00,0,64,1,1,1,13,02,00,4752,00,7,00,0,0,0,2470|7212|        [K -1.0]&[W1]_Y,
                                                                             |2470|7213|         IF CT [IZ] THENP [PF XX]
                                                                             |2470|7214|        J[03600]_[W1]                           ;Code for mem err
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,3600,00,7,01,0,0,0,2471|7215|        GOTOP [PF XX]                           ;Perform a page fail
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4752,00,7,00,0,0,0,2472|7216|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,0,0,16,00,00,0000,00,7,04,0,0,0,2473|7217|MERSAV: RAMFILE_Y,IX_MX                 ;See if already latched error
                                                                             |2473|7218|        IF NOT CT [MZ] RETURN                   ;Do not overwrite
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4657,00,7,04,0,0,0,2475|7219|MESAV2: [W1]_RAMFILE,                           ;Save status
                                                                             |2475|7220|        CALL [W2+1_RFA]
000,000,0,14,14,0,77,0,33,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4657,00,7,04,0,0,0,2476|7221|        [PMA]_RAMFILE,                          ;Save address of losing location
                                                                             |2476|7222|        CALL [W2+1_RFA]
000,000,0,14,14,0,77,0,44,0,0,00,00,00,00,53,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,2477|7223|        [MB]_RAMFILE,SPEC SEL/IW,
                                                                             |2477|7224|        RETURN
                                                                             |2477|7225|
000,000,1,11,03,0,06,0,04,0,0,00,00,11,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2478|7226|#4*W2_B: #4*[W2]_B,RETURN
                                                                             |2478|7227|
000,000,0,04,06,1,06,0,04,0,1,00,00,00,00,03,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2479|7228|W2+1_RFA:
                                                                             |2479|7229|        [W2]+1_[W2],Y_RAMFILE ADR,              ;Address next ramfile location
                                                                             |2479|7230|        RETURN
                                                                             |2479|7231|
                                                                             |2479|7232|.TOC 2, "Memory Read Routine"
                                                                             |2479|7233|; CALL: x_Q_[E],                                ;Put address in E & Q
                                                                             |2479|7234|;       CLEAR LOCAL,SET LOCAL,                  ; Only one please
                                                                             |2479|7235|;       SPEC SEL/PAGE TABLE ENTRY,              ; Address paging entry
                                                                             |2479|7236|;       CALL [MEMORY READ]
                                                                             |2479|7237|; RETURNS with data in MB and with SPEC SEL/IW set
                                                                             |2479|7238|;         paging RAM word is in W1
                                                                             |2479|7239|;         clobbers W2-W4 (if page refill)
                                                                             |2479|7240|
                                                                             |2479|7241|;Here to fetch next virtual address
000,000,0,07,06,1,42,0,42,0,1,00,00,00,00,00,0,20,1,1,1,03,34,00,4662,00,7,00,0,0,0,2480|7242|READ NEXT:
                                                                             |2480|7243|        [E]+1_Q_[E RH],
                                                                             |2480|7244|         IF [LOCAL] THEN [MEM READ 0]
000,000,0,04,14,1,77,0,40,0,0,00,00,00,00,77,0,20,1,1,1,03,01,00,4663,00,7,00,0,0,0,2481|7245|        Q_[E],                                  ;Address to read
                                                                             |2481|7246|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2481|7247|        GOTO [MEMORY READ]
                                                                             |2481|7248|
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,20,1,1,1,03,01,00,4663,00,7,00,0,0,0,2482|7249|MEM READ 0:
                                                                             |2482|7250|        [K 7777.-1]&[E]_F,F_Q_B,                ;Address to read
                                                                             |2482|7251|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2482|7252|        GOTO [MEMORY READ]
                                                                             |2482|7253|
000,000,0,07,14,1,72,0,00,0,0,00,00,00,00,00,0,12,0,0,0,03,72,00,4677,00,7,04,0,0,0,2483|7254|MEMORY READ:
                                                                             |2483|7255|        Q&[K 777]_F,RAMFILE_Y,                  ;Put page entry in W1
                                                                             |2483|7256|        #0_UC IX_MX,
                                                                             |2483|7257|        Y_[W1] F_Q,                             ;Put on page adr in Q
                                                                             |2483|7258|         IF [UNPAGED OR AC] THEN [M R 8]
                                                                             |2483|7259|.IF/DEBUGPF
                                                                             |2483|7260|        JS[01776]_[W2]
000,000,0,01,10,1,00,0,04,0,0,00,00,05,00,00,0,20,1,1,0,16,00,00,1776,00,7,01,0,0,0,2484|7261|        ROR [W2]_[W2]
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4755,00,7,00,0,0,0,2486|7262|        [W1]&[W2]_Y,
                                                                             |2486|7263|         IF NOT CT [IZ] THEN [HALT PG]
                                                                             |2486|7264|.ENDIF/DEBUGPF
000,000,0,04,17,1,02,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,30,00,4673,00,1,02,0,0,0,2487|7265|        Q.OR.[W1]_[PMA],MEM START READ,
                                                                             |2487|7266|        IF [CONTEXT MATCH] THEN [MEM READ 4]
000,000,0,04,14,0,67,0,40,0,0,00,00,00,00,00,0,12,0,1,1,01,01,00,4426,00,7,00,0,0,0,2488|7267|        [K 7777.-1]&[E]_B,#0_UC,                 ;Mask address to 30 bits
                                                                             |2488|7268|         CALL [PAGE R REFIL]
                                                                             |2488|7269|        GOTO [MEM READ 0]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4662,00,7,00,0,0,0,2489|7270|
000,000,0,04,06,1,42,0,33,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,1,02,0,0,0,2490|7271|MEM READ 3:
                                                                             |2490|7272|        [E]_[PMA],MEM START READ                ;Address location
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,21,00,4154,00,0,00,0,0,0,2491|7273|MEM READ 4:
                                                                             |2491|7274|        CHECK INTERRUPTS,
                                                                             |2491|7275|        MEM HOLD
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,53,0,20,1,0,0,16,00,00,0000,00,5,02,0,0,0,2492|7276|        MEM_[MB],SPEC SEL/IW                    ;Read memory into MB & select IW
000,000,0,04,06,1,46,0,44,0,0,00,00,00,00,00,0,20,1,1,1,12,61,00,0000,00,0,00,0,0,0,2493|7277|        [MB]_[MB],MEM HOLD,
                                                                             |2493|7278|         IF [NO BUS ERROR] RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4576,00,0,00,0,0,0,2494|7279|        MEM HOLD,GOTO [MEM ERR]
                                                                             |2494|7280|
                                                                             |2494|7281|;Here if reference is unpaged or ac
000,000,0,04,06,1,42,0,33,0,0,00,00,00,00,23,0,20,1,1,1,03,22,00,4672,00,7,00,0,0,0,2495|7282|M R 8: [E]_[PMA],SPEC SEL/VMA,                  ;Address register
                                                                             |2495|7283|        IF [NOT AC REF] THEN [MEM READ 3]
000,000,0,04,10,0,00,0,44,0,0,00,00,00,00,00,0,20,1,1,0,13,25,00,4751,00,7,04,0,0,0,2496|7284|        RAMFILE_[MB],                   ;Read AC into MB & select IW
                                                                             |2496|7285|         IF [ILLEGAL SECTION] THENP [PF X27]
                                                                             |2496|7286|        CHECK INTERRUPTS
000,000,0,14,06,1,46,0,00,0,0,00,00,00,00,53,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2498|7287|        [MB]_Y,SPEC SEL/IW,
                                                                             |2498|7288|        RETURN
                                                                             |2498|7289|
                                                                             |2498|7290|
                                                                             |2498|7291|.TOC 2, "Unmapped Memory Write Routine"
                                                                             |2498|7292|
                                                                             |2498|7293|;CALL:  x_[MB]                                  ;Put data in KB
                                                                             |2498|7294|;       x_[PMA]                                 ;Physical location to write into
                                                                             |2498|7295|;       CALL [UNMAPPED WRITE]
                                                                             |2498|7296|
                                                                             |2498|7297|;Here to write memory with contents of MB and then increment PMA
000,000,0,04,06,1,33,0,33,0,1,00,00,05,00,00,0,20,1,1,1,03,01,00,4705,00,2,02,0,0,0,2499|7298|UNMAPPED WRITE NEXT:
                                                                             |2499|7299|        [PMA]+1_[PMA],MEM START WRITE,          ;Give memory address
                                                                             |2499|7300|        GOTO [UNMAPPED WRITE 2]
                                                                             |2499|7301|
000,000,0,04,06,1,33,0,33,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,2,02,0,0,0,2500|7302|UNMAPPED WRITE:
                                                                             |2500|7303|        [PMA]_[PMA],                            ;Give memory address to write
                                                                             |2500|7304|        MEM START WRITE
                                                                             |2500|7305|
000,000,0,04,06,1,46,0,44,0,0,00,00,05,00,00,0,20,1,0,1,16,00,00,0000,00,5,02,0,0,0,2501|7306|UNMAPPED WRITE 2:
                                                                             |2501|7307|        [MB]_MEM                                ;Write data in memory
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,61,00,0000,00,0,00,0,0,0,2502|7308|        MEM HOLD,
                                                                             |2502|7309|         IF [NO BUS ERROR] RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4576,00,0,00,0,0,0,2503|7310|        MEM HOLD,GOTO [MEM ERR]
                                                                             |2503|7311|
                                                                             |2503|7312|
                                                                             |2503|7313|
                                                                             |2503|7314|.TOC 2, "Memory Write Routine"
                                                                             |2503|7315|
                                                                             |2503|7316|;CALL:  x_[E]                                   ;Virtual adr
                                                                             |2503|7317|;       x_[MB]                                  ;Put data in MB
                                                                             |2503|7318|;       CALL [MEMORY WRITE]
                                                                             |2503|7319|;        with GLOBAL/LOCAL flag set,
                                                                             |2503|7320|;        may clobber W1-W5
                                                                             |2503|7321|
000,000,0,07,06,1,42,0,40,0,1,00,00,00,00,77,0,20,1,1,1,03,01,00,4712,00,7,00,0,0,0,2504|7322|WRITE NEXT:
                                                                             |2504|7323|        [E]+1_F,F_Q_[E],
                                                                             |2504|7324|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2504|7325|        GOTO [MEM WRITE 1]
000,000,0,07,14,0,67,0,40,0,0,00,00,00,00,77,0,13,0,1,1,03,41,00,4737,00,7,00,0,0,0,2505|7326|MEMORY WRITE:
                                                                             |2505|7327|        [K 7777.-1]&[E]_F,F_Q_B,#1_UC,          ;Address paging ram
                                                                             |2505|7328|        SPEC SEL/PAGE TABLE ENTRY,
                                                                             |2505|7329|         IF [NOT PAGED] THEN [M W 8]
                                                                             |2505|7330|
000,000,0,04,14,1,72,0,00,0,0,00,00,00,00,00,0,13,0,0,0,03,72,00,4737,00,7,04,0,0,0,2506|7331|MEM WRITE 1:
                                                                             |2506|7332|        Q&[K 777]_Q RAMFILE_[W1],               ;Get paging ram entry
                                                                             |2506|7333|         #1_UC IX_MX,
                                                                             |2506|7334|         IF [UNPAGED OR AC] THEN [M W 8]
                                                                             |2506|7335|.IF/DEBUGPF
                                                                             |2506|7336|        JS[01776]_[W2]
000,000,0,01,10,1,00,0,04,0,0,00,00,05,00,00,0,20,1,1,0,16,00,00,1776,00,7,01,0,0,0,2507|7337|        ROR [W2]_[W2]
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4755,00,7,00,0,0,0,2509|7338|        [W1]&[W2]_Y,
                                                                             |2509|7339|         IF NOT CT [IZ] THEN [HALT PG]
                                                                             |2509|7340|.ENDIF/DEBUGPF
                                                                             |2509|7341|.IF/FTADRB
000,000,0,06,14,1,67,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0443,00,7,01,0,0,0,2510|7342|        J[AB WR]_RAMFILE ADR,                   ;Get address to stop on
                                                                             |2510|7343|        Q&[K 7777.-1]_F,F_Q
                                                                             |2510|7344|        RAMFILE_[W2]
000,000,0,14,13,1,06,0,00,0,0,00,00,00,00,00,0,64,1,1,1,03,02,00,4724,00,7,00,0,0,0,2512|7345|        Q.XOR.[W2]_F,F_Y,
                                                                             |2512|7346|         IF CT [IZ] THEN [M W 2]
                                                                             |2512|7347|        J[HALT CODE]_RAMFILE ADR
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0151,00,7,01,0,0,0,2513|7348|        J[HALT ADRBRK]_[W2]
000,000,0,14,14,0,77,0,04,0,0,00,40,00,00,00,0,20,1,1,1,16,00,00,0000,00,7,04,0,0,0,2515|7349|        [W2]_RAMFILE,CLEAR RUN
                                                                             |2515|7350|.ENDIF/FTADRB
000,000,0,04,17,1,02,0,33,0,0,00,00,05,00,00,0,20,1,1,1,03,30,00,4727,00,2,02,0,0,0,2516|7351|M W 2:  Q.OR.[W1]_[PMA],
                                                                             |2516|7352|         MEM START WRITE,
                                                                             |2516|7353|         IF [CONTEXT MATCH] THEN [M W 3]
000,000,0,04,14,0,67,0,40,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,4424,00,7,00,0,0,0,2517|7354|M W 25: [K 7777.-1]&[E]_B,                      ;Mask address to 30 bits
                                                                             |2517|7355|         CALL [PAGE W REFIL]
                                                                             |2517|7356|        GOTO [MEMORY WRITE]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4711,00,7,00,0,0,0,2518|7357|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,50,00,4734,00,0,00,0,0,0,2519|7358|M W 3:  B SEL/W1,MEM HOLD,
                                                                             |2519|7359|         IF [B BIT 3] THEN [M W 5]              ;Check M bit is set
000,000,0,14,14,0,47,0,00,0,0,00,00,00,00,00,0,20,1,0,1,03,45,00,4732,00,7,00,0,0,0,2520|7360|M W XX:
                                                                             |2520|7361|.IF/FT20PAG
                                                                             |2520|7362|        [BIT4]&[W1]_Y,IX_MX,                    ;Check W bit
                                                                             |2520|7363|         IF [TOPS10] THEN [M W PF]
                                                                             |2520|7364|        IF NOT CT [MZ] THEN [M W 25]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,44,1,1,0,03,03,00,4725,00,7,00,0,0,0,2521|7365|;***** clever code here could just call CST UPDATE
                                                                             |2521|7366|.ENDIF/FT20PAG
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4756,00,7,00,0,0,0,2522|7367|M W PF: GOTO [PAGE FAIL]
000,000,0,04,06,1,42,0,33,0,0,00,00,05,00,00,0,20,1,1,1,16,00,00,0000,00,2,02,0,0,0,2523|7368|M W 4:  [E]_[PMA],MEM START WRITE
000,000,0,04,06,1,46,0,44,0,0,00,00,05,00,00,0,20,1,0,1,16,00,00,0000,00,5,02,0,0,0,2524|7369|M W 5:  [MB]_MEM                                ;Write memory into MB
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,12,61,00,0000,00,0,00,0,0,0,2525|7370|        MEM HOLD,
                                                                             |2525|7371|         IF [NO BUS ERROR] RETURN
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4576,00,0,00,0,0,0,2526|7372|        MEM HOLD,GOTO [MEM ERR]
                                                                             |2526|7373|
                                                                             |2526|7374|;Here if writing AC or unpaged
000,000,0,04,06,1,42,0,33,0,0,00,00,00,00,23,0,20,1,1,1,03,22,00,4733,00,7,00,0,0,0,2527|7375|M W 8: [E]_[PMA],SPEC SEL/VMA,                  ;Address register
                                                                             |2527|7376|         IF [NOT AC REF] THEN [M W 4]           ;Check for unpaged
                                                                             |2527|7377|        IF [ILLEGAL SECTION] THENP [PF X27]
000,000,0,14,14,0,77,0,44,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,2529|7378|        [MB]_RAMFILE,RETURN                     ;Write AC in RAMFILE
                                                                             |2529|7379|
                                                                             |2529|7380|
                                                                             |2529|7381|.TOC 2, "Page Fail"
                                                                             |2529|7382|
                                                                             |2529|7383|
                                                                             |2529|7384|
                                                                             |2529|7385|;                              TOPS20                                   TOPS10
                                                                             |2529|7386|;                +-----------------------------------+   +----------------------------------+
                                                                             |2529|7387|;            500 | Page fail word                    |   | Page fail word                   |
                                                                             |2529|7388|;                +-----------------------------------+   +----------------------------------+
                                                                             |2529|7389|;            501 | Page fail flags                   |   | Page fail old flags,,PC          |
                                                                             |2529|7390|;                +-----------------------------------+   +----------------------------------+
                                                                             |2529|7391|;            502 | Page fail old PC                  |   | Page fail new PC                 |
                                                                             |2529|7392|;                +-----------------------------------+   +----------------------------------+
                                                                             |2529|7393|;            503 | Page fail new PC                  |   | Reserved                         |
                                                                             |2529|7394|;                +-----------------------------------+   +----------------------------------+
                                                                             |2529|7395|
                                                                             |2529|7396|
                                                                             |2529|7397|
                                                                             |2529|7398|;Here for an aged page fail
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2100,00,7,01,0,0,0,2530|7399|AGE PF:
                                                                             |2530|7400|.IF/FTAGEPF
                                                                             |2530|7401|        J[02100]_[W1]
                                                                             |2530|7402|        GOTOP [PF XX]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4752,00,7,00,0,0,0,2531|7403|.ENDIF/FTAGEPF
                                                                             |2531|7404|
                                                                             |2531|7405|;Here for uncoded page fail
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,13,01,00,4756,00,7,00,0,0,0,2532|7406|PF X0:  ZERO_[W1],
                                                                             |2532|7407|         GOTOP [PAGE FAIL]
                                                                             |2532|7408|
                                                                             |2532|7409|;Here for an IO page fail
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2000,00,7,01,0,0,0,2533|7410|IO PF:
                                                                             |2533|7411|PF X20: J[02000]_[W1]
                                                                             |2533|7412|         GOTOP [PF XX]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4752,00,7,00,0,0,0,2534|7413|
                                                                             |2534|7414|;Here for a Illegal Indirect page fail
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2400,00,7,01,0,0,0,2535|7415|PF X24: J[02400]_[W1]
                                                                             |2535|7416|         GOTOP [PF XX]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,4752,00,7,00,0,0,0,2536|7417|
                                                                             |2536|7418|;Here for an Illegal Section page fail
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,2700,00,7,01,0,0,0,2537|7419|PF X27: J[02700]_[W1]
                                                                             |2537|7420|         ;GOTOP [PF XX]
                                                                             |2537|7421|
000,000,0,04,10,0,02,2,00,0,0,00,00,00,00,00,0,20,1,1,0,04,01,00,0002,00,7,07,0,0,0,2538|7422|PF XX:  SWAP [W1]_[W1],PUSH J[2]_CTR            ;Move code to lh
000,000,1,11,03,0,02,0,00,0,0,00,00,11,00,00,0,20,1,1,1,10,00,00,0000,00,7,00,0,0,0,2539|7423|        #4*[W1]_B,RFCT                           ;Shift 6 places left
                                                                             |2539|7424|        GOTO [PF XX1]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,03,01,00,4763,00,7,00,0,0,0,2540|7425|
                                                                             |2540|7426|.IF/DEBUGPF
000,000,0,04,00,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,1166,00,7,00,0,0,0,2541|7427|HALT PG:
                                                                             |2541|7428|        ONES_[W1],
                                                                             |2541|7429|         GOTO [SET HALT CODE]
                                                                             |2541|7430|.ENDIF/DEBUGPF
                                                                             |2541|7431|
                                                                             |2541|7432|;Here to do a Page fail, with page fail word in W1
000,000,0,01,10,1,00,0,04,0,0,00,00,05,00,00,0,20,1,1,0,16,00,00,0001,00,7,01,0,0,0,2542|7433|PAGE FAIL:
                                                                             |2542|7434|.IF/DEBUGPF
                                                                             |2542|7435|        JS[1]_[W2]                              ;Mask for illegal bits
                                                                             |2542|7436|        ROR [W2]_[W2]
000,000,0,14,14,0,02,0,04,0,0,00,00,00,00,00,0,64,1,1,1,03,03,00,4755,00,7,00,0,0,0,2544|7437|        [W1]&[W2]_Y,
                                                                             |2544|7438|        IF NOT CT [IZ] THEN [HALT PG]
                                                                             |2544|7439|.ENDIF/DEBUGPF
000,000,0,01,06,1,47,0,04,0,0,00,00,51,00,00,0,32,1,1,1,03,03,00,4763,00,7,00,0,0,0,2545|7440|        ROR [BIT4]_[W2],                        ;Make a type-l bit
                                                                             |2545|7441|         IF NOT CT [UC] THEN [PF XX1]
                                                                             |2545|7442|        [W2].OR.[W1]_B                          ;Add T bit
000,000,0,04,10,1,00,0,04,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0037,00,7,01,0,0,0,2547|7443|PF XX1: J[037]_[W2]                             ;Build mask
                                                                             |2547|7444|        SWAP [W2]_[W2]
000,000,0,04,14,0,06,0,41,0,0,00,00,00,00,00,0,20,1,1,1,01,46,00,2424,00,7,00,0,0,0,2549|7445|        [W2]&[E LH]_B,
                                                                             |2549|7446|         IF [PXCT] CALL [SET CURRENT CTXT]
000,000,0,06,11,0,67,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0164,00,7,01,0,0,0,2550|7447|        J[PF RCOVR]_RAMFILE ADR,
                                                                             |2550|7448|         [K 7777.-1]BAR&[W1]_Q                  ;Strip mapping info
000,000,0,04,17,1,42,0,00,0,0,00,00,00,00,00,0,20,1,1,1,13,41,00,4772,00,7,00,0,0,0,2551|7449|        Q.OR.[E]_[W1],                          ;Put virtual address in PF wcrd
                                                                             |2551|7450|        IF [NOT PAGED] THENP [PF XX2]
                                                                             |2551|7451|        J[01000]_[W2]                           ;Will become V bit
000,000,0,04,10,0,06,2,04,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,3140,00,7,07,0,0,0,2553|7452|        SWAP [W2]_[W2],
                                                                             |2553|7453|         CALL [W2.OR.W1]
000,000,0,04,06,1,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,01,36,00,5012,00,7,00,0,0,0,2554|7454|PF XX2: [W1]_[MB],                              ;Copy page fail word
                                                                             |2554|7455|         IF [USER] CALL [B0!MB]                 ;Add user mode if needed
000,000,0,04,10,0,00,0,04,0,0,00,00,00,00,00,0,20,1,0,0,16,00,00,0000,00,7,04,0,0,0,2555|7456|        RAMFILE_[W2],IX_MX                      ;Get recovery routine adr
000,000,0,14,06,1,06,0,00,0,0,00,00,00,00,00,0,44,1,1,1,03,03,00,0000,00,7,01,0,0,0,2556|7457|        [W2]_Y,
                                                                             |2556|7458|         IF NOT CT [MZ] THEN Y                  ;If there is one do it
                                                                             |2556|7459|        J[PF MER]_[W1]                          ;In case error fetching from UPT
000,000,0,04,03,0,77,0,36,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5021,00,7,00,0,0,0,2558|7460|        [K -1]+[PC RH]_B,                       ;Backup the PC
                                                                             |2558|7461|         CALL [SET MER]                         ; Set memory err recovery
                                                                             |2558|7462|        J[PFW]_[PMA]                            ;Get offset into UPT for page fail word
000,000,0,04,03,0,23,0,33,0,0,00,00,05,00,00,0,20,1,1,1,01,01,00,4704,00,2,02,0,0,0,2560|7463|        [UPT]+[PMA]_B,MEM START WRITE,          ;Physical location of word
                                                                             |2560|7464|         CALL [UNMAPPED WRITE]
000,000,0,04,06,1,03,0,44,0,0,00,00,00,00,00,0,20,1,1,1,03,44,00,5003,00,7,00,0,0,0,2561|7465|        [PC FLAGS]_[MB],                        ;Next word is flags
                                                                             |2561|7466|         IF [TOPS20] THEN [PF 34]
000,000,0,04,06,1,36,0,46,0,0,00,00,00,00,00,0,20,1,1,1,03,01,00,5005,00,7,00,0,0,0,2562|7467|        [PC]_[MB RH],GOTO [PF 35]               ;Put PC in rh
000,000,0,04,06,1,33,0,33,0,1,00,00,05,00,00,0,20,1,1,1,01,01,00,4704,00,2,02,0,0,0,2563|7468|PF 34:  [PMA]+1_[PMA],MEM START WRITE,          ;Store flags
                                                                             |2563|7469|         CALL [UNMAPPED WRITE]
                                                                             |2563|7470|        [PC]_[MB]                               ;Next word is PC
000,000,0,04,06,1,33,0,33,0,1,00,00,05,00,00,0,20,1,1,1,01,01,00,4704,00,2,02,0,0,0,2565|7471|PF 35:  [PMA]+1_[PMA],MEM START WRITE,          ;Store PC
                                                                             |2565|7472|         CALL [UNMAPPED WRITE]
000,000,0,04,06,1,33,0,33,0,1,00,00,05,00,00,0,20,1,1,1,01,01,00,4573,00,1,02,0,0,0,2566|7473|PF 40:  [PMA]+1_[PMA],MEM START READ,
                                                                             |2566|7474|         CALL [UNMAPPED READ]                   ;Get new PC
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,1,01,01,00,5021,00,7,00,0,0,0,2567|7475|        ZERO_[W1],CALL [SET MER]                 ;Have now passed any errors
000,000,0,04,06,1,46,0,34,0,0,00,20,00,00,00,0,20,1,1,1,03,45,00,2315,00,7,00,0,0,0,2568|7476|        [MB]_[PC],SET EXEC,
                                                                             |2568|7477|         IF [TOPS10] THEN [MB_PC FLAGS]
000,000,0,04,10,1,00,0,03,0,0,00,14,00,00,00,0,20,1,1,1,03,01,00,1420,00,7,00,0,0,0,2569|7478|        ZERO_[PC FLAGS],SET LOCAL,
                                                                             |2569|7479|         GOTO [IFETCH]
                                                                             |2569|7480|
000,000,0,01,10,1,00,0,00,0,0,00,00,05,00,00,0,20,1,1,0,16,00,00,0000,00,7,01,0,0,0,2570|7481|B0!MB:  JS[0]_[W1]                              ;Put 400000,,0 in W1
000,000,0,04,17,0,02,0,44,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,00,0,0,0,2571|7482|W1!MB:  [W1].OR.[MB]_B,                         ;Set bit
                                                                             |2571|7483|        RETURN
                                                                             |2571|7484|
                                                                             |2571|7485|;Here if encounter NXK, bus error, or ECC error
000,000,0,04,10,1,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,16,00,00,0004,00,7,01,0,0,0,2572|7486|PF MER: J[HALT PFMER]_[W1]
                                                                             |2572|7487|        GOTOP [SET HALT CODE]                   ;Set halt code and quit
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,13,01,00,1166,00,7,00,0,0,0,2573|7488|
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,00,0,20,1,1,0,01,01,00,5021,00,7,00,0,0,0,2574|7489|SET PF ME RCOVR:
                                                                             |2574|7490|        CALL [SET MER]
                                                                             |2574|7491|        ;GOTO [SET PF RCOVR]
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0164,00,7,01,0,0,0,2575|7492|SET PF RCOVR:
                                                                             |2575|7493|        J[PF RCOVR]_RAMFILE ADR                 ;In case errors handling int
                                                                             |2575|7494|
000,000,0,14,14,0,77,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,2576|7495|W1_RAMFILE:
                                                                             |2576|7496|        [W1]_RAMFILE,
                                                                             |2576|7497|         RETURN
                                                                             |2576|7498|
                                                                             |2576|7499|;Here to set memory error recovery location
000,000,0,14,10,0,00,0,00,0,0,00,00,00,00,03,0,20,1,1,0,16,00,00,0150,00,7,01,0,0,0,2577|7500|SET MER:
                                                                             |2577|7501|        J[ME RCOVR]_RAMFILE ADR
000,000,0,14,06,1,02,0,00,0,0,00,00,00,00,00,0,20,1,1,1,12,01,00,0000,00,7,04,0,0,0,2578|7502|        [W1]_Y,ALU_RAMFILE,
                                                                             |2578|7503|        RETURN
                                                                             |2578|7504|
                                                                             |2578|7505|.TOC 1, "Dispatch Table"
                                                                             |2578|7506|.TOC 2, "Dispatch Table Field Definitions"
                                                                             |2578|7507|
                                                                             |2578|7508|.DCODE
                                       |00-1|7509|
                                       |00-1|7510|J/=< 0:11>,.ADDRESS,.DEFAULT=<MCE>                      ;1st Dispatch = OPERAND FETCH Dispatch
                                       |00-1|7511|K/=<12:23>,.ADDRESS,.DEFAULT=<MCE>                      ;2nd Dispatch = INST EXCT Dispatch
                                       |00-1|7512|L/=<24:35>,.ADDRESS,.DEFAULT=<MCE>                      ;3rd Dispatch = OPERAND STORE Dispatch
                                       |00-1|7513|M/=<36:47>,.ADDRESS,.DEFAULT=<MCE>                      ;4th Dispatch = final inst dispatch
                                       |00-1|7514|N/=<48:59>,.ADDRESS,.DEFAULT=<MCE>                      ;5th Dispatch = free
                                       |00-1|7515|O/=<60:71>,.ADDRESS,.DEFAULT=<MCE>                      ;6th Dispatch = free
                                       |00-1|7516|P/=<72:83>,.ADDRESS,.DEFAULT=<MCE>                      ;7th Dispatch = 1st half of IO dispatch
                                       |00-1|7517|Q/=<84:95>,.ADDRESS,.DEFAULT=<MCE>                      ;8th Dispatch = 2nd half of IO dispatch
                                       |00-1|7518|
                                       |00-1|7519|.TOC 2, "Dispatch Table Macros"
                                       |00-1|7520|
                                       |00-1|7521|[] [] [] [] [] [] [] [] "J/@1,K/@2,L/@3,M/@4,N/@5,O/@6,P/@7,Q/@8"
                                       |00-1|7522|[]                      "[@1] [MCE] [MCE] [MCE] [MCE] [MCE] [MUUO] [MCE]"
                                       |00-1|7523|[]#[]                   "[@1] [MCE] [MCE] [MCE] [MCE] [MCE] [@2] [MCE]"
                                       |00-1|7524|[]##[]                  "[@1] [MCE] [MCE] [MCE] [MCE] [MCE] [MUUO] [@2]"
                                       |00-1|7525|[] []                   "[@1] [@2] [MCE] [MCE] [MCE] [MCE] [MUUO] [MCE]"
                                       |00-1|7526|[] []#[]                "[@1] [@2] [MCE] [MCE] [MCE] [MCE] [@3] [MCE]"
                                       |00-1|7527|[] []##[]               "[@1] [@2] [MCE] [MCE] [MCE] [MCE] [MUUO] [@3]"
                                       |00-1|7528|[] [] []                "[@1] [@2] [@3] [MCE] [MCE] [MCE] [MUUO] [MCE]"
                                       |00-1|7529|[] [] []#[]             "[@1] [@2] [@3] [MCE] [MCE] [MCE] [@4] [MCE]"
                                       |00-1|7530|[] [] []##[]            "[@1] [@2] [@3] [MCE] [MCE] [MCE] [MUUO] [@4]"
                                       |00-1|7531|[] [] [] []             "[@1] [@2] [@3] [@4] [MCE] [MCE] [MUUO] [MCE]"
                                       |00-1|7532|[] [] [] []#[]          "[@1] [@2] [@3] [@4] [MCE] [MCE] [@5] [MCE] "
                                       |00-1|7533|[] [] [] []##[]         "[@1] [@2] [@3] [@4] [MCE] [MCE] [MUUO] [@5]"
                                       |00-1|7534|
                                       |00-1|7535|
                                       |00-1|7536|.TOC 2, "Opcodes 000 - 037"
                                       |00-1|7537|
1637,1304,1304,1304,1304,1304,3076,1304,0000|7538|0:
                                       |0000|7539|        [MUUO]#[APRID]                                  ;000 70000 Illegal
                                       |0000|7540|        [CHK PC SECT] [MCE] [LUUO]                      ;001 70004 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0001|7541|        [CHK PC SECT] [MCE] [LUUO]                      ;002 70010 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0002|7542|        [CHK PC SECT] [MCE] [LUUO]                      ;003 70014 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0003|7543|        [CHK PC SECT] [MCE] [LUUO]#[WRAPR]              ;004 70020 LUUO
2510,1304,1600,1304,1304,1304,3100,1304,0004|7544|        [CHK PC SECT] [MCE] [LUUO]#[RDAPR]              ;005 70024 LUUO
2510,1304,1600,1304,1304,1304,3141,1304,0005|7545|        [CHK PC SECT] [MCE] [LUUO]#[SZAPR]              ;006 70030 LUUO
2510,1304,1600,1304,1304,1304,3151,1304,0006|7546|        [CHK PC SECT] [MCE] [LUUO]#[SNAPR]              ;007 70034 LUUO
2510,1304,1600,1304,1304,1304,3153,1304,0007|7547|        [CHK PC SECT] [MCE] [LUUO]                      ;010 70040 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0008|7548|        [CHK PC SECT] [MCE] [LUUO]                      ;011 70044 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0009|7549|        [CHK PC SECT] [MCE] [LUUO]                      ;012 70050 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0010|7550|        [CHK PC SECT] [MCE] [LUUO]                      ;013 70054 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0011|7551|        [CHK PC SECT] [MCE] [LUUO]#[WRPI]               ;014 70060 LUUO
2510,1304,1600,1304,1304,1304,3155,1304,0012|7552|        [CHK PC SECT] [MCE] [LUUO]#[RDPI]               ;015 70064 LUUO
2510,1304,1600,1304,1304,1304,3257,1304,0013|7553|        [CHK PC SECT] [MCE] [LUUO]#[SZPI]               ;0l6 70070 LUUO
2510,1304,1600,1304,1304,1304,3275,1304,0014|7554|        [CHK PC SECT] [MCE] [LUUO]#[SNPI]               ;017 70074 LUUO
2510,1304,1600,1304,1304,1304,3300,1304,0015|7555|        [CHK PC SECT] [MCE] [LUUO]                      ;020 70100 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0016|7556|        [CHK PC SECT] [MCE] [LUUO]#[RDUBR]              ;021 70104 LUUO
2510,1304,1600,1304,1304,1304,3356,1304,0017|7557|        [CHK PC SECT] [MCE] [LUUO]#[CLRPT]              ;022 70110 LUUO
2510,1304,1600,1304,1304,1304,3412,1304,0018|7558|        [CHK PC SECT] [MCE] [LUUO]#[WRUBR]              ;023 70114 LUUO
2510,1304,1600,1304,1304,1304,3333,1304,0019|7559|        [CHK PC SECT] [MCE] [LUUO]#[WREBR]              ;024 70120 LUUO
2510,1304,1600,1304,1304,1304,3303,1304,0020|7560|        [CHK PC SECT] [MCE] [LUUO]#[RDEBR]              ;025 70124 LUUO
2510,1304,1600,1304,1304,1304,3326,1304,0021|7561|        [CHK PC SECT] [MCE] [LUUO]                      ;026 70130 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0022|7562|        [CHK PC SECT] [MCE] [LUUO]                      ;027 70134 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0023|7563|        [CHK PC SECT] [MCE] [LUUO]                      ;030 70140 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0024|7564|        [CHK PC SECT] [MCE] [LUUO]                      ;031 70144 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0025|7565|        [CHK PC SECT] [MCE] [LUUO]                      ;032 70150 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0026|7566|        [CHK PC SECT] [MCE] [LUUO]                      ;033 70154 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0027|7567|        [CHK PC SECT] [MCE] [LUUO]                      ;034 70160 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0028|7568|        [CHK PC SECT] [MCE] [LUUO]                      ;035 70164 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0029|7569|        [CHK PC SECT] [MCE] [LUUO]                      ;036 70170 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0030|7570|        [CHK PC SECT] [MCE] [LUUO]                      ;037 70174 LUUO
2510,1304,1600,1304,1304,1304,1637,1304,0031|7571|
                                       |0031|7572|.TOC 2, "Opcodes 040 - 077"
                                       |0031|7573|.IF/FT20PAG
                                       |0031|7574|        [MUUO]#[RDSPB]                                  ;040 70200 MUUO
1637,1304,1304,1304,1304,1304,3372,1304,0032|7575|        [MUUO]#[RDCSB]                                  ;041 70204 MUUO
1637,1304,1304,1304,1304,1304,3410,1304,0033|7576|        [MUUO]#[RDPUR]                                  ;042 70210 MUUO
1637,1304,1304,1304,1304,1304,3403,1304,0034|7577|        [MUUO]#[RDCSTM]                                 ;043 70214 MUUO
1637,1304,1304,1304,1304,1304,3376,1304,0035|7578|.ENDIF/FT20PAG
                                       |0035|7579|.IFNOT/FT20PAG
                                       |0035|7580|        [MUUO]                                          ;040 70200 MUUO
                                       |0035|7581|        [MUUO]                                          ;041 70204 MUUO
                                       |0035|7582|        [MUUO]                                          ;042 70210 MUUO
                                       |0035|7583|        [MUUO]                                          ;043 70214 MUUO
                                       |0035|7584|.ENDIF/FT20PAG
                                       |0035|7585|        [MUUO]#[RDTIM]                                  ;044 70220 MUUO
1637,1304,1304,1304,1304,1304,3417,1304,0036|7586|        [MUUO]#[RDINT]                                  ;045 70224 MUUO
1637,1304,1304,1304,1304,1304,3441,1304,0037|7587|        [MUUO]#[RDHSB]                                  ;046 70230 MUUO
1637,1304,1304,1304,1304,1304,3455,1304,0038|7588|        [MUUO]                                          ;047 70234 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0039|7589|.IF/FT20PAG
                                       |0039|7590|        [MUUO]#[WRSPB]                                  ;050 70240 MUUO
1637,1304,1304,1304,1304,1304,3370,1304,0040|7591|        [MUUO]#[WRCSB]                                  ;051 70244 MUUO
1637,1304,1304,1304,1304,1304,3405,1304,0041|7592|        [MUUO]#[WRPUR]                                  ;052 70250 MUUO
1637,1304,1304,1304,1304,1304,3400,1304,0042|7593|        [MUUO]#[WRCSTM]                                 ;053 70254 MUUO
1637,1304,1304,1304,1304,1304,3373,1304,0043|7594|.ENDIF/FT20PAG
                                       |0043|7595|.IFNOT/FT20PAG
                                       |0043|7596|        [MUUO]                                          ;050 70240 MUUO
                                       |0043|7597|        [MUUO]                                          ;051 70244 MUUO
                                       |0043|7598|        [MUUO]                                          ;052 70250 MUUO
                                       |0043|7599|        [MUUO]                                          ;053 70254 MUUO
                                       |0043|7600|.ENDIF/FT20PAG
                                       |0043|7601|        [MUUO]#[WRTIM]                                  ;054 70260 MUUO
1637,1304,1304,1304,1304,1304,3434,1304,0044|7602|        [MUUO]#[WRINT]                                  ;055 70264 MUUO
1637,1304,1304,1304,1304,1304,3444,1304,0045|7603|        [MUUO]#[WRHSB]                                  ;056 70270 MUUO
1637,1304,1304,1304,1304,1304,3452,1304,0046|7604|        [MUUO]                                          ;057 70274 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0047|7605|        [MUUO]                                          ;060 70300 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0048|7606|        [MUUO]                                          ;061 70304 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0049|7607|        [MUUO]                                          ;062 70310 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0050|7608|        [MUUO]                                          ;063 70314 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0051|7609|        [MUUO]                                          ;064 70320 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0052|7610|        [MUUO]                                          ;065 70324 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0053|7611|        [MUUO]                                          ;066 70330 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0054|7612|        [MUUO]                                          ;067 70334 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0055|7613|        [MUUO]                                          ;070 70340 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0056|7614|        [MUUO]                                          ;071 70344 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0057|7615|        [MUUO]                                          ;072 70350 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0058|7616|        [MUUO]                                          ;073 70354 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0059|7617|        [MUUO]                                          ;074 70360 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0060|7618|        [MUUO]                                          ;075 70364 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0061|7619|        [MUUO]                                          ;076 70370 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0062|7620|        [MUUO]                                          ;077 70374 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0063|7621|.TOC 2, "Opcodes 100 - 137"
                                       |0063|7622|        [MUUO]                                          ;100 70400 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0064|7623|        [MUUO]                                          ;101 70404 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0065|7624|        [MUUO]                                          ;102 70410 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0066|7625|        [MUUO]                                          ;103 70414 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0067|7626|        [MUUO]                                          ;104 70420 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0068|7627|        [FETCH AC&I] [CHK PC SECT] [ADJSP] [ADJSP V]    ;105 70424 ADJSP
1526,2510,2455,2461,1304,1304,1637,1304,0069|7628|        [MUUO]                                          ;106 70430 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0070|7629|        [MUUO]                                          ;107 70434 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0071|7630|        [MUUO]                                          ;110 70440 DFAD
1637,1304,1304,1304,1304,1304,1637,1304,0072|7631|        [MUUO]                                          ;111 70444 DFSB
1637,1304,1304,1304,1304,1304,1637,1304,0073|7632|        [MUUO]                                          ;112 70450 DFMP
1637,1304,1304,1304,1304,1304,1637,1304,0074|7633|        [MUUO]                                          ;113 70454 DFDV
1637,1304,1304,1304,1304,1304,1637,1304,0075|7634|        [DFETCH AC&MEM] [DADD] [D TO AC.0]              ;114 70460 DADD
1474,2163,4340,1304,1304,1304,1637,1304,0076|7635|        [DFETCH AC&MEM] [DSUB] [D TO AC.0]              ;115 70464 DSUB
1474,2172,4340,1304,1304,1304,1637,1304,0077|7636|        [DFETCH AC&MEM] [DMUL] [Q TO AC.0]              ;116 70470 DMUL
1474,2175,4412,1304,1304,1304,1637,1304,0078|7637|        [DFETCH AC&MEM] [DDIV] [Q TO AC.0]              ;117 70474 DDIV
1474,2175,4412,1304,1304,1304,1637,1304,0079|7638|        [DFETCH MEM] [D TO AC]                          ;120 70500 DMOVE
1476,4345,1304,1304,1304,1304,1637,1304,0080|7639|        [DFETCH MEM] [DMOVNX] [D TO AC.0]               ;121 70504 DMOVN
1476,1666,4340,1304,1304,1304,1637,1304,0081|7640|        [FETCH MEM] [FIX] [IFETCH]                      ;122 70510 FIX
1511,2040,1420,1304,1304,1304,1637,1304,0082|7641|.IF/FTEXTEND
                                       |0082|7642|        [EXTEND]                                        ;123 70514 EXTEND
2750,1304,1304,1304,1304,1304,1637,1304,0083|7643|.ENDIF/FTEXTEND
                                       |0083|7644|.IFNOT/FTEXTEND
                                       |0083|7645|        [MUUO]                                          ;123 70514 EXTEND
                                       |0083|7646|.ENDIF/FTEXTEND
                                       |0083|7647|        [DFETCH AC] [D TO MEM]                          ;124 70520 DMOVEM
1472,4377,1304,1304,1304,1304,1637,1304,0084|7648|        [DFETCH AC] [DMOVNX] [D TO MEM]                 ;125 70524 DMOVMN
1472,1666,4377,1304,1304,1304,1637,1304,0085|7649|        [FETCH MEM] [FIX] [FIXR]                        ;126 70530 FIXR
1511,2040,2055,1304,1304,1304,1637,1304,0086|7650|        [FETCH MEM] [FLTR] [TO AC]                      ;127 70534 FLTR
1511,2061,4343,1304,1304,1304,1637,1304,0087|7651|        [MUUO]                                          ;130 70540 UFA(obs)
1637,1304,1304,1304,1304,1304,1637,1304,0088|7652|        [MUUO]                                          ;131 70544 DFN(obs)
1637,1304,1304,1304,1304,1304,1637,1304,0089|7653|        [MUUO]                                          ;132 70550 FSC
1637,1304,1304,1304,1304,1304,1637,1304,0090|7654|.IF/FTBYTE
                                       |0090|7655|        [FETCH AC&MEM] [ADJBP] [TO NOWHERE] [ADJBP0]    ;133 70554 ADJBP/IBP
1510,1731,4127,1675,1304,1304,1637,1304,0091|7656|        [FETCH MEM(W)] [IP&S SETUP] [IP&S 5] [LDB]      ;134 70560 ILDB
1516,1760,2010,2011,1304,1304,1637,1304,0092|7657|        [FETCH MEM] [P&S SETUP] [MCE] [LDB]             ;135 70564 LDB
1511,1732,1304,2011,1304,1304,1637,1304,0093|7658|        [FETCH AC&MEM(W)] [IP&S SETUP] [IP&S 5] [DPB]   ;136 70570 IDPB
1515,1760,2010,2021,1304,1304,1637,1304,0094|7659|        [FETCH AC&MEM] [P&S SETUP] [MCE] [DPB]          ;137 70574 DPB
1510,1732,1304,2021,1304,1304,1637,1304,0095|7660|.ENDIF/FTBYTE
                                       |0095|7661|.IFNOT/FTBYTE
                                       |0095|7662|        [MUUO]                                          ;133 70554 ADJBP/IBP
                                       |0095|7663|        [MUUO]                                          ;134 70560 ILDB
                                       |0095|7664|        [MUUO]                                          ;135 70564 LDB
                                       |0095|7665|        [MUUO]                                          ;136 70570 IDPB
                                       |0095|7666|        [MUUO]                                          ;137 70574 DPB
                                       |0095|7667|.ENDIF/FTBYTE
                                       |0095|7668|
                                       |0095|7669|.TOC 2, "Opcodes 140 - 177"
                                       |0095|7670|        [FETCH AC&MEM] [FADX] [TO AC.0]                 ;140 70600 FAD
1510,2061,4342,1304,1304,1304,1637,1304,0096|7671|        [MUUO]                                          ;141 70604 FADL(obs)
1637,1304,1304,1304,1304,1304,1637,1304,0097|7672|        [FETCH AC&MEM(W)] [FADX] [TO MEM]               ;142 70610 FADM
1515,2061,4371,1304,1304,1304,1637,1304,0098|7673|        [FETCH AC&MEM(W)] [FADX] [TO BOTH.0]            ;143 70614 FADB
1515,2061,4357,1304,1304,1304,1637,1304,0099|7674|        [FETCH AC&MEM] [FADRX] [TO AC.0]                ;144 70620 FADR
1510,2061,4342,1304,1304,1304,1637,1304,0100|7675|        [FETCH AC&I] [FADRX] [TO AC.0]                  ;145 70624 FADRI
1526,2061,4342,1304,1304,1304,1637,1304,0101|7676|        [FETCH AC&MEM(W)] [FADRX] [TO MEM]              ;146 70630 FADRM
1515,2061,4371,1304,1304,1304,1637,1304,0102|7677|        [FETCH AC&MEM(W)] [FADRX] [TO BOTH.0]           ;147 70634 FADRB
1515,2061,4357,1304,1304,1304,1637,1304,0103|7678|        [FETCH AC&MEM] [FSBX] [TO AC.0]                 ;150 70640 FSB
1510,2061,4342,1304,1304,1304,1637,1304,0104|7679|        [MUUO]                                          ;151 70644 FSBL(obs)
1637,1304,1304,1304,1304,1304,1637,1304,0105|7680|        [FETCH AC&MEM(W)] [FSBX] [TO MEM]               ;152 70650 FSBM
1515,2061,4371,1304,1304,1304,1637,1304,0106|7681|        [FETCH AC&MEM(W)] [FSBX] [TO BOTH.0]            ;153 70654 FSBB
1515,2061,4357,1304,1304,1304,1637,1304,0107|7682|        [FETCH AC&MEM] [FSBX] [TO AC.0]                 ;154 70660 FSBR
1510,2061,4342,1304,1304,1304,1637,1304,0108|7683|        [FETCH AC&I] [FSBX] [TO AC.0]                   ;155 70664 FSBRI
1526,2061,4342,1304,1304,1304,1637,1304,0109|7684|        [FETCH AC&MEM(W)] [FSBX] [TO MEM]               ;156 70670 FSBRM
1515,2061,4371,1304,1304,1304,1637,1304,0110|7685|        [FETCH AC&MEM(W)] [FSBX] [TO BOTH.0]            ;157 70674 FSBRB
1515,2061,4357,1304,1304,1304,1637,1304,0111|7686|        [FETCH AC&MEM] [FMPX] [TO AC.0]                 ;160 70700 FMP
1510,2061,4342,1304,1304,1304,1637,1304,0112|7687|        [MUUO]                                          ;161 70704 FMPL(Obs)
1637,1304,1304,1304,1304,1304,1637,1304,0113|7688|        [FETCH AC&MEM(W)] [FMPX] [TO MEM]               ;162 70710 FMPM
1515,2061,4371,1304,1304,1304,1637,1304,0114|7689|        [FETCH AC&MEM(W)] [FMPX] [TO BOTH.0]            ;163 70714 FMPB
1515,2061,4357,1304,1304,1304,1637,1304,0115|7690|        [FETCH AC&MEM] [FMPRX] [TO AC.0]                ;164 70720 FMPR
1510,2061,4342,1304,1304,1304,1637,1304,0116|7691|        [FETCH AC&MEM] [FMPRX] [TO AC.0]                ;165 70724 FMPRI
1510,2061,4342,1304,1304,1304,1637,1304,0117|7692|        [FETCH AC&MEM(W)] [FMPRX] [TO MEM]              ;166 70730 FMPRM
1515,2061,4371,1304,1304,1304,1637,1304,0118|7693|        [FETCH AC&MEM(W)] [FMPRX] [TO BOTH.0]           ;167 70734 FMPRB
1515,2061,4357,1304,1304,1304,1637,1304,0119|7694|
                                       |0119|7695|        [FETCH MEM] [FDVX] [TO AC.0]                    ;170 70740 FDV
1511,2061,4342,1304,1304,1304,1637,1304,0120|7696|        [MUUO]                                          ;171 70744 FDVL(Obs)
1637,1304,1304,1304,1304,1304,1637,1304,0121|7697|        [FETCH AC&MEM(W)] [FDVX] [TO MEM]               ;172 70750 FDVM
1515,2061,4371,1304,1304,1304,1637,1304,0122|7698|        [FETCH AC&MEM(W)] [FDVX] [TO BOTH.0]            ;173 70754 FDVB
1515,2061,4357,1304,1304,1304,1637,1304,0123|7699|        [FETCH AC&MEM] [FDVX] [TO AC.0]                 ;174 70760 FDVR
1510,2061,4342,1304,1304,1304,1637,1304,0124|7700|        [FETCH AC&MEM] [FDVX] [TO AC.0]                 ;175 70764 FDVRI
1510,2061,4342,1304,1304,1304,1637,1304,0125|7701|        [FETCH AC&MEM(W)] [FDVX] [TO MEM]               ;176 70770 FDVRM
1515,2061,4371,1304,1304,1304,1637,1304,0126|7702|        [FETCH AC&MEM(W)] [FDVX] [TO BOTH.0]            ;177 70774 FDVRB
1515,2061,4357,1304,1304,1304,1637,1304,0127|7703|
                                       |0127|7704|.TOC 2, "Opcodes 200 - 237"
                                       |0127|7705|        [FETCH MEM] [TO AC]                             ;200 71000 MOVE
1511,4343,1304,1304,1304,1304,1637,1304,0128|7706|.IF/FAST
                                       |0128|7707|        [MOVEI]                                         ;201 71004 MOVEI
2061,1304,1304,1304,1304,1304,1637,1304,0129|7708|.ENDIF/FAST
                                       |0129|7709|.IFNOT/FAST
                                       |0129|7710|        [FETCHI] [TO AC]                                ;201 71004 MOVEI
                                       |0129|7711|.ENDIF/FAST
                                       |0129|7712|        [FETCH AC] [TO MEM]                             ;202 71010 MOVEM
1531,4371,1304,1304,1304,1304,1637,1304,0130|7713|        [FETCH MEM(W)] [BACK TO SELF]                   ;203 71014 MOVES
1516,4352,1304,1304,1304,1304,1637,1304,0131|7714|        [FETCH MEM] [MOVSX] [TO AC]                     ;204 71020 MOVS
1511,2064,4343,1304,1304,1304,1637,1304,0132|7715|.IF/FAST
                                       |0132|7716|        [MOVSI]                                         ;205 71024 MOVSI
2062,1304,1304,1304,1304,1304,1637,1304,0133|7717|.ENDIF/FAST
                                       |0133|7718|.IFNOT/FAST
                                       |0133|7719|        [FETCH I] [MOVSI] [TO AC]                       ;205 71024 MOVSI
                                       |0133|7720|.ENDIF/FAST
                                       |0133|7721|        [FETCH AC] [MOVSX] [TO MEM]                     ;206 71030 MOVSM
1531,2064,4371,1304,1304,1304,1637,1304,0134|7722|        [FETCH AC&MEM(W)] [MOVSX] [BACK TO SELF]        ;207 71034 MOVSS
1515,2064,4352,1304,1304,1304,1637,1304,0135|7723|        [FETCH MEM] [MOVNX] [TO AC]                     ;210 71040 MOVN
1511,2066,4343,1304,1304,1304,1637,1304,0136|7724|        [FETCH I] [MOVNX] [TO AC]                       ;211 71044 MOVNI
1527,2066,4343,1304,1304,1304,1637,1304,0137|7725|        [FETCH AC(MX)] [MOVNX] [TO MEM]                 ;212 71050 MOVNM
1532,2066,4371,1304,1304,1304,1637,1304,0138|7726|        [FETCH MEM(W)] [MOVNX] [BACK TO SELF]           ;213 71054 MOVNS
1516,2066,4352,1304,1304,1304,1637,1304,0139|7727|        [FETCH MEM] [MOVMX] [TO AC]                     ;214 71060 MOVM
1511,2065,4343,1304,1304,1304,1637,1304,0140|7728|.IF/FAST
                                       |0140|7729|        [MOVEI]                                         ;215 71064 MOYMI (=MOVEI)
2061,1304,1304,1304,1304,1304,1637,1304,0141|7730|.ENDIF/FAST
                                       |0141|7731|.IFNOT/FAST
                                       |0141|7732|        [FETCH I] [TO AC]                               ;215 71064 MOYMI (=MOVEI)
                                       |0141|7733|.ENDIF/FAST
                                       |0141|7734|        [FETCH AC(MX)] [MOVMX] [TO MEM]                 ;216 71070 MOVMM
1532,2065,4371,1304,1304,1304,1637,1304,0142|7735|        [FETCH MEM(W)] [MOVMX] [BACK TO SELF]           ;217 71074 MOVMS
1516,2065,4352,1304,1304,1304,1637,1304,0143|7736|        [FETCH AC&MEM] [MULX] [IMULX] [TO AC.0]         ;220 71100 IMUL
1510,2103,2114,4342,1304,1304,1637,1304,0144|7737|        [FETCH AC&I] [MULX] [IMULX] [TO AC.0]           ;221 71104 IMULI
1526,2103,2114,4342,1304,1304,1637,1304,0145|7738|        [FETCH AC&MEM(W)] [MULX] [IMULX] [BACK TO MEM]  ;222 71110 IMULM
1515,2103,2114,4363,1304,1304,1637,1304,0146|7739|        [FETCH AC&MEM(W)] [MULX] [IMULX] [TO BOTH.0]    ;223 71114 IMULB
1515,2103,2114,4357,1304,1304,1637,1304,0147|7740|        [FETCH AC&MEM] [MULX] [D TO AC]                 ;224 71120 MUL
1510,2103,4345,1304,1304,1304,1637,1304,0148|7741|        [FETCH AC&I] [MULX] [D TO AC]                   ;225 71124 MULI
1526,2103,4345,1304,1304,1304,1637,1304,0149|7742|        [FETCH AC&MEM(W)] [MULX] [BACK TO MEM]          ;226 71130 MULM
1515,2103,4363,1304,1304,1304,1637,1304,0150|7743|        [FETCH AC&MEM(W)] [MULX] [TO MEM D AC]          ;227 71134 MULB
1515,2103,4334,1304,1304,1304,1637,1304,0151|7744|        [FETCH AC&MEM] [IDIVX] [D TO AC.0]              ;230 71140 IDIV
1510,2117,4340,1304,1304,1304,1637,1304,0152|7745|        [FETCH AC&I] [IDIVX] [D TO AC.0]                ;231 71144 IDIVI
1526,2117,4340,1304,1304,1304,1637,1304,0153|7746|        [FETCH AC&MEM(W)] [IDIVX] [BACK TO MEM]         ;232 71150 IDIVM
1515,2117,4363,1304,1304,1304,1637,1304,0154|7747|        [FETCH AC&MEM(W)] [IDIVX] [TO MEM D AC]         ;233 71154 IDIVB
1515,2117,4334,1304,1304,1304,1637,1304,0155|7748|        [FETCH AC&MEM] [DIVX] [D TO AC.0]               ;234 71160 DIV
1510,2122,4340,1304,1304,1304,1637,1304,0156|7749|        [FETCH AC&I] [DIVX] [D TO AC.0]                 ;235 71164 DIVI
1526,2122,4340,1304,1304,1304,1637,1304,0157|7750|        [FETCH AC&MEM(W)] [DIVX] [BACK TO MEM]          ;236 71170 DIVM
1515,2122,4363,1304,1304,1304,1637,1304,0158|7751|        [FETCH AC&MEM(W)] [DIVX] [TO MEM D AC]          ;237 71174 DIVB
1515,2122,4334,1304,1304,1304,1637,1304,0159|7752|
                                       |0159|7753|.TOC 2, "Opcodes 240 - 277"
                                       |0159|7754|        [FETCH AC(MX)] [ASH SETUP] [ASH] [ASHR]         ;240 71200 ASH
1532,2201,2210,2214,1304,1304,1637,1304,0160|7755|        [FETCH AC] [ASH SETUP] [ROT] [ROTR]             ;241 71204 ROT
1531,2201,2241,2243,1304,1304,1637,1304,0161|7756|        [FETCH AC] [ASH SETUP] [LSH] [LSHR]             ;242 71210 LSH
1531,2201,2231,2233,1304,1304,1637,1304,0162|7757|        [FETCH AC(MX)] [JFFO]                           ;243 71214 JFFO
1532,2372,1304,1304,1304,1304,1637,1304,0163|7758|        [DFETCH AC] [ASHC SETUP] [ASHC] [ASHCR]         ;244 71220 ASHC
1472,2176,2216,2226,1304,1304,1637,1304,0164|7759|        [DFETCH AC] [LSHC SETUP] [ROTC] [ROTCR]         ;245 71224 ROTC
1472,2200,2245,2247,1304,1304,1637,1304,0165|7760|        [DFETCH AC] [LSHC SETUP] [LSHC] [LSHCR]         ;246 71230 LSHC
1472,2200,2235,2237,1304,1304,1637,1304,0166|7761|        [MUUO]                                          ;247 71234 MUUO
1637,1304,1304,1304,1304,1304,1637,1304,0167|7762|        [FETCH AC&MEM(W)] [TO EACH]                     ;250 71240 EXCH
1515,4361,1304,1304,1304,1304,1637,1304,0168|7763|.IF/FAST
                                       |0168|7764|        [FETCH AC] [BLT] [BLT+1N]                       ;251 71244 BLT
1531,2251,2274,1304,1304,1304,1637,1304,0169|7765|.ENDIF/FAST
                                       |0169|7766|.IFNOT/FAST
                                       |0169|7767|        [FETCH AC] [BLT]                                ;251 71244 BLT
                                       |0169|7768|.ENDIF/FAST
                                       |0169|7769|        [FETCH AC] [AOBJX] [JXGE] [TO AC.0]             ;252 71250 AOBJP
1531,2300,2650,4342,1304,1304,1637,1304,0170|7770|        [FETCH AC] [AOBJX] [JXL] [TO AC.0]              ;253 71254 AOBJN
1531,2300,2641,4342,1304,1304,1637,1304,0171|7771|        [JRST] [MCE] [MCE] [IFETCH]                     ;254 71260 JRST
2302,1304,1304,1420,1304,1304,1637,1304,0172|7772|        [JFCL] [MCE] [MCE] [IFETCH]                     ;255 71264 JFCL
2400,1304,1304,1420,1304,1304,1637,1304,0173|7773|        [FETCH MEM] [XCT]                               ;256 71270 XCT
1511,2406,1304,1304,1304,1304,1637,1304,0174|7774|        [MAP]                                           ;257 71274 MAP
2445,1304,1304,1304,1304,1304,1637,1304,0175|7775|        [FETCH AC] [CHK PC SECT] [PUSHJ]                ;260 71300 PUSHJ
1531,2510,2466,1304,1304,1304,1637,1304,0176|7776|        [FETCH AC&MEM] [PUSH]                           ;261 71304 PUSH
1510,2511,1304,1304,1304,1304,1637,1304,0177|7777|        [FETCH AC] [CHK PC SECT] [POP]                  ;262 71310 POP
1531,2510,2530,1304,1304,1304,1637,1304,0178|7778|        [FETCH AC] [CHK PC SECT] [POPJ]                 ;263 71314 POPJ
1531,2510,2561,1304,1304,1304,1637,1304,0179|7779|        [CHK PC SECT] [JSR] [JSR SETUP]                 ;264 71320 JSR
2510,2577,2573,1304,1304,1304,1637,1304,0180|7780|        [CHK PC SECT] [JSP] [JSR SETUP]                 ;265 71324 JSP
2510,2604,2573,1304,1304,1304,1637,1304,0181|7781|        [FETCH AC] [JSA]                                ;266 71330 JSA
1531,2605,1304,1304,1304,1304,1637,1304,0182|7782|        [FETCH AC] [JRA]                                ;267 71334 JRA
1531,2612,1304,1304,1304,1304,1637,1304,0183|7783|        [FETCH AC&MEM] [ADDX] [TO AC]                   ;270 71340 ADD
1510,2073,4343,1304,1304,1304,1637,1304,0184|7784|        [FETCH AC&I] [ADDX] [TO AC]                     ;271 71344 ADDI
1526,2073,4343,1304,1304,1304,1637,1304,0185|7785|        [FETCH AC&MEM(W)] [ADDX] [BACK TO MEM]          ;272 71350 ADDK
1515,2073,4363,1304,1304,1304,1637,1304,0186|7786|        [FETCH AC&MEM(W)] [ADDX] [TO BOTH.0]            ;273 71354 ADDB
1515,2073,4357,1304,1304,1304,1637,1304,0187|7787|        [FETCH AC&MEM] [SUBX] [TO AC]                   ;274 11360 SUB
1510,2076,4343,1304,1304,1304,1637,1304,0188|7788|        [FETCH AC&I] [SUBX] [TO AC]                     ;275 71364 SUBI
1526,2076,4343,1304,1304,1304,1637,1304,0189|7789|        [FETCH AC&MEM(W)] [SUBX] [BACK TO MEM]          ;276 71370 SUBK
1515,2076,4363,1304,1304,1304,1637,1304,0190|7790|        [FETCH AC&MEM(W)] [SUBX] [TO BOTH.0]            ;277 71374 SUBB
1515,2076,4357,1304,1304,1304,1637,1304,0191|7791|
                                       |0191|7792|.TOC 2, "Opcodes 300 - 337"
                                       |0191|7793|        [TO NOWHERE]                                    ;300 71400 CAI
4127,1304,1304,1304,1304,1304,1637,1304,0192|7794|        [FETCH AC&I] [CAX] [SXL] [IFETCH]##[JXA]        ;301 71404 CAIL  JRST 1,
1526,2616,2625,1420,1304,1304,1637,2647,0193|7795|        [FETCH AC&I] [CAX] [SXE] [IFETCH]##[JRSTF]      ;302 71410 CAIE  JRST 2,
1526,2616,2627,1420,1304,1304,1637,2305,0194|7796|        [FETCH AC&I] [CAX] [SXLE] [IFETCH]##[MUUO]      ;303 71414 CAILE JRST 3,
1526,2616,2631,1420,1304,1304,1637,1637,0195|7797|        [FETCH AC&I] [CAX] [SXA] [IFETCH]##[HALT]       ;304 71420 CAIA  JRST 4,
1526,2616,2632,1420,1304,1304,1637,2323,0196|7798|        [FETCH AC&I] [CAX] [SXGE] [IFETCH]##[XJRSTF]    ;305 71424 CAIGE JRST 5,
1526,2616,2633,1420,1304,1304,1637,2326,0197|7799|        [FETCH AC&I] [CAX] [SXN] [IFETCH]##[XJEN]       ;306 71430 CAIN  JRST 6,
1526,2616,2635,1420,1304,1304,1637,2334,0198|7800|        [FETCH AC&I] [CAX] [SXG] [IFETCH]##[XPCW]       ;307 71434 CAIG  JRST 7,
1526,2616,2637,1420,1304,1304,1637,2341,0199|7801|        [FETCH MEM] [IFETCH]##[JRST 10]                 ;310 71440 CAM   JRST 10,
1511,1420,1304,1304,1304,1304,1637,2350,0200|7802|        [FETCH AC&MEM] [CAX] [SXL] [IFETCH]##[MUUO]     ;311 71444 CAML  JRST 11,
1510,2616,2625,1420,1304,1304,1637,1637,0201|7803|        [FETCH AC&MEM] [CAX] [SXE] [IFETCH]##[JEN]      ;312 71450 CAME  JRST 12,
1510,2616,2627,1420,1304,1304,1637,2352,0202|7804|        [FETCH AC&MEM] [CAX] [SXLE] [IFETCH]##[MUUO]    ;313 71454 CAMLE JRST 13,
1510,2616,2631,1420,1304,1304,1637,1637,0203|7805|        [FETCH AC&MEM] [CAX] [SXA] [IFETCH]##[SFM]      ;314 71460 CAMA  JRST 14,
1510,2616,2632,1420,1304,1304,1637,2367,0204|7806|        [FETCH AC&MEM] [CAX] [SXGE] [IFETCH]##[MUUO]    ;315 71464 CAMGE JRST 15,
1510,2616,2633,1420,1304,1304,1637,1637,0205|7807|        [FETCH AC&MEM] [CAX] [SXN] [IFETCH]##[MUUO]     ;316 71470 CAMN  JRST 16,
1510,2616,2635,1420,1304,1304,1637,1637,0206|7808|        [FETCH AC&MEM] [CAX] [SXG] [IFETCH]##[MUUO]     ;317 71474 CAMG  JRST 17,
1510,2616,2637,1420,1304,1304,1637,1637,0207|7809|        [TO NOWHERE]                                    ;320 71500 JUMP
4127,1304,1304,1304,1304,1304,1637,1304,0208|7810|        [FETCH AC(MX)] [JXL] [MCE] [IFETCH]             ;321 71504 JUMPL
1532,2641,1304,1420,1304,1304,1637,1304,0209|7811|        [FETCH AC(MX)] [JXE] [MCE] [IFETCH]             ;322 71510 JUKPE
1532,2643,1304,1420,1304,1304,1637,1304,0210|7812|        [FETCH AC(MX)] [JXLE] [MCE] [IFETCH]            ;323 71514 JUMPLE
1532,2645,1304,1420,1304,1304,1637,1304,0211|7813|        [JXA] [MCE] [MCE] [IFETCH]                      ;324 71520 JUKPA
2647,1304,1304,1420,1304,1304,1637,1304,0212|7814|        [FETCH AC(MX)] [JXGE] [MCE] [IFETCH]            ;325 71524 JUKPGE
1532,2650,1304,1420,1304,1304,1637,1304,0213|7815|        [FETCH AC(MX)] [JXN] [MCE] [IFETCH]             ;326 71530 JUKPN
1532,2652,1304,1420,1304,1304,1637,1304,0214|7816|        [FETCH AC(MX)] [JXG] [MCE] [IFETCH]             ;327 71534 JUKPG
1532,2654,1304,1420,1304,1304,1637,1304,0215|7817|        [FETCH MEM] [SKIPX]                             ;330 7154O SKIP
1511,2656,1304,1304,1304,1304,1637,1304,0216|7818|        [FETCH MEM] [SXL] [MCE] [SKIPX]                 ;331 71544 SKIPL
1511,2625,1304,2656,1304,1304,1637,1304,0217|7819|        [FETCH MEM] [SXE] [MCE] [SKIPX]                 ;332 71550 SKIPE
1511,2627,1304,2656,1304,1304,1637,1304,0218|7820|        [FETCH MEM] [SXLE] [MCE] [SKIPX]                ;333 71554 SKIPLE
1511,2631,1304,2656,1304,1304,1637,1304,0219|7821|        [FETCH MEM] [SXA] [MCE] [SKIPX]                 ;334 71560 SKIPA
1511,2632,1304,2656,1304,1304,1637,1304,0220|7822|        [FETCH MEM] [SXGE] [MCE] [SKIPX]                ;335 71564 SKIPGE
1511,2633,1304,2656,1304,1304,1637,1304,0221|7823|        [FETCH MEM] [SXN] [MCE] [SKIPX]                 ;336 71570 SKIPN
1511,2635,1304,2656,1304,1304,1637,1304,0222|7824|        [FETCH MEM] [SXG] [MCE] [SKIPX]                 ;337 71574 SKIPG
1511,2637,1304,2656,1304,1304,1637,1304,0223|7825|
                                       |0223|7826|.TOC 2, "Opcodes 340 - 377"
                                       |0223|7827|        [FETCH AC] [AOXX] [TO AC]                       ;340 71600 AOJ
1531,2617,4343,1304,1304,1304,1637,1304,0224|7828|        [FETCH AC] [AOXX] [JXL] [TO AC]                 ;341 71604 AOJL
1531,2617,2641,4343,1304,1304,1637,1304,0225|7829|        [FETCH AC] [AOXX] [JXE] [TO AC]                 ;342 71610 AOJE
1531,2617,2643,4343,1304,1304,1637,1304,0226|7830|        [FETCH AC] [AOXX] [JXLE] [TO AC]                ;343 71614 AOJLE
1531,2617,2645,4343,1304,1304,1637,1304,0227|7831|        [FETCH AC] [AOXX] [JXA] [TO AC]                 ;344 71620 AOJA
1531,2617,2647,4343,1304,1304,1637,1304,0228|7832|        [FETCH AC] [AOXX] [JXGE] [TO AC]                ;345 71624 AOJGE
1531,2617,2650,4343,1304,1304,1637,1304,0229|7833|        [FETCH AC] [AOXX] [JXN] [TO AC]                 ;346 71630 AOJN
1531,2617,2652,4343,1304,1304,1637,1304,0230|7834|        [FETCH AC] [AOXX] [JXG] [TO AC]                 ;347 71634 AOJG
1531,2617,2654,4343,1304,1304,1637,1304,0231|7835|        [FETCH MEM(W)] [AOXX] [BACK TO SELF]            ;350 71640 AOS
1516,2617,4352,1304,1304,1304,1637,1304,0232|7836|        [FETCH MEM(W)] [AOXX] [SXL] [BACK TO SELF]      ;351 ji644 AOSL
1516,2617,2625,4352,1304,1304,1637,1304,0233|7837|        [FETCH MEM(W)] [AOXX] [SXE] [BACK TO SELF]      ;352 71650 AOSE
1516,2617,2627,4352,1304,1304,1637,1304,0234|7838|        [FETCH MEM(W)] [AOXX] [SXLE] [BACK TO SELF]     ;353 71654 AOSLE
1516,2617,2631,4352,1304,1304,1637,1304,0235|7839|        [FETCH MEM(W)] [AOXX] [SXA] [BACK TO SELF]      ;354 71660 AOSA
1516,2617,2632,4352,1304,1304,1637,1304,0236|7840|        [FETCH MEM(W)] [AOXX] [SXGE] [BACK TO SELF]     ;355 71664 AOSGE
1516,2617,2633,4352,1304,1304,1637,1304,0237|7841|        [FETCH MEM(W)] [AOXX] [SXN] [BACK TO SELF]      ;356 71670 AOSN
1516,2617,2635,4352,1304,1304,1637,1304,0238|7842|        [FETCH MEM(W)] [AOXX] [SXG] [BACK TO SELF]      ;357 71674 AOSG
1516,2617,2637,4352,1304,1304,1637,1304,0239|7843|        [FETCH AC] [SOXX] [TO AC]                       ;360 71700 SOJ
1531,2622,4343,1304,1304,1304,1637,1304,0240|7844|        [FETCH AC] [SOXX] [JXL] [TO AC]                 ;361 71704 SOJL
1531,2622,2641,4343,1304,1304,1637,1304,0241|7845|        [FETCH AC] [SOXX] [JXE] [TO AC]                 ;362 71710 SOJE
1531,2622,2643,4343,1304,1304,1637,1304,0242|7846|        [FETCH AC] [SOXX] [JXLE] [TO AC]                ;363 71714 SOJLE
1531,2622,2645,4343,1304,1304,1637,1304,0243|7847|        [FETCH AC] [SOXX] [JXA] [TO AC]                 ;364 71720 SOJA
1531,2622,2647,4343,1304,1304,1637,1304,0244|7848|        [FETCH AC] [SOXX] [JXGE] [TO AC]                ;365 71724 SOJGE
1531,2622,2650,4343,1304,1304,1637,1304,0245|7849|        [FETCH AC] [SOXX] [JXN] [TO AC]                 ;366 71730 SOJN
1531,2622,2652,4343,1304,1304,1637,1304,0246|7850|        [FETCH AC] [SOXX] [JXG] [TO AC]                 ;367 71734 SOJG
1531,2622,2654,4343,1304,1304,1637,1304,0247|7851|        [FETCH MEM(W)] [SOXX] [BACK TO SELF]            ;370 71740 SOS
1516,2622,4352,1304,1304,1304,1637,1304,0248|7852|        [FETCH MEM(W)] [SOXX] [SXL] [BACK TO SELF]      ;371 71744 SOSL
1516,2622,2625,4352,1304,1304,1637,1304,0249|7853|        [FETCH MEM(W)] [SOXX] [SXE] [BACK TO SELF]      ;372 71750 SOSE
1516,2622,2627,4352,1304,1304,1637,1304,0250|7854|        [FETCH MEM(W)] [SOXX] [SXLE] [BACK TO SELF]     ;373 71754 SOSLE
1516,2622,2631,4352,1304,1304,1637,1304,0251|7855|        [FETCH MEM(W)] [SOXX] [SXA] [BACK TO SELF]      ;374 71760 SOSA
1516,2622,2632,4352,1304,1304,1637,1304,0252|7856|        [FETCH MEM(W)] [SOXX] [SXGE] [BACK TO SELF]     ;375 71764 SOSGE
1516,2622,2633,4352,1304,1304,1637,1304,0253|7857|        [FETCH MEM(W)] [SOXX] [SXN] [BACK TO SELF]      ;376 71770 SOSN
1516,2622,2635,4352,1304,1304,1637,1304,0254|7858|        [FETCH MEM(W)] [SOXX] [SXG] [BACK TO SELF]      ;377 71774 SOSG
1516,2622,2637,4352,1304,1304,1637,1304,0255|7859|
                                       |0255|7860|.TOC 2, "Opcodes 400 - 437"
                                       |0255|7861|        [SETZX] [TO AC]                                 ;400 72000 SETZ
2660,4343,1304,1304,1304,1304,1637,1304,0256|7862|        [SETZX] [TO AC]                                 ;401 72004 SETZI
2660,4343,1304,1304,1304,1304,1637,1304,0257|7863|        [SETZX] [TO MEM]                                ;402 72010 SETZM
2660,4371,1304,1304,1304,1304,1637,1304,0258|7864|        [SETZX] [TO BOTH]                               ;403 72014 SETZB
2660,4360,1304,1304,1304,1304,1637,1304,0259|7865|        [FETCH AC&MEM] [ANDX] [TO AC]                   ;404 72020 AND
1510,2661,4343,1304,1304,1304,1637,1304,0260|7866|        [FETCH AC&I] [ANDX] [TO AC]                     ;405 72024 ANDI
1526,2661,4343,1304,1304,1304,1637,1304,0261|7867|        [FETCH AC&MEM(W)] [ANDX] [BACK TO MEM]          ;406 72030 ANDM
1515,2661,4363,1304,1304,1304,1637,1304,0262|7868|        [FETCH AC&MEM(W)] [ANDX] [TO BOTH]              ;407 72034 ANDB
1515,2661,4360,1304,1304,1304,1637,1304,0263|7869|        [FETCH AC&MEM] [ANDCAX] [TO AC]                 ;410 72040 ANDCA
1510,2662,4343,1304,1304,1304,1637,1304,0264|7870|        [FETCH AC&I] [ANDCAX] [TO AC]                   ;411 72044 ANDCAI
1526,2662,4343,1304,1304,1304,1637,1304,0265|7871|        [FETCH AC&MEM(W)] [ANDCAX] [BACK TO MEM]        ;412 72050 ANDCAM
1515,2662,4363,1304,1304,1304,1637,1304,0266|7872|        [FETCH AC&MEM(W)] [ANDCAX] [TO BOTH]            ;413 72054 ANDCAB
1515,2662,4360,1304,1304,1304,1637,1304,0267|7873|        [FETCH MEM] [TO AC]                             ;414 72060 SETM
1511,4343,1304,1304,1304,1304,1637,1304,0268|7874|        [XMOVEI] [MCE] [TO AC]                          ;415 72064 SETMI XMOVEI
2663,1304,4343,1304,1304,1304,1637,1304,0269|7875|        [FETCH MEM(W)] [BACK TO MEM]                    ;416 72070 SETMM
1516,4363,1304,1304,1304,1304,1637,1304,0270|7876|        [FETCH MEM(W)] [TO BOTH]                        ;417 72074 SETMB
1516,4360,1304,1304,1304,1304,1637,1304,0271|7877|        [FETCH AC&MEM] [ANDCMX] [TO AC]                 ;420 72100 ANDCM
1510,2665,4343,1304,1304,1304,1637,1304,0272|7878|        [FETCH AC&I] [ANDCMX] [TO AC]                   ;421 72104 ANDCMI
1526,2665,4343,1304,1304,1304,1637,1304,0273|7879|        [FETCH AC&MEM(W)] [ANDCMX] [BACK TO MEM]        ;422 72110 ANDCMM
1515,2665,4363,1304,1304,1304,1637,1304,0274|7880|        [FETCH AC&MEM(W)] [ANDCMX] [TO BOTH]            ;423 72114 ANDCMB
1515,2665,4360,1304,1304,1304,1637,1304,0275|7881|        [TO NOWHERE]                                    ;424 72120 SETA (no-op)
4127,1304,1304,1304,1304,1304,1637,1304,0276|7882|        [TO NOWHERE]                                    ;425 72124 SETAI (no-op)
4127,1304,1304,1304,1304,1304,1637,1304,0277|7883|        [FETCH AC] [TO MEM]                             ;426 72130 SETAM (= MOVEM)
1531,4371,1304,1304,1304,1304,1637,1304,0278|7884|        [FETCH AC] [TO MEM]                             ;427 72134 SETAB (= MOVEM)
1531,4371,1304,1304,1304,1304,1637,1304,0279|7885|        [FETCH AC&MEM] [XORX] [TO AC]                   ;430 72140 XOR
1510,2666,4343,1304,1304,1304,1637,1304,0280|7886|        [FETCH AC&I] [XORX] [TO AC]                     ;431 72144 XORI
1526,2666,4343,1304,1304,1304,1637,1304,0281|7887|        [FETCH AC&MEM(W)] [XORX] [BACK TO MEM]          ;432 72150 XORM
1515,2666,4363,1304,1304,1304,1637,1304,0282|7888|        [FETCH AC&MEM(W)] [XORX] [TO BOTH]              ;433 72154 XORB
1515,2666,4360,1304,1304,1304,1637,1304,0283|7889|        [FETCH AC&MEM] [IORX] [TO AC]                   ;434 72160 IOR
1510,2670,4343,1304,1304,1304,1637,1304,0284|7890|        [FETCH AC&I] [IORX] [TO AC]                     ;435 72164 IORI
1526,2670,4343,1304,1304,1304,1637,1304,0285|7891|        [FETCH AC&MEM(W)] [IORX] [BACK TO MEM]          ;436 72170 10RM
1515,2670,4363,1304,1304,1304,1637,1304,0286|7892|        [FETCH AC&MEM(W)] [IORX] [TO BOTH]              ;437 72174 IORB
1515,2670,4360,1304,1304,1304,1637,1304,0287|7893|
                                       |0287|7894|.TOC 2, "Opcodes 440 - 477"
                                       |0287|7895|        [FETCH AC&MEM] [ANDCBX] [TO AC]                 ;440 72200 ANDCB
1510,2671,4343,1304,1304,1304,1637,1304,0288|7896|        [FETCH AC&I] [ANDCBX] [TO AC]                   ;441 72204 ANDCBI
1526,2671,4343,1304,1304,1304,1637,1304,0289|7897|        [FETCH AC&MEM(W)] [ANDCBX] [BACK TO MEM]        ;442 72210 ANDCBM
1515,2671,4363,1304,1304,1304,1637,1304,0290|7898|        [FETCH AC&MEM(W)] [ANDCBX] [TO BOTH]            ;443 72214 ANDCBB
1515,2671,4360,1304,1304,1304,1637,1304,0291|7899|        [FETCH AC&MEM] [EQVX] [TO AC]                   ;444 72220 EQV
1510,2673,4343,1304,1304,1304,1637,1304,0292|7900|        [FETCH AC&I] [EQVX] [TO AC]                     ;445 72224 EQVI
1526,2673,4343,1304,1304,1304,1637,1304,0293|7901|        [FETCH AC&MEM(W)] [EQVX] [BACK TO MEM]          ;446 72230 EQVM
1515,2673,4363,1304,1304,1304,1637,1304,0294|7902|        [FETCH AC&MEM(W)] [EQVX] [TO BOTH]              ;447 72234 EQVB
1515,2673,4360,1304,1304,1304,1637,1304,0295|7903|        [FETCH AC] [SETCAX] [TO AC]                     ;450 72240 SETCA
1531,2674,4343,1304,1304,1304,1637,1304,0296|7904|        [FETCH AC] [SETCAX] [TO AC]                     ;451 72244 SETCAI
1531,2674,4343,1304,1304,1304,1637,1304,0297|7905|        [FETCH AC] [SETCAX] [TO MEM]                    ;452 72250 SETCAM
1531,2674,4371,1304,1304,1304,1637,1304,0298|7906|        [FETCH AC] [SETCAX] [TO BOTH]                   ;453 72254 SETCAB
1531,2674,4360,1304,1304,1304,1637,1304,0299|7907|        [FETCH AC&MEM] [ORCAX] [TO AC]                  ;454 72260 ORCA
1510,2675,4343,1304,1304,1304,1637,1304,0300|7908|        [FETCH AC&I] [ORCAX] [TO AC]                    ;455 72264 ORCAI
1526,2675,4343,1304,1304,1304,1637,1304,0301|7909|        [FETCH AC&MEM(W)] [ORCAX] [BACK TO MEM]         ;456 72270 ORCAM
1515,2675,4363,1304,1304,1304,1637,1304,0302|7910|        [FETCH AC&MEM(W)] [ORCAX] [TO BOTH]             ;457 72274 ORCAB
1515,2675,4360,1304,1304,1304,1637,1304,0303|7911|        [FETCH MEM] [SETCMX] [TO AC]                    ;460 72300 SETCM
1511,2676,4343,1304,1304,1304,1637,1304,0304|7912|        [FETCH I] [SETCMX] [TO AC]                      ;461 72304 SETCMI
1527,2676,4343,1304,1304,1304,1637,1304,0305|7913|        [FETCH MEM(W)] [SETCMX] [BACK TO MEM]           ;462 72310 SETCMM
1516,2676,4363,1304,1304,1304,1637,1304,0306|7914|        [FETCH MEM(W)] [SETCMX] [TO BOTH]               ;463 72314 SETCMB
1516,2676,4360,1304,1304,1304,1637,1304,0307|7915|        [FETCH AC&MEM] [ORCMX] [TO AC]                  ;464 72320 ORCM
1510,2677,4343,1304,1304,1304,1637,1304,0308|7916|        [FETCH AC&I] [ORCMX] [TO AC]                    ;465 72324 ORCMI
1526,2677,4343,1304,1304,1304,1637,1304,0309|7917|        [FETCH AC&MEM(W)] [ORCMX] [BACK TO MEM]         ;466 72330 ORCMM
1515,2677,4363,1304,1304,1304,1637,1304,0310|7918|        [FETCH AC&MEM(W)] [ORCMX] [TO BOTH]             ;467 72334 ORCMB
1515,2677,4360,1304,1304,1304,1637,1304,0311|7919|        [FETCH AC&MEM] [ORCBX] [TO AC]                  ;470 72340 ORCB
1510,2700,4343,1304,1304,1304,1637,1304,0312|7920|        [FETCH AC&I] [ORCBX] [TO AC]                    ;471 72344 ORCBI
1526,2700,4343,1304,1304,1304,1637,1304,0313|7921|        [FETCH AC&MEM(W)] [ORCBX] [BACK TO MEM]         ;472 72350 ORCBM
1515,2700,4363,1304,1304,1304,1637,1304,0314|7922|        [FETCH AC&MEM(W)] [ORCBX] [TO BOTH]             ;473 72354 ORCBB
1515,2700,4360,1304,1304,1304,1637,1304,0315|7923|        [SETOX] [TO AC]                                 ;474 72360 SETO
2701,4343,1304,1304,1304,1304,1637,1304,0316|7924|        [SETOX] [TO AC]                                 ;475 72364 SETOI
2701,4343,1304,1304,1304,1304,1637,1304,0317|7925|        [SETOX] [TO MEM]                                ;476 72370 SETOM
2701,4371,1304,1304,1304,1304,1637,1304,0318|7926|        [SETOX] [TO BOTH]                               ;477 72374 SETOB
2701,4360,1304,1304,1304,1304,1637,1304,0319|7927|
                                       |0319|7928|.TOC 2, "Opcodes 500 - 537"
                                       |0319|7929|        [FETCH AC&MEM] [HLL] [TO AC]                    ;500 72400 HLL
1510,2702,4343,1304,1304,1304,1637,1304,0320|7930|        [FETCH AC] [XHLLI] [TO AC.0]                    ;501 72404 HLLI XHLLI
1531,2703,4342,1304,1304,1304,1637,1304,0321|7931|        [FETCH AC&MEM(W)] [HLLM] [TO MEM]               ;502 72410 HLLM
1515,2711,4371,1304,1304,1304,1637,1304,0322|7932|        [FETCH MEM(W)] [BACK TO SELF]                   ;503 72414 HLLS
1516,4352,1304,1304,1304,1304,1637,1304,0323|7933|        [FETCH AC&MEM] [HRL] [AC TO AC]                 ;504 72420 HRL
1510,2712,4350,1304,1304,1304,1637,1304,0324|7934|        [FETCH AC&I] [HRL] [AC TO AC]                   ;505 72424 HRLI
1526,2712,4350,1304,1304,1304,1637,1304,0325|7935|        [FETCH AC&MEM(W)] [HRLM] [TO MEM]               ;506 72430 HRLM
1515,2710,4371,1304,1304,1304,1637,1304,0326|7936|        [FETCH AC&MEM(W)] [HRLS] [BACK TO SELF]         ;507 72434 HRLS
1515,2713,4352,1304,1304,1304,1637,1304,0327|7937|        [FETCH MEM] [HLLZX] [MCE] [TO AC]               ;510 72440 HLLZ
1511,2714,1304,4343,1304,1304,1637,1304,0328|7938|        [FETCH I] [HLLZX] [MCE] [TO AC]                 ;511 72444 HLLZI
1527,2714,1304,4343,1304,1304,1637,1304,0329|7939|        [FETCH AC] [HLLZX] [MCE] [TO MEM]               ;512 72450 HLLZM
1531,2714,1304,4371,1304,1304,1637,1304,0330|7940|        [FETCH MEM(W)] [HLLZX] [MCE] [BACK TO SELF]     ;513 72454 HLLZS
1516,2714,1304,4352,1304,1304,1637,1304,0331|7941|        [FETCH MEM] [MOVSX] [HLLZX] [TO AC]             ;514 72460 HRLZ
1511,2064,2714,4343,1304,1304,1637,1304,0332|7942|.IF/FAST
                                       |0332|7943|        [MOVSI]                                         ;515 72464 HRLZI
2062,1304,1304,1304,1304,1304,1637,1304,0333|7944|.ENDIF/FAST
                                       |0333|7945|.IFNOT/FAST
                                       |0333|7946|        [FETCH I] [MOVSX] [HLLZX] [TO AC]               ;515 72464 HRLZI
                                       |0333|7947|.ENDIF/FAST
                                       |0333|7948|        [FETCH AC] [MOVSX] [HLLZX] [TO MEM]             ;516 72470 HRLZM
1531,2064,2714,4371,1304,1304,1637,1304,0334|7949|        [FETCH MEM(W)] [MOVSX] [HLLZX] [BACK TO SELF]   ;517 72474 HRLZS
1516,2064,2714,4352,1304,1304,1637,1304,0335|7950|        [FETCH MEM] [HLLOX] [MCE] [TO AC]               ;520 72500 HLLO
1511,2717,1304,4343,1304,1304,1637,1304,0336|7951|        [FETCH I] [HLLOX] [MCE] [TO AC]                 ;521 72504 HLLOI
1527,2717,1304,4343,1304,1304,1637,1304,0337|7952|        [FETCH AC] [HLLOX] [MCE] [TO MEM]               ;522 72510 HLLOM
1531,2717,1304,4371,1304,1304,1637,1304,0338|7953|        [FETCH MEM(W)] [HLLOX] [MCE] [BACK TO SELF]     ;523 72514 HLLOS
1516,2717,1304,4352,1304,1304,1637,1304,0339|7954|        [FETCH MEM] [MOVSX] [HLLOX] [TO AC]             ;524 72520 HRLO
1511,2064,2717,4343,1304,1304,1637,1304,0340|7955|        [FETCH I] [MOVSX] [HLLOX] [TO AC]               ;525 72524 HRLOI
1527,2064,2717,4343,1304,1304,1637,1304,0341|7956|        [FETCH AC] [MOVSX] [HLLOX] [TO MEM]             ;526 72530 HRLOM
1531,2064,2717,4371,1304,1304,1637,1304,0342|7957|        [FETCH MEM(W)] [MOVSX] [HLLOX] [BACK TO SELF]   ;527 72534 HRlOS
1516,2064,2717,4352,1304,1304,1637,1304,0343|7958|        [FETCH MEM] [HLLEX] [MCE] [TO AC]               ;530 72540 HLLE
1511,2716,1304,4343,1304,1304,1637,1304,0344|7959|        [FETCH I] [HLLEX] [MCE] [TO AC]                 ;531 72544 HLLEI
1527,2716,1304,4343,1304,1304,1637,1304,0345|7960|        [FETCH AC(MX)] [HLLEX] [MCE] [TO MEM]           ;532 72550 HLLEM
1532,2716,1304,4371,1304,1304,1637,1304,0346|7961|        [FETCH MEM(W)] [HLLEX] [MCE] [BACK TO SELF]     ;533 72554 HLLES
1516,2716,1304,4352,1304,1304,1637,1304,0347|7962|        [FETCH MEM] [MOVSX] [HRLEX] [TO AC]             ;534 72560 HRLE
1511,2064,2715,4343,1304,1304,1637,1304,0348|7963|        [FETCH I] [MOVSX] [HRLEX] [TO AC]               ;535 72564 HRLEI
1527,2064,2715,4343,1304,1304,1637,1304,0349|7964|        [FETCH AC(MX)] [MOVSX] [HRLEX] [TO MEM]         ;536 72570 HRLEM
1532,2064,2715,4371,1304,1304,1637,1304,0350|7965|        [FETCH MEM(W)] [MOVSX] [HRLEX] [BACK TO SELF]   ;537 72574 HRLES
1516,2064,2715,4352,1304,1304,1637,1304,0351|7966|
                                       |0351|7967|.TOC 2, "Opcodes 540 - 577"
                                       |0351|7968|        [FETCH AC&MEM] [HRR] [TO AC]                    ;540 72600 HRR
1510,2720,4343,1304,1304,1304,1637,1304,0352|7969|        [FETCH AC&I] [HRR] [TO AC]                      ;541 72604 HRRI
1526,2720,4343,1304,1304,1304,1637,1304,0353|7970|        [FETCH AC&MEM(W)] [HRRM] [TO MEM]               ;542 72610 HRRM
1515,2722,4371,1304,1304,1304,1637,1304,0354|7971|        [FETCH MEM(W)] [BACK TO SELF]                   ;543 72614 HRRS
1516,4352,1304,1304,1304,1304,1637,1304,0355|7972|        [FETCH AC&MEM] [HLR] [AC TO AC]                 ;544 72620 HLR
1510,2723,4350,1304,1304,1304,1637,1304,0356|7973|        [FETCH AC&I] [HLR] [AC TO AC]                   ;545 72624 HLRI
1526,2723,4350,1304,1304,1304,1637,1304,0357|7974|        [FETCH AC&MEM(W)] [HLRM] [TO MEM]               ;546 72630 HLRM
1515,2721,4371,1304,1304,1304,1637,1304,0358|7975|        [FETCH AC&MEM(W)] [HLRS] [BACK TO SELF]         ;547 72634 HLRS
1515,2724,4352,1304,1304,1304,1637,1304,0359|7976|
                                       |0359|7977|        [FETCH MEM] [HRRZX] [MCE] [TO AC]               ;550 72640 HRRZ
1511,2725,1304,4343,1304,1304,1637,1304,0360|7978|.IF/FAST
                                       |0360|7979|        [MOVEI]                                         ;551 72644 HRRZI
2061,1304,1304,1304,1304,1304,1637,1304,0361|7980|.ENDIF/FAST
                                       |0361|7981|.IFNOT/FAST
                                       |0361|7982|        [FETCH I] [HRRZX] [MCE] [TO AC]                 ;551 72644 HRRZI
                                       |0361|7983|.ENDIF/FAST
                                       |0361|7984|        [FETCH AC] [HRRZX] [MCE] [TO MEM]               ;552 72650 HRRZM
1531,2725,1304,4371,1304,1304,1637,1304,0362|7985|        [FETCH MEM(W)] [HRRZX] [MCE] [BACK TO SELF]     ;553 72654 HRRZS
1516,2725,1304,4352,1304,1304,1637,1304,0363|7986|        [FETCH MEM] [MOVSX] [HRRZX] [TO AC]             ;554 72660 HlRZ
1511,2064,2725,4343,1304,1304,1637,1304,0364|7987|        [FETCH I] [MOVSX] [HRRZX] [TO AC]               ;555 72664 HlRZI
1527,2064,2725,4343,1304,1304,1637,1304,0365|7988|        [FETCH AC] [MOVSX] [HRRZX] [TO MEM]             ;556 72610 HLRZM
1531,2064,2725,4371,1304,1304,1637,1304,0366|7989|        [FETCH MEM(W)] [MOVSX] [HRRZX] [BACK TO SELF]   ;557 72614 HLRZS
1516,2064,2725,4352,1304,1304,1637,1304,0367|7990|        [FETCH MEM] [HRROX] [MCE] [TO AC]               ;560 72700 HRRO
1511,2727,1304,4343,1304,1304,1637,1304,0368|7991|        [FETCH I] [HRROX] [MCE] [TO AC]                 ;561 72704 HRROI
1527,2727,1304,4343,1304,1304,1637,1304,0369|7992|        [FETCH AC] [HRROX] [MCE] [TO MEM]               ;562 72710 HRROM
1531,2727,1304,4371,1304,1304,1637,1304,0370|7993|        [FETCH MEM(W)] [HRROX] [MCE] [BACK TO SELF]     ;563 72714 HRROS
1516,2727,1304,4352,1304,1304,1637,1304,0371|7994|        [FETCH MEM] [MOVSX] [HRROX] [TO AC]             ;564 72720 HLRO
1511,2064,2727,4343,1304,1304,1637,1304,0372|7995|        [FETCH I] [MOVSX] [HRROX] [TO AC]               ;565 72724 HLROI
1527,2064,2727,4343,1304,1304,1637,1304,0373|7996|        [FETCH AC] [MOVSX] [HRROX] [TO MEM]             ;566 12730 HLROM
1531,2064,2727,4371,1304,1304,1637,1304,0374|7997|        [FETCH MEM(W)] [MOVSX] [HRROX] [BACK TO SELF]   ;567 72734 HLROS
1516,2064,2727,4352,1304,1304,1637,1304,0375|7998|        [FETCH MEM] [HRREX] [MCE] [TO AC]               ;570 72740 HRRE
1511,2726,1304,4343,1304,1304,1637,1304,0376|7999|        [FETCH I] [HRREX] [MCE] [TO AC]                 ;571 72744 HRREI
1527,2726,1304,4343,1304,1304,1637,1304,0377|8000|        [FETCH AC(MX)] [HRREX] [MCE] [TO MEM]           ;572 72750 HRREM
1532,2726,1304,4371,1304,1304,1637,1304,0378|8001|        [FETCH MEM(W)] [HRREX] [MCE] [BACK TO SELF]     ;573 72754 HRRES
1516,2726,1304,4352,1304,1304,1637,1304,0379|8002|        [FETCH MEM] [MOVSX] [HRREX] [TO AC]             ;574 72760 HLRE
1511,2064,2726,4343,1304,1304,1637,1304,0380|8003|        [FETCH I] [MOVSX] [HRREX] [TO AC]               ;575 72764 HLREI
1527,2064,2726,4343,1304,1304,1637,1304,0381|8004|        [FETCH AC(MX)] [MOVSX] [HRREX] [TO MEM]         ;576 72770 HLREM
1532,2064,2726,4371,1304,1304,1637,1304,0382|8005|        [FETCH MEM(W)] [MOVSX] [HRREX] [BACK TO SELF]   ;577 72774 HLRES
1516,2064,2726,4352,1304,1304,1637,1304,0383|8006|
                                       |0383|8007|.TOC 2, "Opcodes 600 - 637"
                                       |0383|8008|        [TO NOWHERE]                                    ;600 73000 TRN
4127,1304,1304,1304,1304,1304,1637,1304,0384|8009|        [TO NOWHERE]                                    ;601 73004 TLN
4127,1304,1304,1304,1304,1304,1637,1304,0385|8010|        [TRX] [TXE] [IFETCH]                            ;602 73010 TRNE
2730,2741,1420,1304,1304,1304,1637,1304,0386|8011|        [TLX] [TXE] [IFETCH]                            ;603 73014 TLNE
2731,2741,1420,1304,1304,1304,1637,1304,0387|8012|        [TRX] [TXA] [IFETCH]                            ;604 73020 TRNA
2730,2742,1420,1304,1304,1304,1637,1304,0388|8013|        [TLX] [TXA] [IFETCH]                            ;605 73024 TLNA
2731,2742,1420,1304,1304,1304,1637,1304,0389|8014|        [TRX] [TXN] [IFETCH]                            ;606 73030 TRNN
2730,2743,1420,1304,1304,1304,1637,1304,0390|8015|        [TLX] [TXN] [IFETCH]                            ;607 73034 TLNN
2731,2743,1420,1304,1304,1304,1637,1304,0391|8016|        [TDX] [IFETCH]                                  ;610 73040 TDN
2733,1420,1304,1304,1304,1304,1637,1304,0392|8017|        [TSX] [IFETCH]                                  ;611 73044 TSN
2736,1420,1304,1304,1304,1304,1637,1304,0393|8018|        [TDX] [TXE] [IFETCH]                            ;612 73050 TDNE
2733,2741,1420,1304,1304,1304,1637,1304,0394|8019|        [TSX] [TXE] [IFETCH]                            ;613 73054 TSNE
2736,2741,1420,1304,1304,1304,1637,1304,0395|8020|        [TDX] [TXA] [IFETCH]                            ;614 73060 TDNA
2733,2742,1420,1304,1304,1304,1637,1304,0396|8021|        [TSX] [TXA] [IFETCH]                            ;615 73064 TSNA
2736,2742,1420,1304,1304,1304,1637,1304,0397|8022|        [TDX] [TXN] [IFETCH]                            ;616 73070 TDNN
2733,2743,1420,1304,1304,1304,1637,1304,0398|8023|        [TSX] [TXN] [IFETCH]                            ;617 73074 TSNN
2736,2743,1420,1304,1304,1304,1637,1304,0399|8024|        [TRX] [TXZ]                                     ;620 73100 TRZ
2730,2745,1304,1304,1304,1304,1637,1304,0400|8025|        [TLX] [TXZ]                                     ;621 73104 TLZ
2731,2745,1304,1304,1304,1304,1637,1304,0401|8026|        [TRX] [TXE] [TXZ]                               ;622 73110 TRZE
2730,2741,2745,1304,1304,1304,1637,1304,0402|8027|        [TLX] [TXE] [TXZ]                               ;623 73114 TLZE
2731,2741,2745,1304,1304,1304,1637,1304,0403|8028|        [TRX] [TXA] [TXZ]                               ;624 73120 TRZA
2730,2742,2745,1304,1304,1304,1637,1304,0404|8029|        [TLX] [TXA] [TXZ]                               ;625 73124 TLZA
2731,2742,2745,1304,1304,1304,1637,1304,0405|8030|        [TRX] [TXN] [TXZ]                               ;626 73130 TRZN
2730,2743,2745,1304,1304,1304,1637,1304,0406|8031|        [TLX] [TXN] [TXZ]                               ;627 73134 TLZN
2731,2743,2745,1304,1304,1304,1637,1304,0407|8032|        [TDX] [TXZ]                                     ;630 73140 TDZ
2733,2745,1304,1304,1304,1304,1637,1304,0408|8033|        [TSX] [TXZ]                                     ;631 73144 TSZ
2736,2745,1304,1304,1304,1304,1637,1304,0409|8034|        [TDX] [TXE] [TXZ]                               ;632 73150 TDZE
2733,2741,2745,1304,1304,1304,1637,1304,0410|8035|        [TSX] [TXE] [TXZ]                               ;633 73154 TSZE
2736,2741,2745,1304,1304,1304,1637,1304,0411|8036|        [TDX] [TXA] [TXZ]                               ;634 73160 TDZA
2733,2742,2745,1304,1304,1304,1637,1304,0412|8037|        [TSX] [TXA] [TXZ]                               ;635 73164 TSZA
2736,2742,2745,1304,1304,1304,1637,1304,0413|8038|        [TDX] [TXN] [TXZ]                               ;636 73170 TDZN
2733,2743,2745,1304,1304,1304,1637,1304,0414|8039|        [TSX] [TXN] [TXZ]                               ;637 73174 TSZN
2736,2743,2745,1304,1304,1304,1637,1304,0415|8040|
                                       |0415|8041|.TOC 2, "Opcodes 640 - 677"
                                       |0415|8042|        [TRX] [TXC]                                     ;640 73200 TRC
2730,2746,1304,1304,1304,1304,1637,1304,0416|8043|        [TLX] [TXC]                                     ;641 73204 TLC
2731,2746,1304,1304,1304,1304,1637,1304,0417|8044|        [TRX] [TXE] [TXC]                               ;642 73210 TRCE
2730,2741,2746,1304,1304,1304,1637,1304,0418|8045|        [TLX] [TXE] [TXC]                               ;643 73214 TLCE
2731,2741,2746,1304,1304,1304,1637,1304,0419|8046|        [TRX] [TXA] [TXC]                               ;644 73220 TRCA
2730,2742,2746,1304,1304,1304,1637,1304,0420|8047|        [TLX] [TXA] [TXC]                               ;645 73224 TLCA
2731,2742,2746,1304,1304,1304,1637,1304,0421|8048|        [TRX] [TXN] [TXC]                               ;646 73230 TRCN
2730,2743,2746,1304,1304,1304,1637,1304,0422|8049|        [TLX] [TXN] [TXC]                               ;647 73234 TLCN
2731,2743,2746,1304,1304,1304,1637,1304,0423|8050|        [TDX] [TXC]                                     ;650 73240 TDC
2733,2746,1304,1304,1304,1304,1637,1304,0424|8051|        [TSX] [TXC]                                     ;651 73244 TSC
2736,2746,1304,1304,1304,1304,1637,1304,0425|8052|        [TDX] [TXE] [TXC]                               ;652 73250 TDCE
2733,2741,2746,1304,1304,1304,1637,1304,0426|8053|        [TSX] [TXE] [TXC]                               ;653 73254 TSCE
2736,2741,2746,1304,1304,1304,1637,1304,0427|8054|        [TDX] [TXA] [TXC]                               ;654 73260 TDCA
2733,2742,2746,1304,1304,1304,1637,1304,0428|8055|        [TSX] [TXA] [TXC]                               ;655 73264 TSCA
2736,2742,2746,1304,1304,1304,1637,1304,0429|8056|        [TDX] [TXN] [TXC]                               ;656 73270 TDCN
2733,2743,2746,1304,1304,1304,1637,1304,0430|8057|        [TSX] [TXN] [TXC]                               ;651 73274 TSCN
2736,2743,2746,1304,1304,1304,1637,1304,0431|8058|        [TRX] [TXO]                                     ;660 73300 TRO
2730,2747,1304,1304,1304,1304,1637,1304,0432|8059|        [TLX] [TXO]                                     ;661 73304 TLO
2731,2747,1304,1304,1304,1304,1637,1304,0433|8060|        [TRX] [TXE] [TXO]                               ;662 73310 TROE
2730,2741,2747,1304,1304,1304,1637,1304,0434|8061|        [TLX] [TXE] [TXO]                               ;663 73314 TLOE
2731,2741,2747,1304,1304,1304,1637,1304,0435|8062|        [TRX] [TXA] [TXO]                               ;664 73310 TROA
2730,2742,2747,1304,1304,1304,1637,1304,0436|8063|        [TLX] [TXA] [TXO]                               ;665 73324 TLOA
2731,2742,2747,1304,1304,1304,1637,1304,0437|8064|        [TRX] [TXN] [TXO]                               ;666 73330 TRON
2730,2743,2747,1304,1304,1304,1637,1304,0438|8065|        [TLX] [TXN] [TXO]                               ;667 73334 TLON
2731,2743,2747,1304,1304,1304,1637,1304,0439|8066|        [TDX] [TXO]                                     ;670 73340 TDO
2733,2747,1304,1304,1304,1304,1637,1304,0440|8067|        [TSX] [TXO]                                     ;671 73344 TSO
2736,2747,1304,1304,1304,1304,1637,1304,0441|8068|        [TDX] [TXE] [TXO]                               ;672 73350 TDOE
2733,2741,2747,1304,1304,1304,1637,1304,0442|8069|        [TSX] [TXE] [TXO]                               ;673 73354 TSOE
2736,2741,2747,1304,1304,1304,1637,1304,0443|8070|        [TDX] [TXA] [TXO]                               ;674 73360 TDOA
2733,2742,2747,1304,1304,1304,1637,1304,0444|8071|        [TSX] [TXA] [TXO]                               ;675 73364 TSOA
2736,2742,2747,1304,1304,1304,1637,1304,0445|8072|        [TDX] [TXN] [TXO]                               ;676 73370 TDON
2733,2743,2747,1304,1304,1304,1637,1304,0446|8073|        [TSX] [TXN] [TXO]                               ;677 73374 TSON
2736,2743,2747,1304,1304,1304,1637,1304,0447|8074|
                                       |0447|8075|.TOC 2, "Opcodes 700 - 737"
                                       |0447|8076|        [IO]                                            ;700 73400 IO
3064,1304,1304,1304,1304,1304,1637,1304,0448|8077|        [IO]                                            ;701 73404 IO
3064,1304,1304,1304,1304,1304,1637,1304,0449|8078|        [IO]                                            ;702 73410 IO
3064,1304,1304,1304,1304,1304,1637,1304,0450|8079|        [IO]                                            ;703 73414 IO
3064,1304,1304,1304,1304,1304,1637,1304,0451|8080|        [IO]                                            ;704 73420 IO
3064,1304,1304,1304,1304,1304,1637,1304,0452|8081|        [IO]                                            ;705 73424 IO
3064,1304,1304,1304,1304,1304,1637,1304,0453|8082|        [IO]                                            ;706 73430 IO
3064,1304,1304,1304,1304,1304,1637,1304,0454|8083|        [IO]                                            ;707 73434 IO
3064,1304,1304,1304,1304,1304,1637,1304,0455|8084|        [IO EFA] [FETCH AC&IO] [TIOE]                   ;710 73440 TIOE
4030,1534,4032,1304,1304,1304,1637,1304,0456|8085|        [IO EFA] [FETCH AC&IO] [TION]                   ;711 73444 TION
4030,1534,4034,1304,1304,1304,1637,1304,0457|8086|        [IO EFA] [FETCH IO] [TO AC]                     ;712 73450 RDIO
4030,1535,4343,1304,1304,1304,1637,1304,0458|8087|        [IO EFA] [WRIO]                                 ;713 73454 WRIO
4030,4036,1304,1304,1304,1304,1637,1304,0459|8088|        [IO EFA] [FETCH AC&IO] [BSIO]                   ;714 73460 BSIO
4030,1534,4125,1304,1304,1304,1637,1304,0460|8089|        [IO EFA] [FETCH AC&IO] [BCIO]                   ;715 73464 BCIO
4030,1534,4126,1304,1304,1304,1637,1304,0461|8090|        [IO]                                            ;716 73470 IO
3064,1304,1304,1304,1304,1304,1637,1304,0462|8091|        [IO]                                            ;717 73474 IO
3064,1304,1304,1304,1304,1304,1637,1304,0463|8092|        [MUUO]                                          ;720 73500 TIOEB
1637,1304,1304,1304,1304,1304,1637,1304,0464|8093|        [MUUO]                                          ;721 73504 TIONB
1637,1304,1304,1304,1304,1304,1637,1304,0465|8094|.IF/DEBUGTTY
                                       |0465|8095|        [RDTTY]                                         ;722 73510 RDIOB
3457,1304,1304,1304,1304,1304,1637,1304,0466|8096|.ENDIF/DEBUGTTY
                                       |0466|8097|.IFNOT/DEBUGTTY
                                       |0466|8098|        [MUUO]                                          ;722 73510 RDIOB
                                       |0466|8099|.ENDIF/DEBUGTTY
                                       |0466|8100|        [MUUO]                                          ;723 73514 WRIOB
1637,1304,1304,1304,1304,1304,1637,1304,0467|8101|        [MUUO]                                          ;724 73520 BSIOB
1637,1304,1304,1304,1304,1304,1637,1304,0468|8102|        [MUUO]                                          ;725 73524 BCIOB
1637,1304,1304,1304,1304,1304,1637,1304,0469|8103|        [IO]                                            ;726 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0470|8104|        [IO]                                            ;727 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0471|8105|        [IO]                                            ;730 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0472|8106|        [IO]                                            ;731 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0473|8107|        [IO]                                            ;732 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0474|8108|        [IO]                                            ;733 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0475|8109|        [IO]                                            ;734 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0476|8110|        [IO]                                            ;735 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0477|8111|        [IO]                                            ;736 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0478|8112|        [IO]                                            ;737 73530 IO
3064,1304,1304,1304,1304,1304,1637,1304,0479|8113|
                                       |0479|8114|.TOC 2, "Opcodes 740 - 777"
                                       |0479|8115|.IF/FTCIS
                                       |0479|8116|        [CIS SETUP] [MOVC]                              ;740 73740 IO
2752,2775,1304,1304,1304,1304,1637,1304,0480|8117|        [CIS SETUP] [CMPC]                              ;741 73744 IO
2752,3005,1304,1304,1304,1304,1637,1304,0481|8118|        [CIS SETUP] [MOVCV]                             ;742 73610 IO
2752,3017,1304,1304,1304,1304,1637,1304,0482|8119|        [CIS SETUP] [CMPCV]                             ;743 73614 IO
2752,3017,1304,1304,1304,1304,1637,1304,0483|8120|        [CIS SETUP] [CMPND]                             ;744 73620 IO
2752,3017,1304,1304,1304,1304,1637,1304,0484|8121|        [CIS SETUP] [ADDND]                             ;745 73624 IO
2752,3017,1304,1304,1304,1304,1637,1304,0485|8122|        [CIS SETUP] [SUBND]                             ;746 73630 IO
2752,3017,1304,1304,1304,1304,1637,1304,0486|8123|        [CIS SETUP] [MOVND]                             ;747 73634 IO
2752,3017,1304,1304,1304,1304,1637,1304,0487|8124|        [CIS SETUP] [CVTNDB]                            ;750 73640 IO
2752,3017,1304,1304,1304,1304,1637,1304,0488|8125|        [CIS SETUP] [CMPP]                              ;751 73644 IO
2752,3017,1304,1304,1304,1304,1637,1304,0489|8126|        [CIS SETUP] [ADDP]                              ;752 73650 IO
2752,3017,1304,1304,1304,1304,1637,1304,0490|8127|        [CIS SETUP] [SUBP]                              ;753 73654 IO
2752,3017,1304,1304,1304,1304,1637,1304,0491|8128|        [CIS SETUP] [MOVP]                              ;754 73660 IO
2752,3017,1304,1304,1304,1304,1637,1304,0492|8129|        [CIS SETUP] [CHOP]                              ;755 73664 IO
2752,3017,1304,1304,1304,1304,1637,1304,0493|8130|.ENDIF/FTCIS
                                       |0493|8131|.IFNOT/FTCIS
                                       |0493|8132|        [IO 4]                                          ;740 73600 IO
                                       |0493|8133|        [IO 4]                                          ;741 73604 IO
                                       |0493|8134|        [IO 4]                                          ;742 736IO IO
                                       |0493|8135|        [IO 4]                                          ;743 73614 IO
                                       |0493|8136|        [IO 4]                                          ;744 73620 IO
                                       |0493|8137|        [IO 4]                                          ;745 73624 IO
                                       |0493|8138|        [IO 4]                                          ;746 73630 IO
                                       |0493|8139|        [IO 4]                                          ;747 73634 IO
                                       |0493|8140|        [IO 4]                                          ;750 73640 IO
                                       |0493|8141|        [IO 4]                                          ;751 73644 IO
                                       |0493|8142|        [IO 4]                                          ;752 73650 IO
                                       |0493|8143|        [IO 4]                                          ;753 73654 IO
                                       |0493|8144|        [IO 4]                                          ;754 73660 IO
                                       |0493|8145|        [IO 4]                                          ;755 73664 IO
                                       |0493|8146|.ENDIF/FTCIS
                                       |0493|8147|        [IO 4]                                          ;756 73670 IO
3070,1304,1304,1304,1304,1304,1637,1304,0494|8148|        [IO 4]                                          ;757 73674 IO
3070,1304,1304,1304,1304,1304,1637,1304,0495|8149|        [IO 4]                                          ;760 73700 IO
3070,1304,1304,1304,1304,1304,1637,1304,0496|8150|        [IO 4]                                          ;761 73704 IO
3070,1304,1304,1304,1304,1304,1637,1304,0497|8151|        [IO 4]                                          ;762 73110 IO
3070,1304,1304,1304,1304,1304,1637,1304,0498|8152|        [IO 4]                                          ;763 73714 IO
3070,1304,1304,1304,1304,1304,1637,1304,0499|8153|        [IO 4]                                          ;764 73720 IO
3070,1304,1304,1304,1304,1304,1637,1304,0500|8154|        [IO 4]                                          ;765 73724 IO
3070,1304,1304,1304,1304,1304,1637,1304,0501|8155|        [IO 4]                                          ;766 73730 IO
3070,1304,1304,1304,1304,1304,1637,1304,0502|8156|        [IO 4]                                          ;767 73734 IO
3070,1304,1304,1304,1304,1304,1637,1304,0503|8157|        [IO 4]                                          ;770 73740 IO
3070,1304,1304,1304,1304,1304,1637,1304,0504|8158|        [IO 4]                                          ;771 73744 IO
3070,1304,1304,1304,1304,1304,1637,1304,0505|8159|        [IO 4]                                          ;772 73750 IO
3070,1304,1304,1304,1304,1304,1637,1304,0506|8160|        [IO 4]                                          ;773 73754 IO
3070,1304,1304,1304,1304,1304,1637,1304,0507|8161|        [IO 4]                                          ;774 73760 IO
3070,1304,1304,1304,1304,1304,1637,1304,0508|8162|        [IO 4]                                          ;775 73764 IO
3070,1304,1304,1304,1304,1304,1637,1304,0509|8163|        [IO 4]                                          ;776 73770 IO
3070,1304,1304,1304,1304,1304,1637,1304,0510|8164|        [IO 4]                                          ;777 73774 IO
3070,1304,1304,1304,1304,1304,1637,1304,0511|8165|
                                       |0511|8166|;END OF FILE
                                       |0511|8167|