Veteran software engineer that plays with retro computers and air-cooled Porsches. Creator of the Applesauce FDC hardware/software for preserving our digital past.
Patreon: http://patreon.com/diskblitz
Ko-fi: http://ko-fi.com/diskblitz
Veteran software engineer that plays with retro computers and air-cooled Porsches. Creator of the Applesauce FDC hardware/software for preserving our digital past.
Patreon: http://patreon.com/diskblitz
Ko-fi: http://ko-fi.com/diskblitz
John Morris' amazing Applesauce floppy disk controller just recovered one of the very first computer programs I ever wrote, from a very old floppy disk. I'm over the moon to see this running!
I've digitized thousands of floppy disks using Applesauce, but am especially grateful for this one.
Turns out that it isn’t a key to unlock a DPB. It actually is a complete DPB. It is laid out like this:
A1 A1 <4e x 12> <4 bytes that are maybe volume/disk id> 00 <DPB>
And it translates to:
spt = 40 ;Number of 128-byte records per track
bsh = 3 ;Block shift. 3 => 1k, 4 => 2k, 5 => 4k....
blm = 7 ;Block mask. 7 => 1k, 0Fh => 2k, 1Fh => 4k...
exm = 0 ;Extent mask, see later
dsm = 194 ;(no. of blocks on the disc)-1
drm = 95 ;(no. of directory entries)-1
al0 = 224 ;Directory allocation bitmap, first byte
al1 = 0 ;Directory allocation bitmap, second byte
cks = 1800h ;Checksum vector size, 0 or 8000h for a fixed disc.
off = 1 ;Offset, number of reserved tracks
psh = 3 ;Physical sector shift, 0 => 128-byte sectors
phm = 7 ;Physical sector mask, 0 => 128-byte sectors
If you don’t know what any of that means, then just trust me that it matches how the disk structure is organized.
Ok, so what now?