diff options
-rw-r--r-- | sys/dev/aic7xxx/aic7xxx.seq | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.seq b/sys/dev/aic7xxx/aic7xxx.seq index aeddef9..1aa154c 100644 --- a/sys/dev/aic7xxx/aic7xxx.seq +++ b/sys/dev/aic7xxx/aic7xxx.seq @@ -880,14 +880,22 @@ mk_mesg1: */ inb_next: - mov NONE,SCSIDATL /*dummy read from latch to ACK*/ -inb_first: + call inb_last +inb_next_wait: test SSTAT1,PHASEMIS jnz mesgin_phasemis - test SSTAT0,SPIORDY jz inb_first /* wait for next byte */ + test SSTAT0,SPIORDY jz inb_next_wait /* wait for next byte */ +inb_first: mov DINDEX,SINDEX mov DINDIR,SCSIBUSL ret /*read byte directly from bus*/ inb_last: - mov NONE,SCSIDATL ret /*dummy read from latch to ACK*/ + clr STCNT2 + clr STCNT1 + mvi STCNT0,0x01 + mov NONE,SCSIDATL /*dummy read from latch to ACK*/ +inb_last_wait: + test SSTAT0,SDONE jz inb_last_wait /* Wait for completion */ + ret + mesgin_phasemis: |