Subject: REVIEW: HighSpeed Pascal compiler
From: [email-masked] (C. J. Coulson)
Date: 15 Nov 1994 22:25:09 GMT
Newsgroups: comp.sys.amiga.reviews

PRODUCT NAME

	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.

BRIEF DESCRIPTION

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

AUTHOR/COMPANY INFORMATION

	Name:		HiSoft
	Address:	The Old School
			Greenfield
			Bedford
			England
			MK45 5DE

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

	E-mail:		[email-masked]

LIST PRICE

	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.

SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS

	HARDWARE

		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.

	SOFTWARE

		Workbench 1.3 or higher required.

COPY PROTECTION

	None.

MACHINE USED FOR TESTING

	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

INSTALLATION

	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.

REVIEW

	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 gives 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 Pascal.

	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."

COMPILATION SPEEDS

	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:

	PROGRAM x;
	BEGIN
	END.

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.

DOCUMENTATION

	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.

LIKES

	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.

DISLIKES AND SUGGESTIONS

	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 think.

	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).

CD-ROM OWNERS READ THIS

	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.

COMPARISON TO OTHER SIMILAR PRODUCTS

	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.

BUGS

	None that I know of.

VENDOR SUPPORT

	I have not had to contact the vendor at all.

WARRANTY

	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.

CONCLUSIONS

	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.)

COPYRIGHT NOTICE

	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!

Chris
email: [email-masked]

---

   Daniel Barrett, Moderator, comp.sys.amiga.reviews
   Send reviews to:	[email-masked]
   Request information:	[email-masked]
   Moderator mail:	[email-masked]
   Anonymous ftp site:  math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews