| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
New life for your underloved datassette unit :D
The first phase of testing just ended.
(Still in the packaging and refining phase)
But I wish to share with you all my latest accomplishment.
You might want to check this out:
https://twitter.com/zibri/status/1450979434916417540
and this:
https://twitter.com/zibri/status/1450979005117644800
The fastest example (11 kilobit/sec) has the same (or better) error rlsilience as "turbo250" but it is 3 times faster.
The slowest one (8 kilobit/sec) has the same error resilience as the standard commodore slow "save", but it is 100 times faster and twice as fast as turbo250.
;)
Notes:
1) faster speeds are possible if the tape is written with a professional equipment or hi-fi with a stabilized speed and virtually no wobbling.
2) if the tape is emulated (tapuino or similar projects) the speed can go up to 34 kilobit/sec.
3) even with datassette, higher speeds are possible but the highly depend on the status of the tape, the datassette speed and azimuth. |
|
... 327 posts hidden. Click here to view all posts.... |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
ok, true... that just seems a bit pointless, whats the advantage? do you update dc0e/f elsewhere? |
| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
Quote: Quoting FranticQuote:(including headalign which mainly shows on screen it's own jitter and not the truth). Does this mean that a new headalign program would be a meaningful task for someone to take on, or are there already alternatives that work as they "should" in this regard? Not so sure about that.
The lion's share in jitter production is probably due to tape wobble. Measurement jitter (unstable interrupt-to-ISR latency) adds a bit on top.
Minimising the latter using the Ninja method surely has benefits, but they amount to minimising the already much smaller measurement error.
Sorry but that's just wrong.
First (and again): this is NOT the ninja method.
Second: the jittering has nothing to do with the irq method. Even pointing the irq directly to my code, will cause NO jittering.
Third:
headlign has more than 20 cycle jitter along the program
tape wobble on a good datassette is about 8-10 cycles at most.
In some very old and bad units it can be even 12 or 16..
but EVEN if it was 20.. that's 20 + 20 of the headlign program.. they don't cancel each other. they SUM.
This and many more thoughts lead people to think the datassette was "bad" but actually it wasn't.
(I never liked it too.. at the time I had my beloved 1541 pretty soon after getting the C64) |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
Quoting ZibriI don't know if anyone ever used this method.. In some demos I saw them using an LDA or $04 in dc0c and an RTI in DC0E.
But the jump I came up with is way better. FWIW, Softwired does.C:dd0c 4C 83 05 JMP $0583 when handling a timer interrupt, acknowledging it while executing the jump, saving a cycle over BIT $DD0D. |
| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
Quote: ok, true... that just seems a bit pointless, whats the advantage? do you update dc0e/f elsewhere?
for the tape (or timers) you only neeed DC0D.
a JMP instruction in DC0C will unlatch the IRQ (4 cycles saved) and then jmp immediately to DIFFERENT locations depending on the IRQ received.
Example:
lda #$4c
sta $dc0c
lda #$0a
sta $dc0e
Now.. a BRK will cause a jump to $A00
a pulse from tape will cause a jump to $A90
and with timers irq on there will be jumps to:
A01
A02
A03
A04
A05... etc etc
so it makes possible with the right code at $A00
to jump to different locations in your code without even having to check which irq happened.
That I call a HUGE advantage and I never saw that used anywhere in this way. |
| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
Quote: Quoting ZibriI don't know if anyone ever used this method.. In some demos I saw them using an LDA or $04 in dc0c and an RTI in DC0E.
But the jump I came up with is way better. FWIW, Softwired does.C:dd0c 4C 83 05 JMP $0583 when handling a timer interrupt, acknowledging it while executing the jump, saving a cycle over BIT $DD0D.
I didn't know that...
nice. |
| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
Quote: Quoting ZibriI don't know if anyone ever used this method.. In some demos I saw them using an LDA or $04 in dc0c and an RTI in DC0E.
But the jump I came up with is way better. FWIW, Softwired does.C:dd0c 4C 83 05 JMP $0583 when handling a timer interrupt, acknowledging it while executing the jump, saving a cycle over BIT $DD0D.
Just an info.. I donwloaded SOFTWIRED because I love demos, but it does not work on VICE...
Do you know why? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
dont use vintage vice :) |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
x64sc >>>>>>> dogshit > x64 :D |
| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
Quote: dont use vintage vice :)
Do you call
3.5 r40906M
(GTK3 3.24.30, GLib 2.70.0, Cairo 1.17.4, Pango 1.48.10)
vintage?? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
it works fine in 3.5 - ie what krill said :) (yes x64 is vintage) |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 34 - Next |