| |
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.... |
| |
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) |
| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
Quote: x64sc >>>>>>> dogshit > x64 :D
LOL :D
ok.. it works in x64sc
I wonder why they don't keep x64.exe up to date with x64sc.exe |
| |
Zibri Account closed
Registered: May 2020 Posts: 304 |
Quote: it works fine in 3.5 - ie what krill said :) (yes x64 is vintage)
Then, update it to be in par with x64sc :P |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
[OT] Use x64sc. Uses the novel Quiss+Copyfault method of getting to a specified beam X position to set up a stable raster timer interrupt, without accessing VIC registers and in just a few bytes. .cerror * != $08a3, "sync not at $08a3"
sync = * + 1
ldx #$9e
ldy #8
cpx #0
bne sync |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 34 - Next |