|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.