Browse Source

Added a few single-sided formats to FDU

pull/199/head
Wayne Warthen 5 years ago
parent
commit
ca55193d23
  1. 5
      Doc/FDU.txt
  2. 149
      Source/Apps/FDU/FDU.asm
  3. 5
      Source/Apps/FDU/FDU.txt

5
Doc/FDU.txt

@ -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

149
Source/Apps/FDU/FDU.asm

@ -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)
;===============================================================================

5
Source/Apps/FDU/FDU.txt

@ -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
Loading…
Cancel
Save