Tatung Einstein DOS addresses and other info for different DOS versions Abbreviations ------------- ALVx allocation vector (for drive x) BDOS basic disc operating system BIOS basic input/output system CCP console command processor CSV checksum vector (for removable media only) DOS disc operating system DIRBUF directory buffer DPB disc parameter block (15 bytes per drive type) DPH disc parameter header (16 bytes per drive) Ver DOS CCP BDOS BIOS DPH DPB ALV0 ALV1 ALV2 ALV3 CSV DIRBUF --- --- --- ---- ---- --- --- ---- ---- ---- ---- --- ------ 1.11 E100- E300- EC00- FA00- F9C0- FADC- FDC0- FDCC- FDD8- FDE4- FD80- FD00- F9FF FAEA FDCB FDD7 FDE3 FDEF* FDBF FD7F 1.31 E100- E300- EC00- FA00- F9C0- FAEE- FDC0- FDCC- FDD8- FDE4- FD80- FD00- F9CF FAFC FDCB FDD7 FDE3 FDEF* FDBF FD7F 2.02 E100- E200- EA00- F800- F978- F9B8- FDC0- FA1F- FA51- FA83- FD80- FD00- F9B7 F9F3 FDF1* FA50 FA82 FAB4* FDBF FD7F DOS80 E100- E200- EB00- FA00- F8FC- F8C0- FDC0- F93C- F96E- F9A0- FD80- FD00- v1.0 F93B F8FB FDF1* F96D F99F F9D1* FDBF FD7F Notes ----- One drive type only for DOS 1 as DPB area only 15 bytes in total Four drives types for DOS 2 and DOS80 as DPB area 60 bytes in total ALV size is 0CH (12 bytes, for 200K floppy) per drive for DOS 1 ALV size is 32H (50 bytes, for 800K floppy) per drive for DOS 2 and DOS80 ALV space is in two blocks (drive 0 and drives 1-3) for DOS 2 and DOS80 * Free space above here to end of page at FxFF (to FAFC inclusive above DOS 2 ALV3) 8MB hard drive requires ALV size of 40H (64 bytes) per drive There is room for all four drives to be 8MB hard drives for DOS 2 and DOS80, as follows Ver DOS CCP BDOS BIOS DPH DPB ALV0 ALV1 ALV2 ALV3 CSV DIRBUF --- --- --- ---- ---- --- --- ---- ---- ---- ---- --- ------ 2.02 E100- E200- EA00- F800- F978- F9B8- FDC0- FA1F- FA5F!- FA9F!- FD80- FD00- F9B7 F9F3 FDFF! FA5E! FA9E! FADE! FDBF FD7F DOS80 E100- E200- EB00- FA00- F8FC- F8C0- FDC0- F93C- F97C!- F9BC!- FD80- FD00- v1.0 F93B F8FB FDFF! F97B! F9BB! F9FB! FDBF FD7F ! Modified address DPH has ALV start address, so only ALV2/3 need changing in DPH2/3 CSV space is 40H (64 bytes) in total, enough for four 200K floppies However, in true CP/M, a 400K or 800K floppy needs CSV of 32 bytes, not 16 bytes Media which are not removable, e.g. silicon discs and hard drives, do not use CSV space DPH definitions --------------- 16 bytes per drive, in contiguous 64 byte block as required by CP/M DPH0: DW 0 ;no sector translation DW 0 ;scratchpad DW 0 ;scratchpad DW 0 ;scratchpad DW DIRBUF ;DIRBUF same for all discs DW DPBn ;DPB for drive type n DW CSV0 ;CSV for drive 0, or DW 0 for non-removable disc DW ALV0 ;ALV for drive 0 DPH1: DW 0 ;no sector translation DW 0 ;scratchpad DW 0 ;scratchpad DW 0 ;scratchpad DW DIRBUF ;DIRBUF same for all discs DW DPBn ;DPB for drive type n DW CSV1 ;CSV for drive 1, or DW 0 for non-removable disc DW ALV1 ;ALV for drive 1 DPH2: DW 0 ;no sector translation DW 0 ;scratchpad DW 0 ;scratchpad DW 0 ;scratchpad DW DIRBUF ;DIRBUF same for all discs DW DPBn ;DPB for drive type n DW CSV2 ;CSV for drive 2, or DW 0 for non-removable disc DW ALV2 ;ALV for drive 2 DPH3: DW 0 ;no sector translation DW 0 ;scratchpad DW 0 ;scratchpad DW 0 ;scratchpad DW DIRBUF ;DIRBUF same for all discs DW DPBn ;DPB for drive type n DW CSV3 ;CSV for drive 3, or DW 0 for non-removable disc DW ALV3 ;ALV for drive 3 DPB definitions --------------- 15 bytes per drive, in contiguous 60 byte block as required by MOS 200K floppy single-sided DPB40TSS: DW 40 ;SPT logical sectors per track DB 4 ;BSH for block size BLS = 2048 DB 15 ;BHM for block size BLS = 2048 DB 1 ;EXM extent mask *** non-CP/M value of 0 for DOS80 *** DW 94 ;DSM BLS * (DSM + 1) + 10K for reserved tracks = 200K DW 63 ;DRM directory entries - 1 DW 80H ;AL0/1 one block for directory DW 16 ;CKS check vector space = (DRM + 1) /4 DW 2 ;OFF two reserved tracks at start of disc 400K floppy double-sided DPB40TDS: DW 80 ;SPT logical sectors per track DB 4 ;BSH for block size BLS = 2048 DB 15 ;BHM for block size BLS = 2048 DB 1 ;EXM extent mask *** non-CP/M value of 0 for DOS80 *** DW 194 ;DSM BLS * (DSM + 1) + 10K for reserved track = 400K DW 127 ;DRM directory entries - 1 DW 0C0H ;AL0/1 two blocks for directory DW 16 ;CKS check vector space *** CP/M value is 32 *** DW 1 ;OFF one reserved track at start of disc 400K floppy single-sided DPB80TSS: DW 40 ;SPT logical sectors per track DB 4 ;BSH for block size BLS = 2048 DB 15 ;BHM for block size BLS = 2048 DB 1 ;EXM extent mask *** non-CP/M value of 0 for DOS80 *** DW 194 ;DSM BLS * (DSM + 1) + 10K for reserved tracks = 400K DW 127 ;DRM directory entries - 1 DW 0C0H ;AL0/1 two blocks for directory DW 16 ;CKS check vector space *** CP/M value is 32 *** DW 2 ;OFF two reserved tracks at start of disc 800K floppy double-sided DPB80TDS: DW 80 ;SPT logical sectors per track DB 4 ;BSH for block size BLS = 2048 DB 15 ;BHM for block size BLS = 2048 DB 0 ;EXM extent mask *** non-CP/M value of 1 for DOS 2 *** DW 394 ;DSM BLS * (DSM + 1) + 10K for reserved track = 400K DW 127 ;DRM directory entries - 1 DW 0C0H ;AL0/1 two blocks for directory DW 16 ;CKS check vector space *** CP/M value is 32 *** DW 1 ;OFF one reserved track at start of disc [End of DPBs] DPBHD is the new 8MB hard drive definition This should replace either DPB40TDS or DPB80TSS if also want 200K and 800K floppies Silicon disc DPB could then replace either DPB80TSS or DPB40TDS DPBHD: DW 256 ;SPT logical sectors per track DB 7 ;BSH for block size BLS = 16384 DB 127 ;BHM for block size BLS = 16384 DB 7 ;EXM extent mask DW 509 ;DSM BLS * (DSM + 1) + 32K for reserved track = 8192K = 8MB DW 511 ;DRM directory entries - 1 DW 080H ;AL0/1 one block for directory DW 0 ;CKS no check vector for non-removable disc DW 1 ;OFF one reserved track at start of disc