arbab%USC-CSE@USC-ECL.ARPA (03/13/84)
I am having problems with the IBM Pascal 1.0 and would appreciate
any hints, pointers, etc.
1. I have a program that goes through pass 1 without
any errors or warnings, but gives a "compiler internal
error" in pass 2.
The only things in the program that may be considered
"funny" are use of units and a bunch of string manipulation
procedures (standard), which should not matter at compile
time anyway.
I tried juggling the program around, commenting out segments
of source code, systematically deleting source code, replacing
procedure bodies with single writeln statements, and never
got through the second pass. If I am lucky, I get one of these
error numbers: 100, 101, 116, 180, 186, etc., otherwise all
I get is "Error: Compiler Internal Error, Contact Technical
Support".
I finally took out all unit, extern, public, etc., reduced it
to a very simple program, and then cut it down to the point
that I got it to compile by deleting one of my variables and
the couple of statements referring to it. Deleting the same
variable from the original program does not work, though.
I do not believe it is the length of the program (about 10
pages of source listing) as I have successfully compiled
larger ones. I think I am somehow pushing the compiler
beyond one of its internal size limits (too many variables
with birthdays in October, perhaps...) but after wasting
a perfect weekend, I could not see any pattern to what
bothered the compiler. WHY ISN'T THERE ANY MENTION OF SUCH
INTERNAL ERRORS AND THEIR CAUSES IN THE MANUAL?
2. It seems like both passes of the compiler and the linker
are "hard-wired" to run from the A diskette. This is very
annoying when you have a hard-disk or extra memory to use
as RAM-disk and you cannot transfer Pascal to run from
either. Is there any way to make the compiler run from
another disk? Maybe there have been discussions on this
issue before, but, again, WHY ISN'T THERE ANY EXPLICIT
MENTION OF THIS IN THE MANUAL?
Farhad Arbabjph@whuxle.UUCP (03/19/84)
#R:sri-arpa:-1759100:whuxle:22700022:000:771 whuxle!jph Mar 19 09:28:00 1984 The problem with getting PASCAL to run from other than the A: drive has to do with reading in of the file PASKEY(sic, I don't have a directory listing handy so I don't know the exact name). To get around the problem, you have to patch the name in PAS1. To do this, rename PAS1.EXE to PAS1.XYZ, then: debug pas1.xyz s 0 l ffff 'PASKEY' ;this searches for the file name when you find the name, it should have A: at the front. Replace this with B: (or whatever other disk you want) and the write the file back with the 'w' command. Rename PAS1.XYZ back to PAS1.EXE and you are in business. You may also want to search for PASCAL.LIB which is fixed for the A: drive and change this to another. If the library is on RAM disk, the LINKs go a lot faster.
djb@gatech.UUCP (David J. Buechner) (03/24/84)
There is a hex patch in the DOS 2.0 manual (Appendix J) which will allow the
Pascal compiler to run as long as PASKEY the file is in the current directory.
I would reproduce said patch here except for uncertainties about copyrights.
----------
Oh I wish I had a 10MB hard disk....... (to the Oscar Myer theme song)
David Buechner
UUCP : ...!{akgua,allegra,emory,rlgvax,sb1,ut-ngp,ut-sally}!gatech!djb
ARPA : djb.gatech@CSNet-Relay CSNET : djb@gatech
Federal snail : Ga. Tech P.O. Box 33336, Atlanta, Georgia 30332