I have included the second part of a rare article by Ian Godman of Christine Computing
Hello again. Isn't three months a long time... A special welcome to new members of TI*MES, hope you like the newsletter, if not, let us know.
First query: How do I make back up copies ?
A backup copy of a program is a fail safe: a tape recorded program is essentially a fragile thing, and can be damaged. If you have paid for a program, it is upsetting to find you have left your tape in front of the fire, or on top of the TV set ..... at such times a second copy is nice to have.
To make a back up copy, you load the program into your computer usinq OLD CS1. and then save it to a NEW cassette using SAVE CS1. Easy eh.
Some programs
cannot be copied in this easy manner, for instance:
Programs which use data files such as HORDES
Program format data files, such as the Adventure tapes
Extended Basic programs which have been saved with the PROTECT option.
In many cases, suppliers of protected extended basic programs will supply you with a replacement for a nominal fee if you return the original cassette. In other cases, it is less trouble and cheaper to make your own copies. Always use tapes of less than C60, preferably the C10 to C20 computer cassettes.
NB: It is OK to make one copy for your own use. It is illegal to sell that copy or even to give it to a friend.
Clive has had an enquiry: If Rambles is written with TI WRITER (it is, it is!)
why are the right margins not justified??? Answer: Because right justification
is an OPTION. If you do not want it. you do not need it.
Personally. I don't like right justification!!!
Even left
justification is an option, as are indent, outdent and so on.
With reference to my first quarter page ad in Home Computing Weekly, I CAN spell SIMULATION. The magazine cannot!
QUERY: I have a menu to be selected from the screen and wish to load some variables from data statements, using different data depending on which choice is made. How?
The TI99/4A is remarkably good at this sort of thing. The type of program
we are considering is in the form:
(NOTE: this won't work in this form!)
90 ON A GOTO 100,200,300,400 etc
100 DATA Q,W,E,R,T,Y
110 FOR C= 1 TO 6
120 READ V(C)
130 NEXT I
140 GOTO 1000
200 DATA A,S,D,F,G,H
210 FOR C=1 TO 6
220 READ V(C)
230 NEXT I
240 GOTO 1000 and so on.
Left to its own devices, the computer will first read the first data
items (line 100) even if you have GONE TO 200. Which is not what we want.
If you first go to 200, then 100. the data will have been read in the
wrong order completely
READ always reads DATA items in order. starting from the first item. As each READ is carried out, so it will then read the next DATA item.
RESTORE is used as a command, on a line on its own (in TI BASIC) to reset the data pointer back to the first DATA item in the program.
RESTORE can also be used to point the computer to a particular set of DATA, by following the command with the line number the required DATA is on.
From our example above, we could have:
90 ON A GOTO 100,200,300 etc
This is a powerful command. Some other computers allow you to RESTORE, but to
get to a particular DATA item, you have to READ every single item! Not so on
the trusty TI99/4A!!!
100 RESTORE 110
110 DATA Q,W,E,R,T,Y
110 FOR C= 1 TO 6
120 READ V(C)
130 NEXT I
140 GOTO 1000
200 RESTORE 210
210 DATA A,S,D,F,G and so on.
DO YOU HAVE THE PERSONAL RECORD KEEPING OR STATISTICS MODULES?
If so, did you know you have extra CALLS available in TI BASIC when these
modules are inserted?
Try: CALL D(6,2,26,"SURPRISE")
These modules add CALLS which simulate Display At and Accept At, and
uniquely, allow you to partition the VDP ram, store data there, and save it in
PROGRAM format: verifiable, and FAST.
The official TI document on
additional PRK Calls from whtech.com in pdf format.
Now that TI modules have ceased production, it is interesting to see Atari producing some modules for us. How good are they? The prices (20.00 and 25.00) are reasonable for modules, but not cheap if you do not have a lot of money ....
First, a warning: ATARI are not paying TI to use TI's unique GROM technology.
These ATARISOFT modules will not be recognised at all by the newer version 2.2
consoles... easily recognised, they say V2.2 on the 'test card' screen.
Second: The 99/4A exists in several versions, with slightly differing operating
systems. I have had problems with some ATARISOFT modules, and you may have
also. It appears they work on the most widely owned consoles however.
Asked to comment. ATARI say their modules work fine on their ONE TI
console. Technical explanation: Atari are using the large character set you see on the test card, but are using a direct address, which is not the same on all consoles. On these
the text will be rolled by half a character, illegible.
Picnic Paranoia is a game in which you avoid a bee, and swat insects making off with your picnic! The graphics are simple. I was unable to play this module due to non-compatability with my console.
PROTECTOR 2: A very simple game, with simplish graphics. There is a tiny non-important program bug, but the module suffers from poor game design. You may select level of difficulty at the beginning, but you score no extra for higher difficulty levels, and once you have accomplished your task, that is that. The task is to move people from one city to another while an alien craft is picking them up and dropping them into a volcano. Stage two involves moving them from the 2nd city, which is now being engulfed in lava, to a further place of safety. There are a few aliens trying to stop you too. I found the game trivial, but perhaps younger owners will appreciate the scenario better.
PAC MAN: The classic game which followed Invaders in the arcades all those years ago (Remember the
record. Pac Man Fever? I don't either!). This is a faithful reproduction of
the arcade game. with graphics which come very close to matching the
arcade version. However. the speed is low.
Screen set up is painfully slow (is the module written in basic?) and the
critters do not move too fast. After only a few plays I think the better
games players will be scoring into the millions!
An interesting module. but is PAC MAN meant to be relaxing?
Inside this loop we do all the work. For each cycle through the loop. the variable
LOOP takes an increasing value, from 1 to 1000.
Thus by inspecting this variable we can check for the digit 7.
Because we must spot the digit 7, in numbers such as 7, 17, 76 etc. we have to check
EACH DIGIT in the number.
On the TI. to split a number in this way. we have to convert it into a STRING, using
STR($):
LOOP$=STR$(LOOP) where LOOP$ is a STRING VARIABLE.
To check the digits. we use SEG$ and LEN.
LEN(LOOP$) is the length of the string LOOP$ and will vary from 1 to 4 (1 to 1000
remember!).
So. inside the loop:
LOOP$=STR$(LOOP)
FOR A=1 TO LEN(LOOP$)
IF SEG$(LOOP$,A,1)="7" THEN GOSUB 2000
NEXT A
PRINT LOOP
and then
NEXT LOOP
We have changed the number, say 47, to a string "47".
SEG$ is then used to look at the first digit... is it a "7"? Then the second
digit...is it a "7"? If so. GOSUB ....
and in the subroutine. the audible warning required:
2000 CALL SOUND(400,440,0)
2001 RETURN
And that solves the problem. Try to follow what the computer is doing.
What is in it? Quite a lot actually, for its size. Lots of sample programs to
show you how to use sprites... a powerful addition which Extended Basic gives
you, and sometimes a little difficult to use to best effect.
There are samples to show you how to use keyboard or joysticks to control
sprites, and how to pick up objects or leave a trail. There is also a section
with some CALL PEEKs which can be of use, such as a faster RND.
This book is available from 99er.net as a 15 meg pdf - this link takes you to a licence page not to the pdf.
Together with my copy I received two 3 page leaflets called 'The Smart
Programmer'. and one of these solved a problem that has been puzzling me for a
while: How to stop QUIT from functioning. Requires Extended Basic and 32k RAM.
Following on from these two small leaflets. there is a monthly newsletter.
called THE SMART PROGRAMMER. The first issue (February 1984) consisted of some
15 pages. almost A4 size. A subscription to this is also available from
Timeless. for 17.50 per year.
In the February issue. another long standing
problem was solved:
Given a large TI BASIC program such as WINGING IT, how do you load AND RUN IT
from Disk? The disk controller snatches too much memory to allow you... the
answer requires Mini Memory AND 32k RAM. but it works!!!
Mr Miller also shows how to prevent your disks being backed up ("proprietary disk protection"). Promised for the future are machine code routines that you can use with Extended Basic and 32k ram for faster sprite coincidence detection.
These publications cost a wee bit, but if you are seriously interested in powerful programming, I think you will find them of use - I certainly have my value for money! Perhaps groups of owners could share them?
NOTE: The Smart Programmer magazine is available from whtech.com in pdf format from issue 1.
Two books for the novice (such as myself!) have now appeared in the States.
First. a book for all true beginners. ASSEMBLY LANGUAGE PRIMER by John T Dow.
This is a private publication. available from the author for US$22. inc. UK
pp. It assumes NO prior knowledge. and is the book I most strongly recommend
if you can only afford one. It does not go into it too deeply. but does have a
fairly comprehensive memory map. In despair with the Assembler supplied with
the Mini Memory. Mr Dow has written his OWN assembler, requiring Mini Memory.
US$27. His book can be used with either his own assembler or the
Editor/Assembler from TI.
The Dow book is available on The Cyc dvd rom, available from CaDD to purchasers of the PC99 emulator.
Consider the price of the emulator and the document and program rich dvd rom together. The dvd contents are all authorised and licenced. The book is also available as a zip file from TI Books.
Then a professional book. INTRODUCTION TO ASSEMBLY LANGUAGE FOR THE TI HOME
COMPUTER by Ralph Molesworth. Published by Steve Davis Publishing, and
distributed by TENEX (USA).
I found this one to be somewhat harder going, and there are a few errors. One
sample program runs to almost 400 lines! A suitable companion to the Dow book,
and it will take you a little farther into the mysterious depths of your
computer.
The Molesworth book is available in pdf format from whtech.com and also in a zip file from TI Books
From the same publisher and distributor comes PROGRAMS FOR THE TI HOME COMPUTER (74 meg zip file from whtech.com) by Steve Davis (no no. not the snooker player). This large A4 book runs to 125 pages. and includes programs of a somewhat higher standard than is usually found in books of this nature. There are even programs requiring speech, 32k ram, or disk, but they have been written so that most owners will be able to find something in every program. Also available as a 15MB zip file from TI Books
The programs fall into the usual collection categories. with many utilities such as 'personal banking' or 'metric converter'. but how about 'talking calculator'? There is a huge adventure for those with disk and 32k ram.
Bigger characters? Better lower case set? All there.
The above two books are available direct from the USA from_
Tenex Computer Marketing Systems
The airmail postage is about $10 per book. The program book is $15 and the
assembly book $17. plus post.
It does look as though the expensive 99er Magazine is ending its usefulness to us. No December issue. and rumours reach me of planned irregular publication, and the addition of Atari and Commodore machines in future. The big TI advertisers are leaving it.
Enthusiast 99 from the International User Group looks even better value under the circumstances. The AIRMAIL sub is US$22 (must be in US funds on a US bank)
Home Computing Weekly continues to support us... have YOU sent them a program for publication???
In the last issue I mentioned some of the reasons you nay NOT have a reply from a mail order fire. Remembering that my adverts all ask for an SAE. I have received no less than 30 requests without SAE's (including SAEs without the stamp!) and yet another SAE with a completely useless franked impression (from a firm of Chartered Accountants .... ). Do take care when using Mail Order!!! And yes. letters without return addresses still arrive.
NB: There will be an additional little rambler around MAY, letters and orders
around this time nay be subject to short delay, apologies in advance.
Happy computing!
Stephen Shaw
BEGIN TO PROGRAM
In this article I have outlined the development of a subroutine to simulate a
DISPLAY AT function in TI BASIC.
Due to restriction of space I have included just some of the stages in development and trust that you will be able to fill in the omissions from the previous article.
Task Definition
the object of the subroutine is to display the characters that go to make up a
message upon the screen running from left to right starting at a given
location.
THINK
Consider the above definition, does it do all that we require? Should it not
include the fact that the message is likely to be of a varying length? Further,
consider what would happen if the message was more than one line long or did
not start at the beginning of a line and was longer than the number of spaces
left.
At this point the definition is rewritten with the above considerations and then the thought process is repeated. The processes of think, rewrite, think, rewrite ... is continued until at the thought stage it is possible to say "I believe that I have covered all eventualities"
At this point the following Program Map was drawn up
From the above Program map it can be seen that there is not a nice even and
logical flow. The thought processes were invoked and the map was redrawn
several times until the following more logical map was derived.
The above started out as a Program Map and has evolved as it has been
rewritten into a Flow Chart. This is usually the case, a program evolves as it
is written which is the main reason for not writing with the computer on, as
changes are simpler at the beginning and when an over view is available.
From the above Flow Chart the following sub program was written.
Main Prog .... set up.
300 ROW= row at which display to start
NOTE.
310 COL= column at which display to start
320 MSG$= "your message"
rest of your program
3990 STOP
4000 ROWA=ROW
4010 COLA=COL
4020 FOR J=1 TO LEN(MSG$)
4030 CALL HCHAR(ROWA,COLA,AS
C(SEG$(MSG$,J,1)))
4040 COLA=COLA+1
4050 IF COLA<25 THEN 4100
4060 COLA=1
4070 ROWA=ROWA+1
4080 IF ROWA<25 THEN 4100
4090 ROWA=1
4100 NEXT J
4110 RETURN
Lines 4000,4010 are there to protect the value of ROW and COL so that if it is
required to display another message at the same location it is not necessary to
reassign their values.
Line 4050 tests for right hand edge, reducing this value will increase the
right margin.
Line 4060 set the start column for the next line, increasing this value
increases the right margin.
Lines 4080 and 4090 have the same effect on the row limits.
IF you make the test and reset values in lines 4060-4090 variables it is
possible with care to create multiple screen "windows" for the display of text.
Do not Forget QGYH. IF you do not know what that means how do you find out? Answer- 3 hours searching your screen or 3 mins searching your notes.
IF you have any programming queries please write to I.P.Godman C/o Christine Computing
One special feature of our group is that it will be catering for blind/partially-sighted TI users, in that I will be reading the newsletter on to cassette. All I ask such users is (a) for a few special "free post" labels to cover the cost of mailing the cassette, and (b) the cassette. We have one such member, who uses the TE II and Speech Synthesizer to list his programs and to provide prompts during their running, and if there is sufficient demand I would consider providing that form of newsletter free to any blind/partially-sighted TI users in the UK. Those outside Oxfordshire who would like a copy of the newsletter will have to pay a little extra to subsidize me, but I doubt if there would be many anyway, I am going to put a circular out to all the computer mags and see what happens.
Of all Texas Instruments' modules, this is probably the hardest one to get to grips with. The main reason is due to TI's comprehensive but incomprehensible manuals. Mr. Lottrup assumes the reader has taken the module out of its box and has waded into the manual to have his eyes glazed. Ms. Swift, on the other hand, assumes the reader knows a little, and starts off at day four. The snag with Assembly Language is that if you don't start at day one then day four will never arrive !
I have to assume you read 99'er because I can't repeat verbatim what has been written there due to copyright problems. If you don't have the relevant issues, I suggest you get them. As far as these writings are concerned they are 1983 April, October, and November.
You can read 99er from the whtech.com website.
In the October edition, Mr. Lottrup stepped in to enlighten the world as to how use the Line-by-Line Assembler supplied with the Mini Memory. Until my reading that article, I'd been hit by a barrage of error tones every time I'd tried to use the thing. Since then, I've been able to enter a couple of listings in Assembly Language and make them work! I don't pretend to understand entirely what I'm doing, I've still a very long way to go, but it is a start.
The first program has to be the simplest one it's possible to do. Just 12 characters in the middle of the screen displaying those immortal words: "PROGRAM TEST". Definitely not Earth shattering, but I was filled with pride at having successfully entered, and run an Assembly Language program. Getting a little bolder, I started changing the text, increasing it, decreasing it, and changing the position where it started.
I finally came unstuck when I tried to enter a screenful of text. I don't know why, but I aim to find out. A clever and necessary part of the Mini Memory is its battery back up. It's handy for short programs, but that isn't its real purpose. Although the Assembly Language programs are entered from the Line-by-Line Assembler, they don't have to be run from there. They can be run from Easy Bug or even Basic. (More on that in a bit.) But the only way to go from the Line-by-Line Assembler to Basic or Easy Bug is to QUIT first.
If there was no battery back-up, then everything in the Mini Memory would disappear when QUIT was performed. The problem with this is that whatever is in the Mini Memory stays there anyway. If you have a bugged program, trying to get rid of it by switching off won't help.
I really can't recommend this option. Much better is to use CALL INIT. That gets rid of everything — bugs, programs, and the Line-by-Line Assembler. It doesn't get rid of mothers in law, dirty washing or the gas bill! So now you've rid yourself of the Mini Memory's contents, you then have to re-load the Line-by-Line Assembler. This is fine, once or twice, but after the sixth or seventh occasion, the novelty starts to wear thin.
Doubtless, there is some sage muttering phrases about patience and virtue, but virtue starts to lose its attraction when you're two hours debugging the same line over and over.
On to the second program. This was published in the April edition of 99'er by the aforementioned Ms. Swift. It's to do with sprites. Now as we all know, sprites are those wonderful things that you can buy for around the £50 mark, together with something called Extended Basic.
Sprites are defined as "smoothly moving graphics". I couldn't have put it better myself. Now most people's reason for buying Extended Basic is to be able to use these wonderful things. But they are available in the version of Basic that comes with the Mini Memory. Not as straightforward CALLs.
Oh no! To get at them, you have to delve deeper into
the pleasures of bloodshot eyes and the wife asking if you plan to come to bed tonight, or if she should take
the kids back to your in-laws. Sprites can be achieved in Mini Memory Basic. The way to do this is as
follows. (This next bit is very tongue in cheek). Write to PCN and get the back issues containing the writings of one Mr. Stephen Shaw on the subject. (Facetiousness is my strong point!).
[Or look for a copy stored here]
The alternative method of using sprites with the Mini Memory is to take the hard option. Via Assembly Language. The program in 99'er was just a demonstration, and a fairly simple one, consisting of five sprites stationary at the left column of the screen. They then shot to the center of the screen and went stationary for a second.
Then they moved to the right column on the screen where they again became stationary, before repeating the whole process. Like "PROGRAM TEST" this wasn't the ultimate in machine code programming, but it's proved to me that I can enter Assembly Language, and that the aura of mystery surrounding it isn't impenetrable. I haven't tried to alter this program yet. I shall do though as trial and error is one of the routes to success in Assembly Language programming. Something else that would help would be knowing what I'm doing!
Consider that I've been sitting around with that sprite program for more than six months now, but didn't enter it because I didn't know how until Peter Lottrup explained the peculiarities of entering Assembly Language. It goes to prove a point I constantly make. There is no such thing as a bad student, only a bad teacher. To know your subject alone is simply not enough. It's the ability to pass on that information in a manner that people can understand that makes a good teacher.
When a program is in Assembly Language, it's supposed to be able to be accessed through one of three means with the Mini Memory. That is if the program has a name, and if that name has been entered in the REF/DEF Table. If it doesn't have a name, then it can only be got at via Easy Bug. With the program in memory, QUIT, select 2 for Easy Bug and then press any key to get out of Easy Bug's menu. Then type:
Exxxx
xxxx is the starting address for the program. If a program has a name defined, then two further options are open to you. You can either select the Mini Memory option, and then select the run option from that menu. Then type in the name of the program. Or you can use Basic. This gives a two further options, one from Immediate Mode and one from program mode. In Immediate Mode, type:
CALL LINK("program name")
or the CALL LINK can itself be part of a program. Instead of going to the Mini Memory option as specified by the manual, go to Basic instead and then try:
CALL LINK("LINES")
after loading the Line-by-Line Assembler into the Mini Memory instead of using the Mini Memory option for running LINES. The previously enthused over Display Enhancement Package from Stainless Software works this way. The Display Enhancement Package requires the 32K memory expansion, but that is because it's range of facilities is so great. The theory is that a smaller set of routines could be fitted into the Mini Memory's 4K of RAM and then be accessed by the user, who wouldn't have to know how the Assembly Language routines worked, only what they do. In the States, programming tools of this nature are already becoming available although they are expensive.
If anyone is truly stuck with entering anything via the Line-by-Line Assembler, drop me a line with your problem. If I can help I will, but don't send me your bugged programs. I'll stand as little chance as anyone else sorting those out. (Don't forget the SAE.)
User friendliness. Now in this case I'm not going on about that much-vaunted phrase that springs to everyone's lips when they want to convince their audience that they know what they're talking about. In this case it's the users who are friendly. I've talked to a lot of people recently, and although I haven't met all of them (the telephone is a wonderful invention) I'm always impressed with how pleasant everyone is.
It seems to be one of the pleasures of owning the TI-99/4A. I've written to other streets, towns, cities, countries and continents. I've nearly always received replies and those received have always been charming. The same cannot be said for owners of other machines. Many Apple owners keep their cards very close to the chest and become voluble at the thought of parting with them. Even for money. So a message to all users. Let's keep it that way. I am still receiving letters addressed to Dear Sir, or Dear Mr. Greenberg. Now if the Gas Board want to call me Sir, that's OK. With what I pay them, if they want to call me God, I wouldn't consider that unreasonable. But when fellow users start calling me Sir, that's a different kettle of fish. My name is Howard. It may not roll of the tongue that easily, but it's the only forename I've got ! The computer business is renowned for the world and his wife being on first name terms, I don't see why we should be any different.
New purchases. It has taken the best part of 30 months years, but my system is now complete. My setup now comprises: Console and color TV, Peripheral Expansion Box, 32K RAM card (of my own construction), RS232 Interface card (which includes a parallel port), a disk controller card and the most recent addition, a disk drive. It's the disk system that I'm going to write about.
Most of us know what disks and disk drives are, so I'm not going to explain their physical construction in detail. What is important is the method with which they are used. The simplest way to describe all this is to recount my own experiences from the moment my own disk drive arrived.
When Texas Instruments announced the cessation of manufacturing for their 99/4A, I knew that the one thing that would be nigh impossible to make for myself, would be the disk controller. This was bought, and then I waited for my finances to accumulate. At the beginning of January, I ordered my drive from Parco and waited whilst Securicor spent two weeks fulfilling their next-day delivery. In the meantime I read and re-read the disk controller manual. Eventually, the drive arrived together with a TI-Writer, which I'd ordered at the same time. With a brief "sorry for the delay mate" the driver rushed off to deliver another long overdue parcel, and I dashed in to set the drive up.
Setting up. The manual for both the controller and the drive give very explicit instructions on how to do this. It's fairly simple, if the manual is followed to the letter, but it could be done without the manual, it's that straightforward. Incidentally, there is no need to purchase a TI drive. In fact there is no such thing, as all the drives supplied for the TI computer are made by someone else. A letter from TI informed me that suppliers include MPI (which is what mine is), Shugart, and others. I have seen an internal drive for another machine which was identical in every respect to mine, but as I couldn't try it out, I can't comment on it. I do know for certain that the Teac 55a works and that the previous design of Cumana doesn't. Most Tandy drives will work, but don't buy one, they are much too dear.
The next step of course was to switch on and make it blow up in my face.
Turn on, no smoke, no bangs. It worked, and it worked right first time.
Hearing and reading so much about how disks and drives are such delicate pieces of equipment, I was rather nervous about doing this. I promptly proved that some of those warnings are true by accidentally putting my thumb on the first disk I pulled out of its envelope. I lost a fair amount of space on that diskette by doing that! I'm now much more careful. Before a disk can be used, it has to be formatted to comply with your system. This is done via the Disk Manager. This module formats or initializes the diskette, as well as giving it a name. It can also give a list of what is on the diskette, in case you can't remember what is on what disk. The screen instructions are simple enough for a moron to follow.
I know that because I have it on good authority that I come under that category. So you should have no trouble. The next step was to use a disk. I have a fair number of tapes lying around and they were starting to make the place seem cluttered. It was sensible and practical to put all of them on disk. Loading the tapes via cassette took the usual time, but then saving them to disk took seconds! Also I could now name the programs. This was useful when loading them back from disk. For example, Christine Computing's Core program was loaded in. Once in, it was then saved to disk.
The command is similar to cassettes so no problems learning a new set of jargon. Just SAVE DSK1.CORE and ENTER. There is an odd aspect to this. It takes about 5 seconds to Load a 16K program, but it still takes the computer 15 seconds to go through it's pre-scan.
There is far more to using disks than just speed. For me at least, speed is not enough to justify the expense of installing the setup. Its real blessing comes with its random search facility. Big deal you might say, and you'd be right. It's the random search facility of the disk that makes it clever.
To illustrate the point, I'm going to do a comparison with the Personal Record Keeping module. Since many of you have the Personal Record Keeping module (and those that don't ought to get it) I'll not waste words describing its functions in great detail. The Personal Record Keeping module is a filing system. You can access a page, or compare every record on all (or selected) pages. But in order to do this, you have to load the entire file into the console. This in turn is why the Personal Record Keeping module limits you to how much you can enter.
It can store only so much information and then the file is full. But with the equivalent program an disk, using the random search facility, only the requested item is loaded, and only that. In theory at least, you could have an unlimited number of records, because they are all kept on the disk, not taking up space in the computer's memory.
There is more to the disk system than what's written above. Many of Texas Instruments' software packages require the disk system in order to work. Programs such as Editor/Assembler, Multiplan, and TI-Writer could only be implemented on disk. Since my next review is about TI-Writer, let's move on there and see why the disk is necessary, if not essential.
TI-Writer
It's difficult to know where to begin with this review. Stand up the boy who said: "Please sir, why not start at the beginning?" But let's start with documentation. Unlike the aforementioned Mini Memory and Editor/Assembler manuals (comprehensive but incomprehensible) the TI-Writer manual is written in English. I could read it with no double-takes and virtually all my problems with the package could have been sorted out easily and simply. The only reason I didn't use the manual for all my troubles is because I have a telephone. (You can make of that what you will!) Also supplied is a module which goes … well you know where modules go, and a disk. The disk is what contains the controlling software:
The Text Editor, which is what you write with, set up tabs with, and generally do all the tricks you do with a typewriter.
The Text Formatter is what does the clever part, such as the right margin justification.
Text Editor. This is what I'm writing with now. With it I've set tabs, indentation, and the usual boring things. But it has a great deal more to it than just allowing you to type as though you were using a typewriter, with the option to correct your spelling mistakes before you start printing. For example, while writing this, I have used a form of shorthand. Instead of typing in long and often used phrases such as assembly language I simply type in "al". Then when the document is complete, I select the Replace String option. In Replace String, you're asked to enter the old string and the new string.
So type:
/al/assembly language/
and change every occurrence of al to assembly language. I managed to come unstuck with that. It's very easy to imagine the machine is intelligent. It isn't.
When I told it to replace "al" with assembly language, it did so all right, but it replaced every occurrence of "al". Words such as normal and allow were transformed to normassembly language and assembly languagelow. My own fault.
What I should have done was to replace / al / not /al/. Practice makes perfect and TI-Writer makes for better and quicker typing.
Other tricks can be done such as Copy Lines.
One line or a whole paragraph can be moved to a different location. But one of the handiest facilities is the .TL command. This stands for transliterate and it transliterates any ASCII code to another. For instance, there is no £ symbol on your keyboard. But I typed one. What I really did was to type a hash symbol (#, SHIFT and 3 on your keyboard).
My printer knows that the £ symbol is at ASCII code no. 129, and my computer knows that the hash symbol is at ASCII code 35. So by transliterating 35 to 129, I can now make my computer print symbols not on the keyboard. I only need to define these once, too. I find that putting in all the commands at the beginning of a document and then printing it through the Text Formatter is the simplest route to go. The .TL command does other tricks too. By setting little used characters to act as control codes for the printer I can print a variety of different fonts with the minimum of fuss.
There is more still. For instance I've set up a mailing list for all the Arcade Hardware customers. They will now receive information on a regular basis, of those products I buy in from the States. If you want to know what's available and what's new, drop me a line and from time to time you'll get a letter informing you of current products.
If you don't want to be on the mailing list again let me know and your name will be removed from the file. What happens with a mail list, is that a single letter is written, but a hundred (or even a thousand) names and addresses are set up.
This is truly where the random search of disk is so helpful. The one letter is loaded and then the computer asks if you wish to use the mail list option. Usually of course you say no, but now I am sending out mail lists it comes in handy. If you say Y(es) to the mail list, it asks for the name of the list. You might keep more than one list, one batch of customers might have only Texas Instruments machines where another list might contain only Commodore owners. Once there, it will write the letter, searching for the characteristics which make each letter individual. This is a Home Computer!
Even now, I haven't listed all the TI-Writer features, but so as not to give it full marks it does have two-and-a-half things against it.
1. I don't like the way the printer wastes a sheet of paper when it starts printing. Nor do I like the way it advances a couple of line feeds before it starts to print. I can live with it, but I'd sooner live without it. It's not so bad on fanfold paper, but on single sheet, it's a real pain.
2. In certain circumstances the computer is too slow. I'm going to try to persuade my girlfriend Elaine
to write her own views on this amazing product as she is a competent touch typist, and uses
professional word processing equipment in the course of her normal day's work. What happens with
TI-Writer, is that you enter text in something called word wrap mode. When you reach the end of a
line (on the screen), the computer then moves down to the next line automatically, taking the word
you were typing when you reached the end of the line with it.
For example , if I'd typed laundromat,
but started typing "lau" when I was at the end of the line, the computer would take "lau and put it on
the next line so that the rest of the word would follow on the same line. Well you might say, that's
wonderful, and it would be except that it's too slow. I don't regard myself a touch typist, or even a fast one, but as I keep typing as I reach the end of the line, the computer takes a fraction of time and misses a keystroke while it's wrapping. Of all the TI-Writer's faults, and there aren't many, this is the most serious, if only because nothing can be done about it. So now you know why despite this document being word processed, it isn't perfect.
The only other things I could condemn TI-Writer for are petty, and are brought about by the limitations of the TI-99/4A rather than the quality of the software. The CTRL key, that's been redundant on my keyboard for as long as I've owned this machine, has now sprung into life with a vengeance. Shades of Uncle Clive's horrible Spectrum come to mind, as I now have to cope with a virtually new set of keyboard functions. Not only are all the FCTN keys given new functions, but the CTRL key now gives them a second alternative function.
With all these new FCTN and CTRL keys it very easy when starting out with this package to hit the wrong key. Sometimes with potentially disastrous consequences. It's a not inconceivable problem to delete a whole page of text by accident, by pressing the wrong combinations of keys. Texas Instruments did something clever here with the inclusion of an Oops key.
Whatever mistake has been made can be corrected by pressing the Oops key, provided no other key has been pressed first. It's simply a case of getting the hang of the thing, which I will do. It's good enough to deserve being used properly. Would I recommend TI-Writer? An unqualified yes. The niggles are petty and it's strong points far outweigh its bad ones. Perhaps it's biggest disadvantage is cost. Not for TI-Writer. That costs £68.90 and is well worth it. No, the problem is that you need a fully expanded system!
Stupid comments to fill the page! 1983 brought about very few relevant changes in the home computer scene. So with not much that really matters, I'd like to look back from a cynics viewpoint. The most prominent feature was to us at least, the price reductions on the TI99/4A. This in turn led to many more owners. Further reductions led to more owners, with some of those who'd paid more, feeling somewhat annoyed. We were all then rewarded for our perseverance and brand loyalty, by Texas Instruments's withdrawal from the home computer scene. Texas Instruments were in deep trouble and abandoned the scene.
Atari too were in financial hot water, but they brought out a new machine. There has been much bitterness surrounding the decision, but it's all pointless, because nothing can be done about it. Bureaucrats aren't going to reduce my rates bill because I don't like it any more than Texas Instruments are going to start manufacturing TI-99s again. You can't revive a corpse, so don't bother trying. Letters in the press have been abundant. There has been more in the press in the four months since the machine's demise, than there ever was in the four years while the machine was in production. In the January 24-30 edition of Home Computing Weekly was a letter from an owner, who had a far more eloquent turn of phrase than I.
I'd like to repeat his letter in full, but it is the property of Home Computing Weekly. It's also too long. The relevant section is as follows: "I agree that perhaps Texas Instruments' marketing was inadequate and that the computing press in general has unfairly caned and ignored the machine. However, maybe we owners are the lucky ones in that we know and appreciate its good points. I am certainly not apathetic and will continue to enthuse about my 99/4A.
If the gentleman who wrote those words is reading this, perhaps you'd like to write in to TI*MES. Your comments and enthusiasm would be appreciated by us all.
Another quote taken from the same edition of Home Computing Weekly and is perhaps one of the more honest statements from a member of the computing industry. At the risk of infringing copyright, I'm going to repeat this in full.
❝We must search for meaningful applications of microprocessor technology in the home. We are in the entertainment business and we enhance people's lives by offering opportunities for learning and self-improvement. In fact, aside from word processing, there are few true applications for home computers. Let's face it, you can balance your check book with a calculator, and you can store your recipes in a box in the kitchen. We've got to make consumers say, "Gosh, I didn't know a computer could do that" and "I want one". What I am telling you is that it is not enough for manufacturers to merely offer more computer memory to consumers. Most consumers already have more power than they know what to do with already.
And it is not enough for retailers to justify the sale of computers on price alone. In fact that is a disservice to consumers, because consumers should be made aware of what the computer can do for them. Who are we helping, if a consumer buys a computer and ends up using it as an electronic paperweight or doorstop? Maybe we can learn something from Detroit. In the old days, car buyers were also pre-occupied with horsepower or cubic inches. But nowadays, most people are interested in features and gas mileage. We've yet to get to that stage in our industry.❞
Those words were from Donald Kinsborough, Atari president of sales. Is that sour grapes from a man whose company doesn't enjoy the No. 1 slot in the sales league ? I don't think so. Mr. Kinsborough has cut to the core of the problem. Why did the Commodore 64 sell so well? Because it was a Commodore? No, because it has 64K and that's what Commodore promoted. The fact that the fabled 64K was never available to users was conveniently omitted. If marketing departments had the courage to follow Mr. Kinsborough's route, then far fewer computers would have been sold, but 99% of them would still be in use. On the other hand, that is the route Texas Instruments took, and look what happened to them.
My apologies to Ian Martin of Timeless Software. In my last round up I didn't include his wares in the list of software houses. I have now tried some of their software and I'm particularly impressed with Kippy's Nightmare. As reviewed in the last edition I can't add to that, but I can reinforce this "must" for all Mini Memory owners. Since my opinion seems to be not only read, but digested too, some people may have felt that my exclusion of Timeless Software was a slight. Not the case.
We have three very competent programmers writing for TI*MES. Two of them at least have asked for suggestions in the "What do you want me to write about next?" department. Well, if no-one else has any requests, I have. Will one of you please write the definitive article on cassette-based file handling. To me at least, the manual is so such gibberish on this point. I know the difference between relative and sequential files and that's about it. I don't even know how to use them! If I'm baffled, surely someone else is.
A couple of new publications. First is Enthusiast 99. This is a bi-monthly magazine written solely about our computer. It's run by the International 99/4 Users-Group, and the only way to get copies is to become a member of that group. It costs $16 and for that, and your subscription is included. You also have access to a huge library of programs at very reasonable rates. What of the magazine? Well, the only copy I've had to date is a back issue (September) and it isn't fair to judge the magazine on that edition. I have seen a later edition and that was better still. It is good and I do recommend it.
Two of the things I dislike about the now demised 99'er was the way in which they printed an article, so as to ensure you'd lost the thread of what you were reading by the time you'd flipped from page 7 (which was where your article started) to page 84 (which was where it ended). In between, you'd read half a dozen articles on the goto pages.
Enthusiast 99 prints everything in a logical order. If you start reading on page 7 then the article will either finish there or at the latest at page 10, with all the in between pages covering the subject you started to read.
What's the other publication? The Smart Programmer by Millers Graphics. It looks as though it was assembled by one man but don't let that put you off. He knows what he's talking about. 16 pages of gray A4 sheets stapled together may not sound like good value for money, but there is as much in my sample edition as in the last edition of 99'er. There aren't any pretty pictures, glossy paper, or even decent print. (It looks as though it's been done on a electric typewriter).
None of this detracts from the contents. It's not for absolute beginners. I'm a very poor programmer and I had trouble with parts of it, but I still found it readable although not that much use to the non-programmer. I see this publication going mainly to people who want to use the knowledge contained in the magazine to enhance their own programs. I have ordered my own subscription, mainly because I live in hope that one day the contents of my cranium will stir.
When that ultimately happens, The Smart Programmer will come in very handy indeed. It's available from Timeless Software on a subscription basis only at £17.50 for 12 editions.
Our thanks to the Cin-Day User Group
Hint #1. DISPLAY AT, used in Extended Basic, will use the colon, comma, and semi-colon just like a PRINT statement. This line will give you some idea of how it works:
100 DISPLAY AT(5,1):"THIS":"WILL","GIVE": "YOU","SOME":;:"IDEA OF ":"HOW":"IT"."WORKS."
See the reference manual under PRINT for details.
Hint #2. The Washington DC Area TI User Group pointed out that in Extended Basic, you can use the statement RUN "CS1" instead of OLD CS1, and RUN to load and run a program. With a disk system, RUN "DSK1.PROGRAM" is used and explained in the manual, but RUN "CS1" is not mentioned.
Hint #3. As a way to save memory you can use a non-numeric character in place of a numeric character.
The difference is that a non-numeric character only uses 2 bytes where a numeric character uses 4 bytes.
An example of a non-numeric character would be an @, whereas an example of a numeric character would
be a 1. The following example illustrates this point.
100 CALL CLEAR
110 @=1
120 FOR A=@ TO 100
130 PRINT A
140 NEXT @
If you have a long program where you need extra memory then you can obtain all that would be possible
in this respect. Also if you need to save memory try shortening the variable names to a single letter with
a maximum of two letters. Finally if you still need memory try removing all REM lines.
Hint #4. Have you ever wanted to round off numbers and did not know how to do it in a program? Well
it is easy once you know the secret. Here's how! The following example will illustrate the process:
100 CALL CLEAR
110 A=123.4567891
120 PRINT A
130 A=INT(A*100+.5)/100
140 PRINT A
When this program is run you should get the following results.
123.4567891
123.46
If you want to round off to three places then use 1000 instead of 100 and for four places use 10000 instead
of 100. Try it.
Hint #5. Have you ever wanted to generate random numbers say from -10 to 10? Well it is also an easy
matter to accomplish once you know the secret. Here is an example:
100 CALL CLEAR
110 FOR A=1 TO 15
120 B=(-1)^(INT(11*RND))*(INT(11*RND))
130 PRINT B;
140 NEXT A
When this is run here is a sample of what you might expect:
-4 6 0 5 3 -9 -1 4 9 -6 -5 -10 7 -2 0 10
All you have to do to specify the range of random numbers is to change the 11 to any number you desire.
To change the number of numbers that are to be generated change the 15 to the amount you wish to be
generated.
Hint #6. Are there times when you would like to print something on the screen without having it scroll
on the screen? Well you can and it is easier than you think! Here is how that can be done without
Extended Basic.
First you decide where you want to print the message. You will need the row and column co-ordinates.
Second you will need the message or statement. Third you will need the subroutine to accomplish this
task. Here is an example:
100 CALL CLEAR
110 R=12
120 C=2
130 A$="TEXAS INSTRUMENTS HOME COMPUTER"
140 GOSUB 160
150 GOTO 150
160 FOR A=1 TO LEN(A$)
170 B=ASC(SEG$(A$,A,1))
180 CALL HCHAR(R,C+A,B)
190 NEXT A
200 RETURN
This should clear the screen and print the message right in the middle of the screen. The subroutine can
be used as many times as you wish. You may change the CALL HCHAR to a CALL VCHAR statement and
change the value of R from 12 to 1 and the value of C from 2 to 16. Try experimenting and you can make
it print backwards and diagonally. Have fun!
[ Articles index |
Rambles from TI*MES 3 |
TI Book front page |
TI Resources Page
| PC99 Review
| PC99 Programs
]