Jump to content
IGNORED

Using the Ti-99 expansion port


Recommended Posts

Time to start getting your hands dirty!

 

CALL HCHAR(row, column, character)

 

ROW is from 1-24 - 1 is at the top.

 

COLUMN is from 1-32 - 1 is the left-most.

 

CHARACTER is from 0-255 (but only 32-159 can be re-defined, and 32-126 are used for characters like letters, numbers, and punctuation. You CAN redefine them but you just have to remember that. :) )

 

So.. if your image is not centered but is otherwise correct, you want to add bigger numbers to your row and column parameters. I see a "+1" in there already... try another number. :)

Link to comment
Share on other sites

I was thinking. The TI cassette protocol is pretty well-documented. It could be possible to control the device using a simple OPEN to CS1 or CS2 and have the device decode each string sent to it as a record. (Someone mentioned doing that above, I just gave it more thought and decided I like the idea.) So, you have OLD CS1's seal of approval on this idea. HA! So something as easy as PRINT #1:"TURN LEFT" could work. It is accessible from BASIC, uses sound, and an already-defined protocol. Though defining the audio protocol might be the most fun aspect.

 

I am guessing you would use an open statement like OPEN #1:"CS1",DISPLAY,FIXED,OUTPUT should set it up for you. IIRC without grabbing the manual, this sets the record at a fixed 64 bytes (CSx requires FIXED records) with ASCII (DISPLAY) encoding.

  • Like 1
Link to comment
Share on other sites

Here's what I've got so far, I could fit my school's mascot's head into the "grapefruit" utility. I'm using Classic99, for some reason those green lines are showing up in the screen shot.

10181662104_b15e04cd42.jpg

screenshot by Atari1977, on Flickr


I figured out how to use the CALL KEY command(kind of) with this code


7000 CALL KEY(0,KEY,STATUS)

7010 IF STATUS=0 THEN 7000

7020 IF STATUS=-1 THEN 7000

7030 CALL SOUND(2000,4000,3)

Though I can't get figure out how to get it work with a specific key yet, right now you can just press anything to make it go.

Edited by Videogamecollector123
Link to comment
Share on other sites

7000 CALL KEY(0,KEY,STATUS)
7010 IF STATUS=0 THEN 7000
7020 IF STATUS=-1 THEN 7000
7030 CALL SOUND(2000,4000,3)
Though I can't get figure out how to get it work with a specific key yet, right now you can just press anything to make it go.

 

You need the ascii character codes. You'll find them in section III, page 1, User's Reference Manual:

http://www.99er.net/download2/index.php?act=view&id=84

 

You'll use a code something like:

7025 IF KEY=<Char-Code> THEN <Line #>

Link to comment
Share on other sites

The quick and dirty way to get a key code if you don't want to look it up (which is cleaner), is just to add "PRINT KEY" and see what results you get when you press the keys you care about:

 

7001 PRINT KEY
7002 GOTO 7000
Then take those lines out when you are done. :)

 

Status returns only 0, -1 and 1 (0=no key, 1=new key pressed, -1=same key still pressed).

Link to comment
Share on other sites

Using Classic99 and RXB try this:

 

100 CALL KEY("",0,KEY,STATUS)

200 PRINT KEY,CHR$(KEY)

300 GOTO 100

 

The above will print out the key ASCII number and the character you see on the keyboard.

You can even press multiple keys on a real TI like CTRL+FCTN+SHIFT+ a key to get values. This does not work on Classic99 but only on a real TI99/4A

 

A quick and dirty way to see what ASCII value a key is from command mode in RXB I type:

 

CALL KEY("",0,K,S) :: PRINT K,CHR$(K)

 

In RXB the "" (double quotes) tells KEY subroutine to wait for a key press like a INPUT A$ would work in XB.

So press a key and works the same way as above but no program line is needed. RXB has a built in IF STATS=0 THEN REPEAT COMMAND built in.

 

Oh and to use a key that you do not key where it is on the keyboard but know the ASCII number:

 

CALL KEY(CHR$(177),0,K,S) :: PRINT K

 

This will only respond when the correct key is press and ignore any other keys.

Edited by RXB
Link to comment
Share on other sites

  • 1 month later...

Quick question idea related to the sound idea.. Could the tape deck port be used to send sounds to some sort of D/A convertor and control things? That analog protocol is already defined. He would just have to know what the protocol is in order to decode it.

 

Yes you can the Cassette port was used by the PUG group here on the BBS computer they used.

It turned on the flip flop switch for a printer power switch so it would print out the log when the buffer was full.

 

That way they had a log of everything that was done on the BBS with out a complete failure and loss of what happened. It would then clear the buffer and reset.

 

Mike Wright is the guy that dreamed up that cool idea. He was a hard ware engineer at Intel along with the old PUG president at Intel Al Kinney.

Edited by RXB
  • Like 1
Link to comment
Share on other sites

If I was a betting man, I bet he used the remote jack portion. I am guessing that toggling a relay or transistor is not with screwing around with the audio.

 

You can do that pretty easily... I wrote an article back when I started dabbling with assembly (and trust me, I'm *still* a novice compared to people like Tursi). It's pretty easy to turn the audio and motor on and off in assembly:

 

ftp://whtech.com/user%20groups/Dallas/newsletters/dallas9208.pdf

 

Go check out page 8. I don't remember how it wound up in Micropendium or the DTIHCG newsletter (or the Long Island one either for that matter.) There is one misprint; MTRON was supposed to be on its own line; it was a label.

Link to comment
Share on other sites

  • 1 year later...

I always find these topics on the Interwebs long after the question was posed. But I just got my TI-99 working again last night and had the same idea to do some completely unnecessary hack to make my poor old computer live again.

 

For anyone else who stumbles upon this thread, I suggest you think outside of the box.. In this case, a rube goldberg machine, you don't even need to worry about connecting a peripheral to the TI-99.

 

Why not put a small photocell, which is connected to the Arduino, directly over part of the display on the Ti-99? Then using BASIC on the Ti, you can blink a small dot under the photocell to send commands to the arduino. It would just take a little creativity.. Also, it would make sense that you have some animation like a ball rolling around the screen that has to go through a digital rube before landing on the photocell to trigger the next whacky contraption.

 

At any rate, 2 years later you still had a neat idea. Would love to hear how it all turned out and/or check out a video if you made one.

Edited by idcard@yeadongroup.com
  • Like 1
Link to comment
Share on other sites

I always find these topics on the Interwebs long after the question was posed. But I just got my TI-99 working again last night and had the same idea to do some completely unnecessary hack to make my poor old computer live again.

 

For anyone else who stumbles upon this thread, I suggest you think outside of the box.. In this case, a rube goldberg machine, you don't even need to worry about connecting a peripheral to the TI-99.

 

Why not put a small photocell, which is connected to the Arduino, directly over part of the display on the Ti-99? Then using BASIC on the Ti, you can blink a small dot under the photocell to send commands to the arduino. It would just take a little creativity.. Also, it would make sense that you have some animation like a ball rolling around the screen that has to go through a digital rube before landing on the photocell to trigger the next whacky contraption.

 

At any rate, 2 years later you still had a neat idea. Would love to hear how it all turned out and/or check out a video if you made one.

 

I did a while back something in that same vein, and it would have been a small additional step to connect it to a microcontroller :)

 

http://youtu.be/Acn0IbHpPho

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...