pshs y,u
tfr s,u ; u holds our frame pointer to throw
bsr waitreq ; an exception
- ldx #_si_dcb
ldy #_si_dcb+16 ; length word
bita #0x08 ; check CMD asserted
bne si_busfailw
pshs y,u
tfr s,u ; u holds our frame pointer to throw
bsr waitreq ; an exception
- ldx #_si_dcb
ldy _si_dcb+16 ; length word
bita #0x08 ; check CMD asserted
bne si_busfailw
puls y,u,pc
;
-; Must preserve B
+; Must preserve B and X
;
waitreq:
pshs y
_si_writecmd: ; DCB, B is len (check B or X)
pshs y,u
tfr s,u ; Required exception frame for waitreq
+_si_writecmdl:
jsr waitreq
ldx #_si_dcb
bita #0x08 ; check CMD asserted
lda ,x+
sta $FF70
decb
- bne _si_writecmd
+ bne _si_writecmdl
clrb ; Return 0
puls y,u,pc
si_busfail:
_si_select: ; Select device
bsr mpi_scsi ; Set the MPI
ldb #_si_dcb+20 ; Device number
+ cmpb #7 ; controller
beq si_seltimeo ; FIXME: different errorcodes ?
ldx #0
lda #1