1 '  copyright 1985 by BASICWARE +
5 CLS:SCREEN0,0:CLEAR200,57278:LOADM"BSRCH.CO":DEFINTA-Z:CC=-1:F0=0:B$="BINGO":CL$=CHR$(27)+"J":RV$=CHR$(27)+"p":NO$=CHR$(27)+"q":SD$=CHR$(27)+"V":SE$=CHR$(27)+"W"
6 BB$=RV$+" ## "+NO$:DV$(0)="RAM":DV$(1)="CAS":DV$(2)="":MC=INT((FRE(0)-20)/54)-1:IFMC>100THENMC=100
7 DIMBC(4,4,MC-1),CN(MC-1):ONERRORGOTO5000
8 WIDTH40:DF=-1
9 PRINTSD$;:FORP=1TO8:PRINTSTRING$(40,239);:NEXT:PRINTSE$;:PRINT@91,RV$;B$" CARD MANAGER":PRINT:PRINT:PRINT@209," 1985 by BASICWARE +"NO$:GOSUB1010:GOSUB1015
10 PRINT@0,CL$;SE$;TAB(11);RV$;B$" CARD MANAGER"NO$:PRINT"Enter selection:":PRINTTAB(5)"1 - Add "B$" cards":PRINTTAB(5)"2 - Load card file"
13 PRINTTAB(5)"3 - Save card file":PRINTTAB(5)"4 - Play "B$:PRINTTAB(5)"5 - Quit the program":PRINT@303,USING"### cards stored";CC+1;
15 GOSUB1000:IFIN$<"1"ORIN$>"5"THEN15ELSEIFIN$="5"THENCLS:ENDELSEONVAL(IN$)GOSUB2000,2100,2200,50
20 GOTO10
50 IFCC=-1THENRETURNELSEGA=0:PRINT@40,CL$"Which game are we playing?":PRINT"1 - Regular"TAB(20)"6 - Horizontal":PRINT"2 - Hard way"TAB(20)"7 - Vertical":PRINT"3 - 'T'"TAB(20)"8 - Diagonnal"
52 PRINT"4 - 'L'"TAB(20)"9 - Cross":PRINT"5 - 'X'"TAB(20)"0 - Layer cake":GOSUB1007:IFGATHEN59ELSEPRINT@80,CL$"1 - Square":PRINT"2 - Four Corners":PRINT"3 - Blackout":GOSUB1007:IFGATHENGA=GA+10:GOTO59:ELSE50
59 POKE58259,GA:FORP0=0TOCC:BC(2,2,P0)=BC(2,2,P0)ORGA<>2ANDGA<>4ANDGA<>10ANDGA<>11ANDGA<>12AND128:NEXT:RESTORE:FORM=1TOGA:READBG$:NEXT:PRINTSD$
60 PRINT@40,CL$:PRINTBG$" "B$":":CALL58199:PRINT@240,RV$"R"NO$"ecind"TAB(35)RV$"Q"NO$"uit";:PRINT@120,"Enter the BINGO letter: ";:GOSUB1000:ONINSTR("QR",IN$)GOTO550,600
63 LV=INSTR(B$,IN$):IFLV=0THEN60ELSEPRINTIN$:PRINTTAB(16)"number: ";
65 GOSUB1005:IFN<1ORN>75THENBEEP:GOTO65:ELSEIFN<(LV-1)*15+1ORN>LV*15THENBEEP:GOTO65:ELSEPRINTUSING"##";N
70 POKE58260,LV:POKE58261,N:CALL57279,0,VARPTR(BC(0,0,0)):P0=PEEK(58261):IFP0=0THEN60ELSEP0=CC+1-P0
500 FORS=4500TO2500STEP-100:SOUNDS,1:NEXT:PRINT"BINGO!":GOSUB1015
510 PRINT@40,CL$;:FORP1=0TO4:PRINT@52+P1*4,MID$(B$,P1+1,1);:FORP2=0TO4:IFP1=2ANDP2=2THENIFBC(P2,P1,P0)AND128THENPRINT@178,USINGRV$+"####"+NO$;CN(P0);:GOTO515:ELSEPRINT@178,USING"####";CN(P0);:GOTO515
513 IFBC(P2,P1,P0)AND128THENPRINT@50+P1*4+(P2+1)*40,USINGBB$;BC(P2,P1,P0)-128;:ELSEPRINT@50+P1*4+(P2+1)*40,USING" ## ";BC(P2,P1,P0);
515 NEXTP2,P1:LINE(59,15)-(179,55),1,B:FORM=1TO4:LINE(59+M*24,15)-(59+M*24,55),1:LINE(59,15+M*8)-(179,15+M*8),1:NEXT
550 PRINT@280,"Press "RV$"ENTER"NO$" for main menu..."CHR$(27)"K";
560 GOSUB1000:IFIN$<>CHR$(13)THEN560ELSECALL58001,0,VARPTR(BC(0,0,0)):RETURN
600 PRINT@120,CL$:CALL58199:PRINT@240,RV$"A"NO$"bort recind";:PRINT@80,"Enter the BINGO letter/number to":PRINT"delete: ";:GOSUB1000:IFIN$="A"THEN60ELSELV=INSTR(B$,IN$):IFLV=0THEN600ELSEPRINTIN$"-";
605 GOSUB1005:IFN<1ORN>75THENBEEP:GOTO605:ELSEIFN<(LV-1)*15ORN>LV*15+1THENBEEP:GOTO605:ELSEPRINTN
610 POKE58260,LV:POKE58261,NOR128:CALL58034,0,VARPTR(BC(0,0,0)):PRINT"Number recinded.":GOSUB1010:GOTO60
1000 IN$=INKEY$:IFIN$=""THEN1000ELSEIFIN$>="a"THENIN$=CHR$(ASC(IN$)AND95):RETURNELSERETURN
1003 PRINT@40,CL$:PRINT"Which drive - 0 or 1? ";
1004 DR$=INKEY$:IFDR$=""ORINSTR("01",DR$)=0THEN1004ELSEDV$(2)=DR$:PRINTDR$:RETURN
1005 N=VAL(INPUT$(2)):RETURN
1007 PRINTRV$"ENTER"NO$" for more selections...";
1008 GOSUB1000:IFIN$=CHR$(13)THENRETURNELSEGA=INSTR("1234567890",IN$):IFGA=0THEN1008ELSERETURN
1010 FORDE=1TO1000:NEXT:RETURN
1015 FORDE=1TO2000:NEXT:RETURN
1020 FORDE=1TO2500:NEXT:RETURN
2000 PRINT@40,CL$:IFCC<0THEN2003ELSEPRINT"Add to current file?":GOSUB1000:IFIN$="Y"THEN2003ELSEIFIN$<>"N"THEN2000ELSEIFF0THENPRINT"Your current file has not been saved,   do so?":ELSECC=-1:GOTO2003
2001 GOSUB1000:IN=INSTR("YN",IN$):IFIN=0THEN2001ELSEIFIN=1THENGOSUB2200:CC=-1:ELSECC=-1
2003 PRINT@40,CL$:INPUT"Enter no. of cards to program";NC:IFNC<0THEN2000ELSEIFCC+NC>MCTHENPRINT"Too many...max ="MC"total":GOSUB1015:GOTO2003
2005 IFNC=0THENRETURNELSEFORP0=CC+1TOCC+NC:PRINT@120,CL$"Enter number for card #"P0+1;:INPUTCN(P0):FORP1=0TO4:PRINT@200,CL$"Enter the '"MID$(B$,P1+1,1)"' column of":PRINT"card #"P0+1"(5 #'s)";
2010 INPUTBC(0,P1,P0),BC(1,P1,P0),BC(2,P1,P0),BC(3,P1,P0),BC(4,P1,P0):NEXTP1:BC(2,2,P0)=0:NEXTP0:CC=CC+NC:POKE58258,CC+1:F0=-1:RETURN
2100 IFF0THENPRINT@40,CL$"If you load the file, you will lose":INPUT"what you programmed in...continue";EN$:IN=INSTR("YyNn",EN$):IFIN=0THEN2100ELSEIFIN>2THENRETURN
2105 PRINT@40,CL$:PRINT"Enter device to load from:":PRINT@165,"1 - RAM (memory)":PRINTTAB(5)"2 - Cassette":IFDFTHENPRINTTAB(5)"3 - Disk"
2107 GOSUB1000:IFINSTR("123",IN$)=0THEN2105ELSEIFIN$<"3"THENPRINT@107,IN$;:ELSEIFDFTHENGOSUB1003ELSE2105
2110 OPENDV$(VAL(IN$)-1)+":BDAT"FORINPUTAS1:INPUT#1,CC:FORP0=0TOCC:INPUT#1,CN(P0),LN$:FORP1=0TO4:FORP2=0TO4
2115 BC(P2,P1,P0)=(ASC(MID$(LN$,P1*5+P2+1,1))XOR128):NEXTP2,P1,P0:CLOSE:POKE58258,CC+1:F0=0:RETURN
2200 IFCC=-1THENRETURNELSEPRINT@40,CL$:PRINT"Enter device to save to:":PRINT@165,"1 - RAM (memory)":PRINTTAB(5)"2 - Cassette":IFDFTHENPRINTTAB(5)"3 - Disk"
2203 GOSUB1000:IFINSTR("123",IN$)=0THEN2200ELSEIFIN$<"3"THENPRINT@105,IN$;:ELSEIFDFTHENGOSUB1003ELSE2200
2205 OPENDV$(VAL(IN$)-1)+":BDAT"FOROUTPUTAS1:PRINT#1,CC:FORP0=0TOCC:PRINT#1,CN(P0);",";:LN$="":FORP1=0TO4:FORP2=0TO4
2210 LN$=LN$+CHR$(BC(P2,P1,P0)OR128):NEXTP2,P1:PRINT#1,LN$:NEXTP0:CLOSE:F0=0:RETURN
5000 IFERR=52THENCLOSE:PRINT@40,CL$:PRINT@86,"No such file on that device!":BEEP:GOSUB1020:GOTO5050
5005 IFERL=8THENDF=0:GOTO5050
5010 IFERR=7THENPRINT@40,CL$:PRINT@81,"User memory full...try another device.":BEEP:GOSUB1020:ELSEONERRORGOTO0
5050 RESUME10
10000 DATA "REGULAR","HARD WAY","'T'","'L'","'X'","HORIZONTAL","VERTICAL","DIAGONNAL","CROSS","LAYER CAKE","SQUARE","FOUR CORNERS","BLACKOUT"
