comp.lang.ada
 help / color / mirror / Atom feed
From: "DuckE" <nospam_steved@pacifier.com>
Subject: Re: VIDEO MEMORY ACCESS WITH POINTERS
Date: 1999/11/27
Date: 1999-11-27T00:00:00+00:00	[thread overview]
Message-ID: <38409762.0@news.pacifier.com> (raw)
In-Reply-To: 81p3sh$h2m$1@news.colba.net

It has been a long time since I've had to address video memory, or used a
system
in which you could directly access video memory.  But if you can do it with
C or Pascal, then this is probably the method you'd use for Ada:

with system.storage_elements;

procedure video_memory_example is

  max_video_memory : constant := 16#2000#;

  type video_cell is mod 2**16;

  type video_memory_type is
    array( 1 .. max_video_memory ) of video_cell;

  video_memory : video_memory_type;
  for video_memory'address use
ystem.storage_elements.to_address( 16#b8000000# );
  pragma volatile( video_memory );

begin
  video_memory( 1 ) := 16#4141#;
end video_memory_example;

In Ada it is convenient to make the range of memory appear as an array that
is fixed at an absolute address.  When you reference elements in the array,
you are referencing that memory.

I hope this helps,
SteveD

??? <xeneve@yahoo.com> wrote in message news:81p3sh$h2m$1@news.colba.net...
> Simple problem: I want to able to read and write directly into the video
> memory using Ada code. Ex: writting the 16bits value 0x4141 at the address
> 0xb8000000.
>
> I'm a new user of ADA, in Pascal or C, it's very simple. But with the
strong
> protection of Ada, I'm lost. I know the basics of pointers in ADA (called
> access), but I don't know how to directly address the value 0xb800000 to a
> pointer. I've tried to assign the address using Unchecked_Conversion and
it
> works. But when I try to read or write the content in memory, a
> constraint_error exception is raisen.
>
> Does anybody could help me?
>
>






  parent reply	other threads:[~1999-11-27  0:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-11-27  0:00 VIDEO MEMORY ACCESS WITH POINTERS ???
1999-11-27  0:00 ` David C. Hoos, Sr.
1999-11-27  0:00 ` DuckE [this message]
1999-11-29  0:00   ` Nick Roberts
1999-11-29  0:00     ` Niklas Holsti
1999-12-01  0:00       ` Robert Dewar
1999-11-28  0:00 ` Vladimir Olensky
1999-11-30  0:00 ` Gautier
replies disabled

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