Re: GdM's DOS 3d engine in Ada



Hi,

On Mar 13, 4:59 pm, Gautier <gaut...@xxxxxxxxxxxxxxx> wrote:

Of course, I've heard that the Ada front-end compiles itself, so
that's better than nothing, right?

It is so. I do not however use Ada at all, so I have not done any other
tests myself. Perhaps somebody could help.

It's done - of course my biggest hurdle was to find the right system to
compile on. DOSBox and Vista gave me some compiler crashes (not enough
memory); XP was perfect.

Although I doubt XP is perfect by any means, I guess here it's less
crappy. I think you'll appreciate the recent quote from AuroraUX:
"Ada was chosen over other languages because it sucks the
least." ;-)

The problem is most likely bad hardcoded default DPMI memory limits
(which Vista, DOSBox, and DOSEMU all share). All three can usually be
overcome with a few settings adjustments (registry,
dosbox.conf, .dosemurc).

On the results side, there was a strange effect
on displayed colours, but once all new warnings were gone (mostly about
assembler insertions that required a "volatile" flag), the problem was
gone as well.

Confirmed.

The new GNAT validity checks found three potential bugs.
I'll send the latest archive to Rugxulo; maybe we'll agree on a
permanent place for the file ?

I dunno, DJ still has somewhat outdated files of various things
(libkb, lzop, cwsdpmi) although I know of no good way for him to (only
partially) update RSXNT without some license clash. But I haven't had
time to bother learning the (very specific) .ZIP layout just to upload
these to him anyways. I guess anybody who really cares can find the
files themselves.

For now, anybody can get the latest DOS 3D engine here (w/ srcs) :

http://rugxulo.googlepages.com/eng3d018.zip (920k)

The compilation runs "out of the (dos)
box" :-). No need to know Ada, just start one of the "make*.bat".
The demo is probably a good stress-test: some large data put as sources,
low level things like keyboard & sound drivers, data streaming,
decompression, etc.

It's definitely way more interesting than most tests. :-)

Only tasking is untested there. There are classical
examples (the dining philosophers ?) that could be fine to be tested.
Not sure what a "serious" test for tasking is...

Me either, but here's a quick link:

http://en.wikibooks.org/wiki/Ada_Programming/Tasking

There is however more problems expected with upcoming gcc-4.4.
Some time ago I tried to build weekly snapshots of it as
Linux to DJGPP cross-compiler and run into trouble with Ada.

Standard DJGPP does not have sockets, so I had to turn off socket support.

Can WATT-32 not be used?

Ada library did not compile even after that. I'm not sure that I'll have
enough time to fix that.

Phew, looks difficult. Anyway, no need to worry too much: I guess that
the intersection DOS and Ada should not be that big...

Which is a bit ironic considering DOS always being touted as suitable
for embedded systems. (Just don't use VFAT, ugh.)
.



Relevant Pages

  • Re: why learn C?
    ... code in a way that Ada generics do not. ... Please give an example of one case where a C++ template gives more compile ... Ada gives you low-level type safety out of the box, ... "I can write type safe code in C". ...
    (comp.lang.ada)
  • Re: why learn C?
    ... code in a way that Ada generics do not. ... Please give an example of one case where a C++ template gives more compile ... Ada gives you low-level type safety out of the box, ... "I can write type safe code in C". ...
    (comp.lang.ada)
  • Re: need to be able to know basic MASM ONLY
    ... The reason Dirk's code looks "different" may be that it's for dos. ... START: mov ax, DATEN ... trying to compile his first program, after that I abandoned it all. ... VS with Nasm (hmmm, ...
    (comp.lang.asm.x86)
  • Re: Dynamic functions
    ... Is there any reason that you cannot convert the function to Ada, ... it to a file, compile it to a plug-in/DLL/shared library, and then ... Execution includes elaboration of the code. ... mean to call the compiler, to link the DLL, to load the DLL. ...
    (comp.lang.ada)
  • Exceptions (was Re: How do I go about creating a minimal GNAT runtime?)
    ... To compile and execute a simple program that uses a raise statement ... Rchecks routines defined in ... System.CRTL -- defines C RTL (not used in an Ada only OS) ... Then there the "System.Soft_Links" package. ...
    (comp.lang.ada)