Reply 300 of 529, by 0x90
Deksor wrote on 2021-11-29, 11:34:Interesting. Maybe you could use mTCP ? Or would even this be too much ?
mTCP seems to be written C++ and also seems to be something which needs to be built into (linked with) the program using it. I'm no expert on DOS programming (on the contrary) but seems to me .sys programs really are best written in pure ASM only (well, it IS possible to use C, probably C++ too, but seems things get messy and complicated, probably at least a special linker script or custom tools for linking is required, and then there are restrictions like very little stack space guaranteed to be available unless you setup your own stack and always switch to it and back when called by DOS, there is no PSP by default so some DOS calls the C library functions want to use won't work as expected, etc., also a compiled driver will probably inevitably eat much more memory).
A separate TCP/IP implementation which is loaded as a device driver or TSR could possibly be an option, but are there any which are 1) totally free to use, 2) not memory hogs, 3) actually good?
An MSCDEX replacement (rather than a low level CD-ROM driver) written in C/C++ might be more feasible, but I'd rather avoid dealing with any ISO filesystem and DOS network redirection stuff myself (all filesystem & redirection handling is the responsibility of MSCDEX or equivalent, not the CD-ROM driver). And I've read MSCDEX replacements can have compatibility problems with games so I don't know if I want to try writing one...
Deksor wrote on 2021-11-29, 11:34:Or maybe it could simply become its own thing for the ISA bus ? Afterall not all CD-ROM drives were ATAPI. It could have a boot ROM for cd boot and a specific driver for DOS.
That is one option, but someone else would have to do it. I don't have the required skills to design hardware. It would also never be as low cost as a software only solution can be.
I was also thinking about possibly using a hard disk in the DOS machine to hold images (probably pre-converted to a special format, at least I wouldn't want to try parsing cue files in ASM, even in my C "image server "program I'm using a library for it), then using one sound card (GUS or WSS) for playing CD audio while another (SB compatible) is being used by the game for sound effects. An Ethernet CD driver could also support this in addition to just passing all audio requests to an external device (serial is obviously too slow). Not sure if I want to get into sound card programming though...
edit: I wonder what's the practical maximum speed of an ECP or EPP parallel port? Wikipedia claims maximum transfer rate for EPP is 2MB/s and ECP is 2,5MB/s but that sounds a bit much... probably also depends somewhat on how fast the system is? I know there were some actual CD drives which connected via parallel port back in the day, but a couple of people I asked said they were always really slow... and in any case I don't currently have the necessary cables or hardware to test any sort of parallel port solutions, seems both DOSBox or PCem don't really support anything but Covox-a-likes connected to them either.