|
|
@ -68,6 +68,13 @@ FDC_DOR .EQU $4A ; DIGITAL OUTPUT REGISTER |
|
|
FDC_DCR .EQU $4B ; CONFIGURATION CONTROL REGISTER |
|
|
FDC_DCR .EQU $4B ; CONFIGURATION CONTROL REGISTER |
|
|
FDC_TC .EQU $4C ; TERMINAL COUNT (W/ DACK) |
|
|
FDC_TC .EQU $4C ; TERMINAL COUNT (W/ DACK) |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
#IF (FDMODE == FDMODE_MBC) |
|
|
|
|
|
FDC_MSR .EQU $30 ; 8272 MAIN STATUS REGISTER |
|
|
|
|
|
FDC_DATA .EQU $31 ; 8272 DATA PORT |
|
|
|
|
|
FDC_DOR .EQU $36 ; DIGITAL OUTPUT REGISTER |
|
|
|
|
|
FDC_DCR .EQU $35 ; CONFIGURATION CONTROL REGISTER |
|
|
|
|
|
FDC_TC .EQU $37 ; TERMINAL COUNT (W/ DACK) |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
; DISK OPERATIONS |
|
|
; DISK OPERATIONS |
|
|
; |
|
|
; |
|
|
@ -406,7 +413,7 @@ DOR_INIT .EQU 11100000B ; INITIAL DEFAULT LATCH VALUE |
|
|
; |
|
|
; |
|
|
; *** DIDE/N8/ZETA V2 *** |
|
|
; *** DIDE/N8/ZETA V2 *** |
|
|
; |
|
|
; |
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC)) |
|
|
|
|
|
|
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC)) |
|
|
DOR_INIT .EQU 00001100B ; SOFT RESET INACTIVE, DMA ENABLED |
|
|
DOR_INIT .EQU 00001100B ; SOFT RESET INACTIVE, DMA ENABLED |
|
|
DOR_BR250 .EQU DOR_INIT |
|
|
DOR_BR250 .EQU DOR_INIT |
|
|
DOR_BR500 .EQU DOR_INIT |
|
|
DOR_BR500 .EQU DOR_INIT |
|
|
@ -689,6 +696,10 @@ FD_INIT: |
|
|
#IF (FDMODE == FDMODE_EPFDC) |
|
|
#IF (FDMODE == FDMODE_EPFDC) |
|
|
PRTS("EPFDC$") |
|
|
PRTS("EPFDC$") |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
#IF (FDMODE == FDMODE_MBC) |
|
|
|
|
|
PRTS("MBC$") |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
PRTS(" IO=0x$") |
|
|
PRTS(" IO=0x$") |
|
|
LD A,FDC_MSR |
|
|
LD A,FDC_MSR |
|
|
@ -1343,7 +1354,7 @@ FC_SETDOR: |
|
|
; |
|
|
; |
|
|
; SET FST_DCR |
|
|
; SET FST_DCR |
|
|
; |
|
|
; |
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC)) |
|
|
|
|
|
|
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC)) |
|
|
; |
|
|
; |
|
|
FC_SETDCR |
|
|
FC_SETDCR |
|
|
LD (FST_DCR),A |
|
|
LD (FST_DCR),A |
|
|
@ -1375,7 +1386,7 @@ FC_RESETFDC: |
|
|
#IF ((FDMODE == FDMODE_ZETA) | (FDMODE == FDMODE_DIO3) | (FDMODE == FDMODE_RCSMC)) |
|
|
#IF ((FDMODE == FDMODE_ZETA) | (FDMODE == FDMODE_DIO3) | (FDMODE == FDMODE_RCSMC)) |
|
|
RES 7,A |
|
|
RES 7,A |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC)) |
|
|
|
|
|
|
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC)) |
|
|
LD A,0 |
|
|
LD A,0 |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
CALL FC_SETDOR |
|
|
CALL FC_SETDOR |
|
|
@ -1390,7 +1401,7 @@ FC_RESETFDC: |
|
|
; PULSE TERMCT TO TERMINATE ANY ACTIVE EXECUTION PHASE |
|
|
; PULSE TERMCT TO TERMINATE ANY ACTIVE EXECUTION PHASE |
|
|
; |
|
|
; |
|
|
FC_PULSETC: |
|
|
FC_PULSETC: |
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC)) |
|
|
|
|
|
|
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC)) |
|
|
IN A,(FDC_TC) |
|
|
IN A,(FDC_TC) |
|
|
#ELSE |
|
|
#ELSE |
|
|
LD A,(FST_DOR) |
|
|
LD A,(FST_DOR) |
|
|
@ -1447,7 +1458,7 @@ FC_MOTORON1: |
|
|
CP C ; COMPARE TO NEW MOTOR BITS |
|
|
CP C ; COMPARE TO NEW MOTOR BITS |
|
|
RET Z ; SKIP DELAY, MOTOR WAS ALREADY ON |
|
|
RET Z ; SKIP DELAY, MOTOR WAS ALREADY ON |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC)) |
|
|
|
|
|
|
|
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC)) |
|
|
; SETUP DCR FOR DIDE HARDWARE |
|
|
; SETUP DCR FOR DIDE HARDWARE |
|
|
LD A,(FCD_DCR) ; GET NEW DCR VALUE |
|
|
LD A,(FCD_DCR) ; GET NEW DCR VALUE |
|
|
CALL FC_SETDCR ; AND IMPLEMENT IT |
|
|
CALL FC_SETDCR ; AND IMPLEMENT IT |
|
|
|