LZ: RE: Clearing a few things up: (was: a new memory expander).
[Prev][Next][Index][Thread]
LZ: RE: Clearing a few things up: (was: a new memory expander).
Mel, how the hell do you know all this shit!?!? Man I respect you. You are like a genius at all this electronic stuff. I mean I know stuff, but you everything. Mel, you are the electronics god.
-Colin :-)
----------
From: Mel Tsai[SMTP:tsaimelv@pilot.msu.edu]
Sent: Sunday, July 06, 1997 5:55 PM
To: list-zshell@lists.ticalc.org
Subject: LZ: Clearing a few things up: (was: a new memory expander).
>>I am currently working on a new expsander for the ti-85.
>>Right now I am calling it "The TI-Tape drive," that may change, but I am not
>>really makeing a new drive, just a cabel that will alow a TI to hook up to a
>>tape recorder and sent info to a tape. then tay can play back this info from
>>a tape player. I don't have much yet, but I will post info as I get it. You
>>can see what I've done at my site:
>
> If you had been on this list about 8 months ago, you would have realized
>that this topic had already been discussed, and it would take a whole
>shitload of electronic components to get this to work. First of all, you
>can't copy a digital signal on to a tape with an analog recorder, second of
>all, the 85 needs some sort of clocking so it sends and recieves the data
>packets correctly. How the hell are you going to trick the calc into
>thinking a tape recorder is another calc?
Okay, perhaps I should clear up a few things about a TI-85/Cassette
Recorder interface.
First of all, direct writing of digital data onto a tape is
impossible, at least with a normal cassette recorder. What virtually
all the cassette/computer interfaces of the past have used is
something called "frequency shift keying", or FSK for short. This is
identical to what the first modems used (e.g. 300 and 1200 baud).
Newer modems used Phase Shift Keying or some derivative of this.
Basically what this did is send different tones to the recorder, with
each tone representing a bit "1" or "0". The old Kansas-City standard
used something like 800 and 1200hz tones to represent the two logic
levels. None of the older systems used direct-tape writing, contrary
to popular belief.
Newer Tape Drive systems do use direct bit writing, however, but it
cannot be done with a standard cassette recorder.
Now, getting to the more prevalent questions, is a TI-85/Cassette
Recorder interface possible? Definitely. Is a TI-85/Cassette
recorder interface possible with just one or two extra components?
Definitely not. There are many design involved with such an
interface.
First of all, you cannot simply "record" the conversation between two
calculators and then play it back. There needs to be real
intelligence in both devices in order for the TI link protocol to
work. The interface must be able to take commands from the sending
calculator, interpret them, and then send back intelligent responses.
This *cannot* be simply recorded. Sorry. For a better understanding
of this, there are a few TI protocol references available on
ticalc.org. You'll understand why when you read them. This problem
can be solved when you abandon the TI's ROM sending routines and use a
zshell program, however.
Second, due to the way the TI protocol handshakes, there must be some
digital logic involved in acknowledging each of the bit sending and
receiving. This is why sound on the TI-92 wasn't possible for so
long, because this acknowledging pulse could not be simulated, until
someone figured out that if you remove the center ground connection on
the headphones, the headphones would "self acknowledge" and manage to
eek out sound. This little trick cannot be used in a tape drive/85
interface. Again though, this problem can also be solved by using an
assembly driver.
Third, there are major level-conversion problems. Just because you
send pulses of 0 and 5 volts to the recorder, doesn't mean that the
recorder will then play back 0 and 5 volts (which is approximately
what the TI-85 would require). It will likely play back like 0.3 and
1 volts. This is what's known as "ALC" or automatic level control.
If the recorder sent back 5 volts to your headphones under playback,
it would blow your earphones out, so most of the time recorders aren't
designed to send these high voltages out. You'll have a bitch of a
time getting the recorder to play back at TTL logic levels. To remedy
this, level conversion circuitry would be necessary, which would be
quite complex.
Next, there is the tone detection problem. Sure, perhaps you can get
the TI-85 to send a clean 1000hz tone to the recorder. But how will
the calculator detect this back? There are a couple of methods.
First, you can use timing sensitive routines to attempt to "read" the
levels of the tone to detect the frequencies, but GOOD LUCK because
this will be extremely difficult, especially with two frequencies with
the same harmonics. The only viable method of tone detection is
through the use of dedicated circuitry, e.g. the NE567 tone decoder IC
or perhaps a garden-variety touch tone decoder IC.
And most importantly, there is the storage problem. Assuming we have
all the above problems fixed, I'd say the max reliable baud rate we
could ever expect is 300 baud (about the same as it was with the old
computer/tape interfaces back in the early 80s), maybe 600 baud if
we're really lucky. Higher baud rates can be tried, but the error
rate would be come unnacceptable. What does that translate to?
Backing up 30 kilobytes of programs at 300 baud will require over 15
minutes of tape/transfer time! Ouch...
There are many definite ways in which a tape interface could be made.
If someone does end up trying it, I'd say the best method would be to
use a couple 555 timer's and 567 tone decoders. This will generate a
pretty reliable bit stream that can easily be read back. Of course, a
zshell program would be the only possible method of accessing the
drive. And don't expect over 200 baud either with any such method.
Hope that cleared a few things up...
-Mel
Follow-Ups: