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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,6a4dfe772544eb65 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-11-19 15:37:42 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.mathworks.com!wn13feed!wn12feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi.com!attbi_s02.POSTED!not-for-mail From: Freejack Subject: Re: Low Level Ada Newsgroups: comp.lang.ada Message-ID: References: User-Agent: Pan/0.11.4 (Unix) Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Comment-To: "Stephane Richard" NNTP-Posting-Host: 12.245.85.50 X-Complaints-To: abuse@comcast.net X-Trace: attbi_s02 1069285061 12.245.85.50 (Wed, 19 Nov 2003 23:37:41 GMT) NNTP-Posting-Date: Wed, 19 Nov 2003 23:37:41 GMT Organization: Comcast Online Date: Wed, 19 Nov 2003 23:37:41 GMT Xref: archiver1.google.com comp.lang.ada:2700 Date: 2003-11-19T23:37:41+00:00 List-Id: On Wed, 19 Nov 2003 08:43:58 -0500, Stephane Richard wrote: > By the subject line I mean: > > Is there a way, in Ada to move memory around so to speak. > > For instance, let's say I want to create an Array that would hold > characters with the goal to send it to the video card directly (address > $B800). > > Could I take an array of Characters, and "move it" to address $B800 ? or > something like it? Yes. I've been toying(like I do with just about everything else on this sytem) with the Linux Framebuffer. Now, at least under Linux, you can map your video cards memory space to an Ada structure, and then shove things into that structure. Of course, that could be alot of work if you want to get access to all your cards advanced features.(Multihead, etc...) The easier approach is to see if your video cards manufacturer provides an API or other method of interfacing with your video card driver. This is the approach taken by the Framebuffer(mostly). With Windows you'd probably have to use DirectX, MFC, or some other absurdly large high level abstraction. Some OpenGL drivers provide a limited set of methods for doing direct drawing to the screen. SGI has an Ada OpenGL binding. I dont know if it supports direct memory address access and/or manipulation, but it comes pretty darn close. If you developing an app the requires precision control over the screen methods, this is probably the best route to go. If your goal is to develope your own video card driver, master the Systems Annex, Interfaces.C, and at least make sure you have basic understanding of your machines Assembler language. A bad video card Ramdac timing or Res setting can toast your monitor, your video card, or both. In any case, you will be doing a fair amount of interfacing with C code. Anyways...theres a whole hell of a lot more that can be said here, but I'll leave it at that. I spent a while working on a Forth interpreter that would run in the Framebuffer. Still working on it. Slowly progressing, but I think I'll stick with Ada95 for now. Heh. Freejack