On at 2025-02-25 22:40 +0100, tom ehlert via Freedos-devel wrote:
Hi,
and whatever UPBs and DPBs and lDOS style S MCBs are: can't be that important.
UPBs (Unit Parameter Blocks) are known to the FreeDOS kernel and the interrupt
list as DDTs (Drive Data Tables), to EDR-DOS as UDSCs (Unit Descriptors), and
to MS-DOS as BDS (Block Data Structure).
To follow sentences spoken in alphabet soup language isn't easy. When everybody
uses a different set of alphabet soup it's even harder;)
Fair enough.
I find it hard to believe that you don't recognise the DOS system data
structure known as DPB (or, DDSC in EDR-DOS).
Even ~22 years ago I wasn't too fluent in alphabet soup. Today, even less so.
The DPB is called the DOS Drive Parameter Block according to the
interrupt list [1], or in DR-DOS "DDSC" presumably for "Drive Descriptor".
Quick refresher. The DOS data structures for each drive consist of the
following:
* CDS (Current Directory Structure) or in DR-DOS "LDT" for "Logical
Drive Table" [2]. This one exists for every DOS drive, including those
that are serviced by a DOS file system redirector (dosemu2 MFS, shsucdx,
iHPFS, etc)
* DPB. This one exists for every DOS drive that is a local FAT FS drive.
It contains parameters of the FAT FS such as FAT size, maximum valid
cluster number, start sector of first data cluster within the drive, and
more. The DPBs in principle belong to the DOS module, for kernels that
know this difference (like msdos, drdos). The DPB contains a drive
number (for the DOS side) as well as a unit number (for the device
driver side) and the device driver header address that refers to a block
device. This device driver may or may not be the default block device.
* UPB. This one belongs to the BIO module (like msbio, drbio), and lists
all device drivers known to its default block device. It contains a
drive unit number (for the device driver side) and an int 13h unit
number as well as some combination of fields to calculate the hidden
sectors / partition start sector (for the ROM-BIOS int 13h side). UPBs
are set up by the msbio start up code for every diskette drive and every
detected partition on every hard disk. DRIVER.SYS can add additional
UPBs, these are added and used by utilising the int 2Fh function 08h calls.
Redirectors take over a CDS entry to refer to their drives. Block device
drivers such as SRDISK provide access to a BPB which DOS's device driver
loader (or DEVLOAD) uses to build the DPB, and eventually a CDS entry.
The default BIO block device sets up UPBs for every partition in the BIO
init and then DOS's init sets up a DPB for every UPB, and someone sets
up the CDS entry for every DPB.
Regards,
ecm
[1]: https://fd.lod.bz/rbil/interrup/dos_kernel/2132.html
[2]:
https://hg.pushbx.org/ecm/edrdos/file/a43d98646dad/drdos/doshndl.mac#l131
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel