Download Micro Cornucopia

Transcript
Morse Code Interface For The Kaypro
By James E. Shaffer
It doesn't take an expensive or complicated interface to make the Kaypro II
receive and transmit international morse
code. Plus, a license isn't required to receive Amateur Radio Morse Code, only
to transmit it. So, here is a way for the
non-amateur radio computer hacker to
have some fun watching the dit-dah-dits
magically appear on the Kaypro screen
in English.
445 Los Robles #307
Pasadena CA 91101
Cheap Hardware
The hardware has only 13 components
and receives its power from the Kaypro.
All connections are to the parallel printer
port.
The LM567 tone detector converts audio from the speaker jack of any shortwave receiver to digital pulses. These
CW pulses are sent to Kaypro via pin 11.
The Kaypro outputs CW on pin 9 of
the printer port to a 4N33 optoisolator
which will key most modern transceivers.
I used pin 30 for ground, and pin 18 for
+5 volts. I understand that earlier models of Kaypro II did not have +5 volts on
pin 18. So if you have an old II, you may
have to go inside to get power for the
cheap and dirty.
Dirty Software
The software is MBASlC so everyone
can understand and modify it to suit
their needs. It has lots of GOTO's, so I
guess the PASCAL folks will call it dirty.
The program starts out in the receive
mode. The cursor keys are used to control the program.
Up arrow
= Transmit Mode
Down arrow = Receive Mode
Left arrow = Dec. xmit speed 2 wpm
Right arrow = Inc. xmit speed 2 wpm
The software is adjusted to run with a
4 MHz clock. If you have a 2.5 MHz version change the S+4's to 5 in lines 230,
240 and 250.
Speak English, please!
To calibrate the cheap and dirty interface, tune in a clear CW signal, then ad-
40
• ••
Figure 1 - Morse Code Interface Circuit
.3
)eMIT Key:
&
IKA'I'PRolt
I PRunE:R..
---j[r--------------------S Ul 211--r____________________~I-4PORT~~
o
I 19
AUOIO
J:N
U
I
4N33
d~I·IOO
The Cheap and Dirty CW Interface
The following cheap and dirty interface and software will also enable experienced Hams to send and receive CW
(continuous wave) at incredible speeds.
Have fun with the cheap and dirty. I
have been using it for over a year now
without any problems. It performs like
an expensive and complicated interface.
just R3 until you see the dit-dah-dits
converted to English on the screen.
Sometimes Amateur Radio operators
use so many abbreviations it's hard to
recognize that the message is English.
c3
05 F
I
~.---,..-----,-----il·~·...::~....;....------.
~
VI
lN3~
I
r----t---II
TO,..F
c4
D2
IN34
rll
..L
Parts List
+5'1 I
,....-J:----=--~'--,
t5v
tllE
I
I
C1
C2
C3
C4
C5
C6
H1
R2
R3
1uF 25V Tantalum
.047uF Mylar
.05uF 50V Ceramic Disc
10uF 16V Electrolytic
.1uF 50V Ceramic Disc
.1uF 50V Ceramic Disc
100 ohm 1/4 watt
4.7k ohm 1/4 watt
10k ohm mini pot
D1
D2
U1
U2
1N34
1N34
4N33
LM567
I
rr
-=
I
30
I
Figure 2 - Morse Code Program
MBASIC Program
10 , •••••••••• RECEIVE AND XMIT MORSE CODE ••••••••
20 ,
30 ,
40 ,
50 CLEAR 100:DEFINT A-Z:DIM Y$(6,63):PRINT CHR$(26):B=7:TR=1
60 DIM X(47,6):S=9:SI=400/S-5:FOR 1=1 TO 47:FOR J=1 TO 6:READ X(I,J)
:NEXT J,I
70 Y$=nETINAMSDRGUKWOHBLZFCP VX Q YJ 56>7
8 /94=
3 2 10 n
80 N=O:FOR 1=1 TO 5:FOR J=o TO 2~I-1:N=N+1:Y$(I,J)=MID$(Y$,N,1):NEXT J:NEXT I
90 Y$(5,13)=RKNn:FOR J=1 TO 63:Y$(6,J)=n n:NEXT J:Y$(6,7)=,,:n
100 Y$(6,12)=n?n:Y$(6,21)=n;n:Y$(6,40)=R<n:Y$(6,42)=n.R:Y$(6,51)=n,n
110 FOR I=O TO 6:J(I)=2~I:NEXT I:PRINT nRECEIVE MODEn
120 I=O:J=O
130 IF INP(28)<70 THEN N=N+1:IF N«2*B) THEN 130
140 N=O:IF INP(28)<70 THEN GOSUB 290:PRINT n n;:GOTO 130
150 N=N+1:IF INP(28»70 THEN 150
160 IF N>=B THEN J=J+J(I):B=(9*B+2.N+6)/12 ELSE B=(3.B+2.N+2)/4
170 N=0:I=I+1:IF 1>6 THEN GOSUB 290:PRINT R n;:GOTO 210
180 IF INP(28)<70 THEN N=N+1:IF (2·N)<B THEN 180 ELSE 200
190 IF INP(28»70 THEN N=O:GOTO 130
200 GOSUB 290:PRINT Y$(I,J);:N=N+1
210 X$=INKEY$:IF X$=nn THEN IF TR=1 THEN 120 ELSE 210
220 I=ASC(X$)-43:IF I=-33 THEN TR=1:PRINT R( RECEIVE MODE )n:GOTO 120
230 IF I=-32 THEN TR=O:PRINT n( XMIT MODEn;S+4;n )n:GOTO 210
240 IF 1=-31 THEN S=S+2:SI=400/S-5:PRINT n( SPEEDn;S+4;n )n;
250 IF I=-35 AND S>8 THEN S=S-2:SI=400/S-5:PRINT n( SPEEDR;S+4;R )R;
260 IF 1<1 OR I>47 THEN PRINT n n;:FOR J=14 TO 7.SI:NEXT:GOTO 210 ELSE
PRINT X$;
270 FOR J=1 TO 6:IF X(I,J) THEN FOR K=2 TO SI.X(I,J):OUT 8,
128:NEXT:OUT 8,0:FOR K=2 TO SI:NEXT
280 NEXT:FOR J=6 TOK 3.SI:NEXT:GOTO 210
290 IF POS(3)=80 THEN PRINT CHR$(13)
300 RETURN
310 DATA 3,3,1,1,3,3,1,3,1,3,1,0,1,3,1,3,1,3,3,1,1,3,1,0,3,3,3,3,3,
0,1,3,3,3,3,0,1,1,3,3,3,0,1,1,1,3,3,0,1,1,1,1,3,0,1,1,1,1,1,0,3,1,1,
1,1,0,3,3,1,1,1,0,3,3,3,1,1,0,3,3,3,3,1,0,3,3,3,1,1,1,3,1,3,1,3,1,1,
3,1,1,1,0,3,1,1,1,3,0
320 DATA 1,1,1,3,1,3,1,1,3,3,1,1,0,0,0,0,0,0,1,3,0,0,0,0,3,1,1,1,0,
0,3,1,3,1,0,0,3,1,1,0,0,0,1,0,0,0,0,0,1,1,3,1,0,0,3,3,1,0,0,0,1,1,1,
1,0,0,1,1,0,0,0,0,1,3,3,3,0,0,3,1,3,0,0,0,1,3,1,1,0,0,3,3,0,0,0,0,3,
1,0,0,0,0,3,3,3,0,0,0,1,3,3,1,0,0
330 DATA 3,3,1,3,0,0,1,3,1,0,0,0,1,1,1,0,0,0,3,0,0,0,0,0,1,1,3,0,0,
0,1,1,1,3,0,0,1,3,3,0,0,0,3,1,1,3,0,0,3,1,3,3,0,0,3,3,1,1,0,0
Micro Cornucopia, Number 17, April 1984