10 REM *********** CHECK ************** 20 REM * ETT TESTPROGRAM F\R ABC 80 * 30 REM * Vasagymnasiet 791114 ARBOGA * 40 REM * Stefan Andersson Komm 1 * 50 REM ******************************** 60 ; CHR$(12) 70 ; CUR(0,12)"*** CHECK ***" : ; : ; "DETTA [R ETT TESTPROGRAM F\R KONTROLL AV" : ; 80 ; TAB(6)"1 Datorns funktion" : ; 90 ; TAB(6)"2 Tangentbordets funktion" : ; 100 ; TAB(6)"3 Bildenheten...(testbild)" : ; 110 ; TAB(6)"4 Printerns funktion" : ; 120 ; TAB(6)"5 Kassettenhetens funktion" : ; 130 ; TAB(6)"6 Avslut...(ingen test)" : ; : ; 140 ; "VILKET ALTERNATIV V[LJER DU ?"; : GET H$ : ONERRORGOTO 70 : IF VAL(H$)=0% 70 150 IF VAL(H$)>6% 70 160 IF VAL(H$)=1% ; CUR(5,9)"" 170 IF VAL(H$)=2% ; CUR(7,9)"" 180 IF VAL(H$)=3% ; CUR(9,9)"" 190 IF VAL(H$)=4% ; CUR(11,9)"" 200 IF VAL(H$)=5% ; CUR(13,9)"" 210 IF VAL(H$)=6% ; CUR(15,9)"" 220 FOR I=1 TO 1000 : NEXT I : ; CHR$(12) : ON (VAL(H$)) GOTO 250,420,780,1260,1440,230 230 ; CHR$(12) : END 240 REM 250 ; CHR$(12)TAB(13)"*** CHECK ***" : ; 260 ; "DETTA [R ETT TESTPROGRAM F\R KONTROLL AV" : ; "DATORNS FUNKTION" : ; : ; "Kontrolltid Ca 15 sekunder" : ; : ; 270 ; "ANGE CHECKSUMMA" : ; "(finns p} etiketten under tangentbordet)" : ONERRORGOTO 250 : INPUT A% 280 B%=0 : FOR I%=0 TO 16383 : B%=B%+PEEK(I%) : NEXT I% 290 IF A%=B% AND I%=16384 THEN 400 300 S=300 : FOR I=1 TO 8 : ; CHR$(7) : FOR J=1 TO S : NEXT J : S=S-30 : NEXT I 310 ; CHR$(12);"KONTROLLSIFFRORNA FELAKTIGA!!!" : ; "KONTROLLERA P] ETIKETTEN " 320 ; "[R CHECKSUMMAN "A%" ELLER"B% 330 ONERRORGOTO 300 : INPUT C% : IF C%=B% THEN A%=C% : GOTO 280 340 IF C%=A% THEN 370 350 ; : ; "CHECKSUMMA "C%"???" : ; : ; "NU HAR JAG F]TT TRE OLIKA V[RDEN" 360 ; TAB(20)"-----" : ; "F\RS\K IGEN..."; : GOTO 270 370 ; CHR$(12);"K\R PROGRAMMET EN G]NG TILL MEN" : ; "KONTROLLERA ATT"A%" [R R[TT CHECKSUMMA" 380 ; : ; "OM KONTROLLSIFFRORNA FORTFARANDE [R" : ; "FELAKTIGA S] KAN ETT FEL UPPST]TT I MIN" 390 ; "LOGIK...]TG[RD KONTAKTA SERVICE..." : ; : ; : ; "Tryck p} RETURN" : GET H$ : GOTO 60 400 ; CHR$(7) : ; "INGA FEL !!!" : FOR I=1 TO 2000 : NEXT I : ; CHR$(7) : GOTO 60 410 REM 420 ; CHR$(12) : RESTORE : F$="" : ; TAB(13)"*** CHECK ***" : ; 430 ; "DETTA [R ETT TESTPROGRAM F\R KONTROLL AV " : ; "TANGENTBORDETS FUNKTION" : ; 440 ; " ANV[ND STORA BOKST[VER" : ; 450 ; " SE NOGA TILL ATT DU TRYCKER P]" : ; " EN TANGENT I TAGET" : ; 460 ; " ENDAST DE VITA TANGENTERNA TESTAS" : ; : ; : ; 470 ONERRORGOTO 710 : READ B$,B 480 ; TAB(12)"TRYCK P] "B$ : GET A$ : A=INP(56) 490 IF A$="`" OR A$="q" OR A$="w" ; CHR$(12);" STORA BOKST[VER TRYCK P] -UPPER CASE-" : ; : ; : OUT 6,43 : GOTO 480 500 IF A=141% D$="RETURN" : GOTO 660 510 IF A=136% D$=" <-- " : GOTO 660 520 IF A=137% D$=" --> " : GOTO 660 530 IF B$="MELLANSLAG" THEN B$=" " 540 IF A$=B$ AND A=B THEN ; CHR$(12);CHR$(7) : ; TAB(12)B$" FUNGERAR" : ; : ; : GOTO 470 550 IF B$=" " THEN B$="MELLANSLAG" 560 FOR I=1 TO 600 : OUT 6,255 : NEXT I : OUT 6,0 570 IF A$<>B$ ; CHR$(12) : ; TAB(12)"FEL V[RDE ("A$") P] "B$ 580 IF A$=B$ AND A<>B ; CHR$(12)TAB(12)"KONTAKTSTUDS P] "B$ 590 ; : ; : ; TAB(12)"TRYCK P] "B$" IGEN" : GET C$ : C=INP(56) 600 IF B$="MELLANSLAG" THEN B$=" " 610 IF C$=B$ AND C=B THEN A$=C$ : A=C : GOTO 540 620 IF B$=" " THEN B$="MELLANSLAG" 630 S=150 : FOR I=1 TO 6 : ; CHR$(7) : FOR J=1 TO S : NEXT J : S=S-30 : NEXT I 640 ; CHR$(12) : ; TAB(12)"FEL P] TANGENT ("B$")" : ; : ; 650 F$=F$+" "+B$ : FOR I=0 TO 1500 : NEXT I : GOTO 470 660 S=0 : FOR I=1 TO 8 : ; CHR$(7) : FOR J=1 TO 30+S : NEXT J : S=S+30 : NEXT I 670 ; CHR$(12) : ; TAB(12)"INTE "D$ : ; : ; : FOR I=1 TO 1500 : NEXT I : GOTO 480 680 DATA 1,177,2,178,3,179,4,180,5,181,6,182,7,183,8,184,9,185,0,176,+,171,@,192,<,188,Q,209,W,215,E,197,R,210,T,212 690 DATA Y,217,U,213,I,201,O,207,P,208,],221,^,222,A,193,S,211,D,196,F,198,G,199,H,200,J,202,K,203,L,204,\,220,[,219 700 DATA "'",167,Z,218,X,216,C,195,V,214,B,194,N,206,M,205,",",172,.,174,-,173,"MELLANSLAG",160 710 IF F$=" MELLANSLAG" THEN 760 720 ; CHR$(12) : IF LEN(F$)>0 THEN 740 730 ; : ; TAB(6)"TANGENTBORDET FELFRITT" 740 IF LEN(F$)=2% ; : ; TAB(6)"FELAKTIG TANGENT "F$ 750 IF LEN(F$)>2% ; : ; TAB(6)"FELAKTIGA TANGENTER " : ; : ; F$ 760 ; : ; TAB(6)"Tryck p} RETURN"; : GET G$ : ; CHR$(7) : GOTO 60 770 REM 780 ; CHR$(12) : A$(1)="RUTN[T" : A$(2)="SCHACKRUTOR 132 st" : A$(3)="SCHACKRUTOR 5070 st" : A$(4)="TECKEN+GRAFIK" 790 ; CUR(0,12)"*** CHECK ***" : ; : ; "DETTA [R ETT TESTPROGRAM F\R KONTROLL AVBILDENHETEN...(testbildsgenerering)" 800 ; CUR(6,6)"1 "A$(1) : ; : ; TAB(6)"2 "A$(2) : ; : ; TAB(6)"3 "A$(3) : ; : ; TAB(6)"4 "A$(4) : ; 810 ; TAB(6)"5 SVART--> VIT--> SVART" : ; : ; TAB(6)"6 AVSLUT...(ingen testbild)" 820 ; : ; TAB(6)"A Automatisk bildv{xling" : ; TAB(11)"efter 5 sekunder" 830 ; : ; "VILKET ALTERNATIV V[LJER DU ?"; : GET H$ : ONERRORGOTO 790 840 IF H$="A" OR H$="a" THEN 890 850 IF VAL(H$)=6% 60 860 IF VAL(H$)=0% OR VAL(H$)>6% 790 870 ; CHR$(12) : IF VAL(H$)<5% ; A$(VAL(H$)) : ; "Tryck p} RETURN och testbilden visas" ELSE 920 880 ; : ; "till n{sta tryckning p} RETURN" : GET G$ : GOTO 920 890 ; CHR$(12)CUR(0,0)"HUR M]NGA G]NGER SKA VARJE BILD VISAS" : ONERRORGOTO 890 : ; : INPUT A 900 ; : ; "Testbildsv{xlingen kan avbrytas" : ; "med en tryckning p} S" : IF H$="a" THEN H$="A" 910 ; : ; "Tryck p} RETURN" : GET G$ : GOTO 930 920 ON (VAL(H$)) GOTO 940,1000,1060,1110,1160 930 FOR J=1 TO A 940 REM ****** RUTN[T ****** 950 ; CHR$(12) : FOR I=0 TO 23 : ; CHR$(151) : NEXT I 960 FOR R%=0 TO 68 STEP 4 : FOR K%=2 TO 78 : SETDOT R%,K% : NEXT K% : NEXT R% 970 FOR R%=0 TO 68 : FOR K%=2 TO 78 STEP 4 : SETDOT R%,K% : NEXT K% : NEXT R% 980 IF H$<>"A" THEN GET G$ : GOTO 780 990 FOR I=1 TO 5000 : NEXT I : IF INP(56)=211 OR INP(56)=83 OR INP(56)=115 OR INP(56)=243 THEN 780 1000 REM ****** STORA SCHACKRUTOR ****** 1010 ; CHR$(12) : FOR I=0 TO 23 : ; CHR$(151) : NEXT I 1020 FOR R%=0 TO 5 : FOR K%=2 TO 7 : FOR L%=0 TO 54 STEP 12 : FOR M%=2 TO 65 STEP 12 1030 SETDOT R%+L%,K%+M% : SETDOT R%+L%+6,K%+M%+6 : SETDOT R%+60,K%+M% 1040 NEXT M% : NEXT L% : NEXT K% : NEXT R% : IF H$<>"A" THEN GET G$ : GOTO 780 1050 FOR I=1 TO 5000 : NEXT I : IF INP(56)=211 OR INP(56)=83 OR INP(56)=115 OR INP(56)=243 THEN 780 1060 REM ****** SM] SCHACKRUTOR ****** 1070 ; CHR$(12) : FOR I=0 TO 23 : ; CHR$(151) : NEXT I 1080 FOR R=0 TO 66 STEP 2 : FOR K=2 TO 78 STEP 2 : SETDOT R,K : SETDOT R+1,K+1 : NEXT K : NEXT R 1090 IF H$<>"A" THEN GET G$ : GOTO 780 1100 FOR I=1 TO 5000 : NEXT I : IF INP(56)=211 OR INP(56)=83 OR INP(56)=115 OR INP(56)=243 THEN 780 1110 REM ** TECKEN+GRAF ** 1120 R=0 : K=0 : ; CHR$(12) : FOR I=32 TO 127 : ; CUR(R,K)CHR$(I,151,I,135) : R=R+2 : IF R=24 THEN R=0 : K=K+5 1130 NEXT I 1140 IF H$<>"A" THEN GET G$ : GOTO 780 1150 FOR I=1 TO 5000 : NEXT I : IF INP(56)=211 OR INP(56)=83 OR INP(56)=115 OR INP(56)=243 THEN 780 1160 REM ****** SV --> VIT --> SV ****** 1170 ; CHR$(12) : FOR I=0 TO 23 : ; CHR$(151) : NEXT I 1180 FOR L=0 TO 1 : FOR R%=0 TO 68 : FOR K%=2 TO 79 1190 IF DOT(R%,K%) THEN CLRDOT R%,K% ELSE SETDOT R%,K% 1200 NEXT K% : NEXT R% : FOR I=1 TO 5000 : NEXT I : NEXT L : IF INP(56)=211 OR INP(56)=83 OR INP(56)=115 THEN 780 1210 X=X+1 : IF X<127 THEN ; CHR$(X); ELSE X=32 : GOTO 1210 1220 IF H$<>"A" THEN 780 1230 NEXT J 1240 GOTO 780 1250 REM 1260 ; TAB(13)"*** CHECK ***" : ; "DETTA [R ETT TESTPROGRAM F\R KONTROLL AV" : ; "PRINTERNS FUNKTION" 1270 POKE 65037,198 : POKE 65038,0 : OPEN "PR:" ASFILE 1 : N=0 : A$="." 1280 ; CUR(6,0)"80 eller 120 tecken/rad ?"; : ONERRORGOTO 1280 : GET G$ : IF VAL(G$)<>1 AND VAL(G$)<>8 THEN 1280 1290 IF VAL(G$)=1 THEN A=120 ELSE A=80 1300 ; CUR(6,23)A : ; #1TAB(A/2-10)"ABC 80 PRINTERCHECK" : ; #1"Kontrollera att f{rgningen {r j{mn |ver hela pappret" 1310 ; #1"Kontrollera att marginalerna {r j{mna" : IF A=120% 1340 1320 FOR I=1 TO 10 : ; #1"abcdefghijklmnopqrstuvwxyz}{| "; 1330 ; #1"1234567890 +-*/()<>&%#$" : NEXT I : ; "." : GOTO 1360 1340 FOR I=1 TO 10 : ; #1"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ] [ \ "; 1350 ; #1"1 2 3 4 5 6 7 8 9 0 + - * / = ( ) > < & % # $ " : NEXT I : ; "." 1360 FOR I=1 TO 10 : FOR J=1 TO A-1 : ; #1A$; : NEXT J : ; #1A$ : NEXT I : N=N+1 1370 IF N=1% A$="*" 1380 IF N=2% A$="I" 1390 IF N=3% A$="X" 1400 IF N=4% A$="O" 1410 IF N=5% 60 1420 ; A$ : GOTO 1360 1430 REM 1440 L%=0 : E%=0 : ; CHR$(12)"F|r test av kassettenheten beh|ver du en kassett med tre testfiler." : ; 1450 ; "Vill du spela in testfiler p} en" : ; "kassett (J/N)" : GET H$ 1460 IF H$="J" OR H$="j" THEN 1480 1470 IF H$="N" OR H$="n" THEN 1570 ELSE 60 1480 ; CHR$(12) 1490 ; "L{gg en tom kassett i kassettenheten." : ; 1500 ; "Nollst{ll r{kneverket." : ; : ; "Tryck p} PLAY och REC." : ; 1510 ; "Tryck p} RETURN"; : GET H$ : ; CHR$(12)"Jag spelar nu in tre filer med 200" : ; "rader p} din kassett." 1520 FOR I%=1% TO 3% : PREPARE "CAS:Testfil"+NUM$(I%)+".BAS" ASFILE 1 1530 FOR N%=5% TO 1000% STEP 5% : ; #1N%" REM RADNUMMER"N%/5% 1540 ; ">"; : L%=L%+1% : NEXT N% : CLOSE 1 : ; "Slut fil"I% : NEXT I% 1550 ; L%" rader inspelade" : L%=0 : E%=0 1560 ; CHR$(12) : GOTO 1580 1570 ; CHR$(12)" L{gg i kasetten med testfilerna" : ; 1580 ; "Spola bandet till filernas b|rjan" : ; : ; "Tryck p} PLAY" 1590 ; : ; : ; "Tryck p} RETURN"; : GET H$ : ; CHR$(12) 1600 FOR I%=1% TO 3% : ; "Jag s|ker efter testfil "I% 1610 ONERRORGOTO 1640 : OPEN "CAS:" ASFILE 1 : ; : FOR N%=5% TO 1000% STEP 5% 1620 INPUTLINE #1,A$ : ; A$; : L%=L%+1% : NEXT N% : CLOSE 1 1630 NEXT I% : GOTO 1670 1640 E%=E%+1 : IF ERRCODE=21 THEN ; "HITTAR EJ TESTFIL "I% : ; : ; : GOTO 1630 1650 IF ERRCODE=35 OR ERRCODE=37 THEN ; "DROP OUT fil "I% : ; "Fel p} kassetten eller kassettenheten" : GOTO 1630 1660 ; " ERR"ERRCODE : GOTO 1630 1670 ; CHR$(12)"Hittade radnr:"L%" av 600" : ; : ; "Antal felaktiga filer "E% 1680 ; CHR$(7) : ; : ; "Tryck p} RETURN"; : GET H$ : ; CHR$(7) : GOTO 60