[comp.sys.apple] Tml Pascal and BASIC!!!

sector@pro-exchange.cts.COM (Roby Sherman) (05/07/88)

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!

sector@pro-exchange.cts.COM (Roby Sherman) (05/10/88)

First, let me clear a few of my statements up.. When I was receiving the
Prodos 16 error $0053 and Memory Manager $0201, I had cold-booted my GS,
loaded the launcher, and immediatly proceeded to run my code which I had
compiled to disk. At the time, I had roughly 1.1 megs of memory free.

The version of TML I have, I will have to look into.. Get back to you on this
one..

David Lyons writes :
>I have never had anything like that happen to me; I haven't found any
>problems that seem to be related to the syntax scan...blank lines shouldn't
>make any difference at all.

Well, all I can say is that I have had these problems and blank lines DO make
a difference..

The problem did not occur in the "Syntax Scan." it always checked it
perfectly. It's just when I "Compile To Memory" it starts to act looney  
during the program's actual execution.



As for the other problems I mentioned with Units and globals not working, TML
just seems to setimes take my variables and hash them for no apparent reason.



Well, I'm getting the latest update version of TML Pascal very soon. Let's
hope some of my problems clear up..

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!

BHUBER@ECLA.USC.EDU (05/11/88)

You may be suffering from similar bugs that I have encountered on TML Basic.
I purchased the package but would not/could not use it (couldn't even open a
source code file).  If you have any NDAs in your system folders (specifically
TML's calculator), you should try running without the NDAs.  I have passed this
info on to TML (Cliff) and he had an interesting utterance:  "hmmmm, I wonder
if this is related to other problems???"

Bottom line for me is that without the TML calculator desk accessory loaded
(even if it is not used, it still causes problems, so boot without it on
the system disk), I can test and play with TML Basic.  I still find other
subtle bugs, but you've mentioned most of them.

One bug you have not mentioned is "unable to unload tool 0002" after running
TML Basic -- a fatal error, to say the least.

Bud

estell@uiucdcsm.cs.uiuc.edu (05/11/88)

For the following program, the cursor is not fully on the screen; this is 
what is causing the "bug".

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

If you add in:
        _MoveTo(20,20)
before the input statement, everything will work fine.

--------------
John K. Estell
University of Illinois   estell@m.cs.uiuc.edu