Tarbell_Cassette_Interface_Jan77 Tarbell Cassette Interface Jan77

Tarbell_Cassette_Interface_Jan77 Tarbell_Cassette_Interface_Jan77

User Manual: Tarbell_Cassette_Interface_Jan77

Open the PDF directly: View PDF PDF.
Page Count: 55

DownloadTarbell_Cassette_Interface_Jan77 Tarbell Cassette Interface Jan77
Open PDF In BrowserView PDF
THE TARBELL CASSETTE INTERFACE
Plugs directly into ALTAI R * 8800 or IMSAI 8080 Computer. Serial-Parallel and Parallel-Serial
Conversion performed on board.
It's fast - Up to 540 bytes per second (2200 bits per inch) with high-quality cassette recorder. 187
bytes per second (800 bits per inch) suggested s.tandard with medium quality ($39.95) recorder. 27
bytes per second (with modification) for Kansas City format. 1000 bytes per second @ 10 inches per
second with PHI-DECK.
Encoding method - Phase encoded self-clocking method requires only one channel, and withstands
large amounts of wow and flutter. Has been used in the computer industry for many years. Can also be
used to generate and detect Kansas City format tapes \~. ith small mod ification.
Will work with most audio cassette recorders. Has been used with reel-reel tape recorders. Can easily
be adapted to automatically (software) controlled digital cassette units. The J. C. Penny #6536
is presently being recommended ($39.95). Suggested tape is Scotch Low-Noise, High-Density audio
tape.
The device code (address) to which the interface responds is selectable in increments of 4 by an onboard dip-switch.
' .
Four extra status lines are available to read external conditions.
Four extra control lines are available, which may be used to drive relays for extra cassette units, startstop control, or controlled cassette drives, such as the PHI-DECK.
Two spare IC slots are provided on the board to do your own thing.
Software provided includes input/output driver routines, bootstrap, read-only memory program, and a '
BASIC program for saving and loading data. A Processor-Technology Software Package #1, which is
an editor and assembler combined, and which has been extensively modified for saving and loading
files to and from cassette, is available separately.
The 37-page owner's manual includes assembly instructions and drawings, parts and pin-function lists,
soldering, cleaning, and installation notes, operating instructions, initial adjustment procedures, notes
about using the PH I-D ECK, start-stop control, interrupts, and writing programs for the cassette interface, the software mentioned above, and information about all the integrated circuits on the board.
The parts provided include all resistors, capacitors, integrated circuits, cassette cables, ribbon cables,
dip connector, low-noise cassette with test stream, and a high-quality double-sided board with platedthrough holes and gold-plated edge-connector fingers.
The first deliveries were made in September, 1975. Delivery time is from one to three weeks after
receiving order. If you are not completely satisfied with the operation of the cassette interface, for
whatever reason, the unit may be returned for refund or free repair within 90 days after you purchased it.
Kit price: $120. Assembled & 'Checked out: $175. ManIJal (inel): $4. California residents please add
6% sales tax.
·ALT AIR is a trademark/tradename of MITS, Inc.

TARBELL ELECTRONICS - 20620 S. Leapw(Jod Ave., Suite P
Carson, California 90746 ~ Phone (213) 538-4251

HISTeRY AND SALES PITCH
I HAVE BEEN USING AN INEXPENSIVE AUDII CASSETTE RECIRDER IN
MY HeME-DES IGNED CG!JtJPUTER SYSTEM SINCE 1912 •
I HAVE IVER'
600 FILES eN CASSETTES" M8STLY ABIUT .. !. rE 43
?FIC CC BO
FF'lF FE 53
F F'~~ 1 CC 73
FF':3ft .... LIF

EC
FF
FF
FF

F'F
l4

r

FF
FF'

F~'

F:P2S C.C;. 7B FF
FF29 FE 49
FF2S CC BO FF
FF2E FE: I-iC

FF30 CC 80 FF
FF33 C3 00 FF
FF36
FF36
:~F36

FF36 CD 3A FF
FF39 £9

FF3.6.
FF3A
1'F3A
F1'3A
71'3D
F'F3F
1'1'42
1'FL!3
FFill!
FF45
F'F46
FF49
F1'4A
7F4B
F'1'4C
FF4F
1'F50
FF50
F'1'50
71'50
FF52

21 00 00

OE Oli
CD 64

:1"

29
29

29
29
CD 50 FF
85
61'

OD
C2 3F FF
C9

D6 30
F'\;'.... OA

FF54 D8
1'F55 D6 07
FF5? C9
FF58
F1'58

0010 *
*** READ-f)NLY l'iEt'H2lRY PR0GRAN ***
0015 *
SET STACK PTR.
0020 START LXI SP"OECOOH
PRINT CTt" LF.
0034
EV I A"ODE
0036
CALL PTCN
0032
NV I A .. Ofl.E
(6N C0NS0LE.
0040
CALL PTCN
OOLl2
PRINT
"1"
E'J I A " '?'
.
CALL FTeN0N CfZNSIZLE.
0043
0050
CALL RDCN
READ KEYB0ARD.
CPI • E'
0060
IF E"
0070
cz. EXEC
EXECUTE A PR0GRAN.
CPI ' C •
0080
IF Col
0090
CINR
CZ
G0 T0 INPUT R0UT INE.
0100
CPI
IF Sol
' S•
0110
CZ
CS"rNC
G~ T0 SYNC GEI'~ •
0120
CP I
IF 0"
• 0'
0130
JZ
ClZlJTR
G0 T0 CASS eUT.
0140
CPI
IF
t 1•
I"
0150
CZ
Clt:JR
G0 T0 CASS IN.
0160
CF I • L'
IF L"
0170
e INR
D0 A L0AD & Ge.
cz
Jr';p START
0200
START 0VER.
6000
6010 *
EXECUTE THE PR,0GRAi'1 AT THE ADDRESS ***
6020 ***
*
READ ADDRESS FR0h- KB.
6030 EXEC
CALL AhEX
JUl'~P T0 IT.
6040
PCEL
7000
7002 *
C((;NVERT UP T0 4 HEX DIGITS T0 BINARY
*
7004 ***
*
GET A 16-BIT ZER0.
7005 AHEX LXI H.,O
C,,4
7008
I'NI
C0UNT £IF 4 DIGITS.
7009 AEEI C.~LL RDCN
READ PI. BYTE.
7010
DAD H
SHIFT 4 LEFT.
7012
DAD Ii
7014
DAD H
DAD H
7016
C0NVERT T0 BINARY.
7018
CALL ABSl
7020
ADD L
7022
MW L"A
4 DIGITS?
7024
DCR C
l{EEP READING.
7026
JNZ ABEl
7028
RET
RETURN FR((;l'ij AHEX.
7100 *
7102
CQ;NVERT AN ASCII DIGIT T0 hEX ***
7104 ***
*
ASCII BIAS.
SUI 4e:
7106 AESI
DIG IT 0-10
7108
CPI 10
7110
HC
ALPl-'..A BIAS.
7112
SU I 7
RETURN FRk?t'; ABS 1.
2.ET
7114
8000
8002 *
PR II'~T REG ISTE2. A Itt,; C0NS0LE

***

***

*

FF'5B
FF58 F5

FF'59 DB 00
?F'5B E6 80
FF'5D C2 59 u

FF'60 Fl
FF'61 D3 01
F'F63

C9

F'F'64

***
*

F'F64
F?64 DB 00
?F'66 E6 01

F'F6F
FFoB
?F6D
FF6 F'
FF72

C2 64 F'F
DB 01
E6 7?
CD 5 ~:, F'F
C9

F'::'71

FF'73
F'F'73

*
***
*

:17'73

??73
F'F73

8004
SAVE REG A.
8006 PTC~ PUSH PSW
READ PRINTER STATUi
8008 PTL0P IK
CeNC
8010
AN I
SOE
IF BIT 7 N0T 0"
TAAIT TILL IT IS.
8012
Jl\Z
PTL0P
8014
pep
PSW
THEN REceVER A"
AND PR.'INT IT.
8016
0UT C0ND
RETURN FR0M PTCN.
8018
RET
13100 :«
6102
READ FR0K C0NS0LE T0 REGISTER A ***
2104
READ 1'1 CASSo
RETURN FR0t-. CIN.
CASSETTE DATA P0RT.
CASSETTE STATUS P0RT.

5FOO
5FOO
5FOO
5FOO
5FOO
5FOO
5FOO
5FOO
5FOI
5F03
5F06
5F07
5FOA
5FOD
5FOE
5FII
5F14
5F15
5F16
5FI8
5FIB
5FIC
5FtE
5F21
5F22
5 F23
5F24
5F26
5F28
5F2B
5F2C
5F2E
5F2F
5F2f
5F2F
5F2F

C5
OE
CD
OF
DC
04
00
C2
CD
Cl
F5
3E
C3
F5
3E
CD
F1
C9
F5
DB
E6
C2
Fl
D3
C9

08
IB SF
15 SF
IB SF
06 SF
15 SF
00
IE SF
55
23 SF

6E
20
24 SF
6F

0010
0020
0030
0040
0050
0060
0070
0080
0090
0100
OliO
0120
0130
0140
0150
0160
0165
0170
0180
0190
0200
0210
0220
0230
0240
0250
0260
0270
0280
0290
0300
0310
0320
0330
0340
0350

** KANSAS CITY 0UTPUT R0UTINE **
** !OUTPUTS THE BYTE IN REGISTER A. **
* N!OTE: FREQUENCY IOF 0UTPUT 0SCILLAT0R
* SH0ULD BE CHANGED T0 4800 HZ F0R
* 0UTPUT FREQUENCIES 0F 2400 AND 1200
* F0R A 1 AND 0 RESPECTIVELY.
0CTIOBER 27" 1976
*
B .. C.
PUSH
MVI
CALL
L00P RRC
CC
CNC
OCR
JNZ
CALL
P0P
0NE
PUSH
MVI
JMP
ZER0 PUSH
MVI
REST CALL
PlOP
RET
C0UT PUSH
IOL01OP IN
ANI
":.
JNZ
""
PlOP
0UT
RET
CASC EQU
CASD EQU
EQU
PSW
EQU
SP

B
C,,8
ZER0

0NE
ZER0
C
L00P
0NE
B
PSW
A" 0
REST
PSW
A,,55H
ClOUT
PSW
PSW
CASC
20H
0L01OP
PSW
CASD
6EH
6FH
6
6

SAVE R£GISTERS
GET BIT CIOUNT.
00 START BIT."
LI00K AT LSB.
IF 1" D0 A 1.
IF 0" 00 A O.
DECREMENT C0UNTER.
00 ALL 8 BITS.
010 TWIO ST0P B11S.
REST0RE B"C.
SAVE REGISTER A.
GET 00000000 PATTERN.
D0 REST 0F IT.
SAVE REGISTER"A.
GET 01010101 PATTERN.
IOUTPUT TIO CASSETTE.
RESTIORE REGISTER A.
RETURN.
SAVE REGISTER A.
READ CASS. STATUS.
LIOIOK AT lOUT RDY BIT.
WAIT TILL READY.
RESTIORE REGISTER A.
0UTPUT TIO CASSETTE.
RETURN FRIOM ClOUT.
CASS STATUS P0RT.
CASS DATA peRT.

1

The frequency of the output oscillator may be changed from
it's normal value of 3000 hz to 4800 hz by putting a resistor
of about 14 kohms in parallel with R6 (27 kobm).

5F40
5F40
5F40
5F40
5F40
5F40
5F40
5F41
5 F43
5F45
5F47
5F4A
5F4C
5F4F
5F51
5F54
5F56
5F59
5F5B
5F5E
5F61
5F62
5F65
5F66
5F67
5 F6 8
5F69
5F6A
5 F6D
5F70
5 F71
5F72
5F73
5F75

C5
OE
3E
D3
CD
E6
CA
FE
CA
FE
CA
FE
CA
C3
SF
C3
37
78
IF

08
10
6E
73
3C
65
3C
65
14
61
28
61
41

0010
0020
0022
0025
0026
0030
0034
0035
0038
0039
0040
0050
0060
0070
0080
0090
0100
0110
0120
0130
0140
0150
0170
0180
0190
0200
0210
0220
0230
0240
0250
0260
0270

5F
5F
5F
5F
5F
5F

66 5F

L17

OD
C2 47 5F
CD 73 5F
78
C1

C9
DB
E6
5F77 C2
5F7A DB
SF7C C9
5F7D
5F7D

6E
10
73 5F
6F

** KANSAS CITY INPUT R0UTINE **
** READS lONE BYTE INT0 REGISTER A. **
* N0TE: IN 0RDER T0 USE THIS R~UTINE~
* MAKE THE CHANGES 0N Y0UR B0ARD

*
*

AS SH0WN IN THE DIAGRAM BEL0W.
PUSH B

BLIN

t-iV I

BLe0P

C~ C

MV I A~ 10H
0UT CASC
CALL CAS IN
ANI 3GB
0f\!E
~Z
CPI 3CH
lONE
JZ
1 L!H
CPI
ZER~
JZ
CPI 28H
ZER0
JZ
BLlf-j

ZER0

A

REST
0NE
REST

CASUJ

0280

0290
0300
0310
0400 CASC
0410 CASD

M~V

RAR
t'i0V
DCR
JNZ
CALL
t'l0V
P0P
RET
IN
ANI
JNZ
IN
RET
EQU
EQU

B~A

C
BL~0P

CASIN

CASC
10H
CASIN
CASD
6Eh
6FH

SAVE B~C.
SET C~UNT=8 BITS.
RESET RECEIVER.
READ A BYTE (BIT).
L00K AT MIDDLE 4 BITS.
IF XXOOOOXX~ BIT=I.
IF XXllllXX~ BIT=I.
IF

XXOI01XX~

BIT=O.

IF

XXIOIOXX~

8IT=0.

MUST BE N~ISE.
CLEAR CARRY.
D0 REST LIKE 0NE.
SET CARRY=l.
GET Rl::SU LT.
SHIFT CARRY INT0 MSB.
PUT RESULT BACK.
D0NE WITH BYTE?
IF N0T~ KEEP READING.
READ AN EXTRA BYTE.
GET RESULT.
REST 0RE B ~ C.
RETURN.
READ CASS STATUS.
L00K AT INPUT BIT.
WAIT TILL READY.
READ DATA BYTE.
RETURN FR0M CAS IN.
STATUS/C0NTR0L P0RT.
DATA P0RT.

?
2

10

3
5

6

Cut the traces going to pine
1 and 2 of Ie 9, install a
74L30 in one of the spare
slots, and make the circuit
look like this.
+5V

11
4

12

lK

4
11

{)...--"1---4
5

2
3

2

4

6

+5V

lK
(--/V'I\M,.

r

TO Ie 35 PI n 13

This change will not
affect the normal operation
at 187 bytes/sec.

5EOO
5EOO
5EOO
5EOO
5EOO
5E03
5E05
5E08
5EOA
5EOD
5EOF
5E12
5E IS
5E17
5EIA
5E 1 C
SElF
5E21
5E24
5E26
5E29
5 E2B
5E2E
5E30
5£33
5E36
5 E36
5E36
5 E36
5E39
5E3A
5E3A
5E3A
5 E3A
5 E3D
5E3F
5E42
5E43
5E44
5E45
5E46
5E49
5E4A
5E4B
5E4C
5E41'"
5E50
5E50
5E50
5E50
5E52
5E54
5E55
5E57
5E58
5E58
5 £58

31
3E
CD
3E
CD
3E
CD
CD
FE
CC
FE
CC
FE
CC
FE
CA
FE
CC
FE
CC
C3

00
OD
58
OA
58
3F
58
64
45
36
43
9F
53
73
4F
7B
49
91'"
4C
9F
00

60
5E
5E
5E
5E
5E
5E
5E
5E
5E
5E
5E

CD 3A 5E
E9

21
OE
CD
29
29
29
29
CD
85
6F
OD
C2
C9

00 00
04
64 5E

50 5E

3F 5E

D6 30
FE OA
D8
D6 07
C9

0005
0010
0015
0016
0020
0034
0036
0038
0040
0042
0043
0050
0060
0070
0080
0090
0100
0110
0120
0130
0140
0150
0160
0170
0200
·6000
6010
6020
6030
6040
7000
7002
7004
7005
7008
7009
7010
7012
7014
7016
7018
7020
7022
7024
7026
7028
7100
7102
7104
7106
7108
7 110
71 12
7114
8000
8002
8004

**** READ-0NLY ~EM0RY PR0GRAM
* rvj~D IF lED F~'R KANSAS-C ITY * ***
*

START L) lIritten on tape ill. an as;Yl1C:J.'on01J.s fOJ"":':at, 'with
one ctEl.J:,t bi t (zero), 8 data bits (?ero or one), and two ~).top
bits (ones). A one is defined as 8 cycles at 2 4 00 hits per
secon.d) allrl H 7;ero is defined as 1+ cycles at 1200 ldt;f.) per
second. J his p1'ovidf's R data transfer cpeed of 300 be.ud, 01.~
a little lCf_~8 than ~O by teD per second, and may be generated
and. decod.ed using a variety of techniques.
1

Since the stnndard is fairly Blow, it suggests that many peoplc
\'IB.n.t to have t\'IO methods available. One that, pro\rides for
the Kaunas City (BYTE!J.Jaucastcr) format, and another tbat is
much faster, to sreod :p:rogram. loadi.ng and developmcnt. The
Tarbell Cassette Interface may f:asily be modified for both
methods.
may

First, ·the output oscillf:-tor frequency \-Jill he.ve to be rai:3ed
frC'Dl 3000 hz to 4800 hz. ~f.1his is because a higher bit density
is requ.ired of the tape, although the actual dattl. transfer l'Hi.;e
is much s10".",e1'. A onc may be generated. by "'1'i tine; a \vord of
all zeroes (00000000), and a zero :may be generated by writing
a ,,,ord of u11;ernating ones and zeroes (01010101). An out])ut;
subroutine converts each byte to be \'lritten in this format from
parallel to serial form (required only for this formt";!.t).
On the input side, the adjustment of the potentiometer (R8)
will have to be cha.ngcd for the higher frequency.. 'rhe syr'.c
detector circ\lit(IC's 9 a.nd 10) will have to be changed so
that it recognizes the al tel"'llEltj.ng bit pattern as a sync byte
in addition to the normal sync byte of E6 (hex). An input
subroutine converts each byte from it's serial form to it's
parallel form (required only for this format).
Using. the method outlined above, the Tarbell Cassette Interface
can be modified so that a double-pole, single-throw switch
will determine which frequency will be used. The software
d.etermines the format. Another alternative is to change to
the higher frequency permanently, so that no switch is
necessary. The disadvantage of this is that you would have
to readjust the potentiometer to read tapes made with the
standard 3000 hz oscillator (187 bytes per second), and that
a slightly higher frequency response is required on the part
of your recorder.
A description of the hardware modifications, and listings
of the subroutines for the operations described above are·
available upon request. Please include a self-addressed
stamped envelope.
4

CASSETTE INTERFACE

F~RTS

LIST

INTEGRATED CIRCUITS
REF NOS
DESCRIPTION

1
2
3

4,,23
6
7.d3" 19 .. 25
8,,29

5
9 .. 31

10
80
21,,27
··-22
26
28
30
32

34
35

QUAD 2-INPUT AND
DUAL J-K FLIP-FLOP
8-BIT SHIFT REGISTER
DUAL TYPE,-D FLIP-FLOP
5-VOLT REGULATOR
QUAD 2-INPUT NA~D ole
DUAL J-}( FLIP-FLOP
DI-DIRECTlONAL O~E-SHOT
HEX I~VERTER

eO. IN?UT

l,,{-\ND

1QIPLE 3-I~PUT AND
HEY INVERTER
5-BIT SHIFT REGISTER
*TIMER
QUAD 2-INPUT NAND
"DUAL 4-INPUT NOR
QUAD EXCLUSIV~-OR
6-BIT COMPARATORS
QUAD LATe H
HEX INVERTER BUFFER OIC

QTY PT NO

+5 GND "5

1

7408~-·

1

7/~73

1
2
1
4

7 'J L 164 -. 14
74 L7,:'''''', 14
UJ309l< 7/103 -1--',' 14

2

7/J

1
2
1

1
1

2
1
1
1
1
1
1
1

1/47

411

L 731
eT20 -

4
16

7
7
7
11

'/'lLO/, -[ 14
7/j L30
14
7 L J l~· 1 Ll

I,

7lJ04 -,
7/)"

l'~

96 -...(.

5

~

8

NE:S55

8

7
7
'/
12
1
7

7/lLOO --

14

7/J25"-

14

7

74LB6--

14

7

01·18131'

16

8

7L,L75 -

5
1'4

12
7

7 /406 -

4

7

-tl-C5"CIO-C15 .1 MFD CAPACITOR
-C6
.02 MFD CAPACITOR
--C7
.033 OH 0039 NF'D CAP,)'C ITOR
,"'C8
*.01 f"oirD CAP/-iC ITOH
'''C9
22 OR 25 MF'D Ct,;PAC ITOR
-C16
2200 PF CAPACITOR
... C17
.01 NFD CAPACITOH
~Rl

-R2
.:.:..R3

-R4
~ R5
- R6
--R7
-R8
-R9

-RIO-RI7
·'CRI
CR2
~ CR3
SI-"
..11 ......--.

PI
PCI --

cst-

2.·4 HO liN RES 1. S'rOR
(RED" YELL(nl" }\F':D )
4.7 KOHN RESISTOR
(YELLOW"VIOLET~nED)
1.5 KOHM RES ISTOR
(BROWN"GHEr~N"RED)
330 OHM nESISTOR
tORANGE"ORANGE"BROWN)
220.0HM RESISTOR lW (RED"RED"BRQWN)
*27 KOHM RESISTOR
(RED"VIOLET"ORANGE)
*APPROX 10 EOHM RES I STon (BRO\JTN"BI...ltC K., ORANGE)
50 EOHM POTENT !Ol'1ETER
100 OHM RES ISTOR
UJHOWN"BU\CK"BRO~N)
1 KOHM RES .tSTOR
CBROWN"BL.AC1{"RED)

IN914 SIGNAL DIODE

IN750 4.7 VOLT ZENEn DIODE
LIGHT-EMITTING DIODE

DIP-SWITCH
DIP-SOCKET
DIP-PL.UG
~2 CASSETTE COAX CABLES
.~ FLAT RIBBON CAl3LE
PRINTED CIRCUIT BOARD
SCOTCH LOW-NOISE CASSETTE
,...." TO-3 I NSULAT ING WAFER.
--- 2 SETS OF 4-40 NUTS" SCREWS" AND WASHtnS

* THE ITEMS MARKED WITH AN ASTERISK ARE MATCHED AND BAGGED SEPARATELY.
741..S MAY BE SUBSTITUTED FOR 741.. SERIES IC'S IN MOST CASES.
5
-

....

•

ASSEMBLY DRAWING
NOTE: 1(5 HAS PIN 1 IN UPPER

RIGHT

REST IN LOWER LEFT.

COMPONENT SIDE

ASSEMBLY INSTRUCTIONS

i.

2.

TAJ{E OUT ALL THE PARTS AND CHECK T11E1-1 AGAINST THE PARTS LIST.
IF THEnE ARE ANY PARTS MI~SING" Dnop US A NOTE" AND WE WILL'
SEND THEM TO YOU.
NOTE TIL~T THE NE555.. 10 I{ (APPROX.) RES ISTOR of
27}{ RESISTOR" AnD .01 HFD CAP/leITOR HHICH ARE PACKAGED IN"THE
SEPERATE BAG N"d~ l-1{~iCHED FOR 1500 HZ {\.ND (lm::l-1ARl\ED UITH
ASTERIS}{S ON THE: PAHTS LIST ~
OTB!:R COI)PON~::NTS USl:W FOR' THESE
\.YILL CAUSE THE OUTPUT TO nUN .l\T Ii. DIFFERENT FHEQUENCY.
"

t, ........# .

USING THE AS5Et"!;:),LY DRI\HING ON PAGE 7" INSERT THE DlSC'~r::TF.
Cor1PON:t::lJT S CBl\G 'HT H Cf,P.'\C ITORS.. rn:s I STOR~~.. LED J' D 1P .-':~ I,; J TCM)
INTO 'fEE TR F'ROPER LOG~:r IO~JS.
ON THE LIGhT'-EIHTl' !JiG D!·nE (LE.D)"
1.. E""'D
GOl;''- T'O '1"l'T'
I~'PS JC:Ton
1"
I:·r'J)"
I,illS
I"F"P
J·~tT';n~"D
L..,..,·'·
TI n~t;..;- RFr.
~/ ..'
I~
~
~
Co
. f . '"'J"'r.
!
Ll~,
~L~
...n.
~,.~r.....
.~ .l..,.:J".JL; • •
OFF THE: LEl'.D.t USE AN om'li:1'1::R TO DETEnllINE HHICll LEtd) GOES TO
THE RESISTOR.
THE lN750 ZE1'JER DlODE (St1f'ILL GLASS'rH:'!ICE)
'-_'
SHOULD BE r-;OUNTED ~1 1.T11 THE LiNE SIDE TO';iI\HD THE U:FT .. · THE
IN914 DIODE (OTHEH St:ll\LL GL1;SS DEVICE) SHOtILDBF. l,;(ll'N'l'ED lHTH,
THE J.. INS S IDE TOiT{~BD THE BOTT 011.
THE ONLY Cl%.?~tC ITOR HEICH'
SHOULD BE OH!r:r,'TED IN 1\ pfl.r~TICULhR DIRECT!ON IS THE FILTER
CAPtlC ITOR C 9" HHICH SHOULD BE NOUl-lTED \;i I'rH 1'Hr~ PLUS SIDE 1'OHARD',
THE LEFT ~ AS l-lAiiJ{SD ON THE BOARD.
THE D]p .. socm;:T S110ULD BE
MOUNTED IN THE J1 POS IT ION" AS IS SHOHN Orr THe: ASSEtJDLY DHMJ ING. ;".,.
J#

.,,;:)

.. . . -

.. _.....

.....

..

' "

,

3.

INSEnj'ALI. THE IlJTEGRATED CIRCUITS (IC'S) (SI,iALL BLACK DEVICES
AND ONE L.AnGE NETAL DEV ICE) , INTO °tHE In - PROPER LOCt.'l' J.ONS AS'
IND I.CtSED BY Tl:E.ASSEEDLY DRP.~J ING AN),) 1'HE PARTS LIST.
NOTE '!'HAT
I(re5-'(8~!;2'O) !SORIEHTED.lJ~T~I ..?Jlt_!, __~!YJ'I:!·;XL.J:~";r~ 17l!EREAS ALL
THE OTHERS ARE ORIENTED iHTHjENTS TO BE
~~DE, AFTER ~HICH THERE NEED NEVER BE ANY MORE.
1.

PUT THE TEST CASSETTE INTO YOUR CASSETTE RECORDER.

2.

IF YOUR RECORDER HAS A TONE CONTROL, TURN IT TO
THE MAXIMUM (BEST HIGH-FREQUENCY RESPONSE) POSITION.

3.

TURN YOUR VOLUME CONTROL TO A t-l1DD1.E POS IT ION.

4.

TURN THE POTENTIOMETER ON THE INTERFACE TO A MIDDLE POSITION.

5.

PRESS THE· "PLAY" BUTTON ON YOUR RECORDER.

6.

IF THE ·LED (RED LIGHT) ON THE INTERFACE DOES NOT CONE
ON AFTER A FEW SECONDS, ADJUST YOUR VOLUME AND THE
INTERFACE POTENT I Ol'mTE.R UNT IL THE LIGHT COMES ON.

7.

IF THE LED STILL DOESN'T COME ON, CHANGE SWITCH #7
(INPUT PHASE REVERSAL) - ON THE D IP-SW ITCH TO THE
OPPOSITE POSITIONI THEN REPEAT STEP 6.

8.

IF THE LED STILL DOESN'T COME ON AFTER ADJUSTING
YOUR VOLUME AND THE INtERFACE POT, SOHETHING IS
WRONG WITH YOUR RECEIVER SECTION.

9.

WHEN THE LED COMES ONE, tHIS INDICATES THAT THE RECEIVER
IS OPERATING PROPERLY, AND IS DETECTING .THE CONTINUOUS STREAM
OF SYNC BYTES WHICH IS ON THE TEST TAPE. FURTHER ADJUST BOTH
THE VOLUt-1E CONTROL AND THE INTERFACE POT SO THAT YOU CAN TURN
. EACH OF THEt-1 FROM S IDE TO S IDE A LITTLE WITHOUT THE LIGHT
GOING OUT. THE LIGHT SHOULD BE VERY STABLE, WITH NO FLICKER.

NOTE:

SINCE THE LED ONLY STAYS ON WHEN IT IS DETECTING
CONTINUOUS SYNC BYTES, IN NORMAL OPERATION (WITH
REAL DATA) IT WILL JUST FLICKER ONCE IN A WHILE.

1.

RUN THE SYNC CODE GENERATOR PROGRAM WITH YOUR RECORDER
IN RECORD MODE, ONTO A BLANK TAPE.
.

2.

TRY THE PROCEDURE ABOVE.
IF THE LIGHT DOES NOT COME ON
CONTINUOUSLY, YOU MAY BE RECORDING AT TOO HIGH OR TOO
LOW A LEVEL. TRY DIFFERENT LEVELS UNTIL YOU FIND THE
BEST PLACE. YOU ALSO MAY BE RECORDING IN THE OPPOSITE
PJIASE.
IF SO, CHANGE THE JUNPER FROM PIN 9 TO PIN 8
ON IC 23.

NOTE:

IF YOU HAVE AN OSCILLOSCOPE, IC 4 PIN 11 SHOULD SHOW
A NICE CLEAN WAVE FORM, WITH ABOUT 25% DUTY CYCLE.
ALTHOUGH THERE MAY BE LONG-TERM ~ITTER, BECAUSE OF THE
FLUTTER AND WOW ON THE CASSETTE RECORDER, FAST ~ITTER
ON THE EDGES OF THE WAVE-FORM SHOULD BE FAIRLY SMALL.
THE LESS THIS HIGH-SPEED JITTER IS, THE MORE TOLERANCE
YOUR INTERFACE WILL HAVE TO TAPE SPEED VARIATIONS.

10

CASSETTE

I~TERFACE

O?ERATI~G

I~STRUCTIONS

TEESE INSTRUCTIO~S PEnTAIN TO OPEqATING THE I~TERFACE WITH
AN ORD INAny ATJD 10 CASSETTE RECORDER, AND ASSm';ETliAT THE
PROPER SOFTWARE (PROG~A~S, SU3~OUTINES) IS IN ThE CO~PUTER
TO COMMUNICATE WITH THE lNTERFACE.
TO

PERFO~M

AN OUTPUT (SAVE, WRITE) OPERATION:

1.

IF YOUH VOLTJr'lE COr:T!WL rAS AN EFFECT ON THE RECORDING
FUr\CT IOr~, F nST TU 11N IT ALL TEE II,TAY DOT.~I\.

2.

GET TO TEE PO a:T H: YOTJ1. PR03RAN HEERE ALL IT TAEES IS
A PUSH OF A BUTTOt~ TO START It(TO TEE CASSETTE OUTPUT ROUT Il\E.

3.

USE FAST-FOR~ARD OR REWIND TO MOVE TO THE DESIRED LOCATION
ON THE CASSETTE TAPE.

4.

START

S.

IF YOUR VOLUt'~E COt~TROL HAS AN EFFECT DURIl\G RECORD., SLO',~LY
INCREASE THE VOLUr-:E UKT IL YOUR INDICATOR ShO't!S A CORRECT
RECORD ING LEVEL.

6.

WAIT FOR ABOUT 5 SECONDS TO RECORD LEADER.

7.

PUSH THE !3UTTOt~ TEAT STARTS THE OUTPUT ROUT INE ON ThE
RECORDER.
(THIS MIGHT BE THE CARRIAGE-RETURN AFTER
"GSAVE" IN BAS IC.,· OR TEE FRONT-PAI,EL "RUN" BUTTOili FOR
STAND-ALONE PROGRAMS.)

8.
.

YOU~

CASSETTE RECORDING.

''''HEN THE PROGRAt1 INDICATES TEAT THE DATA TRANSFER IS
CO~PLETE, STOP YOUR CASSETTE RECORDER.

TO PERFORM AN IKPUT (LOAD., READ) OPERATIOili:
IO~~

1.

BE SURE YOUR VOLur";E COKTROL IS AT ThE POS IT
LEFT IT IN THE ADJUST~E~T PROCEDURE.

2.

GET TO THE POINT IN YOUR PROGRA~ WEERE ALL IT TAhES IS
A PUSH OF A BUTTO~ TO START INTO ThE CASSETTE INPUT ROUTINE.

3.

USE FAST-FORTJJARD OR REtVIt-;D TO 1-lOVE TO THE DES IRED LOCAT ION
ON THE CASSETTE TAPE. THIS SHOULD BE'A FEW SECONDS INTO
THE LEADER OF A PREVIOUS RECORDING.

4.

START YOUR CASSETTE IN THE PLAYBACK NODE.

S.

PRESS THE BUTTON WHICH CAUSES THE INPUT ROUTINE TO START
RUNNING.
lENT -MEI10RY PO lNTER.
REPEAT THE ABOVE OPERATION.
.
.CASSETTE-STATUS--PORT.CASSETTE DATA PORT.

IF YOU HAVE AN IMSAI OR ALTAIR WITH AN OUTPUT PORT ON THE
FRONT PANEL (8 LED'S)" YOU CAN USE-THE BOOTSTRAP PROGRAMFQn TROUBLESHOOTING THE INPUT SECTION WITH THE-FOLLOWING
MODIFICATION: AT
iNSTEAD OF
'SUBSTITUTE- .
.
2FI0
El (FS)
CMA (2F'2Fl1
MOV M"A (77) OUT (03)
2F 12
tNX H (23)
LEOS CFF)

SYNC CODE GENERATOR PROGRAM
THIS PROGRAM MAY SE USED TO GENERATE A CONTlNUOUS STREAM OF
E6 (HEX)" THE SAME AS IS ON THE SUPPLIED CASSETTE. IFYOU
FJND THAT THE RECEIVED STREAM IS INVERTED FROM THE ONE
SUPPLIED" YOU MAY CHANGE THE CIRCUIT SO THAT IC23-8 IS HOOXED
TO THE 74L86 INSTEAD OF IC23-9. THIS WILL MAl\E YOUR -RECORDU~GS
THE SAME PHASE AS MINE.
-.
.
OOOQ
0002
0004
0007
'0009
OOOS

DB
E6
C2
3E
D3
C3

6E
20
00 00
E6
6F
00 00

LOOP IN
ANI
..INZ
MVX

OUT

..1MP
CASe EQU
CASD EQU
END

CASC
20H
LOOP
A"OE6H
CASD
LOOP
6EH
6FH
I AI/" (; rt ;/ i p.' '1

s
12

READ STATUS.
LOOK AT -BIT" 5.
WAIT UNTIL READY..
GET SYlIIC-BYTE._
WRITE IT ONTO' CASSETTE.
- .REPEAT~
STATUS·-PORT.
DATA PORT.

It f): l)if'

rJ'~il/,'"

/7 p.v;-,.J

Y"p

("A~

CASSETTE INTERFACE OUTPUT ROUTINE
THIS PROGRAM WRITES A BLOCH OF MEMORY OUT ONTO CASSETTE TAPE.
THE PROGRAM IS ASSEMBLED TO START AT 3100 (HEX)" BUT MAY BE
REASSEMBLED TO START ANYWHERE. THE BLOCK STARTING ADDRESS IS
LOCATED AT ADDRESS 3104 (HEX). THE BLOCK LENGTH (2 BYTES) IS
LOCATED AT ADDRESS 3107 (HEX). THE PROGRAM WILL WR ITE A "W" ON
THE COMMENT DEVICE WHEN IT IS THROUGH WITH IT'S DATA TRANSFER.
3100
3103
3106
3109
310B
310D
3110
3112
3115
3116
3119
311A
311B
311 C,
311D
311 F
3120
3123
3124
3127
3128
3128
312D
312F
3132
3133
3135
3137
313A
313B
313D
313E
313F
3140
3141
3142
3143

31
21
01
IE
3E
CD
3E
CD
7E
CD
83
5F
23
OB
3E
B8
C2
B9
C2
78
CD
3E
D3
C3
F5
DB
E6
C2
Fl
D3
C9
00
00
00
00
00
00

43
00
00
00
3C
32
E6
32

31
00
20
31
31

32 31

LXI
LXI
LXI
MV I
MVI
CALL
MVI
CALL
LOOP MOV
CALL
AD"D
MOV

U::x

00

DCX
t·;V I
Cr-'lP

SP"STAK
H"O
B,,2000H
E"O
A,,3CH
COUT
A"OE6H
COUT
A"M
COUT
E

E"A
H
B

A"O
B

J~,;Z

LOOP

Cr-;P

C

15 31

JNZ
t-':O 'J

32 31
57
01
2F 31

CALL

LOOP
A"E
COUT

l'WI

AlltW"

15 31

6E
20
33 31
6F

OUT
WA IT Jt-:P
COUT PUSH
CLOP 11\
ANI
JNZ

POP
OUT
RET

1

WAIT
PSW
CASC
20H
CLOP
?SW
CASD

a
a
a
a
a

STAH 0
CASD EQU

6FH

13

SET STACK POINTER.
GET BLOCK ADDRESS.
SET BLOCK LENGTH = 8192.
SET E=O.
GET START BYTE.
OUTPUT START BYTE TO CASSETTE.
GET SYNC BYTE.
OUTPUT SYNC BYTE TO CASSETTE.
GET A DATA BYTE FROM MEMORY.
OUTPUT DATA BYTE TO CASSETTE.
ADD E (CHE.CKSUM) TO A.
PUT NEW CHECKSUM INTO E.
INCREMENT MEMORY POINTER.
DECREMENT COUNTER.
NAKE A=O.
IF B NOT = 0"
REPEAT LOOP.
IF C 1\OT
0"
REPEAT LOOP.
OTEERWISE" GET CHECKSUM
AKD OUTPUT IT.
WRITE "IN" (END OF WRITE).
PRINT ON CONSOLE.
W.AIT HERE WHEN DONE.
SAVE A AND FLAGS.
READ CASSETTE STATUS.
CLEAR ALL BUT BIT 5.
TRY AGAIN IF NOT READY.
RESTORE A AND FLAGS.
OUTPUT DATA TO CASSETTE.
RETURN FROM COUT.

=

CASSETTE INTERFACE INPUT ROUTINE
TH I S PEOGRAt1 READS A BLOC K OF BYTES FRON CASSETTE INTO MEMORY.
TEE p?OGp.Ar~ IS ASSEMBLED TO START AT 3100 (HEX) .. BUT l'lAY BE
REASSEr'lBLED TO START ANYHHERE .. ALTHOUGH CARE SHOULD BE TAKEN
TO H:SU?E T EAT THE DATA IT IS READ ING DOES NOT WR ITE OVER THE
Pl-10G"lAIJ ITSELF.
THIS Iv1AY BE ACCOMPLISHED BY LOCATING THE
P~OG2AV IMMEDIATELY BELOW OR A BLOCK LENGTH ABOVE THE DATA
TO BE ~EAD IN. THE STARTING ADDRESS FOR THE BLOCK IS LOCATED
n: ADDEESS 3185 (HEX). THE BLOCK LENGTH IS LOCATED IN ADDRESS
31fj8 (HEY) (TWO BYTES).
3180
31 E'2
3184
31 fn
3lt;A

3I8C
318E
3190
3193
3195
3196
3197
3198
3'199
319A
319C
319D
31AO
31Al
31A4
31A6
31A8
31AB
31AD
31AE
3lBO
31B3

31B5
31B7

3E 10
D3 6E
21 00 00
1 1 00 20
06 00
D3 6E
E6 10
(,
C2 8C 31
DB 6F
77
80
L17

23
13

3E
BA
C2
BB
C2
DB
E6
C2
DB
B8
3E
C2
C6
D3
C3

00
8C 31
8C 31
6E
10
A4 31
6F
45
B5 31
02
01
B7 31

MVI
OUT
LXI
LXI
HVI

LOOP IN
ANI
JNZ

IN
MOV
ADD
Ivl0V
INX
DCX

A .. IOH
CASC
H.. O
D.. 2000H
B .. O
CASC
10H
LOOP
CASD

M.. A
B

B .. A
H
D

tWI

A .. O

CI-1P

D

JNZ

LOOP

CNP

E

JNZ

LOOP
CASC
10H
CHEK
CASD

CHE}( IN
AIva
JNZ

IN
CEP
MVI

B
A .... E ..

JI,}Z

ADI
ERR OUT
END
Jt':P
CASC EQU
GASD EQU
C:=l.TD EQU

2
CRTD
END
6EH
6FH
OIH

14

SET BIT 4 OF A=l.
RESET INTERFACE.
GET STARTING ADDRESS.
GET BLOCK LENGTH.
SET CHECKSUl·1 = o.
READ CASSETTE STATUS.
LOOK AT BIT 4.
WAIT IF NOT READY~
READ DATA FRON CASSETTE.
PUT DATA INTO MEMORY.
ADD CHEC l'~SUM TO A.
PUT IT BACK IN B.
INCREMENT MEMORY POINTER.
DECREMENT COU~TER.
CLEAR A.
IF D NOT
0 ..
READ EORE.
IF E NOT = 0 ..
READ hORE.
READ STATUS.
LO 0 K AT BIT 4.
WAIT IF NOT READY.
READ CHECI/~SU~; .•
COfiiPARE TO B.
PUT CODE FOR "E" IN A.
IF ChECKSUMS NOT EQUAL .. ERROR.
ADD A 2 TO IvlAKE "G" IF EQUAL.
PH INT "E" FOR "G".
WAIT HERE WHEN DONE.
CASSETTE STATUS/CONTROL PORT.
CASSETTE DATA PORT.
CONSOLE DATA PORT.

=

I REM
THIS PR0GRAM SHewS H0W T0 SAVE DATA INT0 A CASSETTE
2 REM
AND L0AD IT BACK INT0 MEM0RY FR0M A PR0GRAM RUNNING
3 REM
UNDER 8K BASIC 3.1.
IT ALL0WS Y0U TI ENTER LINES IF
4 REM
TEXT FR0M THE CINSeLE KEYBeARD4I SAVE THEM 0N CASSET'l'E4I
5 REM
L0AD THEM BACK INT0 MEM0RY4I AND PRINT THEM.
10 CLEAR 3000:L=50:DIM AS(50):REM RESERVE F0R UP T0 50 LINES.
20 CC=IIO:CD=lll:REM CASSETTE C0NTReL AND DATA P0RT NUMBERS.
30 TS=ttX":REM END-eF-FILE CHARACTER.
40 D=100
100 INPUT "C0MMAND"JCS
110 IF CS="ENTER" THEN 1000
120 IF CS ="PH INT" THEN 2000
130 IF CS="SAVE" THEN 3000
140 IF CS="GET" THEN 4000
900 PRINT" INVALID C0MMAND." :GBT0 100
1000 REM ENTER TEXT FR0M THE C0NS0LE KEYBeARD
1020 FeR N=l 10 L:REM ENTER A MAXIMUM 0F L LINES.
1030 INPUT BS:REM READ A LINE FReM KEY80ARD.
1040 IF BS="X'* THEN 1070lREM A I TERMINATES THE INPUT.
1050 AS(N)-BS:NEXT N:REM PUT LINE INT0 BUFFER.
1070 N=N-1aG0T0 100:REM N=THE NUMBER 0F LINES ENTERED.
2000 REM PRINT THE BUFFER AREA eN THE ceNS0LE.
2010 F0R I-I T0 N:PRINT AS(I).NEXT 1:G0T0 100
3000 REM SAVE THE BUFFER eNT0 CASSETTE TAPE.
3010 SS=CHRS(195)+CHRS(230).REM SS-START & SYNC BYTES.
3019 REM CHANGE THE C0NS0LE 0UTPUT RIUTINE F0R CASSETTE.
3020 P0KE 12304lCC:P0KE 12324132:peKE 1238"CD
3030 F0R I-I T0 N
3040 F0R K-l T0 D:NEXT KaREM DELAY F0R C0UNT 0F D.
30508S=SS+AS(I)IREM H00K START & SYNC BYTES T0 LINE.
3060 PRINT 8S:REM WRITE LINE 0NT0 CASSETTE.
3070 NEXT I
3080 BS-SS+TSIREM H00K START & SYNC BYTES T0 TERMINATIR.
3085 F0R K-I T0 DINEXT K:REM DELAY F0R C0UNT 0F D.
3090 PRINT BS:REM WRITE THE END-0F-FILE MARK.
3099 REM CHANGE C0NS0LE R0UTINE BACK TI N0RMAL.
3100 P0KE 12304l0aP0KE 1232,,128aP0KE l238,,1
3110 G0T0 100
4000 REM GET TEXT FR0M CASSETTE AND PUT INT0 BUFFER.
4010 REM CHANGE C0NS0LE INPUT R0UTINE FeR CASSE'l'TE.
4011 peKE 1241 "CC :P0KE 124341 16·sPlKE 1248"CD sPIKE 1232~0
4012 P0KE 123841255
4020 F0R 1=1 Te L
4030 0UT CC,,16aREM RESET CASSETTE INPUT SEcTteN.
4040 INPUT BS:REM READ A LINE 0F TEXT FR0M CASSETTE.
4050 IF BS-TS THEN 4080
4060 AS(I)-BS
4010 NEXT 1
4080 N-J-1
4090 REM CHANGE CINS0L! R8UT INE BACK T8 NIRMAL.
4091 PIKE 1241410 'PIKE 1243~ IIPllCE 1248~ IIPll IS CONNECTED THROUGH A RESISTOR DIVIDER
AND A lN914 DIODE TO ONE OF THE COMPARlTOR outPUTS (IC 5 PIN 9).
THIS PROVIDES A SMALL AMOUNT OF HYSTERESIS TO COMBAT NOISE
PROBLEMS. THE OTHER OUTPUT OF THE COMPARITOR (IC 5 PIN 1)
IS EXCLUSIVE-ORED WITH SWITCH 7 ON THE DIP-SWITCH TO PROVIDE
A WAT TO INVERT THE INPUT DATA STREAM. 1H1S IS THEN FED TO
A D-TYPE FLIP-FLOP (IC 4 PIN 12).
MEANWHILEI INSIDE IC 5~ THE OUTPUTS OF THE COMPARITOR SECTION ARE
FED TO AN EDGE-DETECTOR~ WHICH DETECTS BOTH POS1TIVE AND NEGATIVEGOING TRANSITIONS. THE OUTPUT O~ THIS DETECTOR IS THEN USED TO
TRIGGER A STABLE NON-RETRIGGERABLE OSE-SHOT. THE CAPACITOR FOR
THIS ONE-SHOT IS BETVEEN PINS 12 AND 1~ OF IC 5, AND THE RESISTOR
15 THE 50 KOHM POTENT IOMETER. TH£ OUTPUT OF THE ONE-SHOT IS THE
RECOVERED CLOCK (IC 5 PINS 10 AND 11). TiUS IS FED TO THREE
DIFFERENT PLACES. 1) IC 4 PIN 11, WHERE IT TRIGGERS THE FLIP-FLOP
TO RECOVER THE SERIAL DATA STREAM" 2) IC 3 PIN 8 WHERE IT IS
USED TO SHIFT THE SERIAL-PARALLEL SHIFt-REGISTER" 3) lC 29 PIN
1 AND IC 26 PIN 13, WHERE IT IS USED TO STEP THE 8 COUNTER.
IN A START-UP POSITION, IC 29 PIN 12 IS ZERO, HAVING BEEN RESET
EITHER BY THE RESET SWITCH.OR BY A RESET COMMAND FROM THE PROGRAM.
THIS STOPS THE CLOCK FROM TRIGGERING THE 8 COUNTER, WHICH HAS
ALSO BEEN RESET. AS THE SERIAL STREAM FLOWS THROUGH THE SHIFTREa ISTER (IC 3), IT IS CONT lNUALLY INSPli:C'TED BY THE SYNC DECODER
MADE UP OF IC' S 9 AND 10. WHENEVER A SYNC CODE APPEARS IN THE
SHIFT REGISTEft, IC 10 PI~ 8 GOES LOW. THIS LIGHTS THE SYNC LED
AND ALSO ALLOWS THE FLIP-FLOP AT IC~9 PIN 12 TO GO HIGH. THIS
ALLOWS THE CLOCK TO APPEAR AT IC 26 PIN II, AND TRIGGER THE 8
COUNTER. WHEN THE COUNTER HAS COUNTEO TO-8,'IC 8 PIN 12 GOES
HIGH" TRIGGERING THE READY tLIP-FLOP AT IC 8 PIN 9. TIUSREADY
CONDITION INDICATES TO THE COMPUTER THAT THERE IS A BYTE IN THE
SHIFT REG ISTER READY TO READ. THE COMPUTER MAY TIi£N READ THIS
BYTE THROUGH GATES OF 1C'S 13 AND 19.
IN ORDER ,TO READ DATA THE SIGNAL AT POINT B, WHICH COMES FROM
THE OUTPUT SECTION IS ANDED WITH THE TWO INPUT GATE SIGNALS
POBIN AND SINP (IC 14 PINS 13, 1 AND 2). WHEN ADDRESS BIT 0
IS HIGH, THIS SIGNAL IS AND ED WITH IT TO GATE DATA FROM THE
SHIFT REGISTER ONTO THE INPUT DATA BUS (ICI PIlJ 3). WHEN
~DRESS BIT 0 IS LOW, THtS SIGNAL 15 ANnED WITH IT TO GATE
VARIOUS STATUS BITS ONTO THE INPUT DATA BUS. FOOR OF THESE
INPUTS ARE GENERAL-PURPOSE, AND COME' FROM THE DIP-SOCKET. THE
OTHERS ARE PICKED UP AT IC 25 PIN 3 (INPUT STATUS', AND 1C 25
PIN 6 (OUTPUT STATUS).

18

tI,

•

'L
() J2'

"

•tJ.

6

.sv

t.3S

•

14

~v

(.&1

C

UtI~

c•

2 )28

,.

~S'
It'-

51 ,I

(/-5

F

.. (/0-,.

OJ

GNO
~

(lOCI)

,.

IS

..

~:~
• ~
21
I
~
'J
I

A

•

" "0.

'

71

lleH
C

~"

IC

G.

0
I

tJ

I

..O.

0"

51

• ~

I

~..:'"

R".
lie

I CJ(

H"
C
•

27
A

•

I

I~

0-

J

--+---~-o

tal

0

f

'I

'1

c.J

6-'

(D)A7
(.)AB
Pt)~

(lWA4
·CtI)

A3

fII)A2

tn')Ptiii

..."
.,
.., . .

II

..

"

"
5

~

.,

.,

.!-",., .!...-..
" M.!.-.

TI..!.-..!7..

72 . '

"
,. I.
n "

I
T. ilO
-'!' .,... wr ~

1/

'\.

"'--+-_/-t2r;-Ql~'~_ _~

23

.a

~
II

•

'uo

SERIAL 04 TA

• _ (l).30)>=----iVV''-"-.....--~-----+ JI-IO

I.

1 _~~/3

TO CASSETTE

1..-......

Itll

•

-

.

,

10

004
006
0') D05 (.to) 007
61)
c,o)

GENERAL - PURPOSE
CONTROL LINES
JI -8 -7 -6-5

1"1'

8

..
DOJ

(JS'
001'
C8I)

002

.L-

••• ..!..-

,

~~ 2 3 ~li-=8:-.-_---.... . . _,

c.

,.• ..L-

C•

-~

I

"

D02
0. 001 . , 003.

J 0
C

aA

,
D~

~.
,

O.

0-

WRITE PHASE
SELECT AT TEST

]I

It"
II(

It,l

~

IK

~

10

t

0

2'.
~~
JS

~
~

-----2

10

'

~,

004 ...
().,

CASSETTE

INTERFACE

IQ..!!.

"•

.~-

lilt'

... IOK

22

~

10
~

•

40
•

J

•

IfESIT

-.! OISCM

4IQ"

~

1

09)AO.-,------------------------.-----~--+

2D

')0

_)SOUT+---------------------------~

I

~'~~
34
J'

2 '0

·1

_It'

"1(

,

~

--If-'''

•

I

•

~

•

u-'

DOtl

•
OUTPUT

If_

our

1Jt1G

GI'C)

~

I

'"

$C'
Al

I)

-MATCHED PARTS
SEE INSTRUCTIONS

r 1'2..

91,.

~

" -,.cx
~~

A

SECTION

-~

-0 'P

(95)

(tty)

m(b GIl

PD BIN
(711)

'¥B-l

-

A(/)
(751

(Ill)

DI2

DI3

/4

.L

crt-

SINp"(46)

(41)

J

7)

f'....

~

..."

{

0"

11

~

~

17-

17

....
2 1 13

.......

5

12.

....)

8
("')

~ 7

4 ~

-9

~6
I J

o :::

,

p.-_/~3 9. ..,../2

5-

11
~,

\

-2

-3

4\

JI-I

."

1f,;TATUS

2
3
!i

10

9~ 8
l?'

~

-4

~------~-+~------------------~~~ 8

~--------~~~~------------~--~~~JJ~-1/
5~ 5

GENERAL - PURPCSE

-t5V

r>.

LINES

.3"
~
:2
~------------~~~~~-+----~~~--------~4

.AAA.

N

o

SERIAL DATA

FROM

C6

5

+~--~~~~\I

CASSEITE JI-15

J

>

R9 ~

.~~

..l...

Cl6

::r:

100 ~ .lX122

~

8T2O

.A

9

P

/III

"lol''S

-5

CLF«

4

J

~

__________________________T_·/kA-__+I____+-~__________-._________c>_

~!~

....

~7. CR2

,~

IN

~

~

750

+--r-..

-16 V•.I _ _ _ _ _. .

-=

(~'

A <:_>-__....;9~

~
J

Q 12

~C
n 1
26

_

~J

Q~

,~

I~~
""" J

'CK"o>

~ CK(J)

L~ CK(\J

K(\J

!!KC\I

--K

""-PrL2

-,CjL.
0

Itr,......--

Q~ "'""iJ
I

....,C,a..
2

a...'2--+---t

r~~9
"7

r-=

t-,C,.e..,

.....,Cr--

~K

2

K

~

8

(7!0

INPUT SECTION

.: -

~ C;rq,

~T~~.________~ro~)L-_,~j~------~---------------+-------4------~~--~~-~

CASSETTE hVTERFACE

J

L..! CKa>

5

C

GA. S5 E: TT E:

I't I
'~2

P,., II

CLOCI<-(PZN i~,

)

1

I

INTtE'R'fA

1

I

~

I

0

I

,

.1

I

0

I

1

r

1

I

I"

t ~

I

c>

I

1

IJ r

Lr1Sl--~L-n--r-1

L

L
~

J"1

..

,-

N

... ebG~ DeTECToR' oU1'PUT

)( _.!....-~...1--~-'----L
!. I i I

_____

I 1 i"__i._._J-..~.
i \ \:1_____ 1"I ___
-'--~I---'!_-.J.-

l'
. __

1_____

I
:;_ _
! ;
1 __

~u--rJl.Jr--u1JtJL_rl~~u__u

I

CASSETTE INTERFACE PIN FUNCTIONS
Jl CDIP SOCKET)
1

2
3
4
5
6

7
8

GP
GP
GP
GP
GP
GP
GP
GP

NOTES:

STATUS IN BIT 0
STATUS IN BIT 1
STATUS IN BIT 2
STATUS IN BIT 3
CONTROL OUT BIT
CONTROL OUT BIT
CONTROL OUT BIT
CONTROL OUT BIT

3
2
1
0

16
15
14
13
12
11
10
9

GROUND
DATA FROM CASSETTE
SPARE
SPARE
+5 VOLTS
SPARE
DATA TO CASSETTE
GROUND

GP STANDS FOR GENERAL-PURPOSE
DATA FRO~ CASSETTE SHOULD BE CONNECTED TO EARPHONE ~ACK
DATA TO CASSETTE SHOULD BE CONNECTED TO AUXILLIARY ~ACK.
IF MIKE JACE IS USED" OR IF THE RECORDER ONLY OPERATES WITH
AUT a r-jAT IC VOLUIvIE CONTROL ON RECORD., THEN DIV IDER RES ISTORS
MAY HAVE TO BE CHANGED FOR THE PROPER RECORD1NG LEVEL.
THE DIVIDER RESISTORS ARE RIO AND Rll.

P2 C8800 BUS PINS)
1

29
30
31
35
36
38
39
40
41
42
43
45
46
50
51
52
75
77
78
79
81
82
83
88
89
90
91
92
93
94
95
100

+8V
ADDRESS LINE #5
ADDRESS LINE 64
ADDRESS LINE #3
DATA OUT LINE #1
DATA OUT LINE #0
DATA OUT LINE #4
DATA OUT LINE #5
DATA OUT LINE 16
DATA IN LINE #2
DATA IN LINE #3
DATA IN LINE 17
OUT
INP
GROUND
+8V
-16V
RESET-NOT
WRITE-NOT
DATA BUS", IN
ADDRESS LINE 10
ADDRESS LINE 12
ADDRESS LINE 16
ADDRESS LINE 17
DATA OUT LINE 12
DATA OUT LINE 13
DATA OUT LINE 17
DATA IN LINE 14
DATA IN LINE IS
DATA IN LINE 16
DATA IN LINE 11
DATA IN LINE 10
GROUND

22

IF YOU CANNOT MAKE AT LEAST TEN 8K-BYTE TRANSFERS WITH NO ERRORS,
YOU HAVE A PROBLEM, AND THE ITEMS BELOW MAY 8E OF SOME HELP:
1.

CHECK TO MAKE SURE THAT ALL THE COMPONENTS AND JUMPERS ARE
IN THEIR PROPER LOCATIONS I AND THAT THEY ARE ORIENTED AS
SHOW'N IN THE ASSENBLY DRAWING.

2.

MAKE SURE THAT THE BOARD IS CLEAN, ESPECIALLY THAT THERE
IS NO FLUX RESIDUE BETWEEN IC PINS OR OTHER CLOSE LINES.

3.

DEMAGNETIZE AND CLEAN THE RECORD/PLAYBACK HEAD ON YOUR RECORDER.

4.

WHEN YOU PLUG IN THE BOARD, BE SURE THAT THE PINS ON
THE BOARD EDGE CONNECTOR LINE UP WITH THE PINS IN THE
MOTHERBOARD CONNECTOR.

5.

HAVE YOU TRIED BOTH PHASES WITH THE PHASE SWITCH, AND
ARE THE OTHER SETTINGS ON THE DIP-SWITCH CORRECT?

6.

YOU SHOULD BE ABLE TO ADJUST THE VOLUME ON YOUR RECORDER BY ABOUT
50% DURING PLAYBACKI AND STILL HAVE THE SYNC LIGHT LIT WHEN READING
THE SYNC STREAM.
IF IT DOESN'T LIGHT AT ALL, THERE IS PROBABLY
SOME GROSS PROBLEM ON THE BOA~DI SUCH AS A BAD PLATED THROUGH HOLEI
A SOLDER BRIDGEI OR A BAD INTEGRATED CIRCUIT.
IF YOU ARE USING' A
TAPE DECK THAT HAS ONLY A PREAMP, YOU MAY NEED TO ADD AN EXTRA
STAGE OF AMPLIFICATION IN ONE OF THE EXTRA IC SLOTS.
'

7.

IF YOU HAVE AN OSC I LLOSCOPEI THE BEST PLACE TO LOOK
TO SEE HOW THE RECEIVER INPUT SECTION IS OPERATING IS AT
IC 4, PIN 11. THIS SIGNAL SHOULD BE FAIRLY CLEANI WITH
SOME OVERALL JITTERI DUE TO THE TAPE WOW AND FLUTTERI AND
SOME HIGH-SPEED JITTER ON THE EDGE OF THE WAVEFORM.
IT IS
THIS HIGH-SPEED JITTER THAT YOU SHOULD TRY TO MAKE A MINIMUM.

8.

IF YOU HAVE A VIDEO INTERFACEI OR OTHER SOURCE OF HIGH-FREQUENCY
,NOISE, TRY LOCATING IT FURTHER AWAY FROM THE CASSETTE INTERFACE.

9.

ARE YOU SURE THAT YOUR-RECORDER HAS A FREQUENCY RESPONSE TO 8KHZ?

10. HAVE YOU USED THE PROPER VOLTAGE DIVIDER (RIOI Rll> FOR
YOUR PARTICULAR RECORDER? IF YOU ARE ABLE TO RECOVER
THE SYNC STREAM I WROTE SATISFACTORILYI BUT ARE HAVING
TROUBLE WITH RECORDINGS YOU MAKE YOURSELFI THE LEVEL
GOING FROM THE INTERFACE TO THE RECORDER ~~Y BE TOO
HIGH OR TOO LOWI ESPECIALLY IF YOU HAVE AUTOMATIC LEVEL
C-ONTROL. YOU MAY ALSO WANT TO TRY OPERAT ING WITHOUT C 15.
11. HAVE YOU CHECKED YOUR +5 VOLT POWER? TOO MANY BOARDS IN YOUR
COMPUTER COULD INTRODUCE RIPPLE ON THIS SUPPLY.
12. DON'T USE DIGITALLY CERTIFIED TAPE, ONLY AUDIO LOW-NOISE TAPE.
13. IF YOUR RECORDER HAS AN INTERNAL MICROPHONEI BE SURE IT IS NOT
ACTIVE WHILE YOU ARE MAKING A RECORDING (THE J.C. PENNY HAS A
SWITCH ON THE TONE CONTROL WHICH CUTS OFF THE INTERNAL MIe).
14. IF YOU STILL HAVE PROBLEMSI PLEASE RETURN THE UNIT, PREFERABLY
WITH YOUR CASSETTE RECORQER, AND I WILL GET IT OPERATING PERFECTLY
WITHOUT CHARGE. THE REPAIR TURNAROUND TIME IS 1 TO 3 WEE-J(S.
15. IF YOU ARE COMPLETELY DISSATISFIED, YOU MAY RETURN THE INTERFACE
FOR A COMPLETE REFUND WITHIN 90 DAYS AFTER YOU ACCEPTED DELIVERY.

23

IDEAS FOR USING THE CASSETTE INTERFACE
SAVING AND LOADING PROGRAMS
PROGRAMS MAY BE TOGGLED INTO MEMORY~ LOADED FROM PAPER TAPE~ OR
LOADED BY SOME OTHER MEANS. THEY HAY THEN BE DUMPED ONTO CASSETTE
USING THE CASSETTE OUTPUT ROUTINE. THE OUTPUT ROUTINE ITSELF MAY
BE DUMPED ALONG WITH THE OTHER PROGRAM~ SO THAT IT VILL-BEAVAI1..ABLE
LATER FOR FURTHER DUMPS. ROUTINES HAY THEN at LOADED FRO~ CASSEtTE~
MODIFIED, AND DUMPED BACK OUT TO CASSETTE IN A CONTINUOUS PROCESS OF
DEVELOPMENT.
"
US ING A BACKUP
A BACKUP IS A METHOD OF MAKING SURE THAT VALUABLE PROGRAMS OR
DATA IS NOT LOST. ONE SIMPLE WAY OF ~OV IDING A BACKUP IS TO
RECORD A PARTICULAR PROGRAM IN TWO DIFFERENT PLACES O~ THE SAME
TAPE~ OR ON TWO DIFFERENT TAPES.
YOU MAY WANT TO GO BACK AND
FORTH BETWEEN THE TWO COPIES, EACH TIME THE PROGRAM IS CHANGED.
IN THIS WAY~ YOU ALWAYS HAVE A COPY OF THE LAST PROGRAM~ AND
ONLY THE MOST RECENT CHANGES ARE LOST IF A POWER FAILURE OR
OTHER EQUIPMENT TROUBLE DEVELOPS DURING THE PROCESS OF SAVING.
STARTING AND STOPPING AUTOMATICALLY
MOST AUDIO CASSETTE RECORDERS HAVE AN INPUT LABELED "REMOTE".
THIS IS NORMALLY OPERATED FROM A SWITCH ON THtMICROPHONE"sO
THAT THE RECORDER CAN BE STARTED AND STOPPED-WHILE DICTATING.
THIS INPUT CAN BE USED TO START AND STOP THE RECORDER UND£R .
PROGRAM CONTROL FROM THE COMPUTER. ONE OF THE 4 EXTRA CONTROL
LINES COMING FROM THE CASSETTE INTERFACE (DIP-SOCkET PINS 5" 6"
7" DRS) CAN BE USED TO DRIVE A RELAY WHICH WOULD HAVE ITS
CONTACTS CONNECTED TO THE RECORDER REMOTE ~ACK. THI MAlN
REQUIREMENTS ARE THAT THE 40 MA AVAILABLE FROM" THE CONTROL LINE
BE ABLE TO DRIVE THE RELAY" AND THAT tHE RELAY CONTACTS ARE ABLE
TO HANDLE THE CURRENT INTO THE REMOTE JACK" VHICH CAN BE' AS HIGH
AS ONE AMPERE.
OPERATING WITH MORE THAN ONE CASSETTE RECORDER
SOMETIMES IT IS DEsIREABLE TO OPERATE WITH TWO OR MORE CASSETTE
UNITS. WITH THE TARBELL CASSETTE UITERFACE" IT 15 ALREADYPOSSIBLE TO READ FROM ONE CASSETTE RECORDER" WHILE WRITING 0111'0
ANOTHER. THIS IS BECAUSE THE INPUT AND OUTPUT SECT IONS ARE
ENT IRELY INDEPENDENT" .aJD MAY BE PROGRAMMED sEPERATELY. 'I,. IT
IS DESIRED TO READ FROM ONE OF TWO UNITS" AND VRITE ONTO A80tHlR"
SUCH AS DURING A MERGING OPERATION" RELAYS MAY aE USED TO'SWltCH"
BACK AND FORTH BETWEEN THE TWO INPUT UNITS" ONDER CONTROL OF 'aNt
OF THE 4 CONTROL LINES. IF" HOWEVER" If 15 NEC£ssARY TO READ -SIMULTANEOUSLY FROM TWO DIFFERENT UNITS~ OR WRITE DIFFERENT'
INFORMATION ONTO TWO UNITS AT THE SAME TIME" 11 VILL'SE MECESSARY
TO HAVE TWO CASSETTE INTERFACES.
"---

24

MOD IF ICAT IONS ON CASSETTE BASIC FOR CSAVE AND CLOAD
USING TARBELL CASSETTE INTERFACE
8K BASIC 3.2

12K BAS IC 3.2

ADDR OLD NEW

AOOR OLD NETJ

1008
1009
100A
100B
100C
1000
100E
100F

06
E6
01
C2
07
10
DB
07

6E
E6
10
C2
07
10
DB
6F

155A
155B
155C
1550
lS5E
155F
1560
1561

06
E6
01
C2
59
15
DB
07

6E
E6
10
C2
59
15
DB
6F

1016
1017
1018
1019
lOlA
101B
10lC
1010
101E
101F
1020
1021
1022
1023
1024
1025

06
E6
80
C2
15
10
F1
03
07
C9
£5
3£
03
CD
14
10

6£
E6
20
C2
15
10
Fl
D3
6,.
C9
E5
CD
14
10
3E
E6

1568
1569
156A
156B
156C
1560
156E
156F
1570
1571
1572
1573
1574
1575
1576
1577

06
E6
80
C2
67
15
Fl
D3
07
C9
E5
3E
D3
CD
66
15

6E
E6
20
G2
67
15
Fl
03
6F
C9
E5
CO
66
15
3E
E6

1053
1054
1055
1056
1057
1058
1059
105A
105B
105C
1050

06
03
CD
07
10
D6
03
C2
A3
10
05
C2

3£
10
D3
6E
00
00
00
00
00
00
00
00
00
00

15A5
15A6
15A7
15A8
15A9
15AA
15AB
15AC
15AD
15AE
15AF
15BO
15Bl
15B2

06
03
CD
59
15
D6
03
C2
A5
15

3E
10
D3
6E
00
00
00
00
00
00
00
00
00
00

lOSE
105F
1060

AS
19

as

C2
A7
15

o IS K BAS IC
AOOR OLO NEW

25

OE58 06
OES9 D2
OESA FA
OESB 67
OE5C OE
OE5D 78
OE5E CO
OESF FA
OE60
10
OE61
CO
OE62 FA
OE63
10
OE64 C3
OE65 74
OE66 OE
OE67 DE
OE68 OLl
OE69 CO
OE6A FO
OE6B
10
OE6C B8
OE6D C2
OE6E 67
OE6F OE
OE70 00
OE7!
C2
OE72 69
OE73 OE
OE74 F7

FA
67
OE
3E
19
CD
FO
10
2F
CO
FD
10
G3
74
OE
3E
10
03
6E
00
00
00
00
00
00
00
00
00
F7

10FO
IDFI
10F2
10F3
10F4
10F5
10F6
10F7
10T8

OB
6E
E6
10
C2
Fa
10
DB
6,.

DB
06
E6
01
C2
Fa
10
DB
07

AOOR OLO NE\.]
10FE
IDFF
1EOO
1EOl
lE02
1E03
lE04
lE05
1E06
lE07·
lE08
lE09
IEOA
1EOB
1EOC
1EOO
1EOE
IEOF
1E10
lEll
1E12
lE13
1E14
lEIS
lE16
1E17
lE18

OB
06
E6
80
C2
FE
ID
Fl
D3
07
C9
06
01
FE
2E
CA
12
OE
E5
3E
D3
CO
FO
10
CD
FA
ID

OB
6E
E6
20
C2
FE
10
Fl
03
6F
C9
06

lE48
lE49
lE4A
lE4B
lE4C
1E4D
lE4E
lE4F
1E50
lE51
lE52
lE53
lE54
lES5

06
03
CD
FO
10
06
03
C2
48
IE
05
C2
4A
IE

3E
10
D3
6E
00
00
00
00
00
00
00
00
00
00

01

FE
2E
CA
12
OE
E5
GO
FO
ID
3E
E6
CO
FD
ID

PROCESSOH TECHNOLOGY SOFTWARE PACKAGE #1
Modified for Low Memory and Cassette by Fred Clark,
Modified for Tarbell Cassette by Don Tarbell.
The main purpose of this software is to allow development of assemblylanguage programs. Programs may be entered from the keyboard in standard
assembly-language format, edited, assembled, and saved on cassette in
either source or machine format. These programs may be then loaded back
into memory at some future time for listing, editing or running. Following
is a summary of the commands. All address and byte information is in hex.
FILE /NAME/ AAAA

-Creates a file of name NAME at address AAAA (hex).
Up to six text files can be in memory at the same
.. time. The file just created is the current file.
-This command deletes the file named NAME.
FILE /NAME/ 0
-Makes the named file the current file.
FILE /NAME/
FILE
-Prints the starting and ending addresses of the
current file, and it's name.
FILES
-Lists the name, starting & ending address for each
of the files in the system. Current file at top.
DUMP SSSS EEEE
-Dumps the contents of memory from SSSS to EEEE.
EXEC AAAA
-Executes the machine-language program at address AAAA.
-Searches the cassette for named file, loads and exec.
EXEC /NAME/
ENTR AAAA
-Enter data into memory: B1 B2 B3 B4/
LIST NNNN
-Lists the current file starting at line NNNN.
DELT NNNN MMMM
-Deletes lines NNNN through MMMM from current file.
NNNN (text entered) -Enter a line of text into the current file. Always
use 4 decimal digits. It works similar to BASIC,
in that the numbered lines are ordered automatically.
ASSM AAAA
-Assembles current file into address AAAA.
ASSM AAAA BBBB
-Assembles at address AAAA, but puts code at BBBB.
CUST
-Execute a customer (user) routine at address EGOO.
SFIL
-Save the current file on cassette.
-Load the current file from cassette. The name of
LFIL
the file on tape must match the name of the current
file. Be sure there is enough room in memory.
CFlL
-Check a cassette file written with the SFIL command
above, for errors, without overwriting current file.
AFIL
-Append a file from cassette to the current file.
SAVE SSSS EEEE
-Save a block of memory from SSSS to EEEE on cassette.
LOAD SSSS
-Load a block of memory from cassette starting at SSSS.
CHEK SSSS
-Check a cassette file written with SAVE command.
NAME /NAME!
-Rename the current file to NAME.
RNUM N
-Renumber the cureent file by increment N.
NLIS NNNN
~ists the current file at NNNN without line numbers.
This software is useful, but may not be completely free of bugs. It
loads into the first 4096 bytes of memory, and uses about 2048 bytes
following, for tables and scratch pad. Ctl-C escapes from any printing.
Ctl-V freezes printing until another character is typed. The package
is available from Tarbell Electronics for the prices listed below:
Cassette Tape with software and instructions:
A reassembled and patched (updated) listing:

26

#5.00
15.00

WRITING PROGRAMS FOR THE CASSETTE INTERFACE
SOMETIMES IT IS NECESSARY TO WRITE ASSEMBLY OR MACHINE LANGUAGE
PROGRAMS FOR A PARTICULAR INTERFACE. THE CLASS OF PROGRAMS
WE ARE TALKING ABOUT HERE ARE CALLED "DR IVERS". THESE WOULD BE
REQUIRED FOR LINKAGE TO A PIECE OF SOFTWARE FOR WHICH PATCHES
ARE NOT PROVIDED IN THE MANUAL.
THIS INTERFACE IS A SYNCRONOUS DEVICE. ONE OF THE IMPLICATIONS
OF THIS IS THAT DATA OR PROGRAMS ARE MOST EFFICIENTLY WRITTEN AS
A CONTIGUOUS BLOCKI RATHER THAN AS SEPERATE BYTES. THERE ARE A FEW
RULES THAT MUST BE FOLLOWED WHEN WRITING SOFTWARE FOR THIS DEVICE:
1. THE FIRST BYTE MUST BE A "START BYTE" WHICH MAY BE ANY BYTE
EXCEPT 00 1 FFI OR E6 (HEXADECIMAL).
2. THE SECOND BYTE MUST BE A "SYNC BYTE" WHICH MUST BE E6 (HEX).
3. THE SOFTWARE MUST BE ABLE TO DELIVER BYTES TO THE INTERFACE
AS FAST AS IT CAN ACCEPT THEMI WHICH AT THE STANDARD SPEEDI
IS 187 BYTES PER SECOND. THIS MEANS THAT ANY LOOP.THAT THE
PROGRAM GOES THROUGH WHICH IS BETWEEN BYTESI MUST LAst LESS
THAN 5.3 MILLISECONDS. AN AVERAGE INSTRUCTION TIME ON THE
8080 WITH NO WAIT STATES IS 2 CYCLESI OR 1 MICROSECOND. THUSI
THERE SHOULD BE NO MORE THAN ABOUT 5300 INSTRUCTION EXECUTIONS
BETWEEN BYTES BEING SENT OUT. THIS IS NORMALLY NOT A PROBLEM.
4. A SIMILAR CONSTRAINT MUST BE OBSERVED WITH RESPECT TO THE
INPUT SOFTWAREI WHICH SHOULD BE ABLE TO ACCEPT DATA AS FAST
AS IT IS BEING MADE READY BY THE INTERFACE.
THERE ARE SITUATIONS IN WHICH THE DATA CANNOT BE PROVIDED OR
ACCEPTED. FAST ENOUGH BY THE SOFTWARE. ONE EXAMPLE OF THIS IS
DATA WHICH IS BEING GENERATED BY A PROGRAM RUNNING IN BASIC.
THIS PROBLEM IS SOLVED BY SENDING THE DATA OUT AND READING IT
IN A LINE AT A TIMEI WITH NULLS IN BETWEEN. THE PAGE ENTITLED
"HOW TO SAVE AND LOAD DATA FROM A BASIC PROGRAM" IS A SAMPLE
PROGRAM THAT SHOWS HOW TO DO THIS. THERE ARE AT LEAST TWO
OTHER WAYS TO HANDLE THIS PR6BLEM: 1) SEND EACH BYTE AS A
SEPERATE BLOCK WITH IT'S OWN START AND SYNC BYTES. 2) ACCUMULATE
BYTES IN A BUFFER AREA OF MEMORYI AND START AND STOP THE CASSETTE
RECORDER UNDER CONTROL OF THE COMPUTER WHEN IT IS TIME TO DUMP
AND REFILL THE BUFFER.
OTHER ITEMS TO BE CONSIDERED WHEN WRITING SOFTWARE:
1. SINCE TAPE IS AN IMPERFECT MEDIUMI IT IS GENERALLY USEFUL
TO INCORPORATE AN ERROR-CHECKING SCHEMEl SUCH AS THE
CHECKSUM SYSTEM THAT IS DEMONSTRATED O~ THE PAGES ENTITLED
"OUTPUT ROUT INE WITH CHECKSUM" AND" INPUT ROUT INE WITH
CHECKSUM". THERE ARE MANY SYSTEMS POSS IBLEI EACH PROVIDING
DIFFERENT KINDS AND LEVELS OF PROTECTIONI AND BOOKS HAVE
BEEN WRITTEN ABOUT THESE.
2. IT IS SOMETIMES HANDY TO HAVE AN IDENTIFIERI SUCH AS A
NAMEI WRITTEN ALONG WITH THE FILE ONTO CASSETTE. AN
E~AMPLE IS THE ONE-LETTER NAME GIVEN TO ALTAIR BASIC
PROGRAMS WHEN WRITING TO CASSETTE.
3. ANOTHER ITEM THAT IS USEFUL IS A WAY FOR THE PROGRAM
TO TELL HOW LONG THE FILE IS. A ONE OR TWO-BYTE HEADER
TO INDICATE LENGTH OF A FILE OR BLOCK IS SOMETIMES USED.
IN THE MODIFIED PROCESSOR TECHNOLOGY SOFTWARE PACKAGE 11
THAT I SUPPORTI BLOCKS ARE PRECEEDED BY ONE LENGTH
BYTE THAT MAY BE FROM 1 TO 255. A LENGTH OF ZERO
INDICATES THE END OF THE FILE.
4. A "TYPE BYTEtt IS A UNIQUE BYTE FOR A PART ICULAR FORMAT
OF FILEI SO THAT A SOPHISTICATED LOADER MAY DISTINGUISH
BETWEEN DIFFERENT TYPESI AND LOAD THEM APPROPRIATELY.
I USE A 90 (HEX) TYPE BYTE IMMEDIATELY FOLLeWING THE
SYNC BYTE ON THE PROC. TECH. SOFTWARE.

27

USING THE TARBELL CASSETTE INTEHFACE UNDER IN'I'EHRUPT CONTROL

There iSz:0 1;>uilt-in pro:ris~on for interrupts in the design.
However, 1t 18 not too dlff1cult to make a moJification to
tl:e boarc:l to Frovide for interrupts. Two bits in the control
LLne rE.'C1.ster. <1re used 3,S in:,errupt-enable flip-fl0l"s. I':~ .i~;
r~~'(:'?fIS21'Y ~o l!l:2tnll cUl.0:'her 74 03 quad 2-inI'ut open-(~f): 1 ('~·t~)~
G~~D [vt~ In one Qf th~ s~are IO pcnitions at t~e tn~ of th~
bo...-:rc... The c:; r~il::it diG.bram below shm·[f; how to conn'~c t the
7403:

(f:bNrtl6L BI1'

0)

r,

lllEtE1vell ~rADY) IC

3\'
S", '"

PIIJ"

"N CJ

I

T~

3

rc.

1'1, PIN

S'

ONt.

2

I>F

Tl-1~S(

(CoWT/Uc.. Sir ,) Ie 3"1 P"'IIS

(oClTPIJT 1l.E~b'r)

/..!l!..
'4 Vl6

EblE' PINS

b

vIZ.

7

v.I 3
'II "I

11

,

4l

l![P!

I"
1...

.-.
.

opr,o",1w.

rNvn~R.

VII

q

vrr

10

VI"
VI7

II

Vct!-ro~fj)
z NiER.~v-pr
LINES

-

73 P INT

If you do not have a vec.torec. interrupt carel, connec,t ~jhe
output .pins 3 and 6 to the edge connector pin 73. An
interrupt will then be caused when the following conditions
arc true: 1) Interrupts are enabled with an BI instruction.
2) Control bit
is high and the receiver is ready with Em
input byte; or control bit1 is h: gh 9,nd the transrr.i tter j s
ready for anoutput byte. Both condit'i'ons 1 and 2 must be
true for an interrupt to be causeu~

°

,If you do have a vectored interrupt card, connect the cmi:I:il~,
pins 3 and 6 to one of the edGe connector .'pins 4-,5,6,7,2,9,
10, or 11, depending on what level you want the cassette
interface. Be sure that you have the correct polar:.ty to
cause an interrup~. The output at pins 3 and 6 eOeS ~~W
to cause an interrupt. If you have a vector'ed inteY.':~·uI,t;
card that requires a high-going signal to cause an ;nte:'T'l1pt,
you may use the extra gate shown above to invert the line-.
Read your manual on your interrput board to make sure.
There' is not enough room here to explain how to use thE'
,
interrupt system, but the following lines show how to enable
and disable the two interrput bit,S on this board.
enable receiver interrupt:

MYI

OUT

A,1

6EH

A,2
OUT 6EH

enable transmitter interrupt: MYI

A,3

enable both interrupts:

MYI

disable both interrupts:

MVI A,O

OUT 6El!

28

OUT

6EH

PRELJl1INARY PHI-DECK ADAl)T!.'R INFORMATION

We have purchased the introductory variable-speed PHI-DECK
package, which includes the deck, control electronicn, power
supply, and control box. We have been experimenting with an
adapter which connects between the Tarbell Cassette In~erface,
the read-write hends, and the centrol electronics. Thl.s
adapter provides st~l1'·t-stop, fonmrATA

"5o.,A..

~_o'"
:r~TE(FAc

JI-IS"
f(.€A'O 'Pltr II

7

H-

TO

,SI> "'-

f,NTE-.FA<·

(NIf.y

10

'N'l,V
1001<

'fOA
JOOIC

.11'.(

,
<."'~. ~
lcfo/ES

F"."

'f. foI'r€4 flo (. ~

f

eTL •• r 1

--.
(oNTIlH
(..,NE 5

11- ,

TO

t!T L ~/T I -;11- 7
e T L (lIT I> :fl-';

PHt~1)£C.K

11- , <
~----------------------------- 17-,3
~
~S~A
8.T' ::n-"l. ~-------------_ J" 7 - 1'1
<
S-rA"f;
$".... ,. T I

D.T

TO
tt-M"lRff\cJ

~EWI~O
F~ Sf foR ""'Att D

B,T 2. 3(- 3 ~------------------<
]"7-,S 'SioP
~
l-TAS,T 3
~------------ 17 - ,'- RuN

STA

'

$'."

The simple program below is handy for experimenting. Flip sense
switch 2 up momentarily to pulse the control line.
Control Table
LOOP IN FFH
DB FF
Read Sense Switches.
81 sO function
OUT 6EH
D3 6E
Write to Control Port.
o 0 RUN
IN 6EH
DB 6E
Read Status Lines.
o 1 STOP
OUT FFH
D3 FF
Write To Display Lights.
1 0
FF
J.MP LOOP C3 00 00 Do it allover again.
1 1
REW
Sense switch 3 should be up for' read, down for write.

29

A~~y

~
~ ~Y

A

&~

o

SEE. TRUTH TABLE
FOR 1&,(0&

YtA.a.c

V~A8C

I

o

I

,

I

0

/I
~
L3
2

...is.-

~

~.SVDG
7

~

+ 5 VOC;
'~LIJ

AND

7l4LOO/7,,(03 NAND/OR

A'
S 2

A~Y

C

~

o

5

5

3

V

0/000

~

8

12.

A

13

7'40~/7'(LOq/7"tOG.

3 Y
A~'
It 2

V
0

I
0

x- DON°T

\I

...!L +5'

VDC

~

INVERTER

y.

~(A8C.D)

1&.\L2.S

NORlAND

.:INPUTS OUTPVl
A
0
I
0
I

B
0

y

0
I

0
0
I

I

0

A

B

n----,S=--_ Y

F -n---i---

& ,
H

.,
~
z;

.

I~

~+SVDC
1l.f09 ANO

30

SEE TRVTH TABLE

~-t--......

E
10

~

~

CAR.E

7

o

.

I
0

" . 5(A+S+C +0)

I

C

...!L.f)

,

0011 I

o , , \

I

fl

00000
00001
00010
00(00

10

INPUT OUTPUT

y

S A Be 0
IXXXX

q

~+5VDC

OVTPUTJ

INPUTS
lOo.......
'-

~5VOG

TABLE. FOR.

1"tL00I1~03

Y·ABCDEFGH

.

la

CLR
0

--.......,,,. CK
10

K

,

CI.R

Cl ;.-~8=--_

:r

c\<.

1<

x x

)(

I

.flo

0

I

I1.

I

0

I

lLo

I

,

n..

I

I

-Q0 -. Q...I-NO CHANGE

I

I

0

0

\

G

Q.

NO CH;'\t-h;( IN OUTPUT
UNTIL FALLING EDGE Of
CLOCK

..!:1..-.5 VDC

X. DON'T CAllE

~

1"i L13/7c{13 r-K FLI P- FLOP
WITH CLtA~

"
PR
Q.

5

CK
Q

CLR.

INPUT'S
lLR PR CI( 0
1
0

0

0

0

I
I

I
I

I

X X
X X
x. X

... ,
0

OUTPUTS
Q
Cl
I
0
0
1
Il.LEGAL
I
0
0
I

NO CHANGE. IN OUTPUT
VNTlL R.ISING. EDGE OF
CLOCK

10

It

aVTPV'r?_

IN"'UTS

x- OON'T

PR

0

II

CARE

G.

CI(

Q.

8

IS

-,'"

+5 VDC

~

7I:\L]'1 Q-TYPE FblP· FI.QP

W'TH PRE.SET' AND c:.LEAR

31

II

Q

INPUTS OUTPUTS
ENG 0 Go
Gi
X Goo
0
Go

3

D Q

Q

..L..

8

I

2

o

Q

l"1L 105'

~-BIT BISTASLE

INPUTS

)[)-t-~

A

8

0
I

0

I

I
I

o.

)[)-t" )[Y-

0

OUTPUT
y
0
I
I

0

S

)D

"

~ ... SVDC

~

I

I

0

Clo~ TH£ STA1E. OF Q

+5 VDe

6

13

0

BE.fORE. ENB IS
SEl LOW

~

12

0

DON'T CARE

ILf

~
A

x~

7

IS"

,

I
I

13 ENS

7lfLS'

32

EXCLUSIVE -OR

LATC,H

~--ISER

A

QA

B

QS

C

o

QC
QO

E

QE

--f-

IS
1113

12

~

"

IQ..

ENS P

+5 VDe

------..... CK

ClR

",
SER" 5ER\A\' DATA INPUT. DATA \5 MOVEDFI10r., SERIAL INPUT
TO QA AFTE.R THE. FIRST CLOC\<.

DATA 15 PRESENT ON
IA_Qt\) AFTER CLOCI(.!Fi"'.ODE
15 SHIFlE'D FROIVl ....r'~RALLEL. DAfA WI:LL MOVE TOWARDS
QE ON £ACl-i FOLLOWING CLOCK.

A-B- PARALLEL DATA INPUT.
ASSOCIATED OUTPUT

r
ENABLE PARALLEL MODE. WHEN ~ET. REGI :iTER IS
IN PARALL EL MODE. WHEt'" RE5ET, REGISTER I ~ IN
SERIAL MODE.

ENS P

CI<- CLOCK.

NO CHANGE.

IN OUTPUT UNTIL

RlSINGo EDGE

OF CLOCK
CLR" CL EAR. WHEN RESET ALL CUTPIJTS ARf. rORCED TO
TO· RESET WITHovr REGARDS TO ANY OTHER

INPUT.

ALL OUTi>VT~ U~EO FOR PARALLE.L
FOR ~ERIAL OUTPUT, ONE OF THE OUTPUTS
DEPENDIN(' ON TH£ LENGTH DESIRED.

QA-Q.E • OuTPUTS.

OUTPUT.
15

U~£D

1..,',

S-BIT

~HIFT

REG\STER

IF B\ THROU<:7 13(, ARE BIT- FOR- OIT EQUAl,.
TO THE 81T5 RE.~E. T ON TI THROUGH TG., Q IS
RESET. FOR ALL OTHER CONDITIONS Q. IS SET

s=

..li-

STROBE.

WHEN SET Q. IS OISABLED

+S VDe

DMSI3I.

33

6-Blr COMPARITOR

A,B" SERIAl. OAT A IN PVTS. ONE Or: THE. TWO
MUH BE ~E T TO E.NABLE. THt Oi'HER.
DATA IS PRE.SE N T AT QA AFTER ONE.
CLOtK AND r"'lO'lES TOWARD Q.H ON

EAC.H
eK= CL.OC.K.

FOLLOWI"~G

kIS'N~

Cl.OCK.

N.O CHAN<':rE IN OUTPUT UNTIL
E Dc;,.E OF C.L.OCI<'

CLR-CLEAR. WHEN RESET".. ALL OViPVTS
ARE. RE~ET WITHOU, REGARO) TO
TO OTHER INPUTS.

~

Q.A- GH" OVTPUT5.

DATA IS MOVE.D F'ROM A
AND B TO ClA ON EACH CLOCK AND
THE. DATA AT QA IS MOVED TOWARl)$

+:5 VDC

Q~.

S-SIT PARALLEL.-OUT
.. 18 VDe

•

-+J~-I

Vee

.s

~HIFT

RE"~ru~,

CONTROL

COMPARITOR.I----....--.....

t---i COMPA RI TOR 14-_ _ _ _ _ _ _ _T.!.R~\GG~~_~

2.

.....- - - - - -..... FLIP-FLOP

OUTPUT
5TACrE

OVTPUL_

3
/),RGE
7

NfSSS

34

TI MER

TIMING> COMPONENT.5
~

I

.,

LIMITER 2
OUTPUT A

POSITIVE: EDGE
TRIGGE.R E.NABLE

Ii. (I( IS

II
10

L.IMITER
NEGATIVE EI)GE
, OUTPUT A 13 TRI~6E.R ENABL.£

3 CLEAR

It".
- V e e .. SVDC

-

~

-5

voe

8

~

81Z0 BIOIRECTIONAL ONE.-SHOT

A
6
~FER~~E ~-kt-

INPUT

S~NAL

LlII'UTER
OUTPVT A

~

I

I

LlMI'tER_1
OUTPUT A ....._---oJ
ONE-SHOT
ouTPUT Q.
ONE-SHOT

n

OUTPUT Q _ _-"

...._ _ _-'

'---_--'n___

ONE-SHOT
OUTPVTQ,

PIN 2. .sEl
PIN I' RESET
PIN

e

I\ES£T

PIN" 5ET
PIN 2 5ET
PIN 13 5ET

"ON""TlME \S DETERMINED
r' - -. ONE-SHOT
BY TlMIN(;' COMPONENTS CONNEC1Et>
TO PINS 12.) 1'1.. AND IS:
eTtO 8l0lRf.C.T10NAL ONE-~HOT
AND OUlPUT WAVEFORMS

INPUI

DEAR

CUSTOMER~

THANK YOU VERY MUCH FOR PURCHASING A CASSETTE INTERFACE.
I AM INTERESTED TO kNOW WHAT KIND OF PROeRESS YOU HAVE MADE
WITH YOUR TARBELL CASSETTE INTERFACE. I WOULD REALLY APPRIG1ATE
IT IF YOU WOULD TAKE TIME TO FILL THIS QUESTIONAIRE OUT. THIS
WILL HELP ME TO PROVIDE YOU WITH BETTER SERVICE IN THE FUTURE.
DID YOUR INTERFACE ARRIYE IN A REASONABLE LENGTH OF TIME?

YES

NO

WERE ANY OF THE ITEMS DAMAGED IN SHIPMENT?

YES

NO

WERE ANY OF THE ITEMS MISSING?

YES

NO

WAS THE QUALITY OF WORKMANSHIP ON THE BOARD REASONABLE?

YES

1110

HAVE YOU STARTED CONSTRUCTION YET?

YES

)10

WHERE? YES

HO

IF

SO~

WHAT?

HAVE YOU HAD ANY PROBLEM UNDERSTANDING THE MANUAL?
WERE THE COMPONENTS OF REASONABLE QUALITY?

WHAT WASN'T?

YES

NO.

HAVE YOU COMPLETED THE CONSTRUCTION YET?

YES

NO

HAVE YOU TESTED THE INTERFACE YET?

YES

NO

YES

NO

YES

NO

YES

NO

YES

NO

YES

NO

WHAT IS THE MAKE AND MODEL OF YOUR RECORDER?
HAVE YOU ENCOUNTERED ANY PROBLEMS?
IF THERE WERE

PROBLEMS~

WHAT?

ARE THEY FIXED?

IN WHAT VAY?

HAVE YOU FOUND ANY OF THE ADJUSTMENTS CRITICAL?
ARE YOU DISATISFIED IN ANY WAY WITH THE UNIT?

WHICH?
HOV?

DO YOU HAYE ANY SUGGESTIONS FOR IMPROVEMENT OF THE DESIGN
WHAT DO YOU FEEL 15 THE MAJOR DISADVANTAGE OF THIS UNIT?
HAVE YOU DEVELOPED ANY SOFTWARE OR HARDWARE RELAT IVE TO THE
INTERFACE THAT MIGHT BE OF USE TO OTHER PEOPLE? WHAT?
HAVE YOU TRIED PACKING DENSITIES HIGHER THAN THE STANDARD
800 BITS/INCH? WHAT DENSITY? WITH WHAT RESULTS?
WHAT IS YOUR NAME"

ADDRESS~

AND PHONE NUMBER?

DO YOU MIND IF 1 GIVE OUT YOUR NAME TO OTHER CASSETTE USERS?
PLEASE USE THIS SPACE" AND THE REVERSE SIDE~ IF NECESSARY.. TO
MAKE ANY COMMENTS ON THE INTERFACE THAT MAY BE HELPfUL.
SINCERELY"

/Jp..J.J~~
DONALD E. TARBELL
144 MIRALESTE DRIVE 1106
MIRALESTE" CALIF. 90732

36



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Create Date                     : 2017:08:10 10:30:47-08:00
Modify Date                     : 2017:08:10 10:34:57-07:00
Metadata Date                   : 2017:08:10 10:34:57-07:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:b4e218f6-5e68-f84b-8233-0d4591d8f7e8
Instance ID                     : uuid:4d8cfc80-d3ab-b340-95fe-c4dfe57586a6
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 55
EXIF Metadata provided by EXIF.tools

Navigation menu