Re: CD's, C64's and error-correction

From: Larry Anderson (
Date: 1999-10-12 02:58:46

Here is a related tidbit I just got, not sure if it really applies,
but I like to play with my scanner now and again...

**also in related news I picked up a 'petunia' board  for the PET and an
article on computer music by hal chamberlin,  The petunia board has a working
composite video circuit for the PET (will have to check it against Nick
Hampshire's and MICRO's to see which one is employed, if those.) and the
Chamberlin article essentially shows how to make the four-voice music circuit
used in the MTU and the Petunia music boards.

Back to the tape article... it's from the 3rd issue of the Commodore PET Users
Newsletter from 1979,
it discusses the PET cassete and duplication notes (in general; the recording
characteristics of commodore tapes.)...

Data Exchange


In response to Mr. Arthur B. Hunkins, we have published the requirements for
high-speed duplication for the PET. Although lengthy, this information should
be something all Users could eventually benefit from. 


A. Explanation of PET recording scheme: 

The PET cassette deck uses an unequalized constant current recording method to
place data on magnetic tape. The encoding scheme uses three distinct full
cycle pulses. (See Figure 1). 

Figure 1:

!    360uS    !
!             !
!      +------!
!------+      !

!<-----     ----->!
!                 !
!        +--------!
!--------+        !

!<-------         ------->!
!                         !
!            +------------!
!------------+            !

A data zero or one is represented by a pairing (or dipole) of a short and a
long pulse. If the short pulse is first, then the dipole is considered to be a
zero. If the long pulse is first, the dipole is a one. The byte mark occurs
once each byte and provides a reference for byte identification. 

B. PET Playback Circuit 

The PET cassette playback circuitry first amplifies the recorded signal then
passes this through equalization and squaring circuits. Thus a logic-level
signal is presented to the computer. The computer measures the time between
negative edges of the signal and decodes the data from these measurements. 

C. The following points are important to successful tape duplication: 

1. The PET outputs data during WRITE to the cassette with the information
carried by the positive transitions and accepts data during READ with the
information carried by the negative going edges. See Figure 2. 

Figure  2:

!<---- BYTE ID ---->!<----DATA "0"--->!<- DATA... 
!<-BYTE ->!<-SPARE->!<SHORT>!<-LONG-->!<SHORT>!<-LO
!         !  LONG   !       !         !       !
!         !         !       !         !       !

Write Data:

!----+    !----+    !---+   !----+    !---+   !
!    +----!    +----!   +---!    +----!   +---!
!         !         !       !         !       !

Read Data:

!    +----!    +----!   +---!    +----!   +---!
!----+    !----+    !---+   !----+    !---+   !

2. Because of this encoding scheme, the data is polarity sensitive. A 180
phase reversal to proper data produces unreadable data. To check for proper
data polarity with an oscilloscope, connect the scope to monitor the READ data
from the PET cassette to the computer. Put the tape to be checked into the
cassette and press PLAY. Set the horizontal rate to 100 micro-seconds per
centimeter, and the triggering for negative going edges. Set the vertical
scale to 1 volt per division and center the waveform on the screen. Adjust the
scope trigger so that the displayed waveform is at the center of the left edge
of the screen. The signal should appear as shown in Figure 3, with the
negative going edges of the short and long pulses clearly visible. Depending
on the scope used and the data, the byte mark negative edges may also be



!      - ---!- --!...:
!     !  !  ! :  !   :
!     !  !  ! :  !   :
!    !  !   !:   !   :
!    !  !   !:   !   :
!!   !  !   !:   !   :
! --- --!...!    !   :
!<--SHORT-->!    !   :
!<-----LONG----->!   :

Try switching the polarity of the scope trigger To positive going edges and
observe if the positive edges are closer to the proper timing than the
negative edges. If the positive edges are better, then the recorded data has
the wrong polarity. 

3. Because of the great high frequency emphasis encountered with audio
cassette recording the phase of the signal may shift as much as 90 due to
this emphasis. This produces read data which is halfway toward being reversed
polarity. This situation is evident when scope shows negative and positive
edges to be equally far from the proper timing. A partial phase shift (much
less than 90) usually accompanies tape duplication and this is visible on the
scope as a widening of the negative going edges. Generally, better duplication
has been obtained with the high frequency peaking in the duplicator master
deck reduced to nearly minimum. 

4. The level at which a PET cassette deck records is around 500 nanowebers per
meter, (nWb/m), which is just under saturation on low coercivity tapes. It has
been found that duplicated tapes perform better when their level is slightly
higher than the PET tape level. It is also possible to fully saturate the tape
and obtain good duplication results. Generally, then, the rule on recording
level is "the higher, the better", providing the duplication equipment can
handle these elevated levels. 

5. The PET cassette data is recorded 1/2 track on 1/8 inch tape. It has been
found that when the data is duplicated with some stereo heads, the head skew
and differing phase relationship between the 2 tracks causes a distorted
signal and reduced readability. It is therefore best to use monaural heads on
duplicator slaves which are to be used for duplicating PET tapes. 

For high volume cassette tape reproduction you may wish to contact either of
the following companies which currently produce Commodore Master Library

440 Brannan St.
San Francisco, Ca. 94107
ATTN: Phil Markinson 


8120 Webb Ave.
North Hollywood, Ca. 91605
ATTN: Rick Hutchins on 

Just had to add this tidbit from the same issue, about the PEEKing of the
original PET ROMs...

Recall earlier I (Jim Butterfield) mentioned that POKE and PEEK aren't
possible on all memory locations for several reasons: 


C. Next on the memory map is the Microsoft BASIC area; locations 49152 to
57463. This is the memory that recognizes and performs your commands. Changing
the contents of these locations is impossible because it is Read Only Memory
and is actually 'burnt in' at the factory. Therefore, POKing these locations
will simply do nothing. Also, Microsoft requested that these locations return
zeros if PEEKed (for copyright reasons). 

01000011 01001111 01001101 01001101 01001111 01000100 01001111 01010010 01000101
  Larry Anderson - Sysop of Silicon Realms BBS  (209) 754-1363  300-2400 baud
      Commodore 8-bit page at:
01000011 01001111 01001101 01010000 01010101 01010100 01000101 01010010 01010011
This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.