Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Commodore Datasette
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Encoding == [[File:Commodore-Datasette-C2N-Mk1-Open-Back.jpg|thumb|Inside the Datasette]] [[File:c2n waveform.png|thumb|left|The resulting waveform from storing data]] {{Listen|filename=Datasette.ogg|title=Datasette sound sample|description=Commodore Datasette 18-second sound sample|format=[[Ogg]]}} To record physical data, the [[zero-crossing]] from positive to negative voltage of the analog signal is measured. The resulting time between these positive to negative crossings is then compared to a threshold to determine whether the time since the last crossing is short (0) or long (1).<ref name="wav-prg_sf-tape">{{cite web|title=How Commodore tapes work|url=http://wav-prg.sourceforge.net/tape.html}} 091205 wav-prg.sourceforge.net</ref> Note the lower amplitude for the shorter periods. A circuit in the tape unit transforms the analog signal into a logical 1 or 0, which is then transmitted to the computer via the [[Commodore 64#Input/output (I/O) ports and power supply|tape connector]]. Inside the computer, the first [[MOS Technology CIA|Complex Interface Adapter]] (6526) in the C64 senses when the signal goes from one to zero. This event is called trigger and causes an [[interrupt request]]. This event can be handled by a handler code, or simply discovered by testing bit 4 of location $DC0D. The points that trigger this event are indicated by the black circles in the figure.<ref name="wav-prg_sf-tape" /> Inside the tape device the [[tape head|read head]] signal is fed into an [[operational amplifier]] (1) whose output signal is [[direct current|DC]]-filtered. Op-amp (2) amplifies and feeds an RC filter. Op-amp (3) amplifies the signal again followed by another DC filter. Op-amp (4) amplifies the signal into [[clipping (signal processing)|clipping]] the [[sine wave|sine]]-formed signal. The positive and negative rails for all op-amps are wired to +5V DC and [[Ground (electricity)|GND]]. The clipped signal therefore fits into the [[transistor–transistor logic|TTL]] electrical level window of the [[Schmitt trigger]] step that in turn feeds the digital cassette port.<ref name="c2n_schematic">Datasette service manual model C2N/1530/1531, preliminary, Oct. 1984 PN-314002-02</ref> On the [[PAL]] version of the C64, the time granularity is {{nowrap|1.014 [[microsecond|μs]]}} (for NTSC {{nowrap|0.978 μs}}). Since each bit uses {{nowrap|3284 [[Clock signal|clock cycles]]}} this means {{nowrap|3284 * 1.014 μs}} = {{nowrap|3330 μs/bit.}} or a {{nowrap|300 bit/s}} data rate. Once the bits can be decoded, they are fed into a [[shift register]]<!--MSB or LSB first?--> and are continuously compared to a special bit sequence. This bit sequence can also be seen as a byte. A bit-sequence match means that the stream is byte-synchronized. The first byte to compare with is called the ''lead-in byte''. If matched, it's compared to the ''sync byte'' as well.<ref name="wav-prg_sf-tape" /> An example: Turbo Tape 64 has a ''lead-in byte'' $02 (binary 00000010), ''sync byte'' $09 (binary 00001001) and a following sync sequence of $08, $07, $06, $05, $04, $03, $02, $01.<ref name="deceukelaire198502" /><ref name="wav-prg_sf-tape" />
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)