[net.micro.cpm] TurboPascal User Area Bug

ABN.ISCAMS@USC-ISID.ARPA (04/03/85)

NetLandians,

A separate message described a bug in TurboPascal V2.0 for CP/M-80.  If
you are running TurboPascal in a User Area other than 0, when you exit
TurboPascal it will force you into User Area 0 whether you like it or not.

The fix described several bytes in TurboPascal to patch, but was specific
to Version 2.0 only.

Here's the fix for TurboPascal Version 1.0 for CP/M-80:

Using DDT, DSD, EDFILE, or whatever, list 2741H...

Original code:

2741  LDA 3E24		;where TurboPascal earlier stored the
			;current disk/user.
      DCR A		;always
      STA 0004		;where CP/M keeps the current disk/user
      JMP 0000		;return to CP/M

I couldn't find exactly WHERE TurboPascal messes up that stored
disk/user value, but it sure 'nuff gets blown away somewhere.

So... just eliminate that retrieval altogether.  It appears that
the original CP/M stored value at 0004 does NOT get changed (I tried
various disk reads and writes, and it remained the same disk and user
area as when I started).

2741  JMP 0000		;just return to CP/M, skipping the rest.
      DCR A		;leave the rest of the mess...
.....

Now, when you exit TurboPascal, you'll still be in your original
disk and user area.

Regards,
David Kirschbaum
Toad Hall
(ABN.ISCAMS@USC-ISID.ARPA)