-
Posts
216 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Posts posted by palmheads
-
-
Argh been so lazy lately - must get back on this!

-
1
-
-
-
Amazing stuff!
cheers
Daryn
-
Holy smokes! Is this book really that rare and valuable??
Compute!'s Beginners Guide To Assembly Language On The TI99/4A BookBloody hell! Given there is a really good PDF of it, thats alot of money!
No way I'd pay that. Guess someone will though
-
1
-
-
Just a little something to banish those pre Christmas blues, it's a bit like a British version of Friends.
hahahaaa - ahhh dear old Bottom!
-
Just realised how awesome this module is. Gonna have to keep a lookout on arcadeshopper I feel!
cheers
Daryn
-
1
-
-
Oh! That soldering job makes me want to


Yeah that looked to my untrained eyes to be a bit dicey!
-
Do you have a multimeter? If not they are giving them away at harborfreight half the time

Greg
Yeah one of the guys at work had a multimeter - I've also got one since then.
Looks like the guy who did this on ebay got the +/- wires mixed up! Mate at work good at soldering so he's gonna switch them for me - will see how that goes.
Used mainbyte as our reference
-
1
-
-
Sorry for the late reply, Daryn, but I've just returned from my vacation (nice to be offline for a while!).
There really isn't anything to add to Lee's reply, except for two minor points.
As you know, labels must be unique within each program so that references, e.g., in jump and branch instructions, can be resolved unambiguously. If you have many code sequences that correspond to IF or WHILE blocks you'll have to introduce a lot of unique labels.
.
;rotate keys ci r3,90 ;z key - rotate jne nextkey1 b @rotl nextkey1 ci r3,67 ;c key - rotate jne nextkey2 b @rotr nextkey2 li r9,0 bl @collsp.
These labels are not meant to be called from outside your current subroutine, and coming up with unique names can get difficult as your program grows. Just imagine that you want to test another key before the C key -- then you'd have to add a "nextkey3" label, but before the "nextkey2" one, which looks ugly.
Mostly for this reason xas99 supports so-called local labels that need not be unique. This sounds weird at first -- where should we jump to if the target is not unique?
.
ci r3,90 ;z key - rotate jne !next b @rotl !next ci r3,67 ;c key - rotate jne !next b @rotr !next li r9,0 bl @collsp.
But the answer is actually quite simple: the assembler will pick the nearest label after the current position. In your example above, each "jne !next" will skip to the next "!next" label. You might even drop the name of the label and use
.
ci r3,90 ;z key - rotate jne ! b @rotl ! ci r3,67 ;c key - rotate jne ! b @rotr ! li r9,0 bl @collsp.
for maximum brevity (and IMHO legibility). The "!..." will always search forward. If you want to jump backwards you simple prefix the local label reference with a unary minus, e.g.,
.
li r0, >a000 li r1, 128 ! clr *r0+ dect r1 jne -! ; jump back rt
.
And you can use "!!..." (and "-!!...") to jump to the label after the next label (the label before the previous label), although I personally rarely use this.
Keep in mind, though, that local labels are unique to xas99; the original TI assembler won't know about them.
Finally, if you ever really need to find out the size (or timings) of instructions, you can have a look at the listing file, generated with the -L option:
.
XAS99 CROSS-ASSEMBLER VERSION 1.5.1 ... 0001 checkkeys 0002 0000 0283 22 ci r3,90 ;z key - rotate 0002 005A 0003 0004 1602 14 jne ! 0004 0006 0460 28 b @rotl 0008 001Cr 0005 0006 000A 0283 22 ! ci r3,67 ;c key - rotate 000C 0043 0007 000E 1602 14 jne ! 0008 0010 0460 28 b @rotr 0012 001Er 0009 0010 0014 0209 20 ! li r9,0 0016 0000 0011 0018 06A0 32 bl @collsp 001A 0020r ....
The second column contains the (relative or absolute) address of the instruction.
Thanks so much for this info ralphb, will try the local labels out for sure! Fantastic set of tools!
-
Use labels. They're a bit more cryptic with the LBLA than with the E/A module—2 characters as opposed to the 6 allowed with E/A. You then rarely need to know how many bytes instructions take. Your code above would be
;rotate keysci r3,90 ;z key - rotatejne kcb @rotlkc ci r3,67 ;c key - rotatejne exb @rotrex li r9,0bl @collsp...lee
Funny, I use labels everywhere...but did not think of doing this! haha
cheers Lee!
Daryn
-
Had an idea to help newbies like me.
And this may already be possible...
One thing that I get stuck with is figuring out how many bytes each instruction uses. ie
;rotate keys ci r3,90 ;z key - rotate jne $+4 b @rotl ci r3,67 ;c key - rotate jne $+4 b @rotr li r9,0 bl @collsp
For the small keyscan routine above, to figure out that I needed to jump $+4, I actually loaded up the LBLA & entering each instruction (as the LBLA compiles each line as entered) it told me how many bytes each instruction took.
If it was possibly for the xdt tools to take an .asm file, & from a starting AORG actually output how many bytes each instruction took in 2 columns
ie
7D00 lwpi >70b8
7D04 li r0,>0384
7D08 etc etcThat might be useful for useless people such as myself!cheersDaryn -
-
Let us if you need support with repair, it's a pretty simple setup
Greg
Bugger! :-(
New battery, same problem. Might need some help too diagnose - I'II take the mini memory module apart & attach some pics
cheers
Daryn
-
Should work OK with the nanoPEB, as that is what I used when I wrote the program. I suspect that if you get the MiniMem battery sorted so that it saves/loads in BASIC, then the LBLA and Lines programs will work OK as well.
Stuart.
Cheers Stuart, thats good to know the setup should work if the MiniMem etc has a working battery - will buy a new battery today & try tonight. It might be a case of gettng a dodgy MiniMem on eBay as well if the external battery has not been connected up properly.
Thanks for your help man, that CART_RAM/O is pretty awesome.
cheers
Daryn
-
I actually have another mini memory module which has the exact same behaviour as my external mounted battery one.
Am wondering if the nanoPEB does something funky, like doing a CALL INIT everytime it starts or something!? That would nuke what was in the mini memory huh?
-
Think I might have found the root cause!
And yip, was doing the 4. EXIT command you suggest Stuart.
Did a small TI-BASIC program
SAVE MINIMEM
NEW
OLD MINIMEM
LIST
Program still there.
Turned console off.
OLD MINIMEM
Error 57!
Reckon I have an issue with my Mini Memory! Which is odd, because my Mini Mem is one with an externally mounted CR2032 lithium battery.
I don't know if this is the root cause, but it might have something todo with it.
-
Its is quite funny how time changes your memories of the past.
Take the ZX81 for instance. If my parents had got me that for Christmas, I would have been most upset (I got a 16K ZX Spectrum).
However, looking back, the ZX81 despite all its drawbacks was probably THE most important thing to happen to the home computer market. It made the whole computer at home thing achievable for the masses.
I look back at the ZX81 now with wayyyy different eyes than I would have back in 1982!
Aquarius was still kinda shit
cheers
Daryn
-
Only thing that springs to mind - for the first two tests, did you actually power-off rather than "quit out"? If your MM battery is dead, then you would lose the program you just loaded.
If you really did "quit out", is your series of tests repeatable - does exactly the same thing each time you try it?
Hi Stuart
Yip, its repeatable for me. Just seems weird that "OLD" works everytime.
For the first two tests, yes, I did have to power-off as the green screen made the machine unresponsive.
So could be the mini mem battery? Its odd, 'cos when the green screen happens, sometimes I can FCTN-QUIT, other times I need to reboot.
Thats funny, 'cos I've done a few tests saving files to it, and it seems to be fine. Tonight I'II try saving a file to it, powering off, then seeing if the file is there afterwards.
cheers
Daryn
-
Does anyone out there have a nanoPEB and a mini memory module to help test something for me?
Before I start, I have made sure I have re-initialised the mini memory, making sure it is clear.
Download the Miscellaneous.zip from Stuart's page & copy to CF card for inserting into nanoPEB
I put the DSK image to DSK3.
Boot up TI with Mini Memory module, Choose 3. Mini Memory, choose Load and Run:
DSK3.CART_RAM/O
Then choose option 2
DSK3.MM_LBLA
Quit out, then go back into 3. Mini Memory, and choose Run
Type
"NEW"
For me I get a green screen!?
Now try this.
Choose 3. Mini Memory, choose Load and Run:
DSK3.CART_RAM/O
Then choose option 2
DSK3.MM_LINES
Quit out, then go back into 3. Mini Memory, and choose Run
Type
"LINES"
Again, I get a green screen.
Now for the odd bit.
Choose 3. Mini Memory, choose Load and Run:
DSK3.CART_RAM/O
Then choose option 2
DSK3.MM_LBLA
Quit out, then go back into 3. Mini Memory, and choose Run
Type
"OLD"
BOOM! I get the Line By Line Assembler prompt!
Now of course, following the exact procedure above using JS99'er etc, everything works perfectly. ie "NEW" gets new LBLA starting at 7D00, "LINES" works perfectly etc
Anyone have any ideas what might be going wrong?
cheers
Daryn
-
You should get the right icon now if you use the "Add to homescreen" option from Chrome.
Thats a super fab icon! Thanks Rasmus!!!
-
A word to the wise... JS99'er & Chromecast okay for programming, to laggy for game play...
Pretty cool idea though, hadn't thought of trying that!
-
Rasmus, have you noticed that the smartphone icon for js99'er seems to have disappeared? If I add bookmark to home screen in android now for js99'er, I get a generic bookmark icon.
cheers
Daryn
-
Was just reading this thread again, and had a thought.
The JoyTalk couldn't work with a modem, but in theory could you have linked the TI to another computer via RS232 & transferred a file (i.e output only)?
Obviously you'd probably had to write your own software todo it (probably modifying the JoyPrint software).
Can imagine a scenerio (a kinda pointless scenerio) where if you had written a doco with 'Mini Writer I' and the mini memory and wanted to edit more, you could have transferred it up to a larger computer to continue editing. That would have been quite cool
-
Do they all run without the 32K Memory Expansion ?

Thats a good question, I think Entrapment, Enigma & Jailbreak do
I'm pretty sure from what I read Defend the Cities II would have, as that like Entrapment was a targeted mini-mem only game.
Ksarul I think has summarised Rock Runner well, that one is a bit confusing as there are multiple versions of that game.
Bandit I'm not 100% sure about.
Funny, when using js99er and a real console with nanoPeb - the 32K is just there! And in fact the loading of these old games need the 32K with tools like CART_RAM/O & the likes reading from DSK & loading into the minimemory ram (in the absense of tape decks & cassettes)
cheers
Daryn
-
1
-

Learning assembly - porting Thrust to the TI-99/4a
in TI-99/4A Development
Posted
Ha! Thanks guys! Been a glorious summer here in Christchurch, NZ. Been enjoying not sitting in front of the 'puter (except at work)...got some potentially horrible melanomas from our vicious sun, but hey...
...sorry to go all GoT...winter IS coming...
So suspect will get back into my wee project cobbled together with luck, flukes, Computes great assembly language book, ralphb's xdt tools and the help and encouragement of you lot on this great forum!