home *** CD-ROM | disk | FTP | other *** search
/ Colossal Cookbook / ColossalCookbook.cdr / misc / gourmet1.zip / GOURMET.HI next >
Text File  |  1984-01-03  |  40KB  |  2,144 lines

  1. *Release 1.10
  2. SET TALK OFF
  3. SET COLO OFF
  4. SET BELL OFF
  5. SET CONF ON
  6. SET EJEC OFF
  7. STOR ' ' TO PR
  8. STOR 'Invalid Input' TO INV
  9. STOR 'Press enter to continue ' TO PRC
  10. IF .NOT.FILE("OPTION.MEM")
  11. STOR 0 TO Z
  12. STOR 80 TO NUMCOL
  13. DO WHILE Z=0
  14. ERAS
  15. @ 11,0 SAY 'Enter the number of columns ' GET NUMCOL
  16. @ 12,6 SAY 'on your terminal'
  17. @ 13,4 SAY '(between 40 and 132)'
  18. READ
  19. IF NUMCOL<40.OR.NUMCOL>132
  20. ERAS
  21. @ 12,0 SAY INV
  22. @ 13,0 SAY PRC GET PR
  23. READ
  24. STOR ' ' TO PR
  25. LOOP
  26. ELSE
  27. STOR 1 TO Z
  28. ENDI
  29. ENDD
  30. STOR (NUMCOL-52)/2 TO A
  31. STOR 'GOURMET.PRG GOURMET.CMD GOURMET.DBF TYPE.NDX    NUMBER.NDX  SHOP.DBF    ITEM.DBF    ITEM.NDX    ' TO FILES
  32. STOR 'ABCDEFGHIJKLMNOP' TO AL
  33. STOR 'GOURMET.PRG'  TO GOURMET
  34. STOR 'GOURMET.CMD'  TO FGOURMET
  35. STOR 'GOURMET.DBF'  TO DGOURMET
  36. STOR 'TYPE.NDX'     TO TINDEX
  37. STOR 'NUMBER.NDX'   TO RINDEX
  38. STOR 'SHOP.DBF'     TO FSHOP
  39. STOR 'ITEM.DBF'     TO FITEM
  40. STOR 'ITEM.NDX'     TO NITEM
  41. STOR 0 TO Z
  42. STOR 2 TO ND
  43. DO WHILE Z=0
  44. ERAS
  45. @  6,A+6 SAY 'How many disk drives do you have? ' GET ND
  46. @  7,A+6 SAY '       (between 1 and 16)'
  47. @  8,A+6 SAY 'You can specify a number less than'
  48. @  9,A+6 SAY 'the actual number, if  you want to'
  49. @ 10,A+6 SAY 'search only one or two disk drives'
  50. @ 12,A+6 SAY 'Be careful not to specify  too big'
  51. @ 13,A+6 SAY 'a number, because it may  cause an'
  52. @ 14,A+6 SAY "error that the  program can't trap"
  53. READ
  54. IF ND<1.OR.ND>16
  55. ERAS
  56. @ 12,A+19 SAY INV
  57. @ 13,A+14 SAY PRC GET PR
  58. READ
  59. STOR ' ' TO PR
  60. LOOP
  61. ELSE
  62. STOR 1 TO Z
  63. ENDI
  64. ENDD
  65. STOR  0  TO Z
  66. STOR 'N' TO ANS
  67. DO WHILE Z=0
  68. ERAS
  69. @ 12,A+6 SAY 'Do you want to change any files names? ' GET ANS
  70. @ 13,A+6 SAY '               (Y or N)'
  71. READ
  72. IF !(ANS)<>'Y'.AND.!(ANS)<>'N'
  73. ERAS
  74. @ 12,A+19 SAY INV
  75. @ 13,A+14 SAY PRC GET PR
  76. READ
  77. STOR ' ' TO PR
  78. LOOP
  79. ELSE
  80. STOR 1 TO Z
  81. ENDI
  82. ENDD
  83. IF !(ANS)='Y'
  84. ERAS
  85. @  6,A+7  SAY 'Change any file names or press enter'
  86. @  7,A+7  SAY '  for any that will remain the same.'
  87. @  9,A+18 GET GOURMET
  88. @ 10,A+18 GET DGOURMET
  89. @ 11,A+18 GET TINDEX
  90. @ 12,A+18 GET RINDEX
  91. @ 13,A+18 GET FSHOP
  92. @ 14,A+18 GET FITEM
  93. @ 15,A+18 GET NITEM
  94. READ
  95. ENDI
  96. STOR ' :'+GOURMET  TO GOURMET
  97. STOR ' :'+FGOURMET TO FGOURMET
  98. STOR ' :'+DGOURMET TO DGOURMET
  99. STOR ' :'+TINDEX   TO TINDEX  
  100. STOR ' :'+RINDEX   TO RINDEX
  101. STOR ' :'+FSHOP    TO FSHOP
  102. STOR ' :'+FITEM    TO FITEM
  103. STOR ' :'+NITEM    TO NITEM
  104. STOR 0 TO Z
  105. STOR ' ' TO ST
  106. DO WHILE Z=0
  107. ERAS
  108. @  3,A+8  SAY 'Now your disks will be searched for'
  109. @  4,A+8  SAY 'the location of all files, normally'
  110. @  5,A+8  SAY 'in  ascending order for all drives.'
  111. @  6,A+8  SAY "If you don't want all of your disks"
  112. @  7,A+8  SAY "searched, or if you  don't  want to"
  113. @  8,A+8  SAY 'put a disk in each disk drive, then'
  114. @  9,A+8  SAY 'enter the  letter of the disk drive'
  115. @ 10,A+8  SAY 'to start with, or  press  enter to'
  116. @ 11,A+8  SAY 'search them all.'
  117. @ 13,A+26 GET ST
  118. READ
  119. STOR !(ST) TO ST
  120. IF (ST<'A'.OR.ST>'P').AND.ST<>' '
  121. ERAS
  122. @ 12,A+19 SAY INV
  123. @ 13,A+14 SAY PRC GET PR
  124. READ
  125. STOR ' ' TO PR
  126. LOOP
  127. ELSE
  128. STOR 1 TO Z
  129. ENDI
  130. ENDD
  131. ERAS
  132. @ 12,A+16 SAY 'One Moment Please...'
  133. STOR 1 TO NF
  134. DO WHILE NF<=8
  135. STOR 1 TO DCHK
  136. STOR TRIM($(FILES,((NF-1)*12)+1,12)) TO FCHK
  137. IF ST<>' '
  138. STOR 1 TO J
  139. DO WHILE J<=ND
  140. IF ST=$(AL,J,1)
  141. STOR J  TO DCHK
  142. STOR ND+1 TO J
  143. LOOP
  144. ELSE
  145. STOR J+1 TO J
  146. ENDI
  147. ENDD
  148. ENDI
  149. DO WHILE DCHK<=ND
  150. STOR $(AL,DCHK,1)+':'+FCHK TO WHERE
  151. IF FILE(WHERE)
  152. IF NF=1
  153. STORE WHERE TO GOURMET
  154. ENDI
  155. IF NF=2
  156. STORE WHERE TO GOURMET
  157. ENDI
  158. IF NF=3
  159. STORE WHERE TO DGOURMET
  160. ENDI
  161. IF NF=4
  162. STORE WHERE TO TINDEX
  163. ENDI
  164. IF NF=5
  165. STORE WHERE TO RINDEX
  166. ENDI
  167. IF NF=6
  168. STORE WHERE TO FSHOP
  169. ENDI
  170. IF NF=7
  171. STORE WHERE TO FITEM
  172. ENDI
  173. IF NF=8
  174. STORE WHERE TO NITEM
  175. ENDI
  176. ENDI
  177. STOR DCHK+1 TO DCHK
  178. ENDD
  179. STOR NF+1 TO NF
  180. ENDD
  181. IF (GOURMET=' '.AND.FGOURMET=' ').OR.DGOURMET=' '.OR.TINDEX=' '.OR.RINDEX=' '.OR.FSHOP=' '.OR.FITEM=' '.OR.NITEM=' '
  182. ERAS
  183. STOR 4 TO ROW
  184. @ 4,A+13 SAY 'Some file(s) could not be found'
  185. @ 5,A+13 SAY '    Please check your disks'
  186. STOR ROW+3 TO ROW
  187. IF GOURMET=' '.AND.FGOURMET=' '
  188. IF GOURMET=' '
  189. @ ROW,A+20 SAY $(GOURMET,3,12)
  190. STOR ROW+1 TO ROW
  191. ENDI
  192. IF FGOURMET=' '
  193. @ ROW,A+20 SAY $(FGOURMET,3,12)
  194. STOR ROW+1 TO ROW
  195. ENDI
  196. ENDI
  197. IF DGOURMET=' '
  198. @ ROW,A+20 SAY $(DGOURMET,3,12)
  199. STOR ROW+1 TO ROW
  200. ENDI
  201. IF TINDEX=' '
  202. @ ROW,A+20 SAY $(TINDEX,3,12)
  203. STOR ROW+1 TO ROW
  204. ENDI
  205. IF RINDEX=' '
  206. @ ROW,A+20 SAY $(RINDEX,3,12)
  207. STOR ROW+1 TO ROW
  208. ENDI
  209. IF FSHOP=' '
  210. @ ROW,A+20 SAY $(FSHOP,3,12)
  211. STOR ROW+1 TO ROW
  212. ENDI
  213. IF FITEM=' '
  214. @ ROW,A+20 SAY $(FITEM,3,12)
  215. STOR ROW+1 TO ROW
  216. ENDI
  217. IF NITEM=' '
  218. @ ROW,A+20 SAY $(NITEM,3,12)
  219. STOR ROW+1 TO ROW
  220. ENDI
  221. QUIT
  222. ENDI
  223. RELE FILES,AL,FGOURMET,ND,Z,ANS,ROW,WHERE,FCHK,DCHK,ST
  224. USE &DGOURMET INDEX &TINDEX,&RINDEX
  225. SELE SECO
  226. USE &FSHOP
  227. SELE PRIM
  228. SAVE TO OPTION
  229. ELSE
  230. REST FROM OPTION
  231. USE &DGOURMET INDEX &TINDEX,&RINDEX
  232. SELE SECO
  233. USE &FSHOP
  234. SELE PRIM
  235. ENDI
  236. STOR ' ' TO MESS
  237. ERAS
  238. @  1,A+6 SAY '*************** NOTICE **************** '
  239. @  2,A+6 SAY 'If you have  received this program  from'
  240. @  3,A+6 SAY 'another user and find it of value,  your'
  241. @  4,A+6 SAY ' $30 contribution will be  appreciated. '
  242. @  6,A+6 SAY '              microGOURMET'
  243. @  7,A+6 SAY '     6958 Hanover Parkway, Suite 301'
  244. @  8,A+6 SAY '           Greenbelt, MD 20770'
  245. @ 10,A+6 SAY 'You are encouraged to copy  this program'
  246. @ 11,A+6 SAY '          as described below.'
  247. @ 12,A+6 SAY 'Users of  this  program  are  granted  a'
  248. @ 13,A+6 SAY 'limited license to  make copies of  this'
  249. @ 14,A+6 SAY 'program  for  trial  use by others  on a'
  250. @ 15,A+6 say 'private non-commercial basis only.  This'
  251. @ 16,A+6 SAY 'limited  license  does  not  include ---'
  252. @ 17,A+6 SAY '1. distributing  this  program  with any'
  253. @ 18,A+6 SAY '   other product'
  254. @ 19,A+6 SAY '2. making the program  available for any'
  255. @ 20,A+6 SAY '   consideration except for a disk fee'
  256. @ 21,A+6 SAY '3. distributing the  program in modified'
  257. @ 22,A+6 SAY '   form.  Please cooperate.'
  258. @ 23,A+6 SAY '****************************************'
  259. @ 24,A+6 SAY '        Press enter to continue' GET MESS
  260. READ
  261. STOR  0  TO M1
  262. STOR '1' TO M
  263. STOR '1' TO D
  264. STOR '1' TO FM
  265. STOR '1' TO T 
  266. STOR '  Note: Category may be blank'    TO CLB
  267. STOR 'End of File'                      TO END
  268. STOR 'End of Search'                    TO ENDS
  269. STOR '                              '   TO I1
  270. STOR '                              '   TO I2
  271. STOR '                              '   TO I3
  272. STOR 'Select a number or '              TO SNC
  273. STOR 'None found'                       TO NF
  274. STOR 'Retrieve this recipe? (Y or N) '  TO WTE
  275. STOR 'Add this recipe to shopping list? ' TO PRO
  276. STOR 'N' TO SHOP
  277. DO WHILE M1=0
  278. STOR 0 TO M2
  279. STOR 0 TO M3
  280. STOR 0 TO M4
  281. ERAS
  282. @  3,A+15 SAY 'microGOURMET Main Menu'
  283. @  5,A+15 SAY '1 Find Recipes'
  284. @  6,A+15 SAY '2 Prepare Shopping List'
  285. @  7,A+15 SAY '3 Perform Data Base Maintenance'
  286. @  8,A+15 SAY '4 Change to Another Recipe Disk'
  287. @  9,A+15 SAY '5 Exit to Operating System'
  288. @ 10,A+15 SAY '6 Exit to dBASE II'
  289. @ 12,A+10 SAY 'Enter the number of your choice ' GET M
  290. @ 13,A+10 SAY '     or enter ? for help'
  291. READ
  292. IF (M<'1'.OR.M>'6').AND.M<>'?'
  293. ERAS
  294. @ 12,A+19 SAY INV
  295. @ 13,A+13 SAY PRC GET PR
  296. READ
  297. STOR ' ' TO PR
  298. LOOP
  299. ENDI
  300. IF M='4'
  301. ERAS
  302. USE
  303. @ 12,A+9 SAY 'Change Disk(s), then Press enter' GET PR
  304. READ
  305. STOR ' ' TO PR
  306. ERAS
  307. @ 12,A+10 SAY 'This will work only with CP/M'
  308. @ 18,0   SAY ' '
  309. QUIT TO 'DBASE GOURMET'
  310. ENDI
  311. IF M='5'
  312. ERAS
  313. QUIT
  314. ENDI
  315. IF M='6'
  316. ERAS
  317. USE
  318. SET TALK ON
  319. SET COLO ON
  320. SET BELL ON
  321. SET CONF OFF
  322. SET EJEC ON
  323. RETU
  324. ENDI
  325. IF M='?'
  326. ERAS
  327. @  1,A+6 SAY '           microGOURMET Help'
  328. @  2,A+6 SAY 'This is the main menu.  The choices here'
  329. @  3,A+6 SAY 'are as follows:'
  330. @  5,A+6 SAY '1 - Display the menu of recipe retrieval'
  331. @  6,A+6 SAY '    options (more help is available)'
  332. @  8,A+6 SAY '2 - Build a shopping list while browsing'
  333. @  9,A+6 SAY '    through the data base.  You must use'
  334. @ 10,A+6 SAY '    this option before using option 1.'
  335. @ 12,A+6 SAY '3 - Maintain recipe database and indices'
  336. @ 14,A+6 SAY '4 - Restart  the  program  with  another'
  337. @ 15,A+6 SAY '    program and/or  recipe  disk.   (For' 
  338. @ 16,A+6 SAY '    dBASE II version 2.3 and CP/M only.)'
  339. @ 18,A+6 SAY '5 - Exit  the program and return to  the' 
  340. @ 19,A+6 SAY '    operating system, for the > prompt.'
  341. @ 21,A+6 SAY '6 - Exit  the program and remain  within'
  342. @ 22,A+6 SAY '    dBASE II, for the . prompt.'
  343. @ 23,A+6 SAY PRC GET PR
  344. READ
  345. STOR ' ' TO PR
  346. LOOP
  347. ENDI
  348. IF M<>'2'
  349. ERAS
  350. @ 12,A+16 SAY 'One Moment Please...'
  351. ENDI
  352. DO CASE
  353. CASE M='2'
  354. STOR '1' TO T
  355. STOR  0  TO M9
  356. DO WHILE M9=0
  357. ERAS
  358. @  3,A+13 SAY 'microGOURMET Shopping List'
  359. @  5,A+18 SAY '1 Compile List'
  360. @  6,A+18 SAY '2 Print   List'
  361. @  7,A+18 SAY '3 Display List'
  362. @  9,A+10 SAY 'Enter the number of your choice ' GET T
  363. @ 10,A+10 SAY '     or enter ? for help'
  364. @ 11,A+10 SAY '  or enter 0 for previous menu'
  365. @ 14,A+10 SAY 'Shopping list option'
  366. IF SHOP='Y'
  367. @ 14,A+39 SAY 'On'
  368. ELSE
  369. @ 14,A+39 SAY 'Off'
  370. ENDI
  371. READ
  372. IF (T<'0'.OR.T>'3').AND.T<>'?'
  373. ERAS
  374. @ 12,A+19 SAY INV
  375. @ 13,A+13 SAY PRC GET PR
  376. READ
  377. STOR ' ' TO PR
  378. LOOP
  379. ENDI
  380. IF T='0'
  381. ERAS
  382. @ 12,A+16 SAY 'One Moment Please...'
  383. STOR 1 TO M9
  384. LOOP
  385. ENDI
  386. IF T='?'
  387. ERAS
  388. @  1,A+6 SAY '           microGOURMET Help'
  389. @  2,A+6 SAY 'This is the shopping list menu.  Choices'
  390. @  3,A+6 SAY 'are as follows:'
  391. @  5,A+6 SAY '1 - Compile  a  shopping list of  recipe' 
  392. @  6,A+6 SAY '    ingredients while  browsing  through'
  393. @  7,A+6 SAY '    the data  base.  Recipes you  select' 
  394. @  8,A+6 SAY '    will be added to the list.  You must'
  395. @  9,A+6 SAY '    use this  option  before option 1 on'
  396. @ 10,A+6 SAY '    on the main menu.'
  397. @ 12,A+6 SAY '2 - Print the list after compiling it.'
  398. @ 14,A+6 SAY '3 - Display the list after compiling it.'
  399. @ 16,A+6 SAY 'After printing or displaying  the  list,' 
  400. @ 17,A+6 SAY 'you may delete it if you have no further'
  401. @ 18,A+6 SAY 'need for it.  Be careful - you  may  run' 
  402. @ 19,A+6 SAY 'out of space on the disk if you  build a'
  403. @ 20,A+6 SAY 'a big list, or if you have limited  disk'
  404. @ 21,A+6 SAY 'capacity.'
  405. @ 23,A+6 SAY PRC GET PR
  406. READ
  407. STOR ' ' TO PR
  408. LOOP
  409. ENDI
  410. IF T='1'
  411. STOR 'Y' TO SHOP
  412. LOOP
  413. ELSE
  414. SELE SECO
  415. STOR 0 TO I
  416. IF T='2'
  417. ERASE
  418. @ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
  419. READ
  420. STOR ' ' TO PR
  421. SET PRINT ON
  422. ENDI
  423. GOTO TOP
  424. DO WHILE .NOT.EOF
  425. ERAS
  426. IF T='2'
  427. ? '--------------------------------------'
  428. ELSE
  429. ? ' '
  430. ENDI
  431. ? 'Name-----',NAME
  432. ? ' '
  433. ? ITEM1
  434. ? ITEM2
  435. ? ITEM3
  436. ? ITEM4
  437. ? ITEM5
  438. ? ITEM6
  439. ? ITEM7
  440. ? ITEM8
  441. ? ITEM9
  442. ? ITEM10
  443. ? ITEM11
  444. ? ITEM12
  445. ? ITEM13
  446. ? ITEM14
  447. ? ITEM15
  448. SKIP
  449. STOR I+18 TO I
  450. IF T='3'
  451. @ 22,0 SAY PRC GET PR
  452. READ
  453. STOR ' ' TO PR
  454. ELSE
  455. IF I>53
  456. EJEC
  457. ERAS
  458. IF .NOT.EOF
  459. @ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
  460. READ
  461. STOR ' ' TO PR
  462. ENDI
  463. STOR 0 TO I
  464. ENDI
  465. ENDI
  466. ENDD
  467. IF I>0
  468. EJEC
  469. ENDI
  470. SET PRINT OFF
  471. ERAS
  472. STOR 'Y' TO PR
  473. @ 12,A+12 SAY 'Delete Shopping List File? ' GET PR
  474. READ
  475. ERAS
  476. ERAS
  477. @ 12,A+16 SAY 'One Moment Please...'
  478. IF !(PR)='Y'
  479. STOR 'N' TO SHOP
  480. USE
  481. USE &FSHOP
  482. COPY STRU TO &FTEMP
  483. USE &FTEMP
  484. DELETE FILE &FSHOP
  485. USE
  486. RENA &FTEMP TO &FSHOP
  487. *ACCOMMODATES DBASE BUG
  488. USE
  489. USE
  490. USE
  491. USE
  492. USE
  493. USE
  494. USE
  495. USE
  496. USE
  497. USE
  498. ENDI
  499. STOR ' ' TO PR
  500. USE &DGOURMET INDEX &TINDEX,&RINDEX
  501. SELE SECO
  502. USE &FSHOP
  503. SELE PRIM
  504. ENDI
  505. ENDD
  506. CASE M='1'
  507. STOR 0 TO M2
  508. DO WHILE M2=0
  509. ERAS
  510. @  3,A+8  SAY 'microGOURMET Recipe Retrieval Menu'
  511. @  5,A+13 SAY 'Find Recipes by:'
  512. @  7,A+13 SAY '1 Category'
  513. @  8,A+13 SAY '2 Category & Name'
  514. @  9,A+13 SAY '3 Category & Ingredients'
  515. @ 10,A+13 SAY '4 Category & Preparation Time'    
  516. @ 12,A+10 SAY 'Enter the number of your choice ' GET D
  517. @ 13,A+10 SAY '     or enter ? for help'
  518. @ 14,A+10 SAY '  or enter 0 for previous menu'
  519. READ
  520. IF (D<'0'.OR.D>'4').AND.D<>'?'
  521. ERAS
  522. @ 12,A+19 SAY INV
  523. @ 13,A+13 SAY PRC GET PR
  524. READ
  525. STOR ' ' TO PR
  526. LOOP
  527. ENDI
  528. IF D='?'
  529. ERAS
  530. @  1,A+6 SAY '           microGOURMET Help'
  531. @  2,A+6 SAY 'This is the menu for  recipe  retrieval.'
  532. @  3,A+6 SAY 'Your choices are as follows: (see NOTE)'
  533. @  5,A+6 SAY '1 - Category  retrieval only.   You will' 
  534. @  6,A+6 SAY '    pick a  category  by  number and the'
  535. @  7,A+6 SAY '    text of recipe(s) will be retrieved.'
  536. @  8,A+6 SAY '    This continues until you stop it.'
  537. @ 10,A+6 SAY '2 - Category  and name  retrieval.  Only'
  538. @ 11,A+6 SAY '    the recipe  names  and  numbers will'
  539. @ 12,A+6 SAY '    be  displayed.  You  pick  one to be' 
  540. @ 13,A+6 SAY '    be retrieved. (Faster than option 1)'
  541. @ 15,A+6 SAY '3 - Category and ingedient retrieval. In' 
  542. @ 16,A+6 SAY '    addition to category, you may  enter'
  543. @ 17,A+6 SAY '    one to three ingredients.  Recipe(s)'
  544. @ 18,A+6 SAY '    which match will be retrieved.'
  545. @ 21,A+6 SAY '<<<more on next page>>>'
  546. @ 22,A+6 SAY PRC GET PR
  547. READ
  548. STOR ' ' TO PR
  549. ERAS
  550. @  1,A+6 SAY '           microGOURMET Help'
  551. @  3,A+6 SAY '4 - Category   and    preparation   time'
  552. @  4,A+6 SAY '    retrieval.  Recipes whose  prep time'
  553. @  5,A+6 SAY '    (start to finish) is  less  than  or'
  554. @  6,A+6 SAY '    equal to the  number of  minutes you'
  555. @  7,A+6 SAY '    enter will be retrieved.'
  556. @  9,A+6 SAY 'NOTE - After  you  pick a number on this'
  557. @ 10,A+6 SAY 'menu, you will have a choice of printing'
  558. @ 11,A+6 SAY 'or  displaying  recipe text (only).  All'
  559. @ 12,A+6 SAY 'menus  which  appear  next will list the'
  560. @ 13,A+6 SAY 'recipe categories.'
  561. @ 15,A+6 SAY PRC GET PR
  562. READ
  563. STOR ' ' TO PR
  564. LOOP
  565. ENDI
  566. IF D='0'
  567. ERAS
  568. @ 12,A+16 SAY 'One Moment Please...'
  569. STOR 1  TO M2
  570. LOOP
  571. ENDI
  572. STOR 'D' TO O
  573. STOR  0  TO O1
  574. DO WHILE O1=0
  575. ERAS
  576. @ 12,A+17 SAY 'Display or Print  ' GET O
  577. @ 13,A+17 SAY 'Selected Recipes?'
  578. @ 14,A+17 SAY '    (D or P)'
  579. READ
  580. STOR !(O) TO O
  581. IF O='D'.OR.O='P'
  582. STOR 1 TO O1
  583. LOOP
  584. ELSE
  585. ERAS
  586. @ 12,A+19 SAY INV
  587. @ 13,A+13 SAY PRC GET PR
  588. READ
  589. STOR ' ' TO PR
  590. LOOP
  591. ENDI
  592. ENDD
  593. ERAS
  594. @ 12,A+16 SAY 'One Moment Please...'
  595. IF D='1'
  596. STOR 0 TO M3
  597. DO WHILE M3=0
  598. ERAS
  599. @ 1,A+10  SAY ' Recipe Selection by Category'
  600. @ 3,A+10  SAY 'microGOURMET Recipe Categories'
  601. @ 5,A+18  SAY '1 Appetizers'
  602. @ 6,A+18  SAY '2 Salads'
  603. @ 7,A+18  SAY '3 Main Dishes'
  604. @ 8,A+18  SAY '4 Vegetable Dishes'
  605. @ 9,A+18  SAY '5 Breads'
  606. @ 10,A+18 SAY '6 Desserts'
  607. @ 11,A+18 SAY '7 Cookies'
  608. @ 13,A+10 SAY 'Enter the number of your choice ' GET T
  609. @ 14,A+10 SAY '  or enter 0 for previous menu'
  610. @ 16,A+10 SAY CLB
  611. READ
  612. IF (T<'0'.OR.T>'7').AND.T<>' '
  613. ERAS
  614. @ 12,A+19 SAY INV
  615. @ 13,A+13 SAY PRC GET PR
  616. READ
  617. STOR ' ' TO PR
  618. LOOP
  619. ENDI
  620. IF T='0'
  621. ERAS
  622. @ 12,A+16 SAY 'One Moment Please...'
  623. STOR 1 TO M3
  624. LOOP
  625. ENDI
  626. IF T<>' '
  627. FIND &T
  628. STOR ' ' TO K
  629. IF #=0
  630. ERAS
  631. @ 12,A+13 SAY NF  GET K
  632. @ 13,A+13 SAY PRC
  633. READ
  634. STOR ' ' TO K
  635. LOOP
  636. ENDI
  637. ELSE
  638. GOTO TOP
  639. ENDI
  640. STOR 'Y' TO C
  641. DO WHILE !(C)='Y'
  642. IF .NOT.EOF
  643. STOR 'Y' TO PRA
  644. ERAS
  645. IF !(O) = 'D'
  646. SET FORM TO SCRE
  647. STOR -23 TO F 
  648. ELSE
  649. STOR ' ' TO PR
  650. @ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
  651. READ
  652. STOR ' ' TO PR
  653. STOR 0 TO F
  654. SET FORM TO PRIN
  655. ENDI
  656. @  0,0  SAY 'Record #' 
  657. @  0,10 SAY #
  658. @  1,0  SAY 'Category'
  659. IF TYPE = 1
  660. @  1,10 SAY '1 Appetizers'
  661. ENDI
  662. IF TYPE = 2
  663. @  1,10 SAY '2 Salads'
  664. ENDI
  665. IF TYPE = 3
  666. @  1,10 SAY '3 Main Dishes'
  667. ENDI
  668. IF TYPE = 4
  669. @  1,10 SAY '4 Vegetable Dishes'
  670. ENDI
  671. IF TYPE = 5
  672. @  1,10 SAY '5 Breads'
  673. ENDI
  674. IF TYPE = 6
  675. @  1,10 SAY '6 Desserts'
  676. ENDI
  677. IF TYPE = 7
  678. @  1,10 SAY '7 Cookies'
  679. ENDI
  680. @  2,0   SAY 'Name' 
  681. @  2,10  SAY  NAME
  682. @  3,0   SAY 'Remarks' 
  683. @  3,10  SAY  REMARKS
  684. @  5,0   SAY 'Ingredients'
  685. @  7,A+6 SAY  ITEM1
  686. @  8,A+6 SAY  ITEM2
  687. @  9,A+6 SAY  ITEM3
  688. @ 10,A+6 SAY  ITEM4
  689. @ 11,A+6 SAY  ITEM5
  690. @ 12,A+6 SAY  ITEM6
  691. @ 13,A+6 SAY  ITEM7
  692. @ 14,A+6 SAY  ITEM8
  693. @ 15,A+6 SAY  ITEM9
  694. @ 16,A+6 SAY  ITEM10
  695. @ 17,A+6 SAY  ITEM11
  696. @ 18,A+6 SAY  ITEM12
  697. @ 19,A+6 SAY  ITEM13
  698. @ 20,A+6 SAY  ITEM14
  699. @ 21,A+6 SAY  ITEM15
  700. IF !(O)='D'
  701. @ 23,0  SAY PRC GET PR
  702. READ
  703. ERAS
  704. ENDI
  705. @ F+23,0   SAY 'Instructions' 
  706. @ F+25,A+6 SAY  INSTRUCT1
  707. @ F+26,A+6 SAY  INSTRUCT2
  708. @ F+27,A+6 SAY  INSTRUCT3
  709. @ F+28,A+6 SAY  INSTRUCT4
  710. @ F+29,A+6 SAY  INSTRUCT5
  711. @ F+30,A+6 SAY  INSTRUCT6
  712. @ F+31,A+6 SAY  INSTRUCT7
  713. @ F+32,A+6 SAY  INSTRUCT8
  714. @ F+33,A+6 SAY  INSTRUCT9
  715. @ F+34,A+6 SAY  INSTRUCT10
  716. @ F+36,0   SAY 'Preparation Time'
  717. @ F+37,0   SAY '(Minutes)'
  718. @ F+37,11  SAY  PREPTIME 
  719. @ F+39,0   SAY 'Serving Hints'
  720. @ F+40,A+6 SAY  HINT1
  721. @ F+41,A+6 SAY  HINT2
  722. IF !(O)='D'
  723. IF SHOP='Y'
  724. @ 23,0  SAY PRO GET PRA
  725. ELSE
  726. @ 23,0  SAY PRC GET PR
  727. ENDI
  728. READ
  729. STOR ' ' TO PR
  730. ENDI
  731. IF !(O)='P'
  732. EJECT
  733. SET FORM TO SCRE
  734. IF SHOP='Y'
  735. ERAS
  736. @ 12,A+9  SAY PRO GET PRA
  737. READ
  738. ENDI
  739. ENDI
  740. ERAS
  741. IF !(SHOP)='Y'.AND.!(PRA)='Y'
  742. SELE SECO
  743. APPE BLANK
  744. REPL S.NAME   WITH P.NAME
  745. REPL S.ITEM1  WITH P.ITEM1
  746. REPL S.ITEM2  WITH P.ITEM2
  747. REPL S.ITEM3  WITH P.ITEM3
  748. REPL S.ITEM4  WITH P.ITEM4
  749. REPL S.ITEM5  WITH P.ITEM5
  750. REPL S.ITEM6  WITH P.ITEM6
  751. REPL S.ITEM7  WITH P.ITEM7
  752. REPL S.ITEM8  WITH P.ITEM8
  753. REPL S.ITEM9  WITH P.ITEM9
  754. REPL S.ITEM10 WITH P.ITEM10
  755. REPL S.ITEM11 WITH P.ITEM11
  756. REPL S.ITEM12 WITH P.ITEM12
  757. REPL S.ITEM13 WITH P.ITEM13
  758. REPL S.ITEM14 WITH P.ITEM14
  759. REPL S.ITEM15 WITH P.ITEM15
  760. SELE PRIM
  761. ENDI
  762. ENDI
  763. SKIP
  764. IF T<>' '
  765. IF TYPE<>VAL(T).OR.EOF
  766. ERAS
  767. @ 12,A+13 SAY ENDS
  768. @ 13,A+13 SAY PRC GET PR
  769. READ
  770. STOR ' ' TO PR
  771. ERAS
  772. STOR 'N' TO C
  773. LOOP
  774. ENDI
  775. ELSE
  776. IF EOF
  777. ERAS
  778. @ 12,A+13 SAY END
  779. @ 13,A+13 SAY PRC GET PR
  780. READ
  781. STOR ' ' TO PR
  782. ERAS
  783. STOR 'N' TO C
  784. LOOP
  785. ENDI
  786. ENDI
  787. STOR 'Y' TO CS
  788. STOR  0  TO O1
  789. DO WHILE O1=0
  790. ERAS
  791. @ 12,A+15 SAY 'Continue Searching? ' GET CS
  792. @ 13,A+15 SAY '     (Y or N)'
  793. READ
  794. ERAS
  795. IF !(CS)<>'N'.AND.!(CS)<>'Y'
  796. ERAS
  797. @ 12,A+19 SAY INV
  798. @ 13,A+13 SAY PRC GET PR
  799. READ
  800. STOR ' ' TO PR
  801. ERAS
  802. LOOP
  803. ELSE
  804. STOR  1  TO O1
  805. LOOP
  806. ENDI
  807. ENDD
  808. IF !(CS)='N'
  809. STOR 'N' TO C
  810. ENDI
  811. ENDD
  812. ENDD
  813. ENDI
  814. IF D='2'
  815. STOR 0 TO M5
  816. DO WHILE M5=0
  817. ERAS
  818. @  1,A+8  SAY 'Recipe Selection by Category & Name'
  819. @  3,A+10 SAY 'microGOURMET Recipe Categories'
  820. @  5,A+18 SAY '1 Appetizers'
  821. @  6,A+18 SAY '2 Salads'
  822. @  7,A+18 SAY '3 Main Dishes'
  823. @  8,A+18 SAY '4 Vegetable Dishes'
  824. @  9,A+18 SAY '5 Breads'
  825. @ 10,A+18 SAY '6 Desserts'
  826. @ 11,A+18 SAY '7 Cookies'
  827. @ 13,A+10 SAY 'Enter the number of your choice ' GET T
  828. @ 14,A+10 SAY '  or enter 0 for previous menu'
  829. @ 17,A+10 SAY CLB
  830. READ
  831. IF (T<'0'.OR.T>'7').AND.T<>' '
  832. ERAS
  833. @ 12,A+19 SAY INV
  834. @ 13,A+13 SAY PRC GET PR
  835. READ
  836. STOR ' ' TO PR
  837. LOOP
  838. ENDI
  839. IF T='0'
  840. ERAS
  841. @ 12,A+16 SAY 'One Moment Please...'
  842. STOR 1 TO M5
  843. LOOP
  844. ENDI
  845. STOR 0 TO HIT
  846. ERAS
  847. STOR 'Y' TO C
  848. IF T<>' '
  849. FIND &T
  850. STOR ' ' TO K
  851. IF #=0
  852. ERAS
  853. @ 12,A+13 SAY NF  GET K
  854. @ 13,A+13 SAY PRC
  855. READ
  856. STOR ' ' TO K
  857. LOOP
  858. ENDI
  859. ELSE
  860. GOTO TOP
  861. ENDI
  862. DO WHILE !(C)='Y'
  863. STOR 1 TO I
  864. DO WHILE I<21.AND.(TYPE=VAL(T).OR.T=' ').AND..NOT.EOF
  865. ? STR(#,3),NAME
  866. STOR 1 TO HIT
  867. SKIP
  868. STOR I+1 TO I
  869. ENDD  
  870. STOR 1 TO I
  871. STOR 0 TO K1
  872. IF T<>' '.AND.TYPE<>VAL(T).AND.HIT=0
  873. ERAS
  874. @ 12,A+13 SAY ENDS
  875. @ 13,A+13 SAY PRC GET PR
  876. READ
  877. STOR 'N' TO C
  878. STOR ' ' TO PR
  879. ERAS
  880. ELSE
  881. IF HIT=1
  882. @ 22,0 SAY SNC GET K1
  883. @ 23,0 SAY PRC
  884. ELSE
  885. ERAS
  886. @ 12,A+13 SAY NF  GET K
  887. @ 13,A+13 SAY PRC
  888. ENDI
  889. READ
  890. IF K1=0
  891. IF HIT=1
  892. ERAS
  893. STOR 'Y' TO CS
  894. STOR  0 TO O1
  895. DO WHILE O1=0
  896. ERAS
  897. @ 12,A+15 SAY 'Continue Searching? ' GET CS
  898. @ 13,A+15 SAY '     (Y or N)'
  899. READ
  900. ERAS
  901. IF !(CS)<>'N'.AND !(CS)<>'Y'
  902. ERAS
  903. @ 12,A+19 SAY INV
  904. @ 13,A+13 SAY PRC GET PR
  905. READ
  906. STOR ' ' TO PR
  907. ERAS
  908. LOOP
  909. ELSE
  910. STOR 1 TO O1
  911. ENDI
  912. ENDD
  913. IF !(CS)='N'
  914. STOR 'N' TO C
  915. ENDI
  916. ENDI
  917. ELSE
  918. SET INDEX TO &RINDEX
  919. STOR 0 TO Z
  920. DO WHILE Z=0
  921. STOR STR(K1,5) TO K2
  922. FIND &K2
  923. IF #=0
  924. @ 21,0 SAY 'Recipe Not Found'
  925. @ 22,0 SAY 'Select a number    ' GET K1
  926. @ 23,0 SAY '                                        '
  927. READ
  928. LOOP
  929. ELSE
  930. STOR 1 TO Z
  931. LOOP
  932. ENDI
  933. ENDD
  934. STOR 'Y' TO PRA
  935. ERAS
  936. IF !(O) = 'D'
  937. SET FORM TO SCRE
  938. STOR -23 TO F 
  939. ELSE
  940. STOR ' ' TO PR
  941. @ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
  942. READ
  943. STOR ' ' TO PR
  944. STOR 0 TO F
  945. SET FORM TO PRIN
  946. ENDI
  947. @  0,0  SAY 'Record #' 
  948. @  0,10 SAY #
  949. @  1,0  SAY 'Category'
  950. IF TYPE = 1
  951. @  1,10 SAY '1 Appetizers'
  952. ENDI
  953. IF TYPE = 2
  954. @  1,10 SAY '2 Salads'
  955. ENDI
  956. IF TYPE = 3
  957. @  1,10 SAY '3 Main Dishes'
  958. ENDI
  959. IF TYPE = 4
  960. @  1,10 SAY '4 Vegetable Dishes'
  961. ENDI
  962. IF TYPE = 5
  963. @  1,10 SAY '5 Breads'
  964. ENDI
  965. IF TYPE = 6
  966. @  1,10 SAY '6 Desserts'
  967. ENDI
  968. IF TYPE = 7
  969. @  1,10 SAY '7 Cookies'
  970. ENDI
  971. @  2,0   SAY 'Name' 
  972. @  2,10  SAY  NAME
  973. @  3,0   SAY 'Remarks' 
  974. @  3,10  SAY  REMARKS
  975. @  5,0   SAY 'Ingredients'
  976. @  7,A+6 SAY  ITEM1
  977. @  8,A+6 SAY  ITEM2
  978. @  9,A+6 SAY  ITEM3
  979. @ 10,A+6 SAY  ITEM4
  980. @ 11,A+6 SAY  ITEM5
  981. @ 12,A+6 SAY  ITEM6
  982. @ 13,A+6 SAY  ITEM7
  983. @ 14,A+6 SAY  ITEM8
  984. @ 15,A+6 SAY  ITEM9
  985. @ 16,A+6 SAY  ITEM10
  986. @ 17,A+6 SAY  ITEM11
  987. @ 18,A+6 SAY  ITEM12
  988. @ 19,A+6 SAY  ITEM13
  989. @ 20,A+6 SAY  ITEM14
  990. @ 21,A+6 SAY  ITEM15
  991. IF !(O)='D'
  992. @ 23,0  SAY PRC GET PR
  993. READ
  994. ERAS
  995. ENDI
  996. @ F+23,0   SAY 'Instructions' 
  997. @ F+25,A+6 SAY  INSTRUCT1
  998. @ F+26,A+6 SAY  INSTRUCT2
  999. @ F+27,A+6 SAY  INSTRUCT3
  1000. @ F+28,A+6 SAY  INSTRUCT4
  1001. @ F+29,A+6 SAY  INSTRUCT5
  1002. @ F+30,A+6 SAY  INSTRUCT6
  1003. @ F+31,A+6 SAY  INSTRUCT7
  1004. @ F+32,A+6 SAY  INSTRUCT8
  1005. @ F+33,A+6 SAY  INSTRUCT9
  1006. @ F+34,A+6 SAY  INSTRUCT10
  1007. @ F+36,0   SAY 'Preparation Time'
  1008. @ F+37,0   SAY '(Minutes)'
  1009. @ F+37,11  SAY  PREPTIME 
  1010. @ F+39,0   SAY 'Serving Hints'
  1011. @ F+40,A+6 SAY  HINT1
  1012. @ F+41,A+6 SAY  HINT2
  1013. IF !(O)='D'
  1014. IF SHOP='Y'
  1015. @ 23,0  SAY PRO GET PRA
  1016. ELSE
  1017. @ 23,0  SAY PRC GET PR
  1018. ENDI
  1019. READ
  1020. STOR ' ' TO PR
  1021. ENDI
  1022. IF !(O)='P'
  1023. EJECT
  1024. SET FORM TO SCRE
  1025. IF SHOP='Y'
  1026. ERAS
  1027. @ 12,A+9  SAY PRO GET PRA
  1028. READ
  1029. ENDI
  1030. ENDI
  1031. ERAS
  1032. IF !(SHOP)='Y'.AND.!(PRA)='Y'
  1033. SELE SECO
  1034. APPE BLANK
  1035. REPL S.NAME   WITH P.NAME
  1036. REPL S.ITEM1  WITH P.ITEM1
  1037. REPL S.ITEM2  WITH P.ITEM2
  1038. REPL S.ITEM3  WITH P.ITEM3
  1039. REPL S.ITEM4  WITH P.ITEM4
  1040. REPL S.ITEM5  WITH P.ITEM5
  1041. REPL S.ITEM6  WITH P.ITEM6
  1042. REPL S.ITEM7  WITH P.ITEM7
  1043. REPL S.ITEM8  WITH P.ITEM8
  1044. REPL S.ITEM9  WITH P.ITEM9
  1045. REPL S.ITEM10 WITH P.ITEM10
  1046. REPL S.ITEM11 WITH P.ITEM11
  1047. REPL S.ITEM12 WITH P.ITEM12
  1048. REPL S.ITEM13 WITH P.ITEM13
  1049. REPL S.ITEM14 WITH P.ITEM14
  1050. REPL S.ITEM15 WITH P.ITEM15
  1051. SELE PRIM
  1052. ENDI
  1053. SET INDEX TO &TINDEX
  1054. STOR 'Y' TO CS
  1055. STOR  0  TO O1
  1056. DO WHILE O1=0
  1057. ERAS
  1058. @ 12,A+15 SAY 'Continue Searching? ' GET CS
  1059. @ 13,A+15 SAY '     (Y or N)'
  1060. READ
  1061. ERAS
  1062. IF !(CS)<>'N'.AND !(CS)<>'Y'
  1063. ERAS
  1064. @ 12,A+19 SAY INV
  1065. @ 13,A+13 SAY PRC GET PR
  1066. READ
  1067. STOR ' ' TO PR
  1068. ERAS
  1069. LOOP
  1070. ELSE
  1071. STOR 1 TO O1
  1072. LOOP
  1073. ENDI
  1074. ENDD
  1075. IF !(CS)='N'
  1076. STOR 'N' TO C
  1077. ELSE
  1078. IF T<>' '
  1079. FIND &T
  1080. ELSE
  1081. GOTO TOP
  1082. ENDI
  1083. ENDI
  1084. ENDI
  1085. IF EOF.AND.HIT=1
  1086. ERAS
  1087. @ 12,A+13 SAY END
  1088. @ 13,A+13 SAY PRC GET PR
  1089. READ
  1090. STOR ' ' TO PR
  1091. ERAS
  1092. STOR 'N' TO C
  1093. STOR '0' TO T
  1094. ENDI
  1095. IF HIT=0
  1096. STOR 'N' TO C
  1097. ENDI
  1098. STOR 0 TO HIT
  1099. ENDI
  1100. ENDD
  1101. ENDD
  1102. ENDI
  1103. IF D='3'
  1104. STOR 0 TO M6
  1105. DO WHILE M6=0
  1106. ERAS
  1107. @  1,A+16 SAY 'Recipe Selection by'
  1108. @  2,A+14 SAY 'Category & Ingredients'
  1109. @  4,A+10 SAY 'microGOURMET Recipe Categories'
  1110. @  6,A+18 SAY '1 Appetizers'
  1111. @  7,A+18 SAY '2 Salads'
  1112. @  8,A+18 SAY '3 Main Dishes'
  1113. @  9,A+18 SAY '4 Vegetable Dishes'
  1114. @ 10,A+18 SAY '5 Breads'
  1115. @ 11,A+18 SAY '6 Desserts'
  1116. @ 12,A+18 SAY '7 Cookies'
  1117. @ 14,A+10 SAY 'Enter the number of your choice ' GET T
  1118. @ 15,A+10 SAY '  or enter 0 for previous menu'
  1119. @ 18,A+10 SAY CLB
  1120. READ
  1121. IF (T<'0'.OR.T>'7').AND.T<>' '
  1122. ERAS
  1123. @ 12,A+19 SAY INV
  1124. @ 13,A+13 SAY PRC GET PR
  1125. READ
  1126. STOR ' ' TO PR
  1127. LOOP
  1128. ENDI
  1129. IF T='0'
  1130. ERAS
  1131. @ 12,A+16 SAY 'One Moment Please...'
  1132. STOR 1 TO M6
  1133. LOOP
  1134. ENDI
  1135. IF T<>' '
  1136. FIND &T
  1137. STOR ' ' TO K
  1138. IF #=0
  1139. ERAS
  1140. @ 12,A+13 SAY NF  GET K
  1141. @ 13,A+13 SAY PRC
  1142. READ
  1143. STOR ' ' TO K
  1144. LOOP
  1145. ENDI
  1146. ELSE
  1147. GOTO TOP
  1148. ENDI
  1149. STOR 'O' TO K
  1150. DO WHILE K='O'
  1151. ERAS
  1152. STOR 'Y' TO PRI
  1153. @ 12,A+10  SAY 'Display Ingredients? (Y or N) ' GET PRI
  1154. READ
  1155. IF !(PRI)<>'Y'.AND.!(PRI)<>'N'
  1156. ERAS
  1157. @ 12,A+19 SAY INV
  1158. @ 13,A+13 SAY PRC GET PR
  1159. READ
  1160. STOR ' ' TO PR
  1161. LOOP
  1162. ELSE
  1163. STOR 'K' TO K
  1164. ENDI
  1165. ENDD
  1166. IF !(PRI)='Y'
  1167. USE &FITEM INDEX &NITEM
  1168. STOR 0 TO Z
  1169. STOR 25 TO COLLEN
  1170. DO WHILE .NOT.EOF.AND.Z=0
  1171. STOR 1 TO PT
  1172. ERAS
  1173. DO WHILE PT<21
  1174. STOR 0 TO COL
  1175. DO WHILE COL<(NUMCOL-COLLEN)
  1176. IF .NOT.EOF
  1177. @ PT,COL SAY ITEM
  1178. SKIP
  1179. ELSE
  1180. STOR 21  TO PT
  1181. STOR 133 TO COL
  1182. LOOP
  1183. ENDI
  1184. STOR COL+COLLEN TO COL
  1185. ENDD
  1186. STOR PT+1 TO PT
  1187. ENDD
  1188. @ 22,0 SAY 'Press enter to continue ' GET PR
  1189. @ 23,0 SAY '   or enter Q to stop'
  1190. READ
  1191. IF !(PR)='Q'
  1192. STOR 1 TO Z
  1193. ENDI
  1194. STOR ' ' TO PR
  1195. ENDD
  1196. USE &DGOURMET INDEX &TINDEX,&RINDEX
  1197. SELE SECO
  1198. USE &FSHOP
  1199. SELE PRIM
  1200. IF T<>' '
  1201. FIND &T
  1202. ENDI
  1203. ENDI
  1204. ERAS
  1205. @  8,A+13 SAY 'Enter 1 to 3 Ingredients'
  1206. @ 10,0    SAY 'First?  ' GET I1
  1207. @ 14,A+12 SAY 'To return to previous menu'
  1208. @ 15,A+13 SAY 'blank the 1st ingredient'
  1209. READ
  1210. IF I1=' '
  1211. LOOP
  1212. ENDI
  1213. @ 11,0 SAY 'Second? ' GET I2
  1214. READ
  1215. @ 12,0 SAY 'Third?  ' GET I3
  1216. READ
  1217. ERAS
  1218. STOR 0 TO HIT
  1219. ERAS
  1220. STOR 'Y' TO C
  1221. DO WHILE !(C)='Y'
  1222. STOR 1 TO I
  1223. DO WHILE I<21.AND.(TYPE=VAL(T).OR.T=' ').AND..NOT.EOF
  1224. @  7,A+11   SAY 'This may take several minutes,'
  1225. @  8,A+11   SAY ' depending on the number of'
  1226. @  9,A+11   SAY '    ingredients entered'
  1227. @ 12,A+11   SAY '       Searching ...'
  1228. STOR 0 TO OK
  1229. STOR 0 TO F1
  1230. STOR 0 TO F2
  1231. STOR 0 TO F3
  1232. STOR !(TRIM(I1)) TO VAR
  1233. STOR 0 TO OK
  1234. IF !(ITEM1)=VAR
  1235. STOR 1 TO OK
  1236. ENDI
  1237. IF !(ITEM2)=VAR
  1238. STOR 1 TO OK
  1239. ENDI
  1240. IF !(ITEM3)=VAR
  1241. STOR 1 TO OK
  1242. ENDI
  1243. IF !(ITEM4)=VAR
  1244. STOR 1 TO OK
  1245. ENDI
  1246. IF !(ITEM5)=VAR
  1247. STOR 1 TO OK
  1248. ENDI
  1249. IF !(ITEM6)=VAR
  1250. STOR 1 TO OK
  1251. ENDI
  1252. IF !(ITEM7)=VAR
  1253. STOR 1 TO OK
  1254. ENDI
  1255. IF !(ITEM8)=VAR
  1256. STOR 1 TO OK
  1257. ENDI
  1258. IF !(ITEM9)=VAR
  1259. STOR 1 TO OK
  1260. ENDI
  1261. IF !(ITEM10)=VAR
  1262. STOR 1 TO OK
  1263. ENDI
  1264. IF !(ITEM11)=VAR
  1265. STOR 1 TO OK
  1266. ENDI
  1267. IF !(ITEM12)=VAR
  1268. STOR 1 TO OK
  1269. ENDI
  1270. IF !(ITEM13)=VAR
  1271. STOR 1 TO OK
  1272. ENDI
  1273. IF !(ITEM14)=VAR
  1274. STOR 1 TO OK
  1275. ENDI
  1276. IF !(ITEM15)=VAR
  1277. STOR 1 TO OK
  1278. ENDI
  1279. STOR OK TO F1
  1280. IF $(I2,1,1)=' '
  1281. STOR 1 TO F2
  1282. ELSE
  1283. STOR !(TRIM(I2)) TO VAR
  1284. STOR 0 TO OK
  1285. IF !(ITEM1)=VAR
  1286. STOR 1 TO OK
  1287. ENDI
  1288. IF !(ITEM2)=VAR
  1289. STOR 1 TO OK
  1290. ENDI
  1291. IF !(ITEM3)=VAR
  1292. STOR 1 TO OK
  1293. ENDI
  1294. IF !(ITEM4)=VAR
  1295. STOR 1 TO OK
  1296. ENDI
  1297. IF !(ITEM5)=VAR
  1298. STOR 1 TO OK
  1299. ENDI
  1300. IF !(ITEM6)=VAR
  1301. STOR 1 TO OK
  1302. ENDI
  1303. IF !(ITEM7)=VAR
  1304. STOR 1 TO OK
  1305. ENDI
  1306. IF !(ITEM8)=VAR
  1307. STOR 1 TO OK
  1308. ENDI
  1309. IF !(ITEM9)=VAR
  1310. STOR 1 TO OK
  1311. ENDI
  1312. IF !(ITEM10)=VAR
  1313. STOR 1 TO OK
  1314. ENDI
  1315. IF !(ITEM11)=VAR
  1316. STOR 1 TO OK
  1317. ENDI
  1318. IF !(ITEM12)=VAR
  1319. STOR 1 TO OK
  1320. ENDI
  1321. IF !(ITEM13)=VAR
  1322. STOR 1 TO OK
  1323. ENDI
  1324. IF !(ITEM14)=VAR
  1325. STOR 1 TO OK
  1326. ENDI
  1327. IF !(ITEM15)=VAR
  1328. STOR 1 TO OK
  1329. ENDI
  1330. STOR OK TO F2
  1331. ENDI
  1332. IF $(I3,1,1)=' '
  1333. STOR 1 TO F3
  1334. ELSE
  1335. STOR !(TRIM(I3)) TO VAR
  1336. STOR 0 TO OK
  1337. IF !(ITEM1)=VAR
  1338. STOR 1 TO OK
  1339. ENDI
  1340. IF !(ITEM2)=VAR
  1341. STOR 1 TO OK
  1342. ENDI
  1343. IF !(ITEM3)=VAR
  1344. STOR 1 TO OK
  1345. ENDI
  1346. IF !(ITEM4)=VAR
  1347. STOR 1 TO OK
  1348. ENDI
  1349. IF !(ITEM5)=VAR
  1350. STOR 1 TO OK
  1351. ENDI
  1352. IF !(ITEM6)=VAR
  1353. STOR 1 TO OK
  1354. ENDI
  1355. IF !(ITEM7)=VAR
  1356. STOR 1 TO OK
  1357. ENDI
  1358. IF !(ITEM8)=VAR
  1359. STOR 1 TO OK
  1360. ENDI
  1361. IF !(ITEM9)=VAR
  1362. STOR 1 TO OK
  1363. ENDI
  1364. IF !(ITEM10)=VAR
  1365. STOR 1 TO OK
  1366. ENDI
  1367. IF !(ITEM11)=VAR
  1368. STOR 1 TO OK
  1369. ENDI
  1370. IF !(ITEM12)=VAR
  1371. STOR 1 TO OK
  1372. ENDI
  1373. IF !(ITEM13)=VAR
  1374. STOR 1 TO OK
  1375. ENDI
  1376. IF !(ITEM14)=VAR
  1377. STOR 1 TO OK
  1378. ENDI
  1379. IF !(ITEM15)=VAR
  1380. STOR 1 TO OK
  1381. ENDI
  1382. STOR OK TO F3
  1383. ENDI
  1384. IF F1=1.AND.F2=1.AND.F3=1
  1385. ERAS
  1386. ? STR(#,3),NAME
  1387. STOR 1 TO HIT
  1388. STOR 'Y' TO Q
  1389. STOR 0 TO O1
  1390. DO WHILE O1=0
  1391. @ 22,0 SAY WTE GET Q
  1392. READ
  1393. IF !(Q)<>'Y'.AND.!(Q)<>'N'
  1394. @ 23,0 SAY INV
  1395. LOOP
  1396. ELSE
  1397. STOR 1 TO O1
  1398. ENDI
  1399. ENDD
  1400. IF !(Q)='Y'
  1401. STOR 'Y' TO PRA
  1402. ERAS
  1403. IF !(O) = 'D'
  1404. SET FORM TO SCRE
  1405. STOR -23 TO F 
  1406. ELSE
  1407. STOR ' ' TO PR
  1408. @ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
  1409. READ
  1410. STOR ' ' TO PR
  1411. STOR 0 TO F
  1412. SET FORM TO PRIN
  1413. ENDI
  1414. @  0,0  SAY 'Record #' 
  1415. @  0,10 SAY #
  1416. @  1,0  SAY 'Category'
  1417. IF TYPE = 1
  1418. @  1,10 SAY '1 Appetizers'
  1419. ENDI
  1420. IF TYPE = 2
  1421. @  1,10 SAY '2 Salads'
  1422. ENDI
  1423. IF TYPE = 3
  1424. @  1,10 SAY '3 Main Dishes'
  1425. ENDI
  1426. IF TYPE = 4
  1427. @  1,10 SAY '4 Vegetable Dishes'
  1428. ENDI
  1429. IF TYPE = 5
  1430. @  1,10 SAY '5 Breads'
  1431. ENDI
  1432. IF TYPE = 6
  1433. @  1,10 SAY '6 Desserts'
  1434. ENDI
  1435. IF TYPE = 7
  1436. @  1,10 SAY '7 Cookies'
  1437. ENDI
  1438. @  2,0   SAY 'Name' 
  1439. @  2,10  SAY  NAME
  1440. @  3,0   SAY 'Remarks' 
  1441. @  3,10  SAY  REMARKS
  1442. @  5,0   SAY 'Ingredients'
  1443. @  7,A+6 SAY  ITEM1
  1444. @  8,A+6 SAY  ITEM2
  1445. @  9,A+6 SAY  ITEM3
  1446. @ 10,A+6 SAY  ITEM4
  1447. @ 11,A+6 SAY  ITEM5
  1448. @ 12,A+6 SAY  ITEM6
  1449. @ 13,A+6 SAY  ITEM7
  1450. @ 14,A+6 SAY  ITEM8
  1451. @ 15,A+6 SAY  ITEM9
  1452. @ 16,A+6 SAY  ITEM10
  1453. @ 17,A+6 SAY  ITEM11
  1454. @ 18,A+6 SAY  ITEM12
  1455. @ 19,A+6 SAY  ITEM13
  1456. @ 20,A+6 SAY  ITEM14
  1457. @ 21,A+6 SAY  ITEM15
  1458. IF !(O)='D'
  1459. @ 23,0  SAY PRC GET PR
  1460. READ
  1461. ERAS
  1462. ENDI
  1463. @ F+23,0   SAY 'Instructions' 
  1464. @ F+25,A+6 SAY  INSTRUCT1
  1465. @ F+26,A+6 SAY  INSTRUCT2
  1466. @ F+27,A+6 SAY  INSTRUCT3
  1467. @ F+28,A+6 SAY  INSTRUCT4
  1468. @ F+29,A+6 SAY  INSTRUCT5
  1469. @ F+30,A+6 SAY  INSTRUCT6
  1470. @ F+31,A+6 SAY  INSTRUCT7
  1471. @ F+32,A+6 SAY  INSTRUCT8
  1472. @ F+33,A+6 SAY  INSTRUCT9
  1473. @ F+34,A+6 SAY  INSTRUCT10
  1474. @ F+36,0   SAY 'Preparation Time'
  1475. @ F+37,0   SAY '(Minutes)'
  1476. @ F+37,11  SAY  PREPTIME 
  1477. @ F+39,0   SAY 'Serving Hints'
  1478. @ F+40,A+6 SAY  HINT1
  1479. @ F+41,A+6 SAY  HINT2
  1480. IF !(O)='D'
  1481. IF SHOP='Y'
  1482. @ 23,0  SAY PRO GET PRA
  1483. ELSE
  1484. @ 23,0  SAY PRC GET PR
  1485. ENDI
  1486. READ
  1487. STOR ' ' TO PR
  1488. ENDI
  1489. IF !(O)='P'
  1490. EJECT
  1491. SET FORM TO SCRE
  1492. IF SHOP='Y'
  1493. ERAS
  1494. @ 12,A+9  SAY PRO GET PRA
  1495. READ
  1496. ENDI
  1497. ERAS
  1498. ENDI
  1499. IF !(SHOP)='Y'.AND.!(PRA)='Y'
  1500. SELE SECO
  1501. APPE BLANK
  1502. REPL S.NAME   WITH P.NAME
  1503. REPL S.ITEM1  WITH P.ITEM1
  1504. REPL S.ITEM2  WITH P.ITEM2
  1505. REPL S.ITEM3  WITH P.ITEM3
  1506. REPL S.ITEM4  WITH P.ITEM4
  1507. REPL S.ITEM5  WITH P.ITEM5
  1508. REPL S.ITEM6  WITH P.ITEM6
  1509. REPL S.ITEM7  WITH P.ITEM7
  1510. REPL S.ITEM8  WITH P.ITEM8
  1511. REPL S.ITEM9  WITH P.ITEM9
  1512. REPL S.ITEM10 WITH P.ITEM10
  1513. REPL S.ITEM11 WITH P.ITEM11
  1514. REPL S.ITEM12 WITH P.ITEM12
  1515. REPL S.ITEM13 WITH P.ITEM13
  1516. REPL S.ITEM14 WITH P.ITEM14
  1517. REPL S.ITEM15 WITH P.ITEM15
  1518. SELE PRIM
  1519. ENDI
  1520. ENDI
  1521. ENDI
  1522. SKIP
  1523. STOR I+1 TO I
  1524. STOR 'Y' TO CS
  1525. IF HIT=1
  1526. ERAS
  1527. STOR  0  TO HIT
  1528. STOR  0  TO O1
  1529. DO WHILE O1=0
  1530. ERAS
  1531. @ 12,A+15 SAY 'Continue Searching? ' GET CS
  1532. @ 13,A+15 SAY '     (Y or N)'
  1533. READ
  1534. ERAS
  1535. IF !(CS)<>'N'.AND.!(CS)<>'Y'
  1536. ERAS
  1537. @ 12,A+19 SAY INV
  1538. @ 13,A+13 SAY PRC GET PR
  1539. READ
  1540. STOR ' ' TO PR
  1541. ERAS
  1542. LOOP
  1543. ELSE
  1544. STOR 1 TO O1
  1545. LOOP
  1546. ENDI
  1547. ENDD
  1548. ENDI
  1549. IF !(CS)='N'
  1550. STOR '0' TO T
  1551. STOR 'N' TO C
  1552. ENDI
  1553. ENDD
  1554. STOR 1   TO I
  1555. IF T<>'0'
  1556. IF T<>' '.AND.TYPE<>VAL(T)
  1557. ERAS
  1558. @ 12,A+13 SAY ENDS
  1559. @ 13,A+13 SAY PRC GET PR
  1560. READ
  1561. STOR 'N' TO C
  1562. STOR ' ' TO PR
  1563. ERAS
  1564. ELSE
  1565. IF EOF
  1566. ERAS
  1567. @ 12,A+13 SAY END
  1568. @ 13,A+13 SAY PRC GET PR
  1569. READ
  1570. STOR ' ' TO PR
  1571. ERAS
  1572. STOR 'N' TO C
  1573. ENDI
  1574. ENDI
  1575. ENDI
  1576. ENDD
  1577. ENDD
  1578. ENDI
  1579. IF D='4'
  1580. STOR 0 TO M7
  1581. DO WHILE M7=0
  1582. ERAS
  1583. @  1,A+11 SAY 'Recipe Selection by Category'
  1584. @  2,A+16 SAY '& Preparation Time'
  1585. @  4,A+10 SAY 'microGOURMET Recipe Categories'
  1586. @  6,A+18 SAY '1 Appetizers'
  1587. @  7,A+18 SAY '2 Salads'
  1588. @  8,A+18 SAY '3 Main Dishes'
  1589. @  9,A+18 SAY '4 Vegetable Dishes'
  1590. @ 10,A+18 SAY '5 Breads'
  1591. @ 11,A+18 SAY '6 Desserts'
  1592. @ 12,A+18 SAY '7 Cookies'
  1593. @ 14,A+10 SAY 'Enter the number of your choice ' GET T
  1594. @ 15,A+10 SAY '  or enter 0 for previous menu'
  1595. @ 17,A+10 SAY CLB
  1596. READ
  1597. IF (T<'0'.OR.T>'7').AND.T<>' '
  1598. ERAS
  1599. @ 12,A+19 SAY INV
  1600. @ 13,A+13 SAY PRC GET PR
  1601. READ
  1602. STOR ' ' TO PR
  1603. LOOP
  1604. ENDI
  1605. IF T='0'
  1606. ERAS
  1607. @ 12,A+16 SAY 'One Moment Please...'
  1608. STOR 1 TO M7
  1609. LOOP
  1610. ENDI
  1611. IF T<>' '
  1612. FIND &T
  1613. STOR ' ' TO K
  1614. IF #=0
  1615. ERAS
  1616. @ 12,A+13 SAY NF  GET K
  1617. @ 13,A+13 SAY PRC
  1618. READ
  1619. STOR ' ' TO K
  1620. LOOP
  1621. ENDI
  1622. ELSE
  1623. GOTO TOP
  1624. ENDI
  1625. ERAS
  1626. STOR '   ' TO PREP
  1627. @ 12,A+10 SAY 'Maximum Preparation Time? ' GET PREP
  1628. @ 13,A+17 SAY '(in minutes)'
  1629. @ 15,A+11 SAY 'Recipes will be found which'
  1630. @ 16,A+11 SAY '  do not exceed this time'
  1631. READ
  1632. STORE VAL(PREP) TO PTIME
  1633. ERAS
  1634. ERAS
  1635. STOR 'Y' TO C
  1636. STOR 0 TO HIT
  1637. DO WHILE !(C)='Y'
  1638. STOR 1 TO I
  1639. DO WHILE I<21.AND.(TYPE=VAL(T).OR.T=' ').AND..NOT.EOF
  1640. IF PREPTIME <= PTIME
  1641. @ I,0  SAY STR(#,3)
  1642. @ I,4  SAY NAME
  1643. @ I,34 SAY PREPTIME
  1644. @ I,37 SAY 'min'
  1645. STOR 1 TO HIT
  1646. STOR I+1 TO I
  1647. ENDI 
  1648. SKIP
  1649. ENDD
  1650. IF T<>' '.AND.TYPE<>VAL(T).AND.HIT=0
  1651. ERAS
  1652. @ 12,A+13 SAY ENDS
  1653. @ 13,A+13 SAY PRC GET PR
  1654. READ
  1655. STOR 'N' TO C
  1656. STOR ' ' TO PR
  1657. ERAS
  1658. ELSE
  1659. STOR 1 TO I
  1660. STOR 0 TO K1
  1661. IF HIT=1
  1662. @ 22,0 SAY SNC GET K1
  1663. @ 23,0 SAY PRC
  1664. ELSE
  1665. ERAS
  1666. @ 12,A+13 SAY NF  GET K
  1667. @ 13,A+13 SAY PRC
  1668. ENDI
  1669. READ
  1670. IF K1=0
  1671. IF HIT=1
  1672. ERAS
  1673. STOR 'Y' TO CS
  1674. STOR  0 TO O1
  1675. DO WHILE O1=0
  1676. ERAS
  1677. @ 12,A+15 SAY 'Continue Searching? ' GET CS
  1678. @ 13,A+15 SAY '     (Y or N)'
  1679. READ
  1680. ERAS
  1681. IF !(CS)<>'N'.AND !(CS)<>'Y'
  1682. ERAS
  1683. @ 12,A+19 SAY INV
  1684. @ 13,A+13 SAY PRC GET PR
  1685. READ
  1686. ERAS
  1687. STOR ' ' TO PR
  1688. LOOP
  1689. ELSE
  1690. STOR 1 TO O1
  1691. ENDI
  1692. ENDD
  1693. IF !(CS)='N'
  1694. STOR 'N' TO C
  1695. ENDI
  1696. ENDI
  1697. ELSE
  1698. SET INDEX TO &RINDEX
  1699. STOR 0 TO Z
  1700. DO WHILE Z=0
  1701. STOR STR(K1,5) TO K2
  1702. FIND &K2
  1703. IF #=0
  1704. @ 21,0 SAY 'Recipe Not Found'
  1705. @ 22,0 SAY 'Select a number    ' GET K1
  1706. @ 23,0 SAY '                                        '
  1707. READ
  1708. LOOP
  1709. ELSE
  1710. STOR 1 TO Z
  1711. LOOP
  1712. ENDI
  1713. ENDD
  1714. STOR 'Y' TO PRA
  1715. ERAS
  1716. IF !(O) = 'D'
  1717. SET FORM TO SCRE
  1718. STOR -23 TO F 
  1719. ELSE
  1720. STOR ' ' TO PR
  1721. @ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
  1722. READ
  1723. STOR ' ' TO PR
  1724. STOR 0 TO F
  1725. SET FORM TO PRIN
  1726. ENDI
  1727. @  0,0  SAY 'Record #' 
  1728. @  0,10 SAY #
  1729. @  1,0  SAY 'Category'
  1730. IF TYPE = 1
  1731. @  1,10 SAY '1 Appetizers'
  1732. ENDI
  1733. IF TYPE = 2
  1734. @  1,10 SAY '2 Salads'
  1735. ENDI
  1736. IF TYPE = 3
  1737. @  1,10 SAY '3 Main Dishes'
  1738. ENDI
  1739. IF TYPE = 4
  1740. @  1,10 SAY '4 Vegetable Dishes'
  1741. ENDI
  1742. IF TYPE = 5
  1743. @  1,10 SAY '5 Breads'
  1744. ENDI
  1745. IF TYPE = 6
  1746. @  1,10 SAY '6 Desserts'
  1747. ENDI
  1748. IF TYPE = 7
  1749. @  1,10 SAY '7 Cookies'
  1750. ENDI
  1751. @  2,0   SAY 'Name' 
  1752. @  2,10  SAY  NAME
  1753. @  3,0   SAY 'Remarks' 
  1754. @  3,10  SAY  REMARKS
  1755. @  5,0   SAY 'Ingredients'
  1756. @  7,A+6 SAY  ITEM1
  1757. @  8,A+6 SAY  ITEM2
  1758. @  9,A+6 SAY  ITEM3
  1759. @ 10,A+6 SAY  ITEM4
  1760. @ 11,A+6 SAY  ITEM5
  1761. @ 12,A+6 SAY  ITEM6
  1762. @ 13,A+6 SAY  ITEM7
  1763. @ 14,A+6 SAY  ITEM8
  1764. @ 15,A+6 SAY  ITEM9
  1765. @ 16,A+6 SAY  ITEM10
  1766. @ 17,A+6 SAY  ITEM11
  1767. @ 18,A+6 SAY  ITEM12
  1768. @ 19,A+6 SAY  ITEM13
  1769. @ 20,A+6 SAY  ITEM14
  1770. @ 21,A+6 SAY  ITEM15
  1771. IF !(O)='D'
  1772. @ 23,0  SAY PRC GET PR
  1773. READ
  1774. ERAS
  1775. ENDI
  1776. @ F+23,0   SAY 'Instructions' 
  1777. @ F+25,A+6 SAY  INSTRUCT1
  1778. @ F+26,A+6 SAY  INSTRUCT2
  1779. @ F+27,A+6 SAY  INSTRUCT3
  1780. @ F+28,A+6 SAY  INSTRUCT4
  1781. @ F+29,A+6 SAY  INSTRUCT5
  1782. @ F+30,A+6 SAY  INSTRUCT6
  1783. @ F+31,A+6 SAY  INSTRUCT7
  1784. @ F+32,A+6 SAY  INSTRUCT8
  1785. @ F+33,A+6 SAY  INSTRUCT9
  1786. @ F+34,A+6 SAY  INSTRUCT10
  1787. @ F+36,0   SAY 'Preparation Time'
  1788. @ F+37,0   SAY '(Minutes)'
  1789. @ F+37,11  SAY  PREPTIME 
  1790. @ F+39,0   SAY 'Serving Hints'
  1791. @ F+40,A+6 SAY  HINT1
  1792. @ F+41,A+6 SAY  HINT2
  1793. IF !(O)='D'
  1794. IF SHOP='Y'
  1795. @ 23,0  SAY PRO GET PRA
  1796. ELSE
  1797. @ 23,0  SAY PRC GET PR
  1798. ENDI
  1799. READ
  1800. STOR ' ' TO PR
  1801. ENDI
  1802. IF !(O)='P'
  1803. EJECT
  1804. SET FORM TO SCRE
  1805. IF SHOP='Y'
  1806. ERAS
  1807. @ 12,A+9  SAY PRO GET PRA
  1808. READ
  1809. ENDI
  1810. ENDI
  1811. ERAS
  1812. IF !(SHOP)='Y'.AND.!(PRA)='Y'
  1813. SELE SECO
  1814. APPE BLANK
  1815. REPL S.NAME   WITH P.NAME
  1816. REPL S.ITEM1  WITH P.ITEM1
  1817. REPL S.ITEM2  WITH P.ITEM2
  1818. REPL S.ITEM3  WITH P.ITEM3
  1819. REPL S.ITEM4  WITH P.ITEM4
  1820. REPL S.ITEM5  WITH P.ITEM5
  1821. REPL S.ITEM6  WITH P.ITEM6
  1822. REPL S.ITEM7  WITH P.ITEM7
  1823. REPL S.ITEM8  WITH P.ITEM8
  1824. REPL S.ITEM9  WITH P.ITEM9
  1825. REPL S.ITEM10 WITH P.ITEM10
  1826. REPL S.ITEM11 WITH P.ITEM11
  1827. REPL S.ITEM12 WITH P.ITEM12
  1828. REPL S.ITEM13 WITH P.ITEM13
  1829. REPL S.ITEM14 WITH P.ITEM14
  1830. REPL S.ITEM15 WITH P.ITEM15
  1831. SELE PRIM
  1832. ENDI
  1833. SET INDEX TO &TINDEX
  1834. STOR 'Y' TO CS
  1835. STOR  0 TO O1
  1836. DO WHILE O1=0
  1837. ERAS
  1838. @ 12,A+15 SAY 'Continue Searching? ' GET CS
  1839. @ 13,A+15 SAY '     (Y or N)'
  1840. READ
  1841. ERAS
  1842. IF !(CS)<>'N'.AND !(CS)<>'Y'
  1843. ERAS
  1844. @ 12,A+19 SAY INV
  1845. @ 13,A+13 SAY PRC GET PR
  1846. READ
  1847. ERAS
  1848. STOR ' ' TO PR
  1849. LOOP
  1850. ELSE
  1851. STOR 1 TO O1
  1852. ENDI
  1853. ENDD
  1854. IF !(CS)='N'
  1855. STOR 'N' TO C
  1856. ELSE
  1857. IF T<>' '
  1858. FIND &T
  1859. ELSE
  1860. GOTO TOP
  1861. ENDI
  1862. ENDI
  1863. ENDI                         
  1864. IF EOF.AND.HIT=1
  1865. ERAS
  1866. @ 12,A+13 SAY END
  1867. @ 13,A+13 SAY PRC GET PR
  1868. READ
  1869. STOR ' ' TO PR
  1870. ERAS
  1871. STOR 'N' TO C
  1872. ENDI
  1873. IF HIT=0
  1874. STOR 'N' TO C
  1875. ENDI
  1876. STOR 0 TO HIT
  1877. ENDI
  1878. ENDD
  1879. ENDD
  1880. ENDI
  1881. ENDD
  1882. CASE M='3'
  1883. STOR 0 TO M4
  1884. DO WHILE M4=0
  1885. ERAS
  1886. @  3,A+15 SAY 'microGOURMET Data Base'
  1887. @  4,A+18 SAY 'Maintenance Menu'
  1888. @  6,A+17 SAY '1 Add    Recipe(s)'
  1889. @  7,A+17 SAY '2 Change Recipe(s)'
  1890. @  8,A+17 SAY '3 Delete Recipe(s)'
  1891. @  9,A+17 SAY '4 Update Ingredient Index'
  1892. @ 10,A+17 SAY '5 Create Ingredient Index'
  1893. @ 11,A+17 SAY '6 Create Record     Index'
  1894. @ 12,A+17 SAY '7 Create Category   Index'
  1895. @ 14,A+10 SAY 'Enter the number of your choice ' GET FM
  1896. @ 15,A+10 SAY '     or enter ? for help'
  1897. @ 16,A+10 SAY '  or enter 0 for previous menu'
  1898. READ
  1899. IF (FM<'0'.OR.FM>'7').AND.FM<>'?'
  1900. ERAS
  1901. @ 12,A+19 SAY INV
  1902. @ 13,A+13 SAY PRC GET PR
  1903. READ
  1904. STOR ' ' TO PR
  1905. LOOP
  1906. ENDI
  1907. IF FM='?'
  1908. ERAS
  1909. @  1,A+6 SAY '           microGOURMET Help'
  1910. @  2,A+6 SAY 'Options 1 to 3 maintain the  data  base.'
  1911. @  3,A+6 SAY 'You can add, change  or  delete recipes.'
  1912. @  4,A+6 SAY 'dBASE II  commands  APPEND and  EDIT are' 
  1913. @  5,A+6 SAY 'are used here.  You  should be  familiar'
  1914. @  6,A+6 SAY 'with them before proceeding.  You should'
  1915. @  7,A+6 SAY 'also make sure to  install  dBASE II  so'
  1916. @  8,A+6 SAY 'that the number of  columns  matches the'
  1917. @  9,A+6 SAY 'number which you have on the screen.'
  1918. @ 11,A+6 SAY 'Options 4 and 5 will update or  create a'
  1919. @ 12,A+6 SAY 'the ingredient index.  Use  option 4  if'
  1920. @ 13,A+6 SAY 'you add  recipes or change  ingredients.' 
  1921. @ 14,A+6 SAY 'Use option 5 after  deleting  recipes or'
  1922. @ 15,A+6 SAY 'ingredients. Use them sparingly, because'
  1923. @ 16,A+6 SAY 'they could take an hour or more to do.'
  1924. @ 18,A+6 SAY 'Use option  6 after adding  recipes, and'
  1925. @ 19,A+6 SAY 'Option 7 only if you suspect problems.'
  1926. @ 21,A+6 SAY 'Details of using these  functions are in'
  1927. @ 22,A+6 SAY 'the  manual under Data Base Maintenance.'
  1928. @ 23,A+6 SAY PRC GET PR
  1929. READ
  1930. STOR ' ' TO PR
  1931. ERAS
  1932. LOOP
  1933. ENDI
  1934. IF FM='0'
  1935. ERAS
  1936. @ 12,A+16 SAY 'One Moment Please...'
  1937. STOR 1 TO M4
  1938. LOOP
  1939. ENDI
  1940. IF FM='1'
  1941. STOR 'Y' TO ADR
  1942. ERAS
  1943. @ 11,A+9 SAY 'You must have space on the disk'
  1944. @ 12,A+9 SAY 'drive which has the recipes on it'
  1945. @ 14,A+9 SAY 'Do you want to continue? ' GET ADR
  1946. READ
  1947. IF !(ADR)='N'
  1948. LOOP
  1949. ELSE
  1950. SET COLON ON
  1951. SET BELL  ON
  1952. APPE
  1953. SET COLON OFF
  1954. SET BELL  OFF
  1955. LOOP
  1956. ENDI
  1957. ENDI
  1958. IF FM='2'
  1959. SET COLON ON
  1960. SET BELL  ON
  1961. ERAS 
  1962. EDIT
  1963. SET COLON OFF
  1964. SET BELL  OFF
  1965. LOOP
  1966. ENDI
  1967. IF FM='3'
  1968. SET COLON ON
  1969. SET BELL  ON
  1970. ERAS 
  1971. @ 1,0 SAY 'Press control-U to delete a record'
  1972. @ 2,0 SAY '(after entering the record number)'
  1973. @ 3,0 SAY ' '
  1974. EDIT
  1975. SET COLON OFF
  1976. SET BELL  OFF
  1977. STOR 'N' TO DER
  1978. ERAS
  1979. @ 11,A+8  SAY 'Delete the record(s) permanently? ' GET DER
  1980. @ 12,A+21 SAY '(Y or N)'
  1981. READ
  1982. IF !(DER)='Y'
  1983. ERAS
  1984. @ 11,A+9 SAY 'Please wait while the'
  1985. @ 12,A+9 SAY 'data base is updated'
  1986. PACK
  1987. ENDI
  1988. ENDI
  1989. IF FM='4'.OR.FM='5'
  1990. STOR 'Y' TO ADR
  1991. ERAS
  1992. @ 11,A+10 SAY 'This process takes about an hour'
  1993. @ 12,A+10 SAY '   Do you want to continue? ' GET ADR
  1994. READ
  1995. IF !(ADR)='N'
  1996. LOOP
  1997. ENDI
  1998. SET EXACT ON
  1999. IF FM='4'
  2000. STOR 2 TO INGRED
  2001. ENDI
  2002. IF FM='5'
  2003. STOR 3 TO INGRED
  2004. ENDI 
  2005. IF INGRED=3
  2006. ERAS
  2007. @ 12,A+10 SAY 'Re-creating ingredient index...'
  2008. USE &FITEM
  2009. COPY STRU TO INGREDNT
  2010. USE INGREDNT
  2011. DELE FILE &FITEM
  2012. DELE FILE &NITEM
  2013. INDEX ON ITEM TO &NITEM
  2014. USE &DGOURMET
  2015. SELE SECO
  2016. USE INGREDNT INDEX &NITEM
  2017. SELE PRIM
  2018. ELSE
  2019. ERAS
  2020. @ 12,A+12 SAY 'Updating ingredient index...'
  2021. USE &DGOURMET
  2022. SELE SECO
  2023. USE &FITEM INDEX &NITEM
  2024. SELE PRIM
  2025. ENDI
  2026. STOR 1 TO N
  2027. STOR 25 TO COLLEN
  2028. DO WHILE .NOT.EOF
  2029. @ 13,A+14 SAY 'Reading Recipe Record'
  2030. @ 13,A+35 SAY #
  2031. DO WHILE N<=15
  2032. IF N=1
  2033. STOR $(ITEM1,1,COLLEN) TO I
  2034. ENDI
  2035. IF N=2
  2036. STOR $(ITEM2,1,COLLEN) TO I
  2037. ENDI
  2038. IF N=3
  2039. STOR $(ITEM3,1,COLLEN) TO I
  2040. ENDI
  2041. IF N=4
  2042. STOR $(ITEM4,1,COLLEN) TO I
  2043. ENDI
  2044. IF N=5
  2045. STOR $(ITEM5,1,COLLEN) TO I
  2046. ENDI
  2047. IF N=6
  2048. STOR $(ITEM6,1,COLLEN) TO I
  2049. ENDI
  2050. IF N=7
  2051. STOR $(ITEM7,1,COLLEN) TO I
  2052. ENDI
  2053. IF N=8
  2054. STOR $(ITEM8,1,COLLEN) TO I
  2055. ENDI
  2056. IF N=9
  2057. STOR $(ITEM9,1,COLLEN) TO I
  2058. ENDI
  2059. IF N=10
  2060. STOR $(ITEM10,1,COLLEN) TO I
  2061. ENDI
  2062. IF N=11
  2063. STOR $(ITEM11,1,COLLEN) TO I
  2064. ENDI
  2065. IF N=12
  2066. STOR $(ITEM12,1,COLLEN) TO I
  2067. ENDI
  2068. IF N=13
  2069. STOR $(ITEM13,1,COLLEN) TO I
  2070. ENDI
  2071. IF N=14
  2072. STOR $(ITEM14,1,COLLEN) TO I
  2073. ENDI
  2074. IF N=15
  2075. STOR $(ITEM15,1,COLLEN) TO I
  2076. ENDI
  2077. IF $(I,1,1)<>' '
  2078. STOR 1 TO J
  2079. DO WHILE J<=COLLEN
  2080. STOR $(I,J,1) TO K
  2081. IF K=','.OR.K='.'.OR.((K<'a'.OR.K>'z').AND.(K<'A'.OR.K>'Z').AND.K<>' '.AND.K<>'&'.AND.K<>'-'.AND.K<>"'")
  2082. IF $(I,1,(J-2))=' '
  2083. STOR $(I,1,(J-2)) TO I
  2084. ELSE
  2085. STOR $(I,1,(J-1)) TO I
  2086. ENDI
  2087. STOR COLLEN+1 TO J
  2088. ENDI
  2089. STOR J+1 TO J
  2090. ENDD
  2091. SELE SECO
  2092. FIND &I
  2093. IF #=0
  2094. APPE BLANK
  2095. REPL ITEM WITH I
  2096. @ 14,A+10 SAY 'Writing Ingredient Record'
  2097. @ 14,A+35 SAY #
  2098. ENDI
  2099. ENDI
  2100. STOR N+1 TO N
  2101. ENDD
  2102. SELE PRIM
  2103. SKIP
  2104. STOR 1 TO N
  2105. ENDD
  2106. USE &DGOURMET INDEX &TINDEX,&RINDEX
  2107. SELE SECO
  2108. USE &FSHOP
  2109. SELE PRIM
  2110. SET EXACT OFF
  2111. IF INGRED=3
  2112. RENA INGREDNT.DBF TO &FITEM
  2113. ENDI
  2114. ENDI
  2115. ENDI
  2116. ENDI
  2117. IF FM='6'
  2118. ERAS
  2119. @ 12,A+16 SAY 'One Moment Please...'
  2120. USE &FSHOP
  2121. DELE FILE &RINDEX
  2122. USE &DGOURMET
  2123. INDEX ON # TO &RINDEX
  2124. USE &DGOURMET INDEX &TINDEX,&RINDEX
  2125. SELE SECO
  2126. USE &FSHOP
  2127. SELE PRIM
  2128. ENDI
  2129. IF FM='7'
  2130. ERAS
  2131. @ 12,A+16 SAY 'One Moment Please...'
  2132. USE &FSHOP
  2133. DELE FILE &TINDEX
  2134. USE &DGOURMET
  2135. INDEX ON TYPE TO &TINDEX
  2136. USE &DGOURMET INDEX &TINDEX,&RINDEX
  2137. SELE SECO
  2138. USE &FSHOP
  2139. SELE PRIM
  2140. ENDI
  2141. ENDD
  2142. ENDC
  2143. ENDD
  2144.