[net.micro.cpm] Turbo Pascal patch

fsbrn@Brl-Voc.ARPA (09/04/84)

From:      "Ferd Brundick (VLD/LTTB)" <fsbrn@Brl-Voc.ARPA>

Haah,

Several months ago someone requested a patch for Turbo Pascal so that
it would automatically load the error message overlay file without
asking the user first.  Well, this weekend I finally poked around and
wrote a patch for both Z-80 versions (1.0 and 2.0).  In essence, what
happens is that Turbo displays the question, calls a subroutine to
read the response, and stores the response.  The yes_or_no sbr returns
a 0 if the answer was 'N', and non-zero (I didn't check the exact
value) if the answer was 'Y'.  Turbo then loads the message file if
the zero flag is not set.

The patch given below overwrites the call to the "display string"
function and the start of the message.  It clears the A register, adds
one to clear the zero flag, and branches past the call to yes_or_no.
If don't you want to load the error file, change the increment
instruction to a no_op.

When the patched Turbo is run, the copyright message will be displayed
until the error file has been loaded, then it will display the "main"
menu.  If the error file is not being loaded, the c-r message will be
displayed briefly, to be replaced by the main menu.  Remember, this
patch is for the Z-80 versions, altho a similar patch could probably
be used for the IBM version.

NOTE: in the patches below, all user input is in lower case, and
      comments to the patcher are in brackets [].

------------------------------------------------------------

            Patch for Z-80 version 1.0

A> ddt turbo.com
DDT VERS 2.2
NEXT  PC
6F00 0100
-d1e40,1e6f      [ display original code ]
1E40 6E 63 2E 0D 0A 0A 00 21 23 01 CD A5 01 CD F8 01 nc.....!#.......
1E50 0D 0A 0A 0A 49 6E 63 6C 75 64 65 20 65 72 72 6F ....Include erro
1E60 72 20 6D 65 73 73 61 67 65 73 00 CD 1F 29 32 6D r messages...)2m
-a1e4d           [ enter patch in assembler ]
1E4D  sub a
1E4E  inr a      [ type NOP if you DON'T want the error file loaded ]
1E4F  jmp 1e6e
1E52  .          [ exit from assembler input mode ]
-d1e40,1e6f      [ display patched code ]
1E40 6E 63 2E 0D 0A 0A 00 21 23 01 CD A5 01 97 3C C3 nc.....!#.......
1E50 6E E1 0A 0A 49 6E 63 6C 75 64 65 20 65 72 72 6F n...Include erro
1E60 72 20 6D 65 73 73 61 67 65 73 00 CD 1F 29 32 6D r messages...)2m
-g0              [ exit from DDT ]
A> save 110 turbo.com    [ save patched version ]
A>

------------------------------------------------------------

            Patch for Z-80 version 2.0

A> ddt turbo.com
DDT VERS 2.2
NEXT  PC
7800 0100
-d2100,212f      [ display original code ]
2100 6C 3A 20 00 21 53 01 CD D0 01 CD 25 02 0D 0D 0A l: .!S.....!....
2110 0A 0A 49 6E 63 6C 75 64 65 20 65 72 72 6F 72 20 ..Include error 
2120 6D 65 73 73 61 67 65 73 00 CD 42 2c 32 24 44 C4 messages..B,2$D.
-a210a           [ enter patch in assembler ]
210A  sub a
210B  inr a      [ type NOP if you DON'T want the error file loaded ]
210C  jmp 212c
210F  .          [ exit from assembler input mode ]
-d2100,212f      [ display patched code ]
2100 6C 3A 20 00 21 53 01 CD D0 01 97 3C C3 2C 21 0A l: .!S.....<.,!.
2110 0A 0A 49 6E 63 6C 75 64 65 20 65 72 72 6F 72 20 ..Include error 
2120 6D 65 73 73 61 67 65 73 00 CD 42 2c 32 24 44 C4 messages..B,2$D.
-g0              [ exit from DDT ]
A> save 119 turbo.com    [ save patched version ]
A>

------------------------------------------------------------

                                        dsw, fferd
                                        Fred S. Brundick
                                        aka Pascal Postman
                                        USABRL, APG, MD.
                                        <info-pascal-request@brl-voc>