serenity/Kernel
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
..
Arch/i386 Kernel: Move VirtualAddress.h into VM/ 2019-07-09 15:04:45 +02:00
Boot Kernel: Make better use of the multiboot info. 2019-06-02 09:53:42 +02:00
Devices Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
FileSystem Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
Net Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
TTY AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
VM Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
.bochsrc
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h} 2019-06-07 20:02:01 +02:00
build-image-grub.sh Build: Remove grub from default build process 2019-06-04 07:15:44 -07:00
build-image-qemu.sh Build: Fix incorrect user and group settings for disk image (#280) 2019-07-03 16:57:37 +02:00
build-root-filesystem.sh SystemDialog: Add a new app for showing system dialogs. 2019-07-16 21:41:13 +02:00
CMOS.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
CMOS.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DoubleBuffer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DoubleBuffer.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
grub.cfg Kernel: Parse cmdline for root filesystem e.g. root=/dev/hda1 2019-06-04 07:14:40 -07:00
init.cpp Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
install.sh Build: Install most headers to Root (and libcore.a/libgui.a) 2019-05-17 21:59:48 +02:00
IO.h Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
IRQHandler.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
IRQHandler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KeyCode.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
kmalloc.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
kmalloc.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KParams.cpp Kernel: Fix KParams parsing with trailing space in kernel cmdline 2019-06-04 07:08:07 -07:00
KParams.h Kernel: Run clang-format on everything. 2019-06-07 11:43:58 +02:00
kprintf.cpp Kernel: Colorize debugger output from the kernel. 2019-06-22 22:45:16 +02:00
KResult.h Kernel: Fix KResultOr move constructor not copying errors. 2019-06-14 06:24:02 +02:00
kstdio.h LibHTML: Make it possible to build LibHTML on the host. 2019-06-22 21:21:57 +02:00
KSyms.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KSyms.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
linker.ld Kernel: Use a multiboot header instead of a convoluted two-part bootloader. 2019-04-01 21:43:07 +02:00
Lock.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
makeall.sh SystemDialog: Add a new app for showing system dialogs. 2019-07-16 21:41:13 +02:00
Makefile Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
mkmap.sh Kernel: Don't symbolicate symbol+offset for obvious non-kernel addresses. 2019-04-30 14:47:22 +02:00
MousePacket.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Multiboot.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCI.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCI.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Process.cpp Kernel: Fix a nasty lock bug with exec() 2019-07-17 14:23:15 +02:00
Process.h Kernel: Add support for the WSTOPPED flag to the waitpid() syscall. 2019-07-14 11:35:49 +02:00
ProcessTracer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ProcessTracer.h Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
RTC.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
RTC.h Add clang-format file 2019-05-28 17:31:20 +02:00
run Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
Scheduler.cpp Kernel: Split SCHEDULER_DEBUG into a new SCHEDULER_RUNNABLE_DEBUG 2019-07-17 14:23:15 +02:00
Scheduler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
SharedBuffer.cpp SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
SharedBuffer.h SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
StdLib.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
StdLib.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
sync.sh Build: Remove grub from default build process 2019-06-04 07:15:44 -07:00
Syscall.cpp Kernel: Have the open() syscall take an explicit path length parameter. 2019-07-08 20:01:49 +02:00
Syscall.h Kernel: Have the open() syscall take an explicit path length parameter. 2019-07-08 20:01:49 +02:00
Thread.cpp Kernel: Split SCHEDULER_DEBUG into a new SCHEDULER_RUNNABLE_DEBUG 2019-07-17 14:23:15 +02:00
Thread.h Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
UnixTypes.h Kernel: Add support for the WSTOPPED flag to the waitpid() syscall. 2019-07-14 11:35:49 +02:00