rewrote class FloppyController

Changes:
- rewrote floppy controller to make it more compatible with the Intel 82078
- now supports optional second drive fdb (enabled by default)
- now supports write-protected media and configurable drive types
- added configuration object to FloppyController constructor
- added a few registers and rewrote their read/write handlers
- added explicit command phases and reimplemented all floppy commands
- added controller runtime state as needed by registers and commands
- split off class FloppyDrive from FloppyController to support mulitple drives
- rewrote drive and disk format detection
- get/set_state() now includes the drive's image buffer (hopefully got that right)
- improved code readability by using named instead of literal constants, added comments where needed
- improved log output readability

The Intel 82078 (44-Pin) manual and fdc.c from qemu were used for reference material.

Known issues:
- hwinfo under linux reports read errors when no floppy disk is inserted into a drive
This commit is contained in:
Christian Schnell 2025-07-14 18:35:15 +02:00 committed by Fabian
parent 2482a9957a
commit c22a8f1d4c

File diff suppressed because it is too large Load diff