From: Alan Cox Date: Sat, 10 Oct 2015 20:51:40 +0000 (+0100) Subject: tc3: add selection logic (untested) X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=f4be76372f9c7d43dfa9488786761ec36f641a9c;p=FUZIX.git tc3: add selection logic (untested) --- diff --git a/Kernel/platform-dragon-nx32/scsi_tc3.s b/Kernel/platform-dragon-nx32/scsi_tc3.s index 16824b71..2ae255c4 100644 --- a/Kernel/platform-dragon-nx32/scsi_tc3.s +++ b/Kernel/platform-dragon-nx32/scsi_tc3.s @@ -9,6 +9,7 @@ .globl _si_select .globl _si_clear .globl _si_reset + .globl _si_deselect .area .common @@ -70,6 +71,13 @@ waitreql: rts .area .text + +mpi_scsi: + ldb #_cartslots + cmpb #1 + beq si_rts + ldb #_scsi_slot + jmp _mpi_set_slot _si_writecmd: ; DCB, B is len (check B or X) pshs y,u @@ -88,7 +96,8 @@ si_busfail: ldb #-1 ; Error (should sort some codes for type!) puls y,u,pc -_si_select: ; Select device B +_si_select: ; Select device + bsr mpi_scsi ; Set the MPI ldb #_si_dcb+20 ; Device number beq si_seltimeo ; FIXME: different errorcodes ? ldx #0 @@ -120,9 +129,21 @@ si_bsyc: rts si_seltimeo: ldb #-1 +_si_reset: +si_rts: rts _si_clear: + bsr mpi_scsi clr $FF70 -_si_reset: - rts + ; Fall through +_si_deselect: + ldb si_savedslot + cmpb #255 + beq si_rts + jmp _mpi_set_slot + + .area .data + +si_savedslot + .db 255 ; No restore (eg no MPI)