ð 1 TITLE"Till":DEFFNT$=TIME$:GOTO60000 2 'POKE126,128:POKE125,4:POKE(PEEK(1205)*256+PEEK(1206)+10),255:POKE126,0:POKE12 7,160 5 WIDTH30,4,1:CLEAR800:PRINT"Initialising..." 10 MEMSET2630:DEFUSR0=24908:MEMSETUSR0(2630)+1:COM%=&H6100:DEFUSR1=COM%:DEFUSR2= COM%+4:DEFUSR3=COM%+8 15 BADR%=&H69EE:BAR%=USR1(BADR%):BAR%=USR3(256) 20 MAX%=100:TILL%=1:DIM PP(MAX%),QT%(MAX%),DI%(MAX%),S$(MAX%),D(MAX%),D$(20):DEF FNT$=LEFT$(TIME$,5):PRINT"Till:";TILL% 30 PW$="123456":NUM$="0123456789.":DEF FNR(X)=INT(X*100+.05*SGN(A))/100:DEF FNI( X)=FNR(X/100) 40 DA$="CAS0:"+MID$(DATE$,3,2)+LEFT$(DATE$,2):Z$="#####.##":I1$="":I1%=0:IN$="": LE%=0:DP%=0:ST%=0 500 D$(0)="Ornamental Trees" 502 D$(1)="Shrubs" 504 D$(2)="Conifers" 506 D$(3)="Soft Fruit & Trees" 508 D$(4)="Herbaceous Plants" 510 D$(5)="Rock & Herb Plants" 512 D$(6)="Bedding Plants" 514 D$(7)="Climbing Plants" 516 D$(8)="Hedging Plants" 518 D$(9)="Roses" 520 D$(10)="House Plants" 522 D$(11)="Bulbs" 524 D$(12)="Seeds" 526 D$(13)="Fert. & Chemicals" 528 D$(14)="Sundries" 530 D$(15)="Tools" 532 D$(16)="Garden Furniture" 534 D$(17)="Stoneware" 536 D$(18)="Yard & Heavy Goods" 538 D$(19)="Maint. & Supplies" 550 D$="LeictP D CTrade":E$="Cash ChequeVISA ACCESSAMEX DINERSOTHER ":T1$=" A SDFGHQWE":C$="&###":K$="MJKLUIO," 1000 'Logical Start Of Programme. 1010 CLS:PRINT:PRINT"Please Sign On:":BC$=SPACE$(LEN(PW$)+2):BC%=USR2(VARPTR(BC$ )) 1020 IF BC%<>LEN(PW$) OR LEFT$(BC$,LEN(PW$))<>PW$ THEN PRINT"Incorrect":GOSUB 29 000:GOTO 1000 1100 CLS:PRINT"Please Insert Tape":PRINT " In Tape Unit And":PRINT" Press ENTER ...";:GOSUB 30110 1110 LE%=0:GOSUB25000:CLS:PRINT "Initialising...":PRINT:PRINT"...Please Wait..." :WIND:IF CC% THEN 2500 1120 CLS:GOSUB52000:PRINT"Value Of Float":PRINT"-Currently In Till:" 1130 LE%=106:GOSUB 25000:IF ST% THEN 10 1140 FLT=VAL(IN$):IF FLT<0 OR FLT>250 THEN GOSUB 29000:GOTO1120 1200 PRINT:PRINT"Next Receipt No:":LE%=6:GOSUB 25000:IF ST% THEN 1120 1210 NEX=VAL(IN$):PRINT:IF NEX<0 OR NEX>999999 THEN GOSUB 29000:GOTO 1200 1300 FOR A%=1 TO 6 1310 PRINT:LE%=105:IF A%>3 THEN PRINT"Sundry Rate";CHR$(A%+45);":"; ELSE PRINT " Disc't Rate";CHR$(A%+48);":"; 1320 GOSUB 25000:A=FNR(VAL(IN$)):IF A<0 OR A>30 OR ST% THEN GOSUB 29000:GOTO 131 0 1330 DIS(A%)=A/100:NEXT A% 2000 CLS:PRINT"Enter Cashier No:":BC$=SPACE$(8):LE%=6:GOSUB 30000:IF ST%=1 THEN 1300 2010 OPR%=VAL(MID$(BC$,5,2)):IF OPR%<0 OR OPR%>99 OR ASC(BC$+"!")<>56 OR LEN(BC$ )<6 THEN GOSUB 29000:GOTO 2000 2100 IF MID$(BC$,2,3)<>LEFT$(PW$,3) THEN 2500 2110 CLS:PRINT"x-X Register":PRINT"z-Z Register":PRINT"!-Open Till t-Xmit":PRINT "C-Continue E-End";:LE%=0:GOSUB 25000:IF ST%=0 THEN 2110 ELSE ON INSTR("xz!CEt", I1$) GOTO 2150,2150,2300,2000,60000,61000:GOTO 2110 2150 'X,Y Register. 2160 LPRINT:LPRINT I1$;" Register.":TT#=0 2170 FOR A%=1 TO 7:LPRINT USINGC$+Z$;MID$(E$,(A%-1)*6+1,6),TT#(A%):TT#=TT#+TT#(A %):IF I1$="z" THEN TT#(A%)=0 2180 NEXT A%:LPRINT USING C$+Z$;"Total:",TT#:LPRINT:LPRINTUSINGC$+Z$;"Cash In Ti ll:",TT#+FLT:TT#=0:LPRINT:LPRINTUSINGC$+Z$;"0 Rtd Goods :",VAT0#:LPRINT 2190 FOR A%=1 TO 3:LPRINT USINGC$+Z$;MID$(D$,(A%-1)*5+1,5),DIS#(A%):IFI1$="y"THE N DIS#(A%)=0 2193 NEXT A% 2194 FOR A%=1 TO 6:IFA%>3 THEN LPRINT"Sundry";A%-3; ELSE LPRINT"Disc't";A%; 2195 LPRINT TAB(12);:LPRINT USINGZ$;DIS(A%)*100;:LPRINT" %":NEXT A%:LPRINT 2200 LPRINT:IF I1$="z" THEN LPRINT "Registers Cleared.":VAT0#=0 2210 LPRINT:LPRINT:GOTO 2110 2300 GOSUB 52000:GOTO 2110 2500 CC%=0:OPEN "O",#1,DA$:PRINT:PRINT "Thankyou...":PRINT"Please Wait" 2510 PRINT #1,"***";DA$ 2520 PRINT #1,DATE$;FNT$;OPR%;TILL% 2530 PRINT #1,NEX;FLT 2540 FOR A%=1 TO 6:PRINT #1,A%;DIS(A%):NEXT A% 2550 PRINT #1,"**" 2700 LPRINT:LPRINTSTRING$(24,42):LPRINT 3000 ' 3010 TT=0:LI%=0:DIS=0:V%=0:X%=0:GOSUB 50000 3100 RE%=1:ST$="":BC$=SPACE$(14):LE%=107:CLS:PRINTUSING"Total:"+Z$;TT:PRINT"No/P rice:";:LOCATE9,1,1:GOSUB30000 3110 ST$="":IFBC%GOTO3500ELSEIFST%THENA%=INSTR("=|C@Rv",I1$):IFA%THENONA%GOTO600 0,6100,6200,6300,6800,6900ELSE3100 3120 LOCATE 0,2:PRINT"Price:"; 3200 IFINSTR(IN$,".")THEN3300 3210 ST$=IN$ 3220 LOCATE6,2:LE%=106:GOSUB25000:IFST%THEN3100 3300 'Price 3310 PR=FNR(VAL(IN$)):IFPR<.01ORPR>999THENGOSUB29000:GOTO3100 3320 IFST$=""THENST$="70000":IFV%THENV%=0:ST$="70001" 3330 GOTO4000 3500 'Decode Bar Cd Rd. 3510 PR=FNI(VAL(MID$(BC$,8,5))):ST$=MID$(BC$,3,5):ST=VAL(ST$):X%=VAL(LEFT$(BC$,2 )) 3520 LOCATE0,2:PRINT"Price:"; 4000 'Qty. 4005 IF LI%>MAX% THENCLS:PRINT"NO MORE LINES":GOSUB29000:GOSUB29000:GOTO 3100 4010 ST$=RIGHT$("00000"+ST$,5):LOCATE0,1:PRINTSPC(19);:LOCATE0,1:GP%=INT(VAL(ST$ )/5000):PRINTD$(GP%); 4020 LOCATE6,2:PRINTUSINGZ$;PR;:LOCATE14,3:PRINT"|";ST$; 4030 LOCATE0,3:PRINT"Qty:"; 4050 LE%=3:GOSUB25000:IFST%THEN 3100 4060 QTY%=VAL(IN$):IFQTY%=0THENQTY%=1 4070 IFQTY%<1ORQTY%>999THENGOSUB29000:GOTO4030 4080 LOCATE4,3:PRINTUSING"#####";QTY%;:QTY%=QTY%*RE% 4090 IFABS(QTY%*PR+TT)>9999THENCLS:PRINT"TOTAL TOO HIGH":GOSUB29000:GOTO3100 5000 'Print Transaction. 5010 LPRINTLEFT$(D$(GP%),12);TAB(12);:A=QTY%*PR:LPRINTUSING"#### ####.##";QTY%,A 5100 PP(LI%)=PR:QT%(LI%)=QTY%:DI%(LI%)=X%:S$(LI%)=ST$:LI%=LI%+1 5120 TT=TT+A:GOTO3100 6000 '= Cancel. 6010 LPRINTSTRING$(23,42):LPRINT"*Transaction Cancelled*":LPRINTSTRING$(23,42): LPRINT:LPRINT:GOTO3000 6100 '| VOID. 6110 LI%=LI%-1:IFLI%=-1THEN6000ELSEA=QT%(LI%)*PP(LI%):LPRINT"Void Lst Lne-";:LPR INTUSING"### ####.##";QT%(LI%),A 6120 TT=TT-A:GOTO3100 6200 'C Change Operator. 6210 IFLI%THENGOSUB29000:GOTO3100 6220 PRINT"Wait...":PRINT#1,"ENDO"+FNT$:CLOSE #1:GOTO2000 6300 '@ Sub-Total. 6310 IFLI%=0THEN6000ELSELPRINTTAB(16);STRING$(8,61):LPRINT"Sub-Total";TAB(16);:L PRINTUSINGZ$;TT:LOCATE0,3:PRINT"Amt to pay:"; 6320 FORA%=0TO7:P(A%)=0:NEXTA%:LE%=0:D%=0:PD=TT:BC$="":FT%=0:LOCATE0,1:PRINT"Dis c/Payment Method":GOSUB25000:A%=INSTR(T1$,I1$):IFA%=0THEN6320ELSET$=LEFT$(T1$,7) 6330 LOCATE0,1:PRINTSPC(20);:LOCATE0,1:DIS=0:IFA%<8THEN6420 6340 D%=A%-7:PRINTMID$(D$,(D%-1)*5+1,5);" Discount"; 6350 FORB%=0TOLI%-1:X%=DI%(B%):IFX% THEND%(1)=(X% AND 3):D%(2)=(X% AND 12)/4:D%( 3)=(X% AND 48)/16ELSED%(1)=4:D%(2)=5:D%(3)=6 6380 A=FNR(DIS(D%(D%))*QT%(B%)*PP(B%)):DIS=DIS+A:D(B%)=A 6400 NEXTB%:PD=PD-DIS 6402 IFD%=2THENLOCATE0,1:PRINT"Card No:";:LE%=6:GOSUB25000:IFST% ORLEN(IN$)<>6TH EN6320ELSEA%=VAL(LEFT$(IN$,4)):IFVAL(RIGHT$(IN$,2))<>((A%*3)MOD17)+(A%/11)MOD31+ (SQR(A%)+LOG(A%)*5) MOD29THENLOCATE0,1:PRINT"Invalid!":GOSUB29000:GOTO6320ELSEBC $=IN$ 6410 LOCATE10,3:PRINTUSINGZ$;PD;:LOCATE0,1:PRINT"Payment Method:";:LE%=0:GOSUB25 000:IFST%=1THEN6320ELSEA%=INSTR(T$,I1$):IFA%=0THEN6410 6420 LOCATE0,2:PRINTMID$(E$,(A%-1)*6+1,6);" Amt:";:LE%=106:GOSUB25000:IFST%THEN6 320ELSEA=FNR(VAL(IN$)):IFA<0ORA>999THEN6420 6430 ON A% GOTO 6500,6500:IF FT%=0 THEN FT%=1:DIS=FNR(DIS/2):IF DIS<.01 THEN DIS =0 ELSE PD=PD+DIS 6440 IF IN$="" THEN A=PD ELSE IF PD-A<0 THEN GOSUB 29000:GOTO 6410 6450 PD=FNR(PD-A):P(A%)=P(A%)+A:IF PD=0 OR (A%=1 AND PD<0) THEN 6600 ELSE 6410 6500 T$=LEFT$(T1$,A%):IF IN$="" THEN A=PD ELSE IF PD-A<0 AND A%<>1 THEN 6410 6510 GOTO 6450 6600 'The End. 6605 CLS:PRINTUSING"Change:"+Z$;-PD:GOSUB52000:IF A%=1 THEN TT#(A%)=TT#(A%)+PD 6610 IF DIS THENLPRINTUSING"Less Disc:"+MID$(D$,(D%-1)*5+1,5)+" "+Z$;DIS:DIS#(D% )=DIS#(D%)+DIS:IFBC$<>""THENLPRINT"Card No :";BC$ 6615 LPRINT USING"TOTAL:"+SPACE$(10)+Z$;TT-DIS:LPRINT TAB(16);STRING$(8,61):PRIN T#1,"Z"+STR$(NEX) 6620 FORA%=7TO1STEP-1:IFP(A%)THENLPRINTUSING"Paid by "+MID$(E$,(A%-1)*6+1,6)+" "+Z$;P(A%):TT#(A%)=TT#(A%)+P(A%):PRINT#1,"!";A%;P(A%)-PD*(A%=1) 6630 P(A%)=0:NEXTA% 6700 IF PD THENLPRINTUSING"Change Given -"+Z$;-PD 6710 LPRINT:GOSUB 51000:CLS:LPRINT:LPRINT:LPRINT:LPRINT 6720 IFTAPCNT>3000THENPRINT"The Tape Will Need":PRINT" To Be Changed Soon" 6750 PRINT #1,"*";FNT$;LI%;D%;BC$:FORA%=0TOLI%-1:PRINT#1,S$(A%);PP(A%);QT%(A%);D I%(A%);D(A%):IFS$(A%)="70001"THENVAT0#=VAT0#+PP(A%)*QT%(A%) 6755 NEXTA% 6760 NEX=NEX+1:IF NEX=1E6 THENNEX=0 6765 PRINT"Remove Receipt &":PRINT " Press ENTER...";:LE%=0:GOSUB25000:IFIN$<>"" THENGOSUB29000:GOTO6765 6770 IFTAPCNT<3200THEN3000ELSE CLS:PRINT"The Tape MUST Be":PRINT" Changed NOW!": PRINT#1,"ENDTAPE":CLOSE#1:PRINT"Please Call":PRINT" Supervisor..."; 6780 LE%=0:GOSUB25000:IF I1$<>"$"THEN6770 ELSECC%=1:GOTO1100 6800 'R Refund. 6810 RE%=-1:LOCATE18,0:PRINT"RE";:LOCATE0,1:PRINT"Stock Code:";:LE%=5:GOSUB25000 :IFST%THENRE%=1:GOTO3100ELSE3120 6900 'V Vat 0 %. 6910 LOCATE18,0:PRINT"0V";:ST$="":V%=1:GOTO3120 9999 STOP 25000 ' 25010 SOUND 46,1:IN$="":DP%=INT(LE%/100):LE%=LE%MOD100:ST%=0 25020 PRINTSPACE$(LE%);STRING$(LE%,29); 25030 I1$=INPUT$(1):I1%=ASC(I1$):IFI1%=32ORI1%=13THENRETURNELSEIFI1%=88THENPRINT STRING$(LEN(IN$),8);:IN$="":GOTO25030 25040 IF I1%=90THENST%=1:RETURN 25050 IFI1%=8THENIFLEN(IN$)THENIN$=LEFT$(IN$,LEN(IN$)-1):PRINT CHR$(29);" ";CHR$ (29); 25055 I1%=INSTR(NUM$,I1$):IFI1%=0THENI2%=INSTR(K$,I1$):IFI2%THENIFI2%<>8THENI1$= CHR$(47+I2%)ELSEI1$="." 25060 I1%=INSTR(NUM$,I1$):IFI1%=0THENIFIN$=""ANDASC(I1$+"1")<>8THENST%=2:RETURNE LSE25030 25070 IFLEN(IN$)=LE%OR(DP%=0ANDI1%=11)OR(I1%=11ANDINSTR(IN$,"."))THEN25030 25080 PRINTI1$;:IN$=IN$+I1$:GOTO25030 29000 SOUND 14,3:FOR XX%=1 TO500:NEXT:GOSUB 30110:RETURN 30000 'Read A Barcode, If Le%=0 clear buf and return nothing. 30010 I1$="":SOUND47,1:BC%=USR2(VARPTR(BC$)):IFBC%>0ANDBC%<254THENRETURNELSEIFAB S(BC%)=255THEN30100ELSEGOSUB29000:GOTO30000 30100 IF LE% THEN GOSUB 25000:BC$=IN$:BC%=0:RETURN 30110 IF INKEY$="" THEN RETURN ELSE 30110 50000 ' 50010 LPRINT"Bygrave Garden":LPRINT"& Leisure Centre." 50020 LPRINT"North Orbital Road,":LPRINT"St. Albans,Herts AL1 2DL" 50030 LPRINT"Telephone: (0727) 26100":LPRINT"Date: ";DATE$;" at ";FNT$:LPRINT"Op r:";100*TILL%+OPR%;"Rcpt No:";NEX 50040 LPRINT:LPRINT"Product Type Qty Total":RETURN 51000 'End Of Recipt Message. 51010 LPRINT"VAT Reg 196 3305 50":LPRINT:LPRINT"Thankyou For ":LPRINT"Choosing B ygraves.":RETURN 52000 MOTORON:GOSUB 29000:MOTOR OFF:RETURN 60000 CLS:LPRINT"Till Closed:";FNT$:CLS:PRINT"Remove Tape When":PRINT" REC Lamp Is Off...":OPEN"O",1,"CAS0:XYZ":PRINT#1,"*****END":CLOSE#1:CLS:PRINT"Goodbye." 60001 LOCATE 0,3:PRINT TIME$;:IFINKEY$="!"THENFL%=1:GOSUB61000 60002 GOTO 60001 61000 'Transmit Tape. 61010 IN$="COM0:(48N2F)":OPEN"I",1,IN$:OPEN"O",2,IN$:WIDTHIN$,255:CLS:PRINT"Veri fying Link With":PRINT" Zeus...":PRINT#2,"%"; 61020 A$=INPUT$(1,1):IFA$<>"$"THEN61020ELSEPRINT#2,"%";:PRINT"Link OK!" 61030 PRINT"Please Insert Tape":PRINT" To Be Transmitted":PRINT "Press $...";:LE %=0:GOSUB29000:GOSUB25000:IFI1$<>"$"THEN61030 61040 ONERRORGOTO61800:B%=0:WIND 61100 CLOSE#3:A%=TAPCNT:OPEN"I",3,"CAS0:":PRINT:PRINT"Transmitting...":IN$="*STA RT":GOSUB61900 61110 LINEINPUT#3,IN$:A$=IN$:GOSUB61900 61120 IF LEFT$(A$,4)="ENDO"THENIN$="*END":GOSUB61900:GOTO61100 61130 IFA$="*****END"THENIN$="*END":GOSUB61900:GOTO61850ELSE IFIN$<>"ENDTAPE"THE N61110 61200 GOSUB29000:CLS:PRINT"Please Change Tape":PRINT" or Tape Side...":PRINT" P ress ENTER...";:LE%=0:GOSUB25000:PRINT:GOTO61040 61800 IFERR=54THENIN$="*END":GOSUB61900:RESUME61100 61810 IFERR=53THENRDER%=RDER%+1:IFRDER%<3THENIN$="*RDERR":GOSUB61900:WINDA%-3:RE SUME61100 61820 PRINT ERR,ERL:STOP 61850 CLS:PRINT"Do You Wish To":PRINT" Process Another":PRINT" Tape...Press:":P RINT"Y-Yes,N-No";:LE%=0:GOSUB25000:IFI1$="Y"THENPRINT:GOTO61030ELSEIN$="*ENDTX": GOSUB61900:CLOSE:IF FL% THENRETURNELSEGOTO2000 61900 RTY%=0:PRINT#2,CHR$(LEN(IN$)+48);IN$;CHR$(13); 61910 I1$=INPUT$(1,1):IFI1$="Y"THENRETURNELSEIFI1$<>"N"THEN61910 61920 RTY%=RTY%+1:IFRTY%<5THEN61900ELSEPRINT"Transmission Error":IN$="*ABORT":GO SUB61900:RUN 1 TITLE"Till":DEFFNT$=TIME$:GOTO60000 2 'POKE126,128:POKE125,4:POKE(PEEK(1205)*256+PEEK(1206)+10),255:POKE126,0:POKE12 7,160 5 WIDTH30,4,1:CLEAR800:PRINT"Initialising..." 10 MEMSET2630:DEFUSR0=24908:MEMSETUSR0(2630)+1:COM%=&H6100:DEFUSR1=COM%:DEFUSR2= COM%+4:DEFUSR3=COM%+8 15 BADR%=&H69EE:BAR%=USR1(BADR%):BAR%=USR3(256) 20 MAX%=100:TILL%=1:DIM PP(MAX%),QT%(MAX%),DI%(MAX%),S$(MAX%),D(MAX%),D$(20):DEF FNT$=LEFT$(TIME$,5):PRINT"Till:";TILL% 30 PW$="123456":NUM$="0123456789.":DEF FNR(X)=INT(X*100+.05*SGN(A))/100:DEF FNI( X)=FNR(X/100) 40 DA$="CAS0:"+MID$(DATE$,3,2)+LEFT$(DATE$,2):Z$="#####.##":I1$="":I1%=0:IN$="": LE%=0:DP%=0:ST%=0 500 D$(0)="Ornamental Trees" 502 D$(1)="Shrubs" 504 D$(2)="Conifers" 506 D$(3)="Soft Fruit & Trees" 508 D$(4)="Herbaceous Plants" 510 D$(5)="Rock & Herb Plants" 512 D$(6)="Bedding Plants" 514 D$(7)="Climbing Plants" 516 D$(8)="Hedging Plants" 518 D$(9)="Roses" 520 D$(10)="House Plants" 522 D$(11)="Bulbs" 524 D$(12)="Seeds" 526 D$(13)="Fert. & Chemicals" 528 D$(14)="Sundries" 530 D$(15)="Tools" 532 D$(16)="Garden Furniture" 534 D$(17)="Stoneware" 536 D$(18)="Yard & Heavy Goods" 538 D$(19)="Maint. & Supplies" 550 D$="LeictP D CTrade":E$="Cash ChequeVISA ACCESSAMEX DINERSOTHER ":T1$=" A SDFGHQWE":C$="&###":K$="MJKLUIO," 1000 'Logical Start Of Programme. 1010 CLS:PRINT:PRINT"Please Sign On:":BC$=SPACE$(LEN(PW$)+2):BC%=USR2(VARPTR(BC$ )) 1020 IF BC%<>LEN(PW$) OR LEFT$(BC$,LEN(PW$))<>PW$ THEN PRINT"Incorrect":GOSUB 29 000:GOTO 1000 1100 CLS:PRINT"Please Insert Tape":PRINT " In Tape Unit And":PRINT" Press ENTER ...";:GOSUB 30110 1110 LE%=0:GOSUB25000:CLS:PRINT "Initialising...":PRINT:PRINT"...Please Wait..." :WIND:IF CC% THEN 2500 1120 CLS:GOSUB52000:PRINT"Value Of Float":PRINT"-Currently In Till:" 1130 LE%=106:GOSUB 25000:IF ST% THEN 10 1140 FLT=VAL(IN$):IF FLT<0 OR FLT>250 THEN GOSUB 29000:GOTO1120 1200 PRINT:PRINT"Next Receipt No:":LE%=6:GOSUB 25000:IF ST% THEN 1120 1210 NEX=VAL(IN$):PRINT:IF NEX<0 OR NEX>999999 THEN GOSUB 29000:GOTO 1200 1300 FOR A%=1 TO 6 1310 PRINT:LE%=105:IF A%>3 THEN PRINT"Sundry Rate";CHR$(A%+45);":"; ELSE PRINT " Disc't Rate";CHR$(A%+48);":"; 1320 GOSUB 25000:A=FNR(VAL(IN$)):IF A<0 OR A>30 OR ST% THEN GOSUB 29000:GOTO 131 0 1330 DIS(A%)=A/100:NEXT A% 2000 CLS:PRINT"Enter Cashier No:":BC$=SPACE$(8):LE%=6:GOSUB 30000:IF ST%=1 THEN 1300 2010 OPR%=VAL(MID$(BC$,5,2)):IF OPR%<0 OR OPR%>99 OR ASC(BC$+"!")<>56 OR LEN(BC$ )<6 THEN GOSUB 29000:GOTO 2000 2100 IF MID$(BC$,2,3)<>LEFT$(PW$,3) THEN 2500 2110 CLS:PRINT"x-X Register":PRINT"z-Z Register":PRINT"!-Open Till t-Xmit":PRINT "C-Continue E-End";:LE%=0:GOSUB 25000:IF ST%=0 THEN 2110 ELSE ON INSTR("xz!CEt", I1$) GOTO 2150,2150,2300,2000,60000,61000:GOTO 2110 2150 'X,Y Register. 2160 LPRINT:LPRINT I1$;" Register.":TT#=0 2170 FOR A%=1 TO 7:LPRINT USINGC$+Z$;MID$(E$,(A%-1)*6+1,6),TT#(A%):TT#=TT#+TT#(A %):IF I1$="z" THEN TT#(A%)=0 2180 NEXT A%:LPRINT USING C$+Z$;"Total:",TT#:LPRINT:LPRINTUSINGC$+Z$;"Cash In Ti ll:",TT#+FLT:TT#=0:LPRINT:LPRINTUSINGC$+Z$;"0 Rtd Goods :",VAT0#:LPRINT 2190 FOR A%=1 TO 3:LPRINT USINGC$+Z$;MID$(D$,(A%-1)*5+1,5),DIS#(A%):IFI1$="y"THE N DIS#(A%)=0 2193 NEXT A% 2194 FOR A%=1 TO 6:IFA%>3 THEN LPRINT"Sundry";A%-3; ELSE LPRINT"Disc't";A%; 2195 LPRINT TAB(12);:LPRINT USINGZ$;DIS(A%)*100;:LPRINT" %":NEXT A%:LPRINT 2200 LPRINT:IF I1$="z" THEN LPRINT "Registers Cleared.":VAT0#=0 2210 LPRINT:LPRINT:GOTO 2110 2300 GOSUB 52000:GOTO 2110 2500 CC%=0:OPEN "O",#1,DA$:PRINT:PRINT "Thankyou...":PRINT"Please Wait" 2510 PRINT #1,"***";DA$ 2520 PRINT #1,DATE$;FNT$;OPR%;TILL% 2530 PRINT #1,NEX;FLT 2540 FOR A%=1 TO 6:PRINT #1,A%;DIS(A%):NEXT A% 2550 PRINT #1,"**" 2700 LPRINT:LPRINTSTRING$(24,42):LPRINT 3000 ' 3010 TT=0:LI%=0:DIS=0:V%=0:X%=0:GOSUB 50000 3100 RE%=1:ST$="":BC$=SPACE$(14):LE%=107:CLS:PRINTUSING"Total:"+Z$;TT:PRINT"No/P rice:";:LOCATE9,1,1:GOSUB30000 3110 ST$="":IFBC%GOTO3500ELSEIFST%THENA%=INSTR("=|C@Rv",I1$):IFA%THENONA%GOTO600 0,6100,6200,6300,6800,6900ELSE3100 3120 LOCATE 0,2:PRINT"Price:"; 3200 IFINSTR(IN$,".")THEN3300 3210 ST$=IN$ 3220 LOCATE6,2:LE%=106:GOSUB25000:IFST%THEN3100 3300 'Price 3310 PR=FNR(VAL(IN$)):IFPR<.01ORPR>999THENGOSUB29000:GOTO3100 3320 IFST$=""THENST$="70000":IFV%THENV%=0:ST$="70001" 3330 GOTO4000 3500 'Decode Bar Cd Rd. 3510 PR=FNI(VAL(MID$(BC$,8,5))):ST$=MID$(BC$,3,5):ST=VAL(ST$):X%=VAL(LEFT$(BC$,2 )) 3520 LOCATE0,2:PRINT"Price:"; 4000 'Qty. 4005 IF LI%>MAX% THENCLS:PRINT"NO MORE LINES":GOSUB29000:GOSUB29000:GOTO 3100 4010 ST$=RIGHT$("00000"+ST$,5):LOCATE0,1:PRINTSPC(19);:LOCATE0,1:GP%=INT(VAL(ST$ )/5000):PRINTD$(GP%); 4020 LOCATE6,2:PRINTUSINGZ$;PR;:LOCATE14,3:PRINT"|";ST$; 4030 LOCATE0,3:PRINT"Qty:"; 4050 LE%=3:GOSUB25000:IFST%THEN 3100 4060 QTY%=VAL(IN$):IFQTY%=0THENQTY%=1 4070 IFQTY%<1ORQTY%>999THENGOSUB29000:GOTO4030 4080 LOCATE4,3:PRINTUSING"#####";QTY%;:QTY%=QTY%*RE% 4090 IFABS(QTY%*PR+TT)>9999THENCLS:PRINT"TOTAL TOO HIGH":GOSUB29000:GOTO3100 5000 'Print Transaction. 5010 LPRINTLEFT$(D$(GP%),12);TAB(12);:A=QTY%*PR:LPRINTUSING"#### ####.##";QTY%,A 5100 PP(LI%)=PR:QT%(LI%)=QTY%:DI%(LI%)=X%:S$(LI%)=ST$:LI%=LI%+1 5120 TT=TT+A:GOTO3100 6000 '= Cancel. 6010 LPRINTSTRING$(23,42):LPRINT"*Transaction Cancelled*":LPRINTSTRING$(23,42): LPRINT:LPRINT:GOTO3000 6100 '| VOID. 6110 LI%=LI%-1:IFLI%=-1THEN6000ELSEA=QT%(LI%)*PP(LI%):LPRINT"Void Lst Lne-";:LPR INTUSING"### ####.##";QT%(LI%),A 6120 TT=TT-A:GOTO3100 6200 'C Change Operator. 6210 IFLI%THENGOSUB29000:GOTO3100 6220 PRINT"Wait...":PRINT#1,"ENDO"+FNT$:CLOSE #1:GOTO2000 6300 '@ Sub-Total. 6310 IFLI%=0THEN6000ELSELPRINTTAB(16);STRING$(8,61):LPRINT"Sub-Total";TAB(16);:L PRINTUSINGZ$;TT:LOCATE0,3:PRINT"Amt to pay:"; 6320 FORA%=0TO7:P(A%)=0:NEXTA%:LE%=0:D%=0:PD=TT:BC$="":FT%=0:LOCATE0,1:PRINT"Dis c/Payment Method":GOSUB25000:A%=INSTR(T1$,I1$):IFA%=0THEN6320ELSET$=LEFT$(T1$,7) 6330 LOCATE0,1:PRINTSPC(20);:LOCATE0,1:DIS=0:IFA%<8THEN6420 6340 D%=A%-7:PRINTMID$(D$,(D%-1)*5+1,5);" Discount"; 6350 FORB%=0TOLI%-1:X%=DI%(B%):IFX% THEND%(1)=(X% AND 3):D%(2)=(X% AND 12)/4:D%( 3)=(X% AND 48)/16ELSED%(1)=4:D%(2)=5:D%(3)=6 6380 A=FNR(DIS(D%(D%))*QT%(B%)*PP(B%)):DIS=DIS+A:D(B%)=A 6400 NEXTB%:PD=PD-DIS 6402 IFD%=2THENLOCATE0,1:PRINT"Card No:";:LE%=6:GOSUB25000:IFST% ORLEN(IN$)<>6TH EN6320ELSEA%=VAL(LEFT$(IN$,4)):IFVAL(RIGHT$(IN$,2))<>((A%*3)MOD17)+(A%/11)MOD31+ (SQR(A%)+LOG(A%)*5) MOD29THENLOCATE0,1:PRINT"Invalid!":GOSUB29000:GOTO6320ELSEBC $=IN$ 6410 LOCATE10,3:PRINTUSINGZ$;PD;:LOCATE0,1:PRINT"Payment Method:";:LE%=0:GOSUB25 000:IFST%=1THEN6320ELSEA%=INSTR(T$,I1$):IFA%=0THEN6410 6420 LOCATE0,2:PRINTMID$(E$,(A%-1)*6+1,6);" Amt:";:LE%=106:GOSUB25000:IFST%THEN6 320ELSEA=FNR(VAL(IN$)):IFA<0ORA>999THEN6420 6430 ON A% GOTO 6500,6500:IF FT%=0 THEN FT%=1:DIS=FNR(DIS/2):IF DIS<.01 THEN DIS =0 ELSE PD=PD+DIS 6440 IF IN$="" THEN A=PD ELSE IF PD-A<0 THEN GOSUB 29000:GOTO 6410 6450 PD=FNR(PD-A):P(A%)=P(A%)+A:IF PD=0 OR (A%=1 AND PD<0) THEN 6600 ELSE 6410 6500 T$=LEFT$(T1$,A%):IF IN$="" THEN A=PD ELSE IF PD-A<0 AND A%<>1 THEN 6410 6510 GOTO 6450 6600 'The End. 6605 CLS:PRINTUSING"Change:"+Z$;-PD:GOSUB52000:IF A%=1 THEN TT#(A%)=TT#(A%)+PD 6610 IF DIS THENLPRINTUSING"Less Disc:"+MID$(D$,(D%-1)*5+1,5)+" "+Z$;DIS:DIS#(D% )=DIS#(D%)+DIS:IFBC$<>""THENLPRINT"Card No :";BC$ 6615 LPRINT USING"TOTAL:"+SPACE$(10)+Z$;TT-DIS:LPRINT TAB(16);STRING$(8,61):PRIN T#1,"Z"+STR$(NEX) 6620 FORA%=7TO1STEP-1:IFP(A%)THENLPRINTUSING"Paid by "+MID$(E$,(A%-1)*6+1,6)+" "+Z$;P(A%):TT#(A%)=TT#(A%)+P(A%):PRINT#1,"!";A%;P(A%)-PD*(A%=1) 6630 P(A%)=0:NEXTA% 6700 IF PD THENLPRINTUSING"Change Given -"+Z$;-PD 6710 LPRINT:GOSUB 51000:CLS:LPRINT:LPRINT:LPRINT:LPRINT 6720 IFTAPCNT>3000THENPRINT"The Tape Will Need":PRINT" To Be Changed Soon" 6750 PRINT #1,"*";FNT$;LI%;D%;BC$:FORA%=0TOLI%-1:PRINT#1,S$(A%);PP(A%);QT%(A%);D I%(A%);D(A%):IFS$(A%)="70001"THENVAT0#=VAT0#+PP(A%)*QT%(A%) 6755 NEXTA% 6760 NEX=NEX+1:IF NEX=1E6 THENNEX=0 6765 PRINT"Remove Receipt &":PRINT " Press ENTER...";:LE%=0:GOSUB25000:IFIN$<>"" THENGOSUB29000:GOTO6765 6770 IFTAPCNT<3200THEN3000ELSE CLS:PRINT"The Tape MUST Be":PRINT" Changed NOW!": PRINT#1,"ENDTAPE":CLOSE#1:PRINT"Please Call":PRINT" Supervisor..."; 6780 LE%=0:GOSUB25000:IF I1$<>"$"THEN6770 ELSECC%=1:GOTO1100 6800 'R Refund. 6810 RE%=-1:LOCATE18,0:PRINT"RE";:LOCATE0,1:PRINT"Stock Code:";:LE%=5:GOSUB25000 :IFST%THENRE%=1:GOTO3100ELSE3120 6900 'V Vat 0 %. 6910 LOCATE18,0:PRINT"0V";:ST$="":V%=1:GOTO3120 9999 STOP 25000 ' 25010 SOUND 46,1:IN$="":DP%=INT(LE%/100):LE%=LE%MOD100:ST%=0 25020 PRINTSPACE$(LE%);STRING$(LE%,29); 25030 I1$=INPUT$(1):I1%=ASC(I1$):IFI1%=32ORI1%=13THENRETURNELSEIFI1%=88THENPRINT STRING$(LEN(IN$),8);:IN$="":GOTO25030 25040 IF I1%=90THENST%=1:RETURN 25050 IFI1%=8THENIFLEN(IN$)THENIN$=LEFT$(IN$,LEN(IN$)-1):PRINT CHR$(29);" ";CHR$ (29); 25055 I1%=INSTR(NUM$,I1$):IFI1%=0THENI2%=INSTR(K$,I1$):IFI2%THENIFI2%<>8THENI1$= CHR$(47+I2%)ELSEI1$="." 25060 I1%=INSTR(NUM$,I1$):IFI1%=0THENIFIN$=""ANDASC(I1$+"1")<>8THENST%=2:RETURNE LSE25030 25070 IFLEN(IN$)=LE%OR(DP%=0ANDI1%=11)OR(I1%=11ANDINSTR(IN$,"."))THEN25030 25080 PRINTI1$;:IN$=IN$+I1$:GOTO25030 29000 SOUND 14,3:FOR XX%=1 TO500:NEXT:GOSUB 30110:RETURN 30000 'Read A Barcode, If Le%=0 clear buf and return nothing. 30010 I1$="":SOUND47,1:BC%=USR2(VARPTR(BC$)):IFBC%>0ANDBC%<254THENRETURNELSEIFAB S(BC%)=255THEN30100ELSEGOSUB29000:GOTO30000 30100 IF LE% THEN GOSUB 25000:BC$=IN$:BC%=0:RETURN 30110 IF INKEY$="" THEN RETURN ELSE 30110 50000 ' 50010 LPRINT"Bygrave Garden":LPRINT"& Leisure Centre." 50020 LPRINT"North Orbital Road,":LPRINT"St. Albans,Herts AL1 2DL" 50030 LPRINT"Telephone: (0727) 26100":LPRINT"Date: ";DATE$;" at ";FNT$:LPRINT"Op r:";100*TILL%+OPR%;"Rcpt No:";NEX 50040 LPRINT:LPRINT"Product Type Qty Total":RETURN 51000 'End Of Recipt Message. 51010 LPRINT"VAT Reg 196 3305 50":LPRINT:LPRINT"Thankyou For ":LPRINT"Choosing B ygraves.":RETURN 52000 MOTORON:GOSUB 29000:MOTOR OFF:RETURN 60000 CLS:LPRINT"Till Closed:";FNT$:CLS:PRINT"Remove Tape When":PRINT" REC Lamp Is Off...":OPEN"O",1,"CAS0:XYZ":PRINT#1,"*****END":CLOSE#1:CLS:PRINT"Goodbye." 60001 LOCATE 0,3:PRINT TIME$;:IFINKEY$="!"THENFL%=1:GOSUB61000 60002 GOTO 60001 61000 'Transmit Tape. 61010 IN$="COM0:(48N2F)":OPEN"I",1,IN$:OPEN"O",2,IN$:WIDTHIN$,255:CLS:PRINT"Veri fying Link With":PRINT" Zeus...":PRINT#2,"%"; 61020 A$=INPUT$(1,1):IFA$<>"$"THEN61020ELSEPRINT#2,"%";:PRINT"Link OK!" 61030 PRINT"Please Insert Tape":PRINT" To Be Transmitted":PRINT "Press $...";:LE %=0:GOSUB29000:GOSUB25000:IFI1$<>"$"THEN61030 61040 ONERRORGOTO61800:B%=0:WIND 61100 CLOSE#3:A%=TAPCNT:OPEN"I",3,"CAS0:":PRINT:PRINT"Transmitting...":IN$="*STA RT":GOSUB61900 61110 LINEINPUT#3,IN$:A$=IN$:GOSUB61900 61120 IF LEFT$(A$,4)="ENDO"THENIN$="*END":GOSUB61900:GOTO61100 61130 IFA$="*****END"THENIN$="*END":GOSUB61900:GOTO61850ELSE IFIN$<>"ENDTAPE"THE N61110 61200 GOSUB29000:CLS:PRINT"Please Change Tape":PRINT" or Tape Side...":PRINT" P ress ENTER...";:LE%=0:GOSUB25000:PRINT:GOTO61040 61800 IFERR=54THENIN$="*END":GOSUB61900:RESUME61100 61810 IFERR=53THENRDER%=RDER%+1:IFRDER%<3THENIN$="*RDERR":GOSUB61900:WINDA%-3:RE SUME61100 61820 PRINT ERR,ERL:STOP 61850 CLS:PRINT"Do You Wish To":PRINT" Process Another":PRINT" Tape...Press:":P RINT"Y-Yes,N-No";:LE%=0:GOSUB25000:IFI1$="Y"THENPRINT:GOTO61030ELSEIN$="*ENDTX": GOSUB61900:CLOSE:IF FL% THENRETURNELSEGOTO2000 61900 RTY%=0:PRINT#2,CHR$(LEN(IN$)+48);IN$;CHR$(13); 61910 I1$=INPUT$(1,1):IFI1$="Y"THENRETURNELSEIFI1$<>"N"THEN61910 61920 RTY%=RTY%+1:IFRTY%<5THEN61900ELSEPRINT"Transmission Error":IN$="*ABORT":GO SUB61900:RUN