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 10:40:55 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!elnk-pas-nf1!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!newsread2.news.pas.earthlink.net.POSTED!a6202946!not-for-mail From: Jeffrey Carter Organization: jrcarter commercial-at acm [period | full stop] org User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Low Level Ada References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Date: Wed, 19 Nov 2003 18:40:54 GMT NNTP-Posting-Host: 63.184.32.189 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.news.pas.earthlink.net 1069267254 63.184.32.189 (Wed, 19 Nov 2003 10:40:54 PST) NNTP-Posting-Date: Wed, 19 Nov 2003 10:40:54 PST Xref: archiver1.google.com comp.lang.ada:2689 Date: 2003-11-19T18:40:54+00:00 List-Id: Stephane Richard wrote: > 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? Assuming you're talking about an OS such as DOS, where I've done this kind of thing in Turbo Pascal and Ada 83, sure. The basic premise is something like type Screen_Image is array (...) of ...; -- char/attr pairs, or whatever Screen_Memory : Screen_Image; for Screen_Memory'address use ...; Work_Space : Screen_Image; ... -- Mess around with Work_Space Screen_Memory := Work_Space; This was fast enough, on a 16 MHz 386, that you didn't see any flicker, and I was working in graphics mode, with a lot more bytes than character mode. In Turbo Pascal I had to use pointers, and set one pointer to point to the screen memory. Then I did something like Screen^ := Work^; (equivalent to Screen.all := Work.all;) HTH. -- Jeff Carter "I wave my private parts at your aunties." Monty Python & the Holy Grail 13