From 028a74b6ce3f889de88053d84e15f3d3d6fb2819 Mon Sep 17 00:00:00 2001 From: Harley Travis Date: Mon, 22 Jun 2026 02:19:16 -0500 Subject: Split floppy IRQ handler into separate file Since KInts.HC is compiled before DskFDC.HC, undefined symbol issues could possibly occur. when attempting to compile the interrupt set-up code because the IRQ handler is not yet compiled. To prevent this, I separated the IRQ handler into another file that is included immediately after the headers. The instructions have been updated to reflect this change. --- Instructions.TXT | 15 ++++++++++++++- Kernel/BlkDev/DskFDC.HC | 7 ------- Kernel/KFloppyInt.HC | 9 +++++++++ 3 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 Kernel/KFloppyInt.HC diff --git a/Instructions.TXT b/Instructions.TXT index 4b36283..fa177ba 100644 --- a/Instructions.TXT +++ b/Instructions.TXT @@ -1,5 +1,5 @@ This file was generated using an automated Python script. -Generated on Saturday, June 20, 2026 at 20:01:38 CDT. +Generated on Monday, June 22, 2026 at 02:17:51 CDT. ./Install.HC PURPOSE: Semi-automate the floppy driver install process @@ -19,6 +19,10 @@ PURPOSE: Exports floppy driver funs for use by other programs TO INSTALL: #include this file after KernelA.HH in Kernel.PRJ. THEN: Also #include it in StartOS.HC. +Kernel/KFloppyInt.HC +PURPOSE: Floppy disk IRQ handler +TO INSTALL: #include this file after the floppy header files in Kernel.PRJ. + Adam/ABlkDev/Patches/Mount2LtrsFDC.HC PATCH: Update ltr lst to reflect remapping of drv ltrs TO INSTALL: Comment out the original Print call. @@ -52,11 +56,20 @@ PATCH: Add floppy BlkDev type TO INSTALL: Comment out the old block device type #defines. THEN: #include this file after them. +Kernel/Patches/IntInit2FDC.HC +PATCH: Make IntInit2() set up the IDT to handle FDC IRQ's +TO INSTALL: #include this file after the line that sets the wake int handler. + Kernel/Patches/KDefineBDTs.HC PATCH: Add str for floppy BlkDev type to BlkDev str tbl TO INSTALL: Comment out the old DefineLstLoad call. THEN: #include this file after it. +Kernel/Patches/IntsInitFDC.HC +PATCH: Make IntsInit() unmask IRQ6 +TO INSTALL: Comment out the original fun. +THEN: #include this file after it. + Kernel/Patches/CBlkDevFDC.HC PATCH: Add floppy params to the CBlkDev class TO INSTALL: #include this file after the second U32 declaration. diff --git a/Kernel/BlkDev/DskFDC.HC b/Kernel/BlkDev/DskFDC.HC index b24c916..9b14e4e 100644 --- a/Kernel/BlkDev/DskFDC.HC +++ b/Kernel/BlkDev/DskFDC.HC @@ -7,13 +7,6 @@ // PURPOSE: Adds support for std PC floppy dsk ctrlrs to TempleOS // TO INSTALL: #include this file after DskATA in MakeBlkDev.HC. -interrupt U0 IRQ_FDC() -{ - // On IRQ6, set a semaphore for anything waiting for an FDC int - fdc_int_semaphore = TRUE; - OutU8(0x20,0x20); // Send EOI to PIC -} - U0 FDCDMAInit(U16 len) { U64 buf_lo, buf_hi, page, cnt_lo, cnt_hi; diff --git a/Kernel/KFloppyInt.HC b/Kernel/KFloppyInt.HC new file mode 100644 index 0000000..4c07656 --- /dev/null +++ b/Kernel/KFloppyInt.HC @@ -0,0 +1,9 @@ +// PURPOSE: Floppy disk IRQ handler +// TO INSTALL: #include this file after the floppy header files in Kernel.PRJ. + +interrupt U0 IRQ_FDC() +{ + // On IRQ6, set a semaphore for anything waiting for an FDC int + fdc_int_semaphore = TRUE; + OutU8(0x20,0x20); // Send EOI to PIC +} \ No newline at end of file -- cgit v1.2.3