[fpc-pascal]FreePascal, Go32 and inDOS-flag
Aitor Santamaria Merino
aitor.sm at wanadoo.es
Tue Jan 8 01:29:53 CET 2002
Hi,
This is a question, but also a comment, that I hope could help many people.
I am trying to write a program to write a screehshot capture program,
working as a TSR activated with certain combination (AltGr+F8). In order
to avoid problems with 16/32 bit when doing a TSR, I have made it under
TurboPascal.
Just in case you believe I am having that problem, I use the BIOS
variable ABSOLUTE $0040:$004E to determine the pageoffset from segment
$b800 to determine where the characters should be. It outputs a BMP file.
Well, the program works well, I have tried shooting plain COMMAND.COM
and TurboC, and works fine.
However, I haven't been able to shoot any freepascal application. I'll
explain what I see: I did this testing program (to create TEST.BMP file).
My fisrt testing was WITHOUT exec, I executed the program, then this
test program.
My second testing was EXECuting internally.
I did another testing replacing delay(5000) by readln;readln;
=====
uses crt, dos;
begin
exec ('VGASHOT.EXE','TEST');
writeln ('inside');
delay (5000);
clrscr;
writeLn ('final');
end.
======
In ALL the cases, the result was always THE SAME:
I could capture the 'final' word, but was NEVER able to capture the
'inside' word.
But, see how curious, I have realised that my TSR program does not make
use of DOS calls (other than SetIntVect,Keep, etc, performed only at
install/uninstall).
So my question is: does any FreePascal program capture the inDOS flag
forever until the program exits??
Aitor
More information about the fpc-pascal
mailing list