Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!pasteur!ucbvax!pro-exchange.cts.COM!sector
From: sector@pro-exchange.cts.COM (Roby Sherman)
Newsgroups: comp.sys.apple
Subject: RE:Tml Pascal and BASIC!!!
Message-ID: <8805071058.AA02690@crash.cts.com>
Date: 6 May 88 23:36:42 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Reply-To: pnet01!pro-sol!pro-exchange!sector@nosc.mil
Organization: The Internet
Lines: 149

Boy.. You don't call in a week and you find you've started quite a
conspiracy.. hmmm..

Anyway..

Most of the bugs I've encountered with TML Pascal were just stupid little
things that were capable of being "Worked Around" but still pains. Lately, my
main problem with the compiler is that I've been getting those damn little
error $0053 (Prodos 16 parameter exceeded) or an error $0201 Not enough
memory, not because of me, but because of the compiler. 

Another error encountered, involved putting a space after a begin statement,
or the routine would not work. For examp{le,

If I were to type :

If A<>'Hi' Then begin
                        Writeln('oh my gosh!!');
                        Readln;
                        End;

This bug was a real variable, sometimes the routine would work, sometimes
not.. Strange.. To correct the compiler, I would have to add a space. So the
routine would look like this :

If A<>'Hi' then begin

                        Writeln('Oh my gosh!!');
                        Readln;
                        End;

That's such a simple thing, but yet such a nuisance..

Other errors include :

* My program would crash for no reason - I would make a modification to my
code, test it three to four times, and have it would work fine. I save the
code to disk, come back the next day it mysteriously would not work.

* Many programs work either much better or much worse on their own than they
do within TML's compiler. I had programs that would work fine in the compiler,
but would crash like crazy if I compiled it to disk and ran it from the
launcher.

* Certain laws of Pascal are not observed - I only have a 80 column printer,
so when my code starts to get over the length of 80 columns, I cut the code in
half so that it won't wrap around. Now in many Pascals I've used, they would
allow you to put a carriage return in the middle of a line, for example :

                                              If A<>'Hi' then
                                              Writeln('Oh My Gosh!!');

And that should work.. In TML, that routine sometimes works, and other times
crashes the progam..

* Local Vars don't work so hot in big codes - The current project I'm working
on is already 89 blocks of obj code. A BIG program.. In my procedures, if I
use local variables, such as 

Procedure LoadAFile(Path:String);
Var
        FileVar:Text; 

The procedure would lock, causing me to reboot.. This problem persisted until
I made FileVar a global variable... Strange!

* TML doesn't use the standard APW segmentation. They don't divide their code
into the proper sized segments as specified by Apple.

* TML Pascal's and the BASIC's file routines are very buggy.

* Units have problems - Many times code that use globals not within the unit
or even within the unit do not work.

* Overall, the TML Pascal is very buggy..

---------------------------------------------------------------------------
T M L    B A S I C    P R O B L E M S

* Routines would spew out hash! - I wrote a complex little program that broke
a string into individual characters, checked the characters for certain
values, pull information from an array, and stuck all this information back
into one sting.. Cute, huh? This routine worked in BASIC, ZBASIC, GSBASIC, but
not TML BASIC, now I ask you. Does that sound like TML or me?

For example if a line read :

@027 is @006 time.. @0027 is @006 best time.. 

My routine would change it too :

Now is the time.. Now is the best time..

But in TML BASIC, depending on A:How big my stack was, B:If I had the Ctrl-C
mode on, C:If I had my cache on, D:If I had the debugger on, it would or not
work.. A lot of different variables to sift through, eh?

TML, for example would take this line and present a line of this nature :

N#$% time.. Now %$ is the Ruinxxxx time...

and then crash., The hash is really much worse than my example..

------------------------------------------------------------------------
TML's support

I took this BASIC problem and sent it to TML where Cliff, one of the tech
people there told me that it was up to ME to isolate the problem, because he
"Doesn't have time to do it." Gee, I thought that was his job...

------------------------------------------------------------------------

TML BASIC bugs continued :

Try these two programs and see some cute bugs :

GRAF INIT 320
GRAF ON
_SetForeColor(0)
_SetBackColor(15)
Input "Watch the cursor leave a trail!!";A$
END

Hmmm....

With the same routine, try typing something, using the DELETE key or the LEFT
arrow.. Cute, hmmm???

Here's a (very) small portion of the s*it I've been taking with these
products. 


You guys found any others??

---------------------------------------------------------------------
A Proposed Solution

With AppleFest approaching, let's do this.. I think I'm going to find all of
the people with chains, nouses, lead pipes, etc. that come to the show to go
after the Zip Chip guys, and yell something like, Hey TML Systems helped them
take our money! And have those TMLm beat up on those TML guys, too!! Heh heh heh!!

Roby Sherman
Interealm 

UUCP: [ ihnp4 cbosgd nosc ] !crash!pnet01!pro-sol!pro-exchange!sector
ARPA: crash!pnet01!pro-exchange!sector@nosc
INET: sector@pro-exchange.cts.com
  
"Hey Apple! I want blitter hardware!!!!!!" -- An irate IIGS owner!