       BYTE >AA               validation code
       BYTE >03               version of dsr
       DATA 0                 number of apps / reserved
       DATA PWRLNK            powerup link
       DATA 0                 cartridge/application programs (illegal here)
       DATA DEVLNK            high level dsr link
       DATA BASLNK            subroutine link header
       DATA INTLNK            interrupt service routine link  .
       DATA 0                 basic libs if in grom or at >6000

SID    TEXT 'SCSI            '    identification of this eprom
       TEXT '1.5-0           '
       TEXT 'March 16, 1998  '


* Linkage to powerup routine(s)

PWRLNK DATA 0                 powerup link
       DATA PWRUP
       BYTE 0

INTLNK DATA 0
       DATA INTL

* Linkage to high level routines

DEVLNK DATA DE1LNK
       DATA SCSI0
       BYTE 4
       TEXT 'SCS1'            * SCSI DEVICE #0

DE1LNK DATA DE2LNK
       DATA SCSI1
       BYTE 4
       TEXT 'SCS2'            *  #1

DE2LNK DATA DE3LNK
       DATA SCSI2
       BYTE 4
       TEXT 'SCS3'            *  #2

DE3LNK DATA DE4LNK
       DATA SCSI3
       BYTE 4
       TEXT 'SCS4'            *  #3

DE4LNK DATA DE5LNK
       DATA SCSI4
       BYTE 4
       TEXT 'SCS5'            *  #4

DE5LNK DATA DE6LNK
       DATA SCSI5
       BYTE 4
       TEXT 'SCS6'            *  #5

DE6LNK DATA DE7LNK
       DATA SCSI6
       BYTE 4
       TEXT 'SCS7'            *  #6

DE7LNK DATA DE8LNK
       DATA SCSI7
       BYTE 4
       TEXT 'SCS8'            *  #7

DE8LNK DATA DE9LNK
       DATA DSR20
       BYTE 3
       TEXT 'SCS'

DE9LNK DATA D10LNK
       DATA SCSI0
       BYTE 4
       TEXT 'WDS1'

D10LNK DATA D11LNK
       DATA SCSI1
       BYTE 4
       TEXT 'WDS2'

D11LNK DATA D12LNK
       DATA SCSI2
       BYTE 4
       TEXT 'WDS3'

D12LNK DATA D13LNK
       DATA SCSI3
       BYTE 4
       TEXT 'WDS4'

D13LNK DATA D14LNK
       DATA SCSI4
       BYTE 4
       TEXT 'WDS5'

D14LNK DATA D15LNK
       DATA SCSI5
       BYTE 4
       TEXT 'WDS6'

D15LNK DATA D16LNK
       DATA SCSI6
       BYTE 4
       TEXT 'WDS7'

D16LNK DATA 0
       DATA SCSI7
       BYTE 4
       TEXT 'WDS8'


BASLNK DATA BASLN3
       DATA GPL27
       BYTE 1
       BYTE >27

BASLN3 DATA BASLN4
       DATA GPL20
       BYTE 1
       BYTE >20

BASLN4 DATA BASLN5
       DATA GPL21        Format Media
       BYTE 1
       BYTE >21

BASLN5 DATA BASLN6
       DATA GPL1B        SCSI direct
       BYTE 1
       BYTE >1B

BASLN6 DATA BASLN7
       DATA GPL1C        Examine SCSI unit
       BYTE 1
       BYTE >1C

BASLN7 DATA BSLN7A       File protect/unprotect
       DATA GPL22        (Not to be confused with GPL22 in bank 5!)
       BYTE 1
       BYTE >22

BSLN7A DATA BASLN8       File rename
       DATA GPL23
       BYTE 1
       BYTE >23

BASLN8 DATA BASLN9       Access direct input file
       DATA GPL24
       BYTE 1
       BYTE >24

BASLN9 DATA BASL10       Access direct outout file
       DATA GPL25
       BYTE 1
       BYTE >25

BASL10 DATA BASL11
       DATA GPL28
       BYTE 1
       BYTE >28

BASL11 DATA 0
       DATA GPL29
       BYTE 1
       BYTE >29


*GPL20  LI   R0,STINIT
*      MOV  R0,@STACK
*
* If we're doing a write, we have to invalidate the cache
*
*      MOVB @>834C,R6
*      ANDI R6,>0F00
*      AI   R12,24
*      LDCR @B04,4       Select RAM bank 4
*      LI   R4,DNCASH
*PL20A CB   *R4,R6
*      JNE  GPL20B
*      CLR  *R4
*PL20B AI   R4,48
*      CI   R4,>5FFE-48
*      JL   GPL20A
*      LDCR @ZERO,4      Select RAM bank 0

*      BLWP @BANKIT
*      DATA SCSI20
*      INCT R11
*      RT

GPL21  LI   R0,STINIT
       MOV  R0,@STACK
       BLWP @BANKIT
       DATA SCSIFT
       ANDI R12,>FF00
       INCT R11
       RT

GPL22
       MOV  R1,@SAVR1
       MOV  R11,@SAVR11
       LI   R0,STINIT
       MOV  R0,@STACK

       BL   @XFER
       DATA PROTEC

GPL23
       MOV  R1,@SAVR1
       MOV  R11,@SAVR11
       LI   R0,STINIT
       MOV  R0,@STACK

       BL   @XFER
       DATA RENAME

GPL24
       MOV  R1,@SAVR1
       MOV  R11,@SAVR11
       LI   R0,STINIT
       MOV  R0,@STACK

       BL   @XFER
       DATA SCSI24

GPL25
       MOV  R1,@SAVR1
       MOV  R11,@SAVR11
       LI   R0,STINIT
       MOV  R0,@STACK

       BL   @XFER
       DATA SCSI25

GPL28
       MOV  R1,@SAVR1
       MOV  R11,@SAVR11
       LI   R0,STINIT
       MOV  R0,@STACK

       BL   @XFER
       DATA MKDIR

GPL29
       MOV  R1,@SAVR1
       MOV  R11,@SAVR11
       LI   R0,STINIT
       MOV  R0,@STACK

       BL   @XFER
       DATA RMDIR

GPL1B  LI   R0,STINIT
       MOV  R0,@STACK
       BLWP @BANKIT
       DATA SCSICP
       ANDI R12,>FF00
       INCT R11
       RT

GPL1C  LI   R0,STINIT
       MOV  R0,@STACK
       BLWP @BANKIT
       DATA SCSIEX
       ANDI R12,>FF00
       INCT R11
       RT

*-----------------------------------------------------------
* NAME : INTRPT
*
* DESC : INTERRUPT SERVER ROUTINE FOR SCSI DSR
*
* PARM : R12 = CRU BASE OF SCSI CARD
*
* RET  : NOTHING
*
* DEST : R1

IRQ    EQU   0                INTERRUPT REQUEST
RRPI   EQU  >4FEE             RESET PARITY/INTERRUPTS

INTL   TB   IRQ               Is 5380 causing the interrupt ?
       JNE  INT1              No, not 5380
       MOV  @RRPI,R1          Yes, clear interrupt
INT1   RT                     Return
