Path: news.uh.edu!barrett From: c.j.coulson@newcastle.ac.uk (C. J. Coulson) Newsgroups: comp.sys.amiga.reviews Subject: REVIEW: HighSpeed Pascal compiler Followup-To: comp.sys.amiga.programmer Date: 15 Nov 1994 22:25:09 GMT Organization: The Amiga Online Review Column - ed. Daniel Barrett Lines: 378 Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator) Distribution: world Message-ID: <3abcg5$6ne@masala.cc.uh.edu> Reply-To: c.j.coulson@newcastle.ac.uk (C. J. Coulson) NNTP-Posting-Host: karazm.math.uh.edu Keywords: programming, Pascal, commercial Originator: barrett@karazm.math.uh.edu 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: hisoft@cix.compulink.co.uk 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: c.j.coulson@ncl.ac.uk --- Daniel Barrett, Moderator, comp.sys.amiga.reviews Send reviews to: amiga-reviews-submissions@math.uh.edu Request information: amiga-reviews-requests@math.uh.edu Moderator mail: amiga-reviews@math.uh.edu Anonymous ftp site: math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews