Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Less than two edge per bit on the cassette output

10 views
Skip to first unread message

Andre Majorel

unread,
Jun 7, 2015, 8:12:05 AM6/7/15
to
Following up on the conversation with Simon during the visu :

Last time turbo CSAVE has come up here was on 2008-01-31.

http://compgroups.net/comp.sys.oric/just-an-idea/2726202
http://comp.sys.oric.narkive.com/A7FBJu0S/just-an-idea

(Naturally, the proportional font mucks up the ASCII art and
neither web site seems to offer a way to switch to a
fixed-spacing font.)

Don't know how Fabrice's "turbo tape" thing works or why you
cannot use it but...

The data sheet of the 6522 says that, when T1 is in free-running
mode, writing to T1L does not affect T1C. So getting alternately
rising and falling edges on PB7 at arbitrary intervals should be
possible. After triggering the first edge on PB7, work out how
long the second interval needs to be and put that value into T1L
before T1 times out. When it does, it will reset to the value
you just put in T1L. Then you work out how long the third
interval need to be and so on.

As it happens, CSAVE uses T1 in free-running mode[1]. So all
that needs to change is routine 0xE5F3/0xE68B. Instead of doing
the equivalent of

php
sec
jsr e619/e6b2
plp
jsr e619/e6b2

it could do just

jsr e619/e6b2

I think this change would reduce the number of edges per bit
from 2 to 1 and the time to transmit a bit from 416 or 624 µs to
208 or 416 µs. And break CLOAD. :->

Not tested.

[1] _L'Oric à nu_ mistakenly calls it "mode monostable" on page
272. The same error is made on page 302.

--
André Majorel http://www.teaser.fr/~amajorel/
It is difficult to get a man to understand something, when his
salary depends upon his not understanding it. -- Upton Sinclair

Simon

unread,
Jun 9, 2015, 1:47:46 AM6/9/15
to
Le 07/06/2015 14:12, Andre Majorel a écrit :

> I think this change would reduce the number of edges per bit
> from 2 to 1 and the time to transmit a bit from 416 or 624 µs to
> 208 or 416 µs. And break CLOAD. :->
>
> Not tested.

I wonder if the use of one "extra" edge that is sent first, always at
the sans duration, was not there to make the signal clearer before the
value istelf (208 or 416 µs). Like a "start" signal.
It would prevent from differences in the signal that would occur by
having transitions between 00, 01, 10 or 11: you would always start by a
208 µs sinusoid.
This thing caused me problems for years in the slow speed decoding,
where there is not such "start" for a bit. I was thinking transitions
were "random" between a 208 and 416µs sinusoid (making them a bit
shorter or longer than expected), before realising I didn't analyse them
where they really started, thus somtimes counting a quarter of 416µs
sinusoid with 3/4 of a 208µs!

0 new messages