Jump to:
How an XB program can tell if Alphalock is down before you press a key
Report on the Alternative Micro Show ||
Printing with TI Writer or Funlwriter
Controlling the cassette motor and audio
This web page contains the text of articles for owners of the TI-99/4a from Issues 22 and 23 of TI*MES. It is of use to users of the TI-99/4a emulators.
Well we have a new Editor, me! Christina Mehew has had to give up, temporarily we all hope, on her going to Italy with her husband in the course of his work. She takes with her our grateful thanks for her past efforts, and best wishes for the future for her and her family.
You will have seen that there are some coincidental changes, which were triggered by the need to balance the books. This magazine is our main expense, and we must reduce its cost if we are to not only remain solvent, but also be able to offer our members the other services which we hope to continue and expand. At a meeting of a finance sub-committee in Stockport it was decided to use a soft cover, and to investigate alternative means of reproduction and mailing. This present issue is an initial step.
In order to improve the regularity of publication, in spite of possible changes in production methods, we propose to fix the dates for my receiving contributions as the lst. of December, March, June, and September. This allows a month for what has proved to be a rather slow production process, and cost reductions usually lead to longer not shorter delays. However, missing a deadline does not mean you should give up the idea of writing. Please still do, it will be nice and early for the next issue!
So you can decide what subjects are covered in your magazine, either and preferably by contributing articles, informative or inquisitory or both, see this issue, or by asking for articles or just information on subjects that interest you. Remember you can phone your nearest Committee member for an immediate reaction. It may take a little time to find a contributor to treat a particular subject thoroughly, but we will do so as soon as possible. Meanwhile why not stimulate discussion by a short article yourself?
While on the subject of contributions, it is of course best if they are in good black print and they should be on A4 sheets with a header space for the TI*MES logo & room at the foot for a page number. I do not have disk or printer, and we cannot afford to pay the printer for re-formatting, so we are limited to a few cut and paste operations. Since letters, other group's magazines, "For Sale"s, & some shorter fill-ins, have to be specially treated, longer pieces already laid out in A4 sized sections will take pride of place!
As a matter of interest the A4 sheets are reduced to A5 before printing in paginated 4's on the two faces of a sideways A4. Pagination shows some of the characteristics of unrelocatable code!
This brings me to the subject of line spacing, and the message is clear. We have a choice between easy to read, well-spaced typescript and more information with single spacing. My own preference is for the latter, but I am shortsighted anyway. If you disagree, or indeed have any comments to make please let us know!
Finally, the future of this group is in your hands. The TI remains a powerful Home Computer, even in todays environment of high-speed Personal Computers for use where time is money. Older software is offered at very, very, low prices, and there are still dedicated programmers exploring the Galactic Rim of what is quite a large system. In addition new powerful hardware is becoming available, and while it is intended for sale to a generally wealthier US public, its existence augurs well for the continued existence of "old faithful". We want to help you to continue to learn about and enjoy your TI. Write & tell us how we can do so..
During the period 15th April to 30th September 1988, the group disk library was used by 26 members. The records kept by the group indicate that there were 90 members owning disk systems.
Bill Knecht who produced three disks of interesting music for the TI99/4a passed away on July 9th 1988, aged 41.
Yes- if you also have 32k ram.
Here is the source code for a VERY short machine code routine:
DEF ALPHA
To use this code, assemble it to a non-compacted object code, say DSK1.K/OB
ALPHA MOV R12,@>FFFC save old R12
CLR R12 9901 CRU Base = 0
SBZ 21 Signal alphalock key line
TB 7 Check alphalock other side
JNE STATE jump if state = 0
SETO @>FFFE state=off
JMP JUMPA As off skip next line
STATE CLR @>FFFE state=on
JUMPA SBO 21 stop sending to alphalock key!
MOV @>FFFC,R12 restore old R12
* standard xb return now
SB @>837C,@>837C clear error for basic
B @>0070 return to calling program
END ALPHA
In Extended Basic. start Your program with
10 ! K by M Gikow, Andover
now. an example of sensing the state of the alphalock
11 ! August 1988. Use with K/OB
12 CALL INIT :: CALL CLEAR :: CALL LOAD("DSK1.K/OB")
YOUR PROGRAM HERE
100 GOSUB 4000
110 PRINT A
120 GOTO 100
4000 CALL LINK ("ALPHA")
4001 CALL PEEK(-1,A)
4002 RETURN
5000 END
A word of further explanation may help... thanks to Mike Gikow for this:
The keyboard is connected to the computer by a device (TMS 9901) that uses the Communications Register Unit (CRU) which is accessed by CRU instructions such as SBZ, SBO and TB ( Set Bit Zero, Set Bit One, and Test Bit ).
The Technical Data Manual shows connections to the keyboard such that the alpha lock key is connected between the output for CRU bit 21 and the input for CRU bit 7
When the switch is closed, the output can be read by the input.
This program tests the condition of the switch and writes a value of -1 or 0 to memory locations -1 AND -2. The CLR instruction produces the 0, and SETO produces -1.
The call link statement in XB then tests memory location -l (=>FFFE) for a value of 0 or -1. NOTE that the PEEK statement will set A=255 rather than -1 so you will see either a 0 or 255.
[At the time of submitting this article, I am not aware of prior publication of the above program, taken from a letter by Mike]
If both the printer and TI Writer add a line feed, you end up with double spacing, whether you want it or no.
The TI RS232 card contains a number of software switches, and if you use RS232 as your printer name you will certainly know all about those! However PIO users generally have little call to use them and so remain unaware!
You can instead of using just PIO, name your printer as PIO.CR or PIO.LF - if you use the Formatter, you may NEED to use PIO.LF even if PIO on its own is OK when printing from the Editor.
If you ever use a Graphics program, you will need to use PIO.CR to prevent an automatic carriage return every 80 characters- something that can make your graphics look a little untidv.
In case of difficulty with line feeds, go through all the possible printer names and use the one that is best, be it PIO.CR or PIO.LF or possibly even PIO.CR.LF
It makes life easier if you can switch the auto line feed off at the printer - consult your printer manual.
Printing TEXT ONLY - No other codes
Another problem is that several members use printers which are not 100% compatible with the Epson control codes, and when printing text which has these embedded, you may meet problems, such as a printer freeze. Again, TI Writer has been written to take care of this problem. You can instruct TI Writer to print the text file but to strip out the control codes- that is to print only the "printable" characters ASCII 32 to 126 - to do this, instead of using the output device name of PIO you use C PIO - that is, a capital C followed by a space followed by the normal printer name.
And as a reminder, if you want TI Writer to save in DF8O format instead of DV80, select PF then type F DSKl.FlLENAME - use the print file command instead of the usual save file, and add an F and a space in front of the output device name.
You remember of course that TI Writer can load both DF80 and DV8O files! In fact it will even handle DF and DV files longer than 80, but only load the first 80 characters of each record. TI Writer is an unusually well written program!
And remarks regarding TI Writer also hold true for Funlweb Funlwriter!
This show, held at the Aston Sports Centre, not far from Birmingham and easily reached by rail and motorway, was organised by EMSOFT, software publishers for the Tatung Einstein computer.
They had organised the Show for users of the Einstein, and in a gesture of solidarity, invited User Groups and Dealers connected with other orphan computers to participate - orphan computers do not have any coverage in magazines or other shows! Naturally, many of the 47 stands were connected with the Einstein computer, also many were generic, dealing with general computer supplies suitable for any computer - disks and paper and so on.
It was entirely appropriate for the TI99/4A to be represented, as the monitor supplied for the Tatung Einstein is the ONLY monitor that can be connected_ directly to the PAL TI99/4A, which has an unusual colour-difference video output.
The TI99/4A was represented by stands from TI99/4A Users Group (U.K.), by the East Anglia Region User Group, and by lone UK dealer Parco Electric. Parco had a good selection of modules available. The TI99/4A Users Group had a nice little robot, controlled by joystick, who was most polite and apologised nicely if he bumped into anything. His core program cane from Ross Mudie and appeared in the September 1987 newsletter of the Sydney User Group (Australia)
Other micros represented were the MSX series, the Sinclair XL, the Lynx, the Enterprise ( brain child of David Levy who had a hand in the TI99/4A Video Chess module), and the little Jupiter Ace, the only home computer to be sold with a language other than Basic on board- Forth 79. There was no User Group representation for the New Brain or the Memotech or the Dragon- many users and some dealers changed to the (U.K. produced) Dragon after dropping the TI99/4A.
One stand was taken by a general supplier who purchased odd orphan products, and TIUG was able to purchase a box of assorted modules at not a lot more than a couple of pounds each, including a five pack of the Adventure module.
The show was well attended and had good refreshment facilities, but never became too crowded. The TI99/4A owning visitors seemed to have mostly heard of the show from their own groups.
The hoped for swelling of membership as a result of the national publicity said to be provided by the organisers was not seen. Nevertheless, it was a rare meeting together of TI99/4A users, some of whom travelled very long distances indeed.
Your scribe took along a parcel of disk and tape goodies and brought them home. One visitor refused the extremely cheap (free) disk copy of Ray Kazmer's revised Woodstock's Christmas program as he already had the first version (1987) - in which Woodstock is left crying. In the revised version (1988)- too big for cassette alas - Woodstock receives a surprise gift.
I did purchase a very cheap little transistor radio and an ex-library copy of my book, from Blackpool District Library (Marton) which had a first date stamp of 6/3/84, a total of 17 date stamps, last one 4/8/87. The book was covered by the library with a sticky laminate covering.
by Peter Walker
A program I wrote many years ago. I was asked how one could control the cassette from a program so that music could be played at certain parts of a game program. The following Assembler program does this.
Each time it is called from ExBas it toggles the cassette No 1 on and off. When it goes off it also cuts the sound port to your TV/Monitor to give a clean break. On restarting, it delays the enabling of the sound port until the cassette has had time to get up to its proper speed.
As this machine code is for Extended Basic assemble the following to a none compressed object file,
say CAS/OBJ
To demonstrate this program, write a program like this
DEF CASCON
R11SAV BSS 2
WRKSPC BSS 32
GPLWS EQU >83E0
STATUS EQU >837C
*
CASCON MOV R11,@R11SAV SAVE R11
LWPI WRKSPC
LI 12,>002C LOAD R12 BASE FOR CSI CONTROL
TB 0 IS CSI ON?
JEQ ON
SBO 0 SWITCH ON MOTOR
LI 1,>7000 SET DELAY=28672
DELAY DEC 1
JNE DELAY
SBZ 2 ENABLE AUDIO
JMP OUT
ON SBO 2 KILL AUDIO
SBZ 0 SWITCH OFF MOTOR
OUT CLR 0
MOVB R0,@STATUS
LWPI GPLWS
MOV @R11SAV,R11 RESTORE R11
RT
END
100 CALL INIT :: CALL LOAD("DSK1.CAS/OBJ")
110 CALL KEY(3,K,V)::IF V-1 THEN 110
120 CALL LINK("CASCON")::GOTO 110
Each time a key is pressed, the cassette is turned on or off.
Using the assembly source code above you need to have the Editor Assembler and a disk drive. There is an easier method to place the machine code into memory, this only requires that you have the 32k expansion ram, no disk drive required:
Here, the Assembly object code is placed into memory by using CALL LOADS
100 CALL INIT
110 CALL LOAD(16376,67,65,83
, 67, 79, 78, 37, 22)
120 CALL LOAD(8194,37,72,63,
248)
130 CALL LOAD(9460,6,28,0,0,
0,0,0,0,0,0,0,0,203,20,203,5
3,203,78,203,231,204,71)
140 CALL LOAD(9482,204,150,2
04,228,0,44,205,75,205,96,33
,131,200,11,36,244,2,224,36,
246,2,12)
150 CALL LOAD(9504,0,44,31,0
,19,7,29,0,2,1,112,0,6,1,22,
251,30,2,16,2,29,2)
160 CALL LOAD(9526,30,0,4,19
2,216,0,131,124,2,224,131,22
4,194,224,36,244,4,91,73,221
)
Reminder: On some cassette recorders you may need to use the remote plug polarity reversal adaptor that TI sold with the cassette cable. If you have lost it and the TI fails to turn your cassette motor on and off, try reversing the wires manually. Note the wires are very thin!
The program can be adapted to control external devices (on/off), but ensure that the TI meets with something resembling the cassette motor remote loading / voltages etc etc. At your risk.