mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-07 06:53:13 -06:00
Compare commits
1 Commits
v3.3.0-dev
...
v3.3.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45ea46b105 |
@@ -7,7 +7,9 @@ Version 3.3
|
||||
- WBW: Support per-drive floppy configuration
|
||||
- WBW: Support for Bill Shen's VGARC
|
||||
- WBW: Support for MG014 Parallel Port module + printer
|
||||
- WBW: Support for Zip Drive on emm interface (much inspiration from Alan Cox)
|
||||
- WBW: Support for EMM Zip Drive on PPI interface (much inspiration from Alan Cox)
|
||||
- WBW: Support for PPA Zip Drive on PPI interface (much inspiration from Alan Cox)
|
||||
- WBW: Support for SyQuest SparQ Drive on PPI interface (much inspiration from Alan Cox)
|
||||
|
||||
Version 3.2.1
|
||||
-------------
|
||||
|
||||
@@ -235,28 +235,51 @@ IMM_DETECT:
|
||||
OUT (C),A ; DO IT
|
||||
CALL DELAY ; BRIEF DELAY FOR GOOD MEASURE
|
||||
;
|
||||
; WE USE THIS SEQUENCE TO DETECT AN ACTUAL IMM DEVICE ON THE
|
||||
; PARALLEL PORT. THE VALUES RECORDED IN THE FINAL CALL TO
|
||||
; IMM_DISCONNECT ARE USED TO CONFIRM DEVICE PRESENCE.
|
||||
; NO ACTUAL SCSI COMMANDS ARE USED.
|
||||
; ATTEMPT TO ESTABLISH A CONNECTION TO THE IMM DEVICE AND
|
||||
; ISSUE A SCSI BUS RESET. WE DON'T KNOW IF DEVICE IS THERE
|
||||
; YET. THIS IS DONE BLIND ASSUMING IT IS THERE.
|
||||
CALL IMM_DISCONNECT
|
||||
CALL IMM_CONNECT
|
||||
CALL IMM_RESETPULSE ; ISSUE A SCSI BUS RESET
|
||||
LD DE,62 ; WAIT A BIT
|
||||
CALL VDELAY
|
||||
;
|
||||
; USE AN ABBREVIATED VERSION OF SELECT PROCESSING TO
|
||||
; CHECK IF DEVICE EXISTS.
|
||||
IMM_WCTL($0C)
|
||||
CALL IMM_READSTATUS
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL PC_SPACE
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
;
|
||||
; READY FOR SELECT?
|
||||
AND $08
|
||||
CP $00
|
||||
JR NZ,IMM_DETECT1
|
||||
;
|
||||
IMM_WCTL($04)
|
||||
LD A,$80 | (1 << IMM_TGT)
|
||||
CALL IMM_WRITEDATA
|
||||
IMM_WCTL($0C)
|
||||
IMM_WCTL($0D)
|
||||
CALL DELAY
|
||||
CALL IMM_READSTATUS
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL PC_SPACE
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
;
|
||||
; DID SELECT SUCCEED?
|
||||
AND $08
|
||||
CP $08
|
||||
;
|
||||
IMM_DETECT1:
|
||||
PUSH AF
|
||||
CALL IMM_DISCONNECT
|
||||
;
|
||||
; THE IMM_SN VALUES ARE RECORDED IN THE CPP ROUTINE USED BY
|
||||
; IMM_CONNECT/DISCONNECT.
|
||||
; EXPECTING S1=$B8, S2=$18, S3=$38
|
||||
LD A,(IMM_S1)
|
||||
CP $B8
|
||||
RET NZ
|
||||
LD A,(IMM_S2)
|
||||
CP $18
|
||||
RET NZ
|
||||
LD A,(IMM_S3)
|
||||
CP $38
|
||||
RET NZ
|
||||
;
|
||||
XOR A
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;=============================================================================
|
||||
@@ -305,10 +328,12 @@ IMM_WRITE:
|
||||
;
|
||||
;
|
||||
IMM_IO:
|
||||
LD (IMM_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
PUSH HL
|
||||
CALL IMM_CHKERR ; CHECK FOR ERR STATUS AND RESET IF SO
|
||||
POP HL
|
||||
JR NZ,IMM_IO3 ; BAIL OUT ON ERROR
|
||||
;
|
||||
LD (IMM_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
; SETUP LBA
|
||||
; 3 BYTES, LITTLE ENDIAN -> BIG ENDIAN
|
||||
LD HL,IMM_CMD_RW+1 ; START OF LBA FIELD IN CDB (MSB)
|
||||
@@ -610,6 +635,10 @@ IMM_SELECT:
|
||||
;
|
||||
IMM_SELECT1:
|
||||
CALL IMM_READSTATUS
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL PC_SPACE
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
AND $08
|
||||
JR Z,IMM_SELECT2 ; IF CLEAR, MOVE ON
|
||||
DEC HL
|
||||
@@ -623,22 +652,8 @@ IMM_SELECT2:
|
||||
; PLACE HOST AND TARGET BIT ON DATA BUS
|
||||
LD A,$80 | (1 << IMM_TGT)
|
||||
CALL IMM_WRITEDATA
|
||||
CALL DELAY ; CONFIRM DELAY TIME?
|
||||
IMM_WCTL($0C)
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL IMM_READSTATUS
|
||||
CALL PC_SPACE
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
;
|
||||
IMM_WCTL($0D)
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL IMM_READSTATUS
|
||||
CALL PC_SPACE
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
;
|
||||
LD HL,500 ; TIMEOUT COUNTER
|
||||
;
|
||||
|
||||
@@ -324,10 +324,12 @@ PPA_WRITE:
|
||||
;
|
||||
;
|
||||
PPA_IO:
|
||||
LD (PPA_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
PUSH HL
|
||||
CALL PPA_CHKERR ; CHECK FOR ERR STATUS AND RESET IF SO
|
||||
POP HL
|
||||
JR NZ,PPA_IO3 ; BAIL OUT ON ERROR
|
||||
;
|
||||
LD (PPA_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
; SETUP LBA
|
||||
; 3 BYTES, LITTLE ENDIAN -> BIG ENDIAN
|
||||
LD HL,PPA_CMD_RW+1 ; START OF LBA FIELD IN CDB (MSB)
|
||||
@@ -595,7 +597,6 @@ PPA_SELECT:
|
||||
PPA_WCTL($0C)
|
||||
LD A,1 << PPA_SELF
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$08 \ CALL PPA_WRITECTRL
|
||||
PPA_WCTL($08)
|
||||
;
|
||||
LD HL,500 ; TIMEOUT COUNTER
|
||||
|
||||
@@ -393,15 +393,17 @@ SYQ_WRITE:
|
||||
;
|
||||
;
|
||||
SYQ_IO:
|
||||
LD (SYQ_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,B ; XFR MODE TO ACCUM
|
||||
LD (SYQ_XFRMODE),A ; AND SAVE IT FOR CMD
|
||||
;
|
||||
PUSH BC ; SAVE MODE/COMMAND
|
||||
PUSH HL ; SAVE DISK BUF PTR
|
||||
CALL SYQ_CHKERR ; CHECK FOR ERR STATUS AND RESET IF SO
|
||||
POP HL ; RECOVER DISK BUF PTR
|
||||
POP BC ; RECOVER MODE/COMMAND
|
||||
JR NZ,SYQ_IO1 ; BAIL OUT ON ERROR
|
||||
;
|
||||
LD A,B ; XFR MODE TO ACCUM
|
||||
LD (SYQ_XFRMODE),A ; AND SAVE IT FOR CMD
|
||||
LD (SYQ_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,SYQ_LBA ; LBA OFFSET IN CONFIG
|
||||
CALL LDHLIYA ; POINT TO LBA DWORD
|
||||
CALL LD32 ; SET DE:HL TO LBA
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,7 +2,7 @@
|
||||
#DEFINE RMN 3
|
||||
#DEFINE RUP 0
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.3.0-dev.19"
|
||||
#DEFINE BIOSVER "3.3.0-dev.20"
|
||||
#define rmj RMJ
|
||||
#define rmn RMN
|
||||
#define rup RUP
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 3
|
||||
rup equ 0
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.3.0-dev.19"
|
||||
db "3.3.0-dev.20"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user