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. 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. ------------------------------------------------------------------------ VERSION 1.00 Address Old New ------- -------------------- -------------------------- 0100: C3 76 1D jp start C3 06 01 jp savstk 0103: (No change) (No change) 0106: (Copyright message) ED 73 0D 01 ld (010D),sp C3 76 1D jp start Original stack storage --> 00 00 dw 0000 010F: ED 7B 0D 01 ld sp,(010D) (Return to CP/M via CCP) C9 ret 1D72: 2A DF 00 ld hl,(00DF) C3 0F 01 jp rststk E9 jp (hl) 00DF contains the address to jump to at program end and is set to 0000H by the Pascal runtime. ------------------------------------------------------------------------ VERSION 2.00 Address Old New ------- -------------------- -------------------------- 0100: C3 C9 1F jp start C3 06 01 jp savstk 0103: (No change) (No change) 0106: (Copyright message) ED 73 0D 01 ld (010D),sp C3 C9 1F jp start Original stack storage --> 00 00 dw 0000 010F: ED 7B 0D 01 ld sp,(010D) (Return to CP/M via CCP) C9 ret 1FC5: 2A DF 00 ld hl,(00DF) C3 0F 01 jp rststk E9 jp (hl) 00DF contains the address to jump to at program end and is set to 0000H by the Pascal runtime. ------------------------------------------------------------------------ VERSION 3.01 Address Old New ------- -------------------- -------------------------- 0100: C3 E3 20 jp start C3 06 01 jp savstk 0103: (No change) (No change) 0106: (Copyright message) ED 73 0D 01 ld (010D),sp C3 E3 20 jp start Original stack storage --> 00 00 dw 0000 010F: ED 7B 0D 01 ld sp,(010D) (Return to CP/M via CCP) C9 ret 20DC: C3 00 00 jp warmstart C3 0F 01 jp rststk ------------------------------------------------------------------------ D),sp C3 E3 20 jp start Original stack storage --> 00 00 dw 0000 .