1 REM ++++++++++++++++++++++++++++++++ 2 REM ! Program .... LOTTO576 3 REM ! Utg}va 1.0 83-06-30 4 REM ! av (c) TORDH JOHANSSON 7 REM ! Minne 32 Kbytes 8 REM ! Ins{nt av 666 9 REM ++++++++++++++++++++++++++++++++ 10 REM 11 REM Screened by C R LERIN. 12 REM 100 ; CHR$(12%) 105 DIM G%(7),G7%(1023),G6%(511),G5%(31),R%(1000,6),T%(35),A$(35) 110 ; CHR$(12%) : ; "MENY ";STRING$(34%,35%) : ; : ; 115 ; "1. Nytt system..." : ; 120 ; "2. Garantiutr{kning..." : ; 125 ; "3. Utskrift av garantitabell..." : ; 130 ; "4. Utskrift av rader..." : ; 135 ; "5. [ndring av rader..." : ; 140 ; "6. Till{gg av rader..." : ; 145 ; "7. Borttagande av rader..." : ; 150 ; "8. Avslutning!" : ; : ; 155 IF A$<>"1" OR A$<>"2" OR A$<>"3" OR A$<>"4" OR A$<>"5" OR A$<>"6" OR A$<>"7" OR A$<>"8" THEN ONERRORGOTO 155 160 ; "Vad |nskas"; : INPUT A$ 165 A%=VAL(A$) 170 IF A%>8 OR A%<1 THEN 155 175 ON A% GOTO 420,180,595,785,460,490,515,940 180 ; CHR$(12%) : ; "GARANTIUTR[KNING ";STRING$(22%,35%) : ; : ; 185 E1%=0 190 ; "R[TTNINGSF\LJD (EX.: 576, 67, 5...)"; : INPUT F$ 195 E%=LEN(F$) 200 E1%=E1%+1 205 IF E1%>E% THEN 250 210 D%=VAL(MID$(F$,E1%,1)) 215 IF D%>7 OR D%<5 THEN 200 220 N1%=N%+1-D% : N2%=N1%+1 : N3%=N2%+1 : N4%=N3%+1 : N5%=N4%+1 : N6%=N5%+1 : N7%=N6%+1 225 ; : ; D%;"-kryssrader r{ttas!" 230 ON D% GOTO 250,250,250,250,235,240,245 235 FOR G%=0 TO 31 : G5%(G%)=0 : NEXT G% : GOTO 370 240 FOR G%=0 TO 511 : G6%(G%)=0 : NEXT G% : GOTO 315 245 FOR G%=0 TO 1023 : G7%(G%)=0 : NEXT G% : GOTO 260 250 ; : ; "VALFRI TANGENT! FORTS[TTNING"; 255 INPUT B$ : GOTO 110 260 FOR K1%=1 TO N1% : FOR K2%=K1%+1 TO N2% : FOR K3%=K2%+1 TO N3% : FOR K4%=K3%+1 TO N4% : FOR K5%=K4%+1 TO N5% 265 FOR K6%=K5%+1 TO N6% : FOR K7%=K6%+1 TO N7% 270 G%(1)=0 : G%(2)=0 : G%(3)=0 : G%(4)=0 : G%(5)=0 : G%(6)=0 : G%(7)=0 275 T%(K1%)=1 : T%(K2%)=1 : T%(K3%)=1 : T%(K4%)=1 : T%(K5%)=1 : T%(K6%)=1 : T%(K7%)=1 280 FOR X%=1 TO R% 285 P%=T%(R%(X%,0))+T%(R%(X%,1))+T%(R%(X%,2))+T%(R%(X%,3))+T%(R%(X%,4))+T%(R%(X%,5))+T%(R%(X%,6)) 290 G%(P%)=G%(P%)+1 : NEXT X% 295 A%=G%(7)*512+G%(6)*32+G%(5) : G7%(A%)=G7%(A%)+1 300 T%(K1%)=0 : T%(K2%)=0 : T%(K3%)=0 : T%(K4%)=0 : T%(K5%)=0 : T%(K6%)=0 : T%(K7%)=0 305 NEXT K7% : NEXT K6% : NEXT K5% : NEXT K4% : NEXT K3% : NEXT K2% : NEXT K1% 310 GOTO 200 315 FOR K1%=1 TO N1% : FOR K2%=K1%+1 TO N2% : FOR K3%=K2%+1 TO N3% : FOR K4%=K3%+1 TO N4% : FOR K5%=K4%+1 TO N5% 320 FOR K6%=K5%+1 TO N6% 325 G%(1)=0 : G%(2)=0 : G%(3)=0 : G%(4)=0 : G%(5)=0 : G%(6)=0 330 T%(K1%)=1 : T%(K2%)=1 : T%(K3%)=1 : T%(K4%)=1 : T%(K5%)=1 : T%(K6%)=1 335 FOR X%=1 TO R% 340 P%=T%(R%(X%,0))+T%(R%(X%,1))+T%(R%(X%,2))+T%(R%(X%,3))+T%(R%(X%,4))+T%(R%(X%,5))+T%(R%(X%,6)) 345 G%(P%)=G%(P%)+1 : NEXT X% 350 A%=G%(6)*32+G%(5) : G6%(A%)=G6%(A%)+1 355 T%(K1%)=0 : T%(K2%)=0 : T%(K3%)=0 : T%(K4%)=0 : T%(K5%)=0 : T%(K6%)=0 360 NEXT K6% : NEXT K5% : NEXT K4% : NEXT K3% : NEXT K2% : NEXT K1% 365 GOTO 200 370 FOR K1%=1 TO N1% : FOR K2%=K1%+1 TO N2% : FOR K3%=K2%+1 TO N3% : FOR K4%=K3%+1 TO N4% : FOR K5%=K4%+1 TO N5% 375 G%(1)=0 : G%(2)=0 : G%(3)=0 : G%(4)=0 : G%(5)=0 380 T%(K1%)=1 : T%(K2%)=1 : T%(K3%)=1 : T%(K4%)=1 : T%(K5%)=1 385 FOR X%=1 TO R% 390 P%=T%(R%(X%,0))+T%(R%(X%,1))+T%(R%(X%,2))+T%(R%(X%,3))+T%(R%(X%,4))+T%(R%(X%,5))+T%(R%(X%,6)) 395 G%(P%)=G%(P%)+1 : NEXT X% 400 A%=G%(5) : G5%(A%)=G5%(A%)+1 405 T%(K1%)=0 : T%(K2%)=0 : T%(K3%)=0 : T%(K4%)=0 : T%(K5%)=0 410 NEXT K5% : NEXT K4% : NEXT K3% : NEXT K2% : NEXT K1% 415 GOTO 200 420 ; CHR$(12%) : ; "INMATN. AV NYTT SYSTEM ";STRING$(16%,35%) : ; : ; 425 ONERRORGOTO 425 : ; "ANT. RADER"; : INPUT R% 430 ONERRORGOTO 430 : ; "ANT. NUMMER"; : INPUT N% : ; : ; 433 ; "Inmatning av rader (kryss=2, lucka=1):" : ; STRING$(37%,61%) : ; 435 FOR X%=1 TO R% 440 GOSUB 845 445 NEXT X% 450 ; : ; "Vill Du [NDRA raderna (J/N)"; : INPUT [$ : IF [$="N" OR [$="n" THEN 110 455 GOTO 465 460 ; CHR$(12%) : ; "RAD[NDRING ";STRING$(28%,35%) : ; 465 ONERRORGOTO 465 : ; "Vilken rad"; : INPUT X% : ; 470 B$="2" : C$="1" : GOSUB 905 475 ; TAB(5-INT(LOG(X%)/LOG(10)));X%;": ";A$ 480 GOSUB 845 485 ; : ; "Fler (J/N)"; : INPUT X$ : IF X$="J" OR X$="j" THEN 465 ELSE 110 490 ; CHR$(12%) : ; "TILL[GG AV RADER ";STRING$(22%,35%) : ; : ; 495 R%=R%+1 : X%=R% 500 GOSUB 845 505 ; : ; "Fler (J/N?)"; : INPUT X$ : IF X$="N" OR X$="n" THEN 110 510 ; : GOTO 495 515 ; CHR$(12%) : ; "BORTTAGANDE AV RADER ";STRING$(18%,35%) : ; : ; 520 ONERRORGOTO 520 : ; "Vilken rad"; : INPUT X% : ; 525 B$="2" : C$="1" : GOSUB 905 530 ; TAB(5-INT(LOG(X%)/LOG(10)));X%;": ";A$ 535 ; : ; "Bort (J/N)"; : INPUT X$ 540 IF X$="J" OR X$="j" THEN 550 545 GOTO 110 550 FOR F%=X% TO R% 555 IF F%=R% THEN 580 560 FOR Z%=0 TO 6 565 R%(F%,Z%)=R%(F%+1,Z%) 570 NEXT Z% 575 NEXT F% 580 R%=R%-1 585 ; : ; "Fler (J/N)"; : INPUT X$ 590 IF X$="J" OR X$="j" THEN 520 ELSE 110 595 ; CHR$(12%) : ; "GARANTITABELLUTSKRIFT ";STRING$(17%,35%) 600 IF X$<>"P" OR X$<>"p" OR X$<>"S" OR X$<>"s" THEN ONERRORGOTO 600 : ; : ; "Printer eller sk{rm (P/S)"; : INPUT X$ 605 ; : ; "\nskad f|ljd (ex.: 576, 67, 5...)"; : INPUT F$ 610 ; CHR$(12%) 615 W%=0 620 IF X$="P" OR X$="p" THEN OPEN "PR:" ASFILE 1 : W%=1 625 U1%=0 630 U%=LEN(F$) 635 U1%=U1%+1 640 IF U1%>U% THEN 775 645 U2%=VAL(MID$(F$,U1%,1)) 650 IF U2%>7 OR U2%<5 THEN 635 655 ; #W% : ; #W%,"Gar. vid";U2%;" r{tt:" : ; #W% 660 ; #W%," 7 6 5 Kommer:" 665 ; #W%," ----------- ------" 670 ON U2% GOTO 775,775,775,775,675,680,685 675 G1%=31 : GOTO 690 680 G1%=511 : GOTO 690 685 G1%=1023 690 FOR G%=G1% TO 0 STEP -1 695 IF U2%=7 THEN L%=G7%(G%) : GOTO 710 700 IF U2%=6 THEN L%=G6%(G%) : GOTO 710 705 IF U2%=5 THEN L%=G5%(G%) 710 IF L%=0 THEN 760 715 M1%=INT(G%/512) 720 M2%=INT(G%/32)-M1%*16 725 M3%=G%-M1%*512-M2%*32 730 Q1%=0 735 Q2%=5 : IF M2%>=10 THEN Q2%=4 740 Q3%=10 : IF M3%>=10 THEN Q3%=9 745 Q4%=22-INT(LOG(L%)/LOG(10)) 750 IF W%=0 THEN GET T$ 755 ; #W%,TAB(Q1%);M1%;TAB(Q2%);M2%;TAB(Q3%);M3%;TAB(Q4%);L% 760 NEXT G% 765 ; #W% : ; #W% 770 GOTO 635 775 IF X$="P" OR X$="p" THEN CLOSE 1 780 GOTO 250 785 ; CHR$(12%) : ; "RADUTSKRIFT ";STRING$(27%,35%) 790 ; : ; 795 ; "Printer eller sk{rm (P/S)"; : INPUT X$ : ; 800 B$="X" : C$="-" 805 W%=0 810 IF X$="P" OR X$="p" THEN OPEN "PR:" ASFILE 1 : W%=1 815 FOR X%=1 TO R% 820 GOSUB 905 825 IF W%=0 THEN GET T$ 830 ; #W%,TAB(B%);X%;":";A$ 835 NEXT X% 840 GOTO 775 845 B%=5-INT(LOG(X%)/LOG(10)) 850 A%=0 855 ; TAB(B%);X%;":"; 860 INPUT A$ : IF LEN(A$)<>N% THEN 855 865 A1%=0 870 FOR Y1%=1 TO N% 875 IF MID$(A$,Y1%,1)="2" THEN A1%=A1%+1 880 NEXT Y1% : IF A1%<>7 THEN 855 885 FOR Y%=1 TO N% 890 IF MID$(A$,Y%,1)="2" THEN R%(X%,A%)=Y% : A%=A%+1 895 NEXT Y% 900 RETURN 905 A$="" 910 FOR Z%=0 TO 6 : A$(R%(X%,Z%))=B$ : NEXT Z% 915 FOR Y%=1 TO N% 920 IF A$(Y%)=B$ THEN A$=A$+B$ ELSE A$=A$+C$ 925 A$(Y%)="" : NEXT Y% 930 B%=5-INT(LOG(X%)/LOG(10)) 935 RETURN 940 END