david@uhccux.UUCP (David Lassner) (09/14/87)
I've inherited a Mac application that was done in Pascal with the Lisa Workshop. I don't have a Lisa available, and would probably want to move it to a native Mac development environment anyway. I took a quick pass at compiling it with LS Pascal, and found numerous incompatibilities (external declarations, -exit- statement, type coercion) some of which are non-trivial to rewrite. So, a couple of questions: 1) Is MPW Pascal compatible with Lisa Pascal? Or at least more compatible than LS Pascal? 2) Is there a Pascal conversion utility similar to the one available for porting assembler programs from Lisa's to MPW? If so, is it any good? Any other advice from people who have done similar ports is warmly solicited. Thanks, David -- David Lassner, University of Hawaii Computing Center, 808/948-7351 INTERNET: david@uhccux.uhcc.hawaii.edu PLATO: david/p/hawaii UUCP: {ihnp4,uunet,ucbvax,dcdwest}!sdcsvax!nosc!uhccux!david BITNET/OTHER: david%uhccux.uhcc.hawaii.edu@rutgers.edu
storkel@rice.bitnet.UUCP (09/15/87)
MPW Pascal is very compatable with Lisa Pascal. This summer, I converted a Lisa Pascal program that contained over 400k of source into MPW format. Just about everything ran without a hitch. As I recall some of the compiler options were different, or had been removed. It also seems that one of the logical bit operators (BitAnd, or BAnd, or something like that) had to be changed. I don't know of any program that automatically converts Lisa Pascal to MPW. If you need anymore info, e-mail me. Scott Storkel Rice University Macintosh Software Development Team (STORKEL@RICE.BITNET)
infinity@well.UUCP (sunny at Infinity Software) (09/15/87)
We've successfully converted one of our programs from Lisa Pascal Workshop / The Lisa Assembler to Mac Programmers Workshop Pascal / Assembler and the only hacking we had to do on the Pascal was to resolve labels of 8chars or more... Lisa Pascal finds that LabelABC is the same as LabelABCD is the same as LabelABCDE, whereas MPW Pascal finds these each to be unique. Resoures are easily converted by DeRezing the resource fork of your original applicatoin. Sunny -- Infinity Software, Ltd. 1144 65th St. #C Emeryville, CA 94608 (415)420-1551 Voice; (415)420-1756 Data; USENET: infinity@well.uucp
lsr@apple.UUCP (09/17/87)
In article <3956@well.UUCP> infinity@well.UUCP (sunny at Infinity Software) writes: >We've successfully converted one of our programs from >Lisa Pascal Workshop / The Lisa Assembler > to >Mac Programmers Workshop Pascal / Assembler >and the only hacking we had to do on the Pascal was to >resolve labels of 8chars or more... One way to discover these problems is to run the MPW PasRef tool on the Lisa Pascal source, and look at the output for potential variable conflicts. (It should be possible to write an MPW Shell script to locate these.) Then you can use the Canon tool to correct the identifiers. -- Larry Rosenstein Object Specialist Apple Computer AppleLink: Rosenstein1 UUCP: {sun, voder, nsc, mtxinu, dual}!apple!lsr CSNET: lsr@Apple.com
cck@cunixc.UUCP (09/17/87)
If you have assembler code, then if it must be non-a5 relative (e.g. interrupt level routine), you must be careful about the way you define it. In particular, the standard coding methodology is something like: procn proc export data <data decl> code endp but this ends up with a5 relative code. recoding this as: someprocset proc export <data decl> procn: <procedure code> endp will give you non-a5 relative code. Other than this, the problems with Band, etc (which as I remember, actually only occurs with one release of MPW (1.0.2?)), different include file locations, and non-truncated identifier names, I think you'll find things pretty easy. I've ported a 10K line program from Lisa Pascal to MPW in a couple of days - the only major problem was because of the a5 relative addressing in the assembler (it was ddp listener code that should not have been a5 relative - this took a week to figure out - mostly because I assumed that MPW did the right thing :-). Charlie C. Kim User Services Columbia University