Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > New life for your underloved datassette unit :D
2021-10-21 02:22
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....
 
2021-10-21 14:32
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.
2021-10-21 14:33
Zibri
Account closed

Registered: May 2020
Posts: 304
Quote: Quoting Zibri
I 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.
2021-10-21 14:36
Zibri
Account closed

Registered: May 2020
Posts: 304
Quote: Quoting Zibri
I 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?
2021-10-21 14:40
chatGPZ

Registered: Dec 2001
Posts: 11386
dont use vintage vice :)
2021-10-21 14:41
Krill

Registered: Apr 2002
Posts: 2980
x64sc >>>>>>> dogshit > x64 :D
2021-10-21 14:42
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??
2021-10-21 14:44
chatGPZ

Registered: Dec 2001
Posts: 11386
it works fine in 3.5 - ie what krill said :) (yes x64 is vintage)
2021-10-21 14:45
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
2021-10-21 14:45
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
2021-10-21 14:46
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
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Mike
HOL2001/Quantum
tlr
Paulko64
Acidchild/Padua
zscs
Ghost/Quantum
wil
Guests online: 113
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Party Elk 2  (9.6)
4 Cubic Dream  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Webmasters
1 Slaygon  (9.6)
2 Perff  (9.6)
3 Sabbi  (9.5)
4 Morpheus  (9.4)
5 CreaMD  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.056 sec.