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 Arbab
jph@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