messdemo_sss.tap
messdemo_sss.z80
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

40000 POKE-4152,32:WINDOW:INK 4:PAPER 1:OUT 136,0:CLS:X$=CHR$(142):Y$=CHR$(191)
40002 INK 5:PAPER 7:BORDER 7:CLS
40004 PRINT "          ";
40006 PRINT "      ";Y$;"          ";Y$;"        ";
40008 PRINT Y$;"       ";Y$;"  ";X$;"   ";
40010 PRINT Y$;X$;"          ";Y$;"";
40012 PRINT "                        ";
40014 PRINT "                      ";
40016 PRINT "                        ";
40018 PRINT "        ";X$;"               ";
40020 PRINT "                         ";
40022 PRINT "  ";X$;"  ";X$;"          ";
40024 PRINT Y$;"";X$;"  ";X$;
40026 PRINT "                              ";
40028 PRINT "    ";X$;" ";X$;"   ";X$;"    "
40030 PRINT " ";STRING$(38,"");" ";SPC(37);"";
40032 PRINT "   DEMONSTRATIONSPROGRAMM ZUM THEMA    ";SPC(37);"";
40034 PRINT " WAS KANN DER MICRO-COMPUTER  KC85/1?  ";SPC(37);"";
40036 PRINT "      ENTSTANDEN ANLAESSLICH DER       ";SPC(37);"";
40038 PRINT "      LEIPZIGER HERBSTMESSE 1986       ";SPC(37);"";
40040 PRINT "    AUTOR:  STEFAN RUDECK, DRESDEN    ";
40042 PRINT AT(23,0);" ",STRING$(37,""),X$:GOSUB 40074
40044 EE$=INKEY$
40046 IF INKEY$=""THEN 40046:ELSE 40076
40048!######## UNTERPROGRAMME ########
40050 GOSUB 40074:E$=INKEY$:IF E$=""THEN 40054
40052 IF INSTR(E$,ZK$)<>0 THEN WINDOW:POKE-4152,16:GOTO 40124
40054 PAUSE 15:ON Z GOTO 40094,40096,40098,40100,40102,40104,40106,40108,40110,40112
40056 ON Z-10 GOTO 40114,40116,40118,40120,40122
40058 PRINT AT(22,32);"     ":PRINT;CHR$(6);
40060 PRINT AT(22,33);"ENTER":PRINT;CHR$(6);:GOSUB 40074
40062 EE$=INKEY$
40064 E$=INKEY$:IF E$=""THEN 40064
40066 IF ASC(E$)<>13 THEN BEEP:GOTO 40064:ELSE RETURN
40068 EE$=INKEY$
40070 E$=INKEY$:IF E$=""THEN 40070
40072 IF INSTR(E$,ZK$)=0 THEN BEEP:GOTO 40070:ELSE RETURN
40074 PRINT AT(PEEK(44)-1,PEEK(43)-1);" ":RETURN
40076!######## AUSWAHL ########
40078 WINDOW:INK 2:PAPER 1:POKE-4152,32:BORDER 1:CLS
40080 CLEAR:ZK$="ABCDEFGHIJKLMNZ"
40082 PRINT AT(0,5);"WOFUER INTERESSIEREN SIE SICH?"
40084 PRINT AT(1,5);STRING$(30,"*"):WINDOW 4,23,4,35:PAPER 8:CLS
40086 WINDOW 4,18,5,34:DEF FN ZZ(Z)=INT(Z*RND(PEEK(31)+1))+1:EE$=INKEY$
40088 PRINT AT(20,5);"* Diese Programme muessen ver-"
40090 PRINT AT(21,7);"lassen werden durch Druecken"
40092 PRINT AT(22,7);"der Taste            ENTER"
40094 PRINT:PRINT "ACHT - DAMEN - PROBLEM   * A":Z=2:GOTO 40050
40096 PRINT "TOCCATA VON J. S. BACH     B":Z=3:GOTO 40050
40098 PRINT "TELE - LOTTO - SIMULATION  C":Z=4:GOTO 40050
40100 PRINT "UHR MIT DIGITALANZEIGE   * D":Z=5:GOTO 40050
40102 PRINT "WECKPROGRAMM               E":Z=6:GOTO 40050
40104 PRINT "SORTIERPROGRAMM            F":Z=7:GOTO 40050
40106 PRINT "RECHEN - UEBUNGSPROGRAMM   G":Z=8:GOTO 40050
40108 PRINT "MUSTER - ENTWURF         * H":Z=9:GOTO 40050
40110 PRINT "NIMM - SPIEL               I":Z=10:GOTO 40050
40112 PRINT "TEXTVERSCHLUESSELUNG     * J":Z=11:GOTO 40050
40114 PRINT "MORSEN? - GANZ EINFACH!  * K":Z=12:GOTO 40050
40116 PRINT "MITTELWERTBERECHNUNGEN     L":Z=13:GOTO 40050
40118 PRINT "ZAHLENKONVERTIERUNG        M":Z=14:GOTO 40050
40120 PRINT "PRIMZAHLEN               * N":Z=15:GOTO 40050
40122 PRINT "ENDE                       Z":Z=1:PRINT:GOTO 40050
40124 ON ASC(E$)-64 GOTO 40282,40730,40646,40844,40130,40580,40214,40346,40482,41044
40126 ON ASC(E$)-74 GOTO 41248,40978,41180,41088
40128 RUN
40130!######## WECKEN ########
40132 INK 1:PAPER 7:BORDER 7:CLS:PRINT AT(0,8);"W E C K P R O G R A M M"
40134 PRINT AT(1,8);STRING$(23,"*"):WINDOW 4,23,0,39:INK 8:PAPER 5:CLS
40136 WINDOW 5,22,1,38:PRINT "Geben Sie ein, durch welches Geraeusch"
40138 PRINT "Sie geweckt werden wollen:  ";
40140 PRINT AT(11,7);"Kurze Pieptoene      P"
40142 PRINT AT(13,7);"Sirene               S"
40144 PRINT AT(15,7);"McCARTNEY - Melodie  M"
40146 ZK$="PSM":GOSUB 40068:PRINT E$;:CLS:W=INSTR(E$,ZK$)
40148 PRINT "Geben Sie jetzt noch ein, nach welcher"
40150 PRINT "Zeit die Weckautomatik in Gang gesetzt"
40152 PRINT "werden soll!":PRINT:PRINT
40154 INPUT "       Anzahl der Stunden : ";H:PRINT
40156 IF H<>INT(H)OR H<0 OR H>23 THEN BEEP:GOTO 40154
40158 INPUT "       Anzahl der Minuten : ";M:PRINT
40160 IF M<>INT(M)OR M<0 OR M>59 THEN BEEP:GOTO 40158
40162 INPUT "       Anzahl der Sekunden: ";S:PRINT
40164 IF S<>INT(S)OR S<0 OR S>59 THEN BEEP:GOTO 40162
40166 PRINT:PRINT "Starten Sie nun das Programm mit W!":PRINT:GOSUB 40074
40168 ZK$="W":GOSUB 40068
40170 PRINT "Das Weckprogramm laeuft.";:GOSUB 40074
40172 POKE 31,0:POKE 30,0:POKE 29,0
40174 IF PEEK(31)<>S OR PEEK(30)<>M OR PEEK(29)<>H THEN 40174
40176 FOR I=1 TO 3:ON W GOSUB 40206,40200,40196
40178 E$=INKEY$:IF E$=""THEN 40182
40180 IF ASC(E$)=13 THEN 40186
40182 IF I<3 THEN PAUSE 100
40184 NEXT I
40186 PRINT:GOSUB 40074
40188 PRINT AT(PEEK(44)-2,PEEK(43)+22);" nicht mehr.":PAUSE 50:GOTO 40076
40190 DATA 57,2,64,1,57,2,72,4,72,1,76,2,72,1,96,4,114,1,96,2,76,1,86,2,144
40192 DATA 1,144,8,96,1,96,1,96,2,86,1,0,3,96,1,96,1,96,2,86,1,144,1,114,4
40194 DATA 0,6
40196 OUT 136,176:T=100:FOR I1=1 TO 2:RESTORE 40190:FOR I2=1 TO 26:READ H,L
40198 GOSUB 40208:NEXT I2:NEXT I1:OUT 136,48:RETURN
40200 OUT 136,176:FOR H=151 TO 1 STEP-1:OUT 128,7:OUT 128,H:NEXT H:FOR H=1 TO 151
40202 OUT 128,7:OUT 128,H:NEXT H:FOR H=151 TO 1 STEP-1:OUT 128,7:OUT 128,H:NEXT H
40204 OUT 128,3:OUT 136,48:RETURN
40206 FOR J=1 TO 15:BEEP:PAUSE 1:BEEP:PAUSE 1:BEEP:PAUSE 6:NEXT J:RETURN
40208 IF H=0 THEN 40212
40210 IF H>0 THEN OUT 128,7:OUT 128,H:ELSE OUT 128,39:OUT 128,-H
40212 FOR K=1 TO L*T:NEXT:OUT 128,3:RETURN
40214!######## RECHNEN ########
40216 INK 1:PAPER 3:BORDER 3:CLS:PRINT AT(0,8);"RECHEN - UEBUNGSPROGRAMM"
40218 PRINT AT(1,8);STRING$(24,"*"):WINDOW 4,23,0,39:INK 8:PAPER 1:CLS
40220 WINDOW 5,22,1,38:EE$=INKEY$
40222 INPUT "Wieviel Aufgaben?           :";AZ:PRINT
40224 IF AZ<>INT(AZ)OR AZ<1 THEN 40222
40226 PRINT "Welche Operation? (+,-,*,:) : ";
40228 ZK$="+-*/;=.:?":GOSUB 40068
40230 IF E$="+"OR E$=";"THEN Q=1:Z$="+"
40232 IF E$="-"OR E$="="THEN Q=2:Z$="-"
40234 IF E$="*"OR E$="."THEN Q=3:Z$="*"
40236 IF E$=":"OR E$="/"OR E$="?"THEN Q=4:Z$=":"
40238 PRINT Z$:PRINT
40240 PRINT "Maximale Stellenzahl (2...6): ";
40242 ZK$="23456":GOSUB 40068
40244 PRINT E$:PRINT:MA=VAL(E$)
40246 CLS:FOR K=1 TO AZ
40248 ON Q GOTO 40250,40254,40260,40260
40250 X=0:FOR I=1 TO MA-1:X=X*10+9:NEXT I:A=FN ZZ(X):B=FN ZZ(X):EG=A+B
40252 GOTO 40264
40254 X=0:FOR I=1 TO MA:X=X*10+9:NEXT I:Y=0:H=FN ZZ(MA-1):FOR I=1 TO H:Y=Y*10+9
40256 NEXT I:A=FN ZZ(X):B=FN ZZ(Y):IF A<B THEN Y=A:A=B:B=Y
40258 EG=A-B:GOTO 40264
40260 X=0:H=FN ZZ(MA-1):FOR I=1 TO H:X=X*10+9:NEXT I:Y=0:H=MA-H:FOR I=I TO H
40262 Y=Y*10+9:NEXT I:A=FN ZZ(X):B=FN ZZ(Y):EG=A*B:IF Q=4 THEN Y=A:A=EG:EG=Y
40264 P=9
40266 PRINT:PRINT A;Z$;B;TAB(15)"=";:INPUT "";GE
40268 IF GE<>EG THEN PRINT AT(PEEK(44)-2,28);"Nachrechnen!":P=INT(P/3):GOTO 40266
40270 PRINT AT(PEEK(44)-2,28);"Richtig!    ":PZ=PZ+P:NEXT K:PRINT
40272 PZ=100*PZ/(9*AZ):Z=5:IF PZ>=36 THEN Z=4
40274 IF PZ>=60 THEN Z=3
40276 IF PZ>=80 THEN Z=2
40278 IF PZ>=96 THEN Z=1
40280 BEEP:PRINT "Zensur:";Z:GOSUB 40074:PAUSE 50:GOTO 40076
40282!######## 8 DAMEN ########
40284 W=0:DIM P(9):INK 2:PAPER 5:BORDER 5:CLS
40286 PRINT AT(0,2);"A C H T - D A M E N - P R O B L E M"
40288 PRINT AT(1,2);STRING$(35,"*"):WINDOW 4,22,0,39:INK 2:PAPER 4:CLS
40290 WINDOW 4,23,1,18:PRINT " ";:FOR I=1 TO 7
40292 PRINT INK 1;CHR$(57-I);
40294 PRINT "         ";:NEXT I:PRINT INK 1;"1";
40296 PRINT "         ";
40298 PRINT INK 1;"  A B C D E F G H":WINDOW 5,22,20,38:INK 5
40300 PRINT "Problem:":PRINT:PRINT "Acht Damen  sind so"
40302 PRINT "auf ein Schachbrett":PRINT "zu setzen, dass von"
40304 PRINT "ihnen  keine  durch":PRINT "eine der sieben an-"
40306 PRINT "deren Damen bedroht":PRINT "werden kann!":GOSUB 40074
40308 DATA 1,5,8,6,3,7,2,4
40310 RESTORE 40308:FOR I=1 TO 8:READ P(I):NEXT I:PAUSE 150:ZN=8:EE$=INKEY$:GOTO 40330
40312 ZN=1:P(ZN)=1
40314 FOR ZK=0 TO(ZN-1):IF ZK=0 THEN 40326
40316 IF P(ZN)<>P(ZK)AND ABS(P(ZN)-P(ZK))<>ZN-ZK THEN 40326
40318 IF P(ZN)<>8 THEN 40322
40320 ZN=ZN-1:GOTO 40318
40322 IF ZN=0 THEN 40344
40324 P(ZN)=P(ZN)+1:GOTO 40314
40326 NEXT ZK:IF ZN<8 THEN 40338
40328 IF W=1 THEN PRINT:GOTO 40332
40330 CLS:PRINT "   A B C D E F G H":WINDOW 7,21,22,38:W=1
40332 FOR I=1 TO 8:FOR J=1 TO 8:PRINT AT(2*J+3,2*I+1);" ":NEXT J
40334 PRINT STR$(P(I));
40336 PRINT INK 1;AT(21-2*P(I),2*I+1);"":NEXT I:GOSUB 40074
40338 E$=INKEY$:IF E$=""THEN 40342
40340 IF ASC(E$)=13 THEN 40076
40342 ZN=ZN+1:P(ZN)=1:GOTO 40314
40344 PRINT "           ENTER":GOSUB 40062:GOTO 40076
40346!######## MUSTER ########
40348 DIM M$(1),F(1):X$=CHR$(34):M$(0)="":M$(1)="":F(0)=8:F(1)=5:Z=4
40350 INK 8:PAPER 1:BORDER 1:CLS
40352 PRINT AT(0,4);"M U S T E R   -   E N T W U R F"
40354 PRINT AT(1,4);STRING$(31,"*"):WINDOW 4,23,0,39:INK 5:PAPER 8:CLS
40356 PRINT "Dieses Programm soll demonstrieren,  wie"
40358 PRINT "man den Computer  zum Entwerfen beliebi-"
40360 PRINT "ger (symmetrischer) Muster, wie zum Bei-"
40362 PRINT "spiel Stick- oder Tapetenmuster, einset-"
40364 PRINT "zen koennte. Versuchen Sie es selbst!   "
40366 PRINT "Ihre ";X$;"Schreibfeder";X$;"  muss durch die Kur-"
40368 PRINT "sor- (Pfeil-) Tasten gesteuert werden."
40370 GOSUB 40074:GOSUB 40058:CLS
40372 PRINT "Mit der Eingabe  von jeweils einem Buch-"
40374 PRINT "staben mit nachgestelltem Parameter  ist"
40376 PRINT "es Ihnen moeglich,  bestimmte Musterele-"
40378 PRINT "mente  auszuwaehlen,  die ";X$;"Schreibfeder";X$
40380 PRINT "verstecken und wieder erscheinen zu las-"
40382 PRINT "sen,  das komplette Bild zu loeschen, um"
40384 PRINT "einen Neuentwurf zu beginnen, oder even-"
40386 PRINT "tuell auch - falls Ihr Geraet farbtuech-"
40388 PRINT "tig ist - auf die Farben von ";X$;"Tinte";X$;" und"
40390 PRINT X$;"Papier";X$;" Einfluss zu nehmen."
40392 GOSUB 40074:GOSUB 40058:CLS
40394 PRINT "Hier nun die ";X$;"Befehle";X$;", die Sie sich un-"
40396 PRINT "bedingt merken sollten:":PRINT:PRINT
40398 PRINT "Bild loeschen             BL":PRINT
40400 PRINT "Schreibfeder verstecken   FV":PRINT
40402 PRINT "Schreibfeder zeigen       FZ":PRINT
40404 PRINT "Musterelement waehlen     Mx (x=1;...;8)"
40406 PRINT "Tintenfarbe wechseln      Tx (x=1;...;8)"
40408 PRINT "Papierfarbe wechseln      Px (x=1;...;8)"
40410 GOSUB 40074:GOSUB 40058:CLS
40412 PRINT INK 8,PAPER 1;AT(0,3);"MUSTER - ENTWURF",STRING$(22," ")
40414 PRINT INK 8,PAPER 1;AT(1,3);STRING$(16,"*"),STRING$(22," ")
40416 WINDOW 0,6,23,39:PRINT INK 2,PAPER 1;"BL FV FZ Mx Tx Px";
40418 PRINT INK 2,PAPER 1;"neuer Befehl:  ";:WINDOW
40420 PAPER 1:GOSUB 40074:PAPER 8
40422 POKE 40*Z+S-6144,111+16*F(1)+F(0)-K*128
40424 POKE 40*Z+S-5120,ASC(M$(K))
40426 PRINT INK F(1),PAPER F(0);AT(Z,S);M$(K)
40428 PRINT INK F(1),PAPER F(0);AT(Z,39-S);M$(1)
40430 PRINT INK F(1),PAPER F(0);AT(27-Z,39-S);M$(1)
40432 PRINT INK F(1),PAPER F(0);AT(27-Z,S);M$(1)
40434 ZK$=CHR$(13)+CHR$(8)+CHR$(9)+CHR$(10)+CHR$(11)+"MFTPB":GOSUB 40068
40436 X=ASC(E$):IF X<8 OR X>11 THEN 40458
40438 POKE 40*Z+S-6144,16*F(1)+F(0)-17:POKE 40*Z+S-5120,ASC(M$(1))
40440 ON X-7 GOSUB 40442,40446,40450,40454:GOTO 40422
40442 S=S-1:IF S<0 THEN S=0:BEEP
40444 RETURN
40446 S=S+1:IF S>39 THEN S=39:BEEP
40448 RETURN
40450 Z=Z+1:IF Z>23 THEN Z=23:BEEP
40452 RETURN
40454 Z=Z-1:IF Z<4 THEN Z=4:BEEP
40456 RETURN
40458 TS$=E$:IF ASC(E$)=13 THEN 40076
40460 PRINT INK 4,PAPER 1;AT(2,37);E$+" "
40462 ON INSTR(E$,"MFTPB")GOTO 40464,40468,40472,40472,40476
40464 ZK$="12345678":GOSUB 40068
40466 PRINT INK 4,PAPER 1;AT(2,38);E$:M$(1)=MID$("",VAL(E$),1):GOTO 40422
40468 ZK$="VZ":GOSUB 40068
40470 PRINT INK 4,PAPER 1;AT(2,38);E$:IF E$="V"THEN K=1:GOTO 40422:ELSE K=0:GOTO 40422
40472 ZK$="12345678":GOSUB 40068
40474 PRINT INK 4,PAPER 1;AT(2,38);E$:F(ASC(TS$)/4-20)=VAL(E$):GOTO 40422
40476 ZK$="L":GOSUB 40068
40478 PRINT INK 4,PAPER 1;AT(2,38);E$:WINDOW 4,23,0,39:CLS:Z=4:S=0
40480 WINDOW:PAPER 1:GOSUB 40074:PAPER 8:GOTO 40422
40482!######## NIMM - SPIEL ########
40484 INK 4:PAPER 2:BORDER 2:CLS:PRINT AT(0,8);"N I M M   -   S P I E L"
40486 PRINT AT(1,8);STRING$(23,"*"):WINDOW 4,23,0,39:INK 5:PAPER 4:CLS
40488 WINDOW 5,22,1,38:EE$=INKEY$
40490 PRINT "Wieviel   Spielsteine   wuenschen"
40492 INPUT "Sie? (15...278)                 :";AZ
40494 PRINT:IF AZ<>INT(AZ)OR AZ<15 OR AZ>278 THEN 40490
40496 E$=STR$(INT(AZ/5)):PRINT "Wieviel  Steine   duerfen  hoech-"
40498 PRINT "stens genommen werden? (2...";RIGHT$(E$,LEN(E$)-1);
40500 PRINT ")";STRING$(4-LEN(E$)," ");:INPUT ":";T:PRINT
40502 IF T<>INT(T)OR T<2 OR T>VAL(E$)THEN 40496
40504 PRINT "Gewinnt  oder verliert derjenige,"
40506 PRINT "der den letzten Spielstein nimmt?"
40508 PRINT "(G oder V)                      : ";
40510 ZK$="GV":GOSUB 40068:G$=E$:PRINT G$
40512 PRINT:PRINT "Wer soll beginnen - Sie (S)  oder"
40514 PRINT "ich (C)?                        : ";
40516 ZK$="CS":GOSUB 40068:B$=E$:PRINT B$
40518 CLS:FOR I=1 TO AZ:PRINT INK 5;" ";:IF PEEK(43)=2 OR PEEK(43)=39 THEN PRINT " ";
40520 NEXT I:WINDOW 5,22,1,38:GOSUB 40074
40522 ON(ASC(B$)-67)/16+1 GOTO 40544,40524
40524 PRINT AT(22,1);"Sie sind dran und nehmen: "
40526 ZK$="0123456789"+CHR$(13):TS$=""
40528 GOSUB 40068:IF ASC(E$)=13 THEN 40532
40530 TS$=TS$+E$:PRINT AT(22,27);TS$:GOTO 40528
40532 E=VAL(TS$):PRINT AT(21,1);STRING$(40," "):PRINT AT(22,1);STRING$(40," ")
40534 IF(E>=1)AND(E<=T)AND(E<=AZ)AND(E=INT(E))THEN 40538
40536 PRINT AT(22,1);"Das geht nicht!":PAUSE 30:GOTO 40524
40538 FOR I=1 TO E:PRINT "  ";:IF PEEK(43)=2 OR PEEK(43)=39 THEN PRINT " ";
40540 NEXT I:GOSUB 40074:AZ=AZ-E
40542 IF AZ=0 THEN A=1:GOTO 40562
40544 IF G$="G"THEN E=AZ-INT(AZ/(T+1))*(T+1)
40546 IF G$="V"THEN E=AZ-INT((AZ-1)/(T+1))*(T+1)-1
40548 IF E=0 THEN E=FN ZZ(T)
40550 FOR I=1 TO E:PRINT "  ";:IF PEEK(43)=2 OR PEEK(43)=39 THEN PRINT " ";
40552 NEXT I:GOSUB 40074:IF G$="V"AND AZ=1 THEN E=1
40554 AZ=AZ-E
40556 PRINT AT(21,1);"Ich habe",E,"genommen.":PAUSE 30
40558 IF AZ=0 THEN A=2:GOTO 40562
40560 PRINT AT(21,1);"Jetzt verbleiben noch",AZ,"Spielsteine.    ":GOTO 40524
40562 PRINT CHR$(6):IF(G$="V"AND A=1)OR(G$="G"AND A=2)THEN 40566
40564 PRINT AT(22,1);"Glueckwunsch! Sie haben gewonnen!":GOTO 40568
40566 PRINT AT(22,1);"Damit habe ich gewonnen. Aetsch!"
40568 PRINT CHR$(6):WINDOW 5,22,1,38:PRINT "Wollen Sie  noch einmal  mitspie-"
40570 PRINT "len? (J oder N)                 : ";
40572 ZK$="JN"+CHR$(13):GOSUB 40068
40574 IF E$<>"J"THEN 40578:ELSE PRINT E$:PRINT
40576 PRINT AT(21,1);STRING$(38," "):PRINT AT(22,1);STRING$(38," "):GOTO 40490
40578 PRINT "N":PRINT:PRINT "Auf Wiedersehen!":GOSUB 40074:PAUSE 50:GOTO 40076
40580!######## SORTIEREN ########
40582 INK 8:PAPER 6:BORDER 6:CLS:PRINT AT(0,5);"S O R T I E R P R O G R A M M"
40584 PRINT AT(1,5);STRING$(29,"*"):WINDOW 4,23,0,39:INK 6:PAPER 8:CLS
40586 WINDOW 5,22,1,38:PRINT "  Zahlen oder Worte? (Z oder W): ";
40588 ZK$="WZ":GOSUB 40068
40590 PRINT E$:PRINT:IF E$="Z"THEN W=1:ELSE W=2
40592 INPUT "  Wieviel davon?               :";AZ:PRINT
40594 IF AZ<>INT(AZ)OR AZ<2 THEN BEEP:GOTO 40592
40596 IF AZ<12 THEN 40602
40598 BEEP:PRINT "    Das sind zu viel.":PRINT
40600 PRINT "    Bitte nicht mehr als 11!":PRINT:GOTO 40592
40602 CLS:DIM P$(AZ-1):ON W GOTO 40604,40606
40604 PRINT "      Geben Sie die Zahlen ein!":PRINT:GOTO 40608
40606 PRINT "      Geben Sie die Woerter ein!":PRINT
40608 WINDOW 8,22,10,38:FOR I=0 TO AZ-1
40610 PRINT RIGHT$("  "+STR$(I+1),3);:ON W GOTO 40612,40618
40612 INPUT ". Zahl:";P$(I):IF LEN(P$(I))<39 THEN 40620
40614 BEEP:PRINT:PRINT "Tut mir leid, aber":PRINT:PRINT "die ist zu gross!"
40616 PRINT:GOTO 40610
40618 INPUT ". Wort:";P$(I)
40620 PRINT:NEXT I:GOSUB 40074:M=0:J=1
40622 FOR I=J TO AZ-1:ON W GOTO 40624,40628
40624 IF VAL(P$(I))<VAL(P$(M))THEN M=I
40626 GOTO 40630
40628 IF P$(I)<P$(M)THEN M=I
40630 NEXT I:G$=P$(J-1):P$(J-1)=P$(M)
40632 P$(M)=G$:J=J+1:IF J<>AZ THEN M=J-1:GOTO 40622
40634 WINDOW 5,22,1,38
40636 CLS:INK 1:PRINT "  Sortierte Reihenfolge:":WINDOW 8,22,1,19
40638 FOR I=0 TO AZ-1:PRINT RIGHT$("  "+STR$(I+1),3);". ";
40640 IF W=1 THEN PRINT SPC(LEN(P$(AZ-1))-LEN(P$(I)));
40642 PRINT P$(I):PRINT:IF I=5 THEN WINDOW 8,22,20,38
40644 NEXT I:GOSUB 40074:GOSUB 40058:GOTO 40076
40646!######## TELE-LOTTO ########
40648 DIM P(5),P1(5):INK 3:PAPER 1:BORDER 1:CLS
40650 PRINT AT(0,7);"TELE - LOTTO - SIMULATION":PRINT AT(1,7);STRING$(25,"*")
40652 WINDOW 4,23,0,39:INK 8:PAPER 3:CLS:WINDOW 5,22,1,38
40654 PRINT "Stellen Sie sich vor, Sie spielen jede";
40656 PRINT "Woche zwei Tips  (Mittwoch und Sonntag";
40658 PRINT "je einen), und jedes Mal mit denselbenZahlen."
40660 PRINT "Bitte geben Sie nun diese Zahlen ein: ":EE$=INKEY$
40662 WINDOW 13,22,13,38:FOR I=1 TO 5
40664 PRINT:PRINT STR$(I);:INPUT ". Zahl: ";P1(I)
40666 IF P1(I)<>INT(P1(I))OR P1(I)<1 OR P1(I)>35 THEN BEEP:GOTO 40664
40668 FOR J=0 TO I-1:IF P1(I)=P1(J)THEN BEEP:GOTO 40664
40670 NEXT J,I:WINDOW 5,22,1,38:CLS
40672 PRINT "Ich ziehe  fuer Sie so oft Zahlen, bis";
40674 PRINT "Sie endlich  einen Fuenfer haben.  Mal";
40676 PRINT "sehen, wieviel Geld fuer Sie bis dahin";
40678 PRINT "floeten geht!?"
40680 PRINT "Wenn es Ihnen zu langweilig wird, dann";
40682 PRINT "druecken Sie einfach ENTER!":PRINT:PRINT "Ihr Tip:":GOSUB 40074
40684 FOR I=1 TO 5:PRINT AT(2*I+12,13);STR$(I),". Zahl: ",P1(I):NEXT I
40686 FOR I=1 TO 5:Z=FN ZZ(35)
40688 E$=INKEY$:IF E$=""THEN 40692
40690 IF ASC(E$)=13 THEN 40714
40692 IF Z>5 THEN AZ=AZ+1:GOTO 40686
40694 P(I)=Z:FOR J=0 TO I-1:IF P(I)=P(J)THEN AZ=AZ+1:GOTO 40686
40696 NEXT J,I:AZ=AZ+1
40698 CLS:PRINT "Glueckwunsch!  Sie haben es geschafft!"
40700 PRINT "Die folgenden Zahlen wurden gezogen:  "
40702 PRINT SPC(9);CHR$(22);:FOR I=1 TO 5:PRINT P1(P(I));:NEXT I:PRINT CHR$(22)
40704 PRINT:PRINT "Sie hatten aber Ihren Fuenfer bedauer-"
40706 PRINT "licherweise  erst im ";MID$(STR$(AZ),2);". Versuch!":PRINT
40708 PRINT "Das hat Sie";AZ;"Mark gekostet.":PRINT
40710 PRINT "Rechnen Sie doch mal aus,  wie alt Sie"
40712 PRINT "inzwischen geworden waeren!":GOSUB 40058:GOTO 40076
40714 CLS:PRINT "Abbruch nach";AZ;"Versuchen!":PRINT
40716 PRINT "Ich konnte bis jetzt noch keinen Fuen-"
40718 PRINT "fer fuer Sie ermitteln.":PRINT
40720 PRINT "Rechnen Sie doch mal aus, wieviel Jah-"
40722 PRINT "re inzwischen vergangen waeren  und um"
40724 PRINT "wieviel Ihr Portemonaie in dieser Zeit"
40726 PRINT "duenner geworden waere! (Gluecklicher-"
40728 PRINT "weise  w a e r e  es nur ...)":GOSUB 40074:GOSUB 40058:GOTO 40076
40730!######## TOCCATA ########
40732 X$=CHR$(142):Y$=CHR$(191):INK 6:PAPER 8:POKE-4152,32:OUT 136,184:CLS
40734 PRINT " ";
40736 PRINT " ";X$;
40738 PRINT:PRINT "              ";
40740 PRINT "      ";Y$;"      ";Y$;"      ";
40742 PRINT Y$;"          ";Y$;"     ";Y$;
40744 PRINT "     ";Y$;"                   ";
40746 PRINT "             ";X$;"  ";X$;
40748 PRINT "           ";X$;"   ";
40750 PRINT "                             ";
40752 PRINT "    ";Y$;"               ";
40754 PRINT "                         ";
40756 PRINT "                     ";
40758 PRINT "  ";X$;"  ";X$;"        ";Y$;
40760 PRINT "";X$;"  ";X$;"      ";
40762 PRINT "                            ";
40764 PRINT "    ";X$;"   ";X$;"  ";
40766 PRINT "   ";X$;"   ";X$
40768 PRINT " ";
40770 PRINT " ";X$
40772 INK 5:PRINT "     SIE HOEREN EINEN AUSCHNITT AUS":PRINT 
40774 PRINT "        TOCCATA UND FUGE  D-MOLL":PRINT
40776 PRINT "       VON  JOHANN SEBASTIAN BACH";:POKE-4152,16:GOSUB 40074:PAUSE 100
40778 DIM P(36):RESTORE 40780:FOR I=0 TO 36:READ P(I):NEXT I
40780 DATA 0,-18,-17,-16,243,229,216,204,193,182,172,162,153
40782 DATA 144,136,128,121,114,108,102,96,91,86,81,76
40784 DATA 72,68,64,60,57,54,51,48,45,43,40,38
40786 GOTO 40794
40788 IF P(H)=0 THEN 40792
40790 IF P(H)>0 THEN OUT 128,7:OUT 128,P(H):ELSE OUT 128,39:OUT 128,-P(H)
40792 FOR K=1 TO L*T:NEXT K:OUT 128,3:RETURN
40794 T=15:RESTORE 40804:FOR I=1 TO 31:READ H,L:GOSUB 40788:NEXT I
40796 T=5:RESTORE 40810:FOR I=1 TO 6:READ H,L:GOSUB 40788:NEXT I
40798 RESTORE 40812:FOR I=1 TO 142:READ H,L:GOSUB 40788:NEXT I
40800 RESTORE 40838:FOR I=1 TO 28:READ H,L:GOSUB 40788:NEXT I
40802 OUT 136,56:PAUSE 40:GOTO 40076
40804 DATA 34,6,32,6,34,12,0,6,32,3,30,3,29,3,27,3,26,6,27,12,0,36,22,6,20,6
40806 DATA 22,12,0,6,17,6,18,6,14,6,15,12,0,36,10,6,8,6,10,12,0,6,8,3,6,3
40808 DATA 5,3,3,3,2,6,3,12,0,84
40810 DATA 2,64,5,4,8,4,11,4,14,4,17,64
40812 DATA 8,12,5,12,7,24,0,84,14,12
40814 DATA 15,8,17,8,14,8,15,8,17,8,14,8,15,8,17,8,14,8,15,12,17,12
40816 DATA 18,8,20,8,17,8,18,8,20,8,17,8,18,8,20,8,17,8,18,12,20,12
40818 DATA 22,8,23,8,20,8,22,8,23,8,20,8,22,8,23,8,20,8,22,12,0,96,26,12
40820 DATA 27,8,29,8,26,8,27,8,29,8,26,8,27,8,29,8,26,8,27,12,29,12
40822 DATA 31,8,32,8,29,8,31,8,32,8,29,8,31,8,32,8,29,8,30,12,32,12
40824 DATA 34,8,35,8,32,8,34,8,35,8,32,8,34,8,35,8,32,8,34,12,0,96,34,12
40826 DATA 32,8,35,8,29,8,32,8,35,8,29,8,30,8,34,8,27,8,30,8,34,8,27,8
40828 DATA 29,8,32,8,25,8,29,8,32,8,25,8,27,8,30,8,23,8,27,8,30,8,23,8
40830 DATA 25,8,29,8,22,8,25,8,29,8,22,8,23,8,27,8,20,8,23,8,27,8,20,8
40832 DATA 22,8,25,8,18,8,22,8,25,8,18,8,20,8,23,8,17,8,20,8,23,8,17,8
40834 DATA 18,8,22,8,15,8,18,8,22,8,15,8,17,8,20,8,14,8,17,8,20,8,14,8,0,48
40836 DATA 2,96,5,2,8,2,11,2,14,2,17,2,20,2,23,2
40838 DATA 23,6,22,6,20,6,18,6,17,6,15,6,14,6,12,6,14,12,10,12,14,12,17,6
40840 DATA 20,6,18,3,20,3,18,3,20,3,18,3,20,3,18,3,20,3,18,3,20,3,18,3,20,3
40842 DATA 17,12,0,4,3,96
40844!######## UHR ########
40846 DIM P$(4):INK 4:PAPER 1:BORDER 1:CLS:PRINT AT(0,9);"UHR MIT DIGITALANZEIGE"
40848 PRINT AT(1,9);STRING$(22,"*"):PRINT AT(10,7);"Stellen Sie bitte die Uhr!"
40850 INK 3:WINDOW 18,22,12,12:PRINT " ":WINDOW 18,22,26,26:PRINT " "
40852 DATA "","    ","   ",""," "
40854 RESTORE 40852:FOR I=0 TO 4:READ P$(I):NEXT I
40856 WINDOW:GOSUB 40074:FOR I=0 TO 2:TS$="":FOR J=0 TO 1
40858 ZK$="0123456789":GOSUB 40068
40860 R=VAL(E$):S=14*I+6*J:GOSUB 40954:TS$=TS$+E$:NEXT J:Z(I)=VAL(TS$)
40862 IF Z(I)>41+18*SGN(I-.5)THEN 40866
40864 NEXT I:INK 4:PRINT AT(10,3);" Starten Sie nun die Uhr mit S! ":GOTO 40872
40866 BEEP:PAUSE 1:BEEP:PAUSE 1:BEEP:PAUSE 1:BEEP:INK 4
40868 PRINT AT(10,3);"FEHLER! Bitte nocheinmal eingeben!"
40870 WINDOW 15,23,0,39:CLS:GOTO 40850
40872 ZK$="S":GOSUB 40068
40874 POKE 31,Z(2):POKE 30,Z(1):POKE 29,Z(0):WINDOW 1,15,0,39
40876 INK 4:PRINT AT(0,9);STRING$(22," ")
40878 PRINT "     "
40880 PRINT "                    "
40882 PRINT "                         "
40884 PRINT "                     "
40886 PRINT "                      "
40888 PRINT "                        "
40890 PRINT "                       "
40892 PRINT "                       "
40894 PRINT "                        "
40896 PRINT "             ":WINDOW:GOSUB 40074
40898 INK 2:PRINT AT(13,0);">>  r o b o t r o n   K C   8 5 / 1  <<"
40900 INK 3:EE$=INKEY$
40902 I=2
40904 Z=PEEK(29+I):Q=INT(Z/10):R=Z-10*Q:S=14*I+6:GOSUB 40918
40906 E$=INKEY$:IF E$=""THEN 40910
40908 IF ASC(E$)=13 THEN 40076
40910 IF R<>0 THEN 40902
40912 R=Q:S=S-6:GOSUB 40918:IF R<>0 THEN 40902
40914 I=I-1:IF I<0 THEN 40902
40916 GOTO 40904
40918 ON R+1 GOTO 40920,40924,40928,40932,40934,40938,40942,40944,40948,40952
40920 PRINT AT(17,S);"   ":PRINT AT(18,S);"   ":PRINT AT(19,S);"   "
40922 PRINT AT(20,S);"   ":PRINT AT(21,S);"   ":RETURN
40924 PRINT AT(17,S);" ":PRINT AT(18,S);" ":PRINT AT(19,S);" ":PRINT AT(20,S);" "
40926 PRINT AT(21,S);" ":PRINT AT(16,S);"    ":PRINT AT(22,S);"    ":RETURN
40928 PRINT AT(16,S);"":PRINT AT(19,S);"":PRINT AT(20,S);"    "
40930 PRINT AT(21,S);"    ":PRINT AT(22,S);"":RETURN
40932 PRINT AT(19,S);" ":PRINT AT(20,S);"    ":PRINT AT(21,S);"    ":RETURN
40934 PRINT AT(16,S+1);"   ":PRINT AT(17,S);"":PRINT AT(18,S);""
40936 PRINT AT(19,S);"":PRINT AT(22,S);"    ":RETURN
40938 PRINT AT(16,S+1);"":PRINT AT(17,S+4);" ":PRINT AT(18,S+4);" "
40940 PRINT AT(22,S);"":RETURN
40942 PRINT AT(20,S);"":PRINT AT(21,S);"":RETURN
40944 PRINT AT(17,S);"    ":PRINT AT(18,S);"    ":PRINT AT(19,S);"    "
40946 PRINT AT(20,S);" ":PRINT AT(21,S);" ":PRINT AT(22,S);"    ":RETURN
40948 PRINT AT(17,S);"":PRINT AT(18,S);"":PRINT AT(19,S);""
40950 PRINT AT(20,S);"":PRINT AT(21,S);"":PRINT AT(22,S);"":RETURN
40952 PRINT AT(20,S);" ":PRINT AT(21,S);" ":RETURN
40954 ON R+1 GOTO 40956,40958,40960,40962,40964,40966,40968,40970,40972,40974
40956 DATA 3,2,2,2,2,2,3:RESTORE 40956:GOTO 40976
40958 DATA 1,1,1,1,1,1,1:RESTORE 40958:GOTO 40976
40960 DATA 3,1,1,3,0,0,3:RESTORE 40960:GOTO 40976
40962 DATA 3,1,1,4,1,1,3:RESTORE 40962:GOTO 40976
40964 DATA 2,2,2,3,1,1,1:RESTORE 40964:GOTO 40976
40966 DATA 3,0,0,3,1,1,3:RESTORE 40966:GOTO 40976
40968 DATA 3,0,0,3,2,2,3:RESTORE 40968:GOTO 40976
40970 DATA 3,1,1,1,1,1,1:RESTORE 40970:GOTO 40976
40972 DATA 3,2,2,3,2,2,3:RESTORE 40972:GOTO 40976
40974 DATA 3,2,2,3,1,1,3:RESTORE 40974:GOTO 40976
40976 FOR K=0 TO 6:READ L:PRINT AT(16+K,S);P$(L):NEXT K:RETURN
40978!######## MITTELWERT ########
40980 PA=1:INK 1:PAPER 4:BORDER 4:CLS:PRINT AT(0,9);"MITTELWERTBERECHNUNGEN"
40982 PRINT AT(1,9);STRING$(22,"*"):WINDOW 4,23,0,39:INK 2:PAPER 1:CLS
40984 WINDOW 5,22,1,38
40986 PRINT "Das Programm berechnet Ihnen innerhalb"
40988 PRINT "kuerzester Zeit  folgende statistische"
40990 PRINT "Werte:  arithmetisches,  geometrisches"
40992 PRINT "und harmonisches Mittel,  Stichproben-"
40994 PRINT "streuung und Standardabweichung.":PRINT
40996 PRINT "Bitte geben Sie ein, wieviel Messwerte"
40998 EE$=INKEY$:INPUT "Sie vorliegen haben:";AZ:PRINT
41000 IF AZ=INT(AZ)AND AZ>0 THEN INK 4:CLS:GOTO 41004
41002 INPUT "Wieviel Werte?      ";AZ:PRINT:GOTO 41000
41004 FOR I=1 TO AZ:PRINT SPC(10-LEN(STR$(I)));STR$(I);". Wert: ";:INPUT "";AI
41006 PRINT:IF AI=0 THEN T=1
41008 SA=SA+AI:PA=PA*AI:IF T=0 THEN SR=SR+1/AI
41010 SQ=SQ+AI*AI:NEXT I:INK 2:CLS:SR=INT(1000000*SR)/1000000
41012 SA=INT(1000000*SA)/1000000
41014 PRINT "     Arithmetisches Mittel:";SA/AZ:PRINT
41016 PRINT "     Geometrisches Mittel :";
41018 IF PA>=0 THEN PRINT PA^(1/AZ):PRINT:GOTO 41024
41020 PRINT:PRINT:PRINT INK 6;SPC(6);"Nicht berechenbar!":PRINT
41022 PRINT INK 6;SPC(6);"Radikant ist negativ!":PRINT
41024 PRINT "     Harmonisches Mittel  :";
41026 IF SR<>0 AND T<>1 THEN PRINT AZ/SR:PRINT:GOTO 41032
41028 PRINT:PRINT:PRINT INK 6;SPC(6);"Wegen Division durch":PRINT
41030 PRINT INK 6;SPC(6);"0 nicht berechenbar!":PRINT
41032 X=SQ-SA*SA/AZ:X=INT(100000*X)/100000
41034 PRINT "     Standardabweichung   :";
41036 IF AZ<>1 THEN PRINT SQR(X/(AZ-1)):PRINT:GOTO 41042
41038 PRINT:PRINT:PRINT INK 6;SPC(6);"Fuer nur einen Wert":PRINT
41040 PRINT INK 6;SPC(6);"nicht berechenbar!":PRINT
41042 PRINT "     Stichprobenstreuung  :";SQR(X/AZ);:GOSUB 40058:GOTO 40076
41044!######## SCHLUESSEL ########
41046 INK 5:PAPER 4:BORDER 4:CLS:PRINT AT(1,1);STRING$(39,"*")
41048 PRINT AT(0,1);"T E X T V E R S C H L U E S S E L U N G":WINDOW 4,23,0,39
41050 INK 2:PAPER 8:CLS:WINDOW 5,22,1,38
41052 PRINT "Entscheiden Sie sich, ob Sie Text ver-"
41054 PRINT "oder entschluesseln wollen und waehlen"
41056 PRINT "Sie dementsprechend V oder E: ";:ZK$="VE":GOSUB 40068
41058 PRINT E$:PRINT:Y=1:IF E$="E"THEN Y=-1
41060 PRINT "Jetzt muessen Sie sich noch fuer einen"
41062 PRINT "beliebigen Buchstaben entscheiden, der"
41064 PRINT "Ihnen als Schluessel dient und der zur"
41066 PRINT "Geheimhaltung  n i c h t  mit  auf dem"
41068 PRINT "Bildschirm angezeigt wird: ";:ZK$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
41070 GOSUB 40068:X=INSTR(E$,ZK$)
41072 X=X*Y:CLS:PRINT "Geben Sie nun den Text ein!":INK 3
41074 PRINT:PRINT:EE$=INKEY$
41076 E$=INKEY$:IF E$=""THEN 41076
41078 Y=ASC(E$):IF Y=13 THEN 40076
41080 IF Y<65 OR Y>90 THEN 41086
41082 Y=Y+X:IF Y>90 THEN Y=Y-26
41084 IF Y<65 THEN Y=Y+26
41086 PRINT CHR$(Y);:GOTO 41076
41088!######## PRIMZAHLEN ########
41090 INK 4:PAPER 5:BORDER 5:CLS:PRINT AT(0,11);"P R I M Z A H L E N"
41092 PRINT AT(1,11);STRING$(19,"*"):WINDOW 4,23,0,39:INK 1:PAPER 7:CLS
41094 WINDOW 5,22,1,38
41096 PRINT " Wofuer interessieren Sie sich? :  ";
41098 PRINT AT(8,4);"Primzahlfolge von 2 bis x  F"
41100 PRINT AT(10,4);"Primfaktorzerlegungen      Z"
41102 ZK$="FZ":GOSUB 40068
41104 PRINT E$:PRINT:POKE 43,1:POKE 44,13:PRINT:IF E$="Z"THEN 41122
41106 PRINT "Es soll die Folge aller Primzahlen von"
41108 PRINT "2 bis x ausgegeben werden. Geben Sie x":EE$=INKEY$
41110 INPUT "mit x>4 ein! :  ";X:CLS
41112 IF X<5 OR X<>INT(X)THEN 41106:ELSE PRINT 2;3;
41114 FOR I=5 TO X STEP 2:FOR J=3 TO SQR(I)STEP 2:Q=I/J:IF Q=INT(Q)THEN 41118
41116 NEXT J:IF LEN(STR$(I))>37-POS(X)THEN PRINT:PRINT I;:ELSE PRINT I;
41118 NEXT I
41120 PRINT:PRINT:PRINT " Ende!":GOSUB 40058:GOTO 40076
41122 PRINT "Geben Sie die Zahl,  die in ihre Prim-"
41124 PRINT "faktoren zerlegt werden soll, ein!    ":PRINT:PRINT SPC(14);
41126 EE$=INKEY$:INPUT " ";X:CLS:PRINT:PRINT:PRINT:PRINT
41128 IF X<>INT(X)OR X<2 THEN 41174
41130 IF X<1E6 THEN 41140
41132 PRINT "Diese Zahl  ist fuer eine exakte Prim-"
41134 PRINT "faktorzerlegung zu gross.  Die Zahlen,"
41136 PRINT "mit denen  ich arbeiten soll,  duerfen"
41138 PRINT "nicht groesser als sechsstellig sein!":GOTO 41178
41140 K=0:D=2:S=2
41142 IF X=1 THEN 41178
41144 Q=X/D:IF Q<>INT(Q)THEN 41152
41146 IF K=0 THEN PRINT X;"=";D;:K=1:X=Q:GOTO 41142
41148 PRINT "*";
41150 PRINT D;:X=Q:GOTO 41142
41152 IF D=2 THEN D=3:GOTO 41144
41154 D=5
41156 IF X=1 THEN 41178
41158 Q=X/D:R=X-INT(Q)*D:IF R<>0 THEN 41166
41160 IF K=0 THEN PRINT X;"=";D;:K=1:X=Q:GOTO 41156
41162 PRINT "*";
41164 PRINT D;:X=Q:GOTO 41156
41166 IF D<INT(Q)THEN D=D+S:S=6-S:GOTO 41158
41168 IF K=0 THEN PRINT X;"=";X;:GOTO 41178
41170 PRINT "*";
41172 PRINT X;:GOTO 41178
41174 PRINT "Fuer diese Zahl ist die Primfaktorzer-"
41176 PRINT "legung nicht definiert!"
41178 GOSUB 40058:GOTO 40076
41180!######## KOVERTIERUNG ########
41182 PAPER 8:INK 2:BORDER 8:CLS:PRINT AT(1,1);STRING$(37,"*")
41184 PRINT AT(0,1);"Z A H L E N K O N V E R T I E R U N G":WINDOW 4,23,0,39
41186 INK 8:PAPER 2:CLS:WINDOW 5,22,1,38:EE$=INKEY$
41188 PRINT "Sie haben jetzt die Moeglichkeit,  vom"
41190 PRINT "Computer  Zahlen eines beliebigen Sys-"
41192 PRINT "tems  (zum Beispiel Dezimalsystem)  in"
41194 PRINT "ein anderes System (zum Beispiel Dual-"
41196 PRINT "system) zu konvertieren. Die Basen der"
41198 PRINT "beiden Systeme  duerfen dabei aus pro-"
41200 PRINT "grammtechnischen Gruenden  die Groesse"
41202 PRINT "36 nicht uerberschreiten.":GOSUB 40074:GOSUB 40058:CLS
41204 INPUT "Basis des Ausgangssystems :";A:PRINT
41206 IF A<>INT(A)OR A<2 OR A>36 THEN 41204
41208 INPUT "Basis des Zielsystems     :";Z:PRINT
41210 IF Z<>INT(Z)OR Z<2 OR Z>36 THEN 41208
41212 INPUT "Zahl im Ausgangssystem    :";G$:PRINT
41214 B=1:X=0:FOR I=1 TO LEN(G$):T$=LEFT$(RIGHT$(G$,I),1):C=ASC(T$)
41216 IF C>47 AND C<58 THEN T=C-48:ELSE T=C-55
41218 IF T>=0 AND A>T THEN 41226
41220 PRINT "Ihre Zahl enthaelt Ziffern,"
41222 PRINT "die es im Zahlensystem  mit"
41224 PRINT "der Basis";A;"nicht gibt!":PRINT:GOTO 41244
41226 X=X+B*T:B=A*B:NEXT I
41228 IF X<1000000 THEN 41234
41230 PRINT "Ihre Zahl ist fuer mich ein"
41232 PRINT "bisschen zu gross!":PRINT:GOTO 41244
41234 B=1:G$=""
41236 B=B*Z:IF B<=X THEN 41236
41238 B=INT(B/Z):C=INT(X/B):IF C<10 THEN T$=RIGHT$(STR$(C),1):ELSE T$=CHR$(C+55)
41240 G$=G$+T$:X=X-B*C:IF B<>1 THEN 41238
41242 PRINT "Zahl im Zielsystem        : ";G$:PRINT
41244 PRINT "Nochmal? (J oder N)       : ";
41246 ZK$="JN":GOSUB 40068:IF E$="J"THEN CLS:GOTO 41204:ELSE 40076
41248!######## MORSEN ########
41250 INK 4:PAPER 6:OUT 136,168:CLS:T=30:H=70
41252 PRINT AT(0,4);"E I N F A C H E S   M O R S E N"
41254 PRINT AT(1,4);STRING$(31,"*"):WINDOW 4,23,0,39:INK 5:PAPER 4:CLS
41256 WINDOW 5,22,1,38
41258 PRINT "Zeichenvorrat:";CHR$(123);"A...Z";CHR$(125);", ";CHR$(123);
41260 PRINT "0...9";CHR$(125)
41262 PRINT TAB(14)CHR$(123);"+-*:/,.?'";CHR$(34);"=()";CHR$(125):PRINT
41264 PRINT "Sonderzeichen:";CHR$(123);">";CHR$(125);" - Anfangszeichen"
41266 WINDOW 9,22,15,38:PRINT CHR$(123);"<";CHR$(125);" - Schlusszeichen"
41268 PRINT CHR$(123);"#";CHR$(125);" - Irrung"
41270 PRINT CHR$(123);";";CHR$(125);" - Verstanden"
41272 PRINT CHR$(123);"%";CHR$(125);" - Nicht verstanden"
41274 PRINT CHR$(123);"&";CHR$(125);" - Warten!"
41276 PRINT CHR$(123);"$";CHR$(125);" - Senden!"
41278 INK 2:WINDOW 16,22,1,38:EE$=INKEY$
41280 E$=INKEY$:IF E$=""THEN 41280
41282 X=ASC(E$):IF X=32 THEN PRINT " ";:FOR J=1 TO 6*T:NEXT J
41284 IF X=13 THEN OUT 136,0:GOTO 40076
41286 IF X<34 OR X>90 OR X=64 THEN 41280
41288 IF X=35 THEN U=9:GOSUB 41354:PRINT " irrung! ";:M=1111:W=1:GOSUB 41344:GOTO 41280
41290 IF X=36 THEN U=9:GOSUB 41354:PRINT " senden! ";:M=313:GOSUB 41344:GOTO 41280
41292 IF X=37 THEN U=19:GOSUB 41354:PRINT " nicht verstanden! ";:M=113311:GOTO 41296
41294 GOTO 41298
41296 GOSUB 41344:GOTO 41280
41298 IF X=38 THEN U=9:GOSUB 41354:PRINT " warten! ";:M=13111:GOSUB 41344:GOTO 41280
41300 IF X=59 THEN U=13:GOSUB 41354:PRINT " verstanden! ";:M=11131:GOTO 41304
41302 GOTO 41306
41304 GOSUB 41344:GOTO 41280
41306 IF X=60 THEN U=7:GOSUB 41354:PRINT " ende! ";:M=111313:GOSUB 41344:GOTO 41280
41308 IF X=62 THEN U=9:GOSUB 41354:PRINT:PRINT " beginn! ";:M=31313:GOTO 41312
41310 GOTO 41314
41312 GOSUB 41344:GOTO 41280
41314 PRINT E$;:IF X>63 THEN 41318
41316 RESTORE 41320:FOR I=1 TO X-33:READ M:NEXT I:GOSUB 41344:GOTO 41280
41318 RESTORE 41332:FOR I=1 TO X-63:READ M:NEXT I:GOSUB 41344:GOTO 41280
41320 DATA 131131,0,0,0,0
41322 DATA 133331,31331,313313,3113,13131
41324 DATA 331133,311113,131313,31131,33333
41326 DATA 13333,11333,11133,11113,11111
41328 DATA 31111,33111,33311,33331,333111
41330 DATA 0,0,31113,0,113311
41332 DATA 0,13,311,3131,311
41334 DATA 1,1131,331,1111,11
41336 DATA 1333,313,1311,33,31
41338 DATA 333,1331,3313,131,111
41340 DATA 3,113,1113,133,3113
41342 DATA 3133,3311,0,0,0
41344 G$=STR$(M):FOR I=2 TO LEN(G$):A=VAL(MID$(G$,I,1)):GOSUB 41350:NEXT I
41346 IF X=35 AND W=1 THEN W=0:GOTO 41344
41348 FOR J=1 TO 2*T:NEXT J:RETURN
41350 OUT 128,7:OUT 128,H:FOR J=1 TO A*T:NEXT J:OUT 128,3
41352 FOR J=1 TO T:NEXT J:RETURN
41354 IF PEEK(43)+U>40 THEN PRINT
41356 RETURN