Linux Audio

Check our new training course

Loading...
v3.1
   1/* DO NOT EDIT - Generated automatically by script_asm.pl */
   2static u32 SCRIPT[] = {
   3/*
   4; Script for the NCR (or symbios) 53c700 and 53c700-66 chip
   5;
   6; Copyright (C) 2001 James.Bottomley@HansenPartnership.com
   7;;-----------------------------------------------------------------------------
   8;;  
   9;;  This program is free software; you can redistribute it and/or modify
  10;;  it under the terms of the GNU General Public License as published by
  11;;  the Free Software Foundation; either version 2 of the License, or
  12;;  (at your option) any later version.
  13;;
  14;;  This program is distributed in the hope that it will be useful,
  15;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17;;  GNU General Public License for more details.
  18;;
  19;;  You should have received a copy of the GNU General Public License
  20;;  along with this program; if not, write to the Free Software
  21;;  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22;;
  23;;-----------------------------------------------------------------------------
  24;
  25; This script is designed to be modified for the particular command in
  26; operation.  The particular variables pertaining to the commands are:
  27;
  28ABSOLUTE	Device_ID = 0		; ID of target for command
  29ABSOLUTE	MessageCount = 0	; Number of bytes in message
  30ABSOLUTE	MessageLocation = 0	; Addr of message
  31ABSOLUTE	CommandCount = 0	; Number of bytes in command
  32ABSOLUTE	CommandAddress = 0	; Addr of Command
  33ABSOLUTE	StatusAddress = 0	; Addr to receive status return
  34ABSOLUTE	ReceiveMsgAddress = 0	; Addr to receive msg
  35;
  36; This is the magic component for handling scatter-gather.  Each of the
  37; SG components is preceded by a script fragment which moves the
  38; necessary amount of data and jumps to the next SG segment.  The final
  39; SG segment jumps back to .  However, this address is the first SG script
  40; segment.
  41;
  42ABSOLUTE	SGScriptStartAddress = 0
  43
  44; The following represent status interrupts we use 3 hex digits for
  45; this: 0xPRS where 
  46
  47; P:
  48ABSOLUTE	AFTER_SELECTION 	= 0x100
  49ABSOLUTE	BEFORE_CMD 		= 0x200
  50ABSOLUTE	AFTER_CMD 		= 0x300
  51ABSOLUTE	AFTER_STATUS 		= 0x400
  52ABSOLUTE	AFTER_DATA_IN		= 0x500
  53ABSOLUTE	AFTER_DATA_OUT		= 0x600
  54ABSOLUTE	DURING_DATA_IN		= 0x700
  55
  56; R:
  57ABSOLUTE	NOT_MSG_OUT 		= 0x10
  58ABSOLUTE	UNEXPECTED_PHASE 	= 0x20
  59ABSOLUTE	NOT_MSG_IN 		= 0x30
  60ABSOLUTE	UNEXPECTED_MSG		= 0x40
  61ABSOLUTE	MSG_IN			= 0x50
  62ABSOLUTE	SDTR_MSG_R		= 0x60
  63ABSOLUTE	REJECT_MSG_R		= 0x70
  64ABSOLUTE	DISCONNECT		= 0x80
  65ABSOLUTE	MSG_OUT			= 0x90
  66ABSOLUTE	WDTR_MSG_R		= 0xA0
  67
  68; S:
  69ABSOLUTE	GOOD_STATUS 		= 0x1
  70
  71; Combinations, since the script assembler can't process |
  72ABSOLUTE	NOT_MSG_OUT_AFTER_SELECTION = 0x110
  73ABSOLUTE	UNEXPECTED_PHASE_BEFORE_CMD = 0x220
  74ABSOLUTE	UNEXPECTED_PHASE_AFTER_CMD = 0x320
  75ABSOLUTE	NOT_MSG_IN_AFTER_STATUS = 0x430
  76ABSOLUTE	GOOD_STATUS_AFTER_STATUS = 0x401
  77ABSOLUTE	UNEXPECTED_PHASE_AFTER_DATA_IN = 0x520
  78ABSOLUTE	UNEXPECTED_PHASE_AFTER_DATA_OUT = 0x620
  79ABSOLUTE	UNEXPECTED_MSG_BEFORE_CMD = 0x240
  80ABSOLUTE	MSG_IN_BEFORE_CMD = 0x250
  81ABSOLUTE	MSG_IN_AFTER_CMD = 0x350
  82ABSOLUTE	SDTR_MSG_BEFORE_CMD = 0x260
  83ABSOLUTE	REJECT_MSG_BEFORE_CMD = 0x270
  84ABSOLUTE	DISCONNECT_AFTER_CMD = 0x380
  85ABSOLUTE	SDTR_MSG_AFTER_CMD = 0x360
  86ABSOLUTE	WDTR_MSG_AFTER_CMD = 0x3A0
  87ABSOLUTE	MSG_IN_AFTER_STATUS = 0x440
  88ABSOLUTE	DISCONNECT_AFTER_DATA = 0x580
  89ABSOLUTE	MSG_IN_AFTER_DATA_IN = 0x550
  90ABSOLUTE	MSG_IN_AFTER_DATA_OUT = 0x650
  91ABSOLUTE	MSG_OUT_AFTER_DATA_IN = 0x590
  92ABSOLUTE	DATA_IN_AFTER_DATA_IN = 0x5a0
  93ABSOLUTE	MSG_IN_DURING_DATA_IN = 0x750
  94ABSOLUTE	DISCONNECT_DURING_DATA = 0x780
  95
  96;
  97; Other interrupt conditions
  98; 
  99ABSOLUTE	RESELECTED_DURING_SELECTION = 0x1000
 100ABSOLUTE	COMPLETED_SELECTION_AS_TARGET = 0x1001
 101ABSOLUTE	RESELECTION_IDENTIFIED = 0x1003
 102;
 103; Fatal interrupt conditions.  If you add to this, also add to the
 104; array of corresponding messages
 105;
 106ABSOLUTE	FATAL = 0x2000
 107ABSOLUTE	FATAL_UNEXPECTED_RESELECTION_MSG = 0x2000
 108ABSOLUTE	FATAL_SEND_MSG = 0x2001
 109ABSOLUTE	FATAL_NOT_MSG_IN_AFTER_SELECTION = 0x2002
 110ABSOLUTE	FATAL_ILLEGAL_MSG_LENGTH = 0x2003
 111
 112ABSOLUTE	DEBUG_INTERRUPT	= 0x3000
 113ABSOLUTE	DEBUG_INTERRUPT1 = 0x3001
 114ABSOLUTE	DEBUG_INTERRUPT2 = 0x3002
 115ABSOLUTE	DEBUG_INTERRUPT3 = 0x3003
 116ABSOLUTE	DEBUG_INTERRUPT4 = 0x3004
 117ABSOLUTE	DEBUG_INTERRUPT5 = 0x3005
 118ABSOLUTE	DEBUG_INTERRUPT6 = 0x3006
 119
 120
 121;
 122; SCSI Messages we interpret in the script
 123;
 124ABSOLUTE	COMMAND_COMPLETE_MSG	= 0x00
 125ABSOLUTE	EXTENDED_MSG		= 0x01
 126ABSOLUTE	SDTR_MSG		= 0x01
 127ABSOLUTE	SAVE_DATA_PTRS_MSG	= 0x02
 128ABSOLUTE	RESTORE_DATA_PTRS_MSG	= 0x03
 129ABSOLUTE	WDTR_MSG		= 0x03
 130ABSOLUTE	DISCONNECT_MSG		= 0x04
 131ABSOLUTE	REJECT_MSG		= 0x07
 132ABSOLUTE	PARITY_ERROR_MSG	= 0x09
 133ABSOLUTE	SIMPLE_TAG_MSG		= 0x20
 134ABSOLUTE	IDENTIFY_MSG		= 0x80
 135ABSOLUTE	IDENTIFY_MSG_MASK	= 0x7F
 136ABSOLUTE	TWO_BYTE_MSG		= 0x20
 137ABSOLUTE	TWO_BYTE_MSG_MASK	= 0x0F
 138
 139; This is where the script begins
 140
 141ENTRY	StartUp
 142
 143StartUp:
 144	SELECT	ATN Device_ID, Reselect
 145
 146at 0x00000000 : */	0x41000000,0x00000020,
 147/*
 148	JUMP	Finish, WHEN STATUS
 149
 150at 0x00000002 : */	0x830b0000,0x00000460,
 151/*
 152	JUMP	SendIdentifyMsg, IF MSG_OUT
 153
 154at 0x00000004 : */	0x860a0000,0x000001b0,
 155/*
 156	INT	NOT_MSG_OUT_AFTER_SELECTION
 157
 158at 0x00000006 : */	0x98080000,0x00000110,
 159/*
 160
 161Reselect:
 162	WAIT	RESELECT SelectedAsTarget
 163
 164at 0x00000008 : */	0x50000000,0x00000058,
 165/*
 166	INT	RESELECTED_DURING_SELECTION, WHEN MSG_IN
 167
 168at 0x0000000a : */	0x9f0b0000,0x00001000,
 169/*
 170	INT	FATAL_NOT_MSG_IN_AFTER_SELECTION
 171
 172at 0x0000000c : */	0x98080000,0x00002002,
 173/*
 174
 175	ENTRY	GetReselectionData
 176GetReselectionData:
 177	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 178
 179at 0x0000000e : */	0x0f000001,0x00000000,
 180/*
 181	INT	RESELECTION_IDENTIFIED
 182
 183at 0x00000010 : */	0x98080000,0x00001003,
 184/*
 185
 186	ENTRY	GetReselectionWithTag
 187GetReselectionWithTag:
 188	MOVE	3, ReceiveMsgAddress, WHEN MSG_IN
 189
 190at 0x00000012 : */	0x0f000003,0x00000000,
 191/*
 192	INT	RESELECTION_IDENTIFIED
 193
 194at 0x00000014 : */	0x98080000,0x00001003,
 195/*
 196	
 197	ENTRY	SelectedAsTarget
 198SelectedAsTarget:
 199; Basically tell the selecting device that there's nothing here
 200	SET	TARGET
 201
 202at 0x00000016 : */	0x58000200,0x00000000,
 203/*
 204	DISCONNECT
 205
 206at 0x00000018 : */	0x48000000,0x00000000,
 207/*
 208	CLEAR	TARGET
 209
 210at 0x0000001a : */	0x60000200,0x00000000,
 211/*
 212	INT	COMPLETED_SELECTION_AS_TARGET
 213
 214at 0x0000001c : */	0x98080000,0x00001001,
 215/*
 216;
 217; These are the messaging entries
 218;
 219; Send a message.  Message count should be correctly patched
 220	ENTRY	SendMessage
 221SendMessage:
 222	MOVE	MessageCount, MessageLocation, WHEN MSG_OUT
 223
 224at 0x0000001e : */	0x0e000000,0x00000000,
 225/*
 226ResumeSendMessage:
 227	RETURN,	WHEN NOT MSG_OUT
 228
 229at 0x00000020 : */	0x96030000,0x00000000,
 230/*
 231	INT	FATAL_SEND_MSG
 232
 233at 0x00000022 : */	0x98080000,0x00002001,
 234/*
 235
 236	ENTRY	SendMessagePhaseMismatch
 237SendMessagePhaseMismatch:
 238	CLEAR	ACK
 239
 240at 0x00000024 : */	0x60000040,0x00000000,
 241/*
 242	JUMP	ResumeSendMessage
 243
 244at 0x00000026 : */	0x80080000,0x00000080,
 245/*
 246;
 247; Receive a message.  Need to identify the message to
 248; receive it correctly
 249	ENTRY	ReceiveMessage
 250ReceiveMessage:
 251	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 252
 253at 0x00000028 : */	0x0f000001,0x00000000,
 254/*
 255;
 256; Use this entry if we've just tried to look at the first byte
 257; of the message and want to process it further
 258ProcessReceiveMessage:
 259	JUMP	ReceiveExtendedMessage, IF EXTENDED_MSG
 260
 261at 0x0000002a : */	0x800c0001,0x000000d0,
 262/*
 263	RETURN,	IF NOT TWO_BYTE_MSG, AND MASK TWO_BYTE_MSG_MASK
 264
 265at 0x0000002c : */	0x90040f20,0x00000000,
 266/*
 267	CLEAR	ACK
 268
 269at 0x0000002e : */	0x60000040,0x00000000,
 270/*
 271	MOVE	1, ReceiveMsgAddress + 1, WHEN MSG_IN
 272
 273at 0x00000030 : */	0x0f000001,0x00000001,
 274/*
 275	RETURN
 276
 277at 0x00000032 : */	0x90080000,0x00000000,
 278/*
 279ReceiveExtendedMessage:
 280	CLEAR	ACK
 281
 282at 0x00000034 : */	0x60000040,0x00000000,
 283/*
 284	MOVE	1, ReceiveMsgAddress + 1, WHEN MSG_IN
 285
 286at 0x00000036 : */	0x0f000001,0x00000001,
 287/*
 288	JUMP	Receive1Byte, IF 0x01
 289
 290at 0x00000038 : */	0x800c0001,0x00000110,
 291/*
 292	JUMP	Receive2Byte, IF 0x02
 293
 294at 0x0000003a : */	0x800c0002,0x00000128,
 295/*
 296	JUMP	Receive3Byte, IF 0x03
 297
 298at 0x0000003c : */	0x800c0003,0x00000140,
 299/*
 300	JUMP	Receive4Byte, IF 0x04
 301
 302at 0x0000003e : */	0x800c0004,0x00000158,
 303/*
 304	JUMP	Receive5Byte, IF 0x05
 305
 306at 0x00000040 : */	0x800c0005,0x00000170,
 307/*
 308	INT	FATAL_ILLEGAL_MSG_LENGTH
 309
 310at 0x00000042 : */	0x98080000,0x00002003,
 311/*
 312Receive1Byte:
 313	CLEAR	ACK
 314
 315at 0x00000044 : */	0x60000040,0x00000000,
 316/*
 317	MOVE	1, ReceiveMsgAddress + 2, WHEN MSG_IN
 318
 319at 0x00000046 : */	0x0f000001,0x00000002,
 320/*
 321	RETURN
 322
 323at 0x00000048 : */	0x90080000,0x00000000,
 324/*
 325Receive2Byte:
 326	CLEAR	ACK
 327
 328at 0x0000004a : */	0x60000040,0x00000000,
 329/*
 330	MOVE	2, ReceiveMsgAddress + 2, WHEN MSG_IN
 331
 332at 0x0000004c : */	0x0f000002,0x00000002,
 333/*
 334	RETURN
 335
 336at 0x0000004e : */	0x90080000,0x00000000,
 337/*
 338Receive3Byte:
 339	CLEAR	ACK
 340
 341at 0x00000050 : */	0x60000040,0x00000000,
 342/*
 343	MOVE	3, ReceiveMsgAddress + 2, WHEN MSG_IN
 344
 345at 0x00000052 : */	0x0f000003,0x00000002,
 346/*
 347	RETURN
 348
 349at 0x00000054 : */	0x90080000,0x00000000,
 350/*
 351Receive4Byte:
 352	CLEAR	ACK
 353
 354at 0x00000056 : */	0x60000040,0x00000000,
 355/*
 356	MOVE	4, ReceiveMsgAddress + 2, WHEN MSG_IN
 357
 358at 0x00000058 : */	0x0f000004,0x00000002,
 359/*
 360	RETURN
 361
 362at 0x0000005a : */	0x90080000,0x00000000,
 363/*
 364Receive5Byte:
 365	CLEAR	ACK
 366
 367at 0x0000005c : */	0x60000040,0x00000000,
 368/*
 369	MOVE	5, ReceiveMsgAddress + 2, WHEN MSG_IN
 370
 371at 0x0000005e : */	0x0f000005,0x00000002,
 372/*
 373	RETURN
 374
 375at 0x00000060 : */	0x90080000,0x00000000,
 376/*
 377;
 378; Come here from the message processor to ignore the message
 379;
 380	ENTRY	IgnoreMessage
 381IgnoreMessage:
 382	CLEAR	ACK
 383
 384at 0x00000062 : */	0x60000040,0x00000000,
 385/*
 386	RETURN
 387
 388at 0x00000064 : */	0x90080000,0x00000000,
 389/*
 390;
 391; Come here to send a reply to a message
 392;
 393	ENTRY	SendMessageWithATN
 394SendMessageWithATN:
 395	SET	ATN
 396
 397at 0x00000066 : */	0x58000008,0x00000000,
 398/*
 399	CLEAR	ACK
 400
 401at 0x00000068 : */	0x60000040,0x00000000,
 402/*
 403	JUMP	SendMessage
 404
 405at 0x0000006a : */	0x80080000,0x00000078,
 406/*
 407
 408SendIdentifyMsg:
 409	CALL	SendMessage
 410
 411at 0x0000006c : */	0x88080000,0x00000078,
 412/*
 413	CLEAR	ATN
 414
 415at 0x0000006e : */	0x60000008,0x00000000,
 416/*
 417
 418IgnoreMsgBeforeCommand:
 419	CLEAR	ACK
 420
 421at 0x00000070 : */	0x60000040,0x00000000,
 422/*
 423	ENTRY	SendCommand
 424SendCommand:
 425	JUMP	Finish, WHEN STATUS
 426
 427at 0x00000072 : */	0x830b0000,0x00000460,
 428/*
 429	JUMP	MsgInBeforeCommand, IF MSG_IN
 430
 431at 0x00000074 : */	0x870a0000,0x000002c0,
 432/*
 433	INT	UNEXPECTED_PHASE_BEFORE_CMD, IF NOT CMD
 434
 435at 0x00000076 : */	0x9a020000,0x00000220,
 436/*
 437	MOVE	CommandCount, CommandAddress, WHEN CMD
 438
 439at 0x00000078 : */	0x0a000000,0x00000000,
 440/*
 441ResumeSendCommand:
 442	JUMP	Finish, WHEN STATUS
 443
 444at 0x0000007a : */	0x830b0000,0x00000460,
 445/*
 446	JUMP	MsgInAfterCmd, IF MSG_IN
 447
 448at 0x0000007c : */	0x870a0000,0x00000248,
 449/*
 450	JUMP	DataIn, IF DATA_IN
 451
 452at 0x0000007e : */	0x810a0000,0x000002f8,
 453/*
 454	JUMP	DataOut, IF DATA_OUT
 455
 456at 0x00000080 : */	0x800a0000,0x00000338,
 457/*
 458	INT	UNEXPECTED_PHASE_AFTER_CMD
 459
 460at 0x00000082 : */	0x98080000,0x00000320,
 461/*
 462
 463IgnoreMsgDuringData:
 464	CLEAR	ACK
 465
 466at 0x00000084 : */	0x60000040,0x00000000,
 467/*
 468	; fall through to MsgInDuringData
 469
 470Entry MsgInDuringData
 471MsgInDuringData:
 472;
 473; Could be we have nothing more to transfer
 474;
 475	JUMP	Finish, WHEN STATUS
 476
 477at 0x00000086 : */	0x830b0000,0x00000460,
 478/*
 479	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 480
 481at 0x00000088 : */	0x0f000001,0x00000000,
 482/*
 483	JUMP	DisconnectDuringDataIn, IF DISCONNECT_MSG
 484
 485at 0x0000008a : */	0x800c0004,0x00000398,
 486/*
 487	JUMP	IgnoreMsgDuringData, IF SAVE_DATA_PTRS_MSG
 488
 489at 0x0000008c : */	0x800c0002,0x00000210,
 490/*
 491	JUMP	IgnoreMsgDuringData, IF RESTORE_DATA_PTRS_MSG
 492
 493at 0x0000008e : */	0x800c0003,0x00000210,
 494/*
 495	INT	MSG_IN_DURING_DATA_IN
 496
 497at 0x00000090 : */	0x98080000,0x00000750,
 498/*
 499
 500MsgInAfterCmd:
 501	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 502
 503at 0x00000092 : */	0x0f000001,0x00000000,
 504/*
 505	JUMP	DisconnectAfterCmd, IF DISCONNECT_MSG
 506
 507at 0x00000094 : */	0x800c0004,0x00000298,
 508/*
 509	JUMP	IgnoreMsgInAfterCmd, IF SAVE_DATA_PTRS_MSG
 510
 511at 0x00000096 : */	0x800c0002,0x00000288,
 512/*
 513	JUMP	IgnoreMsgInAfterCmd, IF RESTORE_DATA_PTRS_MSG
 514
 515at 0x00000098 : */	0x800c0003,0x00000288,
 516/*
 517	CALL	ProcessReceiveMessage
 518
 519at 0x0000009a : */	0x88080000,0x000000a8,
 520/*
 521	INT	MSG_IN_AFTER_CMD
 522
 523at 0x0000009c : */	0x98080000,0x00000350,
 524/*
 525	CLEAR	ACK
 526
 527at 0x0000009e : */	0x60000040,0x00000000,
 528/*
 529	JUMP	ResumeSendCommand
 530
 531at 0x000000a0 : */	0x80080000,0x000001e8,
 532/*
 533
 534IgnoreMsgInAfterCmd:
 535	CLEAR	ACK
 536
 537at 0x000000a2 : */	0x60000040,0x00000000,
 538/*
 539	JUMP	ResumeSendCommand
 540
 541at 0x000000a4 : */	0x80080000,0x000001e8,
 542/*
 543
 544DisconnectAfterCmd:
 545	CLEAR	ACK
 546
 547at 0x000000a6 : */	0x60000040,0x00000000,
 548/*
 549	WAIT	DISCONNECT
 550
 551at 0x000000a8 : */	0x48000000,0x00000000,
 552/*
 553	ENTRY	Disconnect1
 554Disconnect1:
 555	INT	DISCONNECT_AFTER_CMD
 556
 557at 0x000000aa : */	0x98080000,0x00000380,
 558/*
 559	ENTRY	Disconnect2
 560Disconnect2:
 561; We return here after a reselection
 562	CLEAR	ACK
 563
 564at 0x000000ac : */	0x60000040,0x00000000,
 565/*
 566	JUMP	ResumeSendCommand
 567
 568at 0x000000ae : */	0x80080000,0x000001e8,
 569/*
 570
 571MsgInBeforeCommand:
 572	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 573
 574at 0x000000b0 : */	0x0f000001,0x00000000,
 575/*
 576	JUMP	IgnoreMsgBeforeCommand, IF SAVE_DATA_PTRS_MSG
 577
 578at 0x000000b2 : */	0x800c0002,0x000001c0,
 579/*
 580	JUMP	IgnoreMsgBeforeCommand, IF RESTORE_DATA_PTRS_MSG
 581
 582at 0x000000b4 : */	0x800c0003,0x000001c0,
 583/*
 584	CALL	ProcessReceiveMessage
 585
 586at 0x000000b6 : */	0x88080000,0x000000a8,
 587/*
 588	INT	MSG_IN_BEFORE_CMD
 589
 590at 0x000000b8 : */	0x98080000,0x00000250,
 591/*
 592	CLEAR	ACK
 593
 594at 0x000000ba : */	0x60000040,0x00000000,
 595/*
 596	JUMP	SendCommand
 597
 598at 0x000000bc : */	0x80080000,0x000001c8,
 599/*
 600
 601DataIn:
 602	CALL	SGScriptStartAddress
 603
 604at 0x000000be : */	0x88080000,0x00000000,
 605/*
 606ResumeDataIn:
 607	JUMP	Finish, WHEN STATUS
 608
 609at 0x000000c0 : */	0x830b0000,0x00000460,
 610/*
 611	JUMP	MsgInAfterDataIn, IF MSG_IN
 612
 613at 0x000000c2 : */	0x870a0000,0x00000358,
 614/*
 615	JUMP	DataInAfterDataIn, if DATA_IN
 616
 617at 0x000000c4 : */	0x810a0000,0x00000328,
 618/*
 619	INT	MSG_OUT_AFTER_DATA_IN, if MSG_OUT
 620
 621at 0x000000c6 : */	0x9e0a0000,0x00000590,
 622/*
 623	INT	UNEXPECTED_PHASE_AFTER_DATA_IN
 624
 625at 0x000000c8 : */	0x98080000,0x00000520,
 626/*
 627
 628DataInAfterDataIn:
 629	INT	DATA_IN_AFTER_DATA_IN
 630
 631at 0x000000ca : */	0x98080000,0x000005a0,
 632/*
 633	JUMP	ResumeDataIn
 634
 635at 0x000000cc : */	0x80080000,0x00000300,
 636/*
 637
 638DataOut:
 639	CALL	SGScriptStartAddress
 640
 641at 0x000000ce : */	0x88080000,0x00000000,
 642/*
 643ResumeDataOut:
 644	JUMP	Finish, WHEN STATUS
 645
 646at 0x000000d0 : */	0x830b0000,0x00000460,
 647/*
 648	JUMP	MsgInAfterDataOut, IF MSG_IN
 649
 650at 0x000000d2 : */	0x870a0000,0x000003e8,
 651/*
 652	INT	UNEXPECTED_PHASE_AFTER_DATA_OUT
 653
 654at 0x000000d4 : */	0x98080000,0x00000620,
 655/*
 656
 657MsgInAfterDataIn:
 658	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 659
 660at 0x000000d6 : */	0x0f000001,0x00000000,
 661/*
 662	JUMP	DisconnectAfterDataIn, IF DISCONNECT_MSG
 663
 664at 0x000000d8 : */	0x800c0004,0x000003c0,
 665/*
 666	JUMP	IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
 667
 668at 0x000000da : */	0x800c0002,0x00000428,
 669/*
 670	JUMP	IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
 671
 672at 0x000000dc : */	0x800c0003,0x00000428,
 673/*
 674	CALL	ProcessReceiveMessage
 675
 676at 0x000000de : */	0x88080000,0x000000a8,
 677/*
 678	INT	MSG_IN_AFTER_DATA_IN
 679
 680at 0x000000e0 : */	0x98080000,0x00000550,
 681/*
 682	CLEAR	ACK
 683
 684at 0x000000e2 : */	0x60000040,0x00000000,
 685/*
 686	JUMP	ResumeDataIn
 687
 688at 0x000000e4 : */	0x80080000,0x00000300,
 689/*
 690
 691DisconnectDuringDataIn:
 692	CLEAR	ACK
 693
 694at 0x000000e6 : */	0x60000040,0x00000000,
 695/*
 696	WAIT	DISCONNECT
 697
 698at 0x000000e8 : */	0x48000000,0x00000000,
 699/*
 700	ENTRY	Disconnect3
 701Disconnect3:
 702	INT	DISCONNECT_DURING_DATA
 703
 704at 0x000000ea : */	0x98080000,0x00000780,
 705/*
 706	ENTRY	Disconnect4
 707Disconnect4:
 708; we return here after a reselection
 709	CLEAR	ACK
 710
 711at 0x000000ec : */	0x60000040,0x00000000,
 712/*
 713	JUMP	ResumeSendCommand
 714
 715at 0x000000ee : */	0x80080000,0x000001e8,
 716/*
 717
 718
 719DisconnectAfterDataIn:
 720	CLEAR	ACK
 721
 722at 0x000000f0 : */	0x60000040,0x00000000,
 723/*
 724	WAIT	DISCONNECT
 725
 726at 0x000000f2 : */	0x48000000,0x00000000,
 727/*
 728	ENTRY	Disconnect5
 729Disconnect5:
 730	INT	DISCONNECT_AFTER_DATA
 731
 732at 0x000000f4 : */	0x98080000,0x00000580,
 733/*
 734	ENTRY	Disconnect6
 735Disconnect6:
 736; we return here after a reselection
 737	CLEAR	ACK
 738
 739at 0x000000f6 : */	0x60000040,0x00000000,
 740/*
 741	JUMP	ResumeDataIn
 742
 743at 0x000000f8 : */	0x80080000,0x00000300,
 744/*
 745
 746MsgInAfterDataOut:
 747	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 748
 749at 0x000000fa : */	0x0f000001,0x00000000,
 750/*
 751	JUMP	DisconnectAfterDataOut, if DISCONNECT_MSG
 752
 753at 0x000000fc : */	0x800c0004,0x00000438,
 754/*
 755	JUMP	IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
 756
 757at 0x000000fe : */	0x800c0002,0x00000428,
 758/*
 759	JUMP	IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
 760
 761at 0x00000100 : */	0x800c0003,0x00000428,
 762/*
 763	CALL	ProcessReceiveMessage
 764
 765at 0x00000102 : */	0x88080000,0x000000a8,
 766/*
 767	INT	MSG_IN_AFTER_DATA_OUT
 768
 769at 0x00000104 : */	0x98080000,0x00000650,
 770/*
 771	CLEAR	ACK
 772
 773at 0x00000106 : */	0x60000040,0x00000000,
 774/*
 775	JUMP	ResumeDataOut
 776
 777at 0x00000108 : */	0x80080000,0x00000340,
 778/*
 779
 780IgnoreMsgAfterData:
 781	CLEAR	ACK
 782
 783at 0x0000010a : */	0x60000040,0x00000000,
 784/*
 785; Data in and out do the same thing on resume, so pick one
 786	JUMP	ResumeDataIn
 787
 788at 0x0000010c : */	0x80080000,0x00000300,
 789/*
 790
 791DisconnectAfterDataOut:
 792	CLEAR	ACK
 793
 794at 0x0000010e : */	0x60000040,0x00000000,
 795/*
 796	WAIT	DISCONNECT
 797
 798at 0x00000110 : */	0x48000000,0x00000000,
 799/*
 800	ENTRY	Disconnect7
 801Disconnect7:
 802	INT	DISCONNECT_AFTER_DATA
 803
 804at 0x00000112 : */	0x98080000,0x00000580,
 805/*
 806	ENTRY	Disconnect8
 807Disconnect8:
 808; we return here after a reselection
 809	CLEAR	ACK
 810
 811at 0x00000114 : */	0x60000040,0x00000000,
 812/*
 813	JUMP	ResumeDataOut
 814
 815at 0x00000116 : */	0x80080000,0x00000340,
 816/*
 817
 818Finish:
 819	MOVE	1, StatusAddress, WHEN STATUS
 820
 821at 0x00000118 : */	0x0b000001,0x00000000,
 822/*
 823	INT	NOT_MSG_IN_AFTER_STATUS, WHEN NOT MSG_IN
 824
 825at 0x0000011a : */	0x9f030000,0x00000430,
 826/*
 827	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 828
 829at 0x0000011c : */	0x0f000001,0x00000000,
 830/*
 831	JUMP	FinishCommandComplete, IF COMMAND_COMPLETE_MSG
 832
 833at 0x0000011e : */	0x800c0000,0x00000490,
 834/*
 835	CALL	ProcessReceiveMessage
 836
 837at 0x00000120 : */	0x88080000,0x000000a8,
 838/*
 839	INT	MSG_IN_AFTER_STATUS
 840
 841at 0x00000122 : */	0x98080000,0x00000440,
 842/*
 843	ENTRY	FinishCommandComplete
 844FinishCommandComplete:
 845	CLEAR	ACK
 846
 847at 0x00000124 : */	0x60000040,0x00000000,
 848/*
 849	WAIT	DISCONNECT
 850
 851at 0x00000126 : */	0x48000000,0x00000000,
 852/*
 853	ENTRY	Finish1
 854Finish1:
 855	INT	GOOD_STATUS_AFTER_STATUS
 856
 857at 0x00000128 : */	0x98080000,0x00000401,
 858};
 859
 860#define A_AFTER_CMD	0x00000300
 861static u32 A_AFTER_CMD_used[] __attribute((unused)) = {
 862};
 863
 864#define A_AFTER_DATA_IN	0x00000500
 865static u32 A_AFTER_DATA_IN_used[] __attribute((unused)) = {
 866};
 867
 868#define A_AFTER_DATA_OUT	0x00000600
 869static u32 A_AFTER_DATA_OUT_used[] __attribute((unused)) = {
 870};
 871
 872#define A_AFTER_SELECTION	0x00000100
 873static u32 A_AFTER_SELECTION_used[] __attribute((unused)) = {
 874};
 875
 876#define A_AFTER_STATUS	0x00000400
 877static u32 A_AFTER_STATUS_used[] __attribute((unused)) = {
 878};
 879
 880#define A_BEFORE_CMD	0x00000200
 881static u32 A_BEFORE_CMD_used[] __attribute((unused)) = {
 882};
 883
 884#define A_COMMAND_COMPLETE_MSG	0x00000000
 885static u32 A_COMMAND_COMPLETE_MSG_used[] __attribute((unused)) = {
 886	0x0000011e,
 887};
 888
 889#define A_COMPLETED_SELECTION_AS_TARGET	0x00001001
 890static u32 A_COMPLETED_SELECTION_AS_TARGET_used[] __attribute((unused)) = {
 891	0x0000001d,
 892};
 893
 894#define A_CommandAddress	0x00000000
 895static u32 A_CommandAddress_used[] __attribute((unused)) = {
 896	0x00000079,
 897};
 898
 899#define A_CommandCount	0x00000000
 900static u32 A_CommandCount_used[] __attribute((unused)) = {
 901	0x00000078,
 902};
 903
 904#define A_DATA_IN_AFTER_DATA_IN	0x000005a0
 905static u32 A_DATA_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {
 906	0x000000cb,
 907};
 908
 909#define A_DEBUG_INTERRUPT	0x00003000
 910static u32 A_DEBUG_INTERRUPT_used[] __attribute((unused)) = {
 911};
 912
 913#define A_DEBUG_INTERRUPT1	0x00003001
 914static u32 A_DEBUG_INTERRUPT1_used[] __attribute((unused)) = {
 915};
 916
 917#define A_DEBUG_INTERRUPT2	0x00003002
 918static u32 A_DEBUG_INTERRUPT2_used[] __attribute((unused)) = {
 919};
 920
 921#define A_DEBUG_INTERRUPT3	0x00003003
 922static u32 A_DEBUG_INTERRUPT3_used[] __attribute((unused)) = {
 923};
 924
 925#define A_DEBUG_INTERRUPT4	0x00003004
 926static u32 A_DEBUG_INTERRUPT4_used[] __attribute((unused)) = {
 927};
 928
 929#define A_DEBUG_INTERRUPT5	0x00003005
 930static u32 A_DEBUG_INTERRUPT5_used[] __attribute((unused)) = {
 931};
 932
 933#define A_DEBUG_INTERRUPT6	0x00003006
 934static u32 A_DEBUG_INTERRUPT6_used[] __attribute((unused)) = {
 935};
 936
 937#define A_DISCONNECT	0x00000080
 938static u32 A_DISCONNECT_used[] __attribute((unused)) = {
 939};
 940
 941#define A_DISCONNECT_AFTER_CMD	0x00000380
 942static u32 A_DISCONNECT_AFTER_CMD_used[] __attribute((unused)) = {
 943	0x000000ab,
 944};
 945
 946#define A_DISCONNECT_AFTER_DATA	0x00000580
 947static u32 A_DISCONNECT_AFTER_DATA_used[] __attribute((unused)) = {
 948	0x000000f5,
 949	0x00000113,
 950};
 951
 952#define A_DISCONNECT_DURING_DATA	0x00000780
 953static u32 A_DISCONNECT_DURING_DATA_used[] __attribute((unused)) = {
 954	0x000000eb,
 955};
 956
 957#define A_DISCONNECT_MSG	0x00000004
 958static u32 A_DISCONNECT_MSG_used[] __attribute((unused)) = {
 959	0x0000008a,
 960	0x00000094,
 961	0x000000d8,
 962	0x000000fc,
 963};
 964
 965#define A_DURING_DATA_IN	0x00000700
 966static u32 A_DURING_DATA_IN_used[] __attribute((unused)) = {
 967};
 968
 969#define A_Device_ID	0x00000000
 970static u32 A_Device_ID_used[] __attribute((unused)) = {
 971	0x00000000,
 972};
 973
 974#define A_EXTENDED_MSG	0x00000001
 975static u32 A_EXTENDED_MSG_used[] __attribute((unused)) = {
 976	0x0000002a,
 977};
 978
 979#define A_FATAL	0x00002000
 980static u32 A_FATAL_used[] __attribute((unused)) = {
 981};
 982
 983#define A_FATAL_ILLEGAL_MSG_LENGTH	0x00002003
 984static u32 A_FATAL_ILLEGAL_MSG_LENGTH_used[] __attribute((unused)) = {
 985	0x00000043,
 986};
 987
 988#define A_FATAL_NOT_MSG_IN_AFTER_SELECTION	0x00002002
 989static u32 A_FATAL_NOT_MSG_IN_AFTER_SELECTION_used[] __attribute((unused)) = {
 990	0x0000000d,
 991};
 992
 993#define A_FATAL_SEND_MSG	0x00002001
 994static u32 A_FATAL_SEND_MSG_used[] __attribute((unused)) = {
 995	0x00000023,
 996};
 997
 998#define A_FATAL_UNEXPECTED_RESELECTION_MSG	0x00002000
 999static u32 A_FATAL_UNEXPECTED_RESELECTION_MSG_used[] __attribute((unused)) = {
1000};
1001
1002#define A_GOOD_STATUS	0x00000001
1003static u32 A_GOOD_STATUS_used[] __attribute((unused)) = {
1004};
1005
1006#define A_GOOD_STATUS_AFTER_STATUS	0x00000401
1007static u32 A_GOOD_STATUS_AFTER_STATUS_used[] __attribute((unused)) = {
1008	0x00000129,
1009};
1010
1011#define A_IDENTIFY_MSG	0x00000080
1012static u32 A_IDENTIFY_MSG_used[] __attribute((unused)) = {
1013};
1014
1015#define A_IDENTIFY_MSG_MASK	0x0000007f
1016static u32 A_IDENTIFY_MSG_MASK_used[] __attribute((unused)) = {
1017};
1018
1019#define A_MSG_IN	0x00000050
1020static u32 A_MSG_IN_used[] __attribute((unused)) = {
1021};
1022
1023#define A_MSG_IN_AFTER_CMD	0x00000350
1024static u32 A_MSG_IN_AFTER_CMD_used[] __attribute((unused)) = {
1025	0x0000009d,
1026};
1027
1028#define A_MSG_IN_AFTER_DATA_IN	0x00000550
1029static u32 A_MSG_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {
1030	0x000000e1,
1031};
1032
1033#define A_MSG_IN_AFTER_DATA_OUT	0x00000650
1034static u32 A_MSG_IN_AFTER_DATA_OUT_used[] __attribute((unused)) = {
1035	0x00000105,
1036};
1037
1038#define A_MSG_IN_AFTER_STATUS	0x00000440
1039static u32 A_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {
1040	0x00000123,
1041};
1042
1043#define A_MSG_IN_BEFORE_CMD	0x00000250
1044static u32 A_MSG_IN_BEFORE_CMD_used[] __attribute((unused)) = {
1045	0x000000b9,
1046};
1047
1048#define A_MSG_IN_DURING_DATA_IN	0x00000750
1049static u32 A_MSG_IN_DURING_DATA_IN_used[] __attribute((unused)) = {
1050	0x00000091,
1051};
1052
1053#define A_MSG_OUT	0x00000090
1054static u32 A_MSG_OUT_used[] __attribute((unused)) = {
1055};
1056
1057#define A_MSG_OUT_AFTER_DATA_IN	0x00000590
1058static u32 A_MSG_OUT_AFTER_DATA_IN_used[] __attribute((unused)) = {
1059	0x000000c7,
1060};
1061
1062#define A_MessageCount	0x00000000
1063static u32 A_MessageCount_used[] __attribute((unused)) = {
1064	0x0000001e,
1065};
1066
1067#define A_MessageLocation	0x00000000
1068static u32 A_MessageLocation_used[] __attribute((unused)) = {
1069	0x0000001f,
1070};
1071
1072#define A_NOT_MSG_IN	0x00000030
1073static u32 A_NOT_MSG_IN_used[] __attribute((unused)) = {
1074};
1075
1076#define A_NOT_MSG_IN_AFTER_STATUS	0x00000430
1077static u32 A_NOT_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {
1078	0x0000011b,
1079};
1080
1081#define A_NOT_MSG_OUT	0x00000010
1082static u32 A_NOT_MSG_OUT_used[] __attribute((unused)) = {
1083};
1084
1085#define A_NOT_MSG_OUT_AFTER_SELECTION	0x00000110
1086static u32 A_NOT_MSG_OUT_AFTER_SELECTION_used[] __attribute((unused)) = {
1087	0x00000007,
1088};
1089
1090#define A_PARITY_ERROR_MSG	0x00000009
1091static u32 A_PARITY_ERROR_MSG_used[] __attribute((unused)) = {
1092};
1093
1094#define A_REJECT_MSG	0x00000007
1095static u32 A_REJECT_MSG_used[] __attribute((unused)) = {
1096};
1097
1098#define A_REJECT_MSG_BEFORE_CMD	0x00000270
1099static u32 A_REJECT_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1100};
1101
1102#define A_REJECT_MSG_R	0x00000070
1103static u32 A_REJECT_MSG_R_used[] __attribute((unused)) = {
1104};
1105
1106#define A_RESELECTED_DURING_SELECTION	0x00001000
1107static u32 A_RESELECTED_DURING_SELECTION_used[] __attribute((unused)) = {
1108	0x0000000b,
1109};
1110
1111#define A_RESELECTION_IDENTIFIED	0x00001003
1112static u32 A_RESELECTION_IDENTIFIED_used[] __attribute((unused)) = {
1113	0x00000011,
1114	0x00000015,
1115};
1116
1117#define A_RESTORE_DATA_PTRS_MSG	0x00000003
1118static u32 A_RESTORE_DATA_PTRS_MSG_used[] __attribute((unused)) = {
1119	0x0000008e,
1120	0x00000098,
1121	0x000000b4,
1122	0x000000dc,
1123	0x00000100,
1124};
1125
1126#define A_ReceiveMsgAddress	0x00000000
1127static u32 A_ReceiveMsgAddress_used[] __attribute((unused)) = {
1128	0x0000000f,
1129	0x00000013,
1130	0x00000029,
1131	0x00000031,
1132	0x00000037,
1133	0x00000047,
1134	0x0000004d,
1135	0x00000053,
1136	0x00000059,
1137	0x0000005f,
1138	0x00000089,
1139	0x00000093,
1140	0x000000b1,
1141	0x000000d7,
1142	0x000000fb,
1143	0x0000011d,
1144};
1145
1146#define A_SAVE_DATA_PTRS_MSG	0x00000002
1147static u32 A_SAVE_DATA_PTRS_MSG_used[] __attribute((unused)) = {
1148	0x0000008c,
1149	0x00000096,
1150	0x000000b2,
1151	0x000000da,
1152	0x000000fe,
1153};
1154
1155#define A_SDTR_MSG	0x00000001
1156static u32 A_SDTR_MSG_used[] __attribute((unused)) = {
1157};
1158
1159#define A_SDTR_MSG_AFTER_CMD	0x00000360
1160static u32 A_SDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {
1161};
1162
1163#define A_SDTR_MSG_BEFORE_CMD	0x00000260
1164static u32 A_SDTR_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1165};
1166
1167#define A_SDTR_MSG_R	0x00000060
1168static u32 A_SDTR_MSG_R_used[] __attribute((unused)) = {
1169};
1170
1171#define A_SGScriptStartAddress	0x00000000
1172static u32 A_SGScriptStartAddress_used[] __attribute((unused)) = {
1173	0x000000bf,
1174	0x000000cf,
1175};
1176
1177#define A_SIMPLE_TAG_MSG	0x00000020
1178static u32 A_SIMPLE_TAG_MSG_used[] __attribute((unused)) = {
1179};
1180
1181#define A_StatusAddress	0x00000000
1182static u32 A_StatusAddress_used[] __attribute((unused)) = {
1183	0x00000119,
1184};
1185
1186#define A_TWO_BYTE_MSG	0x00000020
1187static u32 A_TWO_BYTE_MSG_used[] __attribute((unused)) = {
1188	0x0000002c,
1189};
1190
1191#define A_TWO_BYTE_MSG_MASK	0x0000000f
1192static u32 A_TWO_BYTE_MSG_MASK_used[] __attribute((unused)) = {
1193	0x0000002c,
1194};
1195
1196#define A_UNEXPECTED_MSG	0x00000040
1197static u32 A_UNEXPECTED_MSG_used[] __attribute((unused)) = {
1198};
1199
1200#define A_UNEXPECTED_MSG_BEFORE_CMD	0x00000240
1201static u32 A_UNEXPECTED_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1202};
1203
1204#define A_UNEXPECTED_PHASE	0x00000020
1205static u32 A_UNEXPECTED_PHASE_used[] __attribute((unused)) = {
1206};
1207
1208#define A_UNEXPECTED_PHASE_AFTER_CMD	0x00000320
1209static u32 A_UNEXPECTED_PHASE_AFTER_CMD_used[] __attribute((unused)) = {
1210	0x00000083,
1211};
1212
1213#define A_UNEXPECTED_PHASE_AFTER_DATA_IN	0x00000520
1214static u32 A_UNEXPECTED_PHASE_AFTER_DATA_IN_used[] __attribute((unused)) = {
1215	0x000000c9,
1216};
1217
1218#define A_UNEXPECTED_PHASE_AFTER_DATA_OUT	0x00000620
1219static u32 A_UNEXPECTED_PHASE_AFTER_DATA_OUT_used[] __attribute((unused)) = {
1220	0x000000d5,
1221};
1222
1223#define A_UNEXPECTED_PHASE_BEFORE_CMD	0x00000220
1224static u32 A_UNEXPECTED_PHASE_BEFORE_CMD_used[] __attribute((unused)) = {
1225	0x00000077,
1226};
1227
1228#define A_WDTR_MSG	0x00000003
1229static u32 A_WDTR_MSG_used[] __attribute((unused)) = {
1230};
1231
1232#define A_WDTR_MSG_AFTER_CMD	0x000003a0
1233static u32 A_WDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {
1234};
1235
1236#define A_WDTR_MSG_R	0x000000a0
1237static u32 A_WDTR_MSG_R_used[] __attribute((unused)) = {
1238};
1239
1240#define Ent_Disconnect1	0x000002a8
1241#define Ent_Disconnect2	0x000002b0
1242#define Ent_Disconnect3	0x000003a8
1243#define Ent_Disconnect4	0x000003b0
1244#define Ent_Disconnect5	0x000003d0
1245#define Ent_Disconnect6	0x000003d8
1246#define Ent_Disconnect7	0x00000448
1247#define Ent_Disconnect8	0x00000450
1248#define Ent_Finish1	0x000004a0
1249#define Ent_Finish2	0x000004a8
1250#define Ent_FinishCommandComplete	0x00000490
1251#define Ent_GetReselectionData	0x00000038
1252#define Ent_GetReselectionWithTag	0x00000048
1253#define Ent_IgnoreMessage	0x00000188
1254#define Ent_MsgInDuringData	0x00000218
1255#define Ent_ReceiveMessage	0x000000a0
1256#define Ent_SelectedAsTarget	0x00000058
1257#define Ent_SendCommand	0x000001c8
1258#define Ent_SendMessage	0x00000078
1259#define Ent_SendMessagePhaseMismatch	0x00000090
1260#define Ent_SendMessageWithATN	0x00000198
1261#define Ent_StartUp	0x00000000
1262static u32 LABELPATCHES[] __attribute((unused)) = {
1263	0x00000001,
1264	0x00000003,
1265	0x00000005,
1266	0x00000009,
1267	0x00000027,
1268	0x0000002b,
1269	0x00000039,
1270	0x0000003b,
1271	0x0000003d,
1272	0x0000003f,
1273	0x00000041,
1274	0x0000006b,
1275	0x0000006d,
1276	0x00000073,
1277	0x00000075,
1278	0x0000007b,
1279	0x0000007d,
1280	0x0000007f,
1281	0x00000081,
1282	0x00000087,
1283	0x0000008b,
1284	0x0000008d,
1285	0x0000008f,
1286	0x00000095,
1287	0x00000097,
1288	0x00000099,
1289	0x0000009b,
1290	0x000000a1,
1291	0x000000a5,
1292	0x000000af,
1293	0x000000b3,
1294	0x000000b5,
1295	0x000000b7,
1296	0x000000bd,
1297	0x000000c1,
1298	0x000000c3,
1299	0x000000c5,
1300	0x000000cd,
1301	0x000000d1,
1302	0x000000d3,
1303	0x000000d9,
1304	0x000000db,
1305	0x000000dd,
1306	0x000000df,
1307	0x000000e5,
1308	0x000000ef,
1309	0x000000f9,
1310	0x000000fd,
1311	0x000000ff,
1312	0x00000101,
1313	0x00000103,
1314	0x00000109,
1315	0x0000010d,
1316	0x00000117,
1317	0x0000011f,
1318	0x00000121,
1319};
1320
1321static struct {
1322	u32	offset;
1323	void		*address;
1324} EXTERNAL_PATCHES[] __attribute((unused)) = {
1325};
1326
1327static u32 INSTRUCTIONS __attribute((unused))	= 149;
1328static u32 PATCHES __attribute((unused))	= 56;
1329static u32 EXTERNAL_PATCHES_LEN __attribute((unused))	= 0;
v3.5.6
   1/* DO NOT EDIT - Generated automatically by script_asm.pl */
   2static u32 SCRIPT[] = {
   3/*
   4; Script for the NCR (or symbios) 53c700 and 53c700-66 chip
   5;
   6; Copyright (C) 2001 James.Bottomley@HansenPartnership.com
   7;;-----------------------------------------------------------------------------
   8;;  
   9;;  This program is free software; you can redistribute it and/or modify
  10;;  it under the terms of the GNU General Public License as published by
  11;;  the Free Software Foundation; either version 2 of the License, or
  12;;  (at your option) any later version.
  13;;
  14;;  This program is distributed in the hope that it will be useful,
  15;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17;;  GNU General Public License for more details.
  18;;
  19;;  You should have received a copy of the GNU General Public License
  20;;  along with this program; if not, write to the Free Software
  21;;  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22;;
  23;;-----------------------------------------------------------------------------
  24;
  25; This script is designed to be modified for the particular command in
  26; operation.  The particular variables pertaining to the commands are:
  27;
  28ABSOLUTE	Device_ID = 0		; ID of target for command
  29ABSOLUTE	MessageCount = 0	; Number of bytes in message
  30ABSOLUTE	MessageLocation = 0	; Addr of message
  31ABSOLUTE	CommandCount = 0	; Number of bytes in command
  32ABSOLUTE	CommandAddress = 0	; Addr of Command
  33ABSOLUTE	StatusAddress = 0	; Addr to receive status return
  34ABSOLUTE	ReceiveMsgAddress = 0	; Addr to receive msg
  35;
  36; This is the magic component for handling scatter-gather.  Each of the
  37; SG components is preceded by a script fragment which moves the
  38; necessary amount of data and jumps to the next SG segment.  The final
  39; SG segment jumps back to .  However, this address is the first SG script
  40; segment.
  41;
  42ABSOLUTE	SGScriptStartAddress = 0
  43
  44; The following represent status interrupts we use 3 hex digits for
  45; this: 0xPRS where 
  46
  47; P:
  48ABSOLUTE	AFTER_SELECTION 	= 0x100
  49ABSOLUTE	BEFORE_CMD 		= 0x200
  50ABSOLUTE	AFTER_CMD 		= 0x300
  51ABSOLUTE	AFTER_STATUS 		= 0x400
  52ABSOLUTE	AFTER_DATA_IN		= 0x500
  53ABSOLUTE	AFTER_DATA_OUT		= 0x600
  54ABSOLUTE	DURING_DATA_IN		= 0x700
  55
  56; R:
  57ABSOLUTE	NOT_MSG_OUT 		= 0x10
  58ABSOLUTE	UNEXPECTED_PHASE 	= 0x20
  59ABSOLUTE	NOT_MSG_IN 		= 0x30
  60ABSOLUTE	UNEXPECTED_MSG		= 0x40
  61ABSOLUTE	MSG_IN			= 0x50
  62ABSOLUTE	SDTR_MSG_R		= 0x60
  63ABSOLUTE	REJECT_MSG_R		= 0x70
  64ABSOLUTE	DISCONNECT		= 0x80
  65ABSOLUTE	MSG_OUT			= 0x90
  66ABSOLUTE	WDTR_MSG_R		= 0xA0
  67
  68; S:
  69ABSOLUTE	GOOD_STATUS 		= 0x1
  70
  71; Combinations, since the script assembler can't process |
  72ABSOLUTE	NOT_MSG_OUT_AFTER_SELECTION = 0x110
  73ABSOLUTE	UNEXPECTED_PHASE_BEFORE_CMD = 0x220
  74ABSOLUTE	UNEXPECTED_PHASE_AFTER_CMD = 0x320
  75ABSOLUTE	NOT_MSG_IN_AFTER_STATUS = 0x430
  76ABSOLUTE	GOOD_STATUS_AFTER_STATUS = 0x401
  77ABSOLUTE	UNEXPECTED_PHASE_AFTER_DATA_IN = 0x520
  78ABSOLUTE	UNEXPECTED_PHASE_AFTER_DATA_OUT = 0x620
  79ABSOLUTE	UNEXPECTED_MSG_BEFORE_CMD = 0x240
  80ABSOLUTE	MSG_IN_BEFORE_CMD = 0x250
  81ABSOLUTE	MSG_IN_AFTER_CMD = 0x350
  82ABSOLUTE	SDTR_MSG_BEFORE_CMD = 0x260
  83ABSOLUTE	REJECT_MSG_BEFORE_CMD = 0x270
  84ABSOLUTE	DISCONNECT_AFTER_CMD = 0x380
  85ABSOLUTE	SDTR_MSG_AFTER_CMD = 0x360
  86ABSOLUTE	WDTR_MSG_AFTER_CMD = 0x3A0
  87ABSOLUTE	MSG_IN_AFTER_STATUS = 0x440
  88ABSOLUTE	DISCONNECT_AFTER_DATA = 0x580
  89ABSOLUTE	MSG_IN_AFTER_DATA_IN = 0x550
  90ABSOLUTE	MSG_IN_AFTER_DATA_OUT = 0x650
  91ABSOLUTE	MSG_OUT_AFTER_DATA_IN = 0x590
  92ABSOLUTE	DATA_IN_AFTER_DATA_IN = 0x5a0
  93ABSOLUTE	MSG_IN_DURING_DATA_IN = 0x750
  94ABSOLUTE	DISCONNECT_DURING_DATA = 0x780
  95
  96;
  97; Other interrupt conditions
  98; 
  99ABSOLUTE	RESELECTED_DURING_SELECTION = 0x1000
 100ABSOLUTE	COMPLETED_SELECTION_AS_TARGET = 0x1001
 101ABSOLUTE	RESELECTION_IDENTIFIED = 0x1003
 102;
 103; Fatal interrupt conditions.  If you add to this, also add to the
 104; array of corresponding messages
 105;
 106ABSOLUTE	FATAL = 0x2000
 107ABSOLUTE	FATAL_UNEXPECTED_RESELECTION_MSG = 0x2000
 108ABSOLUTE	FATAL_SEND_MSG = 0x2001
 109ABSOLUTE	FATAL_NOT_MSG_IN_AFTER_SELECTION = 0x2002
 110ABSOLUTE	FATAL_ILLEGAL_MSG_LENGTH = 0x2003
 111
 112ABSOLUTE	DEBUG_INTERRUPT	= 0x3000
 113ABSOLUTE	DEBUG_INTERRUPT1 = 0x3001
 114ABSOLUTE	DEBUG_INTERRUPT2 = 0x3002
 115ABSOLUTE	DEBUG_INTERRUPT3 = 0x3003
 116ABSOLUTE	DEBUG_INTERRUPT4 = 0x3004
 117ABSOLUTE	DEBUG_INTERRUPT5 = 0x3005
 118ABSOLUTE	DEBUG_INTERRUPT6 = 0x3006
 119
 120
 121;
 122; SCSI Messages we interpret in the script
 123;
 124ABSOLUTE	COMMAND_COMPLETE_MSG	= 0x00
 125ABSOLUTE	EXTENDED_MSG		= 0x01
 126ABSOLUTE	SDTR_MSG		= 0x01
 127ABSOLUTE	SAVE_DATA_PTRS_MSG	= 0x02
 128ABSOLUTE	RESTORE_DATA_PTRS_MSG	= 0x03
 129ABSOLUTE	WDTR_MSG		= 0x03
 130ABSOLUTE	DISCONNECT_MSG		= 0x04
 131ABSOLUTE	REJECT_MSG		= 0x07
 132ABSOLUTE	PARITY_ERROR_MSG	= 0x09
 133ABSOLUTE	SIMPLE_TAG_MSG		= 0x20
 134ABSOLUTE	IDENTIFY_MSG		= 0x80
 135ABSOLUTE	IDENTIFY_MSG_MASK	= 0x7F
 136ABSOLUTE	TWO_BYTE_MSG		= 0x20
 137ABSOLUTE	TWO_BYTE_MSG_MASK	= 0x0F
 138
 139; This is where the script begins
 140
 141ENTRY	StartUp
 142
 143StartUp:
 144	SELECT	ATN Device_ID, Reselect
 145
 146at 0x00000000 : */	0x41000000,0x00000020,
 147/*
 148	JUMP	Finish, WHEN STATUS
 149
 150at 0x00000002 : */	0x830b0000,0x00000460,
 151/*
 152	JUMP	SendIdentifyMsg, IF MSG_OUT
 153
 154at 0x00000004 : */	0x860a0000,0x000001b0,
 155/*
 156	INT	NOT_MSG_OUT_AFTER_SELECTION
 157
 158at 0x00000006 : */	0x98080000,0x00000110,
 159/*
 160
 161Reselect:
 162	WAIT	RESELECT SelectedAsTarget
 163
 164at 0x00000008 : */	0x50000000,0x00000058,
 165/*
 166	INT	RESELECTED_DURING_SELECTION, WHEN MSG_IN
 167
 168at 0x0000000a : */	0x9f0b0000,0x00001000,
 169/*
 170	INT	FATAL_NOT_MSG_IN_AFTER_SELECTION
 171
 172at 0x0000000c : */	0x98080000,0x00002002,
 173/*
 174
 175	ENTRY	GetReselectionData
 176GetReselectionData:
 177	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 178
 179at 0x0000000e : */	0x0f000001,0x00000000,
 180/*
 181	INT	RESELECTION_IDENTIFIED
 182
 183at 0x00000010 : */	0x98080000,0x00001003,
 184/*
 185
 186	ENTRY	GetReselectionWithTag
 187GetReselectionWithTag:
 188	MOVE	3, ReceiveMsgAddress, WHEN MSG_IN
 189
 190at 0x00000012 : */	0x0f000003,0x00000000,
 191/*
 192	INT	RESELECTION_IDENTIFIED
 193
 194at 0x00000014 : */	0x98080000,0x00001003,
 195/*
 196	
 197	ENTRY	SelectedAsTarget
 198SelectedAsTarget:
 199; Basically tell the selecting device that there's nothing here
 200	SET	TARGET
 201
 202at 0x00000016 : */	0x58000200,0x00000000,
 203/*
 204	DISCONNECT
 205
 206at 0x00000018 : */	0x48000000,0x00000000,
 207/*
 208	CLEAR	TARGET
 209
 210at 0x0000001a : */	0x60000200,0x00000000,
 211/*
 212	INT	COMPLETED_SELECTION_AS_TARGET
 213
 214at 0x0000001c : */	0x98080000,0x00001001,
 215/*
 216;
 217; These are the messaging entries
 218;
 219; Send a message.  Message count should be correctly patched
 220	ENTRY	SendMessage
 221SendMessage:
 222	MOVE	MessageCount, MessageLocation, WHEN MSG_OUT
 223
 224at 0x0000001e : */	0x0e000000,0x00000000,
 225/*
 226ResumeSendMessage:
 227	RETURN,	WHEN NOT MSG_OUT
 228
 229at 0x00000020 : */	0x96030000,0x00000000,
 230/*
 231	INT	FATAL_SEND_MSG
 232
 233at 0x00000022 : */	0x98080000,0x00002001,
 234/*
 235
 236	ENTRY	SendMessagePhaseMismatch
 237SendMessagePhaseMismatch:
 238	CLEAR	ACK
 239
 240at 0x00000024 : */	0x60000040,0x00000000,
 241/*
 242	JUMP	ResumeSendMessage
 243
 244at 0x00000026 : */	0x80080000,0x00000080,
 245/*
 246;
 247; Receive a message.  Need to identify the message to
 248; receive it correctly
 249	ENTRY	ReceiveMessage
 250ReceiveMessage:
 251	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 252
 253at 0x00000028 : */	0x0f000001,0x00000000,
 254/*
 255;
 256; Use this entry if we've just tried to look at the first byte
 257; of the message and want to process it further
 258ProcessReceiveMessage:
 259	JUMP	ReceiveExtendedMessage, IF EXTENDED_MSG
 260
 261at 0x0000002a : */	0x800c0001,0x000000d0,
 262/*
 263	RETURN,	IF NOT TWO_BYTE_MSG, AND MASK TWO_BYTE_MSG_MASK
 264
 265at 0x0000002c : */	0x90040f20,0x00000000,
 266/*
 267	CLEAR	ACK
 268
 269at 0x0000002e : */	0x60000040,0x00000000,
 270/*
 271	MOVE	1, ReceiveMsgAddress + 1, WHEN MSG_IN
 272
 273at 0x00000030 : */	0x0f000001,0x00000001,
 274/*
 275	RETURN
 276
 277at 0x00000032 : */	0x90080000,0x00000000,
 278/*
 279ReceiveExtendedMessage:
 280	CLEAR	ACK
 281
 282at 0x00000034 : */	0x60000040,0x00000000,
 283/*
 284	MOVE	1, ReceiveMsgAddress + 1, WHEN MSG_IN
 285
 286at 0x00000036 : */	0x0f000001,0x00000001,
 287/*
 288	JUMP	Receive1Byte, IF 0x01
 289
 290at 0x00000038 : */	0x800c0001,0x00000110,
 291/*
 292	JUMP	Receive2Byte, IF 0x02
 293
 294at 0x0000003a : */	0x800c0002,0x00000128,
 295/*
 296	JUMP	Receive3Byte, IF 0x03
 297
 298at 0x0000003c : */	0x800c0003,0x00000140,
 299/*
 300	JUMP	Receive4Byte, IF 0x04
 301
 302at 0x0000003e : */	0x800c0004,0x00000158,
 303/*
 304	JUMP	Receive5Byte, IF 0x05
 305
 306at 0x00000040 : */	0x800c0005,0x00000170,
 307/*
 308	INT	FATAL_ILLEGAL_MSG_LENGTH
 309
 310at 0x00000042 : */	0x98080000,0x00002003,
 311/*
 312Receive1Byte:
 313	CLEAR	ACK
 314
 315at 0x00000044 : */	0x60000040,0x00000000,
 316/*
 317	MOVE	1, ReceiveMsgAddress + 2, WHEN MSG_IN
 318
 319at 0x00000046 : */	0x0f000001,0x00000002,
 320/*
 321	RETURN
 322
 323at 0x00000048 : */	0x90080000,0x00000000,
 324/*
 325Receive2Byte:
 326	CLEAR	ACK
 327
 328at 0x0000004a : */	0x60000040,0x00000000,
 329/*
 330	MOVE	2, ReceiveMsgAddress + 2, WHEN MSG_IN
 331
 332at 0x0000004c : */	0x0f000002,0x00000002,
 333/*
 334	RETURN
 335
 336at 0x0000004e : */	0x90080000,0x00000000,
 337/*
 338Receive3Byte:
 339	CLEAR	ACK
 340
 341at 0x00000050 : */	0x60000040,0x00000000,
 342/*
 343	MOVE	3, ReceiveMsgAddress + 2, WHEN MSG_IN
 344
 345at 0x00000052 : */	0x0f000003,0x00000002,
 346/*
 347	RETURN
 348
 349at 0x00000054 : */	0x90080000,0x00000000,
 350/*
 351Receive4Byte:
 352	CLEAR	ACK
 353
 354at 0x00000056 : */	0x60000040,0x00000000,
 355/*
 356	MOVE	4, ReceiveMsgAddress + 2, WHEN MSG_IN
 357
 358at 0x00000058 : */	0x0f000004,0x00000002,
 359/*
 360	RETURN
 361
 362at 0x0000005a : */	0x90080000,0x00000000,
 363/*
 364Receive5Byte:
 365	CLEAR	ACK
 366
 367at 0x0000005c : */	0x60000040,0x00000000,
 368/*
 369	MOVE	5, ReceiveMsgAddress + 2, WHEN MSG_IN
 370
 371at 0x0000005e : */	0x0f000005,0x00000002,
 372/*
 373	RETURN
 374
 375at 0x00000060 : */	0x90080000,0x00000000,
 376/*
 377;
 378; Come here from the message processor to ignore the message
 379;
 380	ENTRY	IgnoreMessage
 381IgnoreMessage:
 382	CLEAR	ACK
 383
 384at 0x00000062 : */	0x60000040,0x00000000,
 385/*
 386	RETURN
 387
 388at 0x00000064 : */	0x90080000,0x00000000,
 389/*
 390;
 391; Come here to send a reply to a message
 392;
 393	ENTRY	SendMessageWithATN
 394SendMessageWithATN:
 395	SET	ATN
 396
 397at 0x00000066 : */	0x58000008,0x00000000,
 398/*
 399	CLEAR	ACK
 400
 401at 0x00000068 : */	0x60000040,0x00000000,
 402/*
 403	JUMP	SendMessage
 404
 405at 0x0000006a : */	0x80080000,0x00000078,
 406/*
 407
 408SendIdentifyMsg:
 409	CALL	SendMessage
 410
 411at 0x0000006c : */	0x88080000,0x00000078,
 412/*
 413	CLEAR	ATN
 414
 415at 0x0000006e : */	0x60000008,0x00000000,
 416/*
 417
 418IgnoreMsgBeforeCommand:
 419	CLEAR	ACK
 420
 421at 0x00000070 : */	0x60000040,0x00000000,
 422/*
 423	ENTRY	SendCommand
 424SendCommand:
 425	JUMP	Finish, WHEN STATUS
 426
 427at 0x00000072 : */	0x830b0000,0x00000460,
 428/*
 429	JUMP	MsgInBeforeCommand, IF MSG_IN
 430
 431at 0x00000074 : */	0x870a0000,0x000002c0,
 432/*
 433	INT	UNEXPECTED_PHASE_BEFORE_CMD, IF NOT CMD
 434
 435at 0x00000076 : */	0x9a020000,0x00000220,
 436/*
 437	MOVE	CommandCount, CommandAddress, WHEN CMD
 438
 439at 0x00000078 : */	0x0a000000,0x00000000,
 440/*
 441ResumeSendCommand:
 442	JUMP	Finish, WHEN STATUS
 443
 444at 0x0000007a : */	0x830b0000,0x00000460,
 445/*
 446	JUMP	MsgInAfterCmd, IF MSG_IN
 447
 448at 0x0000007c : */	0x870a0000,0x00000248,
 449/*
 450	JUMP	DataIn, IF DATA_IN
 451
 452at 0x0000007e : */	0x810a0000,0x000002f8,
 453/*
 454	JUMP	DataOut, IF DATA_OUT
 455
 456at 0x00000080 : */	0x800a0000,0x00000338,
 457/*
 458	INT	UNEXPECTED_PHASE_AFTER_CMD
 459
 460at 0x00000082 : */	0x98080000,0x00000320,
 461/*
 462
 463IgnoreMsgDuringData:
 464	CLEAR	ACK
 465
 466at 0x00000084 : */	0x60000040,0x00000000,
 467/*
 468	; fall through to MsgInDuringData
 469
 470Entry MsgInDuringData
 471MsgInDuringData:
 472;
 473; Could be we have nothing more to transfer
 474;
 475	JUMP	Finish, WHEN STATUS
 476
 477at 0x00000086 : */	0x830b0000,0x00000460,
 478/*
 479	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 480
 481at 0x00000088 : */	0x0f000001,0x00000000,
 482/*
 483	JUMP	DisconnectDuringDataIn, IF DISCONNECT_MSG
 484
 485at 0x0000008a : */	0x800c0004,0x00000398,
 486/*
 487	JUMP	IgnoreMsgDuringData, IF SAVE_DATA_PTRS_MSG
 488
 489at 0x0000008c : */	0x800c0002,0x00000210,
 490/*
 491	JUMP	IgnoreMsgDuringData, IF RESTORE_DATA_PTRS_MSG
 492
 493at 0x0000008e : */	0x800c0003,0x00000210,
 494/*
 495	INT	MSG_IN_DURING_DATA_IN
 496
 497at 0x00000090 : */	0x98080000,0x00000750,
 498/*
 499
 500MsgInAfterCmd:
 501	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 502
 503at 0x00000092 : */	0x0f000001,0x00000000,
 504/*
 505	JUMP	DisconnectAfterCmd, IF DISCONNECT_MSG
 506
 507at 0x00000094 : */	0x800c0004,0x00000298,
 508/*
 509	JUMP	IgnoreMsgInAfterCmd, IF SAVE_DATA_PTRS_MSG
 510
 511at 0x00000096 : */	0x800c0002,0x00000288,
 512/*
 513	JUMP	IgnoreMsgInAfterCmd, IF RESTORE_DATA_PTRS_MSG
 514
 515at 0x00000098 : */	0x800c0003,0x00000288,
 516/*
 517	CALL	ProcessReceiveMessage
 518
 519at 0x0000009a : */	0x88080000,0x000000a8,
 520/*
 521	INT	MSG_IN_AFTER_CMD
 522
 523at 0x0000009c : */	0x98080000,0x00000350,
 524/*
 525	CLEAR	ACK
 526
 527at 0x0000009e : */	0x60000040,0x00000000,
 528/*
 529	JUMP	ResumeSendCommand
 530
 531at 0x000000a0 : */	0x80080000,0x000001e8,
 532/*
 533
 534IgnoreMsgInAfterCmd:
 535	CLEAR	ACK
 536
 537at 0x000000a2 : */	0x60000040,0x00000000,
 538/*
 539	JUMP	ResumeSendCommand
 540
 541at 0x000000a4 : */	0x80080000,0x000001e8,
 542/*
 543
 544DisconnectAfterCmd:
 545	CLEAR	ACK
 546
 547at 0x000000a6 : */	0x60000040,0x00000000,
 548/*
 549	WAIT	DISCONNECT
 550
 551at 0x000000a8 : */	0x48000000,0x00000000,
 552/*
 553	ENTRY	Disconnect1
 554Disconnect1:
 555	INT	DISCONNECT_AFTER_CMD
 556
 557at 0x000000aa : */	0x98080000,0x00000380,
 558/*
 559	ENTRY	Disconnect2
 560Disconnect2:
 561; We return here after a reselection
 562	CLEAR	ACK
 563
 564at 0x000000ac : */	0x60000040,0x00000000,
 565/*
 566	JUMP	ResumeSendCommand
 567
 568at 0x000000ae : */	0x80080000,0x000001e8,
 569/*
 570
 571MsgInBeforeCommand:
 572	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 573
 574at 0x000000b0 : */	0x0f000001,0x00000000,
 575/*
 576	JUMP	IgnoreMsgBeforeCommand, IF SAVE_DATA_PTRS_MSG
 577
 578at 0x000000b2 : */	0x800c0002,0x000001c0,
 579/*
 580	JUMP	IgnoreMsgBeforeCommand, IF RESTORE_DATA_PTRS_MSG
 581
 582at 0x000000b4 : */	0x800c0003,0x000001c0,
 583/*
 584	CALL	ProcessReceiveMessage
 585
 586at 0x000000b6 : */	0x88080000,0x000000a8,
 587/*
 588	INT	MSG_IN_BEFORE_CMD
 589
 590at 0x000000b8 : */	0x98080000,0x00000250,
 591/*
 592	CLEAR	ACK
 593
 594at 0x000000ba : */	0x60000040,0x00000000,
 595/*
 596	JUMP	SendCommand
 597
 598at 0x000000bc : */	0x80080000,0x000001c8,
 599/*
 600
 601DataIn:
 602	CALL	SGScriptStartAddress
 603
 604at 0x000000be : */	0x88080000,0x00000000,
 605/*
 606ResumeDataIn:
 607	JUMP	Finish, WHEN STATUS
 608
 609at 0x000000c0 : */	0x830b0000,0x00000460,
 610/*
 611	JUMP	MsgInAfterDataIn, IF MSG_IN
 612
 613at 0x000000c2 : */	0x870a0000,0x00000358,
 614/*
 615	JUMP	DataInAfterDataIn, if DATA_IN
 616
 617at 0x000000c4 : */	0x810a0000,0x00000328,
 618/*
 619	INT	MSG_OUT_AFTER_DATA_IN, if MSG_OUT
 620
 621at 0x000000c6 : */	0x9e0a0000,0x00000590,
 622/*
 623	INT	UNEXPECTED_PHASE_AFTER_DATA_IN
 624
 625at 0x000000c8 : */	0x98080000,0x00000520,
 626/*
 627
 628DataInAfterDataIn:
 629	INT	DATA_IN_AFTER_DATA_IN
 630
 631at 0x000000ca : */	0x98080000,0x000005a0,
 632/*
 633	JUMP	ResumeDataIn
 634
 635at 0x000000cc : */	0x80080000,0x00000300,
 636/*
 637
 638DataOut:
 639	CALL	SGScriptStartAddress
 640
 641at 0x000000ce : */	0x88080000,0x00000000,
 642/*
 643ResumeDataOut:
 644	JUMP	Finish, WHEN STATUS
 645
 646at 0x000000d0 : */	0x830b0000,0x00000460,
 647/*
 648	JUMP	MsgInAfterDataOut, IF MSG_IN
 649
 650at 0x000000d2 : */	0x870a0000,0x000003e8,
 651/*
 652	INT	UNEXPECTED_PHASE_AFTER_DATA_OUT
 653
 654at 0x000000d4 : */	0x98080000,0x00000620,
 655/*
 656
 657MsgInAfterDataIn:
 658	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 659
 660at 0x000000d6 : */	0x0f000001,0x00000000,
 661/*
 662	JUMP	DisconnectAfterDataIn, IF DISCONNECT_MSG
 663
 664at 0x000000d8 : */	0x800c0004,0x000003c0,
 665/*
 666	JUMP	IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
 667
 668at 0x000000da : */	0x800c0002,0x00000428,
 669/*
 670	JUMP	IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
 671
 672at 0x000000dc : */	0x800c0003,0x00000428,
 673/*
 674	CALL	ProcessReceiveMessage
 675
 676at 0x000000de : */	0x88080000,0x000000a8,
 677/*
 678	INT	MSG_IN_AFTER_DATA_IN
 679
 680at 0x000000e0 : */	0x98080000,0x00000550,
 681/*
 682	CLEAR	ACK
 683
 684at 0x000000e2 : */	0x60000040,0x00000000,
 685/*
 686	JUMP	ResumeDataIn
 687
 688at 0x000000e4 : */	0x80080000,0x00000300,
 689/*
 690
 691DisconnectDuringDataIn:
 692	CLEAR	ACK
 693
 694at 0x000000e6 : */	0x60000040,0x00000000,
 695/*
 696	WAIT	DISCONNECT
 697
 698at 0x000000e8 : */	0x48000000,0x00000000,
 699/*
 700	ENTRY	Disconnect3
 701Disconnect3:
 702	INT	DISCONNECT_DURING_DATA
 703
 704at 0x000000ea : */	0x98080000,0x00000780,
 705/*
 706	ENTRY	Disconnect4
 707Disconnect4:
 708; we return here after a reselection
 709	CLEAR	ACK
 710
 711at 0x000000ec : */	0x60000040,0x00000000,
 712/*
 713	JUMP	ResumeSendCommand
 714
 715at 0x000000ee : */	0x80080000,0x000001e8,
 716/*
 717
 718
 719DisconnectAfterDataIn:
 720	CLEAR	ACK
 721
 722at 0x000000f0 : */	0x60000040,0x00000000,
 723/*
 724	WAIT	DISCONNECT
 725
 726at 0x000000f2 : */	0x48000000,0x00000000,
 727/*
 728	ENTRY	Disconnect5
 729Disconnect5:
 730	INT	DISCONNECT_AFTER_DATA
 731
 732at 0x000000f4 : */	0x98080000,0x00000580,
 733/*
 734	ENTRY	Disconnect6
 735Disconnect6:
 736; we return here after a reselection
 737	CLEAR	ACK
 738
 739at 0x000000f6 : */	0x60000040,0x00000000,
 740/*
 741	JUMP	ResumeDataIn
 742
 743at 0x000000f8 : */	0x80080000,0x00000300,
 744/*
 745
 746MsgInAfterDataOut:
 747	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 748
 749at 0x000000fa : */	0x0f000001,0x00000000,
 750/*
 751	JUMP	DisconnectAfterDataOut, if DISCONNECT_MSG
 752
 753at 0x000000fc : */	0x800c0004,0x00000438,
 754/*
 755	JUMP	IgnoreMsgAfterData, IF SAVE_DATA_PTRS_MSG
 756
 757at 0x000000fe : */	0x800c0002,0x00000428,
 758/*
 759	JUMP	IgnoreMsgAfterData, IF RESTORE_DATA_PTRS_MSG
 760
 761at 0x00000100 : */	0x800c0003,0x00000428,
 762/*
 763	CALL	ProcessReceiveMessage
 764
 765at 0x00000102 : */	0x88080000,0x000000a8,
 766/*
 767	INT	MSG_IN_AFTER_DATA_OUT
 768
 769at 0x00000104 : */	0x98080000,0x00000650,
 770/*
 771	CLEAR	ACK
 772
 773at 0x00000106 : */	0x60000040,0x00000000,
 774/*
 775	JUMP	ResumeDataOut
 776
 777at 0x00000108 : */	0x80080000,0x00000340,
 778/*
 779
 780IgnoreMsgAfterData:
 781	CLEAR	ACK
 782
 783at 0x0000010a : */	0x60000040,0x00000000,
 784/*
 785; Data in and out do the same thing on resume, so pick one
 786	JUMP	ResumeDataIn
 787
 788at 0x0000010c : */	0x80080000,0x00000300,
 789/*
 790
 791DisconnectAfterDataOut:
 792	CLEAR	ACK
 793
 794at 0x0000010e : */	0x60000040,0x00000000,
 795/*
 796	WAIT	DISCONNECT
 797
 798at 0x00000110 : */	0x48000000,0x00000000,
 799/*
 800	ENTRY	Disconnect7
 801Disconnect7:
 802	INT	DISCONNECT_AFTER_DATA
 803
 804at 0x00000112 : */	0x98080000,0x00000580,
 805/*
 806	ENTRY	Disconnect8
 807Disconnect8:
 808; we return here after a reselection
 809	CLEAR	ACK
 810
 811at 0x00000114 : */	0x60000040,0x00000000,
 812/*
 813	JUMP	ResumeDataOut
 814
 815at 0x00000116 : */	0x80080000,0x00000340,
 816/*
 817
 818Finish:
 819	MOVE	1, StatusAddress, WHEN STATUS
 820
 821at 0x00000118 : */	0x0b000001,0x00000000,
 822/*
 823	INT	NOT_MSG_IN_AFTER_STATUS, WHEN NOT MSG_IN
 824
 825at 0x0000011a : */	0x9f030000,0x00000430,
 826/*
 827	MOVE	1, ReceiveMsgAddress, WHEN MSG_IN
 828
 829at 0x0000011c : */	0x0f000001,0x00000000,
 830/*
 831	JUMP	FinishCommandComplete, IF COMMAND_COMPLETE_MSG
 832
 833at 0x0000011e : */	0x800c0000,0x00000490,
 834/*
 835	CALL	ProcessReceiveMessage
 836
 837at 0x00000120 : */	0x88080000,0x000000a8,
 838/*
 839	INT	MSG_IN_AFTER_STATUS
 840
 841at 0x00000122 : */	0x98080000,0x00000440,
 842/*
 843	ENTRY	FinishCommandComplete
 844FinishCommandComplete:
 845	CLEAR	ACK
 846
 847at 0x00000124 : */	0x60000040,0x00000000,
 848/*
 849	WAIT	DISCONNECT
 850
 851at 0x00000126 : */	0x48000000,0x00000000,
 852/*
 853	ENTRY	Finish1
 854Finish1:
 855	INT	GOOD_STATUS_AFTER_STATUS
 856
 857at 0x00000128 : */	0x98080000,0x00000401,
 858};
 859
 860#define A_AFTER_CMD	0x00000300
 861static u32 A_AFTER_CMD_used[] __attribute((unused)) = {
 862};
 863
 864#define A_AFTER_DATA_IN	0x00000500
 865static u32 A_AFTER_DATA_IN_used[] __attribute((unused)) = {
 866};
 867
 868#define A_AFTER_DATA_OUT	0x00000600
 869static u32 A_AFTER_DATA_OUT_used[] __attribute((unused)) = {
 870};
 871
 872#define A_AFTER_SELECTION	0x00000100
 873static u32 A_AFTER_SELECTION_used[] __attribute((unused)) = {
 874};
 875
 876#define A_AFTER_STATUS	0x00000400
 877static u32 A_AFTER_STATUS_used[] __attribute((unused)) = {
 878};
 879
 880#define A_BEFORE_CMD	0x00000200
 881static u32 A_BEFORE_CMD_used[] __attribute((unused)) = {
 882};
 883
 884#define A_COMMAND_COMPLETE_MSG	0x00000000
 885static u32 A_COMMAND_COMPLETE_MSG_used[] __attribute((unused)) = {
 886	0x0000011e,
 887};
 888
 889#define A_COMPLETED_SELECTION_AS_TARGET	0x00001001
 890static u32 A_COMPLETED_SELECTION_AS_TARGET_used[] __attribute((unused)) = {
 891	0x0000001d,
 892};
 893
 894#define A_CommandAddress	0x00000000
 895static u32 A_CommandAddress_used[] __attribute((unused)) = {
 896	0x00000079,
 897};
 898
 899#define A_CommandCount	0x00000000
 900static u32 A_CommandCount_used[] __attribute((unused)) = {
 901	0x00000078,
 902};
 903
 904#define A_DATA_IN_AFTER_DATA_IN	0x000005a0
 905static u32 A_DATA_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {
 906	0x000000cb,
 907};
 908
 909#define A_DEBUG_INTERRUPT	0x00003000
 910static u32 A_DEBUG_INTERRUPT_used[] __attribute((unused)) = {
 911};
 912
 913#define A_DEBUG_INTERRUPT1	0x00003001
 914static u32 A_DEBUG_INTERRUPT1_used[] __attribute((unused)) = {
 915};
 916
 917#define A_DEBUG_INTERRUPT2	0x00003002
 918static u32 A_DEBUG_INTERRUPT2_used[] __attribute((unused)) = {
 919};
 920
 921#define A_DEBUG_INTERRUPT3	0x00003003
 922static u32 A_DEBUG_INTERRUPT3_used[] __attribute((unused)) = {
 923};
 924
 925#define A_DEBUG_INTERRUPT4	0x00003004
 926static u32 A_DEBUG_INTERRUPT4_used[] __attribute((unused)) = {
 927};
 928
 929#define A_DEBUG_INTERRUPT5	0x00003005
 930static u32 A_DEBUG_INTERRUPT5_used[] __attribute((unused)) = {
 931};
 932
 933#define A_DEBUG_INTERRUPT6	0x00003006
 934static u32 A_DEBUG_INTERRUPT6_used[] __attribute((unused)) = {
 935};
 936
 937#define A_DISCONNECT	0x00000080
 938static u32 A_DISCONNECT_used[] __attribute((unused)) = {
 939};
 940
 941#define A_DISCONNECT_AFTER_CMD	0x00000380
 942static u32 A_DISCONNECT_AFTER_CMD_used[] __attribute((unused)) = {
 943	0x000000ab,
 944};
 945
 946#define A_DISCONNECT_AFTER_DATA	0x00000580
 947static u32 A_DISCONNECT_AFTER_DATA_used[] __attribute((unused)) = {
 948	0x000000f5,
 949	0x00000113,
 950};
 951
 952#define A_DISCONNECT_DURING_DATA	0x00000780
 953static u32 A_DISCONNECT_DURING_DATA_used[] __attribute((unused)) = {
 954	0x000000eb,
 955};
 956
 957#define A_DISCONNECT_MSG	0x00000004
 958static u32 A_DISCONNECT_MSG_used[] __attribute((unused)) = {
 959	0x0000008a,
 960	0x00000094,
 961	0x000000d8,
 962	0x000000fc,
 963};
 964
 965#define A_DURING_DATA_IN	0x00000700
 966static u32 A_DURING_DATA_IN_used[] __attribute((unused)) = {
 967};
 968
 969#define A_Device_ID	0x00000000
 970static u32 A_Device_ID_used[] __attribute((unused)) = {
 971	0x00000000,
 972};
 973
 974#define A_EXTENDED_MSG	0x00000001
 975static u32 A_EXTENDED_MSG_used[] __attribute((unused)) = {
 976	0x0000002a,
 977};
 978
 979#define A_FATAL	0x00002000
 980static u32 A_FATAL_used[] __attribute((unused)) = {
 981};
 982
 983#define A_FATAL_ILLEGAL_MSG_LENGTH	0x00002003
 984static u32 A_FATAL_ILLEGAL_MSG_LENGTH_used[] __attribute((unused)) = {
 985	0x00000043,
 986};
 987
 988#define A_FATAL_NOT_MSG_IN_AFTER_SELECTION	0x00002002
 989static u32 A_FATAL_NOT_MSG_IN_AFTER_SELECTION_used[] __attribute((unused)) = {
 990	0x0000000d,
 991};
 992
 993#define A_FATAL_SEND_MSG	0x00002001
 994static u32 A_FATAL_SEND_MSG_used[] __attribute((unused)) = {
 995	0x00000023,
 996};
 997
 998#define A_FATAL_UNEXPECTED_RESELECTION_MSG	0x00002000
 999static u32 A_FATAL_UNEXPECTED_RESELECTION_MSG_used[] __attribute((unused)) = {
1000};
1001
1002#define A_GOOD_STATUS	0x00000001
1003static u32 A_GOOD_STATUS_used[] __attribute((unused)) = {
1004};
1005
1006#define A_GOOD_STATUS_AFTER_STATUS	0x00000401
1007static u32 A_GOOD_STATUS_AFTER_STATUS_used[] __attribute((unused)) = {
1008	0x00000129,
1009};
1010
1011#define A_IDENTIFY_MSG	0x00000080
1012static u32 A_IDENTIFY_MSG_used[] __attribute((unused)) = {
1013};
1014
1015#define A_IDENTIFY_MSG_MASK	0x0000007f
1016static u32 A_IDENTIFY_MSG_MASK_used[] __attribute((unused)) = {
1017};
1018
1019#define A_MSG_IN	0x00000050
1020static u32 A_MSG_IN_used[] __attribute((unused)) = {
1021};
1022
1023#define A_MSG_IN_AFTER_CMD	0x00000350
1024static u32 A_MSG_IN_AFTER_CMD_used[] __attribute((unused)) = {
1025	0x0000009d,
1026};
1027
1028#define A_MSG_IN_AFTER_DATA_IN	0x00000550
1029static u32 A_MSG_IN_AFTER_DATA_IN_used[] __attribute((unused)) = {
1030	0x000000e1,
1031};
1032
1033#define A_MSG_IN_AFTER_DATA_OUT	0x00000650
1034static u32 A_MSG_IN_AFTER_DATA_OUT_used[] __attribute((unused)) = {
1035	0x00000105,
1036};
1037
1038#define A_MSG_IN_AFTER_STATUS	0x00000440
1039static u32 A_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {
1040	0x00000123,
1041};
1042
1043#define A_MSG_IN_BEFORE_CMD	0x00000250
1044static u32 A_MSG_IN_BEFORE_CMD_used[] __attribute((unused)) = {
1045	0x000000b9,
1046};
1047
1048#define A_MSG_IN_DURING_DATA_IN	0x00000750
1049static u32 A_MSG_IN_DURING_DATA_IN_used[] __attribute((unused)) = {
1050	0x00000091,
1051};
1052
1053#define A_MSG_OUT	0x00000090
1054static u32 A_MSG_OUT_used[] __attribute((unused)) = {
1055};
1056
1057#define A_MSG_OUT_AFTER_DATA_IN	0x00000590
1058static u32 A_MSG_OUT_AFTER_DATA_IN_used[] __attribute((unused)) = {
1059	0x000000c7,
1060};
1061
1062#define A_MessageCount	0x00000000
1063static u32 A_MessageCount_used[] __attribute((unused)) = {
1064	0x0000001e,
1065};
1066
1067#define A_MessageLocation	0x00000000
1068static u32 A_MessageLocation_used[] __attribute((unused)) = {
1069	0x0000001f,
1070};
1071
1072#define A_NOT_MSG_IN	0x00000030
1073static u32 A_NOT_MSG_IN_used[] __attribute((unused)) = {
1074};
1075
1076#define A_NOT_MSG_IN_AFTER_STATUS	0x00000430
1077static u32 A_NOT_MSG_IN_AFTER_STATUS_used[] __attribute((unused)) = {
1078	0x0000011b,
1079};
1080
1081#define A_NOT_MSG_OUT	0x00000010
1082static u32 A_NOT_MSG_OUT_used[] __attribute((unused)) = {
1083};
1084
1085#define A_NOT_MSG_OUT_AFTER_SELECTION	0x00000110
1086static u32 A_NOT_MSG_OUT_AFTER_SELECTION_used[] __attribute((unused)) = {
1087	0x00000007,
1088};
1089
1090#define A_PARITY_ERROR_MSG	0x00000009
1091static u32 A_PARITY_ERROR_MSG_used[] __attribute((unused)) = {
1092};
1093
1094#define A_REJECT_MSG	0x00000007
1095static u32 A_REJECT_MSG_used[] __attribute((unused)) = {
1096};
1097
1098#define A_REJECT_MSG_BEFORE_CMD	0x00000270
1099static u32 A_REJECT_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1100};
1101
1102#define A_REJECT_MSG_R	0x00000070
1103static u32 A_REJECT_MSG_R_used[] __attribute((unused)) = {
1104};
1105
1106#define A_RESELECTED_DURING_SELECTION	0x00001000
1107static u32 A_RESELECTED_DURING_SELECTION_used[] __attribute((unused)) = {
1108	0x0000000b,
1109};
1110
1111#define A_RESELECTION_IDENTIFIED	0x00001003
1112static u32 A_RESELECTION_IDENTIFIED_used[] __attribute((unused)) = {
1113	0x00000011,
1114	0x00000015,
1115};
1116
1117#define A_RESTORE_DATA_PTRS_MSG	0x00000003
1118static u32 A_RESTORE_DATA_PTRS_MSG_used[] __attribute((unused)) = {
1119	0x0000008e,
1120	0x00000098,
1121	0x000000b4,
1122	0x000000dc,
1123	0x00000100,
1124};
1125
1126#define A_ReceiveMsgAddress	0x00000000
1127static u32 A_ReceiveMsgAddress_used[] __attribute((unused)) = {
1128	0x0000000f,
1129	0x00000013,
1130	0x00000029,
1131	0x00000031,
1132	0x00000037,
1133	0x00000047,
1134	0x0000004d,
1135	0x00000053,
1136	0x00000059,
1137	0x0000005f,
1138	0x00000089,
1139	0x00000093,
1140	0x000000b1,
1141	0x000000d7,
1142	0x000000fb,
1143	0x0000011d,
1144};
1145
1146#define A_SAVE_DATA_PTRS_MSG	0x00000002
1147static u32 A_SAVE_DATA_PTRS_MSG_used[] __attribute((unused)) = {
1148	0x0000008c,
1149	0x00000096,
1150	0x000000b2,
1151	0x000000da,
1152	0x000000fe,
1153};
1154
1155#define A_SDTR_MSG	0x00000001
1156static u32 A_SDTR_MSG_used[] __attribute((unused)) = {
1157};
1158
1159#define A_SDTR_MSG_AFTER_CMD	0x00000360
1160static u32 A_SDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {
1161};
1162
1163#define A_SDTR_MSG_BEFORE_CMD	0x00000260
1164static u32 A_SDTR_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1165};
1166
1167#define A_SDTR_MSG_R	0x00000060
1168static u32 A_SDTR_MSG_R_used[] __attribute((unused)) = {
1169};
1170
1171#define A_SGScriptStartAddress	0x00000000
1172static u32 A_SGScriptStartAddress_used[] __attribute((unused)) = {
1173	0x000000bf,
1174	0x000000cf,
1175};
1176
1177#define A_SIMPLE_TAG_MSG	0x00000020
1178static u32 A_SIMPLE_TAG_MSG_used[] __attribute((unused)) = {
1179};
1180
1181#define A_StatusAddress	0x00000000
1182static u32 A_StatusAddress_used[] __attribute((unused)) = {
1183	0x00000119,
1184};
1185
1186#define A_TWO_BYTE_MSG	0x00000020
1187static u32 A_TWO_BYTE_MSG_used[] __attribute((unused)) = {
1188	0x0000002c,
1189};
1190
1191#define A_TWO_BYTE_MSG_MASK	0x0000000f
1192static u32 A_TWO_BYTE_MSG_MASK_used[] __attribute((unused)) = {
1193	0x0000002c,
1194};
1195
1196#define A_UNEXPECTED_MSG	0x00000040
1197static u32 A_UNEXPECTED_MSG_used[] __attribute((unused)) = {
1198};
1199
1200#define A_UNEXPECTED_MSG_BEFORE_CMD	0x00000240
1201static u32 A_UNEXPECTED_MSG_BEFORE_CMD_used[] __attribute((unused)) = {
1202};
1203
1204#define A_UNEXPECTED_PHASE	0x00000020
1205static u32 A_UNEXPECTED_PHASE_used[] __attribute((unused)) = {
1206};
1207
1208#define A_UNEXPECTED_PHASE_AFTER_CMD	0x00000320
1209static u32 A_UNEXPECTED_PHASE_AFTER_CMD_used[] __attribute((unused)) = {
1210	0x00000083,
1211};
1212
1213#define A_UNEXPECTED_PHASE_AFTER_DATA_IN	0x00000520
1214static u32 A_UNEXPECTED_PHASE_AFTER_DATA_IN_used[] __attribute((unused)) = {
1215	0x000000c9,
1216};
1217
1218#define A_UNEXPECTED_PHASE_AFTER_DATA_OUT	0x00000620
1219static u32 A_UNEXPECTED_PHASE_AFTER_DATA_OUT_used[] __attribute((unused)) = {
1220	0x000000d5,
1221};
1222
1223#define A_UNEXPECTED_PHASE_BEFORE_CMD	0x00000220
1224static u32 A_UNEXPECTED_PHASE_BEFORE_CMD_used[] __attribute((unused)) = {
1225	0x00000077,
1226};
1227
1228#define A_WDTR_MSG	0x00000003
1229static u32 A_WDTR_MSG_used[] __attribute((unused)) = {
1230};
1231
1232#define A_WDTR_MSG_AFTER_CMD	0x000003a0
1233static u32 A_WDTR_MSG_AFTER_CMD_used[] __attribute((unused)) = {
1234};
1235
1236#define A_WDTR_MSG_R	0x000000a0
1237static u32 A_WDTR_MSG_R_used[] __attribute((unused)) = {
1238};
1239
1240#define Ent_Disconnect1	0x000002a8
1241#define Ent_Disconnect2	0x000002b0
1242#define Ent_Disconnect3	0x000003a8
1243#define Ent_Disconnect4	0x000003b0
1244#define Ent_Disconnect5	0x000003d0
1245#define Ent_Disconnect6	0x000003d8
1246#define Ent_Disconnect7	0x00000448
1247#define Ent_Disconnect8	0x00000450
1248#define Ent_Finish1	0x000004a0
1249#define Ent_Finish2	0x000004a8
1250#define Ent_FinishCommandComplete	0x00000490
1251#define Ent_GetReselectionData	0x00000038
1252#define Ent_GetReselectionWithTag	0x00000048
1253#define Ent_IgnoreMessage	0x00000188
1254#define Ent_MsgInDuringData	0x00000218
1255#define Ent_ReceiveMessage	0x000000a0
1256#define Ent_SelectedAsTarget	0x00000058
1257#define Ent_SendCommand	0x000001c8
1258#define Ent_SendMessage	0x00000078
1259#define Ent_SendMessagePhaseMismatch	0x00000090
1260#define Ent_SendMessageWithATN	0x00000198
1261#define Ent_StartUp	0x00000000
1262static u32 LABELPATCHES[] __attribute((unused)) = {
1263	0x00000001,
1264	0x00000003,
1265	0x00000005,
1266	0x00000009,
1267	0x00000027,
1268	0x0000002b,
1269	0x00000039,
1270	0x0000003b,
1271	0x0000003d,
1272	0x0000003f,
1273	0x00000041,
1274	0x0000006b,
1275	0x0000006d,
1276	0x00000073,
1277	0x00000075,
1278	0x0000007b,
1279	0x0000007d,
1280	0x0000007f,
1281	0x00000081,
1282	0x00000087,
1283	0x0000008b,
1284	0x0000008d,
1285	0x0000008f,
1286	0x00000095,
1287	0x00000097,
1288	0x00000099,
1289	0x0000009b,
1290	0x000000a1,
1291	0x000000a5,
1292	0x000000af,
1293	0x000000b3,
1294	0x000000b5,
1295	0x000000b7,
1296	0x000000bd,
1297	0x000000c1,
1298	0x000000c3,
1299	0x000000c5,
1300	0x000000cd,
1301	0x000000d1,
1302	0x000000d3,
1303	0x000000d9,
1304	0x000000db,
1305	0x000000dd,
1306	0x000000df,
1307	0x000000e5,
1308	0x000000ef,
1309	0x000000f9,
1310	0x000000fd,
1311	0x000000ff,
1312	0x00000101,
1313	0x00000103,
1314	0x00000109,
1315	0x0000010d,
1316	0x00000117,
1317	0x0000011f,
1318	0x00000121,
1319};
1320
1321static struct {
1322	u32	offset;
1323	void		*address;
1324} EXTERNAL_PATCHES[] __attribute((unused)) = {
1325};
1326
1327static u32 INSTRUCTIONS __attribute((unused))	= 149;
1328static u32 PATCHES __attribute((unused))	= 56;
1329static u32 EXTERNAL_PATCHES_LEN __attribute((unused))	= 0;