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

Reply via email to