forked from MirrorRepos/RomWBW
Reintegrate wbw -> trunk
This commit is contained in:
@@ -1,14 +1,14 @@
|
|||||||
/************************************/
|
/************************************/
|
||||||
/* applvers.h dwg - 2.5.0.14 Beta */
|
/* applvers.h dwg - 2.5.0.15 */
|
||||||
/************************************/
|
/************************************/
|
||||||
|
|
||||||
#define A_RMJ 2
|
#define A_RMJ 2
|
||||||
#define A_RMN 5
|
#define A_RMN 5
|
||||||
#define A_RUP 0
|
#define A_RUP 0
|
||||||
#define A_RTP 14
|
#define A_RTP 15
|
||||||
|
|
||||||
#define A_MONTH 6
|
#define A_MONTH 6
|
||||||
#define A_DAY 9
|
#define A_DAY 16
|
||||||
#define A_YEAR 2013
|
#define A_YEAR 2013
|
||||||
#define A_YR 13
|
#define A_YR 13
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
A$RMJ equ 2
|
A$RMJ equ 2
|
||||||
A$RMN equ 5
|
A$RMN equ 5
|
||||||
A$RUP equ 0
|
A$RUP equ 0
|
||||||
A$RTP equ 14
|
A$RTP equ 15
|
||||||
|
|
||||||
A$MONTH equ 6
|
A$MONTH equ 6
|
||||||
A$DAY equ 9
|
A$DAY equ 16
|
||||||
A$YEAR equ 2013
|
A$YEAR equ 2013
|
||||||
|
|
||||||
date macro
|
date macro
|
||||||
dat db ' 6/9/2013$'
|
dat db ' 6/16/2013$'
|
||||||
endm
|
endm
|
||||||
|
|
||||||
serial macro
|
serial macro
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ Builders: Wayne Warthen (wwarthen@gmail.com)
|
|||||||
Douglas Goodall (douglas_goodall@mac.com)
|
Douglas Goodall (douglas_goodall@mac.com)
|
||||||
David Giles (vk5dg@internode.on.net)
|
David Giles (vk5dg@internode.on.net)
|
||||||
|
|
||||||
Updated: 2013-06-09
|
Updated: 2013-06-16
|
||||||
Version: 2.5 Beta 14
|
Version: 2.5
|
||||||
|
|
||||||
This is an adaptation of CP/M-80 2.2 and ZSDOS/ZCPR
|
This is an adaptation of CP/M-80 2.2 and ZSDOS/ZCPR
|
||||||
targeting ROMs for all N8VEM Z80 hardware variations
|
targeting ROMs for all N8VEM Z80 hardware variations
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1582,7 +1582,7 @@ DPB_FD120:
|
|||||||
.DW 2 ; OFF: RESERVED TRACKS = 2 TRKS * (512 B/SEC * 60 SEC/TRK) = 15K
|
.DW 2 ; OFF: RESERVED TRACKS = 2 TRKS * (512 B/SEC * 60 SEC/TRK) = 15K
|
||||||
;__________________________________________________________________________________________________
|
;__________________________________________________________________________________________________
|
||||||
;
|
;
|
||||||
; IBM 1.11MB 8" FLOPPY DRIVE, 74 TRKS, 15 SECS/TRK, 512 BYTES/SEC
|
; IBM 1.11MB 8" FLOPPY DRIVE, 77 TRKS, 15 SECS/TRK, 512 BYTES/SEC
|
||||||
; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 256
|
; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 256
|
||||||
;
|
;
|
||||||
.DB (2048 / 128) ; RECORDS PER BLOCK (BLS / 128)
|
.DB (2048 / 128) ; RECORDS PER BLOCK (BLS / 128)
|
||||||
@@ -1591,7 +1591,7 @@ DPB_FD111:
|
|||||||
.DB 4 ; BSH: BLOCK SHIFT FACTOR
|
.DB 4 ; BSH: BLOCK SHIFT FACTOR
|
||||||
.DB 15 ; BLM: BLOCK MASK
|
.DB 15 ; BLM: BLOCK MASK
|
||||||
.DB 0 ; EXM: EXTENT MASK
|
.DB 0 ; EXM: EXTENT MASK
|
||||||
.DW 546 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((1,110K - 15K OFF) / 2K BLS) - 1 = 546
|
.DW 569 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((1,155K - 15K OFF) / 2K BLS) - 1 = 569
|
||||||
.DW 255 ; DRM: DIR ENTRIES - 1 = 256 - 1 = 255
|
.DW 255 ; DRM: DIR ENTRIES - 1 = 256 - 1 = 255
|
||||||
.DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE
|
.DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE
|
||||||
.DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE
|
.DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE
|
||||||
|
|||||||
158
Source/fd.asm
158
Source/fd.asm
@@ -128,6 +128,34 @@ CMD_DRVSTAT .EQU 00000100B ; CMD,HDS/DS --> ST3
|
|||||||
CMD_SEEK .EQU 00001111B ; CMD,HDS/DS --> <EMPTY>
|
CMD_SEEK .EQU 00001111B ; CMD,HDS/DS --> <EMPTY>
|
||||||
CMD_VERSION .EQU 00010000B ; CMD --> ST0
|
CMD_VERSION .EQU 00010000B ; CMD --> ST0
|
||||||
;
|
;
|
||||||
|
;
|
||||||
|
; Specify Command:
|
||||||
|
; +-----+-----+-----+-----+-----+-----+-----+-----+-----+
|
||||||
|
; |Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|
||||||
|
; +-----+-----+-----+-----+-----+-----+-----+-----+-----+
|
||||||
|
; | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
|
||||||
|
; | 1 | ----- STEP RATE ----- | -- HEAD UNLOAD TIME - |
|
||||||
|
; | 2 | ------------ HEAD LOAD TIME ----------- | NDM |
|
||||||
|
; +-----+-----+-----+-----+-----+-----+-----+-----+-----+
|
||||||
|
;
|
||||||
|
;
|
||||||
|
; Step Rate (milliseconds): Head Unload Time (milliseconds): Head Load Time (milliseconds):
|
||||||
|
; +------+------+------+------+------+ +------+------+------+------+------+ +------+------+------+------+------+
|
||||||
|
; | | BITRATE | | | BITRATE | | | BITRATE |
|
||||||
|
; | VAL | 1.0M | 500K | 300K | 250K | | VAL | 1.0M | 500K | 300K | 250K | | VAL | 1.0M | 500K | 300K | 250K |
|
||||||
|
; +------+------+------+------+------+ +------+------+------+------+------+ +------+------+------+------+------+
|
||||||
|
; | 0 | 8.0 | 16.0 | 26.7 | 32.0 | | 0 | 128 | 256 | 426 | 512 | | 0 | 128 | 256 | 426 | 512 |
|
||||||
|
; | 1 | 7.5 | 15.0 | 25.0 | 30.0 | | 1 | 8 | 16 | 26.7 | 32 | | 1 | 1 | 2 | 3.3 | 4 |
|
||||||
|
; | 2 | 7.0 | 14.0 | 23.3 | 28.0 | | 2 | 16 | 32 | 53.3 | 64 | | 2 | 2 | 4 | 6.7 | 8 |
|
||||||
|
; | ... | ... | ... | ... | ... | | ... | ... | ... | ... | ... | | ... | ... | ... | ... | ... |
|
||||||
|
; | 14 | 1.0 | 2.0 | 3.3 | 4.0 | | 14 | 112 | 224 | 373 | 448 | | 126 | 126 | 252 | 420 | 504 |
|
||||||
|
; | 15 | 0.5 | 1.0 | 1.7 | 2.0 | | 15 | 120 | 240 | 400 | 480 | | 127 | 127 | 254 | 423 | 508 |
|
||||||
|
; +------+------+------+------+------+ +------+------+------+------+------+ +------+------+------+------+------+
|
||||||
|
;
|
||||||
|
; IBM PS/2 CALLS FOR:
|
||||||
|
; STEP RATE: 3ms (6ms FOR ALL 41mm OR 720K DRIVES)
|
||||||
|
; HEAD LOAD TIME: 15ms
|
||||||
|
;
|
||||||
; STATIC CONFIGURATION, NEVER CHANGES (PRIVATE)
|
; STATIC CONFIGURATION, NEVER CHANGES (PRIVATE)
|
||||||
;
|
;
|
||||||
FCD_MT .EQU 000H ; MULTI-TRACK, WE DON'T USE, SET TO 0
|
FCD_MT .EQU 000H ; MULTI-TRACK, WE DON'T USE, SET TO 0
|
||||||
@@ -145,8 +173,8 @@ FCD_PC720 .DB 050H ; NUMBER OF CYLINDERS
|
|||||||
.DW 200H ; SECTOR SIZE IN BYTES
|
.DW 200H ; SECTOR SIZE IN BYTES
|
||||||
.DB 02AH ; GAP LENGTH (R/W)
|
.DB 02AH ; GAP LENGTH (R/W)
|
||||||
.DB 050H ; GAP LENGTH (FORMAT)
|
.DB 050H ; GAP LENGTH (FORMAT)
|
||||||
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
|
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
|
||||||
.DB 005H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
|
.DB (4 << 1) | 1 ; HLT = 16ms, ND = YES
|
||||||
.DB DOR_BR250 ; DOR
|
.DB DOR_BR250 ; DOR
|
||||||
.DB DCR_BR250 ; DCR
|
.DB DCR_BR250 ; DCR
|
||||||
.IF (($ - FCD_PC720) != FCD_LEN)
|
.IF (($ - FCD_PC720) != FCD_LEN)
|
||||||
@@ -161,8 +189,8 @@ FCD_PC144 .DB 050H ; NUMBER OF CYLINDERS
|
|||||||
.DW 200H ; SECTOR SIZE IN BYTES
|
.DW 200H ; SECTOR SIZE IN BYTES
|
||||||
.DB 01BH ; GAP LENGTH (R/W)
|
.DB 01BH ; GAP LENGTH (R/W)
|
||||||
.DB 06CH ; GAP LENGTH (FORMAT)
|
.DB 06CH ; GAP LENGTH (FORMAT)
|
||||||
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
|
.DB (13 << 4) | 0 ; SRT = 3ms, HUT = 256ms
|
||||||
.DB 009H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
|
.DB (8 << 1) | 1 ; HLT = 16ms, ND = YES
|
||||||
.DB DOR_BR500 ; DOR
|
.DB DOR_BR500 ; DOR
|
||||||
.DB DCR_BR500 ; DCR
|
.DB DCR_BR500 ; DCR
|
||||||
.IF (($ - FCD_PC144) != FCD_LEN)
|
.IF (($ - FCD_PC144) != FCD_LEN)
|
||||||
@@ -177,8 +205,8 @@ FCD_PC360 .DB 028H ; NUMBER OF CYLINDERS
|
|||||||
.DW 200H ; SECTOR SIZE IN BYTES
|
.DW 200H ; SECTOR SIZE IN BYTES
|
||||||
.DB 02AH ; GAP LENGTH (R/W)
|
.DB 02AH ; GAP LENGTH (R/W)
|
||||||
.DB 050H ; GAP LENGTH (FORMAT)
|
.DB 050H ; GAP LENGTH (FORMAT)
|
||||||
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
|
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
|
||||||
.DB 005H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
|
.DB (4 << 1) | 1 ; HLT = 16ms, ND = YES
|
||||||
.DB DOR_BR250 ; DOR
|
.DB DOR_BR250 ; DOR
|
||||||
.DB DCR_BR250 ; DCR
|
.DB DCR_BR250 ; DCR
|
||||||
.IF (($ - FCD_PC360) != FCD_LEN)
|
.IF (($ - FCD_PC360) != FCD_LEN)
|
||||||
@@ -193,15 +221,15 @@ FCD_PC120 .DB 050H ; NUMBER OF CYLINDERS
|
|||||||
.DW 200H ; SECTOR SIZE IN BYTES
|
.DW 200H ; SECTOR SIZE IN BYTES
|
||||||
.DB 01BH ; GAP LENGTH (R/W)
|
.DB 01BH ; GAP LENGTH (R/W)
|
||||||
.DB 054H ; GAP LENGTH (FORMAT)
|
.DB 054H ; GAP LENGTH (FORMAT)
|
||||||
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
|
.DB (10 << 4) | 0 ; SRT = 6ms, HUT = 256ms
|
||||||
.DB 009H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
|
.DB (8 << 1) | 1 ; HLT = 16ms, ND = YES
|
||||||
.DB DOR_BR500 ; DOR
|
.DB DOR_BR500 ; DOR
|
||||||
.DB DCR_BR500 ; DCR
|
.DB DCR_BR500 ; DCR
|
||||||
.IF (($ - FCD_PC120) != FCD_LEN)
|
.IF (($ - FCD_PC120) != FCD_LEN)
|
||||||
.ECHO "*** FCD_PC120 SIZE ERROR!!! ***\n"
|
.ECHO "*** FCD_PC120 SIZE ERROR!!! ***\n"
|
||||||
.ENDIF
|
.ENDIF
|
||||||
;
|
;
|
||||||
FCD_PC111 .DB 04AH ; NUMBER OF CYLINDERS
|
FCD_PC111 .DB 04DH ; NUMBER OF CYLINDERS
|
||||||
.DB 002H ; NUMBER OF HEADS
|
.DB 002H ; NUMBER OF HEADS
|
||||||
.DB 00FH ; NUMBER OF SECTORS
|
.DB 00FH ; NUMBER OF SECTORS
|
||||||
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
|
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
|
||||||
@@ -209,8 +237,8 @@ FCD_PC111 .DB 04AH ; NUMBER OF CYLINDERS
|
|||||||
.DW 200H ; SECTOR SIZE IN BYTES
|
.DW 200H ; SECTOR SIZE IN BYTES
|
||||||
.DB 01BH ; GAP LENGTH (R/W)
|
.DB 01BH ; GAP LENGTH (R/W)
|
||||||
.DB 054H ; GAP LENGTH (FORMAT)
|
.DB 054H ; GAP LENGTH (FORMAT)
|
||||||
.DB 0DFH ; SRT/HUT: STEP RATE, IBM PS/2 CALLS FOR 3ms, 0DH = 3ms SRT, HEAD UNLOAD TIME
|
.DB (13 << 4) | 0 ; SRT = 3ms, HUT = 256ms
|
||||||
.DB 009H ; HLT/ND: HEAD LOAD TIME, IBM PS/2 CALLS FOR 15ms 08H = 16ms HUT
|
.DB (25 << 1) | 1 ; HLT = 50ms, ND = YES
|
||||||
.DB DOR_BR500 ; DOR
|
.DB DOR_BR500 ; DOR
|
||||||
.DB DCR_BR500 ; DCR
|
.DB DCR_BR500 ; DCR
|
||||||
.IF (($ - FCD_PC111) != FCD_LEN)
|
.IF (($ - FCD_PC111) != FCD_LEN)
|
||||||
@@ -285,23 +313,23 @@ DCR_BR500 .EQU 00H ; 500KBPS
|
|||||||
;
|
;
|
||||||
; FDC COMMAND STRINGS
|
; FDC COMMAND STRINGS
|
||||||
;
|
;
|
||||||
FCS_NOP: .TEXT "NOP$"
|
FCS_NOP .DB "NOP$"
|
||||||
FCS_READ: .TEXT "READ$"
|
FCS_READ .DB "READ$"
|
||||||
FCS_READDEL: .TEXT "READDEL$"
|
FCS_READDEL .DB "READDEL$"
|
||||||
FCS_WRITE: .TEXT "WRITE$"
|
FCS_WRITE .DB "WRITE$"
|
||||||
FCS_WRITEDEL: .TEXT "WRITEDEL$"
|
FCS_WRITEDEL .DB "WRITEDEL$"
|
||||||
FCS_READTRK: .TEXT "READTRK$"
|
FCS_READTRK .DB "READTRK$"
|
||||||
FCS_READID: .TEXT "READID$"
|
FCS_READID .DB "READID$"
|
||||||
FCS_FMTTRK: .TEXT "FMTTRK$"
|
FCS_FMTTRK .DB "FMTTRK$"
|
||||||
FCS_SCANEQ: .TEXT "SCANEQ$"
|
FCS_SCANEQ .DB "SCANEQ$"
|
||||||
FCS_SCANLOEQ: .TEXT "SCANLOEQ$"
|
FCS_SCANLOEQ .DB "SCANLOEQ$"
|
||||||
FCS_SCANHIEQ: .TEXT "SCANHIEQ$"
|
FCS_SCANHIEQ .DB "SCANHIEQ$"
|
||||||
FCS_RECAL: .TEXT "RECAL$"
|
FCS_RECAL .DB "RECAL$"
|
||||||
FCS_SENSEINT: .TEXT "SENSEINT$"
|
FCS_SENSEINT .DB "SENSEINT$"
|
||||||
FCS_SPECIFY: .TEXT "SPECIFY$"
|
FCS_SPECIFY .DB "SPECIFY$"
|
||||||
FCS_DRVSTAT: .TEXT "DRVSTAT$"
|
FCS_DRVSTAT .DB "DRVSTAT$"
|
||||||
FCS_SEEK: .TEXT "SEEK$"
|
FCS_SEEK .DB "SEEK$"
|
||||||
FCS_VERSION: .TEXT "VER$"
|
FCS_VERSION .DB "VER$"
|
||||||
;
|
;
|
||||||
; FDC COMMAND TABLE
|
; FDC COMMAND TABLE
|
||||||
;
|
;
|
||||||
@@ -938,6 +966,27 @@ FC_SETDOR
|
|||||||
#ENDIF
|
#ENDIF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
; SET FST_DCR
|
||||||
|
;
|
||||||
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8))
|
||||||
|
;
|
||||||
|
FC_SETDCR
|
||||||
|
LD (FST_DCR),A
|
||||||
|
OUT (FDC_DCR),A
|
||||||
|
#IF (FDTRACE >= 3)
|
||||||
|
CALL NEWLINE
|
||||||
|
LD DE,FDSTR_DCR
|
||||||
|
CALL WRITESTR
|
||||||
|
LD DE,FDSTR_ARROW
|
||||||
|
CALL WRITESTR
|
||||||
|
CALL PC_SPACE
|
||||||
|
LD A,(FST_DCR)
|
||||||
|
CALL PRTHEXBYTE
|
||||||
|
#ENDIF
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
#ENDIF
|
||||||
|
;
|
||||||
; RESET FDC BY PULSING BIT 7 OF LATCH LOW
|
; RESET FDC BY PULSING BIT 7 OF LATCH LOW
|
||||||
;
|
;
|
||||||
FC_RESETFDC:
|
FC_RESETFDC:
|
||||||
@@ -1004,38 +1053,38 @@ FC_MOTORON:
|
|||||||
#ENDIF
|
#ENDIF
|
||||||
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8))
|
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8))
|
||||||
; SETUP DCR FOR DIDE HARDWARE
|
; SETUP DCR FOR DIDE HARDWARE
|
||||||
LD A,(FCD_DCR)
|
LD A,(FCD_DCR) ; GET NEW DCR VALUE
|
||||||
OUT (FDC_DCR),A
|
CALL FC_SETDCR ; AND IMPLEMENT IT
|
||||||
|
|
||||||
LD HL,FST_DOR ; POINT TO FDC_DOR
|
LD HL,FST_DOR ; POINT TO FDC_DOR
|
||||||
LD A,(HL) ; START WITH CURRENT DOR
|
LD A,(HL) ; START WITH CURRENT DOR
|
||||||
PUSH AF
|
PUSH AF
|
||||||
AND 11111100B ; GET RID OF ANY ACTIVE DS BITS
|
AND 11111100B ; GET RID OF ANY ACTIVE DS BITS
|
||||||
LD C,A ; SAVE IT FOR NOW
|
LD C,A ; SAVE IT FOR NOW
|
||||||
LD A,(FCD_DS) ; NOW GET CURRENT DS
|
LD A,(FCD_DS) ; NOW GET CURRENT DS
|
||||||
LD B,A ; PUT IN B FOR LATER
|
LD B,A ; PUT IN B FOR LATER
|
||||||
OR C ; COMBINE WITH SAVED DOR
|
OR C ; COMBINE WITH SAVED DOR
|
||||||
LD C,A ; RE-SAVE IT
|
LD C,A ; RE-SAVE IT
|
||||||
INC B ; SET UP B AS LOOP COUNTER (DS + 1)
|
INC B ; SET UP B AS LOOP COUNTER (DS + 1)
|
||||||
LD A,00001000B ; STARTING BIT PATTERN FOR MOTOR
|
LD A,00001000B ; STARTING BIT PATTERN FOR MOTOR
|
||||||
FC_MOTORON1:
|
FC_MOTORON1:
|
||||||
RLA ; SHIFT LEFT
|
RLA ; SHIFT LEFT
|
||||||
DJNZ FC_MOTORON1 ; DS TIMES
|
DJNZ FC_MOTORON1 ; DS TIMES
|
||||||
OR C ; COMBINE WITH SAVED
|
OR C ; COMBINE WITH SAVED
|
||||||
LD (HL),A ; COMMIT THE NEW VALUE TO FST_DOR
|
LD (HL),A ; COMMIT THE NEW VALUE TO FST_DOR
|
||||||
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
|
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
|
||||||
|
|
||||||
LD C,A
|
LD C,A
|
||||||
POP AF
|
POP AF
|
||||||
CP C
|
CP C
|
||||||
RET Z ; MOTOR WAS PREVIOUSLY ON
|
RET Z ; MOTOR WAS PREVIOUSLY ON
|
||||||
#ENDIF
|
#ENDIF
|
||||||
|
|
||||||
#IF (FDTRACE >= 3)
|
#IF (FDTRACE >= 3)
|
||||||
LD DE,FDSTR_MOTDELAY
|
LD DE,FDSTR_MOTDELAY
|
||||||
CALL WRITESTR
|
CALL WRITESTR
|
||||||
#ENDIF
|
#ENDIF
|
||||||
CALL LDELAY ; DELAY FOR MOTOR SPINUP IF NOT PREVIOUSLY ON
|
CALL LDELAY ; DELAY FOR MOTOR SPINUP IF NOT PREVIOUSLY ON
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
; SET FST_DOR FOR MOTOR CONTROL OFF
|
; SET FST_DOR FOR MOTOR CONTROL OFF
|
||||||
@@ -1046,7 +1095,7 @@ FC_MOTOROFF:
|
|||||||
CALL NZ,FD_FDCRESET
|
CALL NZ,FD_FDCRESET
|
||||||
|
|
||||||
LD A,DOR_INIT
|
LD A,DOR_INIT
|
||||||
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
|
CALL FC_SETDOR ; OUTPUT TO CONTROLLER
|
||||||
|
|
||||||
#IF (FDTRACE >= 3)
|
#IF (FDTRACE >= 3)
|
||||||
LD DE,FDSTR_MOTOFF
|
LD DE,FDSTR_MOTOFF
|
||||||
@@ -1104,7 +1153,7 @@ FOP_CMD4: ; START OF STATUS LOOP, WAIT FOR FDC TO BE READY FOR BYTE
|
|||||||
CP 0C0H ; HMMMM... RQM=1 & DIO=1, FDC WANTS TO SEND US DATA, UNEXPECTED
|
CP 0C0H ; HMMMM... RQM=1 & DIO=1, FDC WANTS TO SEND US DATA, UNEXPECTED
|
||||||
JR Z,FOP_RES ; GO IMMEDIATELY TO RESULTS???
|
JR Z,FOP_RES ; GO IMMEDIATELY TO RESULTS???
|
||||||
DJNZ FOP_CMD4 ; LOOP TILL COUNTER EXHAUSTED
|
DJNZ FOP_CMD4 ; LOOP TILL COUNTER EXHAUSTED
|
||||||
JR FOP_TOSNDCMD ; COUNTER EXHAUSTED, TIMEOUT / EXIT
|
JP FOP_TOSNDCMD ; COUNTER EXHAUSTED, TIMEOUT / EXIT
|
||||||
|
|
||||||
FOP_CMD6: ; SEND NEXT BYTE
|
FOP_CMD6: ; SEND NEXT BYTE
|
||||||
LD A,(HL) ; POINT TO NEXT BYTE TO SEND
|
LD A,(HL) ; POINT TO NEXT BYTE TO SEND
|
||||||
@@ -1131,6 +1180,10 @@ FOP_X1:
|
|||||||
;
|
;
|
||||||
; RESULTS PHASE
|
; RESULTS PHASE
|
||||||
;
|
;
|
||||||
|
; 1) CHECK FST_RC AND BAIL OUT IF SET???
|
||||||
|
; 2) COMPARE MSR CHECKING TO FXR_NULL (WHICH IS RIGHT?)
|
||||||
|
; 3) WHEN DUMPING FRB, USE THE RECORDED LENGTH???
|
||||||
|
;
|
||||||
FOP_RES:
|
FOP_RES:
|
||||||
LD HL,FRB ; POINT TO RECEIVE BUFFER
|
LD HL,FRB ; POINT TO RECEIVE BUFFER
|
||||||
|
|
||||||
@@ -1292,8 +1345,11 @@ FXR_NOP:
|
|||||||
;
|
;
|
||||||
; NULL EXECUTION, NO DATA TO READ/WRITE (USED BY READID)
|
; NULL EXECUTION, NO DATA TO READ/WRITE (USED BY READID)
|
||||||
;
|
;
|
||||||
|
; DO NOTHING, BUT WAIT FOR FDC READY. LOOP NEEDS TO ALLOW FOR
|
||||||
|
; 2 FULL ROTATIONS OF THE DISK WHICH IS 400ms AT 300RPM
|
||||||
|
;
|
||||||
FXR_NULL:
|
FXR_NULL:
|
||||||
LD BC,1000H ; BC IS LOOP COUNTER, 4096 ITERATIONS
|
LD BC,$4000 ; LOOP COUNTER, $4000 * 25us = 410ms
|
||||||
FXR_NULL1:
|
FXR_NULL1:
|
||||||
CALL DELAY
|
CALL DELAY
|
||||||
IN A,(FDC_MSR) ; GET MSR
|
IN A,(FDC_MSR) ; GET MSR
|
||||||
@@ -1552,6 +1608,7 @@ FDSTR_MOTON .TEXT "\r\nMOTOR ON$"
|
|||||||
FDSTR_MOTOFF .TEXT "\r\nMOTOR OFF$"
|
FDSTR_MOTOFF .TEXT "\r\nMOTOR OFF$"
|
||||||
FDSTR_MOTDELAY .TEXT "\r\nMOTOR DELAY$"
|
FDSTR_MOTDELAY .TEXT "\r\nMOTOR DELAY$"
|
||||||
FDSTR_DOR .TEXT "DOR$"
|
FDSTR_DOR .TEXT "DOR$"
|
||||||
|
FDSTR_DCR .TEXT "DCR$"
|
||||||
FDSTR_RESETFDC .TEXT "\r\nRESET FDC$"
|
FDSTR_RESETFDC .TEXT "\r\nRESET FDC$"
|
||||||
FDSTR_SELECT .TEXT "\r\nSELECT: $"
|
FDSTR_SELECT .TEXT "\r\nSELECT: $"
|
||||||
#ENDIF ; (FDTRACE >= 3)
|
#ENDIF ; (FDTRACE >= 3)
|
||||||
@@ -1582,6 +1639,7 @@ FCP_BUFSIZ .EQU $-FCP_BUF
|
|||||||
;
|
;
|
||||||
FST_RC .DB 00H
|
FST_RC .DB 00H
|
||||||
FST_DOR .DB 00H
|
FST_DOR .DB 00H
|
||||||
|
FST_DCR .DB 00H
|
||||||
;
|
;
|
||||||
; FDC RESULTS BUFFER
|
; FDC RESULTS BUFFER
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ CKS_FD120 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64
|
|||||||
ALS_FD120 .EQU 74 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP)
|
ALS_FD120 .EQU 74 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP)
|
||||||
;
|
;
|
||||||
CKS_FD111 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64
|
CKS_FD111 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64
|
||||||
ALS_FD111 .EQU 69 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP)
|
ALS_FD111 .EQU 72 ; ALS: BLKS / 8 = 570 / 8 = 72 (ROUNDED UP)
|
||||||
;
|
;
|
||||||
#IF (FDMAUTO)
|
#IF (FDMAUTO)
|
||||||
; ASSUME WORST CASE SIZES
|
; ASSUME WORST CASE SIZES
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ KBD_DATA .EQU KBD_IOBASE + $02
|
|||||||
;
|
;
|
||||||
; TIMING CONSTANTS
|
; TIMING CONSTANTS
|
||||||
;
|
;
|
||||||
KBD_WAITTO .EQU 150
|
KBD_WAITTO .EQU 0 ; 0 IS MAX WAIT (256)
|
||||||
;
|
;
|
||||||
; STATUS BITS (FOR KBD_STATUS)
|
; STATUS BITS (FOR KBD_STATUS)
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#DEFINE RMJ 2
|
#DEFINE RMJ 2
|
||||||
#DEFINE RMN 5
|
#DEFINE RMN 5
|
||||||
#DEFINE RUP 0
|
#DEFINE RUP 0
|
||||||
#DEFINE RTP 14
|
#DEFINE RTP 15
|
||||||
#DEFINE BIOSVER "2.5"
|
#DEFINE BIOSVER "2.5"
|
||||||
#DEFINE BIOSBLD "Prerelease Build 14"
|
#DEFINE BIOSBLD "Build 15"
|
||||||
#DEFINE REVISION 412
|
#DEFINE REVISION 412
|
||||||
|
|||||||
Reference in New Issue
Block a user