Jump to content
IGNORED

I/O on cassette port


rocky007

Recommended Posts

I think the cassette port output is just two tones high and low. Not analog.

The wico track ball gives the same joystick inputs as a joystick which are -4 0 4 for both x and y. I think there us a rotary speed switch that let's you read the joystick return values only when the ball is spinning and at the rate the ball is spinning. In basic when you use the call joystick command it reads the return values so the switch has to be made to have a return value to read, otherwise it is a 0 value by default.

Edited by jchase1970
Link to comment
Share on other sites

Does your trackball have a sticker on the side with which says "TI"? If not then maybe it has peeled off. If it is a TI Wico trackball there should be a port for an A/C adapter on the side of the unit. If not, then it is not a TI version of the Wico trackball and will not be usable (even with a standard Wico joystick adapter). I guess you could try and rig your own power to it, but that isn't an easy solution.

 

If you what you have is a TI trackball, then all you need to do is plug it into the joystick port and have the A/C adapter plugged into a socket and it should work fine.

 

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

Link to comment
Share on other sites

I think I may have misunderstood your question about the trackball. Nevertheless, there is an answer about HOW TO use the trackball with the TI.

 

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

Link to comment
Share on other sites

I think I may have misunderstood your question about the trackball. Nevertheless, there is an answer about HOW TO use the trackball with the TI.

 

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

 

yes, in fact the real question is how to receive analog signal on TI... i'm thinking to software way for using Atari paddle.

I read an internet page about TI joystick port modification, but i lost where i read it :(

so, i'm thinking about little interface...

Link to comment
Share on other sites

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

 

 

Having taken my Wico track ball apart (imagine that) I have the skinny..... It actually reads the motion of the ball optically via two wheels with slots cut into them and sends the data out through A/D converters. The issue I have with them is that you have no speed control as you would with software written for true analog trackballs. Kind of frustrating with games like centipede and barrage (for me anyway...) I think a true analog game port would be pretty cool but then you'd have to write games with them in mind (now who would do that ;-). Perhaps the best way would be to create an Analog/digital converter that could send a scaled value to the RS232 port. That would eliminate console modifications. Anyway just my two cents....

Link to comment
Share on other sites

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

 

 

Having taken my Wico track ball apart (imagine that) I have the skinny..... It actually reads the motion of the ball optically via two wheels with slots cut into them and sends the data out through A/D converters. The issue I have with them is that you have no speed control as you would with software written for true analog trackballs. Kind of frustrating with games like centipede and barrage (for me anyway...) I think a true analog game port would be pretty cool but then you'd have to write games with them in mind (now who would do that ;-). Perhaps the best way would be to create an Analog/digital converter that could send a scaled value to the RS232 port. That would eliminate console modifications. Anyway just my two cents....

 

yes, it what i exepected as it's externally powered.

i think wico trackball use the same technology than the "joytalk" : the signal is converted and bit converted into pulses through joyport. I'm to make little adapter converting a analog signal into 8 bit, and a special program in assembly scanning the joypad port to read & convert the 8 bit signal. By exemple if trackball send a signal value of 244, converted in binary : 11110100. The program have to code the "0" by "direction down" and the "1" by "direction up", and using start sequence signal "direction left". In final, the joypad sequence would be "LUUUUDUDD" (l= left, u=up, d=down).

 

I thought through RS232, but everybody don't have RS232. I think a little adapter on original joyport is a better choice.

Using this one, we can imagine special driver for Ti artist by exemple, and use a normal mouse on TI99.

I thought also trough expension port : making a little adapter, with 2 analogic Atari compatible joypad port.

Link to comment
Share on other sites

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

 

 

Having taken my Wico track ball apart (imagine that) I have the skinny..... It actually reads the motion of the ball optically via two wheels with slots cut into them and sends the data out through A/D converters. The issue I have with them is that you have no speed control as you would with software written for true analog trackballs. Kind of frustrating with games like centipede and barrage (for me anyway...) I think a true analog game port would be pretty cool but then you'd have to write games with them in mind (now who would do that ;-). Perhaps the best way would be to create an Analog/digital converter that could send a scaled value to the RS232 port. That would eliminate console modifications. Anyway just my two cents....

 

yes, it what i exepected as it's externally powered.

i think wico trackball use the same technology than the "joytalk" : the signal is converted and bit converted into pulses through joyport. I'm to make little adapter converting a analog signal into 8 bit, and a special program in assembly scanning the joypad port to read & convert the 8 bit signal. By exemple if trackball send a signal value of 244, converted in binary : 11110100. The program have to code the "0" by "direction down" and the "1" by "direction up", and using start sequence signal "direction left". In final, the joypad sequence would be "LUUUUDUDD" (l= left, u=up, d=down).

 

I thought through RS232, but everybody don't have RS232. I think a little adapter on original joyport is a better choice.

Using this one, we can imagine special driver for Ti artist by exemple, and use a normal mouse on TI99.

I thought also trough expension port : making a little adapter, with 2 analogic Atari compatible joypad port.

 

 

I don't know anything about the A/D circuitry but if you looked at the 8 bits as a group of 4 2 bit packets then that would give you a range of 4 numbers (including zero) as a magnitude for each direction. Is this what you are doing ? Sorry I didn't follow the "LUUUUDUDD"....

Link to comment
Share on other sites

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

 

 

Having taken my Wico track ball apart (imagine that) I have the skinny..... It actually reads the motion of the ball optically via two wheels with slots cut into them and sends the data out through A/D converters. The issue I have with them is that you have no speed control as you would with software written for true analog trackballs. Kind of frustrating with games like centipede and barrage (for me anyway...) I think a true analog game port would be pretty cool but then you'd have to write games with them in mind (now who would do that ;-). Perhaps the best way would be to create an Analog/digital converter that could send a scaled value to the RS232 port. That would eliminate console modifications. Anyway just my two cents....

 

yes, it what i exepected as it's externally powered.

i think wico trackball use the same technology than the "joytalk" : the signal is converted and bit converted into pulses through joyport. I'm to make little adapter converting a analog signal into 8 bit, and a special program in assembly scanning the joypad port to read & convert the 8 bit signal. By exemple if trackball send a signal value of 244, converted in binary : 11110100. The program have to code the "0" by "direction down" and the "1" by "direction up", and using start sequence signal "direction left". In final, the joypad sequence would be "LUUUUDUDD" (l= left, u=up, d=down).

 

I thought through RS232, but everybody don't have RS232. I think a little adapter on original joyport is a better choice.

Using this one, we can imagine special driver for Ti artist by exemple, and use a normal mouse on TI99.

I thought also trough expension port : making a little adapter, with 2 analogic Atari compatible joypad port.

 

 

I don't know anything about the A/D circuitry but if you looked at the 8 bits as a group of 4 2 bit packets then that would give you a range of 4 numbers (including zero) as a magnitude for each direction. Is this what you are doing ? Sorry I didn't follow the "LUUUUDUDD"....

 

if the magnitude is between -256 to 256, i just need 8 bit : i can code the 8 bit using 4 positions on original port :

Up, down, Right, Left. By exemple to code 11110000, i can code it into up-up-up-up-down-down-down-down.

For negative magnitude, i can use right / left.

 

In basic, it's something like this ( not tested ), the scan start with detection of fire:

 

10 CALL KEY(0,K,S)

20 IF K=0 THEN 10

40 I=1 :: A$="" :: B$=""

50 CALL JOYST(1,x,y)

60 IF Y=0 AND X=0 THEN 50

70 IF X=-4 THEN A$=A$+"1"

80 IF X=4 THEN A$=A$+"0"

90 IF Y=4 THEN B$=B$+"1"

100 IF Y=-4 THEN B$=B$+"0"

110 I=I+1 :: IF I=8 THEN 120 ELSE 50

120 IF A$="" THEN PRINT "NEGATIVE ",B$

130 IF B$="" THEN PRINT "POSITIVE ",A$

140 GOTO 10

 

I think that in assembly, this routine could be enough fast to be transparent and return a value between -256 and 256 in realtime.

Edited by rocky007
Link to comment
Share on other sites

I'm interested in reading a analog signal from. Is it possible through the cassette port ?

Somebody also have idea how the Wico trackball use the joystick port ?

 

 

Having taken my Wico track ball apart (imagine that) I have the skinny..... It actually reads the motion of the ball optically via two wheels with slots cut into them and sends the data out through A/D converters. The issue I have with them is that you have no speed control as you would with software written for true analog trackballs. Kind of frustrating with games like centipede and barrage (for me anyway...) I think a true analog game port would be pretty cool but then you'd have to write games with them in mind (now who would do that ;-). Perhaps the best way would be to create an Analog/digital converter that could send a scaled value to the RS232 port. That would eliminate console modifications. Anyway just my two cents....

 

yes, it what i exepected as it's externally powered.

i think wico trackball use the same technology than the "joytalk" : the signal is converted and bit converted into pulses through joyport. I'm to make little adapter converting a analog signal into 8 bit, and a special program in assembly scanning the joypad port to read & convert the 8 bit signal. By exemple if trackball send a signal value of 244, converted in binary : 11110100. The program have to code the "0" by "direction down" and the "1" by "direction up", and using start sequence signal "direction left". In final, the joypad sequence would be "LUUUUDUDD" (l= left, u=up, d=down).

 

I thought through RS232, but everybody don't have RS232. I think a little adapter on original joyport is a better choice.

Using this one, we can imagine special driver for Ti artist by exemple, and use a normal mouse on TI99.

I thought also trough expension port : making a little adapter, with 2 analogic Atari compatible joypad port.

 

 

I don't know anything about the A/D circuitry but if you looked at the 8 bits as a group of 4 2 bit packets then that would give you a range of 4 numbers (including zero) as a magnitude for each direction. Is this what you are doing ? Sorry I didn't follow the "LUUUUDUDD"....

 

if the magnitude is between -256 to 256, i just need 8 bit : i can code the 8 bit using 4 positions on original port :

Up, down, Right, Left. By exemple to code 11110000, i can code it into up-up-up-up-down-down-down-down.

For negative magnitude, i can use right / left.

 

In basic, it's something like this ( not tested ), the scan start with detection of fire:

 

10 CALL KEY(0,K,S)

20 IF K=0 THEN 10

40 I=1 :: A$="" :: B$=""

50 CALL JOYST(1,x,y)

60 IF Y=0 AND X=0 THEN 50

70 IF X=-4 THEN A$=A$+"1"

80 IF X=4 THEN A$=A$+"0"

90 IF Y=4 THEN B$=B$+"1"

100 IF Y=-4 THEN B$=B$+"0"

110 I=I+1 :: IF I=8 THEN 120 ELSE 50

120 IF A$="" THEN PRINT "NEGATIVE ",B$

130 IF B$="" THEN PRINT "POSITIVE ",A$

140 GOTO 10

 

I think that in assembly, this routine could be enough fast to be transparent and return a value between -256 and 256 in realtime.

 

That's not giving a 8 bit return, You are sampling the joystick 8 times and setting each sample to 1 or 0, so 11110000 is 4 positive samples and 00001111 is 4 positive samples, bitwise it's 240 and 15 big difference. It might be all the range you need though if you use pos and neg, a range of 1 to 8 in both directions and 0 in the center.

 

 

If I was going to try to do something like this I would do it this way,

 

create an adapter that pulses faster or slower depending on the analog position of the paddle controller, easy enough.

 

to keep it simple I'ld just pulse 0 to 255 times per given cycle, not sure what the time cycle would be with out doing some research on how fast repeated calls are to the joystick, It may need to be slowed even more, say 0 to 100 or something.

 

this range (say 0 to 255) would return in program this 0-126 left, 127 center, 128-255 right

 

Then in code to sample the return rate, a timed loop to read the joystick pulses.

this is where some testing will have to come in play and why the range may have to be scaled down. You don't want to sample more then say 25 millisecs at a time that would be 40fps. So if you cant read 255 joystick readings in 25 ms you have to scale it back to what is possible in 25 ms, if it is 0-100 the range will be 0-49 left, 50 center, 51-100 right.

 

You only need to pulse 1 joystick return value up, down , left or right.

 

it would look something like this, not coded, just flow charted,

 

'paddle input

1 read joystick

2 if joystick X value 4, inc pulsevariable

3 inc loop counter

4 if loop counter less then 255, loop to 1

'analyze return

5 spinningspeed = 255-pulsevarible (this will return -128 to 128)

6 pulsevalue=0

'run the rest of the main loop and loop back to 1

Edited by jchase1970
Link to comment
Share on other sites

I'm sampling joystick 8 times, A$ counting left & right pulses, B$ counting only up & right pulses

 

In final, length of A$ or B$ would be 8 chars. A$ is positive, B$ is negative.

 

In practice :

 

To convert the number 149 ( in binary 10010101 )

 

The interface have to send to joystick port : left (1), right (0), right (0), left (1), right (0), left (1), right (0), left (1)

The program analyse this "combo" sequence, and the result will be A$="10010101"

 

If the number is -149, i take the absolute value in binary : 10010101

But as it's negative, the interface use up & down instead of left & right : up (1), down (0) , down (0), up (1), down (0), up (1), down (0), up (1)

The program analyse this sequence, and result will be B$="10010101".. as it's B$, it's negative.

 

In final, i need only 9 pulses ( 1 pulse to start sequence (fire), and 8 pulses for coding the 8 bits)

Link to comment
Share on other sites

Me backing up threads again... ;) the cassette port is single-bit I/O -- one bit for input, one bit for output. By toggling the output bit at different rates, you can create tones, but you aren't limited to the frequencies the console uses. Likewise for input, the console actually samples the input signal. However, it's completely digital and pretty heavily filtered.

 

There are also two switches in there - the cassette motor pins allow the TI to conduct current for two cassette drives. It's not a true output because you also have to provide input current,and polarity matters, but they are a true digital switch (I used these long ago to turn things on for me ;) ).

 

As for the trackball -- I used to have a Wico trackball for the Atari, which worked fine on the TI through an Atari pinout adapter. It translated the rolling into pulses on the normal up/down/left/right lines -- ie: no special encoding at the jack, it just worked like a joystick. I guess those are becoming pretty rare.

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...