grogers@uiucdcs.UUCP (grogers ) (03/08/84)
#N:uiucdcs:24700040:000:4272
uiucdcs!grogers Mar 7 21:27:00 1984
[]
I too have been using Turbo Pascal for a few weeks. Overall I am very
pleased with the system although there are a few quirky things I don't like.
First the things I don't like:
. Turbo does not recognize path names. All files must be in the
current working directory. Their ads claim "full support of
operating system facilities" but under DOS 2.xx this is not true.
. One of the big selling points for Turbo is that you can configure
the system to fit you terminal. They did a great job of this for
the Z80 version (I've used Turbo on an Altos also) but for the PC
the terminal selection is limited to 40x25 bw, 40x25 color, 80x25
bw, and 80x25 color and the screen attributes for each of these
selections is set in concrete. As far as I can tell there is no
way to change the character attributes that are displayed. I have
a color monitor and there is nothing that bugs me more than working
in white (dim characters) and yellow (bright).
. EVERY program clears the screen and resets the character attributes
before it executes. There is no way to avoid this other than NOPping
out the call to the routine that does this (not much fun using debug
on every program I write...that's why I am using a high level lan-
guage in the first place).
. Upon completion of your program the cursor is positioned on line 25.
This causes the screen to scroll and you lose the first line of your
output (which is on line 1 via flame #3).
. You can call external procedures and functions which must be in
COM format but you cannot compile these external routines using
Turbo.
. There are quite a few fatal typos in the manual, I'll just mention
the worst of these. You can place object code within your program
using a statement named inline. The manual shows it being used like
this: inline ($c4,$be,...) where the '$' just signals a hex value
and each value is separated by commas. The actual format is this:
inline($c4/$be/...) the values are separated by slashes.
In an example showing how to reference parameters on the stack from
an external proc uses MOV AL,[BP-1] the '-' should be a '+', the
stack grows down not up.
. Every now and then the editor will duplicate the last line on the
screen. I have not tried to narrow down the cause but it seems to
happen when the screen scrolls backwards. The duplicate line does
not get into your file but it is annoying having it on the screen.
. There is a routine that will test the keyboard buffer for characters.
This works ok except when it appears just after a write or writeln.
repeat writeln('foobar') until keypressed;
will tend to hang the system sort of. You must hold down the return
for quite a few iterations before the program will recognize it.
Things I like about Turbo:
. You can call BIOS & DOS routines using
BIOS(func,parm):integer & BDOS(func,parm):integer
where parm = record
AX,BX,CX,DX,DI,SI,DS,ES,FLAG : integer
end;
. You can put object code inline with pascal code. This made it
very easy for me to write some graphics routines.
. The ads for Turbo boast about the speed of compilation and execution.
Believe it or not it really is that fast, if not faster. To get a
very rough idea of how fast the code really was i wrote a simple
program to write an asterick at a random line and column until the
keyboard was used (using the sometimes faulty keypressed routine).
The short program compiled in <= 2 seconds (but the compiler was
already in memory along with my source code). When I tapped 'r'
to run the program (menu driven like UCSD), I almost fell out of my
chair. Before I let up on the 'r' key the screen was about 70%
filled.
. Turbo is a very good Pascal program development system. With the
full screen editor tied to the compiler it is very easy to edit-
compile-run-edit-compile... in an almost interpretive form (like
BASIC).
. Best of all, it's only $50.00. The best computer bargain I have
ever seen.
---------
disclaimer: I have no Borland International, the company that distributes
Turbo Pascal.
greg rogers
university of illinois, urbana-champaign
...uiucdcs!grogers