From 32673d5872a2c77c2cc70a14a1e50cd440bc0180 Mon Sep 17 00:00:00 2001 From: Harley Travis Date: Wed, 27 May 2026 18:04:13 -0500 Subject: Refactor source code and create an "installer" I have moved some source files into subdirectories for ease of installation. I have also added an installer script to automatically place driver files into their respective system directories. --- Examples/DskImg.HC | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Examples/DskImg.HC (limited to 'Examples') diff --git a/Examples/DskImg.HC b/Examples/DskImg.HC new file mode 100644 index 0000000..7aec469 --- /dev/null +++ b/Examples/DskImg.HC @@ -0,0 +1,73 @@ +#define CYLINDERS 80 +#define SECTORS 18 +#define BASE 0x03F0 +#define IMG_SIZE 1474560 + +/* + Copyright (C) 2025-2026 Harley Travis . + This software (including source code) is licensed under the BSD Zero Clause + License. See the Copying.TXT file for details. +*/ + +/* + + Make sure IRQ6 is on and + pointed to the correct handler! + +*/ + +U8 DskImg() +{ + U64 i; + + // Open image file for writing + CFile *img = FOpen("Floppy.IMG","w",IMG_SIZE/BLK_SIZE); + + // Initialize the controller + FDCReset(BASE); + Sleep(100); + + /* + + Loop through each sector, + reading each into the buffer, + then writing it into the file + + */ + + for (i = 0; i < CYLINDERS; i++) { + "Track %d\n", i; + if (FDCSeek(BASE, i, 0)) { + FDCReset(BASE); + FClose(img); + return 1; + } + if (FDCSeek(BASE, i, 1)) { + FDCReset(BASE); + FClose(img); + return 1; + } + FDCReadMulti(BASE, i, 0, 1, 18); + FBlkWrite(img, &FDC_DMA, 36 * i, 36); + } + + // Return to track 0 + "Returning to track 0...\n"; + if (FDCSeek(BASE, 0, 0)) { + FDCReset(BASE); + FClose(img); + return 1; + } + if (FDCSeek(BASE, 0, 1)) { + FDCReset(BASE); + FClose(img); + return 1; + } + + // Close the image file + FClose(img); + + return 0; +} + +DskImg; -- cgit v1.2.3