10 CLS:  
20 CLEAR  200  
21 REM ** TITLE PAGE & INSTRUCTIONS  
30 PRINT :PRINT :PRINT "   **** SHOPPING LIST ****"  
40 PRINT "      BY  J. A. KRAYNAK"  
50 PRINT :PRINT :PRINT :PRINT "DO YOU NEED INSTRUCTIONS (Y/N)";  
60 AA$=INKEY$:IF AA$="Y" THEN 70  ELSE  IF AA$="N" THEN 220  ELSE  60  
70 CLS:PRINT :PRINT :PRINT "    FIVE LISTS OF GROCERIES WILL APPEAR ON THE SCREEN, ONE"  
80 PRINT "AT A TIME OF COURSE,  WITH A BLINKING CURSOR ( ) NEXT TO THE"  
90 PRINT "FIRST ITEM ON THE LIST.  IF YOU DESIRE THAT ITEM TO BE ON YOUR"  
100 PRINT "PRINTED SHOPPING LIST - PRESS THE 'Y' KEY.  IF NOT - PRESS THE"  
110 PRINT "'N' KEY & THE CURSOR WILL MOVE ON TO THE NEXT ITEM.":PRINT   
120 PRINT "    AN '*' WILL APPEAR TO THE LEFT OF THE ITEMS SELECTED.  TO"  
130 PRINT "MOVE TO THE NEXT 'PAGE' PRESS THE '@' KEY.  YOU CANNOT GO"  
140 PRINT "BACKWARDS...IF YOU FORGET AN ITEM - DON'T FRET - AFTER"  
150 PRINT "RUNNING THE ENTIRE LIST YOU WILL BE ABLE TO ADD ITEMS NOT"  
160 PRINT "LISTED OR FORGOTTEN; BEFORE THE PRINT-OUT OCCURS."  
170 PRINT @ 15*64,"                * PRESS SPACE BAR TO CONTINUE *";  
171 REM ** INSTRUCTIONS BLINKING CURSOR ROUTINE  
180 KL$="#" ' CHR$(143)  
190 LK$=" "  
200 PRINT @ 3*64+46,KL$;:FOR DD=1 TO 10:NEXT DD  
210 AA$=INKEY$:PRINT @ 3*64+46,LK$;:FOR DD=1 TO 10:NEXT DD:IF  LEN(AA$) THEN 220  ELSE  200  
220 H=0:K=-1:O=0:F=0:P=0:Q=0:R=0:S=0  
230 DIM  LT(45),LT$(250),ST$(250),LST(45),LST$(45),NL$(250),A$(50),B$(50),C$(50),D$(50),E$(50),MS$(20)  
240 CLS:PRINT :PRINT :PRINT :PRINT :PRINT :PRINT :PRINT "    **** LOADING DATA ****"  
241 REM ** LOAD SCREEN WITH 45 ITEMS  
250 FOR  Y=1  TO  45:READ  LT(Y):NEXT  Y  
260 FOR  X=1  TO  45  
270 READ  LT$(X)  
280 IF  LT$(X)="*END" THEN  GOTO  380  
290 NEXT  X  
300 X=0:Y=0:H=0  
310 CLS  
311 REM ** SET UP CURSOR AT PROPER POSITION  
320 X=X+1:Y=Y+1  
330 IF  X=46  THEN  830  
340 PRINT @ LT(Y),LT$(X);  
350 ST$(H)=LT$(X)  
360 H=H+1  
370 GOTO  320  
371 REM ** ADD MISC. ITEMS ROUTINE  
380 CLS:W=0:PRINT "YOU MAY NOW ADD UP TO 20 ITEMS OF YOUR CHOICE THAT WERE NOT ON  THE LIST.  AFTER EACH ITEM IS TYPED, PRESS <ENTER>.  WHEN FIN-  ISHED...TYPE 'END' FOLLOWED BY PRESSING <ENTER>."  
390 PRINT :FOR  I=1 TO 20  
400 PRINT "ITEM #";I;"  ";  
410 INPUT  MS$(I)  
420 IF  MS$(I)="END" THEN  460  
430 W=W+1  
431 REM ** PREVENT INSTRUCTIONS FROM SCROLLING OFF SCREEN  
440 IF  I=11 THEN PRINT @ 4*64,"";
450 NEXT  I  
460 CLS:PRINT "READY PRINTER"  
470 PRINT "HIT ENTER WHEN READY"  
480 A$=INKEY$: IF  LEN(A$)=0 THEN  480  
481 REM ** PRINT OUT  
490 U=PEEK(14312)  
500 IF  U=63 THEN GOTO  530   ELSE   GOTO  510  
510 PRINT @ 7*64,"******* PRINTER NOT READY....CORRECT & PROCEED *******"  
520 FOR  GG=1  TO  800:NEXT  GG:CLS:GOTO 460  
530 CLS  
540 LPRINT " ":LPRINT " ":LPRINT "             ******************* SHOPPING LIST *******************":LPRINT " ":LPRINT " ":LPRINT " "  
550 NC=-20  
560 FOR  A=0  TO  O-1  
570 GOSUB 1560  
580 LPRINT TAB(NC) A$(A);  
590 NEXT  A  
600 FOR  A=0  TO  P-1  
610 GOSUB 1560  
620 LPRINT TAB(NC) B$(A);  
630 NEXT  A  
640 FOR  A=0  TO  Q-1  
650 GOSUB 1560  
660 LPRINT TAB(NC) C$(A);  
670 NEXT  A  
680 FOR  A=0  TO  R-1  
690 GOSUB 1560  
700 LPRINT TAB(NC) D$(A);  
710 NEXT  A  
720 FOR  A=0  TO  S-1  
730 GOSUB 1560  
740 LPRINT TAB(NC) E$(A);  
750 NEXT  A  
760 FOR  A=1  TO  W  
770 GOSUB 1560  
780 LPRINT TAB(NC) MS$(A);  
790 NEXT  A  
800 LPRINT " ":LPRINT " ":LPRINT "             ******************** END OF LIST ********************"  
810 LPRINT " ":LPRINT " ":LPRINT " ":LPRINT " "  
820 END  
830 REM ** BLINKING CURSOR ROUTINE  
840 C$="#" ' CHR$(143)  
850 J$=" "  
855 PRINT @ 15*64+5,":::::::::::::PRESS '@' KEY FOR NEXT PAGE:::::::::::::";  
860 FOR  I=1  TO  45  
870 PRINT @ LT(I)-2,C$;  
880 FOR  DD=1 TO 5:NEXT DD  
890 JK$=INKEY$:PRINT @ LT(I)-2,J$;:FOR DD=1 TO 5:NEXT DD:IF JK$="@" THEN 960  ELSE  IF JK$="Y" THEN PRINT @ LT(I)-2,"*";:K=K+1:GOTO 900  ELSE  IF JK$="N" THEN PRINT @ LT(I)-2," ";:K=K+1:GOTO 950  ELSE  870  
900 IF  F=0  THEN  A$(O)=ST$(K):O=O+1  
910 IF  F=1  THEN  B$(P)=ST$(K):P=P+1  
920 IF  F=2  THEN  C$(Q)=ST$(K):Q=Q+1  
930 IF  F=3  THEN  D$(R)=ST$(K):R=R+1  
940 IF  F=4  THEN  E$(S)=ST$(K):S=S+1  
950 NEXT  I  
960 F=F+1:K=-1:GOTO 260  
961 REM ** SET UP SCREEN PRINT POSITIONS  
970 DATA  5,25,44,69,89,108,133,153,172,197,217,236,261,281,300,325,345,364,389,409  
980 DATA  428,453,473,492,517,537,556,581,601,620,645,665,684,709,729,748,773,793,812,837,857,876,901,921,940  
989 REM ** GROCERY ITEM LISTS . . 45 ITEMS PER 'PAGE'  
990 DATA  CANTALOUPES,MUSHROOMS,APPLES,CELERY  
1000 DATA  CARROTS,PEARS,LETTUCE,CUCUMBERS  
1010 DATA  TOMATOES,MARZETTI DRESSING,GREEN PEPPERS  
1020 DATA  BANANAS,POTATOES,CORN,CABBAGE  
1030 DATA  ONIONS,GRAPEFRUIT,GRAPES  
1040 DATA  ORANGE JUICE,DRY YEAST,EGGS,BUTTER  
1050 DATA  MARGERINE,MILK,CHEESE(SLICES)  
1060 DATA  CHEESE(PIZZA),MAYONNAISE,SALAD DRESSING  
1070 DATA  PICKLES(DILL),PICKLES(SLICES),MUSTARD  
1080 DATA  KETCHUP,PEANUT BUTTER,JELLY  
1090 DATA  RELISH,HOT SAUCE  
1100 DATA  SUB BUNS,DINNER ROLLS,FRENCH BREAD  
1110 DATA  ITALIAN BREAD,PIE,CAKE,DONUTS  
1120 DATA  POTATOE SALAD,MACARONI SALAD,KIELBASA  
1130 DATA  LUNCHEON MEAT,BALOGNA,KIELBASA LOAF  
1140 DATA  PIZZA LOAF,SALAMI  
1150 DATA  PEPSI,DIET PEPSI,7-UP,GINGERALE  
1160 DATA  DR PEPPER,R C COLA,POP,ROOTBEER  
1170 DATA  PEANUTS,WALNUTS,PLAIN CHIPS,RIPPLED CHIPS  
1180 DATA  PRETZELS,POPCORN,CORN CHIPS  
1190 DATA  CORN CURLS,DORITOS  
1200 DATA  MUSHROOMS,SAUERKRAUT,PEAS,CARROTS,GREEN BEANS  
1210 DATA  CORN,CHILI BEANS,PORK & BEANS,INSTANT COFFEE  
1220 DATA  REGULAR COFFEE,TEA BAGS,COCOA MIX,TOMATO SAUCE  
1230 DATA  TOMATO PUREE,TOMATO PASTE,TOMATOES(WHOLE)  
1240 DATA  FRUIT COCKTAIL,PINEAPPLES,TOMATO JUICE  
1250 DATA  DOG FOOD,CAT FOOD,BONZ,DOG YUMMIES,FLEA POWDER  
1260 DATA  FROSTED FLAKES,CHEERIOS,CORN FLAKES,SHREADED WHEAT  
1270 DATA  BEEF NOODLE SOUP,TOMATO RICE SOUP,CHICKEN SOUP  
1280 DATA  TOMATO SOUP,VEGTABLE SOUP,TUNA FISH,SALMON  
1290 DATA  RICE-A-RONI,RICE,SPAGETTI SAUCE,PIZZA SAUCE  
1300 DATA  SPAGETTI NOODLES,ELBO MACARONI,EGG NOODLES  
1310 DATA  RIGATONI,COOKIES,SALTEEN CRACKERS,RITZ CRACKERS  
1320 DATA  SOAP(FACE),SOAP(SHOWER),MR BUBBLE  
1330 DATA  CLEANSER,CHEER,WINDEX,VANISH,SOFT SCRUB  
1340 DATA  MR CLEAN,AIR FRESHNERS,SHOUT,BLEACH,IVORY LIQUID  
1350 DATA  BOUNCE,AMMONIA,STARCH,TOP JOB  
1360 DATA  CAKE MIXES,FLOUR,CRISCO,VEGTABLE OIL,LOG CABIN SYRUP  
1370 DATA  PANCAKE MIX,SPICES,SALT,PEPPER,SUGAR,AU JUS GRAVY  
1380 DATA  MEAT LOAF MIX,STROGANOFF MIX,MEAT TENDERIZER,CANDY  
1390 DATA  MARSHMELLOWS,JELLO,CARNATION MILK,FREEZER WRAP  
1400 DATA  NAPKINS,GLAD WRAP,ALUMINUM FOIL,TRASH BAGS  
1410 DATA  GARBAGE BAGS,WAX PAPER,KLEENEX,TOILET PAPER,PAPER TOWELS  
1420 DATA  CAKE,BREAD,HAMBURG BUNS,HOT DOG BUNS,DINNER ROLLS  
1430 DATA  BREAD CRUMBS,CROUTONS,STUFFING MIX,SHAKE & BAKE  
1440 DATA  FISH FILETS,FRENCH FRIES,ONION RINGS,GNOCCHI  
1450 DATA  WAFFLES,LEMONADE,ORANGE JUICE,TANG  
1460 DATA  PIEROGIES,PIZZA,STEAK-UMMS,CHOPPED ONION  
1470 DATA  ICE CREAM,POP SICKLES,ICE CREAM TOPPINGS,COOL WHIP  
1480 DATA  FROZEN CHICKEN ,ROAST BEEF DINNER,FROZEN TURKEY  
1490 DATA  FROZEN STRAWBRY,FROZEN MIXED FRUIT  
1500 DATA  HOT DOGS,BACON,SAUSAGE,FISH,CHICKEN,TURKEY  
1510 DATA  PEPPER STEAKS,STEAK,ROAST,CHOPPED SERLOIN  
1520 DATA  HOT SAUSAGE,HAMBURGER,GROUND CHUCK,HAM,PORK CHOPS  
1530 DATA  SPARE RIBS,CIGARETTES,PIPE TOBACCO,PIPE FILTERS,T V GUIDE  
1535 REM ** DELETE A PERIOD '.' IN DATA LINE 1540 FOR EACH NEW    ITEM ADDED OR ADD PERIOD '.' IN DATA LINE 1540 FOR EACH ITEM    DELETED.  
1540 DATA  .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.  
1550 DATA  *END  
1560 NC=NC+20  
1570 IF  NC>60  THEN  LPRINT :NC=0  
1575 IF NC <= 0 THEN LET NC = 1
1580 RETURN   
1590 'SAVE AS "SHOPPING/JAK"  
2000 REM -----------------------------------
2010 REM Changes for bwBASIC
2100 DEF PEEK(X)
2110   REM Printer Is Ready
2120   LET PEEK = 63
2130 FNEND
2200 DEF INKEY$
2210   REM use INPUT because it is automted instead of INKEY$ which is not automated
2220   INPUT ZZ$
2230   LET INKEY$ = ZZ$
2240 FNEND
2999 END
