mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-08 15:33:14 -06:00
Compare commits
1 Commits
v3.3.0-dev
...
v3.3.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c411f5552 |
@@ -311,7 +311,7 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTMODE .EQU LPTMODE_NONE ; LPT: DRIVER MODE: LPTMODE_[NONE|IBM|MG014]
|
||||
LPTMODE .EQU LPTMODE_NONE ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014]
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
LPT0BASE .EQU $E8 ; LPT 0: REGISTERS BASE ADR
|
||||
@@ -320,17 +320,15 @@ LPT1BASE .EQU $EC ; LPT 1: REGISTERS BASE ADR
|
||||
PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM)
|
||||
PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2)
|
||||
PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPA0MODE .EQU PPAMODE_MG014 ; PPA 0: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPAMODE .EQU PPAMODE_MG014 ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014]
|
||||
PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
PPA1MODE .EQU PPAMODE_MG014 ; PPA 1: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
;
|
||||
IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2)
|
||||
IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
IMM0MODE .EQU IMMMODE_MG014 ; IMM 0: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMMMODE .EQU IMMMODE_MG014 ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014]
|
||||
IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
IMM1MODE .EQU IMMMODE_MG014 ; IMM 1: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
|
||||
@@ -235,7 +235,7 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTMODE .EQU LPTMODE_IBM ; LPT: DRIVER MODE: LPTMODE_[NONE|IBM|MG014]
|
||||
LPTMODE .EQU LPTMODE_SPP ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014]
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
LPT0BASE .EQU $E8 ; LPT 0: REGISTERS BASE ADR
|
||||
@@ -244,17 +244,15 @@ LPT1BASE .EQU $EC ; LPT 1: REGISTERS BASE ADR
|
||||
PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM)
|
||||
PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2)
|
||||
PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPA0MODE .EQU PPAMODE_MG014 ; PPA 0: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPAMODE .EQU PPAMODE_SPP ; PPA: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
PPA1MODE .EQU PPAMODE_MG014 ; PPA 1: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
;
|
||||
IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2)
|
||||
IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
IMM0MODE .EQU IMMMODE_MG014 ; IMM 0: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMMMODE .EQU IMMMODE_SPP ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014]
|
||||
IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
IMM1MODE .EQU IMMMODE_MG014 ; IMM 1: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
|
||||
@@ -248,7 +248,7 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTMODE .EQU LPTMODE_NONE ; LPT: DRIVER MODE: LPTMODE_[NONE|IBM|MG014]
|
||||
LPTMODE .EQU LPTMODE_NONE ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014]
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
LPT0BASE .EQU $E8 ; LPT 0: REGISTERS BASE ADR
|
||||
|
||||
@@ -257,7 +257,7 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|IBM|MG014]
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014]
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
LPT0BASE .EQU $18 ; LPT 0: REGISTERS BASE ADR
|
||||
@@ -266,17 +266,15 @@ LPT1BASE .EQU $00 ; LPT 1: REGISTERS BASE ADR
|
||||
PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM)
|
||||
PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2)
|
||||
PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPA0MODE .EQU PPAMODE_MG014 ; PPA 0: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPAMODE .EQU PPAMODE_MG014 ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014]
|
||||
PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
PPA1MODE .EQU PPAMODE_MG014 ; PPA 1: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
;
|
||||
IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2)
|
||||
IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
IMM0MODE .EQU IMMMODE_MG014 ; IMM 0: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMMMODE .EQU IMMMODE_MG014 ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014]
|
||||
IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
IMM1MODE .EQU IMMMODE_MG014 ; IMM 1: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
|
||||
@@ -261,7 +261,7 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|IBM|MG014]
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014]
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
LPT0BASE .EQU $18 ; LPT 0: REGISTERS BASE ADR
|
||||
@@ -270,17 +270,15 @@ LPT1BASE .EQU $00 ; LPT 1: REGISTERS BASE ADR
|
||||
PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM)
|
||||
PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2)
|
||||
PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPA0MODE .EQU PPAMODE_MG014 ; PPA 0: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPAMODE .EQU PPAMODE_MG014 ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014]
|
||||
PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
PPA1MODE .EQU PPAMODE_MG014 ; PPA 1: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
;
|
||||
IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2)
|
||||
IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
IMM0MODE .EQU IMMMODE_MG014 ; IMM 0: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMMMODE .EQU IMMMODE_MG014 ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014]
|
||||
IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
IMM1MODE .EQU IMMMODE_MG014 ; IMM 1: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
|
||||
@@ -255,7 +255,7 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|IBM|MG014]
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014]
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
LPT0BASE .EQU $0C ; LPT 0: REGISTERS BASE ADR
|
||||
@@ -264,17 +264,15 @@ LPT1BASE .EQU $00 ; LPT 1: REGISTERS BASE ADR
|
||||
PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM)
|
||||
PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2)
|
||||
PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPA0MODE .EQU PPAMODE_MG014 ; PPA 0: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPAMODE .EQU PPAMODE_MG014 ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014]
|
||||
PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
PPA1MODE .EQU PPAMODE_MG014 ; PPA 1: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
;
|
||||
IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2)
|
||||
IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
IMM0MODE .EQU IMMMODE_MG014 ; IMM 0: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMMMODE .EQU IMMMODE_MG014 ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014]
|
||||
IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
IMM1MODE .EQU IMMMODE_MG014 ; IMM 1: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
|
||||
@@ -251,7 +251,7 @@ PIO0BASE .EQU $B8 ; PIO 0: REGISTERS BASE ADR
|
||||
PIO1BASE .EQU $BC ; PIO 1: REGISTERS BASE ADR
|
||||
;
|
||||
LPTENABLE .EQU FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM)
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|IBM|MG014]
|
||||
LPTMODE .EQU LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014]
|
||||
LPTCNT .EQU 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2)
|
||||
LPTTRACE .EQU 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
LPT0BASE .EQU $18 ; LPT 0: REGISTERS BASE ADR
|
||||
@@ -260,17 +260,15 @@ LPT1BASE .EQU $00 ; LPT 1: REGISTERS BASE ADR
|
||||
PPAENABLE .EQU FALSE ; PPA: ENABLE PPA DISK DRIVER (PPA.ASM)
|
||||
PPACNT .EQU 1 ; PPA: NUMBER OF PPA DEVICES (1-2)
|
||||
PPATRACE .EQU 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPA0MODE .EQU PPAMODE_MG014 ; PPA 0: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPAMODE .EQU PPAMODE_MG014 ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014]
|
||||
PPA0BASE .EQU LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
PPA1MODE .EQU PPAMODE_MG014 ; PPA 1: DRIVER MODE: PPAMODE_[NONE|MG014]
|
||||
PPA1BASE .EQU LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA
|
||||
;
|
||||
IMMENABLE .EQU FALSE ; IMM: ENABLE IMM DISK DRIVER (IMM.ASM)
|
||||
IMMCNT .EQU 1 ; IMM: NUMBER OF IMM DEVICES (1-2)
|
||||
IMMTRACE .EQU 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
IMM0MODE .EQU IMMMODE_MG014 ; IMM 0: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMMMODE .EQU IMMMODE_MG014 ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014]
|
||||
IMM0BASE .EQU LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
IMM1MODE .EQU IMMMODE_MG014 ; IMM 1: DRIVER MODE: IMMMODE_[NONE|MG014]
|
||||
IMM1BASE .EQU LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
|
||||
@@ -6,20 +6,47 @@
|
||||
; PARALLEL PORT INTERFACE FOR SCSI DISK DEVICES USING A PARALLEL PORT
|
||||
; ADAPTER. PRIMARILY TARGETS PARALLEL PORT IOMEGA ZIP DRIVES.
|
||||
;
|
||||
; CURRENTLY CODED SPECIFICALLY FOR RCBUS MG014 PARALLEL PORT HARDWARE.
|
||||
; INTENDED TO CO-EXIST WITH LPT DRIVER.
|
||||
;
|
||||
; CREATED BY WAYNE WARTHEN FOR ROMWBW HBIOS.
|
||||
; MUCH OF THE CODE IS DERIVED FROM FUZIX (ALAN COX).
|
||||
;
|
||||
; 5/23/2023 WBW - INITIAL RELEASE
|
||||
; 5/26/3023 WBW - CLEAN UP, LED ACTIVITY
|
||||
; 5/26/2023 WBW - CLEAN UP, LED ACTIVITY
|
||||
; 5/27/2023 WBW - ADDED SPP MODE
|
||||
;
|
||||
;=============================================================================
|
||||
;
|
||||
; MG014 STYLE INTERFACE (USED BY RCBUS MG014 MODULE):
|
||||
; IBM PC STANDARD PARALLEL PORT (SPP):
|
||||
; - NHYODYNE PRINT MODULE
|
||||
;
|
||||
; PORT 0 (INPUT/OUTPUT):
|
||||
; PORT 0 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
; | PD7 | PD6 | PD5 | PD4 | PD3 | PD2 | PD1 | PD0 |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 1 (INPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
; | /BUSY | /ACK | POUT | SEL | /ERR | 0 | 0 | 0 |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 2 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
; | STAT1 | STAT0 | ENBL | PINT | SEL | RES | LF | STB |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
;=============================================================================
|
||||
;
|
||||
; MG014 STYLE INTERFACE:
|
||||
; - RCBUS MG014 MODULE
|
||||
;
|
||||
; PORT 0 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -33,7 +60,7 @@
|
||||
; | | | | /ERR | SEL | POUT | BUSY | /ACK |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 2 (INPUT/OUTPUT):
|
||||
; PORT 2 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -44,8 +71,6 @@
|
||||
;
|
||||
; TODO:
|
||||
;
|
||||
; - CLEAN UP WAIT LOOP STUFF
|
||||
;
|
||||
; - OPTIMIZE READ/WRITE LOOPS
|
||||
;
|
||||
; NOTES:
|
||||
@@ -86,12 +111,11 @@ IMM_TGT .EQU 6
|
||||
; IMM DEVICE STATUS
|
||||
;
|
||||
IMM_STOK .EQU 0
|
||||
IMM_STINVUNIT .EQU -1
|
||||
IMM_STNOMEDIA .EQU -2
|
||||
IMM_STCMDERR .EQU -3
|
||||
IMM_STIOERR .EQU -4
|
||||
IMM_STTO .EQU -5
|
||||
IMM_STNOTSUP .EQU -6
|
||||
IMM_STNOMEDIA .EQU -1
|
||||
IMM_STCMDERR .EQU -2
|
||||
IMM_STIOERR .EQU -3
|
||||
IMM_STTO .EQU -4
|
||||
IMM_STNOTSUP .EQU -5
|
||||
;
|
||||
; IMM DEVICE CONFIGURATION
|
||||
;
|
||||
@@ -130,15 +154,13 @@ IMM_INIT2:
|
||||
;
|
||||
PRTS(" MODE=$") ; LABEL FOR MODE
|
||||
LD A,(IY+IMM_MODE) ; GET MODE BITS
|
||||
LD DE,IMM_STR_MODE_NONE ; MODE LABEL
|
||||
CP IMMMODE_NONE ; TEST FOR MODE
|
||||
JR Z,IMM_INIT3 ; IF SO, DISPLAY IT
|
||||
LD DE,IMM_STR_MODE_MG014 ; MODE LABEL
|
||||
CP IMMMODE_MG014 ; TEST FOR MODE
|
||||
JR Z,IMM_INIT3 ; IF SO, DISPLAY IT
|
||||
LD DE,IMM_STR_MODE_UNK ; MODE LABEL
|
||||
IMM_INIT3:
|
||||
CALL WRITESTR ; DISPLAY MODE
|
||||
LD HL,IMM_STR_MODE_MAP
|
||||
ADD A,A
|
||||
CALL ADDHLA
|
||||
LD E,(HL)
|
||||
INC HL
|
||||
LD D,(HL)
|
||||
CALL WRITESTR
|
||||
;
|
||||
; CHECK FOR HARDWARE PRESENCE
|
||||
CALL IMM_DETECT ; PROBE FOR INTERFACE
|
||||
@@ -162,17 +184,13 @@ IMM_INIT4:
|
||||
CALL DIO_ADDENT ; ADD ENTRY TO GLOBAL DISK DEV TABLE
|
||||
;
|
||||
CALL IMM_RESET ; RESET/INIT THE INTERFACE
|
||||
#IF (IMMTRACE == 0)
|
||||
CALL IMM_PRTSTAT
|
||||
#ENDIF
|
||||
JR NZ,IMM_INIT6
|
||||
;
|
||||
; START PRINTING DEVICE INFO
|
||||
CALL IMM_PRTPREFIX ; PRINT DEVICE PREFIX
|
||||
;
|
||||
; CHECK FOR BAD STATUS
|
||||
LD A,(IY+IMM_STAT) ; GET STATUS
|
||||
OR A ; SET FLAGS
|
||||
JP Z,IMM_INIT5 ; CONTINUE
|
||||
CALL PC_SPACE ; FORMATTING
|
||||
CALL IMM_PRTSTATSTR ; PRINT STATUS STRING
|
||||
JR IMM_INIT6 ; LOOP TILL DONE
|
||||
;
|
||||
IMM_INIT5:
|
||||
; PRINT STORAGE CAPACITY (BLOCK COUNT)
|
||||
@@ -308,7 +326,7 @@ IMM_IO:
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
CALL INC32HL ; INCREMENT THE VALUE
|
||||
; INCREMENT DMA
|
||||
LD HL,IDE_DSKBUF+1 ; POINT TO MSB OF BUFFER ADR
|
||||
LD HL,IMM_DSKBUF+1 ; POINT TO MSB OF BUFFER ADR
|
||||
INC (HL) ; BUMP DMA BY
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
@@ -423,7 +441,10 @@ IMM_WRITECTRL:
|
||||
; BELOW TRANSLATES FROM IBM -> MG014. IT ALSO INVERTS THE
|
||||
; MG014 LED SIMPLY TO MAKE IT EASY TO KEEP LED ON DURING
|
||||
; ALL ACTIVITY.
|
||||
;
|
||||
#IF (IMMMODE == IMMMODE_MG014
|
||||
XOR $0B | $80 ; HIGH BIT IS MG014 LED
|
||||
#ENDIF
|
||||
LD C,(IY+IMM_IOBASE) ; GET BASE IO ADDRESS
|
||||
INC C ; BUMP TO CONTROL PORT
|
||||
INC C
|
||||
@@ -434,7 +455,7 @@ IMM_WRITECTRL:
|
||||
; READ THE PARALLEL PORT INPUT LINES (STATUS) AND MAP SIGNALS FROM
|
||||
; MG014 TO IBM STANDARD. NOTE POLARITY CHANGE REQUIRED FOR BUSY.
|
||||
;
|
||||
; MG014 IBM PC
|
||||
; MG014 IBM PC (SPP)
|
||||
; -------- --------
|
||||
; 0: /ACK 6: /ACK
|
||||
; 1: BUSY 7: /BUSY
|
||||
@@ -446,39 +467,35 @@ IMM_READSTATUS:
|
||||
LD C,(IY+IMM_IOBASE) ; IOBASE TO C
|
||||
INC C ; BUMP TO STATUS PORT
|
||||
IN A,(C) ; READ IT
|
||||
LD C,0 ; INIT RESULT
|
||||
;
|
||||
; SHUFFLE BITS
|
||||
#IF (IMMMODE == IMMMODE_MG014)
|
||||
;
|
||||
; SHUFFLE BITS ON MG014
|
||||
LD C,0 ; INIT RESULT
|
||||
BIT 0,A ; 0: /ACK
|
||||
JR Z,IMM_READSTATUS1
|
||||
SET 6,C ; 6: /ACK
|
||||
;
|
||||
IMM_READSTATUS1:
|
||||
;
|
||||
BIT 1,A ; 1: BUSY
|
||||
JR NZ,IMM_READSTATUS2 ; POLARITY CHANGE!
|
||||
SET 7,C ; 7: /BUSY
|
||||
;
|
||||
IMM_READSTATUS2:
|
||||
;
|
||||
BIT 2,A ; 2: POUT
|
||||
JR Z,IMM_READSTATUS3
|
||||
SET 5,C ; 5: POUT
|
||||
;
|
||||
IMM_READSTATUS3:
|
||||
;
|
||||
BIT 3,A ; 3: SEL
|
||||
JR Z,IMM_READSTATUS4
|
||||
SET 4,C ; 4: SEL
|
||||
;
|
||||
IMM_READSTATUS4:
|
||||
;
|
||||
BIT 4,A ; 4: /ERR
|
||||
JR Z,IMM_READSTATUS5
|
||||
SET 3,C ; 3: /ERR
|
||||
;
|
||||
IMM_READSTATUS5:
|
||||
LD A,C ; RESULT TO A
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
RET
|
||||
;
|
||||
; SIGNAL SEQUENCE TO CONNECT/DISCONNECT
|
||||
@@ -486,39 +503,28 @@ IMM_READSTATUS5:
|
||||
;
|
||||
IMM_CPP:
|
||||
PUSH AF
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$AA
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$55
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$00
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$FF
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
LD A,$AA \ CALL IMM_WRITEDATA
|
||||
LD A,$55 \ CALL IMM_WRITEDATA
|
||||
LD A,$00 \ CALL IMM_WRITEDATA
|
||||
LD A,$FF \ CALL IMM_WRITEDATA
|
||||
CALL IMM_READSTATUS
|
||||
AND $B8
|
||||
LD (IMM_S1),A
|
||||
LD A,$87
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$87 \ CALL IMM_WRITEDATA
|
||||
CALL IMM_READSTATUS
|
||||
AND $B8
|
||||
LD (IMM_S2),A
|
||||
LD A,$78
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$78 \ CALL IMM_WRITEDATA
|
||||
CALL IMM_READSTATUS
|
||||
AND $38
|
||||
LD (IMM_S3),A
|
||||
POP AF
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0D
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$FF
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
LD A,$0D \ CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
LD A,$FF \ CALL IMM_WRITEDATA
|
||||
;
|
||||
; CONNECT: S1=$B8 S2=$18 S3=$30
|
||||
; DISCONNECT: S1=$B8 S2=$18 S3=$38
|
||||
@@ -561,30 +567,23 @@ IMM_DISCONNECT:
|
||||
CALL IMM_CPP
|
||||
;
|
||||
; TURNS OFF MG014 LED
|
||||
LD A,$8C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$8C \ CALL IMM_WRITECTRL
|
||||
;
|
||||
RET
|
||||
;
|
||||
; INITIATE A SCSI BUS RESET.
|
||||
;
|
||||
IMM_RESETPULSE:
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$40
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
LD A,$40 \ CALL IMM_WRITEDATA
|
||||
CALL DELAY ; 16 US, IDEALLY, 1 US
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0D
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
LD A,$0D \ CALL IMM_WRITECTRL
|
||||
CALL DELAY ; 48 US, IDEALLY, 50 US
|
||||
CALL DELAY
|
||||
CALL DELAY
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
RET
|
||||
;
|
||||
; SCSI SELECT PROCESS
|
||||
@@ -593,8 +592,7 @@ IMM_SELECT:
|
||||
#IF (IMMTRACE >= 3)
|
||||
PRTS("\r\nSELECT: $")
|
||||
#ENDIF
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
;
|
||||
LD HL,500 ; TIMEOUT COUNTER
|
||||
;
|
||||
@@ -609,14 +607,12 @@ IMM_SELECT1:
|
||||
JR IMM_SELECT1
|
||||
;
|
||||
IMM_SELECT2:
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
; PLACE HOST AND TARGET BIT ON DATA BUS
|
||||
LD A,$80 | (1 << IMM_TGT)
|
||||
CALL IMM_WRITEDATA
|
||||
CALL DELAY ; CONFIRM DELAY TIME?
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL IMM_READSTATUS
|
||||
@@ -624,8 +620,7 @@ IMM_SELECT2:
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
;
|
||||
LD A,$0D
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0D \ CALL IMM_WRITECTRL
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL IMM_READSTATUS
|
||||
@@ -650,8 +645,7 @@ IMM_SELECT3:
|
||||
JR IMM_SELECT3
|
||||
;
|
||||
IMM_SELECT4:
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
;
|
||||
XOR A
|
||||
RET
|
||||
@@ -681,8 +675,7 @@ IMM_SENDCMD:
|
||||
;
|
||||
INC HL ; BACK TO FIRST CMD BYTE
|
||||
IMM_SENDCMD1:
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
LD A,(HL) ; LOAD CMD BYTE
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
@@ -694,8 +687,7 @@ IMM_SENDCMD1:
|
||||
INC HL ; BUMP TO NEXT BYTE
|
||||
DEC B ; DEC LOOP COUNTER
|
||||
LD A,$05
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,(HL) ; LOAD CMD BYTE
|
||||
CALL IMM_WRITECTRL \ LD A,(HL) ; LOAD CMD BYTE
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL PC_SPACE
|
||||
@@ -704,13 +696,11 @@ IMM_SENDCMD1:
|
||||
;
|
||||
CALL IMM_WRITEDATA ; PUT IT ON THE BUS
|
||||
INC HL ; BUMP TO NEXT BYTE
|
||||
LD A,$00
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$00 \ CALL IMM_WRITECTRL
|
||||
DJNZ IMM_SENDCMD1 ; LOOP TILL DONE
|
||||
;
|
||||
IMM_SENDCMD2:
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
;
|
||||
RET
|
||||
;
|
||||
@@ -728,13 +718,11 @@ IMM_WAITLOOP:
|
||||
;
|
||||
IMM_WAIT:
|
||||
LD HL,500 ; GOOD VALUE???
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
CALL IMM_WAITLOOP
|
||||
JP Z,IMM_CMD_TIMEOUT ; HANDLE TIMEOUT
|
||||
PUSH AF
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
POP AF
|
||||
AND $B8
|
||||
RET ; RETURN W/ RESULT IN A
|
||||
@@ -743,8 +731,7 @@ IMM_WAIT:
|
||||
;
|
||||
IMM_LONGWAIT:
|
||||
LD B,3 ; VALUE???
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
IMM_LONGWAIT1:
|
||||
LD HL,0
|
||||
CALL IMM_WAITLOOP
|
||||
@@ -754,8 +741,7 @@ IMM_LONGWAIT1:
|
||||
;
|
||||
IMM_LONGWAIT2:
|
||||
PUSH AF
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
;
|
||||
#IF 0
|
||||
CALL PC_GT
|
||||
@@ -775,24 +761,19 @@ IMM_NEGOTIATE:
|
||||
#IF (IMMTRACE >= 3)
|
||||
PRTS("\r\nNEGO: $")
|
||||
#ENDIF
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
CALL DELAY ; 16 US, IDEALLY 5 US
|
||||
LD A,$00
|
||||
CALL IMM_WRITEDATA
|
||||
LD A,$00 \ CALL IMM_WRITEDATA
|
||||
LD DE,7 ; 112 US, IDEALLY 100 US
|
||||
CALL VDELAY
|
||||
LD A,$06
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$06 \ CALL IMM_WRITECTRL
|
||||
CALL DELAY ; 16 US, IDEALLY 5 US
|
||||
CALL IMM_READSTATUS
|
||||
PUSH AF ; SAVE RESULT
|
||||
CALL DELAY ; 16 US, IDEALLY 5 US
|
||||
LD A,$07
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$07 \ CALL IMM_WRITECTRL
|
||||
CALL DELAY ; 16 US, IDEALLY 5 US
|
||||
LD A,$06
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$06 \ CALL IMM_WRITECTRL
|
||||
;
|
||||
POP AF
|
||||
;
|
||||
@@ -818,8 +799,7 @@ IMM_NEGOTIATE:
|
||||
;
|
||||
IMM_GETBYTE:
|
||||
CALL IMM_WAIT
|
||||
LD A,$06
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$06 \ CALL IMM_WRITECTRL
|
||||
CALL IMM_READSTATUS
|
||||
AND $F0
|
||||
RRCA
|
||||
@@ -827,15 +807,13 @@ IMM_GETBYTE:
|
||||
RRCA
|
||||
RRCA
|
||||
PUSH AF
|
||||
LD A,$05
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$05 \ CALL IMM_WRITECTRL
|
||||
CALL IMM_READSTATUS
|
||||
AND $F0
|
||||
POP HL
|
||||
OR H
|
||||
PUSH AF
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
@@ -866,10 +844,8 @@ IMM_GETDATA1:
|
||||
POP HL ; RESTORE BYTE COUNTER
|
||||
CP $98 ; CHECK FOR READ PHASE
|
||||
JR NZ,IMM_GETDATA2 ; IF NOT, ASSUME WE ARE DONE
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$06
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
LD A,$06 \ CALL IMM_WRITECTRL
|
||||
CALL IMM_READSTATUS ; GET FIRST NIBBLE
|
||||
AND $F0 ; ISOLATE BITS
|
||||
RRCA ; AND SHIFT TO LOW NIBBLE
|
||||
@@ -877,8 +853,7 @@ IMM_GETDATA1:
|
||||
RRCA
|
||||
RRCA
|
||||
PUSH AF ; SAVE WORKING VALUE
|
||||
LD A,$05
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$05 \ CALL IMM_WRITECTRL
|
||||
CALL IMM_READSTATUS ; GET SECOND NIBBLE
|
||||
AND $F0 ; ISOLATE BITS
|
||||
POP BC ; RECOVER LOW NIBBLE
|
||||
@@ -886,10 +861,8 @@ IMM_GETDATA1:
|
||||
LD (DE),A ; AND SAVE THE FULL BYTE VALUE
|
||||
INC DE ; NEXT BUFFER POS
|
||||
INC HL ; INCREMENT BYTES COUNTER
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
JR IMM_GETDATA1 ; LOOP TILL DONE
|
||||
;
|
||||
IMM_GETDATA2:
|
||||
@@ -911,11 +884,9 @@ IMM_GETDATALEN:
|
||||
PRTS(" BYTES$")
|
||||
#ENDIF
|
||||
;
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
IMM_GETDATALEN1:
|
||||
LD A,$06
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$06 \ CALL IMM_WRITECTRL
|
||||
CALL IMM_READSTATUS ; GET FIRST NIBBLE
|
||||
AND $F0 ; ISOLATE BITS
|
||||
RRCA ; MOVE TO LOW NIBBLE
|
||||
@@ -923,8 +894,7 @@ IMM_GETDATALEN1:
|
||||
RRCA
|
||||
RRCA
|
||||
PUSH AF ; SAVE WORKING VALUE
|
||||
LD A,$05
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$05 \ CALL IMM_WRITECTRL
|
||||
CALL IMM_READSTATUS ; GET SECOND NIBBLE
|
||||
AND $F0 ; ISOLATE BITS
|
||||
POP BC ; RECOVER FIRST NIBBLE
|
||||
@@ -932,13 +902,11 @@ IMM_GETDATALEN1:
|
||||
LD (DE),A ; SAVE FINAL BYTE VALUE
|
||||
INC DE ; NEXT BUFFER POS
|
||||
DEC HL ; DEC LOOP COUNTER
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
LD A,H ; CHECK LOOP COUNTER
|
||||
OR L
|
||||
JR NZ,IMM_GETDATALEN1 ; LOOP IF NOT DONE
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
RET
|
||||
;
|
||||
; PUT A CHUNK OF DATA TO THE SCSI BUS. THIS IS SPECIFICALLY FOR
|
||||
@@ -967,25 +935,21 @@ IMM_PUTDATA1:
|
||||
POP HL ; RESTORE BYTE COUNTER
|
||||
CP $88 ; CHECK FOR WRITE PHASE
|
||||
JR NZ,IMM_PUTDATA2 ; IF NOT, ASSUME WE ARE DONE
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
LD A,(DE) ; GET NEXT BYTE TO WRITE (FIRST OF PAIR)
|
||||
CALL IMM_WRITEDATA ; PUT ON BUS
|
||||
INC DE ; BUMP TO NEXT BUF POS
|
||||
INC HL ; INCREMENT COUNTER
|
||||
LD A,$05
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$05 \ CALL IMM_WRITECTRL
|
||||
LD A,(DE) ; GET NEXT BYTE TO WRITE (SECOND OF PAIR)
|
||||
CALL IMM_WRITEDATA ; PUT ON BUS
|
||||
INC DE ; BUMP TO NEXT BUF POS
|
||||
INC HL ; INCREMENT COUNTER
|
||||
LD A,$00
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$00 \ CALL IMM_WRITECTRL
|
||||
JR IMM_PUTDATA1 ; LOOP TILL DONE
|
||||
;
|
||||
IMM_PUTDATA2:
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
CALL PC_SPACE
|
||||
@@ -1004,26 +968,22 @@ IMM_PUTDATALEN:
|
||||
PRTS(" BYTES$")
|
||||
#ENDIF
|
||||
;
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
IMM_PUTDATALEN1:
|
||||
LD A,(DE) ; GET NEXT BYTE (FIRST OF PAIR)
|
||||
CALL IMM_WRITEDATA ; PUT ON BUS
|
||||
INC DE ; INCREMENT BUF POS
|
||||
DEC HL ; DEC LOOP COUNTER
|
||||
LD A,$05
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$05 \ CALL IMM_WRITECTRL
|
||||
LD A,(DE) ; GET NEXT BYTE (SECOND OF PAIR)
|
||||
CALL IMM_WRITEDATA ; PUT ON BUS
|
||||
INC DE ; INCREMENT BUF POS
|
||||
DEC HL ; DEC LOOP COUNTER
|
||||
LD A,$00
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$00 \ CALL IMM_WRITECTRL
|
||||
LD A,H ; CHECK LOOP COUNTER
|
||||
OR L
|
||||
JR NZ,IMM_PUTDATALEN1 ; LOOP TILL DONE
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
RET
|
||||
;
|
||||
; READ SCSI COMMAND STATUS
|
||||
@@ -1058,14 +1018,10 @@ IMM_GETSTATUS:
|
||||
; TERMINATE A BULD READ OPERATION
|
||||
;
|
||||
IMM_ENDREAD:
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0C
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$0E
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04
|
||||
CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
LD A,$0C \ CALL IMM_WRITECTRL
|
||||
LD A,$0E \ CALL IMM_WRITECTRL
|
||||
LD A,$04 \ CALL IMM_WRITECTRL
|
||||
RET
|
||||
;
|
||||
; THIS IS THE MAIN SCSI ENGINE. BASICALLY, IT SELECTS THE DEVICE
|
||||
@@ -1275,7 +1231,7 @@ IMM_INITDEV3:
|
||||
LD BC,0 ; READ WHATEVER IS SENT
|
||||
LD HL,IMM_CMD_RDCAP ; POINT TO READ CAPACITY CMD
|
||||
CALL IMM_RUNCMD ; RUN THE SCSI ENGINE
|
||||
CALL Z,IMM_CHKCMD ; CHECK AND RECORD AND ERRORS
|
||||
CALL Z,IMM_CHKCMD ; CHECK AND RECORD ANY ERRORS
|
||||
RET NZ ; BAIL ON ON ERROR
|
||||
;
|
||||
#IF (IMMTRACE >= 3)
|
||||
@@ -1306,56 +1262,6 @@ IMM_INITDEV3:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
LD (IY+IMM_STAT),A ; RECORD IT
|
||||
RET
|
||||
;;;;
|
||||
;;;; *** DEBUG ***
|
||||
;;;;
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; LD BC,512
|
||||
;;; LD HL,IMM_CMD_READ
|
||||
;;; CALL IMM_RUNCMD
|
||||
;;; CALL Z,IMM_CHKCMD
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; CALL Z,DUMP_BUFFER
|
||||
;;;;
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; LD BC,512
|
||||
;;; LD HL,IMM_CMD_READ
|
||||
;;; CALL IMM_RUNCMD
|
||||
;;; CALL Z,IMM_CHKCMD
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; CALL Z,DUMP_BUFFER
|
||||
;;;;
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; LD BC,0
|
||||
;;; LD HL,IMM_CMD_INQ
|
||||
;;; CALL IMM_RUNCMD
|
||||
;;; CALL Z,IMM_CHKCMD
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; CALL Z,DUMP_BUFFER
|
||||
;;;;
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; LD BC,512
|
||||
;;; LD HL,IMM_CMD_WRITE
|
||||
;;; CALL IMM_RUNCMD
|
||||
;;; CALL Z,IMM_CHKCMD
|
||||
;;;;
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; LD BC,512
|
||||
;;; LD HL,IMM_CMD_READ2
|
||||
;;; CALL IMM_RUNCMD
|
||||
;;; CALL Z,IMM_CHKCMD
|
||||
;;; LD DE,HB_WRKBUF
|
||||
;;; CALL Z,DUMP_BUFFER
|
||||
;;;;
|
||||
;;; RET
|
||||
;;;;
|
||||
;;;IMM_CMD .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; TEMPLATE
|
||||
;;;IMM_CMD_READ .DB $08, $00, $00, $00, $01, $00 ; READ SECTOR $0000
|
||||
;;;IMM_CMD_INQ .DB $12, $00, $00, $00, $FF, $00 ; INQUIRY
|
||||
;;;IMM_CMD_TEST .DB $00, $00, $00, $00, $00, $00 ; TEST UNIT READY
|
||||
;;;IMM_CMD_START .DB $1B, $00, $00, $00, $01, $00 ; START UNIT
|
||||
;;;IMM_CMD_WRITE .DB $0A, $00, $F0, $00, $01, $00 ; READ SECTOR $F000
|
||||
;;;IMM_CMD_READ2 .DB $08, $00, $F0, $00, $01, $00 ; READ SECTOR $F000
|
||||
;
|
||||
;=============================================================================
|
||||
; ERROR HANDLING AND DIAGNOSTICS
|
||||
@@ -1363,10 +1269,6 @@ IMM_INITDEV3:
|
||||
;
|
||||
; ERROR HANDLERS
|
||||
;
|
||||
IMM_INVUNIT:
|
||||
LD A,IMM_STINVUNIT
|
||||
JR IMM_ERR2 ; SPECIAL CASE FOR INVALID UNIT
|
||||
;
|
||||
IMM_NOMEDIA:
|
||||
LD A,IMM_STNOMEDIA
|
||||
JR IMM_ERR
|
||||
@@ -1391,7 +1293,7 @@ IMM_ERR:
|
||||
LD (IY+IMM_STAT),A ; SAVE NEW STATUS
|
||||
;
|
||||
IMM_ERR2:
|
||||
#IF (IMMTRACE >= 2)
|
||||
#IF (IMMTRACE >= 1)
|
||||
CALL IMM_PRTSTAT
|
||||
#ENDIF
|
||||
OR A ; SET FLAGS
|
||||
@@ -1410,14 +1312,7 @@ IMM_PRTSTAT:
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD A,(IY+IMM_STAT)
|
||||
CP IMM_STINVUNIT
|
||||
JR Z,IMM_PRTSTAT2 ; INVALID UNIT IS SPECIAL CASE
|
||||
CALL IMM_PRTPREFIX ; PRINT UNIT PREFIX
|
||||
JR IMM_PRTSTAT3
|
||||
IMM_PRTSTAT2:
|
||||
CALL NEWLINE
|
||||
PRTS("IMM:$") ; NO UNIT NUM IN PREFIX FOR INVALID UNIT
|
||||
IMM_PRTSTAT3:
|
||||
CALL PC_SPACE ; FORMATTING
|
||||
CALL IMM_PRTSTATSTR
|
||||
POP HL
|
||||
@@ -1430,46 +1325,29 @@ IMM_PRTSTAT3:
|
||||
IMM_PRTSTATSTR:
|
||||
PUSH AF
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD A,(IY+IMM_STAT)
|
||||
OR A
|
||||
LD DE,IMM_STR_STOK
|
||||
JR Z,IMM_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,IMM_STR_STINVUNIT
|
||||
JR Z,IMM_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,IMM_STR_STNOMEDIA
|
||||
JR Z,IMM_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,IMM_STR_STCMDERR
|
||||
JR Z,IMM_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,IMM_STR_STIOERR
|
||||
JR Z,IMM_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,IMM_STR_STTO
|
||||
JR Z,IMM_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,IMM_STR_STNOTSUP
|
||||
JR Z,IMM_PRTSTATSTR1
|
||||
LD DE,IMM_STR_STUNK
|
||||
IMM_PRTSTATSTR1:
|
||||
NEG
|
||||
LD HL,IMM_STR_ST_MAP
|
||||
ADD A,A
|
||||
CALL ADDHLA
|
||||
LD E,(HL)
|
||||
INC HL
|
||||
LD D,(HL)
|
||||
CALL WRITESTR
|
||||
POP HL
|
||||
POP DE
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
; PRINT DIAGNONSTIC PREFIX
|
||||
; PRINT DEVICE/UNIT PREFIX
|
||||
;
|
||||
IMM_PRTPREFIX:
|
||||
PUSH AF
|
||||
CALL NEWLINE
|
||||
PRTS("IMM$")
|
||||
LD A,(IY+IMM_DEV) ; GET CURRENT DEVICE NUM
|
||||
CP $FE ; NOT YET ASSIGNED?
|
||||
JR Z,IMM_PRTPREFIX1 ; SKIP DEV NUM IF SO
|
||||
CALL PRTDECB
|
||||
IMM_PRTPREFIX1:
|
||||
CALL PC_COLON
|
||||
POP AF
|
||||
RET
|
||||
@@ -1478,20 +1356,32 @@ IMM_PRTPREFIX1:
|
||||
; STRING DATA
|
||||
;=============================================================================
|
||||
;
|
||||
IMM_STR_STOK .TEXT "OK$"
|
||||
IMM_STR_STINVUNIT .TEXT "INVALID UNIT$"
|
||||
IMM_STR_STNOMEDIA .TEXT "NO MEDIA$"
|
||||
IMM_STR_STCMDERR .TEXT "COMMAND ERROR$"
|
||||
IMM_STR_STIOERR .TEXT "IO ERROR$"
|
||||
IMM_STR_STTO .TEXT "TIMEOUT$"
|
||||
IMM_STR_STNOTSUP .TEXT "NOT SUPPORTED$"
|
||||
IMM_STR_STUNK .TEXT "UNKNOWN ERROR$"
|
||||
IMM_STR_ST_MAP:
|
||||
.DW IMM_STR_ST_OK
|
||||
.DW IMM_STR_ST_NOMEDIA
|
||||
.DW IMM_STR_ST_CMDERR
|
||||
.DW IMM_STR_ST_IOERR
|
||||
.DW IMM_STR_ST_TO
|
||||
.DW IMM_STR_ST_NOTSUP
|
||||
;
|
||||
IMM_STR_NOHW .TEXT "NOT PRESENT$"
|
||||
IMM_STR_ST_OK .TEXT "OK$"
|
||||
IMM_STR_ST_NOMEDIA .TEXT "NO MEDIA$"
|
||||
IMM_STR_ST_CMDERR .TEXT "COMMAND ERROR$"
|
||||
IMM_STR_ST_IOERR .TEXT "IO ERROR$"
|
||||
IMM_STR_ST_TO .TEXT "TIMEOUT$"
|
||||
IMM_STR_ST_NOTSUP .TEXT "NOT SUPPORTED$"
|
||||
IMM_STR_ST_UNK .TEXT "UNKNOWN ERROR$"
|
||||
;
|
||||
IMM_STR_MODE_MAP:
|
||||
.DW IMM_STR_MODE_NONE
|
||||
.DW IMM_STR_MODE_SPP
|
||||
.DW IMM_STR_MODE_MG014
|
||||
;
|
||||
IMM_STR_MODE_NONE .TEXT "NONE$"
|
||||
IMM_STR_MODE_SPP .TEXT "SPP$"
|
||||
IMM_STR_MODE_MG014 .TEXT "MG014$"
|
||||
IMM_STR_MODE_UNK .TEXT "???$"
|
||||
;
|
||||
IMM_STR_NOHW .TEXT "NOT PRESENT$"
|
||||
;
|
||||
;=============================================================================
|
||||
; DATA STORAGE
|
||||
@@ -1503,13 +1393,6 @@ IMM_DSKBUF .DW 0 ; WORKING DISK BUFFER POINTER
|
||||
IMM_XFRLEN .DW 0 ; WORKING TRANSFER LENGTH
|
||||
IMM_CMDSTAT .DB 0, 0 ; CMD RESULT STATUS
|
||||
;
|
||||
IMM_TYPE_MAP:
|
||||
.DW IMM_STR_NONE
|
||||
.DW IMM_STR_MG014
|
||||
;
|
||||
IMM_STR_NONE .DB "<NOT PRESENT>$"
|
||||
IMM_STR_MG014 .DB "MG014$"
|
||||
;
|
||||
; SCSI COMMAND TEMPLATES (LENGTH PREFIXED)
|
||||
;
|
||||
.DB 6
|
||||
@@ -1527,7 +1410,7 @@ IMM_CFG:
|
||||
;
|
||||
IMM0_CFG: ; DEVICE 0
|
||||
.DB 0 ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY)
|
||||
.DB IMM0MODE ; DRIVER DEVICE MODE
|
||||
.DB IMMMODE ; DRIVER DEVICE MODE
|
||||
.DB 0 ; DEVICE STATUS
|
||||
.DB IMM0BASE ; IO BASE ADDRESS
|
||||
.DW 0,0 ; DEVICE CAPACITY
|
||||
@@ -1538,7 +1421,7 @@ IMM0_CFG: ; DEVICE 0
|
||||
;
|
||||
IMM1_CFG: ; DEVICE 1
|
||||
.DB 0 ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY)
|
||||
.DB IMM1MODE ; DRIVER DEVICE MODE
|
||||
.DB IMMMODE ; DRIVER DEVICE MODE
|
||||
.DB 0 ; DEVICE STATUS
|
||||
.DB IMM1BASE ; IO BASE ADDRESS
|
||||
.DW 0,0 ; DEVICE CAPACITY
|
||||
|
||||
@@ -10,9 +10,10 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
;
|
||||
; IBM STYLE INTERFACE (USED BY NHYODYNE PRINT MODULE):
|
||||
; IBM PC STANDARD PARALLEL PORT (SPP):
|
||||
; - NHYODYNE PRINT MODULE
|
||||
;
|
||||
; PORT 0 (INPUT/OUTPUT):
|
||||
; PORT 0 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -26,7 +27,7 @@
|
||||
; | /BUSY | /ACK | POUT | SEL | /ERR | 0 | 0 | 0 |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 2 (INPUT/OUTPUT):
|
||||
; PORT 2 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -35,9 +36,10 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
;
|
||||
; MG014 STYLE INTERFACE (USED BY RCBUS MG014 MODULE):
|
||||
; MG014 STYLE INTERFACE:
|
||||
; - RCBUS MG014 MODULE
|
||||
;
|
||||
; PORT 0 (INPUT/OUTPUT):
|
||||
; PORT 0 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -51,7 +53,7 @@
|
||||
; | | | | /ERR | SEL | POUT | BUSY | /ACK |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 2 (INPUT/OUTPUT):
|
||||
; PORT 2 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -165,7 +167,7 @@ LPT_OUT:
|
||||
JR Z,LPT_OUT ; LOOP IF NOT
|
||||
LD C,(IY+3) ; PORT 0 (DATA)
|
||||
OUT (C),E ; OUTPUT DATA TO PORT
|
||||
#IF (LPTMODE == LPTMODE_IBM)
|
||||
#IF (LPTMODE == LPTMODE_SPP)
|
||||
LD A,%00001101 ; SELECT & STROBE, LEDS OFF
|
||||
#ENDIF
|
||||
#IF (LPTMODE == LPTMODE_MG014)
|
||||
@@ -175,7 +177,7 @@ LPT_OUT:
|
||||
INC C
|
||||
OUT (C),A ; OUTPUT DATA TO PORT
|
||||
CALL DELAY
|
||||
#IF (LPTMODE == LPTMODE_IBM)
|
||||
#IF (LPTMODE == LPTMODE_SPP)
|
||||
LD A,%00001100 ; SELECT, LEDS OFF
|
||||
#ENDIF
|
||||
#IF (LPTMODE == LPTMODE_MG014)
|
||||
@@ -199,7 +201,7 @@ LPT_OST:
|
||||
LD C,(IY+3) ; BASE PORT
|
||||
INC C ; SELECT STATUS PORT
|
||||
IN A,(C) ; GET STATUS INFO
|
||||
#IF (LPTMODE == LPTMODE_IBM)
|
||||
#IF (LPTMODE == LPTMODE_SPP)
|
||||
AND %10000000 ; ISOLATE /BUSY
|
||||
#ENDIF
|
||||
#IF (LPTMODE == LPTMODE_MG014)
|
||||
@@ -221,7 +223,7 @@ LPT_INITDEV:
|
||||
;
|
||||
LPT_INITDEVX:
|
||||
;
|
||||
#IF (LPTMODE == LPTMODE_IBM)
|
||||
#IF (LPTMODE == LPTMODE_SPP)
|
||||
;
|
||||
LD C,(IY+3) ; PORT 0 (DATA)
|
||||
XOR A ; CLEAR ACCUM
|
||||
@@ -283,7 +285,7 @@ LPT_DETECT:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF (LPTMODE == LPTMODE_IBM)
|
||||
#IF (LPTMODE == LPTMODE_SPP)
|
||||
;
|
||||
LPT_DETECT:
|
||||
LD C,(IY+3) ; BASE PORT ADDRESS
|
||||
@@ -294,7 +296,7 @@ LPT_DETECT:
|
||||
;
|
||||
LPT_DETECT1:
|
||||
; LPT FOUND, RECORD IT
|
||||
LD A,LPTMODE_IBM ; RETURN CHIP TYPE
|
||||
LD A,LPTMODE_SPP ; RETURN CHIP TYPE
|
||||
RET ; DONE
|
||||
;
|
||||
LPT_DETECT2:
|
||||
@@ -372,7 +374,7 @@ LPT_PRTCFG:
|
||||
CALL PRTHEXBYTE ; PRINT BASE PORT
|
||||
|
||||
; PRINT THE LPT TYPE
|
||||
PRTS(": MODE=$") ; FORMATTING
|
||||
PRTS(" MODE=$") ; FORMATTING
|
||||
LD A,(IY+1) ; GET LPT TYPE BYTE
|
||||
RLCA ; MAKE IT A WORD OFFSET
|
||||
LD HL,LPT_TYPE_MAP ; POINT HL TO TYPE MAP TABLE
|
||||
@@ -396,11 +398,11 @@ LPT_PRTCFG:
|
||||
;
|
||||
LPT_TYPE_MAP:
|
||||
.DW LPT_STR_NONE
|
||||
.DW LPT_STR_IBM
|
||||
.DW LPT_STR_SPP
|
||||
.DW LPT_STR_MG014
|
||||
;
|
||||
LPT_STR_NONE .DB "<NOT PRESENT>$"
|
||||
LPT_STR_IBM .DB "IBM$"
|
||||
LPT_STR_SPP .DB "SPP$"
|
||||
LPT_STR_MG014 .DB "MG014$"
|
||||
;
|
||||
; WORKING VARIABLES
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
; PARALLEL PORT INTERFACE FOR SCSI DISK DEVICES USING A PARALLEL PORT
|
||||
; ADAPTER. PRIMARILY TARGETS PARALLEL PORT IOMEGA ZIP DRIVES.
|
||||
;
|
||||
; CURRENTLY CODED SPECIFICALLY FOR RCBUS MG014 PARALLEL PORT HARDWARE.
|
||||
; INTENDED TO CO-EXIST WITH LPT DRIVER.
|
||||
;
|
||||
; CREATED BY WAYNE WARTHEN FOR ROMWBW HBIOS.
|
||||
@@ -14,12 +13,40 @@
|
||||
;
|
||||
; 5/23/2023 WBW - INITIAL RELEASE
|
||||
; 5/26/3023 WBW - CLEAN UP, LED ACTIVITY
|
||||
; 5/27/2023 WBW - ADDED SPP MODE
|
||||
;
|
||||
;=============================================================================
|
||||
;
|
||||
; MG014 STYLE INTERFACE (USED BY RCBUS MG014 MODULE):
|
||||
; IBM PC STANDARD PARALLEL PORT (SPP):
|
||||
; - NHYODYNE PRINT MODULE
|
||||
;
|
||||
; PORT 0 (INPUT/OUTPUT):
|
||||
; PORT 0 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
; | PD7 | PD6 | PD5 | PD4 | PD3 | PD2 | PD1 | PD0 |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 1 (INPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
; | /BUSY | /ACK | POUT | SEL | /ERR | 0 | 0 | 0 |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 2 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
; | STAT1 | STAT0 | ENBL | PINT | SEL | RES | LF | STB |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
;=============================================================================
|
||||
;
|
||||
; MG014 STYLE INTERFACE:
|
||||
; - RCBUS MG014 MODULE
|
||||
;
|
||||
; PORT 0 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -33,7 +60,7 @@
|
||||
; | | | | /ERR | SEL | POUT | BUSY | /ACK |
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
;
|
||||
; PORT 2 (INPUT/OUTPUT):
|
||||
; PORT 2 (OUTPUT):
|
||||
;
|
||||
; D7 D6 D5 D4 D3 D2 D1 D0
|
||||
; +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||
@@ -44,8 +71,6 @@
|
||||
;
|
||||
; TODO:
|
||||
;
|
||||
; - CLEAN UP WAIT LOOP STUFF
|
||||
;
|
||||
; - OPTIMIZE READ/WRITE LOOPS
|
||||
;
|
||||
; NOTES:
|
||||
@@ -86,12 +111,11 @@ PPA_TGT .EQU 6
|
||||
; PPA DEVICE STATUS
|
||||
;
|
||||
PPA_STOK .EQU 0
|
||||
PPA_STINVUNIT .EQU -1
|
||||
PPA_STNOMEDIA .EQU -2
|
||||
PPA_STCMDERR .EQU -3
|
||||
PPA_STIOERR .EQU -4
|
||||
PPA_STTO .EQU -5
|
||||
PPA_STNOTSUP .EQU -6
|
||||
PPA_STNOMEDIA .EQU -1
|
||||
PPA_STCMDERR .EQU -2
|
||||
PPA_STIOERR .EQU -3
|
||||
PPA_STTO .EQU -4
|
||||
PPA_STNOTSUP .EQU -5
|
||||
;
|
||||
; PPA DEVICE CONFIGURATION
|
||||
;
|
||||
@@ -130,15 +154,14 @@ PPA_INIT2:
|
||||
;
|
||||
PRTS(" MODE=$") ; LABEL FOR MODE
|
||||
LD A,(IY+PPA_MODE) ; GET MODE BITS
|
||||
LD DE,PPA_STR_MODE_NONE ; MODE LABEL
|
||||
CP PPAMODE_NONE ; TEST FOR MODE
|
||||
JR Z,PPA_INIT3 ; IF SO, DISPLAY IT
|
||||
LD DE,PPA_STR_MODE_MG014 ; MODE LABEL
|
||||
CP PPAMODE_MG014 ; TEST FOR MODE
|
||||
JR Z,PPA_INIT3 ; IF SO, DISPLAY IT
|
||||
LD DE,PPA_STR_MODE_UNK ; MODE LABEL
|
||||
PPA_INIT3:
|
||||
CALL WRITESTR ; DISPLAY MODE
|
||||
|
||||
LD HL,PPA_STR_MODE_MAP
|
||||
ADD A,A
|
||||
CALL ADDHLA
|
||||
LD E,(HL)
|
||||
INC HL
|
||||
LD D,(HL)
|
||||
CALL WRITESTR
|
||||
;
|
||||
; CHECK FOR HARDWARE PRESENCE
|
||||
CALL PPA_DETECT ; PROBE FOR INTERFACE
|
||||
@@ -162,17 +185,13 @@ PPA_INIT4:
|
||||
CALL DIO_ADDENT ; ADD ENTRY TO GLOBAL DISK DEV TABLE
|
||||
;
|
||||
CALL PPA_RESET ; RESET/INIT THE INTERFACE
|
||||
#IF (PPATRACE == 0)
|
||||
CALL PPA_PRTSTAT
|
||||
#ENDIF
|
||||
JR NZ,PPA_INIT6
|
||||
;
|
||||
; START PRINTING DEVICE INFO
|
||||
CALL PPA_PRTPREFIX ; PRINT DEVICE PREFIX
|
||||
;
|
||||
; CHECK FOR BAD STATUS
|
||||
LD A,(IY+PPA_STAT) ; GET STATUS
|
||||
OR A ; SET FLAGS
|
||||
JP Z,PPA_INIT5 ; CONTINUE
|
||||
CALL PC_SPACE ; FORMATTING
|
||||
CALL PPA_PRTSTATSTR ; PRINT STATUS STRING
|
||||
JR PPA_INIT6 ; LOOP TILL DONE
|
||||
;
|
||||
PPA_INIT5:
|
||||
; PRINT STORAGE CAPACITY (BLOCK COUNT)
|
||||
@@ -209,12 +228,10 @@ PPA_DETECT:
|
||||
OUT (C),A ; DO IT
|
||||
CALL DELAY ; BRIEF DELAY FOR GOOD MEASURE
|
||||
;
|
||||
LD A,$AA
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$AA \ CALL PPA_WRITEDATA
|
||||
CALL PPA_DISCONNECT
|
||||
CALL PPA_CONNECT
|
||||
LD A,$06
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$06 \ CALL PPA_WRITECTRL
|
||||
CALL PPA_READSTATUS
|
||||
;
|
||||
CALL PC_SPACE
|
||||
@@ -223,8 +240,7 @@ PPA_DETECT:
|
||||
AND $F0
|
||||
CP $F0
|
||||
JR NZ,PPA_DETECT_FAIL
|
||||
LD A,$04
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$04 \ CALL PPA_WRITECTRL
|
||||
CALL PPA_READSTATUS
|
||||
;
|
||||
CALL PC_SPACE
|
||||
@@ -233,17 +249,12 @@ PPA_DETECT:
|
||||
AND $F0
|
||||
CP $80
|
||||
JR NZ,PPA_DETECT_FAIL
|
||||
LD A,$AA
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$0C
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$AA \ CALL PPA_WRITEDATA
|
||||
LD A,$0C \ CALL PPA_WRITECTRL
|
||||
CALL PPA_CONNECT
|
||||
LD A,$40
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$08
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0C
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$40 \ CALL PPA_WRITEDATA
|
||||
LD A,$08 \ CALL PPA_WRITECTRL
|
||||
LD A,$0C \ CALL PPA_WRITECTRL
|
||||
CALL PPA_DISCONNECT
|
||||
;
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
@@ -329,7 +340,7 @@ PPA_IO:
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
CALL INC32HL ; INCREMENT THE VALUE
|
||||
; INCREMENT DMA
|
||||
LD HL,IDE_DSKBUF+1 ; POINT TO MSB OF BUFFER ADR
|
||||
LD HL,PPA_DSKBUF+1 ; POINT TO MSB OF BUFFER ADR
|
||||
INC (HL) ; BUMP DMA BY
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
@@ -470,7 +481,9 @@ PPA_WRITECTRL:
|
||||
; BELOW TRANSLATES FROM IBM -> MG014. IT ALSO INVERTS THE
|
||||
; MG014 LED SIMPLY TO MAKE IT EASY TO KEEP LED ON DURING
|
||||
; ALL ACTIVITY.
|
||||
#IF (PPAMODE == PPAMODE_MG014
|
||||
XOR $0B | $80 ; HIGH BIT IS MG014 LED
|
||||
#ENDIF
|
||||
LD C,(IY+PPA_IOBASE) ; GET BASE IO ADDRESS
|
||||
INC C ; BUMP TO CONTROL PORT
|
||||
INC C
|
||||
@@ -493,95 +506,74 @@ PPA_READSTATUS:
|
||||
LD C,(IY+PPA_IOBASE) ; IOBASE TO C
|
||||
INC C ; BUMP TO STATUS PORT
|
||||
IN A,(C) ; READ IT
|
||||
LD C,0 ; INIT RESULT
|
||||
;
|
||||
; SHUFFLE BITS
|
||||
#IF (PPAMODE == PPAMODE_MG014
|
||||
;
|
||||
; SHUFFLE BITS ON MG014
|
||||
LD C,0 ; INIT RESULT
|
||||
BIT 0,A ; 0: /ACK
|
||||
JR Z,PPA_READSTATUS1
|
||||
SET 6,C ; 6: /ACK
|
||||
;
|
||||
PPA_READSTATUS1:
|
||||
;
|
||||
BIT 1,A ; 1: BUSY
|
||||
JR NZ,PPA_READSTATUS2 ; POLARITY CHANGE!
|
||||
SET 7,C ; 7: /BUSY
|
||||
;
|
||||
PPA_READSTATUS2:
|
||||
;
|
||||
BIT 2,A ; 2: POUT
|
||||
JR Z,PPA_READSTATUS3
|
||||
SET 5,C ; 5: POUT
|
||||
;
|
||||
PPA_READSTATUS3:
|
||||
;
|
||||
BIT 3,A ; 3: SEL
|
||||
JR Z,PPA_READSTATUS4
|
||||
SET 4,C ; 4: SEL
|
||||
;
|
||||
PPA_READSTATUS4:
|
||||
;
|
||||
BIT 4,A ; 4: /ERR
|
||||
JR Z,PPA_READSTATUS5
|
||||
SET 3,C ; 3: /ERR
|
||||
;
|
||||
PPA_READSTATUS5:
|
||||
LD A,C ; RESULT TO A
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
PPA_DPULSE:
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$0C
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0E
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0C ;?
|
||||
CALL PPA_WRITECTRL ;?
|
||||
LD A,$04
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0C
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0C \ CALL PPA_WRITECTRL
|
||||
LD A,$0E \ CALL PPA_WRITECTRL
|
||||
LD A,$0C \ CALL PPA_WRITECTRL
|
||||
LD A,$04 \ CALL PPA_WRITECTRL
|
||||
LD A,$0C \ CALL PPA_WRITECTRL
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
PPA_CPULSE:
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$04
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$06
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$04
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0C
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$04 \ CALL PPA_WRITECTRL
|
||||
LD A,$06 \ CALL PPA_WRITECTRL
|
||||
LD A,$04 \ CALL PPA_WRITECTRL
|
||||
LD A,$0C \ CALL PPA_WRITECTRL
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
PPA_CONNECT:
|
||||
LD A,$00
|
||||
CALL PPA_CPULSE
|
||||
LD A,$3C
|
||||
CALL PPA_CPULSE
|
||||
LD A,$20
|
||||
CALL PPA_CPULSE
|
||||
LD A,$8F
|
||||
CALL PPA_CPULSE
|
||||
LD A,$00 \ CALL PPA_CPULSE
|
||||
LD A,$3C \ CALL PPA_CPULSE
|
||||
LD A,$20 \ CALL PPA_CPULSE
|
||||
LD A,$8F \ CALL PPA_CPULSE
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
PPA_DISCONNECT:
|
||||
LD A,$00
|
||||
CALL PPA_DPULSE
|
||||
LD A,$3C
|
||||
CALL PPA_DPULSE
|
||||
LD A,$20
|
||||
CALL PPA_DPULSE
|
||||
LD A,$0F
|
||||
CALL PPA_DPULSE
|
||||
LD A,$00 \ CALL PPA_DPULSE
|
||||
LD A,$3C \ CALL PPA_DPULSE
|
||||
LD A,$20 \ CALL PPA_DPULSE
|
||||
LD A,$0F \ CALL PPA_DPULSE
|
||||
RET
|
||||
;
|
||||
; SCSI SELECT PROCESS
|
||||
@@ -590,14 +582,11 @@ PPA_DISCONNECT:
|
||||
PPA_SELECT:
|
||||
LD A,1 << PPA_TGT
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$0E
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0C
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$0E \ CALL PPA_WRITECTRL
|
||||
LD A,$0C \ CALL PPA_WRITECTRL
|
||||
LD A,1 << PPA_SELF
|
||||
CALL PPA_WRITEDATA
|
||||
LD A,$08
|
||||
CALL PPA_WRITECTRL
|
||||
LD A,$08 \ CALL PPA_WRITECTRL
|
||||
;
|
||||
LD HL,0 ; TIMEOUT COUNTER
|
||||
;
|
||||
@@ -696,6 +685,8 @@ PPA_INITDEV:
|
||||
LD A,$82 ; CONFIG A OUT, B IN, C OUT
|
||||
OUT (C),A ; DO IT
|
||||
CALL DELAY ; SHORT DELAY FOR BUS SETTLE
|
||||
;
|
||||
JP PPA_NOTSUP
|
||||
;
|
||||
;=============================================================================
|
||||
; ERROR HANDLING AND DIAGNOSTICS
|
||||
@@ -703,9 +694,6 @@ PPA_INITDEV:
|
||||
;
|
||||
; ERROR HANDLERS
|
||||
;
|
||||
PPA_INVUNIT:
|
||||
LD A,PPA_STINVUNIT
|
||||
JR PPA_ERR2 ; SPECIAL CASE FOR INVALID UNIT
|
||||
;
|
||||
PPA_NOMEDIA:
|
||||
LD A,PPA_STNOMEDIA
|
||||
@@ -731,7 +719,7 @@ PPA_ERR:
|
||||
LD (IY+PPA_STAT),A ; SAVE NEW STATUS
|
||||
;
|
||||
PPA_ERR2:
|
||||
#IF (PPATRACE >= 2)
|
||||
#IF (PPATRACE >= 1)
|
||||
CALL PPA_PRTSTAT
|
||||
#ENDIF
|
||||
OR A ; SET FLAGS
|
||||
@@ -750,14 +738,7 @@ PPA_PRTSTAT:
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD A,(IY+PPA_STAT)
|
||||
CP PPA_STINVUNIT
|
||||
JR Z,PPA_PRTSTAT2 ; INVALID UNIT IS SPECIAL CASE
|
||||
CALL PPA_PRTPREFIX ; PRINT UNIT PREFIX
|
||||
JR PPA_PRTSTAT3
|
||||
PPA_PRTSTAT2:
|
||||
CALL NEWLINE
|
||||
PRTS("PPA:$") ; NO UNIT NUM IN PREFIX FOR INVALID UNIT
|
||||
PPA_PRTSTAT3:
|
||||
CALL PC_SPACE ; FORMATTING
|
||||
CALL PPA_PRTSTATSTR
|
||||
POP HL
|
||||
@@ -770,31 +751,17 @@ PPA_PRTSTAT3:
|
||||
PPA_PRTSTATSTR:
|
||||
PUSH AF
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD A,(IY+PPA_STAT)
|
||||
OR A
|
||||
LD DE,PPA_STR_STOK
|
||||
JR Z,PPA_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,PPA_STR_STINVUNIT
|
||||
JR Z,PPA_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,PPA_STR_STNOMEDIA
|
||||
JR Z,PPA_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,PPA_STR_STCMDERR
|
||||
JR Z,PPA_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,PPA_STR_STIOERR
|
||||
JR Z,PPA_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,PPA_STR_STTO
|
||||
JR Z,PPA_PRTSTATSTR1
|
||||
INC A
|
||||
LD DE,PPA_STR_STNOTSUP
|
||||
JR Z,PPA_PRTSTATSTR1
|
||||
LD DE,PPA_STR_STUNK
|
||||
PPA_PRTSTATSTR1:
|
||||
NEG
|
||||
LD HL,PPA_STR_ST_MAP
|
||||
ADD A,A
|
||||
CALL ADDHLA
|
||||
LD E,(HL)
|
||||
INC HL
|
||||
LD D,(HL)
|
||||
CALL WRITESTR
|
||||
POP HL
|
||||
POP DE
|
||||
POP AF
|
||||
RET
|
||||
@@ -805,11 +772,8 @@ PPA_PRTPREFIX:
|
||||
PUSH AF
|
||||
CALL NEWLINE
|
||||
PRTS("PPA$")
|
||||
LD A,(IY+PPA_DEV) ; GET CURRENT DEVICE NUM
|
||||
CP $FE ; NOT YET ASSIGNED?
|
||||
JR Z,PPA_PRTPREFIX1 ; SKIP DEV NUM IF SO
|
||||
LD A,(IY+IMM_DEV) ; GET CURRENT DEVICE NUM
|
||||
CALL PRTDECB
|
||||
PPA_PRTPREFIX1:
|
||||
CALL PC_COLON
|
||||
POP AF
|
||||
RET
|
||||
@@ -818,8 +782,15 @@ PPA_PRTPREFIX1:
|
||||
; STRING DATA
|
||||
;=============================================================================
|
||||
;
|
||||
PPA_STR_ST_MAP:
|
||||
.DW PPA_STR_STOK
|
||||
.DW PPA_STR_STNOMEDIA
|
||||
.DW PPA_STR_STCMDERR
|
||||
.DW PPA_STR_STIOERR
|
||||
.DW PPA_STR_STTO
|
||||
.DW PPA_STR_STNOTSUP
|
||||
;
|
||||
PPA_STR_STOK .TEXT "OK$"
|
||||
PPA_STR_STINVUNIT .TEXT "INVALID UNIT$"
|
||||
PPA_STR_STNOMEDIA .TEXT "NO MEDIA$"
|
||||
PPA_STR_STCMDERR .TEXT "COMMAND ERROR$"
|
||||
PPA_STR_STIOERR .TEXT "IO ERROR$"
|
||||
@@ -827,11 +798,16 @@ PPA_STR_STTO .TEXT "TIMEOUT$"
|
||||
PPA_STR_STNOTSUP .TEXT "NOT SUPPORTED$"
|
||||
PPA_STR_STUNK .TEXT "UNKNOWN ERROR$"
|
||||
;
|
||||
PPA_STR_NOHW .TEXT "NOT PRESENT$"
|
||||
PPA_STR_MODE_MAP:
|
||||
.DW PPA_STR_MODE_NONE
|
||||
.DW PPA_STR_MODE_SPP
|
||||
.DW PPA_STR_MODE_MG014
|
||||
;
|
||||
PPA_STR_MODE_NONE .TEXT "NONE$"
|
||||
PPA_STR_MODE_MG014 .TEXT "MG014$"
|
||||
PPA_STR_MODE_UNK .TEXT "???$"
|
||||
PPA_STR_MODE_NONE .DB "NONE$"
|
||||
PPA_STR_MODE_SPP .DB "SPP$"
|
||||
PPA_STR_MODE_MG014 .DB "MG014$"
|
||||
;
|
||||
PPA_STR_NOHW .TEXT "NOT PRESENT$"
|
||||
;
|
||||
;=============================================================================
|
||||
; DATA STORAGE
|
||||
@@ -843,13 +819,6 @@ PPA_DSKBUF .DW 0 ; WORKING DISK BUFFER POINTER
|
||||
PPA_XFRLEN .DW 0 ; WORKING TRANSFER LENGTH
|
||||
PPA_CMDSTAT .DB 0, 0 ; CMD RESULT STATUS
|
||||
;
|
||||
PPA_TYPE_MAP:
|
||||
.DW PPA_STR_NONE
|
||||
.DW PPA_STR_MG014
|
||||
;
|
||||
PPA_STR_NONE .DB "<NOT PRESENT>$"
|
||||
PPA_STR_MG014 .DB "MG014$"
|
||||
;
|
||||
; SCSI COMMAND TEMPLATES (LENGTH PREFIXED)
|
||||
;
|
||||
.DB 6
|
||||
@@ -867,7 +836,7 @@ PPA_CFG:
|
||||
;
|
||||
PPA0_CFG: ; DEVICE 0
|
||||
.DB 0 ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY)
|
||||
.DB PPA0MODE ; DRIVER DEVICE MODE
|
||||
.DB PPAMODE ; DRIVER DEVICE MODE
|
||||
.DB 0 ; DEVICE STATUS
|
||||
.DB PPA0BASE ; IO BASE ADDRESS
|
||||
.DW 0,0 ; DEVICE CAPACITY
|
||||
@@ -878,7 +847,7 @@ PPA0_CFG: ; DEVICE 0
|
||||
;
|
||||
PPA1_CFG: ; DEVICE 1
|
||||
.DB 0 ; DRIVER DEVICE NUMBER (FILLED DYNAMICALLY)
|
||||
.DB PPA1MODE ; DRIVER DEVICE MODE
|
||||
.DB PPAMODE ; DRIVER DEVICE MODE
|
||||
.DB 0 ; DEVICE STATUS
|
||||
.DB PPA1BASE ; IO BASE ADDRESS
|
||||
.DW 0,0 ; DEVICE CAPACITY
|
||||
|
||||
@@ -180,7 +180,7 @@ start1:
|
||||
call pstr ; do it
|
||||
call clrbuf ; zero fill the cmd buffer
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
#if ((BIOS == BIOS_WBW) & FPSW_ENABLE)
|
||||
;
|
||||
ld b,BF_SYSGET ; HBIOS SysGet
|
||||
ld c,BF_SYSGET_PANEL ; ... Panel swiches value
|
||||
@@ -390,7 +390,7 @@ runcmd2:
|
||||
ld (bootslice),a ; save boot slice
|
||||
jp diskboot ; boot the disk unit/slice
|
||||
;
|
||||
#if (BIOS == BIOS_WBW)
|
||||
#if ((BIOS == BIOS_WBW) & FPSW_ENABLE)
|
||||
;
|
||||
;=======================================================================
|
||||
; Process Front Panel switches
|
||||
|
||||
@@ -245,18 +245,20 @@ GDCMODE_RPH .EQU 2 ; RPH GDC
|
||||
; LPT DRIVER MODE SELECTIONS
|
||||
;
|
||||
LPTMODE_NONE .EQU 0 ; NONE
|
||||
LPTMODE_IBM .EQU 1 ; IBM STYLE INTERFACE
|
||||
LPTMODE_SPP .EQU 1 ; IBM PC STANDARD PAR PORT (SPP)
|
||||
LPTMODE_MG014 .EQU 2 ; RCBUS MG014 STYLE INTERFACE
|
||||
;
|
||||
; PPA DRIVER MODE SELECTIONS
|
||||
;
|
||||
PPAMODE_NONE .EQU 0 ; NONE
|
||||
PPAMODE_MG014 .EQU 1 ; RCBUS MG014 STYLE INTERFACE
|
||||
PPAMODE_SPP .EQU 1 ; IBM PC STANDARD PAR PORT (SPP)
|
||||
PPAMODE_MG014 .EQU 2 ; RCBUS MG014 STYLE INTERFACE
|
||||
;
|
||||
; IMM DRIVER MODE SELECTIONS
|
||||
;
|
||||
IMMMODE_NONE .EQU 0 ; NONE
|
||||
IMMMODE_MG014 .EQU 1 ; RCBUS MG014 STYLE INTERFACE
|
||||
IMMMODE_SPP .EQU 1 ; IBM PC STANDARD PAR PORT (SPP)
|
||||
IMMMODE_MG014 .EQU 2 ; RCBUS MG014 STYLE INTERFACE
|
||||
;
|
||||
; GDC MONITOR SELECTIONS
|
||||
;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#DEFINE RMN 3
|
||||
#DEFINE RUP 0
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.3.0-dev.16"
|
||||
#DEFINE BIOSVER "3.3.0-dev.17"
|
||||
#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.16"
|
||||
db "3.3.0-dev.17"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user