[ Go to Stephen's Entry Page ]
[ Articles index   | TI Book front page |   TI Resources Page |    Programs for emulators
      TI*MES Issue 2    | TI*MES Issue 3 |   ]

contact - please use subject="pc99 page" to avoid spam trap!

This web page contains the text of my article for owners of the TI-99/4a in a series called Rambles, taken from Issue 5 of TI*MES dated Summer 1984, published by Clive Scally. It is of use to users of the TI-99/4a emulators and of historic interest regarding home computer use in the UK in 1984.

Rambles from TI*MES Issue 5, Summer 1984

BY STEPHEN SHAW

Jump to Thorn EMI history    ||   jump to MBX review    ||   Jump to Extended Calls program

Greetings once more.

First, family news: The Shaw family was augmented by a little nybbler named George, at a sufficiently early hour to permit his mother to have a full breakfast afterwards! All are well and suitably sleepless...

Since the last Rambles a whole host of new products have been seen or purchased, and a package of reviews will follow, edited if required by Clive!

Also, many interesting enquiries have come in, one of them leading to an interesting discovery. so we'll take that one first:
IF A=4 THEN 100
IF A=4 THEN GOTO 100
TI BASIC requires the first entry but EXTENDED BASIC will allow either version.
What is the difference? One word. GOTO. which uses up one byte.
Anything else? YES!

IF A=4 THEN 100 :: IF A=5 THEN 200 :: IF A=6 THEN 300
IF A=4 THEN GOTO 100 :: IF A=5 THEN GOTO 200 :: IF A=6 THEN GOTO 300
These lines ARE NOT equivalent in practice.
The Extended Basic manual suggests that following the condition (A=4), if the condition is not met, program control will pass to the NEXT STATEMENT. eg IF A=5 etc.

If your program is in the first form. this indeed happens. However. if the condition is followed by anything other than a line number (eg the command GOTO) then the program passes to the NEXT LINE.

In order for the second version to function as intended, you need to replace the double colons (::) with the word ELSE. This makes it function as the first version.

Interesting


One package obtained recently (more later...maybe!) was TI FORTH. This is supplied as a disk whose contents are fully printable, complete with explanatory REMS.

Hence, from Screen 3, we learn how to disable the quit key! Either Extended Basic and 32k ram OR the mini memory are required:
(Extended Basic requires you to use CALL INIT first).
CALL LOAD(-31806,16) will do it!


MORE THORN EMI HISTORY:

At the time of writing it was doubtful if UK made 3rd party modules would make it... mainly due to greed by the licensing parties. Pity.

thorn emi module for TI99/4a, Submarine Commander I have the pleasure of having had a real, genuine, Thorn-EMI manufactured module plugged into my TI99/4A console:
I did have the pleasure for just an hour of playing the long advertised THORNE EMI modules for the TI99/4A. These were made to plug into the right hand port. not the usual module socket. VERY nicely made, with bare wafers, gold plating, screening... excellent job.

Good programs too. RIVER RESCUE had the very smoothest horizontal scroll ever seen on the machine. Bearing in mind THORNE have these modules actually manufactured and ready for sale, you wouldn't believe the amount they want guaranteeing before they are prepared to release them! Very strange industry this.

Background: In May 1983 Howard Greenberg had advertised the Thorn modules for GBP 24.50 each - in good faith, but the modules were never made for sale by Thorn EMI, and TI users had to wait a little longer to buy these games which were licensed to Howard and sold by him on disk.

See also TI*MES Issue 11 and a brief mention in Issue 13 that the disks were at last on sale in May 1986 after Thorn listed them in February 1983!


Go to top of page

ACCURACY
I am sure you are well aware of the accuracy of your computer, with its ability for instance to go through a loop:
FOR I = 1 TO 100 STEP 0.1
PRINT I
NEXT I

...and have every value of I printed as an integer (try it on a Spectrum sometime)...

More news on accuracy:
Take the number 1.0000001 . and raise it to the power of 134217728...
that could be entered as 1.0000001 ^ 134217728.
If you have an IBM PC. it will give you the answer 8850273. An Apple will tell you the answer is 22723.9709 (this is in 1984 remember).

Try on your 99/4A two versions of the same calculation:
A. PRINT 1.0000001 ^ 134217728

B.
100 A=1.0000001
110 FOR T=1 TO 27
120 A=A*A
130 NEXT T
140 PRINT A

Have a think about the answers you see .... back to this later.

SCIENTIFIC AMERICAN. to whom I am indebted for the IBM and APPLE figures. and also the correct figure!, suggests that for accurate calculation to many hundreds of places, you could use separate bytes of memory for each digit, writing your own simple routines to 'carry' numbers from the tens byte say to the hundreds byte. To do this on the 4A you do need memory expansion and either Minimem or Extended Basic.

Something to think about and perhaps experiment with.


Another question: How do I print a long data list without it vanishing off the top of the screen? The data is read from DATA statements in the program.

Answer: Use CALL KEY as follows:
100 FOR T=1 T0 500
110 READ A$
120 IF A$="END" THEN 2000 (last item read)
130 PRINT A$
140 CALL KEY(3.Z,X)
150 IF X=0 THEN 140
160 IF Z=13 THEN 3000 (go somewhere else if ENTER is pressed)
170 NEXT T
Hold a key down to read and print.
Release the key and the scrolling halts. Press again to resume.
Press ENTER to jump out!!


To list a program verbally with Terminal Emulator 2 in place. use LIST "SPEECH" ... There is a very similar program available on disk for Extended Basic. called Text to Speech. As far as I know it was never offered for sale in the U.K. I have asked TI (USA) if I can sell their disk based software. but of course. no reply! Frustrating when you find out what they kept from us .....

Apropos the ATARISOFT modules, Richard Blanden has now taken a peak at them, and confirms the gross error made by Atari’s programmers: For their title screens in a few of the TI modules, and in at least one game screen (Picnic Paranoia) they have used the large character set (used in the opening 'test card' screen only). They have addressed this in the GROM directly, instead of using the handy index which is also there. Now... the GROM has suffered quite a few rewrites. and the direct addresses have altered accordingly.
..no problem if you use the index! Notable at the end TI made the same error... at least it occurs in a module made by TI, for Milton Bradley. SEWERMANIA (game not affected).

The Atarisoft modules would be very much better if they were programmed with due care, and one can only hope that ATARISOFT pull their fingers out and do some rewrites. Unlikely I agree. The delay in bringing us the new modules, such as Pole Position. is basically due to Atari UK not being in the slightest bit interested in selling their product. They have no interest in the product itself either. Far worse than TI.


Go to top of page

Extended Calls with Personal Record Keeping module- sample program

Now...in the last issue I mentioned a TI booklet describing extra calls available in Basic when the PRK or Stats modules were inserted...this is available online

The following example of its use just to whet your appetite a bit. Full of REMS:

TRANSFERRING PRK FILES TO TI WRITER COMPATIBLE FILES (D/V 80 format)

CONSOLE SET UP:
INSERT PRK MODULE AND THEN SELECT TI BASIC (Stats module may also be used)
FIRST: IS DISK CONNECTED? type CALL FILES(1) then NEW -
THEN: type CALL P(10900) then type NEW
Console memory is now set up

RESTRICTIONS:
The disk system and this program use up memory.
It may be necessary to delete some records from the PRK file to be transferred if the PRK file fully utilises system memory.

load prk file
100 CALL L("DSK1.PRKFILE",Y)
is file loaded?
110 IF Y=0 THEN 310
NOW open output file
NB: do not open output file until after Call L !
120 OPEN #1:"DSK1.TIH_FILE",DISPLAY,VARIABLE 80
How many fields in each record?
130 CALL H(1,5,0,F)
140 PRINT "FIELDS":F
How many records (pages)?
150 CALL H(1,6,0,R)
160 PRINT "RECORDS":R
Now loop: through each record:
170 FOR J=1 T0 R
and through each field in turn
180 FOR T=1 TO F
Is the field a number or a string?
190 CALL H(1,10,T,TP)
200 IF TP=1 THEN 240
for numeric data:
get the data in record J,. field T
210 CALL B(1,J,T,Z,RD)
and print it to disk
220 PRINT #1:RD
230 GOTO 270
for string variable data:
240 CALL G(1,J,T,Z,RD$)
250 PRINT J;T;RD$
260 PRINT #1:RD$
270 NEXT T
insert spacing as required
280 PRINT #1:" ":::
290 NEXT J
300 END
310 PRINT "NOT LOADED"

If required, string and numeric data can be concatenated to the preferred format before printing to disk. Read each required field, concatenate, and print.

Each print to disk should be considered as one TI Writer line:
Use of pending outputs is to be avoided, as is the use of a semi colon print divider, due to the complex requirements of DISPLAY format.

I suspect it is possible to do some very interesting things with these modules.

They enable you to save data in memory image format, much faster and using less storage medium. The other way of course if to use Minimem as an electronic disk, and dump the contents of Minimem in memory image using EasyBug ‘S'.


Thanks to those of you good enough to write and say 'thank you' .... at a time of personal stress I have recently received some pretty nasty letters, such as a two page letter tearing to shreds a program which had received a 5 star review. I regret that there are some people if they disagree, go completely overboard, to their own detriment. Letters of thanks at such times prevent one overreacting and throwing the towel in! Stainless Software operates on tissue thin margins, mainly for fun: there would be no point in continuing if my services were in vain! Thanks again for the NICE letters. They are appreciated. (But constructive well mannered criticism is always welcome!).

The correct answer to the puzzle a little while ago, regarding accuracy, is: 674530.470741078

This makes the IBM look very silly indeed.

The TI99/4A is 0.0000671% out when using the ^ operation, and it is 0.00002268% out when using the looped multiply routine.

That is pretty accurate!!! Is there a more accurate computer out there somewhere?
(Update 2011- Testing on a 16 year old scientific calculator gave a rapid and accurate response. Using the latest Linux calculators on a pc, the first format just took too long (longer than a TI) and the second method gave an accurate answer. Using an old W98 calculator gave a speedy and accurate response using the first method).


Go to top of page

One writer passes on to me some 'bugs' in PARSEC:
The number of ships you have is held in one byte: if you go over 256 ships in reserve (phew!!!!!> the counter resets to one (awww!).
Fly the first screen as usual and crash into an asteroid. Then press REDO, when the next ship is flying, crash into the ground without firing! Then fly the next ship as usua1... you aren't on the first screen anymore and a new ship appears (new to those of us still trying to get past the first screen!!!!).
Because speed is also held in one byte. strange things happen as the speed gets faster and faster! Any other bugs found!

TI MULTIPLAN is another advanced program to be released, on disk, plus module. plus huge manual.
MULTIPLAN has the advantage of being a highly standardised program, so you can buy a book for MULTIPLAN which covers any implementation.
I bought a copy of THE POWER OF MULTIPLAN which has some ten worked examples for you to key in. This gives you practice in entering and using Multiplan, as well as some ideas for its use.

The keystrokes described in the book work exactly as printed on the 4A. Nice.
MULTIPLAN is a 'spreadsheet' which is useful for all occasions where you use paper with lots of columns on... bookkeeping, balance sheets etc. Because you can interlink various items, you can change the cost of one element and see what result that makes on profits, quickly and easily.

Programs such as this have been a considerable help in the financial centres, where the effects of a .01% change in exchange rates needs to be known FAST! THE POWER OF MULTIPLAN also shows how you can use it for producing invoices, with description, price, discounts etc all printed merely by entering an item number.

I now have quite a collection of thick manuals .... my local copy shop have laminated the covers and spiral bound them for me, at a fairly low cost, and I find them much easier to consult than trying to use the huge thick binders TI supply!!!


Do you write programs in Extended Basic? Do you use sub-programs?

When the BBC computer was launched a great deal of fuss was made about it having multi line named procedures with local variables... now guess which computer really had these first!!! Tl just calls them sub-programs.

EXAMPLE:

Suppose we have a program in which the colours of character sets 1 to 8 are regularly changed.

It could be done with a subroutine, setting variables and then using GO SUB:
200 X=2
210 Y=4
220 GOSUB 8OO
230 GOTO 230
800 FOR T=1 TO 8
810 CALL COLOR(T,X,Y)
820 NEXT T
830 RETURN

In Extended Basic we can create a sub program called COLOUR (NOTE: English spelling! now you can call color or colour, one is built in, one you have written...).
Sub programs MUST appear at the end of your program. Only other sub programs can follow them.
Example:
200 CALL COLOUR(2,4)
210 GOTO 210
2000 SUB COLOUR(X,Y) :: FOR T=1 TO 8 :: CALL COLOR(X,Y) :: NEXT T :: SUBEND
Thats it!
In this example of a sub program, we have passed two VALUES to the sub program, which are taken by the local variables X and Y in the subprogram.

If X and Y are used in your main program, or indeed in other sub programs, their values are NOT changed by their use here! This X and Y are unique to this sub program.

If instead of numbers. we use variables CALL COLOUR(A,B), then in this form, the values of A and B may be changed in the sub program.

Further example:
10 CALL EXAMPLE(A,B)
11 PRINT A,B
12 GOTO 12
20 SUB EXAMPLE(X.Y) :: X=2*X :: PRINT X :: SUBEND

In this format, if A=2 and B=4 when the CALL is executed, the values of A and B are passed to X and Y in the sub program. At the end of the sub program, the values of X and Y are passed BACK to A and B, thus the sub program has changed variables in the main program.

If you do not want this to happen, it doesn't have to. You have the option:
CALL EXAMPLE((A))(B))
The same SUB will take its values from A and B, but at the end of the sub program, A and B will retain their original values: they will not be changed bv the sub program. Just place the variables in the CALL in brackets.
Powerful programming this! Take another look at your manual and experiment a little.


Did you see the July 84 issue of GAMES COMPUTING? Two programs for the TI!!! One, Sir Prancealot, may have had you guessing! If you see the pound symbol (£) in a listing, you should type in the hash symbol instead (that is, the #. This is because the same ASCII code is used for the pound and the hash on printers. Whichever is printed is set either by a switch in the printer, or by software commands ... which is what I have used (with TI-writer) to give you those symbols: # and £.

If the person listing a program has his printer set to print £ then it will print £ instead of # symbols (eg in CALL SPRITE(£1.... !!!

RAMBLES REVIEW TIME
Lots of new products seen or purchased in the last 3 months.
Many of these items are in very short supply, and some will not be available when you read this. For current information, please contact ARCADE HARDWARE and PARCO ELECTRIC. Some items may become available second hand or you may be able to locate sources in the USA.

MBX SYSTEM:

This system promised much for the 4A. and its rapid withdrawal following TI's withdrawal is a considerable tragedy. Its facilities are hardly used in the few modules which have been released.

First the system description, then the modules:

The MBX unit is a large box which connects to the console via the joystick socket AND the cassette port. Other connections are: 9v DC power supply. special joystick, and microphone.

Facilities:
Membrane keyboard on the MBX unit. This is used to control the unit, and in some games, an overlay is used giving various positions certain functions.

Microphone: attached to a comfortable headset unit, this is used for speech recognition, allowing you to direct a program with your hands tied behind your back!

Joystick: Very special joystick: fire button plus 3 control buttons. Analogue joystick...point it in the direction you want to travel: not limited to 8 directions. Also can be used as accelerometer: the faster you move the stick the faster your man moves. Also the 'knob’ rotates and can be used to rotate a man or to provide some other input.

NONE of these facilities can be used in Basic or Extended Basic. The Joystick can ONLY be used with the MBX cartridges. None of the cartridges use ALL the MBX facilities.

As a powerful unit, it is not cheap. It may perhaps be best considered as a luxury item, to be bought if you have everything else!

Go to top of page

The modules for the MBX:

TERRY TURTLES ADVENTURE, I’M HIDING. BASEBALL: REQUIRE the MBX unit to function. The other seven modules may be used on a 4A console without the MBX. although the MBX may add certain features.

All ten modules have speech output: the MBX can provide this (output via a loudspeaker in the MBX) or if you do not have the MBX. the Speech Synthesiser may be used.

TERRY TURTLES ADVENTURE: Using Speech Recognition. You tell the Turtle where to go. The aim is to get him home before Winter. Quite easy even with the 3rd (most difficult) screen. For very young owners. Directions include Swim. Eat, Climb, Left, Right. 1, 2. and 3. Suggested for age 4 up,.

I'M HIDING: My favorite. Suggested for age 4 to 7, but some 1 year olds could benefit. with supervision. Uses speech recognition. A simple game of hide and seek, with two screen layouts of jars. pencils, crayons, and brushes. A cast of very likeable characters. each with its own voice.
Choose a location (type. colour and size) and receive clues such as 'nearer' or 'farther' or 'very close'. Uses bit map mode graphics and very catchy music. My favorite. and may be worth buying the MBX for! Teaches classification and deduction.
A younger child who may lack voice control can use a keyboard overlay which has pictures on it, to input guesses.

...the voice recognition is remarkably accurate by the way, but can be fooled. You first 'teach' it your voice, then it compares your input to the taught library, and chooses the closest match.

HONEY HUNT and SOUNDTRACK TROLLEY I have not seen. They are described as for ages 5 to 8. The only facility is speech synthesis. Honey Hunt is described as teaching patterning skills (?) while Soundtrack Trolley seems like an interesting variation on the Simon music game.

CHAMPIONSHIP BASEBALL uses many of the MBX facilities. For two players. One player is pitching: he uses the keyboard to input the type of pitch, and the headset to direct his fielders where to throw the ball. The other player as batsman uses the joystick. The rotating top gives bat speed (which governs where the ball is likely to land) while the joystick itself directs the man to run. Baseball is not very well known here, but the module seems faithful to the game.

SPACE BANDITS is a sort of 3D game in which you collect gems and avoid aliens. The form of input is very difficult, and you may prefer the use of a normal joystick to the MBX. Voice recognition is available, but a trifle too slow. There may be a bug in the program, as the man seems to dislike turning one of the corners. A very difficult game to master, and the layout, being original, may appeal to those who like a challenging arcade game. The 3d tunnel is wrap around style, so even if the aliens do not shoot you, you could shoot yourself in the back!!! Different.

SEWERMANIA. May be best suited to younger players. as there is no urgency in the action. You must search a sewer for a hidden bomb, avoiding an alligator and rabid rats. The MBX unit adds speech recognition, which does add to this game. The MBX joystick is also used. The speech recognition allows you to 'store' a command ('door') which will be obeyed when possible.

BIG FOOT: The MBX adds nothing to this game. It is a CLASSIC and very strongly recommended to you. Play testing here shows it has great appeal. Similar to ALPINER, but much better put together. From the mountain top, BIGFOOT throws iceballs at you. Avoid these and collect gold, then climb to the top and cage him. In later screens eagles may carry your ropes away .... so far I have made it to screen 6 (all different). Patience has its rewards in this game! Not TOO difficult.

METEOR BELT: The MBX joystick may be found better, but I am happy using an ordinary joystick! For 1 or 2 players, who must shoot down meteors and satellites and each other. There are conflicting tasks: to get a high score, or to destroy your opponent. Playing against the computer, high scores are difficult as the computer can play very aggressively, and once either of you have used up all your ships, its game end! The confusion of tasks does detract a little, I suggest you forget high scores, and play for who has the highest score at the end of each round.

SUPERFLY: Again perhaps for younger players. Features speech recognition, and uses the MBX joystick rotating top. (CAN be used with a 4A alone). Control a fly armed with a deadly laser(?) and control those egually deadly spiders. Quite a simple game. Most players will reach at least screen 7 on first play!

NB: I'm Hiding and Meteor Belt do require a COLOUR tv!!!!!

Overall, a worthwhile first offering. It is a shame more modules will not be forthcoming to really use the MBX system.

As I mentioned above. I’M HIDING gets my prize for best use of the MBX and best overall offering. BIG FOOT is a very worthwhile module without the MBX.

Go to top of page

[ Articles index   |    Rambles from TI*MES 3 | TI Book front page   |    TI Resources Page    |   PC99 Reyiew    |   PC99 Programs ]