10`$=" ":*KEY10*FX220|M*DISC|MOLD|MRU
N|M
20CLEAR:MODE7
30!&70=&EE2007A9:!&74=&DEC54CFF:?&210
=&70:?&211=0
40OSCLI("FX213,70"):OSCLI("FX200,1"):
*FX214,1
50VDU 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;
60S=10:C1=148:TIME=0:T=134:XS=0
70F=144+RND(7)
80IF F=C1 OR F=S THEN 70
90PRINTTAB(0,2);:VDU 132;157
100PRINTTAB(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
110PRINTTAB(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
120PRINTTAB(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;
130PRINTTAB(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;
140PRINTTAB(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;
150PRINTTAB(0,8);:VDU C1;157:PRINTTAB(
0,9);:VDU C1;157;F;154;160;254;255;255;2
55;253;
160FOR T%=0TO3:VDU 160;254;255;255;255
;253;:NEXT
170PRINTTAB(0,10);:VDU C1;157;F;154;16
0;255;160;160;160;160;160;255;160;160;16
0;255;160;255;160;160;160;255;160;160;25
5;160;160;255;160;255
180PRINTTAB(0,11);:VDU C1;157;F;154;16
0;255;160;160;160;160;160;255;255;255;25
5;255;160;255;255;255;255;255;160;160;25
5;160;160;255;160;255;255;255;255;253;
190PRINTTAB(0,12);:VDU C1;157;F;154;16
0;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;
200PRINTTAB(0,13);:VDU C1;157;F;154;16
0;255;255;255;255;253;160;255;:PRINTSPC(
3);:VDU 255;160;255;:PRINTSPC(1);:VDU 16
3;175;252;160;239;255;255;255;191;160;25
4;255;255;255;191;
210PRINTTAB(0,14);:VDU 132;157:PRINTTA
B(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);C
HR$(157)" PRESS 'SPACE' TO END. ";
CHR$(156):PROCmusic
230PRINTTAB(4,21);CHR$(129);CHR$(157)"
PRESS 'S' TO CARRY ON ";CHR$(156)
240PRINTTAB(0,23);CHR$(132);CHR$(157)"
TO CHANGE FONT PRESS Z OR X"
250A$=INKEY$(1)
260IF A$="Z"OR A$="z" VDU23;8,147,0;0;
0;23;9,18,0;0;0;
270IF 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;
280IF A$="S" OR A$="s" THEN 300
290S=F:XS=1:GOTO70
300CLEAR:?&25A=&20:*FX15,1
310PROCinit:OSCLI(FOS$):OSCLI("DIR F")
320REPEAT CLS:VDU26:PROCTITLE:PROCCLEA
R:VDU23,1,0;0;0;0;
330F=128+RND(7)
340IF F=S THEN 330
350PROCVAR
360PRINTTAB(0,0);CHR$(132);CHR$(157)"
TIME SINCE PROGRAM STARTED...."
370IF SEC>=0 OR SEC<=9 PRINTTAB(0,1);C
HR$(132);CHR$(157)" ";HR;" HOURS ";MIN;"
MINUTES ";" ";SEC;" SECONDS ";CHR$(255)
:GOTO 400
380`$=" ":IF MIN>=0 OR MIN<=9 PRINTTAB
(0,1);CHR$(132);CHR$(157)" ";HR;" HOURS
";MIN;" MINUTES ";SEC;" SECONDS ";CHR$(
255);:GOTO 400
390IF HR>=0 OR HR<=9 PRINTTAB(0,1);CHR
$(132);CHR$(157)" ";HR;" HOURS ";MIN;" M
INUTES ";SEC;" SECONDS ";CHR$(255)
400PRINTTAB(0,2)"
,,,,,,,,,,,,,,,,,,"
410PRINTTAB(0,3);CHR$(F)" A> CREATE SO
ME CARDS"'CHR$(F)" B> ALTER THE CURRENT
CARDS"'CHR$(F)" C> ADD NEW CARDS TO CURR
ENT SET"
420PRINTCHR$(F)" D> LOAD A SET OF CARD
S 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"
430PRINTCHR$(F)" I> PRINT A CERTAIN CA
RD"'"
,,,,"'CHR$(F)" J> BBC MASTER CLOCK"'CHR$
(F)" K> SOUND is";sound$:PRINTCHR$(F)" L
> * (COMMAND)"'CHR$(F)" M> END"
440FOR W%=0TO39:PRINTTAB(W%,17)" ":NEX
T
450PRINTTAB(0,18);CHR$(132);CHR$(157)"
NUMBER OF CARDS IN THE FILE : ";max:VDU
132,157:PRINT" FILE IN MEMORY : ";file1$
460VDU 23,0,10,12,0,0,0,0,0,0
470SAT$=INKEY$(1):S=F
480S=F
490 IF SAT$="A" OR SAT$="a" check3=1:P
ROCaddques ELSE IF SAT$="B" OR SAT$="b"
PROCalter ELSE IF SAT$="C" OR SAT$="c" A
ND I>1 I=numques:PROCaddques ELSE IF SAT
$="D" OR SAT$="d" PROCload
500 IF SAT$="E"OR SAT$="e" PROCsave EL
SE 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 E
LSE IF SAT$="L"OR SAT$="l" PROCOSCLI ELS
E IF SAT$="M"OR SAT$="M" PROCagain
520GOTO 330
530DEFPROCaddques:LOCAL I
540PROCCLEAR
550IF SAT$="A" AND card$(1,1)<>"" OR S
AT$="a" AND card$(1,1)<>"" PROCsure(0):E
NDPROC
560IF I>=max OR numques>=max PROCmaxim
um:ENDPROC
570IF check3=0 message$="ADD":PROCERRO
R3:ENDPROC
580check1=1:check2=0
590IF I>=max CLS:PROCTITLE:PROCCLEAR:P
ROChold:ENDPROC
600VDU23,0,10,12,0,0,0,0,0,0
610I=numques:REPEAT I=I+1:CLS
620PRINTTAB(0,19);CHR$(132);CHR$(157)"
MAXIMUM NUMBER OF CARDS ALLOWED":VDU 13
2,157:PRINT" IS ";max
630PROCTITLE
640VDU 23,1,0;0;0;0;:FOR T=2TO13:PRINT
TAB(0,T);SPC(40);:NEXT:VDU 23,1,1;0;0;0;
650PRINTTAB(0,0);:VDU 132,157:PRINTTAB
(0,1);:VDU 132,157
660PRINTTAB(12,1);CHR$(134);CHR$(157)"
CARD NUMBER : ";I
670PRINTTAB(0,2)" TEST CARD NUMBER ";I
;" :-"
680VDU28,0,21,39,6
690PRINT" Q)";:INPUT LINE" "card$(1,I)
700IF card$(1,I)="*" AND numques<2 PRO
Cs
710IF card$(1,I)="*" THEN 320
720PRINT'" NOW TYPE YOUR 3 OPTIONAL AN
SWERS IN"
730PRINT" A)";:INPUT LINE" "card$(2,I)
:IF card$(2,I)="*" AND numques<2 PROCs
740IF card$(2,I)="*" THEN 320
750`$=" ":PRINT" A)";:INPUT LINE" "car
d$(3,I):IF card$(3,I)="*" AND numques<2
PROCs
760IF card$(3,I)="*"THEN 320
770PRINT" A)";:INPUT LINE" "card$(4,I)
:IF card$(4,I)="*" AND numques<2 PROCs
780IF card$(4,I)="*" THEN 320
790IF card$(4,I)<>"*" THEN PRINT''" TY
PE IN YOUR RIGHT ANSWER NOW ":INPUTLINE'
" A) "card$(5,I)
800IF card$(5,I)="*" AND numques<2:PRO
Cs
810IF 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
830PROCPRINTOUT
840numques=numques+1
850VDU 23,1,1;0;0;0;:FOR T=2TO12:PRINT
TAB(0,T);SPC(40);:NEXT:VDU23,0,10,12,0,0
,0,0,0,0
860IF I>=max CLS:PROCTITLE:PROCCLEAR:P
ROChold:ENDPROC
870UNTIL card$(1,I)="*" OR card$(2,I)=
"*"OR card$(3,I)="*" OR card$(4,I)="*" O
R card$(5,I)="*" OR I=max
880IF I>=max THEN 320
890VDU 28,0,23,39,5
900IF card$(1,I)<>"*" PRINT''" YOU CAN
'T HAVE ANY MORE CARDS "'" BECAU
SE IT WOULD BE MORE THAN THE "'" MAXIM
UM PERMITTED.................. "'" HINT
... USE OPTION 7":max=max:PROChold ELSE
numques=I-1
910GOTO320:ENDPROC
920DEFPROCalter:LOCAL I,ans$:PROCCLEAR
:CLS
930IF numques>=1 GOTO 970
940IF check2=1 message$="ALTER":PROCER
ROR3:ENDPROC
950IF check1=1 AND numques<1 message$=
"ALTER":PROCERROR3:ENDPROC
960IF check1=1 AND sattar=1 numques=nu
mques-1
970Q=numques-numques
980FOR I=1 TO numques
990PRINTTAB(0,19);CHR$(132);CHR$(157)"
TYPE * TO RETURN TO THE MAIN MENU":PROC
TITLE
1000IFJ%=J D=max ELSE D=100:D=max
1010IF Q=max PROChold:ENDPROC
1020FOR T=2TO13:VDU 23,1,0;0;0;0;:PRINT
TAB(0,T);SPC(40);:NEXTT:VDU23,0,10,12,0,
0,0,0,0,0
1030PRINTTAB(12,1);:VDU 134,157;:PRINT"
CARD NUMBER : ";I
1040PRINT:VDU 132,157:PRINT" QUESTION
";CHR$(156)'" Q) ";card$(1,I)
1050PRINT:VDU 132,157:PRINT" OPTIONAL A
NSWERS ";CHR$(156)
1060FOR T=2TO4:PRINT" A) ";card$(T,I):N
EXT
1070PRINT:VDU132,157:PRINT" RIGHT ANSWE
R ";CHR$(156)
1080PRINT" A) ";card$(5,I)
1090PRINT'" DO YOU WANT TO CHANGE THIS
ONE (Y/N) ?":ans$=GET$
1100IF ans$="Y"ORans$="y" PROCNEWCARD:P
ROCPRINTOUT:GOTO1120
1110PROCPRINTOUT
1120IF ans$="*"ORans$=":" THEN1150
1130`$=" ":IF card$(5,I)<>card$(2,I) AN
D card$(5,I)<>card$(3,I) AND card$(5,I)<
>card$(4,I) PROCask
1140CLS:NEXT
1150CLS:PROCCLEAR:GOTO320:ENDPROC
1160DEFPROCload:LOCAL I,file,file$:VDU2
3,1,1;0;0;0;23,0,10,12,0,0,0,0,0,0:PROCC
LEAR:PRINTTAB(0,2);CHR$(134);CHR$(157)"
NAME OF FILE :";:INPUT""file$:PROCabort
1170file=OPENIN(file$):INPUT#file,I
1180IF I>max PRINT'" THAT FILE HAS MORE
CARDS IN IT "'" THAN ARE PRESENT
LY ALLOWED FOR. "N" USE OPTION 7 TO
CHANGE THE VALUE.":CLOSE#file:PROChold:E
NDPROC ELSE numques=I
1190PRINT:VDU 132,157:PRINT"
PLEASE WAIT"
1200PRINTTAB(0,12);CHR$(132);CHR$(157)"
MAXIMUM COUNT = ";max
1210FOR 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:NE
XT
1220PRINT'':VDU 133,157:PRINT" OK,THE C
ARDS IN THE ";file$;" FILE"
1230VDU 133,157:PRINT" HAVE BEEN READ I
NTO MEMORY."
1240check1=0:check2=0:file1$=file$:chec
k3=1:check4=1
1250CLOSE#0:PROChold:ENDPROC
1260DEFPROCsave:LOCAL I,checknum,file2,
file$,dummy1$,dummy2$
1270IF check3=0 message$="SAVE":PROCERR
OR3:ENDPROC
1280CLS:PROCCLEAR
1290PRINTTAB(0,2);:VDU132,157:INPUT" NA
ME OF FILE :"file$
1300file1$=file$:cake=1:PROCabort:file2
=OPENOUT(file$):PRINT#file2,numques:PRIN
TTAB(0,12);CHR$(132);CHR$(157)" MAXIMUM
COUNT = ";max
1310FOR I%=1TOnumques:PRINTTAB(0,15);CH
R$(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"
1330PRINT':VDU 132,157:PRINT" OK,THE FI
LE ";file$;" HAS BEEN SAVED."
1340PROChold:ENDPROC
1350DEFPROCtest
1360IF check3=0 message$="TEST YOURSELF
ON":PROCERROR3:ENDPROC
1370IF I>max THEN 320:ENDPROC
1380I=I-1
1390IF I=1 PROCCLEAR:saw=1:PROCs:ENDPRO
C
1400PROCMIND:CLS:PROCCLEAR:min=1:tested
=0:right=0:FAT=0:number=1:I=numques
1410min=1:tested=0:right=0:FAT=0:number
=1:I=numques
1420X=RND(I)
1430IF I<=2 THEN 1450
1440IF X=I OR X=find THEN 1420
1450`$=" ":CLS:VDU 132,157:PRINT" QUEST
ION NUMBER ";number
1460PRINTTAB(25);:VDU 132,157:PRINT" SC
ORE : ";right
1470PRINT' card$(1,X):PRINT'" A) ";card
$(2,X):PRINT" B) ";card$(3,X):PRINT" C)
";card$(4,X):PRINT
1480answer$="":tested=tested+1
1490REPEAT:find=X:char$=GET$
1500UNTIL INSTR("AaBbCc",char$)
1510IF 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"
1520IF char$=IO$ OR char$=WE$ PROCyes:G
OTO 1540
1530IF char$<>IO$ OR char$<>WE$ PROCno
1540number=number+1
1550PRINT''" PRESS TAB OR ANY KEY TO CO
NTINUE"
1560IF GET=9 THEN 1580
1570find=X:GOTO1420
1580per=(right/tested)*100
1590CLS:PRINT':VDU 134,157:PRINT" YOU S
CORED ";right;" OUT OF ";tested
1600VDU 134,157:PRINT" YOUR PERCENTAGE
MARK IS ";INT(per);"%"
1610PROChold:ENDPROC
1620DEFPROChold:LOCAL dummy$
1630PRINT:VDU 135,157:PRINT" PRESS ANY
KEY TO CARRY ON";:dummy$=GET$
1640CLS:PROCCLEAR:PROCTITLE:PROCCLEAR:E
NDPROC
1650DEFPROCmaxcards
1660PROCCLEAR:LOCAL D
1670 PRINTTAB(0,2);CHR$(129);CHR$(157)"
MAXIMUM NUMBER OF CARDS = ";max
1680PRINT':VDU 134,157:PRINT" WHAT IS Y
OUR MAXIMUM NUMBER OF CARDS"
1690 VDU 134,157:INPUT" IN YOUR FILE ?"
D%
1700H=0:J=0
1710 IF D%>50 VDU 129,157:PRINT" TOO MA
NY CARDS...YOU WON'T BE":VDU 129,157:PRI
NT" ABLE TO SAVE MORE THAN 50 CARDS":VDU
129,157:PRINT" ON A FILE.":PRINT:VDU 13
2,157:PRINT" PRESS ANY KEY TO CARRY ON";
:A$=GET$:D%=50:CLS:GOTO1660
1720IF D%=1 D%=50:check5=1:PROCs
1730IF D%=0 VDU 129,157:PRINT" HOW CAN
YOUR MAXIMUM BE 0 ?":PRINT:VDU 131,157:P
RINT" PRESS ANY KEY TO CARRY ON":A$=GET$
:D%=50:CLS:GOTO1660
1740max=D%:PROChold:ENDPROC
1750DEFPROCdelete
1760IF check3=0 message$="DELETE":PROCE
RROR3:ENDPROC
1770FOR T=1TOI
1780IF card$(1,I)<>"" PROCCLEAR:PROCsur
e(0):ENDPROC
1790NEXT
1800`$=" ":LOCAL M$,A$
1810PROCCLEAR:PROCsure(1):ENDPROC
1820DEFPROCyes
1830PRINT" WELL DONE!!..YOU GOT THE QUE
STION"
1840PRINT" RIGHT"
1850right=right+1:ENDPROC
1860DEFPROCno
1870PRINT" NO,THE ANSWER IS OPTION LETT
ER ";IO$
1880ENDPROC
1890DEFPROCscore
1900x=x-1
1910VDU 134,157:PRINT" YOU GOT ";right;
" OUT OF ";x
1920IF right=0 per2=0:GOTO 1940
1930per2=(right/x)*100
1940VDU 134,157:PRINT" Your percentage
mark is ";INT(per2);" %"
1950PROChold:GOTO320:ENDPROC
1960DEFPROCCLOCK
1970ONERRORPROCERROR2
1980PROCCLEAR:CLS
1990TIME$=TIME$:H=0
2000VDU23;8202;0;0;0;
2010SEC=(TIME DIV 100)MOD 60:MIN=(TIME
DIV 6000)MOD 60:HR=(TIME DIV 360000)MOD
24
2020U=144+RND(7)
2030IF U=H THEN 2020
2040PRINTTAB(0,0);CHR$(132);CHR$(157)"
TIME SINCE PROGRAM STARTED...."
2050`$=" ":VDU132,157:PRINTCHR$(135);HR
;" HOURS ";MIN;" MINUTES ";SEC;" SECONDS
"
2060PRINTTAB(0,4);CHR$(132);CHR$(157)"
BBC MASTER CLOCK ";CHR$(156)
2070FOR T%=6TO30STEP2:PRINTTAB(T%,6);CH
R$(U);CHR$(163):NEXT
2080PRINTTAB(9,7)" ";LEFT$(TIME$,15)
2090FOR T%=10 TO 11:PRINTTAB(8,T%);CHR$
(141)" TIME : ";CHR$(141);RIGHT$(TIME$,8
):NEXT
2100FOR T%=6TO30STEP2:PRINTTAB(T%,12);C
HR$(U);CHR$(240):NEXT
2110A$=INKEY$(10)
2120PRINT''CHR$(157)" PRESS '*' TO RETU
RN TO THE MAIN MENU"
2130IF A$="*" PROCCLEAR:CLS:PROChold:EN
DPROC
2140H=U:GOTO 2010:ENDPROC
2150DEFPROCsorry(X)
2160CLS:PRINT':VDU 129,157:PRINT" SORRY
BUT THE MAXIMUM NUMBER OF"
2170VDU 129,157:PRINT" CARDS YOU CAN HA
VE IS ";X
2180PROChold:GOTO320:ENDPROC
2190DEFPROCCLEAR:CLS:VDU 23,1,0;0;0;0;
2200VDU 28,0,24,39,4:CLS:FOR T=1TO19:PR
INTTAB(0,T);CHR$(132);CHR$(157);:FOR W=1
TO150STEP8:SOUND &11,1,W,1:NEXT,
2210VDU23,0,10,12,0,0,0,0,0,0
2220ENDPROC
2230DEFPROCsound
2240ONERRORPRINTTAB(0,14);CHR$(132);CHR
$(157)" E R R O R ! !":VDU 129,157:PRIN
T" PRESS ANY KEY TO RETURN TO THE MENU";
:D$=GET$:GOTO 320
2250PROCCLEAR
2260FOR T=0TO2:PRINTTAB(0,T);:VDU 132,1
57:NEXT
2270PRINTTAB(0,3);CHR$(132);CHR$(157)"
CHOOSE ONE OF THE FOLLOWING...."
2280PRINT:VDU 132,157:PRINTCHR$(129);CH
R$(157)" 1) SOUND ON ";:VDU 132,157
2290VDU 132,157
2300PRINTCHR$(129);CHR$(157)" 2) SOUND
OFF";:VDU 132,157
2310VDU 132,157
2320G$=GET$
2330IF G$="1"OR G$="!" sound$=" ON":*FX
210,0
2340IF G$="2"OR G$=CHR$(34) sound$=" OF
F":*FX210,1
2350IF G$<"1"OR G$>"2" FOR T%=0TO5:PRIN
TTAB(0,T%);SPC(40);:NEXT:GOTO 2260
2360PROChold:ENDPROC
2370DEFPROCERROR2
2380CLS:PROCCLEAR
2390PRINTTAB(0,0);CHR$(134);CHR$(157)"
WHAT DOES IT SAY ON THE MENU"
2400VDU 134,157:PRINT" ABOUT THE CLOCK
OPTION.....ONLY"
2410VDU 134,157:PRINT" PEOPLE WHO OWN A
BBC MASTER"
2420VDU 134,157:PRINT" COMPUTER."
2430PROChold:GOTO 320:ENDPROC
2440DEFPROCERROR3:PROCCLEAR
2450`$=" ":PRINTTAB(0,2);CHR$(134);CHR$
(157)" HOW CAN YOU ";message$;" CARDS"
2460VDU134,157:PRINT" YOU HAVEN'T CREAT
ED...!!!"
2470PROChold:PROCTITLE:ENDPROC
2480DEFPROCPRINTOUT:VDU23,1,0;0;0;0;
2490PRINT'CHR$(134);CHR$(157)" WOULD YO
U LIKE A PRINTOUT....(Y/N) ?"
2500 REPEAT:GY$=GET$:UNTIL INSTR("YyNn"
,GY$)
2510IF GY$="Y"OR GY$="y" PROCprintout2
2520VDU3
2530PRINT:VDU 129,157:PRINT" PRESS ANY
KEY TO CARRY ON";:DE$=GET$
2540VDU26:PROCCLEAR:ENDPROC
2550DEFPROCprintout2:VDU 23,1;0;0;0;0;
2560PRINT'CHR$(132);CHR$(157)" PRESS AN
Y 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:PRINTTA
B(10);CHR$(132);CHR$(157)" PRINTER NOT C
ONNECTED";CHR$(156):FR$=GET$:GOTO 320:EN
DPROC
2590 PRINTTAB(0,0)"====================
==================="
2600PRINT"CARD NUMBER :";I
2610 VDU1,27,1,87,1,0,1,27,1,50
2620 PRINT'"Q)";card$(1,I):PRINT'"OPTIO
NAL 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
2640PRINT"=============================
=========="
2650VDU1,27,1,87,1,0,1,27,1,50
2660VDU 23,1,1;0;0;0;:ENDPROC
2670 DEFPROCagain:CLS:*FX220
2680PRINTTAB(9,11)" DO YOU WANT TO ABOR
T"
2690PRINTTAB(9)" THE PROGRAM (Y/N) ?"
2700REPEAT:A$=GET$:UNTIL INSTR("YyNn",A
$)
2710IF A$="Y" OR A$="y" PROCbye ELSE IF
A$="N" OR A$="n" THEN 20
2720 ENDPROC
2730DEFPROCTITLE:VDU26
2740PRINT" ";CHR$150;"<";STRING$(34,",
");"4":FOR C=1TO2:PRINTCHR$148;CHR$157;C
HR$141;"5";" ";" TEST CARDS BY A.S.SHAKO
OR '90":NEXTC:PRINT" ";CHR$150;"-";STRI
NG$(34,",");"%"
2750VDU 28,0,24,39,4:ENDPROC
2760DEFPROCbye:CLS:VDU23;8202;0;0;0;:PR
INTTAB(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
2770DEFPROCs:VDU23,1;0;0;0;0;
2780I=I-1
2790PRINTTAB(0,11);CHR$(134);CHR$(157)"
SORRY,BUT YOU MUST HAVE AT LEAST TWO"
2800VDU134,157:PRINT" CARDS IN YOUR FIL
E.";:QWE$=GET$
2810IF check5=1 CLS:GOTO1660
2820IF saw=1 PROCCLEAR:GOTO320
2830PROCCLEAR:GOTO610:ENDPROC
2840DEFPROCask
2850CLS:PROCCLEAR:CLS:PRINT':VDU 134,15
7:PRINT" WHY ISN'T THE RIGHT ANSWER TO T
HE"
2860`$=" ":VDU 134,157:PRINT" QUESTION
NOT AMONG THE OPTIONAL"
2870VDU 134,157:PRINT" ANSWERS ?"
2880PROChold
2890sattar=1:check=1
2900 IF numques<=1 check1=0:check2=0
2910GOTO320:ENDPROC
2920DEFPROCsure(K%)
2930IF K%=1 SAT$="":GOTO2950
2940PRINTTAB(0,0);CHR$(134);CHR$(157)"
WARNING ...YOU HAVE DATA WHICH WILL":VD
U 134,157:PRINT" BE DELETED OFF YOUR CA
RDS"
2950PRINTTAB(0,4);CHR$(133);CHR$(157)"
DO YOU WANT TO OVERWRITE THE OLD"
2960VDU133,157:INPUT" DATA IN THE COMPU
TER'S MEMORY ";M$
2970 IF SAT$="A" AND M$="Y" OR SAT$="a"
AND M$="y" numques=0:I=0:GOTO560
2980IF M$="Y" OR M$="y" OR M$="YES" OR
M$="yes" THEN 3010
2990PRINT'CHR$(132);CHR$(157);SPC(8);CH
R$(135);CHR$(157)" O.K....OPERATION ABOR
TED!!"
3000PROChold:ENDPROC
3010FOR W%=1TO5:FOR I%=1TOnumques:card$
(W%,I%)="":NEXT,:CLEAR
3020PRINT':VDU 129,157:PRINT" ALL DATA
IN THE CARDS HAS BEEN"
3030VDU 129,157:PRINT" DELETED."
3040 VDU 132,157:PRINT" PRESS ANY KEY T
O RETURN TO THE MENU":key$=GET$
3050GOTO310:ENDPROC
3060DEFPROCERROR
3070PROCCLEAR:PRINTTAB(0,1);CHR$(132);C
HR$(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
3080DEFPROCMIND
3090CLS:PROCCLEAR:CLS
3100PRINTTAB(0,1);CHR$(129);CHR$(157)"
THINGS TO KEEP IN MIND..........":VDU132
,157:PRINT
3110VDU 132,157:PRINT" <1> KEEP THE CAP
S LOCK ON"
3120VDU132,157:PRINT
3130VDU 132,157:PRINT" <2> TO FINISH TY
PE '*'"
3140PRINTCHR$(132);CHR$(157)
3150VDU 133,157:PRINT" PRESS ANY KEY";
:Q$=GET$:ENDPROC
3160DEFPROCOSCLI
3170ONERRORPRINT'" ERROR":GOTO 3210
3180CLS
3190PRINT:VDU 132,157,135:PRINT"FOR HEL
P TYPE *HELP"
3200 REPEAT
3210INPUTLINE'" *"star$
3220IF star$="RETURN"OR star$="return"
THEN 320
3230IF star$="HELP" OR star$="help":PRO
Chelp
3240IF star$="TIME" PROCVAR:PRINT:VDU13
2,157:PRINT" ";HR;" HOURS ";MIN;" MINUT
ES ";SEC;" SECONDS ";CHR$(255);:UNTIL FA
LSE
3250IF star$="DISC" OR star$="disc" OR
star$="DISK" OR star$="disk":FOS$=star$
3260`$=" ":IF star$="TAPE" OR star$="TA
PE":FOS$=star$
3270OSCLI(star$):UNTIL FALSE:ENDPROC
3280DEFPROChelp
3290PRINT:VDU 132,157,135:PRINT"*RETURN
: TO RETURN BACK TO THE MENU"
3300VDU 132,157,135:PRINT"*BASIC : TO
EXIT THE PROGRAM"
3310VDU 132,157,135:PRINT"*CAT : TO
CATALOGUE THE DISC"
3320VDU 132,157,135:PRINT"*TIME : TIM
E TEST CARDS HAS BEEN ON"
3330PRINT:VDU 132,157,135:PRINT"YOU CAN
USE ALL THE OPERATING SYSTEM":VDU 132,1
57,135:PRINT"COMMANDS AVAILABLE FOR YOUR
COMPUTER"
3340PRINT':VDU 132,157:PRINT" PRESS ANY
KEY TO CARRY ON":A$=GET$
3350PROCOSCLI:ENDPROC
3360DEFPROCmaximum:CLS:PROCCLEAR
3370PRINTTAB(0,8);CHR$(132);CHR$(157)"
SORRY,BUT YOU CANNOT CREATE":VDU132,157:
PRINT" ANY MORE CARDS."
3380PROChold:GOTO 320:ENDPROC
3390DEFPROChold2
3400PRINT'TAB(15);CHR$(129);CHR$(157)"
PRESS ANY KEY";:A$=GET$:CLS:PROCCLEAR
3410ENDPROC
3420DEFPROCNEWCARD:PROCCLEAR:CLS
3430VDU132,157:PRINT" PLEASE TYPE THE N
EW CARD IN. ";CHR$(156):PRINT:VDU132,15
7:PRINT" QUESTION ";I;" ";CHR$(156):IN
PUTLINE'" Q) "card$(1,I):PRINT:VDU132,1
57:PRINT" OPTIONAL ANSWERS : ";CHR$(156
)
3440FOR T=2TO4:INPUTLINE" A) "card$(T,
I):NEXT
3450VDU132,157:PRINT" REAL ANSWER ";CH
R$(156):INPUTLINE'" A) "card$(5,I)
3460ENDPROC
3470DEFPROCinit
3480J=0:I=0:sattar=0:IO$="":WE$="":chec
k1=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"
3490FOS$="DISC":sound$=" OFF":check5=0:
*FX210,1
3500DIM card$(5,max),recent(4)
3510FOR A=1TO4:recent(A)=0:NEXT
3520ENDPROC
3530DEFPROCprint3:VDU 23,1;0;0;0;0;:CLS
:PROCCLEAR
3540 PRINTTAB(0,4);CHR$(129);CHR$(157)"
WHICH CARD WOULD YOU LIKE TO ":VDU129,1
57:INPUT" PRINT ?"G
3550IFG>numques message$="PRINT":PROCER
ROR3:ENDPROC
3560IFG=0 CLS:PROCCLEAR:GOTO3540
3570I=G
3580PROCprintout2:VDU3:PROChold:GOTO320
:ENDPROC
3590 DEFPROCabort
3600PRINT'':VDU 129,157:PRINT" DO YOU W
ANT TO ABORT THIS OPERATION":VDU 129,157
:INPUT" AND RETURN BACK TO THE MENU ?"D$
3610IF 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:REA
DA$,N%:NOW=TIME:M%=0:U%=FALSE:R%=B%+4*IN
STR(D$,LEFT$(C$,1))
3660 REPEAT:IFINKEY(0)=32THENG%=32:UNTI
LTRUE: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>NO
W: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