equivalent/workaround for $B800 In free Pascal

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

equivalent/workaround for $B800 In free Pascal

mokashe.ram

Hi Every One,

It used to be possible (Turbo Pascal version 7.0 for DOS)to access
screen memory using $B800


Is there an equivalent/workaround using Free Pascal version 2.6.4 ?


Thanks,
Sudarshan

Reply | Threaded
Open this post in threaded view
|

Re: equivalent/workaround for $B800 In free Pascal

Michael Van Canneyt


On Mon, 16 Jun 2014, mokashe.ram wrote:

>
> Hi Every One,
>
> It used to be possible (Turbo Pascal version 7.0 for DOS)to access
> screen memory using $B800
>
>
> Is there an equivalent/workaround using Free Pascal version 2.6.4 ?

use the video unit. It is documented.

Michael.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: equivalent/workaround for $B800 In free Pascal

Tomas Hajny-2
In reply to this post by mokashe.ram
On Mon, June 16, 2014 10:09, mokashe.ram wrote:


Hi Sudarshan,

> It used to be possible (Turbo Pascal version 7.0 for DOS)to access
> screen memory using $B800
>
> Is there an equivalent/workaround using Free Pascal version 2.6.4 ?

Have you read all the previous e-mails providing answers to your previous
questions? I believe that all the options have already been covered there,
but let's summarize again:

- Direct access to screen memory is not possible from standard application
level on current platforms (it is still possible using the GO32v2 target
supported by FPC and intended for running under Dos).

- Different operating systems provide different means for 'low-level'
access of the video console (some of them allow more control, some of them
less), but it always requires changing the original application to some
extent (you cannot just do find&replace and recompile). These are
obviously accessible for FPC (via unit Windows for MS Windows platforms,
unit VioCalls for OS/2, access to $B800 for Go32v2, etc.), but the source
code using these platform-specific constructs is then obviously not
portable across different targets.

- FPC provides two cross-platform solutions, both having certain
advantages and disadvantages:

  1) One of them (slightly higher level compared to your original
construct using $B800 segment access) is using unit Crt with its
routines TextColor, TextBackground (or TextAttr variable as an
alternative to these two routines), GotoXY and Write.

 2) The other is using unit Video with its VideoBuf^ based access
(combined with UpdateScreen and obviously also InitVideo and DoneVideo
routines) - this provides a fairly low-level construct more similar to
the old approach used in your original DOS application created for TP/BP.

Tomas


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: equivalent/workaround for $B800 In free Pascal

mokashe.ram
Thanks Tomas