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=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7c65ca5609a07b8c X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-02-23 11:44:51 PST Path: archiver1.google.com!news2.google.com!fu-berlin.de!newsfeed.stueberl.de!proxad.net!usenet-fr.net!enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: sk Newsgroups: comp.lang.ada Subject: Re: Hardware Interrupts Date: Mon, 23 Feb 2004 13:49:02 -0600 Organization: Cuivre, Argent, Or Message-ID: References: <20040222110018.15E3A4C40CF@lovelace.ada-france.org> <001501c3f9f3$533ece60$0201a8c0@win> NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: melchior.cuivre.fr.eu.org 1077565402 270 212.85.156.195 (23 Feb 2004 19:43:22 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Mon, 23 Feb 2004 19:43:22 +0000 (UTC) Cc: comp.lang.ada@ada-france.org Return-Path: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020828 X-Accept-Language: en-us, en X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Xref: archiver1.google.com comp.lang.ada:5750 Date: 2004-02-23T13:49:02-06:00 andrew@carroll-tech.net : > Are the things I am asking about the same things that motivate > AdaOS to build a compiler? I do not know about the AdaOS group, but you can get quite far without having to hack the GNAT run-time or the compiler. The area where GNAT (on Linux or Windows, I do not know about *BSD's) will be unreliable, as "Jerry van Dijk" points out, is in 16-bit mode. GCC does document a switch that causes it to produce 16-bit code, but it also documents that they, the gcc people, would not rely on it (by the way "Jerry van Dijk" authored an inline assembler tutorial for GNAT which is now part of the manual. I found the turorial to be one of the most useful practical discussions of "gas" assembly even though it is limited to an Ada inline scope). Some thoughts for you: procedure X is procedure A is begin null; end A; procedure B (N : natural) is begin null; end B; procedure C (N : in out natural) is begin null; end C; Num : Natural; begin A; B (Num); C (Num); end X; Use the "-s" gnatmake switch to compile and peruse the produced assembly code and notice the pushes and pops prior to and after the calls to the procedures. This would give you a good idea of how gcc/GNAT passes parameters to procedures etc at the assembly level. The study should give you some ideas on how to create assembly routines which you can "pragma Import (ASM, ...)" (PS Still hoping someone has a EduOs-Ada-CINA that they can get back to me, thanks :-). -- ------------------------------------------------- -- Merge vertically for real address -- -- s n p @ t . o -- k i e k c c m -------------------------------------------------