mirror of https://github.com/wwarthen/RomWBW.git
10 changed files with 163 additions and 270 deletions
@ -1,173 +0,0 @@ |
|||
; |
|||
;================================================================================================== |
|||
; FLOPPY DISK DRIVER - DATA |
|||
;================================================================================================== |
|||
; |
|||
#IF (FDMEDIA == FDM720) |
|||
#DEFINE FDDPB DPB_FD720 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD720 |
|||
#DEFINE FDALS ALS_FD720 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM144) |
|||
#DEFINE FDDPB DPB_FD144 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD144 |
|||
#DEFINE FDALS ALS_FD144 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM360) |
|||
#DEFINE FDDPB DPB_FD360 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD360 |
|||
#DEFINE FDALS ALS_FD360 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM120) |
|||
#DEFINE FDDPB DPB_FD120 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD120 |
|||
#DEFINE FDALS ALS_FD120 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM111) |
|||
#DEFINE FDDPB DPB_FD111 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD111 |
|||
#DEFINE FDALS ALS_FD111 |
|||
#ENDIF |
|||
; |
|||
; |
|||
; |
|||
.DB DIODEV_FD + 0 |
|||
FDDPH0: .DW 0000, 0000 |
|||
.DW 0000, 0000 |
|||
.DW DIRBF, FDDPB |
|||
.DW FDCSV0, FDALV0 |
|||
.DB DIODEV_FD + 1 |
|||
FDDPH1: .DW 0000, 0000 |
|||
.DW 0000, 0000 |
|||
.DW DIRBF, FDDPB |
|||
.DW FDCSV1, FDALV1 |
|||
; .EXPORT FDDPH0, FDDPH1 |
|||
;; |
|||
;; DISK PARAMETER BLOCKS USED FOR FLOPPY DRIVER |
|||
;; |
|||
;; IBM 720KB 3.5" FLOPPY DRIVE, 80 TRKS, 36 SECS/TRK, 512 BYTES/SEC |
|||
;; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 128 |
|||
;; |
|||
;#IF ((FDMEDIA == FDM720) | (FDMEDIAALT == FDM720)) |
|||
;DPB_FD720: |
|||
; .DW 36 ; SPT: SECTORS PER TRACK |
|||
; .DB 4 ; BSH: BLOCK SHIFT FACTOR |
|||
; .DB 15 ; BLM: BLOCK MASK |
|||
; .DB 0 ; EXM: EXTENT MASK |
|||
; .DW 350 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((720K - 18K OFF) / 2K BLS) - 1 = 350 |
|||
; .DW 127 ; DRM: DIR ENTRIES - 1 = 128 - 1 = 127 |
|||
; .DB 11000000B ; AL0: DIR BLK BIT MAP, FIRST BYTE |
|||
; .DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE |
|||
; .DW 32 ; CKS: DIRECTORY CHECK VECTOR SIZE = 128 / 4 |
|||
; .DW 4 ; OFF: RESERVED TRACKS = 4 TRKS * (512 B/SEC * 36 SEC/TRK) = 18K |
|||
;#ELSE |
|||
;DPB_FD720 .EQU 0 |
|||
;#ENDIF |
|||
CKS_FD720 .EQU 32 ; CKS: DIR ENT / 4 = 128 / 4 = 32 |
|||
ALS_FD720 .EQU 44 ; ALS: BLKS / 8 = 351 / 8 = 44 (ROUNDED UP) |
|||
; .EXPORT DPB_FD720 |
|||
;#ENDIF |
|||
;; |
|||
;; IBM 1.44MB 3.5" FLOPPY DRIVE, 80 TRKS, 72 SECS/TRK, 512 BYTES/SEC |
|||
;; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 256 |
|||
;; |
|||
;#IF ((FDMEDIA == FDM144) | (FDMEDIAALT == FDM144)) |
|||
;DPB_FD144: |
|||
; .DW 72 ; SPT: SECTORS PER TRACK |
|||
; .DB 4 ; BSH: BLOCK SHIFT FACTOR |
|||
; .DB 15 ; BLM: BLOCK MASK |
|||
; .DB 0 ; EXM: EXTENT MASK |
|||
; .DW 710 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((1,440K - 18K OFF) / 2K BLS) - 1 = 710 |
|||
; .DW 255 ; DRM: DIR ENTRIES - 1 = 256 - 1 = 255 |
|||
; .DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE |
|||
; .DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE |
|||
; .DW 64 ; CKS: DIRECTORY CHECK VECTOR SIZE = 256 / 4 |
|||
; .DW 2 ; OFF: RESERVED TRACKS = 2 TRKS * (512 B/SEC * 72 SEC/TRK) = 18K |
|||
;#ELSE |
|||
;DPB_FD144 .EQU 0 |
|||
;#ENDIF |
|||
CKS_FD144 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64 |
|||
ALS_FD144 .EQU 89 ; ALS: BLKS / 8 = 711 / 8 = 89 (ROUNDED UP) |
|||
; .EXPORT DPB_FD144 |
|||
;#ENDIF |
|||
;; |
|||
;; IBM 360KB 5.25" FLOPPY DRIVE, 40 TRKS, 9 SECS/TRK, 512 BYTES/SEC |
|||
;; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 128 |
|||
;; |
|||
;#IF ((FDMEDIA == FDM360) | (FDMEDIAALT == FDM360)) |
|||
;DPB_FD360: |
|||
; .DW 36 ; SPT: SECTORS PER TRACK |
|||
; .DB 4 ; BSH: BLOCK SHIFT FACTOR |
|||
; .DB 15 ; BLM: BLOCK MASK |
|||
; .DB 0 ; EXM: EXTENT MASK |
|||
; .DW 170 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((360K - 18K OFF) / 2K BLS) - 1 = 170 |
|||
; .DW 127 ; DRM: DIR ENTRIES - 1 = 128 - 1 = 127 |
|||
; .DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE |
|||
; .DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE |
|||
; .DW 32 ; CKS: DIRECTORY CHECK VECTOR SIZE = 128 / 4 |
|||
; .DW 4 ; OFF: RESERVED TRACKS = 4 TRKS * (512 B/SEC * 36 SEC/TRK) = 18K |
|||
;#ELSE |
|||
;DPB_FD360 .EQU 0 |
|||
;#ENDIF |
|||
CKS_FD360 .EQU 32 ; CKS: DIR ENT / 4 = 128 / 4 = 32 |
|||
ALS_FD360 .EQU 89 ; ALS: BLKS / 8 = 171 / 8 = 22 (ROUNDED UP) |
|||
; .EXPORT DPB_FD360 |
|||
;#ENDIF |
|||
;; |
|||
;; IBM 1.20MB 5.25" FLOPPY DRIVE, 80 TRKS, 60 SECS/TRK, 512 BYTES/SEC |
|||
;; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 256 |
|||
;; |
|||
;#IF ((FDMEDIA == FDM120) | (FDMEDIAALT == FDM120)) |
|||
;DPB_FD120: |
|||
; .DW 60 ; SPT: SECTORS PER TRACK |
|||
; .DB 4 ; BSH: BLOCK SHIFT FACTOR |
|||
; .DB 15 ; BLM: BLOCK MASK |
|||
; .DB 0 ; EXM: EXTENT MASK |
|||
; .DW 591 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((1,200K - 15K OFF) / 2K BLS) - 1 = 591 |
|||
; .DW 255 ; DRM: DIR ENTRIES - 1 = 256 - 1 = 255 |
|||
; .DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE |
|||
; .DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE |
|||
; .DW 64 ; CKS: DIRECTORY CHECK VECTOR SIZE = 256 / 4 |
|||
; .DW 2 ; OFF: RESERVED TRACKS = 2 TRKS * (512 B/SEC * 60 SEC/TRK) = 15K |
|||
;#ELSE |
|||
;DPB_FD120 .EQU 0 |
|||
;#ENDIF |
|||
CKS_FD120 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64 |
|||
ALS_FD120 .EQU 74 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP) |
|||
; .EXPORT DPB_FD120 |
|||
;#ENDIF |
|||
;; |
|||
;; IBM 1.11MB 8" FLOPPY DRIVE, 74 TRKS, 60 SECS/TRK, 512 BYTES/SEC |
|||
;; BLOCKSIZE (BLS) = 2K, DIRECTORY ENTRIES = 256 |
|||
;; |
|||
;#IF ((FDMEDIA == FDM111) | (FDMEDIAALT == FDM111)) |
|||
;DPB_FD111: |
|||
; .DW 60 ; SPT: SECTORS PER TRACK |
|||
; .DB 4 ; BSH: BLOCK SHIFT FACTOR |
|||
; .DB 15 ; BLM: BLOCK MASK |
|||
; .DB 0 ; EXM: EXTENT MASK |
|||
; .DW 546 ; DSM: TOTAL STORAGE IN BLOCKS - 1 BLK = ((1,110K - 15K OFF) / 2K BLS) - 1 = 546 |
|||
; .DW 255 ; DRM: DIR ENTRIES - 1 = 256 - 1 = 255 |
|||
; .DB 11110000B ; AL0: DIR BLK BIT MAP, FIRST BYTE |
|||
; .DB 00000000B ; AL1: DIR BLK BIT MAP, SECOND BYTE |
|||
; .DW 64 ; CKS: DIRECTORY CHECK VECTOR SIZE = 256 / 4 |
|||
; .DW 2 ; OFF: RESERVED TRACKS = 2 TRKS * (512 B/SEC * 60 SEC/TRK) = 15K |
|||
CKS_FD111 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64 |
|||
ALS_FD111 .EQU 69 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP) |
|||
; .EXPORT DPB_FD111 |
|||
;#ENDIF |
|||
; |
|||
; |
|||
; |
|||
#IF (FDMAUTO) |
|||
; ASSUME WORST CASE SIZES |
|||
FDCSV0: .FILL CKS_FD144 |
|||
FDALV0: .FILL ALS_FD144 |
|||
FDCSV1: .FILL CKS_FD144 |
|||
FDALV1: .FILL ALS_FD144 |
|||
#ELSE |
|||
FDCSV0: .FILL FDCKS |
|||
FDALV0: .FILL FDALS |
|||
FDCSV1: .FILL FDCKS |
|||
FDALV1: .FILL FDALS |
|||
#ENDIF |
|||
@ -0,0 +1,72 @@ |
|||
; |
|||
;================================================================================================== |
|||
; FLOPPY DISK DRIVER - DATA |
|||
;================================================================================================== |
|||
; |
|||
#IF (FDMEDIA == FDM720) |
|||
#DEFINE FDDPB DPB_FD720 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD720 |
|||
#DEFINE FDALS ALS_FD720 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM144) |
|||
#DEFINE FDDPB DPB_FD144 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD144 |
|||
#DEFINE FDALS ALS_FD144 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM360) |
|||
#DEFINE FDDPB DPB_FD360 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD360 |
|||
#DEFINE FDALS ALS_FD360 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM120) |
|||
#DEFINE FDDPB DPB_FD120 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD120 |
|||
#DEFINE FDALS ALS_FD120 |
|||
#ENDIF |
|||
#IF (FDMEDIA == FDM111) |
|||
#DEFINE FDDPB DPB_FD111 ; DPB_FD720 OR DPB_FD144 |
|||
#DEFINE FDCKS CKS_FD111 |
|||
#DEFINE FDALS ALS_FD111 |
|||
#ENDIF |
|||
; |
|||
; |
|||
; |
|||
.DB DIODEV_FD + 0 |
|||
FDDPH0: .DW 0000, 0000 |
|||
.DW 0000, 0000 |
|||
.DW DIRBF, FDDPB |
|||
.DW FDCSV0, FDALV0 |
|||
; |
|||
.DB DIODEV_FD + 1 |
|||
FDDPH1: .DW 0000, 0000 |
|||
.DW 0000, 0000 |
|||
.DW DIRBF, FDDPB |
|||
.DW FDCSV1, FDALV1 |
|||
; |
|||
CKS_FD720 .EQU 32 ; CKS: DIR ENT / 4 = 128 / 4 = 32 |
|||
ALS_FD720 .EQU 44 ; ALS: BLKS / 8 = 351 / 8 = 44 (ROUNDED UP) |
|||
; |
|||
CKS_FD144 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64 |
|||
ALS_FD144 .EQU 89 ; ALS: BLKS / 8 = 711 / 8 = 89 (ROUNDED UP) |
|||
; |
|||
CKS_FD360 .EQU 32 ; CKS: DIR ENT / 4 = 128 / 4 = 32 |
|||
ALS_FD360 .EQU 89 ; ALS: BLKS / 8 = 171 / 8 = 22 (ROUNDED UP) |
|||
; |
|||
CKS_FD120 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64 |
|||
ALS_FD120 .EQU 74 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP) |
|||
; |
|||
CKS_FD111 .EQU 64 ; CKS: DIR ENT / 4 = 256 / 4 = 64 |
|||
ALS_FD111 .EQU 69 ; ALS: BLKS / 8 = 592 / 8 = 74 (ROUNDED UP) |
|||
; |
|||
#IF (FDMAUTO) |
|||
; ASSUME WORST CASE SIZES |
|||
FDCSV0: .FILL CKS_FD144 |
|||
FDALV0: .FILL ALS_FD144 |
|||
FDCSV1: .FILL CKS_FD144 |
|||
FDALV1: .FILL ALS_FD144 |
|||
#ELSE |
|||
FDCSV0: .FILL FDCKS |
|||
FDALV0: .FILL FDALS |
|||
FDCSV1: .FILL FDCKS |
|||
FDALV1: .FILL FDALS |
|||
#ENDIF |
|||
Loading…
Reference in new issue