Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

Is there some DOS floppy utility that doesn't rely on DMA? (Developers)

posted by RayeR Homepage, CZ, 23.03.2024, 16:56

Hi,
after years I moved on a little bit with my secondary SuperIO exp. board project attached at LPC bus ( http://rayer.g6.cz/hardware/lpc_sio.htm ), still writing the config utility. Now I tried floppy disk controller that I enabled in the SuperIO block. Problem is that on current test machine I don't have wired the LDRQ# signal yet so FDC has no DMA. SuperIO supports setting FDC in PIO mode but probably most of DOS floppy imaging tools (and DOS itself) rely on BIOS services that use DMA? I don't know it there's such utility that use direct FDC access via PIO (noDMA). I remmeber some old tools like HCOPY, COPYQM, etc. but don't know how they access the floppy...

So for further testing I tried Linux that can work with floppy without DMA and can be forced to found a floppy even if not configured in CMOS/SETUP so I added kernel parameter: "floppy=0,4,cmos nodma messages"
[ 0.628332] Floppy drive(s): fd0 is 1.44M
Then /dev/fd0 appeared in my system and I could try to mount. First time without a floppy inserted. It caused a short sound and LED blinked as expected, getting an error:
[ 71.265686] blk_update_request: I/O error, dev fd0, sector 0
[ 71.268236] floppy: error -5 while reading block 0
[ 71.295694] blk_update_request: I/O error, dev fd0, sector 0
[ 71.298239] floppy: error -5 while reading block 0
Then I tried mount with inserted FAT12-formatted floppy, the motor started spinning, LED light and short head move sound at the beginning appeared but then it enlessly spins and the mount command hanged. Any idea what's going wrong? When I pressed CTRL+ALT+DEL multiple times the system started shutdown and complained about hanged mount that was finally shot down by SIGKILL.
I had a suspection if IRQ works properly but when watched /proc/interrupts it seems it works. Without a floppy the int count increases by 3 and with floppy inserted it increases cca by 5 every second so interrupts are comming properly.

         CPU0       CPU1       CPU2       CPU3
  6:          3          0          0          0   IO-APIC   6-edge      floppy
  6:          6          0          0          0   IO-APIC   6-edge      floppy

---
DOS gives me freedom to unlimited HW access.

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 58 users online (0 registered, 58 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum