VOGONS


First post, by mateusz.viste

User metadata
Rank Newbie
Rank
Newbie

Hello, I published today a new DOS tool: a "virtual floppy over Ethernet", targeted to ancient PCs.

ethflop is a DOS TSR that emulates a floppy disk drive. The emulated (virtual) floppy disk is, in fact, stored on a Linux server as a floppy image. All the communication between ethflop (the TSR) and ethflopd (the Linux daemon) is exchanged over raw Ethernet.

ethflop.png

homepage: http://ethflop.sourceforge.net/

http://mateusz.viste.fr | gopher://gopher.viste.fr

Reply 1 of 8, by digger

User metadata
Rank Member
Rank
Member

Cool! Thanks for sharing this with the world! 😀

This makes things so much easier. No GoTek floppy emulator required, and no messing with USB sticks either. Just read the "floppy" straight from the network. Genius!

I wonder if this code could be modified to provide Sound Blaster emulation over a network as well. A Sound Blaster shouldn't be much harder to emulate than a floppy controller, since in both cases, you'd have to handle DMA. Such an emulator could then act as a Pulseaudio client and stream the audio over NTP to an audio-enabled Linux PC running a Pulseaudio server, either a physical machine on the LAN or the host machine running the hypervisor, if the DOS machine is a VM guest.

Did you really have to host this on SourceForge, though? 😒 It's 2019. Why didn't you publish this on GitHub, Bitbucket or GitLab? SourceForge is so tedious and unattractive to use in comparison. Please don't take that the wrong way. I'm impressed with your work, regardless! 😀

Reply 2 of 8, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
digger wrote:

I wonder if this code could be modified to provide Sound Blaster emulation over a network as well. A Sound Blaster shouldn't be much harder to emulate than a floppy controller, since in both cases, you'd have to handle DMA. Such an emulator could then act as a Pulseaudio client and stream the audio over NTP to an audio-enabled Linux PC running a Pulseaudio server, either a physical machine on the LAN or the host machine running the hypervisor, if the DOS machine is a VM guest.

It only plugs into existing high-level interfaces (BIOS/DOS routines, similar to how DOSBox's virtual drives work), it doesn't emulate physical hardware.

Reply 3 of 8, by mateusz.viste

User metadata
Rank Newbie
Rank
Newbie
digger wrote:

This makes things so much easier. No GoTek floppy emulator required, and no messing with USB sticks either. Just read the "floppy" straight from the network. Genius!

I like your enthusiasm.

digger wrote:

I wonder if this code could be modified to provide Sound Blaster emulation over a network as well. A Sound Blaster shouldn't be much harder to emulate than a floppy controller, since in both cases, you'd have to handle DMA.

Not at all. ethflop does not emulate a floppy controller - what it does, is emulating a floppy BIOS by intercepting int 13h requests. It's a kind of 'overlay' that goes on top of the machine's BIOS, effectively replacing it for floppy requests.

digger wrote:

Did you really have to host this on SourceForge, though? :/ It's 2019. Why didn't you publish this on GitHub, Bitbucket or GitLab? SourceForge is so tedious and unattractive to use in comparison.

ethflop is distributed through its website: http://ethflop.sourceforge.net
Downloading it is as simple as clicking on a single link. What does it matter what the domain name is?

jmarsh wrote:

It only plugs into existing high-level interfaces (BIOS/DOS routines, similar to how DOSBox's virtual drives work), it doesn't emulate physical hardware.

That's correct. ethflop does not have the ambition to emulate a floppy controller - this would be actually impossible on an 8086, since there is no way to trap I/O port requests.

http://mateusz.viste.fr | gopher://gopher.viste.fr

Reply 4 of 8, by digger

User metadata
Rank Member
Rank
Member
mateusz.viste wrote:

Not at all. ethflop does not emulate a floppy controller - what it does, is emulating a floppy BIOS by intercepting int 13h requests. It's a kind of 'overlay' that goes on top of the machine's BIOS, effectively replacing it for floppy requests.

Ah, at the BIOS level. Got it. 😊

ethflop is distributed through its website: http://ethflop.sourceforge.net
Downloading it is as simple as clicking on a single link. What does it matter what the domain name is?

For downloading the binary releases, you're right, that doesn't matter. I was referring to the hosting of the source code. A modern repository like GitHub makes collaboration and code contributions and such so much easier. I really don't understand why people would still want to use SourceForge for hosting their open source project repositories these days.

But ultimately, it doesn't matter. You made a cool and useful tool and freely shared it with everyone, and the world is a little bit better because of it. 😀

Reply 5 of 8, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
mateusz.viste wrote:
digger wrote:

Did you really have to host this on SourceForge, though? 😒 It's 2019. Why didn't you publish this on GitHub, Bitbucket or GitLab? SourceForge is so tedious and unattractive to use in comparison.

ethflop is distributed through its website: http://ethflop.sourceforge.net
Downloading it is as simple as clicking on a single link. What does it matter what the domain name is?

There was a short period of time where SF was injecting shovelware into installers. They got smacked down hard and ceased the practice, so they're no more problematic than any other hosting service nowadays. I keep a watchful eye on them as I do Github, etc.
https://www.pcworld.com/article/3032490/new-s … re-program.html

As for the UI, it could look like an abomination from Geocities and I wouldn't care. As a hosting service, I care more about safety and reliability.

All hail the Great Capacitor Brand Finder

Reply 8 of 8, by mateusz.viste

User metadata
Rank Newbie
Rank
Newbie
jmarsh wrote:

TFTP is so basic it doesn't allow random reads/writes, only whole files can be transferred.

It would also require a full-blown ARP+IP+UDP implementation, significantly increasing the code size, thus memory footprint.

http://mateusz.viste.fr | gopher://gopher.viste.fr