| Age | Commit message (Collapse) | Author |
|
DskImg has finally been updated to use BlkRead instead of the now-deprecated low-level read routines.
|
|
Instead of assigning FDC_MOTOR_WAIT to the floppy BlkDev's motor state variable, FDCMotor was performing a comparison instead.
|
|
The line where the highest block number is set had unneeded parentheses, as warned by the TempleOS compiler.
|
|
The second for loop in this function had its parameters separted by commas instead of semicolons, resulting in a compiler error.
|
|
Brain fart! The drive was getting destroyed because the result was not being set to 1, not because of the drive slot.
|
|
Removing this code caused TempleOS to no longer create drive objects for the floppy drives, so I re-added it.
|
|
|
|
Turns out my PC leaves the FDC in a reset state after POST, causing the version check to time out. Thus, it is necessary to reset the controller beforehand.
|
|
|
|
|
|
The changelog has been updated to reflect the changes made to the blkdev branch as of June 27, 2026, at 16:16 CDT.
|
|
I updated the readme to add more information about using the driver once installed.
|
|
|
|
This patch allows DskChg to run a file system check on floppy drives, allowing for file system autodetection.
|
|
I updated my instruction-generating script to include the FILE tag, to help users find the files that need to be patched. This also includes the new patch files added in the previous commit.
|
|
These patch files are based on patches I had to make while testing the driver on my TOS machine.
|
|
|
|
I added newlines to all of the DocPrint calls, and added code to set the modulation mode.
|
|
|
|
Most of the changes to this file were adding missing semicolons, and fixing semantic errors with some of the prompts.
|
|
Through an oversight, I forgot to change the I/O write that sets the IRQ mask so that bit 6 (which masks IRQ6) is cleared. As a result, IRQ6 is never unmasked, and the floppy drive interrupt does not work.
|
|
|
|
KFloppyB was updated to reflect the return type changes to FDCRBlks and FDCWBlks.
|
|
|
|
I fixed some indentation in this header file and added definitions for the check codes used by FDCChk.
|
|
The filesystem-checking code, now part of the FDCFsChk function, was replaced with a call to said function.
|
|
This new function is an export of the filesystem-checking code in BlkDevAddFDC.HC. This was done to allow it to be used by DskChg, allowing filesystem autodetection when disks are swapped.
|
|
FDCChk now turns the motor on and off, and tests for the presence of a disk by performing two seeks and checking the disk change flag.
|
|
FDCReadId was patched to use 64-bit variables, and to remove asterisks from references to the CBlkDev pointer, bd.
|
|
FDCWriteBlks was patched for the same reasons as FDCReadBlks (64-bit variables, motor control, fix typo in head calculation, unlock at end), as well as fixing a bug where only [cnt] bytes were being copied into the DMA buffer instead of [cnt] sectors.
|
|
FDCReadBlks was patched to use 64-bit variables, turn the motor on and off, use the correct variable for the head count, and unlock the block device before returning.
|
|
FDCRBlks and FDCWBlks were patched to use 64-bit variables, and remove unecessary parentheses.
|
|
FDCReadData and FDCWriteData were patched to use 64-bit variables, and to send the read/write commands in the correct format.
|
|
FDCInit was patched to use 64-bit variables, and to turn the motor on when performing the recalibration step.
|
|
FDCSelDrv was patched to preserve the other DOR bits, and not reset the controller when selecting a drive, which caused I/O timeouts.
|
|
FDCMotorTask was patched to use 64-bit variables, preserve DOR contents when setting the motor bits, and properly set the block device's motor state. FDCMotor now properly checks the current motor status before writing to the DOR or spawning the power-off task, and also preserves the DOR bits.
|
|
I have patched FDCReset to actually do its job correctly, switching it over to DOR-twiddling instead of the DSR method. I also allowed it to skip the interrupt checks if it gets a 0x80 byte back at any point.
|
|
FDCReadByte and FDCSendByte have been updated to store the MSR contents into a separate variable for readability. They also now Yield; when polling to prevent the OS from feezing.
|
|
The chanagelog has been updated to reflect the new policy on commit signing.
|
|
The changelog has been updated to reflect the changes made to the blkdev branch as of June 22, 2026, at 02:19 CDT.
|
|
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.
|
|
|
|
|
|
Some of the patches are applied to files in subdirectories of ::/Kernel and ::/Adam. The directory tree has been re-arranged in such a way as to allow them to be #included without having the compiler backtrack to their parent directory.
|
|
I updated the installer program to copy over the Adam directory, and also removed the old patch instructions.
|
|
I updated the changelog to reflect the changes made to the blkdev branch as of June 19, 2026, at 21:32 CDT.
|
|
I updated my instruction generator script to show the parent paths of each file, and also added support for the ADAM PATCH tag.
|
|
I forgot to stage the change I made to this file's code tags. Whoops.
|
|
To alert the user to the need to apply the patches made to Adam after the kernel patches, I have added a special "ADAM PATCH" tag.
|
|
I have updated the readme to reflect the major changes to the driver code.
|