linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / scsi / FlashPoint.c
index 7c00680..8d64f0b 100644 (file)
 */
 
 
+#include <linux/config.h>
+
+
 #ifndef CONFIG_SCSI_OMIT_FLASHPOINT
 
+
 #define MAX_CARDS      8
 #undef BUSTYPE_PCI
 
+
+#define OS_InPortByte(port)            inb(port)
+#define OS_InPortWord(port)            inw(port)
+#define OS_InPortLong(port)            inl(port)
+#define OS_OutPortByte(port, value)    outb(value, port)
+#define OS_OutPortWord(port, value)    outw(value, port)
+#define OS_OutPortLong(port, value)    outl(value, port)
+
+
+/*
+  Define name replacements for compatibility with the Linux BusLogic Driver.
+*/
+
+#define SccbMgr_sense_adapter          FlashPoint_ProbeHostAdapter
+#define SccbMgr_config_adapter         FlashPoint_HardwareResetHostAdapter
+#define SccbMgr_unload_card            FlashPoint_ReleaseHostAdapter
+#define SccbMgr_start_sccb             FlashPoint_StartCCB
+#define SccbMgr_abort_sccb             FlashPoint_AbortCCB
+#define SccbMgr_my_int                 FlashPoint_InterruptPending
+#define SccbMgr_isr                    FlashPoint_HandleInterrupt
+
+
+#define MAX_CDBLEN  12
+
+#define SCAM_LEV_2     1
+
 #define CRCMASK        0xA001
 
+#define     BL_VENDOR_ID      0x104B
+#define     FP_DEVICE_ID      0x8130
+#define     MM_DEVICE_ID      0x1040
+
+
 #define FAILURE         0xFFFFFFFFL
 
-#define BIT(x)          ((unsigned char)(1<<(x)))      /* single-bit mask in bit position x */
-#define BITW(x)          ((unsigned short)(1<<(x)))    /* single-bit mask in bit position x */
-
-struct sccb;
-typedef void (*CALL_BK_FN) (struct sccb *);
-
-struct sccb_mgr_info {
-       unsigned long si_baseaddr;
-       unsigned char si_present;
-       unsigned char si_intvect;
-       unsigned char si_id;
-       unsigned char si_lun;
-       unsigned short si_fw_revision;
-       unsigned short si_per_targ_init_sync;
-       unsigned short si_per_targ_fast_nego;
-       unsigned short si_per_targ_ultra_nego;
-       unsigned short si_per_targ_no_disc;
-       unsigned short si_per_targ_wide_nego;
-       unsigned short si_flags;
-       unsigned char si_card_family;
-       unsigned char si_bustype;
-       unsigned char si_card_model[3];
-       unsigned char si_relative_cardnum;
-       unsigned char si_reserved[4];
-       unsigned long si_OS_reserved;
-       unsigned char si_XlatInfo[4];
-       unsigned long si_reserved2[5];
-       unsigned long si_secondary_range;
-};
+
+typedef unsigned char   UCHAR;
+typedef unsigned short  USHORT;
+typedef unsigned int    UINT;
+typedef unsigned long   ULONG;
+typedef unsigned char * PUCHAR;
+typedef unsigned short* PUSHORT;
+typedef unsigned long * PULONG;
+typedef void *          PVOID;
+
+
+typedef unsigned char           * uchar_ptr;
+typedef unsigned short          * ushort_ptr;
+typedef unsigned long           * ulong_ptr;
+
+
+#define s08bits        char
+#define s16bits        short
+#define s32bits        long
+
+#define u08bits        unsigned s08bits
+#define u16bits        unsigned s16bits
+#define u32bits        unsigned s32bits
+
+typedef u08bits        * pu08bits;
+typedef u16bits        * pu16bits;
+typedef u32bits        * pu32bits;
+
+
+#define BIT(x)          ((UCHAR)(1<<(x)))    /* single-bit mask in bit position x */
+#define BITW(x)          ((USHORT)(1<<(x)))  /* single-bit mask in bit position x */
+
+
+
+
+typedef struct _SCCB *PSCCB;
+typedef void (*CALL_BK_FN)(PSCCB);
+
+
+typedef struct SCCBMgr_info {
+   ULONG    si_baseaddr;
+   UCHAR    si_present;
+   UCHAR    si_intvect;
+   UCHAR    si_id;
+   UCHAR    si_lun;
+   USHORT   si_fw_revision;
+   USHORT   si_per_targ_init_sync;
+   USHORT   si_per_targ_fast_nego;
+   USHORT   si_per_targ_ultra_nego;
+   USHORT   si_per_targ_no_disc;
+   USHORT   si_per_targ_wide_nego;
+   USHORT   si_flags;
+   UCHAR    si_card_family;
+   UCHAR    si_bustype;
+   UCHAR    si_card_model[3];
+   UCHAR    si_relative_cardnum;
+   UCHAR    si_reserved[4];
+   ULONG    si_OS_reserved;
+   UCHAR    si_XlatInfo[4];
+   ULONG    si_reserved2[5];
+   ULONG    si_secondary_range;
+} SCCBMGR_INFO;
+
+typedef SCCBMGR_INFO *      PSCCBMGR_INFO;
+
 
 #define SCSI_PARITY_ENA                  0x0001
 #define LOW_BYTE_TERM            0x0010
@@ -67,81 +138,107 @@ struct sccb_mgr_info {
 #define FLAG_SCAM_ENABLED        0x0080
 #define FLAG_SCAM_LEVEL2         0x0100
 
+
+
+
 #define HARPOON_FAMILY        0x02
 
+
+#define ISA_BUS_CARD          0x01
+#define EISA_BUS_CARD         0x02
+#define PCI_BUS_CARD          0x03
+#define VESA_BUS_CARD         0x04
+
 /* SCCB struct used for both SCCB and UCB manager compiles! 
  * The UCB Manager treats the SCCB as it's 'native hardware structure' 
  */
 
+
 #pragma pack(1)
-struct sccb {
-       unsigned char OperationCode;
-       unsigned char ControlByte;
-       unsigned char CdbLength;
-       unsigned char RequestSenseLength;
-       unsigned long DataLength;
-       unsigned long DataPointer;
-       unsigned char CcbRes[2];
-       unsigned char HostStatus;
-       unsigned char TargetStatus;
-       unsigned char TargID;
-       unsigned char Lun;
-       unsigned char Cdb[12];
-       unsigned char CcbRes1;
-       unsigned char Reserved1;
-       unsigned long Reserved2;
-       unsigned long SensePointer;
-
-       CALL_BK_FN SccbCallback;        /* VOID (*SccbCallback)(); */
-       unsigned long SccbIOPort;       /* Identifies board base port */
-       unsigned char SccbStatus;
-       unsigned char SCCBRes2;
-       unsigned short SccbOSFlags;
-
-       unsigned long Sccb_XferCnt;     /* actual transfer count */
-       unsigned long Sccb_ATC;
-       unsigned long SccbVirtDataPtr;  /* virtual addr for OS/2 */
-       unsigned long Sccb_res1;
-       unsigned short Sccb_MGRFlags;
-       unsigned short Sccb_sgseg;
-       unsigned char Sccb_scsimsg;     /* identify msg for selection */
-       unsigned char Sccb_tag;
-       unsigned char Sccb_scsistat;
-       unsigned char Sccb_idmsg;       /* image of last msg in */
-       struct sccb *Sccb_forwardlink;
-       struct sccb *Sccb_backlink;
-       unsigned long Sccb_savedATC;
-       unsigned char Save_Cdb[6];
-       unsigned char Save_CdbLen;
-       unsigned char Sccb_XferState;
-       unsigned long Sccb_SGoffset;
-};
+typedef struct _SCCB {
+   UCHAR OperationCode;
+   UCHAR ControlByte;
+   UCHAR CdbLength;
+   UCHAR RequestSenseLength;
+   ULONG DataLength;
+   ULONG DataPointer;
+   UCHAR CcbRes[2];
+   UCHAR HostStatus;
+   UCHAR TargetStatus;
+   UCHAR TargID;
+   UCHAR Lun;
+   UCHAR Cdb[12];
+   UCHAR CcbRes1;
+   UCHAR Reserved1;
+   ULONG Reserved2;
+   ULONG SensePointer;
+
+
+   CALL_BK_FN SccbCallback;                  /* VOID (*SccbCallback)(); */
+   ULONG  SccbIOPort;                        /* Identifies board base port */
+   UCHAR  SccbStatus;
+   UCHAR  SCCBRes2;
+   USHORT SccbOSFlags;
+
+
+   ULONG   Sccb_XferCnt;            /* actual transfer count */
+   ULONG   Sccb_ATC;
+   ULONG   SccbVirtDataPtr;         /* virtual addr for OS/2 */
+   ULONG   Sccb_res1;
+   USHORT  Sccb_MGRFlags;
+   USHORT  Sccb_sgseg;
+   UCHAR   Sccb_scsimsg;            /* identify msg for selection */
+   UCHAR   Sccb_tag;
+   UCHAR   Sccb_scsistat;
+   UCHAR   Sccb_idmsg;              /* image of last msg in */
+   PSCCB   Sccb_forwardlink;
+   PSCCB   Sccb_backlink;
+   ULONG   Sccb_savedATC;
+   UCHAR   Save_Cdb[6];
+   UCHAR   Save_CdbLen;
+   UCHAR   Sccb_XferState;
+   ULONG   Sccb_SGoffset;
+   } SCCB;
+
+#define SCCB_SIZE sizeof(SCCB)
 
 #pragma pack()
 
+
+
+#define SCSI_INITIATOR_COMMAND    0x00
+#define TARGET_MODE_COMMAND       0x01
 #define SCATTER_GATHER_COMMAND    0x02
 #define RESIDUAL_COMMAND          0x03
 #define RESIDUAL_SG_COMMAND       0x04
 #define RESET_COMMAND             0x81
 
-#define F_USE_CMD_Q              0x20  /*Inidcates TAGGED command. */
-#define TAG_TYPE_MASK            0xC0  /*Type of tag msg to send. */
-#define SCCB_DATA_XFER_OUT       0x10  /* Write */
-#define SCCB_DATA_XFER_IN        0x08  /* Read */
 
-#define NO_AUTO_REQUEST_SENSE    0x01  /* No Request Sense Buffer */
+#define F_USE_CMD_Q              0x20     /*Inidcates TAGGED command. */
+#define TAG_TYPE_MASK            0xC0     /*Type of tag msg to send. */
+#define TAG_Q_MASK               0xE0
+#define SCCB_DATA_XFER_OUT       0x10     /* Write */
+#define SCCB_DATA_XFER_IN        0x08     /* Read */
 
-#define BUS_FREE_ST     0
+
+#define FOURTEEN_BYTES           0x00     /* Request Sense Buffer size */
+#define NO_AUTO_REQUEST_SENSE    0x01     /* No Request Sense Buffer */
+
+
+#define BUS_FREE_ST     0       
 #define SELECT_ST       1
-#define SELECT_BDR_ST   2      /* Select w\ Bus Device Reset */
-#define SELECT_SN_ST    3      /* Select w\ Sync Nego */
-#define SELECT_WN_ST    4      /* Select w\ Wide Data Nego */
-#define SELECT_Q_ST     5      /* Select w\ Tagged Q'ing */
+#define SELECT_BDR_ST   2     /* Select w\ Bus Device Reset */
+#define SELECT_SN_ST    3     /* Select w\ Sync Nego */
+#define SELECT_WN_ST    4     /* Select w\ Wide Data Nego */
+#define SELECT_Q_ST     5     /* Select w\ Tagged Q'ing */
 #define COMMAND_ST      6
 #define DATA_OUT_ST     7
 #define DATA_IN_ST      8
 #define DISCONNECT_ST   9
+#define STATUS_ST       10
 #define ABORT_ST        11
+#define MESSAGE_ST      12
+
 
 #define F_HOST_XFER_DIR                0x01
 #define F_ALL_XFERRED                  0x02
@@ -150,115 +247,163 @@ struct sccb {
 #define F_ODD_BALL_CNT                 0x10
 #define F_NO_DATA_YET                  0x80
 
+
 #define F_STATUSLOADED                 0x01
+#define F_MSGLOADED                    0x02
 #define F_DEV_SELECTED                 0x04
 
-#define SCCB_COMPLETE               0x00       /* SCCB completed without error */
+
+#define SCCB_COMPLETE               0x00  /* SCCB completed without error */
 #define SCCB_DATA_UNDER_RUN         0x0C
-#define SCCB_SELECTION_TIMEOUT      0x11       /* Set SCSI selection timed out */
+#define SCCB_SELECTION_TIMEOUT      0x11  /* Set SCSI selection timed out */
 #define SCCB_DATA_OVER_RUN          0x12
-#define SCCB_PHASE_SEQUENCE_FAIL    0x14       /* Target bus phase sequence failure */
+#define SCCB_UNEXPECTED_BUS_FREE    0x13  /* Target dropped SCSI BSY */
+#define SCCB_PHASE_SEQUENCE_FAIL    0x14  /* Target bus phase sequence failure */
+
+#define SCCB_INVALID_OP_CODE        0x16  /* SCCB invalid operation code */
+#define SCCB_INVALID_SCCB           0x1A  /* Invalid SCCB - bad parameter */
+#define SCCB_GROSS_FW_ERR           0x27  /* Major problem! */
+#define SCCB_BM_ERR                 0x30  /* BusMaster error. */
+#define SCCB_PARITY_ERR             0x34  /* SCSI parity error */
+
+
+
+#define SCCB_INVALID_DIRECTION      0x18  /* Invalid target direction */
+#define SCCB_DUPLICATE_SCCB         0x19  /* Duplicate SCCB */
+#define SCCB_SCSI_RST               0x35  /* SCSI RESET detected. */
 
-#define SCCB_GROSS_FW_ERR           0x27       /* Major problem! */
-#define SCCB_BM_ERR                 0x30       /* BusMaster error. */
-#define SCCB_PARITY_ERR             0x34       /* SCSI parity error */
 
 #define SCCB_IN_PROCESS            0x00
 #define SCCB_SUCCESS               0x01
 #define SCCB_ABORT                 0x02
+#define SCCB_NOT_FOUND             0x03
 #define SCCB_ERROR                 0x04
+#define SCCB_INVALID               0x05
+
+#define SCCB_SIZE sizeof(SCCB)
+
 
 #define  ORION_FW_REV      3110
 
-#define QUEUE_DEPTH     254+1  /*1 for Normal disconnect 32 for Q'ing. */
+#define HARP_REVD    1
 
-#define        MAX_MB_CARDS    4       /* Max. no of cards suppoerted on Mother Board */
+
+#define QUEUE_DEPTH     254+1            /*1 for Normal disconnect 32 for Q'ing. */
+
+#define        MAX_MB_CARDS    4                                       /* Max. no of cards suppoerted on Mother Board */
+
+#define WIDE_SCSI       1
 
 #define MAX_SCSI_TAR    16
 #define MAX_LUN         32
 #define LUN_MASK                       0x1f
 
-#define SG_BUF_CNT      16     /*Number of prefetched elements. */
+#if defined(HARP_REVA)
+#define SG_BUF_CNT      15             /*Number of prefetched elements. */
+#else
+#define SG_BUF_CNT      16             /*Number of prefetched elements. */
+#endif
+
+#define SG_ELEMENT_SIZE 8              /*Eight byte per element. */
+#define SG_LOCAL_MASK   0x00000000L
+#define SG_ELEMENT_MASK 0xFFFFFFFFL
 
-#define SG_ELEMENT_SIZE 8      /*Eight byte per element. */
 
-#define RD_HARPOON(ioport)          inb((u32)ioport)
-#define RDW_HARPOON(ioport)         inw((u32)ioport)
-#define RD_HARP32(ioport,offset,data) (data = inl((u32)(ioport + offset)))
-#define WR_HARPOON(ioport,val)      outb((u8) val, (u32)ioport)
-#define WRW_HARPOON(ioport,val)       outw((u16)val, (u32)ioport)
-#define WR_HARP32(ioport,offset,data)  outl(data, (u32)(ioport + offset))
+#define RD_HARPOON(ioport)          OS_InPortByte((u32bits)ioport)
+#define RDW_HARPOON(ioport)         OS_InPortWord((u32bits)ioport)
+#define RD_HARP32(ioport,offset,data) (data = OS_InPortLong((u32bits)(ioport + offset)))
+#define WR_HARPOON(ioport,val)      OS_OutPortByte((u32bits)ioport,(u08bits) val)
+#define WRW_HARPOON(ioport,val)       OS_OutPortWord((u32bits)ioport,(u16bits)val)
+#define WR_HARP32(ioport,offset,data)  OS_OutPortLong((u32bits)(ioport + offset), data)
+
 
 #define  TAR_SYNC_MASK     (BIT(7)+BIT(6))
+#define  SYNC_UNKNOWN      0x00
 #define  SYNC_TRYING               BIT(6)
 #define  SYNC_SUPPORTED    (BIT(7)+BIT(6))
 
 #define  TAR_WIDE_MASK     (BIT(5)+BIT(4))
+#define  WIDE_DISABLED     0x00
 #define  WIDE_ENABLED              BIT(4)
 #define  WIDE_NEGOCIATED   BIT(5)
 
 #define  TAR_TAG_Q_MASK    (BIT(3)+BIT(2))
+#define  TAG_Q_UNKNOWN     0x00
 #define  TAG_Q_TRYING              BIT(2)
 #define  TAG_Q_REJECT      BIT(3)
+#define  TAG_Q_SUPPORTED   (BIT(3)+BIT(2))
 
 #define  TAR_ALLOW_DISC    BIT(0)
 
+
 #define  EE_SYNC_MASK      (BIT(0)+BIT(1))
+#define  EE_SYNC_ASYNC     0x00
 #define  EE_SYNC_5MB       BIT(0)
 #define  EE_SYNC_10MB      BIT(1)
 #define  EE_SYNC_20MB      (BIT(0)+BIT(1))
 
+#define  EE_ALLOW_DISC     BIT(6)
 #define  EE_WIDE_SCSI      BIT(7)
 
-struct sccb_mgr_tar_info {
-
-       struct sccb *TarSelQ_Head;
-       struct sccb *TarSelQ_Tail;
-       unsigned char TarLUN_CA;        /*Contingent Allgiance */
-       unsigned char TarTagQ_Cnt;
-       unsigned char TarSelQ_Cnt;
-       unsigned char TarStatus;
-       unsigned char TarEEValue;
-       unsigned char TarSyncCtrl;
-       unsigned char TarReserved[2];   /* for alignment */
-       unsigned char LunDiscQ_Idx[MAX_LUN];
-       unsigned char TarLUNBusy[MAX_LUN];
-};
-
-struct nvram_info {
-       unsigned char niModel;  /* Model No. of card */
-       unsigned char niCardNo; /* Card no. */
-       unsigned long niBaseAddr;       /* Port Address of card */
-       unsigned char niSysConf;        /* Adapter Configuration byte - Byte 16 of eeprom map */
-       unsigned char niScsiConf;       /* SCSI Configuration byte - Byte 17 of eeprom map */
-       unsigned char niScamConf;       /* SCAM Configuration byte - Byte 20 of eeprom map */
-       unsigned char niAdapId; /* Host Adapter ID - Byte 24 of eerpom map */
-       unsigned char niSyncTbl[MAX_SCSI_TAR / 2];      /* Sync/Wide byte of targets */
-       unsigned char niScamTbl[MAX_SCSI_TAR][4];       /* Compressed Scam name string of Targets */
-};
+
+typedef struct SCCBMgr_tar_info *PSCCBMgr_tar_info;
+
+
+typedef struct SCCBMgr_tar_info {
+
+   PSCCB    TarSelQ_Head;
+   PSCCB    TarSelQ_Tail;
+   UCHAR    TarLUN_CA;        /*Contingent Allgiance */
+   UCHAR    TarTagQ_Cnt;
+   UCHAR    TarSelQ_Cnt;
+   UCHAR    TarStatus;
+   UCHAR    TarEEValue;
+   UCHAR       TarSyncCtrl;
+   UCHAR       TarReserved[2];                 /* for alignment */ 
+   UCHAR       LunDiscQ_Idx[MAX_LUN];
+   UCHAR    TarLUNBusy[MAX_LUN];
+} SCCBMGR_TAR_INFO;
+
+typedef struct NVRAMInfo {
+       UCHAR           niModel;                                                                /* Model No. of card */
+       UCHAR           niCardNo;                                                       /* Card no. */
+       ULONG           niBaseAddr;                                                     /* Port Address of card */
+       UCHAR           niSysConf;                                                      /* Adapter Configuration byte - Byte 16 of eeprom map */
+       UCHAR           niScsiConf;                                                     /* SCSI Configuration byte - Byte 17 of eeprom map */
+       UCHAR           niScamConf;                                                     /* SCAM Configuration byte - Byte 20 of eeprom map */
+       UCHAR           niAdapId;                                                       /* Host Adapter ID - Byte 24 of eerpom map */
+       UCHAR           niSyncTbl[MAX_SCSI_TAR / 2];    /* Sync/Wide byte of targets */
+       UCHAR           niScamTbl[MAX_SCSI_TAR][4];     /* Compressed Scam name string of Targets */
+}NVRAMINFO;
+
+typedef NVRAMINFO *PNVRamInfo;
 
 #define        MODEL_LT                1
 #define        MODEL_DL                2
 #define        MODEL_LW                3
 #define        MODEL_DW                4
 
-struct sccb_card {
-       struct sccb *currentSCCB;
-       struct sccb_mgr_info *cardInfo;
 
-       unsigned long ioPort;
+typedef struct SCCBcard {
+   PSCCB currentSCCB;
+   PSCCBMGR_INFO cardInfo;
 
-       unsigned short cmdCounter;
-       unsigned char discQCount;
-       unsigned char tagQ_Lst;
-       unsigned char cardIndex;
-       unsigned char scanIndex;
-       unsigned char globalFlags;
-       unsigned char ourId;
-       struct nvram_info *pNvRamInfo;
-       struct sccb *discQ_Tbl[QUEUE_DEPTH];
+   ULONG ioPort;
+
+   USHORT cmdCounter;
+   UCHAR  discQCount;
+   UCHAR  tagQ_Lst; 
+   UCHAR cardIndex;
+   UCHAR scanIndex;
+   UCHAR globalFlags;
+   UCHAR ourId;
+   PNVRamInfo pNvRamInfo;
+   PSCCB discQ_Tbl[QUEUE_DEPTH]; 
+      
+}SCCBCARD;
+
+typedef struct SCCBcard *PSCCBcard;
 
-};
 
 #define F_TAG_STARTED          0x01
 #define F_CONLUN_IO                    0x02
@@ -269,10 +414,13 @@ struct sccb_card {
 #define F_NEW_SCCB_CMD         0x40
 #define F_UPDATE_EEPROM                0x80
 
+
 #define  ID_STRING_LENGTH  32
-#define  TYPE_CODE0        0x63        /*Level2 Mstr (bits 7-6),  */
+#define  TYPE_CODE0        0x63           /*Level2 Mstr (bits 7-6),  */
+
+#define  TYPE_CODE1        00             /*No ID yet */
 
-#define  SLV_TYPE_CODE0    0xA3        /*Priority Bit set (bits 7-6),  */
+#define  SLV_TYPE_CODE0    0xA3           /*Priority Bit set (bits 7-6),  */
 
 #define  ASSIGN_ID   0x00
 #define  SET_P_FLAG  0x01
@@ -282,42 +430,97 @@ struct sccb_card {
 
 #define  ID_0_7      0x18
 #define  ID_8_F      0x11
+#define  ID_10_17    0x12
+#define  ID_18_1F    0x0B
 #define  MISC_CODE   0x14
 #define  CLR_P_FLAG  0x18
+#define  LOCATE_ON   0x12
+#define  LOCATE_OFF  0x0B
+
+#define  LVL_1_MST   0x00
+#define  LVL_2_MST   0x40
+#define  DOM_LVL_2   0xC0
+
 
 #define  INIT_SELTD  0x01
 #define  LEVEL2_TAR  0x02
 
-enum scam_id_st { ID0, ID1, ID2, ID3, ID4, ID5, ID6, ID7, ID8, ID9, ID10, ID11,
-           ID12,
-       ID13, ID14, ID15, ID_UNUSED, ID_UNASSIGNED, ID_ASSIGNED, LEGACY,
-       CLR_PRIORITY, NO_ID_AVAIL
-};
+
+enum scam_id_st { ID0,ID1,ID2,ID3,ID4,ID5,ID6,ID7,ID8,ID9,ID10,ID11,ID12,
+                  ID13,ID14,ID15,ID_UNUSED,ID_UNASSIGNED,ID_ASSIGNED,LEGACY,
+                  CLR_PRIORITY,NO_ID_AVAIL };
 
 typedef struct SCCBscam_info {
 
-       unsigned char id_string[ID_STRING_LENGTH];
-       enum scam_id_st state;
+   UCHAR    id_string[ID_STRING_LENGTH];
+   enum scam_id_st state;
+    
+} SCCBSCAM_INFO, *PSCCBSCAM_INFO;
 
-} SCCBSCAM_INFO;
 
+#define  SCSI_TEST_UNIT_READY    0x00
+#define  SCSI_REZERO_UNIT        0x01
 #define  SCSI_REQUEST_SENSE      0x03
+#define  SCSI_FORMAT_UNIT        0x04
+#define  SCSI_REASSIGN           0x07
 #define  SCSI_READ               0x08
 #define  SCSI_WRITE              0x0A
+#define  SCSI_SEEK               0x0B
+#define  SCSI_INQUIRY            0x12
+#define  SCSI_MODE_SELECT        0x15
+#define  SCSI_RESERVE_UNIT       0x16
+#define  SCSI_RELEASE_UNIT       0x17
+#define  SCSI_MODE_SENSE         0x1A
 #define  SCSI_START_STOP_UNIT    0x1B
+#define  SCSI_SEND_DIAGNOSTIC    0x1D
+#define  SCSI_READ_CAPACITY      0x25
 #define  SCSI_READ_EXTENDED      0x28
 #define  SCSI_WRITE_EXTENDED     0x2A
+#define  SCSI_SEEK_EXTENDED      0x2B
 #define  SCSI_WRITE_AND_VERIFY   0x2E
+#define  SCSI_VERIFY             0x2F
+#define  SCSI_READ_DEFECT_DATA   0x37
+#define  SCSI_WRITE_BUFFER       0x3B
+#define  SCSI_READ_BUFFER        0x3C
+#define  SCSI_RECV_DIAGNOSTIC    0x1C
+#define  SCSI_READ_LONG          0x3E
+#define  SCSI_WRITE_LONG         0x3F
+#define  SCSI_LAST_SCSI_CMND     SCSI_WRITE_LONG
+#define  SCSI_INVALID_CMND       0xFF
+
+
 
 #define  SSGOOD                  0x00
 #define  SSCHECK                 0x02
+#define  SSCOND_MET              0x04
+#define  SSBUSY                  0x08
+#define  SSRESERVATION_CONFLICT  0x18
+#define  SSCMD_TERM              0x22
 #define  SSQ_FULL                0x28
 
+
+#define  SKNO_SEN                0x00
+#define  SKRECOV_ERR             0x01
+#define  SKNOT_RDY               0x02
+#define  SKMED_ERR               0x03
+#define  SKHW_ERR                0x04
+#define  SKILL_REQ               0x05
+#define  SKUNIT_ATTN             0x06
+#define  SKDATA_PROTECT          0x07
+#define  SKBLNK_CHK              0x08
+#define  SKCPY_ABORT             0x0A
+#define  SKABORT_CMD             0x0B
+#define  SKEQUAL                 0x0C
+#define  SKVOL_OVF               0x0D
+#define  SKMIS_CMP               0x0E
+
+
 #define  SMCMD_COMP              0x00
 #define  SMEXT                   0x01
 #define  SMSAVE_DATA_PTR         0x02
 #define  SMREST_DATA_PTR         0x03
 #define  SMDISC                  0x04
+#define  SMINIT_DETEC_ERR        0x05
 #define  SMABORT                 0x06
 #define  SMREJECT                0x07
 #define  SMNO_OP                 0x08
@@ -330,31 +533,62 @@ typedef struct SCCBscam_info {
 #define  SMIDENT                 0x80
 #define  DISC_PRIV               0x40
 
+
 #define  SMSYNC                  0x01
+#define  SM10MBS                 0x19     /* 100ns           */
+#define  SM5MBS                  0x32     /* 200ns           */
+#define  SMOFFSET                0x0F     /* Maxoffset value */
 #define  SMWDTR                  0x03
 #define  SM8BIT                  0x00
 #define  SM16BIT                 0x01
-#define  SMIGNORWR               0x23  /* Ignore Wide Residue */
+#define  SM32BIT                 0x02
+#define  SMIGNORWR               0x23     /* Ignore Wide Residue */
+
+
+#define  ARBITRATION_DELAY       0x01     /* 2.4us using a 40Mhz clock */
+#define  BUS_SETTLE_DELAY        0x01     /* 400ns */
+#define  BUS_CLEAR_DELAY         0x01     /* 800ns */
+
+
+
+#define  SPHASE_TO               0x0A  /* 10 second timeout waiting for */
+#define  SCMD_TO                 0x0F  /* Overall command timeout */
+
+
 
 #define  SIX_BYTE_CMD            0x06
+#define  TEN_BYTE_CMD            0x0A
 #define  TWELVE_BYTE_CMD         0x0C
 
 #define  ASYNC                   0x00
-#define  MAX_OFFSET              0x0F  /* Maxbyteoffset for Sync Xfers */
+#define  PERI25NS                0x06  /* 25/4ns to next clock for xbow. */
+#define  SYNC10MBS               0x19
+#define  SYNC5MBS                0x32
+#define  MAX_OFFSET              0x0F  /* Maxbyteoffset for Sync Xfers */
+
 
 #define  EEPROM_WD_CNT     256
 
 #define  EEPROM_CHECK_SUM  0
 #define  FW_SIGNATURE      2
 #define  MODEL_NUMB_0      4
+#define  MODEL_NUMB_1      5
 #define  MODEL_NUMB_2      6
+#define  MODEL_NUMB_3      7
 #define  MODEL_NUMB_4      8
+#define  MODEL_NUMB_5      9
+#define  IO_BASE_ADDR      10
+#define  IRQ_NUMBER        12
+#define  PCI_INT_PIN       13
+#define  BUS_DELAY         14       /*On time in byte 14 off delay in 15 */
 #define  SYSTEM_CONFIG     16
 #define  SCSI_CONFIG       17
 #define  BIOS_CONFIG       18
+#define  SPIN_UP_DELAY     19
 #define  SCAM_CONFIG       20
 #define  ADAPTER_SCSI_ID   24
 
+
 #define  IGNORE_B_SCAN     32
 #define  SEND_START_ENA    34
 #define  DEVICE_ENABLE     36
@@ -369,405 +603,717 @@ typedef struct SCCBscam_info {
 #define  SYNC_RATE_TBLcd   50
 #define  SYNC_RATE_TBLef   52
 
-#define  EE_SCAMBASE      256
 
-#define  SCAM_ENABLED   BIT(2)
-#define  SCAM_LEVEL2    BIT(3)
 
-#define        RENEGO_ENA              BITW(10)
-#define        CONNIO_ENA              BITW(11)
-#define  GREEN_PC_ENA   BITW(12)
+#define  EE_SCAMBASE      256 
+
+
 
-#define  AUTO_RATE_00   00
-#define  AUTO_RATE_05   01
-#define  AUTO_RATE_10   02
-#define  AUTO_RATE_20   03
+   #define  DOM_MASTER     (BIT(0) + BIT(1))
+   #define  SCAM_ENABLED   BIT(2)
+   #define  SCAM_LEVEL2    BIT(3)
 
-#define  WIDE_NEGO_BIT     BIT(7)
-#define  DISC_ENABLE_BIT   BIT(6)
 
-#define  hp_vendor_id_0       0x00     /* LSB */
-#define  ORION_VEND_0   0x4B
+       #define RENEGO_ENA              BITW(10)
+       #define CONNIO_ENA              BITW(11)
+   #define  GREEN_PC_ENA   BITW(12)
 
-#define  hp_vendor_id_1       0x01     /* MSB */
-#define  ORION_VEND_1   0x10
 
-#define  hp_device_id_0       0x02     /* LSB */
-#define  ORION_DEV_0    0x30
+   #define  AUTO_RATE_00   00
+   #define  AUTO_RATE_05   01
+   #define  AUTO_RATE_10   02
+   #define  AUTO_RATE_20   03
 
-#define  hp_device_id_1       0x03     /* MSB */
-#define  ORION_DEV_1    0x81
+   #define  WIDE_NEGO_BIT     BIT(7)
+   #define  DISC_ENABLE_BIT   BIT(6)
+
+
+
+   #define  hp_vendor_id_0       0x00          /* LSB */
+      #define  ORION_VEND_0   0x4B
+   #define  hp_vendor_id_1       0x01          /* MSB */
+      #define  ORION_VEND_1   0x10
+
+   #define  hp_device_id_0       0x02          /* LSB */
+      #define  ORION_DEV_0    0x30 
+
+   #define  hp_device_id_1       0x03          /* MSB */
+      #define  ORION_DEV_1    0x81 
 
        /* Sub Vendor ID and Sub Device ID only available in
-          Harpoon Version 2 and higher */
+               Harpoon Version 2 and higher */
+
+   #define  hp_sub_vendor_id_0   0x04          /* LSB */
+   #define  hp_sub_vendor_id_1   0x05          /* MSB */
+   #define  hp_sub_device_id_0   0x06          /* LSB */
+   #define  hp_sub_device_id_1   0x07          /* MSB */
+
+
+   #define  hp_dual_addr_lo      0x08
+   #define  hp_dual_addr_lmi     0x09
+   #define  hp_dual_addr_hmi     0x0A
+   #define  hp_dual_addr_hi      0x0B
+
+   #define  hp_semaphore         0x0C
+      #define SCCB_MGR_ACTIVE    BIT(0)
+      #define TICKLE_ME          BIT(1)
+      #define SCCB_MGR_PRESENT   BIT(3)
+      #define BIOS_IN_USE        BIT(4)
+
+   #define  hp_user_defined_D    0x0D
+
+   #define  hp_reserved_E        0x0E
+
+   #define  hp_sys_ctrl          0x0F
+
+      #define  STOP_CLK          BIT(0)      /*Turn off BusMaster Clock */
+      #define  DRVR_RST          BIT(1)      /*Firmware Reset to 80C15 chip */
+      #define  HALT_MACH         BIT(3)      /*Halt State Machine      */
+      #define  HARD_ABORT        BIT(4)      /*Hard Abort              */
+      #define  DIAG_MODE         BIT(5)      /*Diagnostic Mode         */
+
+      #define  BM_ABORT_TMOUT    0x50        /*Halt State machine time out */
+
+   #define  hp_sys_cfg           0x10
+
+      #define  DONT_RST_FIFO     BIT(7)      /*Don't reset FIFO      */
+
+
+   #define  hp_host_ctrl0        0x11
+
+      #define  DUAL_ADDR_MODE    BIT(0)   /*Enable 64-bit addresses */
+      #define  IO_MEM_SPACE      BIT(1)   /*I/O Memory Space    */
+      #define  RESOURCE_LOCK     BIT(2)   /*Enable Resource Lock */
+      #define  IGNOR_ACCESS_ERR  BIT(3)   /*Ignore Access Error */
+      #define  HOST_INT_EDGE     BIT(4)   /*Host interrupt level/edge mode sel */
+      #define  SIX_CLOCKS        BIT(5)   /*6 Clocks between Strobe   */
+      #define  DMA_EVEN_PARITY   BIT(6)   /*Enable DMA Enen Parity */
+
+/*
+      #define  BURST_MODE        BIT(0)
+*/
+
+   #define  hp_reserved_12       0x12
+
+   #define  hp_host_blk_cnt      0x13
+
+      #define  XFER_BLK1         0x00     /*     0 0 0  1 byte per block*/
+      #define  XFER_BLK2         0x01     /*     0 0 1  2 byte per block*/
+      #define  XFER_BLK4         0x02     /*     0 1 0  4 byte per block*/
+      #define  XFER_BLK8         0x03     /*     0 1 1  8 byte per block*/
+      #define  XFER_BLK16        0x04     /*     1 0 0 16 byte per block*/
+      #define  XFER_BLK32        0x05     /*     1 0 1 32 byte per block*/
+      #define  XFER_BLK64        0x06     /*     1 1 0 64 byte per block*/
+   
+      #define  BM_THRESHOLD      0x40     /* PCI mode can only xfer 16 bytes*/
+
+
+   #define  hp_reserved_14       0x14
+   #define  hp_reserved_15       0x15
+   #define  hp_reserved_16       0x16
+
+   #define  hp_int_mask          0x17
+
+      #define  INT_CMD_COMPL     BIT(0)   /* DMA command complete   */
+      #define  INT_EXT_STATUS    BIT(1)   /* Extended Status Set    */
+      #define  INT_SCSI          BIT(2)   /* Scsi block interrupt   */
+      #define  INT_FIFO_RDY      BIT(4)   /* FIFO data ready        */
+
+
+   #define  hp_xfer_cnt_lo       0x18
+   #define  hp_xfer_cnt_mi       0x19
+   #define  hp_xfer_cnt_hi       0x1A
+   #define  hp_xfer_cmd          0x1B
+
+      #define  XFER_HOST_DMA     0x00     /*     0 0 0 Transfer Host -> DMA */
+      #define  XFER_DMA_HOST     0x01     /*     0 0 1 Transfer DMA  -> Host */
+      #define  XFER_HOST_MPU     0x02     /*     0 1 0 Transfer Host -> MPU  */
+      #define  XFER_MPU_HOST     0x03     /*     0 1 1 Transfer MPU  -> Host */
+      #define  XFER_DMA_MPU      0x04     /*     1 0 0 Transfer DMA  -> MPU  */
+      #define  XFER_MPU_DMA      0x05     /*     1 0 1 Transfer MPU  -> DMA  */
+      #define  SET_SEMAPHORE     0x06     /*     1 1 0 Set Semaphore         */
+      #define  XFER_NOP          0x07     /*     1 1 1 Transfer NOP          */
+      #define  XFER_MB_MPU       0x06     /*     1 1 0 Transfer MB -> MPU */
+      #define  XFER_MB_DMA       0x07     /*     1 1 1 Transfer MB -> DMA */
+
+
+      #define  XFER_HOST_AUTO    0x00     /*     0 0 Auto Transfer Size   */
+      #define  XFER_HOST_8BIT    0x08     /*     0 1 8 BIT Transfer Size  */
+      #define  XFER_HOST_16BIT   0x10     /*     1 0 16 BIT Transfer Size */
+      #define  XFER_HOST_32BIT   0x18     /*     1 1 32 BIT Transfer Size */
+
+      #define  XFER_DMA_8BIT     0x20     /*     0 1 8 BIT  Transfer Size */
+      #define  XFER_DMA_16BIT    0x40     /*     1 0 16 BIT Transfer Size */
+
+      #define  DISABLE_INT       BIT(7)   /*Do not interrupt at end of cmd. */
+
+      #define  HOST_WRT_CMD      ((DISABLE_INT + XFER_HOST_DMA + XFER_HOST_AUTO + XFER_DMA_8BIT))
+      #define  HOST_RD_CMD       ((DISABLE_INT + XFER_DMA_HOST + XFER_HOST_AUTO + XFER_DMA_8BIT))
+      #define  WIDE_HOST_WRT_CMD ((DISABLE_INT + XFER_HOST_DMA + XFER_HOST_AUTO + XFER_DMA_16BIT))
+      #define  WIDE_HOST_RD_CMD  ((DISABLE_INT + XFER_DMA_HOST + XFER_HOST_AUTO + XFER_DMA_16BIT))
+
+   #define  hp_host_addr_lo      0x1C
+   #define  hp_host_addr_lmi     0x1D
+   #define  hp_host_addr_hmi     0x1E
+   #define  hp_host_addr_hi      0x1F
+
+   #define  hp_pio_data          0x20
+   #define  hp_reserved_21       0x21
+   #define  hp_ee_ctrl           0x22
+
+      #define  EXT_ARB_ACK       BIT(7)
+      #define  SCSI_TERM_ENA_H   BIT(6)   /* SCSI high byte terminator */
+      #define  SEE_MS            BIT(5)
+      #define  SEE_CS            BIT(3)
+      #define  SEE_CLK           BIT(2)
+      #define  SEE_DO            BIT(1)
+      #define  SEE_DI            BIT(0)
 
-#define  hp_sub_device_id_0   0x06     /* LSB */
+      #define  EE_READ           0x06
+      #define  EE_WRITE          0x05
+      #define  EWEN              0x04
+      #define  EWEN_ADDR         0x03C0
+      #define  EWDS              0x04
+      #define  EWDS_ADDR         0x0000
 
-#define  hp_semaphore         0x0C
-#define SCCB_MGR_ACTIVE    BIT(0)
-#define TICKLE_ME          BIT(1)
-#define SCCB_MGR_PRESENT   BIT(3)
-#define BIOS_IN_USE        BIT(4)
+   #define  hp_brdctl            0x23
 
-#define  hp_sys_ctrl          0x0F
+      #define  DAT_7             BIT(7)
+      #define  DAT_6             BIT(6)
+      #define  DAT_5             BIT(5)
+      #define  BRD_STB           BIT(4)
+      #define  BRD_CS            BIT(3)
+      #define  BRD_WR            BIT(2)
 
-#define  STOP_CLK          BIT(0)      /*Turn off BusMaster Clock */
-#define  DRVR_RST          BIT(1)      /*Firmware Reset to 80C15 chip */
-#define  HALT_MACH         BIT(3)      /*Halt State Machine      */
-#define  HARD_ABORT        BIT(4)      /*Hard Abort              */
+   #define  hp_reserved_24       0x24
+   #define  hp_reserved_25       0x25
 
-#define  hp_host_blk_cnt      0x13
 
-#define  XFER_BLK64        0x06        /*     1 1 0 64 byte per block */
 
-#define  BM_THRESHOLD      0x40        /* PCI mode can only xfer 16 bytes */
 
-#define  hp_int_mask          0x17
+   #define  hp_bm_ctrl           0x26
 
-#define  INT_CMD_COMPL     BIT(0)      /* DMA command complete   */
-#define  INT_EXT_STATUS    BIT(1)      /* Extended Status Set    */
+      #define  SCSI_TERM_ENA_L   BIT(0)   /*Enable/Disable external terminators */
+      #define  FLUSH_XFER_CNTR   BIT(1)   /*Flush transfer counter */
+      #define  BM_XFER_MIN_8     BIT(2)   /*Enable bus master transfer of 9 */
+      #define  BIOS_ENA          BIT(3)   /*Enable BIOS/FLASH Enable */
+      #define  FORCE1_XFER       BIT(5)   /*Always xfer one byte in byte mode */
+      #define  FAST_SINGLE       BIT(6)   /*?? */
 
-#define  hp_xfer_cnt_lo       0x18
-#define  hp_xfer_cnt_hi       0x1A
-#define  hp_xfer_cmd          0x1B
+      #define  BMCTRL_DEFAULT    (FORCE1_XFER|FAST_SINGLE|SCSI_TERM_ENA_L)
 
-#define  XFER_HOST_DMA     0x00        /*     0 0 0 Transfer Host -> DMA */
-#define  XFER_DMA_HOST     0x01        /*     0 0 1 Transfer DMA  -> Host */
+   #define  hp_reserved_27       0x27
 
-#define  XFER_HOST_AUTO    0x00        /*     0 0 Auto Transfer Size   */
+   #define  hp_sg_addr           0x28
+   #define  hp_page_ctrl         0x29
 
-#define  XFER_DMA_8BIT     0x20        /*     0 1 8 BIT  Transfer Size */
+      #define  SCATTER_EN        BIT(0)   
+      #define  SGRAM_ARAM        BIT(1)   
+      #define  BIOS_SHADOW       BIT(2)   
+      #define  G_INT_DISABLE     BIT(3)   /* Enable/Disable all Interrupts */
+      #define  NARROW_SCSI_CARD  BIT(4)   /* NARROW/WIDE SCSI config pin */
 
-#define  DISABLE_INT       BIT(7)      /*Do not interrupt at end of cmd. */
+   #define  hp_reserved_2A       0x2A
+   #define  hp_pci_cmd_cfg       0x2B
 
-#define  HOST_WRT_CMD      ((DISABLE_INT + XFER_HOST_DMA + XFER_HOST_AUTO + XFER_DMA_8BIT))
-#define  HOST_RD_CMD       ((DISABLE_INT + XFER_DMA_HOST + XFER_HOST_AUTO + XFER_DMA_8BIT))
+      #define  IO_SPACE_ENA      BIT(0)   /*enable I/O space */
+      #define  MEM_SPACE_ENA     BIT(1)   /*enable memory space */
+      #define  BUS_MSTR_ENA      BIT(2)   /*enable bus master operation */
+      #define  MEM_WI_ENA        BIT(4)   /*enable Write and Invalidate */
+      #define  PAR_ERR_RESP      BIT(6)   /*enable parity error responce. */
 
-#define  hp_host_addr_lo      0x1C
-#define  hp_host_addr_hmi     0x1E
+   #define  hp_reserved_2C       0x2C
 
-#define  hp_ee_ctrl           0x22
+   #define  hp_pci_stat_cfg      0x2D
 
-#define  EXT_ARB_ACK       BIT(7)
-#define  SCSI_TERM_ENA_H   BIT(6)      /* SCSI high byte terminator */
-#define  SEE_MS            BIT(5)
-#define  SEE_CS            BIT(3)
-#define  SEE_CLK           BIT(2)
-#define  SEE_DO            BIT(1)
-#define  SEE_DI            BIT(0)
+      #define  DATA_PARITY_ERR   BIT(0)   
+      #define  REC_TARGET_ABORT  BIT(4)   /*received Target abort */
+      #define  REC_MASTER_ABORT  BIT(5)   /*received Master abort */
+      #define  SIG_SYSTEM_ERR    BIT(6)   
+      #define  DETECTED_PAR_ERR  BIT(7)   
 
-#define  EE_READ           0x06
-#define  EE_WRITE          0x05
-#define  EWEN              0x04
-#define  EWEN_ADDR         0x03C0
-#define  EWDS              0x04
-#define  EWDS_ADDR         0x0000
+   #define  hp_reserved_2E       0x2E
 
-#define  hp_bm_ctrl           0x26
+   #define  hp_sys_status        0x2F
 
-#define  SCSI_TERM_ENA_L   BIT(0)      /*Enable/Disable external terminators */
-#define  FLUSH_XFER_CNTR   BIT(1)      /*Flush transfer counter */
-#define  FORCE1_XFER       BIT(5)      /*Always xfer one byte in byte mode */
-#define  FAST_SINGLE       BIT(6)      /*?? */
+      #define  SLV_DATA_RDY      BIT(0)   /*Slave data ready */
+      #define  XFER_CNT_ZERO     BIT(1)   /*Transfer counter = 0 */
+      #define  BM_FIFO_EMPTY     BIT(2)   /*FIFO empty */
+      #define  BM_FIFO_FULL      BIT(3)   /*FIFO full */
+      #define  HOST_OP_DONE      BIT(4)   /*host operation done */
+      #define  DMA_OP_DONE       BIT(5)   /*DMA operation done */
+      #define  SLV_OP_DONE       BIT(6)   /*Slave operation done */
+      #define  PWR_ON_FLAG       BIT(7)   /*Power on flag */
 
-#define  BMCTRL_DEFAULT    (FORCE1_XFER|FAST_SINGLE|SCSI_TERM_ENA_L)
+   #define  hp_reserved_30       0x30
 
-#define  hp_sg_addr           0x28
-#define  hp_page_ctrl         0x29
+   #define  hp_host_status0      0x31
 
-#define  SCATTER_EN        BIT(0)
-#define  SGRAM_ARAM        BIT(1)
-#define  G_INT_DISABLE     BIT(3)      /* Enable/Disable all Interrupts */
-#define  NARROW_SCSI_CARD  BIT(4)      /* NARROW/WIDE SCSI config pin */
+      #define  HOST_TERM         BIT(5)   /*Host Terminal Count */
+      #define  HOST_TRSHLD       BIT(6)   /*Host Threshold      */
+      #define  CONNECTED_2_HOST  BIT(7)   /*Connected to Host   */
 
-#define  hp_pci_stat_cfg      0x2D
+   #define  hp_reserved_32       0x32
 
-#define  REC_MASTER_ABORT  BIT(5)      /*received Master abort */
+   #define  hp_rev_num           0x33
 
-#define  hp_rev_num           0x33
+      #define  REV_A_CONST       0x0E
+      #define  REV_B_CONST       0x0E
 
-#define  hp_stack_data        0x34
-#define  hp_stack_addr        0x35
+   #define  hp_stack_data        0x34
+   #define  hp_stack_addr        0x35
 
-#define  hp_ext_status        0x36
+   #define  hp_ext_status        0x36
 
-#define  BM_FORCE_OFF      BIT(0)      /*Bus Master is forced to get off */
-#define  PCI_TGT_ABORT     BIT(0)      /*PCI bus master transaction aborted */
-#define  PCI_DEV_TMOUT     BIT(1)      /*PCI Device Time out */
-#define  CMD_ABORTED       BIT(4)      /*Command aborted */
-#define  BM_PARITY_ERR     BIT(5)      /*parity error on data received   */
-#define  PIO_OVERRUN       BIT(6)      /*Slave data overrun */
-#define  BM_CMD_BUSY       BIT(7)      /*Bus master transfer command busy */
-#define  BAD_EXT_STATUS    (BM_FORCE_OFF | PCI_DEV_TMOUT | CMD_ABORTED | \
+      #define  BM_FORCE_OFF      BIT(0)   /*Bus Master is forced to get off */
+      #define  PCI_TGT_ABORT     BIT(0)   /*PCI bus master transaction aborted */
+      #define  PCI_DEV_TMOUT     BIT(1)   /*PCI Device Time out */
+      #define  FIFO_TC_NOT_ZERO  BIT(2)   /*FIFO or transfer counter not zero */
+      #define  CHIP_RST_OCCUR    BIT(3)   /*Chip reset occurs */
+      #define  CMD_ABORTED       BIT(4)   /*Command aborted */
+      #define  BM_PARITY_ERR     BIT(5)   /*parity error on data received   */
+      #define  PIO_OVERRUN       BIT(6)   /*Slave data overrun */
+      #define  BM_CMD_BUSY       BIT(7)   /*Bus master transfer command busy */
+      #define  BAD_EXT_STATUS    (BM_FORCE_OFF | PCI_DEV_TMOUT | CMD_ABORTED | \
                                   BM_PARITY_ERR | PIO_OVERRUN)
 
-#define  hp_int_status        0x37
-
-#define  EXT_STATUS_ON     BIT(1)      /*Extended status is valid */
-#define  SCSI_INTERRUPT    BIT(2)      /*Global indication of a SCSI int. */
-#define  INT_ASSERTED      BIT(5)      /* */
-
-#define  hp_fifo_cnt          0x38
-
-#define  hp_intena              0x40
-
-#define  RESET          BITW(7)
-#define  PROG_HLT               BITW(6)
-#define  PARITY                 BITW(5)
-#define  FIFO           BITW(4)
-#define  SEL            BITW(3)
-#define  SCAM_SEL               BITW(2)
-#define  RSEL           BITW(1)
-#define  TIMEOUT                BITW(0)
-#define  BUS_FREE               BITW(15)
-#define  XFER_CNT_0     BITW(14)
-#define  PHASE          BITW(13)
-#define  IUNKWN                 BITW(12)
-#define  ICMD_COMP      BITW(11)
-#define  ITICKLE                BITW(10)
-#define  IDO_STRT               BITW(9)
-#define  ITAR_DISC      BITW(8)
-#define  AUTO_INT               (BITW(12)+BITW(11)+BITW(10)+BITW(9)+BITW(8))
-#define  CLR_ALL_INT    0xFFFF
-#define  CLR_ALL_INT_1  0xFF00
-
-#define  hp_intstat             0x42
-
-#define  hp_scsisig           0x44
-
-#define  SCSI_SEL          BIT(7)
-#define  SCSI_BSY          BIT(6)
-#define  SCSI_REQ          BIT(5)
-#define  SCSI_ACK          BIT(4)
-#define  SCSI_ATN          BIT(3)
-#define  SCSI_CD           BIT(2)
-#define  SCSI_MSG          BIT(1)
-#define  SCSI_IOBIT        BIT(0)
-
-#define  S_SCSI_PHZ        (BIT(2)+BIT(1)+BIT(0))
-#define  S_MSGO_PH         (BIT(2)+BIT(1)       )
-#define  S_MSGI_PH         (BIT(2)+BIT(1)+BIT(0))
-#define  S_DATAI_PH        (              BIT(0))
-#define  S_DATAO_PH        0x00
-#define  S_ILL_PH          (       BIT(1)       )
-
-#define  hp_scsictrl_0        0x45
-
-#define  SEL_TAR           BIT(6)
-#define  ENA_ATN           BIT(4)
-#define  ENA_RESEL         BIT(2)
-#define  SCSI_RST          BIT(1)
-#define  ENA_SCAM_SEL      BIT(0)
+   #define  hp_int_status        0x37
+      
+      #define  BM_CMD_CMPL       BIT(0)   /*Bus Master command complete */
+      #define  EXT_STATUS_ON     BIT(1)   /*Extended status is valid */
+      #define  SCSI_INTERRUPT    BIT(2)   /*Global indication of a SCSI int. */
+      #define  BM_FIFO_RDY       BIT(4)   
+      #define  INT_ASSERTED      BIT(5)   /* */
+      #define  SRAM_BUSY         BIT(6)   /*Scatter/Gather RAM busy */
+      #define  CMD_REG_BUSY      BIT(7)                                       
+
+
+   #define  hp_fifo_cnt          0x38
+   #define  hp_curr_host_cnt     0x39
+   #define  hp_reserved_3A       0x3A
+   #define  hp_fifo_in_addr      0x3B
+
+   #define  hp_fifo_out_addr     0x3C
+   #define  hp_reserved_3D       0x3D
+   #define  hp_reserved_3E       0x3E
+   #define  hp_reserved_3F       0x3F
+
+
+
+   #define  hp_intena           0x40
+
+      #define  RESET            BITW(7)
+      #define  PROG_HLT                 BITW(6)  
+      #define  PARITY           BITW(5)
+      #define  FIFO             BITW(4)
+      #define  SEL              BITW(3)
+      #define  SCAM_SEL                 BITW(2) 
+      #define  RSEL             BITW(1)
+      #define  TIMEOUT          BITW(0)
+      #define  BUS_FREE                 BITW(15)
+      #define  XFER_CNT_0       BITW(14)
+      #define  PHASE            BITW(13)
+      #define  IUNKWN           BITW(12)
+      #define  ICMD_COMP        BITW(11)
+      #define  ITICKLE          BITW(10)
+      #define  IDO_STRT                 BITW(9)
+      #define  ITAR_DISC        BITW(8)
+      #define  AUTO_INT                 (BITW(12)+BITW(11)+BITW(10)+BITW(9)+BITW(8))
+      #define  CLR_ALL_INT      0xFFFF
+      #define  CLR_ALL_INT_1    0xFF00
+
+   #define  hp_intstat          0x42
+
+   #define  hp_scsisig           0x44
+
+      #define  SCSI_SEL          BIT(7)
+      #define  SCSI_BSY          BIT(6)
+      #define  SCSI_REQ          BIT(5)
+      #define  SCSI_ACK          BIT(4)
+      #define  SCSI_ATN          BIT(3)
+      #define  SCSI_CD           BIT(2)
+      #define  SCSI_MSG          BIT(1)
+      #define  SCSI_IOBIT        BIT(0)
+
+      #define  S_SCSI_PHZ        (BIT(2)+BIT(1)+BIT(0))
+      #define  S_CMD_PH          (BIT(2)              )
+      #define  S_MSGO_PH         (BIT(2)+BIT(1)       )
+      #define  S_STAT_PH         (BIT(2)       +BIT(0))
+      #define  S_MSGI_PH         (BIT(2)+BIT(1)+BIT(0))
+      #define  S_DATAI_PH        (              BIT(0))
+      #define  S_DATAO_PH        0x00
+      #define  S_ILL_PH          (       BIT(1)       )
+
+   #define  hp_scsictrl_0        0x45
+
+      #define  NO_ARB            BIT(7)
+      #define  SEL_TAR           BIT(6)
+      #define  ENA_ATN           BIT(4)
+      #define  ENA_RESEL         BIT(2)
+      #define  SCSI_RST          BIT(1)
+      #define  ENA_SCAM_SEL      BIT(0)
+
+
+
+   #define  hp_portctrl_0        0x46
+
+      #define  SCSI_PORT         BIT(7)
+      #define  SCSI_INBIT        BIT(6)
+      #define  DMA_PORT          BIT(5)
+      #define  DMA_RD            BIT(4)
+      #define  HOST_PORT         BIT(3)
+      #define  HOST_WRT          BIT(2)
+      #define  SCSI_BUS_EN       BIT(1)
+      #define  START_TO          BIT(0)
+
+   #define  hp_scsireset         0x47
+
+      #define  SCSI_TAR          BIT(7)
+      #define  SCSI_INI          BIT(6)
+      #define  SCAM_EN           BIT(5)
+      #define  ACK_HOLD          BIT(4)
+      #define  DMA_RESET         BIT(3)
+      #define  HPSCSI_RESET      BIT(2)
+      #define  PROG_RESET        BIT(1)
+      #define  FIFO_CLR          BIT(0)
+
+   #define  hp_xfercnt_0         0x48
+   #define  hp_xfercnt_1         0x49
+   #define  hp_xfercnt_2         0x4A
+   #define  hp_xfercnt_3         0x4B
+
+   #define  hp_fifodata_0        0x4C
+   #define  hp_fifodata_1        0x4D
+   #define  hp_addstat           0x4E
+
+      #define  SCAM_TIMER        BIT(7)
+      #define  AUTO_RUNNING      BIT(6)
+      #define  FAST_SYNC         BIT(5)
+      #define  SCSI_MODE8        BIT(3)
+      #define  SCSI_PAR_ERR      BIT(0)
+
+   #define  hp_prgmcnt_0         0x4F
+
+      #define  AUTO_PC_MASK      0x3F
+
+   #define  hp_selfid_0          0x50
+   #define  hp_selfid_1          0x51
+   #define  hp_arb_id            0x52
+
+      #define  ARB_ID            (BIT(3) + BIT(2) + BIT(1) + BIT(0))
+
+   #define  hp_select_id         0x53
+
+      #define  RESEL_ID          (BIT(7) + BIT(6) + BIT(5) + BIT(4))
+      #define  SELECT_ID         (BIT(3) + BIT(2) + BIT(1) + BIT(0))
+
+   #define  hp_synctarg_base     0x54
+   #define  hp_synctarg_12       0x54
+   #define  hp_synctarg_13       0x55
+   #define  hp_synctarg_14       0x56
+   #define  hp_synctarg_15       0x57
+
+   #define  hp_synctarg_8        0x58
+   #define  hp_synctarg_9        0x59
+   #define  hp_synctarg_10       0x5A
+   #define  hp_synctarg_11       0x5B
+
+   #define  hp_synctarg_4        0x5C
+   #define  hp_synctarg_5        0x5D
+   #define  hp_synctarg_6        0x5E
+   #define  hp_synctarg_7        0x5F
+
+   #define  hp_synctarg_0        0x60
+   #define  hp_synctarg_1        0x61
+   #define  hp_synctarg_2        0x62
+   #define  hp_synctarg_3        0x63
+
+      #define  RATE_20MB         0x00
+      #define  RATE_10MB         (              BIT(5))
+      #define  RATE_6_6MB        (       BIT(6)       )   
+      #define  RATE_5MB          (       BIT(6)+BIT(5))
+      #define  RATE_4MB          (BIT(7)              )
+      #define  RATE_3_33MB       (BIT(7)       +BIT(5))
+      #define  RATE_2_85MB       (BIT(7)+BIT(6)       )
+      #define  RATE_2_5MB        (BIT(7)+BIT(5)+BIT(6))
+      #define  NEXT_CLK          BIT(5)
+      #define  SLOWEST_SYNC      (BIT(7)+BIT(6)+BIT(5))
+      #define  NARROW_SCSI       BIT(4)
+      #define  SYNC_OFFSET       (BIT(3) + BIT(2) + BIT(1) + BIT(0))
+      #define  DEFAULT_ASYNC     0x00
+      #define  DEFAULT_OFFSET    0x0F
 
-#define  hp_portctrl_0        0x46
+   #define  hp_autostart_0       0x64
+   #define  hp_autostart_1       0x65
+   #define  hp_autostart_2       0x66
+   #define  hp_autostart_3       0x67
 
-#define  SCSI_PORT         BIT(7)
-#define  SCSI_INBIT        BIT(6)
-#define  DMA_PORT          BIT(5)
-#define  DMA_RD            BIT(4)
-#define  HOST_PORT         BIT(3)
-#define  HOST_WRT          BIT(2)
-#define  SCSI_BUS_EN       BIT(1)
-#define  START_TO          BIT(0)
 
-#define  hp_scsireset         0x47
 
-#define  SCSI_INI          BIT(6)
-#define  SCAM_EN           BIT(5)
-#define  DMA_RESET         BIT(3)
-#define  HPSCSI_RESET      BIT(2)
-#define  PROG_RESET        BIT(1)
-#define  FIFO_CLR          BIT(0)
+      #define  DISABLE  0x00
+      #define  AUTO_IMMED    BIT(5)
+      #define  SELECT   BIT(6)
+      #define  RESELECT (BIT(6)+BIT(5))
+      #define  BUSFREE  BIT(7)
+      #define  XFER_0   (BIT(7)+BIT(5))
+      #define  END_DATA (BIT(7)+BIT(6))
+      #define  MSG_PHZ  (BIT(7)+BIT(6)+BIT(5))
 
-#define  hp_xfercnt_0         0x48
-#define  hp_xfercnt_2         0x4A
+   #define  hp_gp_reg_0          0x68
+   #define  hp_gp_reg_1          0x69
+   #define  hp_gp_reg_2          0x6A
+   #define  hp_gp_reg_3          0x6B
 
-#define  hp_fifodata_0        0x4C
-#define  hp_addstat           0x4E
+   #define  hp_seltimeout        0x6C
 
-#define  SCAM_TIMER        BIT(7)
-#define  SCSI_MODE8        BIT(3)
-#define  SCSI_PAR_ERR      BIT(0)
 
-#define  hp_prgmcnt_0         0x4F
+      #define  TO_2ms            0x54      /* 2.0503ms */
+      #define  TO_4ms            0x67      /* 3.9959ms */
 
-#define  hp_selfid_0          0x50
-#define  hp_selfid_1          0x51
-#define  hp_arb_id            0x52
+      #define  TO_5ms            0x03      /* 4.9152ms */
+      #define  TO_10ms           0x07      /* 11.xxxms */
+      #define  TO_250ms          0x99      /* 250.68ms */
+      #define  TO_290ms          0xB1      /* 289.99ms */
+      #define  TO_350ms          0xD6      /* 350.62ms */
+      #define  TO_417ms          0xFF      /* 417.79ms */
 
-#define  hp_select_id         0x53
+   #define  hp_clkctrl_0         0x6D
 
-#define  hp_synctarg_base     0x54
-#define  hp_synctarg_12       0x54
-#define  hp_synctarg_13       0x55
-#define  hp_synctarg_14       0x56
-#define  hp_synctarg_15       0x57
+      #define  PWR_DWN           BIT(6)
+      #define  ACTdeassert       BIT(4)
+      #define  ATNonErr          BIT(3)
+      #define  CLK_30MHZ         BIT(1)
+      #define  CLK_40MHZ         (BIT(1) + BIT(0))
+      #define  CLK_50MHZ         BIT(2)
 
-#define  hp_synctarg_8        0x58
-#define  hp_synctarg_9        0x59
-#define  hp_synctarg_10       0x5A
-#define  hp_synctarg_11       0x5B
+      #define  CLKCTRL_DEFAULT   (ACTdeassert | CLK_40MHZ)
 
-#define  hp_synctarg_4        0x5C
-#define  hp_synctarg_5        0x5D
-#define  hp_synctarg_6        0x5E
-#define  hp_synctarg_7        0x5F
+   #define  hp_fiforead          0x6E
+   #define  hp_fifowrite         0x6F
 
-#define  hp_synctarg_0        0x60
-#define  hp_synctarg_1        0x61
-#define  hp_synctarg_2        0x62
-#define  hp_synctarg_3        0x63
+   #define  hp_offsetctr         0x70
+   #define  hp_xferstat          0x71
 
-#define  NARROW_SCSI       BIT(4)
-#define  DEFAULT_OFFSET    0x0F
+      #define  FIFO_FULL         BIT(7)
+      #define  FIFO_EMPTY        BIT(6)
+      #define  FIFO_MASK         0x3F   /* Mask for the FIFO count value. */
+      #define  FIFO_LEN          0x20
 
-#define  hp_autostart_0       0x64
-#define  hp_autostart_1       0x65
-#define  hp_autostart_3       0x67
+   #define  hp_portctrl_1        0x72
 
-#define  AUTO_IMMED    BIT(5)
-#define  SELECT   BIT(6)
-#define  END_DATA (BIT(7)+BIT(6))
+      #define  EVEN_HOST_P       BIT(5)
+      #define  INVT_SCSI         BIT(4)
+      #define  CHK_SCSI_P        BIT(3)
+      #define  HOST_MODE8        BIT(0)
+      #define  HOST_MODE16       0x00
 
-#define  hp_gp_reg_0          0x68
-#define  hp_gp_reg_1          0x69
-#define  hp_gp_reg_3          0x6B
+   #define  hp_xfer_pad          0x73
 
-#define  hp_seltimeout        0x6C
+      #define  ID_UNLOCK         BIT(3)
+      #define  XFER_PAD          BIT(2)
 
-#define  TO_4ms            0x67        /* 3.9959ms */
+   #define  hp_scsidata_0        0x74
+   #define  hp_scsidata_1        0x75
+   #define  hp_timer_0           0x76
+   #define  hp_timer_1           0x77
 
-#define  TO_5ms            0x03        /* 4.9152ms */
-#define  TO_10ms           0x07        /* 11.xxxms */
-#define  TO_250ms          0x99        /* 250.68ms */
-#define  TO_290ms          0xB1        /* 289.99ms */
+   #define  hp_reserved_78       0x78
+   #define  hp_reserved_79       0x79
+   #define  hp_reserved_7A       0x7A
+   #define  hp_reserved_7B       0x7B
 
-#define  hp_clkctrl_0         0x6D
+   #define  hp_reserved_7C       0x7C
+   #define  hp_reserved_7D       0x7D
+   #define  hp_reserved_7E       0x7E
+   #define  hp_reserved_7F       0x7F
 
-#define  PWR_DWN           BIT(6)
-#define  ACTdeassert       BIT(4)
-#define  CLK_40MHZ         (BIT(1) + BIT(0))
+   #define  hp_aramBase          0x80
+   #define  BIOS_DATA_OFFSET     0x60
+   #define  BIOS_RELATIVE_CARD   0x64
 
-#define  CLKCTRL_DEFAULT   (ACTdeassert | CLK_40MHZ)
 
-#define  hp_fiforead          0x6E
-#define  hp_fifowrite         0x6F
 
-#define  hp_offsetctr         0x70
-#define  hp_xferstat          0x71
 
-#define  FIFO_EMPTY        BIT(6)
+      #define  AUTO_LEN 0x80
+      #define  AR0      0x00
+      #define  AR1      BITW(8)
+      #define  AR2      BITW(9)
+      #define  AR3      (BITW(9) + BITW(8))
+      #define  SDATA    BITW(10)
 
-#define  hp_portctrl_1        0x72
+      #define  NOP_OP   0x00        /* Nop command */
 
-#define  CHK_SCSI_P        BIT(3)
-#define  HOST_MODE8        BIT(0)
+      #define  CRD_OP   BITW(11)     /* Cmp Reg. w/ Data */
 
-#define  hp_xfer_pad          0x73
+      #define  CRR_OP   BITW(12)     /* Cmp Reg. w. Reg. */
 
-#define  ID_UNLOCK         BIT(3)
+      #define  CBE_OP   (BITW(14)+BITW(12)+BITW(11)) /* Cmp SCSI cmd class & Branch EQ */
+      
+      #define  CBN_OP   (BITW(14)+BITW(13))  /* Cmp SCSI cmd class & Branch NOT EQ */
+      
+      #define  CPE_OP   (BITW(14)+BITW(11))  /* Cmp SCSI phs & Branch EQ */
 
-#define  hp_scsidata_0        0x74
-#define  hp_scsidata_1        0x75
+      #define  CPN_OP   (BITW(14)+BITW(12))  /* Cmp SCSI phs & Branch NOT EQ */
 
-#define  hp_aramBase          0x80
-#define  BIOS_DATA_OFFSET     0x60
-#define  BIOS_RELATIVE_CARD   0x64
 
-#define  AR3      (BITW(9) + BITW(8))
-#define  SDATA    BITW(10)
+      #define  ADATA_OUT   0x00     
+      #define  ADATA_IN    BITW(8)
+      #define  ACOMMAND    BITW(10)
+      #define  ASTATUS     (BITW(10)+BITW(8))
+      #define  AMSG_OUT    (BITW(10)+BITW(9))
+      #define  AMSG_IN     (BITW(10)+BITW(9)+BITW(8))
+      #define  AILLEGAL    (BITW(9)+BITW(8))
 
-#define  CRD_OP   BITW(11)     /* Cmp Reg. w/ Data */
 
-#define  CRR_OP   BITW(12)     /* Cmp Reg. w. Reg. */
+      #define  BRH_OP   BITW(13)   /* Branch */
 
-#define  CPE_OP   (BITW(14)+BITW(11))  /* Cmp SCSI phs & Branch EQ */
+      
+      #define  ALWAYS   0x00
+      #define  EQUAL    BITW(8)
+      #define  NOT_EQ   BITW(9)
 
-#define  CPN_OP   (BITW(14)+BITW(12))  /* Cmp SCSI phs & Branch NOT EQ */
+      #define  TCB_OP   (BITW(13)+BITW(11))    /* Test condition & branch */
 
-#define  ADATA_OUT   0x00
-#define  ADATA_IN    BITW(8)
-#define  ACOMMAND    BITW(10)
-#define  ASTATUS     (BITW(10)+BITW(8))
-#define  AMSG_OUT    (BITW(10)+BITW(9))
-#define  AMSG_IN     (BITW(10)+BITW(9)+BITW(8))
+      
+      #define  ATN_SET     BITW(8)
+      #define  ATN_RESET   BITW(9)
+      #define  XFER_CNT    (BITW(9)+BITW(8))
+      #define  FIFO_0      BITW(10)
+      #define  FIFO_NOT0   (BITW(10)+BITW(8))
+      #define  T_USE_SYNC0 (BITW(10)+BITW(9))
 
-#define  BRH_OP   BITW(13)     /* Branch */
 
-#define  ALWAYS   0x00
-#define  EQUAL    BITW(8)
-#define  NOT_EQ   BITW(9)
+      #define  MPM_OP   BITW(15)        /* Match phase and move data */
 
-#define  TCB_OP   (BITW(13)+BITW(11))  /* Test condition & branch */
+      #define  MDR_OP   (BITW(12)+BITW(11)) /* Move data to Reg. */
 
-#define  FIFO_0      BITW(10)
+      #define  MRR_OP   BITW(14)        /* Move DReg. to Reg. */
 
-#define  MPM_OP   BITW(15)     /* Match phase and move data */
 
-#define  MRR_OP   BITW(14)     /* Move DReg. to Reg. */
+      #define  S_IDREG  (BIT(2)+BIT(1)+BIT(0))
 
-#define  S_IDREG  (BIT(2)+BIT(1)+BIT(0))
 
-#define  D_AR0    0x00
-#define  D_AR1    BIT(0)
-#define  D_BUCKET (BIT(2) + BIT(1) + BIT(0))
+      #define  D_AR0    0x00
+      #define  D_AR1    BIT(0)
+      #define  D_AR2    BIT(1)
+      #define  D_AR3    (BIT(1) + BIT(0))
+      #define  D_SDATA  BIT(2)
+      #define  D_BUCKET (BIT(2) + BIT(1) + BIT(0))
 
-#define  RAT_OP      (BITW(14)+BITW(13)+BITW(11))
 
-#define  SSI_OP      (BITW(15)+BITW(11))
+      #define  ADR_OP   (BITW(13)+BITW(12)) /* Logical AND Reg. w. Data */
 
-#define  SSI_ITAR_DISC (ITAR_DISC >> 8)
-#define  SSI_IDO_STRT  (IDO_STRT >> 8)
+      #define  ADS_OP   (BITW(14)+BITW(13)+BITW(12)) 
 
-#define  SSI_ICMD_COMP (ICMD_COMP >> 8)
-#define  SSI_ITICKLE   (ITICKLE >> 8)
+      #define  ODR_OP   (BITW(13)+BITW(12)+BITW(11))  
 
-#define  SSI_IUNKWN    (IUNKWN >> 8)
-#define  SSI_INO_CC    (IUNKWN >> 8)
-#define  SSI_IRFAIL    (IUNKWN >> 8)
+      #define  ODS_OP   (BITW(14)+BITW(13)+BITW(12)+BITW(11))  
 
-#define  NP    0x10            /*Next Phase */
-#define  NTCMD 0x02            /*Non- Tagged Command start */
-#define  CMDPZ 0x04            /*Command phase */
-#define  DINT  0x12            /*Data Out/In interrupt */
-#define  DI    0x13            /*Data Out */
-#define  DC    0x19            /*Disconnect Message */
-#define  ST    0x1D            /*Status Phase */
-#define  UNKNWN 0x24           /*Unknown bus action */
-#define  CC    0x25            /*Command Completion failure */
-#define  TICK  0x26            /*New target reselected us. */
-#define  SELCHK 0x28           /*Select & Check SCSI ID latch reg */
+      #define  STR_OP   (BITW(15)+BITW(14)) /* Store to A_Reg. */
 
-#define  ID_MSG_STRT    hp_aramBase + 0x00
-#define  NON_TAG_ID_MSG hp_aramBase + 0x06
-#define  CMD_STRT       hp_aramBase + 0x08
-#define  SYNC_MSGS      hp_aramBase + 0x08
+      #define  AINT_ENA1   0x00
+      #define  AINT_STAT1  BITW(8)
+      #define  ASCSI_SIG   BITW(9)
+      #define  ASCSI_CNTL  (BITW(9)+BITW(8))
+      #define  APORT_CNTL  BITW(10)
+      #define  ARST_CNTL   (BITW(10)+BITW(8))
+      #define  AXFERCNT0   (BITW(10)+BITW(9))
+      #define  AXFERCNT1   (BITW(10)+BITW(9)+BITW(8))
+      #define  AXFERCNT2   BITW(11)
+      #define  AFIFO_DATA  (BITW(11)+BITW(8))
+      #define  ASCSISELID  (BITW(11)+BITW(9))
+      #define  ASCSISYNC0  (BITW(11)+BITW(9)+BITW(8))
 
-#define  TAG_STRT          0x00
-#define  DISCONNECT_START  0x10/2
-#define  END_DATA_START    0x14/2
-#define  CMD_ONLY_STRT     CMDPZ/2
-#define  SELCHK_STRT     SELCHK/2
+
+      #define  RAT_OP      (BITW(14)+BITW(13)+BITW(11))
+
+      #define  SSI_OP      (BITW(15)+BITW(11))
+
+
+      #define  SSI_ITAR_DISC   (ITAR_DISC >> 8)
+      #define  SSI_IDO_STRT    (IDO_STRT >> 8)
+      #define  SSI_IDI_STRT    (IDO_STRT >> 8)
+
+      #define  SSI_ICMD_COMP   (ICMD_COMP >> 8)
+      #define  SSI_ITICKLE     (ITICKLE >> 8)
+
+      #define  SSI_IUNKWN      (IUNKWN >> 8)
+      #define  SSI_INO_CC      (IUNKWN >> 8)
+      #define  SSI_IRFAIL      (IUNKWN >> 8)
+
+
+      #define  NP    0x10     /*Next Phase */
+      #define  NTCMD 0x02     /*Non- Tagged Command start */
+      #define  CMDPZ 0x04     /*Command phase */
+      #define  DINT  0x12     /*Data Out/In interrupt */
+      #define  DI    0x13     /*Data Out */
+      #define  MI    0x14     /*Message In */
+      #define  DC    0x19     /*Disconnect Message */
+      #define  ST    0x1D     /*Status Phase */
+      #define  UNKNWN 0x24    /*Unknown bus action */
+      #define  CC    0x25     /*Command Completion failure */
+      #define  TICK  0x26     /*New target reselected us. */
+      #define  RFAIL 0x27     /*Reselection failed */
+      #define  SELCHK 0x28     /*Select & Check SCSI ID latch reg */
+
+
+      #define  ID_MSG_STRT    hp_aramBase + 0x00
+      #define  NON_TAG_ID_MSG hp_aramBase + 0x06
+      #define  CMD_STRT       hp_aramBase + 0x08
+      #define  SYNC_MSGS      hp_aramBase + 0x08
+
+
+
+
+
+      #define  TAG_STRT          0x00
+      #define  SELECTION_START   0x00
+      #define  DISCONNECT_START  0x10/2
+      #define  END_DATA_START    0x14/2
+      #define  NONTAG_STRT       0x02/2
+      #define  CMD_ONLY_STRT     CMDPZ/2
+      #define  TICKLE_STRT     TICK/2
+      #define  SELCHK_STRT     SELCHK/2
+
+
+
+
+#define mEEPROM_CLK_DELAY(port) (RD_HARPOON(port+hp_intstat_1))
+
+#define mWAIT_10MS(port) (RD_HARPOON(port+hp_intstat_1))
+
+
+#define CLR_XFER_CNT(port) (WR_HARPOON(port+hp_xfercnt_0, 0x00))
+
+#define SET_XFER_CNT(port, data) (WR_HARP32(port,hp_xfercnt_0,data))
 
 #define GET_XFER_CNT(port, xfercnt) {RD_HARP32(port,hp_xfercnt_0,xfercnt); xfercnt &= 0xFFFFFF;}
 /* #define GET_XFER_CNT(port, xfercnt) (xfercnt = RD_HARPOON(port+hp_xfercnt_2), \
                                  xfercnt <<= 16,\
-                                 xfercnt |= RDW_HARPOON((unsigned short)(port+hp_xfercnt_0)))
+                                 xfercnt |= RDW_HARPOON((USHORT)(port+hp_xfercnt_0)))
  */
-#define HP_SETUP_ADDR_CNT(port,addr,count) (WRW_HARPOON((port+hp_host_addr_lo), (unsigned short)(addr & 0x0000FFFFL)),\
+#define HP_SETUP_ADDR_CNT(port,addr,count) (WRW_HARPOON((port+hp_host_addr_lo), (USHORT)(addr & 0x0000FFFFL)),\
          addr >>= 16,\
-         WRW_HARPOON((port+hp_host_addr_hmi), (unsigned short)(addr & 0x0000FFFFL)),\
+         WRW_HARPOON((port+hp_host_addr_hmi), (USHORT)(addr & 0x0000FFFFL)),\
          WR_HARP32(port,hp_xfercnt_0,count),\
-         WRW_HARPOON((port+hp_xfer_cnt_lo), (unsigned short)(count & 0x0000FFFFL)),\
+         WRW_HARPOON((port+hp_xfer_cnt_lo), (USHORT)(count & 0x0000FFFFL)),\
          count >>= 16,\
          WR_HARPOON(port+hp_xfer_cnt_hi, (count & 0xFF)))
 
 #define ACCEPT_MSG(port) {while(RD_HARPOON(port+hp_scsisig) & SCSI_REQ){}\
                           WR_HARPOON(port+hp_scsisig, S_ILL_PH);}
 
+
 #define ACCEPT_MSG_ATN(port) {while(RD_HARPOON(port+hp_scsisig) & SCSI_REQ){}\
                           WR_HARPOON(port+hp_scsisig, (S_ILL_PH|SCSI_ATN));}
 
+#define ACCEPT_STAT(port) {while(RD_HARPOON(port+hp_scsisig) & SCSI_REQ){}\
+                          WR_HARPOON(port+hp_scsisig, S_ILL_PH);}
+
+#define ACCEPT_STAT_ATN(port) {while(RD_HARPOON(port+hp_scsisig) & SCSI_REQ){}\
+                          WR_HARPOON(port+hp_scsisig, (S_ILL_PH|SCSI_ATN));}
+
 #define DISABLE_AUTO(port) (WR_HARPOON(port+hp_scsireset, PROG_RESET),\
                         WR_HARPOON(port+hp_scsireset, 0x00))
 
@@ -783,1220 +1329,1194 @@ typedef struct SCCBscam_info {
 #define MENABLE_INT(p_port) (WR_HARPOON(p_port+hp_page_ctrl, \
                              (RD_HARPOON(p_port+hp_page_ctrl) & ~G_INT_DISABLE)))
 
-static unsigned char FPT_sisyncn(unsigned long port, unsigned char p_card,
-                                unsigned char syncFlag);
-static void FPT_ssel(unsigned long port, unsigned char p_card);
-static void FPT_sres(unsigned long port, unsigned char p_card,
-                    struct sccb_card *pCurrCard);
-static void FPT_shandem(unsigned long port, unsigned char p_card,
-                       struct sccb *pCurrSCCB);
-static void FPT_stsyncn(unsigned long port, unsigned char p_card);
-static void FPT_sisyncr(unsigned long port, unsigned char sync_pulse,
-                       unsigned char offset);
-static void FPT_sssyncv(unsigned long p_port, unsigned char p_id,
-                       unsigned char p_sync_value,
-                       struct sccb_mgr_tar_info *currTar_Info);
-static void FPT_sresb(unsigned long port, unsigned char p_card);
-static void FPT_sxfrp(unsigned long p_port, unsigned char p_card);
-static void FPT_schkdd(unsigned long port, unsigned char p_card);
-static unsigned char FPT_RdStack(unsigned long port, unsigned char index);
-static void FPT_WrStack(unsigned long portBase, unsigned char index,
-                       unsigned char data);
-static unsigned char FPT_ChkIfChipInitialized(unsigned long ioPort);
-
-static void FPT_SendMsg(unsigned long port, unsigned char message);
-static void FPT_queueFlushTargSccb(unsigned char p_card, unsigned char thisTarg,
-                                  unsigned char error_code);
-
-static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card);
-static void FPT_RNVRamData(struct nvram_info *pNvRamInfo);
-
-static unsigned char FPT_siwidn(unsigned long port, unsigned char p_card);
-static void FPT_stwidn(unsigned long port, unsigned char p_card);
-static void FPT_siwidr(unsigned long port, unsigned char width);
-
-static void FPT_queueSelectFail(struct sccb_card *pCurrCard,
-                               unsigned char p_card);
-static void FPT_queueDisconnect(struct sccb *p_SCCB, unsigned char p_card);
-static void FPT_queueCmdComplete(struct sccb_card *pCurrCard,
-                                struct sccb *p_SCCB, unsigned char p_card);
-static void FPT_queueSearchSelect(struct sccb_card *pCurrCard,
-                                 unsigned char p_card);
-static void FPT_queueFlushSccb(unsigned char p_card, unsigned char error_code);
-static void FPT_queueAddSccb(struct sccb *p_SCCB, unsigned char card);
-static unsigned char FPT_queueFindSccb(struct sccb *p_SCCB,
-                                      unsigned char p_card);
-static void FPT_utilUpdateResidual(struct sccb *p_SCCB);
-static unsigned short FPT_CalcCrc16(unsigned char buffer[]);
-static unsigned char FPT_CalcLrc(unsigned char buffer[]);
-
-static void FPT_Wait1Second(unsigned long p_port);
-static void FPT_Wait(unsigned long p_port, unsigned char p_delay);
-static void FPT_utilEEWriteOnOff(unsigned long p_port, unsigned char p_mode);
-static void FPT_utilEEWrite(unsigned long p_port, unsigned short ee_data,
-                           unsigned short ee_addr);
-static unsigned short FPT_utilEERead(unsigned long p_port,
-                                    unsigned short ee_addr);
-static unsigned short FPT_utilEEReadOrg(unsigned long p_port,
-                                       unsigned short ee_addr);
-static void FPT_utilEESendCmdAddr(unsigned long p_port, unsigned char ee_cmd,
-                                 unsigned short ee_addr);
-
-static void FPT_phaseDataOut(unsigned long port, unsigned char p_card);
-static void FPT_phaseDataIn(unsigned long port, unsigned char p_card);
-static void FPT_phaseCommand(unsigned long port, unsigned char p_card);
-static void FPT_phaseStatus(unsigned long port, unsigned char p_card);
-static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card);
-static void FPT_phaseMsgIn(unsigned long port, unsigned char p_card);
-static void FPT_phaseIllegal(unsigned long port, unsigned char p_card);
-
-static void FPT_phaseDecode(unsigned long port, unsigned char p_card);
-static void FPT_phaseChkFifo(unsigned long port, unsigned char p_card);
-static void FPT_phaseBusFree(unsigned long p_port, unsigned char p_card);
-
-static void FPT_XbowInit(unsigned long port, unsigned char scamFlg);
-static void FPT_BusMasterInit(unsigned long p_port);
-static void FPT_DiagEEPROM(unsigned long p_port);
-
-static void FPT_dataXferProcessor(unsigned long port,
-                                 struct sccb_card *pCurrCard);
-static void FPT_busMstrSGDataXferStart(unsigned long port,
-                                      struct sccb *pCurrSCCB);
-static void FPT_busMstrDataXferStart(unsigned long port,
-                                    struct sccb *pCurrSCCB);
-static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card,
-                                 struct sccb *pCurrSCCB);
-static void FPT_hostDataXferRestart(struct sccb *currSCCB);
-
-static unsigned char FPT_SccbMgr_bad_isr(unsigned long p_port,
-                                        unsigned char p_card,
-                                        struct sccb_card *pCurrCard,
-                                        unsigned short p_int);
-
-static void FPT_SccbMgrTableInitAll(void);
-static void FPT_SccbMgrTableInitCard(struct sccb_card *pCurrCard,
-                                    unsigned char p_card);
-static void FPT_SccbMgrTableInitTarget(unsigned char p_card,
-                                      unsigned char target);
-
-static void FPT_scini(unsigned char p_card, unsigned char p_our_id,
-                     unsigned char p_power_up);
-
-static int FPT_scarb(unsigned long p_port, unsigned char p_sel_type);
-static void FPT_scbusf(unsigned long p_port);
-static void FPT_scsel(unsigned long p_port);
-static void FPT_scasid(unsigned char p_card, unsigned long p_port);
-static unsigned char FPT_scxferc(unsigned long p_port, unsigned char p_data);
-static unsigned char FPT_scsendi(unsigned long p_port,
-                                unsigned char p_id_string[]);
-static unsigned char FPT_sciso(unsigned long p_port,
-                              unsigned char p_id_string[]);
-static void FPT_scwirod(unsigned long p_port, unsigned char p_data_bit);
-static void FPT_scwiros(unsigned long p_port, unsigned char p_data_bit);
-static unsigned char FPT_scvalq(unsigned char p_quintet);
-static unsigned char FPT_scsell(unsigned long p_port, unsigned char targ_id);
-static void FPT_scwtsel(unsigned long p_port);
-static void FPT_inisci(unsigned char p_card, unsigned long p_port,
-                      unsigned char p_our_id);
-static void FPT_scsavdi(unsigned char p_card, unsigned long p_port);
-static unsigned char FPT_scmachid(unsigned char p_card,
-                                 unsigned char p_id_string[]);
-
-static void FPT_autoCmdCmplt(unsigned long p_port, unsigned char p_card);
-static void FPT_autoLoadDefaultMap(unsigned long p_port);
-
-static struct sccb_mgr_tar_info FPT_sccbMgrTbl[MAX_CARDS][MAX_SCSI_TAR] =
-    { {{0}} };
-static struct sccb_card FPT_BL_Card[MAX_CARDS] = { {0} };
-static SCCBSCAM_INFO FPT_scamInfo[MAX_SCSI_TAR] = { {{0}} };
-static struct nvram_info FPT_nvRamInfo[MAX_MB_CARDS] = { {0} };
-
-static unsigned char FPT_mbCards = 0;
-static unsigned char FPT_scamHAString[] =
-    { 0x63, 0x07, 'B', 'U', 'S', 'L', 'O', 'G', 'I', 'C',
-       ' ', 'B', 'T', '-', '9', '3', '0',
-       0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-       0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
-};
-
-static unsigned short FPT_default_intena = 0;
-
-static void (*FPT_s_PhaseTbl[8]) (unsigned long, unsigned char) = {
-0};
+
+
+
+void  scsiStartAuto(ULONG port);
+static UCHAR FPT_sisyncn(ULONG port, UCHAR p_card, UCHAR syncFlag);
+static void  FPT_ssel(ULONG port, UCHAR p_card);
+static void  FPT_sres(ULONG port, UCHAR p_card, PSCCBcard pCurrCard);
+static void  FPT_shandem(ULONG port, UCHAR p_card,PSCCB pCurrSCCB);
+static void  FPT_stsyncn(ULONG port, UCHAR p_card);
+static void  FPT_sisyncr(ULONG port,UCHAR sync_pulse, UCHAR offset);
+static void  FPT_sssyncv(ULONG p_port, UCHAR p_id, UCHAR p_sync_value,
+                        PSCCBMgr_tar_info currTar_Info);
+static void  FPT_sresb(ULONG port, UCHAR p_card);
+static void  FPT_sxfrp(ULONG p_port, UCHAR p_card);
+static void  FPT_schkdd(ULONG port, UCHAR p_card);
+static UCHAR FPT_RdStack(ULONG port, UCHAR index);
+static void  FPT_WrStack(ULONG portBase, UCHAR index, UCHAR data);
+static UCHAR FPT_ChkIfChipInitialized(ULONG ioPort);
+
+static void FPT_SendMsg(ULONG port, UCHAR message);
+static void  FPT_queueFlushTargSccb(UCHAR p_card, UCHAR thisTarg,
+                                   UCHAR error_code);
+
+static void  FPT_sinits(PSCCB p_sccb, UCHAR p_card);
+static void  FPT_RNVRamData(PNVRamInfo pNvRamInfo);
+
+static UCHAR FPT_siwidn(ULONG port, UCHAR p_card);
+static void  FPT_stwidn(ULONG port, UCHAR p_card);
+static void  FPT_siwidr(ULONG port, UCHAR width);
+
+
+static void  FPT_queueSelectFail(PSCCBcard pCurrCard, UCHAR p_card);
+static void  FPT_queueDisconnect(PSCCB p_SCCB, UCHAR p_card);
+static void  FPT_queueCmdComplete(PSCCBcard pCurrCard, PSCCB p_SCCB,
+                                 UCHAR p_card);
+static void  FPT_queueSearchSelect(PSCCBcard pCurrCard, UCHAR p_card);
+static void  FPT_queueFlushSccb(UCHAR p_card, UCHAR error_code);
+static void  FPT_queueAddSccb(PSCCB p_SCCB, UCHAR card);
+static UCHAR FPT_queueFindSccb(PSCCB p_SCCB, UCHAR p_card);
+static void  FPT_utilUpdateResidual(PSCCB p_SCCB);
+static USHORT FPT_CalcCrc16(UCHAR buffer[]);
+static UCHAR  FPT_CalcLrc(UCHAR buffer[]);
+
+
+static void  FPT_Wait1Second(ULONG p_port);
+static void  FPT_Wait(ULONG p_port, UCHAR p_delay);
+static void  FPT_utilEEWriteOnOff(ULONG p_port,UCHAR p_mode);
+static void  FPT_utilEEWrite(ULONG p_port, USHORT ee_data, USHORT ee_addr);
+static USHORT FPT_utilEERead(ULONG p_port, USHORT ee_addr);
+static USHORT FPT_utilEEReadOrg(ULONG p_port, USHORT ee_addr);
+static void  FPT_utilEESendCmdAddr(ULONG p_port, UCHAR ee_cmd, USHORT ee_addr);
+
+
+
+static void  FPT_phaseDataOut(ULONG port, UCHAR p_card);
+static void  FPT_phaseDataIn(ULONG port, UCHAR p_card);
+static void  FPT_phaseCommand(ULONG port, UCHAR p_card);
+static void  FPT_phaseStatus(ULONG port, UCHAR p_card);
+static void  FPT_phaseMsgOut(ULONG port, UCHAR p_card);
+static void  FPT_phaseMsgIn(ULONG port, UCHAR p_card);
+static void  FPT_phaseIllegal(ULONG port, UCHAR p_card);
+
+static void  FPT_phaseDecode(ULONG port, UCHAR p_card);
+static void  FPT_phaseChkFifo(ULONG port, UCHAR p_card);
+static void  FPT_phaseBusFree(ULONG p_port, UCHAR p_card);
+
+
+
+
+static void  FPT_XbowInit(ULONG port, UCHAR scamFlg);
+static void  FPT_BusMasterInit(ULONG p_port);
+static void  FPT_DiagEEPROM(ULONG p_port);
+
+
+
+
+void  busMstrAbort(ULONG port);
+static void  FPT_dataXferProcessor(ULONG port, PSCCBcard pCurrCard);
+static void  FPT_busMstrSGDataXferStart(ULONG port, PSCCB pCurrSCCB);
+static void  FPT_busMstrDataXferStart(ULONG port, PSCCB pCurrSCCB);
+static void  FPT_hostDataXferAbort(ULONG port, UCHAR p_card, PSCCB pCurrSCCB);
+static void  FPT_hostDataXferRestart(PSCCB currSCCB);
+
+
+static UCHAR FPT_SccbMgr_bad_isr(ULONG p_port, UCHAR p_card,
+                                PSCCBcard pCurrCard, USHORT p_int);
+
+static void  FPT_SccbMgrTableInitAll(void);
+static void  FPT_SccbMgrTableInitCard(PSCCBcard pCurrCard, UCHAR p_card);
+static void  FPT_SccbMgrTableInitTarget(UCHAR p_card, UCHAR target);
+
+
+
+static void  FPT_scini(UCHAR p_card, UCHAR p_our_id, UCHAR p_power_up);
+
+static int   FPT_scarb(ULONG p_port, UCHAR p_sel_type);
+static void  FPT_scbusf(ULONG p_port);
+static void  FPT_scsel(ULONG p_port);
+static void  FPT_scasid(UCHAR p_card, ULONG p_port);
+static UCHAR FPT_scxferc(ULONG p_port, UCHAR p_data);
+static UCHAR FPT_scsendi(ULONG p_port, UCHAR p_id_string[]);
+static UCHAR FPT_sciso(ULONG p_port, UCHAR p_id_string[]);
+static void  FPT_scwirod(ULONG p_port, UCHAR p_data_bit);
+static void  FPT_scwiros(ULONG p_port, UCHAR p_data_bit);
+static UCHAR FPT_scvalq(UCHAR p_quintet);
+static UCHAR FPT_scsell(ULONG p_port, UCHAR targ_id);
+static void  FPT_scwtsel(ULONG p_port);
+static void  FPT_inisci(UCHAR p_card, ULONG p_port, UCHAR p_our_id);
+static void  FPT_scsavdi(UCHAR p_card, ULONG p_port);
+static UCHAR FPT_scmachid(UCHAR p_card, UCHAR p_id_string[]);
+
+
+static void  FPT_autoCmdCmplt(ULONG p_port, UCHAR p_card);
+static void  FPT_autoLoadDefaultMap(ULONG p_port);
+
+
+
+void  OS_start_timer(unsigned long ioport, unsigned long timeout);
+void  OS_stop_timer(unsigned long ioport, unsigned long timeout);
+void  OS_disable_int(unsigned char intvec);
+void  OS_enable_int(unsigned char intvec);
+void  OS_delay(unsigned long count);
+int   OS_VirtToPhys(u32bits CardHandle, u32bits *physaddr, u32bits *virtaddr);
+
+static SCCBMGR_TAR_INFO FPT_sccbMgrTbl[MAX_CARDS][MAX_SCSI_TAR] = { { { 0 } } };
+static SCCBCARD FPT_BL_Card[MAX_CARDS] = { { 0 } };
+static SCCBSCAM_INFO FPT_scamInfo[MAX_SCSI_TAR] = { { { 0 } } };
+static NVRAMINFO FPT_nvRamInfo[MAX_MB_CARDS] = { { 0 } };
+
+
+static UCHAR FPT_mbCards = 0;
+static UCHAR FPT_scamHAString[] = {0x63, 0x07, 'B', 'U', 'S', 'L', 'O', 'G', 'I', 'C', \
+                                  ' ', 'B', 'T', '-', '9', '3', '0', \
+                                  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \
+                                  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20};
+
+static USHORT FPT_default_intena = 0;
+
+
+static void (*FPT_s_PhaseTbl[8]) (ULONG, UCHAR)= { 0 };
+
 
 /*---------------------------------------------------------------------
  *
- * Function: FlashPoint_ProbeHostAdapter
+ * Function: SccbMgr_sense_adapter
  *
  * Description: Setup and/or Search for cards and return info to caller.
  *
  *---------------------------------------------------------------------*/
 
-static int FlashPoint_ProbeHostAdapter(struct sccb_mgr_info *pCardInfo)
+static int SccbMgr_sense_adapter(PSCCBMGR_INFO pCardInfo)
 {
-       static unsigned char first_time = 1;
+   static UCHAR first_time = 1;
+
+   UCHAR i,j,id,ScamFlg;
+   USHORT temp,temp2,temp3,temp4,temp5,temp6;
+   ULONG ioport;
+       PNVRamInfo pCurrNvRam;
 
-       unsigned char i, j, id, ScamFlg;
-       unsigned short temp, temp2, temp3, temp4, temp5, temp6;
-       unsigned long ioport;
-       struct nvram_info *pCurrNvRam;
+   ioport = pCardInfo->si_baseaddr;
 
-       ioport = pCardInfo->si_baseaddr;
 
-       if (RD_HARPOON(ioport + hp_vendor_id_0) != ORION_VEND_0)
-               return (int)FAILURE;
+   if (RD_HARPOON(ioport+hp_vendor_id_0) != ORION_VEND_0)
+      return((int)FAILURE);
 
-       if ((RD_HARPOON(ioport + hp_vendor_id_1) != ORION_VEND_1))
-               return (int)FAILURE;
+   if ((RD_HARPOON(ioport+hp_vendor_id_1) != ORION_VEND_1))
+      return((int)FAILURE);
 
-       if ((RD_HARPOON(ioport + hp_device_id_0) != ORION_DEV_0))
-               return (int)FAILURE;
+   if ((RD_HARPOON(ioport+hp_device_id_0) != ORION_DEV_0))
+      return((int)FAILURE);
 
-       if ((RD_HARPOON(ioport + hp_device_id_1) != ORION_DEV_1))
-               return (int)FAILURE;
+   if ((RD_HARPOON(ioport+hp_device_id_1) != ORION_DEV_1))
+      return((int)FAILURE);
 
-       if (RD_HARPOON(ioport + hp_rev_num) != 0x0f) {
+
+   if (RD_HARPOON(ioport+hp_rev_num) != 0x0f){
 
 /* For new Harpoon then check for sub_device ID LSB
    the bits(0-3) must be all ZERO for compatible with
    current version of SCCBMgr, else skip this Harpoon
        device. */
 
-               if (RD_HARPOON(ioport + hp_sub_device_id_0) & 0x0f)
-                       return (int)FAILURE;
+          if (RD_HARPOON(ioport+hp_sub_device_id_0) & 0x0f)
+             return((int)FAILURE);
        }
 
-       if (first_time) {
-               FPT_SccbMgrTableInitAll();
-               first_time = 0;
+   if (first_time)
+      {
+      FPT_SccbMgrTableInitAll();
+      first_time = 0;
                FPT_mbCards = 0;
-       }
+      }
 
-       if (FPT_RdStack(ioport, 0) != 0x00) {
-               if (FPT_ChkIfChipInitialized(ioport) == 0) {
+       if(FPT_RdStack(ioport, 0) != 0x00) {
+               if(FPT_ChkIfChipInitialized(ioport) == 0)
+               {
                        pCurrNvRam = NULL;
-                       WR_HARPOON(ioport + hp_semaphore, 0x00);
-                       FPT_XbowInit(ioport, 0);        /*Must Init the SCSI before attempting */
+                  WR_HARPOON(ioport+hp_semaphore, 0x00);
+                       FPT_XbowInit(ioport, 0);             /*Must Init the SCSI before attempting */
                        FPT_DiagEEPROM(ioport);
-               } else {
-                       if (FPT_mbCards < MAX_MB_CARDS) {
+               }
+               else
+               {
+                       if(FPT_mbCards < MAX_MB_CARDS) {
                                pCurrNvRam = &FPT_nvRamInfo[FPT_mbCards];
                                FPT_mbCards++;
                                pCurrNvRam->niBaseAddr = ioport;
                                FPT_RNVRamData(pCurrNvRam);
-                       } else
-                               return (int)FAILURE;
+                       }else
+                               return((int) FAILURE);
                }
-       } else
+       }else
                pCurrNvRam = NULL;
 
-       WR_HARPOON(ioport + hp_clkctrl_0, CLKCTRL_DEFAULT);
-       WR_HARPOON(ioport + hp_sys_ctrl, 0x00);
+   WR_HARPOON(ioport+hp_clkctrl_0, CLKCTRL_DEFAULT);
+   WR_HARPOON(ioport+hp_sys_ctrl, 0x00);
 
-       if (pCurrNvRam)
+       if(pCurrNvRam)
                pCardInfo->si_id = pCurrNvRam->niAdapId;
        else
-               pCardInfo->si_id =
-                   (unsigned
-                    char)(FPT_utilEERead(ioport,
-                                         (ADAPTER_SCSI_ID /
-                                          2)) & (unsigned char)0x0FF);
-
-       pCardInfo->si_lun = 0x00;
-       pCardInfo->si_fw_revision = ORION_FW_REV;
-       temp2 = 0x0000;
-       temp3 = 0x0000;
-       temp4 = 0x0000;
-       temp5 = 0x0000;
-       temp6 = 0x0000;
-
-       for (id = 0; id < (16 / 2); id++) {
-
-               if (pCurrNvRam) {
-                       temp = (unsigned short)pCurrNvRam->niSyncTbl[id];
-                       temp = ((temp & 0x03) + ((temp << 4) & 0xc0)) +
-                           (((temp << 4) & 0x0300) + ((temp << 8) & 0xc000));
-               } else
-                       temp =
-                           FPT_utilEERead(ioport,
-                                          (unsigned short)((SYNC_RATE_TBL / 2)
-                                                           + id));
-
-               for (i = 0; i < 2; temp >>= 8, i++) {
-
-                       temp2 >>= 1;
-                       temp3 >>= 1;
-                       temp4 >>= 1;
-                       temp5 >>= 1;
-                       temp6 >>= 1;
-                       switch (temp & 0x3) {
-                       case AUTO_RATE_20:      /* Synchronous, 20 mega-transfers/second */
-                               temp6 |= 0x8000;        /* Fall through */
-                       case AUTO_RATE_10:      /* Synchronous, 10 mega-transfers/second */
-                               temp5 |= 0x8000;        /* Fall through */
-                       case AUTO_RATE_05:      /* Synchronous, 5 mega-transfers/second */
-                               temp2 |= 0x8000;        /* Fall through */
-                       case AUTO_RATE_00:      /* Asynchronous */
-                               break;
-                       }
+          pCardInfo->si_id = (UCHAR)(FPT_utilEERead(ioport, (ADAPTER_SCSI_ID/2)) &
+          (UCHAR)0x0FF);
 
-                       if (temp & DISC_ENABLE_BIT)
-                               temp3 |= 0x8000;
+   pCardInfo->si_lun = 0x00;
+   pCardInfo->si_fw_revision = ORION_FW_REV;
+   temp2 = 0x0000;
+   temp3 = 0x0000;
+   temp4 = 0x0000;
+   temp5 = 0x0000;
+   temp6 = 0x0000;
 
-                       if (temp & WIDE_NEGO_BIT)
-                               temp4 |= 0x8000;
+   for (id = 0; id < (16/2); id++) {
 
-               }
-       }
+               if(pCurrNvRam){
+                       temp = (USHORT) pCurrNvRam->niSyncTbl[id];
+                       temp = ((temp & 0x03) + ((temp << 4) & 0xc0)) +
+                                        (((temp << 4) & 0x0300) + ((temp << 8) & 0xc000));
+               }else
+             temp = FPT_utilEERead(ioport, (USHORT)((SYNC_RATE_TBL/2)+id));
+
+      for (i = 0; i < 2; temp >>=8,i++) {
+
+         temp2 >>= 1;
+         temp3 >>= 1;
+         temp4 >>= 1;
+         temp5 >>= 1;
+         temp6 >>= 1;
+        switch (temp & 0x3)
+          {
+          case AUTO_RATE_20:   /* Synchronous, 20 mega-transfers/second */
+            temp6 |= 0x8000;   /* Fall through */
+          case AUTO_RATE_10:   /* Synchronous, 10 mega-transfers/second */
+            temp5 |= 0x8000;   /* Fall through */
+          case AUTO_RATE_05:   /* Synchronous, 5 mega-transfers/second */
+            temp2 |= 0x8000;   /* Fall through */
+          case AUTO_RATE_00:   /* Asynchronous */
+            break;
+          }
+
+         if (temp & DISC_ENABLE_BIT)
+          temp3 |= 0x8000;
+
+         if (temp & WIDE_NEGO_BIT)
+          temp4 |= 0x8000;
+
+         }
+      }
 
-       pCardInfo->si_per_targ_init_sync = temp2;
-       pCardInfo->si_per_targ_no_disc = temp3;
-       pCardInfo->si_per_targ_wide_nego = temp4;
-       pCardInfo->si_per_targ_fast_nego = temp5;
-       pCardInfo->si_per_targ_ultra_nego = temp6;
+   pCardInfo->si_per_targ_init_sync = temp2;
+   pCardInfo->si_per_targ_no_disc = temp3;
+   pCardInfo->si_per_targ_wide_nego = temp4;
+   pCardInfo->si_per_targ_fast_nego = temp5;
+   pCardInfo->si_per_targ_ultra_nego = temp6;
 
-       if (pCurrNvRam)
+       if(pCurrNvRam)
                i = pCurrNvRam->niSysConf;
        else
-               i = (unsigned
-                    char)(FPT_utilEERead(ioport, (SYSTEM_CONFIG / 2)));
+          i = (UCHAR)(FPT_utilEERead(ioport, (SYSTEM_CONFIG/2)));
 
-       if (pCurrNvRam)
+       if(pCurrNvRam)
                ScamFlg = pCurrNvRam->niScamConf;
        else
-               ScamFlg =
-                   (unsigned char)FPT_utilEERead(ioport, SCAM_CONFIG / 2);
-
-       pCardInfo->si_flags = 0x0000;
+          ScamFlg = (UCHAR) FPT_utilEERead(ioport, SCAM_CONFIG/2);
 
-       if (i & 0x01)
-               pCardInfo->si_flags |= SCSI_PARITY_ENA;
+   pCardInfo->si_flags = 0x0000;
 
-       if (!(i & 0x02))
-               pCardInfo->si_flags |= SOFT_RESET;
+   if (i & 0x01)
+      pCardInfo->si_flags |= SCSI_PARITY_ENA;
 
-       if (i & 0x10)
-               pCardInfo->si_flags |= EXTENDED_TRANSLATION;
+   if (!(i & 0x02))
+      pCardInfo->si_flags |= SOFT_RESET;
 
-       if (ScamFlg & SCAM_ENABLED)
-               pCardInfo->si_flags |= FLAG_SCAM_ENABLED;
+   if (i & 0x10)
+      pCardInfo->si_flags |= EXTENDED_TRANSLATION;
 
-       if (ScamFlg & SCAM_LEVEL2)
-               pCardInfo->si_flags |= FLAG_SCAM_LEVEL2;
+   if (ScamFlg & SCAM_ENABLED)
+     pCardInfo->si_flags |= FLAG_SCAM_ENABLED;
 
-       j = (RD_HARPOON(ioport + hp_bm_ctrl) & ~SCSI_TERM_ENA_L);
-       if (i & 0x04) {
-               j |= SCSI_TERM_ENA_L;
-       }
-       WR_HARPOON(ioport + hp_bm_ctrl, j);
+   if (ScamFlg & SCAM_LEVEL2)
+     pCardInfo->si_flags |= FLAG_SCAM_LEVEL2;
 
-       j = (RD_HARPOON(ioport + hp_ee_ctrl) & ~SCSI_TERM_ENA_H);
-       if (i & 0x08) {
-               j |= SCSI_TERM_ENA_H;
-       }
-       WR_HARPOON(ioport + hp_ee_ctrl, j);
-
-       if (!(RD_HARPOON(ioport + hp_page_ctrl) & NARROW_SCSI_CARD))
-
-               pCardInfo->si_flags |= SUPPORT_16TAR_32LUN;
-
-       pCardInfo->si_card_family = HARPOON_FAMILY;
-       pCardInfo->si_bustype = BUSTYPE_PCI;
-
-       if (pCurrNvRam) {
-               pCardInfo->si_card_model[0] = '9';
-               switch (pCurrNvRam->niModel & 0x0f) {
-               case MODEL_LT:
-                       pCardInfo->si_card_model[1] = '3';
-                       pCardInfo->si_card_model[2] = '0';
-                       break;
-               case MODEL_LW:
-                       pCardInfo->si_card_model[1] = '5';
-                       pCardInfo->si_card_model[2] = '0';
-                       break;
-               case MODEL_DL:
-                       pCardInfo->si_card_model[1] = '3';
-                       pCardInfo->si_card_model[2] = '2';
-                       break;
-               case MODEL_DW:
-                       pCardInfo->si_card_model[1] = '5';
-                       pCardInfo->si_card_model[2] = '2';
-                       break;
-               }
-       } else {
-               temp = FPT_utilEERead(ioport, (MODEL_NUMB_0 / 2));
-               pCardInfo->si_card_model[0] = (unsigned char)(temp >> 8);
-               temp = FPT_utilEERead(ioport, (MODEL_NUMB_2 / 2));
+   j = (RD_HARPOON(ioport+hp_bm_ctrl) & ~SCSI_TERM_ENA_L);
+   if (i & 0x04) {
+      j |= SCSI_TERM_ENA_L;
+      }
+   WR_HARPOON(ioport+hp_bm_ctrl, j );
 
-               pCardInfo->si_card_model[1] = (unsigned char)(temp & 0x00FF);
-               pCardInfo->si_card_model[2] = (unsigned char)(temp >> 8);
-       }
+   j = (RD_HARPOON(ioport+hp_ee_ctrl) & ~SCSI_TERM_ENA_H);
+   if (i & 0x08) {
+      j |= SCSI_TERM_ENA_H;
+      }
+   WR_HARPOON(ioport+hp_ee_ctrl, j );
 
-       if (pCardInfo->si_card_model[1] == '3') {
-               if (RD_HARPOON(ioport + hp_ee_ctrl) & BIT(7))
-                       pCardInfo->si_flags |= LOW_BYTE_TERM;
-       } else if (pCardInfo->si_card_model[2] == '0') {
-               temp = RD_HARPOON(ioport + hp_xfer_pad);
-               WR_HARPOON(ioport + hp_xfer_pad, (temp & ~BIT(4)));
-               if (RD_HARPOON(ioport + hp_ee_ctrl) & BIT(7))
-                       pCardInfo->si_flags |= LOW_BYTE_TERM;
-               WR_HARPOON(ioport + hp_xfer_pad, (temp | BIT(4)));
-               if (RD_HARPOON(ioport + hp_ee_ctrl) & BIT(7))
-                       pCardInfo->si_flags |= HIGH_BYTE_TERM;
-               WR_HARPOON(ioport + hp_xfer_pad, temp);
-       } else {
-               temp = RD_HARPOON(ioport + hp_ee_ctrl);
-               temp2 = RD_HARPOON(ioport + hp_xfer_pad);
-               WR_HARPOON(ioport + hp_ee_ctrl, (temp | SEE_CS));
-               WR_HARPOON(ioport + hp_xfer_pad, (temp2 | BIT(4)));
-               temp3 = 0;
-               for (i = 0; i < 8; i++) {
-                       temp3 <<= 1;
-                       if (!(RD_HARPOON(ioport + hp_ee_ctrl) & BIT(7)))
-                               temp3 |= 1;
-                       WR_HARPOON(ioport + hp_xfer_pad, (temp2 & ~BIT(4)));
-                       WR_HARPOON(ioport + hp_xfer_pad, (temp2 | BIT(4)));
-               }
-               WR_HARPOON(ioport + hp_ee_ctrl, temp);
-               WR_HARPOON(ioport + hp_xfer_pad, temp2);
-               if (!(temp3 & BIT(7)))
-                       pCardInfo->si_flags |= LOW_BYTE_TERM;
-               if (!(temp3 & BIT(6)))
-                       pCardInfo->si_flags |= HIGH_BYTE_TERM;
-       }
+   if (!(RD_HARPOON(ioport+hp_page_ctrl) & NARROW_SCSI_CARD))
 
-       ARAM_ACCESS(ioport);
+      pCardInfo->si_flags |= SUPPORT_16TAR_32LUN;
 
-       for (i = 0; i < 4; i++) {
+   pCardInfo->si_card_family = HARPOON_FAMILY;
+   pCardInfo->si_bustype = BUSTYPE_PCI;
 
-               pCardInfo->si_XlatInfo[i] =
-                   RD_HARPOON(ioport + hp_aramBase + BIOS_DATA_OFFSET + i);
-       }
+       if(pCurrNvRam){
+       pCardInfo->si_card_model[0] = '9';
+               switch(pCurrNvRam->niModel & 0x0f){
+                       case MODEL_LT:
+                       pCardInfo->si_card_model[1] = '3';
+                       pCardInfo->si_card_model[2] = '0';
+                               break;
+                       case MODEL_LW:
+                       pCardInfo->si_card_model[1] = '5';
+                       pCardInfo->si_card_model[2] = '0';
+                               break;
+                       case MODEL_DL:
+                       pCardInfo->si_card_model[1] = '3';
+                       pCardInfo->si_card_model[2] = '2';
+                               break;
+                       case MODEL_DW:
+                       pCardInfo->si_card_model[1] = '5';
+                       pCardInfo->si_card_model[2] = '2';
+                               break;
+               }
+       }else{
+          temp = FPT_utilEERead(ioport, (MODEL_NUMB_0/2));
+       pCardInfo->si_card_model[0] = (UCHAR)(temp >> 8);
+          temp = FPT_utilEERead(ioport, (MODEL_NUMB_2/2));
+
+       pCardInfo->si_card_model[1] = (UCHAR)(temp & 0x00FF);
+          pCardInfo->si_card_model[2] = (UCHAR)(temp >> 8);
+       }
+
+   if (pCardInfo->si_card_model[1] == '3')
+     {
+       if (RD_HARPOON(ioport+hp_ee_ctrl) & BIT(7))
+        pCardInfo->si_flags |= LOW_BYTE_TERM;
+     }
+   else if (pCardInfo->si_card_model[2] == '0')
+     {
+       temp = RD_HARPOON(ioport+hp_xfer_pad);
+       WR_HARPOON(ioport+hp_xfer_pad, (temp & ~BIT(4)));
+       if (RD_HARPOON(ioport+hp_ee_ctrl) & BIT(7))
+        pCardInfo->si_flags |= LOW_BYTE_TERM;
+       WR_HARPOON(ioport+hp_xfer_pad, (temp | BIT(4)));
+       if (RD_HARPOON(ioport+hp_ee_ctrl) & BIT(7))
+        pCardInfo->si_flags |= HIGH_BYTE_TERM;
+       WR_HARPOON(ioport+hp_xfer_pad, temp);
+     }
+   else
+     {
+       temp = RD_HARPOON(ioport+hp_ee_ctrl);
+       temp2 = RD_HARPOON(ioport+hp_xfer_pad);
+       WR_HARPOON(ioport+hp_ee_ctrl, (temp | SEE_CS));
+       WR_HARPOON(ioport+hp_xfer_pad, (temp2 | BIT(4)));
+       temp3 = 0;
+       for (i = 0; i < 8; i++)
+        {
+          temp3 <<= 1;
+          if (!(RD_HARPOON(ioport+hp_ee_ctrl) & BIT(7)))
+            temp3 |= 1;
+          WR_HARPOON(ioport+hp_xfer_pad, (temp2 & ~BIT(4)));
+          WR_HARPOON(ioport+hp_xfer_pad, (temp2 | BIT(4)));
+        }
+       WR_HARPOON(ioport+hp_ee_ctrl, temp);
+       WR_HARPOON(ioport+hp_xfer_pad, temp2);
+       if (!(temp3 & BIT(7)))
+        pCardInfo->si_flags |= LOW_BYTE_TERM;
+       if (!(temp3 & BIT(6)))
+        pCardInfo->si_flags |= HIGH_BYTE_TERM;
+     }
+
+
+   ARAM_ACCESS(ioport);
+
+   for ( i = 0; i < 4; i++ ) {
+
+      pCardInfo->si_XlatInfo[i] =
+         RD_HARPOON(ioport+hp_aramBase+BIOS_DATA_OFFSET+i);
+      }
 
        /* return with -1 if no sort, else return with
           logical card number sorted by BIOS (zero-based) */
 
        pCardInfo->si_relative_cardnum =
-           (unsigned
-            char)(RD_HARPOON(ioport + hp_aramBase + BIOS_RELATIVE_CARD) - 1);
+       (UCHAR)(RD_HARPOON(ioport+hp_aramBase+BIOS_RELATIVE_CARD)-1);
 
-       SGRAM_ACCESS(ioport);
+   SGRAM_ACCESS(ioport);
 
-       FPT_s_PhaseTbl[0] = FPT_phaseDataOut;
-       FPT_s_PhaseTbl[1] = FPT_phaseDataIn;
-       FPT_s_PhaseTbl[2] = FPT_phaseIllegal;
-       FPT_s_PhaseTbl[3] = FPT_phaseIllegal;
-       FPT_s_PhaseTbl[4] = FPT_phaseCommand;
-       FPT_s_PhaseTbl[5] = FPT_phaseStatus;
-       FPT_s_PhaseTbl[6] = FPT_phaseMsgOut;
-       FPT_s_PhaseTbl[7] = FPT_phaseMsgIn;
+   FPT_s_PhaseTbl[0] = FPT_phaseDataOut;
+   FPT_s_PhaseTbl[1] = FPT_phaseDataIn;
+   FPT_s_PhaseTbl[2] = FPT_phaseIllegal;
+   FPT_s_PhaseTbl[3] = FPT_phaseIllegal;
+   FPT_s_PhaseTbl[4] = FPT_phaseCommand;
+   FPT_s_PhaseTbl[5] = FPT_phaseStatus;
+   FPT_s_PhaseTbl[6] = FPT_phaseMsgOut;
+   FPT_s_PhaseTbl[7] = FPT_phaseMsgIn;
 
-       pCardInfo->si_present = 0x01;
+   pCardInfo->si_present = 0x01;
 
-       return 0;
+   return(0);
 }
 
+
 /*---------------------------------------------------------------------
  *
- * Function: FlashPoint_HardwareResetHostAdapter
+ * Function: SccbMgr_config_adapter
  *
  * Description: Setup adapter for normal operation (hard reset).
  *
  *---------------------------------------------------------------------*/
 
-static unsigned long FlashPoint_HardwareResetHostAdapter(struct sccb_mgr_info
-                                                        *pCardInfo)
+static ULONG SccbMgr_config_adapter(PSCCBMGR_INFO pCardInfo)
 {
-       struct sccb_card *CurrCard = NULL;
-       struct nvram_info *pCurrNvRam;
-       unsigned char i, j, thisCard, ScamFlg;
-       unsigned short temp, sync_bit_map, id;
-       unsigned long ioport;
+   PSCCBcard CurrCard = NULL;
+       PNVRamInfo pCurrNvRam;
+   UCHAR i,j,thisCard, ScamFlg;
+   USHORT temp,sync_bit_map,id;
+   ULONG ioport;
 
-       ioport = pCardInfo->si_baseaddr;
+   ioport = pCardInfo->si_baseaddr;
 
-       for (thisCard = 0; thisCard <= MAX_CARDS; thisCard++) {
+   for(thisCard =0; thisCard <= MAX_CARDS; thisCard++) {
 
-               if (thisCard == MAX_CARDS) {
+      if (thisCard == MAX_CARDS) {
 
-                       return FAILURE;
-               }
+        return(FAILURE);
+         }
 
-               if (FPT_BL_Card[thisCard].ioPort == ioport) {
+      if (FPT_BL_Card[thisCard].ioPort == ioport) {
 
-                       CurrCard = &FPT_BL_Card[thisCard];
-                       FPT_SccbMgrTableInitCard(CurrCard, thisCard);
-                       break;
-               }
+         CurrCard = &FPT_BL_Card[thisCard];
+         FPT_SccbMgrTableInitCard(CurrCard,thisCard);
+         break;
+         }
 
-               else if (FPT_BL_Card[thisCard].ioPort == 0x00) {
+      else if (FPT_BL_Card[thisCard].ioPort == 0x00) {
 
-                       FPT_BL_Card[thisCard].ioPort = ioport;
-                       CurrCard = &FPT_BL_Card[thisCard];
+         FPT_BL_Card[thisCard].ioPort = ioport;
+         CurrCard = &FPT_BL_Card[thisCard];
 
-                       if (FPT_mbCards)
-                               for (i = 0; i < FPT_mbCards; i++) {
-                                       if (CurrCard->ioPort ==
-                                           FPT_nvRamInfo[i].niBaseAddr)
-                                               CurrCard->pNvRamInfo =
-                                                   &FPT_nvRamInfo[i];
+                       if(FPT_mbCards)
+                               for(i = 0; i < FPT_mbCards; i++){
+                                       if(CurrCard->ioPort == FPT_nvRamInfo[i].niBaseAddr)
+                                               CurrCard->pNvRamInfo = &FPT_nvRamInfo[i];
                                }
-                       FPT_SccbMgrTableInitCard(CurrCard, thisCard);
-                       CurrCard->cardIndex = thisCard;
-                       CurrCard->cardInfo = pCardInfo;
+         FPT_SccbMgrTableInitCard(CurrCard,thisCard);
+         CurrCard->cardIndex = thisCard;
+         CurrCard->cardInfo = pCardInfo;
 
-                       break;
-               }
-       }
+        break;
+         }
+      }
 
        pCurrNvRam = CurrCard->pNvRamInfo;
 
-       if (pCurrNvRam) {
+       if(pCurrNvRam){
                ScamFlg = pCurrNvRam->niScamConf;
-       } else {
-               ScamFlg =
-                   (unsigned char)FPT_utilEERead(ioport, SCAM_CONFIG / 2);
+       }
+       else{
+          ScamFlg = (UCHAR) FPT_utilEERead(ioport, SCAM_CONFIG/2);
        }
 
-       FPT_BusMasterInit(ioport);
-       FPT_XbowInit(ioport, ScamFlg);
 
-       FPT_autoLoadDefaultMap(ioport);
+   FPT_BusMasterInit(ioport);
+   FPT_XbowInit(ioport, ScamFlg);
 
-       for (i = 0, id = 0x01; i != pCardInfo->si_id; i++, id <<= 1) {
-       }
+   FPT_autoLoadDefaultMap(ioport);
 
-       WR_HARPOON(ioport + hp_selfid_0, id);
-       WR_HARPOON(ioport + hp_selfid_1, 0x00);
-       WR_HARPOON(ioport + hp_arb_id, pCardInfo->si_id);
-       CurrCard->ourId = pCardInfo->si_id;
 
-       i = (unsigned char)pCardInfo->si_flags;
-       if (i & SCSI_PARITY_ENA)
-               WR_HARPOON(ioport + hp_portctrl_1, (HOST_MODE8 | CHK_SCSI_P));
+   for (i = 0,id = 0x01; i != pCardInfo->si_id; i++,id <<= 1){}
 
-       j = (RD_HARPOON(ioport + hp_bm_ctrl) & ~SCSI_TERM_ENA_L);
-       if (i & LOW_BYTE_TERM)
-               j |= SCSI_TERM_ENA_L;
-       WR_HARPOON(ioport + hp_bm_ctrl, j);
+   WR_HARPOON(ioport+hp_selfid_0, id);
+   WR_HARPOON(ioport+hp_selfid_1, 0x00);
+   WR_HARPOON(ioport+hp_arb_id, pCardInfo->si_id);
+   CurrCard->ourId = pCardInfo->si_id;
 
-       j = (RD_HARPOON(ioport + hp_ee_ctrl) & ~SCSI_TERM_ENA_H);
-       if (i & HIGH_BYTE_TERM)
-               j |= SCSI_TERM_ENA_H;
-       WR_HARPOON(ioport + hp_ee_ctrl, j);
+   i = (UCHAR) pCardInfo->si_flags;
+   if (i & SCSI_PARITY_ENA)
+       WR_HARPOON(ioport+hp_portctrl_1,(HOST_MODE8 | CHK_SCSI_P));
 
-       if (!(pCardInfo->si_flags & SOFT_RESET)) {
+   j = (RD_HARPOON(ioport+hp_bm_ctrl) & ~SCSI_TERM_ENA_L);
+   if (i & LOW_BYTE_TERM)
+      j |= SCSI_TERM_ENA_L;
+   WR_HARPOON(ioport+hp_bm_ctrl, j);
 
-               FPT_sresb(ioport, thisCard);
+   j = (RD_HARPOON(ioport+hp_ee_ctrl) & ~SCSI_TERM_ENA_H);
+   if (i & HIGH_BYTE_TERM)
+      j |= SCSI_TERM_ENA_H;
+   WR_HARPOON(ioport+hp_ee_ctrl, j );
 
-               FPT_scini(thisCard, pCardInfo->si_id, 0);
-       }
 
-       if (pCardInfo->si_flags & POST_ALL_UNDERRRUNS)
-               CurrCard->globalFlags |= F_NO_FILTER;
+   if (!(pCardInfo->si_flags & SOFT_RESET)) {
 
-       if (pCurrNvRam) {
-               if (pCurrNvRam->niSysConf & 0x10)
-                       CurrCard->globalFlags |= F_GREEN_PC;
-       } else {
-               if (FPT_utilEERead(ioport, (SYSTEM_CONFIG / 2)) & GREEN_PC_ENA)
+      FPT_sresb(ioport,thisCard);
+
+         FPT_scini(thisCard, pCardInfo->si_id, 0);
+      }
+
+
+
+   if (pCardInfo->si_flags & POST_ALL_UNDERRRUNS)
+      CurrCard->globalFlags |= F_NO_FILTER;
+
+       if(pCurrNvRam){
+               if(pCurrNvRam->niSysConf & 0x10)
                        CurrCard->globalFlags |= F_GREEN_PC;
        }
+       else{
+          if (FPT_utilEERead(ioport, (SYSTEM_CONFIG/2)) & GREEN_PC_ENA)
+          CurrCard->globalFlags |= F_GREEN_PC;
+       }
 
        /* Set global flag to indicate Re-Negotiation to be done on all
-          ckeck condition */
-       if (pCurrNvRam) {
-               if (pCurrNvRam->niScsiConf & 0x04)
-                       CurrCard->globalFlags |= F_DO_RENEGO;
-       } else {
-               if (FPT_utilEERead(ioport, (SCSI_CONFIG / 2)) & RENEGO_ENA)
+               ckeck condition */
+       if(pCurrNvRam){
+               if(pCurrNvRam->niScsiConf & 0x04)
                        CurrCard->globalFlags |= F_DO_RENEGO;
        }
+       else{
+          if (FPT_utilEERead(ioport, (SCSI_CONFIG/2)) & RENEGO_ENA)
+          CurrCard->globalFlags |= F_DO_RENEGO;
+       }
 
-       if (pCurrNvRam) {
-               if (pCurrNvRam->niScsiConf & 0x08)
-                       CurrCard->globalFlags |= F_CONLUN_IO;
-       } else {
-               if (FPT_utilEERead(ioport, (SCSI_CONFIG / 2)) & CONNIO_ENA)
+       if(pCurrNvRam){
+               if(pCurrNvRam->niScsiConf & 0x08)
                        CurrCard->globalFlags |= F_CONLUN_IO;
        }
+       else{
+          if (FPT_utilEERead(ioport, (SCSI_CONFIG/2)) & CONNIO_ENA)
+          CurrCard->globalFlags |= F_CONLUN_IO;
+       }
 
-       temp = pCardInfo->si_per_targ_no_disc;
 
-       for (i = 0, id = 1; i < MAX_SCSI_TAR; i++, id <<= 1) {
+   temp = pCardInfo->si_per_targ_no_disc;
 
-               if (temp & id)
-                       FPT_sccbMgrTbl[thisCard][i].TarStatus |= TAR_ALLOW_DISC;
-       }
+   for (i = 0,id = 1; i < MAX_SCSI_TAR; i++, id <<= 1) {
 
-       sync_bit_map = 0x0001;
+      if (temp & id)
+        FPT_sccbMgrTbl[thisCard][i].TarStatus |= TAR_ALLOW_DISC;
+      }
+
+   sync_bit_map = 0x0001;
 
-       for (id = 0; id < (MAX_SCSI_TAR / 2); id++) {
+   for (id = 0; id < (MAX_SCSI_TAR/2); id++) {
 
-               if (pCurrNvRam) {
-                       temp = (unsigned short)pCurrNvRam->niSyncTbl[id];
+               if(pCurrNvRam){
+                       temp = (USHORT) pCurrNvRam->niSyncTbl[id];
                        temp = ((temp & 0x03) + ((temp << 4) & 0xc0)) +
-                           (((temp << 4) & 0x0300) + ((temp << 8) & 0xc000));
-               } else
-                       temp =
-                           FPT_utilEERead(ioport,
-                                          (unsigned short)((SYNC_RATE_TBL / 2)
-                                                           + id));
+                                        (((temp << 4) & 0x0300) + ((temp << 8) & 0xc000));
+               }else
+             temp = FPT_utilEERead(ioport, (USHORT)((SYNC_RATE_TBL/2)+id));
 
-               for (i = 0; i < 2; temp >>= 8, i++) {
+      for (i = 0; i < 2; temp >>=8,i++) {
 
-                       if (pCardInfo->si_per_targ_init_sync & sync_bit_map) {
+         if (pCardInfo->si_per_targ_init_sync & sync_bit_map) {
 
-                               FPT_sccbMgrTbl[thisCard][id * 2 +
-                                                        i].TarEEValue =
-                                   (unsigned char)temp;
-                       }
+            FPT_sccbMgrTbl[thisCard][id*2+i].TarEEValue = (UCHAR)temp;
+            }
 
-                       else {
-                               FPT_sccbMgrTbl[thisCard][id * 2 +
-                                                        i].TarStatus |=
-                                   SYNC_SUPPORTED;
-                               FPT_sccbMgrTbl[thisCard][id * 2 +
-                                                        i].TarEEValue =
-                                   (unsigned char)(temp & ~EE_SYNC_MASK);
-                       }
+         else {
+           FPT_sccbMgrTbl[thisCard][id*2+i].TarStatus |= SYNC_SUPPORTED;
+            FPT_sccbMgrTbl[thisCard][id*2+i].TarEEValue =
+               (UCHAR)(temp & ~EE_SYNC_MASK);
+            }
 
 /*         if ((pCardInfo->si_per_targ_wide_nego & sync_bit_map) ||
             (id*2+i >= 8)){
 */
-                       if (pCardInfo->si_per_targ_wide_nego & sync_bit_map) {
+         if (pCardInfo->si_per_targ_wide_nego & sync_bit_map){
 
-                               FPT_sccbMgrTbl[thisCard][id * 2 +
-                                                        i].TarEEValue |=
-                                   EE_WIDE_SCSI;
+            FPT_sccbMgrTbl[thisCard][id*2+i].TarEEValue |= EE_WIDE_SCSI;
 
-                       }
+            }
 
-                       else {  /* NARROW SCSI */
-                               FPT_sccbMgrTbl[thisCard][id * 2 +
-                                                        i].TarStatus |=
-                                   WIDE_NEGOCIATED;
-                       }
+         else { /* NARROW SCSI */
+            FPT_sccbMgrTbl[thisCard][id*2+i].TarStatus |= WIDE_NEGOCIATED;
+            }
 
-                       sync_bit_map <<= 1;
 
-               }
-       }
+        sync_bit_map <<= 1;
+
+
+
+         }
+      }
 
-       WR_HARPOON((ioport + hp_semaphore),
-                  (unsigned char)(RD_HARPOON((ioport + hp_semaphore)) |
-                                  SCCB_MGR_PRESENT));
+   WR_HARPOON((ioport+hp_semaphore),
+      (UCHAR)(RD_HARPOON((ioport+hp_semaphore)) | SCCB_MGR_PRESENT));
 
-       return (unsigned long)CurrCard;
+   return((ULONG)CurrCard);
 }
 
-static void FlashPoint_ReleaseHostAdapter(unsigned long pCurrCard)
+static void SccbMgr_unload_card(ULONG pCurrCard)
 {
-       unsigned char i;
-       unsigned long portBase;
-       unsigned long regOffset;
-       unsigned long scamData;
-       unsigned long *pScamTbl;
-       struct nvram_info *pCurrNvRam;
+       UCHAR i;
+       ULONG portBase;
+       ULONG regOffset;
+       ULONG scamData;
+       ULONG *pScamTbl;
+       PNVRamInfo pCurrNvRam;
 
-       pCurrNvRam = ((struct sccb_card *)pCurrCard)->pNvRamInfo;
+       pCurrNvRam = ((PSCCBcard)pCurrCard)->pNvRamInfo;
 
-       if (pCurrNvRam) {
+       if(pCurrNvRam){
                FPT_WrStack(pCurrNvRam->niBaseAddr, 0, pCurrNvRam->niModel);
                FPT_WrStack(pCurrNvRam->niBaseAddr, 1, pCurrNvRam->niSysConf);
                FPT_WrStack(pCurrNvRam->niBaseAddr, 2, pCurrNvRam->niScsiConf);
                FPT_WrStack(pCurrNvRam->niBaseAddr, 3, pCurrNvRam->niScamConf);
                FPT_WrStack(pCurrNvRam->niBaseAddr, 4, pCurrNvRam->niAdapId);
 
-               for (i = 0; i < MAX_SCSI_TAR / 2; i++)
-                       FPT_WrStack(pCurrNvRam->niBaseAddr,
-                                   (unsigned char)(i + 5),
-                                   pCurrNvRam->niSyncTbl[i]);
+               for(i = 0; i < MAX_SCSI_TAR / 2; i++)
+                       FPT_WrStack(pCurrNvRam->niBaseAddr, (UCHAR)(i+5), pCurrNvRam->niSyncTbl[i]);
 
                portBase = pCurrNvRam->niBaseAddr;
 
-               for (i = 0; i < MAX_SCSI_TAR; i++) {
-                       regOffset = hp_aramBase + 64 + i * 4;
-                       pScamTbl = (unsigned long *)&pCurrNvRam->niScamTbl[i];
+               for(i = 0; i < MAX_SCSI_TAR; i++){
+                       regOffset = hp_aramBase + 64 + i*4;
+                       pScamTbl = (ULONG *) &pCurrNvRam->niScamTbl[i];
                        scamData = *pScamTbl;
                        WR_HARP32(portBase, regOffset, scamData);
                }
 
-       } else {
-               FPT_WrStack(((struct sccb_card *)pCurrCard)->ioPort, 0, 0);
+       }else{
+               FPT_WrStack(((PSCCBcard)pCurrCard)->ioPort, 0, 0);
        }
 }
 
-static void FPT_RNVRamData(struct nvram_info *pNvRamInfo)
+
+static void FPT_RNVRamData(PNVRamInfo pNvRamInfo)
 {
-       unsigned char i;
-       unsigned long portBase;
-       unsigned long regOffset;
-       unsigned long scamData;
-       unsigned long *pScamTbl;
-
-       pNvRamInfo->niModel = FPT_RdStack(pNvRamInfo->niBaseAddr, 0);
-       pNvRamInfo->niSysConf = FPT_RdStack(pNvRamInfo->niBaseAddr, 1);
+       UCHAR i;
+       ULONG portBase;
+       ULONG regOffset;
+       ULONG scamData;
+       ULONG *pScamTbl;
+
+       pNvRamInfo->niModel    = FPT_RdStack(pNvRamInfo->niBaseAddr, 0);
+       pNvRamInfo->niSysConf  = FPT_RdStack(pNvRamInfo->niBaseAddr, 1);
        pNvRamInfo->niScsiConf = FPT_RdStack(pNvRamInfo->niBaseAddr, 2);
        pNvRamInfo->niScamConf = FPT_RdStack(pNvRamInfo->niBaseAddr, 3);
-       pNvRamInfo->niAdapId = FPT_RdStack(pNvRamInfo->niBaseAddr, 4);
+       pNvRamInfo->niAdapId   = FPT_RdStack(pNvRamInfo->niBaseAddr, 4);
 
-       for (i = 0; i < MAX_SCSI_TAR / 2; i++)
-               pNvRamInfo->niSyncTbl[i] =
-                   FPT_RdStack(pNvRamInfo->niBaseAddr, (unsigned char)(i + 5));
+       for(i = 0; i < MAX_SCSI_TAR / 2; i++)
+               pNvRamInfo->niSyncTbl[i] = FPT_RdStack(pNvRamInfo->niBaseAddr, (UCHAR)(i+5));
 
        portBase = pNvRamInfo->niBaseAddr;
 
-       for (i = 0; i < MAX_SCSI_TAR; i++) {
-               regOffset = hp_aramBase + 64 + i * 4;
+       for(i = 0; i < MAX_SCSI_TAR; i++){
+               regOffset = hp_aramBase + 64 + i*4;
                RD_HARP32(portBase, regOffset, scamData);
-               pScamTbl = (unsigned long *)&pNvRamInfo->niScamTbl[i];
+               pScamTbl = (ULONG *) &pNvRamInfo->niScamTbl[i];
                *pScamTbl = scamData;
        }
 
 }
 
-static unsigned char FPT_RdStack(unsigned long portBase, unsigned char index)
+static UCHAR FPT_RdStack(ULONG portBase, UCHAR index)
 {
        WR_HARPOON(portBase + hp_stack_addr, index);
-       return RD_HARPOON(portBase + hp_stack_data);
+       return(RD_HARPOON(portBase + hp_stack_data));
 }
 
-static void FPT_WrStack(unsigned long portBase, unsigned char index,
-                       unsigned char data)
+static void FPT_WrStack(ULONG portBase, UCHAR index, UCHAR data)
 {
        WR_HARPOON(portBase + hp_stack_addr, index);
        WR_HARPOON(portBase + hp_stack_data, data);
 }
 
-static unsigned char FPT_ChkIfChipInitialized(unsigned long ioPort)
+
+static UCHAR FPT_ChkIfChipInitialized(ULONG ioPort)
 {
-       if ((RD_HARPOON(ioPort + hp_arb_id) & 0x0f) != FPT_RdStack(ioPort, 4))
-               return 0;
-       if ((RD_HARPOON(ioPort + hp_clkctrl_0) & CLKCTRL_DEFAULT)
-           != CLKCTRL_DEFAULT)
-               return 0;
-       if ((RD_HARPOON(ioPort + hp_seltimeout) == TO_250ms) ||
-           (RD_HARPOON(ioPort + hp_seltimeout) == TO_290ms))
-               return 1;
-       return 0;
+       if((RD_HARPOON(ioPort + hp_arb_id) & 0x0f) != FPT_RdStack(ioPort, 4))
+               return(0);
+       if((RD_HARPOON(ioPort + hp_clkctrl_0) & CLKCTRL_DEFAULT)
+                                                               != CLKCTRL_DEFAULT)
+               return(0);
+       if((RD_HARPOON(ioPort + hp_seltimeout) == TO_250ms) ||
+               (RD_HARPOON(ioPort + hp_seltimeout) == TO_290ms))
+               return(1);
+       return(0);
 
 }
-
 /*---------------------------------------------------------------------
  *
- * Function: FlashPoint_StartCCB
+ * Function: SccbMgr_start_sccb
  *
  * Description: Start a command pointed to by p_Sccb. When the
  *              command is completed it will be returned via the
  *              callback function.
  *
  *---------------------------------------------------------------------*/
-static void FlashPoint_StartCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
+static void SccbMgr_start_sccb(ULONG pCurrCard, PSCCB p_Sccb)
 {
-       unsigned long ioport;
-       unsigned char thisCard, lun;
-       struct sccb *pSaveSccb;
-       CALL_BK_FN callback;
+   ULONG ioport;
+   UCHAR thisCard, lun;
+       PSCCB pSaveSccb;
+   CALL_BK_FN callback;
 
-       thisCard = ((struct sccb_card *)pCurrCard)->cardIndex;
-       ioport = ((struct sccb_card *)pCurrCard)->ioPort;
+   thisCard = ((PSCCBcard) pCurrCard)->cardIndex;
+   ioport = ((PSCCBcard) pCurrCard)->ioPort;
 
-       if ((p_Sccb->TargID > MAX_SCSI_TAR) || (p_Sccb->Lun > MAX_LUN)) {
+       if((p_Sccb->TargID > MAX_SCSI_TAR) || (p_Sccb->Lun > MAX_LUN))
+       {
 
                p_Sccb->HostStatus = SCCB_COMPLETE;
                p_Sccb->SccbStatus = SCCB_ERROR;
-               callback = (CALL_BK_FN) p_Sccb->SccbCallback;
+               callback = (CALL_BK_FN)p_Sccb->SccbCallback;
                if (callback)
                        callback(p_Sccb);
 
                return;
        }
 
-       FPT_sinits(p_Sccb, thisCard);
+   FPT_sinits(p_Sccb,thisCard);
 
-       if (!((struct sccb_card *)pCurrCard)->cmdCounter) {
-               WR_HARPOON(ioport + hp_semaphore,
-                          (RD_HARPOON(ioport + hp_semaphore)
-                           | SCCB_MGR_ACTIVE));
 
-               if (((struct sccb_card *)pCurrCard)->globalFlags & F_GREEN_PC) {
-                       WR_HARPOON(ioport + hp_clkctrl_0, CLKCTRL_DEFAULT);
-                       WR_HARPOON(ioport + hp_sys_ctrl, 0x00);
-               }
-       }
+   if (!((PSCCBcard) pCurrCard)->cmdCounter)
+      {
+      WR_HARPOON(ioport+hp_semaphore, (RD_HARPOON(ioport+hp_semaphore)
+         | SCCB_MGR_ACTIVE));
+
+      if (((PSCCBcard) pCurrCard)->globalFlags & F_GREEN_PC)
+         {
+                WR_HARPOON(ioport+hp_clkctrl_0, CLKCTRL_DEFAULT);
+                WR_HARPOON(ioport+hp_sys_ctrl, 0x00);
+         }
+      }
 
-       ((struct sccb_card *)pCurrCard)->cmdCounter++;
-
-       if (RD_HARPOON(ioport + hp_semaphore) & BIOS_IN_USE) {
-
-               WR_HARPOON(ioport + hp_semaphore,
-                          (RD_HARPOON(ioport + hp_semaphore)
-                           | TICKLE_ME));
-               if (p_Sccb->OperationCode == RESET_COMMAND) {
-                       pSaveSccb =
-                           ((struct sccb_card *)pCurrCard)->currentSCCB;
-                       ((struct sccb_card *)pCurrCard)->currentSCCB = p_Sccb;
-                       FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard);
-                       ((struct sccb_card *)pCurrCard)->currentSCCB =
-                           pSaveSccb;
-               } else {
-                       FPT_queueAddSccb(p_Sccb, thisCard);
-               }
-       }
+   ((PSCCBcard)pCurrCard)->cmdCounter++;
 
-       else if ((RD_HARPOON(ioport + hp_page_ctrl) & G_INT_DISABLE)) {
-
-               if (p_Sccb->OperationCode == RESET_COMMAND) {
-                       pSaveSccb =
-                           ((struct sccb_card *)pCurrCard)->currentSCCB;
-                       ((struct sccb_card *)pCurrCard)->currentSCCB = p_Sccb;
-                       FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard);
-                       ((struct sccb_card *)pCurrCard)->currentSCCB =
-                           pSaveSccb;
-               } else {
-                       FPT_queueAddSccb(p_Sccb, thisCard);
-               }
-       }
+   if (RD_HARPOON(ioport+hp_semaphore) & BIOS_IN_USE) {
+
+      WR_HARPOON(ioport+hp_semaphore, (RD_HARPOON(ioport+hp_semaphore)
+         | TICKLE_ME));
+               if(p_Sccb->OperationCode == RESET_COMMAND)
+                       {
+                               pSaveSccb = ((PSCCBcard) pCurrCard)->currentSCCB;
+                               ((PSCCBcard) pCurrCard)->currentSCCB = p_Sccb;
+                               FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard);
+                               ((PSCCBcard) pCurrCard)->currentSCCB = pSaveSccb;
+                       }
+               else
+                       {
+             FPT_queueAddSccb(p_Sccb,thisCard);
+                       }
+      }
+
+   else if ((RD_HARPOON(ioport+hp_page_ctrl) & G_INT_DISABLE)) {
+
+                       if(p_Sccb->OperationCode == RESET_COMMAND)
+                               {
+                                       pSaveSccb = ((PSCCBcard) pCurrCard)->currentSCCB;
+                                       ((PSCCBcard) pCurrCard)->currentSCCB = p_Sccb;
+                                       FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard);
+                                       ((PSCCBcard) pCurrCard)->currentSCCB = pSaveSccb;
+                               }
+                       else
+                               {
+                     FPT_queueAddSccb(p_Sccb,thisCard);
+                               }
+      }
 
-       else {
+   else {
 
-               MDISABLE_INT(ioport);
+      MDISABLE_INT(ioport);
 
-               if ((((struct sccb_card *)pCurrCard)->globalFlags & F_CONLUN_IO)
-                   &&
-                   ((FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].
-                     TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+               if((((PSCCBcard) pCurrCard)->globalFlags & F_CONLUN_IO) && 
+                       ((FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
                        lun = p_Sccb->Lun;
                else
                        lun = 0;
-               if ((((struct sccb_card *)pCurrCard)->currentSCCB == NULL) &&
-                   (FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarSelQ_Cnt == 0)
-                   && (FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarLUNBusy[lun]
-                       == 0)) {
+      if ((((PSCCBcard) pCurrCard)->currentSCCB == NULL) &&
+         (FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarSelQ_Cnt == 0) &&
+         (FPT_sccbMgrTbl[thisCard][p_Sccb->TargID].TarLUNBusy[lun]
+         == 0)) {
 
-                       ((struct sccb_card *)pCurrCard)->currentSCCB = p_Sccb;
-                       FPT_ssel(p_Sccb->SccbIOPort, thisCard);
-               }
+            ((PSCCBcard) pCurrCard)->currentSCCB = p_Sccb;
+           FPT_ssel(p_Sccb->SccbIOPort,thisCard);
+         }
 
-               else {
-
-                       if (p_Sccb->OperationCode == RESET_COMMAND) {
-                               pSaveSccb =
-                                   ((struct sccb_card *)pCurrCard)->
-                                   currentSCCB;
-                               ((struct sccb_card *)pCurrCard)->currentSCCB =
-                                   p_Sccb;
-                               FPT_queueSelectFail(&FPT_BL_Card[thisCard],
-                                                   thisCard);
-                               ((struct sccb_card *)pCurrCard)->currentSCCB =
-                                   pSaveSccb;
-                       } else {
-                               FPT_queueAddSccb(p_Sccb, thisCard);
-                       }
-               }
+      else {
 
-               MENABLE_INT(ioport);
-       }
+                       if(p_Sccb->OperationCode == RESET_COMMAND)
+                               {
+                                       pSaveSccb = ((PSCCBcard) pCurrCard)->currentSCCB;
+                                       ((PSCCBcard) pCurrCard)->currentSCCB = p_Sccb;
+                                       FPT_queueSelectFail(&FPT_BL_Card[thisCard], thisCard);
+                                       ((PSCCBcard) pCurrCard)->currentSCCB = pSaveSccb;
+                               }
+                       else
+                               {
+                       FPT_queueAddSccb(p_Sccb,thisCard);
+                               }
+         }
+
+
+      MENABLE_INT(ioport);
+      }
 
 }
 
+
 /*---------------------------------------------------------------------
  *
- * Function: FlashPoint_AbortCCB
+ * Function: SccbMgr_abort_sccb
  *
  * Description: Abort the command pointed to by p_Sccb.  When the
  *              command is completed it will be returned via the
  *              callback function.
  *
  *---------------------------------------------------------------------*/
-static int FlashPoint_AbortCCB(unsigned long pCurrCard, struct sccb *p_Sccb)
+static int SccbMgr_abort_sccb(ULONG pCurrCard, PSCCB p_Sccb)
 {
-       unsigned long ioport;
+       ULONG ioport;
 
-       unsigned char thisCard;
+       UCHAR thisCard;
        CALL_BK_FN callback;
-       unsigned char TID;
-       struct sccb *pSaveSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
+       UCHAR TID;
+       PSCCB pSaveSCCB;
+       PSCCBMgr_tar_info currTar_Info;
+
 
-       ioport = ((struct sccb_card *)pCurrCard)->ioPort;
+       ioport = ((PSCCBcard) pCurrCard)->ioPort;
 
-       thisCard = ((struct sccb_card *)pCurrCard)->cardIndex;
+       thisCard = ((PSCCBcard)pCurrCard)->cardIndex;
 
-       if (!(RD_HARPOON(ioport + hp_page_ctrl) & G_INT_DISABLE)) {
+       if (!(RD_HARPOON(ioport+hp_page_ctrl) & G_INT_DISABLE))
+       {
 
-               if (FPT_queueFindSccb(p_Sccb, thisCard)) {
+               if (FPT_queueFindSccb(p_Sccb,thisCard))
+               {
 
-                       ((struct sccb_card *)pCurrCard)->cmdCounter--;
+                       ((PSCCBcard)pCurrCard)->cmdCounter--;
 
-                       if (!((struct sccb_card *)pCurrCard)->cmdCounter)
-                               WR_HARPOON(ioport + hp_semaphore,
-                                          (RD_HARPOON(ioport + hp_semaphore)
-                                           & (unsigned
-                                              char)(~(SCCB_MGR_ACTIVE |
-                                                      TICKLE_ME))));
+                       if (!((PSCCBcard)pCurrCard)->cmdCounter)
+                               WR_HARPOON(ioport+hp_semaphore,(RD_HARPOON(ioport+hp_semaphore)
+                                       & (UCHAR)(~(SCCB_MGR_ACTIVE | TICKLE_ME)) ));
 
                        p_Sccb->SccbStatus = SCCB_ABORT;
                        callback = p_Sccb->SccbCallback;
                        callback(p_Sccb);
 
-                       return 0;
+                       return(0);
                }
 
-               else {
-                       if (((struct sccb_card *)pCurrCard)->currentSCCB ==
-                           p_Sccb) {
+               else
+               {
+                       if (((PSCCBcard)pCurrCard)->currentSCCB == p_Sccb)
+                       {
                                p_Sccb->SccbStatus = SCCB_ABORT;
-                               return 0;
+                               return(0);
 
                        }
 
-                       else {
+                       else
+                       {
 
                                TID = p_Sccb->TargID;
 
-                               if (p_Sccb->Sccb_tag) {
+
+                               if(p_Sccb->Sccb_tag)
+                               {
                                        MDISABLE_INT(ioport);
-                                       if (((struct sccb_card *)pCurrCard)->
-                                           discQ_Tbl[p_Sccb->Sccb_tag] ==
-                                           p_Sccb) {
+                                       if (((PSCCBcard) pCurrCard)->discQ_Tbl[p_Sccb->Sccb_tag]==p_Sccb)
+                                       {
                                                p_Sccb->SccbStatus = SCCB_ABORT;
-                                               p_Sccb->Sccb_scsistat =
-                                                   ABORT_ST;
-                                               p_Sccb->Sccb_scsimsg =
-                                                   SMABORT_TAG;
-
-                                               if (((struct sccb_card *)
-                                                    pCurrCard)->currentSCCB ==
-                                                   NULL) {
-                                                       ((struct sccb_card *)
-                                                        pCurrCard)->
-                                       currentSCCB = p_Sccb;
-                                                       FPT_ssel(ioport,
-                                                                thisCard);
-                                               } else {
-                                                       pSaveSCCB =
-                                                           ((struct sccb_card
-                                                             *)pCurrCard)->
-                                                           currentSCCB;
-                                                       ((struct sccb_card *)
-                                                        pCurrCard)->
-                                       currentSCCB = p_Sccb;
-                                                       FPT_queueSelectFail((struct sccb_card *)pCurrCard, thisCard);
-                                                       ((struct sccb_card *)
-                                                        pCurrCard)->
-                                       currentSCCB = pSaveSCCB;
+                                               p_Sccb->Sccb_scsistat = ABORT_ST;
+                                               p_Sccb->Sccb_scsimsg = SMABORT_TAG;
+
+                                               if(((PSCCBcard) pCurrCard)->currentSCCB == NULL)
+                                               {
+                                                       ((PSCCBcard) pCurrCard)->currentSCCB = p_Sccb;
+                                                       FPT_ssel(ioport, thisCard);
+                                               }
+                                               else
+                                               {
+                                                       pSaveSCCB = ((PSCCBcard) pCurrCard)->currentSCCB;
+                                                       ((PSCCBcard) pCurrCard)->currentSCCB = p_Sccb;
+                                                       FPT_queueSelectFail((PSCCBcard) pCurrCard, thisCard);
+                                                       ((PSCCBcard) pCurrCard)->currentSCCB = pSaveSCCB;
                                                }
                                        }
                                        MENABLE_INT(ioport);
-                                       return 0;
-                               } else {
-                                       currTar_Info =
-                                           &FPT_sccbMgrTbl[thisCard][p_Sccb->
-                                                                     TargID];
-
-                                       if (FPT_BL_Card[thisCard].
-                                           discQ_Tbl[currTar_Info->
-                                                     LunDiscQ_Idx[p_Sccb->Lun]]
-                                           == p_Sccb) {
+                                       return(0);
+                               }
+                               else
+                               {
+                                       currTar_Info = &FPT_sccbMgrTbl[thisCard][p_Sccb->TargID];
+
+                                       if(FPT_BL_Card[thisCard].discQ_Tbl[currTar_Info->LunDiscQ_Idx[p_Sccb->Lun]] 
+                                                       == p_Sccb)
+                                       {
                                                p_Sccb->SccbStatus = SCCB_ABORT;
-                                               return 0;
+                                               return(0);
                                        }
                                }
                        }
                }
        }
-       return -1;
+       return(-1);
 }
 
+
 /*---------------------------------------------------------------------
  *
- * Function: FlashPoint_InterruptPending
+ * Function: SccbMgr_my_int
  *
  * Description: Do a quick check to determine if there is a pending
  *              interrupt for this card and disable the IRQ Pin if so.
  *
  *---------------------------------------------------------------------*/
-static unsigned char FlashPoint_InterruptPending(unsigned long pCurrCard)
+static UCHAR SccbMgr_my_int(ULONG pCurrCard)
 {
-       unsigned long ioport;
+   ULONG ioport;
 
-       ioport = ((struct sccb_card *)pCurrCard)->ioPort;
+   ioport = ((PSCCBcard)pCurrCard)->ioPort;
 
-       if (RD_HARPOON(ioport + hp_int_status) & INT_ASSERTED) {
-               return 1;
-       }
+   if (RD_HARPOON(ioport+hp_int_status) & INT_ASSERTED)
+   {
+      return(1);
+   }
 
-       else
+   else
 
-               return 0;
+      return(0);
 }
 
+
+
 /*---------------------------------------------------------------------
  *
- * Function: FlashPoint_HandleInterrupt
+ * Function: SccbMgr_isr
  *
  * Description: This is our entry point when an interrupt is generated
  *              by the card and the upper level driver passes it on to
  *              us.
  *
  *---------------------------------------------------------------------*/
-static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
+static int SccbMgr_isr(ULONG pCurrCard)
 {
-       struct sccb *currSCCB;
-       unsigned char thisCard, result, bm_status, bm_int_st;
-       unsigned short hp_int;
-       unsigned char i, target;
-       unsigned long ioport;
+   PSCCB currSCCB;
+   UCHAR thisCard,result,bm_status, bm_int_st;
+   USHORT hp_int;
+   UCHAR i, target;
+   ULONG ioport;
 
-       thisCard = ((struct sccb_card *)pCurrCard)->cardIndex;
-       ioport = ((struct sccb_card *)pCurrCard)->ioPort;
+   thisCard = ((PSCCBcard)pCurrCard)->cardIndex;
+   ioport = ((PSCCBcard)pCurrCard)->ioPort;
 
-       MDISABLE_INT(ioport);
+   MDISABLE_INT(ioport);
 
-       if ((bm_int_st = RD_HARPOON(ioport + hp_int_status)) & EXT_STATUS_ON)
-               bm_status =
-                   RD_HARPOON(ioport +
-                              hp_ext_status) & (unsigned char)BAD_EXT_STATUS;
-       else
-               bm_status = 0;
+   if ((bm_int_st=RD_HARPOON(ioport+hp_int_status)) & EXT_STATUS_ON)
+               bm_status = RD_HARPOON(ioport+hp_ext_status) & (UCHAR)BAD_EXT_STATUS;
+   else
+      bm_status = 0;
 
-       WR_HARPOON(ioport + hp_int_mask, (INT_CMD_COMPL | SCSI_INTERRUPT));
+   WR_HARPOON(ioport+hp_int_mask, (INT_CMD_COMPL | SCSI_INTERRUPT));
 
-       while ((hp_int =
-               RDW_HARPOON((ioport +
-                            hp_intstat)) & FPT_default_intena) | bm_status) {
+   while ((hp_int = RDW_HARPOON((ioport+hp_intstat)) & FPT_default_intena) |
+         bm_status)
+     {
 
-               currSCCB = ((struct sccb_card *)pCurrCard)->currentSCCB;
+       currSCCB = ((PSCCBcard)pCurrCard)->currentSCCB;
 
-               if (hp_int & (FIFO | TIMEOUT | RESET | SCAM_SEL) || bm_status) {
-                       result =
-                           FPT_SccbMgr_bad_isr(ioport, thisCard,
-                                               ((struct sccb_card *)pCurrCard),
-                                               hp_int);
-                       WRW_HARPOON((ioport + hp_intstat),
-                                   (FIFO | TIMEOUT | RESET | SCAM_SEL));
-                       bm_status = 0;
+      if (hp_int & (FIFO | TIMEOUT | RESET | SCAM_SEL) || bm_status) {
+         result = FPT_SccbMgr_bad_isr(ioport,thisCard,((PSCCBcard)pCurrCard),hp_int);
+         WRW_HARPOON((ioport+hp_intstat), (FIFO | TIMEOUT | RESET | SCAM_SEL));
+         bm_status = 0;
 
-                       if (result) {
+         if (result) {
 
-                               MENABLE_INT(ioport);
-                               return result;
-                       }
-               }
+            MENABLE_INT(ioport);
+            return(result);
+            }
+         }
 
-               else if (hp_int & ICMD_COMP) {
-
-                       if (!(hp_int & BUS_FREE)) {
-                               /* Wait for the BusFree before starting a new command.  We
-                                  must also check for being reselected since the BusFree
-                                  may not show up if another device reselects us in 1.5us or
-                                  less.  SRR Wednesday, 3/8/1995.
-                                */
-                               while (!
-                                      (RDW_HARPOON((ioport + hp_intstat)) &
-                                       (BUS_FREE | RSEL))) ;
-                       }
 
-                       if (((struct sccb_card *)pCurrCard)->
-                           globalFlags & F_HOST_XFER_ACT)
+      else if (hp_int & ICMD_COMP) {
+
+         if ( !(hp_int & BUS_FREE) ) {
+            /* Wait for the BusFree before starting a new command.  We
+               must also check for being reselected since the BusFree
+               may not show up if another device reselects us in 1.5us or
+               less.  SRR Wednesday, 3/8/1995.
+                */
+          while (!(RDW_HARPOON((ioport+hp_intstat)) & (BUS_FREE | RSEL))) ;
+        }
+
+         if (((PSCCBcard)pCurrCard)->globalFlags & F_HOST_XFER_ACT)
 
-                               FPT_phaseChkFifo(ioport, thisCard);
+            FPT_phaseChkFifo(ioport, thisCard);
 
 /*         WRW_HARPOON((ioport+hp_intstat),
             (BUS_FREE | ICMD_COMP | ITAR_DISC | XFER_CNT_0));
          */
 
-                       WRW_HARPOON((ioport + hp_intstat), CLR_ALL_INT_1);
+                WRW_HARPOON((ioport+hp_intstat), CLR_ALL_INT_1);
 
-                       FPT_autoCmdCmplt(ioport, thisCard);
+         FPT_autoCmdCmplt(ioport,thisCard);
 
-               }
+         }
 
-               else if (hp_int & ITAR_DISC) {
 
-                       if (((struct sccb_card *)pCurrCard)->
-                           globalFlags & F_HOST_XFER_ACT) {
+      else if (hp_int & ITAR_DISC)
+         {
 
-                               FPT_phaseChkFifo(ioport, thisCard);
+         if (((PSCCBcard)pCurrCard)->globalFlags & F_HOST_XFER_ACT) {
 
-                       }
+            FPT_phaseChkFifo(ioport, thisCard);
 
-                       if (RD_HARPOON(ioport + hp_gp_reg_1) == SMSAVE_DATA_PTR) {
+            }
 
-                               WR_HARPOON(ioport + hp_gp_reg_1, 0x00);
-                               currSCCB->Sccb_XferState |= F_NO_DATA_YET;
+         if (RD_HARPOON(ioport+hp_gp_reg_1) == SMSAVE_DATA_PTR) {
 
-                               currSCCB->Sccb_savedATC = currSCCB->Sccb_ATC;
-                       }
+            WR_HARPOON(ioport+hp_gp_reg_1, 0x00);
+            currSCCB->Sccb_XferState |= F_NO_DATA_YET;
 
-                       currSCCB->Sccb_scsistat = DISCONNECT_ST;
-                       FPT_queueDisconnect(currSCCB, thisCard);
-
-                       /* Wait for the BusFree before starting a new command.  We
-                          must also check for being reselected since the BusFree
-                          may not show up if another device reselects us in 1.5us or
-                          less.  SRR Wednesday, 3/8/1995.
-                        */
-                       while (!
-                              (RDW_HARPOON((ioport + hp_intstat)) &
-                               (BUS_FREE | RSEL))
-                              && !((RDW_HARPOON((ioport + hp_intstat)) & PHASE)
-                                   && RD_HARPOON((ioport + hp_scsisig)) ==
-                                   (SCSI_BSY | SCSI_REQ | SCSI_CD | SCSI_MSG |
-                                    SCSI_IOBIT))) ;
-
-                       /*
-                          The additional loop exit condition above detects a timing problem
-                          with the revision D/E harpoon chips.  The caller should reset the
-                          host adapter to recover when 0xFE is returned.
-                        */
-                       if (!
-                           (RDW_HARPOON((ioport + hp_intstat)) &
-                            (BUS_FREE | RSEL))) {
-                               MENABLE_INT(ioport);
-                               return 0xFE;
-                       }
+            currSCCB->Sccb_savedATC = currSCCB->Sccb_ATC;
+            }
 
-                       WRW_HARPOON((ioport + hp_intstat),
-                                   (BUS_FREE | ITAR_DISC));
+         currSCCB->Sccb_scsistat = DISCONNECT_ST;
+         FPT_queueDisconnect(currSCCB,thisCard);
 
-                       ((struct sccb_card *)pCurrCard)->globalFlags |=
-                           F_NEW_SCCB_CMD;
+            /* Wait for the BusFree before starting a new command.  We
+               must also check for being reselected since the BusFree
+               may not show up if another device reselects us in 1.5us or
+               less.  SRR Wednesday, 3/8/1995.
+             */
+          while (!(RDW_HARPOON((ioport+hp_intstat)) & (BUS_FREE | RSEL)) &&
+                 !((RDW_HARPOON((ioport+hp_intstat)) & PHASE) &&
+                   RD_HARPOON((ioport+hp_scsisig)) ==
+                   (SCSI_BSY | SCSI_REQ | SCSI_CD | SCSI_MSG | SCSI_IOBIT))) ;
 
-               }
+          /*
+            The additional loop exit condition above detects a timing problem
+            with the revision D/E harpoon chips.  The caller should reset the
+            host adapter to recover when 0xFE is returned.
+          */
+          if (!(RDW_HARPOON((ioport+hp_intstat)) & (BUS_FREE | RSEL)))
+            {
+              MENABLE_INT(ioport);
+              return 0xFE;
+            }
 
-               else if (hp_int & RSEL) {
+         WRW_HARPOON((ioport+hp_intstat), (BUS_FREE | ITAR_DISC));
 
-                       WRW_HARPOON((ioport + hp_intstat),
-                                   (PROG_HLT | RSEL | PHASE | BUS_FREE));
 
-                       if (RDW_HARPOON((ioport + hp_intstat)) & ITAR_DISC) {
-                               if (((struct sccb_card *)pCurrCard)->
-                                   globalFlags & F_HOST_XFER_ACT) {
-                                       FPT_phaseChkFifo(ioport, thisCard);
-                               }
+         ((PSCCBcard)pCurrCard)->globalFlags |= F_NEW_SCCB_CMD;
 
-                               if (RD_HARPOON(ioport + hp_gp_reg_1) ==
-                                   SMSAVE_DATA_PTR) {
-                                       WR_HARPOON(ioport + hp_gp_reg_1, 0x00);
-                                       currSCCB->Sccb_XferState |=
-                                           F_NO_DATA_YET;
-                                       currSCCB->Sccb_savedATC =
-                                           currSCCB->Sccb_ATC;
-                               }
+       }
 
-                               WRW_HARPOON((ioport + hp_intstat),
-                                           (BUS_FREE | ITAR_DISC));
-                               currSCCB->Sccb_scsistat = DISCONNECT_ST;
-                               FPT_queueDisconnect(currSCCB, thisCard);
-                       }
 
-                       FPT_sres(ioport, thisCard,
-                                ((struct sccb_card *)pCurrCard));
-                       FPT_phaseDecode(ioport, thisCard);
+      else if (hp_int & RSEL) {
 
-               }
+         WRW_HARPOON((ioport+hp_intstat), (PROG_HLT | RSEL | PHASE | BUS_FREE));
 
-               else if ((hp_int & IDO_STRT) && (!(hp_int & BUS_FREE))) {
+         if (RDW_HARPOON((ioport+hp_intstat)) & ITAR_DISC)
+                     {
+            if (((PSCCBcard)pCurrCard)->globalFlags & F_HOST_XFER_ACT)
+                             {
+               FPT_phaseChkFifo(ioport, thisCard);
+               }
 
-                       WRW_HARPOON((ioport + hp_intstat),
-                                   (IDO_STRT | XFER_CNT_0));
-                       FPT_phaseDecode(ioport, thisCard);
+            if (RD_HARPOON(ioport+hp_gp_reg_1) == SMSAVE_DATA_PTR)
+                             {
+               WR_HARPOON(ioport+hp_gp_reg_1, 0x00);
+               currSCCB->Sccb_XferState |= F_NO_DATA_YET;
+               currSCCB->Sccb_savedATC = currSCCB->Sccb_ATC;
+               }
 
-               }
+            WRW_HARPOON((ioport+hp_intstat), (BUS_FREE | ITAR_DISC));
+            currSCCB->Sccb_scsistat = DISCONNECT_ST;
+            FPT_queueDisconnect(currSCCB,thisCard);
+            }
 
-               else if ((hp_int & IUNKWN) || (hp_int & PROG_HLT)) {
-                       WRW_HARPOON((ioport + hp_intstat),
-                                   (PHASE | IUNKWN | PROG_HLT));
-                       if ((RD_HARPOON(ioport + hp_prgmcnt_0) & (unsigned char)
-                            0x3f) < (unsigned char)SELCHK) {
-                               FPT_phaseDecode(ioport, thisCard);
-                       } else {
-                               /* Harpoon problem some SCSI target device respond to selection
-                                  with short BUSY pulse (<400ns) this will make the Harpoon is not able
-                                  to latch the correct Target ID into reg. x53.
-                                  The work around require to correct this reg. But when write to this
-                                  reg. (0x53) also increment the FIFO write addr reg (0x6f), thus we
-                                  need to read this reg first then restore it later. After update to 0x53 */
-
-                               i = (unsigned
-                                    char)(RD_HARPOON(ioport + hp_fifowrite));
-                               target =
-                                   (unsigned
-                                    char)(RD_HARPOON(ioport + hp_gp_reg_3));
-                               WR_HARPOON(ioport + hp_xfer_pad,
-                                          (unsigned char)ID_UNLOCK);
-                               WR_HARPOON(ioport + hp_select_id,
-                                          (unsigned char)(target | target <<
-                                                          4));
-                               WR_HARPOON(ioport + hp_xfer_pad,
-                                          (unsigned char)0x00);
-                               WR_HARPOON(ioport + hp_fifowrite, i);
-                               WR_HARPOON(ioport + hp_autostart_3,
-                                          (AUTO_IMMED + TAG_STRT));
-                       }
-               }
+         FPT_sres(ioport,thisCard,((PSCCBcard)pCurrCard));
+         FPT_phaseDecode(ioport,thisCard);
 
-               else if (hp_int & XFER_CNT_0) {
+         }
 
-                       WRW_HARPOON((ioport + hp_intstat), XFER_CNT_0);
 
-                       FPT_schkdd(ioport, thisCard);
+      else if ((hp_int & IDO_STRT) && (!(hp_int & BUS_FREE)))
+         {
 
-               }
+            WRW_HARPOON((ioport+hp_intstat), (IDO_STRT | XFER_CNT_0));
+            FPT_phaseDecode(ioport,thisCard);
 
-               else if (hp_int & BUS_FREE) {
+         }
 
-                       WRW_HARPOON((ioport + hp_intstat), BUS_FREE);
 
-                       if (((struct sccb_card *)pCurrCard)->
-                           globalFlags & F_HOST_XFER_ACT) {
+      else if ( (hp_int & IUNKWN) || (hp_int & PROG_HLT) )
+                  {
+                  WRW_HARPOON((ioport+hp_intstat), (PHASE | IUNKWN | PROG_HLT));
+                  if ((RD_HARPOON(ioport+hp_prgmcnt_0) & (UCHAR)0x3f)< (UCHAR)SELCHK)
+                       {
+                       FPT_phaseDecode(ioport,thisCard);
+                       }
+                  else
+                       {
+   /* Harpoon problem some SCSI target device respond to selection
+   with short BUSY pulse (<400ns) this will make the Harpoon is not able
+   to latch the correct Target ID into reg. x53.
+   The work around require to correct this reg. But when write to this
+   reg. (0x53) also increment the FIFO write addr reg (0x6f), thus we
+   need to read this reg first then restore it later. After update to 0x53 */
 
-                               FPT_hostDataXferAbort(ioport, thisCard,
-                                                     currSCCB);
-                       }
+                       i = (UCHAR)(RD_HARPOON(ioport+hp_fifowrite));
+                       target = (UCHAR)(RD_HARPOON(ioport+hp_gp_reg_3));
+                       WR_HARPOON(ioport+hp_xfer_pad, (UCHAR) ID_UNLOCK);
+                       WR_HARPOON(ioport+hp_select_id, (UCHAR)(target | target<<4));
+                       WR_HARPOON(ioport+hp_xfer_pad, (UCHAR) 0x00);
+                       WR_HARPOON(ioport+hp_fifowrite, i);
+                       WR_HARPOON(ioport+hp_autostart_3, (AUTO_IMMED+TAG_STRT));
+                       }
+                  }
 
-                       FPT_phaseBusFree(ioport, thisCard);
-               }
+      else if (hp_int & XFER_CNT_0) {
 
-               else if (hp_int & ITICKLE) {
+         WRW_HARPOON((ioport+hp_intstat), XFER_CNT_0);
 
-                       WRW_HARPOON((ioport + hp_intstat), ITICKLE);
-                       ((struct sccb_card *)pCurrCard)->globalFlags |=
-                           F_NEW_SCCB_CMD;
-               }
+         FPT_schkdd(ioport,thisCard);
 
-               if (((struct sccb_card *)pCurrCard)->
-                   globalFlags & F_NEW_SCCB_CMD) {
+         }
 
-                       ((struct sccb_card *)pCurrCard)->globalFlags &=
-                           ~F_NEW_SCCB_CMD;
 
-                       if (((struct sccb_card *)pCurrCard)->currentSCCB ==
-                           NULL) {
+      else if (hp_int & BUS_FREE) {
 
-                               FPT_queueSearchSelect(((struct sccb_card *)
-                                                      pCurrCard), thisCard);
-                       }
+         WRW_HARPOON((ioport+hp_intstat), BUS_FREE);
+
+               if (((PSCCBcard)pCurrCard)->globalFlags & F_HOST_XFER_ACT) {
+
+               FPT_hostDataXferAbort(ioport,thisCard,currSCCB);
+                               }
 
-                       if (((struct sccb_card *)pCurrCard)->currentSCCB !=
-                           NULL) {
-                               ((struct sccb_card *)pCurrCard)->globalFlags &=
-                                   ~F_NEW_SCCB_CMD;
-                               FPT_ssel(ioport, thisCard);
+         FPT_phaseBusFree(ioport,thisCard);
                        }
 
-                       break;
 
-               }
+      else if (hp_int & ITICKLE) {
+
+         WRW_HARPOON((ioport+hp_intstat), ITICKLE);
+         ((PSCCBcard)pCurrCard)->globalFlags |= F_NEW_SCCB_CMD;
+         }
+
+
+
+      if (((PSCCBcard)pCurrCard)->globalFlags & F_NEW_SCCB_CMD) {
+
+
+         ((PSCCBcard)pCurrCard)->globalFlags &= ~F_NEW_SCCB_CMD;
+
+
+         if (((PSCCBcard)pCurrCard)->currentSCCB == NULL) {
+
+            FPT_queueSearchSelect(((PSCCBcard)pCurrCard),thisCard);
+            }
+
+         if (((PSCCBcard)pCurrCard)->currentSCCB != NULL) {
+            ((PSCCBcard)pCurrCard)->globalFlags &= ~F_NEW_SCCB_CMD;
+            FPT_ssel(ioport,thisCard);
+            }
+
+         break;
 
-       }                       /*end while */
+         }
 
-       MENABLE_INT(ioport);
+      }  /*end while */
 
-       return 0;
+   MENABLE_INT(ioport);
+
+   return(0);
 }
 
 /*---------------------------------------------------------------------
@@ -2009,149 +2529,150 @@ static int FlashPoint_HandleInterrupt(unsigned long pCurrCard)
  *              processing time.
  *
  *---------------------------------------------------------------------*/
-static unsigned char FPT_SccbMgr_bad_isr(unsigned long p_port,
-                                        unsigned char p_card,
-                                        struct sccb_card *pCurrCard,
-                                        unsigned short p_int)
+static UCHAR FPT_SccbMgr_bad_isr(ULONG p_port, UCHAR p_card,
+                                PSCCBcard pCurrCard, USHORT p_int)
 {
-       unsigned char temp, ScamFlg;
-       struct sccb_mgr_tar_info *currTar_Info;
-       struct nvram_info *pCurrNvRam;
+   UCHAR temp, ScamFlg;
+   PSCCBMgr_tar_info currTar_Info;
+   PNVRamInfo pCurrNvRam;
 
-       if (RD_HARPOON(p_port + hp_ext_status) &
-           (BM_FORCE_OFF | PCI_DEV_TMOUT | BM_PARITY_ERR | PIO_OVERRUN)) {
 
-               if (pCurrCard->globalFlags & F_HOST_XFER_ACT) {
+   if (RD_HARPOON(p_port+hp_ext_status) &
+         (BM_FORCE_OFF | PCI_DEV_TMOUT | BM_PARITY_ERR | PIO_OVERRUN) )
+      {
 
-                       FPT_hostDataXferAbort(p_port, p_card,
-                                             pCurrCard->currentSCCB);
-               }
+      if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
+         {
 
-               if (RD_HARPOON(p_port + hp_pci_stat_cfg) & REC_MASTER_ABORT)
-               {
-                       WR_HARPOON(p_port + hp_pci_stat_cfg,
-                                  (RD_HARPOON(p_port + hp_pci_stat_cfg) &
-                                   ~REC_MASTER_ABORT));
+         FPT_hostDataXferAbort(p_port,p_card, pCurrCard->currentSCCB);
+         }
 
-                       WR_HARPOON(p_port + hp_host_blk_cnt, 0x00);
+      if (RD_HARPOON(p_port+hp_pci_stat_cfg) & REC_MASTER_ABORT)
 
-               }
+         {
+         WR_HARPOON(p_port+hp_pci_stat_cfg,
+            (RD_HARPOON(p_port+hp_pci_stat_cfg) & ~REC_MASTER_ABORT));
 
-               if (pCurrCard->currentSCCB != NULL) {
+         WR_HARPOON(p_port+hp_host_blk_cnt, 0x00);
 
-                       if (!pCurrCard->currentSCCB->HostStatus)
-                               pCurrCard->currentSCCB->HostStatus =
-                                   SCCB_BM_ERR;
+         }
 
-                       FPT_sxfrp(p_port, p_card);
+      if (pCurrCard->currentSCCB != NULL)
+         {
 
-                       temp = (unsigned char)(RD_HARPOON(p_port + hp_ee_ctrl) &
-                                              (EXT_ARB_ACK | SCSI_TERM_ENA_H));
-                       WR_HARPOON(p_port + hp_ee_ctrl,
-                                  ((unsigned char)temp | SEE_MS | SEE_CS));
-                       WR_HARPOON(p_port + hp_ee_ctrl, temp);
+         if (!pCurrCard->currentSCCB->HostStatus)
+            pCurrCard->currentSCCB->HostStatus = SCCB_BM_ERR;
 
-                       if (!
-                           (RDW_HARPOON((p_port + hp_intstat)) &
-                            (BUS_FREE | RESET))) {
-                               FPT_phaseDecode(p_port, p_card);
-                       }
-               }
-       }
+         FPT_sxfrp(p_port,p_card);
 
-       else if (p_int & RESET) {
+            temp = (UCHAR)(RD_HARPOON(p_port+hp_ee_ctrl) &
+                                                       (EXT_ARB_ACK | SCSI_TERM_ENA_H));
+       WR_HARPOON(p_port+hp_ee_ctrl, ((UCHAR)temp | SEE_MS | SEE_CS));
+         WR_HARPOON(p_port+hp_ee_ctrl, temp);
 
-               WR_HARPOON(p_port + hp_clkctrl_0, CLKCTRL_DEFAULT);
-               WR_HARPOON(p_port + hp_sys_ctrl, 0x00);
-               if (pCurrCard->currentSCCB != NULL) {
+         if (!(RDW_HARPOON((p_port+hp_intstat)) & (BUS_FREE | RESET)))
+            {
+            FPT_phaseDecode(p_port,p_card);
+            }
+         }
+      }
 
-                       if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
 
-                               FPT_hostDataXferAbort(p_port, p_card,
-                                                     pCurrCard->currentSCCB);
-               }
+   else if (p_int & RESET)
+         {
 
-               DISABLE_AUTO(p_port);
+                               WR_HARPOON(p_port+hp_clkctrl_0, CLKCTRL_DEFAULT);
+                               WR_HARPOON(p_port+hp_sys_ctrl, 0x00);
+           if (pCurrCard->currentSCCB != NULL) {
 
-               FPT_sresb(p_port, p_card);
+               if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
 
-               while (RD_HARPOON(p_port + hp_scsictrl_0) & SCSI_RST) {
-               }
+               FPT_hostDataXferAbort(p_port,p_card, pCurrCard->currentSCCB);
+               }
 
-               pCurrNvRam = pCurrCard->pNvRamInfo;
-               if (pCurrNvRam) {
-                       ScamFlg = pCurrNvRam->niScamConf;
-               } else {
-                       ScamFlg =
-                           (unsigned char)FPT_utilEERead(p_port,
-                                                         SCAM_CONFIG / 2);
-               }
 
-               FPT_XbowInit(p_port, ScamFlg);
+           DISABLE_AUTO(p_port);
 
-               FPT_scini(p_card, pCurrCard->ourId, 0);
+           FPT_sresb(p_port,p_card);
 
-               return 0xFF;
-       }
+           while(RD_HARPOON(p_port+hp_scsictrl_0) & SCSI_RST) {}
+
+                               pCurrNvRam = pCurrCard->pNvRamInfo;
+                               if(pCurrNvRam){
+                                       ScamFlg = pCurrNvRam->niScamConf;
+                               }
+                               else{
+                                  ScamFlg = (UCHAR) FPT_utilEERead(p_port, SCAM_CONFIG/2);
+                               }
 
-       else if (p_int & FIFO) {
+           FPT_XbowInit(p_port, ScamFlg);
 
-               WRW_HARPOON((p_port + hp_intstat), FIFO);
+               FPT_scini(p_card, pCurrCard->ourId, 0);
 
-               if (pCurrCard->currentSCCB != NULL)
-                       FPT_sxfrp(p_port, p_card);
-       }
+           return(0xFF);
+         }
+
+
+   else if (p_int & FIFO) {
+
+      WRW_HARPOON((p_port+hp_intstat), FIFO);
+
+      if (pCurrCard->currentSCCB != NULL)
+         FPT_sxfrp(p_port,p_card);
+      }
+
+   else if (p_int & TIMEOUT)
+      {
 
-       else if (p_int & TIMEOUT) {
+      DISABLE_AUTO(p_port);
 
-               DISABLE_AUTO(p_port);
+      WRW_HARPOON((p_port+hp_intstat),
+                 (PROG_HLT | TIMEOUT | SEL |BUS_FREE | PHASE | IUNKWN));
 
-               WRW_HARPOON((p_port + hp_intstat),
-                           (PROG_HLT | TIMEOUT | SEL | BUS_FREE | PHASE |
-                            IUNKWN));
+      pCurrCard->currentSCCB->HostStatus = SCCB_SELECTION_TIMEOUT;
 
-               pCurrCard->currentSCCB->HostStatus = SCCB_SELECTION_TIMEOUT;
 
-               currTar_Info =
-                   &FPT_sccbMgrTbl[p_card][pCurrCard->currentSCCB->TargID];
-               if ((pCurrCard->globalFlags & F_CONLUN_IO)
-                   && ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) !=
-                       TAG_Q_TRYING))
-                       currTar_Info->TarLUNBusy[pCurrCard->currentSCCB->Lun] =
-                           0;
+               currTar_Info = &FPT_sccbMgrTbl[p_card][pCurrCard->currentSCCB->TargID];
+               if((pCurrCard->globalFlags & F_CONLUN_IO) &&
+                       ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+             currTar_Info->TarLUNBusy[pCurrCard->currentSCCB->Lun] = 0;
                else
-                       currTar_Info->TarLUNBusy[0] = 0;
+             currTar_Info->TarLUNBusy[0] = 0;
 
-               if (currTar_Info->TarEEValue & EE_SYNC_MASK) {
-                       currTar_Info->TarSyncCtrl = 0;
-                       currTar_Info->TarStatus &= ~TAR_SYNC_MASK;
-               }
 
-               if (currTar_Info->TarEEValue & EE_WIDE_SCSI) {
-                       currTar_Info->TarStatus &= ~TAR_WIDE_MASK;
-               }
+      if (currTar_Info->TarEEValue & EE_SYNC_MASK)
+         {
+              currTar_Info->TarSyncCtrl = 0;
+         currTar_Info->TarStatus &= ~TAR_SYNC_MASK;
+         }
 
-               FPT_sssyncv(p_port, pCurrCard->currentSCCB->TargID, NARROW_SCSI,
-                           currTar_Info);
+      if (currTar_Info->TarEEValue & EE_WIDE_SCSI)
+         {
+         currTar_Info->TarStatus &= ~TAR_WIDE_MASK;
+         }
 
-               FPT_queueCmdComplete(pCurrCard, pCurrCard->currentSCCB, p_card);
+      FPT_sssyncv(p_port, pCurrCard->currentSCCB->TargID, NARROW_SCSI,currTar_Info);
 
-       }
+      FPT_queueCmdComplete(pCurrCard, pCurrCard->currentSCCB, p_card);
+
+      }
 
-       else if (p_int & SCAM_SEL) {
+   else if (p_int & SCAM_SEL)
+      {
 
-               FPT_scarb(p_port, LEVEL2_TAR);
-               FPT_scsel(p_port);
-               FPT_scasid(p_card, p_port);
+      FPT_scarb(p_port,LEVEL2_TAR);
+      FPT_scsel(p_port);
+      FPT_scasid(p_card, p_port);
 
-               FPT_scbusf(p_port);
+      FPT_scbusf(p_port);
 
-               WRW_HARPOON((p_port + hp_intstat), SCAM_SEL);
-       }
+      WRW_HARPOON((p_port+hp_intstat), SCAM_SEL);
+      }
 
-       return 0x00;
+   return(0x00);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: SccbMgrTableInit
@@ -2162,19 +2683,21 @@ static unsigned char FPT_SccbMgr_bad_isr(unsigned long p_port,
 
 static void FPT_SccbMgrTableInitAll()
 {
-       unsigned char thisCard;
+   UCHAR thisCard;
 
-       for (thisCard = 0; thisCard < MAX_CARDS; thisCard++) {
-               FPT_SccbMgrTableInitCard(&FPT_BL_Card[thisCard], thisCard);
+   for (thisCard = 0; thisCard < MAX_CARDS; thisCard++)
+      {
+      FPT_SccbMgrTableInitCard(&FPT_BL_Card[thisCard],thisCard);
 
-               FPT_BL_Card[thisCard].ioPort = 0x00;
-               FPT_BL_Card[thisCard].cardInfo = NULL;
-               FPT_BL_Card[thisCard].cardIndex = 0xFF;
-               FPT_BL_Card[thisCard].ourId = 0x00;
-               FPT_BL_Card[thisCard].pNvRamInfo = NULL;
-       }
+      FPT_BL_Card[thisCard].ioPort      = 0x00;
+      FPT_BL_Card[thisCard].cardInfo    = NULL;
+      FPT_BL_Card[thisCard].cardIndex   = 0xFF;
+      FPT_BL_Card[thisCard].ourId       = 0x00;
+               FPT_BL_Card[thisCard].pNvRamInfo        = NULL;
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: SccbMgrTableInit
@@ -2183,30 +2706,33 @@ static void FPT_SccbMgrTableInitAll()
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_SccbMgrTableInitCard(struct sccb_card *pCurrCard,
-                                    unsigned char p_card)
+static void FPT_SccbMgrTableInitCard(PSCCBcard pCurrCard, UCHAR p_card)
 {
-       unsigned char scsiID, qtag;
+   UCHAR scsiID, qtag;
 
-       for (qtag = 0; qtag < QUEUE_DEPTH; qtag++) {
+       for (qtag = 0; qtag < QUEUE_DEPTH; qtag++)
+       {
                FPT_BL_Card[p_card].discQ_Tbl[qtag] = NULL;
        }
 
-       for (scsiID = 0; scsiID < MAX_SCSI_TAR; scsiID++) {
-               FPT_sccbMgrTbl[p_card][scsiID].TarStatus = 0;
-               FPT_sccbMgrTbl[p_card][scsiID].TarEEValue = 0;
-               FPT_SccbMgrTableInitTarget(p_card, scsiID);
-       }
+   for (scsiID = 0; scsiID < MAX_SCSI_TAR; scsiID++)
+      {
+      FPT_sccbMgrTbl[p_card][scsiID].TarStatus = 0;
+      FPT_sccbMgrTbl[p_card][scsiID].TarEEValue = 0;
+      FPT_SccbMgrTableInitTarget(p_card, scsiID);
+      }
 
-       pCurrCard->scanIndex = 0x00;
-       pCurrCard->currentSCCB = NULL;
-       pCurrCard->globalFlags = 0x00;
-       pCurrCard->cmdCounter = 0x00;
+   pCurrCard->scanIndex = 0x00;
+   pCurrCard->currentSCCB = NULL;
+   pCurrCard->globalFlags = 0x00;
+   pCurrCard->cmdCounter  = 0x00;
        pCurrCard->tagQ_Lst = 0x01;
-       pCurrCard->discQCount = 0;
+       pCurrCard->discQCount = 0; 
+
 
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: SccbMgrTableInit
@@ -2215,12 +2741,11 @@ static void FPT_SccbMgrTableInitCard(struct sccb_card *pCurrCard,
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_SccbMgrTableInitTarget(unsigned char p_card,
-                                      unsigned char target)
+static void FPT_SccbMgrTableInitTarget(UCHAR p_card, UCHAR target)
 {
 
-       unsigned char lun, qtag;
-       struct sccb_mgr_tar_info *currTar_Info;
+       UCHAR lun, qtag;
+       PSCCBMgr_tar_info currTar_Info;
 
        currTar_Info = &FPT_sccbMgrTbl[p_card][target];
 
@@ -2232,15 +2757,19 @@ static void FPT_SccbMgrTableInitTarget(unsigned char p_card,
        currTar_Info->TarTagQ_Cnt = 0;
        currTar_Info->TarLUN_CA = 0;
 
-       for (lun = 0; lun < MAX_LUN; lun++) {
+
+       for (lun = 0; lun < MAX_LUN; lun++)
+       {
                currTar_Info->TarLUNBusy[lun] = 0;
                currTar_Info->LunDiscQ_Idx[lun] = 0;
        }
 
-       for (qtag = 0; qtag < QUEUE_DEPTH; qtag++) {
-               if (FPT_BL_Card[p_card].discQ_Tbl[qtag] != NULL) {
-                       if (FPT_BL_Card[p_card].discQ_Tbl[qtag]->TargID ==
-                           target) {
+       for (qtag = 0; qtag < QUEUE_DEPTH; qtag++)
+       {
+               if(FPT_BL_Card[p_card].discQ_Tbl[qtag] != NULL)
+               {
+                       if(FPT_BL_Card[p_card].discQ_Tbl[qtag]->TargID == target)
+                       {
                                FPT_BL_Card[p_card].discQ_Tbl[qtag] = NULL;
                                FPT_BL_Card[p_card].discQCount--;
                        }
@@ -2248,6 +2777,7 @@ static void FPT_SccbMgrTableInitTarget(unsigned char p_card,
        }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: sfetm
@@ -2257,66 +2787,71 @@ static void FPT_SccbMgrTableInitTarget(unsigned char p_card,
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_sfm(unsigned long port, struct sccb *pCurrSCCB)
+static UCHAR FPT_sfm(ULONG port, PSCCB pCurrSCCB)
 {
-       unsigned char message;
-       unsigned short TimeOutLoop;
+       UCHAR message;
+       USHORT TimeOutLoop;
 
        TimeOutLoop = 0;
-       while ((!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) &&
-              (TimeOutLoop++ < 20000)) {
-       }
+       while( (!(RD_HARPOON(port+hp_scsisig) & SCSI_REQ)) &&
+                       (TimeOutLoop++ < 20000) ){}
+
+
+       WR_HARPOON(port+hp_portctrl_0, SCSI_PORT);
 
-       WR_HARPOON(port + hp_portctrl_0, SCSI_PORT);
+       message = RD_HARPOON(port+hp_scsidata_0);
 
-       message = RD_HARPOON(port + hp_scsidata_0);
+       WR_HARPOON(port+hp_scsisig, SCSI_ACK + S_MSGI_PH);
 
-       WR_HARPOON(port + hp_scsisig, SCSI_ACK + S_MSGI_PH);
 
        if (TimeOutLoop > 20000)
-               message = 0x00; /* force message byte = 0 if Time Out on Req */
-
-       if ((RDW_HARPOON((port + hp_intstat)) & PARITY) &&
-           (RD_HARPOON(port + hp_addstat) & SCSI_PAR_ERR)) {
-               WR_HARPOON(port + hp_scsisig, (SCSI_ACK + S_ILL_PH));
-               WR_HARPOON(port + hp_xferstat, 0);
-               WR_HARPOON(port + hp_fiforead, 0);
-               WR_HARPOON(port + hp_fifowrite, 0);
-               if (pCurrSCCB != NULL) {
+               message = 0x00;   /* force message byte = 0 if Time Out on Req */
+
+       if ((RDW_HARPOON((port+hp_intstat)) & PARITY) &&
+               (RD_HARPOON(port+hp_addstat) & SCSI_PAR_ERR))
+       {
+               WR_HARPOON(port+hp_scsisig, (SCSI_ACK + S_ILL_PH));
+               WR_HARPOON(port+hp_xferstat, 0);
+               WR_HARPOON(port+hp_fiforead, 0);
+               WR_HARPOON(port+hp_fifowrite, 0);
+               if (pCurrSCCB != NULL)
+               {
                        pCurrSCCB->Sccb_scsimsg = SMPARITY;
                }
                message = 0x00;
-               do {
+               do
+               {
                        ACCEPT_MSG_ATN(port);
                        TimeOutLoop = 0;
-                       while ((!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) &&
-                              (TimeOutLoop++ < 20000)) {
-                       }
-                       if (TimeOutLoop > 20000) {
-                               WRW_HARPOON((port + hp_intstat), PARITY);
-                               return message;
+                       while( (!(RD_HARPOON(port+hp_scsisig) & SCSI_REQ)) &&
+                               (TimeOutLoop++ < 20000) ){}
+                       if (TimeOutLoop > 20000)
+                       {
+                               WRW_HARPOON((port+hp_intstat), PARITY);
+                               return(message);
                        }
-                       if ((RD_HARPOON(port + hp_scsisig) & S_SCSI_PHZ) !=
-                           S_MSGI_PH) {
-                               WRW_HARPOON((port + hp_intstat), PARITY);
-                               return message;
+                       if ((RD_HARPOON(port+hp_scsisig) & S_SCSI_PHZ) != S_MSGI_PH)
+                       {
+                               WRW_HARPOON((port+hp_intstat), PARITY);
+                               return(message);
                        }
-                       WR_HARPOON(port + hp_portctrl_0, SCSI_PORT);
+                       WR_HARPOON(port+hp_portctrl_0, SCSI_PORT);
 
-                       RD_HARPOON(port + hp_scsidata_0);
+                       RD_HARPOON(port+hp_scsidata_0);
 
-                       WR_HARPOON(port + hp_scsisig, (SCSI_ACK + S_ILL_PH));
+                       WR_HARPOON(port+hp_scsisig, (SCSI_ACK + S_ILL_PH));
 
-               } while (1);
+               }while(1);
 
        }
-       WR_HARPOON(port + hp_scsisig, (SCSI_ACK + S_ILL_PH));
-       WR_HARPOON(port + hp_xferstat, 0);
-       WR_HARPOON(port + hp_fiforead, 0);
-       WR_HARPOON(port + hp_fifowrite, 0);
-       return message;
+       WR_HARPOON(port+hp_scsisig, (SCSI_ACK + S_ILL_PH));
+       WR_HARPOON(port+hp_xferstat, 0);
+       WR_HARPOON(port+hp_fiforead, 0);
+       WR_HARPOON(port+hp_fifowrite, 0);
+       return(message);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_ssel
@@ -2325,90 +2860,102 @@ static unsigned char FPT_sfm(unsigned long port, struct sccb *pCurrSCCB)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_ssel(unsigned long port, unsigned char p_card)
+static void FPT_ssel(ULONG port, UCHAR p_card)
 {
 
-       unsigned char auto_loaded, i, target, *theCCB;
+   UCHAR auto_loaded, i, target, *theCCB;
 
-       unsigned long cdb_reg;
-       struct sccb_card *CurrCard;
-       struct sccb *currSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
-       unsigned char lastTag, lun;
+   ULONG cdb_reg;
+   PSCCBcard CurrCard;
+   PSCCB currSCCB;
+   PSCCBMgr_tar_info currTar_Info;
+   UCHAR lastTag, lun;
 
-       CurrCard = &FPT_BL_Card[p_card];
-       currSCCB = CurrCard->currentSCCB;
-       target = currSCCB->TargID;
-       currTar_Info = &FPT_sccbMgrTbl[p_card][target];
-       lastTag = CurrCard->tagQ_Lst;
+   CurrCard = &FPT_BL_Card[p_card];
+   currSCCB = CurrCard->currentSCCB;
+   target = currSCCB->TargID;
+   currTar_Info = &FPT_sccbMgrTbl[p_card][target];
+   lastTag = CurrCard->tagQ_Lst;
+
+   ARAM_ACCESS(port);
 
-       ARAM_ACCESS(port);
 
        if ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) == TAG_Q_REJECT)
                currSCCB->ControlByte &= ~F_USE_CMD_Q;
 
-       if (((CurrCard->globalFlags & F_CONLUN_IO) &&
-            ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+       if(((CurrCard->globalFlags & F_CONLUN_IO) && 
+               ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
 
-               lun = currSCCB->Lun;
+          lun = currSCCB->Lun;
        else
                lun = 0;
 
-       if (CurrCard->globalFlags & F_TAG_STARTED) {
-               if (!(currSCCB->ControlByte & F_USE_CMD_Q)) {
-                       if ((currTar_Info->TarLUN_CA == 0)
-                           && ((currTar_Info->TarStatus & TAR_TAG_Q_MASK)
-                               == TAG_Q_TRYING)) {
-
-                               if (currTar_Info->TarTagQ_Cnt != 0) {
-                                       currTar_Info->TarLUNBusy[lun] = 1;
-                                       FPT_queueSelectFail(CurrCard, p_card);
-                                       SGRAM_ACCESS(port);
-                                       return;
-                               }
 
-                               else {
-                                       currTar_Info->TarLUNBusy[lun] = 1;
-                               }
+   if (CurrCard->globalFlags & F_TAG_STARTED)
+      {
+      if (!(currSCCB->ControlByte & F_USE_CMD_Q))
+         {
+       if ((currTar_Info->TarLUN_CA == 0)
+           && ((currTar_Info->TarStatus & TAR_TAG_Q_MASK)
+           == TAG_Q_TRYING))
+            {
 
-                       }
-                       /*End non-tagged */
-                       else {
-                               currTar_Info->TarLUNBusy[lun] = 1;
-                       }
+                if (currTar_Info->TarTagQ_Cnt !=0)
+                  {
+                          currTar_Info->TarLUNBusy[lun] = 1;
+                       FPT_queueSelectFail(CurrCard,p_card);
+                                          SGRAM_ACCESS(port);
+                          return;
+                          }
 
-               }
-               /*!Use cmd Q Tagged */
-               else {
-                       if (currTar_Info->TarLUN_CA == 1) {
-                               FPT_queueSelectFail(CurrCard, p_card);
-                               SGRAM_ACCESS(port);
-                               return;
-                       }
+            else {
+                         currTar_Info->TarLUNBusy[lun] = 1;
+                         }
 
-                       currTar_Info->TarLUNBusy[lun] = 1;
+             }  /*End non-tagged */
 
-               }               /*else use cmd Q tagged */
+             else {
+                currTar_Info->TarLUNBusy[lun] = 1;
+                }
 
-       }
-       /*if glob tagged started */
-       else {
-               currTar_Info->TarLUNBusy[lun] = 1;
-       }
+             }  /*!Use cmd Q Tagged */
 
-       if ((((CurrCard->globalFlags & F_CONLUN_IO) &&
-             ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
-            || (!(currSCCB->ControlByte & F_USE_CMD_Q)))) {
-               if (CurrCard->discQCount >= QUEUE_DEPTH) {
+          else {
+            if (currTar_Info->TarLUN_CA == 1)
+               {
+             FPT_queueSelectFail(CurrCard,p_card);
+                                  SGRAM_ACCESS(port);
+             return;
+                   }
+
+               currTar_Info->TarLUNBusy[lun] = 1;
+
+            }  /*else use cmd Q tagged */
+
+      }  /*if glob tagged started */
+
+   else {
+        currTar_Info->TarLUNBusy[lun] = 1;
+        }
+
+
+
+       if((((CurrCard->globalFlags & F_CONLUN_IO) && 
+               ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)) 
+               || (!(currSCCB->ControlByte & F_USE_CMD_Q))))
+       {
+               if(CurrCard->discQCount >= QUEUE_DEPTH)
+               {
                        currTar_Info->TarLUNBusy[lun] = 1;
-                       FPT_queueSelectFail(CurrCard, p_card);
+                       FPT_queueSelectFail(CurrCard,p_card);
                        SGRAM_ACCESS(port);
                        return;
                }
-               for (i = 1; i < QUEUE_DEPTH; i++) {
-                       if (++lastTag >= QUEUE_DEPTH)
-                               lastTag = 1;
-                       if (CurrCard->discQ_Tbl[lastTag] == NULL) {
+               for (i = 1; i < QUEUE_DEPTH; i++)
+               {
+                       if (++lastTag >= QUEUE_DEPTH) lastTag = 1;
+                       if (CurrCard->discQ_Tbl[lastTag] == NULL)
+                       {
                                CurrCard->tagQ_Lst = lastTag;
                                currTar_Info->LunDiscQ_Idx[lun] = lastTag;
                                CurrCard->discQ_Tbl[lastTag] = currSCCB;
@@ -2416,206 +2963,206 @@ static void FPT_ssel(unsigned long port, unsigned char p_card)
                                break;
                        }
                }
-               if (i == QUEUE_DEPTH) {
+               if(i == QUEUE_DEPTH)
+               {
                        currTar_Info->TarLUNBusy[lun] = 1;
-                       FPT_queueSelectFail(CurrCard, p_card);
+                       FPT_queueSelectFail(CurrCard,p_card);
                        SGRAM_ACCESS(port);
                        return;
                }
        }
 
-       auto_loaded = 0;
 
-       WR_HARPOON(port + hp_select_id, target);
-       WR_HARPOON(port + hp_gp_reg_3, target); /* Use by new automation logic */
 
-       if (currSCCB->OperationCode == RESET_COMMAND) {
-               WRW_HARPOON((port + ID_MSG_STRT), (MPM_OP + AMSG_OUT +
-                                                  (currSCCB->
-                                                   Sccb_idmsg & ~DISC_PRIV)));
+   auto_loaded = 0;
 
-               WRW_HARPOON((port + ID_MSG_STRT + 2), BRH_OP + ALWAYS + NP);
+   WR_HARPOON(port+hp_select_id, target);
+   WR_HARPOON(port+hp_gp_reg_3, target);  /* Use by new automation logic */
 
-               currSCCB->Sccb_scsimsg = SMDEV_RESET;
+   if (currSCCB->OperationCode == RESET_COMMAND) {
+      WRW_HARPOON((port+ID_MSG_STRT), (MPM_OP+AMSG_OUT+
+                        (currSCCB->Sccb_idmsg & ~DISC_PRIV)));
 
-               WR_HARPOON(port + hp_autostart_3, (SELECT + SELCHK_STRT));
-               auto_loaded = 1;
-               currSCCB->Sccb_scsistat = SELECT_BDR_ST;
+      WRW_HARPOON((port+ID_MSG_STRT+2),BRH_OP+ALWAYS+NP);
 
-               if (currTar_Info->TarEEValue & EE_SYNC_MASK) {
-                       currTar_Info->TarSyncCtrl = 0;
-                       currTar_Info->TarStatus &= ~TAR_SYNC_MASK;
-               }
+      currSCCB->Sccb_scsimsg = SMDEV_RESET;
 
-               if (currTar_Info->TarEEValue & EE_WIDE_SCSI) {
-                       currTar_Info->TarStatus &= ~TAR_WIDE_MASK;
-               }
+      WR_HARPOON(port+hp_autostart_3, (SELECT+SELCHK_STRT));
+      auto_loaded = 1;
+      currSCCB->Sccb_scsistat = SELECT_BDR_ST;
 
-               FPT_sssyncv(port, target, NARROW_SCSI, currTar_Info);
-               FPT_SccbMgrTableInitTarget(p_card, target);
+      if (currTar_Info->TarEEValue & EE_SYNC_MASK)
+         {
+              currTar_Info->TarSyncCtrl = 0;
+             currTar_Info->TarStatus &= ~TAR_SYNC_MASK;
+             }
 
-       }
+      if (currTar_Info->TarEEValue & EE_WIDE_SCSI)
+         {
+       currTar_Info->TarStatus &= ~TAR_WIDE_MASK;
+       }
 
-       else if (currSCCB->Sccb_scsistat == ABORT_ST) {
-               WRW_HARPOON((port + ID_MSG_STRT), (MPM_OP + AMSG_OUT +
-                                                  (currSCCB->
-                                                   Sccb_idmsg & ~DISC_PRIV)));
+      FPT_sssyncv(port, target, NARROW_SCSI,currTar_Info);
+      FPT_SccbMgrTableInitTarget(p_card, target);
 
-               WRW_HARPOON((port + ID_MSG_STRT + 2), BRH_OP + ALWAYS + CMDPZ);
+      }
 
-               WRW_HARPOON((port + SYNC_MSGS + 0), (MPM_OP + AMSG_OUT +
-                                                    (((unsigned
-                                                       char)(currSCCB->
-                                                             ControlByte &
-                                                             TAG_TYPE_MASK)
-                                                      >> 6) | (unsigned char)
-                                                     0x20)));
-               WRW_HARPOON((port + SYNC_MSGS + 2),
-                           (MPM_OP + AMSG_OUT + currSCCB->Sccb_tag));
-               WRW_HARPOON((port + SYNC_MSGS + 4), (BRH_OP + ALWAYS + NP));
+               else if(currSCCB->Sccb_scsistat == ABORT_ST)
+               {
+                       WRW_HARPOON((port+ID_MSG_STRT), (MPM_OP+AMSG_OUT+
+                                                               (currSCCB->Sccb_idmsg & ~DISC_PRIV)));
 
-               WR_HARPOON(port + hp_autostart_3, (SELECT + SELCHK_STRT));
-               auto_loaded = 1;
+      WRW_HARPOON((port+ID_MSG_STRT+2),BRH_OP+ALWAYS+CMDPZ);
 
-       }
+                       WRW_HARPOON((port+SYNC_MSGS+0), (MPM_OP+AMSG_OUT+
+                                                               (((UCHAR)(currSCCB->ControlByte & TAG_TYPE_MASK)
+                                                               >> 6) | (UCHAR)0x20)));
+                       WRW_HARPOON((port+SYNC_MSGS+2),
+                                                       (MPM_OP+AMSG_OUT+currSCCB->Sccb_tag));
+                       WRW_HARPOON((port+SYNC_MSGS+4), (BRH_OP+ALWAYS+NP ));
 
-       else if (!(currTar_Info->TarStatus & WIDE_NEGOCIATED)) {
-               auto_loaded = FPT_siwidn(port, p_card);
-               currSCCB->Sccb_scsistat = SELECT_WN_ST;
-       }
+                       WR_HARPOON(port+hp_autostart_3, (SELECT+SELCHK_STRT));
+                       auto_loaded = 1;
+               
+               }
 
-       else if (!((currTar_Info->TarStatus & TAR_SYNC_MASK)
-                  == SYNC_SUPPORTED)) {
-               auto_loaded = FPT_sisyncn(port, p_card, 0);
-               currSCCB->Sccb_scsistat = SELECT_SN_ST;
-       }
+   else if (!(currTar_Info->TarStatus & WIDE_NEGOCIATED))  {
+      auto_loaded = FPT_siwidn(port,p_card);
+      currSCCB->Sccb_scsistat = SELECT_WN_ST;
+      }
 
-       if (!auto_loaded) {
+   else if (!((currTar_Info->TarStatus & TAR_SYNC_MASK)
+      == SYNC_SUPPORTED))  {
+      auto_loaded = FPT_sisyncn(port,p_card, 0);
+      currSCCB->Sccb_scsistat = SELECT_SN_ST;
+      }
 
-               if (currSCCB->ControlByte & F_USE_CMD_Q) {
 
-                       CurrCard->globalFlags |= F_TAG_STARTED;
+   if (!auto_loaded)
+      {
 
-                       if ((currTar_Info->TarStatus & TAR_TAG_Q_MASK)
-                           == TAG_Q_REJECT) {
-                               currSCCB->ControlByte &= ~F_USE_CMD_Q;
+      if (currSCCB->ControlByte & F_USE_CMD_Q)
+         {
 
-                               /* Fix up the start instruction with a jump to
-                                  Non-Tag-CMD handling */
-                               WRW_HARPOON((port + ID_MSG_STRT),
-                                           BRH_OP + ALWAYS + NTCMD);
+         CurrCard->globalFlags |= F_TAG_STARTED;
 
-                               WRW_HARPOON((port + NON_TAG_ID_MSG),
-                                           (MPM_OP + AMSG_OUT +
-                                            currSCCB->Sccb_idmsg));
+         if ((currTar_Info->TarStatus & TAR_TAG_Q_MASK)
+            == TAG_Q_REJECT)
+            {
+            currSCCB->ControlByte &= ~F_USE_CMD_Q;
 
-                               WR_HARPOON(port + hp_autostart_3,
-                                          (SELECT + SELCHK_STRT));
+            /* Fix up the start instruction with a jump to
+               Non-Tag-CMD handling */
+            WRW_HARPOON((port+ID_MSG_STRT),BRH_OP+ALWAYS+NTCMD);
 
-                               /* Setup our STATE so we know what happend when
-                                  the wheels fall off. */
-                               currSCCB->Sccb_scsistat = SELECT_ST;
+            WRW_HARPOON((port+NON_TAG_ID_MSG),
+                            (MPM_OP+AMSG_OUT+currSCCB->Sccb_idmsg));
 
-                               currTar_Info->TarLUNBusy[lun] = 1;
-                       }
+                WR_HARPOON(port+hp_autostart_3, (SELECT+SELCHK_STRT));
+
+                /* Setup our STATE so we know what happend when
+               the wheels fall off. */
+            currSCCB->Sccb_scsistat = SELECT_ST;
+
+                currTar_Info->TarLUNBusy[lun] = 1;
+            }
+
+         else
+            {
+            WRW_HARPOON((port+ID_MSG_STRT), (MPM_OP+AMSG_OUT+currSCCB->Sccb_idmsg));
+
+            WRW_HARPOON((port+ID_MSG_STRT+2), (MPM_OP+AMSG_OUT+
+                        (((UCHAR)(currSCCB->ControlByte & TAG_TYPE_MASK)
+                        >> 6) | (UCHAR)0x20)));
 
-                       else {
-                               WRW_HARPOON((port + ID_MSG_STRT),
-                                           (MPM_OP + AMSG_OUT +
-                                            currSCCB->Sccb_idmsg));
-
-                               WRW_HARPOON((port + ID_MSG_STRT + 2),
-                                           (MPM_OP + AMSG_OUT +
-                                            (((unsigned char)(currSCCB->
-                                                              ControlByte &
-                                                              TAG_TYPE_MASK)
-                                              >> 6) | (unsigned char)0x20)));
-
-                               for (i = 1; i < QUEUE_DEPTH; i++) {
-                                       if (++lastTag >= QUEUE_DEPTH)
-                                               lastTag = 1;
-                                       if (CurrCard->discQ_Tbl[lastTag] ==
-                                           NULL) {
-                                               WRW_HARPOON((port +
-                                                            ID_MSG_STRT + 6),
-                                                           (MPM_OP + AMSG_OUT +
-                                                            lastTag));
+                               for (i = 1; i < QUEUE_DEPTH; i++)
+                               {
+                                       if (++lastTag >= QUEUE_DEPTH) lastTag = 1;
+                                       if (CurrCard->discQ_Tbl[lastTag] == NULL)
+                                       {
+                                               WRW_HARPOON((port+ID_MSG_STRT+6),
+                                                       (MPM_OP+AMSG_OUT+lastTag));
                                                CurrCard->tagQ_Lst = lastTag;
                                                currSCCB->Sccb_tag = lastTag;
-                                               CurrCard->discQ_Tbl[lastTag] =
-                                                   currSCCB;
+                                               CurrCard->discQ_Tbl[lastTag] = currSCCB;
                                                CurrCard->discQCount++;
                                                break;
                                        }
                                }
 
-                               if (i == QUEUE_DEPTH) {
-                                       currTar_Info->TarLUNBusy[lun] = 1;
-                                       FPT_queueSelectFail(CurrCard, p_card);
-                                       SGRAM_ACCESS(port);
-                                       return;
-                               }
 
-                               currSCCB->Sccb_scsistat = SELECT_Q_ST;
+            if ( i == QUEUE_DEPTH )
+               {
+                currTar_Info->TarLUNBusy[lun] = 1;
+               FPT_queueSelectFail(CurrCard,p_card);
+                                  SGRAM_ACCESS(port);
+                return;
+                }
 
-                               WR_HARPOON(port + hp_autostart_3,
-                                          (SELECT + SELCHK_STRT));
-                       }
-               }
+            currSCCB->Sccb_scsistat = SELECT_Q_ST;
 
-               else {
+             WR_HARPOON(port+hp_autostart_3, (SELECT+SELCHK_STRT));
+            }
+         }
 
-                       WRW_HARPOON((port + ID_MSG_STRT),
-                                   BRH_OP + ALWAYS + NTCMD);
+      else
+         {
 
-                       WRW_HARPOON((port + NON_TAG_ID_MSG),
-                                   (MPM_OP + AMSG_OUT + currSCCB->Sccb_idmsg));
+         WRW_HARPOON((port+ID_MSG_STRT),BRH_OP+ALWAYS+NTCMD);
 
-                       currSCCB->Sccb_scsistat = SELECT_ST;
+       WRW_HARPOON((port+NON_TAG_ID_MSG),
+            (MPM_OP+AMSG_OUT+currSCCB->Sccb_idmsg));
 
-                       WR_HARPOON(port + hp_autostart_3,
-                                  (SELECT + SELCHK_STRT));
-               }
+         currSCCB->Sccb_scsistat = SELECT_ST;
 
-               theCCB = (unsigned char *)&currSCCB->Cdb[0];
+         WR_HARPOON(port+hp_autostart_3, (SELECT+SELCHK_STRT));
+         }
 
-               cdb_reg = port + CMD_STRT;
 
-               for (i = 0; i < currSCCB->CdbLength; i++) {
-                       WRW_HARPOON(cdb_reg, (MPM_OP + ACOMMAND + *theCCB));
-                       cdb_reg += 2;
-                       theCCB++;
-               }
+      theCCB = (UCHAR *)&currSCCB->Cdb[0];
 
-               if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
-                       WRW_HARPOON(cdb_reg, (BRH_OP + ALWAYS + NP));
+      cdb_reg = port + CMD_STRT;
 
-       }
-       /* auto_loaded */
-       WRW_HARPOON((port + hp_fiforead), (unsigned short)0x00);
-       WR_HARPOON(port + hp_xferstat, 0x00);
+      for (i=0; i < currSCCB->CdbLength; i++)
+         {
+         WRW_HARPOON(cdb_reg, (MPM_OP + ACOMMAND + *theCCB));
+         cdb_reg +=2;
+         theCCB++;
+         }
+
+      if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
+         WRW_HARPOON(cdb_reg, (BRH_OP+ALWAYS+    NP));
 
-       WRW_HARPOON((port + hp_intstat), (PROG_HLT | TIMEOUT | SEL | BUS_FREE));
+      }  /* auto_loaded */
 
-       WR_HARPOON(port + hp_portctrl_0, (SCSI_PORT));
+   WRW_HARPOON((port+hp_fiforead), (USHORT) 0x00);
+   WR_HARPOON(port+hp_xferstat, 0x00);
 
-       if (!(currSCCB->Sccb_MGRFlags & F_DEV_SELECTED)) {
-               WR_HARPOON(port + hp_scsictrl_0,
-                          (SEL_TAR | ENA_ATN | ENA_RESEL | ENA_SCAM_SEL));
-       } else {
+   WRW_HARPOON((port+hp_intstat), (PROG_HLT | TIMEOUT | SEL | BUS_FREE));
 
-/*      auto_loaded =  (RD_HARPOON(port+hp_autostart_3) & (unsigned char)0x1F);
+   WR_HARPOON(port+hp_portctrl_0,(SCSI_PORT));
+
+
+   if (!(currSCCB->Sccb_MGRFlags & F_DEV_SELECTED))
+      {
+      WR_HARPOON(port+hp_scsictrl_0, (SEL_TAR | ENA_ATN | ENA_RESEL | ENA_SCAM_SEL));
+      }
+   else
+      {
+
+/*      auto_loaded =  (RD_HARPOON(port+hp_autostart_3) & (UCHAR)0x1F);
       auto_loaded |= AUTO_IMMED; */
-               auto_loaded = AUTO_IMMED;
+      auto_loaded = AUTO_IMMED;
 
-               DISABLE_AUTO(port);
+      DISABLE_AUTO(port);
 
-               WR_HARPOON(port + hp_autostart_3, auto_loaded);
-       }
+      WR_HARPOON(port+hp_autostart_3, auto_loaded);
+      }
 
-       SGRAM_ACCESS(port);
+   SGRAM_ACCESS(port);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sres
@@ -2624,276 +3171,303 @@ static void FPT_ssel(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_sres(unsigned long port, unsigned char p_card,
-                    struct sccb_card *pCurrCard)
+static void FPT_sres(ULONG port, UCHAR p_card, PSCCBcard pCurrCard)
 {
 
-       unsigned char our_target, message, lun = 0, tag, msgRetryCount;
+   UCHAR our_target, message, lun = 0, tag, msgRetryCount;
+
 
-       struct sccb_mgr_tar_info *currTar_Info;
-       struct sccb *currSCCB;
+   PSCCBMgr_tar_info currTar_Info;
+       PSCCB currSCCB;
 
-       if (pCurrCard->currentSCCB != NULL) {
-               currTar_Info =
-                   &FPT_sccbMgrTbl[p_card][pCurrCard->currentSCCB->TargID];
+
+
+
+       if(pCurrCard->currentSCCB != NULL)
+       {
+               currTar_Info = &FPT_sccbMgrTbl[p_card][pCurrCard->currentSCCB->TargID];
                DISABLE_AUTO(port);
 
-               WR_HARPOON((port + hp_scsictrl_0), (ENA_RESEL | ENA_SCAM_SEL));
+
+               WR_HARPOON((port+hp_scsictrl_0),(ENA_RESEL | ENA_SCAM_SEL));
+
 
                currSCCB = pCurrCard->currentSCCB;
-               if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
+               if(currSCCB->Sccb_scsistat == SELECT_WN_ST)
+               {
                        currTar_Info->TarStatus &= ~TAR_WIDE_MASK;
                        currSCCB->Sccb_scsistat = BUS_FREE_ST;
                }
-               if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
+               if(currSCCB->Sccb_scsistat == SELECT_SN_ST)
+               {
                        currTar_Info->TarStatus &= ~TAR_SYNC_MASK;
                        currSCCB->Sccb_scsistat = BUS_FREE_ST;
                }
-               if (((pCurrCard->globalFlags & F_CONLUN_IO) &&
-                    ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) !=
-                     TAG_Q_TRYING))) {
-                       currTar_Info->TarLUNBusy[currSCCB->Lun] = 0;
-                       if (currSCCB->Sccb_scsistat != ABORT_ST) {
+               if(((pCurrCard->globalFlags & F_CONLUN_IO) &&
+                       ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+               {
+       currTar_Info->TarLUNBusy[currSCCB->Lun] = 0;
+                       if(currSCCB->Sccb_scsistat != ABORT_ST)
+                       {
                                pCurrCard->discQCount--;
-                               pCurrCard->discQ_Tbl[currTar_Info->
-                                                    LunDiscQ_Idx[currSCCB->
-                                                                 Lun]]
-                                   = NULL;
+                               pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[currSCCB->Lun]] 
+                                                                                                       = NULL;
                        }
-               } else {
-                       currTar_Info->TarLUNBusy[0] = 0;
-                       if (currSCCB->Sccb_tag) {
-                               if (currSCCB->Sccb_scsistat != ABORT_ST) {
-                                       pCurrCard->discQCount--;
-                                       pCurrCard->discQ_Tbl[currSCCB->
-                                                            Sccb_tag] = NULL;
-                               }
-                       } else {
-                               if (currSCCB->Sccb_scsistat != ABORT_ST) {
+               }
+               else
+               {
+             currTar_Info->TarLUNBusy[0] = 0;
+                       if(currSCCB->Sccb_tag)
+                       {
+                               if(currSCCB->Sccb_scsistat != ABORT_ST)
+                               {
+                                       pCurrCard->discQCount--;
+                                       pCurrCard->discQ_Tbl[currSCCB->Sccb_tag] = NULL;
+                               }
+                       }else
+                       {
+                               if(currSCCB->Sccb_scsistat != ABORT_ST)
+                               {
                                        pCurrCard->discQCount--;
-                                       pCurrCard->discQ_Tbl[currTar_Info->
-                                                            LunDiscQ_Idx[0]] =
-                                           NULL;
+                                       pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[0]] = NULL;
                                }
                        }
                }
 
-               FPT_queueSelectFail(&FPT_BL_Card[p_card], p_card);
+      FPT_queueSelectFail(&FPT_BL_Card[p_card],p_card);
        }
 
-       WRW_HARPOON((port + hp_fiforead), (unsigned short)0x00);
+       WRW_HARPOON((port+hp_fiforead), (USHORT) 0x00);
+
 
-       our_target = (unsigned char)(RD_HARPOON(port + hp_select_id) >> 4);
+       our_target = (UCHAR)(RD_HARPOON(port+hp_select_id) >> 4);
        currTar_Info = &FPT_sccbMgrTbl[p_card][our_target];
 
+
        msgRetryCount = 0;
-       do {
+       do
+       {
 
                currTar_Info = &FPT_sccbMgrTbl[p_card][our_target];
                tag = 0;
 
-               while (!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) {
-                       if (!(RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) {
 
-                               WRW_HARPOON((port + hp_intstat), PHASE);
+               while(!(RD_HARPOON(port+hp_scsisig) & SCSI_REQ))
+               {
+                       if (! (RD_HARPOON(port+hp_scsisig) & SCSI_BSY))
+                       {
+
+                               WRW_HARPOON((port+hp_intstat), PHASE);
                                return;
                        }
                }
 
-               WRW_HARPOON((port + hp_intstat), PHASE);
-               if ((RD_HARPOON(port + hp_scsisig) & S_SCSI_PHZ) == S_MSGI_PH) {
-
-                       message = FPT_sfm(port, pCurrCard->currentSCCB);
-                       if (message) {
-
-                               if (message <= (0x80 | LUN_MASK)) {
-                                       lun = message & (unsigned char)LUN_MASK;
-
-                                       if ((currTar_Info->
-                                            TarStatus & TAR_TAG_Q_MASK) ==
-                                           TAG_Q_TRYING) {
-                                               if (currTar_Info->TarTagQ_Cnt !=
-                                                   0) {
-
-                                                       if (!
-                                                           (currTar_Info->
-                                                            TarLUN_CA)) {
-                                                               ACCEPT_MSG(port);       /*Release the ACK for ID msg. */
-
-                                                               message =
-                                                                   FPT_sfm
-                                                                   (port,
-                                                                    pCurrCard->
-                                                                    currentSCCB);
-                                                               if (message) {
-                                                                       ACCEPT_MSG
-                                                                           (port);
+               WRW_HARPOON((port+hp_intstat), PHASE);
+               if ((RD_HARPOON(port+hp_scsisig) & S_SCSI_PHZ) == S_MSGI_PH)
+               {
+
+                       message = FPT_sfm(port,pCurrCard->currentSCCB);
+                       if (message)
+                       {
+
+                               if (message <= (0x80 | LUN_MASK))
+                               {
+                                       lun = message & (UCHAR)LUN_MASK;
+
+                                       if ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) == TAG_Q_TRYING)
+                                       {
+                                               if (currTar_Info->TarTagQ_Cnt != 0)
+                                               {
+
+                                                       if (!(currTar_Info->TarLUN_CA))
+                                                       {
+                                                               ACCEPT_MSG(port);    /*Release the ACK for ID msg. */
+
+
+                                                               message = FPT_sfm(port,pCurrCard->currentSCCB);
+                                                               if (message)
+                                                               {
+                                                                       ACCEPT_MSG(port);
                                                                }
 
                                                                else
-                                                                       message
-                                                                           = 0;
-
-                                                               if (message !=
-                                                                   0) {
-                                                                       tag =
-                                                                           FPT_sfm
-                                                                           (port,
-                                                                            pCurrCard->
-                                                                            currentSCCB);
-
-                                                                       if (!
-                                                                           (tag))
-                                                                               message
-                                                                                   =
-                                                                                   0;
+                                                               message = 0;
+
+                                                               if(message != 0)
+                                                               {
+                                                                       tag = FPT_sfm(port,pCurrCard->currentSCCB);
+
+                                                                       if (!(tag)) 
+                                                                               message = 0;
                                                                }
 
-                                                       }
-                                                       /*C.A. exists! */
-                                               }
-                                               /*End Q cnt != 0 */
-                                       }
-                                       /*End Tag cmds supported! */
-                               }
-                               /*End valid ID message.  */
-                               else {
+                                                       } /*C.A. exists! */
+
+                                               } /*End Q cnt != 0 */
+
+                                       } /*End Tag cmds supported! */
+
+                               } /*End valid ID message.  */
+
+                               else
+                               {
 
                                        ACCEPT_MSG_ATN(port);
                                }
 
-                       }
-                       /* End good id message. */
-                       else {
+                       } /* End good id message. */
+
+                       else
+                       {
 
                                message = 0;
                        }
-               } else {
+               }
+               else
+               {
                        ACCEPT_MSG_ATN(port);
 
-                       while (!
-                              (RDW_HARPOON((port + hp_intstat)) &
-                               (PHASE | RESET))
-                              && !(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)
-                              && (RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) ;
+                  while (!(RDW_HARPOON((port+hp_intstat)) & (PHASE | RESET)) &&
+                         !(RD_HARPOON(port+hp_scsisig) & SCSI_REQ) &&
+                         (RD_HARPOON(port+hp_scsisig) & SCSI_BSY)) ;
 
                        return;
                }
 
-               if (message == 0) {
+               if(message == 0)
+               {
                        msgRetryCount++;
-                       if (msgRetryCount == 1) {
+                       if(msgRetryCount == 1)
+                       {
                                FPT_SendMsg(port, SMPARITY);
-                       } else {
+                       }
+                       else
+                       {
                                FPT_SendMsg(port, SMDEV_RESET);
 
-                               FPT_sssyncv(port, our_target, NARROW_SCSI,
-                                           currTar_Info);
-
-                               if (FPT_sccbMgrTbl[p_card][our_target].
-                                   TarEEValue & EE_SYNC_MASK) {
+                               FPT_sssyncv(port, our_target, NARROW_SCSI,currTar_Info);
 
-                                       FPT_sccbMgrTbl[p_card][our_target].
-                                           TarStatus &= ~TAR_SYNC_MASK;
+                               if (FPT_sccbMgrTbl[p_card][our_target].TarEEValue & EE_SYNC_MASK) 
+                               {
+                       
+                                       FPT_sccbMgrTbl[p_card][our_target].TarStatus &= ~TAR_SYNC_MASK;
 
                                }
 
-                               if (FPT_sccbMgrTbl[p_card][our_target].
-                                   TarEEValue & EE_WIDE_SCSI) {
+                               if (FPT_sccbMgrTbl[p_card][our_target].TarEEValue & EE_WIDE_SCSI) 
+                               {
 
-                                       FPT_sccbMgrTbl[p_card][our_target].
-                                           TarStatus &= ~TAR_WIDE_MASK;
+                                       FPT_sccbMgrTbl[p_card][our_target].TarStatus &= ~TAR_WIDE_MASK;
                                }
 
-                               FPT_queueFlushTargSccb(p_card, our_target,
-                                                      SCCB_COMPLETE);
-                               FPT_SccbMgrTableInitTarget(p_card, our_target);
+
+                               FPT_queueFlushTargSccb(p_card, our_target, SCCB_COMPLETE);
+                               FPT_SccbMgrTableInitTarget(p_card,our_target);
                                return;
                        }
                }
-       } while (message == 0);
+       }while(message == 0);
+
 
-       if (((pCurrCard->globalFlags & F_CONLUN_IO) &&
-            ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))) {
+
+       if(((pCurrCard->globalFlags & F_CONLUN_IO) &&
+               ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+       {
                currTar_Info->TarLUNBusy[lun] = 1;
-               pCurrCard->currentSCCB =
-                   pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[lun]];
-               if (pCurrCard->currentSCCB != NULL) {
+               pCurrCard->currentSCCB = pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[lun]];
+               if(pCurrCard->currentSCCB != NULL)
+               {
                        ACCEPT_MSG(port);
-               } else {
+               }
+               else 
+               {
                        ACCEPT_MSG_ATN(port);
                }
-       } else {
+       }
+       else
+       {
                currTar_Info->TarLUNBusy[0] = 1;
 
-               if (tag) {
-                       if (pCurrCard->discQ_Tbl[tag] != NULL) {
-                               pCurrCard->currentSCCB =
-                                   pCurrCard->discQ_Tbl[tag];
-                               currTar_Info->TarTagQ_Cnt--;
+
+               if (tag)
+               {
+                       if (pCurrCard->discQ_Tbl[tag] != NULL)
+                       {
+                               pCurrCard->currentSCCB = pCurrCard->discQ_Tbl[tag];
+                               currTar_Info->TarTagQ_Cnt--;
                                ACCEPT_MSG(port);
-                       } else {
-                               ACCEPT_MSG_ATN(port);
                        }
-               } else {
-                       pCurrCard->currentSCCB =
-                           pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[0]];
-                       if (pCurrCard->currentSCCB != NULL) {
+                       else
+                       {
+                       ACCEPT_MSG_ATN(port);
+                       }
+               }else
+               {
+                       pCurrCard->currentSCCB = pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[0]];
+                       if(pCurrCard->currentSCCB != NULL)
+                       {
                                ACCEPT_MSG(port);
-                       } else {
+                       }
+                       else 
+                       {
                                ACCEPT_MSG_ATN(port);
                        }
                }
        }
 
-       if (pCurrCard->currentSCCB != NULL) {
-               if (pCurrCard->currentSCCB->Sccb_scsistat == ABORT_ST) {
-                       /* During Abort Tag command, the target could have got re-selected
-                          and completed the command. Check the select Q and remove the CCB
-                          if it is in the Select Q */
+       if(pCurrCard->currentSCCB != NULL)
+       {
+               if(pCurrCard->currentSCCB->Sccb_scsistat == ABORT_ST)
+               {
+               /* During Abort Tag command, the target could have got re-selected
+                       and completed the command. Check the select Q and remove the CCB
+                       if it is in the Select Q */
                        FPT_queueFindSccb(pCurrCard->currentSCCB, p_card);
                }
        }
 
-       while (!(RDW_HARPOON((port + hp_intstat)) & (PHASE | RESET)) &&
-              !(RD_HARPOON(port + hp_scsisig) & SCSI_REQ) &&
-              (RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) ;
+
+   while (!(RDW_HARPOON((port+hp_intstat)) & (PHASE | RESET)) &&
+         !(RD_HARPOON(port+hp_scsisig) & SCSI_REQ) &&
+         (RD_HARPOON(port+hp_scsisig) & SCSI_BSY)) ;
 }
 
-static void FPT_SendMsg(unsigned long port, unsigned char message)
+static void FPT_SendMsg(ULONG port, UCHAR message)
 {
-       while (!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) {
-               if (!(RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) {
+       while(!(RD_HARPOON(port+hp_scsisig) & SCSI_REQ))
+       {
+               if (! (RD_HARPOON(port+hp_scsisig) & SCSI_BSY))
+               {
 
-                       WRW_HARPOON((port + hp_intstat), PHASE);
+                       WRW_HARPOON((port+hp_intstat), PHASE);
                        return;
                }
        }
 
-       WRW_HARPOON((port + hp_intstat), PHASE);
-       if ((RD_HARPOON(port + hp_scsisig) & S_SCSI_PHZ) == S_MSGO_PH) {
-               WRW_HARPOON((port + hp_intstat),
-                           (BUS_FREE | PHASE | XFER_CNT_0));
+       WRW_HARPOON((port+hp_intstat), PHASE);
+       if ((RD_HARPOON(port+hp_scsisig) & S_SCSI_PHZ) == S_MSGO_PH)
+       {
+               WRW_HARPOON((port+hp_intstat), (BUS_FREE | PHASE | XFER_CNT_0));
+
 
-               WR_HARPOON(port + hp_portctrl_0, SCSI_BUS_EN);
+               WR_HARPOON(port+hp_portctrl_0, SCSI_BUS_EN);
 
-               WR_HARPOON(port + hp_scsidata_0, message);
+               WR_HARPOON(port+hp_scsidata_0,message);
 
-               WR_HARPOON(port + hp_scsisig, (SCSI_ACK + S_ILL_PH));
+               WR_HARPOON(port+hp_scsisig, (SCSI_ACK + S_ILL_PH));
 
                ACCEPT_MSG(port);
 
-               WR_HARPOON(port + hp_portctrl_0, 0x00);
+               WR_HARPOON(port+hp_portctrl_0, 0x00);
 
                if ((message == SMABORT) || (message == SMDEV_RESET) ||
-                   (message == SMABORT_TAG)) {
-                       while (!
-                              (RDW_HARPOON((port + hp_intstat)) &
-                               (BUS_FREE | PHASE))) {
-                       }
+                               (message == SMABORT_TAG) )
+               {
+                       while(!(RDW_HARPOON((port+hp_intstat)) & (BUS_FREE | PHASE))) {}
 
-                       if (RDW_HARPOON((port + hp_intstat)) & BUS_FREE) {
-                               WRW_HARPOON((port + hp_intstat), BUS_FREE);
+                       if (RDW_HARPOON((port+hp_intstat)) & BUS_FREE)
+                       {
+                       WRW_HARPOON((port+hp_intstat), BUS_FREE);
                        }
                }
        }
@@ -2907,180 +3481,178 @@ static void FPT_SendMsg(unsigned long port, unsigned char message)
  *              target device.
  *
  *---------------------------------------------------------------------*/
-static void FPT_sdecm(unsigned char message, unsigned long port,
-                     unsigned char p_card)
+static void FPT_sdecm(UCHAR message, ULONG port, UCHAR p_card)
 {
-       struct sccb *currSCCB;
-       struct sccb_card *CurrCard;
-       struct sccb_mgr_tar_info *currTar_Info;
+       PSCCB currSCCB;
+       PSCCBcard CurrCard;
+       PSCCBMgr_tar_info currTar_Info;
 
        CurrCard = &FPT_BL_Card[p_card];
        currSCCB = CurrCard->currentSCCB;
 
        currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
 
-       if (message == SMREST_DATA_PTR) {
-               if (!(currSCCB->Sccb_XferState & F_NO_DATA_YET)) {
+       if (message == SMREST_DATA_PTR)
+       {
+               if (!(currSCCB->Sccb_XferState & F_NO_DATA_YET))
+               {
                        currSCCB->Sccb_ATC = currSCCB->Sccb_savedATC;
 
                        FPT_hostDataXferRestart(currSCCB);
                }
 
                ACCEPT_MSG(port);
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
        }
 
-       else if (message == SMCMD_COMP) {
+       else if (message == SMCMD_COMP)
+       {
+
 
-               if (currSCCB->Sccb_scsistat == SELECT_Q_ST) {
-                       currTar_Info->TarStatus &=
-                           ~(unsigned char)TAR_TAG_Q_MASK;
-                       currTar_Info->TarStatus |= (unsigned char)TAG_Q_REJECT;
+               if (currSCCB->Sccb_scsistat == SELECT_Q_ST)
+               {
+                       currTar_Info->TarStatus &= ~(UCHAR)TAR_TAG_Q_MASK;
+                       currTar_Info->TarStatus |= (UCHAR)TAG_Q_REJECT;
                }
 
                ACCEPT_MSG(port);
 
        }
 
-       else if ((message == SMNO_OP) || (message >= SMIDENT)
-                || (message == SMINIT_RECOVERY) || (message == SMREL_RECOVERY)) {
+       else if ((message == SMNO_OP) || (message >= SMIDENT) 
+                       || (message == SMINIT_RECOVERY) || (message == SMREL_RECOVERY))
+       {
 
                ACCEPT_MSG(port);
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
        }
 
-       else if (message == SMREJECT) {
+       else if (message == SMREJECT)
+       {
 
                if ((currSCCB->Sccb_scsistat == SELECT_SN_ST) ||
-                   (currSCCB->Sccb_scsistat == SELECT_WN_ST) ||
-                   ((currTar_Info->TarStatus & TAR_SYNC_MASK) == SYNC_TRYING)
-                   || ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) ==
-                       TAG_Q_TRYING))
+                               (currSCCB->Sccb_scsistat == SELECT_WN_ST) ||
+                               ((currTar_Info->TarStatus & TAR_SYNC_MASK) == SYNC_TRYING ) ||
+                               ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) == TAG_Q_TRYING ) )
+
                {
-                       WRW_HARPOON((port + hp_intstat), BUS_FREE);
+                       WRW_HARPOON((port+hp_intstat), BUS_FREE);
 
                        ACCEPT_MSG(port);
 
-                       while ((!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) &&
-                              (!(RDW_HARPOON((port + hp_intstat)) & BUS_FREE)))
-                       {
-                       }
 
-                       if (currSCCB->Lun == 0x00) {
-                               if ((currSCCB->Sccb_scsistat == SELECT_SN_ST)) {
+                       while ((!(RD_HARPOON(port+hp_scsisig) & SCSI_REQ)) &&
+                               (!(RDW_HARPOON((port+hp_intstat)) & BUS_FREE))) {}
+
+                       if(currSCCB->Lun == 0x00)
+                       {
+                               if ((currSCCB->Sccb_scsistat == SELECT_SN_ST))
+                               {
 
-                                       currTar_Info->TarStatus |=
-                                           (unsigned char)SYNC_SUPPORTED;
+                                       currTar_Info->TarStatus |= (UCHAR)SYNC_SUPPORTED;
 
-                                       currTar_Info->TarEEValue &=
-                                           ~EE_SYNC_MASK;
+                                       currTar_Info->TarEEValue &= ~EE_SYNC_MASK;
                                }
 
-                               else if ((currSCCB->Sccb_scsistat ==
-                                         SELECT_WN_ST)) {
+                               else if ((currSCCB->Sccb_scsistat == SELECT_WN_ST))
+                               {
+
 
-                                       currTar_Info->TarStatus =
-                                           (currTar_Info->
-                                            TarStatus & ~WIDE_ENABLED) |
-                                           WIDE_NEGOCIATED;
+                                       currTar_Info->TarStatus = (currTar_Info->TarStatus &
+                                                                                                       ~WIDE_ENABLED) | WIDE_NEGOCIATED;
 
-                                       currTar_Info->TarEEValue &=
-                                           ~EE_WIDE_SCSI;
+                                       currTar_Info->TarEEValue &= ~EE_WIDE_SCSI;
 
                                }
 
-                               else if ((currTar_Info->
-                                         TarStatus & TAR_TAG_Q_MASK) ==
-                                        TAG_Q_TRYING) {
-                                       currTar_Info->TarStatus =
-                                           (currTar_Info->
-                                            TarStatus & ~(unsigned char)
-                                            TAR_TAG_Q_MASK) | TAG_Q_REJECT;
+                               else if ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) == TAG_Q_TRYING )
+                               {
+                                       currTar_Info->TarStatus = (currTar_Info->TarStatus &
+                                                                                                       ~(UCHAR)TAR_TAG_Q_MASK) | TAG_Q_REJECT;
+
 
                                        currSCCB->ControlByte &= ~F_USE_CMD_Q;
                                        CurrCard->discQCount--;
-                                       CurrCard->discQ_Tbl[currSCCB->
-                                                           Sccb_tag] = NULL;
+                                       CurrCard->discQ_Tbl[currSCCB->Sccb_tag] = NULL;
                                        currSCCB->Sccb_tag = 0x00;
 
                                }
                        }
 
-                       if (RDW_HARPOON((port + hp_intstat)) & BUS_FREE) {
+                       if (RDW_HARPOON((port+hp_intstat)) & BUS_FREE)
+                       {
+
 
-                               if (currSCCB->Lun == 0x00) {
-                                       WRW_HARPOON((port + hp_intstat),
-                                                   BUS_FREE);
+                               if(currSCCB->Lun == 0x00)
+                               {
+                                       WRW_HARPOON((port+hp_intstat), BUS_FREE);
                                        CurrCard->globalFlags |= F_NEW_SCCB_CMD;
                                }
                        }
 
-                       else {
+                       else 
+                       {
 
-                               if ((CurrCard->globalFlags & F_CONLUN_IO) &&
-                                   ((currTar_Info->
-                                     TarStatus & TAR_TAG_Q_MASK) !=
-                                    TAG_Q_TRYING))
-                                       currTar_Info->TarLUNBusy[currSCCB->
-                                                                Lun] = 1;
+                               if((CurrCard->globalFlags & F_CONLUN_IO) &&
+                                       ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+                                       currTar_Info->TarLUNBusy[currSCCB->Lun] = 1;
                                else
                                        currTar_Info->TarLUNBusy[0] = 1;
 
-                               currSCCB->ControlByte &=
-                                   ~(unsigned char)F_USE_CMD_Q;
 
-                               WR_HARPOON(port + hp_autostart_1,
-                                          (AUTO_IMMED + DISCONNECT_START));
+                               currSCCB->ControlByte &= ~(UCHAR)F_USE_CMD_Q;
+
+                               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
 
                        }
                }
 
-               else {
+               else
+               {
                        ACCEPT_MSG(port);
 
-                       while ((!(RD_HARPOON(port + hp_scsisig) & SCSI_REQ)) &&
-                              (!(RDW_HARPOON((port + hp_intstat)) & BUS_FREE)))
+                       while ((!(RD_HARPOON(port+hp_scsisig) & SCSI_REQ)) &&
+                               (!(RDW_HARPOON((port+hp_intstat)) & BUS_FREE))) {}
+       
+                       if (!(RDW_HARPOON((port+hp_intstat)) & BUS_FREE))
                        {
-                       }
-
-                       if (!(RDW_HARPOON((port + hp_intstat)) & BUS_FREE)) {
-                               WR_HARPOON(port + hp_autostart_1,
-                                          (AUTO_IMMED + DISCONNECT_START));
+                               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                        }
                }
        }
 
-       else if (message == SMEXT) {
+       else if (message == SMEXT)
+       {
 
                ACCEPT_MSG(port);
-               FPT_shandem(port, p_card, currSCCB);
+               FPT_shandem(port,p_card,currSCCB);
        }
 
-       else if (message == SMIGNORWR) {
+       else if (message == SMIGNORWR)
+       {
 
-               ACCEPT_MSG(port);       /* ACK the RESIDUE MSG */
+               ACCEPT_MSG(port);          /* ACK the RESIDUE MSG */
 
-               message = FPT_sfm(port, currSCCB);
+               message = FPT_sfm(port,currSCCB);
 
-               if (currSCCB->Sccb_scsimsg != SMPARITY)
+               if(currSCCB->Sccb_scsimsg != SMPARITY)
                        ACCEPT_MSG(port);
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
        }
 
-       else {
+
+       else
+       {
 
                currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
                currSCCB->Sccb_scsimsg = SMREJECT;
 
                ACCEPT_MSG_ATN(port);
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
        }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_shandem
@@ -3088,65 +3660,76 @@ static void FPT_sdecm(unsigned char message, unsigned long port,
  * Description: Decide what to do with the extended message.
  *
  *---------------------------------------------------------------------*/
-static void FPT_shandem(unsigned long port, unsigned char p_card,
-                       struct sccb *pCurrSCCB)
+static void FPT_shandem(ULONG port, UCHAR p_card, PSCCB pCurrSCCB)
 {
-       unsigned char length, message;
+       UCHAR length,message;
 
-       length = FPT_sfm(port, pCurrSCCB);
-       if (length) {
+       length = FPT_sfm(port,pCurrSCCB);
+       if (length) 
+       {
 
                ACCEPT_MSG(port);
-               message = FPT_sfm(port, pCurrSCCB);
-               if (message) {
+               message = FPT_sfm(port,pCurrSCCB);
+               if (message) 
+               {
 
-                       if (message == SMSYNC) {
+                       if (message == SMSYNC) 
+                       {
 
-                               if (length == 0x03) {
+                               if (length == 0x03)
+                               {
 
                                        ACCEPT_MSG(port);
-                                       FPT_stsyncn(port, p_card);
-                               } else {
+                                       FPT_stsyncn(port,p_card);
+                               }
+                               else 
+                               {
 
                                        pCurrSCCB->Sccb_scsimsg = SMREJECT;
                                        ACCEPT_MSG_ATN(port);
                                }
-                       } else if (message == SMWDTR) {
+                       }
+                       else if (message == SMWDTR) 
+                       {
 
-                               if (length == 0x02) {
+                               if (length == 0x02)
+                               {
 
                                        ACCEPT_MSG(port);
-                                       FPT_stwidn(port, p_card);
-                               } else {
+                                       FPT_stwidn(port,p_card);
+                               }
+                               else 
+                               {
 
                                        pCurrSCCB->Sccb_scsimsg = SMREJECT;
                                        ACCEPT_MSG_ATN(port);
 
-                                       WR_HARPOON(port + hp_autostart_1,
-                                                  (AUTO_IMMED +
-                                                   DISCONNECT_START));
+                                       WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                                }
-                       } else {
+                       }
+                       else 
+                       {
 
                                pCurrSCCB->Sccb_scsimsg = SMREJECT;
                                ACCEPT_MSG_ATN(port);
 
-                               WR_HARPOON(port + hp_autostart_1,
-                                          (AUTO_IMMED + DISCONNECT_START));
+                               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                        }
-               } else {
-                       if (pCurrSCCB->Sccb_scsimsg != SMPARITY)
+               }
+               else
+               {
+                       if(pCurrSCCB->Sccb_scsimsg != SMPARITY)
                                ACCEPT_MSG(port);
-                       WR_HARPOON(port + hp_autostart_1,
-                                  (AUTO_IMMED + DISCONNECT_START));
+                       WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                }
-       } else {
-               if (pCurrSCCB->Sccb_scsimsg == SMPARITY)
-                       WR_HARPOON(port + hp_autostart_1,
-                                  (AUTO_IMMED + DISCONNECT_START));
+       }else
+       {
+                       if(pCurrSCCB->Sccb_scsimsg == SMPARITY)
+                               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
        }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sisyncn
@@ -3156,79 +3739,73 @@ static void FPT_shandem(unsigned long port, unsigned char p_card,
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_sisyncn(unsigned long port, unsigned char p_card,
-                                unsigned char syncFlag)
+static UCHAR FPT_sisyncn(ULONG port, UCHAR p_card, UCHAR syncFlag)
 {
-       struct sccb *currSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
+   PSCCB currSCCB;
+   PSCCBMgr_tar_info currTar_Info;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
-       currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
 
-       if (!((currTar_Info->TarStatus & TAR_SYNC_MASK) == SYNC_TRYING)) {
+   if (!((currTar_Info->TarStatus & TAR_SYNC_MASK) == SYNC_TRYING)) {
 
-               WRW_HARPOON((port + ID_MSG_STRT),
-                           (MPM_OP + AMSG_OUT +
-                            (currSCCB->
-                             Sccb_idmsg & ~(unsigned char)DISC_PRIV)));
 
-               WRW_HARPOON((port + ID_MSG_STRT + 2), BRH_OP + ALWAYS + CMDPZ);
+      WRW_HARPOON((port+ID_MSG_STRT),
+                 (MPM_OP+AMSG_OUT+(currSCCB->Sccb_idmsg & ~(UCHAR)DISC_PRIV)));
 
-               WRW_HARPOON((port + SYNC_MSGS + 0),
-                           (MPM_OP + AMSG_OUT + SMEXT));
-               WRW_HARPOON((port + SYNC_MSGS + 2), (MPM_OP + AMSG_OUT + 0x03));
-               WRW_HARPOON((port + SYNC_MSGS + 4),
-                           (MPM_OP + AMSG_OUT + SMSYNC));
+      WRW_HARPOON((port+ID_MSG_STRT+2),BRH_OP+ALWAYS+CMDPZ);
 
-               if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_20MB)
+      WRW_HARPOON((port+SYNC_MSGS+0), (MPM_OP+AMSG_OUT+SMEXT ));
+      WRW_HARPOON((port+SYNC_MSGS+2), (MPM_OP+AMSG_OUT+0x03  ));
+      WRW_HARPOON((port+SYNC_MSGS+4), (MPM_OP+AMSG_OUT+SMSYNC));
 
-                       WRW_HARPOON((port + SYNC_MSGS + 6),
-                                   (MPM_OP + AMSG_OUT + 12));
 
-               else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) ==
-                        EE_SYNC_10MB)
+      if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_20MB)
 
-                       WRW_HARPOON((port + SYNC_MSGS + 6),
-                                   (MPM_OP + AMSG_OUT + 25));
+        WRW_HARPOON((port+SYNC_MSGS+6), (MPM_OP+AMSG_OUT+ 12));
 
-               else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) ==
-                        EE_SYNC_5MB)
+      else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_10MB)
 
-                       WRW_HARPOON((port + SYNC_MSGS + 6),
-                                   (MPM_OP + AMSG_OUT + 50));
+        WRW_HARPOON((port+SYNC_MSGS+6), (MPM_OP+AMSG_OUT+ 25));
 
+      else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_5MB)
+
+        WRW_HARPOON((port+SYNC_MSGS+6), (MPM_OP+AMSG_OUT+ 50));
+
+      else
+        WRW_HARPOON((port+SYNC_MSGS+6), (MPM_OP+AMSG_OUT+ 00));
+
+
+      WRW_HARPOON((port+SYNC_MSGS+8), (RAT_OP                ));
+      WRW_HARPOON((port+SYNC_MSGS+10),(MPM_OP+AMSG_OUT+DEFAULT_OFFSET));
+      WRW_HARPOON((port+SYNC_MSGS+12),(BRH_OP+ALWAYS+NP      ));
+
+
+               if(syncFlag == 0)
+               {
+                  WR_HARPOON(port+hp_autostart_3, (SELECT+SELCHK_STRT));
+             currTar_Info->TarStatus = ((currTar_Info->TarStatus &
+             ~(UCHAR)TAR_SYNC_MASK) | (UCHAR)SYNC_TRYING);
+               }
                else
-                       WRW_HARPOON((port + SYNC_MSGS + 6),
-                                   (MPM_OP + AMSG_OUT + 00));
-
-               WRW_HARPOON((port + SYNC_MSGS + 8), (RAT_OP));
-               WRW_HARPOON((port + SYNC_MSGS + 10),
-                           (MPM_OP + AMSG_OUT + DEFAULT_OFFSET));
-               WRW_HARPOON((port + SYNC_MSGS + 12), (BRH_OP + ALWAYS + NP));
-
-               if (syncFlag == 0) {
-                       WR_HARPOON(port + hp_autostart_3,
-                                  (SELECT + SELCHK_STRT));
-                       currTar_Info->TarStatus =
-                           ((currTar_Info->
-                             TarStatus & ~(unsigned char)TAR_SYNC_MASK) |
-                            (unsigned char)SYNC_TRYING);
-               } else {
-                       WR_HARPOON(port + hp_autostart_3,
-                                  (AUTO_IMMED + CMD_ONLY_STRT));
+               {
+                  WR_HARPOON(port+hp_autostart_3, (AUTO_IMMED + CMD_ONLY_STRT));
                }
 
-               return 1;
-       }
 
-       else {
+      return(1);
+      }
 
-               currTar_Info->TarStatus |= (unsigned char)SYNC_SUPPORTED;
-               currTar_Info->TarEEValue &= ~EE_SYNC_MASK;
-               return 0;
-       }
+   else {
+
+      currTar_Info->TarStatus |=        (UCHAR)SYNC_SUPPORTED;
+      currTar_Info->TarEEValue &= ~EE_SYNC_MASK;
+      return(0);
+      }
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_stsyncn
@@ -3237,128 +3814,131 @@ static unsigned char FPT_sisyncn(unsigned long port, unsigned char p_card,
  *              necessary.
  *
  *---------------------------------------------------------------------*/
-static void FPT_stsyncn(unsigned long port, unsigned char p_card)
+static void FPT_stsyncn(ULONG port, UCHAR p_card)
 {
-       unsigned char sync_msg, offset, sync_reg, our_sync_msg;
-       struct sccb *currSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
+   UCHAR sync_msg,offset,sync_reg,our_sync_msg;
+   PSCCB currSCCB;
+   PSCCBMgr_tar_info currTar_Info;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
-       currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
 
-       sync_msg = FPT_sfm(port, currSCCB);
+   sync_msg = FPT_sfm(port,currSCCB);
 
-       if ((sync_msg == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY)) {
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
+       if((sync_msg == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY))
+       {
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                return;
        }
 
-       ACCEPT_MSG(port);
+   ACCEPT_MSG(port);
 
-       offset = FPT_sfm(port, currSCCB);
 
-       if ((offset == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY)) {
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
+   offset = FPT_sfm(port,currSCCB);
+
+       if((offset == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY))
+       {
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                return;
        }
 
-       if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_20MB)
+   if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_20MB)
 
-               our_sync_msg = 12;      /* Setup our Message to 20mb/s */
+      our_sync_msg = 12;              /* Setup our Message to 20mb/s */
 
-       else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_10MB)
+   else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_10MB)
 
-               our_sync_msg = 25;      /* Setup our Message to 10mb/s */
+      our_sync_msg = 25;              /* Setup our Message to 10mb/s */
 
-       else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_5MB)
+   else if ((currTar_Info->TarEEValue & EE_SYNC_MASK) == EE_SYNC_5MB)
 
-               our_sync_msg = 50;      /* Setup our Message to 5mb/s */
-       else
+      our_sync_msg = 50;              /* Setup our Message to 5mb/s */
+   else
 
-               our_sync_msg = 0;       /* Message = Async */
+      our_sync_msg = 0;               /* Message = Async */
 
-       if (sync_msg < our_sync_msg) {
-               sync_msg = our_sync_msg;        /*if faster, then set to max. */
-       }
+   if (sync_msg < our_sync_msg) {
+      sync_msg = our_sync_msg;    /*if faster, then set to max. */
+      }
 
-       if (offset == ASYNC)
-               sync_msg = ASYNC;
+   if (offset == ASYNC)
+      sync_msg = ASYNC;
 
-       if (offset > MAX_OFFSET)
-               offset = MAX_OFFSET;
+   if (offset > MAX_OFFSET)
+      offset = MAX_OFFSET;
 
-       sync_reg = 0x00;
+   sync_reg = 0x00;
 
-       if (sync_msg > 12)
+   if (sync_msg > 12)
 
-               sync_reg = 0x20;        /* Use 10MB/s */
+      sync_reg = 0x20;        /* Use 10MB/s */
 
-       if (sync_msg > 25)
+   if (sync_msg > 25)
 
-               sync_reg = 0x40;        /* Use 6.6MB/s */
+      sync_reg = 0x40;        /* Use 6.6MB/s */
 
-       if (sync_msg > 38)
+   if (sync_msg > 38)
 
-               sync_reg = 0x60;        /* Use 5MB/s */
+      sync_reg = 0x60;        /* Use 5MB/s */
 
-       if (sync_msg > 50)
+   if (sync_msg > 50)
 
-               sync_reg = 0x80;        /* Use 4MB/s */
+      sync_reg = 0x80;        /* Use 4MB/s */
 
-       if (sync_msg > 62)
+   if (sync_msg > 62)
 
-               sync_reg = 0xA0;        /* Use 3.33MB/s */
+      sync_reg = 0xA0;        /* Use 3.33MB/s */
 
-       if (sync_msg > 75)
+   if (sync_msg > 75)
 
-               sync_reg = 0xC0;        /* Use 2.85MB/s */
+      sync_reg = 0xC0;        /* Use 2.85MB/s */
 
-       if (sync_msg > 87)
+   if (sync_msg > 87)
 
-               sync_reg = 0xE0;        /* Use 2.5MB/s */
+      sync_reg = 0xE0;        /* Use 2.5MB/s */
 
-       if (sync_msg > 100) {
+   if (sync_msg > 100) {
 
-               sync_reg = 0x00;        /* Use ASYNC */
-               offset = 0x00;
-       }
+      sync_reg = 0x00;        /* Use ASYNC */
+      offset = 0x00;
+      }
 
-       if (currTar_Info->TarStatus & WIDE_ENABLED)
 
-               sync_reg |= offset;
+   if (currTar_Info->TarStatus & WIDE_ENABLED)
 
-       else
+      sync_reg |= offset;
 
-               sync_reg |= (offset | NARROW_SCSI);
+   else
 
-       FPT_sssyncv(port, currSCCB->TargID, sync_reg, currTar_Info);
+      sync_reg |= (offset | NARROW_SCSI);
 
-       if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
+   FPT_sssyncv(port,currSCCB->TargID,sync_reg,currTar_Info);
 
-               ACCEPT_MSG(port);
 
-               currTar_Info->TarStatus = ((currTar_Info->TarStatus &
-                                           ~(unsigned char)TAR_SYNC_MASK) |
-                                          (unsigned char)SYNC_SUPPORTED);
+   if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
 
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
-       }
 
-       else {
+      ACCEPT_MSG(port);
 
-               ACCEPT_MSG_ATN(port);
+      currTar_Info->TarStatus = ((currTar_Info->TarStatus &
+         ~(UCHAR)TAR_SYNC_MASK) | (UCHAR)SYNC_SUPPORTED);
+
+      WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
+      }
 
-               FPT_sisyncr(port, sync_msg, offset);
+   else {
 
-               currTar_Info->TarStatus = ((currTar_Info->TarStatus &
-                                           ~(unsigned char)TAR_SYNC_MASK) |
-                                          (unsigned char)SYNC_SUPPORTED);
-       }
+
+      ACCEPT_MSG_ATN(port);
+
+      FPT_sisyncr(port,sync_msg,offset);
+
+      currTar_Info->TarStatus = ((currTar_Info->TarStatus &
+         ~(UCHAR)TAR_SYNC_MASK) | (UCHAR)SYNC_SUPPORTED);
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sisyncr
@@ -3366,28 +3946,28 @@ static void FPT_stsyncn(unsigned long port, unsigned char p_card)
  * Description: Answer the targets sync message.
  *
  *---------------------------------------------------------------------*/
-static void FPT_sisyncr(unsigned long port, unsigned char sync_pulse,
-                       unsigned char offset)
+static void FPT_sisyncr(ULONG port,UCHAR sync_pulse, UCHAR offset)
 {
-       ARAM_ACCESS(port);
-       WRW_HARPOON((port + SYNC_MSGS + 0), (MPM_OP + AMSG_OUT + SMEXT));
-       WRW_HARPOON((port + SYNC_MSGS + 2), (MPM_OP + AMSG_OUT + 0x03));
-       WRW_HARPOON((port + SYNC_MSGS + 4), (MPM_OP + AMSG_OUT + SMSYNC));
-       WRW_HARPOON((port + SYNC_MSGS + 6), (MPM_OP + AMSG_OUT + sync_pulse));
-       WRW_HARPOON((port + SYNC_MSGS + 8), (RAT_OP));
-       WRW_HARPOON((port + SYNC_MSGS + 10), (MPM_OP + AMSG_OUT + offset));
-       WRW_HARPOON((port + SYNC_MSGS + 12), (BRH_OP + ALWAYS + NP));
-       SGRAM_ACCESS(port);
-
-       WR_HARPOON(port + hp_portctrl_0, SCSI_PORT);
-       WRW_HARPOON((port + hp_intstat), CLR_ALL_INT_1);
-
-       WR_HARPOON(port + hp_autostart_3, (AUTO_IMMED + CMD_ONLY_STRT));
-
-       while (!(RDW_HARPOON((port + hp_intstat)) & (BUS_FREE | AUTO_INT))) {
-       }
+   ARAM_ACCESS(port);
+   WRW_HARPOON((port+SYNC_MSGS+0), (MPM_OP+AMSG_OUT+SMEXT ));
+   WRW_HARPOON((port+SYNC_MSGS+2), (MPM_OP+AMSG_OUT+0x03  ));
+   WRW_HARPOON((port+SYNC_MSGS+4), (MPM_OP+AMSG_OUT+SMSYNC));
+   WRW_HARPOON((port+SYNC_MSGS+6), (MPM_OP+AMSG_OUT+sync_pulse));
+   WRW_HARPOON((port+SYNC_MSGS+8), (RAT_OP                ));
+   WRW_HARPOON((port+SYNC_MSGS+10),(MPM_OP+AMSG_OUT+offset));
+   WRW_HARPOON((port+SYNC_MSGS+12),(BRH_OP+ALWAYS+NP      ));
+   SGRAM_ACCESS(port);
+
+   WR_HARPOON(port+hp_portctrl_0, SCSI_PORT);
+   WRW_HARPOON((port+hp_intstat), CLR_ALL_INT_1);
+
+   WR_HARPOON(port+hp_autostart_3, (AUTO_IMMED+CMD_ONLY_STRT));
+
+   while (!(RDW_HARPOON((port+hp_intstat)) & (BUS_FREE | AUTO_INT))) {}
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_siwidn
@@ -3397,53 +3977,50 @@ static void FPT_sisyncr(unsigned long port, unsigned char sync_pulse,
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_siwidn(unsigned long port, unsigned char p_card)
+static UCHAR FPT_siwidn(ULONG port, UCHAR p_card)
 {
-       struct sccb *currSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
+   PSCCB currSCCB;
+   PSCCBMgr_tar_info currTar_Info;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
-       currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
 
-       if (!((currTar_Info->TarStatus & TAR_WIDE_MASK) == WIDE_NEGOCIATED)) {
+   if (!((currTar_Info->TarStatus & TAR_WIDE_MASK) == WIDE_NEGOCIATED)) {
 
-               WRW_HARPOON((port + ID_MSG_STRT),
-                           (MPM_OP + AMSG_OUT +
-                            (currSCCB->
-                             Sccb_idmsg & ~(unsigned char)DISC_PRIV)));
 
-               WRW_HARPOON((port + ID_MSG_STRT + 2), BRH_OP + ALWAYS + CMDPZ);
+      WRW_HARPOON((port+ID_MSG_STRT),
+                     (MPM_OP+AMSG_OUT+(currSCCB->Sccb_idmsg & ~(UCHAR)DISC_PRIV)));
 
-               WRW_HARPOON((port + SYNC_MSGS + 0),
-                           (MPM_OP + AMSG_OUT + SMEXT));
-               WRW_HARPOON((port + SYNC_MSGS + 2), (MPM_OP + AMSG_OUT + 0x02));
-               WRW_HARPOON((port + SYNC_MSGS + 4),
-                           (MPM_OP + AMSG_OUT + SMWDTR));
-               WRW_HARPOON((port + SYNC_MSGS + 6), (RAT_OP));
-               WRW_HARPOON((port + SYNC_MSGS + 8),
-                           (MPM_OP + AMSG_OUT + SM16BIT));
-               WRW_HARPOON((port + SYNC_MSGS + 10), (BRH_OP + ALWAYS + NP));
+      WRW_HARPOON((port+ID_MSG_STRT+2),BRH_OP+ALWAYS+CMDPZ);
 
-               WR_HARPOON(port + hp_autostart_3, (SELECT + SELCHK_STRT));
+      WRW_HARPOON((port+SYNC_MSGS+0), (MPM_OP+AMSG_OUT+SMEXT ));
+      WRW_HARPOON((port+SYNC_MSGS+2), (MPM_OP+AMSG_OUT+0x02  ));
+      WRW_HARPOON((port+SYNC_MSGS+4), (MPM_OP+AMSG_OUT+SMWDTR));
+      WRW_HARPOON((port+SYNC_MSGS+6), (RAT_OP                ));
+      WRW_HARPOON((port+SYNC_MSGS+8), (MPM_OP+AMSG_OUT+ SM16BIT));
+      WRW_HARPOON((port+SYNC_MSGS+10),(BRH_OP+ALWAYS+NP      ));
 
-               currTar_Info->TarStatus = ((currTar_Info->TarStatus &
-                                           ~(unsigned char)TAR_WIDE_MASK) |
-                                          (unsigned char)WIDE_ENABLED);
+      WR_HARPOON(port+hp_autostart_3, (SELECT+SELCHK_STRT));
 
-               return 1;
-       }
 
-       else {
+      currTar_Info->TarStatus = ((currTar_Info->TarStatus &
+         ~(UCHAR)TAR_WIDE_MASK) | (UCHAR)WIDE_ENABLED);
+
+      return(1);
+      }
 
-               currTar_Info->TarStatus = ((currTar_Info->TarStatus &
-                                           ~(unsigned char)TAR_WIDE_MASK) |
-                                          WIDE_NEGOCIATED);
+   else {
 
-               currTar_Info->TarEEValue &= ~EE_WIDE_SCSI;
-               return 0;
-       }
+      currTar_Info->TarStatus = ((currTar_Info->TarStatus &
+               ~(UCHAR)TAR_WIDE_MASK) | WIDE_NEGOCIATED);
+
+      currTar_Info->TarEEValue &= ~EE_WIDE_SCSI;
+      return(0);
+      }
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_stwidn
@@ -3452,70 +4029,79 @@ static unsigned char FPT_siwidn(unsigned long port, unsigned char p_card)
  *              necessary.
  *
  *---------------------------------------------------------------------*/
-static void FPT_stwidn(unsigned long port, unsigned char p_card)
+static void FPT_stwidn(ULONG port, UCHAR p_card)
 {
-       unsigned char width;
-       struct sccb *currSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
+   UCHAR width;
+   PSCCB currSCCB;
+   PSCCBMgr_tar_info currTar_Info;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
-       currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currTar_Info = &FPT_sccbMgrTbl[p_card][currSCCB->TargID];
 
-       width = FPT_sfm(port, currSCCB);
+   width = FPT_sfm(port,currSCCB);
 
-       if ((width == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY)) {
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + DISCONNECT_START));
+       if((width == 0x00) && (currSCCB->Sccb_scsimsg == SMPARITY))
+       {
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                return;
        }
 
-       if (!(currTar_Info->TarEEValue & EE_WIDE_SCSI))
-               width = 0;
 
-       if (width) {
-               currTar_Info->TarStatus |= WIDE_ENABLED;
-               width = 0;
-       } else {
-               width = NARROW_SCSI;
-               currTar_Info->TarStatus &= ~WIDE_ENABLED;
-       }
+   if (!(currTar_Info->TarEEValue & EE_WIDE_SCSI))
+      width = 0;
 
-       FPT_sssyncv(port, currSCCB->TargID, width, currTar_Info);
+   if (width) {
+      currTar_Info->TarStatus |= WIDE_ENABLED;
+      width = 0;
+      }
+   else {
+      width = NARROW_SCSI;
+      currTar_Info->TarStatus &= ~WIDE_ENABLED;
+      }
 
-       if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
 
-               currTar_Info->TarStatus |= WIDE_NEGOCIATED;
+   FPT_sssyncv(port,currSCCB->TargID,width,currTar_Info);
 
-               if (!
-                   ((currTar_Info->TarStatus & TAR_SYNC_MASK) ==
-                    SYNC_SUPPORTED)) {
-                       ACCEPT_MSG_ATN(port);
-                       ARAM_ACCESS(port);
-                       FPT_sisyncn(port, p_card, 1);
-                       currSCCB->Sccb_scsistat = SELECT_SN_ST;
-                       SGRAM_ACCESS(port);
-               } else {
-                       ACCEPT_MSG(port);
-                       WR_HARPOON(port + hp_autostart_1,
-                                  (AUTO_IMMED + DISCONNECT_START));
-               }
-       }
 
-       else {
+   if (currSCCB->Sccb_scsistat == SELECT_WN_ST)
+       {
+
 
-               ACCEPT_MSG_ATN(port);
 
-               if (currTar_Info->TarEEValue & EE_WIDE_SCSI)
-                       width = SM16BIT;
+      currTar_Info->TarStatus |=        WIDE_NEGOCIATED;
+
+          if (!((currTar_Info->TarStatus & TAR_SYNC_MASK) == SYNC_SUPPORTED))
+               {
+             ACCEPT_MSG_ATN(port);
+                  ARAM_ACCESS(port);
+               FPT_sisyncn(port,p_card, 1);
+             currSCCB->Sccb_scsistat = SELECT_SN_ST;
+                  SGRAM_ACCESS(port);
+               }
                else
-                       width = SM8BIT;
+               {
+             ACCEPT_MSG(port);
+                  WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
+               }
+   }
 
-               FPT_siwidr(port, width);
+   else {
 
-               currTar_Info->TarStatus |= (WIDE_NEGOCIATED | WIDE_ENABLED);
-       }
+
+      ACCEPT_MSG_ATN(port);
+
+      if (currTar_Info->TarEEValue & EE_WIDE_SCSI)
+        width = SM16BIT;
+      else
+        width = SM8BIT;
+
+      FPT_siwidr(port,width);
+
+      currTar_Info->TarStatus |= (WIDE_NEGOCIATED | WIDE_ENABLED);
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_siwidr
@@ -3523,26 +4109,27 @@ static void FPT_stwidn(unsigned long port, unsigned char p_card)
  * Description: Answer the targets Wide nego message.
  *
  *---------------------------------------------------------------------*/
-static void FPT_siwidr(unsigned long port, unsigned char width)
+static void FPT_siwidr(ULONG port, UCHAR width)
 {
-       ARAM_ACCESS(port);
-       WRW_HARPOON((port + SYNC_MSGS + 0), (MPM_OP + AMSG_OUT + SMEXT));
-       WRW_HARPOON((port + SYNC_MSGS + 2), (MPM_OP + AMSG_OUT + 0x02));
-       WRW_HARPOON((port + SYNC_MSGS + 4), (MPM_OP + AMSG_OUT + SMWDTR));
-       WRW_HARPOON((port + SYNC_MSGS + 6), (RAT_OP));
-       WRW_HARPOON((port + SYNC_MSGS + 8), (MPM_OP + AMSG_OUT + width));
-       WRW_HARPOON((port + SYNC_MSGS + 10), (BRH_OP + ALWAYS + NP));
-       SGRAM_ACCESS(port);
+   ARAM_ACCESS(port);
+   WRW_HARPOON((port+SYNC_MSGS+0), (MPM_OP+AMSG_OUT+SMEXT ));
+   WRW_HARPOON((port+SYNC_MSGS+2), (MPM_OP+AMSG_OUT+0x02  ));
+   WRW_HARPOON((port+SYNC_MSGS+4), (MPM_OP+AMSG_OUT+SMWDTR));
+   WRW_HARPOON((port+SYNC_MSGS+6), (RAT_OP                ));
+   WRW_HARPOON((port+SYNC_MSGS+8),(MPM_OP+AMSG_OUT+width));
+   WRW_HARPOON((port+SYNC_MSGS+10),(BRH_OP+ALWAYS+NP      ));
+   SGRAM_ACCESS(port);
 
-       WR_HARPOON(port + hp_portctrl_0, SCSI_PORT);
-       WRW_HARPOON((port + hp_intstat), CLR_ALL_INT_1);
+   WR_HARPOON(port+hp_portctrl_0, SCSI_PORT);
+   WRW_HARPOON((port+hp_intstat), CLR_ALL_INT_1);
 
-       WR_HARPOON(port + hp_autostart_3, (AUTO_IMMED + CMD_ONLY_STRT));
+   WR_HARPOON(port+hp_autostart_3, (AUTO_IMMED+CMD_ONLY_STRT));
 
-       while (!(RDW_HARPOON((port + hp_intstat)) & (BUS_FREE | AUTO_INT))) {
-       }
+   while (!(RDW_HARPOON((port+hp_intstat)) & (BUS_FREE | AUTO_INT))) {}
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sssyncv
@@ -3551,71 +4138,71 @@ static void FPT_siwidr(unsigned long port, unsigned char width)
  *              ID specified.
  *
  *---------------------------------------------------------------------*/
-static void FPT_sssyncv(unsigned long p_port, unsigned char p_id,
-                       unsigned char p_sync_value,
-                       struct sccb_mgr_tar_info *currTar_Info)
+static void FPT_sssyncv(ULONG p_port, UCHAR p_id, UCHAR p_sync_value,
+                       PSCCBMgr_tar_info currTar_Info)
 {
-       unsigned char index;
-
-       index = p_id;
-
-       switch (index) {
-
-       case 0:
-               index = 12;     /* hp_synctarg_0 */
-               break;
-       case 1:
-               index = 13;     /* hp_synctarg_1 */
-               break;
-       case 2:
-               index = 14;     /* hp_synctarg_2 */
-               break;
-       case 3:
-               index = 15;     /* hp_synctarg_3 */
-               break;
-       case 4:
-               index = 8;      /* hp_synctarg_4 */
-               break;
-       case 5:
-               index = 9;      /* hp_synctarg_5 */
-               break;
-       case 6:
-               index = 10;     /* hp_synctarg_6 */
-               break;
-       case 7:
-               index = 11;     /* hp_synctarg_7 */
-               break;
-       case 8:
-               index = 4;      /* hp_synctarg_8 */
-               break;
-       case 9:
-               index = 5;      /* hp_synctarg_9 */
-               break;
-       case 10:
-               index = 6;      /* hp_synctarg_10 */
-               break;
-       case 11:
-               index = 7;      /* hp_synctarg_11 */
-               break;
-       case 12:
-               index = 0;      /* hp_synctarg_12 */
-               break;
-       case 13:
-               index = 1;      /* hp_synctarg_13 */
-               break;
-       case 14:
-               index = 2;      /* hp_synctarg_14 */
-               break;
-       case 15:
-               index = 3;      /* hp_synctarg_15 */
+   UCHAR index;
+
+   index = p_id;
+
+   switch (index) {
+
+      case 0:
+        index = 12;             /* hp_synctarg_0 */
+        break;
+      case 1:
+        index = 13;             /* hp_synctarg_1 */
+        break;
+      case 2:
+        index = 14;             /* hp_synctarg_2 */
+        break;
+      case 3:
+        index = 15;             /* hp_synctarg_3 */
+        break;
+      case 4:
+        index = 8;              /* hp_synctarg_4 */
+        break;
+      case 5:
+        index = 9;              /* hp_synctarg_5 */
+        break;
+      case 6:
+        index = 10;             /* hp_synctarg_6 */
+        break;
+      case 7:
+        index = 11;             /* hp_synctarg_7 */
+        break;
+      case 8:
+        index = 4;              /* hp_synctarg_8 */
+        break;
+      case 9:
+        index = 5;              /* hp_synctarg_9 */
+        break;
+      case 10:
+        index = 6;              /* hp_synctarg_10 */
+        break;
+      case 11:
+        index = 7;              /* hp_synctarg_11 */
+        break;
+      case 12:
+        index = 0;              /* hp_synctarg_12 */
+        break;
+      case 13:
+        index = 1;              /* hp_synctarg_13 */
+        break;
+      case 14:
+        index = 2;              /* hp_synctarg_14 */
+        break;
+      case 15:
+        index = 3;              /* hp_synctarg_15 */
 
-       }
+      }
 
-       WR_HARPOON(p_port + hp_synctarg_base + index, p_sync_value);
+   WR_HARPOON(p_port+hp_synctarg_base+index, p_sync_value);
 
        currTar_Info->TarSyncCtrl = p_sync_value;
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sresb
@@ -3623,67 +4210,69 @@ static void FPT_sssyncv(unsigned long p_port, unsigned char p_id,
  * Description: Reset the desired card's SCSI bus.
  *
  *---------------------------------------------------------------------*/
-static void FPT_sresb(unsigned long port, unsigned char p_card)
+static void FPT_sresb(ULONG port, UCHAR p_card)
 {
-       unsigned char scsiID, i;
+   UCHAR scsiID, i;
 
-       struct sccb_mgr_tar_info *currTar_Info;
+   PSCCBMgr_tar_info currTar_Info;
 
-       WR_HARPOON(port + hp_page_ctrl,
-                  (RD_HARPOON(port + hp_page_ctrl) | G_INT_DISABLE));
-       WRW_HARPOON((port + hp_intstat), CLR_ALL_INT);
+   WR_HARPOON(port+hp_page_ctrl,
+      (RD_HARPOON(port+hp_page_ctrl) | G_INT_DISABLE));
+   WRW_HARPOON((port+hp_intstat), CLR_ALL_INT);
 
-       WR_HARPOON(port + hp_scsictrl_0, SCSI_RST);
+   WR_HARPOON(port+hp_scsictrl_0, SCSI_RST);
 
-       scsiID = RD_HARPOON(port + hp_seltimeout);
-       WR_HARPOON(port + hp_seltimeout, TO_5ms);
-       WRW_HARPOON((port + hp_intstat), TIMEOUT);
+   scsiID = RD_HARPOON(port+hp_seltimeout);
+   WR_HARPOON(port+hp_seltimeout,TO_5ms);
+   WRW_HARPOON((port+hp_intstat), TIMEOUT);
 
-       WR_HARPOON(port + hp_portctrl_0, (SCSI_PORT | START_TO));
+   WR_HARPOON(port+hp_portctrl_0,(SCSI_PORT | START_TO));
 
-       while (!(RDW_HARPOON((port + hp_intstat)) & TIMEOUT)) {
-       }
+   while (!(RDW_HARPOON((port+hp_intstat)) & TIMEOUT)) {}
 
-       WR_HARPOON(port + hp_seltimeout, scsiID);
+   WR_HARPOON(port+hp_seltimeout,scsiID);
 
-       WR_HARPOON(port + hp_scsictrl_0, ENA_SCAM_SEL);
+   WR_HARPOON(port+hp_scsictrl_0, ENA_SCAM_SEL);
 
-       FPT_Wait(port, TO_5ms);
+   FPT_Wait(port, TO_5ms);
 
-       WRW_HARPOON((port + hp_intstat), CLR_ALL_INT);
+   WRW_HARPOON((port+hp_intstat), CLR_ALL_INT);
 
-       WR_HARPOON(port + hp_int_mask, (RD_HARPOON(port + hp_int_mask) | 0x00));
+   WR_HARPOON(port+hp_int_mask, (RD_HARPOON(port+hp_int_mask) | 0x00));
 
-       for (scsiID = 0; scsiID < MAX_SCSI_TAR; scsiID++) {
-               currTar_Info = &FPT_sccbMgrTbl[p_card][scsiID];
+   for (scsiID = 0; scsiID < MAX_SCSI_TAR; scsiID++)
+      {
+      currTar_Info = &FPT_sccbMgrTbl[p_card][scsiID];
 
-               if (currTar_Info->TarEEValue & EE_SYNC_MASK) {
-                       currTar_Info->TarSyncCtrl = 0;
-                       currTar_Info->TarStatus &= ~TAR_SYNC_MASK;
-               }
+      if (currTar_Info->TarEEValue & EE_SYNC_MASK)
+         {
+               currTar_Info->TarSyncCtrl = 0;
+               currTar_Info->TarStatus &= ~TAR_SYNC_MASK;
+             }
 
-               if (currTar_Info->TarEEValue & EE_WIDE_SCSI) {
-                       currTar_Info->TarStatus &= ~TAR_WIDE_MASK;
-               }
+      if (currTar_Info->TarEEValue & EE_WIDE_SCSI)
+         {
+       currTar_Info->TarStatus &= ~TAR_WIDE_MASK;
+       }
 
-               FPT_sssyncv(port, scsiID, NARROW_SCSI, currTar_Info);
+      FPT_sssyncv(port, scsiID, NARROW_SCSI,currTar_Info);
 
-               FPT_SccbMgrTableInitTarget(p_card, scsiID);
-       }
+      FPT_SccbMgrTableInitTarget(p_card, scsiID);
+      }
 
-       FPT_BL_Card[p_card].scanIndex = 0x00;
-       FPT_BL_Card[p_card].currentSCCB = NULL;
-       FPT_BL_Card[p_card].globalFlags &= ~(F_TAG_STARTED | F_HOST_XFER_ACT
-                                            | F_NEW_SCCB_CMD);
-       FPT_BL_Card[p_card].cmdCounter = 0x00;
+   FPT_BL_Card[p_card].scanIndex = 0x00;
+   FPT_BL_Card[p_card].currentSCCB = NULL;
+   FPT_BL_Card[p_card].globalFlags &= ~(F_TAG_STARTED | F_HOST_XFER_ACT 
+                                                                                                       | F_NEW_SCCB_CMD);
+   FPT_BL_Card[p_card].cmdCounter  = 0x00;
        FPT_BL_Card[p_card].discQCount = 0x00;
-       FPT_BL_Card[p_card].tagQ_Lst = 0x01;
+   FPT_BL_Card[p_card].tagQ_Lst = 0x01; 
 
-       for (i = 0; i < QUEUE_DEPTH; i++)
+       for(i = 0; i < QUEUE_DEPTH; i++)
                FPT_BL_Card[p_card].discQ_Tbl[i] = NULL;
 
-       WR_HARPOON(port + hp_page_ctrl,
-                  (RD_HARPOON(port + hp_page_ctrl) & ~G_INT_DISABLE));
+   WR_HARPOON(port+hp_page_ctrl,
+      (RD_HARPOON(port+hp_page_ctrl) & ~G_INT_DISABLE));
 
 }
 
@@ -3694,43 +4283,46 @@ static void FPT_sresb(unsigned long port, unsigned char p_card)
  * Description: Setup for the Auto Sense command.
  *
  *---------------------------------------------------------------------*/
-static void FPT_ssenss(struct sccb_card *pCurrCard)
+static void FPT_ssenss(PSCCBcard pCurrCard)
 {
-       unsigned char i;
-       struct sccb *currSCCB;
+   UCHAR i;
+   PSCCB currSCCB;
 
-       currSCCB = pCurrCard->currentSCCB;
+   currSCCB = pCurrCard->currentSCCB;
 
-       currSCCB->Save_CdbLen = currSCCB->CdbLength;
 
-       for (i = 0; i < 6; i++) {
+   currSCCB->Save_CdbLen = currSCCB->CdbLength;
 
-               currSCCB->Save_Cdb[i] = currSCCB->Cdb[i];
-       }
+   for (i = 0; i < 6; i++) {
+
+      currSCCB->Save_Cdb[i] = currSCCB->Cdb[i];
+      }
 
-       currSCCB->CdbLength = SIX_BYTE_CMD;
-       currSCCB->Cdb[0] = SCSI_REQUEST_SENSE;
-       currSCCB->Cdb[1] = currSCCB->Cdb[1] & (unsigned char)0xE0;      /*Keep LUN. */
-       currSCCB->Cdb[2] = 0x00;
-       currSCCB->Cdb[3] = 0x00;
-       currSCCB->Cdb[4] = currSCCB->RequestSenseLength;
-       currSCCB->Cdb[5] = 0x00;
+   currSCCB->CdbLength = SIX_BYTE_CMD;
+   currSCCB->Cdb[0]    = SCSI_REQUEST_SENSE;
+   currSCCB->Cdb[1]    = currSCCB->Cdb[1] & (UCHAR)0xE0; /*Keep LUN. */
+   currSCCB->Cdb[2]    = 0x00;
+   currSCCB->Cdb[3]    = 0x00;
+   currSCCB->Cdb[4]    = currSCCB->RequestSenseLength;
+   currSCCB->Cdb[5]    = 0x00;
 
-       currSCCB->Sccb_XferCnt = (unsigned long)currSCCB->RequestSenseLength;
+   currSCCB->Sccb_XferCnt = (unsigned long)currSCCB->RequestSenseLength;
 
-       currSCCB->Sccb_ATC = 0x00;
+   currSCCB->Sccb_ATC = 0x00;
 
-       currSCCB->Sccb_XferState |= F_AUTO_SENSE;
+   currSCCB->Sccb_XferState |= F_AUTO_SENSE;
 
-       currSCCB->Sccb_XferState &= ~F_SG_XFER;
+   currSCCB->Sccb_XferState &= ~F_SG_XFER;
 
-       currSCCB->Sccb_idmsg = currSCCB->Sccb_idmsg & ~(unsigned char)DISC_PRIV;
+   currSCCB->Sccb_idmsg = currSCCB->Sccb_idmsg & ~(UCHAR)DISC_PRIV;
 
-       currSCCB->ControlByte = 0x00;
+   currSCCB->ControlByte = 0x00;
 
-       currSCCB->Sccb_MGRFlags &= F_STATUSLOADED;
+   currSCCB->Sccb_MGRFlags &= F_STATUSLOADED;
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sxfrp
@@ -3740,79 +4332,79 @@ static void FPT_ssenss(struct sccb_card *pCurrCard)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_sxfrp(unsigned long p_port, unsigned char p_card)
+static void FPT_sxfrp(ULONG p_port, UCHAR p_card)
 {
-       unsigned char curr_phz;
-
-       DISABLE_AUTO(p_port);
-
-       if (FPT_BL_Card[p_card].globalFlags & F_HOST_XFER_ACT) {
-
-               FPT_hostDataXferAbort(p_port, p_card,
-                                     FPT_BL_Card[p_card].currentSCCB);
+   UCHAR curr_phz;
 
-       }
 
-       /* If the Automation handled the end of the transfer then do not
-          match the phase or we will get out of sync with the ISR.       */
+   DISABLE_AUTO(p_port);
 
-       if (RDW_HARPOON((p_port + hp_intstat)) &
-           (BUS_FREE | XFER_CNT_0 | AUTO_INT))
-               return;
+   if (FPT_BL_Card[p_card].globalFlags & F_HOST_XFER_ACT) {
 
-       WR_HARPOON(p_port + hp_xfercnt_0, 0x00);
+      FPT_hostDataXferAbort(p_port,p_card,FPT_BL_Card[p_card].currentSCCB);
 
-       curr_phz = RD_HARPOON(p_port + hp_scsisig) & (unsigned char)S_SCSI_PHZ;
+      }
 
-       WRW_HARPOON((p_port + hp_intstat), XFER_CNT_0);
+   /* If the Automation handled the end of the transfer then do not
+      match the phase or we will get out of sync with the ISR.       */
 
-       WR_HARPOON(p_port + hp_scsisig, curr_phz);
+   if (RDW_HARPOON((p_port+hp_intstat)) & (BUS_FREE | XFER_CNT_0 | AUTO_INT))
+      return;
 
-       while (!(RDW_HARPOON((p_port + hp_intstat)) & (BUS_FREE | RESET)) &&
-              (curr_phz ==
-               (RD_HARPOON(p_port + hp_scsisig) & (unsigned char)S_SCSI_PHZ)))
-       {
-               if (curr_phz & (unsigned char)SCSI_IOBIT) {
-                       WR_HARPOON(p_port + hp_portctrl_0,
-                                  (SCSI_PORT | HOST_PORT | SCSI_INBIT));
+   WR_HARPOON(p_port+hp_xfercnt_0, 0x00);
 
-                       if (!(RD_HARPOON(p_port + hp_xferstat) & FIFO_EMPTY)) {
-                               RD_HARPOON(p_port + hp_fifodata_0);
-                       }
-               } else {
-                       WR_HARPOON(p_port + hp_portctrl_0,
-                                  (SCSI_PORT | HOST_PORT | HOST_WRT));
-                       if (RD_HARPOON(p_port + hp_xferstat) & FIFO_EMPTY) {
-                               WR_HARPOON(p_port + hp_fifodata_0, 0xFA);
-                       }
-               }
-       }                       /* End of While loop for padding data I/O phase */
+   curr_phz = RD_HARPOON(p_port+hp_scsisig) & (UCHAR)S_SCSI_PHZ;
 
-       while (!(RDW_HARPOON((p_port + hp_intstat)) & (BUS_FREE | RESET))) {
-               if (RD_HARPOON(p_port + hp_scsisig) & SCSI_REQ)
-                       break;
-       }
+   WRW_HARPOON((p_port+hp_intstat), XFER_CNT_0);
 
-       WR_HARPOON(p_port + hp_portctrl_0,
-                  (SCSI_PORT | HOST_PORT | SCSI_INBIT));
-       while (!(RD_HARPOON(p_port + hp_xferstat) & FIFO_EMPTY)) {
-               RD_HARPOON(p_port + hp_fifodata_0);
-       }
 
-       if (!(RDW_HARPOON((p_port + hp_intstat)) & (BUS_FREE | RESET))) {
-               WR_HARPOON(p_port + hp_autostart_0,
-                          (AUTO_IMMED + DISCONNECT_START));
-               while (!(RDW_HARPOON((p_port + hp_intstat)) & AUTO_INT)) {
-               }
+   WR_HARPOON(p_port+hp_scsisig, curr_phz);
 
-               if (RDW_HARPOON((p_port + hp_intstat)) &
-                   (ICMD_COMP | ITAR_DISC))
-                       while (!
-                              (RDW_HARPOON((p_port + hp_intstat)) &
-                               (BUS_FREE | RSEL))) ;
-       }
+   while ( !(RDW_HARPOON((p_port+hp_intstat)) & (BUS_FREE | RESET)) &&
+      (curr_phz == (RD_HARPOON(p_port+hp_scsisig) & (UCHAR)S_SCSI_PHZ)) )
+      {
+      if (curr_phz & (UCHAR)SCSI_IOBIT)
+         {
+       WR_HARPOON(p_port+hp_portctrl_0, (SCSI_PORT | HOST_PORT | SCSI_INBIT));
+
+             if (!(RD_HARPOON(p_port+hp_xferstat) & FIFO_EMPTY))
+            {
+                RD_HARPOON(p_port+hp_fifodata_0);
+                }
+             }
+      else
+         {
+       WR_HARPOON(p_port+hp_portctrl_0, (SCSI_PORT | HOST_PORT | HOST_WRT));
+          if (RD_HARPOON(p_port+hp_xferstat) & FIFO_EMPTY)
+            {
+                WR_HARPOON(p_port+hp_fifodata_0,0xFA);
+                }
+             }
+      } /* End of While loop for padding data I/O phase */
+
+      while ( !(RDW_HARPOON((p_port+hp_intstat)) & (BUS_FREE | RESET)))
+         {
+         if (RD_HARPOON(p_port+hp_scsisig) & SCSI_REQ)
+          break;
+         }
+
+      WR_HARPOON(p_port+hp_portctrl_0, (SCSI_PORT | HOST_PORT | SCSI_INBIT));
+      while (!(RD_HARPOON(p_port+hp_xferstat) & FIFO_EMPTY))
+         {
+         RD_HARPOON(p_port+hp_fifodata_0);
+         }
+
+      if ( !(RDW_HARPOON((p_port+hp_intstat)) & (BUS_FREE | RESET)))
+         {
+         WR_HARPOON(p_port+hp_autostart_0, (AUTO_IMMED+DISCONNECT_START));
+         while (!(RDW_HARPOON((p_port+hp_intstat)) & AUTO_INT)) {}
+
+         if (RDW_HARPOON((p_port+hp_intstat)) & (ICMD_COMP | ITAR_DISC))
+          while (!(RDW_HARPOON((p_port+hp_intstat)) & (BUS_FREE | RSEL))) ;
+         }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_schkdd
@@ -3822,99 +4414,111 @@ static void FPT_sxfrp(unsigned long p_port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_schkdd(unsigned long port, unsigned char p_card)
+static void FPT_schkdd(ULONG port, UCHAR p_card)
 {
-       unsigned short TimeOutLoop;
-       unsigned char sPhase;
+   USHORT TimeOutLoop;
+       UCHAR sPhase;
 
-       struct sccb *currSCCB;
+   PSCCB currSCCB;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-       if ((currSCCB->Sccb_scsistat != DATA_OUT_ST) &&
-           (currSCCB->Sccb_scsistat != DATA_IN_ST)) {
-               return;
-       }
 
-       if (currSCCB->Sccb_XferState & F_ODD_BALL_CNT) {
+   if ((currSCCB->Sccb_scsistat != DATA_OUT_ST) &&
+       (currSCCB->Sccb_scsistat != DATA_IN_ST)) {
+      return;
+      }
 
-               currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt - 1);
 
-               currSCCB->Sccb_XferCnt = 1;
 
-               currSCCB->Sccb_XferState &= ~F_ODD_BALL_CNT;
-               WRW_HARPOON((port + hp_fiforead), (unsigned short)0x00);
-               WR_HARPOON(port + hp_xferstat, 0x00);
-       }
+   if (currSCCB->Sccb_XferState & F_ODD_BALL_CNT)
+      {
 
-       else {
+      currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt-1);
 
-               currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
+      currSCCB->Sccb_XferCnt = 1;
 
-               currSCCB->Sccb_XferCnt = 0;
-       }
+      currSCCB->Sccb_XferState &= ~F_ODD_BALL_CNT;
+      WRW_HARPOON((port+hp_fiforead), (USHORT) 0x00);
+      WR_HARPOON(port+hp_xferstat, 0x00);
+      }
 
-       if ((RDW_HARPOON((port + hp_intstat)) & PARITY) &&
-           (currSCCB->HostStatus == SCCB_COMPLETE)) {
+   else
+      {
 
-               currSCCB->HostStatus = SCCB_PARITY_ERR;
-               WRW_HARPOON((port + hp_intstat), PARITY);
-       }
+      currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
 
-       FPT_hostDataXferAbort(port, p_card, currSCCB);
+      currSCCB->Sccb_XferCnt = 0;
+      }
 
-       while (RD_HARPOON(port + hp_scsisig) & SCSI_ACK) {
-       }
+   if ((RDW_HARPOON((port+hp_intstat)) & PARITY) &&
+      (currSCCB->HostStatus == SCCB_COMPLETE)) {
 
-       TimeOutLoop = 0;
+      currSCCB->HostStatus = SCCB_PARITY_ERR;
+      WRW_HARPOON((port+hp_intstat), PARITY);
+      }
 
-       while (RD_HARPOON(port + hp_xferstat) & FIFO_EMPTY) {
-               if (RDW_HARPOON((port + hp_intstat)) & BUS_FREE) {
-                       return;
-               }
-               if (RD_HARPOON(port + hp_offsetctr) & (unsigned char)0x1F) {
-                       break;
-               }
-               if (RDW_HARPOON((port + hp_intstat)) & RESET) {
-                       return;
-               }
-               if ((RD_HARPOON(port + hp_scsisig) & SCSI_REQ)
-                   || (TimeOutLoop++ > 0x3000))
-                       break;
-       }
 
-       sPhase = RD_HARPOON(port + hp_scsisig) & (SCSI_BSY | S_SCSI_PHZ);
-       if ((!(RD_HARPOON(port + hp_xferstat) & FIFO_EMPTY)) ||
-           (RD_HARPOON(port + hp_offsetctr) & (unsigned char)0x1F) ||
-           (sPhase == (SCSI_BSY | S_DATAO_PH)) ||
-           (sPhase == (SCSI_BSY | S_DATAI_PH))) {
+   FPT_hostDataXferAbort(port,p_card,currSCCB);
 
-               WR_HARPOON(port + hp_portctrl_0, SCSI_PORT);
 
-               if (!(currSCCB->Sccb_XferState & F_ALL_XFERRED)) {
-                       if (currSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
-                               FPT_phaseDataIn(port, p_card);
-                       }
+   while (RD_HARPOON(port+hp_scsisig) & SCSI_ACK) {}
 
-                       else {
-                               FPT_phaseDataOut(port, p_card);
-                       }
-               } else {
-                       FPT_sxfrp(port, p_card);
-                       if (!(RDW_HARPOON((port + hp_intstat)) &
-                             (BUS_FREE | ICMD_COMP | ITAR_DISC | RESET))) {
-                               WRW_HARPOON((port + hp_intstat), AUTO_INT);
-                               FPT_phaseDecode(port, p_card);
-                       }
-               }
+   TimeOutLoop = 0;
 
-       }
+   while(RD_HARPOON(port+hp_xferstat) & FIFO_EMPTY)
+      {
+      if (RDW_HARPOON((port+hp_intstat)) & BUS_FREE) {
+             return;
+          }
+      if (RD_HARPOON(port+hp_offsetctr) & (UCHAR)0x1F) {
+             break;
+          }
+      if (RDW_HARPOON((port+hp_intstat)) & RESET) {
+             return;
+          }
+      if ((RD_HARPOON(port+hp_scsisig) & SCSI_REQ) || (TimeOutLoop++>0x3000) )
+          break;
+      }
 
-       else {
-               WR_HARPOON(port + hp_portctrl_0, 0x00);
-       }
+       sPhase = RD_HARPOON(port+hp_scsisig) & (SCSI_BSY | S_SCSI_PHZ);
+   if ((!(RD_HARPOON(port+hp_xferstat) & FIFO_EMPTY))                     ||
+      (RD_HARPOON(port+hp_offsetctr) & (UCHAR)0x1F)                       ||
+      (sPhase == (SCSI_BSY | S_DATAO_PH)) ||
+      (sPhase == (SCSI_BSY | S_DATAI_PH)))
+      {
+
+          WR_HARPOON(port+hp_portctrl_0, SCSI_PORT);
+
+          if (!(currSCCB->Sccb_XferState & F_ALL_XFERRED))
+         {
+             if (currSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
+                FPT_phaseDataIn(port,p_card);
+               }
+
+               else {
+              FPT_phaseDataOut(port,p_card);
+               }
+               }
+               else
+       {
+               FPT_sxfrp(port,p_card);
+               if (!(RDW_HARPOON((port+hp_intstat)) &
+                     (BUS_FREE | ICMD_COMP | ITAR_DISC | RESET)))
+         {
+               WRW_HARPOON((port+hp_intstat), AUTO_INT);
+                  FPT_phaseDecode(port,p_card);
+                  }
+          }
+
+   }
+
+   else {
+      WR_HARPOON(port+hp_portctrl_0, 0x00);
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sinits
@@ -3923,37 +4527,39 @@ static void FPT_schkdd(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card)
+static void FPT_sinits(PSCCB p_sccb, UCHAR p_card)
 {
-       struct sccb_mgr_tar_info *currTar_Info;
+   PSCCBMgr_tar_info currTar_Info;
 
-       if ((p_sccb->TargID > MAX_SCSI_TAR) || (p_sccb->Lun > MAX_LUN)) {
+       if((p_sccb->TargID > MAX_SCSI_TAR) || (p_sccb->Lun > MAX_LUN))
+       {
                return;
        }
-       currTar_Info = &FPT_sccbMgrTbl[p_card][p_sccb->TargID];
+   currTar_Info = &FPT_sccbMgrTbl[p_card][p_sccb->TargID];
 
-       p_sccb->Sccb_XferState = 0x00;
-       p_sccb->Sccb_XferCnt = p_sccb->DataLength;
+   p_sccb->Sccb_XferState     = 0x00;
+   p_sccb->Sccb_XferCnt       = p_sccb->DataLength;
 
-       if ((p_sccb->OperationCode == SCATTER_GATHER_COMMAND) ||
-           (p_sccb->OperationCode == RESIDUAL_SG_COMMAND)) {
+   if ((p_sccb->OperationCode == SCATTER_GATHER_COMMAND) ||
+      (p_sccb->OperationCode == RESIDUAL_SG_COMMAND)) {
 
-               p_sccb->Sccb_SGoffset = 0;
-               p_sccb->Sccb_XferState = F_SG_XFER;
-               p_sccb->Sccb_XferCnt = 0x00;
-       }
+      p_sccb->Sccb_SGoffset   = 0;
+      p_sccb->Sccb_XferState  = F_SG_XFER;
+      p_sccb->Sccb_XferCnt    = 0x00;
+      }
 
-       if (p_sccb->DataLength == 0x00)
+   if (p_sccb->DataLength == 0x00)
 
-               p_sccb->Sccb_XferState |= F_ALL_XFERRED;
+      p_sccb->Sccb_XferState |= F_ALL_XFERRED;
 
-       if (p_sccb->ControlByte & F_USE_CMD_Q) {
-               if ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) == TAG_Q_REJECT)
-                       p_sccb->ControlByte &= ~F_USE_CMD_Q;
+   if (p_sccb->ControlByte & F_USE_CMD_Q)
+      {
+      if ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) == TAG_Q_REJECT)
+         p_sccb->ControlByte &= ~F_USE_CMD_Q;
 
-               else
-                       currTar_Info->TarStatus |= TAG_Q_TRYING;
-       }
+      else
+             currTar_Info->TarStatus |= TAG_Q_TRYING;
+      }
 
 /*      For !single SCSI device in system  & device allow Disconnect
        or command is tag_q type then send Cmd with Disconnect Enable
@@ -3964,35 +4570,35 @@ static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card)
       (currTar_Info->TarStatus & TAR_ALLOW_DISC)) ||
       (currTar_Info->TarStatus & TAG_Q_TRYING)) {
 */
-       if ((currTar_Info->TarStatus & TAR_ALLOW_DISC) ||
-           (currTar_Info->TarStatus & TAG_Q_TRYING)) {
-               p_sccb->Sccb_idmsg =
-                   (unsigned char)(SMIDENT | DISC_PRIV) | p_sccb->Lun;
-       }
+   if ((currTar_Info->TarStatus & TAR_ALLOW_DISC) ||
+      (currTar_Info->TarStatus & TAG_Q_TRYING)) {
+      p_sccb->Sccb_idmsg      = (UCHAR)(SMIDENT | DISC_PRIV) | p_sccb->Lun;
+      }
 
-       else {
+   else {
 
-               p_sccb->Sccb_idmsg = (unsigned char)SMIDENT | p_sccb->Lun;
-       }
+      p_sccb->Sccb_idmsg      = (UCHAR)SMIDENT | p_sccb->Lun;
+      }
 
-       p_sccb->HostStatus = 0x00;
-       p_sccb->TargetStatus = 0x00;
-       p_sccb->Sccb_tag = 0x00;
-       p_sccb->Sccb_MGRFlags = 0x00;
-       p_sccb->Sccb_sgseg = 0x00;
-       p_sccb->Sccb_ATC = 0x00;
-       p_sccb->Sccb_savedATC = 0x00;
+   p_sccb->HostStatus         = 0x00;
+   p_sccb->TargetStatus       = 0x00;
+   p_sccb->Sccb_tag           = 0x00;
+   p_sccb->Sccb_MGRFlags      = 0x00;
+   p_sccb->Sccb_sgseg         = 0x00;
+   p_sccb->Sccb_ATC           = 0x00;
+   p_sccb->Sccb_savedATC      = 0x00;
 /*
    p_sccb->SccbVirtDataPtr    = 0x00;
    p_sccb->Sccb_forwardlink   = NULL;
    p_sccb->Sccb_backlink      = NULL;
  */
-       p_sccb->Sccb_scsistat = BUS_FREE_ST;
-       p_sccb->SccbStatus = SCCB_IN_PROCESS;
-       p_sccb->Sccb_scsimsg = SMNO_OP;
+   p_sccb->Sccb_scsistat      = BUS_FREE_ST;
+   p_sccb->SccbStatus         = SCCB_IN_PROCESS;
+   p_sccb->Sccb_scsimsg       = SMNO_OP;
 
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Phase Decode
@@ -4001,21 +4607,23 @@ static void FPT_sinits(struct sccb *p_sccb, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseDecode(unsigned long p_port, unsigned char p_card)
+static void FPT_phaseDecode(ULONG p_port, UCHAR p_card)
 {
-       unsigned char phase_ref;
-       void (*phase) (unsigned long, unsigned char);
+   unsigned char phase_ref;
+   void (*phase) (ULONG, UCHAR);
+
 
-       DISABLE_AUTO(p_port);
+   DISABLE_AUTO(p_port);
 
-       phase_ref =
-           (unsigned char)(RD_HARPOON(p_port + hp_scsisig) & S_SCSI_PHZ);
+   phase_ref = (UCHAR) (RD_HARPOON(p_port+hp_scsisig) & S_SCSI_PHZ);
 
-       phase = FPT_s_PhaseTbl[phase_ref];
+   phase = FPT_s_PhaseTbl[phase_ref];
 
-       (*phase) (p_port, p_card);      /* Call the correct phase func */
+   (*phase)(p_port, p_card);           /* Call the correct phase func */
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: Data Out Phase
@@ -4024,39 +4632,42 @@ static void FPT_phaseDecode(unsigned long p_port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseDataOut(unsigned long port, unsigned char p_card)
+static void FPT_phaseDataOut(ULONG port, UCHAR p_card)
 {
 
-       struct sccb *currSCCB;
+   PSCCB currSCCB;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
-       if (currSCCB == NULL) {
-               return;         /* Exit if No SCCB record */
-       }
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   if (currSCCB == NULL)
+      {
+      return;  /* Exit if No SCCB record */
+      }
 
-       currSCCB->Sccb_scsistat = DATA_OUT_ST;
-       currSCCB->Sccb_XferState &= ~(F_HOST_XFER_DIR | F_NO_DATA_YET);
+   currSCCB->Sccb_scsistat = DATA_OUT_ST;
+   currSCCB->Sccb_XferState &= ~(F_HOST_XFER_DIR | F_NO_DATA_YET);
 
-       WR_HARPOON(port + hp_portctrl_0, SCSI_PORT);
+   WR_HARPOON(port+hp_portctrl_0, SCSI_PORT);
 
-       WRW_HARPOON((port + hp_intstat), XFER_CNT_0);
+   WRW_HARPOON((port+hp_intstat), XFER_CNT_0);
 
-       WR_HARPOON(port + hp_autostart_0, (END_DATA + END_DATA_START));
+   WR_HARPOON(port+hp_autostart_0, (END_DATA+END_DATA_START));
 
-       FPT_dataXferProcessor(port, &FPT_BL_Card[p_card]);
+   FPT_dataXferProcessor(port, &FPT_BL_Card[p_card]);
 
-       if (currSCCB->Sccb_XferCnt == 0) {
+   if (currSCCB->Sccb_XferCnt == 0) {
 
-               if ((currSCCB->ControlByte & SCCB_DATA_XFER_OUT) &&
-                   (currSCCB->HostStatus == SCCB_COMPLETE))
-                       currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
 
-               FPT_sxfrp(port, p_card);
-               if (!(RDW_HARPOON((port + hp_intstat)) & (BUS_FREE | RESET)))
-                       FPT_phaseDecode(port, p_card);
-       }
+      if ((currSCCB->ControlByte & SCCB_DATA_XFER_OUT) &&
+        (currSCCB->HostStatus == SCCB_COMPLETE))
+        currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
+
+      FPT_sxfrp(port,p_card);
+      if (!(RDW_HARPOON((port+hp_intstat)) & (BUS_FREE | RESET)))
+           FPT_phaseDecode(port,p_card);
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Data In Phase
@@ -4065,40 +4676,43 @@ static void FPT_phaseDataOut(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseDataIn(unsigned long port, unsigned char p_card)
+static void FPT_phaseDataIn(ULONG port, UCHAR p_card)
 {
 
-       struct sccb *currSCCB;
+   PSCCB currSCCB;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-       if (currSCCB == NULL) {
-               return;         /* Exit if No SCCB record */
-       }
+   if (currSCCB == NULL)
+      {
+      return;  /* Exit if No SCCB record */
+      }
 
-       currSCCB->Sccb_scsistat = DATA_IN_ST;
-       currSCCB->Sccb_XferState |= F_HOST_XFER_DIR;
-       currSCCB->Sccb_XferState &= ~F_NO_DATA_YET;
 
-       WR_HARPOON(port + hp_portctrl_0, SCSI_PORT);
+   currSCCB->Sccb_scsistat = DATA_IN_ST;
+   currSCCB->Sccb_XferState |= F_HOST_XFER_DIR;
+   currSCCB->Sccb_XferState &= ~F_NO_DATA_YET;
 
-       WRW_HARPOON((port + hp_intstat), XFER_CNT_0);
+   WR_HARPOON(port+hp_portctrl_0, SCSI_PORT);
 
-       WR_HARPOON(port + hp_autostart_0, (END_DATA + END_DATA_START));
+   WRW_HARPOON((port+hp_intstat), XFER_CNT_0);
 
-       FPT_dataXferProcessor(port, &FPT_BL_Card[p_card]);
+   WR_HARPOON(port+hp_autostart_0, (END_DATA+END_DATA_START));
 
-       if (currSCCB->Sccb_XferCnt == 0) {
+   FPT_dataXferProcessor(port, &FPT_BL_Card[p_card]);
 
-               if ((currSCCB->ControlByte & SCCB_DATA_XFER_IN) &&
-                   (currSCCB->HostStatus == SCCB_COMPLETE))
-                       currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
+   if (currSCCB->Sccb_XferCnt == 0) {
 
-               FPT_sxfrp(port, p_card);
-               if (!(RDW_HARPOON((port + hp_intstat)) & (BUS_FREE | RESET)))
-                       FPT_phaseDecode(port, p_card);
 
-       }
+      if ((currSCCB->ControlByte & SCCB_DATA_XFER_IN) &&
+        (currSCCB->HostStatus == SCCB_COMPLETE))
+        currSCCB->HostStatus = SCCB_DATA_OVER_RUN;
+
+      FPT_sxfrp(port,p_card);
+      if (!(RDW_HARPOON((port+hp_intstat)) & (BUS_FREE | RESET)))
+           FPT_phaseDecode(port,p_card);
+
+      }
 }
 
 /*---------------------------------------------------------------------
@@ -4109,49 +4723,50 @@ static void FPT_phaseDataIn(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseCommand(unsigned long p_port, unsigned char p_card)
+static void FPT_phaseCommand(ULONG p_port, UCHAR p_card)
 {
-       struct sccb *currSCCB;
-       unsigned long cdb_reg;
-       unsigned char i;
+   PSCCB currSCCB;
+   ULONG cdb_reg;
+   UCHAR i;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-       if (currSCCB->OperationCode == RESET_COMMAND) {
+   if (currSCCB->OperationCode == RESET_COMMAND) {
 
-               currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
-               currSCCB->CdbLength = SIX_BYTE_CMD;
-       }
+      currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
+      currSCCB->CdbLength = SIX_BYTE_CMD;
+      }
 
-       WR_HARPOON(p_port + hp_scsisig, 0x00);
+   WR_HARPOON(p_port+hp_scsisig, 0x00);
 
-       ARAM_ACCESS(p_port);
+   ARAM_ACCESS(p_port);
 
-       cdb_reg = p_port + CMD_STRT;
 
-       for (i = 0; i < currSCCB->CdbLength; i++) {
+   cdb_reg = p_port + CMD_STRT;
 
-               if (currSCCB->OperationCode == RESET_COMMAND)
+   for (i=0; i < currSCCB->CdbLength; i++) {
 
-                       WRW_HARPOON(cdb_reg, (MPM_OP + ACOMMAND + 0x00));
+      if (currSCCB->OperationCode == RESET_COMMAND)
 
-               else
-                       WRW_HARPOON(cdb_reg,
-                                   (MPM_OP + ACOMMAND + currSCCB->Cdb[i]));
-               cdb_reg += 2;
-       }
+        WRW_HARPOON(cdb_reg, (MPM_OP + ACOMMAND + 0x00));
 
-       if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
-               WRW_HARPOON(cdb_reg, (BRH_OP + ALWAYS + NP));
+      else
+        WRW_HARPOON(cdb_reg, (MPM_OP + ACOMMAND + currSCCB->Cdb[i]));
+      cdb_reg +=2;
+      }
+
+   if (currSCCB->CdbLength != TWELVE_BYTE_CMD)
+      WRW_HARPOON(cdb_reg, (BRH_OP+ALWAYS+    NP));
 
-       WR_HARPOON(p_port + hp_portctrl_0, (SCSI_PORT));
+   WR_HARPOON(p_port+hp_portctrl_0,(SCSI_PORT));
 
-       currSCCB->Sccb_scsistat = COMMAND_ST;
+   currSCCB->Sccb_scsistat = COMMAND_ST;
 
-       WR_HARPOON(p_port + hp_autostart_3, (AUTO_IMMED | CMD_ONLY_STRT));
-       SGRAM_ACCESS(p_port);
+   WR_HARPOON(p_port+hp_autostart_3, (AUTO_IMMED | CMD_ONLY_STRT));
+   SGRAM_ACCESS(p_port);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Status phase
@@ -4160,18 +4775,19 @@ static void FPT_phaseCommand(unsigned long p_port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseStatus(unsigned long port, unsigned char p_card)
+static void FPT_phaseStatus(ULONG port, UCHAR p_card)
 {
-       /* Start-up the automation to finish off this command and let the
-          isr handle the interrupt for command complete when it comes in.
-          We could wait here for the interrupt to be generated?
-        */
+   /* Start-up the automation to finish off this command and let the
+      isr handle the interrupt for command complete when it comes in.
+      We could wait here for the interrupt to be generated?
+    */
 
-       WR_HARPOON(port + hp_scsisig, 0x00);
+   WR_HARPOON(port+hp_scsisig, 0x00);
 
-       WR_HARPOON(port + hp_autostart_0, (AUTO_IMMED + END_DATA_START));
+   WR_HARPOON(port+hp_autostart_0, (AUTO_IMMED+END_DATA_START));
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Phase Message Out
@@ -4181,11 +4797,11 @@ static void FPT_phaseStatus(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card)
+static void FPT_phaseMsgOut(ULONG port, UCHAR p_card)
 {
-       unsigned char message, scsiID;
-       struct sccb *currSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
+       UCHAR message,scsiID;
+       PSCCB currSCCB;
+       PSCCBMgr_tar_info currTar_Info;
 
        currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
@@ -4194,124 +4810,133 @@ static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card)
                message = currSCCB->Sccb_scsimsg;
                scsiID = currSCCB->TargID;
 
-               if (message == SMDEV_RESET) {
+               if (message == SMDEV_RESET) 
+               {
+
 
                        currTar_Info = &FPT_sccbMgrTbl[p_card][scsiID];
                        currTar_Info->TarSyncCtrl = 0;
-                       FPT_sssyncv(port, scsiID, NARROW_SCSI, currTar_Info);
+                       FPT_sssyncv(port, scsiID, NARROW_SCSI,currTar_Info);
 
-                       if (FPT_sccbMgrTbl[p_card][scsiID].
-                           TarEEValue & EE_SYNC_MASK) {
+                       if (FPT_sccbMgrTbl[p_card][scsiID].TarEEValue & EE_SYNC_MASK) 
+                       {
 
-                               FPT_sccbMgrTbl[p_card][scsiID].TarStatus &=
-                                   ~TAR_SYNC_MASK;
+                               FPT_sccbMgrTbl[p_card][scsiID].TarStatus &= ~TAR_SYNC_MASK;
 
                        }
 
-                       if (FPT_sccbMgrTbl[p_card][scsiID].
-                           TarEEValue & EE_WIDE_SCSI) {
+                       if (FPT_sccbMgrTbl[p_card][scsiID].TarEEValue & EE_WIDE_SCSI) 
+                       {
 
-                               FPT_sccbMgrTbl[p_card][scsiID].TarStatus &=
-                                   ~TAR_WIDE_MASK;
+                               FPT_sccbMgrTbl[p_card][scsiID].TarStatus &= ~TAR_WIDE_MASK;
                        }
 
-                       FPT_queueFlushSccb(p_card, SCCB_COMPLETE);
-                       FPT_SccbMgrTableInitTarget(p_card, scsiID);
-               } else if (currSCCB->Sccb_scsistat == ABORT_ST) {
+
+                       FPT_queueFlushSccb(p_card,SCCB_COMPLETE);
+                       FPT_SccbMgrTableInitTarget(p_card,scsiID);
+               }
+               else if (currSCCB->Sccb_scsistat == ABORT_ST)
+               {
                        currSCCB->HostStatus = SCCB_COMPLETE;
-                       if (FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] !=
-                           NULL) {
-                               FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
-                                                             Sccb_tag] = NULL;
+                       if(FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] != NULL)
+                       {
+                               FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] = NULL;
                                FPT_sccbMgrTbl[p_card][scsiID].TarTagQ_Cnt--;
                        }
-
+                                       
                }
 
-               else if (currSCCB->Sccb_scsistat < COMMAND_ST) {
+               else if (currSCCB->Sccb_scsistat < COMMAND_ST) 
+               {
 
-                       if (message == SMNO_OP) {
-                               currSCCB->Sccb_MGRFlags |= F_DEV_SELECTED;
 
-                               FPT_ssel(port, p_card);
+                       if(message == SMNO_OP)
+                       {
+                               currSCCB->Sccb_MGRFlags |= F_DEV_SELECTED;
+               
+                               FPT_ssel(port,p_card);
                                return;
                        }
-               } else {
+               }
+               else 
+               {
+
 
                        if (message == SMABORT)
 
-                               FPT_queueFlushSccb(p_card, SCCB_COMPLETE);
+                               FPT_queueFlushSccb(p_card,SCCB_COMPLETE);
                }
 
-       } else {
+       }
+       else 
+       {
                message = SMABORT;
        }
 
-       WRW_HARPOON((port + hp_intstat), (BUS_FREE | PHASE | XFER_CNT_0));
+       WRW_HARPOON((port+hp_intstat), (BUS_FREE | PHASE | XFER_CNT_0));
+
 
-       WR_HARPOON(port + hp_portctrl_0, SCSI_BUS_EN);
+       WR_HARPOON(port+hp_portctrl_0, SCSI_BUS_EN);
 
-       WR_HARPOON(port + hp_scsidata_0, message);
+       WR_HARPOON(port+hp_scsidata_0,message);
 
-       WR_HARPOON(port + hp_scsisig, (SCSI_ACK + S_ILL_PH));
+       WR_HARPOON(port+hp_scsisig, (SCSI_ACK + S_ILL_PH));
 
        ACCEPT_MSG(port);
 
-       WR_HARPOON(port + hp_portctrl_0, 0x00);
+       WR_HARPOON(port+hp_portctrl_0, 0x00);
 
-       if ((message == SMABORT) || (message == SMDEV_RESET) ||
-           (message == SMABORT_TAG)) {
+       if ((message == SMABORT) || (message == SMDEV_RESET) || 
+                               (message == SMABORT_TAG) ) 
+       {
 
-               while (!(RDW_HARPOON((port + hp_intstat)) & (BUS_FREE | PHASE))) {
-               }
+               while(!(RDW_HARPOON((port+hp_intstat)) & (BUS_FREE | PHASE))) {}
 
-               if (RDW_HARPOON((port + hp_intstat)) & BUS_FREE) {
-                       WRW_HARPOON((port + hp_intstat), BUS_FREE);
+               if (RDW_HARPOON((port+hp_intstat)) & BUS_FREE) 
+               {
+                       WRW_HARPOON((port+hp_intstat), BUS_FREE);
 
-                       if (currSCCB != NULL) {
+                       if (currSCCB != NULL) 
+                       {
 
-                               if ((FPT_BL_Card[p_card].
-                                    globalFlags & F_CONLUN_IO)
-                                   &&
-                                   ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                     TarStatus & TAR_TAG_Q_MASK) !=
-                                    TAG_Q_TRYING))
-                                       FPT_sccbMgrTbl[p_card][currSCCB->
-                                                              TargID].
-                                           TarLUNBusy[currSCCB->Lun] = 0;
+                               if((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+                                       ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+                                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 0;
                                else
-                                       FPT_sccbMgrTbl[p_card][currSCCB->
-                                                              TargID].
-                                           TarLUNBusy[0] = 0;
+                                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 0;
 
-                               FPT_queueCmdComplete(&FPT_BL_Card[p_card],
-                                                    currSCCB, p_card);
+                               FPT_queueCmdComplete(&FPT_BL_Card[p_card],currSCCB, p_card);
                        }
 
-                       else {
-                               FPT_BL_Card[p_card].globalFlags |=
-                                   F_NEW_SCCB_CMD;
+                       else 
+                       {
+                               FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
                        }
                }
 
-               else {
+               else 
+               {
 
-                       FPT_sxfrp(port, p_card);
+                       FPT_sxfrp(port,p_card);
                }
        }
 
-       else {
+       else 
+       {
 
-               if (message == SMPARITY) {
+               if(message == SMPARITY)
+               {
                        currSCCB->Sccb_scsimsg = SMNO_OP;
-                       WR_HARPOON(port + hp_autostart_1,
-                                  (AUTO_IMMED + DISCONNECT_START));
-               } else {
-                       FPT_sxfrp(port, p_card);
+                       WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
+               }
+               else
+               {
+                       FPT_sxfrp(port,p_card);
                }
        }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Message In phase
@@ -4320,43 +4945,49 @@ static void FPT_phaseMsgOut(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseMsgIn(unsigned long port, unsigned char p_card)
+static void FPT_phaseMsgIn(ULONG port, UCHAR p_card)
 {
-       unsigned char message;
-       struct sccb *currSCCB;
+       UCHAR message;
+       PSCCB currSCCB;
 
        currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-       if (FPT_BL_Card[p_card].globalFlags & F_HOST_XFER_ACT) {
+       if (FPT_BL_Card[p_card].globalFlags & F_HOST_XFER_ACT) 
+       {
 
                FPT_phaseChkFifo(port, p_card);
        }
 
-       message = RD_HARPOON(port + hp_scsidata_0);
-       if ((message == SMDISC) || (message == SMSAVE_DATA_PTR)) {
+       message = RD_HARPOON(port+hp_scsidata_0);
+       if ((message == SMDISC) || (message == SMSAVE_DATA_PTR)) 
+       {
 
-               WR_HARPOON(port + hp_autostart_1,
-                          (AUTO_IMMED + END_DATA_START));
+               WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+END_DATA_START));
 
        }
 
-       else {
+       else 
+       {
 
-               message = FPT_sfm(port, currSCCB);
-               if (message) {
+               message = FPT_sfm(port,currSCCB);
+               if (message) 
+               {
 
-                       FPT_sdecm(message, port, p_card);
 
-               } else {
-                       if (currSCCB->Sccb_scsimsg != SMPARITY)
+                       FPT_sdecm(message,port,p_card);
+
+               }
+               else
+               {
+                       if(currSCCB->Sccb_scsimsg != SMPARITY)
                                ACCEPT_MSG(port);
-                       WR_HARPOON(port + hp_autostart_1,
-                                  (AUTO_IMMED + DISCONNECT_START));
+                       WR_HARPOON(port+hp_autostart_1, (AUTO_IMMED+DISCONNECT_START));
                }
        }
 
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Illegal phase
@@ -4367,23 +4998,25 @@ static void FPT_phaseMsgIn(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseIllegal(unsigned long port, unsigned char p_card)
+static void FPT_phaseIllegal(ULONG port, UCHAR p_card)
 {
-       struct sccb *currSCCB;
+   PSCCB currSCCB;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-       WR_HARPOON(port + hp_scsisig, RD_HARPOON(port + hp_scsisig));
-       if (currSCCB != NULL) {
+   WR_HARPOON(port+hp_scsisig, RD_HARPOON(port+hp_scsisig));
+   if (currSCCB != NULL) {
 
-               currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
-               currSCCB->Sccb_scsistat = ABORT_ST;
-               currSCCB->Sccb_scsimsg = SMABORT;
-       }
+      currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
+      currSCCB->Sccb_scsistat = ABORT_ST;
+      currSCCB->Sccb_scsimsg = SMABORT;
+      }
 
-       ACCEPT_MSG_ATN(port);
+   ACCEPT_MSG_ATN(port);
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: Phase Check FIFO
@@ -4393,69 +5026,76 @@ static void FPT_phaseIllegal(unsigned long port, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_phaseChkFifo(unsigned long port, unsigned char p_card)
+static void FPT_phaseChkFifo(ULONG port, UCHAR p_card)
 {
-       unsigned long xfercnt;
-       struct sccb *currSCCB;
+   ULONG xfercnt;
+   PSCCB currSCCB;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-       if (currSCCB->Sccb_scsistat == DATA_IN_ST) {
+   if (currSCCB->Sccb_scsistat == DATA_IN_ST)
+      {
 
-               while ((!(RD_HARPOON(port + hp_xferstat) & FIFO_EMPTY)) &&
-                      (RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY)) {
-               }
+      while((!(RD_HARPOON(port+hp_xferstat) & FIFO_EMPTY)) &&
+             (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY)) {}
 
-               if (!(RD_HARPOON(port + hp_xferstat) & FIFO_EMPTY)) {
-                       currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
 
-                       currSCCB->Sccb_XferCnt = 0;
+      if (!(RD_HARPOON(port+hp_xferstat) & FIFO_EMPTY))
+         {
+             currSCCB->Sccb_ATC += currSCCB->Sccb_XferCnt;
 
-                       if ((RDW_HARPOON((port + hp_intstat)) & PARITY) &&
-                           (currSCCB->HostStatus == SCCB_COMPLETE)) {
-                               currSCCB->HostStatus = SCCB_PARITY_ERR;
-                               WRW_HARPOON((port + hp_intstat), PARITY);
-                       }
+             currSCCB->Sccb_XferCnt = 0;
 
-                       FPT_hostDataXferAbort(port, p_card, currSCCB);
+             if ((RDW_HARPOON((port+hp_intstat)) & PARITY) &&
+                   (currSCCB->HostStatus == SCCB_COMPLETE))
+            {
+                currSCCB->HostStatus = SCCB_PARITY_ERR;
+                WRW_HARPOON((port+hp_intstat), PARITY);
+                }
 
-                       FPT_dataXferProcessor(port, &FPT_BL_Card[p_card]);
+             FPT_hostDataXferAbort(port,p_card,currSCCB);
 
-                       while ((!(RD_HARPOON(port + hp_xferstat) & FIFO_EMPTY))
-                              && (RD_HARPOON(port + hp_ext_status) &
-                                  BM_CMD_BUSY)) {
-                       }
+             FPT_dataXferProcessor(port, &FPT_BL_Card[p_card]);
 
-               }
-       }
+             while((!(RD_HARPOON(port+hp_xferstat) & FIFO_EMPTY)) &&
+                (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY)) {}
 
-       /*End Data In specific code. */
-       GET_XFER_CNT(port, xfercnt);
+             }
+      }  /*End Data In specific code. */
 
-       WR_HARPOON(port + hp_xfercnt_0, 0x00);
 
-       WR_HARPOON(port + hp_portctrl_0, 0x00);
 
-       currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt - xfercnt);
+   GET_XFER_CNT(port,xfercnt);
 
-       currSCCB->Sccb_XferCnt = xfercnt;
 
-       if ((RDW_HARPOON((port + hp_intstat)) & PARITY) &&
-           (currSCCB->HostStatus == SCCB_COMPLETE)) {
+   WR_HARPOON(port+hp_xfercnt_0, 0x00);
 
-               currSCCB->HostStatus = SCCB_PARITY_ERR;
-               WRW_HARPOON((port + hp_intstat), PARITY);
-       }
 
-       FPT_hostDataXferAbort(port, p_card, currSCCB);
+   WR_HARPOON(port+hp_portctrl_0, 0x00);
+
+   currSCCB->Sccb_ATC += (currSCCB->Sccb_XferCnt - xfercnt);
+
+   currSCCB->Sccb_XferCnt = xfercnt;
+
+   if ((RDW_HARPOON((port+hp_intstat)) & PARITY) &&
+      (currSCCB->HostStatus == SCCB_COMPLETE)) {
+
+      currSCCB->HostStatus = SCCB_PARITY_ERR;
+      WRW_HARPOON((port+hp_intstat), PARITY);
+      }
+
 
-       WR_HARPOON(port + hp_fifowrite, 0x00);
-       WR_HARPOON(port + hp_fiforead, 0x00);
-       WR_HARPOON(port + hp_xferstat, 0x00);
+   FPT_hostDataXferAbort(port,p_card,currSCCB);
 
-       WRW_HARPOON((port + hp_intstat), XFER_CNT_0);
+
+   WR_HARPOON(port+hp_fifowrite, 0x00);
+   WR_HARPOON(port+hp_fiforead, 0x00);
+   WR_HARPOON(port+hp_xferstat, 0x00);
+
+   WRW_HARPOON((port+hp_intstat), XFER_CNT_0);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Phase Bus Free
@@ -4464,94 +5104,96 @@ static void FPT_phaseChkFifo(unsigned long port, unsigned char p_card)
  *              because of command complete or from a disconnect.
  *
  *---------------------------------------------------------------------*/
-static void FPT_phaseBusFree(unsigned long port, unsigned char p_card)
+static void FPT_phaseBusFree(ULONG port, UCHAR p_card)
 {
-       struct sccb *currSCCB;
-
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
-
-       if (currSCCB != NULL) {
-
-               DISABLE_AUTO(port);
-
-               if (currSCCB->OperationCode == RESET_COMMAND) {
-
-                       if ((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
-                           ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                             TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[currSCCB->Lun] = 0;
-                       else
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[0] = 0;
-
-                       FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB,
-                                            p_card);
+   PSCCB currSCCB;
 
-                       FPT_queueSearchSelect(&FPT_BL_Card[p_card], p_card);
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-               }
-
-               else if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
-                           (unsigned char)SYNC_SUPPORTED;
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
-                           ~EE_SYNC_MASK;
-               }
+   if (currSCCB != NULL)
+      {
 
-               else if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
-                           (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                            TarStatus & ~WIDE_ENABLED) | WIDE_NEGOCIATED;
+      DISABLE_AUTO(port);
 
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
-                           ~EE_WIDE_SCSI;
-               }
 
-               else if (currSCCB->Sccb_scsistat == SELECT_Q_ST) {
-                       /* Make sure this is not a phony BUS_FREE.  If we were
-                          reselected or if BUSY is NOT on then this is a
-                          valid BUS FREE.  SRR Wednesday, 5/10/1995.     */
-
-                       if ((!(RD_HARPOON(port + hp_scsisig) & SCSI_BSY)) ||
-                           (RDW_HARPOON((port + hp_intstat)) & RSEL)) {
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarStatus &= ~TAR_TAG_Q_MASK;
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarStatus |= TAG_Q_REJECT;
-                       }
+      if (currSCCB->OperationCode == RESET_COMMAND)
+         {
 
-                       else {
-                               return;
-                       }
-               }
+                       if((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+                               ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+                        FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 0;
+                       else
+                        FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 0;
+
+             FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB, p_card);
+
+             FPT_queueSearchSelect(&FPT_BL_Card[p_card],p_card);
+
+             }
+
+      else if(currSCCB->Sccb_scsistat == SELECT_SN_ST)
+             {
+             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
+                                (UCHAR)SYNC_SUPPORTED;
+             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &= ~EE_SYNC_MASK;
+             }
+
+      else if(currSCCB->Sccb_scsistat == SELECT_WN_ST)
+             {
+             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
+                           (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
+                  TarStatus & ~WIDE_ENABLED) | WIDE_NEGOCIATED;
+
+             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &= ~EE_WIDE_SCSI;
+             }
+
+      else if(currSCCB->Sccb_scsistat == SELECT_Q_ST)
+             {
+             /* Make sure this is not a phony BUS_FREE.  If we were
+             reselected or if BUSY is NOT on then this is a
+             valid BUS FREE.  SRR Wednesday, 5/10/1995.     */
+
+             if ((!(RD_HARPOON(port+hp_scsisig) & SCSI_BSY)) ||
+                (RDW_HARPOON((port+hp_intstat)) & RSEL))
+                {
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus &= ~TAR_TAG_Q_MASK;
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |= TAG_Q_REJECT;
+                }
+
+             else
+            {
+                return;
+                }
+         }
+
+      else
+             {
+
+             currSCCB->Sccb_scsistat = BUS_FREE_ST;
+
+         if (!currSCCB->HostStatus)
+                {
+                currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
+                }
+
+                       if((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+                               ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+                        FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 0;
+                       else
+                        FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 0;
 
-               else {
+             FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB, p_card);
+             return;
+             }
 
-                       currSCCB->Sccb_scsistat = BUS_FREE_ST;
 
-                       if (!currSCCB->HostStatus) {
-                               currSCCB->HostStatus = SCCB_PHASE_SEQUENCE_FAIL;
-                       }
+      FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
 
-                       if ((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
-                           ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                             TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[currSCCB->Lun] = 0;
-                       else
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[0] = 0;
+      } /*end if !=null */
+}
 
-                       FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB,
-                                            p_card);
-                       return;
-               }
 
-               FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
 
-       }                       /*end if !=null */
-}
 
 /*---------------------------------------------------------------------
  *
@@ -4560,101 +5202,103 @@ static void FPT_phaseBusFree(unsigned long port, unsigned char p_card)
  * Description: Load the Automation RAM with the defualt map values.
  *
  *---------------------------------------------------------------------*/
-static void FPT_autoLoadDefaultMap(unsigned long p_port)
+static void FPT_autoLoadDefaultMap(ULONG p_port)
 {
-       unsigned long map_addr;
-
-       ARAM_ACCESS(p_port);
-       map_addr = p_port + hp_aramBase;
-
-       WRW_HARPOON(map_addr, (MPM_OP + AMSG_OUT + 0xC0));      /*ID MESSAGE */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + AMSG_OUT + 0x20));      /*SIMPLE TAG QUEUEING MSG */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, RAT_OP);  /*RESET ATTENTION */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + AMSG_OUT + 0x00));      /*TAG ID MSG */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 0 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 1 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 2 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 3 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 4 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 5 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 6 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 7 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 8 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 9 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 10 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MPM_OP + ACOMMAND + 0x00));      /*CDB BYTE 11 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CPE_OP + ADATA_OUT + DINT));     /*JUMP IF DATA OUT */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (TCB_OP + FIFO_0 + DI));  /*JUMP IF NO DATA IN FIFO */
-       map_addr += 2;          /*This means AYNC DATA IN */
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_IDO_STRT)); /*STOP AND INTERRUPT */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CPE_OP + ADATA_IN + DINT));      /*JUMP IF NOT DATA IN PHZ */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CPN_OP + AMSG_IN + ST)); /*IF NOT MSG IN CHECK 4 DATA IN */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CRD_OP + SDATA + 0x02)); /*SAVE DATA PTR MSG? */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (BRH_OP + NOT_EQ + DC));  /*GO CHECK FOR DISCONNECT MSG */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MRR_OP + SDATA + D_AR1));        /*SAVE DATA PTRS MSG */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CPN_OP + AMSG_IN + ST)); /*IF NOT MSG IN CHECK DATA IN */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CRD_OP + SDATA + 0x04)); /*DISCONNECT MSG? */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (BRH_OP + NOT_EQ + UNKNWN));      /*UKNKNOWN MSG */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MRR_OP + SDATA + D_BUCKET));     /*XFER DISCONNECT MSG */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_ITAR_DISC));        /*STOP AND INTERRUPT */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CPN_OP + ASTATUS + UNKNWN));     /*JUMP IF NOT STATUS PHZ. */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MRR_OP + SDATA + D_AR0));        /*GET STATUS BYTE */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CPN_OP + AMSG_IN + CC)); /*ERROR IF NOT MSG IN PHZ */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (CRD_OP + SDATA + 0x00)); /*CHECK FOR CMD COMPLETE MSG. */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (BRH_OP + NOT_EQ + CC));  /*ERROR IF NOT CMD COMPLETE MSG. */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (MRR_OP + SDATA + D_BUCKET));     /*GET CMD COMPLETE MSG */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_ICMD_COMP));        /*END OF COMMAND */
-       map_addr += 2;
-
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_IUNKWN));   /*RECEIVED UNKNOWN MSG BYTE */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_INO_CC));   /*NO COMMAND COMPLETE AFTER STATUS */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_ITICKLE));  /*BIOS Tickled the Mgr */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_IRFAIL));   /*EXPECTED ID/TAG MESSAGES AND */
-       map_addr += 2;          /* DIDN'T GET ONE */
-       WRW_HARPOON(map_addr, (CRR_OP + AR3 + S_IDREG));        /* comp SCSI SEL ID & AR3 */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (BRH_OP + EQUAL + 0x00)); /*SEL ID OK then Conti. */
-       map_addr += 2;
-       WRW_HARPOON(map_addr, (SSI_OP + SSI_INO_CC));   /*NO COMMAND COMPLETE AFTER STATUS */
-
-       SGRAM_ACCESS(p_port);
+   ULONG map_addr;
+
+   ARAM_ACCESS(p_port);
+   map_addr = p_port + hp_aramBase;
+
+   WRW_HARPOON(map_addr, (MPM_OP+AMSG_OUT+ 0xC0));  /*ID MESSAGE */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+AMSG_OUT+ 0x20));  /*SIMPLE TAG QUEUEING MSG */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, RAT_OP);                   /*RESET ATTENTION */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+AMSG_OUT+ 0x00));  /*TAG ID MSG */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 0 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 1 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 2 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 3 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 4 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 5 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 6 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 7 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 8 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 9 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 10 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MPM_OP+ACOMMAND+ 0x00));  /*CDB BYTE 11 */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CPE_OP+ADATA_OUT+ DINT)); /*JUMP IF DATA OUT */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (TCB_OP+FIFO_0+ DI));     /*JUMP IF NO DATA IN FIFO */
+   map_addr +=2;                                   /*This means AYNC DATA IN */
+   WRW_HARPOON(map_addr, (SSI_OP+   SSI_IDO_STRT)); /*STOP AND INTERRUPT */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CPE_OP+ADATA_IN+DINT));   /*JUMP IF NOT DATA IN PHZ */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CPN_OP+AMSG_IN+  ST));    /*IF NOT MSG IN CHECK 4 DATA IN */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CRD_OP+SDATA+    0x02));  /*SAVE DATA PTR MSG? */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (BRH_OP+NOT_EQ+   DC));    /*GO CHECK FOR DISCONNECT MSG */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MRR_OP+SDATA+    D_AR1)); /*SAVE DATA PTRS MSG */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CPN_OP+AMSG_IN+  ST));    /*IF NOT MSG IN CHECK DATA IN */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CRD_OP+SDATA+    0x04));  /*DISCONNECT MSG? */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (BRH_OP+NOT_EQ+   UNKNWN));/*UKNKNOWN MSG */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MRR_OP+SDATA+    D_BUCKET));/*XFER DISCONNECT MSG */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (SSI_OP+          SSI_ITAR_DISC));/*STOP AND INTERRUPT */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CPN_OP+ASTATUS+  UNKNWN));/*JUMP IF NOT STATUS PHZ. */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MRR_OP+SDATA+  D_AR0));   /*GET STATUS BYTE */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CPN_OP+AMSG_IN+  CC));    /*ERROR IF NOT MSG IN PHZ */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (CRD_OP+SDATA+    0x00));  /*CHECK FOR CMD COMPLETE MSG. */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (BRH_OP+NOT_EQ+   CC));    /*ERROR IF NOT CMD COMPLETE MSG. */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (MRR_OP+SDATA+  D_BUCKET));/*GET CMD COMPLETE MSG */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (SSI_OP+       SSI_ICMD_COMP));/*END OF COMMAND */
+   map_addr +=2;
+
+   WRW_HARPOON(map_addr, (SSI_OP+ SSI_IUNKWN));  /*RECEIVED UNKNOWN MSG BYTE */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (SSI_OP+ SSI_INO_CC));  /*NO COMMAND COMPLETE AFTER STATUS */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (SSI_OP+ SSI_ITICKLE)); /*BIOS Tickled the Mgr */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (SSI_OP+ SSI_IRFAIL));  /*EXPECTED ID/TAG MESSAGES AND */
+   map_addr +=2;                             /* DIDN'T GET ONE */
+   WRW_HARPOON(map_addr, (CRR_OP+AR3+  S_IDREG)); /* comp SCSI SEL ID & AR3*/
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (BRH_OP+EQUAL+   0x00));    /*SEL ID OK then Conti. */
+   map_addr +=2;
+   WRW_HARPOON(map_addr, (SSI_OP+ SSI_INO_CC));  /*NO COMMAND COMPLETE AFTER STATUS */
+
+
+
+   SGRAM_ACCESS(p_port);
 }
 
 /*---------------------------------------------------------------------
@@ -4666,261 +5310,203 @@ static void FPT_autoLoadDefaultMap(unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_autoCmdCmplt(unsigned long p_port, unsigned char p_card)
+static void FPT_autoCmdCmplt(ULONG p_port, UCHAR p_card)
 {
-       struct sccb *currSCCB;
-       unsigned char status_byte;
+   PSCCB currSCCB;
+   UCHAR status_byte;
 
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
 
-       status_byte = RD_HARPOON(p_port + hp_gp_reg_0);
+   status_byte = RD_HARPOON(p_port+hp_gp_reg_0);
 
-       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUN_CA = 0;
+   FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUN_CA = 0;
 
-       if (status_byte != SSGOOD) {
+   if (status_byte != SSGOOD) {
 
-               if (status_byte == SSQ_FULL) {
+      if (status_byte == SSQ_FULL) {
 
-                       if (((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
-                            ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                              TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))) {
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[currSCCB->Lun] = 1;
-                               if (FPT_BL_Card[p_card].discQCount != 0)
+
+                       if(((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+                               ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+                       {
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 1;
+                               if(FPT_BL_Card[p_card].discQCount != 0)
                                        FPT_BL_Card[p_card].discQCount--;
-                               FPT_BL_Card[p_card].
-                                   discQ_Tbl[FPT_sccbMgrTbl[p_card]
-                                             [currSCCB->TargID].
-                                             LunDiscQ_Idx[currSCCB->Lun]] =
-                                   NULL;
-                       } else {
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[0] = 1;
-                               if (currSCCB->Sccb_tag) {
-                                       if (FPT_BL_Card[p_card].discQCount != 0)
-                                               FPT_BL_Card[p_card].
-                                                   discQCount--;
-                                       FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
-                                                                     Sccb_tag]
-                                           = NULL;
-                               } else {
-                                       if (FPT_BL_Card[p_card].discQCount != 0)
-                                               FPT_BL_Card[p_card].
-                                                   discQCount--;
-                                       FPT_BL_Card[p_card].
-                                           discQ_Tbl[FPT_sccbMgrTbl[p_card]
-                                                     [currSCCB->TargID].
-                                                     LunDiscQ_Idx[0]] = NULL;
+                               FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[currSCCB->Lun]] = NULL;
+                       }
+                       else
+                       {
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 1;
+                               if(currSCCB->Sccb_tag)
+                               {
+                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                               FPT_BL_Card[p_card].discQCount--;
+                                       FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] = NULL;
+                               }else
+                               {
+                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                               FPT_BL_Card[p_card].discQCount--;
+                                       FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[0]] = NULL;
                                }
                        }
 
-                       currSCCB->Sccb_MGRFlags |= F_STATUSLOADED;
+         currSCCB->Sccb_MGRFlags |= F_STATUSLOADED;
 
-                       FPT_queueSelectFail(&FPT_BL_Card[p_card], p_card);
+         FPT_queueSelectFail(&FPT_BL_Card[p_card],p_card);
 
-                       return;
-               }
+         return;
+         }
 
-               if (currSCCB->Sccb_scsistat == SELECT_SN_ST) {
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
-                           (unsigned char)SYNC_SUPPORTED;
+      if(currSCCB->Sccb_scsistat == SELECT_SN_ST)
+         {
+         FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus |=
+            (UCHAR)SYNC_SUPPORTED;
 
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
-                           ~EE_SYNC_MASK;
-                       FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
+             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &= ~EE_SYNC_MASK;
+         FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
 
-                       if (((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
-                            ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                              TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))) {
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[currSCCB->Lun] = 1;
-                               if (FPT_BL_Card[p_card].discQCount != 0)
+                       if(((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+                               ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+                       {
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 1;
+                               if(FPT_BL_Card[p_card].discQCount != 0)
                                        FPT_BL_Card[p_card].discQCount--;
-                               FPT_BL_Card[p_card].
-                                   discQ_Tbl[FPT_sccbMgrTbl[p_card]
-                                             [currSCCB->TargID].
-                                             LunDiscQ_Idx[currSCCB->Lun]] =
-                                   NULL;
-                       } else {
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[0] = 1;
-                               if (currSCCB->Sccb_tag) {
-                                       if (FPT_BL_Card[p_card].discQCount != 0)
-                                               FPT_BL_Card[p_card].
-                                                   discQCount--;
-                                       FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
-                                                                     Sccb_tag]
-                                           = NULL;
-                               } else {
-                                       if (FPT_BL_Card[p_card].discQCount != 0)
-                                               FPT_BL_Card[p_card].
-                                                   discQCount--;
-                                       FPT_BL_Card[p_card].
-                                           discQ_Tbl[FPT_sccbMgrTbl[p_card]
-                                                     [currSCCB->TargID].
-                                                     LunDiscQ_Idx[0]] = NULL;
+                               FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[currSCCB->Lun]] = NULL;
+                       }
+                       else
+                       {
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 1;
+                               if(currSCCB->Sccb_tag)
+                               {
+                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                               FPT_BL_Card[p_card].discQCount--;
+                                       FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] = NULL;
+                               }else
+                               {
+                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                               FPT_BL_Card[p_card].discQCount--;
+                                       FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[0]] = NULL;
                                }
                        }
-                       return;
+         return;
 
-               }
+         }
 
-               if (currSCCB->Sccb_scsistat == SELECT_WN_ST) {
+      if(currSCCB->Sccb_scsistat == SELECT_WN_ST)
+         {
 
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
-                           (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                            TarStatus & ~WIDE_ENABLED) | WIDE_NEGOCIATED;
+             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus =
+                (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
+                TarStatus & ~WIDE_ENABLED) | WIDE_NEGOCIATED;
 
-                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &=
-                           ~EE_WIDE_SCSI;
-                       FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
+             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue &= ~EE_WIDE_SCSI;
+         FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
 
-                       if (((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
-                            ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                              TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))) {
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[currSCCB->Lun] = 1;
-                               if (FPT_BL_Card[p_card].discQCount != 0)
+                       if(((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+                               ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+                       {
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 1;
+                               if(FPT_BL_Card[p_card].discQCount != 0)
                                        FPT_BL_Card[p_card].discQCount--;
-                               FPT_BL_Card[p_card].
-                                   discQ_Tbl[FPT_sccbMgrTbl[p_card]
-                                             [currSCCB->TargID].
-                                             LunDiscQ_Idx[currSCCB->Lun]] =
-                                   NULL;
-                       } else {
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUNBusy[0] = 1;
-                               if (currSCCB->Sccb_tag) {
-                                       if (FPT_BL_Card[p_card].discQCount != 0)
-                                               FPT_BL_Card[p_card].
-                                                   discQCount--;
-                                       FPT_BL_Card[p_card].discQ_Tbl[currSCCB->
-                                                                     Sccb_tag]
-                                           = NULL;
-                               } else {
-                                       if (FPT_BL_Card[p_card].discQCount != 0)
-                                               FPT_BL_Card[p_card].
-                                                   discQCount--;
-                                       FPT_BL_Card[p_card].
-                                           discQ_Tbl[FPT_sccbMgrTbl[p_card]
-                                                     [currSCCB->TargID].
-                                                     LunDiscQ_Idx[0]] = NULL;
+                               FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[currSCCB->Lun]] = NULL;
+                       }
+                       else
+                       {
+                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 1;
+                               if(currSCCB->Sccb_tag)
+                               {
+                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                               FPT_BL_Card[p_card].discQCount--;
+                                       FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] = NULL;
+                               }else
+                               {
+                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                               FPT_BL_Card[p_card].discQCount--;
+                                       FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[0]] = NULL;
                                }
                        }
-                       return;
-
-               }
-
-               if (status_byte == SSCHECK) {
-                       if (FPT_BL_Card[p_card].globalFlags & F_DO_RENEGO) {
-                               if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarEEValue & EE_SYNC_MASK) {
-                                       FPT_sccbMgrTbl[p_card][currSCCB->
-                                                              TargID].
-                                           TarStatus &= ~TAR_SYNC_MASK;
+         return;
+      
+         }
+     
+          if (status_byte == SSCHECK) 
+               {
+                       if(FPT_BL_Card[p_card].globalFlags & F_DO_RENEGO)
+                       {
+                               if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue & EE_SYNC_MASK)
+                               {
+                                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus &= ~TAR_SYNC_MASK;
                                }
-                               if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarEEValue & EE_WIDE_SCSI) {
-                                       FPT_sccbMgrTbl[p_card][currSCCB->
-                                                              TargID].
-                                           TarStatus &= ~TAR_WIDE_MASK;
+                               if (FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarEEValue & EE_WIDE_SCSI)
+                               {
+                                       FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus &= ~TAR_WIDE_MASK;
                                }
                        }
                }
 
-               if (!(currSCCB->Sccb_XferState & F_AUTO_SENSE)) {
-
-                       currSCCB->SccbStatus = SCCB_ERROR;
-                       currSCCB->TargetStatus = status_byte;
-
-                       if (status_byte == SSCHECK) {
-
-                               FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-                                   TarLUN_CA = 1;
-
-                               if (currSCCB->RequestSenseLength !=
-                                   NO_AUTO_REQUEST_SENSE) {
-
-                                       if (currSCCB->RequestSenseLength == 0)
-                                               currSCCB->RequestSenseLength =
-                                                   14;
-
-                                       FPT_ssenss(&FPT_BL_Card[p_card]);
-                                       FPT_BL_Card[p_card].globalFlags |=
-                                           F_NEW_SCCB_CMD;
-
-                                       if (((FPT_BL_Card[p_card].
-                                             globalFlags & F_CONLUN_IO)
-                                            &&
-                                            ((FPT_sccbMgrTbl[p_card]
-                                              [currSCCB->TargID].
-                                              TarStatus & TAR_TAG_Q_MASK) !=
-                                             TAG_Q_TRYING))) {
-                                               FPT_sccbMgrTbl[p_card]
-                                                   [currSCCB->TargID].
-                                                   TarLUNBusy[currSCCB->Lun] =
-                                                   1;
-                                               if (FPT_BL_Card[p_card].
-                                                   discQCount != 0)
-                                                       FPT_BL_Card[p_card].
-                                                           discQCount--;
-                                               FPT_BL_Card[p_card].
-                                                   discQ_Tbl[FPT_sccbMgrTbl
-                                                             [p_card]
-                                                             [currSCCB->
-                                                              TargID].
-                                                             LunDiscQ_Idx
-                                                             [currSCCB->Lun]] =
-                                                   NULL;
-                                       } else {
-                                               FPT_sccbMgrTbl[p_card]
-                                                   [currSCCB->TargID].
-                                                   TarLUNBusy[0] = 1;
-                                               if (currSCCB->Sccb_tag) {
-                                                       if (FPT_BL_Card[p_card].
-                                                           discQCount != 0)
-                                                               FPT_BL_Card
-                                                                   [p_card].
-                                                                   discQCount--;
-                                                       FPT_BL_Card[p_card].
-                                                           discQ_Tbl[currSCCB->
-                                                                     Sccb_tag]
-                                                           = NULL;
-                                               } else {
-                                                       if (FPT_BL_Card[p_card].
-                                                           discQCount != 0)
-                                                               FPT_BL_Card
-                                                                   [p_card].
-                                                                   discQCount--;
-                                                       FPT_BL_Card[p_card].
-                                                           discQ_Tbl
-                                                           [FPT_sccbMgrTbl
-                                                            [p_card][currSCCB->
-                                                                     TargID].
-                                                            LunDiscQ_Idx[0]] =
-                                                           NULL;
+      if (!(currSCCB->Sccb_XferState & F_AUTO_SENSE)) {
+
+         currSCCB->SccbStatus = SCCB_ERROR;
+         currSCCB->TargetStatus = status_byte;
+
+         if (status_byte == SSCHECK) {
+
+            FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUN_CA
+               = 1;
+     
+
+            if (currSCCB->RequestSenseLength != NO_AUTO_REQUEST_SENSE) {
+
+               if (currSCCB->RequestSenseLength == 0)
+                  currSCCB->RequestSenseLength = 14;
+
+               FPT_ssenss(&FPT_BL_Card[p_card]);
+               FPT_BL_Card[p_card].globalFlags |= F_NEW_SCCB_CMD;
+
+                                       if(((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+                                               ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+                                       {
+                                FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 1;
+                                               if(FPT_BL_Card[p_card].discQCount != 0)
+                                                       FPT_BL_Card[p_card].discQCount--;
+                                               FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[currSCCB->Lun]] = NULL;
+                                       }
+                                       else
+                                       {
+                             FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 1;
+                                               if(currSCCB->Sccb_tag)
+                                               {
+                                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                                               FPT_BL_Card[p_card].discQCount--;
+                                                       FPT_BL_Card[p_card].discQ_Tbl[currSCCB->Sccb_tag] = NULL;
+                                               }else
+                                               {
+                                                       if(FPT_BL_Card[p_card].discQCount != 0)
+                                                               FPT_BL_Card[p_card].discQCount--;
+                                                       FPT_BL_Card[p_card].discQ_Tbl[FPT_sccbMgrTbl[p_card][currSCCB->TargID].LunDiscQ_Idx[0]] = NULL;
                                                }
                                        }
-                                       return;
-                               }
-                       }
-               }
-       }
+               return;
+               }
+            }
+         }
+      }
+
 
-       if ((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
-           ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].
-             TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
-               FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->
-                                                                   Lun] = 0;
+       if((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+               ((FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+          FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[currSCCB->Lun] = 0;
        else
-               FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 0;
+          FPT_sccbMgrTbl[p_card][currSCCB->TargID].TarLUNBusy[0] = 0;
+
 
-       FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB, p_card);
+   FPT_queueCmdComplete(&FPT_BL_Card[p_card], currSCCB, p_card);
 }
 
 #define SHORT_WAIT   0x0000000F
 #define LONG_WAIT    0x0000FFFFL
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Data Transfer Processor
@@ -4939,33 +5525,37 @@ static void FPT_autoCmdCmplt(unsigned long p_port, unsigned char p_card)
  *              
  *---------------------------------------------------------------------*/
 
-static void FPT_dataXferProcessor(unsigned long port,
-                                 struct sccb_card *pCurrCard)
+static void FPT_dataXferProcessor(ULONG port, PSCCBcard pCurrCard)
 {
-       struct sccb *currSCCB;
-
-       currSCCB = pCurrCard->currentSCCB;
+   PSCCB currSCCB;
 
-       if (currSCCB->Sccb_XferState & F_SG_XFER) {
-               if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
-               {
-                       currSCCB->Sccb_sgseg += (unsigned char)SG_BUF_CNT;
-                       currSCCB->Sccb_SGoffset = 0x00;
-               }
-               pCurrCard->globalFlags |= F_HOST_XFER_ACT;
+   currSCCB = pCurrCard->currentSCCB;
 
-               FPT_busMstrSGDataXferStart(port, currSCCB);
-       }
+      if (currSCCB->Sccb_XferState & F_SG_XFER)
+                       {
+                       if (pCurrCard->globalFlags & F_HOST_XFER_ACT)
 
-       else {
-               if (!(pCurrCard->globalFlags & F_HOST_XFER_ACT)) {
+                               {
+                       currSCCB->Sccb_sgseg += (UCHAR)SG_BUF_CNT;
+               currSCCB->Sccb_SGoffset = 0x00; 
+                               }
                        pCurrCard->globalFlags |= F_HOST_XFER_ACT;
+         
+         FPT_busMstrSGDataXferStart(port, currSCCB);
+                       }
 
-                       FPT_busMstrDataXferStart(port, currSCCB);
-               }
-       }
+      else
+                       {
+                       if (!(pCurrCard->globalFlags & F_HOST_XFER_ACT))
+                               {
+                               pCurrCard->globalFlags |= F_HOST_XFER_ACT;
+         
+               FPT_busMstrDataXferStart(port, currSCCB);
+               }
+                       }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: BusMaster Scatter Gather Data Transfer Start
@@ -4973,101 +5563,104 @@ static void FPT_dataXferProcessor(unsigned long port,
  * Description:
  *
  *---------------------------------------------------------------------*/
-static void FPT_busMstrSGDataXferStart(unsigned long p_port,
-                                      struct sccb *pcurrSCCB)
+static void FPT_busMstrSGDataXferStart(ULONG p_port, PSCCB pcurrSCCB)
 {
-       unsigned long count, addr, tmpSGCnt;
-       unsigned int sg_index;
-       unsigned char sg_count, i;
-       unsigned long reg_offset;
+   ULONG count,addr,tmpSGCnt;
+   UINT sg_index;
+   UCHAR sg_count, i;
+   ULONG reg_offset;
 
-       if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
 
-               count = ((unsigned long)HOST_RD_CMD) << 24;
-       }
+   if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
 
-       else {
-               count = ((unsigned long)HOST_WRT_CMD) << 24;
-       }
+      count =  ((ULONG) HOST_RD_CMD)<<24;
+      }
 
-       sg_count = 0;
-       tmpSGCnt = 0;
-       sg_index = pcurrSCCB->Sccb_sgseg;
-       reg_offset = hp_aramBase;
+   else {
+      count =  ((ULONG) HOST_WRT_CMD)<<24;
+      }
 
-       i = (unsigned char)(RD_HARPOON(p_port + hp_page_ctrl) &
-                           ~(SGRAM_ARAM | SCATTER_EN));
+   sg_count = 0;
+   tmpSGCnt = 0;
+   sg_index = pcurrSCCB->Sccb_sgseg;
+   reg_offset = hp_aramBase;
 
-       WR_HARPOON(p_port + hp_page_ctrl, i);
 
-       while ((sg_count < (unsigned char)SG_BUF_CNT) &&
-              ((unsigned long)(sg_index * (unsigned int)SG_ELEMENT_SIZE) <
-               pcurrSCCB->DataLength)) {
+       i = (UCHAR) (RD_HARPOON(p_port+hp_page_ctrl) & ~(SGRAM_ARAM|SCATTER_EN));
 
-               tmpSGCnt += *(((unsigned long *)pcurrSCCB->DataPointer) +
-                             (sg_index * 2));
 
-               count |= *(((unsigned long *)pcurrSCCB->DataPointer) +
-                          (sg_index * 2));
+       WR_HARPOON(p_port+hp_page_ctrl, i);
 
-               addr = *(((unsigned long *)pcurrSCCB->DataPointer) +
-                        ((sg_index * 2) + 1));
+   while ((sg_count < (UCHAR)SG_BUF_CNT) &&
+      ((ULONG)(sg_index * (UINT)SG_ELEMENT_SIZE) < pcurrSCCB->DataLength) ) {
 
-               if ((!sg_count) && (pcurrSCCB->Sccb_SGoffset)) {
+      tmpSGCnt += *(((ULONG *)pcurrSCCB->DataPointer)+
+         (sg_index * 2));
 
-                       addr +=
-                           ((count & 0x00FFFFFFL) - pcurrSCCB->Sccb_SGoffset);
-                       count =
-                           (count & 0xFF000000L) | pcurrSCCB->Sccb_SGoffset;
+      count |= *(((ULONG *)pcurrSCCB->DataPointer)+
+         (sg_index * 2));
 
-                       tmpSGCnt = count & 0x00FFFFFFL;
-               }
+      addr = *(((ULONG *)pcurrSCCB->DataPointer)+
+         ((sg_index * 2) + 1));
 
-               WR_HARP32(p_port, reg_offset, addr);
-               reg_offset += 4;
 
-               WR_HARP32(p_port, reg_offset, count);
-               reg_offset += 4;
+      if ((!sg_count) && (pcurrSCCB->Sccb_SGoffset)) {
 
-               count &= 0xFF000000L;
-               sg_index++;
-               sg_count++;
+         addr += ((count & 0x00FFFFFFL) - pcurrSCCB->Sccb_SGoffset);
+         count = (count & 0xFF000000L) | pcurrSCCB->Sccb_SGoffset;
 
-       }                       /*End While */
+         tmpSGCnt = count & 0x00FFFFFFL;
+         }
 
-       pcurrSCCB->Sccb_XferCnt = tmpSGCnt;
+      WR_HARP32(p_port,reg_offset,addr);
+      reg_offset +=4;
 
-       WR_HARPOON(p_port + hp_sg_addr, (sg_count << 4));
+      WR_HARP32(p_port,reg_offset,count);
+      reg_offset +=4;
 
-       if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
+      count &= 0xFF000000L;
+      sg_index++;
+      sg_count++;
 
-               WR_HARP32(p_port, hp_xfercnt_0, tmpSGCnt);
+      } /*End While */
 
-               WR_HARPOON(p_port + hp_portctrl_0,
-                          (DMA_PORT | SCSI_PORT | SCSI_INBIT));
-               WR_HARPOON(p_port + hp_scsisig, S_DATAI_PH);
-       }
+   pcurrSCCB->Sccb_XferCnt = tmpSGCnt;
 
-       else {
+   WR_HARPOON(p_port+hp_sg_addr,(sg_count<<4));
 
-               if ((!(RD_HARPOON(p_port + hp_synctarg_0) & NARROW_SCSI)) &&
-                   (tmpSGCnt & 0x000000001)) {
+   if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
 
-                       pcurrSCCB->Sccb_XferState |= F_ODD_BALL_CNT;
-                       tmpSGCnt--;
-               }
+      WR_HARP32(p_port,hp_xfercnt_0,tmpSGCnt);
 
-               WR_HARP32(p_port, hp_xfercnt_0, tmpSGCnt);
 
-               WR_HARPOON(p_port + hp_portctrl_0,
-                          (SCSI_PORT | DMA_PORT | DMA_RD));
-               WR_HARPOON(p_port + hp_scsisig, S_DATAO_PH);
-       }
+      WR_HARPOON(p_port+hp_portctrl_0,(DMA_PORT | SCSI_PORT | SCSI_INBIT));
+      WR_HARPOON(p_port+hp_scsisig, S_DATAI_PH);
+      }
+
+   else {
+
+
+      if ((!(RD_HARPOON(p_port+hp_synctarg_0) & NARROW_SCSI)) &&
+         (tmpSGCnt & 0x000000001))
+         {
+
+         pcurrSCCB->Sccb_XferState |= F_ODD_BALL_CNT;
+         tmpSGCnt--;
+         }
+
 
-       WR_HARPOON(p_port + hp_page_ctrl, (unsigned char)(i | SCATTER_EN));
+      WR_HARP32(p_port,hp_xfercnt_0,tmpSGCnt);
+
+      WR_HARPOON(p_port+hp_portctrl_0,(SCSI_PORT | DMA_PORT | DMA_RD));
+      WR_HARPOON(p_port+hp_scsisig, S_DATAO_PH);
+      }
+
+
+   WR_HARPOON(p_port+hp_page_ctrl, (UCHAR) (i | SCATTER_EN));
 
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: BusMaster Data Transfer Start
@@ -5075,49 +5668,47 @@ static void FPT_busMstrSGDataXferStart(unsigned long p_port,
  * Description: 
  *
  *---------------------------------------------------------------------*/
-static void FPT_busMstrDataXferStart(unsigned long p_port,
-                                    struct sccb *pcurrSCCB)
+static void FPT_busMstrDataXferStart(ULONG p_port, PSCCB pcurrSCCB)
 {
-       unsigned long addr, count;
+   ULONG addr,count;
 
-       if (!(pcurrSCCB->Sccb_XferState & F_AUTO_SENSE)) {
+   if (!(pcurrSCCB->Sccb_XferState & F_AUTO_SENSE)) {
 
-               count = pcurrSCCB->Sccb_XferCnt;
+      count = pcurrSCCB->Sccb_XferCnt;
 
-               addr =
-                   (unsigned long)pcurrSCCB->DataPointer + pcurrSCCB->Sccb_ATC;
-       }
+      addr = (ULONG) pcurrSCCB->DataPointer + pcurrSCCB->Sccb_ATC;
+      }
 
-       else {
-               addr = pcurrSCCB->SensePointer;
-               count = pcurrSCCB->RequestSenseLength;
+   else {
+      addr = pcurrSCCB->SensePointer;
+      count = pcurrSCCB->RequestSenseLength;
 
-       }
+      }
 
-       HP_SETUP_ADDR_CNT(p_port, addr, count);
+   HP_SETUP_ADDR_CNT(p_port,addr,count);
 
-       if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
 
-               WR_HARPOON(p_port + hp_portctrl_0,
-                          (DMA_PORT | SCSI_PORT | SCSI_INBIT));
-               WR_HARPOON(p_port + hp_scsisig, S_DATAI_PH);
+   if (pcurrSCCB->Sccb_XferState & F_HOST_XFER_DIR) {
 
-               WR_HARPOON(p_port + hp_xfer_cmd,
-                          (XFER_DMA_HOST | XFER_HOST_AUTO | XFER_DMA_8BIT));
-       }
+      WR_HARPOON(p_port+hp_portctrl_0,(DMA_PORT | SCSI_PORT | SCSI_INBIT));
+      WR_HARPOON(p_port+hp_scsisig, S_DATAI_PH);
 
-       else {
+      WR_HARPOON(p_port+hp_xfer_cmd,
+         (XFER_DMA_HOST | XFER_HOST_AUTO | XFER_DMA_8BIT));
+      }
 
-               WR_HARPOON(p_port + hp_portctrl_0,
-                          (SCSI_PORT | DMA_PORT | DMA_RD));
-               WR_HARPOON(p_port + hp_scsisig, S_DATAO_PH);
+   else {
 
-               WR_HARPOON(p_port + hp_xfer_cmd,
-                          (XFER_HOST_DMA | XFER_HOST_AUTO | XFER_DMA_8BIT));
+      WR_HARPOON(p_port+hp_portctrl_0,(SCSI_PORT | DMA_PORT | DMA_RD));
+      WR_HARPOON(p_port+hp_scsisig, S_DATAO_PH);
 
-       }
+      WR_HARPOON(p_port+hp_xfer_cmd,
+         (XFER_HOST_DMA | XFER_HOST_AUTO | XFER_DMA_8BIT));
+
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: BusMaster Timeout Handler
@@ -5130,38 +5721,37 @@ static void FPT_busMstrDataXferStart(unsigned long p_port,
  *               command busy is also time out, it'll just give up.
  *
  *---------------------------------------------------------------------*/
-static unsigned char FPT_busMstrTimeOut(unsigned long p_port)
+static UCHAR FPT_busMstrTimeOut(ULONG p_port)
 {
-       unsigned long timeout;
+   ULONG timeout;
 
-       timeout = LONG_WAIT;
+   timeout = LONG_WAIT;
 
-       WR_HARPOON(p_port + hp_sys_ctrl, HALT_MACH);
+   WR_HARPOON(p_port+hp_sys_ctrl, HALT_MACH);
 
-       while ((!(RD_HARPOON(p_port + hp_ext_status) & CMD_ABORTED))
-              && timeout--) {
-       }
+   while ((!(RD_HARPOON(p_port+hp_ext_status) & CMD_ABORTED)) && timeout--) {}
 
-       if (RD_HARPOON(p_port + hp_ext_status) & BM_CMD_BUSY) {
-               WR_HARPOON(p_port + hp_sys_ctrl, HARD_ABORT);
+   
+   
+   if (RD_HARPOON(p_port+hp_ext_status) & BM_CMD_BUSY) {
+      WR_HARPOON(p_port+hp_sys_ctrl, HARD_ABORT);
 
-               timeout = LONG_WAIT;
-               while ((RD_HARPOON(p_port + hp_ext_status) & BM_CMD_BUSY)
-                      && timeout--) {
-               }
-       }
+      timeout = LONG_WAIT;
+      while ((RD_HARPOON(p_port+hp_ext_status) & BM_CMD_BUSY) && timeout--) {}
+      }
 
-       RD_HARPOON(p_port + hp_int_status);     /*Clear command complete */
+   RD_HARPOON(p_port+hp_int_status);           /*Clear command complete */
 
-       if (RD_HARPOON(p_port + hp_ext_status) & BM_CMD_BUSY) {
-               return 1;
-       }
+   if (RD_HARPOON(p_port+hp_ext_status) & BM_CMD_BUSY) {
+      return(1);
+      }
 
-       else {
-               return 0;
-       }
+   else {
+      return(0);
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Host Data Transfer Abort
@@ -5169,282 +5759,256 @@ static unsigned char FPT_busMstrTimeOut(unsigned long p_port)
  * Description: Abort any in progress transfer.
  *
  *---------------------------------------------------------------------*/
-static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card,
-                                 struct sccb *pCurrSCCB)
+static void FPT_hostDataXferAbort(ULONG port, UCHAR p_card, PSCCB pCurrSCCB)
 {
 
-       unsigned long timeout;
-       unsigned long remain_cnt;
-       unsigned int sg_ptr;
+   ULONG timeout;
+   ULONG remain_cnt;
+   UINT sg_ptr;
 
-       FPT_BL_Card[p_card].globalFlags &= ~F_HOST_XFER_ACT;
+   FPT_BL_Card[p_card].globalFlags &= ~F_HOST_XFER_ACT;
 
-       if (pCurrSCCB->Sccb_XferState & F_AUTO_SENSE) {
+   if (pCurrSCCB->Sccb_XferState & F_AUTO_SENSE) {
 
-               if (!(RD_HARPOON(port + hp_int_status) & INT_CMD_COMPL)) {
 
-                       WR_HARPOON(port + hp_bm_ctrl,
-                                  (RD_HARPOON(port + hp_bm_ctrl) |
-                                   FLUSH_XFER_CNTR));
-                       timeout = LONG_WAIT;
+      if (!(RD_HARPOON(port+hp_int_status) & INT_CMD_COMPL)) {
 
-                       while ((RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY)
-                              && timeout--) {
-                       }
+         WR_HARPOON(port+hp_bm_ctrl, (RD_HARPOON(port+hp_bm_ctrl) | FLUSH_XFER_CNTR));
+         timeout = LONG_WAIT;
 
-                       WR_HARPOON(port + hp_bm_ctrl,
-                                  (RD_HARPOON(port + hp_bm_ctrl) &
-                                   ~FLUSH_XFER_CNTR));
+         while ((RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) && timeout--) {}
 
-                       if (RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY) {
+         WR_HARPOON(port+hp_bm_ctrl, (RD_HARPOON(port+hp_bm_ctrl) & ~FLUSH_XFER_CNTR));
 
-                               if (FPT_busMstrTimeOut(port)) {
+         if (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) {
 
-                                       if (pCurrSCCB->HostStatus == 0x00)
+            if (FPT_busMstrTimeOut(port)) {
 
-                                               pCurrSCCB->HostStatus =
-                                                   SCCB_BM_ERR;
+               if (pCurrSCCB->HostStatus == 0x00)
 
-                               }
+                  pCurrSCCB->HostStatus = SCCB_BM_ERR;
 
-                               if (RD_HARPOON(port + hp_int_status) &
-                                   INT_EXT_STATUS)
+               }
 
-                                       if (RD_HARPOON(port + hp_ext_status) &
-                                           BAD_EXT_STATUS)
+            if (RD_HARPOON(port+hp_int_status) & INT_EXT_STATUS) 
 
-                                               if (pCurrSCCB->HostStatus ==
-                                                   0x00)
-                                               {
-                                                       pCurrSCCB->HostStatus =
-                                                           SCCB_BM_ERR;
-                                               }
-                       }
-               }
-       }
+               if (RD_HARPOON(port+hp_ext_status) & BAD_EXT_STATUS) 
 
-       else if (pCurrSCCB->Sccb_XferCnt) {
+                  if (pCurrSCCB->HostStatus == 0x00)
 
-               if (pCurrSCCB->Sccb_XferState & F_SG_XFER) {
+                     {
+                     pCurrSCCB->HostStatus = SCCB_BM_ERR;
+                     }
+            }
+         }
+      }
 
-                       WR_HARPOON(port + hp_page_ctrl,
-                                  (RD_HARPOON(port + hp_page_ctrl) &
-                                   ~SCATTER_EN));
+   else if (pCurrSCCB->Sccb_XferCnt) {
 
-                       WR_HARPOON(port + hp_sg_addr, 0x00);
+      if (pCurrSCCB->Sccb_XferState & F_SG_XFER) {
 
-                       sg_ptr = pCurrSCCB->Sccb_sgseg + SG_BUF_CNT;
 
-                       if (sg_ptr >
-                           (unsigned int)(pCurrSCCB->DataLength /
-                                          SG_ELEMENT_SIZE)) {
+              WR_HARPOON(port+hp_page_ctrl, (RD_HARPOON(port+hp_page_ctrl) &
+            ~SCATTER_EN));
 
-                               sg_ptr =
-                                   (unsigned int)(pCurrSCCB->DataLength /
-                                                  SG_ELEMENT_SIZE);
-                       }
+         WR_HARPOON(port+hp_sg_addr,0x00);
 
-                       remain_cnt = pCurrSCCB->Sccb_XferCnt;
+         sg_ptr = pCurrSCCB->Sccb_sgseg + SG_BUF_CNT;
 
-                       while (remain_cnt < 0x01000000L) {
+         if (sg_ptr > (UINT)(pCurrSCCB->DataLength / SG_ELEMENT_SIZE)) {
 
-                               sg_ptr--;
+            sg_ptr = (UINT)(pCurrSCCB->DataLength / SG_ELEMENT_SIZE);
+            }
 
-                               if (remain_cnt >
-                                   (unsigned
-                                    long)(*(((unsigned long *)pCurrSCCB->
-                                             DataPointer) + (sg_ptr * 2)))) {
+         remain_cnt = pCurrSCCB->Sccb_XferCnt;
 
-                                       remain_cnt -=
-                                           (unsigned
-                                            long)(*(((unsigned long *)
-                                                     pCurrSCCB->DataPointer) +
-                                                    (sg_ptr * 2)));
-                               }
+         while (remain_cnt < 0x01000000L) {
 
-                               else {
+            sg_ptr--;
 
-                                       break;
-                               }
-                       }
+            if (remain_cnt > (ULONG)(*(((ULONG *)pCurrSCCB->
+               DataPointer) + (sg_ptr * 2)))) {
 
-                       if (remain_cnt < 0x01000000L) {
+               remain_cnt -= (ULONG)(*(((ULONG *)pCurrSCCB->
+                  DataPointer) + (sg_ptr * 2)));
+               }
 
-                               pCurrSCCB->Sccb_SGoffset = remain_cnt;
+            else {
 
-                               pCurrSCCB->Sccb_sgseg = (unsigned short)sg_ptr;
+               break;
+               }
+            }
 
-                               if ((unsigned long)(sg_ptr * SG_ELEMENT_SIZE) ==
-                                   pCurrSCCB->DataLength && (remain_cnt == 0))
 
-                                       pCurrSCCB->Sccb_XferState |=
-                                           F_ALL_XFERRED;
-                       }
 
-                       else {
+         if (remain_cnt < 0x01000000L) {
 
-                               if (pCurrSCCB->HostStatus == 0x00) {
 
-                                       pCurrSCCB->HostStatus =
-                                           SCCB_GROSS_FW_ERR;
-                               }
-                       }
-               }
+            pCurrSCCB->Sccb_SGoffset = remain_cnt;
 
-               if (!(pCurrSCCB->Sccb_XferState & F_HOST_XFER_DIR)) {
+            pCurrSCCB->Sccb_sgseg = (USHORT)sg_ptr;
 
-                       if (RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY) {
 
-                               FPT_busMstrTimeOut(port);
-                       }
+            if ((ULONG)(sg_ptr * SG_ELEMENT_SIZE) == pCurrSCCB->DataLength 
+                && (remain_cnt == 0))
 
-                       else {
+               pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED;
+            }
 
-                               if (RD_HARPOON(port + hp_int_status) &
-                                   INT_EXT_STATUS) {
+         else {
 
-                                       if (RD_HARPOON(port + hp_ext_status) &
-                                           BAD_EXT_STATUS) {
 
-                                               if (pCurrSCCB->HostStatus ==
-                                                   0x00) {
+            if (pCurrSCCB->HostStatus == 0x00) {
 
-                                                       pCurrSCCB->HostStatus =
-                                                           SCCB_BM_ERR;
-                                               }
-                                       }
-                               }
+               pCurrSCCB->HostStatus = SCCB_GROSS_FW_ERR;
+               }
+            }
+         }
 
-                       }
-               }
 
-               else {
+      if (!(pCurrSCCB->Sccb_XferState & F_HOST_XFER_DIR)) {
 
-                       if ((RD_HARPOON(port + hp_fifo_cnt)) >= BM_THRESHOLD) {
 
-                               timeout = SHORT_WAIT;
+         if (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) {
 
-                               while ((RD_HARPOON(port + hp_ext_status) &
-                                       BM_CMD_BUSY)
-                                      && ((RD_HARPOON(port + hp_fifo_cnt)) >=
-                                          BM_THRESHOLD) && timeout--) {
-                               }
-                       }
+            FPT_busMstrTimeOut(port);
+            }
 
-                       if (RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY) {
+         else {
 
-                               WR_HARPOON(port + hp_bm_ctrl,
-                                          (RD_HARPOON(port + hp_bm_ctrl) |
-                                           FLUSH_XFER_CNTR));
+            if (RD_HARPOON(port+hp_int_status) & INT_EXT_STATUS) {
 
-                               timeout = LONG_WAIT;
+               if (RD_HARPOON(port+hp_ext_status) & BAD_EXT_STATUS) {
 
-                               while ((RD_HARPOON(port + hp_ext_status) &
-                                       BM_CMD_BUSY) && timeout--) {
-                               }
+                  if (pCurrSCCB->HostStatus == 0x00) {
 
-                               WR_HARPOON(port + hp_bm_ctrl,
-                                          (RD_HARPOON(port + hp_bm_ctrl) &
-                                           ~FLUSH_XFER_CNTR));
+                     pCurrSCCB->HostStatus = SCCB_BM_ERR;
+                     }
+                  }
+               }
 
-                               if (RD_HARPOON(port + hp_ext_status) &
-                                   BM_CMD_BUSY) {
+            }
+         }
 
-                                       if (pCurrSCCB->HostStatus == 0x00) {
+      else {
 
-                                               pCurrSCCB->HostStatus =
-                                                   SCCB_BM_ERR;
-                                       }
 
-                                       FPT_busMstrTimeOut(port);
-                               }
-                       }
+         if ((RD_HARPOON(port+hp_fifo_cnt)) >= BM_THRESHOLD) {
 
-                       if (RD_HARPOON(port + hp_int_status) & INT_EXT_STATUS) {
+            timeout = SHORT_WAIT;
 
-                               if (RD_HARPOON(port + hp_ext_status) &
-                                   BAD_EXT_STATUS) {
+            while ((RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) &&
+               ((RD_HARPOON(port+hp_fifo_cnt)) >= BM_THRESHOLD) &&
+               timeout--) {}
+            }
 
-                                       if (pCurrSCCB->HostStatus == 0x00) {
+         if (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) {
 
-                                               pCurrSCCB->HostStatus =
-                                                   SCCB_BM_ERR;
-                                       }
-                               }
-                       }
-               }
+            WR_HARPOON(port+hp_bm_ctrl, (RD_HARPOON(port+hp_bm_ctrl) |
+               FLUSH_XFER_CNTR));
 
-       }
+            timeout = LONG_WAIT;
 
-       else {
+            while ((RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) &&
+               timeout--) {}
 
-               if (RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY) {
+            WR_HARPOON(port+hp_bm_ctrl, (RD_HARPOON(port+hp_bm_ctrl) &
+               ~FLUSH_XFER_CNTR));
 
-                       timeout = LONG_WAIT;
 
-                       while ((RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY)
-                              && timeout--) {
-                       }
+            if (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) {
 
-                       if (RD_HARPOON(port + hp_ext_status) & BM_CMD_BUSY) {
+               if (pCurrSCCB->HostStatus == 0x00) {
 
-                               if (pCurrSCCB->HostStatus == 0x00) {
+                  pCurrSCCB->HostStatus = SCCB_BM_ERR;
+                  }
 
-                                       pCurrSCCB->HostStatus = SCCB_BM_ERR;
-                               }
+               FPT_busMstrTimeOut(port);
+               }
+            }
 
-                               FPT_busMstrTimeOut(port);
-                       }
-               }
+         if (RD_HARPOON(port+hp_int_status) & INT_EXT_STATUS) {
 
-               if (RD_HARPOON(port + hp_int_status) & INT_EXT_STATUS) {
+            if (RD_HARPOON(port+hp_ext_status) & BAD_EXT_STATUS) {
 
-                       if (RD_HARPOON(port + hp_ext_status) & BAD_EXT_STATUS) {
+               if (pCurrSCCB->HostStatus == 0x00) {
 
-                               if (pCurrSCCB->HostStatus == 0x00) {
+                  pCurrSCCB->HostStatus = SCCB_BM_ERR;
+                  }
+               }
+            }
+         }
 
-                                       pCurrSCCB->HostStatus = SCCB_BM_ERR;
-                               }
-                       }
+      }
 
-               }
+   else {
 
-               if (pCurrSCCB->Sccb_XferState & F_SG_XFER) {
 
-                       WR_HARPOON(port + hp_page_ctrl,
-                                  (RD_HARPOON(port + hp_page_ctrl) &
-                                   ~SCATTER_EN));
+      if (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) {
 
-                       WR_HARPOON(port + hp_sg_addr, 0x00);
+         timeout = LONG_WAIT;
 
-                       pCurrSCCB->Sccb_sgseg += SG_BUF_CNT;
+         while ((RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) && timeout--) {}
 
-                       pCurrSCCB->Sccb_SGoffset = 0x00;
+         if (RD_HARPOON(port+hp_ext_status) & BM_CMD_BUSY) {
 
-                       if ((unsigned long)(pCurrSCCB->Sccb_sgseg *
-                                           SG_ELEMENT_SIZE) >=
-                           pCurrSCCB->DataLength) {
+            if (pCurrSCCB->HostStatus == 0x00) {
 
-                               pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED;
+               pCurrSCCB->HostStatus = SCCB_BM_ERR;
+               }
 
-                               pCurrSCCB->Sccb_sgseg =
-                                   (unsigned short)(pCurrSCCB->DataLength /
-                                                    SG_ELEMENT_SIZE);
+            FPT_busMstrTimeOut(port);
+            }
+         }
 
-                       }
-               }
 
-               else {
+      if (RD_HARPOON(port+hp_int_status) & INT_EXT_STATUS) {
 
-                       if (!(pCurrSCCB->Sccb_XferState & F_AUTO_SENSE))
+         if (RD_HARPOON(port+hp_ext_status) & BAD_EXT_STATUS) {
 
-                               pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED;
-               }
-       }
+            if (pCurrSCCB->HostStatus == 0x00) {
+
+               pCurrSCCB->HostStatus = SCCB_BM_ERR;
+               }
+            }
+
+         }
+
+      if (pCurrSCCB->Sccb_XferState & F_SG_XFER) {
+
+         WR_HARPOON(port+hp_page_ctrl, (RD_HARPOON(port+hp_page_ctrl) &
+                 ~SCATTER_EN));
+
+         WR_HARPOON(port+hp_sg_addr,0x00);
+
+         pCurrSCCB->Sccb_sgseg += SG_BUF_CNT;
+
+         pCurrSCCB->Sccb_SGoffset = 0x00; 
 
-       WR_HARPOON(port + hp_int_mask, (INT_CMD_COMPL | SCSI_INTERRUPT));
+
+         if ((ULONG)(pCurrSCCB->Sccb_sgseg * SG_ELEMENT_SIZE) >=
+            pCurrSCCB->DataLength) {
+
+            pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED;
+
+            pCurrSCCB->Sccb_sgseg = (USHORT)(pCurrSCCB->DataLength / SG_ELEMENT_SIZE);
+
+            }
+         }
+
+      else {
+
+         if (!(pCurrSCCB->Sccb_XferState & F_AUTO_SENSE))
+
+            pCurrSCCB->Sccb_XferState |= F_ALL_XFERRED;
+         }
+      }
+
+   WR_HARPOON(port+hp_int_mask,(INT_CMD_COMPL | SCSI_INTERRUPT));
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: Host Data Transfer Restart
@@ -5453,47 +6017,47 @@ static void FPT_hostDataXferAbort(unsigned long port, unsigned char p_card,
  *              pointers message.
  *
  *---------------------------------------------------------------------*/
-static void FPT_hostDataXferRestart(struct sccb *currSCCB)
+static void FPT_hostDataXferRestart(PSCCB currSCCB)
 {
-       unsigned long data_count;
-       unsigned int sg_index;
-       unsigned long *sg_ptr;
+   ULONG data_count;
+   UINT  sg_index;
+   ULONG *sg_ptr;
 
-       if (currSCCB->Sccb_XferState & F_SG_XFER) {
+   if (currSCCB->Sccb_XferState & F_SG_XFER) {
 
-               currSCCB->Sccb_XferCnt = 0;
+      currSCCB->Sccb_XferCnt = 0;
 
-               sg_index = 0xffff;      /*Index by long words into sg list. */
-               data_count = 0; /*Running count of SG xfer counts. */
+      sg_index = 0xffff;         /*Index by long words into sg list. */
+      data_count = 0;            /*Running count of SG xfer counts. */
 
-               sg_ptr = (unsigned long *)currSCCB->DataPointer;
+      sg_ptr = (ULONG *)currSCCB->DataPointer;
 
-               while (data_count < currSCCB->Sccb_ATC) {
+      while (data_count < currSCCB->Sccb_ATC) {
 
-                       sg_index++;
-                       data_count += *(sg_ptr + (sg_index * 2));
-               }
+         sg_index++;
+         data_count += *(sg_ptr+(sg_index * 2));
+         }
 
-               if (data_count == currSCCB->Sccb_ATC) {
+      if (data_count == currSCCB->Sccb_ATC) {
 
-                       currSCCB->Sccb_SGoffset = 0;
-                       sg_index++;
-               }
+         currSCCB->Sccb_SGoffset = 0;
+         sg_index++;
+         }
 
-               else {
-                       currSCCB->Sccb_SGoffset =
-                           data_count - currSCCB->Sccb_ATC;
-               }
+      else {
+         currSCCB->Sccb_SGoffset = data_count - currSCCB->Sccb_ATC;
+         }
 
-               currSCCB->Sccb_sgseg = (unsigned short)sg_index;
-       }
+      currSCCB->Sccb_sgseg = (USHORT)sg_index;
+      }
 
-       else {
-               currSCCB->Sccb_XferCnt =
-                   currSCCB->DataLength - currSCCB->Sccb_ATC;
-       }
+   else {
+      currSCCB->Sccb_XferCnt = currSCCB->DataLength - currSCCB->Sccb_ATC;
+      }
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scini
@@ -5502,192 +6066,177 @@ static void FPT_hostDataXferRestart(struct sccb *currSCCB)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scini(unsigned char p_card, unsigned char p_our_id,
-                     unsigned char p_power_up)
+static void FPT_scini(UCHAR p_card, UCHAR p_our_id, UCHAR p_power_up)
 {
 
-       unsigned char loser, assigned_id;
-       unsigned long p_port;
+   UCHAR loser,assigned_id;
+   ULONG p_port;
 
-       unsigned char i, k, ScamFlg;
-       struct sccb_card *currCard;
-       struct nvram_info *pCurrNvRam;
+   UCHAR i,k,ScamFlg ;
+   PSCCBcard currCard;
+       PNVRamInfo pCurrNvRam;
 
-       currCard = &FPT_BL_Card[p_card];
-       p_port = currCard->ioPort;
+   currCard = &FPT_BL_Card[p_card];
+   p_port = currCard->ioPort;
        pCurrNvRam = currCard->pNvRamInfo;
 
-       if (pCurrNvRam) {
+
+       if(pCurrNvRam){
                ScamFlg = pCurrNvRam->niScamConf;
                i = pCurrNvRam->niSysConf;
-       } else {
-               ScamFlg =
-                   (unsigned char)FPT_utilEERead(p_port, SCAM_CONFIG / 2);
-               i = (unsigned
-                    char)(FPT_utilEERead(p_port, (SYSTEM_CONFIG / 2)));
        }
-       if (!(i & 0x02))        /* check if reset bus in AutoSCSI parameter set */
+       else{
+          ScamFlg = (UCHAR) FPT_utilEERead(p_port, SCAM_CONFIG/2);
+          i = (UCHAR)(FPT_utilEERead(p_port, (SYSTEM_CONFIG/2)));
+       }
+       if(!(i & 0x02)) /* check if reset bus in AutoSCSI parameter set */
                return;
 
-       FPT_inisci(p_card, p_port, p_our_id);
+   FPT_inisci(p_card,p_port, p_our_id);
 
-       /* Force to wait 1 sec after SCSI bus reset. Some SCAM device FW
-          too slow to return to SCAM selection */
+   /* Force to wait 1 sec after SCSI bus reset. Some SCAM device FW
+      too slow to return to SCAM selection */
 
-       /* if (p_power_up)
-          FPT_Wait1Second(p_port);
-          else
-          FPT_Wait(p_port, TO_250ms); */
+   /* if (p_power_up)
+         FPT_Wait1Second(p_port);
+      else
+         FPT_Wait(p_port, TO_250ms); */
 
-       FPT_Wait1Second(p_port);
+   FPT_Wait1Second(p_port);
 
-       if ((ScamFlg & SCAM_ENABLED) && (ScamFlg & SCAM_LEVEL2)) {
-               while (!(FPT_scarb(p_port, INIT_SELTD))) {
-               }
+   if ((ScamFlg & SCAM_ENABLED) && (ScamFlg & SCAM_LEVEL2))
+      {
+      while (!(FPT_scarb(p_port,INIT_SELTD))) {}
 
-               FPT_scsel(p_port);
+      FPT_scsel(p_port);
 
-               do {
-                       FPT_scxferc(p_port, SYNC_PTRN);
-                       FPT_scxferc(p_port, DOM_MSTR);
-                       loser =
-                           FPT_scsendi(p_port,
-                                       &FPT_scamInfo[p_our_id].id_string[0]);
-               } while (loser == 0xFF);
+      do {
+         FPT_scxferc(p_port,SYNC_PTRN);
+         FPT_scxferc(p_port,DOM_MSTR);
+         loser = FPT_scsendi(p_port,&FPT_scamInfo[p_our_id].id_string[0]);
+         } while ( loser == 0xFF );
 
-               FPT_scbusf(p_port);
+      FPT_scbusf(p_port);
 
-               if ((p_power_up) && (!loser)) {
-                       FPT_sresb(p_port, p_card);
-                       FPT_Wait(p_port, TO_250ms);
+      if ((p_power_up) && (!loser))
+         {
+         FPT_sresb(p_port,p_card);
+         FPT_Wait(p_port, TO_250ms);
 
-                       while (!(FPT_scarb(p_port, INIT_SELTD))) {
-                       }
+         while (!(FPT_scarb(p_port,INIT_SELTD))) {}
 
-                       FPT_scsel(p_port);
+         FPT_scsel(p_port);
 
-                       do {
-                               FPT_scxferc(p_port, SYNC_PTRN);
-                               FPT_scxferc(p_port, DOM_MSTR);
-                               loser =
-                                   FPT_scsendi(p_port,
-                                               &FPT_scamInfo[p_our_id].
-                                               id_string[0]);
-                       } while (loser == 0xFF);
+         do {
+            FPT_scxferc(p_port, SYNC_PTRN);
+            FPT_scxferc(p_port, DOM_MSTR);
+            loser = FPT_scsendi(p_port,&FPT_scamInfo[p_our_id].
+               id_string[0]);
+            } while ( loser == 0xFF );
 
-                       FPT_scbusf(p_port);
-               }
-       }
+         FPT_scbusf(p_port);
+         }
+      }
 
-       else {
-               loser = 0;
-       }
+   else
+      {
+      loser = 0;
+      }
 
-       if (!loser) {
-
-               FPT_scamInfo[p_our_id].state = ID_ASSIGNED;
-
-               if (ScamFlg & SCAM_ENABLED) {
-
-                       for (i = 0; i < MAX_SCSI_TAR; i++) {
-                               if ((FPT_scamInfo[i].state == ID_UNASSIGNED) ||
-                                   (FPT_scamInfo[i].state == ID_UNUSED)) {
-                                       if (FPT_scsell(p_port, i)) {
-                                               FPT_scamInfo[i].state = LEGACY;
-                                               if ((FPT_scamInfo[i].
-                                                    id_string[0] != 0xFF)
-                                                   || (FPT_scamInfo[i].
-                                                       id_string[1] != 0xFA)) {
-
-                                                       FPT_scamInfo[i].
-                                                           id_string[0] = 0xFF;
-                                                       FPT_scamInfo[i].
-                                                           id_string[1] = 0xFA;
-                                                       if (pCurrNvRam == NULL)
-                                                               currCard->
-                                                                   globalFlags
-                                                                   |=
-                                                                   F_UPDATE_EEPROM;
-                                               }
-                                       }
-                               }
-                       }
 
-                       FPT_sresb(p_port, p_card);
-                       FPT_Wait1Second(p_port);
-                       while (!(FPT_scarb(p_port, INIT_SELTD))) {
-                       }
-                       FPT_scsel(p_port);
-                       FPT_scasid(p_card, p_port);
-               }
+   if (!loser)
+      {
 
-       }
+      FPT_scamInfo[p_our_id].state = ID_ASSIGNED;
 
-       else if ((loser) && (ScamFlg & SCAM_ENABLED)) {
-               FPT_scamInfo[p_our_id].id_string[0] = SLV_TYPE_CODE0;
-               assigned_id = 0;
-               FPT_scwtsel(p_port);
 
-               do {
-                       while (FPT_scxferc(p_port, 0x00) != SYNC_PTRN) {
-                       }
+               if (ScamFlg & SCAM_ENABLED)
+               {
 
-                       i = FPT_scxferc(p_port, 0x00);
-                       if (i == ASSIGN_ID) {
-                               if (!
-                                   (FPT_scsendi
-                                    (p_port,
-                                     &FPT_scamInfo[p_our_id].id_string[0]))) {
-                                       i = FPT_scxferc(p_port, 0x00);
-                                       if (FPT_scvalq(i)) {
-                                               k = FPT_scxferc(p_port, 0x00);
-
-                                               if (FPT_scvalq(k)) {
-                                                       currCard->ourId =
-                                                           ((unsigned char)(i
-                                                                            <<
-                                                                            3)
-                                                            +
-                                                            (k &
-                                                             (unsigned char)7))
-                                                           & (unsigned char)
-                                                           0x3F;
-                                                       FPT_inisci(p_card,
-                                                                  p_port,
-                                                                  p_our_id);
-                                                       FPT_scamInfo[currCard->
-                                                                    ourId].
-                                                           state = ID_ASSIGNED;
-                                                       FPT_scamInfo[currCard->
-                                                                    ourId].
-                                                           id_string[0]
-                                                           = SLV_TYPE_CODE0;
-                                                       assigned_id = 1;
-                                               }
-                                       }
-                               }
-                       }
+             for (i=0; i < MAX_SCSI_TAR; i++)
+                  {
+          if ((FPT_scamInfo[i].state == ID_UNASSIGNED) ||
+                  (FPT_scamInfo[i].state == ID_UNUSED))
+                     {
+                  if (FPT_scsell(p_port,i))
+                  {
+                  FPT_scamInfo[i].state = LEGACY;
+                       if ((FPT_scamInfo[i].id_string[0] != 0xFF) ||
+                       (FPT_scamInfo[i].id_string[1] != 0xFA))
+                        {
+
+                             FPT_scamInfo[i].id_string[0] = 0xFF;
+                          FPT_scamInfo[i].id_string[1] = 0xFA;
+                                                       if(pCurrNvRam == NULL)
+                                currCard->globalFlags |= F_UPDATE_EEPROM;
+                       }
+                        }
+                  }
+       }
+
+             FPT_sresb(p_port,p_card);
+       FPT_Wait1Second(p_port);
+         while (!(FPT_scarb(p_port,INIT_SELTD))) {}
+         FPT_scsel(p_port);
+         FPT_scasid(p_card, p_port);
+         }
 
-                       else if (i == SET_P_FLAG) {
-                               if (!(FPT_scsendi(p_port,
-                                                 &FPT_scamInfo[p_our_id].
-                                                 id_string[0])))
-                                       FPT_scamInfo[p_our_id].id_string[0] |=
-                                           0x80;
-                       }
-               } while (!assigned_id);
+      }
 
-               while (FPT_scxferc(p_port, 0x00) != CFG_CMPLT) {
-               }
-       }
+   else if ((loser) && (ScamFlg & SCAM_ENABLED))
+      {
+      FPT_scamInfo[p_our_id].id_string[0] = SLV_TYPE_CODE0;
+      assigned_id = 0;
+      FPT_scwtsel(p_port);
+
+      do {
+         while (FPT_scxferc(p_port,0x00) != SYNC_PTRN) {}
+
+         i = FPT_scxferc(p_port,0x00);
+         if (i == ASSIGN_ID)
+            {
+            if (!(FPT_scsendi(p_port,&FPT_scamInfo[p_our_id].id_string[0])))
+                  {
+                  i = FPT_scxferc(p_port,0x00);
+                  if (FPT_scvalq(i))
+                     {
+                     k = FPT_scxferc(p_port,0x00);
+
+                     if (FPT_scvalq(k))
+                        {
+                        currCard->ourId =
+                           ((UCHAR)(i<<3)+(k & (UCHAR)7)) & (UCHAR) 0x3F;
+                        FPT_inisci(p_card, p_port, p_our_id);
+                        FPT_scamInfo[currCard->ourId].state = ID_ASSIGNED;
+                        FPT_scamInfo[currCard->ourId].id_string[0]
+                           = SLV_TYPE_CODE0;
+                        assigned_id = 1;
+                        }
+                     }
+                  }
+            }
+
+         else if (i == SET_P_FLAG)
+            {
+               if (!(FPT_scsendi(p_port,
+                        &FPT_scamInfo[p_our_id].id_string[0])))
+                        FPT_scamInfo[p_our_id].id_string[0] |= 0x80;
+            }
+         }while (!assigned_id);
+
+      while (FPT_scxferc(p_port,0x00) != CFG_CMPLT) {}
+      }
+
+   if (ScamFlg & SCAM_ENABLED)
+      {
+      FPT_scbusf(p_port);
+      if (currCard->globalFlags & F_UPDATE_EEPROM)
+         {
+         FPT_scsavdi(p_card, p_port);
+         currCard->globalFlags &= ~F_UPDATE_EEPROM;
+         }
+      }
 
-       if (ScamFlg & SCAM_ENABLED) {
-               FPT_scbusf(p_port);
-               if (currCard->globalFlags & F_UPDATE_EEPROM) {
-                       FPT_scsavdi(p_card, p_port);
-                       currCard->globalFlags &= ~F_UPDATE_EEPROM;
-               }
-       }
 
 /*
    for (i=0,k=0; i < MAX_SCSI_TAR; i++)
@@ -5704,6 +6253,7 @@ static void FPT_scini(unsigned char p_card, unsigned char p_our_id,
 */
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scarb
@@ -5712,60 +6262,59 @@ static void FPT_scini(unsigned char p_card, unsigned char p_our_id,
  *
  *---------------------------------------------------------------------*/
 
-static int FPT_scarb(unsigned long p_port, unsigned char p_sel_type)
+static int FPT_scarb(ULONG p_port, UCHAR p_sel_type)
 {
-       if (p_sel_type == INIT_SELTD) {
+   if (p_sel_type == INIT_SELTD)
+      {
 
-               while (RD_HARPOON(p_port + hp_scsisig) & (SCSI_SEL | SCSI_BSY)) {
-               }
+      while (RD_HARPOON(p_port+hp_scsisig) & (SCSI_SEL | SCSI_BSY)) {}
 
-               if (RD_HARPOON(p_port + hp_scsisig) & SCSI_SEL)
-                       return 0;
 
-               if (RD_HARPOON(p_port + hp_scsidata_0) != 00)
-                       return 0;
+      if (RD_HARPOON(p_port+hp_scsisig) & SCSI_SEL)
+         return(0);
 
-               WR_HARPOON(p_port + hp_scsisig,
-                          (RD_HARPOON(p_port + hp_scsisig) | SCSI_BSY));
+      if (RD_HARPOON(p_port+hp_scsidata_0) != 00)
+         return(0);
 
-               if (RD_HARPOON(p_port + hp_scsisig) & SCSI_SEL) {
+      WR_HARPOON(p_port+hp_scsisig, (RD_HARPOON(p_port+hp_scsisig) | SCSI_BSY));
 
-                       WR_HARPOON(p_port + hp_scsisig,
-                                  (RD_HARPOON(p_port + hp_scsisig) &
-                                   ~SCSI_BSY));
-                       return 0;
-               }
+      if (RD_HARPOON(p_port+hp_scsisig) & SCSI_SEL) {
 
-               WR_HARPOON(p_port + hp_scsisig,
-                          (RD_HARPOON(p_port + hp_scsisig) | SCSI_SEL));
+         WR_HARPOON(p_port+hp_scsisig, (RD_HARPOON(p_port+hp_scsisig) &
+            ~SCSI_BSY));
+         return(0);
+         }
 
-               if (RD_HARPOON(p_port + hp_scsidata_0) != 00) {
 
-                       WR_HARPOON(p_port + hp_scsisig,
-                                  (RD_HARPOON(p_port + hp_scsisig) &
-                                   ~(SCSI_BSY | SCSI_SEL)));
-                       return 0;
-               }
-       }
+      WR_HARPOON(p_port+hp_scsisig, (RD_HARPOON(p_port+hp_scsisig) | SCSI_SEL));
+
+      if (RD_HARPOON(p_port+hp_scsidata_0) != 00) {
+
+         WR_HARPOON(p_port+hp_scsisig, (RD_HARPOON(p_port+hp_scsisig) &
+            ~(SCSI_BSY | SCSI_SEL)));
+         return(0);
+         }
+      }
 
-       WR_HARPOON(p_port + hp_clkctrl_0, (RD_HARPOON(p_port + hp_clkctrl_0)
-                                          & ~ACTdeassert));
-       WR_HARPOON(p_port + hp_scsireset, SCAM_EN);
-       WR_HARPOON(p_port + hp_scsidata_0, 0x00);
-       WR_HARPOON(p_port + hp_scsidata_1, 0x00);
-       WR_HARPOON(p_port + hp_portctrl_0, SCSI_BUS_EN);
 
-       WR_HARPOON(p_port + hp_scsisig,
-                  (RD_HARPOON(p_port + hp_scsisig) | SCSI_MSG));
+   WR_HARPOON(p_port+hp_clkctrl_0, (RD_HARPOON(p_port+hp_clkctrl_0)
+      & ~ACTdeassert));
+   WR_HARPOON(p_port+hp_scsireset, SCAM_EN);
+   WR_HARPOON(p_port+hp_scsidata_0, 0x00);
+   WR_HARPOON(p_port+hp_scsidata_1, 0x00);
+   WR_HARPOON(p_port+hp_portctrl_0, SCSI_BUS_EN);
 
-       WR_HARPOON(p_port + hp_scsisig, (RD_HARPOON(p_port + hp_scsisig)
-                                        & ~SCSI_BSY));
+   WR_HARPOON(p_port+hp_scsisig, (RD_HARPOON(p_port+hp_scsisig) | SCSI_MSG));
 
-       FPT_Wait(p_port, TO_250ms);
+   WR_HARPOON(p_port+hp_scsisig, (RD_HARPOON(p_port+hp_scsisig)
+      & ~SCSI_BSY));
 
-       return 1;
+   FPT_Wait(p_port,TO_250ms);
+
+   return(1);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scbusf
@@ -5774,30 +6323,34 @@ static int FPT_scarb(unsigned long p_port, unsigned char p_sel_type)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scbusf(unsigned long p_port)
+static void FPT_scbusf(ULONG p_port)
 {
-       WR_HARPOON(p_port + hp_page_ctrl,
-                  (RD_HARPOON(p_port + hp_page_ctrl) | G_INT_DISABLE));
+   WR_HARPOON(p_port+hp_page_ctrl,
+      (RD_HARPOON(p_port+hp_page_ctrl) | G_INT_DISABLE));
+
 
-       WR_HARPOON(p_port + hp_scsidata_0, 0x00);
+   WR_HARPOON(p_port+hp_scsidata_0, 0x00);
 
-       WR_HARPOON(p_port + hp_portctrl_0, (RD_HARPOON(p_port + hp_portctrl_0)
-                                           & ~SCSI_BUS_EN));
+   WR_HARPOON(p_port+hp_portctrl_0, (RD_HARPOON(p_port+hp_portctrl_0)
+      & ~SCSI_BUS_EN));
 
-       WR_HARPOON(p_port + hp_scsisig, 0x00);
+   WR_HARPOON(p_port+hp_scsisig, 0x00);
 
-       WR_HARPOON(p_port + hp_scsireset, (RD_HARPOON(p_port + hp_scsireset)
-                                          & ~SCAM_EN));
 
-       WR_HARPOON(p_port + hp_clkctrl_0, (RD_HARPOON(p_port + hp_clkctrl_0)
-                                          | ACTdeassert));
+   WR_HARPOON(p_port+hp_scsireset,  (RD_HARPOON(p_port+hp_scsireset)
+      & ~SCAM_EN));
 
-       WRW_HARPOON((p_port + hp_intstat), (BUS_FREE | AUTO_INT | SCAM_SEL));
+   WR_HARPOON(p_port+hp_clkctrl_0, (RD_HARPOON(p_port+hp_clkctrl_0)
+      | ACTdeassert));
 
-       WR_HARPOON(p_port + hp_page_ctrl,
-                  (RD_HARPOON(p_port + hp_page_ctrl) & ~G_INT_DISABLE));
+   WRW_HARPOON((p_port+hp_intstat), (BUS_FREE | AUTO_INT | SCAM_SEL));
+
+   WR_HARPOON(p_port+hp_page_ctrl,
+      (RD_HARPOON(p_port+hp_page_ctrl) & ~G_INT_DISABLE));
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scasid
@@ -5806,75 +6359,86 @@ static void FPT_scbusf(unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scasid(unsigned char p_card, unsigned long p_port)
+static void FPT_scasid(UCHAR p_card, ULONG p_port)
 {
-       unsigned char temp_id_string[ID_STRING_LENGTH];
+   UCHAR temp_id_string[ID_STRING_LENGTH];
 
-       unsigned char i, k, scam_id;
-       unsigned char crcBytes[3];
-       struct nvram_info *pCurrNvRam;
-       unsigned short *pCrcBytes;
+   UCHAR i,k,scam_id;
+       UCHAR crcBytes[3];
+       PNVRamInfo pCurrNvRam;
+       ushort_ptr pCrcBytes;
 
        pCurrNvRam = FPT_BL_Card[p_card].pNvRamInfo;
 
-       i = 0;
+   i=0;
 
-       while (!i) {
+   while (!i)
+      {
 
-               for (k = 0; k < ID_STRING_LENGTH; k++) {
-                       temp_id_string[k] = (unsigned char)0x00;
-               }
+      for (k=0; k < ID_STRING_LENGTH; k++)
+         {
+         temp_id_string[k] = (UCHAR) 0x00;
+         }
 
-               FPT_scxferc(p_port, SYNC_PTRN);
-               FPT_scxferc(p_port, ASSIGN_ID);
+      FPT_scxferc(p_port,SYNC_PTRN);
+      FPT_scxferc(p_port,ASSIGN_ID);
 
-               if (!(FPT_sciso(p_port, &temp_id_string[0]))) {
-                       if (pCurrNvRam) {
-                               pCrcBytes = (unsigned short *)&crcBytes[0];
+      if (!(FPT_sciso(p_port,&temp_id_string[0])))
+         {
+                       if(pCurrNvRam){
+                               pCrcBytes = (ushort_ptr)&crcBytes[0];
                                *pCrcBytes = FPT_CalcCrc16(&temp_id_string[0]);
                                crcBytes[2] = FPT_CalcLrc(&temp_id_string[0]);
                                temp_id_string[1] = crcBytes[2];
                                temp_id_string[2] = crcBytes[0];
                                temp_id_string[3] = crcBytes[1];
-                               for (k = 4; k < ID_STRING_LENGTH; k++)
-                                       temp_id_string[k] = (unsigned char)0x00;
+                               for(k = 4; k < ID_STRING_LENGTH; k++)
+                                       temp_id_string[k] = (UCHAR) 0x00;
                        }
-                       i = FPT_scmachid(p_card, temp_id_string);
+         i = FPT_scmachid(p_card,temp_id_string);
 
-                       if (i == CLR_PRIORITY) {
-                               FPT_scxferc(p_port, MISC_CODE);
-                               FPT_scxferc(p_port, CLR_P_FLAG);
-                               i = 0;  /*Not the last ID yet. */
-                       }
+         if (i == CLR_PRIORITY)
+            {
+            FPT_scxferc(p_port,MISC_CODE);
+            FPT_scxferc(p_port,CLR_P_FLAG);
+            i = 0;  /*Not the last ID yet. */
+            }
 
-                       else if (i != NO_ID_AVAIL) {
-                               if (i < 8)
-                                       FPT_scxferc(p_port, ID_0_7);
-                               else
-                                       FPT_scxferc(p_port, ID_8_F);
+         else if (i != NO_ID_AVAIL)
+            {
+            if (i < 8 )
+               FPT_scxferc(p_port,ID_0_7);
+            else
+               FPT_scxferc(p_port,ID_8_F);
 
-                               scam_id = (i & (unsigned char)0x07);
+            scam_id = (i & (UCHAR) 0x07);
 
-                               for (k = 1; k < 0x08; k <<= 1)
-                                       if (!(k & i))
-                                               scam_id += 0x08;        /*Count number of zeros in DB0-3. */
 
-                               FPT_scxferc(p_port, scam_id);
+            for (k=1; k < 0x08; k <<= 1)
+               if (!( k & i ))
+                  scam_id += 0x08;        /*Count number of zeros in DB0-3. */
 
-                               i = 0;  /*Not the last ID yet. */
-                       }
-               }
+            FPT_scxferc(p_port,scam_id);
 
-               else {
-                       i = 1;
-               }
+            i = 0;  /*Not the last ID yet. */
+            }
+         }
+
+      else
+         {
+         i = 1;
+         }
 
-       }                       /*End while */
+      }  /*End while */
 
-       FPT_scxferc(p_port, SYNC_PTRN);
-       FPT_scxferc(p_port, CFG_CMPLT);
+   FPT_scxferc(p_port,SYNC_PTRN);
+   FPT_scxferc(p_port,CFG_CMPLT);
 }
 
+
+
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scsel
@@ -5883,32 +6447,32 @@ static void FPT_scasid(unsigned char p_card, unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scsel(unsigned long p_port)
+static void FPT_scsel(ULONG p_port)
 {
 
-       WR_HARPOON(p_port + hp_scsisig, SCSI_SEL);
-       FPT_scwiros(p_port, SCSI_MSG);
+   WR_HARPOON(p_port+hp_scsisig, SCSI_SEL);
+   FPT_scwiros(p_port, SCSI_MSG);
+
+   WR_HARPOON(p_port+hp_scsisig, (SCSI_SEL | SCSI_BSY));
+
 
-       WR_HARPOON(p_port + hp_scsisig, (SCSI_SEL | SCSI_BSY));
+   WR_HARPOON(p_port+hp_scsisig, (SCSI_SEL | SCSI_BSY | SCSI_IOBIT | SCSI_CD));
+   WR_HARPOON(p_port+hp_scsidata_0, (UCHAR)(RD_HARPOON(p_port+hp_scsidata_0) |
+      (UCHAR)(BIT(7)+BIT(6))));
 
-       WR_HARPOON(p_port + hp_scsisig,
-                  (SCSI_SEL | SCSI_BSY | SCSI_IOBIT | SCSI_CD));
-       WR_HARPOON(p_port + hp_scsidata_0,
-                  (unsigned char)(RD_HARPOON(p_port + hp_scsidata_0) |
-                                  (unsigned char)(BIT(7) + BIT(6))));
 
-       WR_HARPOON(p_port + hp_scsisig, (SCSI_BSY | SCSI_IOBIT | SCSI_CD));
-       FPT_scwiros(p_port, SCSI_SEL);
+   WR_HARPOON(p_port+hp_scsisig, (SCSI_BSY | SCSI_IOBIT | SCSI_CD));
+   FPT_scwiros(p_port, SCSI_SEL);
 
-       WR_HARPOON(p_port + hp_scsidata_0,
-                  (unsigned char)(RD_HARPOON(p_port + hp_scsidata_0) &
-                                  ~(unsigned char)BIT(6)));
-       FPT_scwirod(p_port, BIT(6));
+   WR_HARPOON(p_port+hp_scsidata_0, (UCHAR)(RD_HARPOON(p_port+hp_scsidata_0) &
+      ~(UCHAR)BIT(6)));
+   FPT_scwirod(p_port, BIT(6));
 
-       WR_HARPOON(p_port + hp_scsisig,
-                  (SCSI_SEL | SCSI_BSY | SCSI_IOBIT | SCSI_CD));
+   WR_HARPOON(p_port+hp_scsisig, (SCSI_SEL | SCSI_BSY | SCSI_IOBIT | SCSI_CD));
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scxferc
@@ -5917,47 +6481,48 @@ static void FPT_scsel(unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_scxferc(unsigned long p_port, unsigned char p_data)
+static UCHAR FPT_scxferc(ULONG p_port, UCHAR p_data)
 {
-       unsigned char curr_data, ret_data;
+   UCHAR curr_data, ret_data;
 
-       curr_data = p_data | BIT(7) | BIT(5);   /*Start with DB7 & DB5 asserted. */
+   curr_data = p_data | BIT(7) | BIT(5);   /*Start with DB7 & DB5 asserted. */
 
-       WR_HARPOON(p_port + hp_scsidata_0, curr_data);
+   WR_HARPOON(p_port+hp_scsidata_0, curr_data);
 
-       curr_data &= ~BIT(7);
+   curr_data &= ~BIT(7);
 
-       WR_HARPOON(p_port + hp_scsidata_0, curr_data);
+   WR_HARPOON(p_port+hp_scsidata_0, curr_data);
 
-       FPT_scwirod(p_port, BIT(7));    /*Wait for DB7 to be released. */
-       while (!(RD_HARPOON(p_port + hp_scsidata_0) & BIT(5))) ;
+   FPT_scwirod(p_port,BIT(7));              /*Wait for DB7 to be released. */
+       while (!(RD_HARPOON(p_port+hp_scsidata_0) & BIT(5)));
 
-       ret_data = (RD_HARPOON(p_port + hp_scsidata_0) & (unsigned char)0x1F);
+   ret_data = (RD_HARPOON(p_port+hp_scsidata_0) & (UCHAR) 0x1F);
 
-       curr_data |= BIT(6);
+   curr_data |= BIT(6);
 
-       WR_HARPOON(p_port + hp_scsidata_0, curr_data);
+   WR_HARPOON(p_port+hp_scsidata_0, curr_data);
 
-       curr_data &= ~BIT(5);
+   curr_data &= ~BIT(5);
 
-       WR_HARPOON(p_port + hp_scsidata_0, curr_data);
+   WR_HARPOON(p_port+hp_scsidata_0, curr_data);
 
-       FPT_scwirod(p_port, BIT(5));    /*Wait for DB5 to be released. */
+   FPT_scwirod(p_port,BIT(5));              /*Wait for DB5 to be released. */
 
-       curr_data &= ~(BIT(4) | BIT(3) | BIT(2) | BIT(1) | BIT(0));     /*Release data bits */
-       curr_data |= BIT(7);
+   curr_data &= ~(BIT(4)|BIT(3)|BIT(2)|BIT(1)|BIT(0)); /*Release data bits */
+   curr_data |= BIT(7);
 
-       WR_HARPOON(p_port + hp_scsidata_0, curr_data);
+   WR_HARPOON(p_port+hp_scsidata_0, curr_data);
 
-       curr_data &= ~BIT(6);
+   curr_data &= ~BIT(6);
 
-       WR_HARPOON(p_port + hp_scsidata_0, curr_data);
+   WR_HARPOON(p_port+hp_scsidata_0, curr_data);
 
-       FPT_scwirod(p_port, BIT(6));    /*Wait for DB6 to be released. */
+   FPT_scwirod(p_port,BIT(6));              /*Wait for DB6 to be released. */
 
-       return ret_data;
+   return(ret_data);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scsendi
@@ -5967,50 +6532,51 @@ static unsigned char FPT_scxferc(unsigned long p_port, unsigned char p_data)
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_scsendi(unsigned long p_port,
-                                unsigned char p_id_string[])
+static UCHAR FPT_scsendi(ULONG p_port, UCHAR p_id_string[])
 {
-       unsigned char ret_data, byte_cnt, bit_cnt, defer;
+   UCHAR ret_data,byte_cnt,bit_cnt,defer;
 
-       defer = 0;
+   defer = 0;
 
-       for (byte_cnt = 0; byte_cnt < ID_STRING_LENGTH; byte_cnt++) {
+   for (byte_cnt = 0; byte_cnt < ID_STRING_LENGTH; byte_cnt++) {
 
-               for (bit_cnt = 0x80; bit_cnt != 0; bit_cnt >>= 1) {
+      for (bit_cnt = 0x80; bit_cnt != 0 ; bit_cnt >>= 1) {
 
-                       if (defer)
-                               ret_data = FPT_scxferc(p_port, 00);
+         if (defer)
+            ret_data = FPT_scxferc(p_port,00);
 
-                       else if (p_id_string[byte_cnt] & bit_cnt)
+         else if (p_id_string[byte_cnt] & bit_cnt)
 
-                               ret_data = FPT_scxferc(p_port, 02);
+               ret_data = FPT_scxferc(p_port,02);
 
-                       else {
+            else {
 
-                               ret_data = FPT_scxferc(p_port, 01);
-                               if (ret_data & 02)
-                                       defer = 1;
-                       }
+               ret_data = FPT_scxferc(p_port,01);
+               if (ret_data & 02)
+                  defer = 1;
+               }
 
-                       if ((ret_data & 0x1C) == 0x10)
-                               return 0x00;    /*End of isolation stage, we won! */
+         if ((ret_data & 0x1C) == 0x10)
+            return(0x00);  /*End of isolation stage, we won! */
 
-                       if (ret_data & 0x1C)
-                               return 0xFF;
+         if (ret_data & 0x1C)
+            return(0xFF);
 
-                       if ((defer) && (!(ret_data & 0x1F)))
-                               return 0x01;    /*End of isolation stage, we lost. */
+         if ((defer) && (!(ret_data & 0x1F)))
+            return(0x01);  /*End of isolation stage, we lost. */
 
-               }               /*bit loop */
+         } /*bit loop */
 
-       }                       /*byte loop */
+      } /*byte loop */
 
-       if (defer)
-               return 0x01;    /*We lost */
-       else
-               return 0;       /*We WON! Yeeessss! */
+   if (defer)
+      return(0x01);  /*We lost */
+   else
+      return(0);  /*We WON! Yeeessss! */
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_sciso
@@ -6019,31 +6585,31 @@ static unsigned char FPT_scsendi(unsigned long p_port,
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_sciso(unsigned long p_port,
-                              unsigned char p_id_string[])
+static UCHAR FPT_sciso(ULONG p_port, UCHAR p_id_string[])
 {
-       unsigned char ret_data, the_data, byte_cnt, bit_cnt;
+   UCHAR ret_data,the_data,byte_cnt,bit_cnt;
 
-       the_data = 0;
+   the_data = 0;
 
-       for (byte_cnt = 0; byte_cnt < ID_STRING_LENGTH; byte_cnt++) {
+   for (byte_cnt = 0; byte_cnt < ID_STRING_LENGTH; byte_cnt++) {
 
-               for (bit_cnt = 0; bit_cnt < 8; bit_cnt++) {
+      for (bit_cnt = 0; bit_cnt < 8; bit_cnt++) {
 
-                       ret_data = FPT_scxferc(p_port, 0);
+         ret_data = FPT_scxferc(p_port,0);
 
-                       if (ret_data & 0xFC)
-                               return 0xFF;
+         if (ret_data & 0xFC)
+            return(0xFF);
 
-                       else {
+         else {
 
-                               the_data <<= 1;
-                               if (ret_data & BIT(1)) {
-                                       the_data |= 1;
-                               }
-                       }
+            the_data <<= 1;
+            if (ret_data & BIT(1)) {
+               the_data |= 1;
+               }
+            }
 
-                       if ((ret_data & 0x1F) == 0) {
+         if ((ret_data & 0x1F) == 0)
+          {
 /*
                                if(bit_cnt != 0 || bit_cnt != 8)
                                {
@@ -6054,21 +6620,23 @@ static unsigned char FPT_sciso(unsigned long p_port,
                                        continue;
                                }
 */
-                               if (byte_cnt)
-                                       return 0x00;
-                               else
-                                       return 0xFF;
-                       }
+            if (byte_cnt)
+               return(0x00);
+            else
+               return(0xFF);
+          }
 
-               }               /*bit loop */
+         } /*bit loop */
 
-               p_id_string[byte_cnt] = the_data;
+      p_id_string[byte_cnt] = the_data;
 
-       }                       /*byte loop */
+      } /*byte loop */
 
-       return 0;
+   return(0);
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scwirod
@@ -6078,24 +6646,26 @@ static unsigned char FPT_sciso(unsigned long p_port,
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scwirod(unsigned long p_port, unsigned char p_data_bit)
+static void FPT_scwirod(ULONG p_port, UCHAR p_data_bit)
 {
-       unsigned char i;
+   UCHAR i;
 
-       i = 0;
-       while (i < MAX_SCSI_TAR) {
+   i = 0;
+   while ( i < MAX_SCSI_TAR ) {
 
-               if (RD_HARPOON(p_port + hp_scsidata_0) & p_data_bit)
+      if (RD_HARPOON(p_port+hp_scsidata_0) & p_data_bit)
 
-                       i = 0;
+         i = 0;
 
-               else
+      else
 
-                       i++;
+         i++;
 
-       }
+      }
 }
 
+
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scwiros
@@ -6105,24 +6675,25 @@ static void FPT_scwirod(unsigned long p_port, unsigned char p_data_bit)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scwiros(unsigned long p_port, unsigned char p_data_bit)
+static void FPT_scwiros(ULONG p_port, UCHAR p_data_bit)
 {
-       unsigned char i;
+   UCHAR i;
 
-       i = 0;
-       while (i < MAX_SCSI_TAR) {
+   i = 0;
+   while ( i < MAX_SCSI_TAR ) {
 
-               if (RD_HARPOON(p_port + hp_scsisig) & p_data_bit)
+      if (RD_HARPOON(p_port+hp_scsisig) & p_data_bit)
 
-                       i = 0;
+         i = 0;
 
-               else
+      else
 
-                       i++;
+         i++;
 
-       }
+      }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scvalq
@@ -6131,22 +6702,23 @@ static void FPT_scwiros(unsigned long p_port, unsigned char p_data_bit)
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_scvalq(unsigned char p_quintet)
+static UCHAR FPT_scvalq(UCHAR p_quintet)
 {
-       unsigned char count;
+   UCHAR count;
 
-       for (count = 1; count < 0x08; count <<= 1) {
-               if (!(p_quintet & count))
-                       p_quintet -= 0x80;
-       }
+   for (count=1; count < 0x08; count<<=1) {
+      if (!(p_quintet & count))
+         p_quintet -= 0x80;
+      }
 
-       if (p_quintet & 0x18)
-               return 0;
+   if (p_quintet & 0x18)
+      return(0);
 
-       else
-               return 1;
+   else
+      return(1);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scsell
@@ -6157,78 +6729,75 @@ static unsigned char FPT_scvalq(unsigned char p_quintet)
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_scsell(unsigned long p_port, unsigned char targ_id)
+static UCHAR FPT_scsell(ULONG p_port, UCHAR targ_id)
 {
-       unsigned long i;
+   ULONG i;
 
-       WR_HARPOON(p_port + hp_page_ctrl,
-                  (RD_HARPOON(p_port + hp_page_ctrl) | G_INT_DISABLE));
+   WR_HARPOON(p_port+hp_page_ctrl,
+      (RD_HARPOON(p_port+hp_page_ctrl) | G_INT_DISABLE));
 
-       ARAM_ACCESS(p_port);
+   ARAM_ACCESS(p_port);
 
-       WR_HARPOON(p_port + hp_addstat,
-                  (RD_HARPOON(p_port + hp_addstat) | SCAM_TIMER));
-       WR_HARPOON(p_port + hp_seltimeout, TO_4ms);
+   WR_HARPOON(p_port+hp_addstat,(RD_HARPOON(p_port+hp_addstat) | SCAM_TIMER));
+   WR_HARPOON(p_port+hp_seltimeout,TO_4ms);
 
-       for (i = p_port + CMD_STRT; i < p_port + CMD_STRT + 12; i += 2) {
-               WRW_HARPOON(i, (MPM_OP + ACOMMAND));
-       }
-       WRW_HARPOON(i, (BRH_OP + ALWAYS + NP));
 
-       WRW_HARPOON((p_port + hp_intstat),
-                   (RESET | TIMEOUT | SEL | BUS_FREE | AUTO_INT));
+   for (i = p_port+CMD_STRT; i < p_port+CMD_STRT+12; i+=2) {
+      WRW_HARPOON(i, (MPM_OP+ACOMMAND));
+      }
+   WRW_HARPOON(i, (BRH_OP+ALWAYS+    NP));
+
+   WRW_HARPOON((p_port+hp_intstat),
+              (RESET | TIMEOUT | SEL | BUS_FREE | AUTO_INT));
 
-       WR_HARPOON(p_port + hp_select_id, targ_id);
+   WR_HARPOON(p_port+hp_select_id, targ_id);
 
-       WR_HARPOON(p_port + hp_portctrl_0, SCSI_PORT);
-       WR_HARPOON(p_port + hp_autostart_3, (SELECT | CMD_ONLY_STRT));
-       WR_HARPOON(p_port + hp_scsictrl_0, (SEL_TAR | ENA_RESEL));
+   WR_HARPOON(p_port+hp_portctrl_0, SCSI_PORT);
+   WR_HARPOON(p_port+hp_autostart_3, (SELECT | CMD_ONLY_STRT));
+   WR_HARPOON(p_port+hp_scsictrl_0, (SEL_TAR | ENA_RESEL));
 
-       while (!(RDW_HARPOON((p_port + hp_intstat)) &
-                (RESET | PROG_HLT | TIMEOUT | AUTO_INT))) {
-       }
 
-       if (RDW_HARPOON((p_port + hp_intstat)) & RESET)
-               FPT_Wait(p_port, TO_250ms);
+   while (!(RDW_HARPOON((p_port+hp_intstat)) &
+           (RESET | PROG_HLT | TIMEOUT | AUTO_INT))) {}
 
-       DISABLE_AUTO(p_port);
+   if (RDW_HARPOON((p_port+hp_intstat)) & RESET)
+         FPT_Wait(p_port, TO_250ms);
 
-       WR_HARPOON(p_port + hp_addstat,
-                  (RD_HARPOON(p_port + hp_addstat) & ~SCAM_TIMER));
-       WR_HARPOON(p_port + hp_seltimeout, TO_290ms);
+   DISABLE_AUTO(p_port);
 
-       SGRAM_ACCESS(p_port);
+   WR_HARPOON(p_port+hp_addstat,(RD_HARPOON(p_port+hp_addstat) & ~SCAM_TIMER));
+   WR_HARPOON(p_port+hp_seltimeout,TO_290ms);
 
-       if (RDW_HARPOON((p_port + hp_intstat)) & (RESET | TIMEOUT)) {
+   SGRAM_ACCESS(p_port);
 
-               WRW_HARPOON((p_port + hp_intstat),
-                           (RESET | TIMEOUT | SEL | BUS_FREE | PHASE));
+   if (RDW_HARPOON((p_port+hp_intstat)) & (RESET | TIMEOUT) ) {
 
-               WR_HARPOON(p_port + hp_page_ctrl,
-                          (RD_HARPOON(p_port + hp_page_ctrl) &
-                           ~G_INT_DISABLE));
+      WRW_HARPOON((p_port+hp_intstat),
+                 (RESET | TIMEOUT | SEL | BUS_FREE | PHASE));
 
-               return 0;       /*No legacy device */
-       }
+      WR_HARPOON(p_port+hp_page_ctrl,
+         (RD_HARPOON(p_port+hp_page_ctrl) & ~G_INT_DISABLE));
+
+      return(0);  /*No legacy device */
+      }
 
-       else {
+   else {
 
-               while (!(RDW_HARPOON((p_port + hp_intstat)) & BUS_FREE)) {
-                       if (RD_HARPOON(p_port + hp_scsisig) & SCSI_REQ) {
-                               WR_HARPOON(p_port + hp_scsisig,
-                                          (SCSI_ACK + S_ILL_PH));
-                               ACCEPT_MSG(p_port);
-                       }
+      while(!(RDW_HARPOON((p_port+hp_intstat)) & BUS_FREE)) {
+                               if (RD_HARPOON(p_port+hp_scsisig) & SCSI_REQ)
+                                       {
+                                       WR_HARPOON(p_port+hp_scsisig, (SCSI_ACK + S_ILL_PH));
+                       ACCEPT_MSG(p_port);
+                                       }
                }
 
-               WRW_HARPOON((p_port + hp_intstat), CLR_ALL_INT_1);
+      WRW_HARPOON((p_port+hp_intstat), CLR_ALL_INT_1);
 
-               WR_HARPOON(p_port + hp_page_ctrl,
-                          (RD_HARPOON(p_port + hp_page_ctrl) &
-                           ~G_INT_DISABLE));
+      WR_HARPOON(p_port+hp_page_ctrl,
+         (RD_HARPOON(p_port+hp_page_ctrl) & ~G_INT_DISABLE));
 
-               return 1;       /*Found one of them oldies! */
-       }
+      return(1);  /*Found one of them oldies! */
+      }
 }
 
 /*---------------------------------------------------------------------
@@ -6239,12 +6808,12 @@ static unsigned char FPT_scsell(unsigned long p_port, unsigned char targ_id)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scwtsel(unsigned long p_port)
+static void FPT_scwtsel(ULONG p_port)
 {
-       while (!(RDW_HARPOON((p_port + hp_intstat)) & SCAM_SEL)) {
-       }
+   while(!(RDW_HARPOON((p_port+hp_intstat)) & SCAM_SEL)) {}
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_inisci
@@ -6253,64 +6822,57 @@ static void FPT_scwtsel(unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_inisci(unsigned char p_card, unsigned long p_port,
-                      unsigned char p_our_id)
+static void FPT_inisci(UCHAR p_card, ULONG p_port, UCHAR p_our_id)
 {
-       unsigned char i, k, max_id;
-       unsigned short ee_data;
-       struct nvram_info *pCurrNvRam;
+   UCHAR i,k,max_id;
+   USHORT ee_data;
+       PNVRamInfo pCurrNvRam;
 
        pCurrNvRam = FPT_BL_Card[p_card].pNvRamInfo;
 
-       if (RD_HARPOON(p_port + hp_page_ctrl) & NARROW_SCSI_CARD)
-               max_id = 0x08;
+   if (RD_HARPOON(p_port+hp_page_ctrl) & NARROW_SCSI_CARD)
+      max_id = 0x08;
 
-       else
-               max_id = 0x10;
+   else
+      max_id = 0x10;
 
-       if (pCurrNvRam) {
-               for (i = 0; i < max_id; i++) {
+       if(pCurrNvRam){
+               for(i = 0; i < max_id; i++){
 
-                       for (k = 0; k < 4; k++)
-                               FPT_scamInfo[i].id_string[k] =
-                                   pCurrNvRam->niScamTbl[i][k];
-                       for (k = 4; k < ID_STRING_LENGTH; k++)
-                               FPT_scamInfo[i].id_string[k] =
-                                   (unsigned char)0x00;
+                       for(k = 0; k < 4; k++)
+                               FPT_scamInfo[i].id_string[k] = pCurrNvRam->niScamTbl[i][k];
+                       for(k = 4; k < ID_STRING_LENGTH; k++)
+                               FPT_scamInfo[i].id_string[k] = (UCHAR) 0x00;
 
-                       if (FPT_scamInfo[i].id_string[0] == 0x00)
-                               FPT_scamInfo[i].state = ID_UNUSED;      /*Default to unused ID. */
-                       else
-                               FPT_scamInfo[i].state = ID_UNASSIGNED;  /*Default to unassigned ID. */
+             if(FPT_scamInfo[i].id_string[0] == 0x00)
+          FPT_scamInfo[i].state = ID_UNUSED;  /*Default to unused ID. */
+             else
+             FPT_scamInfo[i].state = ID_UNASSIGNED;  /*Default to unassigned ID. */
 
                }
-       } else {
-               for (i = 0; i < max_id; i++) {
-                       for (k = 0; k < ID_STRING_LENGTH; k += 2) {
-                               ee_data =
-                                   FPT_utilEERead(p_port,
-                                                  (unsigned
-                                                   short)((EE_SCAMBASE / 2) +
-                                                          (unsigned short)(i *
-                                                                           ((unsigned short)ID_STRING_LENGTH / 2)) + (unsigned short)(k / 2)));
-                               FPT_scamInfo[i].id_string[k] =
-                                   (unsigned char)ee_data;
-                               ee_data >>= 8;
-                               FPT_scamInfo[i].id_string[k + 1] =
-                                   (unsigned char)ee_data;
-                       }
+       }else {
+          for (i=0; i < max_id; i++)
+          {
+       for (k=0; k < ID_STRING_LENGTH; k+=2)
+                {
+             ee_data = FPT_utilEERead(p_port, (USHORT)((EE_SCAMBASE/2) +
+            (USHORT) (i*((USHORT)ID_STRING_LENGTH/2)) + (USHORT)(k/2)));
+               FPT_scamInfo[i].id_string[k] = (UCHAR) ee_data;
+                ee_data >>= 8;
+             FPT_scamInfo[i].id_string[k+1] = (UCHAR) ee_data;
+          }
 
-                       if ((FPT_scamInfo[i].id_string[0] == 0x00) ||
-                           (FPT_scamInfo[i].id_string[0] == 0xFF))
+             if ((FPT_scamInfo[i].id_string[0] == 0x00) ||
+              (FPT_scamInfo[i].id_string[0] == 0xFF))
 
-                               FPT_scamInfo[i].state = ID_UNUSED;      /*Default to unused ID. */
+          FPT_scamInfo[i].state = ID_UNUSED;  /*Default to unused ID. */
 
-                       else
-                               FPT_scamInfo[i].state = ID_UNASSIGNED;  /*Default to unassigned ID. */
+             else
+             FPT_scamInfo[i].state = ID_UNASSIGNED;  /*Default to unassigned ID. */
 
-               }
+       }
        }
-       for (k = 0; k < ID_STRING_LENGTH; k++)
+       for(k = 0; k < ID_STRING_LENGTH; k++)
                FPT_scamInfo[p_our_id].id_string[k] = FPT_scamHAString[k];
 
 }
@@ -6324,114 +6886,127 @@ static void FPT_inisci(unsigned char p_card, unsigned long p_port,
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_scmachid(unsigned char p_card,
-                                 unsigned char p_id_string[])
+static UCHAR FPT_scmachid(UCHAR p_card, UCHAR p_id_string[])
 {
 
-       unsigned char i, k, match;
+   UCHAR i,k,match;
 
-       for (i = 0; i < MAX_SCSI_TAR; i++) {
 
-               match = 1;
+   for (i=0; i < MAX_SCSI_TAR; i++) {
 
-               for (k = 0; k < ID_STRING_LENGTH; k++) {
-                       if (p_id_string[k] != FPT_scamInfo[i].id_string[k])
-                               match = 0;
-               }
+         match = 1;
 
-               if (match) {
-                       FPT_scamInfo[i].state = ID_ASSIGNED;
-                       return i;
-               }
+         for (k=0; k < ID_STRING_LENGTH; k++)
+            {
+            if (p_id_string[k] != FPT_scamInfo[i].id_string[k])
+               match = 0;
+            }
 
-       }
+         if (match)
+            {
+            FPT_scamInfo[i].state = ID_ASSIGNED;
+            return(i);
+            }
 
-       if (p_id_string[0] & BIT(5))
-               i = 8;
-       else
-               i = MAX_SCSI_TAR;
+      }
 
-       if (((p_id_string[0] & 0x06) == 0x02)
-           || ((p_id_string[0] & 0x06) == 0x04))
-               match = p_id_string[1] & (unsigned char)0x1F;
-       else
-               match = 7;
 
-       while (i > 0) {
-               i--;
 
-               if (FPT_scamInfo[match].state == ID_UNUSED) {
-                       for (k = 0; k < ID_STRING_LENGTH; k++) {
-                               FPT_scamInfo[match].id_string[k] =
-                                   p_id_string[k];
-                       }
+   if (p_id_string[0] & BIT(5))
+      i = 8;
+   else
+      i = MAX_SCSI_TAR;
 
-                       FPT_scamInfo[match].state = ID_ASSIGNED;
+   if (((p_id_string[0] & 0x06) == 0x02) || ((p_id_string[0] & 0x06) == 0x04))
+      match = p_id_string[1] & (UCHAR) 0x1F;
+   else
+      match = 7;
 
-                       if (FPT_BL_Card[p_card].pNvRamInfo == NULL)
-                               FPT_BL_Card[p_card].globalFlags |=
-                                   F_UPDATE_EEPROM;
-                       return match;
+   while (i > 0)
+      {
+      i--;
 
-               }
+      if (FPT_scamInfo[match].state == ID_UNUSED)
+         {
+         for (k=0; k < ID_STRING_LENGTH; k++)
+            {
+            FPT_scamInfo[match].id_string[k] = p_id_string[k];
+            }
 
-               match--;
+         FPT_scamInfo[match].state = ID_ASSIGNED;
 
-               if (match == 0xFF) {
-                       if (p_id_string[0] & BIT(5))
-                               match = 7;
-                       else
-                               match = MAX_SCSI_TAR - 1;
-               }
-       }
+                       if(FPT_BL_Card[p_card].pNvRamInfo == NULL)
+                FPT_BL_Card[p_card].globalFlags |= F_UPDATE_EEPROM;
+         return(match);
+
+         }
 
-       if (p_id_string[0] & BIT(7)) {
-               return CLR_PRIORITY;
+
+      match--;
+
+      if (match == 0xFF)
+       {
+         if (p_id_string[0] & BIT(5))
+            match = 7;
+         else
+            match = MAX_SCSI_TAR-1;
        }
+      }
 
-       if (p_id_string[0] & BIT(5))
-               i = 8;
-       else
-               i = MAX_SCSI_TAR;
 
-       if (((p_id_string[0] & 0x06) == 0x02)
-           || ((p_id_string[0] & 0x06) == 0x04))
-               match = p_id_string[1] & (unsigned char)0x1F;
-       else
-               match = 7;
 
-       while (i > 0) {
+   if (p_id_string[0] & BIT(7))
+      {
+      return(CLR_PRIORITY);
+      }
+
 
-               i--;
+   if (p_id_string[0] & BIT(5))
+      i = 8;
+   else
+      i = MAX_SCSI_TAR;
 
-               if (FPT_scamInfo[match].state == ID_UNASSIGNED) {
-                       for (k = 0; k < ID_STRING_LENGTH; k++) {
-                               FPT_scamInfo[match].id_string[k] =
-                                   p_id_string[k];
-                       }
+   if (((p_id_string[0] & 0x06) == 0x02) || ((p_id_string[0] & 0x06) == 0x04))
+      match = p_id_string[1] & (UCHAR) 0x1F;
+   else
+      match = 7;
 
-                       FPT_scamInfo[match].id_string[0] |= BIT(7);
-                       FPT_scamInfo[match].state = ID_ASSIGNED;
-                       if (FPT_BL_Card[p_card].pNvRamInfo == NULL)
-                               FPT_BL_Card[p_card].globalFlags |=
-                                   F_UPDATE_EEPROM;
-                       return match;
+   while (i > 0)
+      {
 
-               }
+      i--;
 
-               match--;
+      if (FPT_scamInfo[match].state == ID_UNASSIGNED)
+         {
+         for (k=0; k < ID_STRING_LENGTH; k++)
+            {
+            FPT_scamInfo[match].id_string[k] = p_id_string[k];
+            }
 
-               if (match == 0xFF) {
-                       if (p_id_string[0] & BIT(5))
-                               match = 7;
-                       else
-                               match = MAX_SCSI_TAR - 1;
-               }
+         FPT_scamInfo[match].id_string[0] |= BIT(7);
+         FPT_scamInfo[match].state = ID_ASSIGNED;
+                       if(FPT_BL_Card[p_card].pNvRamInfo == NULL)
+                FPT_BL_Card[p_card].globalFlags |= F_UPDATE_EEPROM;
+         return(match);
+
+         }
+
+
+      match--;
+
+      if (match == 0xFF)
+       {
+         if (p_id_string[0] & BIT(5))
+            match = 7;
+         else
+            match = MAX_SCSI_TAR-1;
        }
+      }
 
-       return NO_ID_AVAIL;
+   return(NO_ID_AVAIL);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_scsavdi
@@ -6440,41 +7015,45 @@ static unsigned char FPT_scmachid(unsigned char p_card,
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_scsavdi(unsigned char p_card, unsigned long p_port)
+static void FPT_scsavdi(UCHAR p_card, ULONG p_port)
 {
-       unsigned char i, k, max_id;
-       unsigned short ee_data, sum_data;
+   UCHAR i,k,max_id;
+   USHORT ee_data,sum_data;
 
-       sum_data = 0x0000;
 
-       for (i = 1; i < EE_SCAMBASE / 2; i++) {
-               sum_data += FPT_utilEERead(p_port, i);
-       }
+   sum_data = 0x0000;
 
-       FPT_utilEEWriteOnOff(p_port, 1);        /* Enable write access to the EEPROM */
+   for (i = 1; i < EE_SCAMBASE/2; i++)
+      {
+      sum_data += FPT_utilEERead(p_port, i);
+      }
 
-       if (RD_HARPOON(p_port + hp_page_ctrl) & NARROW_SCSI_CARD)
-               max_id = 0x08;
 
-       else
-               max_id = 0x10;
-
-       for (i = 0; i < max_id; i++) {
-
-               for (k = 0; k < ID_STRING_LENGTH; k += 2) {
-                       ee_data = FPT_scamInfo[i].id_string[k + 1];
-                       ee_data <<= 8;
-                       ee_data |= FPT_scamInfo[i].id_string[k];
-                       sum_data += ee_data;
-                       FPT_utilEEWrite(p_port, ee_data,
-                                       (unsigned short)((EE_SCAMBASE / 2) +
-                                                        (unsigned short)(i *
-                                                                         ((unsigned short)ID_STRING_LENGTH / 2)) + (unsigned short)(k / 2)));
-               }
-       }
+   FPT_utilEEWriteOnOff(p_port,1);   /* Enable write access to the EEPROM */
+
+   if (RD_HARPOON(p_port+hp_page_ctrl) & NARROW_SCSI_CARD)
+      max_id = 0x08;
+
+   else
+      max_id = 0x10;
 
-       FPT_utilEEWrite(p_port, sum_data, EEPROM_CHECK_SUM / 2);
-       FPT_utilEEWriteOnOff(p_port, 0);        /* Turn off write access */
+   for (i=0; i < max_id; i++)
+      {
+
+      for (k=0; k < ID_STRING_LENGTH; k+=2)
+         {
+         ee_data = FPT_scamInfo[i].id_string[k+1];
+         ee_data <<= 8;
+         ee_data |= FPT_scamInfo[i].id_string[k];
+         sum_data += ee_data;
+         FPT_utilEEWrite(p_port, ee_data, (USHORT)((EE_SCAMBASE/2) +
+            (USHORT)(i*((USHORT)ID_STRING_LENGTH/2)) + (USHORT)(k/2)));
+         }
+      }
+
+
+   FPT_utilEEWrite(p_port, sum_data, EEPROM_CHECK_SUM/2);
+   FPT_utilEEWriteOnOff(p_port,0);   /* Turn off write access */
 }
 
 /*---------------------------------------------------------------------
@@ -6485,47 +7064,48 @@ static void FPT_scsavdi(unsigned char p_card, unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_XbowInit(unsigned long port, unsigned char ScamFlg)
+static void FPT_XbowInit(ULONG port, UCHAR ScamFlg)
 {
-       unsigned char i;
+UCHAR i;
 
-       i = RD_HARPOON(port + hp_page_ctrl);
-       WR_HARPOON(port + hp_page_ctrl, (unsigned char)(i | G_INT_DISABLE));
+       i = RD_HARPOON(port+hp_page_ctrl);
+       WR_HARPOON(port+hp_page_ctrl, (UCHAR) (i | G_INT_DISABLE));
 
-       WR_HARPOON(port + hp_scsireset, 0x00);
-       WR_HARPOON(port + hp_portctrl_1, HOST_MODE8);
+   WR_HARPOON(port+hp_scsireset,0x00);
+   WR_HARPOON(port+hp_portctrl_1,HOST_MODE8);
 
-       WR_HARPOON(port + hp_scsireset, (DMA_RESET | HPSCSI_RESET | PROG_RESET |
-                                        FIFO_CLR));
+   WR_HARPOON(port+hp_scsireset,(DMA_RESET | HPSCSI_RESET | PROG_RESET | \
+                                FIFO_CLR));
 
-       WR_HARPOON(port + hp_scsireset, SCSI_INI);
+   WR_HARPOON(port+hp_scsireset,SCSI_INI);
 
-       WR_HARPOON(port + hp_clkctrl_0, CLKCTRL_DEFAULT);
+   WR_HARPOON(port+hp_clkctrl_0,CLKCTRL_DEFAULT);
 
-       WR_HARPOON(port + hp_scsisig, 0x00);    /*  Clear any signals we might */
-       WR_HARPOON(port + hp_scsictrl_0, ENA_SCAM_SEL);
+   WR_HARPOON(port+hp_scsisig,0x00);         /*  Clear any signals we might */
+   WR_HARPOON(port+hp_scsictrl_0,ENA_SCAM_SEL);
 
-       WRW_HARPOON((port + hp_intstat), CLR_ALL_INT);
+   WRW_HARPOON((port+hp_intstat), CLR_ALL_INT);
 
-       FPT_default_intena = RESET | RSEL | PROG_HLT | TIMEOUT |
-           BUS_FREE | XFER_CNT_0 | AUTO_INT;
+   FPT_default_intena = RESET | RSEL | PROG_HLT | TIMEOUT |
+                   BUS_FREE | XFER_CNT_0 | AUTO_INT;
 
-       if ((ScamFlg & SCAM_ENABLED) && (ScamFlg & SCAM_LEVEL2))
+   if ((ScamFlg & SCAM_ENABLED) && (ScamFlg & SCAM_LEVEL2))
                FPT_default_intena |= SCAM_SEL;
 
-       WRW_HARPOON((port + hp_intena), FPT_default_intena);
+   WRW_HARPOON((port+hp_intena), FPT_default_intena);
 
-       WR_HARPOON(port + hp_seltimeout, TO_290ms);
+   WR_HARPOON(port+hp_seltimeout,TO_290ms);
 
-       /* Turn on SCSI_MODE8 for narrow cards to fix the
-          strapping issue with the DUAL CHANNEL card */
-       if (RD_HARPOON(port + hp_page_ctrl) & NARROW_SCSI_CARD)
-               WR_HARPOON(port + hp_addstat, SCSI_MODE8);
+   /* Turn on SCSI_MODE8 for narrow cards to fix the
+      strapping issue with the DUAL CHANNEL card */
+   if (RD_HARPOON(port+hp_page_ctrl) & NARROW_SCSI_CARD)
+      WR_HARPOON(port+hp_addstat,SCSI_MODE8);
 
-       WR_HARPOON(port + hp_page_ctrl, i);
+       WR_HARPOON(port+hp_page_ctrl, i);
 
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_BusMasterInit
@@ -6534,24 +7114,28 @@ static void FPT_XbowInit(unsigned long port, unsigned char ScamFlg)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_BusMasterInit(unsigned long p_port)
+static void FPT_BusMasterInit(ULONG p_port)
 {
 
-       WR_HARPOON(p_port + hp_sys_ctrl, DRVR_RST);
-       WR_HARPOON(p_port + hp_sys_ctrl, 0x00);
 
-       WR_HARPOON(p_port + hp_host_blk_cnt, XFER_BLK64);
+   WR_HARPOON(p_port+hp_sys_ctrl, DRVR_RST);
+   WR_HARPOON(p_port+hp_sys_ctrl, 0x00);
+
+   WR_HARPOON(p_port+hp_host_blk_cnt, XFER_BLK64);
+
 
-       WR_HARPOON(p_port + hp_bm_ctrl, (BMCTRL_DEFAULT));
+   WR_HARPOON(p_port+hp_bm_ctrl, (BMCTRL_DEFAULT));
 
-       WR_HARPOON(p_port + hp_ee_ctrl, (SCSI_TERM_ENA_H));
+   WR_HARPOON(p_port+hp_ee_ctrl, (SCSI_TERM_ENA_H));
 
-       RD_HARPOON(p_port + hp_int_status);     /*Clear interrupts. */
-       WR_HARPOON(p_port + hp_int_mask, (INT_CMD_COMPL | SCSI_INTERRUPT));
-       WR_HARPOON(p_port + hp_page_ctrl, (RD_HARPOON(p_port + hp_page_ctrl) &
-                                          ~SCATTER_EN));
+
+   RD_HARPOON(p_port+hp_int_status);        /*Clear interrupts. */
+   WR_HARPOON(p_port+hp_int_mask, (INT_CMD_COMPL | SCSI_INTERRUPT));
+   WR_HARPOON(p_port+hp_page_ctrl, (RD_HARPOON(p_port+hp_page_ctrl) &
+      ~SCATTER_EN));
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_DiagEEPROM
@@ -6561,153 +7145,158 @@ static void FPT_BusMasterInit(unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_DiagEEPROM(unsigned long p_port)
+static void FPT_DiagEEPROM(ULONG p_port)
 {
-       unsigned short index, temp, max_wd_cnt;
+   USHORT index,temp,max_wd_cnt;
 
-       if (RD_HARPOON(p_port + hp_page_ctrl) & NARROW_SCSI_CARD)
-               max_wd_cnt = EEPROM_WD_CNT;
-       else
-               max_wd_cnt = EEPROM_WD_CNT * 2;
+   if (RD_HARPOON(p_port+hp_page_ctrl) & NARROW_SCSI_CARD)
+      max_wd_cnt = EEPROM_WD_CNT;
+   else
+      max_wd_cnt = EEPROM_WD_CNT * 2;
 
-       temp = FPT_utilEERead(p_port, FW_SIGNATURE / 2);
+   temp = FPT_utilEERead(p_port, FW_SIGNATURE/2);
 
-       if (temp == 0x4641) {
+   if (temp == 0x4641) {
 
-               for (index = 2; index < max_wd_cnt; index++) {
+      for (index = 2; index < max_wd_cnt; index++) {
 
-                       temp += FPT_utilEERead(p_port, index);
+         temp += FPT_utilEERead(p_port, index);
 
-               }
+         }
 
-               if (temp == FPT_utilEERead(p_port, EEPROM_CHECK_SUM / 2)) {
+      if (temp == FPT_utilEERead(p_port, EEPROM_CHECK_SUM/2)) {
 
-                       return; /*EEPROM is Okay so return now! */
-               }
-       }
+         return;          /*EEPROM is Okay so return now! */
+         }
+      }
 
-       FPT_utilEEWriteOnOff(p_port, (unsigned char)1);
 
-       for (index = 0; index < max_wd_cnt; index++) {
+   FPT_utilEEWriteOnOff(p_port,(UCHAR)1);
 
-               FPT_utilEEWrite(p_port, 0x0000, index);
-       }
+   for (index = 0; index < max_wd_cnt; index++) {
+
+      FPT_utilEEWrite(p_port, 0x0000, index);
+      }
 
-       temp = 0;
-
-       FPT_utilEEWrite(p_port, 0x4641, FW_SIGNATURE / 2);
-       temp += 0x4641;
-       FPT_utilEEWrite(p_port, 0x3920, MODEL_NUMB_0 / 2);
-       temp += 0x3920;
-       FPT_utilEEWrite(p_port, 0x3033, MODEL_NUMB_2 / 2);
-       temp += 0x3033;
-       FPT_utilEEWrite(p_port, 0x2020, MODEL_NUMB_4 / 2);
-       temp += 0x2020;
-       FPT_utilEEWrite(p_port, 0x70D3, SYSTEM_CONFIG / 2);
-       temp += 0x70D3;
-       FPT_utilEEWrite(p_port, 0x0010, BIOS_CONFIG / 2);
-       temp += 0x0010;
-       FPT_utilEEWrite(p_port, 0x0003, SCAM_CONFIG / 2);
-       temp += 0x0003;
-       FPT_utilEEWrite(p_port, 0x0007, ADAPTER_SCSI_ID / 2);
-       temp += 0x0007;
-
-       FPT_utilEEWrite(p_port, 0x0000, IGNORE_B_SCAN / 2);
-       temp += 0x0000;
-       FPT_utilEEWrite(p_port, 0x0000, SEND_START_ENA / 2);
-       temp += 0x0000;
-       FPT_utilEEWrite(p_port, 0x0000, DEVICE_ENABLE / 2);
-       temp += 0x0000;
-
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL01 / 2);
-       temp += 0x4242;
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL23 / 2);
-       temp += 0x4242;
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL45 / 2);
-       temp += 0x4242;
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL67 / 2);
-       temp += 0x4242;
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL89 / 2);
-       temp += 0x4242;
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBLab / 2);
-       temp += 0x4242;
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBLcd / 2);
-       temp += 0x4242;
-       FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBLef / 2);
-       temp += 0x4242;
-
-       FPT_utilEEWrite(p_port, 0x6C46, 64 / 2);        /*PRODUCT ID */
-       temp += 0x6C46;
-       FPT_utilEEWrite(p_port, 0x7361, 66 / 2);        /* FlashPoint LT   */
-       temp += 0x7361;
-       FPT_utilEEWrite(p_port, 0x5068, 68 / 2);
-       temp += 0x5068;
-       FPT_utilEEWrite(p_port, 0x696F, 70 / 2);
-       temp += 0x696F;
-       FPT_utilEEWrite(p_port, 0x746E, 72 / 2);
-       temp += 0x746E;
-       FPT_utilEEWrite(p_port, 0x4C20, 74 / 2);
-       temp += 0x4C20;
-       FPT_utilEEWrite(p_port, 0x2054, 76 / 2);
-       temp += 0x2054;
-       FPT_utilEEWrite(p_port, 0x2020, 78 / 2);
-       temp += 0x2020;
-
-       index = ((EE_SCAMBASE / 2) + (7 * 16));
-       FPT_utilEEWrite(p_port, (0x0700 + TYPE_CODE0), index);
-       temp += (0x0700 + TYPE_CODE0);
-       index++;
-       FPT_utilEEWrite(p_port, 0x5542, index); /*Vendor ID code */
-       temp += 0x5542;         /* BUSLOGIC      */
-       index++;
-       FPT_utilEEWrite(p_port, 0x4C53, index);
-       temp += 0x4C53;
-       index++;
-       FPT_utilEEWrite(p_port, 0x474F, index);
-       temp += 0x474F;
-       index++;
-       FPT_utilEEWrite(p_port, 0x4349, index);
-       temp += 0x4349;
-       index++;
-       FPT_utilEEWrite(p_port, 0x5442, index); /*Vendor unique code */
-       temp += 0x5442;         /* BT- 930           */
-       index++;
-       FPT_utilEEWrite(p_port, 0x202D, index);
-       temp += 0x202D;
-       index++;
-       FPT_utilEEWrite(p_port, 0x3339, index);
-       temp += 0x3339;
-       index++;                /*Serial #          */
-       FPT_utilEEWrite(p_port, 0x2030, index); /* 01234567         */
-       temp += 0x2030;
-       index++;
-       FPT_utilEEWrite(p_port, 0x5453, index);
-       temp += 0x5453;
-       index++;
-       FPT_utilEEWrite(p_port, 0x5645, index);
-       temp += 0x5645;
-       index++;
-       FPT_utilEEWrite(p_port, 0x2045, index);
-       temp += 0x2045;
-       index++;
-       FPT_utilEEWrite(p_port, 0x202F, index);
-       temp += 0x202F;
-       index++;
-       FPT_utilEEWrite(p_port, 0x4F4A, index);
-       temp += 0x4F4A;
-       index++;
-       FPT_utilEEWrite(p_port, 0x204E, index);
-       temp += 0x204E;
-       index++;
-       FPT_utilEEWrite(p_port, 0x3539, index);
-       temp += 0x3539;
-
-       FPT_utilEEWrite(p_port, temp, EEPROM_CHECK_SUM / 2);
-
-       FPT_utilEEWriteOnOff(p_port, (unsigned char)0);
+   temp = 0;
+
+   FPT_utilEEWrite(p_port, 0x4641, FW_SIGNATURE/2);
+   temp += 0x4641;
+   FPT_utilEEWrite(p_port, 0x3920, MODEL_NUMB_0/2);
+   temp += 0x3920;
+   FPT_utilEEWrite(p_port, 0x3033, MODEL_NUMB_2/2);
+   temp += 0x3033;
+   FPT_utilEEWrite(p_port, 0x2020, MODEL_NUMB_4/2);
+   temp += 0x2020;
+   FPT_utilEEWrite(p_port, 0x70D3, SYSTEM_CONFIG/2);
+   temp += 0x70D3;
+   FPT_utilEEWrite(p_port, 0x0010, BIOS_CONFIG/2);
+   temp += 0x0010;
+   FPT_utilEEWrite(p_port, 0x0003, SCAM_CONFIG/2);
+   temp += 0x0003;
+   FPT_utilEEWrite(p_port, 0x0007, ADAPTER_SCSI_ID/2);
+   temp += 0x0007;
+
+   FPT_utilEEWrite(p_port, 0x0000, IGNORE_B_SCAN/2);
+   temp += 0x0000;
+   FPT_utilEEWrite(p_port, 0x0000, SEND_START_ENA/2);
+   temp += 0x0000;
+   FPT_utilEEWrite(p_port, 0x0000, DEVICE_ENABLE/2);
+   temp += 0x0000;
+
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL01/2);
+   temp += 0x4242;
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL23/2);
+   temp += 0x4242;
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL45/2);
+   temp += 0x4242;
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL67/2);
+   temp += 0x4242;
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBL89/2);
+   temp += 0x4242;
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBLab/2);
+   temp += 0x4242;
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBLcd/2);
+   temp += 0x4242;
+   FPT_utilEEWrite(p_port, 0x4242, SYNC_RATE_TBLef/2);
+   temp += 0x4242;
+
+
+   FPT_utilEEWrite(p_port, 0x6C46, 64/2);  /*PRODUCT ID */
+   temp += 0x6C46;
+   FPT_utilEEWrite(p_port, 0x7361, 66/2);  /* FlashPoint LT   */
+   temp += 0x7361;
+   FPT_utilEEWrite(p_port, 0x5068, 68/2);
+   temp += 0x5068;
+   FPT_utilEEWrite(p_port, 0x696F, 70/2);
+   temp += 0x696F;
+   FPT_utilEEWrite(p_port, 0x746E, 72/2);
+   temp += 0x746E;
+   FPT_utilEEWrite(p_port, 0x4C20, 74/2);
+   temp += 0x4C20;
+   FPT_utilEEWrite(p_port, 0x2054, 76/2);
+   temp += 0x2054;
+   FPT_utilEEWrite(p_port, 0x2020, 78/2);
+   temp += 0x2020;
+
+   index = ((EE_SCAMBASE/2)+(7*16));
+   FPT_utilEEWrite(p_port, (0x0700+TYPE_CODE0), index);
+   temp += (0x0700+TYPE_CODE0);
+   index++;
+   FPT_utilEEWrite(p_port, 0x5542, index);            /*Vendor ID code */
+   temp += 0x5542;                                /* BUSLOGIC      */
+   index++;
+   FPT_utilEEWrite(p_port, 0x4C53, index);
+   temp += 0x4C53;
+   index++;
+   FPT_utilEEWrite(p_port, 0x474F, index);
+   temp += 0x474F;
+   index++;
+   FPT_utilEEWrite(p_port, 0x4349, index);
+   temp += 0x4349;
+   index++;
+   FPT_utilEEWrite(p_port, 0x5442, index);            /*Vendor unique code */
+   temp += 0x5442;                         /* BT- 930           */
+   index++;
+   FPT_utilEEWrite(p_port, 0x202D, index);
+   temp += 0x202D;
+   index++;
+   FPT_utilEEWrite(p_port, 0x3339, index);
+   temp += 0x3339;
+   index++;                                 /*Serial #          */
+   FPT_utilEEWrite(p_port, 0x2030, index);             /* 01234567         */
+   temp += 0x2030;
+   index++;
+   FPT_utilEEWrite(p_port, 0x5453, index);
+   temp += 0x5453;
+   index++;
+   FPT_utilEEWrite(p_port, 0x5645, index);
+   temp += 0x5645;
+   index++;
+   FPT_utilEEWrite(p_port, 0x2045, index);
+   temp += 0x2045;
+   index++;
+   FPT_utilEEWrite(p_port, 0x202F, index);
+   temp += 0x202F;
+   index++;
+   FPT_utilEEWrite(p_port, 0x4F4A, index);
+   temp += 0x4F4A;
+   index++;
+   FPT_utilEEWrite(p_port, 0x204E, index);
+   temp += 0x204E;
+   index++;
+   FPT_utilEEWrite(p_port, 0x3539, index);
+   temp += 0x3539;
+
+
+
+   FPT_utilEEWrite(p_port, temp, EEPROM_CHECK_SUM/2);
+
+   FPT_utilEEWriteOnOff(p_port,(UCHAR)0);
 
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Queue Search Select
@@ -6716,127 +7305,103 @@ static void FPT_DiagEEPROM(unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_queueSearchSelect(struct sccb_card *pCurrCard,
-                                 unsigned char p_card)
+static void FPT_queueSearchSelect(PSCCBcard pCurrCard, UCHAR p_card)
 {
-       unsigned char scan_ptr, lun;
-       struct sccb_mgr_tar_info *currTar_Info;
-       struct sccb *pOldSccb;
+   UCHAR scan_ptr, lun;
+   PSCCBMgr_tar_info currTar_Info;
+       PSCCB pOldSccb;
 
-       scan_ptr = pCurrCard->scanIndex;
-       do {
+   scan_ptr = pCurrCard->scanIndex;
+       do 
+       {
                currTar_Info = &FPT_sccbMgrTbl[p_card][scan_ptr];
-               if ((pCurrCard->globalFlags & F_CONLUN_IO) &&
-                   ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) !=
-                    TAG_Q_TRYING)) {
-                       if (currTar_Info->TarSelQ_Cnt != 0) {
+               if((pCurrCard->globalFlags & F_CONLUN_IO) && 
+                       ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))
+               {
+                       if (currTar_Info->TarSelQ_Cnt != 0)
+                       {
 
                                scan_ptr++;
                                if (scan_ptr == MAX_SCSI_TAR)
                                        scan_ptr = 0;
+                               
+                               for(lun=0; lun < MAX_LUN; lun++)
+                               {
+                                       if(currTar_Info->TarLUNBusy[lun] == 0)
+                                       {
 
-                               for (lun = 0; lun < MAX_LUN; lun++) {
-                                       if (currTar_Info->TarLUNBusy[lun] == 0) {
-
-                                               pCurrCard->currentSCCB =
-                                                   currTar_Info->TarSelQ_Head;
+                                               pCurrCard->currentSCCB = currTar_Info->TarSelQ_Head;
                                                pOldSccb = NULL;
 
-                                               while ((pCurrCard->
-                                                       currentSCCB != NULL)
-                                                      && (lun !=
-                                                          pCurrCard->
-                                                          currentSCCB->Lun)) {
-                                                       pOldSccb =
-                                                           pCurrCard->
-                                                           currentSCCB;
-                                                       pCurrCard->currentSCCB =
-                                                           (struct sccb
-                                                            *)(pCurrCard->
-                                                               currentSCCB)->
-                                                           Sccb_forwardlink;
+                                               while((pCurrCard->currentSCCB != NULL) &&
+                                                                (lun != pCurrCard->currentSCCB->Lun))
+                                               {
+                                                       pOldSccb = pCurrCard->currentSCCB;
+                                                       pCurrCard->currentSCCB = (PSCCB)(pCurrCard->currentSCCB)->
+                                                                                                                                       Sccb_forwardlink;
                                                }
-                                               if (pCurrCard->currentSCCB ==
-                                                   NULL)
+                                               if(pCurrCard->currentSCCB == NULL)
                                                        continue;
-                                               if (pOldSccb != NULL) {
-                                                       pOldSccb->
-                                                           Sccb_forwardlink =
-                                                           (struct sccb
-                                                            *)(pCurrCard->
-                                                               currentSCCB)->
-                                                           Sccb_forwardlink;
-                                                       pOldSccb->
-                                                           Sccb_backlink =
-                                                           (struct sccb
-                                                            *)(pCurrCard->
-                                                               currentSCCB)->
-                                                           Sccb_backlink;
-                                                       currTar_Info->
-                                                           TarSelQ_Cnt--;
-                                               } else {
-                                                       currTar_Info->
-                                                           TarSelQ_Head =
-                                                           (struct sccb
-                                                            *)(pCurrCard->
-                                                               currentSCCB)->
-                                                           Sccb_forwardlink;
-
-                                                       if (currTar_Info->
-                                                           TarSelQ_Head ==
-                                                           NULL) {
-                                                               currTar_Info->
-                                                                   TarSelQ_Tail
-                                                                   = NULL;
-                                                               currTar_Info->
-                                                                   TarSelQ_Cnt
-                                                                   = 0;
-                                                       } else {
-                                                               currTar_Info->
-                                                                   TarSelQ_Cnt--;
-                                                               currTar_Info->
-                                                                   TarSelQ_Head->
-                                                                   Sccb_backlink
-                                                                   =
-                                                                   (struct sccb
-                                                                    *)NULL;
+                                               if(pOldSccb != NULL)
+                                               {
+                                                       pOldSccb->Sccb_forwardlink = (PSCCB)(pCurrCard->currentSCCB)->
+                                                                                                                                       Sccb_forwardlink;
+                                                       pOldSccb->Sccb_backlink = (PSCCB)(pCurrCard->currentSCCB)->
+                                                                                                                                       Sccb_backlink;
+                                                       currTar_Info->TarSelQ_Cnt--;
+                                               }
+                                               else
+                                               {
+                                                       currTar_Info->TarSelQ_Head = (PSCCB)(pCurrCard->currentSCCB)->Sccb_forwardlink;
+                                       
+                                                       if (currTar_Info->TarSelQ_Head == NULL)
+                                                       {
+                                                               currTar_Info->TarSelQ_Tail = NULL;
+                                                               currTar_Info->TarSelQ_Cnt = 0;
+                                                       }
+                                                       else
+                                                       {
+                                                               currTar_Info->TarSelQ_Cnt--;
+                                                               currTar_Info->TarSelQ_Head->Sccb_backlink = (PSCCB)NULL;
                                                        }
                                                }
-                                               pCurrCard->scanIndex = scan_ptr;
+                                       pCurrCard->scanIndex = scan_ptr;
 
-                                               pCurrCard->globalFlags |=
-                                                   F_NEW_SCCB_CMD;
+                                       pCurrCard->globalFlags |= F_NEW_SCCB_CMD;
 
-                                               break;
+                                       break;
                                        }
                                }
                        }
 
-                       else {
+                       else 
+                       {
                                scan_ptr++;
                                if (scan_ptr == MAX_SCSI_TAR) {
                                        scan_ptr = 0;
                                }
                        }
 
-               } else {
+               }
+               else
+               {
                        if ((currTar_Info->TarSelQ_Cnt != 0) &&
-                           (currTar_Info->TarLUNBusy[0] == 0)) {
+                               (currTar_Info->TarLUNBusy[0] == 0))
+                       {
 
-                               pCurrCard->currentSCCB =
-                                   currTar_Info->TarSelQ_Head;
+                               pCurrCard->currentSCCB = currTar_Info->TarSelQ_Head;
 
-                               currTar_Info->TarSelQ_Head =
-                                   (struct sccb *)(pCurrCard->currentSCCB)->
-                                   Sccb_forwardlink;
+                               currTar_Info->TarSelQ_Head = (PSCCB)(pCurrCard->currentSCCB)->Sccb_forwardlink;
 
-                               if (currTar_Info->TarSelQ_Head == NULL) {
+                               if (currTar_Info->TarSelQ_Head == NULL)
+                               {
                                        currTar_Info->TarSelQ_Tail = NULL;
                                        currTar_Info->TarSelQ_Cnt = 0;
-                               } else {
+                               }
+                               else
+                               {
                                        currTar_Info->TarSelQ_Cnt--;
-                                       currTar_Info->TarSelQ_Head->
-                                           Sccb_backlink = (struct sccb *)NULL;
+                                       currTar_Info->TarSelQ_Head->Sccb_backlink = (PSCCB)NULL;
                                }
 
                                scan_ptr++;
@@ -6850,9 +7415,11 @@ static void FPT_queueSearchSelect(struct sccb_card *pCurrCard,
                                break;
                        }
 
-                       else {
+                       else 
+                       {
                                scan_ptr++;
-                               if (scan_ptr == MAX_SCSI_TAR) {
+                               if (scan_ptr == MAX_SCSI_TAR) 
+                               {
                                        scan_ptr = 0;
                                }
                        }
@@ -6860,6 +7427,7 @@ static void FPT_queueSearchSelect(struct sccb_card *pCurrCard,
        } while (scan_ptr != pCurrCard->scanIndex);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Queue Select Fail
@@ -6868,39 +7436,37 @@ static void FPT_queueSearchSelect(struct sccb_card *pCurrCard,
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_queueSelectFail(struct sccb_card *pCurrCard,
-                               unsigned char p_card)
+static void FPT_queueSelectFail(PSCCBcard pCurrCard, UCHAR p_card)
 {
-       unsigned char thisTarg;
-       struct sccb_mgr_tar_info *currTar_Info;
+   UCHAR thisTarg;
+   PSCCBMgr_tar_info currTar_Info;
 
-       if (pCurrCard->currentSCCB != NULL) {
-               thisTarg =
-                   (unsigned char)(((struct sccb *)(pCurrCard->currentSCCB))->
-                                   TargID);
-               currTar_Info = &FPT_sccbMgrTbl[p_card][thisTarg];
+   if (pCurrCard->currentSCCB != NULL)
+         {
+         thisTarg = (UCHAR)(((PSCCB)(pCurrCard->currentSCCB))->TargID);
+      currTar_Info = &FPT_sccbMgrTbl[p_card][thisTarg];
 
-               pCurrCard->currentSCCB->Sccb_backlink = (struct sccb *)NULL;
+      pCurrCard->currentSCCB->Sccb_backlink = (PSCCB)NULL;
 
-               pCurrCard->currentSCCB->Sccb_forwardlink =
-                   currTar_Info->TarSelQ_Head;
+      pCurrCard->currentSCCB->Sccb_forwardlink = currTar_Info->TarSelQ_Head;
 
-               if (currTar_Info->TarSelQ_Cnt == 0) {
-                       currTar_Info->TarSelQ_Tail = pCurrCard->currentSCCB;
-               }
+         if (currTar_Info->TarSelQ_Cnt == 0)
+                {
+                currTar_Info->TarSelQ_Tail = pCurrCard->currentSCCB;
+                }
 
-               else {
-                       currTar_Info->TarSelQ_Head->Sccb_backlink =
-                           pCurrCard->currentSCCB;
-               }
+         else
+                {
+                currTar_Info->TarSelQ_Head->Sccb_backlink = pCurrCard->currentSCCB;
+                }
 
-               currTar_Info->TarSelQ_Head = pCurrCard->currentSCCB;
 
-               pCurrCard->currentSCCB = NULL;
-               currTar_Info->TarSelQ_Cnt++;
-       }
-}
+         currTar_Info->TarSelQ_Head = pCurrCard->currentSCCB;
 
+         pCurrCard->currentSCCB = NULL;
+         currTar_Info->TarSelQ_Cnt++;
+         }
+}
 /*---------------------------------------------------------------------
  *
  * Function: Queue Command Complete
@@ -6909,97 +7475,101 @@ static void FPT_queueSelectFail(struct sccb_card *pCurrCard,
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_queueCmdComplete(struct sccb_card *pCurrCard,
-                                struct sccb *p_sccb, unsigned char p_card)
+static void FPT_queueCmdComplete(PSCCBcard pCurrCard, PSCCB p_sccb,
+                                UCHAR p_card)
 {
 
-       unsigned char i, SCSIcmd;
-       CALL_BK_FN callback;
-       struct sccb_mgr_tar_info *currTar_Info;
-
-       SCSIcmd = p_sccb->Cdb[0];
-
-       if (!(p_sccb->Sccb_XferState & F_ALL_XFERRED)) {
-
-               if ((p_sccb->
-                    ControlByte & (SCCB_DATA_XFER_OUT | SCCB_DATA_XFER_IN))
-                   && (p_sccb->HostStatus == SCCB_COMPLETE)
-                   && (p_sccb->TargetStatus != SSCHECK))
-
-                       if ((SCSIcmd == SCSI_READ) ||
-                           (SCSIcmd == SCSI_WRITE) ||
-                           (SCSIcmd == SCSI_READ_EXTENDED) ||
-                           (SCSIcmd == SCSI_WRITE_EXTENDED) ||
-                           (SCSIcmd == SCSI_WRITE_AND_VERIFY) ||
-                           (SCSIcmd == SCSI_START_STOP_UNIT) ||
-                           (pCurrCard->globalFlags & F_NO_FILTER)
-                           )
-                               p_sccb->HostStatus = SCCB_DATA_UNDER_RUN;
-       }
+   UCHAR i, SCSIcmd;
+   CALL_BK_FN callback;
+   PSCCBMgr_tar_info currTar_Info;
 
-       if (p_sccb->SccbStatus == SCCB_IN_PROCESS) {
-               if (p_sccb->HostStatus || p_sccb->TargetStatus)
-                       p_sccb->SccbStatus = SCCB_ERROR;
-               else
-                       p_sccb->SccbStatus = SCCB_SUCCESS;
-       }
+   SCSIcmd = p_sccb->Cdb[0];
 
-       if (p_sccb->Sccb_XferState & F_AUTO_SENSE) {
 
-               p_sccb->CdbLength = p_sccb->Save_CdbLen;
-               for (i = 0; i < 6; i++) {
-                       p_sccb->Cdb[i] = p_sccb->Save_Cdb[i];
-               }
-       }
+   if (!(p_sccb->Sccb_XferState & F_ALL_XFERRED)) {
 
-       if ((p_sccb->OperationCode == RESIDUAL_SG_COMMAND) ||
-           (p_sccb->OperationCode == RESIDUAL_COMMAND)) {
+         if ((p_sccb->ControlByte & (SCCB_DATA_XFER_OUT | SCCB_DATA_XFER_IN)) &&
+                (p_sccb->HostStatus == SCCB_COMPLETE)                             &&
+                (p_sccb->TargetStatus != SSCHECK))
 
-               FPT_utilUpdateResidual(p_sccb);
+                if ((SCSIcmd == SCSI_READ)             ||
+                        (SCSIcmd == SCSI_WRITE)            ||
+                        (SCSIcmd == SCSI_READ_EXTENDED)    ||
+                        (SCSIcmd == SCSI_WRITE_EXTENDED)   ||
+                        (SCSIcmd == SCSI_WRITE_AND_VERIFY) ||
+                        (SCSIcmd == SCSI_START_STOP_UNIT)  ||
+                        (pCurrCard->globalFlags & F_NO_FILTER)
+                       )
+                          p_sccb->HostStatus = SCCB_DATA_UNDER_RUN;
+         }
+
+
+       if(p_sccb->SccbStatus == SCCB_IN_PROCESS)
+       {
+          if (p_sccb->HostStatus || p_sccb->TargetStatus)
+                 p_sccb->SccbStatus = SCCB_ERROR;
+          else
+                 p_sccb->SccbStatus = SCCB_SUCCESS;
        }
 
-       pCurrCard->cmdCounter--;
-       if (!pCurrCard->cmdCounter) {
+   if (p_sccb->Sccb_XferState & F_AUTO_SENSE) {
 
-               if (pCurrCard->globalFlags & F_GREEN_PC) {
-                       WR_HARPOON(pCurrCard->ioPort + hp_clkctrl_0,
-                                  (PWR_DWN | CLKCTRL_DEFAULT));
-                       WR_HARPOON(pCurrCard->ioPort + hp_sys_ctrl, STOP_CLK);
-               }
+         p_sccb->CdbLength = p_sccb->Save_CdbLen;
+         for (i=0; i < 6; i++) {
+                p_sccb->Cdb[i] = p_sccb->Save_Cdb[i];
+                }
+         }
 
-               WR_HARPOON(pCurrCard->ioPort + hp_semaphore,
-                          (RD_HARPOON(pCurrCard->ioPort + hp_semaphore) &
-                           ~SCCB_MGR_ACTIVE));
+   if ((p_sccb->OperationCode == RESIDUAL_SG_COMMAND) ||
+         (p_sccb->OperationCode == RESIDUAL_COMMAND)) {
 
-       }
+                FPT_utilUpdateResidual(p_sccb);
+                }
+
+   pCurrCard->cmdCounter--;
+   if (!pCurrCard->cmdCounter) {
+
+         if (pCurrCard->globalFlags & F_GREEN_PC) {
+                WR_HARPOON(pCurrCard->ioPort+hp_clkctrl_0,(PWR_DWN | CLKCTRL_DEFAULT));
+                WR_HARPOON(pCurrCard->ioPort+hp_sys_ctrl, STOP_CLK);
+                }
 
-       if (pCurrCard->discQCount != 0) {
-               currTar_Info = &FPT_sccbMgrTbl[p_card][p_sccb->TargID];
-               if (((pCurrCard->globalFlags & F_CONLUN_IO) &&
-                    ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) !=
-                     TAG_Q_TRYING))) {
+         WR_HARPOON(pCurrCard->ioPort+hp_semaphore,
+         (RD_HARPOON(pCurrCard->ioPort+hp_semaphore) & ~SCCB_MGR_ACTIVE));
+
+         }
+
+       if(pCurrCard->discQCount != 0)
+       {
+      currTar_Info = &FPT_sccbMgrTbl[p_card][p_sccb->TargID];
+               if(((pCurrCard->globalFlags & F_CONLUN_IO) &&
+                       ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+               {
                        pCurrCard->discQCount--;
-                       pCurrCard->discQ_Tbl[currTar_Info->
-                                            LunDiscQ_Idx[p_sccb->Lun]] = NULL;
-               } else {
-                       if (p_sccb->Sccb_tag) {
+                       pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[p_sccb->Lun]] = NULL;
+               }
+               else
+               {
+                       if(p_sccb->Sccb_tag)
+                       {
                                pCurrCard->discQCount--;
                                pCurrCard->discQ_Tbl[p_sccb->Sccb_tag] = NULL;
-                       } else {
+                       }else
+                       {
                                pCurrCard->discQCount--;
-                               pCurrCard->discQ_Tbl[currTar_Info->
-                                                    LunDiscQ_Idx[0]] = NULL;
+                               pCurrCard->discQ_Tbl[currTar_Info->LunDiscQ_Idx[0]] = NULL;
                        }
                }
 
        }
 
-       callback = (CALL_BK_FN) p_sccb->SccbCallback;
-       callback(p_sccb);
-       pCurrCard->globalFlags |= F_NEW_SCCB_CMD;
-       pCurrCard->currentSCCB = NULL;
+       callback = (CALL_BK_FN)p_sccb->SccbCallback;
+   callback(p_sccb);
+   pCurrCard->globalFlags |= F_NEW_SCCB_CMD;
+   pCurrCard->currentSCCB = NULL;
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Queue Disconnect
@@ -7007,32 +7577,33 @@ static void FPT_queueCmdComplete(struct sccb_card *pCurrCard,
  * Description: Add SCCB to our disconnect array.
  *
  *---------------------------------------------------------------------*/
-static void FPT_queueDisconnect(struct sccb *p_sccb, unsigned char p_card)
+static void FPT_queueDisconnect(PSCCB p_sccb, UCHAR p_card)
 {
-       struct sccb_mgr_tar_info *currTar_Info;
+   PSCCBMgr_tar_info currTar_Info;
 
        currTar_Info = &FPT_sccbMgrTbl[p_card][p_sccb->TargID];
 
-       if (((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
-            ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING))) {
-               FPT_BL_Card[p_card].discQ_Tbl[currTar_Info->
-                                             LunDiscQ_Idx[p_sccb->Lun]] =
-                   p_sccb;
-       } else {
-               if (p_sccb->Sccb_tag) {
-                       FPT_BL_Card[p_card].discQ_Tbl[p_sccb->Sccb_tag] =
-                           p_sccb;
-                       FPT_sccbMgrTbl[p_card][p_sccb->TargID].TarLUNBusy[0] =
-                           0;
+       if(((FPT_BL_Card[p_card].globalFlags & F_CONLUN_IO) &&
+               ((currTar_Info->TarStatus & TAR_TAG_Q_MASK) != TAG_Q_TRYING)))
+       {
+               FPT_BL_Card[p_card].discQ_Tbl[currTar_Info->LunDiscQ_Idx[p_sccb->Lun]] = p_sccb;
+       }
+       else
+       {
+               if (p_sccb->Sccb_tag)
+               {
+                       FPT_BL_Card[p_card].discQ_Tbl[p_sccb->Sccb_tag] = p_sccb;
+                       FPT_sccbMgrTbl[p_card][p_sccb->TargID].TarLUNBusy[0] = 0;
                        FPT_sccbMgrTbl[p_card][p_sccb->TargID].TarTagQ_Cnt++;
-               } else {
-                       FPT_BL_Card[p_card].discQ_Tbl[currTar_Info->
-                                                     LunDiscQ_Idx[0]] = p_sccb;
+               }else
+               {
+                       FPT_BL_Card[p_card].discQ_Tbl[currTar_Info->LunDiscQ_Idx[0]] = p_sccb;
                }
        }
        FPT_BL_Card[p_card].currentSCCB = NULL;
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Queue Flush SCCB
@@ -7041,35 +7612,33 @@ static void FPT_queueDisconnect(struct sccb *p_sccb, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_queueFlushSccb(unsigned char p_card, unsigned char error_code)
+static void  FPT_queueFlushSccb(UCHAR p_card, UCHAR error_code)
 {
-       unsigned char qtag, thisTarg;
-       struct sccb *currSCCB;
-       struct sccb_mgr_tar_info *currTar_Info;
-
-       currSCCB = FPT_BL_Card[p_card].currentSCCB;
-       if (currSCCB != NULL) {
-               thisTarg = (unsigned char)currSCCB->TargID;
-               currTar_Info = &FPT_sccbMgrTbl[p_card][thisTarg];
+   UCHAR qtag,thisTarg;
+   PSCCB currSCCB;
+   PSCCBMgr_tar_info currTar_Info;
 
-               for (qtag = 0; qtag < QUEUE_DEPTH; qtag++) {
+   currSCCB = FPT_BL_Card[p_card].currentSCCB;
+       if(currSCCB != NULL)
+       {
+          thisTarg = (UCHAR)currSCCB->TargID;
+       currTar_Info = &FPT_sccbMgrTbl[p_card][thisTarg];
 
-                       if (FPT_BL_Card[p_card].discQ_Tbl[qtag] &&
-                           (FPT_BL_Card[p_card].discQ_Tbl[qtag]->TargID ==
-                            thisTarg)) {
+          for (qtag=0; qtag<QUEUE_DEPTH; qtag++) {
 
-                               FPT_BL_Card[p_card].discQ_Tbl[qtag]->
-                                   HostStatus = (unsigned char)error_code;
+                 if (FPT_BL_Card[p_card].discQ_Tbl[qtag] && 
+                                       (FPT_BL_Card[p_card].discQ_Tbl[qtag]->TargID == thisTarg))
+                        {
 
-                               FPT_queueCmdComplete(&FPT_BL_Card[p_card],
-                                                    FPT_BL_Card[p_card].
-                                                    discQ_Tbl[qtag], p_card);
+                        FPT_BL_Card[p_card].discQ_Tbl[qtag]->HostStatus = (UCHAR)error_code;
+                       
+                        FPT_queueCmdComplete(&FPT_BL_Card[p_card],FPT_BL_Card[p_card].discQ_Tbl[qtag], p_card);
 
-                               FPT_BL_Card[p_card].discQ_Tbl[qtag] = NULL;
-                               currTar_Info->TarTagQ_Cnt--;
+                        FPT_BL_Card[p_card].discQ_Tbl[qtag] = NULL;
+                        currTar_Info->TarTagQ_Cnt--;
 
-                       }
-               }
+                        }
+                 }
        }
 
 }
@@ -7082,57 +7651,61 @@ static void FPT_queueFlushSccb(unsigned char p_card, unsigned char error_code)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_queueFlushTargSccb(unsigned char p_card, unsigned char thisTarg,
-                                  unsigned char error_code)
+static void  FPT_queueFlushTargSccb(UCHAR p_card, UCHAR thisTarg,
+                                   UCHAR error_code)
 {
-       unsigned char qtag;
-       struct sccb_mgr_tar_info *currTar_Info;
+   UCHAR qtag;
+   PSCCBMgr_tar_info currTar_Info;
 
-       currTar_Info = &FPT_sccbMgrTbl[p_card][thisTarg];
+   currTar_Info = &FPT_sccbMgrTbl[p_card][thisTarg];
 
-       for (qtag = 0; qtag < QUEUE_DEPTH; qtag++) {
+   for (qtag=0; qtag<QUEUE_DEPTH; qtag++) {
 
-               if (FPT_BL_Card[p_card].discQ_Tbl[qtag] &&
-                   (FPT_BL_Card[p_card].discQ_Tbl[qtag]->TargID == thisTarg)) {
+         if (FPT_BL_Card[p_card].discQ_Tbl[qtag] && 
+                               (FPT_BL_Card[p_card].discQ_Tbl[qtag]->TargID == thisTarg))
+                {
 
-                       FPT_BL_Card[p_card].discQ_Tbl[qtag]->HostStatus =
-                           (unsigned char)error_code;
+                FPT_BL_Card[p_card].discQ_Tbl[qtag]->HostStatus = (UCHAR)error_code;
 
-                       FPT_queueCmdComplete(&FPT_BL_Card[p_card],
-                                            FPT_BL_Card[p_card].
-                                            discQ_Tbl[qtag], p_card);
+                FPT_queueCmdComplete(&FPT_BL_Card[p_card],FPT_BL_Card[p_card].discQ_Tbl[qtag], p_card);
 
-                       FPT_BL_Card[p_card].discQ_Tbl[qtag] = NULL;
-                       currTar_Info->TarTagQ_Cnt--;
+                FPT_BL_Card[p_card].discQ_Tbl[qtag] = NULL;
+                currTar_Info->TarTagQ_Cnt--;
 
-               }
-       }
+                }
+         }
 
 }
 
-static void FPT_queueAddSccb(struct sccb *p_SCCB, unsigned char p_card)
+
+
+
+
+static void FPT_queueAddSccb(PSCCB p_SCCB, UCHAR p_card)
 {
-       struct sccb_mgr_tar_info *currTar_Info;
-       currTar_Info = &FPT_sccbMgrTbl[p_card][p_SCCB->TargID];
+   PSCCBMgr_tar_info currTar_Info;
+   currTar_Info = &FPT_sccbMgrTbl[p_card][p_SCCB->TargID];
 
-       p_SCCB->Sccb_forwardlink = NULL;
+   p_SCCB->Sccb_forwardlink = NULL;
 
-       p_SCCB->Sccb_backlink = currTar_Info->TarSelQ_Tail;
+   p_SCCB->Sccb_backlink = currTar_Info->TarSelQ_Tail;
 
-       if (currTar_Info->TarSelQ_Cnt == 0) {
+   if (currTar_Info->TarSelQ_Cnt == 0) {
 
-               currTar_Info->TarSelQ_Head = p_SCCB;
-       }
+         currTar_Info->TarSelQ_Head = p_SCCB;
+         }
 
-       else {
+   else {
 
-               currTar_Info->TarSelQ_Tail->Sccb_forwardlink = p_SCCB;
-       }
+         currTar_Info->TarSelQ_Tail->Sccb_forwardlink = p_SCCB;
+         }
 
-       currTar_Info->TarSelQ_Tail = p_SCCB;
-       currTar_Info->TarSelQ_Cnt++;
+
+   currTar_Info->TarSelQ_Tail = p_SCCB;
+   currTar_Info->TarSelQ_Cnt++;
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Queue Find SCCB
@@ -7142,56 +7715,54 @@ static void FPT_queueAddSccb(struct sccb *p_SCCB, unsigned char p_card)
  *
  *---------------------------------------------------------------------*/
 
-static unsigned char FPT_queueFindSccb(struct sccb *p_SCCB,
-                                      unsigned char p_card)
+static UCHAR FPT_queueFindSccb(PSCCB p_SCCB, UCHAR p_card)
 {
-       struct sccb *q_ptr;
-       struct sccb_mgr_tar_info *currTar_Info;
+   PSCCB q_ptr;
+   PSCCBMgr_tar_info currTar_Info;
 
-       currTar_Info = &FPT_sccbMgrTbl[p_card][p_SCCB->TargID];
+   currTar_Info = &FPT_sccbMgrTbl[p_card][p_SCCB->TargID];
 
-       q_ptr = currTar_Info->TarSelQ_Head;
+   q_ptr = currTar_Info->TarSelQ_Head;
 
-       while (q_ptr != NULL) {
+   while(q_ptr != NULL) {
 
-               if (q_ptr == p_SCCB) {
+         if (q_ptr == p_SCCB) {
 
-                       if (currTar_Info->TarSelQ_Head == q_ptr) {
 
-                               currTar_Info->TarSelQ_Head =
-                                   q_ptr->Sccb_forwardlink;
+                if (currTar_Info->TarSelQ_Head == q_ptr) {
+
+                       currTar_Info->TarSelQ_Head = q_ptr->Sccb_forwardlink;
                        }
 
-                       if (currTar_Info->TarSelQ_Tail == q_ptr) {
+                if (currTar_Info->TarSelQ_Tail == q_ptr) {
 
-                               currTar_Info->TarSelQ_Tail =
-                                   q_ptr->Sccb_backlink;
+                       currTar_Info->TarSelQ_Tail = q_ptr->Sccb_backlink;
                        }
 
-                       if (q_ptr->Sccb_forwardlink != NULL) {
-                               q_ptr->Sccb_forwardlink->Sccb_backlink =
-                                   q_ptr->Sccb_backlink;
+                if (q_ptr->Sccb_forwardlink != NULL) {
+                       q_ptr->Sccb_forwardlink->Sccb_backlink = q_ptr->Sccb_backlink;
                        }
 
-                       if (q_ptr->Sccb_backlink != NULL) {
-                               q_ptr->Sccb_backlink->Sccb_forwardlink =
-                                   q_ptr->Sccb_forwardlink;
+                if (q_ptr->Sccb_backlink != NULL) {
+                       q_ptr->Sccb_backlink->Sccb_forwardlink = q_ptr->Sccb_forwardlink;
                        }
 
-                       currTar_Info->TarSelQ_Cnt--;
+                currTar_Info->TarSelQ_Cnt--;
 
-                       return 1;
-               }
+                return(1);
+                }
 
-               else {
-                       q_ptr = q_ptr->Sccb_forwardlink;
-               }
-       }
+         else {
+                q_ptr = q_ptr->Sccb_forwardlink;
+                }
+         }
 
-       return 0;
+
+   return(0);
 
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Utility Update Residual Count
@@ -7205,47 +7776,48 @@ static unsigned char FPT_queueFindSccb(struct sccb *p_SCCB,
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_utilUpdateResidual(struct sccb *p_SCCB)
+static void  FPT_utilUpdateResidual(PSCCB p_SCCB)
 {
-       unsigned long partial_cnt;
-       unsigned int sg_index;
-       unsigned long *sg_ptr;
+   ULONG partial_cnt;
+   UINT  sg_index;
+   ULONG *sg_ptr;
 
-       if (p_SCCB->Sccb_XferState & F_ALL_XFERRED) {
+   if (p_SCCB->Sccb_XferState & F_ALL_XFERRED) {
 
-               p_SCCB->DataLength = 0x0000;
-       }
+         p_SCCB->DataLength = 0x0000;
+         }
 
-       else if (p_SCCB->Sccb_XferState & F_SG_XFER) {
+   else if (p_SCCB->Sccb_XferState & F_SG_XFER) {
 
-               partial_cnt = 0x0000;
+                partial_cnt = 0x0000;
 
-               sg_index = p_SCCB->Sccb_sgseg;
+                sg_index = p_SCCB->Sccb_sgseg;
 
-               sg_ptr = (unsigned long *)p_SCCB->DataPointer;
+                sg_ptr = (ULONG *)p_SCCB->DataPointer;
 
-               if (p_SCCB->Sccb_SGoffset) {
+                if (p_SCCB->Sccb_SGoffset) {
 
                        partial_cnt = p_SCCB->Sccb_SGoffset;
                        sg_index++;
-               }
+                       }
 
-               while (((unsigned long)sg_index *
-                       (unsigned long)SG_ELEMENT_SIZE) < p_SCCB->DataLength) {
+                while ( ((ULONG)sg_index * (ULONG)SG_ELEMENT_SIZE) <
+                       p_SCCB->DataLength ) {
 
-                       partial_cnt += *(sg_ptr + (sg_index * 2));
+                       partial_cnt += *(sg_ptr+(sg_index * 2));
                        sg_index++;
-               }
+                       }
 
-               p_SCCB->DataLength = partial_cnt;
-       }
+                p_SCCB->DataLength = partial_cnt;
+                }
 
-       else {
+         else {
 
-               p_SCCB->DataLength -= p_SCCB->Sccb_ATC;
-       }
+                p_SCCB->DataLength -= p_SCCB->Sccb_ATC;
+                }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Wait 1 Second
@@ -7254,22 +7826,23 @@ static void FPT_utilUpdateResidual(struct sccb *p_SCCB)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_Wait1Second(unsigned long p_port)
+static void FPT_Wait1Second(ULONG p_port)
 {
-       unsigned char i;
+   UCHAR i;
 
-       for (i = 0; i < 4; i++) {
+   for(i=0; i < 4; i++) {
 
-               FPT_Wait(p_port, TO_250ms);
+         FPT_Wait(p_port, TO_250ms);
 
-               if ((RD_HARPOON(p_port + hp_scsictrl_0) & SCSI_RST))
-                       break;
+         if ((RD_HARPOON(p_port+hp_scsictrl_0) & SCSI_RST))
+                break;
 
-               if ((RDW_HARPOON((p_port + hp_intstat)) & SCAM_SEL))
-                       break;
-       }
+         if((RDW_HARPOON((p_port+hp_intstat)) & SCAM_SEL))
+                break;
+         }
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: FPT_Wait
@@ -7278,43 +7851,45 @@ static void FPT_Wait1Second(unsigned long p_port)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_Wait(unsigned long p_port, unsigned char p_delay)
+static void FPT_Wait(ULONG p_port, UCHAR p_delay)
 {
-       unsigned char old_timer;
-       unsigned char green_flag;
+   UCHAR old_timer;
+   UCHAR green_flag;
 
-       old_timer = RD_HARPOON(p_port + hp_seltimeout);
+   old_timer = RD_HARPOON(p_port+hp_seltimeout);
 
-       green_flag = RD_HARPOON(p_port + hp_clkctrl_0);
-       WR_HARPOON(p_port + hp_clkctrl_0, CLKCTRL_DEFAULT);
+   green_flag=RD_HARPOON(p_port+hp_clkctrl_0);
+   WR_HARPOON(p_port+hp_clkctrl_0, CLKCTRL_DEFAULT);
 
-       WR_HARPOON(p_port + hp_seltimeout, p_delay);
-       WRW_HARPOON((p_port + hp_intstat), TIMEOUT);
-       WRW_HARPOON((p_port + hp_intena), (FPT_default_intena & ~TIMEOUT));
+   WR_HARPOON(p_port+hp_seltimeout,p_delay);
+   WRW_HARPOON((p_port+hp_intstat), TIMEOUT);
+   WRW_HARPOON((p_port+hp_intena), (FPT_default_intena & ~TIMEOUT));
 
-       WR_HARPOON(p_port + hp_portctrl_0,
-                  (RD_HARPOON(p_port + hp_portctrl_0) | START_TO));
 
-       while (!(RDW_HARPOON((p_port + hp_intstat)) & TIMEOUT)) {
+   WR_HARPOON(p_port+hp_portctrl_0,
+         (RD_HARPOON(p_port+hp_portctrl_0) | START_TO));
 
-               if ((RD_HARPOON(p_port + hp_scsictrl_0) & SCSI_RST))
-                       break;
+   while (!(RDW_HARPOON((p_port+hp_intstat)) & TIMEOUT)) {
 
-               if ((RDW_HARPOON((p_port + hp_intstat)) & SCAM_SEL))
-                       break;
-       }
+         if ((RD_HARPOON(p_port+hp_scsictrl_0) & SCSI_RST))
+                break;
+
+         if ((RDW_HARPOON((p_port+hp_intstat)) & SCAM_SEL))
+                break;
+         }
 
-       WR_HARPOON(p_port + hp_portctrl_0,
-                  (RD_HARPOON(p_port + hp_portctrl_0) & ~START_TO));
+   WR_HARPOON(p_port+hp_portctrl_0,
+         (RD_HARPOON(p_port+hp_portctrl_0) & ~START_TO));
 
-       WRW_HARPOON((p_port + hp_intstat), TIMEOUT);
-       WRW_HARPOON((p_port + hp_intena), FPT_default_intena);
+   WRW_HARPOON((p_port+hp_intstat), TIMEOUT);
+   WRW_HARPOON((p_port+hp_intena), FPT_default_intena);
 
-       WR_HARPOON(p_port + hp_clkctrl_0, green_flag);
+   WR_HARPOON(p_port+hp_clkctrl_0,green_flag);
 
-       WR_HARPOON(p_port + hp_seltimeout, old_timer);
+   WR_HARPOON(p_port+hp_seltimeout,old_timer);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Enable/Disable Write to EEPROM
@@ -7324,26 +7899,26 @@ static void FPT_Wait(unsigned long p_port, unsigned char p_delay)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_utilEEWriteOnOff(unsigned long p_port, unsigned char p_mode)
+static void FPT_utilEEWriteOnOff(ULONG p_port,UCHAR p_mode)
 {
-       unsigned char ee_value;
+   UCHAR ee_value;
 
-       ee_value =
-           (unsigned char)(RD_HARPOON(p_port + hp_ee_ctrl) &
-                           (EXT_ARB_ACK | SCSI_TERM_ENA_H));
+   ee_value = (UCHAR)(RD_HARPOON(p_port+hp_ee_ctrl) & (EXT_ARB_ACK | SCSI_TERM_ENA_H));
 
-       if (p_mode)
+   if (p_mode)
 
-               FPT_utilEESendCmdAddr(p_port, EWEN, EWEN_ADDR);
+         FPT_utilEESendCmdAddr(p_port, EWEN, EWEN_ADDR);
+
+   else
 
-       else
 
-               FPT_utilEESendCmdAddr(p_port, EWDS, EWDS_ADDR);
+         FPT_utilEESendCmdAddr(p_port, EWDS, EWDS_ADDR);
 
-       WR_HARPOON(p_port + hp_ee_ctrl, (ee_value | SEE_MS));   /*Turn off CS */
-       WR_HARPOON(p_port + hp_ee_ctrl, ee_value);      /*Turn off Master Select */
+   WR_HARPOON(p_port+hp_ee_ctrl, (ee_value | SEE_MS)); /*Turn off CS */
+   WR_HARPOON(p_port+hp_ee_ctrl, ee_value);       /*Turn off Master Select */
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Write EEPROM
@@ -7353,46 +7928,46 @@ static void FPT_utilEEWriteOnOff(unsigned long p_port, unsigned char p_mode)
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_utilEEWrite(unsigned long p_port, unsigned short ee_data,
-                           unsigned short ee_addr)
+static void FPT_utilEEWrite(ULONG p_port, USHORT ee_data, USHORT ee_addr)
 {
 
-       unsigned char ee_value;
-       unsigned short i;
+   UCHAR ee_value;
+   USHORT i;
 
-       ee_value =
-           (unsigned
-            char)((RD_HARPOON(p_port + hp_ee_ctrl) &
-                   (EXT_ARB_ACK | SCSI_TERM_ENA_H)) | (SEE_MS | SEE_CS));
+   ee_value = (UCHAR)((RD_HARPOON(p_port+hp_ee_ctrl) & (EXT_ARB_ACK | SCSI_TERM_ENA_H))|
+                  (SEE_MS | SEE_CS));
 
-       FPT_utilEESendCmdAddr(p_port, EE_WRITE, ee_addr);
 
-       ee_value |= (SEE_MS + SEE_CS);
 
-       for (i = 0x8000; i != 0; i >>= 1) {
+   FPT_utilEESendCmdAddr(p_port, EE_WRITE, ee_addr);
 
-               if (i & ee_data)
-                       ee_value |= SEE_DO;
-               else
-                       ee_value &= ~SEE_DO;
-
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               ee_value |= SEE_CLK;    /* Clock  data! */
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               ee_value &= ~SEE_CLK;
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-       }
-       ee_value &= (EXT_ARB_ACK | SCSI_TERM_ENA_H);
-       WR_HARPOON(p_port + hp_ee_ctrl, (ee_value | SEE_MS));
 
-       FPT_Wait(p_port, TO_10ms);
+   ee_value |= (SEE_MS + SEE_CS);
+
+   for(i = 0x8000; i != 0; i>>=1) {
 
-       WR_HARPOON(p_port + hp_ee_ctrl, (ee_value | SEE_MS | SEE_CS));  /* Set CS to EEPROM */
-       WR_HARPOON(p_port + hp_ee_ctrl, (ee_value | SEE_MS));   /* Turn off CS */
-       WR_HARPOON(p_port + hp_ee_ctrl, ee_value);      /* Turn off Master Select */
+         if (i & ee_data)
+        ee_value |= SEE_DO;
+         else
+        ee_value &= ~SEE_DO;
+
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         ee_value |= SEE_CLK;          /* Clock  data! */
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         ee_value &= ~SEE_CLK;
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         }
+   ee_value &= (EXT_ARB_ACK | SCSI_TERM_ENA_H);
+   WR_HARPOON(p_port+hp_ee_ctrl, (ee_value | SEE_MS));
+
+   FPT_Wait(p_port, TO_10ms);
+
+   WR_HARPOON(p_port+hp_ee_ctrl, (ee_value | SEE_MS | SEE_CS)); /* Set CS to EEPROM */
+   WR_HARPOON(p_port+hp_ee_ctrl, (ee_value | SEE_MS));       /* Turn off CS */
+   WR_HARPOON(p_port+hp_ee_ctrl, ee_value);       /* Turn off Master Select */
 }
 
 /*---------------------------------------------------------------------
@@ -7404,25 +7979,25 @@ static void FPT_utilEEWrite(unsigned long p_port, unsigned short ee_data,
  *
  *---------------------------------------------------------------------*/
 
-static unsigned short FPT_utilEERead(unsigned long p_port,
-                                    unsigned short ee_addr)
+static USHORT FPT_utilEERead(ULONG p_port, USHORT ee_addr)
 {
-       unsigned short i, ee_data1, ee_data2;
+   USHORT i, ee_data1, ee_data2;
 
        i = 0;
        ee_data1 = FPT_utilEEReadOrg(p_port, ee_addr);
-       do {
+       do
+       {
                ee_data2 = FPT_utilEEReadOrg(p_port, ee_addr);
 
-               if (ee_data1 == ee_data2)
-                       return ee_data1;
+               if(ee_data1 == ee_data2)
+                       return(ee_data1);
 
                ee_data1 = ee_data2;
                i++;
 
-       } while (i < 4);
+       }while(i < 4);
 
-       return ee_data1;
+       return(ee_data1);
 }
 
 /*---------------------------------------------------------------------
@@ -7434,45 +8009,45 @@ static unsigned short FPT_utilEERead(unsigned long p_port,
  *
  *---------------------------------------------------------------------*/
 
-static unsigned short FPT_utilEEReadOrg(unsigned long p_port,
-                                       unsigned short ee_addr)
+static USHORT FPT_utilEEReadOrg(ULONG p_port, USHORT ee_addr)
 {
 
-       unsigned char ee_value;
-       unsigned short i, ee_data;
+   UCHAR ee_value;
+   USHORT i, ee_data;
 
-       ee_value =
-           (unsigned
-            char)((RD_HARPOON(p_port + hp_ee_ctrl) &
-                   (EXT_ARB_ACK | SCSI_TERM_ENA_H)) | (SEE_MS | SEE_CS));
+   ee_value = (UCHAR)((RD_HARPOON(p_port+hp_ee_ctrl) & (EXT_ARB_ACK | SCSI_TERM_ENA_H))|
+                  (SEE_MS | SEE_CS));
 
-       FPT_utilEESendCmdAddr(p_port, EE_READ, ee_addr);
 
-       ee_value |= (SEE_MS + SEE_CS);
-       ee_data = 0;
+   FPT_utilEESendCmdAddr(p_port, EE_READ, ee_addr);
 
-       for (i = 1; i <= 16; i++) {
 
-               ee_value |= SEE_CLK;    /* Clock  data! */
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               ee_value &= ~SEE_CLK;
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
+   ee_value |= (SEE_MS + SEE_CS);
+   ee_data = 0;
 
-               ee_data <<= 1;
+   for(i = 1; i <= 16; i++) {
 
-               if (RD_HARPOON(p_port + hp_ee_ctrl) & SEE_DI)
-                       ee_data |= 1;
-       }
+         ee_value |= SEE_CLK;          /* Clock  data! */
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         ee_value &= ~SEE_CLK;
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+
+         ee_data <<= 1;
 
-       ee_value &= ~(SEE_MS + SEE_CS);
-       WR_HARPOON(p_port + hp_ee_ctrl, (ee_value | SEE_MS));   /*Turn off CS */
-       WR_HARPOON(p_port + hp_ee_ctrl, ee_value);      /*Turn off Master Select */
+         if (RD_HARPOON(p_port+hp_ee_ctrl) & SEE_DI)
+                ee_data |= 1;
+         }
 
-       return ee_data;
+   ee_value &= ~(SEE_MS + SEE_CS);
+   WR_HARPOON(p_port+hp_ee_ctrl, (ee_value | SEE_MS)); /*Turn off CS */
+   WR_HARPOON(p_port+hp_ee_ctrl, ee_value);   /*Turn off Master Select */
+
+   return(ee_data);
 }
 
+
 /*---------------------------------------------------------------------
  *
  * Function: Send EE command and Address to the EEPROM
@@ -7482,95 +8057,101 @@ static unsigned short FPT_utilEEReadOrg(unsigned long p_port,
  *
  *---------------------------------------------------------------------*/
 
-static void FPT_utilEESendCmdAddr(unsigned long p_port, unsigned char ee_cmd,
-                                 unsigned short ee_addr)
+static void FPT_utilEESendCmdAddr(ULONG p_port, UCHAR ee_cmd, USHORT ee_addr)
 {
-       unsigned char ee_value;
-       unsigned char narrow_flg;
+   UCHAR ee_value;
+   UCHAR narrow_flg;
 
-       unsigned short i;
+   USHORT i;
 
-       narrow_flg =
-           (unsigned char)(RD_HARPOON(p_port + hp_page_ctrl) &
-                           NARROW_SCSI_CARD);
 
-       ee_value = SEE_MS;
-       WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
+   narrow_flg= (UCHAR)(RD_HARPOON(p_port+hp_page_ctrl) & NARROW_SCSI_CARD);
 
-       ee_value |= SEE_CS;     /* Set CS to EEPROM */
-       WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
 
-       for (i = 0x04; i != 0; i >>= 1) {
+   ee_value = SEE_MS;
+   WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
 
-               if (i & ee_cmd)
-                       ee_value |= SEE_DO;
-               else
-                       ee_value &= ~SEE_DO;
-
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               ee_value |= SEE_CLK;    /* Clock  data! */
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               ee_value &= ~SEE_CLK;
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-       }
+   ee_value |= SEE_CS;                             /* Set CS to EEPROM */
+   WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
 
-       if (narrow_flg)
-               i = 0x0080;
 
-       else
-               i = 0x0200;
+   for(i = 0x04; i != 0; i>>=1) {
 
-       while (i != 0) {
+         if (i & ee_cmd)
+                ee_value |= SEE_DO;
+         else
+                ee_value &= ~SEE_DO;
 
-               if (i & ee_addr)
-                       ee_value |= SEE_DO;
-               else
-                       ee_value &= ~SEE_DO;
-
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               ee_value |= SEE_CLK;    /* Clock  data! */
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               ee_value &= ~SEE_CLK;
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-               WR_HARPOON(p_port + hp_ee_ctrl, ee_value);
-
-               i >>= 1;
-       }
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         ee_value |= SEE_CLK;                         /* Clock  data! */
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         ee_value &= ~SEE_CLK;
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         }
+
+
+   if (narrow_flg)
+         i = 0x0080;
+
+   else
+         i = 0x0200;
+
+
+   while (i != 0) {
+
+         if (i & ee_addr)
+                ee_value |= SEE_DO;
+         else
+                ee_value &= ~SEE_DO;
+
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         ee_value |= SEE_CLK;                         /* Clock  data! */
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         ee_value &= ~SEE_CLK;
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+         WR_HARPOON(p_port+hp_ee_ctrl, ee_value);
+
+         i >>= 1;
+         }
 }
 
-static unsigned short FPT_CalcCrc16(unsigned char buffer[])
+static USHORT FPT_CalcCrc16(UCHAR buffer[])
 {
-       unsigned short crc = 0;
-       int i, j;
-       unsigned short ch;
-       for (i = 0; i < ID_STRING_LENGTH; i++) {
-               ch = (unsigned short)buffer[i];
-               for (j = 0; j < 8; j++) {
-                       if ((crc ^ ch) & 1)
-                               crc = (crc >> 1) ^ CRCMASK;
-                       else
-                               crc >>= 1;
-                       ch >>= 1;
-               }
-       }
-       return crc;
+   USHORT crc=0;
+       int i,j;
+   USHORT ch;
+   for (i=0; i < ID_STRING_LENGTH; i++)
+   {
+      ch = (USHORT) buffer[i];
+          for(j=0; j < 8; j++)
+          {
+                  if ((crc ^ ch) & 1)
+            crc = (crc >> 1) ^ CRCMASK;
+                  else
+            crc >>= 1;
+                  ch >>= 1;
+          }
+   }
+       return(crc);
 }
 
-static unsigned char FPT_CalcLrc(unsigned char buffer[])
+static UCHAR FPT_CalcLrc(UCHAR buffer[])
 {
        int i;
-       unsigned char lrc;
+       UCHAR lrc;
        lrc = 0;
-       for (i = 0; i < ID_STRING_LENGTH; i++)
+       for(i = 0; i < ID_STRING_LENGTH; i++)
                lrc ^= buffer[i];
-       return lrc;
+       return(lrc);
 }
 
+
+
 /*
   The following inline definitions avoid type conflicts.
 */
@@ -7578,49 +8159,51 @@ static unsigned char FPT_CalcLrc(unsigned char buffer[])
 static inline unsigned char
 FlashPoint__ProbeHostAdapter(struct FlashPoint_Info *FlashPointInfo)
 {
-       return FlashPoint_ProbeHostAdapter((struct sccb_mgr_info *)
-                                          FlashPointInfo);
+  return FlashPoint_ProbeHostAdapter((PSCCBMGR_INFO) FlashPointInfo);
 }
 
+
 static inline FlashPoint_CardHandle_T
 FlashPoint__HardwareResetHostAdapter(struct FlashPoint_Info *FlashPointInfo)
 {
-       return FlashPoint_HardwareResetHostAdapter((struct sccb_mgr_info *)
-                                                  FlashPointInfo);
+  return FlashPoint_HardwareResetHostAdapter((PSCCBMGR_INFO) FlashPointInfo);
 }
 
 static inline void
 FlashPoint__ReleaseHostAdapter(FlashPoint_CardHandle_T CardHandle)
 {
-       FlashPoint_ReleaseHostAdapter(CardHandle);
+  FlashPoint_ReleaseHostAdapter(CardHandle);
 }
 
+
 static inline void
-FlashPoint__StartCCB(FlashPoint_CardHandle_T CardHandle,
-                    struct BusLogic_CCB *CCB)
+FlashPoint__StartCCB(FlashPoint_CardHandle_T CardHandle, struct BusLogic_CCB *CCB)
 {
-       FlashPoint_StartCCB(CardHandle, (struct sccb *)CCB);
+  FlashPoint_StartCCB(CardHandle, (PSCCB) CCB);
 }
 
+
 static inline void
-FlashPoint__AbortCCB(FlashPoint_CardHandle_T CardHandle,
-                    struct BusLogic_CCB *CCB)
+FlashPoint__AbortCCB(FlashPoint_CardHandle_T CardHandle, struct BusLogic_CCB *CCB)
 {
-       FlashPoint_AbortCCB(CardHandle, (struct sccb *)CCB);
+  FlashPoint_AbortCCB(CardHandle, (PSCCB) CCB);
 }
 
+
 static inline boolean
 FlashPoint__InterruptPending(FlashPoint_CardHandle_T CardHandle)
 {
-       return FlashPoint_InterruptPending(CardHandle);
+  return FlashPoint_InterruptPending(CardHandle);
 }
 
+
 static inline int
 FlashPoint__HandleInterrupt(FlashPoint_CardHandle_T CardHandle)
 {
-       return FlashPoint_HandleInterrupt(CardHandle);
+  return FlashPoint_HandleInterrupt(CardHandle);
 }
 
+
 #define FlashPoint_ProbeHostAdapter        FlashPoint__ProbeHostAdapter
 #define FlashPoint_HardwareResetHostAdapter FlashPoint__HardwareResetHostAdapter
 #define FlashPoint_ReleaseHostAdapter      FlashPoint__ReleaseHostAdapter
@@ -7629,7 +8212,9 @@ FlashPoint__HandleInterrupt(FlashPoint_CardHandle_T CardHandle)
 #define FlashPoint_InterruptPending        FlashPoint__InterruptPending
 #define FlashPoint_HandleInterrupt         FlashPoint__HandleInterrupt
 
-#else                          /* CONFIG_SCSI_OMIT_FLASHPOINT */
+
+#else  /* CONFIG_SCSI_OMIT_FLASHPOINT */
+
 
 /*
   Define prototypes for the FlashPoint SCCB Manager Functions.
@@ -7637,11 +8222,12 @@ FlashPoint__HandleInterrupt(FlashPoint_CardHandle_T CardHandle)
 
 extern unsigned char FlashPoint_ProbeHostAdapter(struct FlashPoint_Info *);
 extern FlashPoint_CardHandle_T
-FlashPoint_HardwareResetHostAdapter(struct FlashPoint_Info *);
+       FlashPoint_HardwareResetHostAdapter(struct FlashPoint_Info *);
 extern void FlashPoint_StartCCB(FlashPoint_CardHandle_T, struct BusLogic_CCB *);
 extern int FlashPoint_AbortCCB(FlashPoint_CardHandle_T, struct BusLogic_CCB *);
 extern boolean FlashPoint_InterruptPending(FlashPoint_CardHandle_T);
 extern int FlashPoint_HandleInterrupt(FlashPoint_CardHandle_T);
 extern void FlashPoint_ReleaseHostAdapter(FlashPoint_CardHandle_T);
 
-#endif                         /* CONFIG_SCSI_OMIT_FLASHPOINT */
+
+#endif /* CONFIG_SCSI_OMIT_FLASHPOINT */