mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Added a few single-sided formats to FDU
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
; 2020-01-05: V5.4 ADDED SUPPORT FOR DYNO FDC
|
||||
; 2020-04-29: v5.5 ADDED SUPPORT FOR ETCHED PIXELS FDC
|
||||
; 2020-12-12: v5.6 UPDATED SMALLZ80 TO NEW I/O ADDRESSES
|
||||
; 2021-03-24: v5.7 ADDED SOME SINGLE-SIDED FORMATS
|
||||
;
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
@@ -216,8 +217,8 @@ INIT5:
|
||||
XOR A
|
||||
RET
|
||||
|
||||
STR_BANNER .DB "Floppy Disk Utility (FDU) v5.6, 12-Dec-2020$"
|
||||
STR_BANNER2 .DB "Copyright (C) 2020, Wayne Warthen, GNU GPL v3","$"
|
||||
STR_BANNER .DB "Floppy Disk Utility (FDU) v5.7, 24-Mar-2021$"
|
||||
STR_BANNER2 .DB "Copyright (C) 2021, Wayne Warthen, GNU GPL v3","$"
|
||||
STR_HBIOS .DB " [HBIOS]$"
|
||||
STR_UBIOS .DB " [UBIOS]$"
|
||||
;
|
||||
@@ -483,16 +484,16 @@ MM_INFO: .DW MM_DRAW
|
||||
;
|
||||
STR_MAINMENU:
|
||||
.TEXT "=======================<< FDU MAIN MENU >>======================\r\n"
|
||||
; .TEXT "(S)ETUP: UNIT=XX MEDIA=XXXXXX MODE=XXXXXXXXXX TRACE=XX\r\n"
|
||||
; .TEXT "(S)ETUP: UNIT=XX MEDIA=XXXXXXXXXXXXX MODE=XXXXXXXXXX TRACE=XX\r\n"
|
||||
.TEXT "(S)ETUP: UNIT="
|
||||
MV_UNIT .TEXT "XX"
|
||||
.TEXT " MEDIA="
|
||||
MV_MED .TEXT "XXXXXX"
|
||||
.TEXT " MODE="
|
||||
MV_MODE .TEXT "XXXXXXXXXX"
|
||||
.TEXT " TRACE="
|
||||
MV_TRC .TEXT "XX"
|
||||
.TEXT "\r\n"
|
||||
MV_MED .TEXT "XXXXXXXXXXXXX"
|
||||
.TEXT " MODE="
|
||||
MV_MODE .TEXT "XXXXXXXXXX"
|
||||
.TEXT " TRACE="
|
||||
MV_TRC .TEXT "XX"
|
||||
.TEXT "\r\n"
|
||||
.TEXT "----------------------------------------------------------------\r\n"
|
||||
.TEXT "(R)EAD (W)RITE (F)ORMAT (V)ERIFY\r\n"
|
||||
.TEXT "(I)NIT BUFFER (D)UMP BUFFER FDC (C)MDS E(X)IT\r\n"
|
||||
@@ -1071,21 +1072,29 @@ MMOP_RANDOM1: ; GENERATE RANDOM TRACK
|
||||
JP P,MMOP_RANDOM1
|
||||
LD (DCD_TRACK),A
|
||||
|
||||
; GENERATE RANDOM HEAD
|
||||
MMOP_RANDOM2: ; GENERATE RANDOM HEAD
|
||||
;OR A
|
||||
;CALL RNDBYTE
|
||||
;AND 01H ; JUST USE LOW ORDER BIT
|
||||
;LD (DCD_HEAD),A
|
||||
LD A,(MDB_NUMHD)
|
||||
LD C,A
|
||||
CALL RNDBYTE
|
||||
AND 01H ; JUST USE LOW ORDER BIT
|
||||
AND 01H ; USE 1 BIT FOR UP TO 2 HEADS
|
||||
CP C
|
||||
JP P,MMOP_RANDOM2
|
||||
LD (DCD_HEAD),A
|
||||
|
||||
MMOP_RANDOM2: ; GENERATE RANDOM SECTOR
|
||||
MMOP_RANDOM3: ; GENERATE RANDOM SECTOR
|
||||
LD A,(MDB_EOT)
|
||||
LD C,A
|
||||
INC C ; ONE MORE THEN MAX SECTOR
|
||||
CALL RNDBYTE
|
||||
AND 1FH ; USE 5 BITS FOR UP TO 32 SECTORS
|
||||
CP C ; MAX SECTOR NUM IS 9 + 1 = 0AH
|
||||
JP P,MMOP_RANDOM2
|
||||
JP P,MMOP_RANDOM3
|
||||
CP 00H ; SECTOR NUM STARTS AT 1, DON'T ALLOW ZERO
|
||||
JP Z,MMOP_RANDOM2
|
||||
JP Z,MMOP_RANDOM3
|
||||
LD (DCD_SECTOR),A
|
||||
|
||||
CALL DIO_RUN
|
||||
@@ -1601,6 +1610,10 @@ MT_PC320 .EQU 2
|
||||
MT_PC360 .EQU 3
|
||||
MT_PC120 .EQU 4
|
||||
MT_PC111 .EQU 5
|
||||
MT_PC160 .EQU 6
|
||||
MT_PC180 .EQU 7
|
||||
MT_PC320SS .EQU 8
|
||||
MT_PC360SS .EQU 9
|
||||
;
|
||||
MIT: ; MEDIA INDEX TABLE
|
||||
.DW MDB_PC720
|
||||
@@ -1609,6 +1622,10 @@ MIT: ; MEDIA INDEX TABLE
|
||||
.DW MDB_PC360
|
||||
.DW MDB_PC120
|
||||
.DW MDB_PC111
|
||||
.DW MDB_PC160
|
||||
.DW MDB_PC180
|
||||
.DW MDB_PC320SS
|
||||
.DW MDB_PC360SS
|
||||
MIT_ENTCNT .EQU (($ - MIT) / 2)
|
||||
;
|
||||
; Specify Command:
|
||||
@@ -1660,7 +1677,7 @@ FCB_PC720 .DB 009H ; SECTOR COUNT
|
||||
.IF (($ - MDB_PC720) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC720 .TEXT "720KB $"
|
||||
DTL_PC720 .TEXT "720KB DS/DD $"
|
||||
DTS_PC720 .TEXT "3.5\" 720KB - 9 SECTORS, 2 SIDES, 80 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
MDB_PC144 .DW DTL_PC144 ; ADDRESS OF MEDIA LABEL
|
||||
@@ -1683,7 +1700,7 @@ FCB_PC144 .DB 012H ; SECTOR COUNT
|
||||
.IF (($ - MDB_PC144) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC144 .TEXT "1.44MB$"
|
||||
DTL_PC144 .TEXT "1.44MB DS/HD $"
|
||||
DTS_PC144 .TEXT "3.5\" 1.44MB - 18 SECTORS, 2 SIDES, 80 TRACKS, HIGH DENSITY$"
|
||||
;
|
||||
MDB_PC320 .DW DTL_PC320 ; ADDRESS OF MEDIA LABEL
|
||||
@@ -1706,7 +1723,7 @@ FCB_PC320 .DB 008H ; SECTOR COUNT
|
||||
.IF (($ - MDB_PC320) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC320 .TEXT "320KB $"
|
||||
DTL_PC320 .TEXT "320KB DS/DD $"
|
||||
DTS_PC320 .TEXT "5.25\" 320KB - 8 SECTORS, 2 SIDES, 40 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
MDB_PC360 .DW DTL_PC360 ; ADDRESS OF MEDIA LABEL
|
||||
@@ -1729,7 +1746,7 @@ FCB_PC360 .DB 009H ; SECTOR COUNT
|
||||
.IF (($ - MDB_PC360) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC360 .TEXT "360KB $"
|
||||
DTL_PC360 .TEXT "360KB DS/DD $"
|
||||
DTS_PC360 .TEXT "5.25\" 360KB - 9 SECTORS, 2 SIDES, 40 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
MDB_PC120 .DW DTL_PC120 ; ADDRESS OF MEDIA LABEL
|
||||
@@ -1752,7 +1769,7 @@ FCB_PC120 .DB 00FH ; SECTOR COUNT
|
||||
.IF (($ - MDB_PC120) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC120 .TEXT "1.2MB $"
|
||||
DTL_PC120 .TEXT "1.2MB DS/HD $"
|
||||
DTS_PC120 .TEXT "5.25\" 1.2MB - 15 SECTORS, 2 SIDES, 80 TRACKS, HIGH DENSITY$"
|
||||
;
|
||||
MDB_PC111 .DW DTL_PC111 ; ADDRESS OF MEDIA LABEL
|
||||
@@ -1775,9 +1792,101 @@ FCB_PC111 .DB 00FH ; SECTOR COUNT
|
||||
.IF (($ - MDB_PC111) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC111 .TEXT "1.11MB$"
|
||||
DTL_PC111 .TEXT "1.11MB DS/DD $"
|
||||
DTS_PC111 .TEXT "8\" 1.11MB - 15 SECTORS, 2 SIDES, 77 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
MDB_PC160 .DW DTL_PC160 ; ADDRESS OF MEDIA LABEL
|
||||
.DW DTS_PC160 ; ADDRESS OF MEDIA DESCRIPTION
|
||||
.DB 028H ; NUMBER OF CYLINDERS
|
||||
.DB 001H ; NUMBER OF HEADS
|
||||
.DB 008H ; NUMBER OF SECTORS
|
||||
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
|
||||
FCB_PC160 .DB 008H ; SECTOR COUNT
|
||||
.DW 200H ; SECTOR SIZE IN BYTES
|
||||
.DB 02AH ; GAP LENGTH (R/W)
|
||||
.DB 050H ; GAP LENGTH (FORMAT)
|
||||
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
|
||||
.DB 4 ; HLT = 16ms
|
||||
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DCR_BR250 ; CONTROL REGISTER VALUE
|
||||
.IF (($ - MDB_PC160) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC160 .TEXT "160KB SS/DD $"
|
||||
DTS_PC160 .TEXT "5.25\" 160KB - 8 SECTORS, 1 SIDE, 40 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
MDB_PC180 .DW DTL_PC180 ; ADDRESS OF MEDIA LABEL
|
||||
.DW DTS_PC180 ; ADDRESS OF MEDIA DESCRIPTION
|
||||
.DB 028H ; NUMBER OF CYLINDERS
|
||||
.DB 001H ; NUMBER OF HEADS
|
||||
.DB 009H ; NUMBER OF SECTORS
|
||||
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
|
||||
FCB_PC180 .DB 009H ; SECTOR COUNT
|
||||
.DW 200H ; SECTOR SIZE IN BYTES
|
||||
.DB 02AH ; GAP LENGTH (R/W)
|
||||
.DB 050H ; GAP LENGTH (FORMAT)
|
||||
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
|
||||
.DB 4 ; HLT = 16ms
|
||||
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DCR_BR250 ; CONTROL REGISTER VALUE
|
||||
.IF (($ - MDB_PC180) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC180 .TEXT "180KB SS/DD $"
|
||||
DTS_PC180 .TEXT "5.25\" 180KB - 9 SECTORS, 1 SIDE, 40 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
MDB_PC320SS .DW DTL_PC320SS ; ADDRESS OF MEDIA LABEL
|
||||
.DW DTS_PC320SS ; ADDRESS OF MEDIA DESCRIPTION
|
||||
.DB 050H ; NUMBER OF CYLINDERS
|
||||
.DB 001H ; NUMBER OF HEADS
|
||||
.DB 008H ; NUMBER OF SECTORS
|
||||
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
|
||||
FCB_PC320SS .DB 008H ; SECTOR COUNT
|
||||
.DW 200H ; SECTOR SIZE IN BYTES
|
||||
.DB 02AH ; GAP LENGTH (R/W)
|
||||
.DB 050H ; GAP LENGTH (FORMAT)
|
||||
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
|
||||
.DB 4 ; HLT = 16ms
|
||||
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DCR_BR250 ; CONTROL REGISTER VALUE
|
||||
.IF (($ - MDB_PC320SS) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC320SS .TEXT "320KB SS/DD $"
|
||||
DTS_PC320SS .TEXT "5.25\" 320KB - 8 SECTORS, 1 SIDE, 80 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
MDB_PC360SS .DW DTL_PC360SS ; ADDRESS OF MEDIA LABEL
|
||||
.DW DTS_PC360SS ; ADDRESS OF MEDIA DESCRIPTION
|
||||
.DB 050H ; NUMBER OF CYLINDERS
|
||||
.DB 001H ; NUMBER OF HEADS
|
||||
.DB 009H ; NUMBER OF SECTORS
|
||||
.DB 001H ; START OF TRACK (ID OF FIRST SECTOR, USUALLY 1)
|
||||
FCB_PC360SS .DB 009H ; SECTOR COUNT
|
||||
.DW 200H ; SECTOR SIZE IN BYTES
|
||||
.DB 02AH ; GAP LENGTH (R/W)
|
||||
.DB 050H ; GAP LENGTH (FORMAT)
|
||||
.DB (13 << 4) | 0 ; SRT = 6ms, HUT = 512ms
|
||||
.DB 4 ; HLT = 16ms
|
||||
.DB DORA_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORB_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORC_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DORD_BR250 ; OPERATIONS REGISTER VALUE
|
||||
.DB DCR_BR250 ; CONTROL REGISTER VALUE
|
||||
.IF (($ - MDB_PC360SS) != MDB_LEN)
|
||||
.ECHO "*** FCB SIZE ERROR!!! ***\n"
|
||||
.ENDIF
|
||||
DTL_PC360SS .TEXT "360KB SS/DD $"
|
||||
DTS_PC360SS .TEXT "5.25\" 360KB - 9 SECTORS, 1 SIDE, 80 TRACKS, DOUBLE DENSITY$"
|
||||
;
|
||||
;===============================================================================
|
||||
; FLOPPY DISK CONTROL MENU (DIRECT MENU INTERFACE TO FDC & RELATED HARDWARE)
|
||||
;===============================================================================
|
||||
|
||||
@@ -517,4 +517,7 @@ WW 4/29/2020: v5.5
|
||||
- Added support for Etched Pixels FDC
|
||||
|
||||
WW 12/12/2020: v5.6
|
||||
- Updated SmallZ80 support for new I/O map
|
||||
- Updated SmallZ80 support for new I/O map
|
||||
|
||||
WW 3/24/2021: v5.7
|
||||
- Added support for a few single-sided formats
|
||||
Reference in New Issue
Block a user