FILE: TPWARMST.PAT
VERSION: 1.00
AUTHOR: Ralph Iden
The following patches for Turbo Pascal versions 1.00, 2.00, and 3.01
modify your program so that it doesn't automatically perform a warm
boot at the conclusion of the program.
RCP/M and BBS programs can eliminate the needless reloading of CP/M
thus saving a little (in some cases, a great deal) of time.
The principal used is as follows: Instead of a jump to the CP/M warm
start vector (0000h), we make the program execute a return which
means, I guess, a return to the CCP (Console Command Processor). In
order to successfuly accomplish this, we must squirrel a copy of
the stack pointer as it existed before the Pascal program was run.
<WARNING: AS I WAS WRITING THIS, A THOUGHT CAME INTO MY HEAD. IF BY
EXECUTING A RETURN, WE ARE JUMPING TO THE CCP, WE MUST INSURE THAT
IT ISN'T OVERWRITTEN OR THE SYSTEM WILL CRASH. YOU SHOULD PROBABLY
SET THE TOP OF MEMORY OF THE PROGRAM TO BE SOMEWHAT LESS (2K???)
THAN THE BEGINNING OF BDOS (ADDRESS LOCATED AT 0006H). THIS WAY,
THE PASCAL PROGRAM WON'T CLOBBER THE CCP AND IT WILL STILL BE
THERE WHEN WE ARE READY TO RETURN.>
Whenever you modify a program for a soft warmstart, note the contents
of 0101 and 0102. Move these values to 010B and 010C respectfully.
If you change the starting address of your Pascal program, these values
will not be as shown below.