While reviewing readers' submissions for Home Computing Weekly recently (I managed a marathon overnight stint from 3:30pm through to 11:30am), I came across a small tip from one Daryl Coates, a 14-year-old from Stoke-on-Trent. He suggests that when using sprites in Extended Basic it is faster and more reliable to use CALL PEEK(-31877, A) and then test (A AND 32) for equality with 32, as a substitute for CALL COINC(). I am a novice in such matters — although I have had my XB for a couple of years now, I have still not found the time to write anything extensive (no pun intended) with it (hangs head in shame). This may therefore be no news to you at all; however it was to me.
Shugart have come up with the Write-Once laser drive, which allows
you to write, but not re-write, your data to a disk with a 1 Gb capacity, or 1024 Mb or 1,048,576K!
At a cost of GBP 5,000 it is beyond the average 4A owner, but by the end of the decade Shugart reckon that
the 1 Gb drive will be readily available (provided we hang on to our micros long enough?). It is called the
Optimem 1000, in case you want to make a note in your 1999 planner.
[2016 note- it used a 12 inch disk- the present smaller CD/DVD disc is easier to store and a DVD can take you to 8GB double sided, at a fairly low cost. External harddrives are now even cheaper- 40 quid for a terabyte drive...]
However, running faster than an optical disk as far as data transfer goes is a goodie from Hitachi. It uses
500 (yes, 500, it says here) 8 inch floppies crammed into what is supposed to be a desk-top drive, and it handles 5 Gb of data. Because it uses floppies it is much cheaper than the optical disk (see above).
It will be interesting to see who wins through in the end.
Information Storage, a firm from Colorado Springs in the States, has just announced a 5.25 inch, 100 Mb, Write-Once optical disk drive. Prices are expected to drop to $500 by 1986.
A large envelope drops through the letterbox. Lo and Behold, 'is the latest copy of TI*MES, and very welcome too, but, oh, what is this? Do my eyes deceive me, or do my eyes deceive me? Brian. It is a naughty calendar, printed using Extended Basic (I could make a very, very rude joke here, but I'm not going to because you are all streets ahead of me) and entitled FOXY. Swoon, swoon. It is now hanging on the wall in my bedroom/study/dining room/think tank, and everyone who comes in admires it and asks me if I can do them a copy on my machine. Alas, no. Ahem.
by David Neal, January 1985
Learning TI-99/4A Home Computer Assembly Language Programming
A new book by Ira McComic, Paperback, 331 pages, $16.95.
The fortunate owners of a fully expanded TI-99/4A system who are able to use the Editor/Assembler frequently complain about the standard of the Editor/ Assembler manual. Mini Memory owners have even more problems with the module's accompanying handbook.
This new book by Ira McComic offers an excellent solution to most of these problems. The reader is eased into Assembly Language by examining other languages, the structure of data, the structure of Assembly Language statements, the various addressing formats and the use of the Loader and Debugger.
This introduction is followed by a series of chapters in which the various Assembler instructions are examined in detail. Each chapter discusses a set of logically related instructions such as Data Movement, Compare, Jump, and Arithmetic Instructions, among others.
These chapters are followed by two chapters which discuss other aspects of Assembly Language (expressions, relocation, etc.) and machine code formats.
Three appendices contain useful information. The first is a collection of instruction summaries in which detailed information about each 9900 instruction is listed alphabetically according to the corresponding mnemonic code. The second appendix contains number conversion tables, and the final appendix lists the ASCII characters and their corresponding binary, hex, and decimal codes. An index is also included for easy reference.
Learning TI-99/4A Home Computer Assembly Language Programming is an excellent book and almost a must for anyone wishing to delve into the more rewarding regions of the 99/4A. Beginners will not be frightened off by a load of jargon and unnecessarily complex explanations: more experienced programmers will find the book a more than useful reference.
The book is published by Wordware Publishing Inc, 1104 Summit Ave, Suite 104, Plano, TX 75074, USA, and costs $16.95. I am not aware of its availability in the UK.
[You can find the book on TI Books]
An enhancement of TI Basic available through the Statistics and PRK modules by Peter Brooks, January 1985
CALL H() — THE HEADER SUBPROGRAM — Deeper discussion
In the first part of this examination of CALL H() [see TI Lines 9], we looked at a general description of what the HEADER subprogram does, and how it fits into the scheme of things. We briefly discussed the structure of the "reserved" area of memory, and how the header dictates its subsequent use.
This issue we will look a little more deeply at each of the facets of CALL H().
The form is:
CALL H(R/W,INFO,FLD,V or V$)
where:
R/W = READ or WRITE (Note: Not R divided by W.)
INFO = The Header Item Number (an integer between 1 and 14).
FLD = The Field Number (1 to 15 on PRK (1 to 99 on Stats).
V or V$ = a numeric or string item for transfer
R/W
Initially you will WRITE data to the Header (the area of memory which "describes" to the
computer how the rest of the "reserved" area of memory is to be interpreted); later you may either
READ or WRITE further data.
A zero (0) indicates that the contents of V or V$ (or an "explicit" number or string — i.e., 123456
or "FORENAME") are to be written to the Header, while a one (1) indicates that an item is to be
read from the Header and assigned to an appropriate variable. (Note that V and V$ are simply
used here to indicate the need for a variable — yo: don't need to use these specific variable names,
and you can use arrays as well: V(N) or NAME$(A*B+C-D/F,G+H,I/J)).
Summary
0 = Write data to header
1 = Read data from header
INFO
The parameter INFO tells the computer which item of Header Information you are working on.
If you wanted to place a FILE NAME in the header, you would set the R/W parameter to zero (0)
to indicate that you want to write something, and set INFO to one (1) — see the list of numbers
below and also in last issue). A value of one for INFO indicates that the item to be written is the
file name. This name can be between 0 and 3 characters long, and is placed in the "V$" parameter.
Summary
To write a file name to the Header, use:
CALL H(0,1,FLD,"CLUBFILE")
remembering that you can use string variables (and numeric variables, where appropriate)
here as well.
Summary of the INFO values and their meaning
INFO
value:Indicated item: Limits
1 File Name 0-9 characters
2 Day or month - 1-31
3 Month or Day - 1-31
To enable either European or American date conventions to be used
4 Year - 0-99. This covers a century of use!
5 fields per recd - This item is automatically updated by the HEADER routine each time a new highest-numbered field is defined.
6 No. of records - This item is automatically updated by the GETPUT routine
(which will be discussed next issue) each time a new highest-numbered record is written.
7 Header length (bytes) - This item is automatically maintained by the HEADER
subprogram.
8 Record length (bytes) - This item is automatically maintained by the HEADER
subprogram.
9 Name of field - 0-9 characters. From this point, FLD is actively involved.
10 Type of field - 1 = character; 2 = integer; 3 = decimal; 4 = scientific notation
11 Width of field- character 1-15; integer 1-10; decimal 2-11; scientific notation 8-13
(The width is handled automatically by the HEADER
routine — but only for scientific notation.)
12 Dec Places for Field - character 0 (handled by HEADER); integer 0 (handled by HEADER); decimal 1 to width - 1; scientific notation 0 to 5
13 Field storage in bytes -Handled automatically by the HEADER routine.
14 Position of field in record - Handled automatically by the HEADER routine.
Items 9 to 14 inclusive are repeated for each field (FLD) which has been defined.
FLD
The FLD or Field Number is a little awkward to discuss as it behaves a little peculiarly.
The computer scans a CALL H() and expects there to be four parameters. Accordingly, although FLD
(the field) values do not play a part until INFO item 9, a value for FLD must be provided (say 0)
each time CALL H() is used.
It seems somewhat odd, considering that other subprograms in the
series are capable of distinguishing between a subprogram with one additional parameter, and one
with two (e.g., the CALL A() minimum and maximum values for automatic input validation).
End of issue 10
[ TI Book front page |
TI Resources Page
| PC99 Review
| PC99 Programs
]