'N' .AND. EOPTIADD INV ADD SIG#©BACKORDRSIGÌ COMPLETESIGÙDATABASEDOCí?DUPCHECKSIG,DUPREC SIG2%EDIT INVWEDIT SIGn+INVENT INV™LABELS INV©LABELS SIGÀ MAIN INVËMAIN SIGã)MAINTAININV #MAINTAINSIG/$MENU SIGS ORDERS NDX\PRINT INVl PRINT SIGx PURGE SIG… REPORT INVŽREPORT SIG­5REQUIRE INVâ SEARCH INVíSEARCH SIG  SEARCH1 SIG)žSHIP INVÇ SHIPPED SIGÓSIG/M CMDçUSIG/M DBF<HSIG/M FRM„STOCK DBF†€VERIFDELSIGVERIFNEWSIGVOUCHER SIG3WSFILE SIGK"ÿSTOCK DBF†€ÿ DO CASE ÿ * Each case below is a negativÿ test. Date is valid *ÿSEARCH SIGÊÿSEARCH1 SIGéÿSHIP INV† ÿSHIPPED SIG’ÿSIG/M CMD¤Rÿif none of the tests prove true* add.inv 08/18/83 *********************************************************************** * THIS MODULE ADDS RECORDS TO THE INVENTORY FILE * SINCE THE DATA BASE FOR THE .INV FILES IN NOT * INDEXED IT DOES NOT CONTAIN AN INDEX MODULE. * IN ADDITION, BECAUSE THE FILE IS IMMEDIATELY * AVAILABLE FOR EDITING WITHOUT HAVING TO WAIT * FOR THE INDEXING, IT IS NOT NECESSARY TO ADD AN * OPTION ALLOWING THE USER TO HAVE A SECOND TRY AT * CORRECTING DATA. *********************************************************************** ERASE STORE t TO first STORE t TO more DO WHILE more IF first STORE 'Add Volumes Module' TO mode STORE 'Enter as many new volumes as needed.' TO prompt1 STORE 'When done, enter blank for volume number' TO prompt2 STORE "Or Control 'Q' to end session" TO prompt3 @ 1,25 SAY mode @ 2, 0 SAY "+---------------------------------------" @ 2,39 SAY "---------------------------------------+" @ 3,26 SAY "SIG/M VOLUME" @ 5,14 SAY "Opening Inventory Description of Volume" @ 7,19 SAY "Back Ordered" @ 8,15 SAY "Waiting Shipment" @ 9,14 SAY "Quantity Received" @ 10,14 SAY "Closing Inventory" @ 12,19 SAY "Normal Stock" @ 13,14 SAY "Quantity to Order" @ 14,15 SAY "Quantity Ordered" @ 17,51 SAY "Update" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 ENDIF first STORE f TO first ENDIF first STORE f TO first STORE ' ' TO mdisk STORE ' ' TO mopen:inv STORE ' ' TO mback:ord STORE ' ' TO mwait:ship STORE ' ' TO mrecvd STORE ' ' TO mnorm:stk STORE ' ' TO morder STORE ' ' TO mpend STORE ' ' TO mline1 STORE ' ' TO mline2 STORE DATE() to mdayu @ 3,39 GET mdisk picture '999' @ 7,46 GET mline1 @ 8,46 GET mline2 @ 5,34 GET mopen:inv PICTURE '99' @ 7,34 GET mback:ord PICTURE '99' @ 8,34 GET mwait:ship PICTURE '99' @ 9,34 GET mrecvd PICTURE '99' @ 12,34 GET mnorm:stk PICTURE '99' @ 13,34 GET morder PICTURE '99' @ 14,34 GET mpend PICTURE '99' @ 17,59 GET mdayu picture '99/99/99' READ CLEAR GETS IF mdisk <> ' ' APPEND BLANK REPLACE disk WITH VAL(mdisk) REPLACE open:inv WITH VAL(mopen:inv), back:ord WITH VAL(mback:ord) REPLACE wait:ship WITH VAL(mwait:ship), recvd WITH VAL(mrecvd) REPLACE norm:stk WITH VAL(mnorm:stk) REPLACE order WITH VAL(morder), pend WITH VAL(mpend) REPLACE line1 WITH mline1, line2 WITH mline2, dayu WITH mdayu STORE t TO more ELSE STORE f TO more ENDIF there is an empty record ENDDO while more RELEASE ALL STORE t TO first * add.sig 08/18/83 ******************************************************************* * THIS MODULE ADDS RECORDS TO THE ORDERS (SIG/M) DATA BASE. * IT IS WELL WORTH PRINTING OUT AND STUDYING BECAUSE IT CON- * TAINS MANY PRACTICAL HINTS FOR WRITING A dBASE PROGRAM. * COMMENTS ARE INSERTED AT APPROPRIATE POINTS IN THE FILE. * COMMENTS ALREADY IN MAIN.SIG ARE NOT REPEATED. ****************************************************************** * WE WANT TO GET RID OF THE INDEX WHEN WE ADD. IF YOU * HAVE A SMALL DATA BASE IT IS OK - BUT OTHERWISE YOU * HAVE TO WAIT FOR EACH RECORD TO BE INDEXED. MOST COMMERCIAL * PROGRAMS INDEX EVERY TIME AND IT COSTS YOU TIME. HERE WE * GIVE YOU THE OPTION OF INDEXING OR NOT WHEN YOU EXIT. IF * YOU DO NOT, THE RECORDS ARE THERE, BUT YOU WILL NOT FIND * THEM EXCEPT BY THE STRING SEARCH IN SEARCH1.SIG (SINCE IT * USES THE 'LOCATE FOR' COMMAND TO FIND NON INDEXED DATA. * THE INDEX IS STILL ON - SO WE TAKE IT OFF SET INDEX TO ERASE STORE t TO first STORE t TO more * because we use three screens in this add - it makes for a neater * screen if we get rid of the colons around the add field SET COLON OFF DO WHILE more IF first * get record number for automatic order number addition GOTO bottom @ 2, 0 SAY "+---------------------------------------" @ 2,39 SAY "---------------------------------------+" @ 3, 5 SAY "ORDER NUMBER:" @ 3,43 SAY "Complete:" @ 3,60 SAY "Backorder:" @ 4, 8 SAY "Last name:" @ 4,46 SAY "First:" @ 5,10 SAY "Address:" @ 6, 9 SAY "(line 2):" @ 7, 9 SAY "(line 3):" @ 8,13 SAY "City:" @ 8,46 SAY "State:" @ 8,65 SAY "ZIP:" @ 9,11 SAY "Amount:" @ 9,46 SAY "Enter:" @ 9,64 SAY "Ship:" @ 11,00 SAY "Enter Individual Volumes Ordered (999 when done): " @ 12, 2 SAY "Volumes:" @ 14, 2 SAY "Remarks:" @ 15, 2 SAY "Remarks:" @ 16, 0 SAY "Backorder:" @ 17,44 SAY "Catalog:" @ 18, 2 SAY "Shipped:" @ 18,26 SAY "Shipped:" @ 18,62 SAY "Update:" @ 19, 0 SAY "+---------------------------------------" @ 19,39 SAY "---------------------------------------+" ENDIF first STORE f TO first * IN SIG/M.CMD WE HAVE SAVED OUR VARIABLES AS A FILE ADD.MEM. WE NOW * BRING THEM UP (NOTE - IN ADD.INV WHERE ARE VARIABLES ARE ESSENTIALLY * NUMERIC WE DO NOT USE THIS METHOD. IF YOU RUN THE SAME PROGRAM ON * BOTH CP/M 80 AND CP/M 86 FIRST DELETE ALL .MEM FILES AS THEY CANNOT * BE MOVED BETWEEN OPERATING SYSTEMS. RESTORE FROM ADD * WE ASSUME ENTER DATE IS TODAY STORE DATE() TO mentered STORE DATE() TO mshipped * we went to the bottom of the file - i.e. the last record - * we add one to that and get 4 digits of the order number STORE # TO ord:num STORE ord:num + 1 TO ord:num * change to character field from numeric STORE STR(ord:num,4,0) TO ord:num1 * however, we want the order number to give us some date data * so we will use the date as part of the order number * it will be nnnnMMDDY. only way to get a duplicate order number * would be to add records, delete, pack and add more records on same * so please - pack at the end of the day STORE ord:num1 + $(DATE(),1,2) + $(DATE(),4,2) + $(DATE(),8,1) TO morder STORE 'Y' TO mcomp STORE 'N' TO mback STORE 'N' TO mcatalog STORE 'Add Records Module' TO mode STORE 'Enter as many records as you want.' TO prompt1 STORE "When done, enter 'blank' for last name" TO prompt2 STORE "or Control 'Q' to end session" TO prompt3 IF $(DATE(),1,2) <> '00' .AND. mdayu = ' ' STORE DATE() to mdayu ENDIF STORE DATE() TO mshipped * NOTE THE SHIFTS BETWEEN GET AND SAY. THIS SCREEN IS * REALLY A 3 STAGE SCREEN. THE FIRST PART CONTAINS THE * CUSTOMER DATA. THEN WE INPUT ALL VOLUMES ORDERED AND * THE PROGRAM AUTOMATICALLY WRITES THEM TO THE FILE * UNTIL FINISHED. BECAUSE OF THIS WE WANT TO MAKE SURE * DATA FROM THE LAST RECORD IS ELIMINATED. *FIRST MAKE SURE WE WANT TO ADD A RECORD @ 1,25 SAY mode @ 3,19 SAY morder picture '999999999' @ 3,53 SAY ' ' @ 3,71 SAY ' ' @ 4,19 GET mlname @ 4,53 SAY mfname @ 5,19 SAY maddr1 @ 6,19 SAY maddr2 @ 7,19 SAY maddr3 @ 8,19 SAY mcity @ 8,53 SAY mstate picture '!!' @ 8,70 SAY mzip picture '99999' @ 9,19 SAY ' ' @ 9,53 SAY ' ' @ 11,62 SAY mstatus @ 12,11 SAY mvol1 @ 14,11 SAY mrem1 @ 15,11 SAY mrem2 @ 16,11 SAY mbo @ 17,53 SAY ' ' @ 18,11 SAY ' ' @ 18,35 SAY ' ' @ 18,70 SAY ' ' @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 READ * IF WE DO WANT TO ADD A RECORD - THEN DO IT IF mlname <> ' ' @ 1,25 SAY mode @ 3,19 SAY morder picture '999999999' @ 3,53 SAY ' ' @ 3,71 SAY ' ' @ 4,19 SAY mlname @ 4,53 GET mfname @ 5,19 GET maddr1 @ 6,19 GET maddr2 @ 7,19 GET maddr3 @ 8,19 GET mcity @ 8,53 GET mstate picture '!!' @ 8,70 GET mzip picture '99999' @ 9,19 GET mamt @ 9,53 SAY mentered picture '99/99/99' @ 11,62 SAY mstatus @ 12,11 SAY mvol1 @ 14,11 SAY mrem1 @ 15,11 SAY mrem2 @ 16,11 SAY mbo @ 17,53 SAY ' ' @ 18,11 SAY mbo:ship picture '99/99/99' @ 18,35 SAY mbo2:ship picture '99/99/99' @ 18,70 SAY mdayu picture '99/99/99' @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 READ * ALWAYS USE CLEAR GETS AFTER GETS. OTHERWISE YOUR PROGRAM WILL * HAVE A HEART ATTACK. SEE PAGE 71 OF THE dbase manual CLEAR GETS * WE NOW GO TO PART 2 OF THE SCREEN. WE STORE 999 * TO MVOL SO THAT ON OUR LAST RECORD WE CAN EXIT THE ADD EASIER STORE t TO getit STORE ' ' TO mstatus * ADD AS MANY RECORDS AS YOU WANT. MSTATUS SHOWS WHETHER THE * ITEM WAS IN STOCK. MVOL1 SHOWS WHAT WAS IN STOCK, MBO WHAT WAS * BACKORDERED. IF 999 NO MORE VOLUMES DO WHILE getit @ 11,62 SAY mstatus @ 12,11 SAY mvol1 @ 16,11 SAY mbo @ 11,48 GET mvol READ CLEAR GETS IF mvol = 999 STORE f TO getit STORE ' ' TO mstatus store f TO avoid * IF THE VOLUME WAS NOT 999 GO TO THE OTHER DATA BASE ELSE USE STOCK * FIND THE RECORD FOR THAT VOLUME. WE USE THE +1 BECAUSE OF VOL. 0 * YOU COULD JUST AS EASILY (ALTHOUGH SLIGHTLY SLOWER) FIND * ANY DATA IN AN INDEXED OR NON-INDEXED FILE. * YOU COULD ALSO USE THE SELECT PRIMARY AND SECONDARY COMMAND HERE - * BUT FOR THIS DATA BASE, THIS IS THE SIMPLEST WAY OF DOING IT. LOCATE FOR # = mvol + 1 * IF THE VOLUME WAS IN THE FILE IF .NOT. EOF GOTO mvol + 1 * WE NEED ANOTHER CONTROL VARIABLE - WITHOUT IT VOLUMES NOT * IN THE FILE WOUND UP BEING WRITTEN TO THE BACKORDERED LIST STORE t TO avoid * WE NOW WRITE TO THE OTHER FILE AND ADJUST THE INVENTORY IF open:inv - back:ord - wait:ship + recvd + pend > 0 REPLACE change1 WITH t REPLACE open:inv WITH open:inv -1 STORE 'IN STOCK ' to mstatus REPLACE ship WITH ship + 1 REPLACE daych1 WITH mentered ELSE REPLACE change2 WITH t REPLACE back:ord WITH back:ord+1 STORE 'BACKORDER' TO mstatus REPLACE backship WITH backship + 1 REPLACE daych2 WITH mentered ENDIF open:inv ELSE * if no such volume STORE 'TRY AGAIN ' TO mstatus STORE f TO avoid ENDIF .not. eof * BACK TO OUR MAIN DATA BASE * TELL THEM WHAT YOU FOUND AT STATUS AND LIST IT ON THE ORDER OR BACKORDER LINE * NOTE HOW WE BUILD UP THE STRING THAT IS THE LIST OF VOLUMES USE SIG/M IF avoid = t IF mstatus = 'IN STOCK' STORE TRIM(mvol1) + STR(mvol,3,0) + ',' TO mvol1 ELSE STORE TRIM(mbo) + STR(mvol,3,0) + ',' TO mbo ENDIF mstatus = 'IN STOCK" ENDIF avoid ENDIF mvol ENDDO while getit * BLANK THE STATUS LINE AND GO TO PART 3 OF THE SCREEN AFTER 999 * NOTE THAT YOU NEED NOT ENTER DATA IN THE ORDER IT APPEARS ON * THE SCREEN - WE DON'T KNOW IF THE ORDER IS COMPLETE OR BACKORDERED * UNTIL THE END. YOU SET THE ORDER - BUT DON'T DRIVE THE USER CRAZY. STORE ' ' TO mstatus @ 11,62 SAY mstatus @ 14,11 GET mrem1 @ 15,11 GET mrem2 @ 17,53 GET mcatalog picture '!' @ 18,11 GET mbo:ship picture '99/99/99' @ 18,35 GET mbo2:ship picture '99/99/99' @ 9,70 GET mshipped picture '99/99/99' @ 3,53 GET mcomp picture '!' @ 3,71 GET mback picture '!' READ CLEAR GETS * DETERMINE IF THERE IS INCOMPLETE OR INCORRECT DATA. THIS PART OF THE * PROGRAM CAN HANDLE A SUBSTANTIAL EDITING MODULE - DO CASE CASE .NOT. (mcomp = 'Y' .OR. mcomp = 'N') STORE t TO error CASE .NOT. (mback = 'Y' .OR. mback = 'N') STORE t TO error CASE .NOT. (mcatalog = 'Y' .OR. mcatalog = 'N' .OR. mcatalog = 'B') STORE t TO error OTHERWISE STORE f TO error ENDCASE IF error @ 01,00 @ 20,00 @ 21,00 @ 22,00 @ 1,18 SAY 'Please Correct the Indicated Data' STORE t to an:error DO WHILE an:error DO CASE CASE .NOT. (mcomp = 'Y' .OR. mcomp = 'N') @ 21,15 SAY 'Must answer "Y" or "N" if shipping completed ' @ 3,53 GET mcomp picture '!' READ CASE .NOT. (mback = 'Y' .OR. mback = 'N') @ 21,15 SAY 'Must answer "Y" or "N" is shipment backordered ' @ 3,71 GET mback picture '!' READ CASE .NOT. (mcatalog = 'Y' .OR. mcatalog = 'N' .OR. mcatalog = 'B') @ 21,15 SAY 'Catalog is either "Y", "N" or "B" (backordered)' @ 17,53 GET mcatalog picture '!' READ OTHERWISE STORE f TO an:error ENDCASE ENDDO while an:error ENDIF error * GIVE THEM A SECOND TRY AT THE DATA. IN MOST CASES IT WILL BE CORRECT, BUT * WHY NOT GIVE THEM ANOTHER CRACK. IT IS SIMPLER TO REPEAT THE WHOLE ROUTINE * ALTHOUGH YOU COULD LOOP BACK TO THE BEGINNING. WE ALSO WANT A WAY TO * READJUST THE INVENTORY INCASE YOU PUT IN A WRONG VOLUME. STORE 'Y' TO command @ 20,00 @ 21,00 @ 22,00 @ 21,15 SAY 'IS THE ABOVE CORRECT ? ' @ 21,48 GET command picture '!' READ @ 21,00 IF command = 'N' ERASE @ 04,00 SAY "DO YOU WANT TO ELIMINATE ANY VOLUMES ON THE ORDERED OR BACKORDER LIST ? " @ 04,70 GET command picture '!' READ IF command = 'Y' @ 06,00 SAY "Items you enter here will automatically be adjusted in the Inventory." @ 07,00 SAY "After you have made the changes you will then be able to edit" @ 08,00 SAY "the list of disks shipped and/or backordered." @ 09,00 SAY "Enter 999 when done" STORE t TO getit STORE 999 TO mvol DO WHILE getit @ 11,10 SAY "INVENTORY TO BE ADJUSTED FOR VOLUME " @ 14,02 SAY "Volumes" @ 14,11 SAY mvol1 @ 16,00 SAY "Backorder" @ 16,11 SAY mbo @ 11,48 GET mvol READ CLEAR GETS IF mvol = 999 STORE f TO getit ELSE USE STOCK LOCATE FOR # = mvol + 1 IF .NOT. EOF GOTO mvol + 1 DO CASE CASE open:inv - back:ord - wait:ship + recvd + pend > 0 REPLACE open:inv WITH open:inv +1 REPLACE ship WITH ship -1 CASE (open:inv - back:ord - wait:ship + recvd + pend = 0 .AND. back:ord = 0) REPLACE open:inv WITH open:inv + 1 REPLACE ship WITH ship -1 CASE back:ord >0 REPLACE back:ord WITH back:ord-1 REPLACE backship WITH backship -1 ENDCASE ENDIF .not. eof USE SIG/M ENDIF mvol ENDDO while getit * AT THIS POINT WE ARE DOING SOME TIGHT EDITING - SO PROTECT AGAINST * A SLIP OF THE FINGERS SET CONFIRM ON @ 11,10 SAY "Please adjust data 'Volumes' and/or 'Backorders' " @ 14,02 SAY "Volumes" @ 14,11 GET mvol1 @ 16,00 SAY "Backorder" @ 16,11 GET mbo READ CLEAR GETS SET CONFIRM OFF * BACK TO NORMAL EDITING ENDIF command = Y * NOW THAT VOLUME NUMBERS TAKEN CARE OF WE CAN ADJUST THE REST OF * THE DATA ERASE STORE 'Add Records Module' TO mode STORE 'Enter as many records as you want.' TO prompt1 STORE "When done, enter blank for last name " TO prompt2 STORE "or Control 'Q' to end session" TO prompt3 @ 1,25 SAY mode @ 2, 0 SAY "+---------------------------------------" @ 2,39 SAY "---------------------------------------+" @ 3, 5 SAY "ORDER NUMBER:" @ 3,43 SAY "Complete:" @ 3,60 SAY "Backorder:" @ 4, 8 SAY "Last name:" @ 4,46 SAY "First:" @ 5,10 SAY "Address:" @ 6, 9 SAY "(line 2):" @ 7, 9 SAY "(line 3):" @ 8,13 SAY "City:" @ 8,46 SAY "State:" @ 8,65 SAY "ZIP:" @ 9,11 SAY "Amount:" @ 9,46 SAY "Enter:" @ 9,64 SAY "Ship " @ 11,00 SAY "Enter Individual Volumes Ordered (999 when done): " @ 12, 2 SAY "Volumes:" @ 14, 2 SAY "Remarks:" @ 16, 0 SAY "Backorder:" @ 17,44 SAY "Catalog:" @ 18, 2 SAY "Shipped:" @ 18,26 SAY "Shipped:" @ 18,62 SAY "Update:" @ 19, 0 SAY "+---------------------------------------" @ 19,39 SAY "---------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 @ 3,19 GET morder picture '999999999' @ 3,53 SAY mcomp picture '!' @ 3,71 SAY mback picture '!' @ 4,19 GET mlname @ 4,53 GET mfname @ 5,19 GET maddr1 @ 6,19 GET maddr2 @ 7,19 GET maddr3 @ 8,19 GET mcity @ 8,53 GET mstate picture '!!' @ 8,70 GET mzip picture '99999' @ 9,19 GET mamt @ 9,53 SAY mentered picture '99/99/99' @ 9,70 SAY mshipped picture '99/99/99' @ 11,60 SAY mstatus @ 12,11 SAY mvol1 @ 14,11 SAY mrem1 @ 15,11 SAY mrem2 @ 16,11 SAY mbo @ 17,53 SAY mcatalog @ 18,11 SAY mbo:ship picture '99/99/99' @ 18,35 SAY mbo2:ship picture '99/99/99' @ 18,70 SAY mdayu picture '99/99/99' READ CLEAR GETS STORE t TO getit STORE 999 TO mvol STORE ' ' TO mstatus DO WHILE getit @ 11,60 SAY mstatus @ 12,11 SAY mvol1 @ 16,11 SAY mbo @ 11,48 GET mvol READ CLEAR GETS IF mvol = 999 STORE f TO getit STORE ' ' TO mstatus STORE f TO avoid ELSE USE STOCK LOCATE FOR # = mvol + 1 IF .NOT. EOF GOTO mvol + 1 STORE t TO avoid IF open:inv - back:ord - wait:ship + recvd + pend > 0 REPLACE change1 WITH t REPLACE open:inv WITH open:inv -1 STORE 'IN STOCK ' to mstatus REPLACE ship WITH ship + 1 REPLACE daych1 WITH mentered ELSE REPLACE change2 WITH t REPLACE back:ord WITH back:ord+1 STORE 'BACKORDER' TO mstatus REPLACE backship WITH backship +1 REPLACE daych2 WITH mentered ENDIF open:inv ELSE STORE 'TRY AGAIN ' TO mstatus STORE f TO avoid ENDIF .not. eof ENDIF mvol USE SIG/M IF avoid = t IF mstatus = 'IN STOCK' STORE TRIM(mvol1) + STR(mvol,3,0) + ',' TO mvol1 ELSE STORE TRIM(mbo) + STR(mvol,3,0) + ',' TO mbo ENDIF mstatus ENDIF avoid ENDDO while getit STORE ' ' TO mstatus @ 11,60 SAY mstatus @ 14,11 GET mrem1 @ 15,11 GET mrem2 @ 17,53 GET mcatalog picture '!' @ 18,11 GET mbo:ship picture '99/99/99' @ 18,35 GET mbo2:ship picture '99/99/99' @ 9,70 GET mshipped picture '99/99/99' @ 3,53 GET mcomp picture '!' @ 3,71 GET mback picture '!' READ CLEAR GETS ENDIF command = N * OUR ADDING AND EDITING IS DONE - LET US ADD THE RECORD TO THE FILE APPEND BLANK REPLACE order WITH morder, comp WITH mcomp, back WITH mback REPLACE lname WITH mlname, fname WITH mfname REPLACE addr1 WITH maddr1, addr2 WITH maddr2, addr3 WITH maddr3 REPLACE city WITH mcity, state WITH mstate, zip WITH mzip REPLACE vol1 WITH mvol1 REPLACE amt WITH mamt REPLACE entered WITH mentered, shipped WITH mshipped REPLACE rem1 WITH mrem1, rem2 WITH mrem2 REPLACE bo WITH mbo, catalog WITH mcatalog, bo:ship WITH mbo:ship REPLACE bo2:ship WITH mbo2:ship, dayu WITH mdayu REPLACE new WITH t STORE t TO more ELSE STORE f TO more ENDIF mlname = ' ' ENDDO while more * IF NO MORE RECORDS TO BE ADDED - ASK IF THEY WANT TO INDEX STORE 'Y' TO command ERASE @ 02,10 SAY 'The newly added ORDERS will NOT appear' @ 03,10 SAY 'to be in the File until they are RE-INDEXED' @ 04,10 SAY 'and this will take some time....' @ 06,10 SAY 'You may re-index now or by using the' @ 07,10 SAY 'Maintenance Function number 6' @ 10,10 SAY 'Do you wish to RE-INDEX records NOW (Y/N)' @ 10,52 GET command PICTURE '!' READ IF command = 'Y' @ 14,10 SAY 'Records are now being re-indexed. ' @ 16,10 SAY 'Please be patient as this takes a little time....' STORE CHR(PEEK(063)) TO dr INDEX ON !(lname) TO &dr.:orders ENDIF command = y * get our drive letter STORE CHR(PEEK(063)) TO dr SET INDEX TO &dr.:orders RELEASE ALL * set the colons back on SET COLON ON STORE t TO first * BACKORDR.SIG 08/18/83 * if you want printer codes - add them here ERASE GOTO TOP STORE 0 TO pageno STORE t TO more STORE 0 TO TOTAL STORE 0 TO AMOUNT SET MARGIN TO 0 DO WHILE more STORE pageno + 1 TO pageno STORE 7 TO lineno ERASE EJECT ? ' ' ? '======================SIG/M BACK ORDERS =============================' ? ' ' ? ' AS OF ' + date() + ' PAGE: ' + str(pageno,3) ? ' ' ? ' LAST NAME ENTERED SHIPPED BACKORDER SHIPPED AMOUNT' ? ' ' DO WHILE lineno <55 IF BACK = 'Y' STORE total + 1 TO TOTAL STORE amount + amt TO amount ? ' '+ lname +' ' + entered + ' '+ shipped +' ' + bo:ship + bo2:ship +' '+ STR(amt,8,2) ? 'ORDERED: ' + TRIM(vol1) ? 'BACK ORDERED: ' +TRIM(bo) + ' ' + 'CATALOG: ' + ' ' + catalog ? ' ' STORE lineno + 6 to lineno SKIP IF EOF STORE 60 TO lineno STORE f TO more ENDIF EOF ELSE SKIP IF EOF STORE 60 TO lineno STORE f TO more ENDIF EOF ENDIF BACK= 'Y' ENDDO while lineno > 55 ENDDO more ? '----------------------------------------------------------------------------' ? ' ' ? ' TOTALS: NUMBER OF ORDERS WITH BACK ORDERS: ' + STR(total,4,0) ? ' DOLLAR AMOUNT OF BACK ORDERS: ' + STR(amount,8,2) EJECT SET PRINT OFF RELEASE ALL STORE t TO more STORE t TO first * COMPLETE.SIG 08/18/83 STORE CHR(PEEK(063)) TO DR SET INDEX TO &dr.:orders ERASE * get a starting point STORE DATE() TO stdat @ 10,00 SAY 'Shipments completed after what date are to be listed' @ 10,57 GET stdat PICTURE '99/99/99' READ STORE $(stdat,7,2)+$(stdat,1,2)+$(stdat,4,2) TO stdate GOTO TOP STORE 0 TO pageno STORE t TO more STORE 0 TO TOTAL STORE 0 TO CAT STORE 0 TO AMOUNT SET MARGIN TO 0 DO WHILE more STORE pageno + 1 TO pageno STORE 7 TO lineno ERASE EJECT ? ' ' ? '======================SIG/M SHIPPING REPORT ========================' ? ' ' ? ' ' + date() + ' PAGE: ' + str(pageno,3) ? ' ' ? ' ORDERS COMPLETED AFTER ' + stdat ? ' ' ? ' NO LAST NAME SHIPPED BACKORDER SHIPPED CAT AMOUNT' ? ' ' DO WHILE lineno <55 STORE $(shipped,7,2)+$(shipped,1,2)+$(shipped,4,2) TO stdate1 STORE $(bo:ship,7,2)+$(bo:ship,1,2)+$(bo:ship,4,2) TO stdate2 STORE $(bo2:ship,7,2)+$(bo2:ship,1,2)+$(bo2:ship,4,2) TO stdate3 IF stdate2 >=stdate1 STORE stdate2 TO stdate4 ELSE store stdate1 TO stdate4 ENDIF IF stdate3 >=stdate4 STORE stdate3 TO stdate5 ELSE STORE stdate4 TO stdate5 ENDIF IF stdate5 >= stdate .AND. COMP = 'Y' STORE total + 1 TO TOTAL STORE amount + amt TO amount ? order + ' '+ lname +' ' + shipped +' ' + bo:ship + bo2:ship +' '+ catalog + ' ' + STR(amt,7,2) IF catalog = "N" STORE cat + 1 TO cat ENDIF catalog STORE lineno + 1 to lineno SKIP IF EOF STORE 60 TO lineno STORE f TO more ENDIF EOF ELSE SKIP IF EOF store 60 to lineno store f TO more ENDIF EOF ENDIF STDATE ENDDO while lineno > 55 ENDDO more ? '--------------------------------------------------------------------------' ? ' ' ? ' TOTALS: NUMBER OF SHIPMENTS: ' + STR(total,4,0) ? ' DOLLAR AMOUNT OF ORDERS COMPLETED: ' + STR(amount,8,2) ? ' NUMBER OF SHIPMENTS INCLUDING CATALOG: ' + STR(total-cat,4,0) EJECT SET PRINT OFF RELEASE ALL STORE t TO more STORE t TO first  THE AMATEUR COMPUTER GROUP OF NEW JERSEY SIG/M LIBRARY OF PUBLIC DOMAIN SOFTWARE A dBASEII Program by Steve Leon for ............ DISK INVENTORY ORDER PROCESSING SHIPPING DISK LABELS DOCUMENTATION INTRODUCTION Iî  SIG/Í Volumå 11° wå issueä thå ACGNÊ datá baså aó botè á workinç  datá  baså anä á tutoriaì iî  dBASEII®  Thaô  serieó  oæ modules¬  patterneä  afteò Adaí Green'ó dBASEIÉ USER'Ó GUIDE¬  ió actuallù á modificatioî oæ á serieó oæ workinç datá baseó wå  ruî oî  IBÍ  Displaywriters®  Thå ACGNÊ datá baså  workó  well¬  buô becauså  iô  waó intendeä tï bå á tutoriaì iô lackó somå  oæ  thå "tricks" use to speed up dBASE application programs. Oî  thå ACGNÊ datá baså wå alsï useä separatå screeî  files® Thå  reasoî  foò thió waó tï allo÷ yoõ tï adapô iô foò  youò  owî needó witè ease®  However¬ foò maximuí speeä disë calló shoulä bå aô á minimuí anä screenó shoulä thereforå bå iî thå commanä file. THIS NEW DATA BASE SIG/Í haä somå problemó witè shippinç anä inventorù  manage ment¬  alì oæ whicè werå solveä wheî Gleî Duscè tooë oveò controì oæ  thaô  operation®  Gleî  puô  thå recordó  intï  dBASÅ  aó  aî interactivå  datá  base®  Havinç jusô purchaseä thå  firsô  dBASÅ prograí generatoò thaô É waó satisfieä with¬  FASTBASE¬ É createä aî   inventorù  managemenô  prograí  foò  Gleî  arounä  thå  datá structurå hå haä created®  However¬ onå thinç FASTBASÅ diä noô dï waó allo÷ multiplå additioî oæ recordó withouô puttinç eacè addeä recorä  intï thå index®  Stevå Takifæ oæ Fourcoloò Datá  Systems¬ thå  authoò  oæ  FASTBASE¬  indicateä  thaô  mosô  peoplå  prefeò indexinç  witè eacè record¬  buô witè thå SIG/Í ordeò  volumå  wå thoughô iô advisablå tï modifù thå program.Whaô starteä ouô aó á simplå  modificatioî becamå á rewritå oæ thå datá baså incorpora tinç thå featureó oæ FASTBASE® Š HOW TO USE THE PROGRAM Extracô  alì oæ thå fileó froí thå .LBÒ filå ontï youò dBASÅ disk® Thå indeø filå anä twï datá fileó (.NDØ anä .DBF© caî bå oî anotheò  disk®  (Yoõ caî put youò prograí fileó oî anù disë  jusô sï lonç aó yoõ seô youò defaulô tï thaô drive......Don'ô laugè aô må  foò  makinç  sucè aî obviouó statement¬  buô  É  spokå  tï  á gentlemeî  livinç  '50° mileó nortè oæ Toronto§ whï calleä  afteò spendinç  halæ á nighô gettinç thå messagå thaô thå commanä  filå coulä noô bå found®  Thå prograí ió selæ explanatory®  Foò spacå reasonó wå  havå includeä  onlù  á  fe÷ made-uð ordeò files®  Thå  fulì  listó  oæ volumeó  witè somå made-uð datá ió includeä iî STOCK.DBF¬  in case yoõ  wanô tï labeì youò SIG/Í volumes®  Oncå yoõ havå iô uð  anä runninç looë aô thå codå anä theî begiî thå joâ oæ adaptinç iô tï youò owî requirementó (oò takå advantagå oæ thå routineó anä reaä theí  intï youò programs)®  Wheî É writå á ne÷ applicatioî  usinç thió  serieó  oæ prograí moduleó É usuallù firsô definå thå  datá baså fieldó anä theî uså FASTBASÅ oò ZIÐ tï creatå á screeî file® Witè á printouô oæ thå mode¬  lines¬  anä prompô requirementó  iî hanä  iô ió á relativelù simplå tasë tï creatå á screeî file®  Tï makå  iô looë professional¬  trù tï linå uð thå datá aó  mucè  aó possible® Eacè  oæ  thå  moduleó ió selæ explanatorù anä  jusô  abouô everù  linå iî theí ió therå foò somå reasoî (eveî iæ thaô reasoî bå  ouò ignorance®  Therefore¬  wå stronglù suggesô yoõ reaä  thå code®  Iô  ió  relativelù easù codå tï reaä - havinç beeî  prettù printeä   witè  FASTBASE®   (Thió  documentatioî  sounä  likå   á commerciaì  anä  iô  ió  not®  Thå facô  ió  thaô  dBASEIÉ  ió  á magnificenô  prograí  anä  FASTBASÅ makeó lifå witè dBASÅ  á  loô simpler.©  Oî ouò actuaì operationaì prograí wå useä FASTBASÅ  tï "squish¢ alì lineó oæ codå flusè lefô anä deleteä alì commentó tï increaså runninç speed. Thió prograí useó twï searcè methods® Onå searcheó thå indeø filå  foò anù lastnamå oò fractioî thereof®  Thå otheò findó  ANÙ strinç  iî ANÙ field®  Again¬  É didn'ô writå thå latteò program¬ FASTBASÅ diä - anä iô ió great®  Thaô program¬  SEARCH1.SIÇ  alsï includeó  aî  indeø  searcè  witè á teî  linå  fasô  search®  Yoõ  wilì finä iî thå prpograí usefuì bitó  oæ  information® Thå  ADD.SIÇ prograí wherå wå reaä thå orderó intï thå otheò datá baså  tï  determinå  iæ theù arå iî inventorù  oò  musô  bå  bacë ordereä  anä  theî  changå  thå inventorù ió  oæ  use®  Thå  datå verificatioî  routinå anä thå drivå selectioî routinå  arå  therå for you to use, etc, etc, etc. CHANGES AND MODIFICATIONS Printeò  codeó  arå founä iî alì programó thaô outpuô  tï  á printer®  They  arå  no÷ seô uð foò aî OKIDATÁ 92¬  sï makå  youò changeó accordingly®  Thå prograí SIG/M.CMÄ allowó yoõ tï  modifù thå  intensitù  commanä  - anä alsï eacè oæ thå screeî  filå  "IÆ ŠFIRST¢ containó aî intensitù call® Aô alì oæ thå pointó wherå yoõ havå á drivå option¬ wå allo÷ driveó A,B,C,Ä anä M® É suggesô yoõ deletå  thå  driveó  yoõ  dï noô havå  tï  prevenô  aî  erroneouó selection® (Wå dï noô allo÷ á backuð tï Í drive¬ however.© THE DUAL DATA BASE Wå  havå haä limiteä succesó witè uså oæ duaì datá bases®  É finä  thaô SELECÔ PRIMARÙ anä SELECÔ SECONDARÙ causå morå troublå thaî  theù arå wortè anä thereforå prefeò tï namå thå  datá  baså thå  switcè  ió beinç madå to®  Whilå thió prograí useó twï  datá baseó - iô ió noô reallù á duaì datá baså sincå thå menõ  prograí merelù  controló whicè onå yoõ use®  É dï uså dBASÅ programó thaô transfeò  betweeî  datá  baseó froí thå maiî menõ  anä  froí  thå searcè  menu®  Everù  sï often¬  inspitå oæ alì oæ  ouò  CLEARs¬ RELEASEs¬ SEÔ INDEØ TOs¬ anä USEs¬ É stilì geô á "TOÏ MANÙ FILES¢ erroò  messagå  anä  á doô prompt®  Thió probleí existó  iî  thió program® Iæ yoõ gï bacë anä fortè betweeî thå datá baseó froí thå startinç menõ - afteò abouô ´ changeó yoõ wilì geô thå "TOÏ  MANÙ FILES¢  erroò  message®  Therå  probablù ió á  simplå  answeò  tï prevenô  iô  (sorô oæ likå "CLEAÒ GETS¢ afteò alì readó) - buô  É havå noô beeî ablå tï solvå it®  Iæ yoõ kno÷ how¬  pleaså advise® Thå  savinç factoò ió thaô iî normaì uså iô jusô noô logicaì  foò yoõ  tï  jumð bacë anä fortè ´ timeó betweeî datá baseó iî  rapiä order®  Iæ  youò applicatioî doeó requirå transfeò  betweeî  datá bases¬ anä yoõ arå carefuì tï closå anä eliminatå alì indexeó anä datá files¬ thå followinç codå workó welì oî thå transfeò betweeî thå two: CASE COMMAND = 'T' * transfer to individual data base RELEASE ALL USE STORE t TO first DO search.ind THE DATE Thå  datå  verificatioî camå froí aî issuå oæ dNEWS®  Iô  ió certainlù  wortè  using®   Harrù  Vaî  Tasselì  wrotå  thå  drivå selectioî codå whicè includeó aî interestinç routinå tï determinå iæ  thå prograí ió runninç undeò CP/Í 8° oò 86®  Hå alsï founä  á "hidinç place¢ tï drivå letteò storagå anä contributeä manù otheò gooä ideaó tï thå programs. CONCLUSION Anù thoughts¬  commentó oò suggestionó woulä bå appreciated® SIG/Í  woulä  alsï  appreciatå donatioî oæ youò  datá  baseó  foò releaså  iî  thå library®  Ouò orderó reflecô theù  arå  mosô  iî demand behind ZCPR and the modem programs. Š Steve Leon 200 Winston Drive Cliffside Park, NJ 07010 (201) 886-1658 August 26, 1983 * dupcheck.sig 08/18/83 * this module checks to see if there are records with the same lastnames * you can make it a tighter test with relative ease. SAVE TO temp1 RELEASE ALL GOTO TOP STORE t TO more DO WHILE more .AND. (.NOT. EOF) * display something to read while searching for duplicates ERASE @ 07,10 SAY 'SEARCHING for duplicate last names' * save the current name, in upper case, for comparison STORE !(lname) TO oldlname * move to the next record to compare SKIP * if match is found and eof has not been reached * let user look at both and decide what to do IF oldlname = !(lname) .AND. (.NOT. EOF) DO duprec.sig ENDIF ENDDO RESTORE FROM temp1 * duprec.sig 08/18/83 * this module displays duplicate records with the same last names * and gives enough information to evaluate them. Note if you * use the edit function the 'edited' information will appear in * the main file but will not appear on the duplicate record screen. * this is because we are saving what we see here to a temporary file * while we edit. SKIP -1 STORE order TO order1 STORE lname TO lname1 STORE fname TO fname1 STORE city TO city1 STORE zip TO zip1 STORE vol1 TO vol11 IF * STORE 'Deleted' TO deleted1 ELSE STORE ' ' TO deleted1 ENDIF * SKIP STORE order TO order2 STORE lname TO lname2 STORE fname TO fname2 STORE city TO city2 STORE zip TO zip2 STORE vol1 TO vol12 IF * STORE 'Deleted' TO deleted2 ELSE STORE ' ' TO deleted2 ENDIF * STORE t TO more DO WHILE more * set up the screen format and variables ERASE STORE 'ontinue, elete/Recall, dit,

rint, uit' TO prompt STORE 'Records with duplicate last names' TO mode STORE '?' TO command STORE '?' TO record * show both records and find out what to do next @ 01,27 SAY mode @ 02,00 SAY '+--------------------' @ 02,20 SAY '---------------------' @ 02,40 SAY '---------------------' @ 02,60 SAY '-------------------+' @ 03,00 SAY 'Lastname: ' @ 03,12 SAY lname1 @ 03,40 SAY 'First: ' @ 03,49 SAY fname1 @ 05,00 SAY 'City: ' @ 05,20 SAY city1 @ 05,50 SAY 'Zip: ' @ 05,55 say zip1 @ 06,00 SAY 'Volumes:' @ 06,10 SAY vol11 @ 08,00 SAY 'ORDER NUMBER: ' @ 08,17 SAY order1 @ 08,50 SAY deleted1 @ 09,00 SAY '+--------------------' @ 09,20 SAY '---------------> > > ' @ 09,40 SAY 'RECORD-A < < <-------' @ 09,60 SAY '-------------------+' @ 11,00 SAY 'Lastname: ' @ 11,12 SAY lname2 @ 11,40 SAY 'First: ' @ 11,49 SAY fname2 @ 13,00 SAY 'City: ' @ 13,20 SAY city2 @ 13,50 SAY 'Zip: ' @ 13,55 SAY zip2 @ 14,00 SAY 'Volumes: ' @ 14,10 SAY vol12 @ 16,00 SAY 'ORDER NUMBER: ' @ 16,17 SAY order2 @ 16,50 SAY deleted2 @ 17,00 SAY '+--------------------' @ 17,20 SAY '---------------> > > ' @ 17,40 SAY 'RECORD-B < < <-------' @ 17,60 SAY '-------------------+' @ 18,17 SAY prompt @ 19,24 SAY 'What next?' @ 19,35 GET command picture '!' READ * If Delete, Edit or Print - ask question IF command = 'D' .OR. command = 'E' .OR. command = 'P' * move up a line ?? CHR(11) ?? ' Which Record ?' SET CONSOLE OFF WAIT TO record SET CONSOLE on STORE !(record) TO record ?? record ENDIF command = D * move to the record to be processed IF record = 'A' SKIP -1 ENDIF record = a *process the record DO CASE CASE command = 'C' .OR. command = 'Q' * set up the loop to exit STORE f to more CASE command = 'D' IF * RECALL ELSE DELETE ENDIF * IF record = 'A' IF deleted1 = 'Deleted' STORE ' ' TO deleted1 ELSE STORE 'Deleted' TO deleted1 ENDIF deleted1 ENDIF record = A IF record <> 'A' IF deleted2 = 'Deleted' STORE ' ' TO deleted2 ELSE STORE 'Deleted' TO deleted2 ENDIF deleted2 ENDIF record <> A CASE command = 'E' SAVE TO temp2 RELEASE ALL RESTORE FROM temp1 * don't use indexs to speed up the edit ? 'Hit RETURN to Continue' SET CONSOLE OFF RESTORE STORE # TO rec:number SET INDEX TO IF rec:number = 0 GOTO 1 ELSE GOTO rec:number ENDIF rec:number = 0 SET CONSOLE ON DO edit.sig SAVE TO temp1 RELEASE ALL RESTORE FROM temp2 CASE command = 'P' DO print.sig ENDCASE * move back to the correct record IF record = 'A' SKIP ENDIF record = A * loop back again ENDDO while more * if more duplicates are to be found * set up the loop to continue in DUPCHECK.SIG IF command = 'C' STORE t TO more ENDIF command = C * edit.inv 08/18/83 * edit inventory data STORE CHR(PEEK (063)) TO dr STORE # TO rec:number RECALL STORE STR(disk,3,0) TO mdisk STORE STR(open:inv,2,0) TO mopen:inv STORE STR(back:ord,2,0) TO mback:ord STORE STR(wait:ship,2,0) TO mwait:ship STORE STR(recvd,2,0) TO mrecvd STORE STR(norm:stk,2,0) TO mnorm:stk STORE STR(order,2,0) TO morder STORE STR(pend,2,0) TO mpend STORE line1 TO mline1 STORE line2 TO mline2 IF change1 = t STORE 'Yes' TO mchange1 ELSE STORE ' No' TO mchange1 ENDIF change1 IF change2 = t STORE 'Yes' TO mchange2 ELSE STORE ' No' TO mchange2 ENDIF change2 STORE dayu TO mdayu ERASE STORE 'Edit Inventory Module' TO mode STORE 'Enter the new or corrected information' TO prompt1 STORE ' ' TO prompt2 STORE "Control 'Q' to end edit session" TO prompt3 @ 1,25 SAY mode @ 2, 0 SAY "+--------------------------------------" @ 2,39 SAY "----------------------------------------+" @ 3,26 SAY "SIG/M VOLUME" @ 5,14 SAY "Opening Inventory Description of Volume" @ 7,19 SAY "Back Ordered" @ 8,15 SAY "Waiting Shipment" @ 9,14 SAY "Quantity Received" @ 10,14 SAY "Closing Inventory" @ 10,45 SAY "Change in Inventory" @ 11,46 SAY "Date" @ 11,64 SAY "No " @ 12,19 SAY "Normal Stock" @ 13,14 SAY "Quantity to Order" @ 13,45 SAY "Change in Backorders" @ 14,15 SAY "Quantity Ordered" @ 14,46 SAY "Date:" @ 14,64 SAY "No " @ 16,10 SAY "Anticipated Inventory" @ 17,51 SAY "Update" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 @ 3,39 GET mdisk picture '999' @ 5,34 GET mopen:inv PICTURE '99' @ 7,34 GET mback:ord PICTURE '99' @ 8,34 GET mwait:ship PICTURE '99' @ 9,34 GET mrecvd PICTURE '99' @ 10,32 SAY VAL(mopen:inv)-VAL(mback:ord) - VAL(mwait:ship) + VAL(mrecvd) @ 10,70 SAY mchange1 @ 11,53 SAY daych1 @ 11,60 SAY ship @ 12,34 GET mnorm:stk PICTURE '99' @ 13,34 GET morder PICTURE '99' @ 13,70 SAY mchange2 @ 14,34 GET mpend PICTURE '99' @ 14,53 SAY daych2 @ 14,70 SAY backship @ 16,31 SAY VAL(mopen:inv) -VAL(mback:ord) - VAL(mwait:ship) + VAL(mrecvd)+ VAL(mpend) @ 7,46 GET mline1 @ 8,46 GET mline2 @ 17,59 GET mdayu picture '99/99/99' READ REPLACE disk WITH VAL(mdisk) REPLACE open:inv WITH VAL(mopen:inv), back:ord WITH VAL(mback:ord) REPLACE wait:ship WITH VAL(mwait:ship), recvd WITH VAL(mrecvd) REPLACE norm:stk WITH VAL(mnorm:stk) REPLACE order WITH VAL(morder), pend WITH VAL(mpend) REPLACE line1 WITH mline1, line2 WITH mline2 STORE 'Y' TO command @ 20,00 @ 21,00 @ 22,00 @ 21,12 SAY 'Do You wish to UpDate to Todays Date (Y/N) ?' @ 21,57 GET command PICTURE '!' READ IF command = 'Y' REPLACE dayu WITH DATE() ELSE REPLACE dayu WITH mdayu ENDIF command = Y GOTO rec:number RELEASE ALL STORE '?' TO command STORE t TO more STORE t TO first * edit.sig 08/18/83 STORE CHR(PEEK (063)) TO dr STORE # TO rec:number * for speed - eliminate the index during edit SET INDEX TO * why edit a record to be deleted - so bring it back RECALL STORE order TO morder STORE back TO mback STORE comp TO mcomp STORE lname TO mlname STORE fname TO mfname STORE addr1 TO maddr1 STORE addr2 TO maddr2 STORE addr3 TO maddr3 STORE city TO mcity STORE state TO mstate STORE zip TO mzip STORE vol1 TO mvol1 STORE amt TO mamt STORE entered TO mentered STORE shipped TO mshipped STORE rem1 TO mrem1 STORE rem2 TO mrem2 STORE bo TO mbo STORE catalog TO mcatalog STORE bo:ship TO mbo:ship STORE bo2:ship TO mbo2:ship STORE dayu TO mdayu ERASE STORE 'Edit Order Module' TO mode STORE 'Enter the new or corrected information' TO prompt1 STORE ' ' TO prompt2 STORE "Control 'Q' to end edit session" TO prompt3 @ 1,25 SAY mode @ 2, 0 SAY "+---------------------------------------" @ 2,39 SAY "---------------------------------------+" @ 3, 5 SAY "ORDER NUMBER " @ 3,43 SAY "Complete " @ 3,60 SAY "Backorder " @ 4, 8 SAY "Last name " @ 4,46 SAY "First " @ 5,10 SAY "Address " @ 6, 9 SAY "(line 2) " @ 7, 9 SAY "(line 3) " @ 8,13 SAY "City " @ 8,46 SAY "State " @ 8,65 SAY "ZIP " @ 10, 2 SAY "Volumes " @ 12, 3 SAY "Amount " @ 12,46 SAY "Enter " @ 12,64 SAY "Ship " @ 13, 2 SAY "Remarks " @ 14, 2 SAY "Remarks " @ 16, 0 SAY "Backorder " @ 17,44 SAY "Catalog " @ 18, 2 SAY "Shipped " @ 18,26 SAY "Shipped " @ 18,62 SAY "Update " @ 19, 0 SAY "+---------------------------------------" @ 19,39 SAY "---------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 @ 3,19 GET morder picture '999999999' @ 4,19 GET mlname @ 4,53 GET mfname @ 5,19 GET maddr1 @ 6,19 GET maddr2 @ 7,19 GET maddr3 @ 8,19 GET mcity @ 8,53 GET mstate picture '!!' @ 8,70 GET mzip picture '99999' @ 10,11 GET mvol1 @ 12,11 GET mamt @ 12,53 GET mentered picture '99/99/99' @ 12,70 GET mshipped picture '99/99/99' @ 13,11 GET mrem1 @ 14,11 GET mrem2 @ 16,11 GET mbo @ 17,53 GET mcatalog picture '!' @ 18,11 GET mbo:ship picture '99/99/99' @ 18,35 GET mbo2:ship picture '99/99/99' @ 18,70 GET mdayu picture '99/99/99' @ 3,53 GET mcomp picture '!' @ 3,71 GET mback picture '!' READ CLEAR GETS * put your editing routines here DO CASE CASE .NOT. (mcomp = 'Y' .OR. mcomp = 'N') STORE t TO error CASE .NOT. (mback = 'Y' .OR. mback = 'N') STORE t TO error CASE .NOT. (mcatalog = 'Y' .OR. mcatalog = 'N' .OR. mcatalog = 'B') STORE t TO error OTHERWISE STORE f TO error ENDCASE IF error @ 01,00 @ 20,00 @ 21,00 @ 22,00 @ 1,18 SAY 'Please Correct the Indicated Data' STORE t to an:error DO WHILE an:error DO CASE CASE .NOT. (mcomp = 'Y' .OR. mcomp = 'N') @ 21,15 SAY 'Must answer "Y" or "N" if shipping completed ' @ 3,53 GET mcomp picture '!' READ CASE .NOT. (mback = 'Y' .OR. mback = 'N') @ 21,15 SAY 'Must answer "Y" or "N" is shipment backordered ' @ 3,71 GET mback picture '!' READ CASE .NOT. (mcatalog = 'Y' .OR. mcatalog = 'N' .OR. mcatalog = 'B') @ 22,15 SAY 'Enter either "Y", "N" or "B" (backorder)' @ 17,53 GET mcatalog picture '!' READ OTHERWISE STORE f TO an:error ENDCASE ENDDO while an:error ENDIF error STORE 'N' TO command @ 20,00 @ 21,00 @ 22,00 @ 21,15 SAY 'Are there any more changes ? ' @ 21,48 GET command picture '!' READ IF command = 'Y' @ 3,19 GET morder picture '9999' @ 4,19 GET mlname @ 4,53 GET mfname @ 5,19 GET maddr1 @ 6,19 GET maddr2 @ 7,19 GET maddr3 @ 8,19 GET mcity @ 8,53 GET mstate picture '!!' @ 8,70 GET mzip picture '99999' @ 10,11 GET mvol1 @ 12,11 GET mamt @ 12,53 GET mentered picture '99/99/99' @ 12,70 GET mshipped picture '99/99/99' @ 13,11 GET mrem1 @ 14,11 GET mrem2 @ 16,11 GET mbo @ 17,53 GET mcatalog picture '!' @ 18,11 GET mbo:ship picture '99/99/99' @ 18,35 GET mbo2:ship picture '99/99/99' @ 18,70 GET mdayu picture '99/99/99' @ 3,53 GET mcomp picture '!' @ 3,71 GET mback picture '!' READ CLEAR GETS ENDIF command = 'Y' REPLACE order WITH morder, comp WITH mcomp, back WITH mback REPLACE lname WITH mlname, fname WITH mfname REPLACE addr1 WITH maddr1, addr2 WITH maddr2, addr3 WITH maddr3 REPLACE city WITH mcity, state WITH mstate, zip WITH mzip REPLACE vol1 WITH mvol1 REPLACE amt WITH mamt REPLACE entered WITH mentered REPLACE shipped WITH mshipped, rem1 WITH mrem1, rem2 WITH mrem2 REPLACE bo WITH mbo, catalog WITH mcatalog, bo:ship WITH mbo:ship REPLACE bo2:ship WITH mbo2:ship STORE 'Y' TO command @ 20,00 @ 21,00 @ 22,00 @ 21,12 SAY 'Do You want to UpDate to Todays Date (Y/N) ?' @ 21,57 GET command PICTURE '!' READ IF command = 'Y' REPLACE dayu WITH DATE() ELSE REPLACE dayu WITH mdayu ENDIF @ 23,0 SAY 'Hit RETURN to Continue' SET CONSOLE OFF SET INDEX TO &dr.:orders GOTO rec:number SET CONSOLE ON RELEASE ALL STORE '?' TO command STORE t TO more STORE t TO first * invent.inv 08/18/83 SET CONSOLE OFF ? CHR(28) SET CONSOLE ON GOTO TOP STORE 0 TO pageno STORE 0 TO col1 STORE 0 TO col2 STore 0 TO col3 STORE 0 TO COL4 STORE 0 TO COL5 STORE 0 TO COL6 STORE 0 TO COL7 STORE 0 TO COL8 STORE 0 TO COL9 STORE T to MORE SET MARGIN TO 5 DO WHILE more STORE pageno + 1 TO pageno STORE 7 TO lineno ERASE EJECT ? ' ' ? '========================= SIG/M DISK INVENTORY =====================' ? ' ' ? ' ' + date() + ' PAGE: ' + str(pageno,3) ? ' ' ? 'VOL OPEN BACK WAITING STOCK CLOSING NORMAL SHOULD ACTUAL CLOSING' ? 'NO. INVENT ORDERS TO SHIP RECVD INVENT. STOCK ORDER ORDER BALANCE' ? ' ' DO WHILE lineno <55 IF .NOT. EOF STORE open:inv-back:ord-wait:ship+recvd TO it STORE COL1 + OPEN:INV TO COL1 STORE COL2 + BACK:ORD TO COL2 STORE COL3 + WAIT:SHIP TO COL3 STORE COL4 + RECVD TO COL4 STORE COL5 + IT TO COL5 STORE COL6 + NORM:STK TO COL6 STORE COL7 + ORDER TO COL7 STORE COL8 + PEND TO COL8 STORE COL9 + IT + PEND TO COL9 ? STR(disk,3,0) + ' ' + str(open:inv,3,0) + ' ' + STR(back:ord,3,0) +; ' ' + STR(wait:ship,3,0) + ' ' + STR(recvd,3,0) + ' ' + STR(it,3,0)+' '; + STR(norm:stk,3,0) + ' ' + STR(order,3,0)+ ' '+str(pend,3,0)+' ' +str(it+pend,3,0) ELSE STORE f TO more ENDIF not .EOF. STORE lineno + 1 to lineno skip ENDDO while lineno > 55 ENDDO more ? '----------------------------------------------------------------------' ? ' ' + STR(COL1,4,0)+' ' + STR(COL2,4,0) + ' ' + STR(COL3,4,0) + ' '+STR(COL4,4,0)+' '+STR(COL5,4,0)+' ' +STR(COL6,4,0)+' '+STR(COL7,4,0)+' '+STR(COL8,4,0)+' '+STR(COL9,4,0) EJECT SET CONSOLE OFF ? CHR(30) SET PRINT OFF SET CONSOLE ON RELEASE ALL STORE t TO more * labels.inv 08/18/83 SET PRINT ON SET CONSOLE OFF * set printer codes for small type ? CHR(29) ? CHR(27) + chr(56) SET PRINT OFF SET CONSOLE ON ERASE STORE t TO lineup DO WHILE LINEUP STORE '?' TO command @ 10,00 @ 11,00 @ 10,10 SAY 'Please line up the top of the ribbon with the top of the label' @ 11,10 SAY 'When lined up hit ENTER for a print check.' SET CONSOLE OFF WAIT SET PRINT ON SET MARGIN TO 0 ? 'THE TOP OF THE TOP LINE SHOULD BE ABOUT' ? '1/4" FROM THE TOP OF THE LABEL' ? ' ' SET PRINT OFF SET CONSOLE ON @ 10,00 @ 11,00 @ 10,10 SAY 'Are you lined up to print (Y/N) ' @ 10,44 GET command picture '!' READ CLEAR GETS IF command = 'Y' SET PRINT ON ? ' ' ? ' ' ? ' ' ? ' ' SET PRINT OFF STORE f TO lineup STORE t TO printlab ENDIF command = y ENDDO while lineup ERASE DO WHILE printlab = t STORE '?' TO command STORE 0 to VOLNO STORE 0 TO PRNTNO @ 10,00 @ 11,00 @ 12,00 @ 13,00 @ 15,00 @ 12,12 SAY "What volume do you want to label ? " GET VOLNO READ @ 13,12 SAY " How many shall we print ? " GET PRNTNO @ 15,00 SAY "USE 999 as quantity to print one of each from starting volume" READ LOCATE FOR disk = volno * prints a full set - one each from starting point when quantity is 999 IF PRNTNO = 999 DO WHILE .NOT. EOF SET PRINT ON SET CONSOLE OFF SET MARGIN TO 0 ? ' ' ? ' ' ?? "SIG/M SOFTWARE LIBRARY VOL" ?? disk ? ' ' + line1 ? ' ' + line2 ? ' ' + date() ? ' ' ? ' ' ? ' ' SKIP ENDDO while not eof STORE 0 TO PRNTNO ENDIF prntno DO WHILE PRNTNO > 0 SET PRINT ON SET CONSOLE OFF SET MARGIN TO 0 ? ' ' ? ' ' ?? "SIG/M SOFTWARE LIBRARY VOL" ?? disk ? ' ' + line1 ? ' ' + line2 ? ' ' + date() ? ' ' ? ' ' ? ' ' STORE PRNTNO - 1 TO PRNTNO ENDDO while prntno SET PRINT OFF SET CONSOLE ON @ 10,00 @ 11,00 @ 12,00 @ 13,00 @ 15,00 @ 10,12 SAY "Do you want to print more labels ? " GET COMMAND picture '!' READ IF command = 'Y' STORE t TO printlab ELSE STORE f TO printlab SET CONSOLE OFF SET PRINT ON ? CHR(30) ? CHR(27) + CHR(54) EJECT SET PRINT OFF SET CONSOLE ON ENDIF command = Y ENDDO while printlab ERASE RELEASE all STORE t TO first STORE t TO more STORE '?' TO command * labels.sig 08/18/83 ERASE STORE DATE() TO stdat * get a starting point STORE DATE() TO stdat @ 18,12 SAY 'Orders after what date require shipping labels' @ 18,60 GET stdat PICTURE '99/99/99' READ STORE $(stdat,7,2)+$(stdat,1,2)+$(stdat,4,2) TO stdate GOTO TOP STORE t TO more SET MARGIN TO 5 DO WHILE more IF .NOT. EOF STORE $(dayu,7,2)+$(dayu,1,2)+$(dayu,4,2) TO stdate1 IF stdate1 >= stdate STORE 0 TO xtra ? ' ' ? TRIM(fname) +' ' + lname ? addr1 IF addr2 <> ' ' ? addr2 ELSE STORE xtra + 1 TO xtra ENDIF addr2 IF addr3 <> ' ' ? addr3 ELSE STORE xtra + 1 TO xtra ENDIF addr3 ? TRIM(city) +', '+ state + ' ' +zip ? ' ' ? ' *** MAGENETIC MEDIA *** ' ? '***** PLEASE DO NOT X-RAY *****' ? ' ' ? ' ' ? ' ' DO WHILE xtra <> 0 ? ' ' STORE xtra -1 TO xtra ENDDO while xtra SKIP ELSE SKIP ENDIF $date ELSE STORE f TO more ENDIF not EOF ENDDO more EJECT ? CHR(30) SET PRINT OFF RELEASE all STORE t TO more STORE t TO first * main.inv 08/18/83 STORE CHR(PEEK(063))TO dr USE &dr.:stock STORE t TO more STORE t TO first * set up forever loop for this data base DO WHILE t IF first * set up screen and prompts ERASE STORE 'orward, ackward, dd, dit' TO prompt1 STORE 'earch, aintenance,

rint, eports' TO prompt2 STORE 'uit to main menu' TO prompt3 STORE 'Main Inventory Module ' TO mode @ 1,25 SAY mode @ 2, 0 SAY "+--------------------------------------" @ 2,39 SAY "----------------------------------------+" @ 3,26 SAY "SIG/M VOLUME" @ 5,14 SAY "Opening Inventory Description of Volume" @ 7,19 SAY "Back Ordered" @ 8,15 SAY "Waiting Shipment" @ 9,14 SAY "Quantity Received" @ 10,14 SAY "Closing Inventory Change in Inventory: " @ 11,46 SAY "Date: No: " @ 12,19 SAY "Normal Stock" @ 13,14 SAY "Quantity to Order Change in Backorders: " @ 14,15 SAY "Quantity Ordered Date: No: " @ 16,10 SAY "Anticipated Inventory" @ 17,51 SAY "Update" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 ENDIF first STORE f TO first STORE '?' TO command IF change1 = t STORE 'Yes' TO mchange1 ELSE STORE ' No' TO mchange1 ENDIF change1 IF change2 = t STORE 'Yes' TO mchange2 ELSE STORE ' No' TO mchange2 ENDIF change2 @ 3,39 SAY disk @ 5,34 SAY open:inv @ 7,34 SAY back:ord @ 7,46 SAY line1 @ 8,34 SAY wait:ship @ 8,46 SAY line2 @ 9,34 SAY recvd @ 10,70 SAY mchange1 @ 10,34 SAY STR(open:inv-back:ord-wait:ship+recvd,3,0) @ 11,53 SAY daych1 @ 11,70 SAY ship @ 12,34 SAY norm:stk @ 13,34 SAY order @ 13,70 SAY mchange2 @ 14,34 SAY pend @ 14,53 SAY daych2 @ 14,70 SAY backship @ 16,34 SAY STR(open:inv -back:ord -wait:ship + recvd + pend,3,0) @ 17,59 SAY dayu @ 22,56 SAY 'WHAT NEXT?' @ 22,70 GET command PICTURE '!' READ DO CASE CASE command = 'A' DO add.inv CASE (command = 'B' .OR. command = ',') * move backwards one record SKIP -1 CASE command = 'E' DO edit.inv CASE (command = 'F' .OR. command = '.') * move forward one record SKIP CASE command = 'M' DO maintain.inv CASE command = 'P' DO print.inv CASE command = 'Q' RELEASE ALL DO menu.sig CASE command = 'R' DO report.inv CASE command = 'S' DO search.inv ENDCASE * loop back again ENDDO while t* main.sig 08/18/83 * main command program of inventory data base * get the drive letter from where we have hidden it * NOTE - in all cases label what the endif is the if for and * the enddo is the do for. saves a lot of time debugging. STORE CHR(PEEK(063))TO dr USE &dr.:sig/m INDEX &dr.:orders STORE t TO first * set up the forever loop for this data base DO WHILE t * to speed things up - only change the parts of the * screen that you have to IF first * if you want intensity - set intensity on here and off after endif first * that way the data stands out. * set up screen and prompts ERASE STORE 'orward, ackward, elete/Recall, elp' TO prompt1 STORE 'earch, aintenance,

rint, oucher, eports' TO prompt2 STORE 'dd, dit, uit to main menu' TO prompt3 STORE 'Main Order Module ' TO mode @ 1,25 SAY mode @ 2, 0 SAY "+--------------------------------------" @ 2,39 SAY "----------------------------------------+" @ 3, 5 SAY "ORDER NUMBER:" @ 3,43 SAY "Complete:" @ 3,60 SAY "Backorder:" @ 4, 8 SAY "Last name:" @ 4,46 SAY "First:" @ 5,10 SAY "Address:" @ 6, 9 SAY "(line 2):" @ 7, 9 SAY "(line 3):" @ 8,13 SAY "City:" @ 8,46 SAY "State:" @ 8,65 SAY "ZIP:" @ 10, 2 SAY "Volumes:" @ 12, 3 SAY "Amount:" @ 12,46 SAY "Enter:" @ 12,64 SAY "Ship:" @ 13, 2 SAY "Remarks:" @ 14, 2 SAY "Remarks:" @ 16, 0 SAY "Backorder:" @ 17,44 SAY "Catalog:" @ 18, 2 SAY "Shipped:" @ 18,26 SAY "Shipped:" @ 18,62 SAY "Update:" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 ENDIF first STORE f TO first STORE '?' TO command * check if record marked for deletion IF * STORE 'Deleted' TO deleted ELSE STORE ' ' TO deleted ENDIF * @ 1, 0 SAY deleted @ 3,19 SAY order @ 3,53 SAY comp @ 3,71 SAY back @ 4,19 SAY lname @ 4,53 SAY fname @ 5,19 SAY addr1 @ 6,19 SAY addr2 @ 7,19 SAY addr3 @ 8,19 SAY city @ 8,53 SAY state @ 8,70 SAY zip @ 10,11 SAY vol1 @ 12,11 SAY amt using '$###.##' @ 12,53 SAY entered @ 12,70 SAY shipped @ 13,11 SAY rem1 @ 14,11 SAY rem2 @ 16,11 SAY bo @ 17,53 SAY catalog @ 18,11 SAY bo:ship @ 18,35 SAY bo2:ship @ 18,70 SAY dayu @ 22,56 SAY 'WHAT NEXT?' @ 22,70 GET command PICTURE '!' READ CLEAR GETS DO CASE CASE command = 'A' DO add.sig * note the comma will go to last record as well as 'B' CASE (command = 'B' .OR. command = ',') * move backwards one record SKIP -1 CASE command = 'D' * switch the current record from deleted to recalled IF * RECALL ELSE DELETE ENDIF CASE command = 'E' DO edit.sig * note the period will go forward one record as well as F CASE (command = 'F' .OR. command = '.') * move forward one record SKIP CASE command = 'H' * display a screen full of instructions STORE t TO first ERASE @ 05,07 SAY 'This program works - or at least we have not yet been able' @ 06,07 SAY 'to find major bugs, so let us assume YOU are doing something' @ 07,07 SAY 'causing the problem. Before you call us, please try to solve it.' @ 09,07 SAY 'Remember, the message above the top line tells you the ' @ 10,07 SAY 'program module you are in, and whether the file is marked' @ 11,07 SAY 'for deletion (to actually delete you must also run the purge' @ 12,07 SAY 'program on the maintenance menu.) The material below the ' @ 13,07 SAY 'bottom line tells you what choice of action you have. They' @ 14,07 SAY 'are logical and only one of the listed options will work.' @ 15,07 SAY '(Other than a few built in aids, such as a period advancing' @ 16,07 SAY 'one record, a comma going back one and a "Q" as an exit' @ 17,07 SAY 'from a menu with letter options.) SO..........' @ 19,07 SAY 'Relax for a few minutes - and try again!' @ 22,20 SAY 'Hit RETURN to Continue ' SET CONSOLE OFF WAIT SET CONSOLE ON CASE command = 'M' DO maintain.sig CASE command = 'P' DO print.sig CASE command = 'Q' RELEASE ALL DO menu.sig CASE command = 'R' DO report.sig CASE command = 'S' DO search.sig CASE command = 'V' DO voucher.sig ENDCASE ENDDO while t * maintain.inv 08/18/83 STORE t TO more DO WHILE more STORE CHR(PEEK(063)) TO dr ERASE STORE '?' TO command @ 02,00 SAY '---------------------' @ 02,20 SAY '---------------------' @ 02,40 SAY '---------------------' @ 02,60 SAY '--------------------' @ 02,19 SAY '> > > F I L E M A I N T E N A N C E < < <' @ 06,22 SAY '1. Backup data file' @ 08,22 SAY '2. Zero shipment and backorder counters' @ 10,22 SAY '3. Use browse command' @ 12,22 SAY '4. Return to main menu' @ 15,00 SAY '--------------------' @ 15,20 SAY '--------------------' @ 15,40 SAY '--------------------' @ 15,60 SAY '--------------------' @ 17,22 SAY 'What next' @ 17,33 GET command picture '!' READ DO CASE CASE command = '1' STORE 'Y' TO doit ERASE @ 01,05 SAY 'This module makes a backup of the DATA File to another disk' @ 03,05 SAY 'Do you want to do a backup of the DATA File (Y/N) ?' @ 03,59 GET doit PICTURE '!' READ IF doit = 'Y' @ 03,00 @ 07,05 SAY 'The DATA File is on drive '+dr+' and you normally backup to drive B' @ 09,05 SAY 'Make sure the backup disk is in the drive selected for backup' RESET STORE 'B' TO bdr @ 13,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ DO WHILE @(bdr,'ABCD') = 0 @ 13,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ ENDDO while @ IF bdr <> dr @ 17,05 SAY 'Now copying DATA File from drive '+dr+' to drive '+bdr+ ' ' COPY TO &bdr.:stockbak ELSE @ 17,05 SAY 'Cant backup to same drive - Aborting' @ 23,00 SAY 'Hit RETURN to Continue' SET CONSOLE OFF WAIT SET CONSOLE ON ENDIF not same drive ENDIF do backup CASE command = '2' STORE 'N' TO command ERASE @ 01,05 SAY 'This Module will zero all order and backorder counters' @ 03,05 SAY 'Do you wish to continue (Y/N) ? ' @ 03,45 GET command picture '!' READ IF command = 'Y' @ 10,10 SAY ' COUNTERS NOW BEING ZEROED FOR VOLUME ' GOTO TOP DO WHILE .NOT. EOF @ 10,55 SAY disk REPLACE change1 WITH f REPLACE daych1 WITH ' ' REPLACE ship WITH 0 REPLACE change2 WITH f REPLACE daych2 WITH ' ' REPLACE ship WITH 0 REPLACE backship WITH 0 SKIP ENDDO while not eof ENDIF command = Y CASE COMMAND = '3' * browse thru records ERASE @ 01,12 SAY '***WARNING*** ***WARNING*** ***WARNING***' @ 03,13 SAY 'Changes made will be written to the File' @ 06,12 SAY 'CTRL-C write current record & go down' @ 07,12 SAY 'CTRL-R write current record & go up' @ 08,12 SAY 'CTRL-Z/B pans screen left or right' @ 09,12 SAY 'CTRL-V toggles Insert on or off' @ 10,12 SAY 'CTRL-G Delete character under cursor' @ 11,12 SAY 'CTRL-U Delete or Recall current record' @ 12,12 SAY 'CTRL-Q exit Dont Write Current record' @ 13,12 SAY 'CTRL-W exit and Save all changes' * get a starting point in file STORE 0 TO stletter @ 22,00 @ 22,12 SAY 'At what volume shall we start browsing' @ 22,57 Get stletter READ * goto starting point or next if no find LOCATE for disk = stletter IF EOF GOTO TOP ENDIF EOF * browse thru file SET ESCAPE OFF BROWSE SET ESCAPE ON CASE (command = '4' .OR. command = 'Q') STORE f TO more ENDCASE ENDDO while more RELEASE ALL STORE t TO first * maintain.sig 08/18/83 STORE t TO more DO WHILE more STORE CHR(PEEK(063)) TO dr ERASE STORE '?' TO command @ 02,00 SAY '---------------------' @ 02,20 SAY '---------------------' @ 02,40 SAY '---------------------' @ 02,60 SAY '--------------------' @ 02,19 SAY '> > > F I L E M A I N T E N A N C E < < <' @ 04,22 SAY '1. Find duplicate records' @ 06,22 SAY '2. Verify and merge new entries' @ 08,22 SAY '3. Verify deleted entries' @ 10,22 SAY '4. Purge deleted entries from file' @ 12,22 SAY '5. Backup data file' @ 14,22 SAY '6. Re-index the records' @ 16,22 SAY '7. Use browse command' @ 18,22 SAY '8. Return to main menu' @ 21,00 SAY '--------------------' @ 21,20 SAY '--------------------' @ 21,40 SAY '--------------------' @ 21,60 SAY '--------------------' @ 22,22 SAY 'What next' @ 22,33 GET command picture '!' READ DO CASE CASE command = '1' ERASE DO dupcheck.sig CASE command = '2' ERASE DO verifnew.sig CASE command = '3' ERASE DO verifdel.sig CASE command = '4' DO purge.sig CASE command = '5' STORE 'Y' TO doit ERASE @ 01,05 SAY 'This module makes a backup of the DATA File to another disk' @ 03,05 SAY 'Do you want to do a backup of the DATA File (Y/N) ?' @ 03,59 GET doit PICTURE '!' READ IF doit = 'Y' @ 03,00 @ 07,05 SAY 'The DATA File is on drive '+dr+' and you normally backup to drive B' @ 09,05 SAY 'Make sure the backup disk is in the drive selected for backup' RESET STORE 'B' TO bdr @ 13,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ DO WHILE @(bdr,'ABCD') = 0 @ 13,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!' READ ENDDO while @ IF bdr <> dr @ 17,05 SAY 'Now copying DATA File from drive '+dr+' to drive '+bdr+ ' ' COPY TO &bdr.:sig/mbak ELSE @ 17,05 SAY 'Cant backup to same drive - Aborting' @ 23,00 SAY 'Hit RETURN to Continue' SET CONSOLE OFF WAIT SET CONSOLE ON ENDIF not same drive ENDIF do backup CASE command = '6' * re-initialize index files ERASE @ 7,10 SAY 'Records are now being re-indexed' @ 9,10 SAY 'Please be patient as this takes a little time...' INDEX ON !(lname) TO &dr.:orders CASE command = '7' * browse thru records ERASE @ 01,12 SAY '***WARNING*** ***WARNING*** ***WARNING***' @ 03,13 SAY 'Changes made will be written to the File' @ 06,12 SAY 'CTRL-C write current record & go down' @ 07,12 SAY 'CTRL-R write current record & go up' @ 08,12 SAY 'CTRL-Z/B pans screen left or right' @ 09,12 SAY 'CTRL-V toggles Insert on or off' @ 10,12 SAY 'CTRL-G Delete character under cursor' @ 11,12 SAY 'CTRL-U Delete or Recall current record' @ 12,12 SAY 'CTRL-Q exit Dont Write Current record' @ 13,12 SAY 'CTRL-W exit and Save all changes' * get a starting point in file STORE 'A' TO stletter @ 22,00 @ 22,12 SAY 'At what letter of alphabet to start browsing' @ 22,57 Get stletter PICTURE '!' READ * goto starting point or next if no find FIND &stletter DO WHILE # = 0 STORE 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ' TO ALPHABET STORE @(stletter,ALPHABET) + 1 TO NEXL STORE $(ALPHABET,NEXL,1) TO stletter FIND &stletter RELEASE alphabet ENDDO while # * browse thru file SET ESCAPE OFF BROWSE SET ESCAPE ON CASE (command = '8' .OR. command = 'Q') STORE f TO more ENDCASE ENDDO while more RELEASE ALL STORE t TO first * MENU.SIG 08/14/83 * This is the traffic cop of the system - routes you to * the proper data base * make sure all is written RESET ERASE STORE t TO true STORE '?' TO command DO WHILE true @ 2,12 SAY "SIG/M AMATEUR COMPUTER GROUP OF NEW JERSEY" @ 5,25 SAY "MAIN MENU" @ 8,17 SAY "1 - Run Orders Program" @ 10,17 SAY "2 - Run Inventory Program" @ 12,17 SAY "3 - Quit to dBASEII" @ 14,17 SAY "4 - Quit to CP/M" @ 16,21 SAY "ENTER SELECTION" @ 16,38 GET command picture '9' READ DO CASE CASE command = '1' STORE f TO true USE DO main.sig CASE command = '2' STORE f TO true USE DO main.inv CASE command = '3' ERASE RESET @ 08,00 SAY "HIT ESCAPE KEY for dBASE - - any other key to continue this program" WAIT ERASE STORE '?' TO command CASE command = '4' STORE f TO true SET CONSOLE OFF ERASE QUIT ENDCASE ENDDO while true !(LNAME)command ERASE @ 02,10 SAY 'The newly added ORDERS will NOT appear' @ 03,10 SAY 'to be999999999999999999999999999999999999999999999999999999 ADAMS BROWN BROWN CLARK DIAZ EDWARDS FRANCO GREEN HERNANDEZ ISAACS JOHNSON KILEY ADAMS BROWN BROWN CLARK DIAZ EDWARDS FRANCO GREEN HERNANDEZ ISAACS JOHNSON KILEY LEON SMITH O'BRIEN TEST TEST TEST TEST WASHINGTON WASHINGTON WIL ROBERTS SMITH SMITH SMITH TELL TEST TEST TEST TEST TEST WASHINGTON WASHINGTON WILLIS SMITH TELL TEST TEST TEST TEST WASHINGTON WASHINGTON WIL O'BRIEN SMITH SMITH TELL TEST TEST TEST TEST WASHINGTON WASHINGTON WILLIS ROBERTS SMITH SMITH TELL TEST TEST TEST TEST WASHINGTON WASHINGTON WIL * PRINT.INV * prints inventory of volume IF change1 = t STORE 'Yes' TO mchange1 ELSE STORE ' No' TO mchange1 ENDIF change1 IF change2 = t STORE 'Yes' TO mchange2 ELSE STORE ' No' TO mchange2 ENDIFchange2 SET FORMAT TO PRINT EJECT @ 3,26 SAY "SIG-M VOLUME" @ 3,39 SAY disk @ 5,14 SAY "Opening Inventory" @ 5,33 SAY open:inv @ 5,46 SAY "Description of Volume" @ 7,19 SAY "Back Ordered" @ 7,33 SAY back:ord @ 7,46 SAY line1 @ 8,15 SAY "Waiting Shipment" @ 8,33 SAY wait:ship @ 8,46 SAY line2 @ 9,14 SAY "Quantity Received" @ 9,33 SAY recvd @ 10,14 SAY "Closing Inventory" @ 10,33 SAY STR(open:inv-back:ord-wait:ship+recvd,3,0) @ 10,45 SAY "Change in Inventory" @ 10,70 SAY mchange1 @ 11,46 SAY "Date" @ 11,53 SAY daych1 @ 11,64 SAY "No: " @ 11,70 SAY ship @ 12,19 SAY "Normal Stock" @ 12,33 SAY norm:stk @ 13,14 SAY "Quantity to Order" @ 13,33 SAY order @ 13,45 SAY "Change in Backorders" @ 13,70 SAY mchange2 @ 14,15 SAY "Quantity Ordered" @ 14,33 SAY pend @ 14,46 SAY "Date" @ 14,53 SAY daych2 @ 14,64 SAY "No: " @ 14,70 SAY backship @ 16,10 SAY "Anticipated Inventory" @ 16,33 SAY STR(open:inv-back:ord-wait:ship+recvd+pend,3,0) @ 17,51 SAY "Update:" @ 17,59 SAY dayu @ 52,00 SAY ' ' SET FORMAT TO SCREEN * print.sig 08/18/83 * this module prints the displayed record SET FORMAT TO PRINT SET CONSOLE OFF * put your printer code for 12 characters per inch here ? CHR(28) SET CONSOLE ON EJECT @ 1,10 SAY 'SIG/M SOFTWARE - BOX 97 - ISELIN, NJ 08830' @ 3,6 SAY 'ORDER NUMBER' @ 3,19 SAY ':' @ 3,20 SAY ORDER @ 3,42 SAY 'Complete' @ 3,51 SAY ':' @ 3,52 SAY COMP @ 3,61 SAY 'Backorder' @ 3,71 SAY ':' @ 3,72 SAY BACK @ 5,9 SAY 'Last name' @ 5,19 SAY ':' @ 5,20 SAY LNAME @ 5,45 SAY 'First' @ 5,51 SAY ':' @ 5,52 SAY FNAME @ 7,11 SAY 'Address' @ 7,19 SAY ':' @ 7,20 SAY ADDR1 @ 8,10 SAY '(line 2)' @ 8,19 SAY ':' @ 8,20 SAY ADDR2 @ 9,10 SAY '(line 3)' @ 9,19 SAY ':' @ 9,20 SAY ADDR3 @ 10,14 SAY 'City' @ 10,19 SAY ':' @ 10,20 SAY CITY @ 10,48 SAY 'ST' @ 10,51 SAY ':' @ 10,52 SAY STATE @ 10,67 SAY 'Zip' @ 10,71 SAY ':' @ 10,72 SAY ZIP @ 13,3 SAY 'Volumes' @ 13,11 SAY ':' @ 13,12 SAY VOL1 @ 16,4 SAY 'Amount' @ 16,11 SAY ':' @ 16,12 SAY AMT USING '$###.##' @ 16,43 SAY 'Entered' @ 16,51 SAY ':' @ 16,52 SAY ENTERED @ 16,62 SAY 'Shipped' @ 16,70 SAY ':' @ 16,71 SAY SHIPPED @ 17,43 SAY 'Catalog' @ 17,51 SAY ':' @ 17,52 SAY CATALOG @ 18,3 SAY 'Remarks' @ 18,11 SAY ':' @ 18,12 SAY REM1 @ 19,3 SAY 'Remarks' @ 19,11 SAY ':' @ 19,12 SAY REM2 @ 20,1 SAY 'Backorder' @ 20,11 SAY ':' @ 20,12 SAY BO @ 22,01 SAY 'Backorder shipped' @ 22,19 SAY ':' @ 22,20 SAY BO:SHIP @ 22,40 SAY 'Backorder shipped' @ 22,58 SAY ':' @ 22,59 SAY BO2:SHIP @ 26,40 SAY DATE() @ 52,0 SAY ' ' SET CONSOLE OFF * put printer code here for back to 10 cpi ? CHR(30) SET CONSOLE ON SET FORMAT TO SCREEN * purge.sig 08/18/83 STORE CHR(PEEK (063)) TO dr STORE 'N' TO command ERASE @ 02,05 SAY '***** WARNING! ***** WARNING! ***** WARNING! ****' @ 04,05 SAY 'This will PERMANENTLY remove any deleted records.' @ 06,05 SAY 'Type Y to continue, any other key to cancel this operation' @ 06,64 GET command PICTURE '!' READ IF command = 'Y' * give the user something to read while file is packed @ 10,05 SAY 'Records which have been marked for deletion' @ 11,05 SAY 'are being removed from the file' @ 13,05 SAY 'When that is completed, all records will' @ 14,05 SAY 'be re-indexed, so please be patient....' *pack the file to remove deleted records *but let us know how many records are deleted SET INDEX TO GOTO bottom STORE # to before PACK GOTO bottom STORE # to after @ 18,15 SAY STR(before-after,4)+ ' Deleted Records Removed' INDEX ON !(lname) TO &dr.:orders SET INDEX TO &dr.:orders @ 23,00 SAY 'Hit any key to Continue ' SET CONSOLE OFF WAIT SET CONSOLE ON ENDIF command = Y RELEASE ALL STORE t TO more * report.inv 08/18/83 * report menu of inventory program STORE t TO more DO WHILE more STORE CHR(PEEK (063)) TO dr ERASE STORE 'Y' TO printer STORE 'N' TO wrfile STORE ' ' TO filename STORE '?' TO command @ 2, 0 SAY "--------------------------------------------------------------------------------" @ 2,18 SAY "> > > R E P O R T M E N U < < <" @ 4,18 SAY "1. Print disk labels" @ 6,18 SAY "2. Print inventory report" @ 8,18 SAY "3. Print report of disks shipped and/or ordered" @ 10,18 SAY "4. Print requirements report" @ 12,18 SAY "5. Display Records on screen" @ 14,18 SAY "6. Return to Main Menu" @ 16, 0 SAY "--------------------------------------------------------------------------------" @ 18,30 SAY "WHAT NEXT" @ 18,40 GET command PICTURE '!' READ IF command >'1' .AND. command < '5' @ 19,22 SAY "Send Report to the Printer (Y\N)" @ 19,55 GET printer PICTURE '!' READ @ 21,22 SAY "Send Report to a Disk File (Y\N)" @ 21,55 GET wrfile PICTURE '!' READ IF wrfile ='Y' @ 21,00 @ 21,22 SAY "Enter Disk File Name" @ 21,44 GET filename PICTURE '!!!!!!!!' @ 21,54 SAY "(.TXT will be added )" READ @ 21,00 @ 21,22 SAY 'Select drive to put Files on ' GET dr PICTURE '!' READ DO WHILE @(dr,'ABCDM') = 0 @ 21,00 @ 21,22 SAY 'Select drive to put Files on ' GET dr PICTURE '!' READ ENDDO while @dr ENDIF wrfile = Y IF printer = 'Y' @ 23,00 SAY 'Make Printer Ready and hit any key' SET CONSOLE OFF WAIT SET CONSOLE ON SET print ON ENDIF printer = Y IF wrfile = 'Y' .AND. filename <> ' ' * make a proper REPORT file name that is of type TXT STORE @('.',filename) TO length IF length = 0 .OR. length > 8 STORE 9 TO length ENDIF length STORE $(filename,1,length-1) TO filename STORE '&dr.:'+filename+'.TXT' TO filename SET ALTERNATE TO &filename SET ALTERNATE ON ENDIF wrfile ENDIF command >1 ERASE DO CASE CASE command = '1' DO labels.inv CASE command = '2' DO invent.inv CASE command = '3' DO ship.inv CASE command = '4' DO require.inv CASE command = '5' ERASE @ 02,12 SAY 'Records are displayed by Last names' @ 05,12 SAY 'You may choose the first letter' @ 06,12 SAY 'of the starting location of the records' @ 09,12 SAY 'When WAITING hit space bar to' @ 10,12 SAY 'Continue... or ESCape to Quit' * get a starting point in file STORE 'A' TO stletter @ 17,12 SAY 'Volume number at which to start display' store 0 to stnumber @ 17,57 Get stnumber READ * goto starting point or next if no find LOCATE FOR disk = stnumber IF EOF GOTO TOP ENDIF EOF * display selected list ERASE SET ESCAPE OFF DISPLAY NEXT 65000 disk, open:inv, back:ord, wait:ship, recvd, norm:stk, order, pend IF eof WAIT ENDIF eof SET ESCAPE ON CASE (command = '6' .OR. COMMAND = 'Q') STORE f TO more ENDCASE SET PRINT OFF SET ALTERNATE OFF ENDDO while more RELEASE ALL STORE t TO more STORE t TO first STORE '?' TO command * report.sig 08/18/83 STORE t TO more DO WHILE more STORE CHR(PEEK (063)) TO dr ERASE STORE 'Y' TO printer STORE 'N' TO disk STORE ' ' TO filename STORE '?' TO command @ 2, 0 SAY "--------------------------------------------------------------------------------" @ 2,18 SAY "> > > R E P O R T M E N U < < <" @ 4,18 SAY "1. Print shipping labels" @ 6,18 SAY "2. Print report of orders shipped" @ 8,18 SAY "3. Print report of orders completed" @ 10,18 SAY "4. Print backorder report" @ 12,18 SAY "5. Display Records on screen" @ 14,18 SAY "6. Make WordStar-MailMerge File" @ 16,18 SAY "7. Return to Main Menu" @ 18, 0 SAY "--------------------------------------------------------------------------------" @ 20,30 SAY "WHAT NEXT" @ 20,40 GET command PICTURE '!' READ IF command >'1' .AND. command < '5' @ 20,00 @ 19,22 SAY "Send Report to the Printer (Y/N)" @ 19,55 GET printer PICTURE '!' READ @ 21,22 SAY "Send Report to a Disk File (Y/N)" @ 21,55 GET disk PICTURE '!' READ IF disk ='Y' @ 21,00 @ 21,22 SAY "Enter Disk File Name" @ 21,44 GET filename PICTURE '!!!!!!!!' @ 21,54 SAY "(.TXT will be added )" READ @ 21,00 @ 21,22 SAY 'Select drive to put Files on ' GET dr PICTURE '!' READ DO WHILE @(dr,'ABCDM') = 0 @ 21,00 @ 21,22 SAY 'Select drive to put Files on ' GET dr PICTURE '!' READ ENDDO while @ ENDIF disk = Y IF printer = 'Y' @ 23,00 SAY 'Make Printer Ready and hit any key' SET CONSOLE OFF WAIT SET CONSOLE ON SET print ON ENDIF printer = Y IF disk = 'Y' .AND. filename <> ' ' * make a proper REPORT file name that is of type TXT STORE @('.',filename) TO length IF length = 0 .OR. length > 8 STORE 9 TO length ENDIF length STORE $(filename,1,length-1) TO filename STORE '&dr.:'+filename+'.TXT' TO filename SET ALTERNATE TO &filename SET ALTERNATE ON ENDIF disk = Y and filename <> '' ENDIF disk = Y ERASE DO CASE CASE command = '1' @ 19,00 @ 20,00 @ 19,22 SAY "Send Report to a Disk File (Y/N)" @ 19,55 GET disk PICTURE '!' READ IF disk ='Y' @ 19,00 @ 19,22 SAY "Enter Disk File Name" @ 19,44 GET filename PICTURE '!!!!!!!!' @ 19,54 SAY "(.TXT will be added )" READ @ 19,00 @ 19,22 SAY 'Select drive to put Files on ' GET dr PICTURE '!' READ DO WHILE @(dr,'ABCDM') = 0 @ 19,00 @ 19,22 SAY 'Select drive to put Files on ' GET dr PICTURE '!' READ ENDDO while @ ENDIF disk = Y @ 19,00 @ 20,22 SAY "Send Report to the Printer (Y/N)" @ 20,55 GET printer PICTURE '!' READ IF printer = 'Y' SET PRINT ON SET CONSOLE OFF ? CHR(28) SET PRINT OFF SET CONSOLE ON ERASE STORE t TO lineup DO WHILE LINEUP STORE '?' TO command @ 10,00 @ 11,00 @ 10,10 SAY 'Please line up the top of the ribbon with the top of the label' @ 11,10 SAY 'When lined up hit ENTER for a print check.' SET CONSOLE OFF WAIT SET PRINT ON SET MARGIN TO 0 ? 'THE TOP OF THE TOP LINE SHOULD BE ABOUT' ? '1/4" FROM THE TOP OF THE LABEL' ? ' ' SET PRINT OFF SET CONSOLE ON @ 10,00 @ 11,00 @ 10,10 SAY 'Are you lined up to print (Y/N) ' @ 10,44 GET command picture '!' READ CLEAR GETS IF command = 'Y' SET PRINT ON ? ' ' ? ' ' ? ' ' ? ' ' ? ' ' ? ' ' ? ' ' ? ' ' ? ' ' STORE f TO lineup STORE t TO printlab ENDIF command = y ENDDO WHILE lineup ENDIF printer = y DO labels.sig CASE command = '2' DO shipped.sig CASE command = '3' DO complete.sig CASE command = '4' DO backordr.sig CASE command = '5' ERASE @ 02,12 SAY 'Records are displayed by Last names' @ 05,12 SAY 'You may choose the first letter' @ 06,12 SAY 'of the starting location of the records' @ 09,12 SAY 'When WAITING hit space bar to' @ 10,12 SAY 'Continue... or ESCape to Quit' * get a starting point in file STORE 'A' TO stletter @ 17,12 SAY 'Letter of alphabet at which to start display' @ 17,57 Get stletter PICTURE '!' READ * goto starting point or next if no find FIND &stletter DO WHILE # = 0 STORE 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ' TO ALPHABET STORE @(stletter,ALPHABET) + 1 TO NEXL STORE $(ALPHABET,NEXL,1) TO stletter FIND &stletter RELEASE alphabet ENDDO while # * display selected list ERASE SET ESCAPE OFF DISPLAY NEXT 65000 lname,zip,back,comp,entered,shipped IF eof WAIT ENDIF SET ESCAPE ON CASE command = '6' DO wsfile.sig CASE (command = '7' .OR. COMMAND = 'Q') STORE f TO more ENDCASE SET PRINT OFF SET ALTERNATE OFF ENDDO while more RELEASE ALL STORE t TO more STORE t TO first STORE '?' TO command * require.inv 08/18/83 * inventory requirements report GOTO TOP STORE 0 TO pageno STORE 0 TO need STORE T to MORE SET MARGIN TO 5 DO WHILE more STORE pageno + 1 TO pageno STORE 7 TO lineno ERASE EJECT ? ' ' ? '========================= SIG/M DISK REQUIREMENTS ==================' ? ' ' ? ' ' + date() + ' PAGE: ' + str(pageno,3) ? ' ' ? 'VOLUME OPENING CLOSING NORMAL SHOULD' ? 'NUMBER INVENTORY INVENTORY STOCK ORDER' ? ' ' DO WHILE lineno <55 IF .NOT. EOF STORE norm:stk-open:inv-back:ord-wait:ship+recvd TO need1 IF need1 >0 store need1 + need TO need ELSE store 0 TO need1 ENDIF ? ' '+ STR(disk,3,0) + ' ' + str(open:inv,3,0) + ' ' + STR(open:inv-back:ord-wait:ship+recvd,3,0) + ' ' + STR(norm:stk,3,0) + ' ' + STR(need1,3,0) ELSE STORE f TO more ENDIF not .EOF. STORE lineno + 1 to lineno skip ENDDO while lineno > 55 ENDDO more ? ' ' ? ' ' ? ' TOTAL NUMBER OF DISKS REQUIRED IS ' + str(need,3,0) EJECT SET PRINT OFF RELEASE ALL STORE t TO more * search.inv 08/18/83 * inventory search file STORE t TO first STORE t TO more DO WHILE more IF first ERASE STORE 'Search for volumes by olume number' TO prompt1 STORE 'ackward or orward, dit' TO prompt2 STORE '

rint, or top searching' TO prompt3 STORE 'Inventory Search Module' TO mode @ 1,25 SAY mode @ 2, 0 SAY "+--------------------------------------" @ 2,39 SAY "----------------------------------------+" @ 3,26 SAY "SIG/M VOLUME" @ 5,14 SAY "Opening Inventory" @ 5,46 SAY "Description of Volume" @ 7,19 SAY "Back Ordered" @ 8,15 SAY "Waiting Shipment" @ 9,14 SAY "Quantity Received" @ 10,14 SAY "Closing Inventory" @ 10,45 SAY "Change in Inventory" @ 11,46 SAY "Date" @ 11,64 SAY "No " @ 12,19 SAY "Normal Stock" @ 13,14 SAY "Quantity to Order" @ 13,45 SAY "Change in Backorders" @ 14,15 SAY "Quantity Ordered" @ 14,46 SAY "Date" @ 14,64 SAY "No " @ 16,10 SAY "Anticipated Inventory" @ 17,51 SAY "Update:" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 ENDIF first STORE f TO first STORE 'V' TO command STORE 0 TO volume IF change1 = t STORE 'Yes' TO mchange1 ELSE STORE ' No' TO mchange1 ENDIF change1 IF change2 = t STORE 'Yes' TO mchange2 ELSE STORE ' No' TO mchange2 ENDIF change2 @ 3,39 SAY disk @ 5,34 SAY open:inv @ 7,34 SAY back:ord @ 7,46 SAY line1 @ 8,34 SAY wait:ship @ 8,46 SAY line2 @ 9,34 SAY recvd @ 10,34 SAY STR(open:inv-back:ord -wait:ship + recvd,3,0) @ 10,70 SAY mchange1 @ 11,53 SAY daych1 @ 11,70 SAY ship @ 12,34 SAY norm:stk @ 13,34 SAY order @ 13,70 SAY mchange2 @ 14,34 SAY pend @ 14,53 SAY daych2 @ 14,70 SAY backship @ 16,34 SAY STR(open:inv -back:ord -wait:ship + pend,3,0) @ 17,59 SAY dayu @ 22,56 SAY 'WHAT NEXT?' @ 22,70 GET command PICTURE '!' READ DO CASE CASE (command = 'B' .OR. command = ',') SKIP -1 CASE (command = 'F' .OR. command = '.') SKIP CASE command = 'E' DO edit.inv CASE command = 'P' DO print.inv CASE command = 'V' @ 20,00 @ 21,00 @ 22,00 @ 20,12 SAY 'Please enter Volume Number' GET volume READ LOCATE for volume = disk @ 20,00 IF EOF @ 20,00 @ 20,12 SAY 'That VOLUME is not in the SIG/M library' @ 21,12 SAY 'Press RETURN to Continue' SET CONSOLE OFF WAIT SET CONSOLE ON GOTO top @ 20,00 @ 21,12 SAY ' ' ENDIF EOF @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 CASE command = 'S' STORE f TO more ENDCASE ENDDO while more RELEASE prompt1, prompt2, prompt3 STORE t TO first STORE t TO more STORE '?' TO command * search.sig 08/18/83 * index search program with ability to edit, delete, print, print voucher STORE t TO first STORE t TO more DO WHILE more IF first STORE CHR(PEEK (063)) TO dr USE &dr.:sig/m INDEX &dr.:orders ERASE STORE 'Search for record by ast name or ny part of data base' TO prompt1 STORE 'ackward or orward, elete/Recall, dit' TO prompt2 STORE '

rint, oucher or top searching' TO prompt3 STORE 'Record Search Module' TO mode @ 1,25 SAY mode @ 2, 0 SAY "+--------------------------------------" @ 2,39 SAY "----------------------------------------+" @ 3, 5 SAY "ORDER NUMBER:" @ 3,43 SAY "Complete:" @ 3,60 SAY "Backorder:" @ 4, 8 SAY "Last name:" @ 4,46 SAY "First:" @ 5,10 SAY "Address:" @ 6, 9 SAY "(line 2):" @ 7, 9 SAY "(line 3):" @ 8,13 SAY "City:" @ 8,46 SAY "State:" @ 8,65 SAY "ZIP:" @ 10, 2 SAY "Volumes:" @ 12, 3 SAY "Amount:" @ 12,46 SAY "Enter:" @ 12,64 SAY "Ship:" @ 13, 2 SAY "Remarks:" @ 14, 2 SAY "Remarks:" @ 16, 0 SAY "Backorder:" @ 17,44 SAY "Catalog:" @ 18, 2 SAY "Shipped:" @ 18,26 SAY "Shipped:" @ 18,62 SAY "Update:" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 ENDIF first STORE f TO first STORE 'L' TO command STORE ' ' to name IF * STORE 'Deleted' TO deleted ELSE STORE ' ' TO deleted ENDIF * @ 1, 0 SAY deleted @ 3,19 SAY order @ 3,53 SAY comp @ 3,71 SAY back @ 4,19 SAY lname @ 4,53 SAY fname @ 5,19 SAY addr1 @ 6,19 SAY addr2 @ 7,19 SAY addr3 @ 8,19 SAY city @ 8,53 SAY state @ 8,70 SAY zip @ 10,11 SAY vol1 @ 12,11 SAY amt using '$###.##' @ 12,53 SAY entered @ 12,70 SAY shipped @ 13,11 SAY rem1 @ 14,11 SAY rem2 @ 16,11 SAY bo @ 17,53 SAY catalog @ 18,11 SAY bo:ship @ 18,35 SAY bo2:ship @ 18,70 SAY dayu @ 22,56 SAY 'WHAT NEXT?' @ 22,70 GET command PICTURE '!' READ CLEAR GETS DO CASE CASE command = 'A' DO search1.sig CASE (command = 'B' .OR. command = ',') SKIP -1 CASE command = 'D' IF * RECALL ELSE DELETE ENDIF CASE (command = 'F' .OR. command = '.') SKIP CASE command = 'E' DO edit.sig CASE command = 'P' DO print.sig CASE command = 'V' DO voucher.sig CASE command = 'L' STORE # TO rec:number @ 20,00 @ 21,00 @ 22,00 @ 20,12 SAY 'Please enter Last Name' GET name READ STORE TRIM(name) TO name STORE !(name) TO name FIND &name @ 20,12 SAY ' ' IF # = 0 @ 20,00 @ 20,12 SAY name+' is not in the file' @ 21,12 SAY 'Press RETURN to Continue' SET CONSOLE OFF WAIT SET CONSOLE ON GOTO rec:number @ 20,00 @ 21,12 SAY ' ' ENDIF #=0 @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 CASE command = 'S' STORE f TO more ENDCASE ENDDO while more RELEASE ALL STORE t TO first NOTE - SEARCH1.SIG - COMPREHENSIVE ORDERS SEARCH COMMAND FILE NOTE - NOTE - THIS COMMAND FILE WAS CREATED USING - fastBASE (TM) (VERSION 1.3) NOTE - "THE dBASE II COMMAND FILE GENERATOR" DEVELOPED BY: NOTE - FOURCOLOR DATA SYSTEMS INC. NOTE - 7011 MALABAR STREET NOTE - DAYTON, OHIO 45459 NOTE - PHONE: (513) 433-3780 NOTE - NOTE - SEARCH BY INDEX - OPERATOR CAN SEARCH DATABASE IN ORDER NOTE - OF ANY INDEX FILE. NOTE - NOTE - INDEX FILES - INDICES ARE OF THE FOLLOWING FORM: NOTE - A. CHARACTER FIELDS ARE MADE UPPERCASE. NOTE - (THIS WILL ALLOW THE FIND COMMAND TO NOTE - IGNORE UPPER AND LOWER CASE NOTE - DISTINCTIONS.) NOTE - B. ALL NUMERIC FIELDS ARE CONVERTED TO NOTE - CHARACTER STRINGS. NOTE - C. EXAMPLE: NOTE - IF AN INDEX CONSISTS OF A NUMERIC NOTE - FIELD - FIELDNUM (N,8,2) AND A NOTE - CHARACTER FIELD - FIELDCHAR, THEN NOTE - fastBASE WILL DEFINE THE INDEX AS NOTE - STR(FIELDNUM,8,2) + !(FIELDCHAR). NOTE - NOTE - SEARCH BY PART OF FIELD - OPERATOR CAN SELECT ANY CHARACTER NOTE - FIELD IN THE DATABASE. THEN OPERATOR NOTE - CAN ENTER ANY POSSIBLE SUB-STRING. NOTE - SEARCH WILL THEN DISPLAY EVERY NOTE - RECORD WITH THIS SUB-STRING IN ANY NOTE - PART OF THE SELECTED FIELD. NOTE - NOTE - IF ANY RECORD IS SELECTED BY OPERATOR, THEN THIS SEARCH ROUTINE NOTE - WILL RETURN TO THE CALLING COMMAND FILE THE dBASE II RECORD NOTE - NUMBER IN THE MEMORY VARIABLE 'RECNO' OTHERWISE 'RECNO' NOTE - WILL HAVE THE VALUE ZERO. NOTE - NOTE - WHEN CALLING THIS SEARCH ROUTINE, A MEMORY VARIABLE WITH THE NOTE - NAME 'DR' MUST EXIST. FURTHER THIS MEMORY VARIABLE MUST EITHER NOTE - HAVE THE VALUE ' ' OR 'X:' WHERE X IS ANY ALPHABETIC NOTE - CHARACTER CORRESPONDING TO A VALID DISK DRIVE (EG. A:). NOTE - STORE 'Detailed Search' TO mode STORE CHR(PEEK(063))TO dr ERASE @ 1,20 SAY '*** SEARCH FOR ORDERS ***' @ 3,20 SAY 'SEARCH METHOD:' @ 5,25 SAY '1. SEARCH BY INDEX' @ 6,25 SAY '2. SEARCH PART OF FIELD' STORE ' ' TO EMETH DO WHILE EMETH <> '1' .AND. EMETH <> '2' @ 8,25 SAY ' METHOD? (1,2) ' GET EMETH READ ENDDO IF EMETH = '1' STORE ' ' TO KEYVAR1 @ 10,20 SAY 'ENTER LASTNAME ' GET KEYVAR1 READ STORE KEYVAR1 TO FINDSTRING RELEASE KEYVAR1 USE &DR.:sig/m.DBF INDEX &DR.:ORDERS.NDX NOTE - NOTE - DETERMINE RECORD NUMBER OF FIRST AND LAST RECORD IN DATABASE NOTE - IF # > 0 STORE # TO FIRSTREC GOTO BOTTOM STORE # TO LASTREC NOTE - NOTE - TRIM RIGHT HAND SPACES AND ZEROES FROM FINDSTRING NOTE - ALSO SET FINDSTRING TO UPPER CASE NOTE - STORE TRIM(!(FINDSTRING)) TO FINDSTRING STORE T TO SHRINK DO WHILE SHRINK STORE F TO SHRINK STORE T TO TRIMZERO DO WHILE TRIMZERO .AND. LEN(FINDSTRING) > 1 STORE $(FINDSTRING,LEN(FINDSTRING),1) TO LASTCHAR IF LASTCHAR = '0' .OR. LASTCHAR = ' ' STORE $(FINDSTRING,1,LEN(FINDSTRING)-1) TO FINDSTRING LOOP ENDIF STORE F TO TRIMZERO ENDDO FIND '&FINDSTRING' IF # <> 0 STORE # TO FINDRECNO LOOP ENDIF STORE FINDSTRING + ' ' TO FINDSTRING NOTE - NOTE - USE FIRST 3 CHARACTERS OF FINDSTRING FOR 'FIND' COMMAND NOTE - STORE $(FINDSTRING,1,3) TO FINDSTRING FIND '&FINDSTRING' IF # <> 0 STORE # TO FINDRECNO LOOP ENDIF STORE FINDSTRING + ' ' TO FINDSTRING STORE $(FINDSTRING,1,1) TO FINDSTRING FIND '&FINDSTRING' IF # <> 0 STORE # TO FINDRECNO LOOP ENDIF GOTO TOP STORE # TO FINDRECNO ENDDO STORE FINDRECNO TO STARTREC RELEASE FINDRECNO, FINDSTRING, SHRINK, LASTCHAR, TRIMZERO STORE T TO FILESRCH STORE 'F' TO EOPTION DO WHILE FILESRCH NOTE - NOTE - IF DATABASE HAS AT LEAST 10 RECORDS THEN SEARCH CAN OPERATE NOTE - IN 'FAST' MODE. IN THIS MODE, 10 RECORDS AT A TIME ARE NOTE - DISPLAYED ON THE CRT. NOTE - IF EOPTION = 'F' STORE 'FAST' TO SRCHMODE GOTO TOP SKIP 9 IF # = LASTREC STORE 'D' TO EOPTION ENDIF GOTO STARTREC ENDIF IF EOPTION = 'D' STORE 'DETAIL' TO SRCHMODE ENDIF IF EOPTION = 'R' STORE 0 TO RECNO STORE F TO FILESRCH LOOP ENDIF IF SRCHMODE = 'FAST' STORE ' ' TO EOPTION STORE T TO FASTSRCH DO WHILE FASTSRCH ERASE STORE 1 TO SEARCHLINE STORE # TO RECNO STORE T TO CHECKPOS1 DO WHILE CHECKPOS1 IF RECNO = LASTREC STORE 10 TO SEARCHLINE SKIP - 9 STORE F TO CHECKPOS1 LOOP ENDIF SKIP 8 IF # <> LASTREC SKIP - 8 STORE F TO CHECKPOS1 LOOP ENDIF IF # = LASTREC DO WHILE RECNO <> # SKIP - 1 ENDDO STORE 10 TO SEARCHLINE STORE T TO CHECKPOS2 DO WHILE CHECKPOS2 STORE SEARCHLINE - 1 TO SEARCHLINE SKIP 1 IF # = LASTREC STORE F TO CHECKPOS2 LOOP ENDIF IF SEARCHLINE < 0 STORE F TO CHECKPOS2 LOOP ENDIF ENDDO SKIP - 9 STORE F TO CHECKPOS1 ENDIF ENDDO STORE # TO STARTREC NOTE - NOTE - USE THE SEARCH AND LIST REPORT CREATED BY fastBASE, TO DISPLAY NOTE - 10 RECORDS ON THE CRT AT ONE TIME. NOTE - REPORT NEXT 10 FORM &DR.:SIG/M.FRM PLAIN @ 23,0 SAY 'N (NEXT), P (PREVIOUS), J (JUMP), D (DISPLAY), R (RETURN).' GOTO STARTREC IF EOPTION = 'P' STORE 10 TO SEARCHLINE SKIP 9 DO WHILE # <> PREVREC .AND. SEARCHLINE > 1 STORE SEARCHLINE - 1 TO SEARCHLINE SKIP - 1 ENDDO ENDIF IF EOPTION <> 'P' IF SEARCHLINE <> 1 STORE SEARCHLINE - 1 TO SEARCHLINE SKIP SEARCHLINE STORE SEARCHLINE + 1 TO SEARCHLINE ENDIF ENDIF SET COLON OFF DO WHILE SEARCHLINE > 0 .AND. SEARCHLINE < 11 STORE ' ' TO EOPTION DO WHILE EOPTION <> 'N' .AND. EOPTION <> 'P' .AND. EOPTION <> 'J' .AND. EOPTION <> 'D' .AND. EOPTION <> 'R' @ (2 * SEARCHLINE) + 1, 0 GET EOPTION READ STORE !(EOPTION) TO EOPTION IF EOPTION = 'N' .AND. # = LASTREC STORE ' ' TO EOPTION ENDIF IF EOPTION = 'P' .AND. # = FIRSTREC STORE ' ' TO EOPTION ENDIF ENDDO @ (2 * SEARCHLINE) + 1, 0 SAY ' ' IF EOPTION = 'N' STORE SEARCHLINE + 1 TO SEARCHLINE SKIP 1 LOOP ENDIF IF EOPTION = 'P' STORE SEARCHLINE - 1 TO SEARCHLINE SKIP - 1 STORE # TO PREVREC LOOP ENDIF STORE 0 TO SEARCHLINE ENDDO IF EOPTION = 'P' SKIP - 9 ENDIF IF EOPTION = 'J' SET COLON ON STORE 0 TO INCREMENT @ 23,0 SAY ' ENTER JUMP INCREMENT (+ OR -) ' @ 23,45 GET INCREMENT READ SET COLON OFF IF INCREMENT > 0 SKIP INCREMENT ENDIF IF INCREMENT < 0 STORE 0 - INCREMENT TO INCREMENT SKIP - INCREMENT ENDIF ENDIF IF EOPTION = 'D' .OR. EOPTION = 'R' STORE F TO FASTSRCH ENDIF ENDDO RELEASE FASTSRCH, SEARCHLINE, PREVREC, CHECKPOS1, CHECKPOS2 SET COLON ON ENDIF IF SRCHMODE = 'DETAIL' STORE T TO DETLSRCH DO WHILE DETLSRCH ERASE @ 1,25 SAY mode @ 2,0 SAY '+---------------------------------------' @ 2,39 SAY '--------------------------------------+' @ 4,5 SAY 'ORDER NUMBER Complete Backorder' @ 5,8 SAY 'Last name First' @ 6,10 SAY 'Address' @ 7,9 SAY '(line 2)' @ 8,9 SAY '(line 3)' @ 9,13 SAY 'City State ZIP' @ 11,2 SAY 'Volumes' @ 13,3 SAY 'Amount Enter Ship' @ 14,2 SAY 'Remarks' @ 15,2 SAY 'Remarks' @ 17,0 SAY 'Backorder' @ 18,44 SAY 'Catalog' @ 19,2 SAY 'Shipped Shipped Update' @ 20,0 SAY '+--------------------------------------' @ 20,39 SAY '--------------------------------------+' @ 4,18 GET ORDER @ 5,18 GET LNAME @ 5,52 GET FNAME @ 6,18 GET ADDR1 @ 7,18 GET ADDR2 @ 8,18 GET ADDR3 @ 9,18 GET CITY @ 9,52 GET STATE @ 9,70 GET ZIP @ 11,10 GET VOL1 @ 13,10 GET AMT @ 13,52 GET ENTERED @ 13,69 GET SHIPPED @ 14,10 GET REM1 @ 15,10 GET REM2 @ 17,10 GET BO @ 18,53 GET CATALOG @ 19,10 GET BO:SHIP @ 19,34 GET BO2:SHIP @ 19,69 GET DAYU @ 4,52 GET COMP @ 4,70 GET BACK CLEAR GETS @ 23,0 SAY 'N (NEXT), P (PREVIOUS), J (JUMP), F (FAST SEARCH), R (RETURN)' STORE ' ' TO EOPTION DO WHILE EOPTION <> 'N' .AND. EOPTION <> 'P' .AND. EOPTION <> 'J' .AND. EOPTION <> 'F' .AND. EOPTION <> 'R' @ 23,74 GET EOPTION READ STORE !(EOPTION) TO EOPTION IF EOPTION = 'N' .AND. # = LASTREC STORE ' ' TO EOPTION ENDIF IF EOPTION = 'P' .AND. # = FIRSTREC STORE ' ' TO EOPTION ENDIF ENDDO IF EOPTION = 'N' IF # = LASTREC LOOP ENDIF SKIP 1 ENDIF IF EOPTION = 'P' SKIP - 1 ENDIF IF EOPTION = 'J' STORE 0 TO INCREMENT @ 23,0 SAY ' ENTER JUMP INCREMENT (+ OR -) ' @ 23,45 GET INCREMENT READ IF (# = LASTREC .AND. INCREMENT > 0) .OR. (INCREMENT = 0) LOOP ENDIF IF INCREMENT > 0 SKIP INCREMENT ENDIF IF INCREMENT < 0 STORE 0 - INCREMENT TO INCREMENT SKIP - INCREMENT ENDIF ENDIF IF EOPTION = 'F' .OR. EOPTION = 'R' STORE F TO DETLSRCH STORE # TO STARTREC ENDIF ENDDO RELEASE DETLSRCH ENDIF RELEASE SRCHMODE ENDDO ENDIF ENDIF NOTE - NOTE - SEARCH FOR SUB-STRING THAT IS PART OF A SELECTED FIELD. NOTE - IF EMETH = '2' SET INDEX TO ERASE STORE 'Detailed Search' TO mode @ 10,20 SAY 'SELECT FIELD NUMBER ' @ 12,20 SAY 'ENTER SEARCH DATA ' @ 14,0 SAY ' 1. ORDER NO. 2. BACKORDER 3. COMPLETED 4. LASTNAME 5. FIRST NAME ' @ 15,0 SAY ' 6. ADDRESS 7. ADDR-LINE2 8. ADDR-LINE3 9. CITY 10. STATE ' @ 16,0 SAY '11. ZIP 12. VOLUMES 13. ENTERED 14. SHIPPED 15. REMARKS ' @ 17,0 SAY '16. REMARKS-2 17. BACKORDER 18. SHIPPED 19. SHIPPED 20. UPDATE ' STORE ' ' TO EVAR DO WHILE VAL(EVAR) < 1 .OR. VAL(EVAR) > 23 @ 10,20 SAY 'SELECT FIELD NUMBER ' GET EVAR PICTURE '99' READ ENDDO STORE ' ' TO EPART @ 12,20 SAY 'ENTER SEARCH DATA ' GET EPART READ IF VAL(EVAR) = 1 STORE 'ORDER' TO PARTFIELD ENDIF IF VAL(EVAR) = 2 STORE 'BACK' TO PARTFIELD ENDIF IF VAL(EVAR) = 3 STORE 'COMP' TO PARTFIELD ENDIF IF VAL(EVAR) = 4 STORE 'LNAME' TO PARTFIELD ENDIF IF VAL(EVAR) = 5 STORE 'FNAME' TO PARTFIELD ENDIF IF VAL(EVAR) = 6 STORE 'ADDR1' TO PARTFIELD ENDIF IF VAL(EVAR) = 7 STORE 'ADDR2' TO PARTFIELD ENDIF IF VAL(EVAR) = 8 STORE 'ADDR3' TO PARTFIELD ENDIF IF VAL(EVAR) = 9 STORE 'CITY' TO PARTFIELD ENDIF IF VAL(EVAR) = 10 STORE 'STATE' TO PARTFIELD ENDIF IF VAL(EVAR) = 11 STORE 'ZIP' TO PARTFIELD ENDIF IF VAL(EVAR) = 12 STORE 'VOL1' TO PARTFIELD ENDIF IF VAL(EVAR) = 13 STORE 'ENTERED' TO PARTFIELD ENDIF IF VAL(EVAR) = 14 STORE 'SHIPPED' TO PARTFIELD ENDIF IF VAL(EVAR) = 15 STORE 'REM1' TO PARTFIELD ENDIF IF VAL(EVAR) = 16 STORE 'REM2' TO PARTFIELD ENDIF IF VAL(EVAR) = 17 STORE 'BO' TO PARTFIELD ENDIF IF VAL(EVAR) = 18 STORE 'BO:SHIP' TO PARTFIELD ENDIF IF VAL(EVAR) = 19 STORE 'BO2:SHIP' TO PARTFIELD ENDIF IF VAL(EVAR) = 20 STORE 'DAYU' TO PARTFIELD ENDIF USE &DR.:sig/m.DBF STORE TRIM(EPART) TO EPART RELEASE EVAR GOTO BOTTOM STORE # TO LASTREC GOTO TOP STORE 0 TO RECNO STORE T TO PARTSRCH STORE ' ' TO EOPTION STORE T TO FIRSTLOOP DO WHILE PARTSRCH IF EOPTION = 'R' STORE 0 TO RECNO STORE F TO PARTSRCH LOOP ENDIF IF RECNO = LASTREC STORE 'R' TO EOPTION LOOP ENDIF IF FIRSTLOOP LOCATE FOR !(EPART) $ !(&PARTFIELD) ENDIF IF .NOT.FIRSTLOOP CONTINUE ENDIF STORE F TO FIRSTLOOP STORE # TO RECNO IF # = LASTREC .AND.(.NOT. EPART $ &PARTFIELD) STORE 'R' TO EOPTION LOOP ENDIF ERASE @ 1,25 SAY mode @ 2,0 SAY '+---------------------------------------' @ 2,39 SAY '--------------------------------------+' @ 4,5 SAY 'ORDER NUMBER Complete Backorder' @ 5,8 SAY 'Last name First' @ 6,10 SAY 'Address' @ 7,9 SAY '(line 2)' @ 8,9 SAY '(line 3)' @ 9,13 SAY 'City State ZIP' @ 11,2 SAY 'Volumes' @ 13,3 SAY 'Amount Enter Ship' @ 14,2 SAY 'Remarks' @ 15,2 SAY 'Remarks' @ 17,0 SAY 'Backorder' @ 18,44 SAY 'Catalog' @ 19,2 SAY 'Shipped Shipped Update' @ 20,0 SAY '+--------------------------------------' @ 20,39 SAY '--------------------------------------+' @ 4,18 GET ORDER @ 5,18 GET LNAME @ 5,52 GET FNAME @ 6,18 GET ADDR1 @ 7,18 GET ADDR2 @ 8,18 GET ADDR3 @ 9,18 GET CITY @ 9,52 GET STATE @ 9,70 GET ZIP @ 11,10 GET VOL1 @ 13,10 GET AMT @ 13,52 GET ENTERED @ 13,69 GET SHIPPED @ 14,10 GET REM1 @ 15,10 GET REM2 @ 17,10 GET BO @ 18,53 GET CATALOG @ 19,10 GET BO:SHIP @ 19,34 GET BO2:SHIP @ 19,69 GET DAYU @ 4,52 GET COMP @ 4,70 GET BACK CLEAR GETS STORE ' ' TO EOPTION @ 22,12 SAY 'N (NEXT), R (RETURN)' DO WHILE EOPTION <> 'N' .AND. EOPTION <> 'R' @ 22,37 GET EOPTION picture '!' READ ENDDO ENDDO RELEASE PARTSRCH ENDIF RELEASE EMETH, EOPTION, EPART, FILESRCH, LASTREC, FIRSTREC, STARTREC RELEASE PARTFIELD, NUMREC, FIRSTLOOP, EKEYOPT, INCREMENT, MODE SET INDEX TO &dr.:orders STORE t TO FIRST RETURN * ship.inv 08/21/83 * inventory shipping report GOTO TOP STORE 0 TO pageno STORE 0 TO col3 STORE 0 TO col4 STORE 0 TO col5 STORE T to MORE SET MARGIN TO 5 DO WHILE more STORE pageno + 1 TO pageno STORE 7 TO lineno ERASE EJECT ? ' ' ? '========================= SIG/M DISK ORDERS ========================' ? ' ' ? ' ' + date() + ' PAGE: ' + str(pageno,3) ? ' ' ? 'VOLUME INVENTORY ADJUSTED NEW NEW ORDERS NEW ORDERS' ? 'NUMBER FOR OLD ORDERS ORDERS SHIPPED BACKORDERED' ? ' ' DO WHILE lineno <55 IF .NOT. EOF STORE ship + COL4 TO COL4 STORE backship + COL5 TO COL5 ? ' '+ STR(disk,3,0) + ' ' + str(open:inv-back:ord-wait:ship+recvd,3,0) + ' ' + STR(ship + backship,3,0) + ' ' + STR(ship,3,0) + ' ' + STR(backship,3,0) ELSE STORE f TO more ENDIF not .EOF. STORE lineno + 1 to lineno skip ENDDO while lineno > 55 ENDDO more ? ' ----------------------------------------------------------------------------' ? ' ' ? " TOTAL NUMBER OF VOLUMES ORDERED WAS " + STR(COL4 + COL5,3,0) ? " TOTAL NUMBER OF VOLUMES SHIPPED WAS " + STR(COL4,3,0) ? " TOTAL NUMBER OF VOLUMES BACKORDERED WAS " + STR(COL5,3,0) EJECT SET PRINT OFF RELEASE ALL STORE t TO more * SHIPPED. SIG 08/18/83 * shipping report program * add your own printer codes ERASE * get a starting point STORE DATE() TO stdat @ 10,12 SAY 'Shipments after what date are to be listed' @ 10,57 GET stdat PICTURE '99/99/99' READ * store date as YYMMDD STORE $(stdat,7,2)+$(stdat,1,2)+$(stdat,4,2) TO stdate GOTO TOP STORE 0 TO pageno STORE t TO more STORE 0 TO TOTAL STORE 0 TO CAT STORE 0 TO AMOUNT SET MARGIN TO 0 DO WHILE more STORE pageno + 1 TO pageno STORE 7 TO lineno ERASE EJECT ? ' ' ? '======================SIG/M SHIPPING REPORT ========================' ? ' ' ? ' ' + date() + ' PAGE: ' + str(pageno,3) ? ' ' ? ' ORDERS WHERE SHIPMENTS AFTER ' + stdat ? ' ' ? ' CAT LAST NAME ENTERED SHIPPED BACKORDER SHIPPED AMOUNT' ? ' ' DO WHILE lineno <55 STORE $(shipped,7,2)+$(shipped,1,2)+$(shipped,4,2) TO stdate1 STORE $(bo:ship,7,2)+$(bo:ship,1,2)+$(bo:ship,4,2) TO stdate2 STORE $(bo2:ship,7,2)+$(bo2:ship,1,2)+$(bo2:ship,4,2) TO stdate3 IF stdate2 >=stdate1 STORE stdate2 TO stdate4 ELSE store stdate1 TO stdate4 ENDIF IF stdate3 >=stdate4 STORE stdate3 TO stdate5 ELSE STORE stdate4 TO stdate5 ENDIF IF stdate5 >= stdate STORE total + 1 TO TOTAL STORE amount + amt TO amount ? ' ' + catalog + ' '+ lname +' ' + entered + ' '+ shipped +' ' + bo:ship + bo2:ship +' '+ STR(amt,7,2) IF catalog = 'N' STORE cat + 1 TO cat ENDIF catalog STORE lineno + 1 to lineno SKIP IF EOF STORE 60 TO lineno STORE f TO more ENDIF EOF ELSE SKIP IF EOF STORE 60 TO lineno STORE f TO more ENDIF eof ENDIF STDATE ENDDO while lineno > 55 ENDDO more ? '--------------------------------------------------------------------------' ? ' ' ? ' TOTALS: NUMBER OF SHIPMENTS: ' + STR(total,4,0) ? ' DOLLAR AMOUNT OF ORDERS WHERE SHIPMENTS: ' + STR(amount,8,2) ? ' NUMBER OF CATALOGS ORDERS WHERE SHIPMENTS: ' + STR(total-cat,4,0) EJECT SET PRINT OFF RELEASE ALL STORE t TO more STORE t TO first * SIG/M.CMD 08/18/83 * THIS IS THE STARTING PROGRAM IN A RATHER COMPREHENSIVE DUAL DATA * BASE. THE KEY PROGRAMS ARE MAIN.SIG AND MAIN.INV. MENU.SIG IS * THE "TRAFFIC COP." THE ORDERS DATA BASE IS CALLED SIG/M. THE * INVENTORY DATA BASE IS CALLED STOCK. WHEN AN ORDER IS ENTERED * THE PROGRAM DETERMINES IT VALIDITY, DELETES IT FROM INVENTORY * OR BACKORDERS IT. IT PRINTS ALL SORTS OF REPORTS, ETC. * A TUTORIAL DATA BASE WAS ISSUED ON SIG/M VOLUME 110. BECAUSE OF THE * LARGE NUMBER OF REQUESTS FOR THAT VOLUME (COUPLED WITH A SIG/M RE- * QUIREMENT FOR AN INVENTORY DATA BASE) WITH THE SIGNIFICANT HELP OF * HARRY VAN TASSELL I WROTE THIS PROGRAM. THE VOLUME 110 DATA BASE * IS NOT MAXIMIZED FOR SPEED - THIS IS. ON OUR WORKING VERSION OF THIS PROGRAM * WE REMOVED ALL COMMENTS AND SET UP EVERYTHING USING FASTBASE. IN THIS * LIBRARY FILE WE HAVE LEFT IT AS PRETTY PRINTED BY FASTBASE FOR EASE IN * UNDERSTANDING. SPEAKING OF FASTBASE, I HAVE TRIED MOST OF THE dBASE * GENERATORS AND EXCEPT FOR ZIP FIND THEM OF LITTLE VALUE. I RECENTLY * PURCHASED FASTBASE FROM FOURCOLOR DATA SYSTEMS IN DAYTON AND WAS * SO IMPRESSED WITH SOME OF THE THINGS IT COULD DO THAT I INCLUDED AS * SEARCH1.SIG THE SEARCH FILE IT GENERATED. IT FINDS ANY STRING ANY * PLACE IN ANY FIELD AND IN EVERY RECORD. ITS INDEX SEARCH IS ALSO * EXCELLENT AND THE DISPLAY IN SO-CALLED FAST MODE IF FAR BETTER * THAN THE dBASE NORMAL DISPLAY. * THE PROGRAM IS PRETTY MUCH SELF EXPLANATORY. TRY IT - SEE HOW IT * WORKS AND ADJUST IT FOR YOUR OWN REQUIREMENTS. PLEASE LET US KNOW OF * ANY PROBLEMS AND SEND US ANY IMPROVEMENTS. * Steve Leon * 200 Winston Drive * Cliffside Park, NJ 07010 * (201) 886-1658 * This initialization program is run once, when the program is first started * it will initialize the variables, set up environment and do a sign-on. * Place all command which affect the entire system here. * place your choice of intensity, confirm, etc. here. * If you want to use highlighting, we suggest you not do it * here. Do it in connection with the "IF FIRST" on the main * screen calls. See MAIN.SIG and MAIN.INV SET TALK OFF SET INTENSITY OFF * THIS PROGRAM RUNS FINE UNDER CPM/86. JUST CHANGE ITS NAME TO SIG/M.PRG * WE ARE ABLE TO DISTINGUISH BETWEEN CP/M 80 AND CPM/86 ON ALL * SYSTEMS WE HAVE TRIED. IF YOU HAVE A PROBLEM WITH YOUR SYSTEM * JUST TAKE OUT THE AUTOMATIC RECOGNITION AND/OR AUTOMATIC INPUT. * HOWEVER, NEVER USE A CP/M 80 MEMORY FILE ON CP/86 AND VICE * VERSA. JUST DELETE IT - THE PROGRAM WILL CREATE A NEW ONE * HERE WE CREATE OUR VARIABLES FOR ADDING RECORDS TO THE .SIG FILES IF .NOT. FILE("add.mem") STORE ' ' TO morder STORE ' ' TO mback STORE ' ' TO mcomp STORE ' ' TO mlname STORE ' ' TO mfname STORE ' ' TO maddr1 STORE ' ' TO maddr2 STORE ' ' TO maddr3 STORE ' ' TO mcity STORE ' ' TO mstate STORE ' ' TO mzip STORE 000.00 TO mamt STORE 999 TO mvol STORE ' ' TO mstatus STORE ' ' TO mvol1 STORE ' ' TO mentered STORE ' ' TO mshipped STORE ' ' TO mrem1 STORE ' ' TO mrem2 STORE ' ' TO mbo STORE ' ' TO mcatalog STORE ' ' TO mbo:ship STORE ' ' TO mbo2:ship STORE ' ' TO mdayu STORE ' ' TO mstatus SAVE TO ADD RELEASE ALL ENDIF ERASE ? ' *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<' ? ' * *' ? ' * AMATEUR COMPUTER GROUP OF NEW JERSEY *' ? ' * *' ? ' * SIG/M *' ? ' * LIBRARY OF PUBLIC DOMAIN SOFTWARE *' ? ' * *' ? ' * A dBASEII Program by Steve Leon for.......... *' ? ' * *' ? ' * DISK INVENTORY ORDER PROCESSING *' ? ' * SHIPPING DISK LABELS *' ? ' * *' ? ' * Vers 1.0 Aug. 25, 1983 *' ? ' *>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*' * If you have a Compupro System Support Board leave the following code in. * It automatically sets the date. Otherwise, since the program requires * that the date be entered, you will have top manually enter the date in * response to the prompt. * Read date from Compupro System Support board, store the date into DBASE * DATE() function. See file DATETIME.ASM for assembly language source code * from which the POKE list values are determined. * * *STORE 41984 TO adr **in cp/m 80 there is a jmp at location 0 & 5 *IF (PEEK(0)=195 .AND. PEEK(5)=195) **use 8080 code *POKE adr ,35,17,37,164,14,6,6,2,26,19,198,16,211,90,254,21,219,91,194; *,23,164,214,8,198,48,119,35,5,194,8,164,35,13,194,6,164; *,201,10,9,8,7,12,11,5,4,3,2,1,0 *ELSE **use 8086 code *POKE adr ,67,190,38,164,177,6,181,2,138,4,70,4,16,230,90,60,21,228,91,117; *,2,44,8,4,48,136,7,67,254,205,117,232,67,254,201,117,225,195,10,9; *,8,7,12,11,5,4,3,2,1,0 *ENDIF *SET CALL TO adr *STORE ' / / , : : ' TO mem:var *CALL mem:var *STORE $(mem:var,1,8) TO mdate *SET DATE TO &mdate *************************************************************************** *@ 17,15 SAY 'Date and Time : ' + mem:var **************************************************************************** * IF YOU DO NOT HAVE AUTOMATIC DATE READ - YOU WILL HAVE TO INPUT DATENPU * THE PROGRAM REQUIRES THAT YOU INPUT A DATE AND A DATE VALIDATION PROGRAM * BY WILLIAM G. HURST WE FOUND IN dNEWS IS INCLUDED. DO WHILE $(DATE(),1,2)='00' STORE ' ' TO date:var @ 18,15 SAY 'Enter date as MM/DD/YY ' @ 18,43 GET date:var PICTURE '##/##/##' READ CLEAR GETS * flag set to'1' STORE '1' TO invalid DO WHILE invalid = '1' STORE $(date:var,1,2) TO mm1 STORE VAL(mm1) TO mm STORE $(date:var,4,2) to dd1 STORE VAL(dd1) to dd STORE $(date:var,7,2) TO yy1 STORE VAL(yy1) TO yy * Each case below is a negative test. Date is valid * if none of the tests prove true. DO CASE * check for improper month, day or year CASE mm<1 .OR. mm>12 .OR. dd<1 .OR. dd>31 .OR. yy<83 STORE ' ' TO date:var @ 20,00 @ 20,15 SAY 'NO SUCH DATE - PLEASE TRY AGAIN' @ 18,43 GET date:var PICTURE '##/##/##' READ CLEAR GETS * check for 31 days in 30 day month CASE((mm<8.AND.mm/2=INT(mm/2)).OR.(mm>7.AND.; mm/2<>INT(mm/2))).AND.dd>30 * invalid date:user is prompted for reentry STORE ' ' TO date:var @ 20,00 @ 20,15 SAY 'SORRY - WRONG NUMBER OF DAYS FOR THE MONTH - TRY AGAIN' @ 18,43 GET date:var PICTURE '##/##/##' READ CLEAR GETS * test for February, if month is not Feb, and it has * 'failed' the tests so far the date is OK CASE mm<>2 *date is OK;invalid = '0' drops out of DO WHILE LOOP STORE '0' TO invalid * if month is Feb., check number of days in non-leap year * does not exceed 28 CASE(yy/4<>INT(yy/4).OR.(yy/100=INT(yy/100).AND.; yy/400<>INT(yy/400))).AND. dd>28 * invalid date, user is prompted for reentry STORE ' ' TO date:var @ 20,00 @ 20,15 SAY 'REMEMBER - FEBRUARY IS A SHORT MONTH! - PLEASE TRY AGAIN' @ 18,43 GET date:var PICTURE '##/##/##' READ CLEAR GETS * finally, check days in leap year February <30 CASE dd=30 * invalid date; user is prompted for reentry STORE ' ' TO date:var @ 20,00 @ 20,43 'EVEN A LEAP YEAR FEBRUARY ONLY HAS 29 DAYS - PLEASE REENTER' @ 18,43 GET datevar PICTURE '##/##/##' READ CLEAR GETS OTHERWISE @ 20,00 STORE '0' TO invalid ENDCASE * end of DO WHILE loop if valid = '0' program terminates * if invalid #'0'loop repeats ENDDO while invalid RELEASE nn1,dd1,yy1,dd,yy SET DATE TO &date:var ENDDO while date * set up bell STORE 'Y' TO command @ 20,00 @ 19,15 SAY'Do you wish to use signal beep ? ' GET command PICTURE '!' READ IF command = 'N' SET BELL OFF ENDIF command = N * set up drive for data disk * Thanks to Harry Van Tassell we store the default drive to dr * However, if you do not keep the data on the default drive we suggest * you change the code to eliminate the drives you do not have. This * way you cannot accidentally select a drive STORE 41984 TO ADDRESS STORE ' ' TO dr * find out if you are running under CP/M 80 IF (PEEK(0) = 195 .AND. PEEK(5) = 195) *8080 code POKE ADDRESS ,35,229,14,25,205,5,0,225,198,65,119,201 ELSE *8086 code POKE ADDRESS,67,83,177,25,205,224,4,65,91,136,7,195 ENDIF peek SET CALL TO ADDRESS CALL dr RELEASE ADDRESS @ 20,15 SAY 'In which drive is the DATA disk ? ' GET dr PICTURE '!' READ DO WHILE @(dr,'ABCDM') = 0 @ 20,15 SAY 'In which drive is the DATA disk ? ' GET dr PICTURE '!' READ ENDDO while @dr * poke drive letter into memory 039 hex POKE 063,(64+@(dr,'ABCDM')) RELEASE ALL DO MENU.SIG SZORDERC ÑlBACKCÚlCOMPCÛlLNAMECÜlFNAMECðlADDR1C#ÿlADDR2C#"mADDR3C#EmCITYChmSTATECmZIPCƒmVOL1C†ˆmAMTNnENTEREDCnSHIPPEDCnREM1CC&nREM2CCinBOCd¬nCATALOGCoBO:SHIPCoBO2:SHIPCoDAYUC!oNEWL)o 108263NYLeon Stephen 200 Winston Drive Cliffside Park NJ07010 110,125, 16.0008/26/8308/26/83 5, N / / / / 08/26/83T 208263NYAdams Robert Western Avenue Albany NY10098 1, 23, 56, 69, 89, 34.0008/26/8308/26/83 N / / / / 08/26/83T 308263NYBrown Alice 90 Broadway Hilton WI45689 0,125,126,127,128, 50.0008/26/8308/26/83 129, N / / / / 08/26/83T 408263YNBrown Thomas Best Computer Company PO Box 56 Horace IL12345 0, 12.0008/26/8308/26/83 5, N / / / / 08/26/83T 508263NYClark Michael 79 Williams Newton CA45699 98, 99,100,101,102,103,104,105,106,107,108,122,123, 850.0008/26/8308/26/83balance donation to club. send letter of appreciation Y / / / / 08/26/83T 608263NYDiaz Wilma 200 Santa Rosa San Juan PR01110 0, 6.0008/26/8308/26/83air mail N / / / / 08/26/83T 708263YNEdwards John 12 St James London, England 45555 8.0008/26/8308/26/83 0, N / / / / 08/26/83T 808263NYFranco Robert 30 East 208 Street Santa Clara CA12345 110, 6.0008/26/8308/26/83 N / / / / 08/26/83T 908263NYGreen Alice 100 Centre Street New York NY10013 56, 6.0008/26/8308/26/83 N / / / / 08/26/83T 1008263NYHernandez Juan 39 West Drive Lakeshore IO12456 126,127, 11.0008/26/8308/26/83 N / / / / 08/26/83T 1108263NYIsaacs Stanley 34 Marboror Street West Allis WI45678 96, 6.0008/26/8308/26/83 N / / / / 08/26/83T 1208263NYJohnson Joanne 1005 Park Avenue New York NY10022 89, 6.0008/26/8308/26/83 N / / / / 08/26/83T 1308263NYKiley Clarence RD # 15 Sturgis TN12588 15, 6.0008/26/8308/26/83send membership application N / / / / 08/26/83T 1408263NYSmith Joseph 23 West End Drive Tulsa OK67890 15, 99, 12.0008/26/8308/26/83 5, Y / / / / 08/26/83T @ 11,48 GET mvol READ CLEAR GETS IF mvol = 999 STORE f TO getit STORE ' ' TO mstatus STORE f TO avoid ELSE M=0 N Y N 78,' '+LNAME+ZIP+' '+COMP+' '+BACK+' '+ENTERED+' '+SHIPPED+' '+STR(AMT,8,2) < LASTNAME ZIP COMP BACK ENTERED SHIPPED AMOUNT ‡SuDISKNÑlOPEN:INVNÔlBACK:ORDN×lWAIT:SHIPNÚlRECVDNÝlNORM:STKNàlORDERNãlPENDNælCHANGE1LélDAYCH1CêlCHANGE2LòlDAYCH2CólSHIPNûlBACKSHIPNþlLINE1CmLINE2CmDAYUC=m 0 0 3 0 0 10 0 0F F 0 0INFORMATION CATALOG SIG/M 1- 08/26/83 1 8 0 0 0 10 0 0F F 0 0350 POINT 8080 CODE ADVENTURE 08/22/83 2 10 0 0 0 10 0 0F F 0 0FORTRAN SOURCE OF VOLUME 1 08/22/83 3 10 0 0 0 10 0 0F F 0 0550 POINT Z80 CODE ADVENTURE 08/18/83 4 10 0 0 0 10 0 0F F 0 0CP/M UTILITIES 5 0 8 0 0 10 0 0F T08/26/83 0 1PROCESSOR/MEMORY/ ICOM DIAGNOSTICS 08/20/83 6 10 0 0 0 10 0 0F F 0 06502 SIMULATOR FOR A Z80 08/20/83 7 10 0 0 0 10 0 0F F 0 0BULLETIN BOARD UTILITIES 8 10 0 0 0 10 0 0F F 0 0PASCAL & COMMUNICATIONS ROUTINES 9 10 0 0 0 10 0 0F F 0 0CP/M UTILITIES 10 8 0 0 0 10 0 0F F 0 0GAMES, DISSASSEMBLERS, CDOS SIMULATOR FOR CP/M 11 9 0 0 0 10 0 0F F 0 0AUTO CPU ADJUSTING 550 PT ADVENTURE - SUPERCEDED VOL 3 12 9 0 0 0 10 0 0F F 0 0CROSS RFERENCE INDEX FOR CPMUG VOL 1-47 & SIG/M 1-11 08/22/83 13 10 0 0 0 10 0 0F F 0 0HELP AND FIG-FORTH CP/M UTILITIES 14 10 0 0 0 10 0 0F F 0 0HELP SYSTEM FOR COMMON SOFTWARE 15 8 0 0 0 10 0 0T08/26/83F 1 0DOCUMATION CPMUG 1-42 SIG/M 1-3 16 10 0 0 0 10 0 0F F 0 0OTHER CP/M UTILITIES 17 10 0 0 0 10 0 0F F 0 0MICRONET EXECUTIVE CP/M 2.2 BIOS 18 10 0 0 0 10 0 0F F 0 0CP/M AND ICOM UTILITIES COPYRIGHT PROGRAM 19 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 1S CP/M UTILITIES 20 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 2 MONITOR, TELETEK 21 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 3 TEXT PROCESSING, WUMPUS 22 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 4 MATH UTILITIES, RECIPE SYS 23 7 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 5 UCSD UTIL, RTC, HANOI 24 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 6 GAMES, 1981 CALENDAR 25 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 7 DATABASE, MULTI TRAK BIOS 26 9 0 0 0 10 0 0F F 0 0GAMES, MAIL LABEL SYSTEM EE PACKAGE, HAM NOTEBOOK / / 27 10 0 0 0 10 0 0F F 0 0ADVANCED TERMINAL SYSTEMS CONFIDENCE TESTS 28 10 0 0 0 10 0 0F F 0 0SMALL LIBRARY FOR PASCAL Z 29 10 0 0 0 10 0 0F F 0 0DOCUMENTATION ADDENDUM #1 30 10 0 0 0 10 0 0F F 0 0DOCUMENTATION ADDENDUM #2 31 10 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 1 OF 8 32 10 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 2 OF 8 33 10 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 3 OF 8 34 8 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 4 OF 8 35 10 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 5 OF 8 36 9 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 6 OF 8 37 10 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 7 OF 8 38 10 0 0 0 10 0 0F F 0 0YALE CATALOG OF BRIGHT STARS VOL 8 OF 8 39 10 0 0 0 10 0 0F F 0 0UPDATED 3740 DISK UTILITY PLI LANGUAGE ANALIZER 40 10 0 0 0 10 0 0F F 0 0MISC. SYSTEM SUPPORT, ISIS EMULATOR, QUME DRIVER 41 10 0 0 0 10 0 0F F 0 0CROMENCO CDOS - CPM SYSTEM SUPPORT, BIOS FOR 16&4FDC 42 9 0 0 0 10 0 0F F 0 0SD SALES BIOS, PERTEC UTIL, WM CUSTOMIZATION NOTES 43 10 0 0 0 10 0 0F F 0 08080 TINCPM COMPILER PIDGIN PROG.,CP/M86 BIOS 44 10 0 0 0 10 0 0F F 0 0MISC UTILITIES 45 9 0 0 0 10 0 0F F 0 0DUNGEON VOL 1 OF 3 46 10 0 0 0 10 0 0F F 0 0DUNGEON VOL 2 OF 3 47 10 0 0 0 10 0 0F F 0 0DUNGEON VOL 3 OF 3 48 10 0 0 0 10 0 0F F 0 0COMMUNICATIONS UTILITIES MISC CP/M SUPPORT 49 9 0 0 0 10 0 0F F 0 0ACCOUNTS PAYABLE/RECEIVEABLE MASTER DATABASE SYSTEM 50 10 0 0 0 10 0 0F F 0 0DCT HARD DISK BIOS SUPPORT VOICE SYNTHESIS SYS 51 10 0 0 0 10 0 0F F 0 01981 INFORMATION CATALOG 52 10 0 0 0 10 0 0F F 0 0SIG/M CPMUG CROSS RFERENCE UN'P'ROTECT MBASIC PROGRAMS 53 9 0 0 0 10 0 0F F 0 0UPDATED SAM76 54 10 0 0 0 10 0 0F F 0 0Z80 COMMAND PROC. REPLACEMENT CONIN & CONOUT ONTO DISK 55 10 0 0 0 10 0 0F F 0 0DOCUMENT #3 OF SIG/M CATALOG OF PUBLIC DOMAIN SOFTWARE 56 2 0 0 0 10 0 0F F 0 0MUSICRAFT SOFTWARE SYSTEM 1 OF 3 57 10 0 0 0 10 0 0F F 0 0MUSICRAFT SOFTWARE SYSTEM 2 OF 3 58 10 0 0 0 10 0 0F F 0 0MUSICRAFT SIFTWARE SYSTEM 3 OF 3 59 11 0 0 0 10 0 0F F 0 0PISTOL - PORTABLY IMPLEMENTED STACK ORIENTED LANGUAGE 60 10 0 0 0 10 0 0F F 0 0MISC CP/M UTILITIES 61 10 0 0 0 10 0 0F F 0 0DAN'S INFORMATION MANAGEMENT SYSTEM 62 10 0 0 0 10 0 0F F 0 0EXTRACTS FROM PASCAL Z VOLUME 10 63 10 0 0 0 10 0 0F F 0 0EXTRACTS FROM PASCAL Z VOLUME 11 64 10 0 0 0 10 0 0F F 0 0EXTRACTS FROM PASCAL Z VOLUME 12 65 10 0 0 0 10 0 0F F 0 0UPDATED BULLETIN BOARD SUPPORTMISCELLANEOUS UTILITIES / / 66 10 0 0 0 10 0 0F F 0 0UPDATED BULLETIN BOARD SUPPORTMISCELLANEOUS UTILITIES 67 8 0 0 0 10 0 0F F 0 0UPDATED BULLETIN BOARD SUPPORTMISCELLANEOUS UTILITIES 68 10 0 0 0 10 0 0F F 0 0MISCELLANEOUS UTILITIES 69 8 0 0 0 10 0 0F F 0 0Z USERS GROUP VOLUME 13 70 10 0 0 0 10 0 0F F 0 0NORTHSTAR BASIC PROGRAMS FORTH 1.1 FOR CP/M 71 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 14 72 10 0 0 0 10 0 0F F 0 0Z USERS GROUP VOL 14 73 10 0 0 0 10 0 0F F 0 0MISCELLANEOUS UTILITIES FROM SOFTWARE TOOLS OF AUSTRALIA 74 10 0 0 0 10 0 0F F 0 0MISCELLANEOUS UTILITIES FROM SOFTWARE TOOLS OF AUSTRALIA 75 10 0 0 0 10 0 0F F 0 0GAMES, GRAPHICS ETC. FROM SOFTWARE TOOLS OF AUSTRALIA 76 10 0 0 0 10 0 0F F 0 0SOFTWARE TOOLS OF AUSTRALIA EXTRACTS FROM VOLUME 8 77 10 0 0 0 10 0 0F F 0 0ZCPR - AN ENHANCEMENT TO REPLACE THE CP/M CCP 78 10 0 0 0 10 0 0F F 0 0SOFTWARE TOOLS OF AUSTRALIA EXTRACTS FROM VOLUME 11 79 10 0 0 0 10 0 0F F 0 0PL/I-80TM USER'S GROUP LIBRARY 80 10 0 0 0 10 0 0F F 0 0EXTRACTS FROM PASCAL Z USERS GROUP VOLUME 16 81 10 0 0 0 10 0 0F F 0 0PASCAL Z USERS GROUP VOLUME 17 82 10 0 0 0 10 0 0F F 0 0PASCAL Z USERS GROUP VOLUME 18 83 10 0 0 0 10 0 0F F 0 0SOFTWARE TOOLS OF AUSTRALIZ VOLUME 12 84 10 0 0 0 10 0 0F F 0 0SOFTWARE TOOLS OF AUSTRALIA MISCELLANEOUS UPDATES 85 10 0 0 0 10 0 0F F 0 0PASCAL Z USERS GROUP VOLUME 19 86 10 0 0 0 10 0 0F F 0 0TRS-80 MODEL I CP/M PROGRAMS FOR OMIKRON MAPPER SYSTEMS 87 10 0 0 0 10 0 0F F 0 0THE FED (TM) ECONOMETRIC MODEL-DECISION SCIENCES & SOFTWARE 88 10 0 0 0 10 0 0F F 0 0SYS LIB (SYSTEM LIBRARY) M80 SUBROUTINES -VOL 1 OF 3 89 7 0 0 0 10 0 0F F 0 0SYS LIB (SYSTEM LIBRARY) M80 SUBROUTINES -VOL 2 OF 3 90 10 0 0 0 10 0 0F F 0 0SYS LIB (SYSTEM LIBRARY) M80 SUBROUTINES VOL 3 OF 3 91 10 0 0 0 10 0 0F F 0 0UTILITY PROGRAMS 92 10 0 0 0 10 0 0F F 0 068000 CROSS-ASSEMBLER RBBS, LITTLE ADA 93 10 0 0 0 10 0 0F F 0 0MODEM UPDATE 94 10 0 0 0 10 0 0F F 0 0PASCAL Z USERS GROUP EXTRACTS FROM VOLUME 20 95 9 0 0 0 10 0 0F F 0 0PASCAL Z USERS GROUP EXTRACTS FROM VOLUME 21 96 5 0 0 0 10 0 0F F 0 0CP/M86 UTILITY PROGRAMS 97 10 0 0 0 10 0 0F F 0 0PASCAL Z USERS GROUP VOLUME 22 98 9 0 0 0 10 0 0F F 0 0ZCPR2-CP/M CCP REPLACEMENT VOLUME 1 OF 10 99 8 0 0 0 10 0 0T08/26/83F 1 0ZCPR2-Z80 CP/M REPLACEMENT VOLUME 2 OF 10 100 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 3 OF 10 101 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 4 OF 10 102 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 5 OF 10 103 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 6 OF 10 104 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 7 OF 10 105 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 8 OF 10 106 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 9 OF 10 107 9 0 0 0 10 0 0F F 0 0ZCPR2-Z80 CP/M CCP REPLACEMENTVOLUME 10 OF 10 108 7 0 0 0 10 0 0F F 0 0ZCPR2-Z80 UPGRADE 109 9 0 0 0 10 0 0F F 0 0WORD PROCESSOR THE SECRETARY 110 1 0 0 0 10 0 0F F 0 0DBASE AND SUPER CALC PROGRAMS 111 8 0 0 0 10 0 0F F 0 0HARD DISK UTILITIES 112 9 0 0 0 10 0 0F F 0 0SIGNON/RBBS PROGRAMS 113 10 0 0 0 10 0 0F F 0 0KERMIT - PC/HOST COMMUNICATION 114 10 0 0 0 10 0 0F F 0 0PISTOL V2.0 PORTABLY IMPLE- MENTED STACK ORIENTED LANGUAGE 115 9 0 0 0 10 0 0F F 0 0MISCELLANEOUS PROGRAMS 116 10 0 0 0 10 0 0F F 0 0TORONTO RCP/M SYSTEM PROGRAMS INCLUDING FORTH, ZCPR2 UPGRADE 117 10 0 0 0 10 0 0F F 0 0TORONTO RCP/M SYSTEM PROGRAMS INCLUDING MACRO TOOLKIT 118 9 0 0 0 10 0 0F F 0 0XLISP 119 9 0 0 0 10 0 0F F 0 0LIBRARY FILE & UTILITY SYSTEM BYEII 120 9 0 0 0 10 0 0F F 0 0MODEM 901 H-89 COMPOSING PROGRAM 121 10 0 0 0 10 0 0F F 0 0MODEM UPDATES SUPER DIRECTORY 122 8 0 0 0 10 0 0F F 0 0ZCPR2 FOR THE 8080 PROCESSOR 123 9 0 0 0 10 0 0F F 0 0MISC. .LBR AND OTHER FILES 124 10 0 0 0 10 0 0F F 0 0ZCPR2 UPGRADES VOLUME 1 OF 2 125 7 0 0 0 10 0 0F F 0 0ZCPR2 UPGRADES VOLUME 2 OF 2 126 8 0 0 0 10 0 0F F 0 0ROFF4, V1.5 -TEXT FORMATTER 127 7 0 0 0 10 0 0F F 0 0COMM7, DISK7, SAP 128 9 0 0 0 10 0 0F F 0 0BULLETIN BOARD UPGRADES XMODEM FOR UNIX, VAX/VMS 129 0 3 0 0 0 0 0F F 0 0dBASEII ORDER DATABASE JRT PASCAL ROUTINES 08/24/83 130 5 6 6 6 6 6 6F F 0 0SIGNON FOR RCP/M 08/26/83 131 0 0 0 0 0 0 0 PASCAL Z USER GROUP VOL 23 08/26/83 132 0 0 0 0 0 0 0 PASCAL Z USER GROUP VOL 24 08/26/83 133 0 0 0 0 0 0 0 PASCAL Z USER GROUP VOL 25 08/26/83 134 0 0 0 0 0 0 0 PASCAL Z USER GROUP VOL 26 08/26/83ed Date: No: " @ 16,10 SAY "Anticipated * verifdel.sig 08/18/83 * locates all records marked for deletion and gives you * a chance to review same before purging them from file @ 07,22 SAY 'LOOKING for records marked for DELETION' GOTO top LOCATE FOR * STORE t TO more DO WHILE more .AND. (.NOT.EOF) ERASE STORE 'Verify Deleted Records' TO mode STORE 'ccept, ontinue, elete/Recall' TO prompt1 STORE 'dit,

rint, uit' TO prompt2 STORE ' ' TO prompt3 STORE '?' TO command IF * STORE 'Deleted' TO deleted ELSE STORE ' ' TO deleted ENDIF * @ 1,25 SAY mode @ 2, 0 SAY "+--------------------------------------" @ 2,39 SAY "----------------------------------------+" @ 3, 5 SAY "ORDER NUMBER:" @ 3,43 SAY "Complete:" @ 3,60 SAY "Backorder:" @ 4, 8 SAY "Last name:" @ 4,46 SAY "First:" @ 5,10 SAY "Address:" @ 6, 9 SAY "(line 2):" @ 7, 9 SAY "(line 3):" @ 8,13 SAY "City:" @ 8,46 SAY "State:" @ 8,65 SAY "ZIP:" @ 10, 2 SAY "Volumes:" @ 12, 3 SAY "Amount:" @ 12,46 SAY "Enter:" @ 12,64 SAY "Ship:" @ 13, 2 SAY "Remarks:" @ 14, 2 SAY "Remarks:" @ 16, 0 SAY "Backorder:" @ 17,44 SAY "Catalog:" @ 18, 2 SAY "Shipped:" @ 18,26 SAY "Shipped:" @ 18,62 SAY "Update:" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 @ 1, 0 SAY deleted @ 3,19 SAY order @ 3,53 SAY comp @ 3,71 SAY back @ 4,19 SAY lname @ 4,53 SAY fname @ 5,19 SAY addr1 @ 6,19 SAY addr2 @ 7,19 SAY addr3 @ 8,19 SAY city @ 8,53 SAY state @ 8,70 SAY zip @ 10,11 SAY vol1 @ 12,11 SAY amt using '$###.##' @ 12,53 SAY entered @ 12,70 SAY shipped @ 13,11 SAY rem1 @ 14,11 SAY rem2 @ 16,11 SAY bo @ 17,53 SAY catalog @ 18,11 SAY bo:ship @ 18,35 SAY bo2:ship @ 18,70 SAY dayu @ 22,56 SAY 'WHAT NEXT?' @ 22,70 GET command PICTURE '!' READ DO CASE CASE command = 'A' * remove mark of a new record REPLACE new WITH f continue CASE command = 'D' IF * RECALL ELSE DELETE ENDIF * CASE command = 'E' DO edit.sig CASE command = 'P' DO print.sig CASE command = 'Q' * set up loop to exit STORE f TO more CASE command = 'C' continue ENDCASE ENDDO while more RELEASE mode, prompt1,prompt2,prompt3 STORE t TO more STORE '?' TO command STORE t TO first * verifnew.sig 08/18/83 * when a new record is written true is written to a logical variable * called new. this module give you the chance to review all new orders * if satisfactory - you then change new to false by accepting the entry @ 07,22 SAY 'LOOKING for unverified NEW records' GOTO top LOCATE FOR new STORE t TO more DO WHILE more .AND. (.NOT.EOF) ERASE STORE 'Verify New Records' TO mode STORE 'ccept, ontinue, elete/Recall' TO prompt1 STORE 'dit,

rint, uit' TO prompt2 STORE ' ' TO prompt3 STORE '?' TO command IF * STORE 'Deleted' TO deleted ELSE STORE ' ' TO deleted ENDIF * @ 1,25 SAY mode @ 2, 0 SAY "+--------------------------------------" @ 2,39 SAY "----------------------------------------+" @ 3, 5 SAY "ORDER NUMBER:" @ 3,43 SAY "Complete:" @ 3,60 SAY "Backorder:" @ 4, 8 SAY "Last name:" @ 4,46 SAY "First:" @ 5,10 SAY "Address:" @ 6, 9 SAY "(line 2):" @ 7, 9 SAY "(line 3):" @ 8,13 SAY "City:" @ 8,46 SAY "State:" @ 8,65 SAY "ZIP:" @ 10, 2 SAY "Volumes:" @ 12, 3 SAY "Amount:" @ 12,46 SAY "Enter:" @ 12,64 SAY "Ship:" @ 13, 2 SAY "Remarks:" @ 14, 2 SAY "Remarks:" @ 16, 0 SAY "Backorder:" @ 17,44 SAY "Catalog:" @ 18, 2 SAY "Shipped:" @ 18,26 SAY "Shipped:" @ 18,62 SAY "Update:" @ 19, 0 SAY "+--------------------------------------" @ 19,39 SAY "----------------------------------------+" @ 20,12 SAY prompt1 @ 21,12 SAY prompt2 @ 22,12 SAY prompt3 @ 1, 0 SAY deleted @ 3,19 SAY order @ 3,53 SAY comp @ 3,71 SAY back @ 4,19 SAY lname @ 4,53 SAY fname @ 5,19 SAY addr1 @ 6,19 SAY addr2 @ 7,19 SAY addr3 @ 8,19 SAY city @ 8,53 SAY state @ 8,70 SAY zip @ 10,11 SAY vol1 @ 12,11 SAY amt using '$###.##' @ 12,53 SAY entered @ 12,70 SAY shipped @ 13,11 SAY rem1 @ 14,11 SAY rem2 @ 16,11 SAY bo @ 17,53 SAY catalog @ 18,11 SAY bo:ship @ 18,35 SAY bo2:ship @ 18,70 SAY dayu @ 22,56 SAY 'WHAT NEXT?' @ 22,70 GET command PICTURE '!' READ DO CASE CASE command = 'A' * remove mark of a new record REPLACE new WITH f continue CASE command = 'D' IF * RECALL ELSE DELETE ENDIF * CASE command = 'E' DO edit.sig CASE command = 'P' DO print.sig CASE command = 'Q' * set up loop to exit STORE f TO more CASE command = 'C' continue ENDCASE ENDDO while more RELEASE mode, prompt1,prompt2,prompt3 STORE t TO more STORE '?' TO command STORE t TO first * voucher.sig 08/18/83 SET FORMAT TO PRINT SET CONSOLE OFF * insert your own printer codes ? CHR(28) SET CONSOLE ON EJECT @ 1,10 SAY 'SIG/M SOFTWARE - BOX 97 - ISELIN, NJ 08830' @ 3,6 SAY 'ORDER NUMBER' @ 3,19 SAY ':' @ 3,20 SAY ORDER @ 3,42 SAY 'Complete' @ 3,51 SAY ':' @ 3,52 SAY COMP @ 3,61 SAY 'Backorder' @ 3,71 SAY ':' @ 3,72 SAY BACK @ 5,9 SAY 'Last name' @ 5,19 SAY ':' @ 5,20 SAY LNAME @ 5,45 SAY 'First' @ 5,51 SAY ':' @ 5,52 SAY FNAME @ 7,11 SAY 'Address' @ 7,19 SAY ':' @ 7,20 SAY ADDR1 @ 8,10 SAY '(line 2)' @ 8,19 SAY ':' @ 8,20 SAY ADDR2 @ 9,10 SAY '(line 3)' @ 9,19 SAY ':' @ 9,20 SAY ADDR3 @ 10,14 SAY 'City' @ 10,19 SAY ':' @ 10,20 SAY CITY @ 10,48 SAY 'ST' @ 10,51 SAY ':' @ 10,52 SAY STATE @ 10,67 SAY 'Zip' @ 10,71 SAY ':' @ 10,72 SAY ZIP @ 13,3 SAY 'Volumes' @ 13,11 SAY ':' @ 13,12 SAY VOL1 @ 16,4 SAY 'Amount' @ 16,11 SAY ':' @ 16,12 SAY AMT USING '$999.99' @ 16,23 SAY 'Ordered' @ 16,31 SAY ':' @ 16,51 SAY ':' @ 16,52 SAY ENTERED @ 16,62 SAY 'Shipped' @ 16,70 SAY ':' @ 16,71 SAY SHIPPED @ 17,43 SAY 'Catalog' @ 17,51 SAY ':' @ 17,52 SAY CATALOG @ 18,3 SAY 'Remarks' @ 18,11 SAY ':' @ 18,12 SAY REM1 @ 19,3 SAY 'Remarks' @ 19,11 SAY ':' @ 19,12 SAY REM2 @ 20,1 SAY 'Backorder' @ 20,11 SAY ':' @ 20,12 SAY BO @ 22,01 SAY 'Backorder shipped' @ 22,19 SAY ':' @ 22,20 SAY BO:SHIP @ 22,40 SAY 'Backorder shipped' @ 22,58 SAY ':' @ 22,59 SAY BO2:SHIP @ 24,10 SAY "BACKORDERED VOLUMES WILL BE SHIPPED SEPARATELY" @ 25,1 SAY '* * * * * * * * * * * * * * * * * * *' @ 25,40 SAY '* * * * * * * * * * * * * * * * * *' @ 27,1 SAY 'SIG/M MAIL ORDER RATES' @ 28,1 SAY 'Domestic(US & Canada): $5/volume + $1/order for shipping (UPS)' @ 29,1 SAY ' Foreign: $9 = $6/volume + $3/disk for shipping (AIR MAIL)' @ 31,1 SAY '[ ] Your payment was not sufficient to complete your order. The balance of' @ 32,1 SAY ' your order of $____________ will be applied to your next order if you' @ 33,1 SAY ' return this form with your order.' @ 35,1 SAY '[ ] You have overpaid for your order.' @ 36,1 SAY ' [ ] We are sending additional volumes since it looks like you are' @ 37,1 SAY ' getting the complete library.' @ 39,1 SAY ' [ ] The overpaid balance of $__________ will be applied to your next' @ 40,1 SAY ' order if you return this form with your order.' @ 42,1 SAY '[ ] We are returning your blank disks. Volumes can only be copied to' @ 43,1 SAY ' member supplied disks at User Group meetings. Actual return shipping' @ 44,1 SAY ' costs are $_________. The balance of $_________ will be applied to your' @ 45,1 SAY ' next order if you return this form with it. For a cash refund, return' @ 46,1 SAY ' this form and request same.' @ 48,1 SAY '[ ] Other:' @ 55,40 SAY 'SIG/M SOFTWARE' @ 57,40 SAY DATE() @ 59,0 SAY ' ' SET CONSOLE OFF * set printer code ? CHR(30) SET CONSOLE ON SET FORMAT TO SCREEN * wsfile.sig 08/18/83 * this module takes all of the data in the file and writes it to * a Wordstar data file and creates a Wordstar DOC file. The letter * or other document you are preparing is written after the introduction * this program creates using the variables set forth in the DOC file. * When you run mailmerge, you can personalize a document to everyone * in the file. Since it takes time to write a big file - it gives * you a running report on where it is in the file ERASE ?'This Module will make a special MailMerge file for WordStar' ?' Do you wish to continue (Y/N) ? ' SET CONSOLE OFF WAIT TO command SET CONSOLE ON IF command = 'Y' .OR. command = 'y' STORE t TO continue ELSE STORE f TO continue ENDIF command = Y DO WHILE continue STORE 1 TO counter ERASE ACCEPT 'Enter Name of the WordStar-MailMerge file ' TO file:dat STORE !(file:dat) TO file:dat STORE $(file:dat,1,8) TO file:dat STORE file:dat+'.DOC' TO file:doc STORE file:dat+'.DAT' TO file:dat @ 03,10 SAY 'Creating WordStar-MailMerge Document file: '+file:doc SET CONSOLE OFF SET ALTERNATE TO &file:doc SET ALTERNATE ON ?'.OP' ?'.DF '+file:dat ?'.RV '+' order-no,last-name, first-name,address1,address2,address3,city,state,zip,vol1,amount,entered,shipped,remark1,remark2,backord,,backo-ship1,backo-ship2,date-update' ?'.. to automatically omit empty data fields' ?'..print all items as "&item/o&" ' SET ALTERNATE OFF SET CONSOLE ON @ 05,10 SAY ' Creating WordStar-MailMerge Data file: '+file:dat @ 07,10 SAY 'Writing record # ' SET CONSOLE OFF SET ALTERNATE TO &file:dat SET ALTERNATE ON GOTO TOP DO WHILE .NOT. EOF STORE CHR(34)+TRIM(lname) + CHR(34) TO lastname IF fname = ' ' STORE ' ' TO firstname ELSE STORE CHR(34)+TRIM(fname) + CHR(34) TO firstname ENDIF fname IF addr1 = ' ' STORE ' ' TO address1 ELSE STORE CHR(34)+TRIM(addr1)+CHR(34) TO address1 ENDIF addr1 IF addr2 = ' ' STORE ' ' TO address2 ELSE STORE CHR(34)+TRIM(addr2)+CHR(34) TO address2 ENDIF addr2 IF addr3 = ' ' STORE ' ' TO address3 ELSE STORE CHR(34)+TRIM(addr3)+chr(34) TO address3 ENDIF addr3 IF city = ' ' STORE ' ' TO city1 ELSE STORE CHR(34)+TRIM(city)+CHR(34) TO city1 ENDIF city IF state = ' ' STORE ' ' TO state1 ELSE STORE chr(34)+state+CHR(34) TO state1 ENDIF state IF zip = ' ' STORE ' ' TO zip1 ELSE STORE CHR(34)+zip+CHR(34) TO zip1 ENDIF zip IF vol1 = ' ' STORE ' ' TO volume1 ELSE STORE CHR(34)+TRIM(vol1)+CHR(34) TO volume1 ENDIF vol1 IF rem1 = ' ' STORE ' ' TO remarks1 ELSE STORE CHR(34)+TRIM(rem1)+CHR(34) TO remarks1 ENDIF rem1 IF rem2 = ' ' STORE ' ' TO remarks2 ELSE STORE CHR(34)+trim(rem2)+CHR(34) TO remarks2 ENDIF rem2 IF bo = ' ' STORE ' ' TO backord1 ELSE STORE CHR(34)+TRIM(bo)+CHR(34)TO backord1 ENDIF bo ?? lastname +',' ?? firstname +',' ?? address1 +',' ?? address2 +',' ?? address3 +',' ?? city1 +',' ?? volume1 +',' ?? STR(amt,8,2) + ',' ?? remarks1+',' ?? remarks2 +',' ?? backord1 +',' SKIP SET CONSOLE ON SET ALTERNATE OFF SET CONSOLE ON ?? CHR(8) + CHR(8)+CHR(8)+CHR(8)+CHR(8)+CHR(8)+STR(COUNTER,5) SET CONSOLE OFF SET ALTERNATE ON STORE COUNTER + 1 TO COUNTER ENDDO while not EOF STORE f TO continue ENDDO continue SET ALTERNATE OFF SET CONSOLE ON RELEASE file:dat,file:doc,continue,length,counter STORE '?' TO command STORE ' ' TO printer STORE ' ' TO disk STORE ' ' TO filename STORE t TO more