Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2014-06

equivalent/workaround for $B800 In free Pascal

4 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Van Canneyt
to mokashe.ram
mokashe.ram wrote 8 lines
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.

Reply by email

Tomas Hajny
to mokashe.ram: It used to be possible (Turbo Pascal version 7.0 for DOS)to access screen memory using…

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

Reply by email