On 1/9/2023 10:51 AM, Knedlik wrote:
Hello!
I have quite some experience programming in various languages ranging from
Python to C++ on modern x64 and Arm64 hardware, but I seem stuck when wanting
to do something on DOS. I’m mainly stuck at advanced stuff like graphics mode,
audio, extending the base system, and also if it’s even possible to have
sprites/spritesheets as files. Any help with places to learn this stuff will be
appreciated.
Well, in addition to what Jerome cautioned about when using VMs instead
of "real iron", one important thing to consider is that DOS doesn't
really have a concept of OS level drivers, certainly not when it comes
to anything video/graphics card related. Any such driver was the
responsibility of the applications running on DOS., though some
rudimentary attempts were made to try and define a standard, for example
like Borland did for their Turbo series of programming languages and
their use of BGI (Borland Graphics Interface).
Also to consider is that back in those days, there were a lot of
competing and partially incompatible (graphics) hardware existed. IBM
had set some "standards" with their MDA (and in extension Hercules with
their Hercules Graphics Card), CGA, EGA and VGA standards. But beside
some very basic memory layout and graphics controller registers, any
compatibility here was only give on the BIOS level (INT10h), which
specially for games and things like sprites that you mentioned, was
commonly deemed to slow, if calls for such functions didn't exist in the
first place.
This is a HUGE difference to today's world, where all lower level stuff
is handled by OS level drivers and the programmer is presented with a
higher level API to the graphics functions. Differences on that level
though exist between different GUI based OS, like any such function will
likely be different between Windows, macOS, Linux, Android, iOS, etc...
Ralf
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel