10 _$=" [0x15] [0x03] ":*KEY10*FX220|M*DISC|MOLD|MRUN|M 20 CLEAR:MODE7 30 !&70=&EE2007A9:!&74=&DEC54CFF:?&210=&70:?&211=0 40 OSCLI("FX213,70"):OSCLI("FX200,1"):*FX214,1 50 VDU 23,1,0;0;0;0;23;8,144,0;0;0;23;9,9,0;0;0;29;10,&69,0;0;0;23;11,9,0;0;0; 60 S=10:C1=148:TIME=0:T=134:XS=0 70 F=144+RND(7) 80 IF F=C1 OR F=S THEN 70 90 PRINTTAB(0,2);:VDU 132;157 100 PRINTTAB(0,3);:VDU C1;157;F;154;239;255;255;255;191;160;254;255;255;255;253;160;254;255;255;255;191;160;239;255;255;255;191 110 PRINTTAB(0,4);:VDU C1;157;F;154;160;160;255;160;160;160;255;160;160;160;160;160;255;160;160;160;160;160;160;160;255;160;160 120 PRINTTAB(0,5);:VDU C1;157;F;154;160;160;255;160;160;160;255;255;255;255;189;160;255;255;255;255;253;160;160;160;255;160;160; 130 PRINTTAB(0,6);:VDU C1;157;F;154;160;160;255;160;160;160;255;160;160;160;160;160;160;160;160;160;255;160;160;160;255;160;160; 140 PRINTTAB(0,7);:VDU C1;157;F;154;160;160;255;160;160;160;239;255;255;255;253;160;239;255;255;255;191;160;160;160;255;160;160; 150 PRINTTAB(0,8);:VDU C1;157:PRINTTAB(0,9);:VDU C1;157;F;154;160;254;255;255;255;253; 160 FOR T%=0TO3:VDU 160;254;255;255;255;253;:NEXT 170 PRINTTAB(0,10);:VDU C1;157;F;154;160;255;160;160;160;160;160;255;160;160;160;255;160;255;160;160;160;255;160;160;255;160;160;255;160;255 180 PRINTTAB(0,11);:VDU C1;157;F;154;160;255;160;160;160;160;160;255;255;255;255;255;160;255;255;255;255;255;160;160;255;160;160;255;160;255;255;255;255;253; 190 PRINTTAB(0,12);:VDU C1;157;F;154;160;255;160;160;160;160;160;255;:PRINTSPC(3);:VDU 255;160;255;255;240;:PRINTSPC(3);:VDU 160;255;:PRINTSPC(2);:VDU 255;160;:PRINTSPC(4);:VDU 255; 200 PRINTTAB(0,13);:VDU C1;157;F;154;160;255;255;255;255;253;160;255;:PRINTSPC(3);:VDU 255;160;255;:PRINTSPC(1);:VDU 163;175;252;160;239;255;255;255;191;160;254;255;255;255;191; 210 PRINTTAB(0,14);:VDU 132;157:PRINTTAB(6,18);CHR$(132);CHR$(157)"†TEST CARDS‡Version 2.2 ";CHR$(156):PRINTTAB(8);CHR$(132);CHR$(157)"†BY‡A.S.SHAKOOR†'90 ";CHR$(156) 211 IF XS=0 PRINTTAB(4,21);CHR$(135);CHR$(157)"ƒ „PRESS'SPACE'„TO END. ";CHR$(156):PROCmusic 230 PRINTTAB(4,21);CHR$(129);CHR$(157)"ƒ PRESS‡'S'ƒTO CARRY ON ";CHR$(156) 240 PRINTTAB(0,23);CHR$(132);CHR$(157)"‡ TO CHANGE FONT PRESSˆZ‰ORˆX" 250 A$=INKEY$(1) 260 IF A$="Z"OR A$="z" VDU23;8,147,0;0;0;23;9,18,0;0;0; 270 IF A$="X"OR A$="x" VDU23;8,144,0;0;0;23;9,9,0;0;0;29;10,&69,0;0;0;23;11,9,0;0;0; 280 IF A$="S" OR A$="s" THEN 300 290 S=F:XS=1:GOTO70 300 CLEAR:?&25A=&20:*FX15,1 310 PROCinit:OSCLI(FOS$):OSCLI("DIR F") 320 REPEAT CLS:VDU26:PROCTITLE:PROCCLEAR:VDU23,1,0;0;0;0; 330 F=128+RND(7) 340 IF F=S THEN 330 350 PROCVAR 360 PRINTTAB(0,0);CHR$(132);CHR$(157)"†TIME SINCE PROGRAM STARTED...." 370 IF SEC>=0 OR SEC<=9 PRINTTAB(0,1);CHR$(132);CHR$(157)"‡";HR;"†HOURS‡";MIN;"†MINUTES‡";" ";SEC;"†SECONDS„";CHR$(255):GOTO 400 380 _$=" [0x15] [0x03] ":IF MIN>=0 OR MIN<=9 PRINTTAB(0,1);CHR$(132);CHR$(157)"‡";HR;"†HOURS‡ ";MIN;"†MINUTES‡";SEC;"†SECONDS„";CHR$(255);:GOTO 400 390 IF HR>=0 OR HR<=9 PRINTTAB(0,1);CHR$(132);CHR$(157)"‡";HR;"†HOURS‡";MIN;"†MINUTES‡";SEC;"†SECONDS„";CHR$(255) 400 PRINTTAB(0,2)"‘,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," 410 PRINTTAB(0,3);CHR$(F)" A>ƒCREATE SOME CARDS"'CHR$(F)" B>ƒALTER THE CURRENT CARDS"'CHR$(F)" C>ƒADD NEW CARDS TO CURRENT SET" 420 PRINTCHR$(F)" D>ƒLOAD A SET OF CARDS FROM ";FOS$:PRINTCHR$(F)" E>ƒSAVE THE CURRENT CARDS ON ";FOS$:PRINTCHR$(F)" F>ƒTEST YOURSELF ON CURRENT CARDS"'CHR$(F)" G>ƒNUMBER OF CARDS IN YOUR FILE"'CHR$(F)" H>ƒDELETE ALL THE CARDS IN MEMORY" 430 PRINTCHR$(F)" I>ƒPRINT A CERTAIN CARD"'"‘,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"'CHR$(F)" J>†BBC MASTER CLOCK"'CHR$(F)" K>SOUNDƒis";sound$:PRINTCHR$(F)" L>…* (COMMAND)"'CHR$(F)" M>…END" 440 FOR W%=0TO39:PRINTTAB(W%,17)" ":NEXT 450 PRINTTAB(0,18);CHR$(132);CHR$(157)"†NUMBER OF CARDS IN THE FILE :ƒ";max:VDU132,157:PRINT"†FILE IN MEMORY :ƒ";file1$ 460 VDU 23,0,10,12,0,0,0,0,0,0 470 SAT$=INKEY$(1):S=F 480 S=F 490 IF SAT$="A" OR SAT$="a" check3=1:PROCaddques ELSE IF SAT$="B" OR SAT$="b" PROCalter ELSE IF SAT$="C" OR SAT$="c" AND I>1 I=numques:PROCaddques ELSE IF SAT$="D" OR SAT$="d" PROCload 500 IF SAT$="E"OR SAT$="e" PROCsave ELSE IF SAT$="F"OR SAT$="f" PROCtest ELSE IF SAT$="G"OR SAT$="g" PROCmaxcards ELSE IF SAT$="H" OR SAT$="h" PROCdelete ELSE IF SAT$="I" OR SAT$="i" PROCprint3 510 IF SAT$="J" OR SAT$="j" PROCCLOCK ELSE IF SAT$="K" OR SAT$="k" PROCsound ELSE IF SAT$="L"OR SAT$="l" PROCOSCLI ELSE IF SAT$="M"OR SAT$="M" PROCagain 520 GOTO 330 530 DEFPROCaddques:LOCAL I 540 PROCCLEAR 550 IF SAT$="A" AND card$(1,1)<>"" OR SAT$="a" AND card$(1,1)<>"" PROCsure(0):ENDPROC 560 IF I>=max OR numques>=max PROCmaximum:ENDPROC 570 IF check3=0 message$="ADD":PROCERROR3:ENDPROC 580 check1=1:check2=0 590 IF I>=max CLS:PROCTITLE:PROCCLEAR:PROChold:ENDPROC 600 VDU23,0,10,12,0,0,0,0,0,0 610 I=numques:REPEAT I=I+1:CLS 620 PRINTTAB(0,19);CHR$(132);CHR$(157)"‡MAXIMUM NUMBER OF CARDS ALLOWED":VDU 132,157:PRINT"‡IS ";max 630 PROCTITLE 640 VDU 23,1,0;0;0;0;:FOR T=2TO13:PRINTTAB(0,T);SPC(40);:NEXT:VDU 23,1,1;0;0;0; 650 PRINTTAB(0,0);:VDU 132,157:PRINTTAB(0,1);:VDU 132,157 660 PRINTTAB(12,1);CHR$(134);CHR$(157)"„CARD NUMBER : ";I 670 PRINTTAB(0,2)"ƒTEST CARD NUMBER";I;"ƒ:-" 680 VDU28,0,21,39,6 690 PRINT"‚Q)";:INPUT LINE"‡"card$(1,I) 700 IF card$(1,I)="*" AND numques<2 PROCs 710 IF card$(1,I)="*" THEN 320 720 PRINT'"ƒNOW TYPE YOUR 3 OPTIONAL ANSWERS IN" 730 PRINT"‚A)";:INPUT LINE"‡"card$(2,I):IF card$(2,I)="*" AND numques<2 PROCs 740 IF card$(2,I)="*" THEN 320 750 _$=" [0x15] [0x03] ":PRINT"‚A)";:INPUT LINE"‡"card$(3,I):IF card$(3,I)="*" AND numques<2 PROCs 760 IF card$(3,I)="*"THEN 320 770 PRINT"‚A)";:INPUT LINE"‡"card$(4,I):IF card$(4,I)="*" AND numques<2 PROCs 780 IF card$(4,I)="*" THEN 320 790 IF card$(4,I)<>"*" THEN PRINT''"…TYPE IN YOUR RIGHT ANSWER NOW ":INPUTLINE'"†A) "card$(5,I) 800 IF card$(5,I)="*" AND numques<2:PROCs 810 IF card$(5,I)="*" THEN 320 820 IF card$(5,I)<>card$(2,I) AND card$(5,I)<>card$(3,I) AND card$(5,I)<>card$(4,I) THEN PROCask 830 PROCPRINTOUT 840 numques=numques+1 850 VDU 23,1,1;0;0;0;:FOR T=2TO12:PRINTTAB(0,T);SPC(40);:NEXT:VDU23,0,10,12,0,0,0,0,0,0 860 IF I>=max CLS:PROCTITLE:PROCCLEAR:PROChold:ENDPROC 870 UNTIL card$(1,I)="*" OR card$(2,I)="*"OR card$(3,I)="*" OR card$(4,I)="*" OR card$(5,I)="*" OR I=max 880 IF I>=max THEN 320 890 VDU 28,0,23,39,5 900 IF card$(1,I)<>"*" PRINT''"ƒYOU CAN'T HAVE ANY MORE CARDS "'"ƒBECAUSE IT WOULD BE MORE THAN THE "'"ƒMAXIMUM PERMITTED.................. "'"†HINTƒ... USE OPTION 7":max=max:PROChold ELSE numques=I-1 910 GOTO320:ENDPROC 920 DEFPROCalter:LOCAL I,ans$:PROCCLEAR:CLS 930 IF numques>=1 GOTO 970 940 IF check2=1 message$="ALTER":PROCERROR3:ENDPROC 950 IF check1=1 AND numques<1 message$="ALTER":PROCERROR3:ENDPROC 960 IF check1=1 AND sattar=1 numques=numques-1 970 Q=numques-numques 980 FOR I=1 TO numques 990 PRINTTAB(0,19);CHR$(132);CHR$(157)"‡TYPEˆ*‰TO RETURN TO THE MAIN MENU":PROCTITLE 1000 IFJ%=J D=max ELSE D=100:D=max 1010 IF Q=max PROChold:ENDPROC 1020 FOR T=2TO13:VDU 23,1,0;0;0;0;:PRINTTAB(0,T);SPC(40);:NEXTT:VDU23,0,10,12,0,0,0,0,0,0 1030 PRINTTAB(12,1);:VDU 134,157;:PRINT"„CARD NUMBER : ";I 1040 PRINT:VDU 132,157:PRINT"‡QUESTION ";CHR$(156)'"†Q)‡";card$(1,I) 1050 PRINT:VDU 132,157:PRINT"‡OPTIONAL ANSWERS ";CHR$(156) 1060 FOR T=2TO4:PRINT"†A)‡";card$(T,I):NEXT 1070 PRINT:VDU132,157:PRINT"‡RIGHT ANSWER ";CHR$(156) 1080 PRINT"†A)‡";card$(5,I) 1090 PRINT'"ƒDO YOU WANT TO CHANGE THIS ONE (Y/N) ?":ans$=GET$ 1100 IF ans$="Y"ORans$="y" PROCNEWCARD:PROCPRINTOUT:GOTO1120 1110 PROCPRINTOUT 1120 IF ans$="*"ORans$=":" THEN1150 1130 _$=" [0x15] [0x03] ":IF card$(5,I)<>card$(2,I) AND card$(5,I)<>card$(3,I) AND card$(5,I)<>card$(4,I) PROCask 1140 CLS:NEXT 1150 CLS:PROCCLEAR:GOTO320:ENDPROC 1160 DEFPROCload:LOCAL I,file,file$:VDU23,1,1;0;0;0;23,0,10,12,0,0,0,0,0,0:PROCCLEAR:PRINTTAB(0,2);CHR$(134);CHR$(157)"„NAME OF FILE :";:INPUT""file$:PROCabort 1170 file=OPENIN(file$):INPUT#file,I 1180 IF I>max PRINT'"ƒTHAT FILE HAS MORE CARDS IN IT "'"ƒTHAN ARE PRESENTLY ALLOWED FOR. "N"ƒUSEOPTION 7ƒTO CHANGE THE VALUE.":CLOSE#file:PROChold:ENDPROC ELSE numques=I 1190 PRINT:VDU 132,157:PRINT"‡ ˆ PLEASE WAIT" 1200 PRINTTAB(0,12);CHR$(132);CHR$(157)"‡MAXIMUM COUNT = ";max 1210 FOR I=1TOnumques:PRINTTAB(0,15);CHR$(132);CHR$(157)"‡COUNT :";I:SOUND &12,-12,90,1:INPUT#file,card$(1,I),card$(2,I),card$(3,I),card$(4,I),card$(5,I),max:NEXT 1220 PRINT'':VDU 133,157:PRINT"ƒOK,THE CARDS IN THE„";file$;"ƒFILE" 1230 VDU 133,157:PRINT"ƒHAVE BEEN READ INTO MEMORY." 1240 check1=0:check2=0:file1$=file$:check3=1:check4=1 1250 CLOSE#0:PROChold:ENDPROC 1260 DEFPROCsave:LOCAL I,checknum,file2,file$,dummy1$,dummy2$ 1270 IF check3=0 message$="SAVE":PROCERROR3:ENDPROC 1280 CLS:PROCCLEAR 1290 PRINTTAB(0,2);:VDU132,157:INPUT"‡NAME OF FILE :"file$ 1300 file1$=file$:cake=1:PROCabort:file2=OPENOUT(file$):PRINT#file2,numques:PRINTTAB(0,12);CHR$(132);CHR$(157)"‡MAXIMUM COUNT = ";max 1310 FOR I%=1TOnumques:PRINTTAB(0,15);CHR$(132);CHR$(157)"‡COUNT :";I%:SOUND &12,-12,90,1:PRINT#file2,card$(1,I%),card$(2,I%),card$(3,I%),card$(4,I%),card$(5,I%),max:NEXT:CLOSE#0 1320 OSCLI("ACCESS ")+file$+" L" 1330 PRINT':VDU 132,157:PRINT"‡OK,THE FILE†";file$;"‡HAS BEEN SAVED." 1340 PROChold:ENDPROC 1350 DEFPROCtest 1360 IF check3=0 message$="TEST YOURSELF ON":PROCERROR3:ENDPROC 1370 IF I>max THEN 320:ENDPROC 1380 I=I-1 1390 IF I=1 PROCCLEAR:saw=1:PROCs:ENDPROC 1400 PROCMIND:CLS:PROCCLEAR:min=1:tested=0:right=0:FAT=0:number=1:I=numques 1410 min=1:tested=0:right=0:FAT=0:number=1:I=numques 1420 X=RND(I) 1430 IF I<=2 THEN 1450 1440 IF X=I OR X=find THEN 1420 1450 _$=" [0x15] [0x03] ":CLS:VDU 132,157:PRINT"‡QUESTION NUMBER ";number 1460 PRINTTAB(25);:VDU 132,157:PRINT"‡SCORE : ";right 1470 PRINT' card$(1,X):PRINT'"A)‡";card$(2,X):PRINT"B)‡";card$(3,X):PRINT"C)‡";card$(4,X):PRINT 1480 answer$="":tested=tested+1 1490 REPEAT:find=X:char$=GET$ 1500 UNTIL INSTR("AaBbCc",char$) 1510 IF card$(5,X)=card$(2,X) IO$="A":WE$="a" ELSE IF card$(5,X)=card$(3,X) IO$="B":WE$="b" ELSE IF card$(5,X)=card$(4,X) IO$="C":WE$="c" 1520 IF char$=IO$ OR char$=WE$ PROCyes:GOTO 1540 1530 IF char$<>IO$ OR char$<>WE$ PROCno 1540 number=number+1 1550 PRINT''"†PRESS„TAB†OR ANY KEY TO CONTINUE" 1560 IF GET=9 THEN 1580 1570 find=X:GOTO1420 1580 per=(right/tested)*100 1590 CLS:PRINT':VDU 134,157:PRINT"YOU SCORED„";right;"OUT OF„";tested 1600 VDU 134,157:PRINT"YOUR PERCENTAGE MARK IS„";INT(per);"%" 1610 PROChold:ENDPROC 1620 DEFPROChold:LOCAL dummy$ 1630 PRINT:VDU 135,157:PRINT"„PRESSANY KEY„TO CARRY ON";:dummy$=GET$ 1640 CLS:PROCCLEAR:PROCTITLE:PROCCLEAR:ENDPROC 1650 DEFPROCmaxcards 1660 PROCCLEAR:LOCAL D 1670 PRINTTAB(0,2);CHR$(129);CHR$(157)"‡MAXIMUM NUMBER OF CARDS = ";max 1680 PRINT':VDU 134,157:PRINT"„WHAT IS YOUR MAXIMUM NUMBER OF CARDS" 1690 VDU 134,157:INPUT"„IN YOUR FILE ?"D% 1700 H=0:J=0 1710 IF D%>50 VDU 129,157:PRINT"ƒTOO MANY CARDS...YOU WON'T BE":VDU 129,157:PRINT"ƒABLE TO SAVE MORE THAN 50 CARDS":VDU 129,157:PRINT"ƒON A FILE.":PRINT:VDU 132,157:PRINT"‡PRESS ANY KEY TO CARRY ON";:A$=GET$:D%=50:CLS:GOTO1660 1720 IF D%=1 D%=50:check5=1:PROCs 1730 IF D%=0 VDU 129,157:PRINT"ƒHOW CAN YOUR MAXIMUM BE 0 ?":PRINT:VDU 131,157:PRINT"PRESS ANY KEY TO CARRY ON":A$=GET$:D%=50:CLS:GOTO1660 1740 max=D%:PROChold:ENDPROC 1750 DEFPROCdelete 1760 IF check3=0 message$="DELETE":PROCERROR3:ENDPROC 1770 FOR T=1TOI 1780 IF card$(1,I)<>"" PROCCLEAR:PROCsure(0):ENDPROC 1790 NEXT 1800 _$=" [0x15] [0x03] ":LOCAL M$,A$ 1810 PROCCLEAR:PROCsure(1):ENDPROC 1820 DEFPROCyes 1830 PRINT"†WELL DONE!!..YOU GOT THE QUESTION" 1840 PRINT"†RIGHT" 1850 right=right+1:ENDPROC 1860 DEFPROCno 1870 PRINT"†NO,THE ANSWER IS OPTION LETTER…";IO$ 1880 ENDPROC 1890 DEFPROCscore 1900 x=x-1 1910 VDU 134,157:PRINT"„YOU GOT";right;"„OUT OF";x 1920 IF right=0 per2=0:GOTO 1940 1930 per2=(right/x)*100 1940 VDU 134,157:PRINT"„Your percentage mark is";INT(per2);"„%" 1950 PROChold:GOTO320:ENDPROC 1960 DEFPROCCLOCK 1970 ONERRORPROCERROR2 1980 PROCCLEAR:CLS 1990 TIME$=TIME$:H=0 2000 VDU23;8202;0;0;0; 2010 SEC=(TIME DIV 100)MOD 60:MIN=(TIME DIV 6000)MOD 60:HR=(TIME DIV 360000)MOD 24 2020 U=144+RND(7) 2030 IF U=H THEN 2020 2040 PRINTTAB(0,0);CHR$(132);CHR$(157)"†TIME SINCE PROGRAM STARTED...." 2050 _$=" [0x15] [0x03] ":VDU132,157:PRINTCHR$(135);HR;"†HOURS‡";MIN;"†MINUTES‡";SEC;"†SECONDS" 2060 PRINTTAB(0,4);CHR$(132);CHR$(157)"ƒBBC MASTER CLOCK ";CHR$(156) 2070 FOR T%=6TO30STEP2:PRINTTAB(T%,6);CHR$(U);CHR$(163):NEXT 2080 PRINTTAB(9,7)"†";LEFT$(TIME$,15) 2090 FOR T%=10 TO 11:PRINTTAB(8,T%);CHR$(141)"TIME :…";CHR$(141);RIGHT$(TIME$,8):NEXT 2100 FOR T%=6TO30STEP2:PRINTTAB(T%,12);CHR$(U);CHR$(240):NEXT 2110 A$=INKEY$(10) 2120 PRINT''CHR$(157)"„PRESSƒ'*'„TO RETURN TO THE MAIN MENU" 2130 IF A$="*" PROCCLEAR:CLS:PROChold:ENDPROC 2140 H=U:GOTO 2010:ENDPROC 2150 DEFPROCsorry(X) 2160 CLS:PRINT':VDU 129,157:PRINT"ƒSORRY BUT THE MAXIMUM NUMBER OF" 2170 VDU 129,157:PRINT"ƒCARDS YOU CAN HAVE ISƒ";X 2180 PROChold:GOTO320:ENDPROC 2190 DEFPROCCLEAR:CLS:VDU 23,1,0;0;0;0; 2200 VDU 28,0,24,39,4:CLS:FOR T=1TO19:PRINTTAB(0,T);CHR$(132);CHR$(157);:FOR W=1TO150STEP8:SOUND &11,1,W,1:NEXT, 2210 VDU23,0,10,12,0,0,0,0,0,0 2220 ENDPROC 2230 DEFPROCsound 2240 ONERRORPRINTTAB(0,14);CHR$(132);CHR$(157)"†ˆE R R O R ! !":VDU 129,157:PRINT"ƒPRESS ANY KEY TO RETURN TO THE MENU";:D$=GET$:GOTO 320 2250 PROCCLEAR 2260 FOR T=0TO2:PRINTTAB(0,T);:VDU 132,157:NEXT 2270 PRINTTAB(0,3);CHR$(132);CHR$(157)"‡CHOOSE ONE OF THE FOLLOWING...." 2280 PRINT:VDU 132,157:PRINTCHR$(129);CHR$(157)"ƒ1)‡SOUNDˆON ";:VDU 132,157 2290 VDU 132,157 2300 PRINTCHR$(129);CHR$(157)"ƒ2)‡SOUNDˆOFF";:VDU 132,157 2310 VDU 132,157 2320 G$=GET$ 2330 IF G$="1"OR G$="!" sound$="†ON":*FX210,0 2340 IF G$="2"OR G$=CHR$(34) sound$="†OFF":*FX210,1 2350 IF G$<"1"OR G$>"2" FOR T%=0TO5:PRINTTAB(0,T%);SPC(40);:NEXT:GOTO 2260 2360 PROChold:ENDPROC 2370 DEFPROCERROR2 2380 CLS:PROCCLEAR 2390 PRINTTAB(0,0);CHR$(134);CHR$(157)"‰WHAT DOES IT SAY ON THE MENU" 2400 VDU 134,157:PRINT"„ABOUT THE‡CLOCK„OPTION.....ONLY" 2410 VDU 134,157:PRINT"„PEOPLE WHO OWN A BBC MASTER" 2420 VDU 134,157:PRINT"„COMPUTER." 2430 PROChold:GOTO 320:ENDPROC 2440 DEFPROCERROR3:PROCCLEAR 2450 _$=" [0x15] [0x03] ":PRINTTAB(0,2);CHR$(134);CHR$(157)"„HOW CAN YOU ";message$;"„CARDS" 2460 VDU134,157:PRINT"„YOU HAVEN'T CREATED...!!!" 2470 PROChold:PROCTITLE:ENDPROC 2480 DEFPROCPRINTOUT:VDU23,1,0;0;0;0; 2490 PRINT'CHR$(134);CHR$(157)"„WOULD YOU LIKE A PRINTOUT....(Y/N) ?" 2500 REPEAT:GY$=GET$:UNTIL INSTR("YyNn",GY$) 2510 IF GY$="Y"OR GY$="y" PROCprintout2 2520 VDU3 2530 PRINT:VDU 129,157:PRINT"ƒPRESS ANY KEY TO CARRY ON";:DE$=GET$ 2540 VDU26:PROCCLEAR:ENDPROC 2550 DEFPROCprintout2:VDU 23,1;0;0;0;0; 2560 PRINT'CHR$(132);CHR$(157)"†PRESS ANY KEY";:FR$=GET$:CLS 2570 VDU2:VDU 1,27,1,77,1,27,1,71,1,27,1,48,1,27,1,87,1,1 2580 X=ADVAL(-4):IF X=64-9 VDU3:PRINTTAB(10);CHR$(132);CHR$(157)"†PRINTER NOT CONNECTED";CHR$(156):FR$=GET$:GOTO 320:ENDPROC 2590 PRINTTAB(0,0)"=======================================" 2600 PRINT"CARD NUMBER :";I 2610 VDU1,27,1,87,1,0,1,27,1,50 2620 PRINT'"Q)";card$(1,I):PRINT'"OPTIONAL ANSWERS":FOR T=2TO4:PRINT"A)";card$(T,I):NEXT:PRINT'"RIGHT ANSWER":PRINT"A)";card$(5,I) 2630 VDU 1,27,1,77,1,27,1,71,1,27,1,48,1,27,1,87,1,1 2640 PRINT"=======================================" 2650 VDU1,27,1,87,1,0,1,27,1,50 2660 VDU 23,1,1;0;0;0;:ENDPROC 2670 DEFPROCagain:CLS:*FX220 2680 PRINTTAB(9,11)"ƒDO YOU WANT TO ABORT" 2690 PRINTTAB(9)"ƒTHE PROGRAM†(Y/N)ƒ?" 2700 REPEAT:A$=GET$:UNTIL INSTR("YyNn",A$) 2710 IF A$="Y" OR A$="y" PROCbye ELSE IF A$="N" OR A$="n" THEN 20 2720 ENDPROC 2730 DEFPROCTITLE:VDU26 2740 PRINT" ";CHR$150;"<";STRING$(34,",");"4":FOR C=1TO2:PRINTCHR$148;CHR$157;CHR$141;"5";" ";"…TEST CARDSBYƒA.S.SHAKOOR‚'90":NEXTC:PRINT" ";CHR$150;"-";STRING$(34,",");"%" 2750 VDU 28,0,24,39,4:ENDPROC 2760 DEFPROCbye:CLS:VDU23;8202;0;0;0;:PRINTTAB(0,2)"If you have any enquires or problems,":PRINT"write to :":PRINT'"A.S.SHAKOOR":PRINT"ƒ11,Hazelbrouck Gardens,":PRINT"ƒHainault,Ilford,":PRINT"ƒEssex,†IG6 2XN":END:ENDPROC 2770 DEFPROCs:VDU23,1;0;0;0;0; 2780 I=I-1 2790 PRINTTAB(0,11);CHR$(134);CHR$(157)"„SORRY,BUT YOU MUST HAVE AT LEAST TWO" 2800 VDU134,157:PRINT"„CARDS IN YOUR FILE.";:QWE$=GET$ 2810 IF check5=1 CLS:GOTO1660 2820 IF saw=1 PROCCLEAR:GOTO320 2830 PROCCLEAR:GOTO610:ENDPROC 2840 DEFPROCask 2850 CLS:PROCCLEAR:CLS:PRINT':VDU 134,157:PRINT"„WHY ISN'T THE RIGHT ANSWER TO THE" 2860 _$=" [0x15] [0x03] ":VDU 134,157:PRINT"„QUESTION NOT AMONG THE OPTIONAL" 2870 VDU 134,157:PRINT"„ANSWERS ?" 2880 PROChold 2890 sattar=1:check=1 2900 IF numques<=1 check1=0:check2=0 2910 GOTO320:ENDPROC 2920 DEFPROCsure(K%) 2930 IF K%=1 SAT$="":GOTO2950 2940 PRINTTAB(0,0);CHR$(134);CHR$(157)"„ˆWARNING„...YOU HAVE DATA WHICH WILL":VDU 134,157:PRINT"„ˆBE DELETED OFF YOUR CARDS" 2950 PRINTTAB(0,4);CHR$(133);CHR$(157)"‡DO YOU WANT TO OVERWRITE THE OLD" 2960 VDU133,157:INPUT"‡DATA IN THE COMPUTER'S MEMORY ";M$ 2970 IF SAT$="A" AND M$="Y" OR SAT$="a"AND M$="y" numques=0:I=0:GOTO560 2980 IF M$="Y" OR M$="y" OR M$="YES" OR M$="yes" THEN 3010 2990 PRINT'CHR$(132);CHR$(157);SPC(8);CHR$(135);CHR$(157)"„O.K....OPERATION ABORTED!!" 3000 PROChold:ENDPROC 3010 FOR W%=1TO5:FOR I%=1TOnumques:card$(W%,I%)="":NEXT,:CLEAR 3020 PRINT':VDU 129,157:PRINT"‡ALL DATA IN THE CARDS HAS BEEN" 3030 VDU 129,157:PRINT"‡DELETED." 3040 VDU 132,157:PRINT"‡PRESS ANY KEY TO RETURN TO THE MENU":key$=GET$ 3050 GOTO310:ENDPROC 3060 DEFPROCERROR 3070 PROCCLEAR:PRINTTAB(0,1);CHR$(132);CHR$(157)"†ˆE R R O R....‰EITHER:":PRINT:VDU129,157:PRINT"ƒ1) THE DISC IS FAULTY":VDU 129,157:PRINT"ƒ2) THE DISC IS FULL UP OF DATA":PROChold:GOTO320:ENDPROC 3080 DEFPROCMIND 3090 CLS:PROCCLEAR:CLS 3100 PRINTTAB(0,1);CHR$(129);CHR$(157)"ƒTHINGS TO KEEP IN MIND..........":VDU132,157:PRINT 3110 VDU 132,157:PRINT"‡<1>†KEEP THE‡CAPS LOCK†ON" 3120 VDU132,157:PRINT 3130 VDU 132,157:PRINT"‡<2>†TO FINISH TYPE‡'*'" 3140 PRINTCHR$(132);CHR$(157) 3150 VDU 133,157:PRINT"ƒˆPRESS ANY KEY";:Q$=GET$:ENDPROC 3160 DEFPROCOSCLI 3170 ONERRORPRINT'" ERROR":GOTO 3210 3180 CLS 3190 PRINT:VDU 132,157,135:PRINT"FOR HELP TYPEˆ*HELP" 3200 REPEAT 3210 INPUTLINE'" *"star$ 3220 IF star$="RETURN"OR star$="return" THEN 320 3230 IF star$="HELP" OR star$="help":PROChelp 3240 IF star$="TIME" PROCVAR:PRINT:VDU132,157:PRINT"‡";HR;"†HOURS‡ ";MIN;"†MINUTES‡";SEC;"†SECONDS„";CHR$(255);:UNTIL FALSE 3250 IF star$="DISC" OR star$="disc" OR star$="DISK" OR star$="disk":FOS$=star$ 3260 _$=" [0x15] [0x03] ":IF star$="TAPE" OR star$="TAPE":FOS$=star$ 3270 OSCLI(star$):UNTIL FALSE:ENDPROC 3280 DEFPROChelp 3290 PRINT:VDU 132,157,135:PRINT"*RETURN : TO RETURN BACK TO THE MENU" 3300 VDU 132,157,135:PRINT"*BASIC : TO EXIT THE PROGRAM" 3310 VDU 132,157,135:PRINT"*CAT : TO CATALOGUE THE DISC" 3320 VDU 132,157,135:PRINT"*TIME : TIME TEST CARDS HAS BEEN ON" 3330 PRINT:VDU 132,157,135:PRINT"YOU CAN USE ALL THE OPERATING SYSTEM":VDU 132,157,135:PRINT"COMMANDS AVAILABLE FOR YOUR COMPUTER" 3340 PRINT':VDU 132,157:PRINT"‡PRESS ANY KEY TO CARRY ON":A$=GET$ 3350 PROCOSCLI:ENDPROC 3360 DEFPROCmaximum:CLS:PROCCLEAR 3370 PRINTTAB(0,8);CHR$(132);CHR$(157)"‡SORRY,BUT YOU CANNOT CREATE":VDU132,157:PRINT"‡ANY MORE CARDS." 3380 PROChold:GOTO 320:ENDPROC 3390 DEFPROChold2 3400 PRINT'TAB(15);CHR$(129);CHR$(157)"ƒPRESS ANY KEY";:A$=GET$:CLS:PROCCLEAR 3410 ENDPROC 3420 DEFPROCNEWCARD:PROCCLEAR:CLS 3430 VDU132,157:PRINT"‡PLEASE TYPE THE NEW CARD IN. ";CHR$(156):PRINT:VDU132,157:PRINT"†QUESTION ";I;" ";CHR$(156):INPUTLINE'"ƒ Q) "card$(1,I):PRINT:VDU132,157:PRINT"‡OPTIONAL ANSWERS : ";CHR$(156) 3440 FOR T=2TO4:INPUTLINE"ƒ A) "card$(T,I):NEXT 3450 VDU132,157:PRINT"‡REAL ANSWER ";CHR$(156):INPUTLINE'"ƒ A) "card$(5,I) 3460 ENDPROC 3470 DEFPROCinit 3480 J=0:I=0:sattar=0:IO$="":WE$="":check1=0:find=0:saw=0:check2=1:check3=0:cake=0:numques=0:max=50:S=0:check4=0:cycle=0:S=0:file1$="NOTHING IN MEMORY" 3490 FOS$="DISC":sound$="†OFF":check5=0:*FX210,1 3500 DIM card$(5,max),recent(4) 3510 FOR A=1TO4:recent(A)=0:NEXT 3520 ENDPROC 3530 DEFPROCprint3:VDU 23,1;0;0;0;0;:CLS:PROCCLEAR 3540 PRINTTAB(0,4);CHR$(129);CHR$(157)"ƒWHICH CARD WOULD YOU LIKE TO ":VDU129,157:INPUT"ƒPRINT ?"G 3550 IFG>numques message$="PRINT":PROCERROR3:ENDPROC 3560 IFG=0 CLS:PROCCLEAR:GOTO3540 3570 I=G 3580 PROCprintout2:VDU3:PROChold:GOTO320:ENDPROC 3590 DEFPROCabort 3600 PRINT'':VDU 129,157:PRINT"ƒDO YOU WANT TO ABORT THIS OPERATION":VDU 129,157:INPUT"ƒAND RETURN BACK TO THE MENU ?"D$ 3610 IF D$="Y" OR D$="y" OR D$="YES" OR D$="yes" PROChold:GOTO320:ENDPROC 3620 ENDPROC 3630 DEFPROCmusic 3640 ENVELOPE1,1,0,0,0,1,1,1,60,-4,-1,-1,120,90:ENVELOPE2,1,0,0,0,1,1,1,60,-4,-1,-1,120,90:ENVELOPE3,1,0,0,0,1,1,1,60,-4,-1,-1,120,90:B$="C D EF G A Bc d ef":C$="55551111555511555566661154321155":E$="88887777888877888899997A88357A88" 3650 D$="123475.A.86...9":T%=9:B%=6:READA$,N%:NOW=TIME:M%=0:U%=FALSE:R%=B%+4*INSTR(D$,LEFT$(C$,1)) 3660 REPEAT:IFINKEY(0)=32THENG%=32:UNTILTRUE:ENDPROC 3670 IFM%<=0M%=M%+3:IFLENC$SOUND&11,1,R%-(S%-R%)*U%,-1:SOUND&12,1ANDU%,S%+12,-1:U%=NOTU%:R%=B%+4*INSTR(D$,LEFT$(C$,1)):S%=B%+4*INSTR(D$,LEFT$(E$,1)):C$=RIGHT$(C$,LENC$+U%):E$=RIGHT$(E$,LENE$+U%) 3680 M%=M%-N%:C%=C%-N%:SOUND&13,1,B%+4*(INSTR(B$,LEFT$(A$,1))-(INSTR(A$,"#")>0)+12),-1:NOW=NOW+N%*T%:REPEATUNTILTIME>NOW:READ A$,N%:UNTILA$="dne":ENDPROC 3690 DATAF,1,F,1,F,1,F,3,F,1,F,1,F,1,F,2,c,1,A,2,F,1,A,2,c,1,f,2,c,1,A,2,F,1,C,1,C,1,C,1,C,3,C,1,C,1,C,1,C,2,G,1,E,2,C,1,E,2,G,1,A#,2,G,1,E,2,C,1,F,1,F,1,F,1,F,3,F,1,F,1,F,1,F,2,c,1,A,2,F,1,A,2,c,1,f,3,F,3,C,2,f,1,e,2,d,1,c,2,A#,1,A,2,G,1 3700 DATAF,3,A,3,F,3,A,2,A#,1,c,1,c,1,c,1,c,3,c,1,c,1,c,1,c,3,d,2,e,1,f,2,e,1,d,2,c,1,A#,2,A,1,A#,2,c,1,d,2,c,1,A#,2,A,1,G,2,F,1,E,2,F,1,G,2,F,1,E,2,C,1,D,2,E,1,F,1,F,1,F,1,F,3,F,1,F,1,F,1,F,3,F,1,F,1,F,1,F,3,F,1,F,1,F,1,F,3,C,2,f,1,e,2,d 3710 DATA1,c,2,A#,1,A,2,G,1,F,3,A,3,F,6,dne,0 3720 DEFPROCVAR 3730 SEC=(TIME DIV 100)MOD 60:MIN=(TIME DIV 6000)MOD 60:HR=(TIME DIV 360000)MOD 24:ENDPROC