Hi,

On Thu, Sep 23, 2021 at 4:55 PM Volkert via Freedos-devel
<[email protected]> wrote:
>
> A few months ago, John W. Ratcliff released the sources of most of the DIGPAK 
> DOS sound drivers on GitHub.
> He wrote those drivers in the '90s and used to license them commercially 
> under the name The Audio Solution.

Good to know, thanks for telling us.

> DIGPAK drivers are used in many DOS games, and provide hardware abstraction 
> to software developers through a well-documented INT 66h API.

What specific games used it? If we can find a compatible game that has
sources available, that might increase motivation for some people.

> A few days ago, he clarified the license terms under which he was releasing 
> this code. He has chosen to release it under the MIT License.
>
> His repository can be found here: https://github.com/jratcliff63367/oldsource

Cool. (Seems everything is conditionally defined in one large [240 kb]
SHELL.ASM.)

> It would be great if we could include these drivers in the FreeDOS 
> distribution, and perhaps also use them as a basis
> for the development of DOS drivers for more modern audio hardware.
>
> Unfortunately, these drivers have been written in TASM Ideal mode dialect. To 
> my knowledge, there are currently no open source assemblers
> in existence that can build such sources.

LazyASM (LZASM) was a "freeware" assembler that was TASM compatible
(Ideal only, case sensitive only). I think it was probably a licensed
(Russian?) fork of TASM itself! It's still available on various sites,
e.g. SAC.sk:

* https://www.sac.sk/download/utilprog/lzasmx.zip (DOS .EXE via WDOSX)
* https://www.sac.sk/download/utilprog/lzasm.zip (Win32)

OpenWatcom's WASM has "-zcm=tasm" for partial support.

(I also still have my copy of TASM32 5.3 from 2007's Turbo C++
Explorer. Not sure whether newer Embarcadero C++ demo downloads
include it. Probably!)

I'm far from an expert, but the complexity depends on what features
were used (preprocessor, macros, structs), how much .OBJ or
segmentation support is needed, external dependencies (compilers,
linkers, libraries, include files), etc.

> Would anybody here care to help "fully liberate" these assembly sources by 
> porting them to another dialect, such as regular MASM
> (that can be built with WASM or JWASM) or NASM?

JWasm and MASMv6 syntax (see _Art of Assembly_ book) might be a good
candidate. But overall I think NASM is the best assembler to use, for
various reasons. However, it's very imperfect for such old legacy
code.

> I know that VBE/AI is considered a more modern DOS sound API to standardize 
> on for DOS driver development, but at least the DIGPAK drivers
> are already out there, and now with sources too. Also, one of the DIGPAK 
> drivers in these sources is a wrapper around VBE/AI,
> which would be particularly useful, since it would allow possible future 
> VBE/AI drivers to be made to work with many existing games.
>
> I've gained some experience from trying to port the sources of Virtual Sound 
> Blaster (VSB) from TASM to other assembly dialects,
> and although I haven't been successful with that, I have gained some 
> experience from it. With some help from other more experienced
> assembly coders here, I believe I can be more successful porting these 
> drivers.
>
> Who's up for helping me with this? Your help would be greatly appreciated. :)

My experience is fairly low, honestly. Mostly I've just been fiddling
with converting PSR Invaders ("old MASM" syntax) via scripting to
target various assemblers, but it's a simple 8086 .COM, so it's not
too complicated (but hard enough!). So I'm not sure I'm much help.

Anybody truly interested might want to buy Tom Swan's _Mastering Turbo
Assembler_ (2nd ed.) used from Amazon. (I think I checked, and it was
only $16.)

Again, not sure of the overall complexity required here. Legacy code
tends to be VERY myopic.

Good luck! (I'll ask on BTTR to see what they say.)


_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to