Contents | < Browse | Browse >

==  Review:  HighSpeed Pascal           By:  Chris Coulson               ==
==                                      From Amiga Online Review Column  ==


   HighSpeed Pascal ("HSPascal")

   The bulk of this review is about version 1.10; however I have included
some additional information about the new version 1.20 that was released in
late September/early October 1994.


   An Amiga Pascal compiler that is very nearly 100% compatible with Turbo
Pascal 5.0.


        Name:           HiSoft
        Address:        The Old School
                        MK45 5DE

        Telephone:      +44 525 718181
        FAX:            +44 525 713716



   Version 1.10 is currently being advertised for 49.95 UK Pounds, with the
full price of V1.20 99.95 UK Pounds.

   Upgrades for registered users are available:

   From V1.00 to V1.20 - 14.95 UK Pounds + postage
   From V1.10 to V1.20 -  9.95 UK Pounds + postage

   Postage is currently 2.00 UKP within the UK, 4.00 UKP in Europe and 7.00
UKP anywhere else.



      512K RAM required.  I recommend 2MB RAM or more.

      I recommend a second floppy drive or a hard drive.  Hard drive
      installation requires 1.5MB of hard drive space.


      Workbench 1.3 or higher required.




   Amiga 4000/030/882 - 25MHz
   2MB Chip RAM, 4MB Fast RAM
   124MB Seagate Hard Drive
   405MB Samsung Hard Drive
   Microvitec 1438 Multisync Monitor
   AmigaDOS 3.0


   V1.10 requires manual installation, which is best carried out by
dragging the directories/files from the floppy to the required location on
the hard drive.  V1.20 includes an Installer script that makes life a lot
easier.  The installation requires about 1.5MB of hard drive space.


   My first impressions of this package were good.  Upon opening the box, I
encountered two very nicely put together manuals and a HiSoft disk wallet
containing the four disks: two for each version of the compiler.  (V1.20
comes on two disks, containing all the 1.3 and 2.0+ files in archives.)
There is no empty space inside the box, unlike a lot of other commercial
utilities.  When everything is put inside, the box feels quite heavy and
well filled, which somehow gves you a feeling of getting value for your
money.  :-)

   Anyway, after a painless installation, I got my first view of the HiSoft
editor.  For Devpac3 users, the HighSpeed Pascal editor will be instantly
familiar, as it is virtually identical, with only a few changes in the
settings menus (after all it is a Pascal compiler, not a 68000 assembler
:-)).  The editor supplied with V1.20 is slightly different.  Although is
appears the same on the surface, most of the menus have been re-arranged,
with some old options being either renamed or removed and replaced with new
options.  After a year of using V1.10, I am a little lost in the new editor
layout, but it does have advantages over the old editor's and is totally
AmigaDOS 3.0 compliant.

   For those who have never experienced a HiSoft editor before, here is a
quick rundown on what to expect.  The editor runs on the Workbench screen;
so if you can, you should probably run Workbench in some high resolution
mode, unless you like editing source code in medium resolution.  The fonts
used for the source code display and menus are user-definable, which is a
good thing.  There are several menus with quite a few options/sub-menus to
deal with, and some of the menu choices lead to new windows containing
cycle gadgets and string requesters for even more configuration options.
As far as I know, even the 1.3 version of the compiler features 2.0+ style
screen gadgets via hard coded gadget routines.

   V1.20 note: You no longer need to use the Workbench screen.  It can use
the Workbench screen, open its own screen in any screen mode your Amiga can
generate, or even run on a public screen.  To test this last feature, some
of this review, like this paragraph, was written with HighSpeed Pascal
running on the public screen opened by Powerpacker 3.  Being able to open
its own screen is also useful if, like me for instance, you like having a
colourful Workbench but also want fast scrolling through your source code.
No problem: just make HSPascal open its own 2 or 4 colour screen and you
have the best of both worlds.  I assume that it will even work on third
party display boards that add their screen modes into the system mode list,
though I can't test this for myself (would someone like to donate a 24-bit
graphics card?).

   The editor is so good at its job that I use it all the time as a general
text editor.  OK, it's not as good as a dedicated text editor, but since
these tend to cost just as much as the entire HSPascal package, I'll stick
to using the HiSoft editor.  Of course, if you prefer using another text
editor to edit your source code, you can do so.  You can then either load
the source into the HiSoft editor and use the in-built compiler options to
compile the code, or you can just use the CLI interface to the compiler,
which is VERY similar to the DOS interface for PC Turbo Pascal.

   So, once you've got your source code on disk and ready to compile, how
well does HighSpeed Pascal cope with that?  "Very well" is the answer. 
HSPascal implements virtually all of the Turbo Pascal 5.0 functions, with
only the scalable typeface support and some PC specific things missing,
like the memory overlay management commands.  Oh yes, the inline assembler
uses 68000 code rather than 8086 code.  :-)

   There are a few little compatibility problems that are related to the
differences between the Amiga and the PC, mainly in the DOS unit.  However,
they are documented in the Technical Reference manual.  Some other problems
are not.  For example, the standard PC DOS shell is a 25 line display.  On
an Amiga, the Shell display is any height you like.  Thus a Pascal program
written on the PC expecting a 25 line display may well cause a garbled
display on the Amiga.  Of course there are ways around this, like using the
inbuilt function to test the size of the Shell display before writing to
it.  Note that most problems will occur when using Pascal code written for
use on a PC, or if following Pascal tutorials from Turbo Pascal textbooks,
all of which assume that Turbo Pascal is a PC only product (which,
technically, it is).  If you are not concerned with the portability of your
code, you can happily ignore any differences between PC and Amiga and just
get on with writing code.

   So, what about those programmers who would like to include, say,
Intuition routines in their programs?  Well, HighSpeed Pascal does not
directly support Intuition nor any Amiga system functions other than those
needed to emulate Turbo Pascal functions.  Thus, whilst disk handling is
fairly well done, graphics handling is primitive and audio support
apparently non-existent.  However, a full set of Includes are provided (for
AmigaDOS 1.3 and 2.0 with HighSpeed V1.10, or for AmigaDOS 1.3 and 3.0 with
HighSpeed V1.20) so anyone with knowledge of system programming could use
HighSpeed Pascal to create system accessing programs.  For anyone who wants
to write programs like this but who does not know anything about
programming the system directly, you really should steer clear of HighSpeed

   What market is HighSpeed Pascal aimed at?  It would seem that primarily
it is intended for those programmers who need to write standard Turbo
Pascal compatible code without going near a PC, and as a secondary
function, by providing hooks into the operating system, it can be used by
Amiga programmers who might otherwise choose to use C, Assembler, or any
other language.  Personally, I bought it when my Electronics Degree project
became too much for PCQ Pascal to handle.  For my needs, writing a 7000+
line piece of Turbo Pascal code, HighSpeed Pascal was the ideal compiler,
allowing me to write code that I knew, with a little bit of care when
writing the DOS related routines, would function identically on both my
Amiga and the University PCs, and I didn't need to so much as look at a PC
to write the code.  In seven months of program development, I only used a
PC during the last month as part of the final testing/debugging phase of
the project.

   Supplied as part of the package is MonAm, the HiSoft debugger. 
Unfortunately, it is designed to be a 68000 debugger and as a result you
will require some knowledge of 68000 assembler in order to get the most out
of this utility.  To aid debugging, programs can be compiled with debugging
data embedded in the executable, which allows the debugger to display
functions and procedures by name rather than by some arbitrary identifier.
Additionally, you can display the 68000 code alongside the Pascal source
and single step through the code.  It must be stressed that MonAm is NOT a
Pascal debugger, and as the manual states, "One thing to consider before
groping around inside your program with MonAm is that many bugs can be
discovered much more easily by simply looking at the source code."


   The following times show how long HighSpeed Pascal takes to compile
various length pieces of code, when the source code is stored on hard drive
and the executable file is written to the same hard drive.  Note that V1.10
and V1.20 are almost identical in compilation speed, with V1.20 being
slightly slower (around a second or two) for long files.  Of course, since
V1.20 uses the AmigaDOS 3.0 includes and link library, which are larger
than the 2.0 equivalents, the extra data handling required for these
support files may be the cause of the speed differences.

        Program Length (KB/Lines)       Compilation Time

        Minimal program                 less than 0.5 second
        20KB/500 lines or less          less than 3 seconds
        160KB/7000 lines                9 seconds

   The "Minimal program" is the shortest possible (I think) Turbo Pascal

        PROGRAM x;

This test shows the time overheads incurred by the compiler and linker.

   In the third case, the program consisted of a skeleton main program with
most of the code contained in 13 user defined units, along with one
pre-defined unit.  In total then, 15 disk files were used to compile this
program; yet even with all the disk accessing required, compilation was
still very fast indeed.

   The limited (!) number of results is due to two things.  First, I don't
have all that many Pascal programs available to test, and second, most of
the programs I do have are so short that they compile in about 1 second. 
Unless you are writing a huge program or are compiling from floppy to
floppy on a 0.5MB 7MHz 68000 Amiga, HighSpeed Pascal lives up to its name.


   The 202-page User Manual (spiral bound) contains information about the
use of the software.  The 278-page Technical Reference (spiral bound)
containing information about the inbuilt functions/procedures, and some
information about general Turbo Pascal syntax.  An on-disk README file
contains the latest information about the specific software versions/disk
contents, etc.

   The quality of the printed manuals is very good indeed, and unlike most
companies producing Amiga compilers, HiSoft realise the best form of
binding for a software manual is the spiral bound method.  No more
straining with one hand to keep the manual open at the page you want,
whilst trying to type with your other hand.  The contents and index
sections are on the whole very well done, allowing you to find what you
want very easily.

   The Technical Reference is NOT a Pascal programming guide.  You will
need to know at least how to program in Standard Pascal before using this
compiler.  What the reference DOES tell you is the syntax of every function
and procedure provided either within HighSpeed Pascal itself, or in the
supplied units (DOS, Graph etc.).  It also describes the basic syntax of
the Pascal constructs like REPEAT..UNTIL, CASE, IF..THEN..ELSE etc.  and
also the format of the various pre-defined variable types.  In short, it
describes all you need to know to write code using the HighSpeed Pascal
extensions to the basic Pascal language.  Of course, if you already have
experience with TurboPascal 5.0 on the PC, you should be able to dive in
and write code without much use of the Reference.


   It is a very well programmed utility that is, as far as I can see,
completely Style Guide compliant.  It works without complaint regardless of
what commodities I have installed, and as far as the editing and compiling
of source is concerned, it has shown itself to be VERY VERY stable.  Of
course, once you run a compiled program either from the Shell, the
Workbench or from the Run option, HSPascal can do little if the program
causes a system failure, but that is not a fault of HSPascal.


   It is a pity that HiSoft did not extend the TurboPascal function set to
add Amiga specific functions, such as the automatic creation of Intuition
windows, menus etc., in the same way that BlitzBasic allows you to create
Intuition interfaces with little effort.  A missed chance by HiSoft I

   There is no on-line help available.  Although the printed manuals are
excellent, there are times when on-line aid is more useful.  (CD-ROM owners
see below).


   The following is copied from a letter I received from HiSoft.

   "The HiSoft Language CD-ROM will contain the latest versions of all
three language packages; each system is supplied ready to run from the CD,
with installation programs to install the individual programs onto your
hard disk.  Full on-line documentation for each package using AmigaGuide is
also included." Note: 'all three language packages' refers to Devpac,
Pascal and BASIC.

   No price or release dates are known at this time, but it is good to see
HiSoft promoting the serious use of CD-ROMs on the Amiga.


   As far as Amiga Pascal products go, the only other compiler I have used
is PCQ Pascal, which was public domain and is now, I believe, shareware. 
Since PCQ supported only the Standard Pascal command set, and since it
relied on using other PD products like A68K and Blink to create the final
executable program, it cannot be fairly compared to a commercial
TurboPascal compiler like HSPascal.

   Compared to TurboPascal 6.0 on the PC, HSPascal wins on looks, since
Turbo 6 does not have a Windows interface.  As far as compilation of code
goes, both compilers seem to work as well as each other, although I think
HSPascal is somewhat faster in compiling (subjective opinion only).  As an
Amiga user, I prefer using HSPascal, and only use TurboPascal if I have to
be sure that my code will work on a PC, and even then I would only use it
to test the code *after* I had written it using HSPascal.


        None that I know of.


        I have not had to contact the vendor at all.


   A 30 day period from the date of purchase is provided free.  If you
require further support from HiSoft, you must pay for it.  Two schemes
exist: the Silver Support and Gold Support schemes.  Silver Support costs
19.95 UK Pounds and is a one-off payment.  This gives you access to
technical help from HiSoft, and also provides access to reduced cost
upgrades (see the List Price section).  Gold Support costs 39.95 UK Pounds
PER YEAR, but offers free incremental upgrades (i.e.  from V1.1 to V1.2
would be free, but from V1.x to V2.x would not be).  Both schemes cover all
HiSoft products you may own without having to pay any extra.  Thus someone
with HSPascal, Devpac and Hisoft Basic could get support for all three by
paying just once.  If you have already registered another HiSoft product,
HSPascal will be covered by that support registration, you only need return
the registration card to activate the support.


   If you require a fast and reliable Turbo Pascal 5 compatible compiler
for your Amiga, this is the only choice.  If you are just starting out with
Pascal programming, you may prefer the simpler and cheaper PCQ Pascal
option, and perhaps purchase HSPascal at a later date.

   Overall this is an excellent utility and is a worthy companion to the
other great HiSoft products available.  (I'm not connected to HiSoft by the
way; I just happen to like their products.)


   This is a freely distributable document.  Use it however you like, as
long as any alterations do not change the context of the review.  Also,
don't try to pass it off as your own work, because IT ISN'T!



   Daniel Barrett, Moderator,