[fpc-pascal]several questions

Thomas Schatzl tom_at_work at gmx.at
Thu Sep 11 21:58:06 CEST 2003


Hi,

>    Can you only have 2 files open with FP? As above, I fixed my problem
> with opening the third file by closing another, and only having 2 open at
> once. My config.sys has "FILES=20", so it's not a DOS limitation by the
> look of it (unless my FP program is opening up another 18 related system
> files behind the scenes. e.g. units or something).

Probably another 18 files have already been opened by the OS (device drivers
etc) - try setting FILES higher and test again. FPC programs don't allocate
any new file resources by default afaik.

>    I also wanted to know if there's a colour palette somewhere? Or a list
> of the text-names that can be used with "textcolor"?

Try the constants in crt.pp - you can set the color of a specific cell by
setting textattr to the value of "(background-color shl 4) or
foreground-color".

E.g. have a look at the output of the following program:

uses
 crt;

var
 i, j : Integer;

begin
 for i := 0 to 15 do begin
  for j := 0 to 15 do begin
   textattr := i shl 4 + j;
   Write('A');
  end;
  WriteLn;
 end;
 readln;
end.

Iirc in DOS the character cell blinks if the high bit of textattr is set
(meaning that you're basically stuck with the first 7 background colors).
You can disable blinking by calling int 10h with ax=$1003 and bl=$1 (enable
again with bl=$0)

>    When I run pascal programs (not just FP, but other compilers too), the
> last text-colour I used stays even after the program is finished. The
> original default colour only returns after I call something else. e.g.
> DR-DOS editor.

FPC doesn't use the BIOS functions for drawing text characters in DOS - so
the original text attributes should be preserved after exiting for new text.
It leaves the current contents as they are by default though, this is
normal.

Regards,
  Thomas





More information about the fpc-pascal mailing list