comp.lang.ada
 help / color / mirror / Atom feed
From: Richard Riehle <richard@adaworks.com>
Subject: Re: Screen Handling packages!
Date: Thu, 23 May 2002 21:29:09 -0700
Date: 2002-05-24T04:26:50+00:00	[thread overview]
Message-ID: <3CEDC195.479B58C0@adaworks.com> (raw)
In-Reply-To: 88d37469ae67efc323ba84e966f7b387.86200@mygate.mailgate.org

Henrik Quintel wrote:

> Hello everybody,
> I am looking for Ada95 packages which can do the following operations:

  [ description of requirement snipped ]

For MS-DOS you may want to use a package supported
by ANSI.SYS.    I believe the contributions by Michael
Feldman in the Ada Software Repository support that.

Another approach, not for the faint of heart, but one I have
seen used successfully is to access Hex B800 directly. At
B800, you have a mapping to the screen at the pixel level.
If you have a system address capability in your compiler
to access B800, you can actually peek and poke with Ada
into that area of memory.

Yoshimi Fujii, formerly of Alsys, wrote a very nice little
Tetris program using the Alsys Ada 83 compiler many
years ago, and he used this trick.   We tried to convert it to
Meridian, but Meridian had a signed integer for System.Address,
and it could not reach data in the high-order part of
DOS memory.

By tweaking the pixels directly, along with their associated
attributes, you can gain enormous speed in your program.

I suppose you could use this trick even with a Windows system,
but I have not tried it  -- and probably would avoid doing it
since there is no end to mischief it could bring upon you.

Probably better off using the ANSI.SYS trick, after all.

Richard Riehle






  parent reply	other threads:[~2002-05-24  4:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-05-22  9:11 Screen Handling packages! Henrik Quintel
2002-05-22 10:08 ` Holger Zwar
2002-05-24  4:29 ` Richard Riehle [this message]
2002-05-24  5:37   ` achrist
2002-05-24 20:23     ` Randy Brukardt
replies disabled

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