Random demo
Random demo
Random software
  • Entry name:
     Kryptogram 
  • Category:
    Other
  • Publisher/Developer:
    Flop 5
  • Programming language:
    Atari BASIC
  • Entry name:
    Kryptogram
  • Category:
    Other
  • Publisher/Developer:
    Flop 5
Kryptogram Kryptogram Kryptogram Kryptogram
Listing 1
100 DIM A$(10),​C$(10),​M$(255),​B$(10)
120 REM *****************************
125 REM * KODOVACI program:​ *
130 REM * ocekava text zpravy *
135 REM * vytiskne ciselnou formu *
140 REM * vytiskne kryptogram *
145 REM *****************************
150 REM * DEKODOVACI program:​ *
155 REM * ocekava kod kryptogramu *
160 REM * dekoduje blok *
165 REM * vytiskne ciselnou formu *
170 REM * vytiskne celou zpravu *
175 REM *****************************
180 REM * KODOVACI KLIC:​ N=P*Q *
185 REM * P A Q jsou prvocisla *
190 REM * DEKODOVACI KLIC:​ D *
195 REM * D=(2*(P-1)*(Q-1)+1)/3 *
200 REM * P-1 MOD 3 nesmi byt 0 *
205 REM * Q-1 MOD 3 nesmi byt 0 *
210 REM *****************************
211 REM * Pro ATARI upravila podle *
212 REM * 2.cisla LIST (Pocit. hry) *
213 REM * L.Kolarikova,​ AK Roznov *
214 REM *****************************
215 REM
220 DIM M(100):​REM pocet bloku
225 CH=2:​REM pocet znaku v bloku
230 REM
235 REM zvolena prvocisla P a Q
240 P=107:​Q=89
245 REM
250 REM kodovaci klic N
255 N=P*Q
260 REM
265 REM dekodovaci klic D
270 D=(2*(P-1)*(Q-1)+1)/3
275 REM
280 PRINT ""
285 PRINT "Kodovat?(A/N):​ ";
290 INPUT A$:​IF A$(1)="A" THEN GOSUB 320
295 PRINT "Dekodovat?(A/N):​ ";
300 INPUT A$:​IF A$="A" THEN GOSUB 470
305 PRINT "Chces pokracovat (A/N):​";
310 INPUT A$:​IF A$="A" THEN 280
315 END
320 REM
325 REM * KODOVACI RUTINA *
330 PRINT "Zprava k zakodovani:​"
335 INPUT M$
340 IF M$="" THEN RETURN
345 L=LEN(M$)
350 O=INT(L/CH)
355 R=L-O*CH
360 IF R>0 THEN M$(L+1)=CHR$(0):​GOTO 345
365 FOR I=0 TO O-1
370 M(I)=0
375 FOR J=1 TO CH
380 A=ASC(M$(2*I+J))
385 M(I)=M(I)*100
390 M(I)=M(I)+A
395 NEXT J
400 BL=M(I):​GOSUB 540
405 NEXT I
410 PRINT:​PRINT
415 PRINT "KRYPTOGRAM"
420 FOR I=0 TO O-1
425 M=M(I)
430 GOSUB 455
435 BL=C:​GOSUB 540
440 NEXT I
445 PRINT
450 RETURN
455 C=M*M:​C=C-INT(C/N)*N
460 C=C*M:​C=C-INT(C/N)*N
465 RETURN
470 REM
475 REM * DEKODOVACI RUTINA *
480 I=0
485 PRINT "Zakodovany blok (konec=-1)"
487 INPUT C
490 IF C=-1 THEN 580
495 GOSUB 510
500 M(I)=M:​I=I+1:​PRINT M
505 GOTO 487
510 D1=D:​M=1
515 IF D1/2=INT(D1/2) THEN 525
520 M=M*C:​M=M-INT(M/N)*N
525 C=C*C:​C=C-INT(C/N)*N
530 D1=INT(D1/2):​IF D1>0 THEN 515
535 RETURN
540 REM
545 C$=STR$(BL)
550 IF LEN(C$)>=5 THEN 565
555 B$=C$:​C$(1)=" ":​C$(2)=B$
560 GOTO 550
565 PRINT C$
570 RETURN
575 REM
580 O=I-1:​IF O=-1 THEN PRINT:​RETURN
585 PRINT:​PRINT "DEKODOVANA ZPRAVA:​"
590 PRINT
595 FOR I=0 TO O
600 A$=STR$(M(I))
605 FOR J=1 TO CH
610 PRINT CHR$(VAL(A$(2*J-1,​2*J)));
615 NEXT J:​NEXT I:​PRINT
620 RETURN
630 REM *****************************
890 REM *****************************
900 REM * NA RADKU 1000 ZACINA *
910 REM * RUTINA,​ KTERA ZKONTROLUJE,​*
920 REM * ZDA ZADANE CISLO JE PRVO- *
930 REM * CISLO A ZDA JEHO PREDCHUD-*
940 REM * CE NENI DELITELNY TREMI. *
950 REM * DALSI PODMINKY JSOU UVEDE-*
960 REM * NY V POPISU KRYPTOGR.CAP. *
980 REM *****************************
1000 PRINT "ZADEJ CISLO:​";
1010 INPUT C
1020 FOR I=2 TO C/2+1
1030 IF C/I=INT(C/I) THEN 1200
1040 NEXT I
1050 PRINT C;" JE PRVOCISLO ";
1060 IF (C-1)/3=INT((C-1)/3) THEN PRINT "NE";
1070 PRINT "VHODNE PRO KLIC"
1110 PRINT:​PRINT:​GOTO 1000
1200 PRINT C;" JE DELITELNE CISLEM ";I
1210 PRINT:​PRINT:​GOTO 1000	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!