1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-20 21:20:59 +00:00
serenity/Kernel/Devices
Jesse 10ffaf019f Kernel: Initial FDC Device Driver (#315)
A basic Floppy Disk Controller device driver for any system later than (and including) the IBM AT. The driver is based on the documentation supplied by QEMU, which is the datasheet for the Intel 82078 Floppy Disk controller (found here: https://wiki.qemu.org/images/f/f0/29047403.pdf)

Naturally, floppy disks are a _very_ outdated storage medium, however, as Serenity is a throwback to aesthetic 90s computing, it's a definite must have. Not to mention that there are still a lot of floppy disks around, with countless petabytes of software on them, so it would be nice if people could create images of said disks with serenity.

The code for this is mostly clean. however there are a LOT of values specified in the datasheet, so some of them might be wrong, not to mention that the actual specification itself is rather dirt and seemingly hacked together.

I'm also only supporting 3.5" floppy disks, without PIO polling (DMA only), so if you want anything more/less than 1.44MB HD Floppys, you'll have to do it yourself.
2019-07-17 15:51:51 +02:00
..
BlockDevice.cpp Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
BlockDevice.h Kernel: Move VirtualAddress.h into VM/ 2019-07-09 15:04:45 +02:00
BXVGADevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
BXVGADevice.h Kernel: Move PhysicalAddress.h into VM/ 2019-07-09 15:04:45 +02:00
CharacterDevice.cpp Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
CharacterDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
DebugLogDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DebugLogDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Device.cpp Kernel: Run clang-format on everything. 2019-06-07 11:43:58 +02:00
Device.h Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
DiskDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DiskDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DiskPartition.cpp Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
DiskPartition.h Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
FileBackedDiskDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
FileBackedDiskDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
FloppyDiskDevice.cpp Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
FloppyDiskDevice.h Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
FullDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
FullDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
IDEDiskDevice.cpp IDEDiskDevice: Remove superstitious memory_barrier(). 2019-07-16 13:41:21 +02:00
IDEDiskDevice.h Kernel: Move PhysicalAddress.h into VM/ 2019-07-09 15:04:45 +02:00
KeyboardDevice.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
KeyboardDevice.h Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
MBRPartitionTable.cpp Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
MBRPartitionTable.h Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
NullDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
NullDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCSpeaker.cpp Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
PCSpeaker.h Kernel: Add a beep() syscall that beeps the PC speaker. 2019-05-15 21:40:41 +02:00
PS2MouseDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PS2MouseDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
RandomDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
RandomDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
SB16.cpp SB16: Set "m_interrupted" to false before enabling IRQ's. 2019-07-14 15:02:02 +02:00
SB16.h Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
SerialDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
SerialDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ZeroDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ZeroDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00