comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: FreeDOS, Janus/Ada and GNAT
Date: Fri, 5 Jul 2019 15:09:12 -0500
Date: 2019-07-05T15:09:12-05:00	[thread overview]
Message-ID: <qfoap9$u4f$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: 1ddb4817-8bb0-4cc4-9653-de12f8a746d6@googlegroups.com

<joakimds@kth.se> wrote in message 
news:1ddb4817-8bb0-4cc4-9653-de12f8a746d6@googlegroups.com...
>FreeDOS is an open source implementation of MS-DOS and in June 2019 
>celebrated 25 years in existence.

...
>There is another Ada compiler called Janus/Ada where tasks are not mapped 
>by the
>Ada-Runtime to OS-threads and an Ada application built with Janus/Ada is 
>effectively
>a single thread application no matter how many tasks are used in the Ada 
>code.
>Considering the task implementation by Janus/Ada, it sounds like a perfect 
>fit for
>FreeDOS.

>Of course Janus/Ada produces win32 applications and not DOS application ...

The MS-DOS version of Janus/Ada 83 is still available (mainly because we 
mass-produced those and there are a number of cartons of them still here). 
Of course, using that would either require reading floppies or me spending 
some time to copy the floppies onto a CD. (The serialization scheme used for 
those expects to be able to modify the installation media, so one cannot 
make a master CD for everyone without replacing the instaaller -- which 
seems like too much work for this obsolete product.)

We also had a version for DOS extenders available until the mid-2000s. With 
sufficient interest, that could be ported to FreeDOS or possibly the last 
version (3.1.1d) could be used (with similar issues with the installer). 
Dunno what the 32-bit API for FreeDOS looks like; we supported the Pharlap 
DOS Extender along with another one that we used to distribute with the 
compiler.

.. > but there is a DOS Extender called HX DOS which can execute many win32
>applicatins on FreeDOS. Trying it out reveals that there are three win32 
>calls
>which HX DOS could not emulate:
>
>import not found: InitializeSListHead
>import not found: GetModuleHandleExW
>import not found: FindFirstFileExW

I can't find any evidence that any of these are used in the Janus/Ada 
runtime or by the Janus/Ada compiler.

We use FindFirstFileA; it's possible that is implemented in terms of 
FindFirstFileExW, but it seems odd that's not available. Similarly, we use 
GetModuleHandleA; again, it's possibly implemented in terms of 
GetModuleHandleExW, but it seems necessary to some version of 
GetModuleHandle to exist.

The first one I have no idea what it is. The Microsoft document doesn't help 
much on that, saying it is "for system use only".

It's conceivable I guess that something in the Microsoft SDK uses these 
things (I have no idea what that would be or why it is getting added).

>If HX DOS could be extended to emulate these calls then Janus/Ada can 
>*probably*
>be used to build multi-task executables for FreeDOS.

Certainly the MS-DOS version of Janus/Ada supported that, and I would be 
rather surprised if it didn't work on more recent compilers. The Win32 
version does a few odd things vis-a-vis memory management to get around 
Windows limitations on the use of the stack, but otherwise it should pretty 
vanilla.

                                                          Randy.



  parent reply	other threads:[~2019-07-05 20:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-04  9:04 FreeDOS, Janus/Ada and GNAT joakimds
2019-07-04 13:09 ` joakimds
2019-07-05 20:09 ` Randy Brukardt [this message]
2019-07-08 12:47   ` joakimds
2021-01-01 21:41     ` Joakim Strandberg
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox