Annotation of Gnu-Mach/linux/src/drivers/scsi/scripts.h, revision 1.1.1.1

1.1       root        1: /***********************************************************************
                      2: ;*     File Name : SCRIPTS.H                                          *
                      3: ;*     Description:SCRIPT language for NCR53c825A,875 SCRIPT processor*
                      4: ;*                                                                    *
                      5: ;***********************************************************************
                      6: 
                      7: ;==========================================================
                      8: ; NCR 53C810,53C815,53C820,53C825,53C825A,53C860,53C875
                      9: ; Script language definition for assembly programming
                     10: ;==========================================================
                     11: 
                     12: ;==========================================================
                     13: ;      DMA Command
                     14: ;==========================================================
                     15: */
                     16: #define DCMD_BLOCK_MOVE      0
                     17: #define DCMD_IO            0x040000000  /*;BIT30 */
                     18: #define DCMD_RD_WRT        0x040000000  /*;BIT30 */
                     19: #define DCMD_XFER_CTRL     0x080000000  /*;BIT31 */
                     20: #define DCMD_MEM_MOVE      0x0C0000000  /*;(BIT31+BIT30) */
                     21: #define DCMD_LOAD_STORE     0x0E0000000  /*;(BIT31+BIT30+BIT29) */
                     22: /*;==========================================================*/
                     23: #define INDIRECT_ADDR       0x20000000  /*;BIT29 */
                     24: #define TABLE_INDIRECT      0x10000000  /*;BIT28 */
                     25: #define BLOCK_MOVE          0x08000000  /*;BIT27 */
                     26: #define CHAIN_MOVE          0
                     27: /*; SCSI phase definition */
                     28: #define DATA_OUT_           0x00000000  /*;data out phase */
                     29: #define DATA_IN_            0x01000000  /*;BIT24           ; data in phase */
                     30: #define COMMAND_            0x02000000  /*;BIT25           ; command phase */
                     31: #define STATUS_             0x03000000  /*;(BIT25+BIT24)   ; status phase */
                     32: #define RESERVED_OUT        0x04000000  /*;BIT26 */
                     33: #define RESERVED_IN         0x05000000  /*;(BIT26+BIT24) */
                     34: #define MSG_OUT_            0x06000000  /*;(BIT26+BIT25)   ; message in phase */
                     35: #define MSG_IN_             0x07000000  /*;(BIT26+BIT25+BIT24);message out phase */
                     36: /*;----------------------------------------------------------*/
                     37: #define DCMD_SELECT         0x40000000  /*;DCMD_IO+0 */
                     38: #define DCMD_SELECT_ATN      0x41000000  /*;(DCMD_IO+BIT24) */
                     39: #define DCMD_WAIT_DISC      0x48000000  /*;(DCMD_IO+BIT27) */
                     40: #define DCMD_WAIT_RESEL      0x50000000  /*;(DCMD_IO+BIT28) */
                     41: #define DCMD_SET_CARRY      0x58000400  /*;(DCMD_IO+BIT28+BIT27+BIT10) */
                     42: #define DCMD_SET_ACK        0x58000040  /*;(DCMD_IO+BIT28+BIT27+BIT6) */
                     43: #define DCMD_SET_ATN        0x58000008  /*;(DCMD_IO+BIT28+BIT27+BIT3) */
                     44: #define DCMD_CLR_CARRY      0x60000400  /*;(DCMD_IO+BIT29+BIT10) */
                     45: #define DCMD_CLR_ACK        0x60000040  /*;(DCMD_IO+BIT29+BIT6) */
                     46: #define DCMD_CLR_ATN        0x60000008  /*;(DCMD_IO+BIT29+BIT3) */
                     47: #define RELATIVE_ADDR       0x04000000  /*;BIT26 */
                     48: #define IO_TABLE_INDIR      0x02000000  /*;BIT25 */
                     49: /*;----------------------------------------------------------*/
                     50: #define MOVE_FROM_SFBR      0x68000000  /*;(DCMD_RD_WRT+BIT29+BIT27) */
                     51: #define MOVE_TO_SFBR        0x70000000  /*;(DCMD_RD_WRT+BIT29+BIT28) */
                     52: #define RD_MODIFY_WRT       0x78000000  /*;(DCMD_RD_WRT+BIT29+BIT28+BIT27) */
                     53: #define OP_MOVE_DATA        0
                     54: #define OP_SHIFT_LEFT_C      0x01000000  /*;BIT24 */
                     55: #define OP_OR               0x02000000  /*;BIT25 */
                     56: #define OP_XOR              0x03000000  /*;(BIT25+BIT24) */
                     57: #define OP_AND              0x04000000  /*;BIT26 */
                     58: #define OP_SHIFT_RIGHT_C     0x05000000  /*;(BIT26+BIT24) */
                     59: #define OP_ADD_DATA         0x06000000  /*;(BIT26+BIT25) */
                     60: #define OP_ADD_DATA_C       0x07000000  /*;(BIT26+BIT25+BIT24) */
                     61: #define USE_SFBR            0x00800000  /*;BIT23 */
                     62: /*;----------------------------------------------------------*/
                     63: #define DCMD_JUMP           0x80000000  /*;DCMD_XFER_CTRL+0 */
                     64: #define DCMD_CALL           0x88000000  /*;(DCMD_XFER_CTRL+BIT27) */
                     65: #define DCMD_RETURN         0x90000000  /*;(DCMD_XFER_CTRL+BIT28) */
                     66: #define DCMD_INT            0x98000000  /*;(DCMD_XFER_CTRL+BIT28+BIT27) */
                     67: #define RELATIVE_           0x00800000  /*;BIT23 */
                     68: #define IF_CARRY            0x00200000  /*;BIT21 */
                     69: #define INT_ON_FLY_         0x00100000  /*;BIT20 */
                     70: #define IF_TRUE             0x00080000  /*;BIT19 */
                     71: #define IF_NOT              0
                     72: #define DATA_CMP            0x00040000  /*;BIT18 */
                     73: #define PHASE_CMP           0x00020000  /*;BIT17 */
                     74: #define WAIT_PHASE_VALID     0x00010000  /*;BIT16 */
                     75: /*;----------------------------------------------------------*/
                     76: #define DSA_RELATIVE        0x10000000  /*;BIT28 */
                     77: #define FLUSH_PREFETCH      0x02000000  /*;BIT25 */
                     78: #define DCMD_LOAD          0x0E1000000  /*;(DCMD_LOAD_STORE+BIT24) */
                     79: #define DCMD_STORE         0x0E0000000  /*;DCMD_LOAD_STORE */
                     80: /*
                     81: ;==========================================================
                     82: ; SCSI message EQUATES
                     83: ;==========================================================
                     84: */
                     85: #define CMD_COMPLETE        0
                     86: #define EXT_MSG             1
                     87: #define SAVE_PTR            2
                     88: #define RESTORE_PTR         3
                     89: #define DISCONNECTMSG       4
                     90: #define INITIATOR_ERR       5
                     91: #define ABORTMSG            6
                     92: #define MSG_REJECT          7
                     93: #define NOPMSG              8
                     94: #define MSG_PARITY          9
                     95: #define LINK_CMD_CPL        0x0a
                     96: #define LINK_CMD_FLAG       0x0b
                     97: #define RESET_DEVICE        0x0c
                     98: #define IDENTIFYMSG         0x80
                     99: #define SIMPLE_TAG          0x20
                    100: #define IGNORE_WIDE_RES      0x23
                    101: /*
                    102: ;==========================================================
                    103: ; Operation assumption
                    104: ; 1. If phase mismatch during Xfer PAD ==> do nothing
                    105: ;    Else compute FIXUP needed
                    106: ; 2. After phase mismatch ==> Set to Xfer PAD
                    107: ; 3. At disconnection ==> Modify return address
                    108: ; 4. 1st restore ptr after reselection is ignored
                    109: ; 5. If Xfer PAD is done ==> Error
                    110: ;==========================================================
                    111: */
                    112: /*     static  start_script
                    113:        static  reselected
                    114:        static  reselecttag
                    115:        static  select0
                    116:        static  select1
                    117:        static  check_phase
                    118:        static  status1_phase
                    119:        static  command_phase
                    120:        static  jump_table0
                    121:        static  jump_tableB
                    122:        static  din_phase
                    123:        static  din_phaseB
                    124:        static  din_pad_0
                    125:        static  din_pad_addrB
                    126:        static  dout_phase
                    127:        static  dout_phaseB
                    128:        static  dout_pad_0
                    129:        static  dout_pad_addrB
                    130:        static  jump_tablew
                    131:        static  jump_tableW
                    132:        static  din_phase1
                    133:        static  din_phaseW
                    134:        static  din_pad_1
                    135:        static  din_pad_addrW
                    136:        static  dout_phase1
                    137:        static  dout_phaseW
                    138:        static  dout_pad_1
                    139:        static  dout_pad_addrW
                    140:        static  mout_phase
                    141:        static  status_phase
                    142:        static  min_phase
                    143:        static  set_atn
                    144:        static  clr_atn
                    145:        static  end_script
                    146:        static  start_mov
                    147:        static  SrcPhysAddr
                    148:        static  DesPhysAddr
                    149: */
                    150: ULONG  start_script[]={
                    151: /*
                    152: ;==========================================================
                    153: ; Wait for reselection
                    154: ;==========================================================
                    155: */
                    156:        DCMD_WAIT_RESEL
                    157:        };
                    158: ULONG  jmp_select0[]={
                    159:        0       /* offset select0 */
                    160:        };
                    161: ULONG  reselected[]={
                    162:        RD_MODIFY_WRT+OP_OR+0x200+0x340000, /* (2 shl 8) or (__scratcha shl 16) */
                    163:        0,
                    164: 
                    165:        DCMD_INT+WAIT_PHASE_VALID+IF_NOT+PHASE_CMP+MSG_IN_,
                    166:        __RESELECTED,
                    167: 
                    168:        BLOCK_MOVE+MSG_IN_+1    /* ;move in ID byte */
                    169:        };
                    170: ULONG  ACB_msgin123_1[]={
                    171:        0,      /* offset ACB.msgin123,*/
                    172: 
                    173:        DCMD_INT+IF_TRUE,
                    174:        __RESELECTED1
                    175:        };
                    176: ULONG  reselecttag[]={
                    177:        DCMD_CLR_ACK,
                    178:        0,
                    179: 
                    180:        BLOCK_MOVE+MSG_IN_+2    /* ;move 2 msg bytes */
                    181:        };
                    182: ULONG  ACB_msgin123_2[]={
                    183:        0,      /* offset ACB.msgin123,*/
                    184: 
                    185:        DCMD_INT+IF_TRUE,
                    186:        __RESELECTEDT
                    187:        };
                    188: /*
                    189: ;==========================================================
                    190: ; Select
                    191: ; Case 1 : Only identify message is to be sent
                    192: ; Case 2 : Synchronous negotiation is requested
                    193: ;==========================================================
                    194: */
                    195: ULONG  select0[]={
                    196:        DCMD_INT+IF_TRUE,
                    197:        __SIGNAL
                    198:        };
                    199: ULONG  select1[]={                /* ; Select with ATN */
                    200: 
                    201:        DCMD_SELECT_ATN+IO_TABLE_INDIR  /* +offset SRB.__select ;4200h or 0100H */
                    202:        };
                    203: ULONG  jmp_reselected[]={
                    204:        0,      /* offset reselected, */
                    205: 
                    206:        DCMD_JUMP+WAIT_PHASE_VALID+IF_NOT+PHASE_CMP+MSG_OUT_
                    207:        };
                    208: ULONG  jmp_check_phase[]={
                    209:        0,      /* offset check_phase, */
                    210: 
                    211:        TABLE_INDIRECT+BLOCK_MOVE+MSG_OUT_
                    212:        };
                    213: ULONG  SRB_msgout0[]={
                    214:        0       /* offset SRB.__msgout0 */
                    215:        };
                    216: ULONG  check_phase[]={
                    217:        DCMD_RETURN+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    218:        0,
                    219: 
                    220:        DCMD_RETURN+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    221:        0
                    222:        };
                    223: ULONG  status1_phase[]={
                    224:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+STATUS_
                    225:        };
                    226: ULONG  jmp_status_phase[]={
                    227:        0,      /* offset status_phase,*/
                    228: 
                    229:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+COMMAND_
                    230:        };
                    231: ULONG  jmp_command_phase[]={
                    232:        0,      /* offset command_phase, */
                    233: 
                    234:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+MSG_IN_
                    235:        };
                    236: ULONG  jmp_min_phase[]={
                    237:        0,      /* offset min_phase,*/
                    238: 
                    239:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+MSG_OUT_
                    240:        };
                    241: ULONG  jmp_mout_phase[]={
                    242:        0,      /* offset mout_phase,*/
                    243: 
                    244:        DCMD_INT+IF_TRUE,
                    245:        __FATALERROR
                    246:        };
                    247: /*
                    248: ;==========================================================
                    249: ; Command phase
                    250: ;==========================================================
                    251: */
                    252: ULONG  command_phase[]={
                    253:        DCMD_CLR_ATN,
                    254:        0,
                    255:        TABLE_INDIRECT+BLOCK_MOVE+COMMAND_
                    256:        };
                    257: ULONG  SRB_command[]={
                    258:        0,      /* offset SRB.__command,*/
                    259: 
                    260:        DCMD_JUMP+IF_TRUE
                    261:        };
                    262: ULONG  jmp_check_phase1[]={
                    263:        0       /* offset check_phase */
                    264:        };
                    265: /*
                    266: ;==========================================================
                    267: ; Data phase jump table for 8 bit operation
                    268: ;==========================================================
                    269: */
                    270: ULONG  jmp_dio_phaseB[]={
                    271:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    272:        0,  /* offset din_phaseB+   0,*/
                    273: 
                    274:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    275:        0,  /* offset dout_phaseB+  0,*/
                    276: 
                    277:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    278:        0,  /* offset din_phaseB+   8,*/
                    279: 
                    280:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    281:        0,  /* offset dout_phaseB+  8,*/
                    282: 
                    283:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    284:        0,  /* offset din_phaseB+   16,*/
                    285: 
                    286:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    287:        0,  /* offset dout_phaseB+  16,*/
                    288: 
                    289:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    290:        0,  /* offset din_phaseB+   24,*/
                    291: 
                    292:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    293:        0,  /* offset dout_phaseB+  24,*/
                    294: 
                    295:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    296:        0,  /* offset din_phaseB+   32,*/
                    297: 
                    298:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    299:        0,  /* offset dout_phaseB+  32,*/
                    300: 
                    301:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    302:        0,  /* offset din_phaseB+   40,*/
                    303: 
                    304:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    305:        0,  /* offset dout_phaseB+  40,*/
                    306: 
                    307:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    308:        0,  /* offset din_phaseB+   48,*/
                    309: 
                    310:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    311:        0,  /* offset dout_phaseB+  48,*/
                    312: 
                    313:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    314:        0,  /* offset din_phaseB+   56,*/
                    315: 
                    316:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    317:        0,  /* offset dout_phaseB+  56,*/
                    318: 
                    319:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    320:        0,  /* offset din_phaseB+   64,*/
                    321: 
                    322:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    323:        0,  /* offset dout_phaseB+  64,*/
                    324: 
                    325:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    326:        0,  /* offset din_phaseB+   72,*/
                    327: 
                    328:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    329:        0,  /* offset dout_phaseB+  72,*/
                    330: 
                    331:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    332:        0,  /* offset din_phaseB+   80,*/
                    333: 
                    334:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    335:        0,  /* offset dout_phaseB+  80,*/
                    336: 
                    337:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    338:        0,  /* offset din_phaseB+   88,*/
                    339: 
                    340:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    341:        0,  /* offset dout_phaseB+  88,*/
                    342: 
                    343:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    344:        0,  /* offset din_phaseB+   96,*/
                    345: 
                    346:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    347:        0,  /* offset dout_phaseB+  96,*/
                    348: 
                    349:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    350:        0,  /* offset din_phaseB+   104,*/
                    351: 
                    352:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    353:        0,  /* offset dout_phaseB+  104,*/
                    354: 
                    355:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    356:        0,  /* offset din_phaseB+   112,*/
                    357: 
                    358:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    359:        0,  /* offset dout_phaseB+  112,*/
                    360: 
                    361:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    362:        0,  /* offset din_phaseB+   120,*/
                    363: 
                    364:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    365:        0,  /* offset dout_phaseB+  120,*/
                    366: 
                    367:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    368:        0,  /* offset din_phaseB+   0,*/
                    369: 
                    370:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    371:        0,  /* offset dout_phaseB+  0,*/
                    372: 
                    373:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    374:        0,  /* offset din_phaseB+   8,*/
                    375: 
                    376:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    377:        0,  /* offset dout_phaseB+  8,*/
                    378: 
                    379:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    380:        0,  /* offset din_phaseB+   16,*/
                    381: 
                    382:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    383:        0,  /* offset dout_phaseB+  16,*/
                    384: 
                    385:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    386:        0,  /* offset din_phaseB+   24,*/
                    387: 
                    388:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    389:        0,  /* offset dout_phaseB+  24,*/
                    390: 
                    391:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    392:        0,  /* offset din_phaseB+   32,*/
                    393: 
                    394:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    395:        0,  /* offset dout_phaseB+  32,*/
                    396: 
                    397:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    398:        0,  /* offset din_phaseB+   40,*/
                    399: 
                    400:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    401:        0,  /* offset dout_phaseB+  40,*/
                    402: 
                    403:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    404:        0,  /* offset din_phaseB+   48,*/
                    405: 
                    406:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    407:        0,  /* offset dout_phaseB+  48,*/
                    408: 
                    409:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    410:        0,  /* offset din_phaseB+   56,*/
                    411: 
                    412:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    413:        0,  /* offset dout_phaseB+  56,*/
                    414: 
                    415:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    416:        0,  /* offset din_phaseB+   64,*/
                    417: 
                    418:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    419:        0,  /* offset dout_phaseB+  64,*/
                    420: 
                    421:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    422:        0,  /* offset din_phaseB+   72,*/
                    423: 
                    424:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    425:        0,  /* offset dout_phaseB+  72,*/
                    426: 
                    427:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    428:        0,  /* offset din_phaseB+   80,*/
                    429: 
                    430:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    431:        0,  /* offset dout_phaseB+  80,*/
                    432: 
                    433:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    434:        0,  /* offset din_phaseB+   88,*/
                    435: 
                    436:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    437:        0,  /* offset dout_phaseB+  88,*/
                    438: 
                    439:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    440:        0,  /* offset din_phaseB+   96,*/
                    441: 
                    442:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    443:        0,  /* offset dout_phaseB+  96,*/
                    444: 
                    445:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    446:        0,  /* offset din_phaseB+   104,*/
                    447: 
                    448:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    449:        0,  /* offset dout_phaseB+  104,*/
                    450: 
                    451:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    452:        0,  /* offset din_phaseB+   112,*/
                    453: 
                    454:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    455:        0,  /* offset dout_phaseB+  112,*/
                    456: 
                    457:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    458:        0,  /* offset din_phaseB+   120,*/
                    459: 
                    460:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    461:        0,  /* offset dout_phaseB+  120,*/
                    462: 
                    463:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    464:        0,  /* offset din_phaseB+   128,*/
                    465: 
                    466:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    467:        0   /* offset dout_phaseB+  128 */
                    468:        };
                    469: ULONG  jump_table0[]={
                    470:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_
                    471:        };
                    472: ULONG  jmp_din_pad_0[]={
                    473:        0,      /* offset din_pad_0,*/
                    474: 
                    475:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_
                    476:        };
                    477: ULONG  jmp_dout_pad_0[]={
                    478:        0       /* offset dout_pad_0 */
                    479:        };
                    480: 
                    481: #define jump_tableB    jump_table0
                    482: /*
                    483: ;==========================================================
                    484: ; Data in phase
                    485: ;==========================================================
                    486: */
                    487: ULONG  din_phaseB[]={
                    488:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    489:        0, /* offset SRB.Segment0,*/
                    490:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    491:        0, /* offset SRB.Segment1,*/
                    492:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    493:        0, /* offset SRB.Segment2,*/
                    494:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    495:        0, /* offset SRB.Segment3,*/
                    496:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    497:        0, /* offset SRB.Segment4,*/
                    498:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    499:        0, /* offset SRB.Segment5,*/
                    500:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    501:        0, /* offset SRB.Segment6,*/
                    502:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    503:        0, /* offset SRB.Segment7,*/
                    504:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    505:        0, /* offset SRB.Segment8,*/
                    506:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    507:        0, /* offset SRB.Segment9,*/
                    508:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    509:        0, /* offset SRB.Segment10,*/
                    510:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    511:        0, /* offset SRB.Segment11,*/
                    512:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    513:        0, /* offset SRB.Segment12,*/
                    514:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    515:        0, /* offset SRB.Segment13,*/
                    516:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    517:        0, /* offset SRB.Segment14,*/
                    518:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    519:        0, /* offset SRB.Segment15,*/
                    520:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    521:        0, /* offset SRB.Segment0,*/
                    522:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    523:        0, /* offset SRB.Segment1,*/
                    524:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    525:        0, /* offset SRB.Segment2,*/
                    526:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    527:        0, /* offset SRB.Segment3,*/
                    528:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    529:        0, /* offset SRB.Segment4,*/
                    530:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    531:        0, /* offset SRB.Segment5,*/
                    532:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    533:        0, /* offset SRB.Segment6,*/
                    534:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    535:        0, /* offset SRB.Segment7,*/
                    536:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    537:        0, /* offset SRB.Segment8,*/
                    538:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    539:        0, /* offset SRB.Segment9,*/
                    540:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    541:        0, /* offset SRB.Segment10,*/
                    542:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    543:        0, /* offset SRB.Segment11,*/
                    544:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    545:        0, /* offset SRB.Segment12,*/
                    546:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    547:        0, /* offset SRB.Segment13,*/
                    548:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    549:        0, /* offset SRB.Segment14,*/
                    550:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    551:        0, /* offset SRB.Segment15,*/
                    552:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_,
                    553:        0, /* offset SRB.Segment16,*/
                    554: 
                    555:        RD_MODIFY_WRT+OP_OR+0x100+0x340000, /*;(1 shl 8) or (__scratcha shl 16)*/
                    556:        0,
                    557: 
                    558:        DCMD_JUMP+WAIT_PHASE_VALID+IF_NOT+PHASE_CMP+DATA_IN_
                    559:        };
                    560: ULONG  jmp_status1_phase[]={
                    561:        0       /* offset status1_phase */
                    562:        };
                    563: 
                    564: #define din_phase      din_phaseB
                    565: 
                    566: ULONG  din_pad_0[]={
                    567:        RD_MODIFY_WRT+OP_OR+0x340000+0x400,  /*;(4 shl 8) or (__scratcha shl 16)*/
                    568:        0
                    569:        };
                    570: ULONG  din_pad_addrB[]={
                    571:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_IN_
                    572:        };
                    573: ULONG  SRB_SegmentPad[]={
                    574:        0,      /* offset SRB.SegmentPad,*/
                    575: 
                    576:        DCMD_JUMP+IF_TRUE
                    577:        };
                    578: ULONG  jmp_din_pad_addrB[]={
                    579:        0       /* offset din_pad_addrB */
                    580:        };
                    581: /*
                    582: ;==========================================================
                    583: ; Data out phase
                    584: ;==========================================================
                    585: */
                    586: ULONG  dout_phaseB[]={
                    587:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    588:        0, /* offset SRB.Segment0,*/
                    589:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    590:        0, /* offset SRB.Segment1,*/
                    591:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    592:        0, /* offset SRB.Segment2,*/
                    593:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    594:        0, /* offset SRB.Segment3,*/
                    595:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    596:        0, /* offset SRB.Segment4,*/
                    597:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    598:        0, /* offset SRB.Segment5,*/
                    599:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    600:        0, /* offset SRB.Segment6,*/
                    601:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    602:        0, /* offset SRB.Segment7,*/
                    603:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    604:        0, /* offset SRB.Segment8,*/
                    605:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    606:        0, /* offset SRB.Segment9,*/
                    607:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    608:        0, /* offset SRB.Segment10,*/
                    609:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    610:        0, /* offset SRB.Segment11,*/
                    611:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    612:        0, /* offset SRB.Segment12,*/
                    613:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    614:        0, /* offset SRB.Segment13,*/
                    615:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    616:        0, /* offset SRB.Segment14,*/
                    617:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    618:        0, /* offset SRB.Segment15,*/
                    619:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    620:        0, /* offset SRB.Segment0,*/
                    621:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    622:        0, /* offset SRB.Segment1,*/
                    623:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    624:        0, /* offset SRB.Segment2,*/
                    625:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    626:        0, /* offset SRB.Segment3,*/
                    627:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    628:        0, /* offset SRB.Segment4,*/
                    629:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    630:        0, /* offset SRB.Segment5,*/
                    631:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    632:        0, /* offset SRB.Segment6,*/
                    633:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    634:        0, /* offset SRB.Segment7,*/
                    635:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    636:        0, /* offset SRB.Segment8,*/
                    637:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    638:        0, /* offset SRB.Segment9,*/
                    639:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    640:        0, /* offset SRB.Segment10,*/
                    641:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    642:        0, /* offset SRB.Segment11,*/
                    643:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    644:        0, /* offset SRB.Segment12,*/
                    645:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    646:        0, /* offset SRB.Segment13,*/
                    647:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    648:        0, /* offset SRB.Segment14,*/
                    649:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    650:        0, /* offset SRB.Segment15,*/
                    651:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                    652:        0, /* offset SRB.Segment16,*/
                    653: 
                    654:        RD_MODIFY_WRT+OP_OR+0x100+0x340000, /*;(1 shl 8) or (__scratcha shl 16)*/
                    655:        0,
                    656: 
                    657:        DCMD_JUMP+WAIT_PHASE_VALID+IF_NOT+PHASE_CMP+DATA_OUT_
                    658:        };
                    659: ULONG  jmp_status1_phase1[]={
                    660:        0       /* offset status1_phase */
                    661:        };
                    662: 
                    663: #define dout_phase     dout_phaseB
                    664: 
                    665: ULONG  dout_pad_0[]={
                    666:        RD_MODIFY_WRT+OP_OR+0x340000+0x400, /*;(4 shl 8) or (__scratcha shl 16)*/
                    667:        0
                    668:        };
                    669: ULONG  dout_pad_addrB[]={
                    670:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_
                    671:        };
                    672: ULONG  SRB_SegmentPad1[]={
                    673:        0,      /* offset SRB.SegmentPad,*/
                    674: 
                    675:        DCMD_JUMP+IF_TRUE
                    676:        };
                    677: ULONG  jmp_dout_pad_addrB[]={
                    678:        0       /* offset dout_pad_addrB */
                    679:        };
                    680: /*
                    681: ;==========================================================
                    682: ; Data phase jump table for WIDE SCSI operation
                    683: ;==========================================================
                    684: */
                    685: ULONG  jmp_dio_phaseW[]={
                    686: 
                    687:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    688:        0,  /* offset din_phaseW+   0,*/
                    689: 
                    690:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    691:        0,  /* offset dout_phaseW+  0,*/
                    692: 
                    693:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    694:        0,  /* offset din_phaseW+   8,*/
                    695: 
                    696:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    697:        0,  /* offset dout_phaseW+  8,*/
                    698: 
                    699:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    700:        0,  /* offset din_phaseW+  16,*/
                    701: 
                    702:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    703:        0,  /* offset dout_phaseW+ 16,*/
                    704: 
                    705:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    706:        0,  /* offset din_phaseW+  24,*/
                    707: 
                    708:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    709:        0,  /* offset dout_phaseW+ 24,*/
                    710: 
                    711:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    712:        0,  /* offset din_phaseW+  32,*/
                    713: 
                    714:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    715:        0,  /* offset dout_phaseW+ 32,*/
                    716: 
                    717:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    718:        0,  /* offset din_phaseW+  40,*/
                    719: 
                    720:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    721:        0,  /* offset dout_phaseW+ 40,*/
                    722: 
                    723:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    724:        0,  /* offset din_phaseW+  48,*/
                    725: 
                    726:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    727:        0,  /* offset dout_phaseW+ 48,*/
                    728: 
                    729:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    730:        0,  /* offset din_phaseW+  56,*/
                    731: 
                    732:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    733:        0,  /* offset dout_phaseW+ 56,*/
                    734: 
                    735:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    736:        0,  /* offset din_phaseW+  64,*/
                    737: 
                    738:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    739:        0,  /* offset dout_phaseW+ 64,*/
                    740: 
                    741:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    742:        0,  /* offset din_phaseW+  72,*/
                    743: 
                    744:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    745:        0,  /* offset dout_phaseW+ 72,*/
                    746: 
                    747:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    748:        0,  /* offset din_phaseW+  80,*/
                    749: 
                    750:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    751:        0,  /* offset dout_phaseW+ 80,*/
                    752: 
                    753:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    754:        0,  /* offset din_phaseW+  88,*/
                    755: 
                    756:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    757:        0,  /* offset dout_phaseW+ 88,*/
                    758: 
                    759:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    760:        0,  /* offset din_phaseW+  96,*/
                    761: 
                    762:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    763:        0,  /* offset dout_phaseW+ 96,*/
                    764: 
                    765:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    766:        0,  /* offset din_phaseW+  104,*/
                    767: 
                    768:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    769:        0,  /* offset dout_phaseW+ 104,*/
                    770: 
                    771:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    772:        0,  /* offset din_phaseW+  112,*/
                    773: 
                    774:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    775:        0,  /* offset dout_phaseW+ 112,*/
                    776: 
                    777:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    778:        0,  /* offset din_phaseW+  120,*/
                    779: 
                    780:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    781:        0,  /* offset dout_phaseW+ 120,*/
                    782: 
                    783:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    784:        0,  /* offset din_phaseW+   0,*/
                    785: 
                    786:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    787:        0,  /* offset dout_phaseW+  0,*/
                    788: 
                    789:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    790:        0,  /* offset din_phaseW+   8,*/
                    791: 
                    792:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    793:        0,  /* offset dout_phaseW+  8,*/
                    794: 
                    795:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    796:        0,  /* offset din_phaseW+  16,*/
                    797: 
                    798:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    799:        0,  /* offset dout_phaseW+ 16,*/
                    800: 
                    801:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    802:        0,  /* offset din_phaseW+  24,*/
                    803: 
                    804:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    805:        0,  /* offset dout_phaseW+ 24,*/
                    806: 
                    807:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    808:        0,  /* offset din_phaseW+  32,*/
                    809: 
                    810:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    811:        0,  /* offset dout_phaseW+ 32,*/
                    812: 
                    813:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    814:        0,  /* offset din_phaseW+  40,*/
                    815: 
                    816:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    817:        0,  /* offset dout_phaseW+ 40,*/
                    818: 
                    819:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    820:        0,  /* offset din_phaseW+  48,*/
                    821: 
                    822:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    823:        0,  /* offset dout_phaseW+ 48,*/
                    824: 
                    825:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    826:        0,  /* offset din_phaseW+  56,*/
                    827: 
                    828:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    829:        0,  /* offset dout_phaseW+ 56,*/
                    830: 
                    831:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    832:        0,  /* offset din_phaseW+  64,*/
                    833: 
                    834:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    835:        0,  /* offset dout_phaseW+ 64,*/
                    836: 
                    837:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    838:        0,  /* offset din_phaseW+  72,*/
                    839: 
                    840:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    841:        0,  /* offset dout_phaseW+ 72,*/
                    842: 
                    843:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    844:        0,  /* offset din_phaseW+  80,*/
                    845: 
                    846:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    847:        0,  /* offset dout_phaseW+ 80,*/
                    848: 
                    849:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    850:        0,  /* offset din_phaseW+  88,*/
                    851: 
                    852:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    853:        0,  /* offset dout_phaseW+ 88,*/
                    854: 
                    855:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    856:        0,  /* offset din_phaseW+  96,*/
                    857: 
                    858:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    859:        0,  /* offset dout_phaseW+ 96,*/
                    860: 
                    861:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    862:        0,  /* offset din_phaseW+  104,*/
                    863: 
                    864:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    865:        0,  /* offset dout_phaseW+ 104,*/
                    866: 
                    867:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    868:        0,  /* offset din_phaseW+  112,*/
                    869: 
                    870:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    871:        0,  /* offset dout_phaseW+ 112,*/
                    872: 
                    873:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    874:        0,  /* offset din_phaseW+  120,*/
                    875: 
                    876:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    877:        0,  /* offset dout_phaseW+ 120,*/
                    878: 
                    879:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_,
                    880:        0,  /* offset din_phaseW+  128,*/
                    881: 
                    882:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_,
                    883:        0   /* offset dout_phaseW+ 128 */
                    884:        };
                    885: ULONG  jump_tablew[]={
                    886:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_IN_
                    887:        };
                    888: ULONG  jmp_din_pad_1[]={
                    889:        0,      /* offset din_pad_1,*/
                    890: 
                    891:        DCMD_JUMP+WAIT_PHASE_VALID+IF_TRUE+PHASE_CMP+DATA_OUT_
                    892:        };
                    893: ULONG  jmp_dout_pad_1[]={
                    894:        0       /* offset dout_pad_1 */
                    895:        };
                    896: 
                    897: #define jump_tableW    jump_tablew
                    898: /*
                    899: ;==========================================================
                    900: ; Data in phase
                    901: ;==========================================================
                    902: */
                    903: ULONG  din_phaseW[]={
                    904:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    905:        0, /* offset SRB.Segment0,*/
                    906:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    907:        0, /* offset SRB.Segment1,*/
                    908:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    909:        0, /* offset SRB.Segment2,*/
                    910:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    911:        0, /* offset SRB.Segment3,*/
                    912:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    913:        0, /* offset SRB.Segment4,*/
                    914:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    915:        0, /* offset SRB.Segment5,*/
                    916:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    917:        0, /* offset SRB.Segment6,*/
                    918:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    919:        0, /* offset SRB.Segment7,*/
                    920:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    921:        0, /* offset SRB.Segment8,*/
                    922:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    923:        0, /* offset SRB.Segment9,*/
                    924:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    925:        0, /* offset SRB.Segment10,*/
                    926:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    927:        0, /* offset SRB.Segment11,*/
                    928:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    929:        0, /* offset SRB.Segment12,*/
                    930:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    931:        0, /* offset SRB.Segment13,*/
                    932:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    933:        0, /* offset SRB.Segment14,*/
                    934:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    935:        0, /* offset SRB.Segment15,*/
                    936:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    937:        0, /* offset SRB.Segment0,*/
                    938:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    939:        0, /* offset SRB.Segment1,*/
                    940:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    941:        0, /* offset SRB.Segment2,*/
                    942:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    943:        0, /* offset SRB.Segment3,*/
                    944:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    945:        0, /* offset SRB.Segment4,*/
                    946:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    947:        0, /* offset SRB.Segment5,*/
                    948:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    949:        0, /* offset SRB.Segment6,*/
                    950:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    951:        0, /* offset SRB.Segment7,*/
                    952:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    953:        0, /* offset SRB.Segment8,*/
                    954:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    955:        0, /* offset SRB.Segment9,*/
                    956:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    957:        0, /* offset SRB.Segment10,*/
                    958:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    959:        0, /* offset SRB.Segment11,*/
                    960:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    961:        0, /* offset SRB.Segment12,*/
                    962:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    963:        0, /* offset SRB.Segment13,*/
                    964:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    965:        0, /* offset SRB.Segment14,*/
                    966:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    967:        0, /* offset SRB.Segment15,*/
                    968:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_,
                    969:        0, /* offset SRB.Segment16,*/
                    970: 
                    971:        RD_MODIFY_WRT+OP_OR+0x340000+0x100, /*;(1 shl 8) or (__scratcha shl 16)*/
                    972:        0,
                    973: 
                    974:        DCMD_JUMP+WAIT_PHASE_VALID+IF_NOT+PHASE_CMP+DATA_IN_
                    975:        };
                    976: ULONG  jmp_status1_phase2[]={
                    977:        0       /* offset status1_phase */
                    978:        };
                    979: 
                    980: #define din_phase1     din_phaseW
                    981: 
                    982: ULONG  din_pad_1[]={
                    983:        RD_MODIFY_WRT+OP_OR+0x340000+0x400, /*;(4 shl 8) or (__scratcha shl 16)*/
                    984:        0
                    985:        };
                    986: ULONG  din_pad_addrW[]={
                    987:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_IN_
                    988:        };
                    989: ULONG  SRB_SegmentPad2[]={
                    990:        0,      /* offset SRB.SegmentPad,*/
                    991: 
                    992:        DCMD_JUMP+IF_TRUE
                    993:        };
                    994: ULONG  jmp_din_pad_addrW[]={
                    995:        0       /* offset din_pad_addrW */
                    996:        };
                    997: /*
                    998: ;==========================================================
                    999: ; Data out phase
                   1000: ;==========================================================
                   1001: */
                   1002: ULONG  dout_phaseW[]={
                   1003:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1004:        0, /* offset SRB.Segment0,*/
                   1005:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1006:        0, /* offset SRB.Segment1,*/
                   1007:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1008:        0, /* offset SRB.Segment2,*/
                   1009:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1010:        0, /* offset SRB.Segment3,*/
                   1011:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1012:        0, /* offset SRB.Segment4,*/
                   1013:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1014:        0, /* offset SRB.Segment5,*/
                   1015:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1016:        0, /* offset SRB.Segment6,*/
                   1017:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1018:        0, /* offset SRB.Segment7,*/
                   1019:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1020:        0, /* offset SRB.Segment8,*/
                   1021:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1022:        0, /* offset SRB.Segment9,*/
                   1023:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1024:        0, /* offset SRB.Segment10,*/
                   1025:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1026:        0, /* offset SRB.Segment11,*/
                   1027:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1028:        0, /* offset SRB.Segment12,*/
                   1029:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1030:        0, /* offset SRB.Segment13,*/
                   1031:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1032:        0, /* offset SRB.Segment14,*/
                   1033:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1034:        0, /* offset SRB.Segment15,*/
                   1035:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1036:        0, /* offset SRB.Segment0,*/
                   1037:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1038:        0, /* offset SRB.Segment1,*/
                   1039:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1040:        0, /* offset SRB.Segment2,*/
                   1041:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1042:        0, /* offset SRB.Segment3,*/
                   1043:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1044:        0, /* offset SRB.Segment4,*/
                   1045:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1046:        0, /* offset SRB.Segment5,*/
                   1047:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1048:        0, /* offset SRB.Segment6,*/
                   1049:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1050:        0, /* offset SRB.Segment7,*/
                   1051:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1052:        0, /* offset SRB.Segment8,*/
                   1053:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1054:        0, /* offset SRB.Segment9,*/
                   1055:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1056:        0, /* offset SRB.Segment10,*/
                   1057:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1058:        0, /* offset SRB.Segment11,*/
                   1059:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1060:        0, /* offset SRB.Segment12,*/
                   1061:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1062:        0, /* offset SRB.Segment13,*/
                   1063:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1064:        0, /* offset SRB.Segment14,*/
                   1065:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+CHAIN_MOVE+DATA_OUT_,
                   1066:        0, /* offset SRB.Segment15,*/
                   1067: /*;    18000000h or DATA_OUT_ */
                   1068:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_,
                   1069:        0, /* offset SRB.Segment16,*/
                   1070: 
                   1071:        RD_MODIFY_WRT+OP_OR+0x340000+0x100, /*;(1 shl 8) or (__scratcha shl 16)*/
                   1072:        0,
                   1073: 
                   1074:        DCMD_JUMP+WAIT_PHASE_VALID+IF_NOT+PHASE_CMP+DATA_OUT_
                   1075:        };
                   1076: ULONG  jmp_status1_phase3[]={
                   1077:        0       /* offset status1_phase */
                   1078:        };
                   1079: 
                   1080: #define dout_phase1    dout_phaseW
                   1081: 
                   1082: ULONG  dout_pad_1[]={
                   1083:        RD_MODIFY_WRT+OP_OR+0x340000+0x400, /*;(4 shl 8) or (__scratcha shl 16)*/
                   1084:        0
                   1085:        };
                   1086: ULONG  dout_pad_addrW[]={
                   1087:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+DATA_OUT_
                   1088:        };
                   1089: ULONG  SRB_SegmentPad3[]={
                   1090:        0,      /* offset SRB.SegmentPad,*/
                   1091: 
                   1092:        DCMD_JUMP+IF_TRUE
                   1093:        };
                   1094: ULONG  jmp_dout_pad_addrW[]={
                   1095:        0       /* offset dout_pad_addrW */
                   1096:        };
                   1097: /*
                   1098: ;==========================================================
                   1099: ; message out phase
                   1100: ;==========================================================
                   1101: */
                   1102: ULONG  mout_phase[]={
                   1103:        DCMD_SET_ATN,
                   1104:        0,
                   1105: 
                   1106:        DCMD_BLOCK_MOVE+TABLE_INDIRECT+BLOCK_MOVE+MSG_OUT_
                   1107:        };
                   1108: ULONG  SRB_msgout01[]={
                   1109:        0,      /* offset SRB.__msgout0,*/
                   1110: 
                   1111:        DCMD_JUMP+IF_TRUE
                   1112:        };
                   1113: ULONG  jmp_check_phase2[]={
                   1114:        0       /* offset check_phase */
                   1115:        };
                   1116: /*
                   1117: ;==========================================================
                   1118: ; Status phase process
                   1119: ;==========================================================
                   1120: */
                   1121: ULONG  status_phase[]={
                   1122:        DCMD_BLOCK_MOVE+BLOCK_MOVE+STATUS_+1
                   1123:        };
                   1124: ULONG  ACB_status[]={
                   1125:        0       /* offset ACB.status */
                   1126:        };
                   1127: /*
                   1128: ;==========================================================
                   1129: ; message in phase
                   1130: ;==========================================================
                   1131: */
                   1132: ULONG  min_phase[]={
                   1133:        DCMD_BLOCK_MOVE+BLOCK_MOVE+MSG_IN_+1
                   1134:        };
                   1135: ULONG  ACB_msgin123_3[]={
                   1136:        0,      /* offset ACB.msgin123,*/
                   1137: 
                   1138:        DCMD_JUMP+IF_NOT+DATA_CMP+CMD_COMPLETE
                   1139:        };
                   1140: ULONG  jmp_jump_msgok[]={
                   1141:        0       /* offset jump_msgok */
                   1142:        };
                   1143: /*
                   1144: ;==========================================================
                   1145: ; command complete message
                   1146: ;==========================================================
                   1147: */
                   1148: ULONG  msg__0[]={
                   1149:        RD_MODIFY_WRT+OP_AND+0x20000+0x7F00, /*;(7FH shl 8) or (__scntl2 shl 16)*/
                   1150:        0,
                   1151: 
                   1152:        DCMD_CLR_ACK,
                   1153:        0,
                   1154: 
                   1155:        DCMD_WAIT_DISC,
                   1156:        0,
                   1157: 
                   1158:        DCMD_INT+IF_TRUE,
                   1159:        __COMPLETE
                   1160:        };
                   1161: /*
                   1162: ;==========================================================
                   1163: ; Other message
                   1164: ;==========================================================
                   1165: */
                   1166: ULONG  jump_msgok[]={
                   1167:        DCMD_JUMP+IF_TRUE+DATA_CMP+SAVE_PTR
                   1168:        };
                   1169: ULONG  jmp_msg__a[]={
                   1170:        0,      /* offset msg__a,*/
                   1171: 
                   1172:        DCMD_JUMP+IF_TRUE+DATA_CMP+RESTORE_PTR
                   1173:        };
                   1174: ULONG  jmp_msg__3[]={
                   1175:        0,      /* offset msg__3,*/
                   1176: 
                   1177:        DCMD_JUMP+IF_TRUE+DATA_CMP+DISCONNECTMSG
                   1178:        };
                   1179: ULONG  jmp_msg__4[]={
                   1180:        0,      /* offset msg__4,*/
                   1181: 
                   1182:        DCMD_JUMP+IF_TRUE+DATA_CMP+EXT_MSG
                   1183:        };
                   1184: ULONG  jmp_msg__1[]={
                   1185:        0,      /* offset msg__1,*/
                   1186: 
                   1187:        DCMD_INT+IF_TRUE+DATA_CMP+MSG_REJECT,
                   1188:        __MSGREJECT,
                   1189: 
                   1190:        DCMD_JUMP+IF_TRUE+DATA_CMP+LINK_CMD_CPL
                   1191:        };
                   1192: ULONG  jmp_msg__a1[]={
                   1193:        0,      /* offset msg__a,*/
                   1194: 
                   1195:        DCMD_JUMP+IF_TRUE+DATA_CMP+LINK_CMD_FLAG
                   1196:        };
                   1197: ULONG  jmp_msg__a2[]={
                   1198:        0,      /* offset msg__a,*/
                   1199: 
                   1200:        DCMD_JUMP+IF_TRUE+DATA_CMP+IGNORE_WIDE_RES
                   1201:        };
                   1202: ULONG  jmp_msg__23[]={
                   1203:        0,      /* offset msg__23,*/
                   1204: 
                   1205:        DCMD_INT+IF_TRUE,
                   1206:        __MSGUNKNOWN
                   1207:        };
                   1208: /*
                   1209: ;==========================================================
                   1210: ; Extended message
                   1211: ;==========================================================
                   1212: */
                   1213: ULONG  msg__1[]={
                   1214:        DCMD_CLR_ACK,
                   1215:        0,
                   1216: 
                   1217:        DCMD_BLOCK_MOVE+BLOCK_MOVE+MSG_IN_+1   /*  ;ext msg len */
                   1218:        };
                   1219: ULONG  ACB_msgin123_4[]={
                   1220:        0,      /* offset ACB.msgin123,*/
                   1221: 
                   1222:        DCMD_JUMP+IF_TRUE+DATA_CMP+3
                   1223:        };
                   1224: ULONG  jmp_msg___3[]={
                   1225:        0,      /* offset msg___3,*/
                   1226: 
                   1227:        DCMD_JUMP+IF_TRUE+DATA_CMP+2
                   1228:        };
                   1229: ULONG  jmp_msg___2[]={
                   1230:        0,      /* offset msg___2,*/
                   1231: 
                   1232:        DCMD_INT+IF_TRUE,
                   1233:        __MSGEXTEND
                   1234:        };
                   1235: 
                   1236: ULONG  msg___3[]={
                   1237:        DCMD_CLR_ACK,
                   1238:        0,
                   1239: 
                   1240:        DCMD_BLOCK_MOVE+BLOCK_MOVE+MSG_IN_+3
                   1241:        };
                   1242: ULONG  ACB_msgin123_5[]={
                   1243:        0,      /* offset ACB.msgin123,*/
                   1244: 
                   1245:        DCMD_INT+IF_TRUE,
                   1246:        __MSGSYNC
                   1247:        };
                   1248: 
                   1249: ULONG  msg___2[]={
                   1250:        DCMD_CLR_ACK,
                   1251:        0,
                   1252: 
                   1253:        DCMD_BLOCK_MOVE+BLOCK_MOVE+MSG_IN_+2
                   1254:        };
                   1255: ULONG  ACB_msgin123_6[]={
                   1256:        0,      /* offset ACB.msgin123,*/
                   1257: 
                   1258:        DCMD_INT+IF_TRUE,
                   1259:        __MSGWIDE
                   1260:        };
                   1261: /*
                   1262: ;############################################################
                   1263: ; for synchronous negotiation
                   1264: ; 1. Active  ==> INT3, restart at data__1_2
                   1265: ; 2. Passive ==> INT3, prepare message out, restart at data__1_1
                   1266: ; 3. Disable ==> INT3, prepare message out, restart at data__1_1
                   1267: ;############################################################
                   1268: */
                   1269: ULONG  set_atn[]={
                   1270:        DCMD_SET_ATN,
                   1271:        0
                   1272:        };
                   1273: ULONG  msg__a[]={
                   1274:        DCMD_CLR_ACK,
                   1275:        0,
                   1276: 
                   1277:        DCMD_JUMP+IF_TRUE
                   1278:        };
                   1279: ULONG  jmp_check_phase3[]={
                   1280:        0       /* offset check_phase */
                   1281:        };
                   1282: 
                   1283: ULONG  msg__23[]={        /*    ; ignore wide residue */
                   1284:        DCMD_CLR_ACK,
                   1285:        0,
                   1286: 
                   1287:        DCMD_BLOCK_MOVE+BLOCK_MOVE+MSG_IN_+1
                   1288:        };
                   1289: ULONG  ACB_msgin123_7[]={
                   1290:        0,      /* offset ACB.msgin123,*/
                   1291: 
                   1292:        DCMD_CLR_ACK,
                   1293:        0,
                   1294: 
                   1295:        DCMD_JUMP+IF_TRUE
                   1296:        };
                   1297: ULONG  jmp_check_phase4[]={
                   1298:        0       /* offset check_phase */
                   1299:        };
                   1300: 
                   1301: ULONG  msg__3[]={
                   1302:        DCMD_CLR_ACK,
                   1303:        0,
                   1304: 
                   1305:        DCMD_JUMP+IF_TRUE
                   1306:        };
                   1307: ULONG  jmp_check_phase5[]={
                   1308:        0       /* offset check_phase */
                   1309:        };
                   1310: 
                   1311: ULONG  msg__4[]={         /*    ; disconnect */
                   1312:        RD_MODIFY_WRT+OP_AND+0x20000+0x7F00, /*;(7FH shl 8) or (__scntl2 shl 16)*/
                   1313:        0,
                   1314: 
                   1315:        DCMD_CLR_ACK,
                   1316:        0,
                   1317: 
                   1318:        DCMD_WAIT_DISC,
                   1319:        0,
                   1320: 
                   1321:        DCMD_INT+IF_TRUE,
                   1322:        __DISCONNECTED
                   1323:        };
                   1324: 
                   1325: ULONG  clr_atn[]={
                   1326:        DCMD_CLR_ATN,
                   1327:        0,
                   1328: 
                   1329:        DCMD_JUMP+IF_TRUE
                   1330:        };
                   1331: ULONG  jmp_check_phase6[]={
                   1332:        0       /* offset check_phase */
                   1333:        };
                   1334: /*
                   1335: ;==========================================================
                   1336: ; Used for script operation
                   1337: ;==========================================================
                   1338: */
                   1339: ULONG  start_mov[]={
                   1340: /*;      DCMD_MEM_MOVE+(OFFSET DGROUP:end_script - OFFSET DGROUP:start_script)   ;Memory move SCRIPTS instruction*/
                   1341:        DCMD_MEM_MOVE+0x1000      /*;Memory move SCRIPTS instruction ( 4K )*/
                   1342:        };
                   1343: ULONG  SrcPhysAddr[]={
                   1344:        0               /*; source */
                   1345:        };
                   1346: ULONG  DesPhysAddr[]={
                   1347:        0,              /*; destination */
                   1348: 
                   1349:        DCMD_INT+IF_TRUE, /*; script interrupt, */
                   1350:        0,
                   1351: 
                   1352:        DCMD_INT+IF_NOT,  /*; script interrupt */
                   1353:        0
                   1354:        };
                   1355: ULONG  end_script[]={0};
                   1356: /***********************************************************************/
                   1357: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.