10 REM +++++++++++++++++++++++++++++++++ 11 REM ! Program .... MORSE 12 REM ! Utg}va 1 13 REM ! av (c) Robert L Kurts 14 REM ! {ndrat av Peter ]kertstr|m 15 REM ! Minne 16 Kbytes 16 REM ! Ins{nt av Amat|rradiosekt. M.G. 17 REM +++++++++++++++++++++++++++++++++ 18 REM 19 ; CHR$(12%)'KODNING OCH AVKODNING AV MORSE' 20 ; : ; 'Programmet andv{nder V-24 kontaktens' 21 ; 'stift 3 (stift 7 jord) f|r avk{nning' 22 ; 'av mottagen signal och rel{utg}ngen' 23 ; 'f|r s{ndning.' 24 ; : ; 'Vid mottagning skall stift 3 g} h|g' 25 ; 'f|r att indikera signal, men genom att' 26 ; '{ndra rad 1130 och rad 1160 fr}n' 27 ; 'IF A%=1% THEN... till IF A%=0% THEN...' 28 ; 'samt rad 1200,1250,1300 }t motsatt h}ll' 29 ; 'reagerar programmet p} l}g signal' 30 ; 'p} stift 3.' 31 ; : ; 'Programmet startar upp i s{ndningsl{ge.' 32 ; 'F|r att s{nda skriver man in en' 33 ; 'textstr{ng med max 118 tecken' 34 ; 'och d{refter RETURN.' 35 ; 'Avslutas textstr{ngen med ett eller' 36 ; 'flera mellanslag upprepas s{ndningen' 37 ; 'tills RETURN trycks ned.' 38 ; 39 ; 'Tryck p} en tangent n{r du l{st klart '; : GET X$ 40 ; CHR$(12%); 41 ; 'S{ndningshastigheten g}r att v{lja' 42 ; 'mellan 20-200 tecken per minut.' 43 ; 'Om man vill {ndra hastighet trycks' 44 ; 'utropstecken ned,(!) och d{refter RETURN' 45 ; 'Till}tna tecken {r' 46 ; 'siffror, samtliga bokst{ver' 47 ; 'och f|ljande specialtecken: - / , . ?' 48 ; 'Sm} bokst{ver g|rs om till stora och' 49 ; 'otill}tna tecken till mellanslag.' 50 ; : ; 'F|r att komma till mottagningsl{ge' 51 ; 'trycks enbart RETURN ned.' 52 ; 'I mottagningsl{ge sker en automatisk' 53 ; 'anpassning till takten.' 54 ; 'Vid stora taktf|r{ndringar kan' 55 ; 'insv{ngningen ta ett par sek.' 56 ; : ; 'Trycker man ned en tangent i' 57 ; 'mottagningsl{ge kopplas' 58 ; 's{ndningsl{get in igen.' 59 ; : ; 'Tryck n{r du {r klar att b|rja '; : GET X$ : ; CHR$(12%) 60 DIM M%(50%,5%),A$(125%)=1%,A$=120% 61 REM , - . / 62 DATA 3,3,1,1,3,3,3,1,1,1,1,3,1,3,1,3,1,3,3,1,1,3,1,0 63 REM 0,1,2,3,4,5,6,7,8 64 DATA 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 65 REM 9,?,@ 66 DATA 3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,1,1,1,1,3,1,1,0 67 REM A,B,C,D,E,F,G,H,I 68 DATA 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 69 REM J,K,L,M,N,O,P,Q,R 70 DATA 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,3,3,1,3,0,0,1,3,1,0,0,0 71 REM S,T,U,V,W,X,Y,Z 72 DATA 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 73 REM [,\,],^ 74 DATA 1,3,1,3,0,0,3,3,3,1,0,0,1,3,3,1,3,0,1,1,3,3,0,0 75 DATA E,T,I,A,N,M,S,U,R,W,D,K,G,O,H,V,F,^,L,[,P,J,B,X,C 76 DATA Y,Z,Q,\,-,5,4,-,3,@,-,-,2,-,-,-,-,-,],-,1,6,_,/,- 77 DATA -,-,(,-,7,-,-,-,8,-,9,0,-,-,-,-,-,-,-,-,-,-,-,-,? 78 DATA -,-,-,-,-,'"',-,-,.,-,-,-,-,-,-,-,-,"'",-,-,-,-,-,-,- 79 DATA -,-,-,-,-,-,-,),-,-,-,-,-,',',-,-,-,-, : ,-,-,-,-,-,- 80 FOR S%=0% TO 50% 81 FOR S1%=0% TO 5% 82 READ M%(S%,S1%) 83 NEXT S1% 84 NEXT S% 85 FOR N%=1% TO 125% : READ A$(N%) : NEXT N% 86 ; 'Hur m}nga tecken per minut?' 87 ONERRORGOTO 89 88 H1%=0% : INPUT H1% 89 IF H1%<20% OR H1%>200% THEN ; CHR$(7%)'V{lj mellan 20-200 tecken per minut' : GOTO 86 90 REM HASTIGHETSKONSTANT 91 H%=22000%/H1% 92 ; : INPUTLINE A$ : ; 93 IF LEN(A$)=2% THEN 125 94 IF LEFT$(A$,1%)='!' THEN 86 95 FOR Q%=1% TO LEN(A$)-2% 96 REM OTILL]TET TECKEN ?? 97 IF INSTR(1%,'"'+"!#$%&()=+<>*'_:;",MID$(A$,Q%,1%))<>0% THEN A%=-12% : GOTO 101 98 A%=ASC(MID$(A$,Q%,1%))-44% 99 REM SM] BOKST[VER TILL STORA 100 IF A%>50% THEN A%=A%-32% 101 ; CHR$(A%+44%); 102 REM PAUS OM MELLANSLAG 103 IF A%=-12% THEN FOR Z%=1% TO 5%*H% : NEXT Z% : GOTO 115 104 FOR S%=0% TO 5% 105 T%=M%(A%,S%) 106 REM SLUT TECKEN ?? 107 IF T%=0% THEN 113 108 OUT 58%,32% 109 FOR Z%=1% TO H%*T% : NEXT Z% 110 OUT 58%,0% 111 FOR Z%=1% TO H% : NEXT Z% 112 NEXT S% 113 FOR D%=1% TO 3%*H% : NEXT D% 114 REM RETURN NERTRYCKT ?? 115 IF PEEK(65013%)<>0% AND (INP(56%) AND 127%)=13% THEN 119 116 NEXT Q% 117 REM UPPREPA TEXTSTR[NGEN ?? 118 IF MID$(A$,Q%-1%,1%)=' ' THEN 95 ELSE 92 119 POKE 65013%,0% : GOTO 92 120 REM ************ 121 REM *MOTTAGNING* 122 REM ************ 123 REM D1='KORT' D0='L]NG' 124 REM B=SIGNALL[NGD, C=TAKTVARIABEL 125 A%=(INP(58%) AND 1%) 126 REM TANGENT NERTRYCKT ?? 127 IF PEEK(65013%)<>0% THEN 119 128 IF A%=1% THEN 125 129 B=0% 130 A%=(INP(58%) AND 1%) : B=B+10% : IF PEEK(65013%)<>0% THEN 119 131 IF A%=1% THEN C=((5%*C)+(2%*B))/6% : D0=2%*D0+1% : D1=2%*D1 : GOTO 137 132 IF B<(.5*C) THEN 130 133 D0=2%*D0 : D1=2%*D1 : D1=D1+1% 134 A%=(INP(58%) AND 1%) : B=B+10% : IF PEEK(65013%)<>0% THEN 119 135 IF A%=0% THEN 134 136 C=((4%*C)+B)/5% 137 B=0% 138 A%=(INP(58%) AND 1%) 139 B=B+10% 140 IF A%=0% THEN 129 141 IF B<(.5*C) THEN 138 142 GOSUB 149 143 A%=(INP(58%) AND 1%) 144 B=B+10% 145 IF A%=0% THEN 129 146 IF B<(2%*C) THEN 143 147 ; ' '; 148 GOTO 125 149 D1=D1*2% 150 D=D1+D0 151 IF D>125% THEN D=125% 152 ; A$(D); 153 D1=0% : D0=0% 154 RETURN