[net.micro.pc] Turbo Pascal

geb@cadre.UUCP (03/03/84)

I have had a week to work with Turbo Pascal, and as promised,
here is an off-the-top-of-the-head review, not guaranteed to
be complete or comprehesively accurate.

The user interface is quite fine.  The editor uses WordStar
commands and is linked to the compiler so that the compiler
finds errors and dumps you into the editor at the semi-appropriate
point.  The commands are supposedly user changable, but when I
tried to make it emacs-compatible, it failed to be able to
reconfigure to some of the sequences.  I'm not sure why, probably
it is a bug.  

The compiler can compile from a disk or from memory, the memory
compile is about an order of magnitude or two faster than Apple
Pascal or MT+ (I am just guessing, I ran no benchmarks).  The
compiler also locates run-time errors and throws you back into
the statement that was executing when it bombed.  I'm not sure
how it does this, probably there is a linked library error handling
routine.  (I haven't read the whole manual, it may say somewhere).

Execution speed is also very fast, probably an order of magnitude
faster than UCSD on Apple II.  

The syntax is very close to UCSD.  A few differences that I noticed
in converting a longish program from UCSD:

UCSD:  reset(fileid,filename);
       get(fileid);
       recordvar:=fileid^;
       close(fileid,lock);

Turbo: assign(fileid,filename);
       reset(fileid);
       read(fileid,recordvar);
       close(fileid);

The write statement similarly replaces the put in UCSD and standard
Pascal.  The file handling is much faster than UCSD, especially
for text files where the difference between Apple and Turbo is
about 50 times in favor of Turbo.  One curiosity: Turbo does not
seem to be able to read numbers from a text file unless there is
only one number per line, it does not recognize the space as a
proper delimiter.  

It seems to have the same built-in string procedures as UCSD
Pascal, and one or two more in addition.

The PAGE routine is not implemented (they have a ClrScn instead,
but it won't page the LST: device).  The file type INTERACTIVE
in UCSD does not exist.  MARK and RELEASE are implemented apparently
the same as UCSD, but DISPOSE is not (in either version).  

Strings do not have a default length, as they do in UCSD, and
string is not a proper type for parameter lists: you must
first declare something like

TYPE WORKSTRING=STRING[80];

and then

PROCEDURE FOO(S:WORKSTRING);

a strange peculiarity (maybe I'm missing something that's in the
manual, but that was how I had to do it to make it work).

The manual is very good.  It is a paper-back book-like production.

The price of $49 is super, but doesn't include license to sell
compiled code: that is $100 more.  Since this is far below
the cost of Pascals that are (in my opinion) much more
brain-damaged, I don't consider that unreasonable, since most
Pascal users will not be selling their software (I may be wrong,
and still living in 1978 when most programmers were hobbyists).
I think C is still preferable for commerical software development.

One further petty annoyance: it leaves the IBM monochrome display
in high intensity mode when it signs off.  

In short, I am very positive about the package.  It far exceeds
JRT Pascal in value for price.  (Delivery time: 1 week).  I like
it better than MT+ or IBM Pascal or UCSD, and it is cheaper.

dukelow%cod%Nosc@sri-unix.UUCP (04/13/84)

From:  Robert A. Dukelow <dukelow%cod@Nosc>

I sent two letters to Borland regarding a bug which I have already
discussed on the net. I received responses to both in relatively short
times.  It's nice to know that there really are people out there that
have some concern for their customers. Wonder how long it will last.

The first response attempted to explain why there really wasn't a bug,
the second was rather vague concerning the bug, but did provide
information about the planned new release which others may be
interested in. Following is a quote from the letter.

     We Plan on letting Turbo 2.0 go around May or June.
     The update will contain an editor that does what we
     say it will, overlays, 8087 support, isam structure,
     windows, sound, color, graphics, and an installation
     program for your applications. It will cost about
     $30.00.

I suppose that the size of the system will now increase to 35K or 36K
and the compile speed will drop to only 2K lines per minute. Oh well,
it was nice while it lasted.

The above was concerning the IBM-PC version of Turbo. I don't know what
(if any) applies to the CP/M version. They also confirmed that they
have dropped the additional license requirement for distributing
programs compiled by Turbo.

I also recently purchased the CP/M version. With it I got a "coupon"
for a free ($5.00 for shipping and handling) update. A friend says he
got a similar coupon for the IBM version he just purchased. I don't
know how this relates to the $30.00 indicated in the letter from
Borland.

Bob Dukelow

djm@nmtvax.UUCP (01/31/85)

TURBO PASCAL BUGS

	I have found a couple of bugs in Turbo Pascal on an IBM PC-clone running
MS-DOS.  I define these as bugs, since the same code works on the campus
DEC-20 (not a good standard, I know, but it's what I have to work with).
The copy of Turbo is roughly 6-7 months old, so these things may have been
fixed by now.

	1) If a ';' is incorrectly places before a keyword, the compiler will
		not complain.  However, when that section of code is executed,
		a memory error is generated and a system halt is performed.  This
		requires a re-boot.

		Example :      if condition then
					     begin
						   statement1;
						   statement2;
						 end;				<-- explodes here when run
					   another_statement;
	2) If you read from the console a character at a time, each character
		must be separated by a carriage return.  I am under the impression
		that either a) data is buffered one line at a time, or b) data would
		be physically read one character at a time.  (My Pascal references
		aren't handily available as to which is standard, but C/R between
		each sounds silly to me).

		Dieter Muller
		{lanl|unmvax}!nmtvax!djm