10 CLS:CLEAR256,MAXRAM:MAXFILES=1:CLEAR800 14 DEFINTA-D,I-K,M-O,X,Y 15 I$="":P$="":S$="":T$="" 20 DIM M(9,2,4,4), C(76), P(4,4), M$(9,2):FORA=0TO9:FORB=0TO2:M$(A,B)="Blank":NEXTB,A:FORA=0TO4:FORB=0TO4:P(A,B)=1:NEXTB,A 21 F$="CARDS.DO":S=0 34 CLS:GOSUB1300:GOTO40 35 ST680-688 40 KEYON:ONKEYGOSUB100,150,200,495,250,300,1500,350 45 GOSUB100 50 GOSUB1250:KEYON:GOTO50 100 CLS:K=1:GOSUB1450:GOSUB1300:KEYSTOP:PRINT@60," "; 110 FORA=0TO9:FORB=0TO2:IFA>LATHENB=2:A=9:GOTO120ELSEPRINTM$(A,B);" | "; 120 NEXTB:PRINT" ";:NEXTA 148 K=0:GOTO1300 150 KEYOFF:K=2:GOSUB1300:GOSUB1470 160 OPENF$FORINPUTAS1: 170 Z$="":FORA=0TO9:FORB=0TO2 171 LINEINPUT#1,Z$:M$(A,B)=MID$(Z$,26,5) 172 Z=0:FORC=0TO4:FORD=0TO4:Z=Z+1 174 M(A,B,C,D)=(ASC(MID$(Z$,Z,1))-32) 176 NEXTD,C:IFEOF(1)THEND=4:C=4:B=2:A=9 179 NEXTB:PRINT@360,"Loading";9-A;"Wait...";:NEXTA 180 Z$="":Z=0 190 MA=9:CLOSE#1:GOTO100 200 KEYOFF:K=3:GOSUB1300:GOSUB1470 210 OPENF$FOROUTPUTAS1 220 Z$="":FORA=0TOLA:FORB=0TO2:FORC=0TO4:FORD=0TO4 221 Z$=Z$+CHR$(M(A,B,C,D)+32) 223 NEXTD,C 225 PRINT#1,Z$;M$(A,B):Z$="" 227 NEXTB:PRINT@360,"Saving";LA-A;"Wait...";:NEXTA 240 CLOSE#1:GOTO148 250 KEYSTOP:K=5:GOSUB1300:M=0:CA=10:CB=3 260 PRINT@360,"";:INPUT"Serial #";S$ 265 IFLEN(S$)<5THENS$=S$+" ":GOTO265 270 FORA=9TO0STEP-1:FORB=2TO0STEP-1:IFM$(A,B)=S$THENCA=A:CB=B 280 NEXTB,A 284 IFK=6THEN310 285 IFCA=10ANDCB=3THENBEEP:PRINT@360,S$;" Doesn't exist, use F6 to create";:GOSUB1400:GOTO148 290 GOTO400 300 KEYSTOP:K=6:GOSUB1300:M=1:CA=10:CB=3:S$="Blank":GOTO270 310 IFCA=10ANDCB=3THENBEEP:PRINT@360,"No blank cards left, sorry";:GOSUB1400:GOTO148 320 PRINT@360,"";:INPUT"Serial #";S$:IFLEN(S$)>5THENS$=LEFT$(S$,5) 325 IFLEN(S$)<5THENS$=S$+" ":GOTO325 330 M$(CA,CB)=LEFT$(S$,5)ELSEM$(CA,CB)=S$ 340 GOTO400 350 PRINT@360,CHR$(27);"p EXIT ";CHR$(27);"q";:GOSUB1200:IFI$="Y"ORI$="y"THEN360ELSE148 360 MENU 400 CLS:PRINT@30,M$(CA,CB):IFM=0THENPRINT@360,"press ";CHR$(27);"pESC";CHR$(27);"q to EXIT":GOTO410 405 PRINT@360,CHR$(27);"p99";CHR$(27);"q to EDIT"; 410 FORD=0TO4:FORC=0TO4:CP=(D*60)+60+(C*3):PRINT@CP,M(CA,CB,C,D);:NEXTC,D 420 C=0:D=0:CC=0:CD=0:IFM=1THEN468 430 GOSUB1235:GOSUB1200:IFI=257THEN434ELSEJ=I*10:GOSUB1200 431 IFI=257THEN430 432 J=J+I:IF J<(C*15)+1 OR J>(C+1)*15THENBEEP:GOTO434ELSEM(CA,CB,C,D)=J:GOTO440 434 IFI$=CHR$(28)THENC=C+1ELSEIFI$=CHR$(29)THENC=C-1 435 IFI$=CHR$(30)THEND=D-1ELSEIFI$=CHR$(31)THEND=D+1 436 IFC>4THENC=0ELSEIFC<0THENC=4 437 IFC=2ANDD=2ANDK<>7THEN434 438 IFD>4THEND=0ELSEIFD<0THEND=4 439 IFK=7THENRETURNELSEIFI$=CHR$(27)THEN490 440 GOSUB480 447 IFM=0THEN430 450 IFCC=4ANDCD=4THENM=0:GOTO400 460 D=D+1:IFD>4THEND=0:C=C+1 465 IFC=2ANDD=2THEN460 468 GOSUB480 470 GOSUB1235 472 GOSUB1200:IFI<256THENJ=I*10ELSE470 474 GOSUB1200:IFI<256THENJ=J+IELSE470 476 IFJ=99THENM=0:GOTO400 478 IF J<(C*15)+1 OR J>(C+1)*15THENBEEP:GOTO470ELSEM(CA,CB,C,D)=J:GOTO440 480 PRINT@(CD*60)+60+(CC*3),CHR$(27);"q";M(CA,CB,CC,CD);CHR$(27);"p"; 481 PRINT@(D*60)+60+(C*3),CHR$(27);"p";M(CA,CB,C,D);CHR$(27);"q";:CD=D:CC=C:RETURN 490 CLS:K=0:GOTO100 495 FORA=0TOLA:FORB=0TO2:IFM$(A,B)="Blank"THENFORC=0TO4:FORD=0TO4:M(A,B,C,D)=76:NEXTD,C 496 NEXTB,A 500 KEYOFF:ONKEYGOSUB700,750,800,600,850,900,650,950:CLS 501 C(0)=1 505 PRINT@420,"Setting Up, please wait..."; 510 K=0:FORX=1TO(LA*15)+1STEP15:FORY=1TO31STEP15 520 LINE(X,Y)-(X+11,Y+11),1,B:NEXTY,X:X=1:Y=1:OX=CA*15+1:OY=CB*15+1:X=OX:Y=OY 530 GOSUB1250:GOSUB1100:M=1:J(0)=1 531 GOSUB690 532 Q=0:FORN=1TO75:Q=Q+C(N):NEXTN:PRINT@38,"Calls:";Q;:IFQ=0THEN544 535 FORA=0TOLA:FORB=0TO2:FORC=0TO4:FORD=0TO4:IFC(M(A,B,C,D))=1ANDP(C,D)=1THEN536else537 536 XX=(A*15)+(C*2)+2:YY=(B*15)+(D*2)+2:LINE(XX,YY)-(XX+1,YY+1),1,B 537 NEXTD,C,B,A:GOTO545 544 J=0:GOSUB550 545 KEYON:K=0:GOSUB1350:GOTO555 550 Q=0:PRINT@360,"Calling ";J;", Found ";Q;:IFJ=22THENforz=1to5:SOUND1000,1:SOUND650,4:nextz 551 IFJ=0THENC=2ELSEC=INT((J-1)/15):IFC<0THENC=0 552 FORA=0TOLA:FORB=0TO2:FORD=0TO4:IFM(A,B,C,D)=JTHENQ=Q+1:PRINT@380,Q;:GOSUB1000:SOUND1000,S 553 NEXTD,B,A:PRINT@360,"Called ";:N=0:FORZ=1TO75:IFC(Z)=1THENN=N+1 554 NEXTZ:GOTO1480 555 GOSUB1250:KEYON:GOTO555 600 KEYOFF:K=4:GOSUB1355:GOSUB1235 610 GOSUB1200:IFI$=CHR$(27)THEN640 612 PRINT@360,SPACE$(59);:PRINT@360,"Call: "; 615 IFI<>257THENJ=I*10:PRINT@365,J;"";:ELSEBEEP:GOTO610 620 GOSUB1200:IFI$=CHR$(27)THEN640 625 IFI<>257THENJ=J+I:IFJ>75THENPRINT@360,J;"is too large..";:GOSUB1400:GOTO600 629 PRINT@443,"Call"; 630 M=1:C(J)=1:GOSUB550:PRINT@38,"Calls:";N; 632 IFJ=BOANDBO<>0THENPRINT@390,"Bonus:";BO; 635 GOTO600 640 K=0:GOSUB1350:GOTO555 650 K=7:GOSUB1350:M=0:PRINT@360,"";:PRINT@360,CHR$(27);"p";" Show=##";CHR$(27);"q Hide=##";:GOSUB690 652 FORCP=100TO340STEP60:PRINT@CP,CHR$(27);"q ";SPACE$(19);:NEXTCP 654 FORA=0TO4:FORB=0TO4:CP=(A*4)+(B*60)+100 656 IFP(A,B)=1THENPRINT@CP,CHR$(27);"p ";CHR$(27);"q";ELSEPRINT@CP," "; 658 NEXTB,A:IFC<0ORC>4THENC=2:D=2 660 CP=(C*4)+(D*60)+100:IFP(C,D)=1THENPRINT@CP,CHR$(27);"p##";CHR$(27);"q";ELSEPRINT@CP,"##"; 662 GOSUB1235:GOSUB1200 664 IFI$=CHR$(27)THEN500ELSEIFI$="Q"ORI$="q"THENGOSUB690:GOSUB1100:K=0:GOSUB1350:GOTO555 666 IFI$="C"ORI$="c"THENFORA=0TO4:FORB=0TO4:P(A,B)=0:NEXTB,A:GOTO650 668 IFI$="A"ORI$="a"THENFORA=0TO4:FORB=0TO4:P(A,B)=1:NEXTB,A:GOTO650 669 IFI$="P"ORI$="p"THENPRINT@360,SPACE$(39);:PRINT@360,"Pattern #?";:GOTO675 670 IFI$=" "THENP(C,D)=P(C,D)+1:IFP(C,D)>1THENP(C,D)=0 672 IFP(C,D)=1THENPRINT@CP,CHR$(27);"p ";CHR$(27);"q";ELSEPRINT@CP," "; 674 GOSUB434:GOTO660 675 GOSUB1235:GOSUB1200:IFI$=CHR$(27)THEN600ELSEIFI<0ORI>9THENBEEP:GOTO675ELSEPRINT@370,I;"..."; 676 RESTORE:READMP:MP=MP-1:IFI>MPTHENPRINT@380,"Only";MP;"Patterns";:GOTO650 678 FORC=0TOI:FORA=0TO4:FORB=0TO4:READP(A,B):PRINT@380,P(A,B);:NEXTB,A,C:GOTO650 680 DATA10,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1 681 DATA1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1 682 DATA0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,1,1,1,0,0,0,0,0,0 683 DATA1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,1,1,1,0,1,1 684 DATA0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0 685 DATA1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 686 DATA0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 687 DATA0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 688 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0 689 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1 690 LINE(150,17)-(156,23),1,B:LINE(151,18)-(155,22),0,BF 691 FORC=0TO4:FORD=0TO4:PC=C+151:PD=D+18 692 IFP(C,D)=1THENPSET(PC,PD) 693 NEXTD,C:RETURN 700 K=1:GOSUB1350:PRINT@360,"CARD #";:INPUTS$ 705 IFLEN(S$)<5THENS$=S$+" ":GOTO705 710 CA=10:CB=3:OC=CA:OD=CB:FORA=0TO9:FORB=0TO2:IFM$(A,B)=S$THENCA=A:CB=B 720 NEXTB,A:IFCA<10ANDCB<3THENGOSUB1100ELSEPRINT@360,"Can't Find ";S$:GOSUB1400:CA=OC:CB=OD 730 K=0:KEYON:GOTO1350 750 K=2:GOSUB1350 751 GOSUB1235 752 GOSUB1200:IFI$=CHR$(27)THEN730 753 J=I*10:PRINT@365,J;" "; 754 GOSUB1200:IFI$=CHR$(27)THEN730 755 J=J+I:IFJ>75THEN730 760 PRINT@365,J;"...";:M=0:C(J)=0:GOSUB550:PRINT@44,N; 770 GOTO 730 800 K=3:GOSUB1350:PRINT@440," B.I.N.G.O. or ESC to exit"; 801 I$=INKEY$:IFI$=""THEN801ELSEIFI$=CHR$(27)THEN730ELSEKEYOFF 805 IFI$="B"ORI$="b"ORI$="1"THENZ=0:GOTO815 806 IFI$="I"ORI$="i"ORI$="2"THENZ=1:GOTO815 807 IFI$="N"ORI$="n"ORI$="3"THENZ=2:GOTO815 808 IFI$="G"ORI$="g"ORI$="4"THENZ=3:GOTO815 809 IFI$="O"ORI$="o"ORI$="5"THENZ=4:GOTO815 810 BEEP:GOTO800 815 PRINT@360,""; 820 FORZZ=(Z*15)+1TO(Z*15)+15 825 P$=STR$(ZZ):P$=" "+RIGHT$(P$,2) 830 IFC(ZZ)=1THENPRINTCHR$(27);"p";P$;CHR$(27);"q";:ELSEPRINTP$; 835 NEXTZZ 840 GOTO801 850 K=5:GOSUB1350:KEYOFF:PRINT@360,CHR$(27);"pESC";CHR$(27);"q to use this card"; 870 LINE(OX,OY)-(OX+11,OY+11),1,B:LINE(X,Y)-(X+11,Y+11),0,B:OX=X:OY=Y 875 PRINT@48,"Card ";:PRINT@48,"Card ";CHR$(27);"p";M$(CA,CB);CHR$(27);"q"; 880 I$=INKEY$:IFI$=""THEN880ELSEIFASC(I$)<28ORASC(I$)>31THEN885 881 IFI$=CHR$(28)THENCA=CA+1:GOTO886 882 IFI$=CHR$(29)THENCA=CA-1:GOTO886 883 IFI$=CHR$(30)THENCB=CB-1:GOTO886 884 IFI$=CHR$(31)THENCB=CB+1:GOTO886 885 IFI$=CHR$(27)THEN890ELSEBEEP:GOTO880 886 IFCA>LATHENCA=0ELSEIFCA<0THENCA=LA 887 IFCB>2THENCB=0ELSEIFCB<0THENCB=2 888 X=CA*15+1:Y=CB*15+1:GOTO870 890 GOSUB1100:GOTO730 900 K=6:GOSUB1350:KEYOFF 910 PRINT@420,"Wipe All Calls ?"; 920 GOSUB1200:IFI$="Y"ORI$="y"THEN930 921 IFI$=CHR$(27)ANDK=6THEN730 922 IFI$="P"ORI$="p"THENPOWEROFF,RESUME:GOTO500 925 GOTO500 930 FORI=0TO75:C(I)=0:NEXTI:I=0:N=0:GOTO500 950 K=8:GOSUB1350:PRINT@360,CHR$(27);"p EXIT ";CHR$(27);"q from play display "; 960 GOSUB1200:IFI$="Y"ORI$="y"THEN34 970 GOTO730 995 STOP 1000 IFP(C,D)=0THENRETURNELSEXX=(A*15)+(C*2)+2:YY=(B*15)+(D*2)+2 1010 LINE(XX,YY)-(XX+1,YY+1),M,BF:RETURN 1100 LINE(OX,OY)-(OX+11,OY+11),1,B 1110 OX=CA*15+1:OY=CB*15+1:LINE(OX,OY)-(OX+11,OY+11),0,B 1120 PRINT@48,"Card ";M$(CA,CB); 1130 FORC=0TO4:FORD=0TO4:CP=(C*4)+(D*60)+100 1135 P$=STR$(M(CA,CB,C,D)):P$=RIGHT$(P$,2) 1137 IFC(M(CA,CB,C,D))=1THENPRINT@CP,CHR$(27);"p";P$;CHR$(27);"q";:GOTO1140 1138 PRINT@CP,P$;: 1140 NEXTD,C 1150 RETURN 1200 I$="" 1201 I$=INKEY$:IFI$=""THENGOSUB1250:GOTO1201 1210 I=VAL(I$):IFASC(I$)>26ANDASC(I$)<32THENI=257 1230 RETURN 1235 I$=INKEY$:IFI$<>""THEN1235ELSERETURN 1250 IFT$=TIME$THENRETURNELSET$=TIME$ 1260 T=VAL(LEFT$(T$,2)):IFT>12THENT=T-12:T$=STR$(T)+RIGHT$(T$,6) 1270 PRINT@409,T$;:RETURN 1300 PRINT@360,STRING$(119,32);:PRINT@0," B I N G O A I D E";:SOUND3000,S:IFK=0THEN1319 1310 ON K GOTO1311,1312,1313,1314,1315,1316,1317,1318 1311 PRINT@420,"Show";:RETURN 1312 PRINT@428,"Load";:RETURN 1313 PRINT@436,"Save";:RETURN 1314 PRINT@444,"Play";:RETURN 1315 PRINT@452,"Old";:RETURN 1316 PRINT@459,"New";:RETURN 1317 PRINT@466,"Opt";:RETURN 1318 PRINT@474,"Menu";:RETURN 1319 PRINT@420,"Show Load Save Play Old New Opt Menu";:RETURN 1350 GOSUB1235:PRINT@360,STRING$(119,32);:SOUND3000,S:IFK=0THEN1369ELSE1360 1355 GOSUB1235:PRINT@420,STRING$(59,32);:SOUND3000,S:IFK=0THEN1369 1360 ON K GOTO1361,1362,1363,1364,1365,1366,1367,1368 1361 PRINT@420,"Find";:RETURN 1362 PRINT@428,"Uncl";:RETURN 1363 PRINT@436,"Chek";:RETURN 1364 PRINT@443,CHR$(27);"pCall";CHR$(27);"q ESC to Exit";:RETURN 1365 PRINT@451,"Move";:RETURN 1366 PRINT@458,"Wipe";:RETURN 1367 PRINT@465,"Mask esc/Q";:RETURN 1368 PRINT@473,"Menu";:RETURN 1369 PRINT@420,"Find Uncl Chek ";CHR$(27);"pCall";CHR$(27);"q Move Wipe Mask Menu";:RETURN 1400 FORDL=1TO500-(50*S):NEXTDL:SOUND1000,S:RETURN 1450 LA=9:LB=2:FORA=0TO9:FORB=0TO2:IFM$(A,B)="Blank"THENLB=B:LA=A:GOTO1455ELSE1460 1455 B=2:A=9 1460 PRINT@360,B;A;:NEXTB,A 1465 PRINT@360,LB;LA:RETURN 1470 PRINT@360,STRING$(39,32);:PRINT@360,"Filename:";F$;:PRINT@369,"";:LINEINPUTNF$ 1471 IFNF$=""THENNF$=F$ 1472 F$=NF$ 1474 PRINT@360,SPACE$(39); 1475 RETURN 1480 CC=-1:CD=-1:FORC=0TO4:FORD=0TO4:IFM(CA,CB,C,D)=JTHENCC=C:CD=D 1482 NEXTD,C:IFCC=-1ANDCD=-1THEN1498 1485 CP=((CC*4)+(CD*60)+100):P$=STR$(M(CA,CB,CC,CD)):P$=RIGHT$(P$,2) 1490 IFM=1THENPRINT@CP,CHR$(27);"p";P$;CHR$(27);"q";:ELSEPRINT@CP,P$; 1498 CC=0:CD=0:RETURN 1500 KEYOFF:K=7:GOSUB1300:IFS=0THENS=3:GOTO1510 1505 S=0 1510 PRINT@360,"";:INPUT"Bonus #";BO 1548 K=0:GOTO1300