[comp.sys.atari.st] Personal Pascal

BO628524@CCNYVME.BITNET.UUCP (12/10/86)

I am having a problem with Personal Pascal:  I am printing a large report
to prn: and find that after a few pages of output, PPascal stops sending
to prn:, however, my program continues merrily executing along as if it
were now skipping I/O (or writing to nul:).  I suspect something related
to a printer timeout, but what can I do about it?  (My immediate solution
was to put a prompt in every few pages, but then I had to babysit hundreds
of pages of output).  Any clues?

Brian_Holmes%Wayne-MTS@um.cc.umich.EDU.UUCP (06/04/88)

Is there any call I can make from Personl Pascal to determine what
the current drive path is?  I looked through the XBIOS calls, but
couldn't seem to find anything.  I can't find a built in call from
Personal Pascal either.  Any Ideas?
 
******************************************************
*  Brian Holmes                                      *
*  Wayne State University                            *
*  Detroit, Michigan   U.S.A.                        *
*                                                    *
*  BHOLMES@WAYNEST1                     <-- BITNET   *
*  BRIAN_HOLMES%WU@UM.CC.UMICH.EDU      <-- Internet *
*  {UMIX|ITIVAX}!WAYNE-MTS!BRIAN_HOLMES <-- UUCP     *
******************************************************

darin_wayrynen@pedro.UUCP (Darin Wayrynen) (06/09/88)

I'm sure at least a 100 people will answer this, but in the off chance that I 
am 
mistaken, I'll tell you the proper Gemdos call. 
  
Dgetdrv() returns the number of the default disk drive... 
  
Darin 

hugh@dgp.toronto.edu (D. Hugh Redelmeier) (11/26/89)

Personal Pascal is a Pascal compiler for the ST.  Early in the ST's
life, many programs were written in it, but it hasn't been mentioned
much recently.  I have just used it in a couple of projects, so I
thought it would useful to describe my impressions and experiences.

PP (my abbreviation for Personal Pascal) is published by ICD, the
same people who produce hard disk systems, kits, and tape systems
for the ST, and a bunch of stuff (hw and sw) for the 8-bit Atari
computers.  PP was published by OSS until they were taken over by
ICD.  The compiler itself was produced by CCD, and they publish it
in Europe.

Because of the change in publisher, some people don't seem to know
that the compiler is still published and maintained.  I just got an
update from Version 2.02 to version 2.05, at a cost of US$10.

Most programming I have done in the last 15 years has been in C.  C
is the defacto-standard language for programming the ST.  Why would
I choose and use Personal Pascal?

- Pascal is a reasonable high-level language that can be compiled
  into efficient code.  True, Pascal has some limitations that
  bother an experienced C programmer.

- Personal Pascal seems to be a competently done implementation of
  Pascal.  It includes a reasonable editor and linker.  It has a
  sort of desktop which integrates the editor, compiler, and linker.

- The system is compact and efficient enough to use with a
  single-floppy system (I have only tried with a vanilla 1040 -- 1
  meg of RAM (with a large RAM disk) and one 800K floppy, and with
  the same system + a hard disk).

- The library seems to simplify and clarify the task of exploiting
  GEM.  It has hooks for getting at the basic BIOS, XBIOS, and
  GEMDOS services too.

- The linker will link object code files in DRI format (Developer
  Kit format).  You can link in modules compiled by other compilers
  or assemblers.

- There are some UCSD Pascal / Turbo Pascal variable-length string
  handling features.  This is the area with which I am least happy,
  but they work.

- The ST has insufficient memory protection to prevent buggy
  programs from clobbering arbitrary parts of the system, including
  RAM disks, disk buffers an caches, desk accessories, etc.  Pascal
  programs can be compiled with array-bounds and pointer checking so
  that accidental mayhem is prevented, and the point of violation is
  detected and reported.

- The complete system is inexpensive: the list price is US$99.95

Using this system has been much more pleasant than my attempts to
use the Developer's Kit C (Alcyon 4.14).  Why?

- The documentation seems better: all in one 1-inch thick, "perfect
  bound" manual, versus my inaccurate (but more detailed)
  Developers' Kit (5 inches of loose 8.5 by 11 paper).  For more
  detailed documentation, there is the "Tackle Box".

- The compiling process is much faster (one-pass) and easier (click
  the "compile" menu item).  When the compiler detects an error, it
  will (if you ask) pop you into the editor with the file in
  question loaded, and the cursor at the token at which the error was
  detected.

- My mistakes are caught earlier: Pascal's strong typing catches
  many bloopers at compile time; run-time checking catches many of
  the remainder.

- The system is organized in a simple, straightforward, useable
  fashion.  Much better than the Developers' Kit.

ICD provides phone support, and has a BBS for support.  I have tried
each, once.  From this, I cannot judge their quality, but I do know
that they exist.  They distribute a bug list; it may not be
complete, but it shows an attitude I like.

For heavy-duty ST hacking, SRM Enterprises produces something they
call the "Tackle Box".  It is specifically designed to complement
PP.  It is an enormous 3-ring binder full of ST internals lore, much
in the spirit of the Developers' Kit.  It also comes with a bunch of
routines and programs on disk.  Its price was US$69, a bargain.

UNITERM is compiled using CCD's version of this compiler, so system
hacking is certainly possible using it.

What's wrong with Personal Pascal?

- Pascal hasn't taken off as a common language on the ST, so most
  source that comes across the net, and most tutorials, seem to
  require a C compiler.  There are few people to ask for help.
  David Meille once wrote and broadcast over USENET several parts of
  a PP tutorial.

- The string handling routines have silly restrictions.  In
  particular, you cannot give them arguments that are string
  expressions, so calls cannot be nested.  Some cannot even take
  string constant args.  These restrictions are documented, but not
  highlighted, and they are not what an experienced programmer would
  expect.  The compiler does not give compile-time diagnostics about
  violations.  Instead, it generates code that does the wrong thing
  at run-time!  As you might gather from this tirade, I was bitten
  badly by this problem.

- There is no symbolic debugger.  I only felt I needed one when I
  was tracking down problems with the string handling.

- Picky detail: When TOS is requested (via a system call) to print
  stuff, and the printer does not respond for 30 seconds, TOS gives
  up and returns an error indication to the caller.  The PP library
  seems to ignore this error return, so output can be silently lost.

- Apparently OSS didn't pay CCD royalties for some time, so CCD
  stopped supporting them.  I hope that this has been dealt with now
  ICD has taken over.  Lots of stores seem to have old PP stock.
  [In Toronto, we have about a dozen stores selling STs; several are
  quite good.]

Hugh Redelmeier
{utcsri, yunexus, utzoo, hcr}!redvax!hugh
When all else fails: hugh@csri.toronto.edu
+1 416 482-8253

oshaughj@p4.cs.man.ac.uk (01/29/91)

I recently bought a copy of Personal Pascal (second hand). I have since
found out that the *.PAS files associated with PP are missing. (been
erased). I particularly need AUXSUBS.PAS and GEMSUBS.PAS, could some
kind soul mail then to me?

 Thanks,
 Jamie.