• Please review our updated Terms and Rules here

ethflop - a network-backed floppy emulator for DOS

I still like my solution ;)

As others have said a disk change facility would be nice. Nothing elaborate - maybe something like this: All the disks would be placed in one directory and named in some prescribed way (say files are in WIN311 directory and disk are name 01.img, 02.img, 03.img - 11.img you get the idea). Then all the TSR has to do is trap two hot keys (say "ctrl +" and "ctrl -"). The TSR would then step up/down in the file name and load the disk. I am not a programmer so I am not sure how much bigger this would make the TSR's footprint. However, it should be less then a routine that pops up a dialog box asking for the name of the image each time. Of course it would be limited to install disk sets but that is when you would need it most.
 
Your method would certainly work, I simply consider it bad design to run daemons in foreground and (even worse) expect them to have any kind of direct user interaction. That is why I was suggesting a separate tool that would feed ethflop-server with specific control instructions. It should be fairly easy to extend the ethflop (DOS) tool for that (but could even be web GUI in some "deluxe" version). The limitation of doing this in the ethflop client is of course that then one would require another DOS machine for controlling the eject/insert actions, that is why a separate Linux program might be more desirable.



I agree that quick and dirty hacks are usually easier/faster to create than elegant solutions, yes. ;-)

I appreciate your candor and I agree with your thoughts. My initial view was that I would generally just use ethflop when I'm installing software and wouldn't leave it running at other times so starting it up in non-daemon mode would be fine. That being said, leaving it running and then just loading/unloading images via a separate tool is a better approach. I was also thinking that a web solution would be great but that isn't nearly as quick of a change.

I will press-forward on the initial proposed changes to the ethflop server to make sure I understand how it's working (and also given that I'm almost done). After that I think it should be straight forward to write a separate tool using unix domain sockets to communicate with the ethflop server (although linux programming is new to me this something as simple as a command line tool to eject/load seems pretty simple to implement).
 
I appreciate your candor and I agree with your thoughts. My initial view was that I would generally just use ethflop when I'm installing software and wouldn't leave it running at other times so starting it up in non-daemon mode would be fine. That being said, leaving it running and then just loading/unloading images via a separate tool is a better approach. I was also thinking that a web solution would be great but that isn't nearly as quick of a change.

I will press-forward on the initial proposed changes to the ethflop server to make sure I understand how it's working (and also given that I'm almost done). After that I think it should be straight forward to write a separate tool using unix domain sockets to communicate with the ethflop server (although linux programming is new to me this something as simple as a command line tool to eject/load seems pretty simple to implement).

Well I got the modified ethflop server version working. It’s pretty much as I outlined before - if you run the server with the no daemon option once you insert a disk into a client the server brings up a menu of clients with loaded disks and then you pick a client which then brings up a menu of available disk images. If you run it with the daemonize option there are no changes.

For my use case it worked great - I was able to install WordPerfect 5.1 from the 12 or so disk images by just swapping images from my MacBook set up beside my 5150. I still have a few minor things to clean up but this is likely the easiest way for me to install software now. Awesome tool - thanks again for making this available.
 
Are your changes available anywhere?

Yes - I was just cleaning up some of the changes I made. I just used it to install Windows 2.0 - worked great.

Attached is the source and adjusted Makefile for the DiskSwap version of ethflop

The readme contains the relevant information on the changes made. Note as per the readme that the ncurses library is required.

I think I covered off the all of the required license-related elements regarding software modification - let me know @mateuszviste if anything else is to be done and thanks again for ethflop - it truly is an incredible accomplishment.

Let me know if it works for you.
 

Attachments

  • ethflop-diskswap.zip
    19.4 KB · Views: 15
No change to the client/MSDOS app? It detects the changed floppies without any problems?

Correct it just watches for the control packets that are sent to the server by the client when new clients connect, disks change etc and then presents a refreshed list of clients.

The version I uploaded doesn’t actually require you to ever insert a disk from the client. As soon as a client connects you can select it and then select an image. I found this quicker then inserting a floppy from Dos as I don’t need to list the images and then type the image name I just select the image number from the list.
 
No change to the client/MSDOS app? It detects the changed floppies without any problems?

I think I misunderstood your question at first. The DiskSwap routine does the same eject and insert process that would have happened if it was client initiated so from my testing it’s been seamless.
 
I think I misunderstood your question at first. The DiskSwap routine does the same eject and insert process that would have happened if it was client initiated so from my testing it’s been seamless.

Seems like I can only use disks with less than 8 characters for a name through your local interface.
 
Yes - I was just cleaning up some of the changes I made. I just used it to install Windows 2.0 - worked great.

Attached is the source and adjusted Makefile for the DiskSwap version of ethflop

The readme contains the relevant information on the changes made. Note as per the readme that the ncurses library is required.

I think I covered off the all of the required license-related elements regarding software modification - let me know @mateuszviste if anything else is to be done and thanks again for ethflop - it truly is an incredible accomplishment.

Let me know if it works for you.
I'm not able to build your package on a new Raspbian install.

gcc -O2 -std=gnu89 -lncurses ethflopd.c -o ethflopd /usr/bin/ld: /tmp/ccXmLcmW.o: in function `sigcatcher': ethflopd.c:(.text+0x74): undefined reference to `endwin' /usr/bin/ld: /tmp/ccXmLcmW.o: in function `printCurrentClients': ethflopd.c:(.text+0x1218): undefined reference to `printw' /usr/bin/ld: ethflopd.c:(.text+0x1264): undefined reference to `printw' /usr/bin/ld: ethflopd.c:(.text+0x12b4): undefined reference to `printw' /usr/bin/ld: ethflopd.c:(.text+0x12e4): undefined reference to `printw' /usr/bin/ld: /tmp/ccXmLcmW.o: in function `main': ethflopd.c:(.text.startup+0x10): undefined reference to `stdscr'

Is that an ncurses issue? I've got the same ncurses packages installed on this new 64-bit system as I had on the old 32-bit raspbian install.
 
gcc -O2 -std=gnu89 ethflopd.c -o ethflopd -lncurses
This fixed the compile.

Glad you got it working. I hadn't received any notices of replies to this thread and hadn't logged in for a while.

On the 8 character limitation: It's been a long time since I looked at this but my recollection is that the actual ethflop is limited to 8 characters and the diskswap version doesn't change any of the related routines, it just presents the images on the Linux box.

I haven't actually installed any new software on my 5150 for quite some time so I'll need to fire this back up again at some point as I recall there were a couple of bugs (I think sometimes the list of disk images didn't properly refresh). If you're finding the diskswap routines helpful and you notice any operational bugs let me know and I'll try to have a look.
 
Back
Top