diff --git a/branches/wbw/Source/cbios.asm b/branches/wbw/Source/cbios.asm index d7cd2569..2a419d7f 100644 --- a/branches/wbw/Source/cbios.asm +++ b/branches/wbw/Source/cbios.asm @@ -33,7 +33,7 @@ WBOOTE JP WBOOT ; #1 - WARM START JP CONOUT ; #4 - CONSOLE CHARACTER OUT JP LIST ; #5 - LIST CHARACTER OUT JP PUNCH ; #6 - PUNCH CHARACTER OUT - JP READER ; #7 - READER CHARACTER OUT + JP READER ; #7 - READER CHARACTER OUT JP HOME ; #8 - MOVE HEAD TO HOME POSITION JP SELDSK ; #9 - SELECT DISK JP SETTRK ; #10 - SET TRACK NUMBER @@ -721,14 +721,6 @@ UNA_INI: LD A,(HL) ; GET IT LD (UNACNT),A ; SAVE IT -; CALL NEWLINE ; *DEBUG* -; CALL PRTHEXBYTE ; *DEBUG* -; CALL PC_SPACE ; *DEBUG* -; CALL PRTHEXWORD ; *DEBUG* -; CALL PC_SPACE ; *DEBUG* -; LD BC,(UNASPT) ; *DEBUG* -; CALL PRTHEXWORD ; *DEBUG* - RET ; ;__________________________________________________________________________________________________ @@ -1522,7 +1514,7 @@ MDDPH0 .DW 0000,0000 .DW DIRBF,DPB_ROM .DW MDCSV0,MDALV0 ; -CKS_ROM .EQU 0 ; CKS: 0 FOR NON-REMOVABLE MEDIA +CKS_ROM .EQU 0 ; CKS: 0 FOR NON-REMOVABLE MEDIA ALS_ROM .EQU ((ROMBLKS + 7) / 8) ; ALS: BLKS / 8 (ROUNDED UP) ; ; MEMORY DISK 01: RAM DISK @@ -1535,7 +1527,7 @@ MDDPH1 .DW 0000,0000 .DW DIRBF,DPB_RAM .DW MDCSV1,MDALV1 ; -CKS_RAM .EQU 0 ; CKS: 0 FOR NON-REMOVABLE MEDIA +CKS_RAM .EQU 0 ; CKS: 0 FOR NON-REMOVABLE MEDIA ALS_RAM .EQU ((RAMBLKS + 7) / 8) ; ALS: BLKS / 8 (ROUNDED UP) ; MDCSV0: .FILL 0 ; NO DIRECTORY CHECKSUM, NON-REMOVABLE DRIVE @@ -1544,63 +1536,63 @@ MDCSV1: .FILL 0 ; NO DIRECTORY CHECKSUM, NON-REMOVABLE DRIVE MDALV1: .FILL ALS_RAM,00H ; MAX OF 256 DATA BLOCKS ; #IF (FDENABLE) -ORG_FD_DATA .EQU $ - #INCLUDE "fd_data.asm" -SIZ_FD_DATA .EQU $ - ORG_FD_DATA - .ECHO "FD_DATA occupies " - .ECHO SIZ_FD_DATA +ORG_FD_DPH .EQU $ + #INCLUDE "fd_dph.asm" +SIZ_FD_DPH .EQU $ - ORG_FD_DPH + .ECHO "FD DPH occupies " + .ECHO SIZ_FD_DPH .ECHO " bytes.\n" #ENDIF #IF (IDEENABLE) -ORG_IDE_DATA .EQU $ - #INCLUDE "ide_data.asm" -SIZ_IDE_DATA .EQU $ - ORG_IDE_DATA - .ECHO "IDE_DATA occupies " - .ECHO SIZ_IDE_DATA +ORG_IDE_DPH .EQU $ + #INCLUDE "ide_dph.asm" +SIZ_IDE_DPH .EQU $ - ORG_IDE_DPH + .ECHO "IDE DPH occupies " + .ECHO SIZ_IDE_DPH .ECHO " bytes.\n" #ENDIF #IF (PPIDEENABLE) -ORG_PPIDE_DATA .EQU $ - #INCLUDE "ppide_data.asm" -SIZ_PPIDE_DATA .EQU $ - ORG_PPIDE_DATA - .ECHO "PPIDE_DATA occupies " - .ECHO SIZ_PPIDE_DATA +ORG_PPIDE_DPH .EQU $ + #INCLUDE "ppide_dph.asm" +SIZ_PPIDE_DPH .EQU $ - ORG_PPIDE_DPH + .ECHO "PPIDE DPH occupies " + .ECHO SIZ_PPIDE_DPH .ECHO " bytes.\n" #ENDIF #IF (SDENABLE) -ORG_SD_DATA .EQU $ - #INCLUDE "sd_data.asm" -SIZ_SD_DATA .EQU $ - ORG_SD_DATA - .ECHO "SD_DATA occupies " - .ECHO SIZ_SD_DATA +ORG_SD_DPH .EQU $ + #INCLUDE "sd_dph.asm" +SIZ_SD_DPH .EQU $ - ORG_SD_DPH + .ECHO "SD DPH occupies " + .ECHO SIZ_SD_DPH .ECHO " bytes.\n" #ENDIF #IF (PRPENABLE & PRPSDENABLE) -ORG_PRPSD_DATA .EQU $ - #INCLUDE "prp_data.asm" -SIZ_PRPSD_DATA .EQU $ - ORG_PRPSD_DATA - .ECHO "PRPSD_DATA occupies " - .ECHO SIZ_PRPSD_DATA +ORG_PRPSD_DPH .EQU $ + #INCLUDE "prp_dph.asm" +SIZ_PRPSD_DPH .EQU $ - ORG_PRPSD_DPH + .ECHO "PRPSD DPH occupies " + .ECHO SIZ_PRPSD_DPH .ECHO " bytes.\n" #ENDIF #IF (PPPENABLE & PPPSDENABLE) -ORG_PPPSD_DATA .EQU $ - #INCLUDE "ppp_data.asm" -SIZ_PPPSD_DATA .EQU $ - ORG_PPPSD_DATA - .ECHO "PPPSD_DATA occupies " - .ECHO SIZ_PPPSD_DATA +ORG_PPPSD_DPH .EQU $ + #INCLUDE "ppp_dph.asm" +SIZ_PPPSD_DPH .EQU $ - ORG_PPPSD_DPH + .ECHO "PPPSD DPH occupies " + .ECHO SIZ_PPPSD_DPH .ECHO " bytes.\n" #ENDIF #IF (HDSKENABLE) -ORG_HDSK_DATA .EQU $ - #INCLUDE "hdsk_data.asm" -SIZ_HDSK_DATA .EQU $ - ORG_HDSK_DATA - .ECHO "HDSK_DATA occupies " - .ECHO SIZ_HDSK_DATA +ORG_HDSK_DPH .EQU $ + #INCLUDE "hdsk_dph.asm" +SIZ_HDSK_DPH .EQU $ - ORG_HDSK_DPH + .ECHO "HDSK DPH occupies " + .ECHO SIZ_HDSK_DPH .ECHO " bytes.\n" #ENDIF ; @@ -1968,25 +1960,25 @@ LD_CRT .SET CIODEV_PPPCON CIO_MAP: ; ; CONSOLE - .DB LD_TTY ; CON:=TTY: (IOBYTE XXXXXX00) - .DB LD_CRT ; CON:=CRT: (IOBYTE XXXXXX01) - .DB LD_BAT ; CON:=BAT: (IOBYTE XXXXXX10) - .DB LD_UC1 ; CON:=UC1: (IOBYTE XXXXXX11) + .DB LD_TTY ; CON:=TTY: (IOBYTE XXXXXX00) + .DB LD_CRT ; CON:=CRT: (IOBYTE XXXXXX01) + .DB LD_BAT ; CON:=BAT: (IOBYTE XXXXXX10) + .DB LD_UC1 ; CON:=UC1: (IOBYTE XXXXXX11) ; READER - .DB LD_TTY ; RDR:=TTY: (IOBYTE XXXX00XX) - .DB LD_PTR ; RDR:=PTR: (IOBYTE XXXX01XX) - .DB LD_UR1 ; RDR:=UR1: (IOBYTE XXXX10XX) - .DB LD_UR2 ; RDR:=UR2: (IOBYTE XXXX11XX) + .DB LD_TTY ; RDR:=TTY: (IOBYTE XXXX00XX) + .DB LD_PTR ; RDR:=PTR: (IOBYTE XXXX01XX) + .DB LD_UR1 ; RDR:=UR1: (IOBYTE XXXX10XX) + .DB LD_UR2 ; RDR:=UR2: (IOBYTE XXXX11XX) ; PUNCH - .DB LD_TTY ; PUN:=TTY: (IOBYTE XX00XXXX) - .DB LD_PTP ; PUN:=PTP: (IOBYTE XX01XXXX) - .DB LD_UP1 ; PUN:=UP1: (IOBYTE XX10XXXX) - .DB LD_UP2 ; PUN:=UP2: (IOBYTE XX11XXXX) + .DB LD_TTY ; PUN:=TTY: (IOBYTE XX00XXXX) + .DB LD_PTP ; PUN:=PTP: (IOBYTE XX01XXXX) + .DB LD_UP1 ; PUN:=UP1: (IOBYTE XX10XXXX) + .DB LD_UP2 ; PUN:=UP2: (IOBYTE XX11XXXX) ; LIST - .DB LD_TTY ; LST:=TTY: (IOBYTE 00XXXXXX) - .DB LD_CRT ; LST:=CRT: (IOBYTE 01XXXXXX) - .DB LD_LPT ; LST:=LPT: (IOBYTE 10XXXXXX) - .DB LD_UL1 ; LST:=UL1: (IOBYTE 11XXXXXX) + .DB LD_TTY ; LST:=TTY: (IOBYTE 00XXXXXX) + .DB LD_CRT ; LST:=CRT: (IOBYTE 01XXXXXX) + .DB LD_LPT ; LST:=LPT: (IOBYTE 10XXXXXX) + .DB LD_UL1 ; LST:=UL1: (IOBYTE 11XXXXXX) ; ;================================================================================================== ; SECTOR AND CONFIG BUFFER; @@ -1998,10 +1990,10 @@ CIO_MAP: ; A) SYSTEM CONFIGURATION DATA BUFFER ; B) CBIOS INIT CODE THAT CAN BE DISCARDED AFTER INIT ; - .FILL 0FD00H - $,00H ; MAKE SURE SEC/CFGBUF STARTS AT FD00 + .FILL 0FD00H - $,00H ; MAKE SURE SEC/CFGBUF STARTS AT FD00 ; -SECBUF: ; START OF 512 BYTE DISK SECTOR -CFGBUF: ; START OF 256 BYTE CONFIG BUFFER +SECBUF: ; START OF 512 BYTE DISK SECTOR +CFGBUF: ; START OF 256 BYTE CONFIG BUFFER .FILL 256,0 ; INIT: @@ -2028,13 +2020,13 @@ INIT: LD (IOBYTE),A ; STORE IT #IF ((PLATFORM != PLT_N8) & (PLATFORM != PLT_S100)) - IN A,(RTC) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER - BIT 6,A ; BIT 6 HAS CONFIG JUMPER STATE - LD A,DEFIOBYTE ; ASSUME WE WANT DEFAULT IOBYTE VALUE - JR NZ,INIT1 ; IF BIT6=1, NOT SHORTED, CONTINUE WITH DEFAULT - LD A,ALTIOBYTE ; LOAD ALT IOBYTE VALUE + IN A,(RTC) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER + BIT 6,A ; BIT 6 HAS CONFIG JUMPER STATE + LD A,DEFIOBYTE ; ASSUME WE WANT DEFAULT IOBYTE VALUE + JR NZ,INIT1 ; IF BIT6=1, NOT SHORTED, CONTINUE WITH DEFAULT + LD A,ALTIOBYTE ; LOAD ALT IOBYTE VALUE INIT1: - LD (IOBYTE),A ; SET THE ACTIVE IOBYTE + LD (IOBYTE),A ; SET THE ACTIVE IOBYTE #ENDIF ; DEFAULT DRIVE @@ -2110,7 +2102,7 @@ DEFDRV1: JR NZ,DEFDRV1 ; NOPE, NEXT DRIVE DEFDRV2: - ; WE HAVE A MATCH MATCHED, RECORD NEW DEFAULT DRIVE + ; WE HAVE A MATCH, RECORD NEW DEFAULT DRIVE LD A,C ; C HAS MATCHING DRIVE, MOVE TO A LD (DEFDRIVE),A ; SAVE IT ; diff --git a/branches/wbw/Source/fd_data.asm b/branches/wbw/Source/fd_data.asm deleted file mode 100644 index f1ddff25..00000000 --- a/branches/wbw/Source/fd_data.asm +++ /dev/null @@ -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 diff --git a/branches/wbw/Source/fd_dph.asm b/branches/wbw/Source/fd_dph.asm new file mode 100644 index 00000000..7cab05ba --- /dev/null +++ b/branches/wbw/Source/fd_dph.asm @@ -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 diff --git a/branches/wbw/Source/hdsk_data.asm b/branches/wbw/Source/hdsk_dph.asm similarity index 88% rename from branches/wbw/Source/hdsk_data.asm rename to branches/wbw/Source/hdsk_dph.asm index 2e52e51c..12f5e267 100644 --- a/branches/wbw/Source/hdsk_data.asm +++ b/branches/wbw/Source/hdsk_dph.asm @@ -7,10 +7,10 @@ HDSK_SLICETRKS .EQU 65 ; TRACKS PER SLICE HDSK_TRKSIZE .EQU 128 ; SIZE OF TRACK (IN KB) HDSK_SLICESIZE .EQU ((HDSK_SLICETRKS * HDSK_TRKSIZE) + 1023) / 1024 ; SIZE OF EACH SLICE (IN MB) HDSK_NUMSLICES .EQU HDSKCAPACITY / HDSK_SLICESIZE ; TOTAL SLICES IN DEVICE -HDSK0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR UNIT 0 -HDSK1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR UNIT 1 -HDSK2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR UNIT 0 -HDSK3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR UNIT 1 +HDSK0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR LOGICAL UNIT 0 +HDSK1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR LOGICAL UNIT 1 +HDSK2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR LOGICAL UNIT 2 +HDSK3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR LOGICAL UNIT 3 ; .DB DIODEV_HDSK + 0 HDSKDPH0 .DW 0000,0000 diff --git a/branches/wbw/Source/ide_data.asm b/branches/wbw/Source/ide_dph.asm similarity index 87% rename from branches/wbw/Source/ide_data.asm rename to branches/wbw/Source/ide_dph.asm index d4c20c90..895909ac 100644 --- a/branches/wbw/Source/ide_data.asm +++ b/branches/wbw/Source/ide_dph.asm @@ -7,10 +7,10 @@ IDE_SLICETRKS .EQU 65 ; TRACKS PER SLICE IDE_TRKSIZE .EQU 128 ; SIZE OF TRACK (IN KB) IDE_SLICESIZE .EQU ((IDE_SLICETRKS * IDE_TRKSIZE) + 1023) / 1024 ; SIZE OF EACH SLICE (IN MB) IDE_NUMSLICES .EQU IDECAPACITY / IDE_SLICESIZE ; TOTAL SLICES IN DEVICE -IDE0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR UNIT 0 -IDE1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR UNIT 1 -IDE2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR UNIT 0 -IDE3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR UNIT 1 +IDE0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR LOGICAL UNIT 0 +IDE1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR LOGICAL UNIT 1 +IDE2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR LOGICAL UNIT 2 +IDE3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR LOGICAL UNIT 3 ; .DB DIODEV_IDE + 0 IDEDPH0 .DW 0000,0000 diff --git a/branches/wbw/Source/ppide_data.asm b/branches/wbw/Source/ppide_dph.asm similarity index 85% rename from branches/wbw/Source/ppide_data.asm rename to branches/wbw/Source/ppide_dph.asm index 2fb4c2b3..f4b5e534 100644 --- a/branches/wbw/Source/ppide_data.asm +++ b/branches/wbw/Source/ppide_dph.asm @@ -6,11 +6,11 @@ PPIDE_SLICETRKS .EQU 65 ; TRACKS PER SLICE PPIDE_TRKSIZE .EQU 128 ; SIZE OF TRACK (IN KB) PPIDE_SLICESIZE .EQU ((PPIDE_SLICETRKS * PPIDE_TRKSIZE) + 1023) / 1024 ; SIZE OF EACH SLICE (IN MB) -PPIDE_NUMSLICES .EQU PPIDECAPACITY / PPIDE_SLICESIZE ; TOTAL SLICES IN DEVICE -PPIDE0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR UNIT 0 -PPIDE1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR UNIT 1 -PPIDE2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR UNIT 0 -PPIDE3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR UNIT 1 +PPIDE_NUMSLICES .EQU PPIDECAPACITY / PPIDE_SLICESIZE ; TOTAL SLICES IN DEVICE +PPIDE0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR LOGICAL UNIT 0 +PPIDE1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR LOGICAL UNIT 1 +PPIDE2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR LOGICAL UNIT 2 +PPIDE3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR LOGICAL UNIT 3 ; .DB DIODEV_PPIDE + 0 PPIDEDPH0 .DW 0000,0000 diff --git a/branches/wbw/Source/ppp.asm b/branches/wbw/Source/ppp.asm index 9d4cb29a..3d8937a6 100644 --- a/branches/wbw/Source/ppp.asm +++ b/branches/wbw/Source/ppp.asm @@ -350,10 +350,12 @@ PPPSD_PRT: RET Z #ENDIF PUSH AF + PUSH DE ; SAVE PTR TO FUNC STRING CALL NEWLINE LD DE,PPPSTR_PREFIX ; PRINT DRIVER PREFIX CALL WRITESTR CALL PC_SPACE + POP DE ; RECOVER PTR TO FUNC STRING CALL WRITESTR ; PRINT FUNCTION CALL PPPSD_PRTBLK ; PRINT BLOCK NUMBER CALL PC_SPACE diff --git a/branches/wbw/Source/ppp_data.asm b/branches/wbw/Source/ppp_dph.asm similarity index 88% rename from branches/wbw/Source/ppp_data.asm rename to branches/wbw/Source/ppp_dph.asm index 94e0ccc1..ef6cc45d 100644 --- a/branches/wbw/Source/ppp_data.asm +++ b/branches/wbw/Source/ppp_dph.asm @@ -7,10 +7,10 @@ PPPSD_SLICETRKS .EQU 65 ; TRACKS PER SLICE PPPSD_TRKSIZE .EQU 128 ; SIZE OF TRACK (IN KB) PPPSD_SLICESIZE .EQU ((PPPSD_SLICETRKS * PPPSD_TRKSIZE) + 1023) / 1024 ; SIZE OF EACH SLICE (IN MB) PPPSD_NUMSLICES .EQU PPPSDCAPACITY / PPPSD_SLICESIZE ; TOTAL SLICES IN DEVICE -PPPSD0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR UNIT 0 -PPPSD1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR UNIT 1 -PPPSD2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR UNIT 0 -PPPSD3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR UNIT 1 +PPPSD0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR LOGICAL UNIT 0 +PPPSD1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR LOGICAL UNIT 1 +PPPSD2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR LOGICAL UNIT 2 +PPPSD3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR LOGICAL UNIT 3 ; .DB DIODEV_PPPSD + 0 PPPSDDPH0 .DW 0000,0000 diff --git a/branches/wbw/Source/prp_data.asm b/branches/wbw/Source/prp_dph.asm similarity index 88% rename from branches/wbw/Source/prp_data.asm rename to branches/wbw/Source/prp_dph.asm index 34041c1c..61b2fa73 100644 --- a/branches/wbw/Source/prp_data.asm +++ b/branches/wbw/Source/prp_dph.asm @@ -7,10 +7,10 @@ PRPSD_SLICETRKS .EQU 65 ; TRACKS PER SLICE PRPSD_TRKSIZE .EQU 128 ; SIZE OF TRACK (IN KB) PRPSD_SLICESIZE .EQU ((PRPSD_SLICETRKS * PRPSD_TRKSIZE) + 1023) / 1024 ; SIZE OF EACH SLICE (IN MB) PRPSD_NUMSLICES .EQU PRPSDCAPACITY / PRPSD_SLICESIZE ; TOTAL SLICES IN DEVICE -PRPSD0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR UNIT 0 -PRPSD1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR UNIT 1 -PRPSD2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR UNIT 0 -PRPSD3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR UNIT 1 +PRPSD0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR LOGICAL UNIT 0 +PRPSD1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR LOGICAL UNIT 1 +PRPSD2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR LOGICAL UNIT 2 +PRPSD3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR LOGICAL UNIT 3 ; .DB DIODEV_PRPSD + 0 PRPSDDPH0 .DW 0000,0000 diff --git a/branches/wbw/Source/sd_data.asm b/branches/wbw/Source/sd_dph.asm similarity index 87% rename from branches/wbw/Source/sd_data.asm rename to branches/wbw/Source/sd_dph.asm index 0a6e665e..71bc710e 100644 --- a/branches/wbw/Source/sd_data.asm +++ b/branches/wbw/Source/sd_dph.asm @@ -7,10 +7,10 @@ SD_SLICETRKS .EQU 65 ; TRACKS PER SLICE SD_TRKSIZE .EQU 128 ; SIZE OF TRACK (IN KB) SD_SLICESIZE .EQU ((SD_SLICETRKS * SD_TRKSIZE) + 1023) / 1024 ; SIZE OF EACH SLICE (IN MB) SD_NUMSLICES .EQU SDCAPACITY / SD_SLICESIZE ; TOTAL SLICES IN DEVICE -SD0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR UNIT 0 -SD1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR UNIT 1 -SD2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR UNIT 0 -SD3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR UNIT 1 +SD0_SLICEDEF .EQU 0 ; DEFAULT SLICE FOR LOGICAL UNIT 0 +SD1_SLICEDEF .EQU 1 ; DEFAULT SLICE FOR LOGICAL UNIT 1 +SD2_SLICEDEF .EQU 2 ; DEFAULT SLICE FOR LOGICAL UNIT 2 +SD3_SLICEDEF .EQU 3 ; DEFAULT SLICE FOR LOGICAL UNIT 3 ; .DB DIODEV_SD + 0 SDDPH0 .DW 0000,0000