1 REM ************ MORSE ************* 2 REM 3 REM * MICHAEL WIDENIUS 26-9-1980 * 4 REM 5 REM ******************************** 6 REM AVD : REKREATION ( VAD ANNARS ) 7 REM 8 DIM A$=120%,A1$=40%,S$=1%,B$=1%,B1$=8% 9 ; CHR$(12%)TAB(17%)"MORSE" : ; : ; 10 ; : ; "Har dina talanger i MORSE rostat under" 11 ; "senare tid eller har du aldrig haft" 12 ; "tid |ver f|r att l{ra dig detta enkla" 13 ; "kodsystem? Om s} {r fallet {r detta" 14 ; "program som gjort f|r dig." 15 ; : ; "Vill du ha reglerna (J) "; : INPUT A$ 16 IF FNA%(A$)=1% THEN 34 17 ; CHR$(12%)"Spelet g}r ut p} du skall ta emot" 18 ; "meddelande och sedan skriva ner det" 19 ; "du tror dig ha mottagit." 20 ; "Allt som allt f}r du tio (10) olika" 21 ; "budskap att tyda." 22 ; : ; "Du har ett flertal olika" 23 ; "variationsm|jligheter :" 24 ; : ; "Det finns tre sv}righetsgrader" 25 ; "(1-3) d{r 1 {r f|r proffs och 3" 26 ; "f|r oss andra vanliga individer." 27 ; : ; "Du kan {ven variera s{ndningshastigheten"; 28 ; "efter dina egna behov. Kom ih}g att ju" 29 ; "l{gre nummer desto snabbare s{ndning !" 30 ; : ; "Du kan {ven f} morsekoden f|r varje" 31 ; "tecken utskriven samt f|r meddelandena" 32 ; "om du anser detta vara n|dv{ndigt." 33 REM S% SV]RIGHETSGRADEN 34 REM B% ANTAL OLIKA MORSETECKEN 35 REM B1% HASTIGHETEN =>B3% 36 REM B2% MAXPO[NG 37 REM A1% PO[NG 38 REM F% BEH\VS TECKENKODERNA 39 REM F1% SKALL MEDDELANDET SKRIVAS 40 REM A TIDSFAKTORN 41 REM 42 DEFFNA%(A$)=((ASC(A$) AND 223%)=74%)-((ASC(A$) AND 223%)=78%) 43 DEFFNT=((PEEK(-526%) XOR 255%)*256+(PEEK(-527%) XOR 255%))*5.12+(PEEK(-528%) XOR 255%)/50 44 B%=41% : B1%=10% : B2%=0% : B3%=200% : S%=3% : F%=-1% : F1%=-1% : RANDOMIZE 45 ONERRORGOTO 48 46 ; : ; "Vilken sv}righetsgrad (1-3)"; : INPUT S% 47 IF S%<1% OR S%>3% THEN 46 48 ONERRORGOTO 51 49 ; : ; "Vilken s{ndningshastighet (0-10) "; : INPUT B1% 50 IF B1%<0% OR B1%>10% THEN 49 ELSE B3%=B1%*16%+40% 51 ONERRORGOTO 0 52 ; : ; "Vill du ha alla tecken med respektive" 53 ; "kod utskrivna "; : INPUT A$ 54 IF A$<>"" F%=FNA%(A$) 55 ; : ; "Vill du ha texten utskriven "; : INPUT A$ 56 IF A$<>"" F1%=FNA%(A$) 57 ; CHR$(12%)"MORSE - sv}righetsgrad"S% : ; 58 A1%=0% : A=0% 59 IF F%<>-1% THEN 63 60 RESTORE 141 : FOR I%=1% TO B% : READ B$,B1$ 61 ; B$" "B1$SPACE$(8%-LEN(B1$)); : NEXT I% 62 REM 63 REM *** SPELET B\RJAR *** 64 REM 65 ; CUR(15%,0%)"TRYCK P] RETURN N[R DU [R F[RDIG !!" : GET A$ 66 FOR J%=1% TO 10% 67 ; CUR(13%,0%)SPACE$(439%)CUR(0%,35%)J% 68 IF S%<>3% THEN 71 69 A%=RND*41%+64% : IF A%>94% A%=A%-47% 70 A1$=CHR$(A%) : GOTO 78 71 ON S% RESTORE 154,150 72 READ A% : REM HUR M]NGA TEXTER 73 A%=A%*RND+1% : FOR I%=0% TO 10% 74 IF A%(I%)<>A% NEXT I% ELSE 73 75 FOR I%=0% TO 9% : A%(I%)=A%(I%+1%) : NEXT I% 76 A%(10%)=A% : FOR I%=1% TO A% 77 READ A1$ : NEXT I% 78 GOSUB 115 : POKE 65013%,0% 79 ; : ; : ; "Och vad betyder detta ?" 80 POKE 65008%,-1%,-1%,-1% 81 INPUTLINE A$ : S=FNT : A$=LEFT$(A$,LEN(A$)-2%) 82 ; : ; " TID"S" SEKUNDER ! "; 83 IF A$<>"SLUT" THEN 86 84 ; : ; : ; "VILL DU VERKLIGEN B\RJA EN NY ROND "; : INPUT A$ 85 IF FNA%(A$)=-1% ; CHR$(12%) : GOTO 45 86 S=S/LEN(A1$) : IF S>7% S=7% 87 A=A+S : IF A1$=A$ THEN 90 88 ; : ; "Tyv{rr, det r{tta svaret var:" : ; A1$ 89 A=A+8% : RESTORE 134 : GOTO 92 90 ; "- KORREKT !!!" : ; 91 A1%=A1%+1% : RESTORE 136 92 FOR I%=0% TO RND*7% : READ A1$ : NEXT I% 93 ; A1$CUR(23%,0%)"Tryck p} RETURN f|r "; 94 IF J%<>10% ; "forts{ttningen."; ELSE ; "bed|mningen !"; 95 POKE 65013%,0% : GET A$ : NEXT J% 96 REM 97 REM *** RESULTAT *** 98 REM 99 ; CHR$(12%)TAB(16%)"RESULTAT" : ; : ; 100 ; "Detta var niv}"S%", hastighet"B1%" och" 101 ; "av 10 problem klarade du"A1%" st." 102 IF F%=-1% ; "Du hade alla tecknen p} sk{rmen !" 103 IF F1%=-1% ; "Du fick morsetexten utskriven !" 104 RESTORE 138 : FOR I%=0% TO A1%/3% : READ A1$ : NEXT I% 105 ; : ; A1$ : ; 106 A%=400%/(A+50%)*A1%*(30%-B1%-F1%*(10%-B1%))/S%/(4%-F%) 107 ; "Du fick nu"A%" po{ng !!" : ; 108 IF A%>B2% B2%=A% : ; "Vilket {r dagens rekord !!" : GOTO 111 109 ; "Medan den h|gsta po{ngsumman {r" 110 ; "hela"B2%" po{ng !" 111 ; : ; : ; "Vill du forts{tta (J) "; : INPUT A$ 112 IF FNA%(A$)<>1% THEN 45 113 END 114 REM 115 REM *** MORSE S[NDAREN *** 116 REM 117 ; CUR(14%,0%); : L%=0% 118 FOR I=1% TO 2000% : NEXT I 119 FOR I%=1% TO LEN(A1$) 120 S$=MID$(A1$,I%,1%) : RESTORE 141 121 FOR I1%=1% TO B%+1% : READ B$,B1$ 122 IF S$<>B$ THEN NEXT I1% : STOP 123 L%=L%+LEN(B1$) : IF L%>38% ; : L%=LEN(B1$) 124 FOR I1%=1% TO LEN(B1$) 125 IF F1%=-1% ; LEFT$(B1$,1%); 126 IF S$=" " FOR I=1% TO B3%*5% : NEXT I : GOTO 130 127 A%=(1%-(ASC(B1$)=95%)*2%)*B3% 128 FOR I=1% TO A% : OUT 6%,67% : NEXT I : OUT 6%,0% 129 FOR I=1% TO B3% : NEXT I 130 B1$=RIGHT$(B1$,2%) : NEXT I1% 131 FOR I=1% TO B3%*3% : NEXT I : ; " "; : L%=L%+1% : NEXT I% 132 RETURN 133 REM *** DATA F\R KOMMENTARERNA *** 134 DATA "B{ttre lycka n{sta g}ng !","B{ttra p} dig !","Man kan ju inte lyckas varje g}ng !" 135 DATA "Tappert f|rs|k !","B{ttre kan du !","Vi forts{tter.","\vning ger f{rdighet." 136 DATA "Utm{rkt, forts{tt i samma stil !","Du b|rjar l{ra dig !","BRA, st}ls{tt dig f|r n{sta kod !" 137 DATA "Du kan ju deth{r !","BRAVO !","Mycket bra !","Vi forts{tter." 138 DATA "Du {r v{l en nyb|rjare p} det h{r ?","Du l{r dig s} sm}nigom. B{ttra p} dig !" 139 DATA "Nu b|rjar det ju redan g} b{ttre !","Bravo, det g}r ju fint !" 140 REM *** MORESETECKEN *** 141 DATA A,._, B,_..., C,_._., D,_.., E,., @,.._.., F,.._., G,__. 142 DATA H,...., I,.., J,.___, K,_._, L,._.., M,__, N, _., O,___, P,.__., Q,__._ 143 DATA R,._., S,..., T,_, U,.._, ^,..__, V,..._, W,.__, X,_.._, Y,_.__, Z,__.. 144 DATA ],.__._, [,._._, \, ___., 0,_____, 1,.____, 2,..___, 3, ...__, 4,...._ 145 DATA 5,....., 6,_...., 7,__..., 8,___.., 9,____., " "," " 146 REM 147 REM *** DATASATSER F\R TESTEN *** 148 REM 149 REM *** L[TTA VARIANTEN *** 150 DATA 53, JA,\,NEJ,MUN,SN\,T\,G\K,UPP,DUR,SUR,LAK,LIK,TOK,LOK,OS,ROS,SUS,L\K 151 DATA \L,B]L,]S,[SS,SOS,],99,65,32,10,123,R]K,BUD,GRO,GR],DUN,AS,ASK,KAL,91 152 DATA 19,ILA,FIL,BIL,MAMMA,PAPPA,ABBA,RIK,JET,SET,PIL,961,HEJ,S]LL 153 REM *** SV]RA VARIANTEN *** 154 DATA 64, MORSE,HEJSAN,"JAG [R EN ABC80","KLARAR DU DETTA","VAD S[GER JAG" 155 DATA "KASTA LOSS",SV]RKN[CKT,KN[CKEBR\D,"DETH[R [R L[TT" 156 DATA "JAG GER UPP","JAG [R NR 1",KAFFEKVARN,"HUR G]R DET",HJ[LP,"SL[PP UT MIG" 157 DATA "SL[PP UT MIG","VAD SADE JAG",SCHYSST,MUSHUS,DATORIST,TELEGRAFIST 158 DATA "VACKERT V[DER","UPPREPA DETTA","ORKAN F\R\VER","JAG [R EN HUSMUS" 159 DATA MAXIMALT,"RENA HEBREISKAN","JAG F\RST]R","SLUTA S[NDA" 160 DATA SV]RF\RST]TT,"F\RL]T MIG","TATI TATA",ANTIKVITET,MISSF\RST]ND 161 DATA "H]LL MODET UPPE","TORPED I AKTERN","HURSA,"L[TTARE TACK" 162 DATA "KAN DU TYDA DETTA","LAND F\RUT","DU K\RDE P] GRUND","B]TEN SJUNKER" 163 DATA "VAD G\RA","TA DET LUGNT","TA EN TOY","DET G]R JU FINT","VAD ST]R H[R" 164 DATA ENKELT,"L[TT ELLER HUR","JAG KLARADE DET","DETTA VAR SV]RT","NUMMER 9","TIO [R 10" 165 DATA "DAGS ATT SLUTA",F\RENAR,"CHEFEN TALAR","GE UPP","GE INTE UPP",LISTIGT 166 DATA OFATTBART,OTYDLIGT,"FEL S[NDNINGSTID","NI [R ANH]LLEN","PRIVAT V]GL[NGD"