Jump to:
Inputting 9900 object code with TI Writer | |
A note about 16 bit addressed scratch pad ram
TI Basic and AND and OR. Using (A=2)+(B=4) | |
Writing 9900 Machine Code to use in Extended Basic
Peter Brooks offer to members of TI Exchange (TI*MES subscribers) | |
Very cheap but slow image digitisation by Ray Kazmer
Howard Greenberg announces closure of Arcade Hardware | |
Harry Pridmore (New Day Computing) message regarding 4Front
After the disappointment of the change of ownership of TIdings to TIHCUC in 1983, there was some anxiety about where the users magazine was going to go or indeed if it would survive at all. This final issue from Clive was therefore rather thin on content as no-one had the optimism to start an article to conclude in the next issue. Look at the list of possible group positions to be filled and the important ones with no names proposed. No-one then foresaw that TI*MES would run and run way past issue 100
This issue has caused me problems with OCR and much of the text is retyped.
Well, this is my last letter under the TI99/4a EXCHANGE banner, what happens in Derby is that this Group CONTINUES under the heading of TI99/4a USERS GROUP U.K. With a new organised committee all TI99/4a owners will benefit more than ever before. This leaves me to thank most sincerely all of you who took the trouble in filling in the questionnaire and confirming your continued support.
It really is good TIdings we did not desert you, because you will still have a 99er group that goes on and on and on ..... Audrey and myself wish all the very best for the future.
Happy 99ing
Clive Scally. Founder of UK TI USERS.
RAMBLES by Stephen Shaw 1987
Hello again. Thanks to those of you who wrote in - but still no requests for articles on TI Basic or even Extended Basic, so it seems our readers have no interest in that area.
How did you fare in the telephone strike? Here in Manchester, we were hit a week earlier than the rest of the country and it dragged on a few days after as well. The result was a considerable decline in the number of lines into Manchester, leading initially to a false 'engaged' signal, and later on to a deep-space type sound! Unfortunately operators outside Manchester did not seem to know of our problems...
This will appear before the big meeting in May, so let me just say- I'll be there, British Rail permitting. I won't be doing any disk copying or selling or anything, just milling around... and I'll wear a neat little name badge too! Hope to make it for lpm.
Farewell to John Rice, leaving us for Amstrad Country. Hope your Amstrad will last as long as my TI console after your new Amstrad has been repaired that is...
Other computers may be more powerful, but inevitably need more programming time to make them perform their tricks. And I like to program, not just use purchased programs! My programming has by no means exhausted the capabilities of my TI yet. Thank you to everyone who has helped ME to discover some of the secrets of the TI - irritating questions have often driven me to explore some dim dark alley to find surprising fruits! Hope to see you in Derby!
Different bits are used depending on how you are using the console! In case you thought EASY BUG was part of the Mini Memory module- yes, it is in the module, but it does not RUN from there- for greater speed it is transferred to the scratch pad area, where it resides from >8370 to >83FF
>8300 to >8348 IS USED BY BASIC (XB) and so seems to be a reasonable place to put a pure machine code utility.
>834A to >83FE seems to be fully utilised for most environments.
This one goes back to the pioneering work of Pete Brooks in the early days...
IF... THEN... can be considered to take the form:
IF NOT ZERO THEN...ELSE IF ZERO THEN...
So: IF A THEN 100 will go to 100 if A has any value other than zero.
The computer treats an equals sign in a LOGICAL manner, treating the result as zero or minus one.
So, 2=2 is TRUE, and takes a value MINUS ONE
4=2 is NOT TRUE and takes a value of ZERO
Now look at the question again
IF A=2 the value of this equate is: -1
IF R=4 the value of this equate is: -1
And the sum of these is: -1+-1 = -2
What if one at the statements is untrue? Then one equates will be minus one, and the other will he zero, which adds up: 0 + -1 = -1
Therefore, the formula: (A=2)+(R=4) will have a non-zero value if EITHER of the equates is true, OR if both of them are true.
The plus sign can be thought of as OR
IF A=2 OR R=4 THEN..., which will carry out the transfer if either or both conditions are met.
If however we wish to transfer control only if both conditions are let, we need an equivalent to AND:
IF A=2 AND R=4 THEN
Try: IF (A=2) * (R=4) THEN
If both are true: -1 * -1 = +1 (non zero)
If only one is true: -1 * 0 = 0
Problem solved
So what of that strange form we started with?
IF (A=2)+(R=4)=-2 THEN
IF BOTH are TRUE the answer is -2 as we have seen!
If ONE is true, the answer is -1
If NONE are true the answer is ZERO..
Therefore this oddball form is another way of saying AND! I cannot think of any reason for preferring this form to the use of the multiply (asterisk) sign.
MACHINE CODE:
Graham Marshall sent me two machine code utilities for Extended Basic to share with you through Rambles.
The first is a STRING ARRAY SEARCH.
Take an array A$() with 30 elements, and you want to find out which element has the word "RAMBLES" in it.
In extended basic you would use:
100 FOR T=1 TO 30
which all takes time - especially if the string array has many more elements and the word we are looking for is at the end. Using Graham's utility we would enter:
110 IF A$(T)="RAMBLES" THEN 150
120 NEXT T
130 PRINT "RAMBLES NOT FOUND"
140 STOP
150 PRINT "ELEMENT ";T;"HAS IT"
160 END
100 CALL LINK ("SEARCH",A$(),"RAMBLES",T)
All much faster
110 IF T>0 THEN PRINT "ELEMENT";T;"HAS IT"
120 END
130 PRINT "RAMBLES NOT FOUND"
140 END
I did have a little problem using this routine at first - it treats a null element as a marker for the end of the array, and I filled the array, leaving no nulls! (a null string is ""). The result was a BAD SUBSCRIPT error. The final element must be empty!
The routine is listed below in several formats
1. Source code For XB, Ed/As or Myarc ExBas
2. As CALL LOADS for those of you without a disk drive
3. The object code as a text file if you prefer to key it in with TI WRITER - remember to save this with the PRINT FILE option, using the option F to save it in FIXED 80 format!
Webnote: Accursed 1980's dot matrix numbers and letters do not OCR well in isolation, and manually retyping pages of them allowed many opportunities for error. So- I will give here the 9900 Assembly Code, just a short sample of the CALL LOAD format, and an IMAGE (png) of the DF80 format for interest
.
and to conclude, finally, there will be a demonstration program!
********************* **************
* SEARCH ROUTINE IN EXTENDED BASIC *
* FORMAT-CALL LINK("SEARCH",ARRAY, *
* STRING,VARIABLE) *
* ******************* ***************
DEF SEARCH *************************** * FOLLOWING LINES ARE FOR * * TI EXTENDED BASIC ONLY * **************************** NUMASG EQU >2008 STRREF EQU >2014 XMLLNK EQU >2018
*****************************
* IF YOU ARE USING ED/AS OR *
* MYARC EX BAS THEN INSTEAD OF *
* THE ABOVE THREE EQUATES YOU MUST USE *
* REF NUMASG,STRREF,XMLLNK *
********************* *****************
FAC EQU >834A STATUS EQU >837C CIF EQU >20
****************** *****************
* FOR ED/AS USE REPLACE THE ABOVE LINE WITH
* CIF EQU >2300 *
****************** *****************
COUNT DATA 0 STR1 BYTE 255 * ARRAY STORAGE BSS 255 STR2 BYTE 255 * STRING STORAGE BSS 255 EVEN MYREG BSS 32 RTRN DATA 0
SEARCH MOV R11,@RTRN
LWPI MYREG
LI R0,0 * MOVE STRING TO BUFFER IN RAM
LI R1,2 * STRING IS 2nd PARAMETER PASSED
LI R2,STR2 BLWP @STRREF
LOOP LI R1,1 * MOVE STRING ARRAY TO BUFFER IN
INC R0 * RAM LI R2,STR1 LI R3,255 SWPB R3 MOVE R3,@STR1 BLWP @STRREF
MOV @STR1,R4 *COMPARE THE STRING TO THE ARRAY
SWPB R4 *STRING
ANDI R4,>00FF
MOV R4,@COUNT * SET R4 TO LENGTH OF CURRENT ARRAY ELEMENT
CI R4,0 * IS LENGTH ZERO?
JNE CONT * IF THE ELEMENT IN THE STRING
CLR R0 * IS "" THEN FINISH
JMP FINISH
CONT LI R1,-1 * TRY SETO R1 INSTEAD OF LI, R1,-1
LOOP1 INC R1 MOVB @STR(R1),R2 MOVB @STR2(R1),R3 CB R2,R3
JNE LOOP * IF NOT EQUAL GET NEXT ARRAY STRING
C R1,@COUNT
JNE LOOP1 *COMPARE NEXT TWO CHARACTERS IN THF STRING
FINISH MOV R0.@FAC
BLWP @XMLLNK
DATA CIF *WRITE TO THE NUMERIC VARIABLE
LI R0,0
LI R1,3 *SEND RESULT OUT TO THIRD PARAMETER IN CALL
BLWP @NUMASG
CLR R0 * DOES IT MATTER IF YOU OMIT THIS
MOVB R0,@STATUS
LWPI >83E0
MOV @RTRN,R11 *RETURN TD XB
RT
END
Assemble with R option only for TI ExBas! Myarc ExBas can handle C option as well.
In CALL LOAD form to RUN in Extended Basic:
1 REM SEARCH ARRAY UTILITY B
Webnote: This goes on for another page but that is an awful lot of numbers to be retyped, with a lot of room for error, so I'll restrict it to this incomplete excerpt to show what the format was. I could place an image of the page up if there was an interest!
Y GRAHAM MARSHALL
2 REM REQUIRES XB + 32K RAM
USE: CALL LINK("SEARCH",ARRA
Y$(),FIND$,ELEMENT)
100 CALL INIT
110 CALL LOAD(16376,83,69,65
,82,67,72,39,24)
120 CALL LOAD(8194,39,158,63
,248)
130 CALL LOAD(9460,0,0,255,0
,0,0,0,0,0,0,0,0,203,53,203,
78,203,231,204,71)
140 CALL LOAD(9482,204,150,2
04,228,205,29,205,75,205,96,
33,131,35,253,38,184,40,183,
41,182,42,195)
150 CALL LOAD(9504,43,193,44
,179,45,194,47,196,58,181,59
,180,60,191,61,190,62,192,94
,197,255,58)
160 CALL LOAD(9526,58,130,65
,84,240,71,79,133,73,70,132,
79,78,155,79,82,186,80,73,22
1,84,79)
The concept of typing in a machine code routine in DF80 format with TI Writer is cute, so I will present an image of the single page of the object code routine. Here is a small thumbnail image- click the image for an image somewhat larger.
webnote: Be careful to spot the difference between the letter B and the number 8 - there isn't a huge amount of difference but the B has a straighter left side. The numbers at far right should be keyed in as they appear with the text using the full 80 columns.
Remember to save this using PF then eg F DSK1.SEARCH (where the F tells TI Writer to save the file as Display Fixed 80 instead of the default Display Variable 80 format).
How to use the object code file (A DF80 file DSK1.SEARCH) input as above or produced with Editor Assembler?
100 DIM STRING$(20)
110 CALL PEEK(12000,A) :: IF A=1 THEN 140
120 CALL INIT :: CALL LOAD("DSK1.SEARCH")
130 CALL LOAD(12000,1)
140 FOR A=1 TO 14 :: READ ST
RING$(A) :: NEXT A
150 CALL LINK("SEARCH",STRIN
G$(),"SPIDER",A) :: PRINT "A
RRAY ELEMENT ";A
160 DATA DOG,CAT,HORSE,LION,
TIGER,DEER,OTTER,SPIDER,WREN
,ANT,FLY,BAT,PENGUIN,BEAR
170 END
(webnote: The next code from Graham was to detect when a sprite coincided with an "on" pixel on the screen - but again it is a lot of manual error strewn retyping. I can email or post images if there is an interest)
Replies from questionnaires:
TOTAL of 146 replies from 358 sent out give a 48% response. THANK YOU very much.
Wishing to remain a member of a NATIONAL BRITISH TI99/4a GROUP: Total 100% SUPPORT.
Attendance at the FAIRE: WILL ATTEND FAIRE 47% UNABLE TO ATTEND FAIRE 29% DON'T KNOW 25%
Names of members willing to help form the new committee. They will ask you to cast your vote on the day for or against nomination of the following:
Chairman VACANT; Secretary VACANT; Membership secretary VACANT; Disk Library VACANT
Rambles Editor STEPHEN SHAW;
Editors CHRISTINA MEHEW and ALAN BAILEY
International Editor VACANT.
Treasurers: PETER CROSS and PETER WALKER
Technical: MIKE GODDARD., COLIN HINSON; TONY BOWDEN , Reserves: SIMON DORRICOTT
Programming: GEOFFREY COAN, PETER WALKER
BBS/Prestel NEVILLE BOSWORTH; R.T.T.Y. PETER BARKER
Cassette Library MAURACE RYMILL
Faire organisation GERALD COLLINS
General committee members to fill above vacancies subject to nomination RICHARD SIERAKOWSKI,
LEO HUGHES , BRYAN CLOUD, JOHN BUTCHER , L KINGSTON, W WORSER,
T.ANDERSON, E G SMITH, EDWARD SHAW
As some subscribers will know, I have been running what used to be OXON TI USERS and is now THE INTERNATIONAL TI USER GROUP since April 1984. I began the group as a service for Oxfordshire owners, and it has gone on expanding ever since.
What I propose is that in order to maintain the cohesive structure that has been TI-EXCHANGE and which has been of such immense service to its members, that I take on the membership of TI-EXCHANGE (if they are willing) and incorporate them within ITUG.
(webnote:) Peter was of course fully aware of the upset when TIHCUC took on the membership of Paul Dicks group without their consent or knowledge and added:
Contributors who currently write in TI*MES are more than welcome to submit their material for publication in TI-LINES - we don't want to repeat the TIHCUC fiasco where all the dedicated contributors were alienated by a rather rude organisation!
All the best, Baldie Pete Brooks (signed Peter).
(Peter Brooks group had NO relationship or affinity with the wound up IUG (International 99/4 Users Group) based in Bethany, Ohio)
ANNOUNCING
THE ALL-NEW, SUPER-DUPER, HANDY-DANDY, 98 CENT, DO-IT-YOURSELF, WAXPAPER
R.L.E. DIGITIZER
BY: RAY KAZMER
When I saw my first R.L.E., I thought, "GOLLLLL-LEEEE! "I'd SHORE like to draw ME a pit-chur like THAT!!" Then I found out that it takes something called a "digitizer" to make an R.L.E. and THOSE things could cost a LOT more than my '66 Chevy (fer-shirrrrrl) Since my TI-ARTISTic talents were FAR from perfect, I decided I'd try to make a CHEAP digitizer, one which required very little talent to use, but would yield a fairly good R.L.E.
"Tracing" a picture, then sticking the paper to my TV screen, so I could move TI-ARTIST's cursor under it (drawing as I went) seemed a good idea, but regular tissue paper wouldn't let me see my cursor CLEARLY enough! I tried "plastic wrap," which certainly DID allow me to see the cursor but wouldn't hold ANY kind of ink! Besides, one touch and it was all SMUDGE, SMUDGE, SMUDGE! And you know how it LOVES to "cling to itself!" Mur-der!
While shopping, I spotted a roll of WAXPAPER (98 cents for 100 feet) AND a (9"x 12") cardboard folder (with "pockets" inside) used by school kids. Though the folder was way too big for my TV screen, the drawings of ODIE and GARFIELD on the cover (my favoritesl) seemed to be just about right!
At home, I taped a hunk of waxpaper onto the folder, then QUICKLY traced over every line, "etching" the image into the waxpaper with a mechanical pencil (with the lead retracted.) THAT WAS A MISTAKE!!! If you decide to try my "digitizer" yourself, trace with GREAT CARE! Make your tracing as ACCURATE as possible! Care NOW, will save you LOADS of "correcting time" later, when you are completing your "on-screen" master-piece! Be SURE to hit ALL lines, BEFORE you remove the waxpaper copy from your "original".
Next, load TI-ARTIST and put a "frame" around the drawing screen, which helps to align the copy vertically, and can be erased later. Be SURE the copy lies WITHIN this frame, THEN tape it to your screen.
THIS PART IS MOST IMPORTANT! Find a comfortable position, "head-on" to the screen, and begin to "outline" the copy, by placing "DOTS" BEHIND the waxpaper lines. (See sample) DO NOT shift your head side- ways! That causes DISTORTION and is HARD to repair later!
AGAIN, the same words of CAUTION apply when placing the dots as when you were making your WAXPAPER tracing, which is: TAKE YOUR TIME! Do NOT rush to finish it fast! CAREFULLY place each dot, as CLOSE to the "center" of each line, as possible! Although this will SEEM like a long, TEDIOUS job to you (and it IS) try to think of it as "building a strong foundation."
There is NO WAY you can follow a "traced" line by just pushing your joy-stick and mashing the fire-button! You'l1 see the cursor "weave all over the road" like a drunk driver! Before trying to make your first WAXPAPER R.L.E., plan to spend several hours with it. Be patient! Persevere! Your determination and care WILL be rewarded with a real work of art! (AMEN)
It gets easier now as you play "connect the dots." You may find the ZOOM feature a real help with this. Another tip: SAVE the picture frequently! If you make a major boo-boo, you won't lose a too much time and sweat by simply reloading the SAVED picture, rather than struggling to repair it.
The FINAL STEP is to give your picture a good "polishing," OR what I had referred to earlier as "correcting time." If you took the time to do all the first steps PROPERLY and your picture is now "connected" simply view "THE BIG PICTURE" and all the "rough spots" will LEAP RIGHT OUT at you!! Adding or erasing a single pixel here and there, is all that remains. It sounds simple, doesn't it? (THIS is the HARDEST part!) After you've done all the "correcting" you THINK you can find, SAVE it, then store it away someplace (for a week or two) THEN reload it and compare your picture to the original. If you can't find ANYTHING else wrong with it, it is DONE ([you can] Use MAX-RLE to convert your TI-ARTIST "PICTURE_P" file into a MAX-RLE [file].)
Some last tips: DON'T strive for ABSOLUTE PERFECTION! That's IMPOSSIBLE! (Garfield's "stripes" nearly ran me up a wall!!) BUT, by the same token, if you've waited those two weeks and you spot another "flaw," DO attempt fixing it! IF (due to limitations inherent in our consoles or TI-ARTIST, OR due to approaching blindness) you CAN'T fix it (after trying for five or six years) make up some "logical sounding" excuse, when you debut the master-piece. If you make it "high-tech" enough, ANYBODY will buy it! MY winning line is: "Well, NOBODY can draw a PERFECT, curved zig-zag line!"
So, here it is! My COMPLETED work of art! It's NOT a 100% PERFECT copy of the original but what can you expect from a console with an overloaded framistan in it's quadi1op?!
There are TONS of "copiable" pictures, for your "WAXPAPER R.L.E. DIGITIZER!" (Coloring books for children, atlases, magazines, calanders, etc.,) and if any 99'ERS out there, try doing some PLAYBOY stuff well, I'd appreciate a copy, (before I go totally blind!)
After ALL THAT WORK, it's time for some FUN! Here's a RIDDLE for all you sharp-eyed TI-RUNNER players. WHERE (in TI-RUNNER) do the initials "IBM" appear on screen? HERE'S A CLUE: Play the game up to Level 28 then look in the bricks, but don't look TOO CLOSELY, or you MIGHT miss them!)
R.K.
Well, what happens next? Most of you subscribed for a year, and will be wondering whether to renew. The quality of the product is apparently not in question, rather the chances of its survival in a market that has long since 'peaked'. This note is to let you know exactly how I stand, in order to help you make your own decisions. In a nutshell, I don't give up that easy! My own love affair with the Texy, and the number of you that seem to like 4FRONT leave me little choice. However, it would be foolish to think that things haven't changed.
Firstly, it would not be fair to offer subscriptions any more, since the future is unpredictable. Rather than pocket your cash and then risk letting you dawn, it only seems fair to take orders for one issue at a time.
Secondly, having completed a year, and being able to review the viability of 4FRONT, it is clear that it has been underpriced. If we all learn by mistakes then I should soon qualify far Mastermind. Seriously though, the price must change, and I know that in so doing I may lose some of you. For that I am sorry, but I am cheered by the fact that the majority of you will understand and stick with it. It's very hard to price a product that has no competitor because it is unique.
Lastly, and vitally, the future success of 4FRONT depends on the level of input from YOU in the way of letters, programs, hints, tips, etc.
Well, that's about it - let me take this opportunity to say a huge 'Thank you' for your past loyalty, and to invite you to step with me into the future.
Yours faithfully,
Hairy Harry from Honiton
Several thousand programs for PC99 can be found on the inexpensive DVD-rom from CaDD Electronics, The Cyc, programs plus huge amounts of documentation, many books and manuals - all legally copied and reformatted in searchable form, - considerable effort. Includes legal copies of all TI modules in PC99 format, including the much sought Tunnels of Doom module. VAT and post office collection charges are payable on delivery in the UK.
Might look costly but a huge amount of work has gone into it- Look at the quality of Cyc content here. Note that Mike only checks his emails every week or so! Please respect the many years of work that has gone into this and do not copy the DVD for others.
[ TI Book front page |
TI Resources Page
| TI Articles
| PC99 and MESS Programs
]