[fa.info-mac] latest on MacAdvantage: UCSD Pascal

info-mac@uw-beaver (01/03/85)

From: <bang!crash!bwebster@Nosc>



(for those of you tuning in late, MacAdvantage is a UCSD Pascal compiler
running under the Finder: yes, mouse, icons, 95+% of the Toolbox, the
whole schmere.  Available for $295.  From now 'til the end of January,
Mac p-System owners can get it for $100; the rest of you can get both
products [which are distinct and separate] for $295.)
 
Got my release copy the other day (I've been working with a beta copy) and
was pleasantly surprised by a number of additons and enhancements.  Pleasant
surprise #1:  the Executive.  It's a small program that brings up a menu bar
to let you quickly invoke the editor, compiler, rmaker, librarian, p-code
applications, etc.  When you're done with that program, you pop back into
the Executive.  Much, *much* faster than bouncing in and out of the Finder.
Also lets you specify where the editor/compiler/etc. reside (vol:file), so
that you can have them spread out over two disks and/or other mass storage.
I've got it running on an IOmega Bernoulli Box for the Mac (5MB flexible
media), and I no longer have any "wait states".
 
Pleasant surprise #2:  the editor.  As mentioned before, it's a Mac-style
editor (mouse, menu bar, scroll bars, etc.) with a few enhancements.  First,
it's disk-based, so the program (or other text file) can be larger than RAM
can hold.  Second, you can have up to four files open at the same time,
making it very easy to cut-and-paste between files.  Third, when you go to
open another file, you can (but don't have to) pick up the name from the
text file that you're currently editing . . . so if you're using include
statements {$I filename }, you can quickly pull up the include file, examine
and/or edit it, then go back to your original file.
 
Continuing disappointment:  still no direct support of assembly language
routines, though a few passages in the manual hint at it as a possible
future option. Yes, there *is* an EXTERNAL declaration, but it's for direct
calls to the toolbox, when you don't want/need to use one of the myriad
units (QuickDraw, etc.) supplied.  For example, if I want to use the Random
function without pulling in all of QuickDraw (and its attendant units), I
can just declare:
        function Random : Integer; external (-22431);
where "-22431" is the decimal equivalent of Random's trap value (A861).
This does suggest a possible, if convoluted, solution:  modify the trap
table and load in some assembled code at the appropriate memory location.
I don't know if that's feasible; have any of you played around like that?
 
                                                ..bruce..
                                        bang!crash!bwebster@nosc
                                        {ihnp4|sdcsvax!bang}!crash!bwebster
$