diff --git a/drivers/scsi/53c7xx_d.h_shipped b/drivers/scsi/53c7xx_d.h_shipped
new file mode 100644
index 0000000..21d31b0
--- /dev/null
+++ b/drivers/scsi/53c7xx_d.h_shipped
@@ -0,0 +1,2874 @@
+/* DO NOT EDIT - Generated automatically by script_asm.pl */
+static u32 SCRIPT[] = {
+/*
+
+
+
+
+
+; 53c710 driver.  Modified from Drew Eckhardts driver
+; for 53c810 by Richard Hirst [richard@sleepie.demon.co.uk]
+;
+; I have left the script for the 53c8xx family in here, as it is likely
+; to be useful to see what I changed when bug hunting.
+
+; NCR 53c810 driver, main script
+; Sponsored by 
+;	iX Multiuser Multitasking Magazine
+;	hm@ix.de
+;
+; Copyright 1993, 1994, 1995 Drew Eckhardt
+;      Visionary Computing 
+;      (Unix and Linux consulting and custom programming)
+;      drew@PoohSticks.ORG
+;      +1 (303) 786-7975
+;
+; TolerANT and SCSI SCRIPTS are registered trademarks of NCR Corporation.
+;
+; PRE-ALPHA
+;
+; For more information, please consult 
+;
+; NCR 53C810
+; PCI-SCSI I/O Processor
+; Data Manual
+;
+; NCR 53C710 
+; SCSI I/O Processor
+; Programmers Guide
+;
+; NCR Microelectronics
+; 1635 Aeroplaza Drive
+; Colorado Springs, CO 80916
+; 1+ (719) 578-3400
+;
+; Toll free literature number
+; +1 (800) 334-5454
+;
+; IMPORTANT : This code is self modifying due to the limitations of 
+;	the NCR53c7,8xx series chips.  Persons debugging this code with
+;	the remote debugger should take this into account, and NOT set
+;	breakpoints in modified instructions.
+;
+; Design:
+; The NCR53c7,8xx family of SCSI chips are busmasters with an onboard 
+; microcontroller using a simple instruction set.   
+;
+; So, to minimize the effects of interrupt latency, and to maximize 
+; throughput, this driver offloads the practical maximum amount 
+; of processing to the SCSI chip while still maintaining a common
+; structure.
+;
+; Where tradeoffs were needed between efficiency on the older
+; chips and the newer NCR53c800 series, the NCR53c800 series 
+; was chosen.
+;
+; While the NCR53c700 and NCR53c700-66 lacked the facilities to fully
+; automate SCSI transfers without host processor intervention, this 
+; isn't the case with the NCR53c710 and newer chips which allow 
+;
+; - reads and writes to the internal registers from within the SCSI
+; 	scripts, allowing the SCSI SCRIPTS(tm) code to save processor
+; 	state so that multiple threads of execution are possible, and also
+; 	provide an ALU for loop control, etc.
+; 
+; - table indirect addressing for some instructions. This allows 
+;	pointers to be located relative to the DSA ((Data Structure
+;	Address) register.
+;
+; These features make it possible to implement a mailbox style interface,
+; where the same piece of code is run to handle I/O for multiple threads
+; at once minimizing our need to relocate code.  Since the NCR53c700/
+; NCR53c800 series have a unique combination of features, making a 
+; a standard ingoing/outgoing mailbox system, costly, I've modified it.
+;
+; - Mailboxes are a mixture of code and data.  This lets us greatly
+; 	simplify the NCR53c810 code and do things that would otherwise
+;	not be possible.
+;
+; The saved data pointer is now implemented as follows :
+;
+; 	Control flow has been architected such that if control reaches
+;	munge_save_data_pointer, on a restore pointers message or 
+;	reconnection, a jump to the address formerly in the TEMP register
+;	will allow the SCSI command to resume execution.
+;
+
+;
+; Note : the DSA structures must be aligned on 32 bit boundaries,
+; since the source and destination of MOVE MEMORY instructions 
+; must share the same alignment and this is the alignment of the
+; NCR registers.
+;
+
+; For some systems (MVME166, for example) dmode is always the same, so don't
+; waste time writing it
+
+
+
+
+
+
+
+
+
+
+
+ABSOLUTE dsa_temp_lun = 0		; Patch to lun for current dsa
+ABSOLUTE dsa_temp_next = 0		; Patch to dsa next for current dsa
+ABSOLUTE dsa_temp_addr_next = 0		; Patch to address of dsa next address 
+					; 	for current dsa
+ABSOLUTE dsa_temp_sync = 0		; Patch to address of per-target
+					;	sync routine
+ABSOLUTE dsa_sscf_710 = 0		; Patch to address of per-target
+					;	sscf value (53c710)
+ABSOLUTE dsa_temp_target = 0		; Patch to id for current dsa
+ABSOLUTE dsa_temp_addr_saved_pointer = 0; Patch to address of per-command
+					; 	saved data pointer
+ABSOLUTE dsa_temp_addr_residual = 0	; Patch to address of per-command
+					;	current residual code
+ABSOLUTE dsa_temp_addr_saved_residual = 0; Patch to address of per-command
+					; saved residual code
+ABSOLUTE dsa_temp_addr_new_value = 0	; Address of value for JUMP operand
+ABSOLUTE dsa_temp_addr_array_value = 0 	; Address to copy to
+ABSOLUTE dsa_temp_addr_dsa_value = 0	; Address of this DSA value
+
+;
+; Once a device has initiated reselection, we need to compare it 
+; against the singly linked list of commands which have disconnected
+; and are pending reselection.  These commands are maintained in 
+; an unordered singly linked list of DSA structures, through the
+; DSA pointers at their 'centers' headed by the reconnect_dsa_head
+; pointer.
+; 
+; To avoid complications in removing commands from the list,
+; I minimize the amount of expensive (at eight operations per
+; addition @ 500-600ns each) pointer operations which must
+; be done in the NCR driver by precomputing them on the 
+; host processor during dsa structure generation.
+;
+; The fixed-up per DSA code knows how to recognize the nexus
+; associated with the corresponding SCSI command, and modifies
+; the source and destination pointers for the MOVE MEMORY 
+; instruction which is executed when reselected_ok is called
+; to remove the command from the list.  Similarly, DSA is 
+; loaded with the address of the next DSA structure and
+; reselected_check_next is called if a failure occurs.
+;
+; Perhaps more concisely, the net effect of the mess is 
+;
+; for (dsa = reconnect_dsa_head, dest = &reconnect_dsa_head, 
+;     src = NULL; dsa; dest = &dsa->next, dsa = dsa->next) {
+; 	src = &dsa->next;
+; 	if (target_id == dsa->id && target_lun == dsa->lun) {
+; 		*dest = *src;
+; 		break;
+;         }	
+; }
+;
+; if (!dsa)
+;           error (int_err_unexpected_reselect);
+; else  
+;     longjmp (dsa->jump_resume, 0);
+;
+; 	
+
+
+; Define DSA structure used for mailboxes
+ENTRY dsa_code_template
+dsa_code_template:
+ENTRY dsa_code_begin
+dsa_code_begin:
+; RGH: Don't care about TEMP and DSA here
+	
+	MOVE MEMORY 4, dsa_temp_addr_dsa_value, addr_scratch
+
+at 0x00000000 : */	0xc0000004,0x00000000,0x00000000,
+/*
+	
+
+	MOVE MEMORY 4, addr_scratch, saved_dsa
+
+at 0x00000003 : */	0xc0000004,0x00000000,0x00000000,
+/*
+	; We are about to go and select the device, so must set SSCF bits
+	MOVE MEMORY 4, dsa_sscf_710, addr_scratch
+
+at 0x00000006 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+	MOVE SCRATCH3 TO SFBR
+
+at 0x00000009 : */	0x72370000,0x00000000,
+/*
+
+
+
+	MOVE SFBR TO SBCL
+
+at 0x0000000b : */	0x6a0b0000,0x00000000,
+/*
+	MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x0000000d : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+	CALL select
+
+at 0x00000010 : */	0x88080000,0x000001f8,
+/*
+; Handle the phase mismatch which may have resulted from the 
+; MOVE FROM dsa_msgout if we returned here.  The CLEAR ATN 
+; may or may not be necessary, and we should update script_asm.pl
+; to handle multiple pieces.
+    CLEAR ATN
+
+at 0x00000012 : */	0x60000008,0x00000000,
+/*
+    CLEAR ACK
+
+at 0x00000014 : */	0x60000040,0x00000000,
+/*
+
+; Replace second operand with address of JUMP instruction dest operand
+; in schedule table for this DSA.  Becomes dsa_jump_dest in 53c7,8xx.c.
+ENTRY dsa_code_fix_jump
+dsa_code_fix_jump:
+	MOVE MEMORY 4, NOP_insn, 0
+
+at 0x00000016 : */	0xc0000004,0x00000000,0x00000000,
+/*
+	JUMP select_done
+
+at 0x00000019 : */	0x80080000,0x00000230,
+/*
+
+; wrong_dsa loads the DSA register with the value of the dsa_next
+; field.
+;
+wrong_dsa:
+
+;                NOTE DSA is corrupt when we arrive here!
+
+;		Patch the MOVE MEMORY INSTRUCTION such that 
+;		the destination address is the address of the OLD 
+;		next pointer.
+;
+	MOVE MEMORY 4, dsa_temp_addr_next, reselected_ok_patch + 8
+
+at 0x0000001b : */	0xc0000004,0x00000000,0x000007ec,
+/*
+	
+;
+; 	Move the _contents_ of the next pointer into the DSA register as 
+;	the next I_T_L or I_T_L_Q tupple to check against the established
+;	nexus.
+;
+	MOVE MEMORY 4, dsa_temp_next, addr_scratch
+
+at 0x0000001e : */	0xc0000004,0x00000000,0x00000000,
+/*
+	
+
+	MOVE MEMORY 4, addr_scratch, saved_dsa
+
+at 0x00000021 : */	0xc0000004,0x00000000,0x00000000,
+/*
+	MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x00000024 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+	JUMP reselected_check_next
+
+at 0x00000027 : */	0x80080000,0x000006f0,
+/*
+
+ABSOLUTE dsa_save_data_pointer = 0
+ENTRY dsa_code_save_data_pointer
+dsa_code_save_data_pointer:
+
+	; When we get here, TEMP has been saved in jump_temp+4, DSA is corrupt
+	; We MUST return with DSA correct
+    	MOVE MEMORY 4, jump_temp+4, dsa_temp_addr_saved_pointer
+
+at 0x00000029 : */	0xc0000004,0x000009c8,0x00000000,
+/*
+; HARD CODED : 24 bytes needs to agree with 53c7,8xx.h
+    	MOVE MEMORY 24, dsa_temp_addr_residual, dsa_temp_addr_saved_residual
+
+at 0x0000002c : */	0xc0000018,0x00000000,0x00000000,
+/*
+        CLEAR ACK
+
+at 0x0000002f : */	0x60000040,0x00000000,
+/*
+
+
+
+	MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x00000031 : */	0xc0000004,0x00000000,0x00000000,
+/*
+	JUMP jump_temp
+
+at 0x00000034 : */	0x80080000,0x000009c4,
+/*
+
+ABSOLUTE dsa_restore_pointers = 0
+ENTRY dsa_code_restore_pointers
+dsa_code_restore_pointers:
+
+	; TEMP and DSA are corrupt when we get here, but who cares!
+    	MOVE MEMORY 4, dsa_temp_addr_saved_pointer, jump_temp + 4
+
+at 0x00000036 : */	0xc0000004,0x00000000,0x000009c8,
+/*
+; HARD CODED : 24 bytes needs to agree with 53c7,8xx.h
+    	MOVE MEMORY 24, dsa_temp_addr_saved_residual, dsa_temp_addr_residual
+
+at 0x00000039 : */	0xc0000018,0x00000000,0x00000000,
+/*
+        CLEAR ACK
+
+at 0x0000003c : */	0x60000040,0x00000000,
+/*
+	; Restore DSA, note we don't care about TEMP
+	MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x0000003e : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+	JUMP jump_temp
+
+at 0x00000041 : */	0x80080000,0x000009c4,
+/*
+
+
+ABSOLUTE dsa_check_reselect = 0
+; dsa_check_reselect determines whether or not the current target and
+; lun match the current DSA
+ENTRY dsa_code_check_reselect
+dsa_code_check_reselect:
+
+	
+	
+	MOVE LCRC TO SFBR		; LCRC has our ID and his ID bits set
+
+at 0x00000043 : */	0x72230000,0x00000000,
+/*
+	JUMP REL (wrong_dsa), IF NOT dsa_temp_target, AND MASK 0x80
+
+at 0x00000045 : */	0x80848000,0x00ffff50,
+/*
+
+
+
+
+
+;
+; Hack - move to scratch first, since SFBR is not writeable
+; 	via the CPU and hence a MOVE MEMORY instruction.
+;
+	
+	MOVE MEMORY 1, reselected_identify, addr_scratch
+
+at 0x00000047 : */	0xc0000001,0x00000000,0x00000000,
+/*
+	
+
+	; BIG ENDIAN ON MVME16x
+	MOVE SCRATCH3 TO SFBR
+
+at 0x0000004a : */	0x72370000,0x00000000,
+/*
+
+
+
+; FIXME : we need to accommodate bit fielded and binary here for '7xx/'8xx chips
+; Are you sure about that?  richard@sleepie.demon.co.uk
+	JUMP REL (wrong_dsa), IF NOT dsa_temp_lun, AND MASK 0xf8
+
+at 0x0000004c : */	0x8084f800,0x00ffff34,
+/*
+;		Patch the MOVE MEMORY INSTRUCTION such that
+;		the source address is the address of this dsa's
+;		next pointer.
+	MOVE MEMORY 4, dsa_temp_addr_next, reselected_ok_patch + 4
+
+at 0x0000004e : */	0xc0000004,0x00000000,0x000007e8,
+/*
+	CALL reselected_ok
+
+at 0x00000051 : */	0x88080000,0x00000798,
+/*
+
+;	Restore DSA following memory moves in reselected_ok
+;	dsa_temp_sync doesn't really care about DSA, but it has an
+;	optional debug INT so a valid DSA is a good idea.
+	MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x00000053 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+	CALL dsa_temp_sync	
+
+at 0x00000056 : */	0x88080000,0x00000000,
+/*
+; Release ACK on the IDENTIFY message _after_ we've set the synchronous 
+; transfer parameters! 
+	CLEAR ACK
+
+at 0x00000058 : */	0x60000040,0x00000000,
+/*
+; Implicitly restore pointers on reselection, so a RETURN
+; will transfer control back to the right spot.
+    	CALL REL (dsa_code_restore_pointers)
+
+at 0x0000005a : */	0x88880000,0x00ffff68,
+/*
+    	RETURN
+
+at 0x0000005c : */	0x90080000,0x00000000,
+/*
+ENTRY dsa_zero
+dsa_zero:
+ENTRY dsa_code_template_end
+dsa_code_template_end:
+
+; Perform sanity check for dsa_fields_start == dsa_code_template_end - 
+; dsa_zero, puke.
+
+ABSOLUTE dsa_fields_start =  0	; Sanity marker
+				; 	pad 48 bytes (fix this RSN)
+ABSOLUTE dsa_next = 48		; len 4 Next DSA
+ 				; del 4 Previous DSA address
+ABSOLUTE dsa_cmnd = 56		; len 4 Scsi_Cmnd * for this thread.
+ABSOLUTE dsa_select = 60	; len 4 Device ID, Period, Offset for 
+			 	;	table indirect select
+ABSOLUTE dsa_msgout = 64	; len 8 table indirect move parameter for 
+				;       select message
+ABSOLUTE dsa_cmdout = 72	; len 8 table indirect move parameter for 
+				;	command
+ABSOLUTE dsa_dataout = 80	; len 4 code pointer for dataout
+ABSOLUTE dsa_datain = 84	; len 4 code pointer for datain
+ABSOLUTE dsa_msgin = 88		; len 8 table indirect move for msgin
+ABSOLUTE dsa_status = 96 	; len 8 table indirect move for status byte
+ABSOLUTE dsa_msgout_other = 104	; len 8 table indirect for normal message out
+				; (Synchronous transfer negotiation, etc).
+ABSOLUTE dsa_end = 112
+
+ABSOLUTE schedule = 0 		; Array of JUMP dsa_begin or JUMP (next),
+				; terminated by a call to JUMP wait_reselect
+
+; Linked lists of DSA structures
+ABSOLUTE reconnect_dsa_head = 0	; Link list of DSAs which can reconnect
+ABSOLUTE addr_reconnect_dsa_head = 0 ; Address of variable containing
+				; address of reconnect_dsa_head
+
+; These select the source and destination of a MOVE MEMORY instruction
+ABSOLUTE dmode_memory_to_memory = 0x0
+ABSOLUTE dmode_memory_to_ncr = 0x0
+ABSOLUTE dmode_ncr_to_memory = 0x0
+
+ABSOLUTE addr_scratch = 0x0
+ABSOLUTE addr_temp = 0x0
+
+ABSOLUTE saved_dsa = 0x0
+ABSOLUTE emulfly = 0x0
+ABSOLUTE addr_dsa = 0x0
+
+
+
+; Interrupts - 
+; MSB indicates type
+; 0	handle error condition
+; 1 	handle message 
+; 2 	handle normal condition
+; 3	debugging interrupt
+; 4 	testing interrupt 
+; Next byte indicates specific error
+
+; XXX not yet implemented, I'm not sure if I want to - 
+; Next byte indicates the routine the error occurred in
+; The LSB indicates the specific place the error occurred
+ 
+ABSOLUTE int_err_unexpected_phase = 0x00000000	; Unexpected phase encountered
+ABSOLUTE int_err_selected = 0x00010000		; SELECTED (nee RESELECTED)
+ABSOLUTE int_err_unexpected_reselect = 0x00020000 
+ABSOLUTE int_err_check_condition = 0x00030000	
+ABSOLUTE int_err_no_phase = 0x00040000
+ABSOLUTE int_msg_wdtr = 0x01000000		; WDTR message received
+ABSOLUTE int_msg_sdtr = 0x01010000		; SDTR received
+ABSOLUTE int_msg_1 = 0x01020000			; single byte special message
+						; received
+
+ABSOLUTE int_norm_select_complete = 0x02000000	; Select complete, reprogram
+						; registers.
+ABSOLUTE int_norm_reselect_complete = 0x02010000	; Nexus established
+ABSOLUTE int_norm_command_complete = 0x02020000 ; Command complete
+ABSOLUTE int_norm_disconnected = 0x02030000	; Disconnected 
+ABSOLUTE int_norm_aborted =0x02040000		; Aborted *dsa
+ABSOLUTE int_norm_reset = 0x02050000		; Generated BUS reset.
+ABSOLUTE int_norm_emulateintfly = 0x02060000	; 53C710 Emulated intfly
+ABSOLUTE int_debug_break = 0x03000000		; Break point
+
+ABSOLUTE int_debug_panic = 0x030b0000		; Panic driver
+
+
+ABSOLUTE int_test_1 = 0x04000000		; Test 1 complete
+ABSOLUTE int_test_2 = 0x04010000		; Test 2 complete
+ABSOLUTE int_test_3 = 0x04020000		; Test 3 complete
+
+
+; These should start with 0x05000000, with low bits incrementing for 
+; each one.
+
+
+						
+ABSOLUTE NCR53c7xx_msg_abort = 0	; Pointer to abort message
+ABSOLUTE NCR53c7xx_msg_reject = 0       ; Pointer to reject message
+ABSOLUTE NCR53c7xx_zero	= 0		; long with zero in it, use for source
+ABSOLUTE NCR53c7xx_sink = 0		; long to dump worthless data in
+ABSOLUTE NOP_insn = 0			; NOP instruction
+
+; Pointer to message, potentially multi-byte
+ABSOLUTE msg_buf = 0
+
+; Pointer to holding area for reselection information
+ABSOLUTE reselected_identify = 0
+ABSOLUTE reselected_tag = 0
+
+; Request sense command pointer, it's a 6 byte command, should
+; be constant for all commands since we always want 16 bytes of 
+; sense and we don't need to change any fields as we did under 
+; SCSI-I when we actually cared about the LUN field.
+;EXTERNAL NCR53c7xx_sense		; Request sense command
+
+
+; dsa_schedule  
+; PURPOSE : after a DISCONNECT message has been received, and pointers
+;	saved, insert the current DSA structure at the head of the 
+; 	disconnected queue and fall through to the scheduler.
+;
+; CALLS : OK
+;
+; INPUTS : dsa - current DSA structure, reconnect_dsa_head - list
+;	of disconnected commands
+;
+; MODIFIES : SCRATCH, reconnect_dsa_head
+; 
+; EXITS : always passes control to schedule
+
+ENTRY dsa_schedule
+dsa_schedule:
+
+
+
+
+;
+; Calculate the address of the next pointer within the DSA 
+; structure of the command that is currently disconnecting
+;
+
+    ; Read what should be the current DSA from memory - actual DSA
+    ; register is probably corrupt
+    MOVE MEMORY 4, saved_dsa, addr_scratch
+
+at 0x0000005e : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+    MOVE SCRATCH0 + dsa_next TO SCRATCH0
+
+at 0x00000061 : */	0x7e343000,0x00000000,
+/*
+    MOVE SCRATCH1 + 0 TO SCRATCH1 WITH CARRY
+
+at 0x00000063 : */	0x7f350000,0x00000000,
+/*
+    MOVE SCRATCH2 + 0 TO SCRATCH2 WITH CARRY
+
+at 0x00000065 : */	0x7f360000,0x00000000,
+/*
+    MOVE SCRATCH3 + 0 TO SCRATCH3 WITH CARRY
+
+at 0x00000067 : */	0x7f370000,0x00000000,
+/*
+
+; Point the next field of this DSA structure at the current disconnected 
+; list
+    
+    MOVE MEMORY 4, addr_scratch, dsa_schedule_insert + 8
+
+at 0x00000069 : */	0xc0000004,0x00000000,0x000001b8,
+/*
+    
+dsa_schedule_insert:
+    MOVE MEMORY 4, reconnect_dsa_head, 0 
+
+at 0x0000006c : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+; And update the head pointer.
+
+    ; Read what should be the current DSA from memory - actual DSA
+    ; register is probably corrupt
+    MOVE MEMORY 4, saved_dsa, addr_scratch
+
+at 0x0000006f : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+    
+    MOVE MEMORY 4, addr_scratch, reconnect_dsa_head
+
+at 0x00000072 : */	0xc0000004,0x00000000,0x00000000,
+/*
+    
+
+
+
+
+
+    CLEAR ACK
+
+at 0x00000075 : */	0x60000040,0x00000000,
+/*
+
+
+    ; Time to correct DSA following memory move
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x00000077 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+    WAIT DISCONNECT
+
+at 0x0000007a : */	0x48000000,0x00000000,
+/*
+
+
+
+
+
+
+    JUMP schedule
+
+at 0x0000007c : */	0x80080000,0x00000000,
+/*
+
+
+;
+; select
+;
+; PURPOSE : establish a nexus for the SCSI command referenced by DSA.
+;	On success, the current DSA structure is removed from the issue 
+;	queue.  Usually, this is entered as a fall-through from schedule,
+;	although the contingent allegiance handling code will write
+;	the select entry address to the DSP to restart a command as a 
+;	REQUEST SENSE.  A message is sent (usually IDENTIFY, although
+;	additional SDTR or WDTR messages may be sent).  COMMAND OUT
+;	is handled.
+;
+; INPUTS : DSA - SCSI command, issue_dsa_head
+;
+; CALLS : NOT OK
+;
+; MODIFIES : SCRATCH, issue_dsa_head
+;
+; EXITS : on reselection or selection, go to select_failed
+;	otherwise, RETURN so control is passed back to 
+;	dsa_begin.
+;
+
+ENTRY select
+select:
+
+
+
+
+
+
+
+
+    CLEAR TARGET
+
+at 0x0000007e : */	0x60000200,0x00000000,
+/*
+
+; XXX
+;
+; In effect, SELECTION operations are backgrounded, with execution
+; continuing until code which waits for REQ or a fatal interrupt is 
+; encountered.
+;
+; So, for more performance, we could overlap the code which removes 
+; the command from the NCRs issue queue with the selection, but 
+; at this point I don't want to deal with the error recovery.
+;
+
+
+
+    ; Enable selection timer
+
+
+
+    MOVE CTEST7 & 0xef TO CTEST7
+
+at 0x00000080 : */	0x7c1bef00,0x00000000,
+/*
+
+
+    SELECT ATN FROM dsa_select, select_failed
+
+at 0x00000082 : */	0x4300003c,0x00000828,
+/*
+    JUMP select_msgout, WHEN MSG_OUT
+
+at 0x00000084 : */	0x860b0000,0x00000218,
+/*
+ENTRY select_msgout
+select_msgout:
+
+    ; Disable selection timer
+    MOVE CTEST7 | 0x10 TO CTEST7
+
+at 0x00000086 : */	0x7a1b1000,0x00000000,
+/*
+
+    MOVE FROM dsa_msgout, WHEN MSG_OUT
+
+at 0x00000088 : */	0x1e000000,0x00000040,
+/*
+
+
+
+
+
+
+
+
+
+
+   RETURN
+
+at 0x0000008a : */	0x90080000,0x00000000,
+/*
+
+; 
+; select_done
+; 
+; PURPOSE: continue on to normal data transfer; called as the exit 
+;	point from dsa_begin.
+;
+; INPUTS: dsa
+;
+; CALLS: OK
+;
+;
+
+select_done:
+
+; NOTE DSA is corrupt when we arrive here!
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x0000008c : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+
+
+
+
+
+; After a successful selection, we should get either a CMD phase or 
+; some transfer request negotiation message.
+
+    JUMP cmdout, WHEN CMD
+
+at 0x0000008f : */	0x820b0000,0x0000025c,
+/*
+    INT int_err_unexpected_phase, WHEN NOT MSG_IN 
+
+at 0x00000091 : */	0x9f030000,0x00000000,
+/*
+
+select_msg_in:
+    CALL msg_in, WHEN MSG_IN
+
+at 0x00000093 : */	0x8f0b0000,0x0000041c,
+/*
+    JUMP select_msg_in, WHEN MSG_IN
+
+at 0x00000095 : */	0x870b0000,0x0000024c,
+/*
+
+cmdout:
+    INT int_err_unexpected_phase, WHEN NOT CMD
+
+at 0x00000097 : */	0x9a030000,0x00000000,
+/*
+
+
+
+ENTRY cmdout_cmdout
+cmdout_cmdout:
+
+    MOVE FROM dsa_cmdout, WHEN CMD
+
+at 0x00000099 : */	0x1a000000,0x00000048,
+/*
+
+
+
+
+;
+; data_transfer  
+; other_out
+; other_in
+; other_transfer
+;
+; PURPOSE : handle the main data transfer for a SCSI command in 
+;	several parts.  In the first part, data_transfer, DATA_IN
+;	and DATA_OUT phases are allowed, with the user provided
+;	code (usually dynamically generated based on the scatter/gather
+;	list associated with a SCSI command) called to handle these 
+;	phases.
+;
+;	After control has passed to one of the user provided 
+;	DATA_IN or DATA_OUT routines, back calls are made to 
+;	other_transfer_in or other_transfer_out to handle non-DATA IN
+;	and DATA OUT phases respectively, with the state of the active
+;	data pointer being preserved in TEMP.
+;
+;	On completion, the user code passes control to other_transfer
+;	which causes DATA_IN and DATA_OUT to result in unexpected_phase
+;	interrupts so that data overruns may be trapped.
+;
+; INPUTS : DSA - SCSI command
+;
+; CALLS : OK in data_transfer_start, not ok in other_out and other_in, ok in
+;	other_transfer
+;
+; MODIFIES : SCRATCH
+;
+; EXITS : if STATUS IN is detected, signifying command completion,
+;	the NCR jumps to command_complete.  If MSG IN occurs, a 
+;	CALL is made to msg_in.  Otherwise, other_transfer runs in 
+;	an infinite loop.
+;	
+
+ENTRY data_transfer
+data_transfer:
+    JUMP cmdout_cmdout, WHEN CMD
+
+at 0x0000009b : */	0x820b0000,0x00000264,
+/*
+    CALL msg_in, WHEN MSG_IN
+
+at 0x0000009d : */	0x8f0b0000,0x0000041c,
+/*
+    INT int_err_unexpected_phase, WHEN MSG_OUT
+
+at 0x0000009f : */	0x9e0b0000,0x00000000,
+/*
+    JUMP do_dataout, WHEN DATA_OUT
+
+at 0x000000a1 : */	0x800b0000,0x000002a4,
+/*
+    JUMP do_datain, WHEN DATA_IN
+
+at 0x000000a3 : */	0x810b0000,0x000002fc,
+/*
+    JUMP command_complete, WHEN STATUS
+
+at 0x000000a5 : */	0x830b0000,0x0000065c,
+/*
+    JUMP data_transfer
+
+at 0x000000a7 : */	0x80080000,0x0000026c,
+/*
+ENTRY end_data_transfer
+end_data_transfer:
+
+;
+; FIXME: On NCR53c700 and NCR53c700-66 chips, do_dataout/do_datain 
+; should be fixed up whenever the nexus changes so it can point to the 
+; correct routine for that command.
+;
+
+
+; Nasty jump to dsa->dataout
+do_dataout:
+
+    MOVE MEMORY 4, saved_dsa, addr_scratch
+
+at 0x000000a9 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+    MOVE SCRATCH0 + dsa_dataout TO SCRATCH0	
+
+at 0x000000ac : */	0x7e345000,0x00000000,
+/*
+    MOVE SCRATCH1 + 0 TO SCRATCH1 WITH CARRY 
+
+at 0x000000ae : */	0x7f350000,0x00000000,
+/*
+    MOVE SCRATCH2 + 0 TO SCRATCH2 WITH CARRY 
+
+at 0x000000b0 : */	0x7f360000,0x00000000,
+/*
+    MOVE SCRATCH3 + 0 TO SCRATCH3 WITH CARRY 
+
+at 0x000000b2 : */	0x7f370000,0x00000000,
+/*
+    
+    MOVE MEMORY 4, addr_scratch, dataout_to_jump + 4
+
+at 0x000000b4 : */	0xc0000004,0x00000000,0x000002e0,
+/*
+    
+dataout_to_jump:
+    MOVE MEMORY 4, 0, dataout_jump + 4 
+
+at 0x000000b7 : */	0xc0000004,0x00000000,0x000002f8,
+/*
+
+    ; Time to correct DSA following memory move
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x000000ba : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+dataout_jump:
+    JUMP 0
+
+at 0x000000bd : */	0x80080000,0x00000000,
+/*
+
+; Nasty jump to dsa->dsain
+do_datain:
+
+    MOVE MEMORY 4, saved_dsa, addr_scratch
+
+at 0x000000bf : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+    MOVE SCRATCH0 + dsa_datain TO SCRATCH0	
+
+at 0x000000c2 : */	0x7e345400,0x00000000,
+/*
+    MOVE SCRATCH1 + 0 TO SCRATCH1 WITH CARRY 
+
+at 0x000000c4 : */	0x7f350000,0x00000000,
+/*
+    MOVE SCRATCH2 + 0 TO SCRATCH2 WITH CARRY 
+
+at 0x000000c6 : */	0x7f360000,0x00000000,
+/*
+    MOVE SCRATCH3 + 0 TO SCRATCH3 WITH CARRY 
+
+at 0x000000c8 : */	0x7f370000,0x00000000,
+/*
+    
+    MOVE MEMORY 4, addr_scratch, datain_to_jump + 4
+
+at 0x000000ca : */	0xc0000004,0x00000000,0x00000338,
+/*
+    
+ENTRY datain_to_jump
+datain_to_jump:
+    MOVE MEMORY 4, 0, datain_jump + 4
+
+at 0x000000cd : */	0xc0000004,0x00000000,0x00000350,
+/*
+
+    ; Time to correct DSA following memory move
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x000000d0 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+
+datain_jump:
+    JUMP 0
+
+at 0x000000d3 : */	0x80080000,0x00000000,
+/*
+
+
+
+; Note that other_out and other_in loop until a non-data phase
+; is discovered, so we only execute return statements when we
+; can go on to the next data phase block move statement.
+
+ENTRY other_out
+other_out:
+
+
+
+    INT int_err_unexpected_phase, WHEN CMD
+
+at 0x000000d5 : */	0x9a0b0000,0x00000000,
+/*
+    JUMP msg_in_restart, WHEN MSG_IN 
+
+at 0x000000d7 : */	0x870b0000,0x000003fc,
+/*
+    INT int_err_unexpected_phase, WHEN MSG_OUT
+
+at 0x000000d9 : */	0x9e0b0000,0x00000000,
+/*
+    INT int_err_unexpected_phase, WHEN DATA_IN
+
+at 0x000000db : */	0x990b0000,0x00000000,
+/*
+    JUMP command_complete, WHEN STATUS
+
+at 0x000000dd : */	0x830b0000,0x0000065c,
+/*
+    JUMP other_out, WHEN NOT DATA_OUT
+
+at 0x000000df : */	0x80030000,0x00000354,
+/*
+
+; TEMP should be OK, as we got here from a call in the user dataout code.
+
+    RETURN
+
+at 0x000000e1 : */	0x90080000,0x00000000,
+/*
+
+ENTRY other_in
+other_in:
+
+
+
+    INT int_err_unexpected_phase, WHEN CMD
+
+at 0x000000e3 : */	0x9a0b0000,0x00000000,
+/*
+    JUMP msg_in_restart, WHEN MSG_IN 
+
+at 0x000000e5 : */	0x870b0000,0x000003fc,
+/*
+    INT int_err_unexpected_phase, WHEN MSG_OUT
+
+at 0x000000e7 : */	0x9e0b0000,0x00000000,
+/*
+    INT int_err_unexpected_phase, WHEN DATA_OUT
+
+at 0x000000e9 : */	0x980b0000,0x00000000,
+/*
+    JUMP command_complete, WHEN STATUS
+
+at 0x000000eb : */	0x830b0000,0x0000065c,
+/*
+    JUMP other_in, WHEN NOT DATA_IN
+
+at 0x000000ed : */	0x81030000,0x0000038c,
+/*
+
+; TEMP should be OK, as we got here from a call in the user datain code.
+
+    RETURN
+
+at 0x000000ef : */	0x90080000,0x00000000,
+/*
+
+
+ENTRY other_transfer
+other_transfer:
+    INT int_err_unexpected_phase, WHEN CMD
+
+at 0x000000f1 : */	0x9a0b0000,0x00000000,
+/*
+    CALL msg_in, WHEN MSG_IN
+
+at 0x000000f3 : */	0x8f0b0000,0x0000041c,
+/*
+    INT int_err_unexpected_phase, WHEN MSG_OUT
+
+at 0x000000f5 : */	0x9e0b0000,0x00000000,
+/*
+    INT int_err_unexpected_phase, WHEN DATA_OUT
+
+at 0x000000f7 : */	0x980b0000,0x00000000,
+/*
+    INT int_err_unexpected_phase, WHEN DATA_IN
+
+at 0x000000f9 : */	0x990b0000,0x00000000,
+/*
+    JUMP command_complete, WHEN STATUS
+
+at 0x000000fb : */	0x830b0000,0x0000065c,
+/*
+    JUMP other_transfer
+
+at 0x000000fd : */	0x80080000,0x000003c4,
+/*
+
+;
+; msg_in_restart
+; msg_in
+; munge_msg
+;
+; PURPOSE : process messages from a target.  msg_in is called when the 
+;	caller hasn't read the first byte of the message.  munge_message
+;	is called when the caller has read the first byte of the message,
+;	and left it in SFBR.  msg_in_restart is called when the caller 
+;	hasn't read the first byte of the message, and wishes RETURN
+;	to transfer control back to the address of the conditional
+;	CALL instruction rather than to the instruction after it.
+;
+;	Various int_* interrupts are generated when the host system
+;	needs to intervene, as is the case with SDTR, WDTR, and
+;	INITIATE RECOVERY messages.
+;
+;	When the host system handles one of these interrupts,
+;	it can respond by reentering at reject_message, 
+;	which rejects the message and returns control to
+;	the caller of msg_in or munge_msg, accept_message
+;	which clears ACK and returns control, or reply_message
+;	which sends the message pointed to by the DSA 
+;	msgout_other table indirect field.
+;
+;	DISCONNECT messages are handled by moving the command
+;	to the reconnect_dsa_queue.
+
+; NOTE: DSA should be valid when we get here - we cannot save both it
+;	and TEMP in this routine.
+
+;
+; INPUTS : DSA - SCSI COMMAND, SFBR - first byte of message (munge_msg
+;	only)
+;
+; CALLS : NO.  The TEMP register isn't backed up to allow nested calls.
+;
+; MODIFIES : SCRATCH, DSA on DISCONNECT
+;
+; EXITS : On receipt of SAVE DATA POINTER, RESTORE POINTERS,
+;	and normal return from message handlers running under
+;	Linux, control is returned to the caller.  Receipt
+;	of DISCONNECT messages pass control to dsa_schedule.
+;
+ENTRY msg_in_restart
+msg_in_restart:
+; XXX - hackish
+;
+; Since it's easier to debug changes to the statically 
+; compiled code, rather than the dynamically generated 
+; stuff, such as
+;
+; 	MOVE x, y, WHEN data_phase
+; 	CALL other_z, WHEN NOT data_phase
+; 	MOVE x, y, WHEN data_phase
+;
+; I'd like to have certain routines (notably the message handler)
+; restart on the conditional call rather than the next instruction.
+;
+; So, subtract 8 from the return address
+
+    MOVE TEMP0 + 0xf8 TO TEMP0
+
+at 0x000000ff : */	0x7e1cf800,0x00000000,
+/*
+    MOVE TEMP1 + 0xff TO TEMP1 WITH CARRY
+
+at 0x00000101 : */	0x7f1dff00,0x00000000,
+/*
+    MOVE TEMP2 + 0xff TO TEMP2 WITH CARRY
+
+at 0x00000103 : */	0x7f1eff00,0x00000000,
+/*
+    MOVE TEMP3 + 0xff TO TEMP3 WITH CARRY
+
+at 0x00000105 : */	0x7f1fff00,0x00000000,
+/*
+
+ENTRY msg_in
+msg_in:
+    MOVE 1, msg_buf, WHEN MSG_IN
+
+at 0x00000107 : */	0x0f000001,0x00000000,
+/*
+
+munge_msg:
+    JUMP munge_extended, IF 0x01		; EXTENDED MESSAGE
+
+at 0x00000109 : */	0x800c0001,0x00000574,
+/*
+    JUMP munge_2, IF 0x20, AND MASK 0xdf	; two byte message
+
+at 0x0000010b : */	0x800cdf20,0x00000464,
+/*
+;
+; XXX - I've seen a handful of broken SCSI devices which fail to issue
+; 	a SAVE POINTERS message before disconnecting in the middle of 
+; 	a transfer, assuming that the DATA POINTER will be implicitly 
+; 	restored.  
+;
+; Historically, I've often done an implicit save when the DISCONNECT
+; message is processed.  We may want to consider having the option of 
+; doing that here. 
+;
+    JUMP munge_save_data_pointer, IF 0x02	; SAVE DATA POINTER
+
+at 0x0000010d : */	0x800c0002,0x0000046c,
+/*
+    JUMP munge_restore_pointers, IF 0x03	; RESTORE POINTERS 
+
+at 0x0000010f : */	0x800c0003,0x00000518,
+/*
+    JUMP munge_disconnect, IF 0x04		; DISCONNECT
+
+at 0x00000111 : */	0x800c0004,0x0000056c,
+/*
+    INT int_msg_1, IF 0x07			; MESSAGE REJECT
+
+at 0x00000113 : */	0x980c0007,0x01020000,
+/*
+    INT int_msg_1, IF 0x0f			; INITIATE RECOVERY
+
+at 0x00000115 : */	0x980c000f,0x01020000,
+/*
+
+
+
+    JUMP reject_message
+
+at 0x00000117 : */	0x80080000,0x00000604,
+/*
+
+munge_2:
+    JUMP reject_message
+
+at 0x00000119 : */	0x80080000,0x00000604,
+/*
+;
+; The SCSI standard allows targets to recover from transient 
+; error conditions by backing up the data pointer with a 
+; RESTORE POINTERS message.  
+;	
+; So, we must save and restore the _residual_ code as well as 
+; the current instruction pointer.  Because of this messiness,
+; it is simpler to put dynamic code in the dsa for this and to
+; just do a simple jump down there. 
+;
+
+munge_save_data_pointer:
+
+    ; We have something in TEMP here, so first we must save that
+    MOVE TEMP0 TO SFBR
+
+at 0x0000011b : */	0x721c0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH0
+
+at 0x0000011d : */	0x6a340000,0x00000000,
+/*
+    MOVE TEMP1 TO SFBR
+
+at 0x0000011f : */	0x721d0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH1
+
+at 0x00000121 : */	0x6a350000,0x00000000,
+/*
+    MOVE TEMP2 TO SFBR
+
+at 0x00000123 : */	0x721e0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH2
+
+at 0x00000125 : */	0x6a360000,0x00000000,
+/*
+    MOVE TEMP3 TO SFBR
+
+at 0x00000127 : */	0x721f0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH3
+
+at 0x00000129 : */	0x6a370000,0x00000000,
+/*
+    MOVE MEMORY 4, addr_scratch, jump_temp + 4
+
+at 0x0000012b : */	0xc0000004,0x00000000,0x000009c8,
+/*
+    ; Now restore DSA
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x0000012e : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+    MOVE DSA0 + dsa_save_data_pointer TO SFBR
+
+at 0x00000131 : */	0x76100000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH0
+
+at 0x00000133 : */	0x6a340000,0x00000000,
+/*
+    MOVE DSA1 + 0xff TO SFBR WITH CARRY
+
+at 0x00000135 : */	0x7711ff00,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH1
+
+at 0x00000137 : */	0x6a350000,0x00000000,
+/*
+    MOVE DSA2 + 0xff TO SFBR WITH CARRY 
+
+at 0x00000139 : */	0x7712ff00,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH2
+
+at 0x0000013b : */	0x6a360000,0x00000000,
+/*
+    MOVE DSA3 + 0xff TO SFBR WITH CARRY
+
+at 0x0000013d : */	0x7713ff00,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH3
+
+at 0x0000013f : */	0x6a370000,0x00000000,
+/*
+
+    
+    MOVE MEMORY 4, addr_scratch, jump_dsa_save + 4
+
+at 0x00000141 : */	0xc0000004,0x00000000,0x00000514,
+/*
+    
+jump_dsa_save:
+    JUMP 0
+
+at 0x00000144 : */	0x80080000,0x00000000,
+/*
+
+munge_restore_pointers:
+
+    ; The code at dsa_restore_pointers will RETURN, but we don't care
+    ; about TEMP here, as it will overwrite it anyway.
+
+    MOVE DSA0 + dsa_restore_pointers TO SFBR
+
+at 0x00000146 : */	0x76100000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH0
+
+at 0x00000148 : */	0x6a340000,0x00000000,
+/*
+    MOVE DSA1 + 0xff TO SFBR WITH CARRY
+
+at 0x0000014a : */	0x7711ff00,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH1
+
+at 0x0000014c : */	0x6a350000,0x00000000,
+/*
+    MOVE DSA2 + 0xff TO SFBR WITH CARRY
+
+at 0x0000014e : */	0x7712ff00,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH2
+
+at 0x00000150 : */	0x6a360000,0x00000000,
+/*
+    MOVE DSA3 + 0xff TO SFBR WITH CARRY
+
+at 0x00000152 : */	0x7713ff00,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH3
+
+at 0x00000154 : */	0x6a370000,0x00000000,
+/*
+
+    
+    MOVE MEMORY 4, addr_scratch, jump_dsa_restore + 4
+
+at 0x00000156 : */	0xc0000004,0x00000000,0x00000568,
+/*
+    
+jump_dsa_restore:
+    JUMP 0
+
+at 0x00000159 : */	0x80080000,0x00000000,
+/*
+
+
+munge_disconnect:
+
+
+
+
+
+
+
+
+
+ 
+
+
+
+
+
+
+
+
+
+
+    JUMP dsa_schedule
+
+at 0x0000015b : */	0x80080000,0x00000178,
+/*
+
+
+
+
+
+munge_extended:
+    CLEAR ACK
+
+at 0x0000015d : */	0x60000040,0x00000000,
+/*
+    INT int_err_unexpected_phase, WHEN NOT MSG_IN
+
+at 0x0000015f : */	0x9f030000,0x00000000,
+/*
+    MOVE 1, msg_buf + 1, WHEN MSG_IN
+
+at 0x00000161 : */	0x0f000001,0x00000001,
+/*
+    JUMP munge_extended_2, IF 0x02
+
+at 0x00000163 : */	0x800c0002,0x000005a4,
+/*
+    JUMP munge_extended_3, IF 0x03 
+
+at 0x00000165 : */	0x800c0003,0x000005d4,
+/*
+    JUMP reject_message
+
+at 0x00000167 : */	0x80080000,0x00000604,
+/*
+
+munge_extended_2:
+    CLEAR ACK
+
+at 0x00000169 : */	0x60000040,0x00000000,
+/*
+    MOVE 1, msg_buf + 2, WHEN MSG_IN
+
+at 0x0000016b : */	0x0f000001,0x00000002,
+/*
+    JUMP reject_message, IF NOT 0x02	; Must be WDTR
+
+at 0x0000016d : */	0x80040002,0x00000604,
+/*
+    CLEAR ACK
+
+at 0x0000016f : */	0x60000040,0x00000000,
+/*
+    MOVE 1, msg_buf + 3, WHEN MSG_IN
+
+at 0x00000171 : */	0x0f000001,0x00000003,
+/*
+    INT int_msg_wdtr
+
+at 0x00000173 : */	0x98080000,0x01000000,
+/*
+
+munge_extended_3:
+    CLEAR ACK
+
+at 0x00000175 : */	0x60000040,0x00000000,
+/*
+    MOVE 1, msg_buf + 2, WHEN MSG_IN
+
+at 0x00000177 : */	0x0f000001,0x00000002,
+/*
+    JUMP reject_message, IF NOT 0x01	; Must be SDTR
+
+at 0x00000179 : */	0x80040001,0x00000604,
+/*
+    CLEAR ACK
+
+at 0x0000017b : */	0x60000040,0x00000000,
+/*
+    MOVE 2, msg_buf + 3, WHEN MSG_IN
+
+at 0x0000017d : */	0x0f000002,0x00000003,
+/*
+    INT int_msg_sdtr
+
+at 0x0000017f : */	0x98080000,0x01010000,
+/*
+
+ENTRY reject_message
+reject_message:
+    SET ATN
+
+at 0x00000181 : */	0x58000008,0x00000000,
+/*
+    CLEAR ACK
+
+at 0x00000183 : */	0x60000040,0x00000000,
+/*
+    MOVE 1, NCR53c7xx_msg_reject, WHEN MSG_OUT
+
+at 0x00000185 : */	0x0e000001,0x00000000,
+/*
+    RETURN
+
+at 0x00000187 : */	0x90080000,0x00000000,
+/*
+
+ENTRY accept_message
+accept_message:
+    CLEAR ATN
+
+at 0x00000189 : */	0x60000008,0x00000000,
+/*
+    CLEAR ACK
+
+at 0x0000018b : */	0x60000040,0x00000000,
+/*
+    RETURN
+
+at 0x0000018d : */	0x90080000,0x00000000,
+/*
+
+ENTRY respond_message
+respond_message:
+    SET ATN
+
+at 0x0000018f : */	0x58000008,0x00000000,
+/*
+    CLEAR ACK
+
+at 0x00000191 : */	0x60000040,0x00000000,
+/*
+    MOVE FROM dsa_msgout_other, WHEN MSG_OUT
+
+at 0x00000193 : */	0x1e000000,0x00000068,
+/*
+    RETURN
+
+at 0x00000195 : */	0x90080000,0x00000000,
+/*
+
+;
+; command_complete
+;
+; PURPOSE : handle command termination when STATUS IN is detected by reading
+;	a status byte followed by a command termination message. 
+;
+;	Normal termination results in an INTFLY instruction, and 
+;	the host system can pick out which command terminated by 
+;	examining the MESSAGE and STATUS buffers of all currently 
+;	executing commands;
+;
+;	Abnormal (CHECK_CONDITION) termination results in an
+;	int_err_check_condition interrupt so that a REQUEST SENSE
+;	command can be issued out-of-order so that no other command
+;	clears the contingent allegiance condition.
+;	
+;
+; INPUTS : DSA - command	
+;
+; CALLS : OK
+;
+; EXITS : On successful termination, control is passed to schedule.
+;	On abnormal termination, the user will usually modify the 
+;	DSA fields and corresponding buffers and return control
+;	to select.
+;
+
+ENTRY command_complete
+command_complete:
+    MOVE FROM dsa_status, WHEN STATUS
+
+at 0x00000197 : */	0x1b000000,0x00000060,
+/*
+
+    MOVE SFBR TO SCRATCH0		; Save status
+
+at 0x00000199 : */	0x6a340000,0x00000000,
+/*
+
+ENTRY command_complete_msgin
+command_complete_msgin:
+    MOVE FROM dsa_msgin, WHEN MSG_IN
+
+at 0x0000019b : */	0x1f000000,0x00000058,
+/*
+; Indicate that we should be expecting a disconnect
+
+
+
+    ; Above code cleared the Unexpected Disconnect bit, what do we do?
+
+    CLEAR ACK
+
+at 0x0000019d : */	0x60000040,0x00000000,
+/*
+
+    WAIT DISCONNECT
+
+at 0x0000019f : */	0x48000000,0x00000000,
+/*
+
+;
+; The SCSI specification states that when a UNIT ATTENTION condition
+; is pending, as indicated by a CHECK CONDITION status message,
+; the target shall revert to asynchronous transfers.  Since
+; synchronous transfers parameters are maintained on a per INITIATOR/TARGET 
+; basis, and returning control to our scheduler could work on a command
+; running on another lun on that target using the old parameters, we must
+; interrupt the host processor to get them changed, or change them ourselves.
+;
+; Once SCSI-II tagged queueing is implemented, things will be even more
+; hairy, since contingent allegiance conditions exist on a per-target/lun
+; basis, and issuing a new command with a different tag would clear it.
+; In these cases, we must interrupt the host processor to get a request 
+; added to the HEAD of the queue with the request sense command, or we
+; must automatically issue the request sense command.
+
+
+
+
+
+
+
+    INT int_norm_emulateintfly
+
+at 0x000001a1 : */	0x98080000,0x02060000,
+/*
+
+
+
+
+
+
+    ; Time to correct DSA following memory move
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x000001a3 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+
+
+    JUMP schedule
+
+at 0x000001a6 : */	0x80080000,0x00000000,
+/*
+command_failed:
+    INT int_err_check_condition
+
+at 0x000001a8 : */	0x98080000,0x00030000,
+/*
+
+
+
+
+;
+; wait_reselect
+;
+; PURPOSE : This is essentially the idle routine, where control lands
+;	when there are no new processes to schedule.  wait_reselect
+;	waits for reselection, selection, and new commands.
+;
+;	When a successful reselection occurs, with the aid 
+;	of fixed up code in each DSA, wait_reselect walks the 
+;	reconnect_dsa_queue, asking each dsa if the target ID
+;	and LUN match its.
+;
+;	If a match is found, a call is made back to reselected_ok,
+;	which through the miracles of self modifying code, extracts
+;	the found DSA from the reconnect_dsa_queue and then 
+;	returns control to the DSAs thread of execution.
+;
+; INPUTS : NONE
+;
+; CALLS : OK
+;
+; MODIFIES : DSA,
+;
+; EXITS : On successful reselection, control is returned to the 
+;	DSA which called reselected_ok.  If the WAIT RESELECT
+;	was interrupted by a new commands arrival signaled by 
+;	SIG_P, control is passed to schedule.  If the NCR is 
+;	selected, the host system is interrupted with an 
+;	int_err_selected which is usually responded to by
+;	setting DSP to the target_abort address.
+
+ENTRY wait_reselect
+wait_reselect:
+
+
+
+
+
+
+    WAIT RESELECT wait_reselect_failed
+
+at 0x000001aa : */	0x50000000,0x00000800,
+/*
+
+reselected:
+
+
+
+    CLEAR TARGET
+
+at 0x000001ac : */	0x60000200,0x00000000,
+/*
+    
+    ; Read all data needed to reestablish the nexus - 
+    MOVE 1, reselected_identify, WHEN MSG_IN
+
+at 0x000001ae : */	0x0f000001,0x00000000,
+/*
+    ; We used to CLEAR ACK here.
+
+
+
+
+
+    ; Point DSA at the current head of the disconnected queue.
+    
+    MOVE MEMORY 4, reconnect_dsa_head, addr_scratch
+
+at 0x000001b0 : */	0xc0000004,0x00000000,0x00000000,
+/*
+    
+
+    MOVE MEMORY 4, addr_scratch, saved_dsa
+
+at 0x000001b3 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+
+
+    ; Fix the update-next pointer so that the reconnect_dsa_head
+    ; pointer is the one that will be updated if this DSA is a hit 
+    ; and we remove it from the queue.
+
+    MOVE MEMORY 4, addr_reconnect_dsa_head, reselected_ok_patch + 8
+
+at 0x000001b6 : */	0xc0000004,0x00000000,0x000007ec,
+/*
+
+    ; Time to correct DSA following memory move
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x000001b9 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+
+ENTRY reselected_check_next
+reselected_check_next:
+
+
+
+    ; Check for a NULL pointer.
+    MOVE DSA0 TO SFBR
+
+at 0x000001bc : */	0x72100000,0x00000000,
+/*
+    JUMP reselected_not_end, IF NOT 0
+
+at 0x000001be : */	0x80040000,0x00000738,
+/*
+    MOVE DSA1 TO SFBR
+
+at 0x000001c0 : */	0x72110000,0x00000000,
+/*
+    JUMP reselected_not_end, IF NOT 0
+
+at 0x000001c2 : */	0x80040000,0x00000738,
+/*
+    MOVE DSA2 TO SFBR
+
+at 0x000001c4 : */	0x72120000,0x00000000,
+/*
+    JUMP reselected_not_end, IF NOT 0
+
+at 0x000001c6 : */	0x80040000,0x00000738,
+/*
+    MOVE DSA3 TO SFBR
+
+at 0x000001c8 : */	0x72130000,0x00000000,
+/*
+    JUMP reselected_not_end, IF NOT 0
+
+at 0x000001ca : */	0x80040000,0x00000738,
+/*
+    INT int_err_unexpected_reselect
+
+at 0x000001cc : */	0x98080000,0x00020000,
+/*
+
+reselected_not_end:
+    ;
+    ; XXX the ALU is only eight bits wide, and the assembler
+    ; wont do the dirt work for us.  As long as dsa_check_reselect
+    ; is negative, we need to sign extend with 1 bits to the full
+    ; 32 bit width of the address.
+    ;
+    ; A potential work around would be to have a known alignment 
+    ; of the DSA structure such that the base address plus 
+    ; dsa_check_reselect doesn't require carrying from bytes 
+    ; higher than the LSB.
+    ;
+
+    MOVE DSA0 TO SFBR
+
+at 0x000001ce : */	0x72100000,0x00000000,
+/*
+    MOVE SFBR + dsa_check_reselect TO SCRATCH0
+
+at 0x000001d0 : */	0x6e340000,0x00000000,
+/*
+    MOVE DSA1 TO SFBR
+
+at 0x000001d2 : */	0x72110000,0x00000000,
+/*
+    MOVE SFBR + 0xff TO SCRATCH1 WITH CARRY
+
+at 0x000001d4 : */	0x6f35ff00,0x00000000,
+/*
+    MOVE DSA2 TO SFBR
+
+at 0x000001d6 : */	0x72120000,0x00000000,
+/*
+    MOVE SFBR + 0xff TO SCRATCH2 WITH CARRY
+
+at 0x000001d8 : */	0x6f36ff00,0x00000000,
+/*
+    MOVE DSA3 TO SFBR
+
+at 0x000001da : */	0x72130000,0x00000000,
+/*
+    MOVE SFBR + 0xff TO SCRATCH3 WITH CARRY
+
+at 0x000001dc : */	0x6f37ff00,0x00000000,
+/*
+
+    
+    MOVE MEMORY 4, addr_scratch, reselected_check + 4
+
+at 0x000001de : */	0xc0000004,0x00000000,0x00000794,
+/*
+    
+
+    ; Time to correct DSA following memory move
+    MOVE MEMORY 4, saved_dsa, addr_dsa
+
+at 0x000001e1 : */	0xc0000004,0x00000000,0x00000000,
+/*
+
+reselected_check:
+    JUMP 0
+
+at 0x000001e4 : */	0x80080000,0x00000000,
+/*
+
+
+;
+;
+
+; We have problems here - the memory move corrupts TEMP and DSA.  This
+; routine is called from DSA code, and patched from many places.  Scratch
+; is probably free when it is called.
+; We have to:
+;   copy temp to scratch, one byte at a time
+;   write scratch to patch a jump in place of the return
+;   do the move memory
+;   jump to the patched in return address
+; DSA is corrupt when we get here, and can be left corrupt
+
+ENTRY reselected_ok
+reselected_ok:
+    MOVE TEMP0 TO SFBR
+
+at 0x000001e6 : */	0x721c0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH0
+
+at 0x000001e8 : */	0x6a340000,0x00000000,
+/*
+    MOVE TEMP1 TO SFBR
+
+at 0x000001ea : */	0x721d0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH1
+
+at 0x000001ec : */	0x6a350000,0x00000000,
+/*
+    MOVE TEMP2 TO SFBR
+
+at 0x000001ee : */	0x721e0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH2
+
+at 0x000001f0 : */	0x6a360000,0x00000000,
+/*
+    MOVE TEMP3 TO SFBR
+
+at 0x000001f2 : */	0x721f0000,0x00000000,
+/*
+    MOVE SFBR TO SCRATCH3
+
+at 0x000001f4 : */	0x6a370000,0x00000000,
+/*
+    MOVE MEMORY 4, addr_scratch, reselected_ok_jump + 4
+
+at 0x000001f6 : */	0xc0000004,0x00000000,0x000007f4,
+/*
+reselected_ok_patch:
+    MOVE MEMORY 4, 0, 0
+
+at 0x000001f9 : */	0xc0000004,0x00000000,0x00000000,
+/*
+reselected_ok_jump:
+    JUMP 0
+
+at 0x000001fc : */	0x80080000,0x00000000,
+/*
+
+
+
+
+
+selected:
+    INT int_err_selected;
+
+at 0x000001fe : */	0x98080000,0x00010000,
+/*
+
+;
+; A select or reselect failure can be caused by one of two conditions : 
+; 1.  SIG_P was set.  This will be the case if the user has written
+;	a new value to a previously NULL head of the issue queue.
+;
+; 2.  The NCR53c810 was selected or reselected by another device.
+;
+; 3.  The bus was already busy since we were selected or reselected
+;	before starting the command.
+
+wait_reselect_failed:
+
+
+
+; Check selected bit.  
+
+    ; Must work out how to tell if we are selected....
+
+
+
+
+; Reading CTEST2 clears the SIG_P bit in the ISTAT register.
+    MOVE CTEST2 & 0x40 TO SFBR	
+
+at 0x00000200 : */	0x74164000,0x00000000,
+/*
+    JUMP schedule, IF 0x40
+
+at 0x00000202 : */	0x800c0040,0x00000000,
+/*
+; Check connected bit.  
+; FIXME: this needs to change if we support target mode
+    MOVE ISTAT & 0x08 TO SFBR
+
+at 0x00000204 : */	0x74210800,0x00000000,
+/*
+    JUMP reselected, IF 0x08
+
+at 0x00000206 : */	0x800c0008,0x000006b0,
+/*
+; FIXME : Something bogus happened, and we shouldn't fail silently.
+
+
+
+    INT int_debug_panic
+
+at 0x00000208 : */	0x98080000,0x030b0000,
+/*
+
+
+
+select_failed:
+
+    ; Disable selection timer
+    MOVE CTEST7 | 0x10 TO CTEST7
+
+at 0x0000020a : */	0x7a1b1000,0x00000000,
+/*
+
+
+
+
+; Otherwise, mask the selected and reselected bits off SIST0
+
+    ; Let's assume we don't get selected for now
+    MOVE SSTAT0 & 0x10 TO SFBR
+
+at 0x0000020c : */	0x740d1000,0x00000000,
+/*
+
+
+
+
+    JUMP reselected, IF 0x10 
+
+at 0x0000020e : */	0x800c0010,0x000006b0,
+/*
+; If SIGP is set, the user just gave us another command, and
+; we should restart or return to the scheduler.
+; Reading CTEST2 clears the SIG_P bit in the ISTAT register.
+    MOVE CTEST2 & 0x40 TO SFBR	
+
+at 0x00000210 : */	0x74164000,0x00000000,
+/*
+    JUMP select, IF 0x40
+
+at 0x00000212 : */	0x800c0040,0x000001f8,
+/*
+; Check connected bit.  
+; FIXME: this needs to change if we support target mode
+; FIXME: is this really necessary? 
+    MOVE ISTAT & 0x08 TO SFBR
+
+at 0x00000214 : */	0x74210800,0x00000000,
+/*
+    JUMP reselected, IF 0x08
+
+at 0x00000216 : */	0x800c0008,0x000006b0,
+/*
+; FIXME : Something bogus happened, and we shouldn't fail silently.
+
+
+
+    INT int_debug_panic
+
+at 0x00000218 : */	0x98080000,0x030b0000,
+/*
+
+
+;
+; test_1
+; test_2
+;
+; PURPOSE : run some verification tests on the NCR.  test_1
+;	copies test_src to test_dest and interrupts the host
+;	processor, testing for cache coherency and interrupt
+; 	problems in the processes.
+;
+;	test_2 runs a command with offsets relative to the 
+;	DSA on entry, and is useful for miscellaneous experimentation.
+;
+
+; Verify that interrupts are working correctly and that we don't 
+; have a cache invalidation problem.
+
+ABSOLUTE test_src = 0, test_dest = 0
+ENTRY test_1
+test_1:
+    MOVE MEMORY 4, test_src, test_dest
+
+at 0x0000021a : */	0xc0000004,0x00000000,0x00000000,
+/*
+    INT int_test_1
+
+at 0x0000021d : */	0x98080000,0x04000000,
+/*
+
+;
+; Run arbitrary commands, with test code establishing a DSA
+;
+ 
+ENTRY test_2
+test_2:
+    CLEAR TARGET
+
+at 0x0000021f : */	0x60000200,0x00000000,
+/*
+
+    ; Enable selection timer
+
+
+
+    MOVE CTEST7 & 0xef TO CTEST7
+
+at 0x00000221 : */	0x7c1bef00,0x00000000,
+/*
+
+
+    SELECT ATN FROM 0, test_2_fail
+
+at 0x00000223 : */	0x43000000,0x000008dc,
+/*
+    JUMP test_2_msgout, WHEN MSG_OUT
+
+at 0x00000225 : */	0x860b0000,0x0000089c,
+/*
+ENTRY test_2_msgout
+test_2_msgout:
+
+    ; Disable selection timer
+    MOVE CTEST7 | 0x10 TO CTEST7
+
+at 0x00000227 : */	0x7a1b1000,0x00000000,
+/*
+
+    MOVE FROM 8, WHEN MSG_OUT
+
+at 0x00000229 : */	0x1e000000,0x00000008,
+/*
+    MOVE FROM 16, WHEN CMD 
+
+at 0x0000022b : */	0x1a000000,0x00000010,
+/*
+    MOVE FROM 24, WHEN DATA_IN
+
+at 0x0000022d : */	0x19000000,0x00000018,
+/*
+    MOVE FROM 32, WHEN STATUS
+
+at 0x0000022f : */	0x1b000000,0x00000020,
+/*
+    MOVE FROM 40, WHEN MSG_IN
+
+at 0x00000231 : */	0x1f000000,0x00000028,
+/*
+
+
+
+    CLEAR ACK
+
+at 0x00000233 : */	0x60000040,0x00000000,
+/*
+    WAIT DISCONNECT
+
+at 0x00000235 : */	0x48000000,0x00000000,
+/*
+test_2_fail:
+
+    ; Disable selection timer
+    MOVE CTEST7 | 0x10 TO CTEST7
+
+at 0x00000237 : */	0x7a1b1000,0x00000000,
+/*
+
+    INT int_test_2
+
+at 0x00000239 : */	0x98080000,0x04010000,
+/*
+
+ENTRY debug_break
+debug_break:
+    INT int_debug_break
+
+at 0x0000023b : */	0x98080000,0x03000000,
+/*
+
+;
+; initiator_abort
+; target_abort
+;
+; PURPOSE : Abort the currently established nexus from with initiator
+;	or target mode.
+;
+;  
+
+ENTRY target_abort
+target_abort:
+    SET TARGET
+
+at 0x0000023d : */	0x58000200,0x00000000,
+/*
+    DISCONNECT
+
+at 0x0000023f : */	0x48000000,0x00000000,
+/*
+    CLEAR TARGET
+
+at 0x00000241 : */	0x60000200,0x00000000,
+/*
+    JUMP schedule
+
+at 0x00000243 : */	0x80080000,0x00000000,
+/*
+    
+ENTRY initiator_abort
+initiator_abort:
+    SET ATN
+
+at 0x00000245 : */	0x58000008,0x00000000,
+/*
+;
+; The SCSI-I specification says that targets may go into MSG out at 
+; their leisure upon receipt of the ATN single.  On all versions of the 
+; specification, we can't change phases until REQ transitions true->false, 
+; so we need to sink/source one byte of data to allow the transition.
+;
+; For the sake of safety, we'll only source one byte of data in all 
+; cases, but to accommodate the SCSI-I dain bramage, we'll sink an  
+; arbitrary number of bytes.
+    JUMP spew_cmd, WHEN CMD
+
+at 0x00000247 : */	0x820b0000,0x0000094c,
+/*
+    JUMP eat_msgin, WHEN MSG_IN
+
+at 0x00000249 : */	0x870b0000,0x0000095c,
+/*
+    JUMP eat_datain, WHEN DATA_IN
+
+at 0x0000024b : */	0x810b0000,0x0000098c,
+/*
+    JUMP eat_status, WHEN STATUS
+
+at 0x0000024d : */	0x830b0000,0x00000974,
+/*
+    JUMP spew_dataout, WHEN DATA_OUT
+
+at 0x0000024f : */	0x800b0000,0x000009a4,
+/*
+    JUMP sated
+
+at 0x00000251 : */	0x80080000,0x000009ac,
+/*
+spew_cmd:
+    MOVE 1, NCR53c7xx_zero, WHEN CMD
+
+at 0x00000253 : */	0x0a000001,0x00000000,
+/*
+    JUMP sated
+
+at 0x00000255 : */	0x80080000,0x000009ac,
+/*
+eat_msgin:
+    MOVE 1, NCR53c7xx_sink, WHEN MSG_IN
+
+at 0x00000257 : */	0x0f000001,0x00000000,
+/*
+    JUMP eat_msgin, WHEN MSG_IN
+
+at 0x00000259 : */	0x870b0000,0x0000095c,
+/*
+    JUMP sated
+
+at 0x0000025b : */	0x80080000,0x000009ac,
+/*
+eat_status:
+    MOVE 1, NCR53c7xx_sink, WHEN STATUS
+
+at 0x0000025d : */	0x0b000001,0x00000000,
+/*
+    JUMP eat_status, WHEN STATUS
+
+at 0x0000025f : */	0x830b0000,0x00000974,
+/*
+    JUMP sated
+
+at 0x00000261 : */	0x80080000,0x000009ac,
+/*
+eat_datain:
+    MOVE 1, NCR53c7xx_sink, WHEN DATA_IN
+
+at 0x00000263 : */	0x09000001,0x00000000,
+/*
+    JUMP eat_datain, WHEN DATA_IN
+
+at 0x00000265 : */	0x810b0000,0x0000098c,
+/*
+    JUMP sated
+
+at 0x00000267 : */	0x80080000,0x000009ac,
+/*
+spew_dataout:
+    MOVE 1, NCR53c7xx_zero, WHEN DATA_OUT
+
+at 0x00000269 : */	0x08000001,0x00000000,
+/*
+sated:
+
+
+
+    MOVE 1, NCR53c7xx_msg_abort, WHEN MSG_OUT
+
+at 0x0000026b : */	0x0e000001,0x00000000,
+/*
+    WAIT DISCONNECT
+
+at 0x0000026d : */	0x48000000,0x00000000,
+/*
+    INT int_norm_aborted
+
+at 0x0000026f : */	0x98080000,0x02040000,
+/*
+
+
+ 
+
+; Little patched jump, used to overcome problems with TEMP getting
+; corrupted on memory moves.
+
+jump_temp:
+    JUMP 0
+
+at 0x00000271 : */	0x80080000,0x00000000,
+};
+
+#define A_NCR53c7xx_msg_abort	0x00000000
+static u32 A_NCR53c7xx_msg_abort_used[] __attribute((unused)) = {
+	0x0000026c,
+};
+
+#define A_NCR53c7xx_msg_reject	0x00000000
+static u32 A_NCR53c7xx_msg_reject_used[] __attribute((unused)) = {
+	0x00000186,
+};
+
+#define A_NCR53c7xx_sink	0x00000000
+static u32 A_NCR53c7xx_sink_used[] __attribute((unused)) = {
+	0x00000258,
+	0x0000025e,
+	0x00000264,
+};
+
+#define A_NCR53c7xx_zero	0x00000000
+static u32 A_NCR53c7xx_zero_used[] __attribute((unused)) = {
+	0x00000254,
+	0x0000026a,
+};
+
+#define A_NOP_insn	0x00000000
+static u32 A_NOP_insn_used[] __attribute((unused)) = {
+	0x00000017,
+};
+
+#define A_addr_dsa	0x00000000
+static u32 A_addr_dsa_used[] __attribute((unused)) = {
+	0x0000000f,
+	0x00000026,
+	0x00000033,
+	0x00000040,
+	0x00000055,
+	0x00000079,
+	0x0000008e,
+	0x000000bc,
+	0x000000d2,
+	0x00000130,
+	0x000001a5,
+	0x000001bb,
+	0x000001e3,
+};
+
+#define A_addr_reconnect_dsa_head	0x00000000
+static u32 A_addr_reconnect_dsa_head_used[] __attribute((unused)) = {
+	0x000001b7,
+};
+
+#define A_addr_scratch	0x00000000
+static u32 A_addr_scratch_used[] __attribute((unused)) = {
+	0x00000002,
+	0x00000004,
+	0x00000008,
+	0x00000020,
+	0x00000022,
+	0x00000049,
+	0x00000060,
+	0x0000006a,
+	0x00000071,
+	0x00000073,
+	0x000000ab,
+	0x000000b5,
+	0x000000c1,
+	0x000000cb,
+	0x0000012c,
+	0x00000142,
+	0x00000157,
+	0x000001b2,
+	0x000001b4,
+	0x000001df,
+	0x000001f7,
+};
+
+#define A_addr_temp	0x00000000
+static u32 A_addr_temp_used[] __attribute((unused)) = {
+};
+
+#define A_dmode_memory_to_memory	0x00000000
+static u32 A_dmode_memory_to_memory_used[] __attribute((unused)) = {
+};
+
+#define A_dmode_memory_to_ncr	0x00000000
+static u32 A_dmode_memory_to_ncr_used[] __attribute((unused)) = {
+};
+
+#define A_dmode_ncr_to_memory	0x00000000
+static u32 A_dmode_ncr_to_memory_used[] __attribute((unused)) = {
+};
+
+#define A_dsa_check_reselect	0x00000000
+static u32 A_dsa_check_reselect_used[] __attribute((unused)) = {
+	0x000001d0,
+};
+
+#define A_dsa_cmdout	0x00000048
+static u32 A_dsa_cmdout_used[] __attribute((unused)) = {
+	0x0000009a,
+};
+
+#define A_dsa_cmnd	0x00000038
+static u32 A_dsa_cmnd_used[] __attribute((unused)) = {
+};
+
+#define A_dsa_datain	0x00000054
+static u32 A_dsa_datain_used[] __attribute((unused)) = {
+	0x000000c2,
+};
+
+#define A_dsa_dataout	0x00000050
+static u32 A_dsa_dataout_used[] __attribute((unused)) = {
+	0x000000ac,
+};
+
+#define A_dsa_end	0x00000070
+static u32 A_dsa_end_used[] __attribute((unused)) = {
+};
+
+#define A_dsa_fields_start	0x00000000
+static u32 A_dsa_fields_start_used[] __attribute((unused)) = {
+};
+
+#define A_dsa_msgin	0x00000058
+static u32 A_dsa_msgin_used[] __attribute((unused)) = {
+	0x0000019c,
+};
+
+#define A_dsa_msgout	0x00000040
+static u32 A_dsa_msgout_used[] __attribute((unused)) = {
+	0x00000089,
+};
+
+#define A_dsa_msgout_other	0x00000068
+static u32 A_dsa_msgout_other_used[] __attribute((unused)) = {
+	0x00000194,
+};
+
+#define A_dsa_next	0x00000030
+static u32 A_dsa_next_used[] __attribute((unused)) = {
+	0x00000061,
+};
+
+#define A_dsa_restore_pointers	0x00000000
+static u32 A_dsa_restore_pointers_used[] __attribute((unused)) = {
+	0x00000146,
+};
+
+#define A_dsa_save_data_pointer	0x00000000
+static u32 A_dsa_save_data_pointer_used[] __attribute((unused)) = {
+	0x00000131,
+};
+
+#define A_dsa_select	0x0000003c
+static u32 A_dsa_select_used[] __attribute((unused)) = {
+	0x00000082,
+};
+
+#define A_dsa_sscf_710	0x00000000
+static u32 A_dsa_sscf_710_used[] __attribute((unused)) = {
+	0x00000007,
+};
+
+#define A_dsa_status	0x00000060
+static u32 A_dsa_status_used[] __attribute((unused)) = {
+	0x00000198,
+};
+
+#define A_dsa_temp_addr_array_value	0x00000000
+static u32 A_dsa_temp_addr_array_value_used[] __attribute((unused)) = {
+};
+
+#define A_dsa_temp_addr_dsa_value	0x00000000
+static u32 A_dsa_temp_addr_dsa_value_used[] __attribute((unused)) = {
+	0x00000001,
+};
+
+#define A_dsa_temp_addr_new_value	0x00000000
+static u32 A_dsa_temp_addr_new_value_used[] __attribute((unused)) = {
+};
+
+#define A_dsa_temp_addr_next	0x00000000
+static u32 A_dsa_temp_addr_next_used[] __attribute((unused)) = {
+	0x0000001c,
+	0x0000004f,
+};
+
+#define A_dsa_temp_addr_residual	0x00000000
+static u32 A_dsa_temp_addr_residual_used[] __attribute((unused)) = {
+	0x0000002d,
+	0x0000003b,
+};
+
+#define A_dsa_temp_addr_saved_pointer	0x00000000
+static u32 A_dsa_temp_addr_saved_pointer_used[] __attribute((unused)) = {
+	0x0000002b,
+	0x00000037,
+};
+
+#define A_dsa_temp_addr_saved_residual	0x00000000
+static u32 A_dsa_temp_addr_saved_residual_used[] __attribute((unused)) = {
+	0x0000002e,
+	0x0000003a,
+};
+
+#define A_dsa_temp_lun	0x00000000
+static u32 A_dsa_temp_lun_used[] __attribute((unused)) = {
+	0x0000004c,
+};
+
+#define A_dsa_temp_next	0x00000000
+static u32 A_dsa_temp_next_used[] __attribute((unused)) = {
+	0x0000001f,
+};
+
+#define A_dsa_temp_sync	0x00000000
+static u32 A_dsa_temp_sync_used[] __attribute((unused)) = {
+	0x00000057,
+};
+
+#define A_dsa_temp_target	0x00000000
+static u32 A_dsa_temp_target_used[] __attribute((unused)) = {
+	0x00000045,
+};
+
+#define A_emulfly	0x00000000
+static u32 A_emulfly_used[] __attribute((unused)) = {
+};
+
+#define A_int_debug_break	0x03000000
+static u32 A_int_debug_break_used[] __attribute((unused)) = {
+	0x0000023c,
+};
+
+#define A_int_debug_panic	0x030b0000
+static u32 A_int_debug_panic_used[] __attribute((unused)) = {
+	0x00000209,
+	0x00000219,
+};
+
+#define A_int_err_check_condition	0x00030000
+static u32 A_int_err_check_condition_used[] __attribute((unused)) = {
+	0x000001a9,
+};
+
+#define A_int_err_no_phase	0x00040000
+static u32 A_int_err_no_phase_used[] __attribute((unused)) = {
+};
+
+#define A_int_err_selected	0x00010000
+static u32 A_int_err_selected_used[] __attribute((unused)) = {
+	0x000001ff,
+};
+
+#define A_int_err_unexpected_phase	0x00000000
+static u32 A_int_err_unexpected_phase_used[] __attribute((unused)) = {
+	0x00000092,
+	0x00000098,
+	0x000000a0,
+	0x000000d6,
+	0x000000da,
+	0x000000dc,
+	0x000000e4,
+	0x000000e8,
+	0x000000ea,
+	0x000000f2,
+	0x000000f6,
+	0x000000f8,
+	0x000000fa,
+	0x00000160,
+};
+
+#define A_int_err_unexpected_reselect	0x00020000
+static u32 A_int_err_unexpected_reselect_used[] __attribute((unused)) = {
+	0x000001cd,
+};
+
+#define A_int_msg_1	0x01020000
+static u32 A_int_msg_1_used[] __attribute((unused)) = {
+	0x00000114,
+	0x00000116,
+};
+
+#define A_int_msg_sdtr	0x01010000
+static u32 A_int_msg_sdtr_used[] __attribute((unused)) = {
+	0x00000180,
+};
+
+#define A_int_msg_wdtr	0x01000000
+static u32 A_int_msg_wdtr_used[] __attribute((unused)) = {
+	0x00000174,
+};
+
+#define A_int_norm_aborted	0x02040000
+static u32 A_int_norm_aborted_used[] __attribute((unused)) = {
+	0x00000270,
+};
+
+#define A_int_norm_command_complete	0x02020000
+static u32 A_int_norm_command_complete_used[] __attribute((unused)) = {
+};
+
+#define A_int_norm_disconnected	0x02030000
+static u32 A_int_norm_disconnected_used[] __attribute((unused)) = {
+};
+
+#define A_int_norm_emulateintfly	0x02060000
+static u32 A_int_norm_emulateintfly_used[] __attribute((unused)) = {
+	0x000001a2,
+};
+
+#define A_int_norm_reselect_complete	0x02010000
+static u32 A_int_norm_reselect_complete_used[] __attribute((unused)) = {
+};
+
+#define A_int_norm_reset	0x02050000
+static u32 A_int_norm_reset_used[] __attribute((unused)) = {
+};
+
+#define A_int_norm_select_complete	0x02000000
+static u32 A_int_norm_select_complete_used[] __attribute((unused)) = {
+};
+
+#define A_int_test_1	0x04000000
+static u32 A_int_test_1_used[] __attribute((unused)) = {
+	0x0000021e,
+};
+
+#define A_int_test_2	0x04010000
+static u32 A_int_test_2_used[] __attribute((unused)) = {
+	0x0000023a,
+};
+
+#define A_int_test_3	0x04020000
+static u32 A_int_test_3_used[] __attribute((unused)) = {
+};
+
+#define A_msg_buf	0x00000000
+static u32 A_msg_buf_used[] __attribute((unused)) = {
+	0x00000108,
+	0x00000162,
+	0x0000016c,
+	0x00000172,
+	0x00000178,
+	0x0000017e,
+};
+
+#define A_reconnect_dsa_head	0x00000000
+static u32 A_reconnect_dsa_head_used[] __attribute((unused)) = {
+	0x0000006d,
+	0x00000074,
+	0x000001b1,
+};
+
+#define A_reselected_identify	0x00000000
+static u32 A_reselected_identify_used[] __attribute((unused)) = {
+	0x00000048,
+	0x000001af,
+};
+
+#define A_reselected_tag	0x00000000
+static u32 A_reselected_tag_used[] __attribute((unused)) = {
+};
+
+#define A_saved_dsa	0x00000000
+static u32 A_saved_dsa_used[] __attribute((unused)) = {
+	0x00000005,
+	0x0000000e,
+	0x00000023,
+	0x00000025,
+	0x00000032,
+	0x0000003f,
+	0x00000054,
+	0x0000005f,
+	0x00000070,
+	0x00000078,
+	0x0000008d,
+	0x000000aa,
+	0x000000bb,
+	0x000000c0,
+	0x000000d1,
+	0x0000012f,
+	0x000001a4,
+	0x000001b5,
+	0x000001ba,
+	0x000001e2,
+};
+
+#define A_schedule	0x00000000
+static u32 A_schedule_used[] __attribute((unused)) = {
+	0x0000007d,
+	0x000001a7,
+	0x00000203,
+	0x00000244,
+};
+
+#define A_test_dest	0x00000000
+static u32 A_test_dest_used[] __attribute((unused)) = {
+	0x0000021c,
+};
+
+#define A_test_src	0x00000000
+static u32 A_test_src_used[] __attribute((unused)) = {
+	0x0000021b,
+};
+
+#define Ent_accept_message	0x00000624
+#define Ent_cmdout_cmdout	0x00000264
+#define Ent_command_complete	0x0000065c
+#define Ent_command_complete_msgin	0x0000066c
+#define Ent_data_transfer	0x0000026c
+#define Ent_datain_to_jump	0x00000334
+#define Ent_debug_break	0x000008ec
+#define Ent_dsa_code_begin	0x00000000
+#define Ent_dsa_code_check_reselect	0x0000010c
+#define Ent_dsa_code_fix_jump	0x00000058
+#define Ent_dsa_code_restore_pointers	0x000000d8
+#define Ent_dsa_code_save_data_pointer	0x000000a4
+#define Ent_dsa_code_template	0x00000000
+#define Ent_dsa_code_template_end	0x00000178
+#define Ent_dsa_schedule	0x00000178
+#define Ent_dsa_zero	0x00000178
+#define Ent_end_data_transfer	0x000002a4
+#define Ent_initiator_abort	0x00000914
+#define Ent_msg_in	0x0000041c
+#define Ent_msg_in_restart	0x000003fc
+#define Ent_other_in	0x0000038c
+#define Ent_other_out	0x00000354
+#define Ent_other_transfer	0x000003c4
+#define Ent_reject_message	0x00000604
+#define Ent_reselected_check_next	0x000006f0
+#define Ent_reselected_ok	0x00000798
+#define Ent_respond_message	0x0000063c
+#define Ent_select	0x000001f8
+#define Ent_select_msgout	0x00000218
+#define Ent_target_abort	0x000008f4
+#define Ent_test_1	0x00000868
+#define Ent_test_2	0x0000087c
+#define Ent_test_2_msgout	0x0000089c
+#define Ent_wait_reselect	0x000006a8
+static u32 LABELPATCHES[] __attribute((unused)) = {
+	0x00000011,
+	0x0000001a,
+	0x0000001d,
+	0x00000028,
+	0x0000002a,
+	0x00000035,
+	0x00000038,
+	0x00000042,
+	0x00000050,
+	0x00000052,
+	0x0000006b,
+	0x00000083,
+	0x00000085,
+	0x00000090,
+	0x00000094,
+	0x00000096,
+	0x0000009c,
+	0x0000009e,
+	0x000000a2,
+	0x000000a4,
+	0x000000a6,
+	0x000000a8,
+	0x000000b6,
+	0x000000b9,
+	0x000000cc,
+	0x000000cf,
+	0x000000d8,
+	0x000000de,
+	0x000000e0,
+	0x000000e6,
+	0x000000ec,
+	0x000000ee,
+	0x000000f4,
+	0x000000fc,
+	0x000000fe,
+	0x0000010a,
+	0x0000010c,
+	0x0000010e,
+	0x00000110,
+	0x00000112,
+	0x00000118,
+	0x0000011a,
+	0x0000012d,
+	0x00000143,
+	0x00000158,
+	0x0000015c,
+	0x00000164,
+	0x00000166,
+	0x00000168,
+	0x0000016e,
+	0x0000017a,
+	0x000001ab,
+	0x000001b8,
+	0x000001bf,
+	0x000001c3,
+	0x000001c7,
+	0x000001cb,
+	0x000001e0,
+	0x000001f8,
+	0x00000207,
+	0x0000020f,
+	0x00000213,
+	0x00000217,
+	0x00000224,
+	0x00000226,
+	0x00000248,
+	0x0000024a,
+	0x0000024c,
+	0x0000024e,
+	0x00000250,
+	0x00000252,
+	0x00000256,
+	0x0000025a,
+	0x0000025c,
+	0x00000260,
+	0x00000262,
+	0x00000266,
+	0x00000268,
+};
+
+static struct {
+	u32	offset;
+	void		*address;
+} EXTERNAL_PATCHES[] __attribute((unused)) = {
+};
+
+static u32 INSTRUCTIONS __attribute((unused))	= 290;
+static u32 PATCHES __attribute((unused))	= 78;
+static u32 EXTERNAL_PATCHES_LEN __attribute((unused))	= 0;
