Article View: comp.os.msdos.programmer
Article #5585Re: TSR programs: printing formatted text and spawning a process?
From: Reino de Boer
Date: Wed, 03 Apr 1991 08:44
Date: Wed, 03 Apr 1991 08:44
107 lines
4238 bytes
4238 bytes
In <23315@teda.Teradyne.COM> mikel@teda.Teradyne.COM (Mikel Lechner) writes:
>In article <28075@rouge.usl.edu> anon@rouge.usl.edu (Anonymous NNTP Posting) writes:
>>
>> Another problem I am having is how to spawn a child process from
>>within the interrupt handler I am using as the TSR. I am using Turbo C and
>>have tried the 'spawn' function without luck.
>Now another consideration. If you call DOS to EXEC a program from the TSR,
>the TSR will not be the parent of the program. Instead the program
>that was interrupted will be the parent of the new program. This might
>have implications for the interrupted program.
Using my home-made TSR-library (TP6.0), I tried to pop up the following:
procedure popup;
begin
swapvectors;
exec( getenv( 'COMSPEC' ), '' );
swapvectors;
if doserror <> 0 then begin
writeln( 'doserror = ', doserror );
while readkey = #0 do
end
end;
and immediately ran into the problem I should have thought of in the
first place:
The program you are interrupting (let's call it IP) is (in general) using
all available memory, which fails the above call to exec with
doserror = 8 (Not enough memory).
I tried to popup the above code while running an IP using very little memory,
and everything went well.
Why bring this all up ???
Because, even if you get all the critical section/error flags, psp's,
dta's, local stack, etc. right, you still have to deal with the
above-mentioned problem.
I haven't tried the following, but with some :-) thought (and programming)
I think it solves the above-mentioned problem:
From comp.binaries.ibm.pc, volume 02, issue 046 (READ.ME):
SWAP.COM
This program allows you to shell out of your favorite editor and
compile a program without worrying about running out of memory. SWAP
works by swapping main memory to expanded memory (EMS V3.2 or better) or
to disk, freeing main memory. Then starts your compiler or whatever.
This program is from an article called "Swap" in Dr. Dobb's Journal (Vol
14, No 4, April 1989, pages 44-48). Included is the assembly source
code (SWAP.ASM) and the executable (SWAP.COM). You can remake the
executable by the following commands:
MASM SWAP;
LINK SWAP;
EXE2BIN SWAP SWAP.COM
SWAP has the following command line options:
SWAP [options] command [command-parameters] [>filename]
Brackets indicate optional parameters.
SWAP options are:
-C Copy redirected output to console.
-D Disk file C:\SWAP.DAT is used instead of expanded
memory.
-F Forces SWAP to continue even if an interrupt vector
points to the swappee.
-Q Quiet operation. Informational messages are not
displayed.
"command" is any command that can be issued at the DOS prompt.
"command-parameters" are parameters or options for the command.
"filename" is a DOS file or device to which output from the
command be directed.
The thing to do would be to reprogram the (in cbip 02/046) included SWAP.ASM
to be an external callable function (let's call it swapexec) and in your TSR
do something like:
{$L SWAPEXEC}
procedure swapexec( command, args : string ); external;
procedure popup;
begin
swapvectors;
swapexec( getenv( 'COMSPEC' ), '' );
swapvectors;
if doserror <> 0 then begin
writeln( 'doserror = ', doserror );
while readkey = #0 do
end
end;
Hope this helps -- Reino
--
Reino R. A. de Boer "We want to build the right product right, right?"
Erasmus University Rotterdam ( Informatica )
e-mail: reino@cs.eur.nl
Technical Details
Message-ID:
<1991Apr3.084402.16063@cs.eur.nl>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!spool.mu.edu!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!mcsun!hp4nl!eurtrx!euraiv1!reinoReferences:
<28075@rouge.usl.edu> <1991Mar29.151245.21066@athena.mit.edu> <23315@teda.Teradyne.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!spool.mu.edu!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!mcsun!hp4nl!eurtrx!euraiv1!reino From: reino@cs.eur.nl (Reino de Boer) Newsgroups: comp.os.msdos.programmer Subject: Re: TSR programs: printing formatted text and spawning a process? Message-ID: <1991Apr3.084402.16063@cs.eur.nl> Date: 3 Apr 91 08:44:02 GMT References: <28075@rouge.usl.edu> <1991Mar29.151245.21066@athena.mit.edu> <23315@teda.Teradyne.COM> Reply-To: reino@cs.eur.nl Organization: Erasmus University Rotterdam Lines: 107