COLOR 14, 0 DIM m$(20), f$(100), n(100, 22), po$(6, 5), ch(20), v$(16), pr$(25), l$(50) DIM c$(12), it$(6) ON ERROR GOTO 300 DATA "heaped bowl","full bowl","3/4 bowl","1/2 bowl","nibble" DATA "two","1 1/2","one","half","a smiggon" DATA "1 1/2 pints","pint","cup and 1/2","cup","1/4 cup" DATA "two slices","huge slice","full slice", "half slice","taste" DATA "1/4 cup","two tablespoons","one tablespoon","two teaspoons" DATA "one teaspoon" DATA "eight ounces","six ounces","four ounces","two ounces","one ounce" DATA "bowl","item","cup","slice","tablespoon","ounce" DATA "calories","protein","fat","total carbohydrate","fiber","calcium" DATA "iron","sodium","vitamin E","vitamin A","vitamin C","thiamine" DATA "niacin","saturated fat"," ","glycemic number" DATA "F1 is for editting the menu" DATA "F2 to display all the current food choices and edit them" DATA "F3 update the datafile" DATA "F4 do a nutrient search of the food list" DATA "F5 to enter data for graphs" DATA "F6 to look at graphs" DATA "F10 reloads the data from disk" DATA "Esc to exit the program" DATA "`q' to view the general data file in eb.exe" DATA "`s' to view the graph data file" DATA "`m' to view the menu list file" DATA "`d' for the DOS prompt" cm$ = "059060061062063064068027113115109100" dt$ = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" nm$ = "person": ex$ = "adr" FOR a = 1 TO 6 FOR d = 1 TO 5: READ po$(a, d): NEXT NEXT FOR d = 1 TO 6: READ it$(d): NEXT FOR d = 1 TO 16: READ v$(d): NEXT FOR d = 1 TO 12: READ c$(d): NEXT CLS : LOCATE 10, 10: PRINT "Starting food.exe": GOTO 50 20 OPEN "numbers.adr" FOR INPUT AS #1: ERASE m$ LINE INPUT #1, cod$: d = 0: PRINT : PRINT " Reading numbers.adr" 25 IF RIGHT$(cod$, 1) = " " THEN cod$ = LEFT$(cod$, LEN(cod$) - 1): GOTO 25 INPUT #1, nm$, ex$ lm = 1: lmt = 1 WHILE NOT EOF(1) INPUT #1, f$(lm): LOCATE 12, 32: PRINT lm; FOR d = 1 TO 22: IF NOT EOF(1) THEN INPUT #1, n(lm, d) NEXT IF LEFT$(f$(lm), 1) <> "!" THEN lmt = lmt + 1 lm = lm + 1 WEND CLOSE RETURN 50 k = 1 51 CLS : LOCATE 4, 1: ERASE ch: t = 0 b$ = LEFT$(TIME$, 5): b = VAL(LEFT$(b$, 2)) IF b > 12 THEN b$ = STR$(b - 12) + RIGHT$(b$, 3) + "pm" PRINT b$: PRINT FOR d = 1 TO 12 IF d = 7 THEN PRINT IF d = k THEN COLOR 0, 14 PRINT c$(d): COLOR 14, 0 NEXT PRINT : PRINT " Enter an option: "; : b$ = "" WHILE b$ = "" b$ = INKEY$ WEND CLS outer: IF b$ = "q" THEN PRINT "Loading Eb.exe": SHELL "eb numbers.adr/e" IF b$ = "d" THEN PRINT "Exiting": SHELL "command /k dir/w" IF b$ = "s" THEN PRINT "Loading Eb.exe": SHELL "eb " + nm$ + "." + ex$ + "/e" IF b$ = "m" THEN PRINT "Loading Eb.exe": SHELL "eb menus." + ex$ + "/e" f = ASC(LEFT$(b$, 1)): b = ASC(RIGHT$(b$, 1)) IF f = 13 THEN f = 0: b = 77 100 IF f = 0 THEN IF b = 80 THEN IF k < 12 THEN k = k + 1 ELSE k = 1 IF b = 72 THEN IF k > 1 THEN k = k - 1 ELSE k = 12 IF b = 77 THEN b = VAL(MID$(cm$, k * 3 - 2, 3)) IF b = 75 THEN PRINT : PRINT " or right arrow makes the highighted selection" END IF IF b > 99 THEN b$ = CHR$(b): GOTO outer IF b < 63 AND f$(1) = "" THEN GOSUB 20 IF b = 63 THEN IF dy$ = "" THEN dy: IF ov <> -39 THEN PRINT "determining then current day on the record" OPEN nm$ + ex$ FOR INPUT AS #3 WHILE NOT EOF(3) LINE INPUT #3, a$: IF LEN(a$) < 7 AND LEN(a$) > 4 THEN dy$ = a$ WEND CLOSE 3 IF q = -78 THEN RETURN END IF q = 0: x = 0 IF ov <> -39 THEN ERASE l$: l$(5) = "am": l$(4) = "00": CLS : k = 3 END IF l$(1) = LEFT$(dy$, 3): l$(2) = RIGHT$(dy$, 2) dataentry: d = VAL(l$(6)): IF d > 95 THEN CLS LOCATE 17, 5 IF k = 5 THEN PRINT "Press any non-arrow key to toggle" ELSE PRINT "Press enter to save the whole set of entries"; END IF PRINT " Use up and down arrow to move the highlight" LOCATE 8, 5: PRINT "date "; dy$; LOCATE 10, 1 PRINT "time (hour:minutes) blood sugar, total carbohydrate or weight"; IF d < 96 THEN PRINT " calories"; : z = 8 ELSE z = 6 IF k > z THEN k = 3 FOR d = 1 TO z IF d < 8 THEN IF d = 1 THEN LOCATE 8, 11: l$(1) = UCASE$(l$(1)) IF d = 3 THEN LOCATE 12, 1 IF k = d THEN COLOR 0, 14 IF d > 1 AND d < 6 THEN PRINT RIGHT$(" " + l$(d), 2); ELSE PRINT RIGHT$("___" + l$(d), 3); " "; END IF ELSE PRINT : PRINT : PRINT "meal description (less than 50 characters)" IF k = d THEN COLOR 0, 14 PRINT l$(8); STRING$(50 - LEN(l$(8)), "_"); END IF COLOR 14, 0 IF d = 3 THEN PRINT ":"; IF d = 5 OR d = 6 THEN PRINT " "; NEXT IF VAL(l$(3)) = 0 AND z = 6 THEN LOCATE 12, 1: PRINT "Weight "; e$ = "" WHILE e$ = "": e$ = INKEY$: WEND f = ASC(RIGHT$(e$, 1)) IF LEN(e$) = 2 THEN IF f = 77 THEN IF k < z THEN k = k + 1: q = 0 ELSE x = x + 1: q = 1 IF z = 6 OR x > LEN(l$(8)) + 1 THEN k = 1: x = x - 1: q = 0 END IF END IF IF f = 75 THEN IF k < 8 THEN IF ov = -39 THEN a$ = m$(a): ov = 0: GOTO meal ELSE k = 5: GOTO 51 ELSE IF k = 8 THEN q = 1: x = x - 1: IF x < 1 THEN x = 1: k = 6: q = 0 END IF END IF IF f = 80 THEN IF k < z THEN k = k + 1: q = 0 ELSE k = 3 IF f = 72 THEN IF k > 1 THEN k = k - 1: q = 0 ELSE k = z GOTO dataentry END IF IF f = 27 THEN IF ov = -39 THEN a$ = m$(a): ov = 0: GOTO meal k = 5: GOTO 51 END IF IF f = 13 AND l$(6) <> "" THEN e$ = l$(3) + ":" + l$(4) + l$(5) + ", " IF VAL(l$(3)) = 0 THEN e$ = "Weight " OPEN nm$ + ex$ FOR INPUT AS #1: q = 0 OPEN "!oit" FOR OUTPUT AS #2 WHILE NOT EOF(1) LINE INPUT #1, a$ d = VAL(RIGHT$(a$, 2)): x = VAL(RIGHT$(dy$, 2)) IF dy$ = a$ THEN q = 1 IF LEFT$(a$, 3) = LEFT$(dy$, 3) AND d > x AND q < 2 THEN newday: IF q = 0 THEN PRINT #2, dy$ PRINT #2, e$; l$(6) IF z = 8 THEN PRINT #2, CHR$(34); l$(8); ", "; l$(7); " cal."; CHR$(34) END IF IF q = 2 THEN PRINT #2, a$ IF a$ <> "" THEN PRINT #2, a$ q = 4 ELSE PRINT #2, a$ END IF WEND a$ = "" IF q < 2 THEN GOTO newday CLOSE : KILL "person.adr" NAME "!oit" AS "person.adr" IF ov = -39 THEN ov = 0: MID$(m$(a), 1, 4) = l$(3) + l$(5): a$ = m$(a): GOTO meal ELSE f = 0: b = 63: GOTO 100 END IF END IF IF k <> 5 THEN IF ASC(e$) > 30 AND (ASC(e$) < 58 OR k = 8 OR k = 1) THEN IF q = 0 THEN l$(k) = e$: q = 1 ELSE l$(k) = l$(k) + e$ IF k = 4 OR k = 2 THEN l$(k) = RIGHT$(l$(k), 2) END IF END IF IF LEN(l$(k)) > 0 AND f = 8 THEN l$(k) = LEFT$(l$(k), LEN(l$(k)) - 1) END IF END IF IF k > 1 AND k < 6 THEN IF LEN(l$(k)) = 1 THEN IF k = 4 THEN d = VAL(l$(4)) IF d > 5 OR d = 0 THEN IF d = 0 THEN e$ = "00" IF d = 6 THEN e$ = "60" IF d > 6 THEN e$ = "0" + e$ l$(4) = e$: k = k + 1: q = 0 ELSE l$(4) = "0" + e$ END IF END IF IF k = 3 THEN IF VAL(l$(3)) > 1 THEN l$(3) = " " + e$: k = k + 1: q = 0 ELSE IF k = 5 THEN IF LEN(e$) = 1 THEN IF l$(5) = "am" THEN l$(5) = "pm" ELSE l$(5) = "am" END IF IF VAL(l$(3)) > 12 THEN l$(3) = "12" IF k > 2 THEN k = k + 1: q = 0: GOTO dataentry END IF END IF IF k = 1 OR k = 2 THEN d = VAL(l$(2)): IF d > 31 THEN d = 31 IF d > 3 AND k = 2 THEN k = 3: q = 0 dy$ = l$(1) + STR$(d) END IF IF k = 1 OR k = 6 OR k = 7 THEN IF LEN(l$(k)) = 3 THEN k = k + 1: q = 0 END IF GOTO dataentry END IF IF b = 64 THEN LOCATE 23, 8: PRINT "Esc exits the graph display, arrow keys control it"; LOCATE 10, 11: ov = 0 PRINT "Enter the date to display ": PRINT : PRINT " using three letters, and a number": PRINT PRINT " such as oct1 or NOV 27,and press enter: "; : f$ = "" moreletters: e$ = "" WHILE e$ = "": e$ = INKEY$: WEND f = ASC(RIGHT$(e$, 1)) IF f = 27 OR (LEN(e$) = 2 AND f = 75) THEN k = 6: GOTO 51 IF LEN(e$) = 2 THEN IF f > 70 THEN f = 13 ELSE e$ = "" IF f <> 13 THEN f$ = f$ + e$: PRINT e$; : GOTO moreletters: IF f$ = "" THEN f$ = "OCT 1" e$ = RIGHT$(f$, 2) IF LEFT$(e$, 1) = " " OR VAL(e$) = 0 THEN e$ = RIGHT$(f$, 1) f$ = UCASE$(LEFT$(f$, 3)) + " " + e$ graph: CLS : x = 1: pt$ = "" FOR d = 310 TO 90 STEP -20: pr$(x) = RIGHT$(STR$(d), 3) + SPACE$(73) + RIGHT$(STR$((d / 2) - 25), 3) PRINT pr$(x): x = x + 1 IF d > 90 THEN IF d = 150 THEN e$ = "HIGH" ELSE e$ = "--- " IF d = 190 THEN e$ = "MAX " IF d = 110 THEN e$ = "LOW " pr$(x) = e$ + SPACE$(72) + "---": PRINT pr$(x): x = x + 1 END IF NEXT pr$(24) = " " FOR d = -5 TO 12: pr$(24) = pr$(24) + " |": NEXT LOCATE 24, 1: PRINT pr$(24); IF ov <> -40 THEN pr$(25) = " " FOR d = -5 TO 12 IF d < 0 THEN a = ABS(11 + 1 + d): b$ = "a" ELSE a = d: b$ = "p" IF a = 12 THEN b$ = "a" IF a = 0 THEN a = 12 b$ = b$ + "m" pr$(25) = pr$(25) + RIGHT$(STR$(a), 2) + b$ NEXT LOCATE 25, 1: PRINT pr$(25); END IF OPEN nm$ + ex$ FOR INPUT AS #1 beginning: th = 0: q = 0: c = 1: ni = 0: sf = 1: sa = -1 IF ov = -40 THEN sa = VAL(RIGHT$(f$, 2)) - 5: IF sa < 1 THEN sa = 1 WHILE NOT EOF(1) INPUT #1, a$ IF RIGHT$(a$, 1) = " " THEN a$ = LEFT$(a$, LEN(a$) - 1) IF ov = -40 THEN LOCATE 1, 69: PRINT f$; IF LCASE$(LEFT$(a$, 6)) = "weight" THEN p$ = RIGHT$(a$, 4) IF EOF(1) AND ov = -40 THEN GOTO ovending ELSE GOTO wender END IF a = VAL(LEFT$(a$, 2)) IF a = 0 OR LEN(a$) > 7 THEN IF a = 0 AND LEN(a$) < 7 THEN sf = sf + 1: IF f$ = "" THEN f$ = a$ IF ov = -40 THEN a = -375: z = VAL(RIGHT$(a$, 2)) ELSE IF th = 1 THEN th = 0: GOTO quitfile ELSE IF a$ = f$ THEN th = 1: sa = 1 END IF END IF GOTO wender END IF IF ov <> -40 THEN IF th = 0 THEN GOTO wender IF LEN(a$) > 58 THEN a$ = LEFT$(a$, 50) + RIGHT$(a$, 8) l$(c) = RIGHT$(STR$(z), 2) + "(" + RIGHT$(STR$(c), 1) + ")" + a$ c = c + 1 ELSE IF sa + 1 > sf THEN GOTO wender END IF b$ = RIGHT$(a$, 8): b$ = LEFT$(b$, 4): q = q + VAL(b$) ELSE IF EOF(1) THEN ovending: IF ov = -40 THEN a = -375: GOTO wender ELSE GOTO quitfile END IF IF ov = -40 THEN IF sa + 1 > sf THEN GOTO wender ELSE IF th = 0 THEN GOTO wender END IF INPUT #1, y IF y > 310 THEN y = 310 IF y < 96 THEN IF y = 1 THEN y = 23: IF ov = -40 THEN e$ = "X" ELSE e$ = "EXER" ELSE IF y < 20 THEN y = 20 y = ABS((y / 5) - 27) IF ov = -40 THEN e$ = "C" ELSE e$ = "(" + RIGHT$(STR$(c), 1) + "C)" END IF ELSE y = ABS((y / 10) - 32): e$ = "B" END IF y = CINT(y) b$ = RIGHT$(a$, 2): a$ = LEFT$(a$, LEN(a$) - LEN(b$)) a = VAL(RIGHT$(a$, 2)): a$ = LEFT$(a$, LEN(a$) - 3) IF VAL(a$) <> 12 AND b$ = "pm" THEN x = 26 ELSE x = -22 x = x + (VAL(a$) * 4): IF x < 6 THEN x = 6: a = 0 IF ov = -40 THEN x = CINT((x - 6) / 18) + 2 + ni ELSE x = x + CINT(a / 15) IF e$ <> "B" THEN IF MID$(pr$(y), x - 1, 3) <> " " THEN e$ = LEFT$(e$, 2) + "B)" x = x - 1 END IF END IF COLOR 0, 14 LOCATE y, x: PRINT e$; : MID$(pr$(y), x, 4) = e$: COLOR 14, 0 IF ov <> -40 THEN IF e$ <> "B" THEN z = x - 2: IF x > 54 THEN z = 54 ELSE pt$ = pt$ + RIGHT$(STR$(y), 2) + RIGHT$(STR$(x), 2) END IF END IF END IF IF EOF(1) THEN IF ov = -40 THEN a = -375 ELSE GOTO quitfile END IF wender: IF sa < sf AND a = -375 THEN IF NOT EOF(1) THEN LOCATE 25, 3 + ni: PRINT USING "####"; z; IF q > 0 THEN IF INT(ni / 8) = ni / 8 THEN y = 4 ELSE y = 3 LOCATE y, 2 + ni: PRINT USING "####"; q; : q = 0 END IF 'jk$ = INPUT$(1) ni = ni + 4: IF ni > 78 THEN GOTO quitfile END IF WEND quitfile: CLOSE : d = 1 IF sa < 0 THEN LOCATE 10, 20: PRINT "Record for "; f$; " not found"; : sa = 0 END IF FOR sa = 1 TO 12 a$ = MID$(dt$, sa * 3 - 2, 3): IF LEFT$(f$, 3) = a$ THEN 107 NEXT GOTO 51 words: IF z = 867 THEN RETURN holding FOR e = 1 TO c - 1 a$ = MID$(l$(e), 3, 60): z = VAL(LEFT$(l$(e), 2)) a = 20: q = z 105 IF a > 1 THEN FOR d = a TO a + 2 IF MID$(pr$(d), z, 22) <> SPACE$(22) THEN a = a - 1: GOTO 105 NEXT END IF IF a = 1 AND z > 3 AND z < q THEN z = z - 1: a = 20: GOTO 105 IF z < q THEN z = q IF a = 1 AND z < 54 THEN z = z + 1: a = 20: GOTO 105 LOCATE a, z FOR d = 1 TO LEN(a$): b$ = MID$(a$, d, 1): PRINT b$; MID$(pr$(CSRLIN), POS(0) - 1, 1) = b$ IF POS(0) > 78 THEN LOCATE CSRLIN + 1, z ELSE IF ((POS(0) > z + 18 OR POS(0) > 74) AND (b$ = " " OR b$ = ",")) THEN LOCATE CSRLIN + 1, z END IF END IF NEXT NEXT z = 867 RETURN holding d = 1 107 IF d < 5 THEN FOR z = 6 TO 46 IF MID$(pr$(d), z, 33) = SPACE$(33) THEN GOTO okay NEXT d = d + 1: GOTO 107 END IF z = 3: d = 1 okay: z = z + 3 e$ = " " + f$ IF ov <> -40 THEN IF q > 0 THEN e$ = e$ + ", " + STR$(q) + " total calories" MID$(pr$(d), z, 30) = e$ LOCATE d, z: PRINT e$; ELSE d = d - 1 END IF e$ = " Weight at" + p$ + " pounds" MID$(pr$(d + 1), z, 30) = e$ LOCATE d + 1, z: PRINT e$; : a = 1 IF ov = -40 THEN GOTO holding y = VAL(MID$(pt$, a, 2)): x = VAL(MID$(pt$, a + 2, 2)): a = a + 4 WHILE a < LEN(pt$) w = VAL(MID$(pt$, a, 2)): z = VAL(MID$(pt$, a + 2, 2)): a = a + 4 d = (w - y) / (z - x) dots: e = CINT(y + d): x = x + 1: y = y + d IF e > 23 THEN e = 23 IF e < 1 THEN e = 1 IF MID$(pr$(e), x, 1) = " " THEN LOCATE e, x: PRINT "*"; : MID$(pr$(e), x, 1) = "*" END IF IF x + 1 < z THEN GOTO dots y = w: x = z WEND holding: e$ = "" WHILE e$ = "": e$ = INKEY$: WEND IF e$ = "p" THEN a$ = "lpt:" a = ASC(RIGHT$(e$, 1)) IF LEN(e$) = 2 THEN newgraph: e = VAL(MID$(f$, 4, 3)) IF a = 72 THEN IF ov = -40 THEN ov = 0 ELSE GOSUB words IF a = 77 THEN e = e + 1: IF e = 32 THEN e = 1: sa = sa + 1 IF a = 75 THEN e = e - 1: IF e = 0 THEN e = 31: sa = sa - 1 IF sa < 1 THEN sa = 12 IF sa > 12 THEN sa = 1 IF a = 80 THEN ov = -40 f$ = MID$(dt$, sa * 3 - 2, 3) + STR$(e) GOTO graph ELSE IF a > 30 THEN GOSUB words END IF IF e$ = "p" THEN OPEN a$ FOR APPEND AS #1 PRINT #1, PRINT #1, FOR d = 1 TO 25: LOCATE d, 1: PRINT pr$(d); : PRINT #1, pr$(d) NEXT CLOSE e$ = INPUT$(1) END IF IF a <> 27 THEN a = 0: GOTO newgraph END IF IF b = 62 THEN ov = 0 search: IF ov > 0 THEN SHELL "eb": CLOSE : OPEN "gg" FOR APPEND AS #1 CLS : c = 1: e = 0: d = 1 PRINT : PRINT " These are the nutrients in the data:" PRINT FOR d = 8 TO 22 PRINT "["; d - 7; "] "; v$(d - 6) NEXT PRINT PRINT "Choose a number for a search, or any other key to exit: "; IF ov > 0 THEN ov = ov + 1: IF ov = 14 THEN ov = 0: GOTO search END IF x = x + 1: e = -76: ELSE e$ = INPUT$(1): IF VAL(e$) = 1 THEN b$ = INPUT$(1) ELSE b$ = "" e$ = e$ + b$: x = VAL(e$) + 7: CLS : CLOSE IF x = 21 THEN ov = 12: x = 19: h = 1: e = -76 OPEN "gg" FOR APPEND AS #1 END IF CLS IF x > 7 THEN a$ = SPACE$(lm - 1) FOR tm = 1 TO lm - 1: q = 1 FOR a = 1 TO lm - 1 c = 100 / (1 + n(tm, 7)): d = 100 / (n(a, 7) + 1) IF x = 22 THEN c = 1: d = 1 IF n(a, x) * d > n(tm, x) * c THEN q = q + 1 b$ = INKEY$ IF b$ <> "" THEN GOTO search NEXT space: IF q > LEN(a$) THEN q = 1 b$ = MID$(a$, q, 1): IF b$ <> " " THEN q = q + 1: GOTO space MID$(a$, q, 1) = CHR$(tm + 32) LOCATE 10, 10: PRINT f$(tm); " score: "; q; " " PRINT " "; tm; " of"; lm - 1; " items "; NEXT printsearch: GOSUB letter errorinsearch: e = 0: LOCATE 25, 1 IF ov > 1 THEN ov = ov + 1 IF ov = 14 THEN ov = 0 END IF PRINT "Press enter for another search, `p' to print, "; PRINT "a number to stay, or Esc to exit."; : IF ov > 0 THEN e$ = "" ELSE e$ = INPUT$(1) IF e$ = "" THEN GOTO search IF VAL(e$) = 1 THEN IF h = 1 THEN h = 0 ELSE h = 1 IF VAL(e$) > 0 THEN GOTO printsearch IF e$ = "p" THEN e = -76: GOTO printsearch 'GOTO search END IF END IF IF b = 61 THEN numbers: CLS : LOCATE 10, 10: PRINT "Rewriting the data file" s = 0: CLOSE : OPEN "numbers.new" FOR OUTPUT AS #1 a$ = SPACE$(lm - 1): PRINT : PRINT " Line:" d = ASC(MID$(cod$, lm - 1, 1)) - 32 IF f$(d) <> "yogurt" THEN FOR tm = 1 TO lm - 1: q = 1 FOR a = 1 TO lm - 1 IF f$(a) < f$(tm) THEN q = q + 1 NEXT MID$(a$, q, 1) = CHR$(tm + 32) NEXT cod$ = a$ END IF PRINT #1, cod$ PRINT #1, nm$; ", "; ex$ FOR tm = 1 TO lm - 1 PRINT #1, LCASE$(f$(tm)); " ,"; : LOCATE 12, 18: PRINT tm; " "; IF LEN(f$(tm)) > 10 THEN a = 9 ELSE a = 10 IF n(tm, 21) = 0 THEN IF n(tm, 1) = 1 THEN d = n(tm, 3) IF n(tm, 1) = 2 OR n(tm, 1) = 4 OR n(tm, 1) = 5 THEN d = n(tm, 4) IF n(tm, 1) = 3 THEN d = n(tm, 5) IF n(tm, 1) = 6 THEN d = n(tm, 6) IF d > 20 THEN d = CINT(d) * 10 + 6 ELSE d = CINT(d * 100) * 10 n(tm, 21) = d + n(tm, 1) END IF FOR d = 1 TO 21: IF CINT(n(tm, d)) <> n(tm, d) THEN PRINT #1, USING "###.##"; n(tm, d); ELSE PRINT #1, ; n(tm, d); END IF IF d = a THEN PRINT #1, ELSE PRINT #1, ","; NEXT PRINT #1, n(tm, 22) NEXT CLOSE : KILL "numbers.adr" NAME "numbers.new" AS "numbers.adr" GOTO 51: 'b = 59 END IF IF b = 59 THEN a$ = "": k = 1 rewrite: IF my$ <> "Guf 13" AND m$(1) = "" THEN k = -1: GOTO getlist CLS : w = 1: dy$ = my$ IF LEN(a$) > 3 THEN IF MID$(a$, 4, 1) = "m" THEN m$(a) = a$ 110 PRINT my$; " Meal description and editor"; : z$ = SPACE$(20): s = 1 b$ = LEFT$(TIME$, 5): e = VAL(LEFT$(b$, 2)) IF e > 12 THEN b$ = STR$(e - 12) + RIGHT$(b$, 3) + "pm" PRINT z$; b$ a = 1: s = 20: x = 0 menu: IF s = a THEN IF min = 1 THEN LOCATE 23, 1: PRINT "Minimums: 5000 units Vit. A, 60 mg Vitamin C, "; PRINT "150 microgms iodine"; : LOCATE 24, 1 PRINT " 600-1000 mg calcium, 1100-2800 mg sodium, 2 mg vit. B-6, "; PRINT "6 microgms B-12"; : LOCATE 25, 1: PRINT " "; ELSE LOCATE 25, 1: PRINT "Minimums: "; END IF PRINT "18 mg iron, 1.5 mg thiamine, 20 mg niacin"; PRINT ", 20 mg vitamin E"; : LOCATE 1, 1 ELSE PRINT : IF k = 0 THEN COLOR 0, 14 PRINT "More"; : COLOR 14, 0: PRINT " lists or to save changes"; END IF FOR e = a TO s: q = 4 IF s = a THEN d = a ELSE d = e IF LEN(m$(d - 1)) > 7 AND m$(d) = "" AND d < 21 THEN m$(d) = " 0am þþ": ' jk$ = INPUT$(1) END IF IF m$(d) <> "" THEN IF s = a THEN x = a ELSE x = e t = (LEN(m$(d)) - 7) / 2: tm = 0: y = 0: pr = 0: ca = 0: sa = 0: cm = 0 vc = 0: ni = 0: th = 0: fi = 0: va = 0: ir = 0: po = 0: sf = 0: uf = 0 we = 0: PRINT : b = 0: IF s = a AND w = 0 THEN COLOR 0, 14 IF s <> a AND k = d THEN COLOR 0, 14 115 PRINT "["; d; "]"; : IF s <> a THEN COLOR 14, 0 PRINT " "; LEFT$(m$(d), 4); : sk = 0 IF prt = 1 THEN LPRINT "["; d; "] "; LEFT$(m$(d), 4); continue: q = q + 2: b$ = MID$(m$(d), q, 2) IF b$ = "" THEN b$ = "þþ" IF s = a AND w = q - 4 THEN COLOR 0, 14 ELSE COLOR 14, 0 END IF IF t * 2 + 7 > q THEN IF b$ = "þþ" THEN IF s = a THEN p$ = " .... " ELSE p$ = STR$(CINT(tm)) + " calories": sk = 2 END IF ELSE 120 f = ASC(LEFT$(b$, 1)) - 32: b = ASC(RIGHT$(b$, 1)) IF b > 58 THEN b = b - 58 e$ = STR$(n(f, 21)): j = VAL(RIGHT$(e$, 1)) v = VAL(LEFT$(e$, LEN(e$) - 1)) IF j < 7 THEN v = v / 100 ELSE j = j - 6 'PRINT ">"; e$; "<"; j; IF j = 2 THEN d$ = "" ELSE d$ = it$(j) e$ = STR$(b): n = VAL(RIGHT$(e$, 1)): j = n / 4 IF n = 2 THEN d$ = "2 " + d$: n = 1 ELSE d$ = "4 " + d$ e$ = LEFT$(e$, LEN(e$) - 1) IF (VAL(e$) <> 1 OR n <> 0) AND LEN(d$) > 2 THEN d$ = d$ + "s" d$ = STR$(n) + "/" + d$: IF n = 0 THEN d$ = "" v = (j + VAL(e$)) * v: j = 0 e$ = e$ + d$ ELSE b = b - 48 e$ = po$(n(f, 1), b): v = n(f, b + 1) END IF 'GGGGGGGGGGGGGGGG 'GOTO meal: p$ = e$ + " " + f$(f) IF s <> a OR w = q - 4 OR w = 0 THEN in = n(f, 22) we = we + v pr = pr + (n(f, 8) * v / 4) tm = tm + (n(f, 7) * v / 4) ca = ca + (n(f, 10) * v / 4) cm = cm + (n(f, 12) * v / 4) y = y + (n(f, 9) * v / 4) va = va + (n(f, 16) * v / 4) vc = vc + (n(f, 17) * v / 4) sa = sa + (n(f, 14) * v / 4) ir = ir + (n(f, 13) * v / 4) th = th + (n(f, 18) * v / 4) ni = ni + (n(f, 19) * v / 4) fi = fi + (n(f, 11) * v / 4) po = po + (n(f, 15) * v / 4) sf = sf + (n(f, 20) * v / 4) uf = uf + (n(f, 21) * v / 4) END IF END IF IF 80 - POS(0) < LEN(p$) + 15 AND s <> a AND sk < 1 THEN sk = 1 IF POS(0) + LEN(p$) > 78 THEN IF sk = 0 THEN PRINT : PRINT " "; IF prt = 1 THEN LPRINT : PRINT " "; ELSE IF sk <> 1 THEN PRINT ; ", "; IF prt = 1 THEN LPRINT ; ", "; END IF IF sk <> 1 THEN IF sk = 2 THEN COLOR 0, 14 PRINT p$; : COLOR 14, 0 END IF IF prt = 1 THEN LPRINT p$; GOTO continue END IF END IF NEXT st = 0 IF s = a THEN RETURN a = CSRLIN: IF a < 24 THEN a = a + 2 ELSE a = 25 LOCATE a, 1 PRINT "To select use enter or input a number; or press a letter "; PRINT "for the food list: "; choose: : e$ = "": a = 0 WHILE e$ = "": e$ = INKEY$: WEND f = ASC(LEFT$(e$, 1)): b = ASC(RIGHT$(e$, 1)) IF f = 27 THEN 50 IF f = 13 THEN b = 77: e$ = " " IF f > 48 AND f < 58 THEN IF x > 8 AND VAL(e$) = 1 THEN PRINT e$; : b$ = INPUT$(1) ELSE b$ = "" a = VAL(e$ + b$) ELSE IF LEN(e$) = 2 THEN IF b = 83 THEN IF k > 1 AND k < 20 THEN IF LEN(m$(k - 1)) > 8 OR m$(k + 1) <> "" THEN m$(k) = " 0am þþ" ELSE m$(k) = "" END IF k = k - 1: GOTO rewrite END IF END IF a = 0 IF b = 75 THEN 50 IF b = 77 THEN IF k = 0 THEN CLS : PRINT "Reading the menus."; ex$; " file": p$ = "" getlist: 'SHELL "eb menus.adr/e" OPEN "menus." + ex$ FOR INPUT AS #1: e = 1: q = 1: w = 1: z = 0 OPEN "!oit" FOR OUTPUT AS #2: ERASE l$ WHILE NOT EOF(1) LINE INPUT #1, a$ IF VAL(LEFT$(a$, 2)) = 0 AND LEN(a$) < 7 THEN b$ = LEFT$(a$, 3) + STR$(VAL(MID$(a$, 5, 2))) IF p$ <> "" THEN x = VAL(RIGHT$(b$, 2)): y = VAL(RIGHT$(p$, 2)) IF LEFT$(a$, 3) = LEFT$(p$, 3) AND x > y THEN PRINT #2, p$: z = e END IF PRINT #2, b$ ELSE IF k > 0 THEN a$ = b$ IF k = e THEN my$ = a$: MID$(a$, 4, 1) = "*" PRINT #2, a$ END IF IF k < 1 THEN l$(e) = a$: IF MID$(a$, 4, 1) = "*" THEN q = 0: z = e ELSE q = 1 IF k < 0 AND z > 0 THEN k = z IF q = 0 AND k = 0 AND p$ = "" THEN nofile: FOR d = 1 TO 20 IF m$(d) <> "" THEN PRINT #2, m$(d) NEXT IF z = 0 THEN RETURN END IF END IF e = e + 1 ELSE IF q = 1 OR k > 0 THEN PRINT #2, a$ IF k = e - 1 THEN m$(w) = a$: w = w + 1 END IF END IF WEND IF (k = 0 OR p$ <> "") AND z = 0 THEN IF my$ = "" THEN my$ = "Guf 13" p$ = my$: MID$(p$, 4, 1) = "*": PRINT #2, p$: GOSUB nofile: p$ = "" END IF CLOSE : a$ = "": 'SHELL "eb !oit" KILL "menus." + ex$: NAME "!oit" AS "menus." + ex$ IF k > 0 AND my$ = "" THEN my$ = l$(k): MID$(my$, 4, 1) = " " dy$ = my$ IF k > 0 OR p$ <> "" THEN k = 1: GOTO rewrite k = z: ERASE m$ menulist: CLS : PRINT "Dates in the file:": PRINT LOCATE 3, 5: PRINT "date"; d = 0 WHILE d < e LOCATE d + 3, 1 IF k = d THEN COLOR 0, 14 IF d > 0 THEN PRINT "["; STR$(d); " ]"; ELSE PRINT "New" IF d > 0 THEN PRINT " "; l$(d) COLOR 14, 0: d = d + 1 WEND PRINT : PRINT "Choose a date:"; : e$ = "" WHILE e$ = "": e$ = INKEY$: WEND f = ASC(RIGHT$(e$, 1)): IF f = 13 OR f = 27 THEN e$ = " " IF LEN(e$) = 2 THEN IF f = 13 OR f = 77 THEN b = k ELSE IF f = 27 OR f = 75 THEN dy$ = my$: a$ = "": k = 0: GOTO rewrite IF f = 72 THEN IF k > 0 THEN k = k - 1 ELSE k = e - 1 IF f = 80 THEN IF k < e - 1 THEN k = k + 1 ELSE k = 0 GOTO menulist END IF ELSE b = VAL(e$) END IF IF b > e - 1 OR b < 0 THEN GOTO menulist IF k = 0 THEN PRINT : PRINT : p$ = "" PRINT " Enter a month: "; ask: e$ = INPUT$(1): PRINT e$; : p$ = p$ + e$ IF LEN(p$) < 3 THEN GOTO ask PRINT ", and a day: "; p$ = UCASE$(p$): e$ = INPUT$(1): PRINT e$; IF VAL(e$) < 4 THEN b$ = INPUT$(1): PRINT b$; ELSE b$ = "": d = VAL(e$ + b$): IF d > 31 THEN d = 31 FOR k = 1 TO e - 1 IF LEFT$(l$(k), 3) = p$ THEN IF VAL(MID$(l$(k), 5, 2)) = d THEN p$ = "": GOTO menulist END IF NEXT p$ = p$ + STR$(d): my$ = p$: MID$(p$, 4, 1) = "*" ERASE m$: m$(1) = " 0am þþ": k = e END IF GOTO getlist END IF a = k ELSE LOCATE k + 3, 1 IF k > 0 THEN PRINT "["; STR$(k); " ]"; ELSE PRINT "More"; END IF IF b = 80 THEN IF k < x THEN k = k + 1 ELSE k = 0 IF b = 72 THEN IF k > 0 THEN k = k - 1 ELSE k = x COLOR 0, 14: LOCATE k + 3, 1: IF k > 0 THEN PRINT "["; STR$(k); " ]"; ELSE PRINT "More"; COLOR 14, 0: GOTO choose END IF END IF END IF y = 0 IF a <> 0 THEN w = 0 IF m$(a) = "" THEN a$ = " 0am þþ": m$(a) = a$: t = 0 ELSE 125 a$ = m$(a): t = (LEN(m$(d)) - 7) / 2 END IF meal: CLS : s = a: GOSUB menu IF POS(0) > 20 THEN PRINT : IF prt = 1 THEN LPRINT IF prt = 1 THEN LPRINT PRINT IF tm > 0 THEN COLOR 0, 14 e$ = STR$(CINT(tm)) + " calories, " IF w > 0 AND w < q - 7 THEN e$ = e$ + "Index" + STR$(in) + ", " PRINT " "; e$; PRINT USING "##.#"; pr; : PRINT " grams protein, "; PRINT USING "###.#"; ca; PRINT " grams carbohydrate "; SPACE$(28 - LEN(e$)); IF ov = -39 THEN COLOR 14, 0: RETURN PRINT " "; : PRINT USING "###.#"; fi; : PRINT " grams fiber, "; PRINT USING "###.#"; y; : PRINT " grams fat, "; PRINT USING "###.#"; sf; : PRINT " grams saturated fat "; PRINT USING "######"; sa; : PRINT " milligrams sodium, "; PRINT USING "######"; cm; : PRINT " milligrams calcium, "; PRINT USING "###.#"; we; : PRINT " ounces total weight "; PRINT USING "######"; va; : PRINT " int. units vitamin A,"; PRINT USING "###"; vc; : PRINT " milligrams vitamin C,"; PRINT USING "##.##"; po; : PRINT " milligrams vitamin E "; PRINT " "; : PRINT USING "###.#"; ir; : PRINT " milligrams iron,"; PRINT USING "##.##"; th; : PRINT " milligrams thiamine,"; PRINT USING "###.##"; ni; : PRINT " milligrams niacin "; COLOR 14, 0 IF prt = 1 THEN LPRINT " "; e$; LPRINT USING "##.#"; pr; : LPRINT " grams protein, "; LPRINT USING "###.#"; ca; LPRINT " grams carbohydrate " LPRINT " "; : LPRINT USING "###.#"; fi; : LPRINT " grams fiber, "; LPRINT USING "###.#"; y; : LPRINT " grams fat, "; LPRINT USING "##.#"; sf; : LPRINT " grams saturated fat" LPRINT USING "#####"; sa; : LPRINT " milligrams sodium, "; LPRINT USING "######"; cm; : LPRINT " milligrams calcium, "; LPRINT USING "###.#"; we; : LPRINT " ounces total weight" LPRINT USING "#####"; va; : LPRINT " int. units vitamin A,"; LPRINT USING "####"; vc; : LPRINT " milligrams vitamin C,"; LPRINT USING "##.##"; po; : LPRINT " milligrams vitamin E" LPRINT " "; : LPRINT USING "###.#"; ir; : LPRINT " milligrams iron,"; LPRINT USING "##.##"; th; : LPRINT " milligrams thiamine,"; LPRINT USING "###.##"; ni; : LPRINT " milligrams niacin" LPRINT : LPRINT END IF END IF PRINT : PRINT : e$ = "" PRINT " Use the arrow keys to select, enter to chose, `r' to record," PRINT " any other key to quit: " 130 p$ = MID$(a$, w + 4, 2) q = t * 2 + 4: prt = 0 'PRINT ">"; a$; ">"; p$; ""; e$; "<"; : e$ = "" WHILE e$ = "": e$ = INKEY$: WEND y = ASC(RIGHT$(e$, 1)): x = ASC(LEFT$(e$, 1)) IF y <> 24 THEN 131 END IF IF LEN(e$) = 2 AND y = 50 THEN IF min = 0 THEN min = 1 ELSE min = 0 GOTO meal END IF IF y = 83 THEN m$(a) = LEFT$(m$(a), 3 + w) + RIGHT$(m$(a), LEN(a$) - 5 - w) t = t - 1: a$ = m$(a) END IF IF y > 32 AND (LEN(e$) = 1 OR y < 72) THEN GOTO rewrite IF y = 80 OR y = 77 THEN w = w + 2: IF w > q - 1 THEN w = 0 END IF IF y = 72 THEN w = w - 2: IF w < 0 THEN w = q - 2 END IF IF y = 27 OR y = 75 THEN k = a: GOTO rewrite IF y > 70 THEN GOTO meal ELSE y = 0 135 b$ = MID$(a$, w + 4, 2) PRINT : f = ASC(LEFT$(b$, 1)) - 32: b = VAL(RIGHT$(b$, 1)) IF w > 0 THEN GOTO letter time: PRINT "--"; LEFT$(a$, 4); "--" IF LEFT$(a$, 2) <> " " THEN PRINT "Press enter to keep this or " PRINT "type a new hour"; INPUT ": ", e$: e = LEN(e$) IF e > 0 THEN p$ = RIGHT$(e$, 2) IF e > 2 THEN tm = VAL(LEFT$(e$, e - 2)) ELSE tm = 0 IF p$ <> "pm" AND p$ <> "am" THEN PRINT "pm or am?"; : GOTO time IF e > 4 OR tm = 0 OR tm > 12 THEN PRINT "12am through 12pm to 10pm": GOTO time END IF IF LEN(a$) < 8 THEN a$ = SPACE$(5) + "þþ" MID$(a$, 1, 4) = RIGHT$(" " + e$, 4) m$(a) = a$ END IF IF t > 0 OR s = a THEN GOTO meal ELSE GOTO rewrite letter: CLS IF b = 62 THEN PRINT " "; v$(x - 6); " for 100 calories of each food." IF e = -76 THEN CLOSE : OPEN "gg" FOR APPEND AS #1 PRINT #1, " "; v$(x - 6); " for 100 calories of each food." END IF ELSE PRINT " Foods on file" END IF tm = 0: b$ = "" IF (h = 0 AND lmt < 90) OR (h = 1 AND lm < 90) THEN PRINT IF e = -76 THEN PRINT #1, END IF 140 FOR d = 1 TO lm - 1 IF b = 62 THEN y = ASC(MID$(a$, d, 1)) - 32 ELSE y = ASC(MID$(cod$, d, 1)) - 32 END IF IF h = 1 OR LEFT$(f$(y), 1) <> "!" THEN IF b = 62 THEN 'a = n(y, 9) * (100 / (1 + n(y, 7))) a = n(y, x) IF x <> 22 THEN q = 100 / (1 + n(y, 7)): 'PRINT q; IF a * q < 300 THEN 142 a = CINT(a * q * 100) / 100 ELSE 143 IF a * q > 30000 THEN a = a / 10: z = -3 ELSE z = 0 a = CINT(a * q): IF z = -3 THEN a = a * 10: z = 0 END IF END IF IF a < 10000 THEN q = 0 ELSE q = 1 e$ = LEFT$(f$(y), 14 - q) + LEFT$(STR$(a), 5 + q) IF tm < 3 THEN e$ = e$ + SPACE$(20 - LEN(e$)) END IF ELSE e$ = f$(y) IF tm < 3 THEN e$ = e$ + SPACE$(20 - LEN(e$)) END IF b$ = b$ + e$ tm = tm + 1 END IF IF tm = 4 THEN IF e = -76 THEN PRINT #1, b$ IF b = 62 OR CSRLIN < 25 OR h = 1 THEN PRINT b$; : IF e = -76 THEN IF d > 70 THEN jk$ = INPUT$(1) IF CSRLIN < 25 THEN LOCATE CSRLIN + 1, 1 ELSE PRINT ELSE PRINT END IF tm = 0 b$ = "" END IF NEXT IF tm <> 0 THEN PRINT b$; : IF e = -76 THEN PRINT #1, b$ b$ = "" IF b = 62 THEN RETURN IF b$ <> "" AND b$ <> "þþ" AND t <> 0 AND s = a THEN LOCATE 1, 40: PRINT po$(n(f, 1), b); " "; f$(f); END IF LOCATE 25, 1 PRINT " Press enter (to exit) or the first letter of a food item"; IF s <> a THEN PRINT " to edit:"; e$ = INPUT$(1): e$ = LCASE$(e$): e = ASC(e$): d = 1: tm = 0: c = 0 IF e = 0 THEN IF h = 1 THEN h = 0 ELSE h = 1 GOTO letter END IF LOCATE 25, 1: PRINT SPACE$(75); IF e = 27 THEN k = 2: GOTO 51 IF e = 13 THEN IF b = 60 THEN IF s = 1 THEN RETURN numbers ELSE RETURN rewrite END IF IF w = q - 2 THEN w = w - 2 GOTO meal END IF IF (e < 97 OR e > 122) AND e <> 33 THEN PRINT "Letter or the enter key only": GOTO letter END IF c = 0: PRINT FOR d = 1 TO lm - 1 q = ASC(MID$(cod$, d, 1)) - 32 IF LCASE$(LEFT$(f$(q), 1)) = LCASE$(e$) THEN c = c + 1 IF POS(0) + LEN(f$(q)) + 7 > 80 THEN PRINT IF POS(0) > 1 THEN PRINT ", "; PRINT "("; c; ") "; f$(q); ch(c) = q END IF NEXT food: IF c > 1 OR (b = 60 AND c > 0) THEN IF y <> -33 THEN PRINT "( 0 ) new item" PRINT "Which food number? "; IF b = 60 THEN PRINT " (zero for a new one)"; e$ = "": p$ = INPUT$(1): PRINT p$; IF c > 9 AND VAL(p$) = 1 THEN e$ = INPUT$(1): IF ASC(e$) > 47 THEN p$ = p$ + e$ END IF x = 2: s = 0 IF VAL(p$) > 0 OR p$ = "0" THEN GOTO enough repeat: IF p$ = "" THEN GOTO letter ELSE y = ASC(LCASE$(p$)) FOR d = 1 TO c IF MID$(f$(ch(d)), 2, 1) = p$ THEN IF s = 0 THEN IF x = 2 OR MID$(f$(ch(d)), 3, 1) = e$ THEN s = d: IF x = 3 THEN GOTO enough END IF ELSE IF x = 3 THEN PRINT "Too many common letters. "; : y = -33: GOTO food x = 3: s = 0 PRINT "Enter a third letter: ": e$ = INPUT$(1) GOTO repeat END IF END IF NEXT enough: IF s > 0 THEN c = s ELSE c = VAL(p$) IF (c < 0 OR c > 100) AND b = 59 THEN GOTO food IF y = 13 OR y = 0 THEN GOTO letter ELSE PRINT END IF IF b = 60 THEN RETURN ELSE IF c = 0 THEN GOSUB menuedit y = ch(c) tm = n(y, 1) portion: PRINT : IF tm < 6 THEN FOR d = 2 TO 6 IF tm < 5 OR d < 6 THEN IF tm = 5 THEN PRINT USING "#.##"; (n(y, d)); ELSE PRINT USING "##.#"; (n(y, d)); END IF PRINT " ounce"; : IF n(y, d) <> 1 THEN PRINT "s"; IF d < 6 THEN PRINT " "; IF tm = 5 THEN PRINT " "; ELSE PRINT " "; END IF END IF NEXT END IF FOR d = 1 TO 5 IF d > 1 AND POS(0) + 5 + LEN(po$(tm, d)) < 80 THEN PRINT ", "; IF tm = 2 THEN PRINT " "; ELSE PRINT END IF e$ = po$(tm, d) COLOR 0, 14 PRINT "("; d; ")"; COLOR 14, 0 PRINT " "; e$; NEXT IF tm = 4 OR tm = 5 THEN PRINT " ("; : PRINT USING "##.##"; (n(y, d)); PRINT " ounce"; : IF n(y, d) <> 1 THEN PRINT "s )"; ELSE PRINT " )"; END IF PRINT IF s = -2 THEN RETURN PRINT : p$ = "": k = 1: ERASE l$ PRINT "For "; f$(ch(c)); " which portion or how many "; PRINT it$(n(ch(c), 1)); "s?" declaring: LOCATE CSRLIN, 1 PRINT "portion #"; IF k = 1 THEN COLOR 0, 14 PRINT RIGHT$("___" + l$(1), 3); COLOR 14, 0: PRINT " or "; IF k = 2 THEN COLOR 0, 14 PRINT RIGHT$("___" + l$(2), 3); " "; IF k <> 3 THEN COLOR 14, 0 ELSE COLOR 0, 14 PRINT RIGHT$("_" + l$(3), 1); " / 4"; COLOR 14, 0: e$ = "": PRINT " "; it$(n(ch(c), 1)); "s"; WHILE e$ = "": e$ = INKEY$: WEND PRINT p$; "-"; e$; "|"; f = ASC(RIGHT$(e$, 1)) IF f = 27 THEN GOTO meal IF f = 13 AND k = 2 THEN k = 3: GOTO declaring IF LEN(e$) = 2 THEN IF f = 80 OR f = 77 THEN IF k < 3 THEN k = k + 1 ELSE GOTO taken IF f = 72 OR f = 75 THEN IF k = 1 THEN k = 3 ELSE k = k - 1 GOTO declaring ELSE IF k = 2 THEN IF VAL(p$ + e$) > 19 THEN e$ = "" p$ = p$ + e$: l$(2) = p$: GOTO declaring END IF END IF taken: IF k > 1 THEN p$ = CHR$((VAL(p$) * 10) + VAL(e$) + 58) PRINT ">"; p$; "<"; END IF IF p$ = "" THEN p$ = e$ IF ASC(p$) = 13 THEN GOTO meal MID$(a$, w + 4, 2) = CHR$(ch(c) + 32) + p$ IF RIGHT$(a$, 2) <> "þþ" THEN a$ = a$ + "þþ": t = t + 1 m$(a) = a$: GOTO meal END IF LOCATE CSRLIN - 1, 1: b = 60 END IF IF b = 60 THEN edit: PRINT : GOSUB letter menuedit: c = ch(c) IF f$(lm - 1) = "" THEN lm = lm - 1 IF c = 0 THEN c = lm: f$(c) = "new food": lm = lm + 1: lmt = lmt + 1 PRINT : PRINT f$(c); IF c < lm + 1 THEN PRINT ", press enter to accept or retype"; LINE INPUT ": ", e$ IF e$ <> "" THEN IF LEFT$(e$, 1) = "!" AND LEFT$(f$(c), 1) <> "!" THEN lmt = lmt - 1 IF LEFT$(e$, 1) <> "!" AND LEFT$(f$(c), 1) = "!" THEN lmt = lmt + 1 f$(c) = e$: cod$ = cod$ + CHR$(c + 32) ELSE e$ = CHR$(13): IF f$(c) = "new food" THEN lm = lm - 1: GOTO edit END IF IF n(c, 1) <> 0 THEN s = -2: tm = n(c, 1): y = c: GOSUB portion: s = 1: PRINT PRINT "Press enter to keep the portion choice or press anything "; PRINT "else to change it: "; : e$ = INPUT$(1) END IF IF e$ <> CHR$(13) OR n(c, 1) = 0 THEN PRINT : PRINT FOR d = 1 TO 6 PRINT "["; d; "] "; FOR y = 1 TO 5 PRINT po$(d, y); IF y < 5 THEN PRINT " - "; ELSE PRINT NEXT NEXT PRINT PRINT "Enter a portion code between 1 and 6: "; : e$ = INPUT$(1) y = VAL(e$): IF y > 0 AND y < 7 THEN n(c, 1) = y ELSE GOTO menuedit IF y <> 6 THEN PRINT e$: PRINT PRINT "Enter the weight of "; po$(n(c, 1), 3); " "; f$(c); " in ounces"; PRINT ", presently"; n(c, 4); INPUT ": ", e$: x = VAL(e$): IF x = 0 THEN GOTO menuedit IF y = 3 THEN f = CINT(x / .6) / 10 ELSE f = CINT(2.7 * x) / 10 IF y = 3 THEN q = x + f + f ELSE q = CINT(15 * x) / 10 IF y = 5 THEN q = 2 * x: f = CINT(x / .03) / 100: tm = 4 * x: s = x - f ELSE tm = 2 * x IF y = 1 THEN s = CINT(7.5 * x) / 10 ELSE IF y = 3 THEN s = x - f - f ELSE s = CINT(5 * x) / 10 END IF END IF ELSE IF y = 6 THEN tm = 8: q = 6: x = 4: s = 2: f = 1 END IF n(c, 2) = tm: n(c, 3) = q: n(c, 4) = x: n(c, 5) = s: n(c, 6) = f tm = 0: q = 0: x = 0: f = 0 END IF PRINT FOR d = 2 TO 6: e$ = "(" + STR$(n(c, d)) + ")" + po$(n(c, 1), d - 1) IF 79 - POS(0) < LEN(e$) THEN PRINT ELSE IF d > 2 THEN PRINT ", "; PRINT e$; NEXT PRINT : PRINT PRINT "Key in the new numbers. Enter a comma to go to the next one, "; PRINT "any letter to exit.": PRINT : PRINT "All values are for 100 grams." s = 1 FOR d = 7 TO 21: values: IF d <> 21 THEN q = n(c, d) * .881 ELSE q = n(c, 21) IF (d > 7 AND d < 12) OR d = 13 OR d = 20 THEN PRINT USING "###.#"; q; ELSE IF d = 18 OR d = 19 OR d = 15 THEN PRINT USING "##.##"; q; : ELSE IF d = 7 THEN PRINT USING "####"; q; ELSE PRINT USING "#####"; q; END IF END IF IF tm = 988 THEN RETURN NEXT: PRINT USING "#####"; n(c, 22) FOR d = 7 TO 22 back: y = POS(0) LOCATE CSRLIN - 2, 1: IF d <> 21 THEN PRINT " "; v$(d - 6); SPACE$(73 - LEN(v$(d - 6))); ELSE PRINT "1 bowl, 2 item, 3 cup, 4 slice, 5 tablespoon, 6 ounce, 7 item w/o ."; END IF LOCATE CSRLIN + 2, y tm = 988: IF d <> 22 THEN GOSUB values ELSE PRINT USING "#####"; n(c, 22); tm = 0: p$ = "" more: e$ = "" WHILE e$ = "": e$ = INKEY$: WEND y = ASC(LEFT$(e$, 1)) IF y > 45 AND y < 58 THEN p$ = p$ + e$ IF POS(0) > 4 AND LEN(p$) = 1 THEN LOCATE CSRLIN, POS(0) - 4: PRINT " "; ELSE LOCATE CSRLIN, POS(0) - LEN(p$) END IF PRINT p$; : GOTO more ELSE IF p$ <> "" THEN q = VAL(p$) IF (d > 7 AND d < 12) OR d = 13 OR d = 20 THEN q = (CINT(q * 11.35)) / 10 ELSE IF d <> 22 AND d <> 21 THEN IF d = 15 OR d = 18 OR d = 19 THEN q = (CINT(q * 113.5)) / 100 ELSE IF q > 25000 THEN q = 25000 q = CINT(q * 1.135) END IF END IF END IF n(c, d) = q END IF IF y > 57 THEN GOTO show IF p$ <> "" AND y = 9 THEN LOCATE CSRLIN, POS(0) - LEN(p$): p$ = LEFT$(p$, LEN(p$) - 1) PRINT " "; p$ END IF y = ASC(RIGHT$(e$, 1)) IF (y = 75 OR y = 72) THEN d = d - 1: p$ = "" IF POS(0) < 9 THEN x = 4 ELSE IF POS(0) > 10 THEN x = 10 ELSE x = 9 LOCATE CSRLIN, POS(0) - x IF x > 5 THEN PRINT SPACE$(x); : LOCATE CSRLIN, POS(0) - x: GOTO back END IF END IF NEXT show: PRINT : PRINT : PRINT f$(c); ", "; FOR d = 1 TO 21: IF n(c, d) < 25 THEN PRINT USING "##.##"; n(c, d); ELSE PRINT n(c, d); IF POS(0) > 72 THEN PRINT ELSE PRINT ","; NEXT PRINT n(c, 22): d = -45 IF b = 59 THEN RETURN ELSE GOTO edit END IF IF b = 68 THEN LOCATE 10, 10: PRINT "Reloading the data": GOSUB 20 END IF END IF IF b <> 27 AND f <> 27 THEN 51 SYSTEM 300 SELECT CASE ERR CASE 25 PRINT " Turn the printer on "; : e$ = INPUT$(1): RESUME CASE 53 RESUME NEXT CASE ELSE RESTORE 400 WHILE ar <> 76 READ ar, e$: IF ERR = ar THEN 340 WEND e$ = "an error": ar = ERR 340 LOCATE 25, 1: PRINT SPACE$(80); : LOCATE 25, 1 PRINT "#"; ar; ", "; e$; " after line"; ERL; e$ = INPUT$(1) IF ERL = 140 THEN RESUME errorinsearch END IF 'PRINT " "; : RESUME: ' NEXT 'CLOSE RESUME 51 END SELECT 400 DATA 1 , "next w/o for", 2 , "syntax error" DATA 3 , "return without gosub", 4 , "out of data" DATA 5 , "illegal function call", 6 , "overflow (total too large)" DATA 7 , "out of memory", 8 , "label not defined" DATA 9 , "subscript out of range", 11 , "division by zero" DATA 13 , "type mismatch", 14 , "out of string space" DATA 16 , "string formula too complex", 17 , "cannot continue" DATA 18 , "function not defined", 19 , "no resume statement" DATA 20 , "resume w/o error", 24 , "device timeout", 25 , "device fault" DATA 26 , "for w/o next", 29 , "while w/o wend", 30 , "wend w/o while" DATA 33 , "duplicate label", 38 , "array not defined" DATA 51 , "internal error", 52 , "bad file number" DATA 53 , "file not found", 54 , "bad file mode" DATA 55 , "file already open", 57 , "device I/O error" DATA 58 , "file already exists", 61 , "disk full" DATA 62 , "input past end of file", 64 , "bad file name" DATA 67 , "too many files", 68 , "device unavailable" DATA 69 , "comm buffer overflow", 70 , "permission denied" DATA 71 , "disk not ready", 72 , "disk media error" DATA 73 , "feature unavailable", 74 , "rename across disks" DATA 75 , "path/file access error", 76 , "path not found" END