Skip to content

flpboot.asm: add optimized flopy boot loader (FAT12, multi-sector reads) #4

Open

Description

@boeckmann

The current FAT12/16 boot loader is slow, especially when booting from floppy on an XT class machine.

This can be changed by implementing a loader specialized to load from floppy, doing as few reads as possible, utilizing multi-sector reads.

To reduce load time even further, the loader shall optionally read the kernel not from the FAT filesystem but from the reserved sectors following the boot sector, in case the reserved sector count given in the BPB is greater than one.

Activity

  1. boeckmann commented on Sep 10, 2025

    @boeckmann
    CollaboratorAuthor

    On my initial tests, which show good speed improvements, I noticed persistent multi-sector read failures on an emulated IBM XT.

    The reason for this is that the BIOS diskette parameter table seems to be initialized for eight sectors per track on this specific machine (maybe this may be altered by some BIOS setup utility?). However, even the 360k disks have nine sectors per track. The problem was fixed by patching the diskette parameter table to the correct sectors per tack. An obvious choice would be to set it to the value stored in the BPB being booted from.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions