[ Go to Stephen's Entry Page ]
[ TI99/4a Articles index |   TI Book front page |    TI Resources Page |   PC99 Programs    |   TI*MES 16    |   TI*MES 20 ]
contact - please use subject="pc99 page" to avoid spam trap!

Jump to:
Basic Programmings Tips   ||   c99 Oddities: Using #include   ||   Useful CALL LOADs for ExBas   ||    DATA Statements in Basic programs
Copying TI-Forth disks ||   How to input a floating point number in TI Forth   ||   Lining up display of decimal numbers - Ex Bas
Operating System Oddities - Call Key   ||    Controlling Sprites in ExBas using CALL LOADs
Turbo Pasc 99 - an introduction and benchmarks   ||   Using Centre Text (CE) with TI Writer Formatter   ||   The New Committee

  

TI*MES Issues 17 to 19 Summer, Autumn and Winter 1987

This web page contains text from the UK Magazine for TI99/4a owners, TI*MES, issues 17 to 19, from Summer, Autmn and Winter 1987. Issue 17 was the first issue in the UK of a user magazine from a National membership group, after magazines published by individuals and businesses. This is of use to users of the TI-99/4a emulators and of historic interest regarding home computer use in the UK in 1987 and those with an interest in UK Computer history. Although the TI-99/4a was a minority computer, many who grew up with it went on to professional computer programming around the world.

"Ownership" passed to a none profit making User Group following a meeting held in Derby in May 1987. No-one then foresaw that TI*MES would run and run way past issue 100.

This page has caused me problems with OCR and much of the text is retyped.

A Future Flowering - EDITORIAL by Christina Mehew

(webnote: one or two spelling errors have been kept from the original)

The TI Users Faire at Derby, 16th May, 1987

The Central Suite was easy to find, and I was grateful for that after a two and a half hour train journey. The Hall was spacious with tables set out around each side for the use of the dealers and for demo's. Rows of chairs were ready for The Meeting, which would see the hand-over of TI99/4a Exchange to become T199/4a Users Group UK, and the formal adoption of a new committee to run it. It was only just ten o'clock, but everyone was ready for business.

So, with a child on each arm, I took the two games modules I'd got when I bought our TI, to the Jumble Sale at the TI Exchange counter, this being patiently and efficiently run by Audrey Scally and daughter. Hopefully, these would be sold and we'd be able to buy some new ones. There were lots of software bargains, new and secondhand, and we managed to snap up a speech synthesizer and speech editor for less than half the normal price.

The display on show by Parco Electrics was most impressive and the children made a bee-line for the second-hand games which you were able to try out on the computer before you bought them. There was a good range of books, software and some hardware, and advice freely given if needed. A natty little gadget caught my eye - a language translator - with the same neat, slim design that we are used to from Texas Instruments, but small enough to pop into your handbag (or brief case!). It takes tiny plug-in modules of French, German or Spanish, and at a bargain price, with earphones, mains adaptor and free module who could resist?!

At the next counter was the classy-looking Geneve computer, kindly brought by Richard Sierakowski, many thanks to him, and some copies of TI-LINES to look at, also a chance to chat to the editor of that excellent publication, Peter Brooks, if you didn't mind joining the queue!

TI Exchange had the full expansion system for demonstrations, complete with printer and modem, none of which I had ever seen before. It looked very neat and technical. Alas, no-one was selling any cheap expansion, so I'm still only sweet sixteen K! All through the day there was a sizeable crowd of supporters filtering backwards and forwards. A lively atmosphere was created by their enthusiasm and energy, characteristics shared.by TI'ers everywhere

At eleven o'clock The Meeting began, chaired by Clive Scally, founder of UK TI Users and TI Exchange. We were reminded of Peter Brook's offer (as printed in last TI*MES) of taking on the membership of TI Exchange, so that it's cohesive structure, built up under four years of superb effort by Clive and Audrey, would not be interrupted, and that it be incorporated into the International TI Users Group. All the benefits of that group, which is a "commercial" user group, would be enjoyed by TI*MES readers, who could contribute to TI-LINES. If they still wanted a "club" as such, people could form their own local users groups, and representatives from each group could write for TI-LINES.

Lively debate followed. Doubts were raised such as: would we lose the friendliness and exchange of opinions and ideas that we had as a national users club? We would lose the "blanket" of our own magazine, and the momentum of the larger group might be lost as it refracted into small local groups, if these were ever formed.

It takes a lot of energy to run a group and many people don't have the time, even to write a letter. We would lose our annual Faire, that golden opportunity to meet and actively show our interest and come together as a club (and in my case to trade new games for old!). Another worry was the financial survival of a commercial group, as against that of the club funded by it's members subscriptions.

Helpful information from Peter Brooks himself stimulated yet more debate!! It was discovered that quite a few people already subscribed to both magazines, therefore the need must exist for both. Clive pointed out that he had already received one hundred and sixteen new subscriptions for TI*MES, and it became clear that the commitment was still there. The new group found a focus for it's energies when Clive consented to become Chairman for the first year. The new committee was formally adopted and TI Users Group UK was born!

Go to top of page

After lunch, the committee got together. And a lovely lot of chaps they are too! You're in strong, safe hands, dear readers! A formal constitution was hammered out, with nice things such as "pressure group to customer services at Texas Instruments" and "future developement of modem use and bulletin boards" being mentioned.

The next event was an exciting auction of TI Exchange left-over stock, all proceeds to fund the new Users Group. Games were going for 50p, 25p and a console with a slightly damaged key went for one pound! We spent our last few pennies and got ready to go. I had come as an interested supporter and going home as an Editor with new responsibilities (and a lighter purse!).

What a full, exciting day we'd all had! Many thanks to the supporters and dealers who made it so, and special thanks to the Secretary for finding the venue. And what can I say to our founder Clive Scally for getting us all this far? We would'nt be here were it not for your efforts and commitment, so, on behalf of everyone, committe and members, please accept our gratitude, Clive and Audrey.

Now, the important stuff over, I'll introduce myself. I'm your new editor, Christina Mehew. I am married with two children aged nine and eleven. We live out in the wilds on the East Coast. We have owned a TI99/4a since 1982 which the children have used more than me, mainly because having worked with computers I couldn't face them when I got home! Also, being used to the full equipment at my fingertips - disk drive and printers - it annoyed me not having the 'gear' for my own. I've stuck with it because I know through reading our mag and through odd encounters with other micros, that the TI has such potential, even in its unexpended state. It is so fast to load from cassette and has no nonesense about it. Others I've found slow to load and gimmicky in their own ways. They have to be marketed, I suppose.

So now I'm not working I have the chance to get to know Tex a little better! I'll knuckle down and learn TI Basic, combine it with my hobby of writing, and try to pass on this knowledge to those of you with newly acquired machines. Yes folks, you've someone on your side! Ive got some very valuable help too: co-editor Alan Bailey, and together we will try to give you a useful, informative magazine. Stephen Shaw will edit his "Rambles" as usual, and we would love contributions from YOU!

If a know-nothing like me can put key to paper, so can you! I won't apologise for not being a TI expert, as we've got some really good ones (still room for more, I'm not giving you an excuse not to write!) And I won't apologise for the flowers either! I've just seen some floppy disks marketed as bananas, of all things, with a free banana pen or Mercedes truck for the appropriate quantity! If they can have bananas, we can have our flowers. Besides, you men, when you lift you eyes up in boredom at the next set of flowers, its a cue for your wives to ask you to mend the washer! I'm on their side too!

As James Baldwin, the American psychologist, once said: "The world is before you, and you need not take it or leave it as it was when you came in". Here it is, the Future Flowering - make it what you want it to be. . Christina Mehew, editor

INTRODUCING YOUR NEW COMMITTEE


Note: Positions marked # had new officers at the AGM just 12 months away.

General Secretary - Jim Ballinger, Derby
Jim is now retired from Rolls Royce Ltd., and is a radio ham. He has a full TI system and printer

Joint Editor - Alan Bailey, Essex
Alan is a process engineer, now nearing retirement. He owns an unexpanded TI, and is interested in hardware and construction, computer languages, graphics and CAD.

International Journals, "Rambles", Disc Library - Stephen Shaw, Cheshire.
Stephen was one of the first purchasers of the PAL TI99/4 and a founder member of the first UK User Group, TI-HOME. He is the proprietor of Stainless Software, and author of a TI book. Family man and a bank clerk, Stephen has a huge disk collection shared through the disk library. Latest purchases include Myark XB & 512kram card.

Chairman - Clive Scally, Brighton. Founder of Tl*MES and TI Exchange Clive continues to give us his valuable support. Owns full system and modem.

# Cassette Librarian - Maurice Rymill, Birmingham. Maurice is a family man and works 12 hour shifts, but has found time to type and debug all the programs that were published in magazines in days gone by, and now has over 100 cassettes, in addition to the TI*MES library. Maurice is going to review some of these in TI*MES. He has recently expanded his TI, and has built the 32k matchbox expansion into his original keyboard.

Membership Secretary - Peter Walker, Cuffley, Herts. Peter started computing 21 years ago, using FORTRAN on a Honeywell 120 mainframe. He has full expansion, printer and modem for his TI, and has written lots of practical programs, such as accounts, and uses TI Writer, Multiplan and various database programs often. Peter is always happy to help with using data files.

# Communications - Neville Bosworth, Southampton. Neville has full system,and now modem, since before the TI was orphaned, and has had not one moments regret in owning a system with such a superb design. He believes that the future of the TI and of all other computers is in the field of modem communications where enormous quantities of information can be exchanged between users.Will help anyone wishing to go 'on line', but interested in all aspects of the TI, as he believes that no knowledge is wasted.

Programming Languages - Geoffrey Coan, Letchworth, Herts. Geoffrey is working with computers at ICL as this is his Industrial year, as part of his studies in maths and science at York University. He has expansion and disc drive and offers his help with programming.

# Treasurer - Peter Cross, Bexleyheath, Kent. Our very able treasurer has already sorted out our bank account and is holding on to the purse strings.

Hardware and DIY projects - Mike Goddard, Gwnedd. Mike has already given us some home projects, and hopes to develop this to supplying kits for these.

Committee Member - Edward Shaw,Leek, Staffs. Edward is Quality Manager at a large mineral processing company and uses their Apricot Xi10. He has a Shinwa CPA 80 printer and a Pace Nightingale modem, and is a big fan of Art Green's Macro Assembler.

Committee Member - Tim Anderson, Glasgow. Tim is a Medical Photographer, Bsc.(hons} in Photographic Sciences, but looking for something different! He now has a second disk drive for his TI, and 128k Myarc card. Tim has had a program published in Parco magazine and his idea is to create a system similar to that on the Apple Macintosh, but is limited by lack of knowledge of assembly language, which he is trying to learn, but can't seem to 'stick with it'!

Committee Member - Bryan Cloud, Ipswich, Suffolk. Bryan works as a Field Service Engineer, mostly on X-ray machines, and has TI and expansion, two disk drives

Here is a very able committee, willing to share their knowledge, (SAE, please, if writing to anyone), and they hope you will do the same!

Go to top of page

Chairmans 99 pence worth:

It is with great pleasure that I welcome all who have joined our happy 99er Group for yet another year.

Also it is a pleasure to thank most sincerely those on the new committee who have worked so very hard in administration and production of your fresh issue of TI*MES.

This issue has been produced by an Editor who really cares deeply about the TI99/4a, remarkably without use of an expansion system which I personally commend. (Can Christina become the Regena of U.K.?)

Now there is a full committee everyone will benefit. It is over to you the TI users to ensure the future of this Nationwide TI Users GROUP with envolvement and support, we have that and thank you, just keep up the communication so vital to its exsistance whereever you are.

Happy 99ing. Clive Scally. Chairman. TI99/4a Users Group U.K.

RAMBLES SUMMER 1987

by Stephen Shaw

Hello and welcome to another Rambles, perhaps a little late but there has been some organisation and consolidation going on! As a result YOUR User Group should now be in a more secure position than ever before!

The NEW group exists to SERVE its members, and is composed OF its members! If there is anything YOU want ( but aren't getting) SAY SO! And remember - EVERY member has SOMETHING to contribute. If you can't make a regular column, write in and say what you are doing, what your successes and failures are, what you use your TI for... SHARE.

And speaking of sharing... this last quarter (well... quarter plus...) has been quite unrewarding in terms of programs sent to me by UK users.

Software Library

Funlweb, previously known as Funlwriter, is not changing its version number but there is a long list of improvements, including the ability to PRINT the disk directory from the editor's SD. And you no longer need to remember the file name you want to load- just mark it on the ED directory and the name will appear when you use LF or the Formatter. Then there is the BEEP to warn you of the approaching right hand edge...

Machine code for Extended Basic

XMLLNK : SCROLL

It is a frequent complaint of machine code programmers that the Extended Basic environment is hostile. In Extended Basic we do not have GPLLNK and DSRLNK supplied by TI for example.

Checking out the Assembler Manual, it is apparent that with Extended Basic, there are a few ADDITIONAL utilities.

A good example is the XMLLNK command: SCROLL.

In a machine code program running in the Extended Basic environment all you need do is:
BLWP @XMLLNK
DATA SCROLL
and off you go

To do the same thing in an Editor/Assembler environment you must write your own routine.

Rambles by Stephen Shaw from Issue 18

October 1987.

In the last two months, 22 group members have made use of the disk software library.

DATA statements in Basic programs

Jim Ballinger has reminded me of something useful - my memory of this was very dusty and probably ancient, I have no idea where I first saw this, and certainly forgot all about it....

The problem was noted by Regena in August 1981, but an incorrect fix was given! Regena's old tip resurfaced, reprinted in the June 1987 issue of the MSP99 Newsletter, extracted from the Tasmanian TI Users Group - but without mention of Regena so possibly a re-discovery and another wrong solution!

Using DATA in Basic programs
For example:
100 FOR A=1 TO 5
110 READ A
120 PRINT A
130 NEXT A
140 DATA 32,45,65,23,4
150 END
Do you ever use DATA items in your programs? Ever LOAD and RUN a TI Basic/ Extended Basic program with DATA lines in it?

Now here's a funny thing. When the computer has read the last DATA item, it then takes the trouble to look ALL the way through your program so it can make a note of the next item - even if there isn't one.

Consequently, and especially in a long program, reading the last DATA item can introduce a short delay.

EASY way round it. Add one or more DUMMY DATA items - if the computer wants to take time off looking for something that isn't there, lets GIVE it something! Then it can get on with our program!

... and bearing on this, it seems to be more efficient to have all your DATA items together, rather than spread them around your program.

In the above short example just change Line 140 to DATA 32,45,65,23,4,100.

The length of your program will determine how long the short delay is.

Whether it is best to put your DATA at the start or end of your program depends on whether you use RESTORE and the ratio of the number of READS to the number of RESTORES- which varies with program length. So try everything!

Go to top of page

Copying TI Forth disks

TI FORTH - Disk copying

Hmmm. Odd. I can't find a reference in TI*MES to copying TI FORTH disk. To keep the record complete...

The disk manager MODULE copies disks as a FILE copier. It is NOT happy copying Forth disks. Important information can be missed!

To copy TI FORTH disks, you CAN use the Forth utility FORTH-COPY, or you can use an TRACK copier, or a SECTOR copier which copies the whole disk. A sector copier which references the bit-map will not function properly.

Rambles from TI*MES 19

RAMBLES by Stephen Shaw January 1988

Quite a few letters this last quarter, for which MANY thanks - even my_optician and dentist wrote...

Two of our members have supplied some nice disks- from David Vincent a remarkable graphic adventure CARFAX ABBEY in which you explore a 4x5x5 maze to find a crucifix, vanquish Dracula, and escape with treasures! ExBas with machine code utilities. Also a LOT of code, so regret not possible to transfer to tape.

From John Seager, a surprise. There are plenty of (unused) character design utilities around. John has produced (almost) the ultimate- in XB with machine code links for speed. Superb- and also from John is a set of four utilities to help you to manipulate merge format program files.

Basic Programming

From a Boston Computer Society publication, some tips from David Taub for ExBas programmers:

1. Is N odd or even?
Normal:
100 X=(N=2*INT(N/2))+1
will set X=0 if N is even, and X=1 if N is odd.
Faster:
100 X=N AND 1 does the same

2 Stop on space and continue on space:
100 FOR P=1 T0 1000
110 PRINT P
120 CALL CHECK
130 NEXT P
140 GOTO 100
......
900 SUB CHECK
910 ST=Y :: CALL KEY(0,Y,Z)
920 IF (Y<>32 OR Y=ST) XOR F=0 THEN F=1 :: GOTO 910
930 F=0
940 SUBEND

Try it!
-------
3 Is number N between X and Y?
Suppose we need to hit keys 1 to 5 only?
Normal:
100 CALL KEY(0,A,B)
110 IF A<(48+1) OR A>(48+5) THEN 100
120 PRINT "KEY ";(A-48);" WAS PRESSED"
130 STOP
Note that the key for number 1 returns a value of 49,
and the key for number 5 returns 53. Hence the use of the number 48 in the code above.

Slightly faster:
100 CALL KEY(0,A,B)
110 IF ABS(A-51)>2 THEN 100
120 PRINT "KEY ";(A-48);"PRESSED"
130 STOP
Explanation:
Looking for keys 1 to 5, which have return values of 49 to 53.
The new line 110 above has an adjustment to A of 51. This is obtained by adding the values for the lowest and highest numbers and dividing by two: (49+53)/2

Also in Line 110 we are comparing to a value of two (>2) which we derive by finding the difference between the two values we are checking for and divide by two eg (ABS(49-53))/2

Try it with other numbers!

Go to top of page

c99 difficulties

C99 BUG:
Clint Pulley has advised of a BUG in C.99 Vn 1.3 and 1.31: Using #include, the file name MUST NOT exceed 6 characters else an error message is generated.

Dave Hewitt tells me that using Funlwriter 3.4 (May 87) he has to load C99 ( the file CO that is) from a LOADER option rather than the prespecified menu option, as he otherwise cannot use #include, apparently due to a shortage of available files.

Operating System oddity

OPERATING SYSTEM BUG

Seems a little late in the day to be discoverinq system bugs, but here we are with one I have not so far seen reported...
Type and run this:
100 CALL KEY(3,A,B) :: PRINT B;B;B :: CALL JOYST(1,X,Y) :: GOTO 100
Now hold down a key on the RIGHT hand side continuously. What you get is a lot of +1's.. Using CALL KEY the second value returned tells you if a new key has been pressed. A +1 means a new key has been pressed. But you have just held the key down continuously...

Now instead hold down a key on the LEFT hand side of the keyboard. You MAY get a lot of -1 values, with the odd +1 value.

Break the program and edit it to use JOYST(2 instead of JOYST(1. Any change when you hold down left or right keys?

These results are NOT what you might expect, and could well cause problems, especially if you use a CALL KEY to scan for the fire button AND check its status as well. This could explain why I have problems using the unreleased module game LASSO - and also explain why it is so unfinished?

This MAY be a hardware bug, the same as the alpha lock/joystick problem, so easily fixed with a suitable diode and a cut pcb track, or it could be a firmware bug. It is constant in every XB module I have, including Myarc XB.

TI Forth Input

FORTH NOTE

Would you like to input a floating point number from the keyboard? It is not too obvious how to do it and thanks go to George Sloane of the Aloha User Group in Hawaii for this one:
  : ENTFP ( --- f ) PAD 1+ DUP 20 EXPECT
        LEN SWAP 1- C! VAL FAC>     ;
Explanation
The address of PAD+1 is placed on the stack- this is because VAL, perhaps contrary to what the Manual suggests, starts reading the entry at PAD+1. If you just used PAD, you would lose the first character, either the most significant digit, or perhaps a decimal point or a minus sign.
20 EXPECT allows you to enter up to 20 digits... more than you may need but so what!
VAL then converts the string to a floating point number.
FAC> brings the floating point number on to the stack.

If you want an integer number output, you could use
FAC->S instead.

Go to top of page

Call Load List


CALL LOADS
In response to requests, here is a list I have found useful... Remember- you must have Extended Basic module, and expansion memory attached and do a CALL INIT before you can use CALL LOAD!

CALL LOAD(-31961,51)::END...return to title screen
CALL PEEK(-28672.A)... ...IF A=0 then NO speech synth attached
CALL LOAD(-31888,63,255) then NEW..equivalent of CALL FILES(0) ( Frees up another 250 odd bytes of memory from CALL FILES(1))
CALL LOAD(-31888,55,255) then NEW...reverses above and gives you back three drives!
NB: Attempted disk usage after turning all drives OFF like this can be fatal!
CALL LOAD(-31931,0)...delete extended basic protection
CALL PEEK(-31863,A)...in a running program, if A=231 then expansion mem fitted.
CALL LOAD(-31961,149)::END... reset console and load DSK1.LOAD
CALL PEEK(-31952,A,B) Pointer to starting address of line number table
CALL PEEK(-31950,A,B,) Pointer to end address of line number table.
CALL PEEK(-31954,A,B)...current line being referenced in line number table. The line number table is composed of four bytes for each line: two bytes hold the line number and two bytes hold the address.
CALL LOAD(-31806,16)...disable quit key.
CALL LOAD(-31878,N)...all sprites over N stop. Can be used to make several sprites start moving simultaneously- THIS LOAD is over-ridden by a subsequent CALL SPRITE or CALL MOTION.
CALL LOAD(-31806,64) will disable all sprite motion until it is reset with CALL LOAD(-31806,0) or (-31806,16)
If you wish to disable sprite motion AND quit key, use CALL LOAD(-31806,80)

Sprites and Call Load

Requires extended basic and expansion ram.
SPRITE SAMPLER
First a program using CALL LOAD(-31878):
100 CALL CLEAR :: CALL INIT :: CALL SCREEN(2) :: R=PI*2/28
110 FOR X=28 TO 1 STEP -1
120 CALL SPRITE(#X,46,16,96,
128,COS(X*R)*10,SIN(X*R)*10)
) :: CALL LOAD(-31878,0) :: NEXT X
130 GOTO 130

OR USING -31806:
100 CALL CLEAR :: CALL INIT :: CALL SCREEN(2) :: R=PI*2/28
110 CALL LOAD(-31806,80)
120 FOR X=1 TO 28
130 CALL SPRITE(#X,46,16,96,
128,COS(X*R)*10,SIN(X*R)*10)
) :: NEXT X
140 CALL LOAD(-31806,16)
150 GOTO 150
These are both very short listings, so key them in and compare the results!

Nothing to to with CALL LOAD but related to the sprite sample:
100 R=PI*2/28 :: CALL CLEAR :: CALL SCREEN(2)
110 FOR X=1 TO 28 :: CALL SP
RITE(#X,46,16,96, 128,COS(X*
R)*10,SIN(X*R)*10)
120 NEXT X
130 GOTO 110


TURBO PASC 99

First Comments

TURBO PASC99

At press time, I was still awaiting a positive price quotation from Texaments, prior to ordering. However, I have managed to obtain a German copy of the program and have done some benchmark tests as below.

A full review will appear as soon as I have the English version, with English documentation. I understand that Texaments have the source code and are making one or two amendments - these should not alter the benchmarks or general comments too much.

[Historic Note: Subsequently Texaments advised that they only had the rights for the USA and Canada, but this was then extended to the U.K. Although they advertised the program, the documentation appears to have never been translated nor the program issued. So this little piece really is historic. I even wrote a good fast version of Conway's Game of Life in Turbo Pasc99, not bad with German documentation... ah well].

Error handling is excellent, with many syntax errors caught on compilation. Use of defaults when you ask for the impossible mops up many run-time errors, and the range of error messages for run-time is greater than that produced by the Editor-Assembler alone. An error caught on compilation will place you back in the editor with the cursor near the error. Most helpful!

-This is NOT Borland's TURBO PASCAL(tm). It is close to "standard" ISO Pascal, amended to make it more friendly for programmers used to the TI99/4a.

ISO Pasca1 items NOT supported are:
file, in, packed, record, set, type, with, char, ord, pred, round, sqr, succ, trunc,odd, reset, rewrite, dispose, new, pack, unpack.

Items included but not in ISO PASCAL (some replacing items above):
Block, Module, Relative, Stream, String, Open, Seek, Append, Close, Asc, Cursor, Key, Screen, minint, pi, graphics, text, putln, cls, cir, cis, cri, crs, csi, csr, len, int, rnd, seg, tan, randomize.

Variations on ISO Pascal are:
Strings are within double quotes "string" instead of 'string'
REAL must be specified as 4, 6 or 8 bytes- if you select 8 you have normal Ex Bas, precision.

Some of the portability has gone with these changes of course, but they seem to make the language easier to enter for a TI-user with NO Pascal experience!

In addition, disks containing additional procedures are available- one for Windows, and one for our familiar TI extensions with sprites, sound and so on. If the language is popular, expect more in due course.

NB: The German version I have REQUIRES the Editor Assembler MODULE to function.

Go to top of page

Pascal Books

Books Worth looking at:

A CRASH COURSE IN PASCAL (about 8 pounds) by D M Munro. Publisher:Arno1d ISBN: 0 7131 3553

PASCAL USER MANUAL AND REPORT. Jensen and Wirth. SPRINGER-VERLAG ISBN: 0-387-96048-1 (specify third edition )

There are also books by Peter Lottrup (COMPUTE) and Zaks (Sybex) which may be worth a look. Take care: Most Pascal books these days seem to be for Turbo-Pascal (NOT Turbo-Pasc 99 or ISO Pascal).

Benchmarks

TURBO PASC99 BENCHMARKS

These benchmarks were detailed in TI*MES issue 15, and have appeared several times in PERSONAL COMPUTER WORLD magazine.

For TURBO PASC99, the PASCAL code will first be given, followed by the time and possibly some notes.

Remember: You do not need a P Code card to run TURBO PASC99.

Integer Math


PROGRAM intmath;
  VAR t,
  i,x,y : INTEGER;
    BEGIN
    writeln(".........");
    t := 0;
      FOR t := 1 TO 100 DO
      BEGIN
      x := 0;
      y := 9;
      writeln("start");
         FOR i := 1 TO 1000 DO
         BEGIN
         x := x + (y * y - y) DIV y;
         END;
      END;

    writeln("---",x);
    END.

The timing on this program equates to a benchmark of 0.337 seconds for 1000 loops, which compares well with a benchmark of 0.48 seconds for C99.

Real Math


PROGRAM realmath;
  VAR t,
  i : INTEGER;
  x,y : REAL[4];
    BEGIN
    writeln( ".........");
    FOR t := 1 TO 5 DO
      BEGIN
      x := 0.0;
      y := 9.9;
      FOR i := 1 TO 1000 DO
         BEGIN
         x := x ( (y * y - y) / y;
         END;
      END;
    writeln("***END...",x);
    END.

REALMATH using numbers of 4 bytes, took 8.20 seconds for 1000 loops, compared to 17.7 seconds for plain ordinary TI Basic!

Trigonometry

PROGRAM triglog;
  VAR i : INTEGER;
  x,y : REAL[4];
  BEGIN
    writeln(".........");
    x := 0.0;
    y := 9.9;
    FOR i := 1 TO 400 DO
      BEGIN
      x := x + sin( arctan( cos( ln(y))));
      END;
  writeln("***",x);
  END.
This was SLOOOW and the equivalent of 1000 loops took 625 seconds, which compares badly to 360 seconds in Extended Basic!

Text to screen


PROGRAM textscrn;
VAR i : INTEGER;
   BEGIN
   text;
   writeln("START");
     FOR i := 1 TO 1000
     writeln ("1234567890q wertyuiop" ,i);
     writeln("***",i);
END.

This one took 69 seconds for a 1000 loop, again comparing badly with C99, which took just 38.7 seconds.

Storing text to disk


PROGRAM store;
VAR  i : INTEGER;
        f : STREAM[80];
BEGIN
   writeln("START");
   open(f, "DSK2.TEXT", output);
     FOR i := 1 TO 1000
     putln(f, "1234567890q wertyuiop ");
     close(f);
     writeln("*****");
END.

This took 61.4 seconds, compared to 83 seconds in Myarc XB and 131 seconds in TI XB. Notice how easy disk access can be!

Go to top of page

Turbo Pasc 99 Benchmark results and accuracy

RESULTS

Benchmarks are not the be all and end all of a language, although an advertiser can give the impression a language is incredibly fast by telling you what it is fast at, and not telling you what it is sloooow at! TURBO PASC 99 seems to be comparable with c99 overall, sometimes better sometimes not.

Personally I found it much easier to use TURBO PASC 99- I even made it write to disk! Look how short the STORE program is!

If you are a 'TI P-Code' user you may find these codes a little odd.. I can assure you they work EXACTLY as printed here. If YOU have a TI P Code card, why not run comparative tests and let me know the times? (update: nobody did, and I never heard of anyone owning the TI P-Code Card).

ACCURACY:

The answers printed out by the math results were: intmath 8000, realmath 8.9E3 (both same as TI Basic) and triglog -2.2021E2, compared to -2.20497E2 from TI Basic- this minor inaccuaracy is due to using only 4 bytes for the variable rather than 8, but we could have used 8 if we had wanted such accuracy.

Using CE (Centre Text) with TI Writer Formatter

TI WRITER FORMATTER BUG:

How to make the TI Writer formatter CENTRE lines CORRECTLY.

If you wish to use .CE you MUST first use .LM and set it to a value of 1 or higher.

This is probably a bug in the Formatter program, but .CE does not like it at all if you rely on the default left margin setting, and even gets confused if you try to use .LM 0.

[Historic note. From the year dot (1982) TI User Groups exchanged newsletters and tips, and many bits of information were reprinted many times. The items above and below came from the newsletters of other groups. And one individual was really really upset and became very personal. At about the same time the Committee complained about the design of Rambles, and insisted on a lot more white space, larger fonts- and perforce, less content. As my job was also insecure at this time (an everlasting story) that didn't do me much good. And inevitably there was an effect upon future issues of Rambles. A later attack by the Committee (keep reading, I'll get there...) suggesting only positive reviews should be written further reduced my involvement- but that was a couple of issues onwards...]

Displaying or printing currency / decimal numbers

Neat one line to right adjust money or other decimal numbers so that numeric input of 4 or 4.5 or 4.267 neatly line up:
If the amount is X:
X$=STR$(X+0.001) :: X$=SEG$(X$,1,LEN(X$)-1)
then to print out, with say the pence in column 12:
C=12-LEN(X$)+1 :: DISPLAY AT(ROW,C):X$
Using this routine, any positive number with no decimal places, or one two or three decimal places, will display correctly lined up and showing two decimal places. Neat. Thanks to Joe Quigley for this.


Several thousand programs for PC99 can be found on the inexpensive DVD-rom from CaDD Electronics, The Cyc, just $25 for programs plus huge amounts of documentation, many books and manuals - all legally copied and reformatted in searchable form, - considerable effort. Includes legal copies of all TI modules in PC99 format, including the much sought Tunnels of Doom module. Available to PC99 owners, and the cost of the DVD plus PC99 Lite itself is a great deal less than the bare TI99/4 sold for originally. And it is legally licensed by TI. Might look costly but a huge amount of work has gone into it- US$72 for an immense organised fully searchable library plus TI programs and modules. UK readers may be able to arrange for a UK supply to avoid import costs- VAT and post office collection charges are payable on delivery in the UK from the USA.

Note that Mike only checks his emails every week or so!


Go to top of page



[ TI Book front page   |    TI Resources Page    |   TI Articles    |   PC99 and MESS Programs ]