From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: FreeDOS, Janus/Ada and GNAT Date: Fri, 5 Jul 2019 15:09:12 -0500 Organization: JSA Research & Innovation Message-ID: References: <1ddb4817-8bb0-4cc4-9653-de12f8a746d6@googlegroups.com> Injection-Date: Fri, 5 Jul 2019 20:09:13 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="30863"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader01.eternal-september.org comp.lang.ada:56824 Date: 2019-07-05T15:09:12-05:00 List-Id: 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.