10 DEFFNS="UltAlt" 20 *FX 200,1 30 ONERROR VDU3:OSCLI"FX 200":REPORT:PRINTERL:END 40 MODE7 50 VDU23;8202;0;0;0; 60 REPEAT 70 CLS 80 PRINTTAB(4)"The Ultimate Lottery Program" 90 PRINTTAB(4)"The Ultimate Lottery Program" 100 PRINT'TAB(12)"Data Modify" 110 PRINTTAB(12)"Data Modify" 120 PRINT'TAB(8)"By C.J.Richardson "'' 130 PRINTTAB(9)"1.Info" 140 PRINTTAB(9)"2.View/Print Data" 150 PRINTTAB(9)"3.Edit Data" 160 PRINTTAB(9)"4.Insert Missed Week" 170 PRINTTAB(9)"5.Delete A Week" 180 PRINTTAB(9)"*.Command" 190 PRINT'TAB(9)"0.End" 200 PRINT'TAB(8)"Enter 0 - 5 or * " 210 REPEAT 220 B$=GET$ 230 UNTILINSTR("012345*",B$) 240 IF B$="1"PROCinfo 250 IF B$="2"PROCprintout 260 IF B$="3"PROCget("Edit"):IF INSTR("Yy",A$)PROCedit 270 IF B$="4"PROCget("Insert"):IF INSTR("Yy",A$)PROCinsert:PROCedit 280 IF B$="5"PROCget("Delete"):IF INSTR("Yy",A$)PROCremove 290 IF B$="*":CLS:INPUT''"*"B$:PRINT':OSCLIB$:PRINT''TAB(10)"PRESS A KEY ":OSCLI"FX21":REPEATUNTILGET 300 UNTILB$="0" 310 *FX200 320 END 330 DEFPROCprintout 340 F%=OPENIN"UltDat" 350 CLS:PRINT'"To Printer Y/N?"' 360 *FX21 370 REPEAT 380 A$=GET$ 390 UNTILINSTR("YyNn",A$) 400 IF INSTR("Yy",A$) VDU2 ELSE PRINT"Press SHIFT To Scroll Numbers"':VDU14 410 A%=1 420 REPEAT 430 PRINT"Week ";STR$(A%);TAB(9); 440 FORL%=1 TO 6 450 B%=BGET#F% 460 PRINTSTRING$(2-LEN(STR$(B%)),"0")+STR$(B%);:IF L%<>6PRINT","; 470 NEXT 480 B%=BGET#F% 490 PRINTTAB(28)" Bonus ";STRING$(2-LEN(STR$(B%)),"0")+STR$(B%) 500 A%=A%+1 510 UNTILEOF#F% 520 CLOSE#F% 530 VDU3,15 540 *FX21 550 PRINT'"Press A Key" 560 REPEATUNTILGET 570 ENDPROC 580 DEFPROCinfo 590 CLS 600 PRINT'" Lottery Program Data Editor "' 610 VDU14 620 PRINT"This program will edit the data" 630 PRINT"produced by the 'Ultimate Lottery" 640 PRINT"Program' by C.J.Richardson" 650 PRINT 660 PRINT"It is VERY important that you copy the" 670 PRINT"data 'UltDat' to a blank disc before" 680 PRINT"editing it with this program." 690 PRINT 700 PRINT"You can edit a week, insert a week or" 710 PRINT"remove a week. When removing a week," 720 PRINT"the program needs to make a copy of" 730 PRINT"the data. It is therefore very" 740 PRINT"important to ensure that the disc you" 750 PRINT"are using is no more than half full" 760 PRINT"before you start." 770 PRINT 780 VDU15 790 PRINTTAB(10)"Press a key " 800 *FX21 810 REPEATUNTILGET 820 ENDPROC 830 DEFPROCget(P$) 840 F%=OPENUP"UltDat" 850 REPEAT 860 REPEAT 870 CLS 880 PRINT'TAB(10)"";P$;" a week" 890 PRINTTAB(10)"";P$;" a week"'' 900 PRINTTAB(3)"Enter week to ";P$;": 1 - ";EXT#F%/7;" "'' 910 INPUT"";A% 920 UNTILA%>0 AND A%<=EXT#F%/7 930 A%=A%-1 940 PRINTTAB(0,8);SPC(5) 950 PTR#F%=(A%)*7 960 PRINT''"Week ";STR$(A%+1);":"; 970 FORL%=1 TO 6 980 PRINTRIGHT$("0"+STR$(BGET#F%),2);" "; 990 NEXT 1000 PRINT"Bonus:";RIGHT$("0"+STR$(BGET#F%),2) 1010 IF P$="Insert" Q$=" before" ELSE Q$="" 1020 PRINT''''TAB(3)"";P$;Q$;" this, sure Y/N/Q? " 1030 REPEAT 1040 *FX21 1050 A$=GET$ 1060 UNTILINSTR("YyNnQq",A$) 1070 UNTILINSTR("YyQq",A$) 1080 CLOSE#F% 1090 ENDPROC 1100 DEFPROCedit 1110 F%=OPENUP"UltDat" 1120 REPEAT 1130 PTR#F%=A%*7 1140 FORL%=1 TO 7 1150 REPEAT 1160 PRINTTAB(0,16)SPC(38) 1170 PRINTTAB(0,16)"Enter "; 1180 IF L%=7 PRINT"Bonus "; 1190 PRINT"Number ";STR$(L%);":"; 1200 INPUT" "B% 1210 UNTILB%>0 AND B%<50 1220 BPUT#F%,B% 1230 NEXT 1240 PRINTTAB(0,11)"Week ";STR$(A%+1);":"; 1250 PTR#F%=A%*7 1260 FORL%=1 TO 6 1270 PRINTRIGHT$("0"+STR$(BGET#F%),2);" "; 1280 NEXT 1290 PRINT"Bonus:";RIGHT$("0"+STR$(BGET#F%),2) 1300 PRINTTAB(0,16)SPC(38) 1310 PRINTTAB(0,16)"Is this ok? Y/N" 1320 REPEAT 1330 C$=GET$ 1340 UNTILINSTR("YyNn",C$) 1350 UNTILINSTR("Yy",C$) 1360 CLOSE#F% 1370 ENDPROC 1380 DEFPROCinsert 1390 PRINT''TAB(12)"Inserting " 1400 F%=OPENUP"UltDat" 1410 PTR#F%=EXT#F% 1420 N%=A%*7 1430 FORL%=1TO7 1440 BPUT#F%,0 1450 NEXT 1460 O%=EXT#F%-1 1470 REPEAT 1480 PTR#F%=O%-7 1490 B%=BGET#F% 1500 PTR#F%=O% 1510 BPUT#F%,B% 1520 O%=O%-1 1530 UNTILO%=N%+6 1540 PTR#F%=N% 1550 FORL%=1TO7 1560 BPUT#F%,0 1570 NEXT 1580 CLOSE#F% 1590 PRINTTAB(0,11)"Week ";STR$(A%+1);":00 00 00 00 00 00 Bonus:00" 1600 ENDPROC 1610 DEFPROCremove 1620 PRINT''TAB(8)"Removing a week " 1630 F%=OPENUP"UltDat" 1640 N%=A%*7 1650 IF N%+7<>EXT#F%:REPEAT:PTR#F%=N%+7:B%=BGET#F%:PTR#F%=N%:BPUT#F%,B%:N%=N%+1:UNTILN%=EXT#F%-7 ELSE PTR#F%=N% 1660 FORL%=1TO7 1670 BPUT#F%,0 1680 NEXT 1690 CLOSE#F% 1700 PROCzero 1710 ENDPROC 1720 DEFPROCzero 1730 F%=OPENIN"UltDat" 1740 G%=OPENOUT"Temp" 1750 PTR#F%=EXT#F%-1 1760 IFBGET#F%<>0:CLOSE#F%:CLOSE#G%:ENDPROC 1770 REPEAT 1780 PTR#F%=PTR#F%-2 1790 UNTILBGET#F%<>0 1800 T%=PTR#F% 1810 PTR#F%=0 1820 REPEAT 1830 BPUT#G%,BGET#F% 1840 UNTILPTR#F%=T% 1850 CLOSE#F% 1860 CLOSE#G% 1870 *DELETE UltDat 1880 *RENAME Temp UltDat 1890 REM I didn't use EXT#F% because it is Master only! 1900 ENDPROC