IMD 1.16: 29/05/2007 18:26:52 FOGCPM.057 6/86 ååååååååååååååå--FOGCPM057EXPENSE CMD EXPENSE DOC! EXPENSESDBF MILEAGE DBF MONTHREPCMD ADDMILESCMDADDXPENSCMDEDITEXP CMDCHEX CMDCHEX DOC)CHKPRINTCMDCHXA DBF CHXB DBF !"CHXLOAD CMD#$%EDIT CMD&'FINDCOD CMD()FINDNAM CMD*+INDXA NDX,INDXB NDX-KANCELS CMD./0MENU CMD1234SELECT CMD56ALTER CMD78DEMO CMD 9:DEMOCHC CMD;MEMVAR MEM<=>RULEDEMOCMD ?@SQRT DBFASQRT DOCBSQRTDEMOCMD CDUGRAPH CMD(EFGHIUGRAPH DBFJUGRAPH DOCKLDEMGRAPHCMD*MNOPQRDFORMAT COM`STUVWXYZ[\]^DFORMAT DOC_`aDSTRIP COMXbcdefghijklDSTRIP DOCmnRECOVER COMpopqrstuvwxyz{|RECOVER PAS}~€UNIQUE22CMD8�‚ƒ„…†‡UNIQUE22DOCPˆ‰Š‹Œ�Ž��‘TPCDIRECDBFP’“”•–—˜™š›TPCDIRECFRMœGETXTIMECMD'�žŸ ¡PORTCOMPDBFP¢£¤¥¦§¨©ª«-06-00 86 ¬-CPM057 DOC'­®¯°±ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååThis is the disk name. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå****************** EXPENSE.CMD ******************* * * * This command file is the menu to enter and edit * * mileage and expenses that have been incurred in * * the carrying out your work for which you should * * be reimbursed. * * * **************************************************** Set talk off ERASE STORE T TO MEX DO WHILE MEX = T ? ? ? ?' MILEAGE AND EXPENSE REGISTER MENU' ? ? ?' 1. Enter MILEAGE' ? ?' 2. Enter EXPENSES' ? ?' 3. Correct or Change Information on an' ?' Existing MILEAGE or EXPENSE Record' ? ?' 4. Monthly MILEAGE AND EXPENSE REPORT' ? ?' Q. QUIT this run.' ? ? ?' PRESS THE NUMBER CORRESPONDING TO YOUR SELECTION' WAIT TO SELECTION ERASE DO CASE CASE SELECTION = '1' DO ADDMILES CASE SELECTION = '2' DO ADDXPENS CASE SELECTION = '3' DO EDITEXP CASE SELECTION = '4' DO MONTHREP CASE !(SELECTION) = 'Q' ?'Are you sure you want to Quit? (Y/N)' WAIT TO SELECTION IF !(SELECTION) = 'Y' ? ?'It was nice to work with you! Bye!' ? ? ? QUIT WAIT TO SELECTION ELSE DO B:EXPENSE ENDIF LOOP OTHERWISE ERASE ? ?'YOU HAVE MADE AN INCORRECT CHOICE, PLEASE TRY AGAIN' LOOP ENDCASE ENDDO ********************************************** Set talk off ERASE STORE T TO MEX DO WHILE MEX = T ? ? ? ?' MILEAGE AND EXPENSE REGISTER MENU' ? ? ?' 1. Enter MILEAGE' ? ?' 2. Enter EXPENSES' ? ?' 3. Correct or Change Information on an' ?' Existing MILEAGE or EXPENSE Record' ? ?' 4. Monthly MILEAGE AND EXPENSE REPORT' ? ?' Q. QUIT this run.' ? ? ?' PRESS THE NUMBER CORRESPONDING TO YOUR SELECTION' WAIT TO SELECTION ERASE DO CASE CASE SELECTION = '1' DO ADDMILES CASE SELECTION = '2' DO ADDXPENS CASE SELECTION = '3' DO EDITEXP EXPENSE.DOC Documentation for EXPENSE.CMD and related files by Jim Heinbuch 9614 - 108 Ave. Grande Prairie, Alberta Canada T8V 1N3 Iæ anyonå haó anù suggestionó pleaså senä theí tï thå � addresó above® É aí alsï interesteä iî anù churcè programó thaô � use dBASE II. Files in this program are: EXPENSE .CMD ADDMILES.CMD ADDXPENS.CMD EDITEXP .CMD MONTHREP.CMD EXPENSES.DBF MILEAGE .DBF Thå prograí ió menõ driven® Yoõ neeä tï placå youò copù oæ � dBASÅ IÉ iî drivå Á anä thå fileó listeä abovå oî á disë iî drivå � B. Iæ yoõ arå startinç jusô afteò turninç youò machinå oî yoõ � shoulä presó thå RETURÎ anä yoõ wilì theî bå prompteä foò thå � date® Afteò yoõ enteò thå datå yoõ theî geô thå dBASÅ IÉ prompô � whicè ió á doô oò perioä "."® Aô thió poinô yoõ typå iî thå � wordó DÏ B:EXPENSÅ anä theî thå returî ® Thió wilì theî loç yoõ ontï thå correcô � dirve® Yoõ wilì wanô tï ediô MONTHREP.CMÄ usinç thå non-documenô � editinç modå (choicå N)® Arounä linå 4¸ yoõ wilì finä thå � following: ********** * * * If you want to change the amount charged for mileage * change the decimal figure in the next line STORE MT * .19 TO MEXTEND * * ********** Yoõ wilì wanô tï changå thå .1¹ tï whateveò reimbursmenô formulá � yoõ arå using® Iæ youò ratå ió 3µ centó peò milå theî yoõ wilì � want to change the line to read: STORE MT * .35 TO MEXTEND (Thå abovå linå storeó youò mileagå totaì (MT© timeó (*© thå ratå � (.35) to your memory extension (MEXTEND).) Iæ yoõ dï noô havå WordStar¬ yoõ maù uså onå oæ abilitieó thaô � dBASÅ IÉ has® Mosô peoplå thaô É talë tï dï noô recommenä usinô � thå editoò thaô comeó witè dBASÅ II¬ buô iæ thaô ió alì yoõ havå � it is what you will have to use. Placå youò dBASÅ IÉ disë iî drivå Á anä EXPENSÅ iî drivå B® Wheî � yoõ arå aô thå doô prompô typå iî MODIFÙ COMMANÄ B:MONTHREÐ anä � presó thå RETURN® Thió calló uó thå prograí anä allowó yoõ tï � changå thå samå linå 4¸ thaô ió mentioneä above® Typå oveò thå � wholå linå changinç thå .1¹ tï whateveò ratå ió needeä iî youò � case. ŠWheî yoõ arå doinç youò reporô iô wilì asë foò thå startinç datå � oæ youò reporô anä theî thå datå yoõ woulä likå tï placå aô thå � top of the report. Iæ yoõ havå anù questionó oò improvementó iî thå systeí pleaså dï � not hesitate to call me at the above address. bovå linå storeó youò mileagå totaì (MT© timeó (*© thå ratå � (.35) to your memory extension (MEXTEND).) Iæ yoõ dï noô havå WordStar¬ yoõ maù uså onå oæ abilitieó thaô � dBASÅ IÉ has® Mosô peoplå thaô É talë tï dï noô recommenä usinô � thå editoò thaô comeó witè dBASÅ II¬ buô iæ thaô ió alì yoõ havå � it is what you will have to use. Placå youò dBASÅ IÉ disë iî drivå Á anä EXPENSÅ iî drivå B® Wheî � yoõ arå aô thå doô prompô typå iî MODIFÙ COMMANÄ B:MONTHREÐ anä � presó thå RETURN® Thió calló uó thå prograí anä allowó yoõ tï � changå thå samå linå 4¸ thaô ió mentioneä above® Typå oveò thå � wholå linå changinç thå .1¹ tï whateveò ratå ió needeä iî youò � case. ŠWheî yoõ arå doinç youò reporô iô wilì asë foò thå startinç datå � oæ youò reporô anä theî thå datå yoõ woulä likå tï placå aô thå � top of the report. Iæ yoõ havå anù questionó oò improvementó iî thå systeí pleaså CDATENÑlITEMC ×lREASONCálAMOUNTNðl ' 3. Update financial information.' ? ?' 4. Update statistical information.' ? ?' 5. District Reports.' ? ?' 6. Mileage and Expense records.' ? ?' 7. Pastoral report for Elders & Council.' ? ?' 8. Change constants.' ? ?' 9. Quit.' ? ?'Press the number corresponding to your selection.' WAIT TO SELECTION ERASE IF SELECTION = 'D' RETURN ENDIF IF SELECTION = '1' DO MEMBERS ENDIF IF SELECTION = '2' DO CALLS ENDIF IF SELECTION = '3' DO UPDATF CDATENÑlDESTINATC ×lBEGMILESNálENDMILESNél  phaså wå aó memberó oæ thå parisè wilì seå �                          ouò  spirituaì  lifå aó á gifô froí á  graciouó �                          Goä througè Hió Soî Jesuó Christ® Sincå wå arå �                          alivå iî Chrisô wå wilì havå thå opportunitù tï �                          responä  tï thió graciouó Goä witè á gifô  thaô �                          ió abovå anä beyonä ouò regulaò  congregationaì �                          offering®   Wheî  yoõ  arå  approacheä  pleaså �Šprayer****************** MONTHREP.CMD ****************** * * Š* This command is to print out a monthly mileage * * report, it then returns to EXPENSE to print out * * the expense report. It asks for the starting date* * To change the rate for mileage go to line 48. * * * **************************************************** SET FORMAT TO PRINT INPUT "ENTER STARTING DATE FOR REPORT (yymmdd)" TO MBEGDATE USE B:MILEAGE STORE 0 TO MBEG STORE 0 TO MT STORE 0 TO MEXTEND ACCEPT "ENTER TODAY'S DATE" TO TODAY STORE 0 TO MAMOUNT STORE 0 TO MILESTOT @ 6,26 SAY "MILEAGE AND EXPENSE REPORT" @ 8,33 SAY TODAY @ 10,35 SAY "MILEAGE" @ 11, 0 SAY "--------------------------------------------------" @ 11,50 SAY "------------------------" @ 12, 5 SAY "DATE PLACE START FINISH TOTAL" @ 12,64 SAY "EXTENDED" @ 13, 0 SAY "--------------------------------------------------" @ 13,50 SAY "------------------------" STORE 15 TO CNTR DO WHILE .NOT. EOF IF CNTR > 60 EJECT STORE 7 TO CNTR ELSE IF MBEGDATE > DATE SKIP LOOP ELSE STORE ENDMILES - BEGMILES TO MT STORE MT + MILESTOT TO MILESTOT ********** * * * If you want to change the amount charged for mileage * change the decimal figure in the next line STORE MT * .19 TO MEXTEND * * ********** STORE MAMOUNT + MEXTEND TO MAMOUNT @ CNTR, 3 SAY DATE @ CNTR,13 SAY DESTINAT Š@ CNTR,25 SAY BEGMILES @ CNTR,37 SAY ENDMILES @ CNTR,49 SAY MT @ CNTR,61 SAY MEXTEND STORE CNTR + 1 TO CNTR SKIP LOOP ENDIF ENDIF ENDDO STORE T TO MEM DO WHILE MEM = T STORE CNTR + 2 TO CNTR @ CNTR, 5 SAY "TOTAL MILES" @ CNTR,18 SAY MILESTOT @ CNTR,45 SAY "MILEAGE TOTAL:" @ CNTR,63 SAY MAMOUNT USING '$$$$.99' STORE F TO MEM ENDDO * EXPREP.CMD USE B:EXPENSES STORE T TO MEM GO TOP COUNT FOR MBEGDATE < DATE TO MNUM STORE CNTR + 3 TO CNTR SET FORMAT TO PRINT IF MNUM = 0 @ CNTR,23 SAY "There are no expenses for this month." EJECT DO EXPENSE ELSE GO TOP IF CNTR > 45 EJECT STORE 7 TO CNTR ENDIF DO WHILE .NOT. EOF @ CNTR,34 SAY "EXPENSES" STORE CNTR + 1 TO CNTR @ CNTR, 0 SAY "--------------------------------------------------" @ CNTR,50 SAY "------------------------" STORE CNTR + 1 TO CNTR @ CNTR, 7 SAY "DATE ITEM REASON AMOUNT" STORE CNTR + 1 TO CNTR @ CNTR, 0 SAY "--------------------------------------------------" @ CNTR,50 SAY "------------------------" STORE CNTR + 2 TO CNTR STORE 0 TO MEXTEND DO WHILE .NOT. EOF IF CNTR > 60 EJECT STORE 7 TO CNTR ELSE Š IF MBEGDATE > DATE SKIP LOOP ELSE STORE AMOUNT + MAMOUNT TO MAMOUNT STORE AMOUNT + MEXTEND TO MEXTEND @ CNTR, 6 SAY DATE @ CNTR,20 SAY ITEM @ CNTR,40 SAY REASON @ CNTR,63 SAY AMOUNT STORE CNTR + 1 TO CNTR SKIP LOOP ENDIF ENDIF ENDIF ENDDO STORE T TO MEM DO WHILE MEM = T STORE CNTR + 2 TO CNTR @ CNTR,40 SAY "EXPENSE TOTAL:" @ CNTR,63 SAY MEXTEND USING '$$$$.99' STORE CNTR + 2 TO CNTR @ CNTR,45 SAY "GRAND TOTAL:" @ CNTR,63 SAY MAMOUNT USING '$$$$.99' STORE F TO MEM ENDDO EJECT SET FORMAT TO SCREEN DO EXPENSE O CNTR @ CNTR, 7 SAY "DATE ITEM REASON AMOUNT" STORE CNTR + 1 TO CNTR @ CNTR, 0 SAY "--------------------------------------------------" @ CNTR,50 SAY "------------------------" STORE CNTR + 2 TO CNTR STORE 0 TO MEXTEND DO WHILE .NOT. EOF IF CNTR > 60 EJECT STORE 7 TO CNTR ELSE Š IF MBEGDATE > DATE SKIP LOOP ELSE STORE AMOUNT + MAMOUNT TO MAMOUNT STORE AMOUNT + MEXTEND TO MEXTEND @ CNTR, 6 SAY DATE @ CNTR,20 SAY ITEM @ CNTR,40 SAY REASON @ CNTR,63 SAY AMOUNT STORE CNTR + 1 TO CNTR SKIP LOOP ENDIF ENDIF ENDIF ENDDO STORE T TO******************* ADDMILES.CMD ***************** * * * This command file is to add a record to MILE- * * AGE.DBF. * * * **************************************************** USE B:MILEAGE APPEND BLANK @ 7,10 SAY 'MAKE SURE YOU ENTER THE DATE WITH THE' @ 8,10 SAY 'YEAR FIRST, THEN MONTH, AND THEN THE DAY' @ 11,10 SAY 'ENTER DATE (yy/mm/dd)' GET DATE @ 14,10 SAY 'ENTER DESTINATION' GET DESTINAT @ 17,10 SAY 'ENTER BEGINNING MILEAGE' GET BEGMILES @ 20,10 SAY 'ENTER ENDING MILEAGE' GET ENDMILES READ RETURN åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå***************** ADDXPENS.CMD ******************* * * * This command is to add a business expense that * * has been incurred which needs reimbursment to * * EXPENSES.DBF. It prompts for information. * * * **************************************************** USE B:EXPENSES APPEND BLANK @ 7,10 SAY 'MAKE SURE YOU ENTER THE DATE WITH THE' @ 8,10 SAY 'YEAR FIRST, THEN MONTH, AND THEN THE DAY' @ 11,10 SAY 'ENTER DATE (yymmdd)' GET DATE @ 14,10 SAY 'ENTER ITEM ' GET ITEM @ 17,10 SAY 'ENTER REASON ' GET REASON @ 20,10 SAY 'ENTER AMOUNT ' GET AMOUNT READ RETURN åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå***************** EDITEXP.CMD ******************** * * * The EDITEXP.CMD command file is used to change * * mistakes that inadvertently made it into the file* * If they should happen to appear the screen asks * * for the date and then asks for the record number * * of the file you want to correct. It makes a dif-* * ference if the file you want to change is mileage* * or expense. * * * **************************************************** ERASE ACCEPT 'PRESS "M" FOR MILEAGE, "E" FOR EXPENSE' TO TYPE IF !(TYPE) = 'M' ? ? ? ? ? ? INPUT 'ENTER DATE YOU WANT TO CHANGE' TO FINDER USE B:MILEAGE DISPLAY ALL FOR DATE = FINDER INPUT 'ENTER RECORD NUMBER TO BE CHANGED' TO FINDER ERASE @ 7,10 SAY "I'm going as fast as I can!" GOTO FINDER ERASE @ 7,10 SAY 'MAKE SURE YOU ENTER THE DATE WITH THE' @ 8,10 SAY 'YEAR FIRST, THEN MONTH, AND THEN THE DAY' @ 11,10 SAY 'ENTER DATE (yymmdd)' GET DATE @ 14,10 SAY 'ENTER DESTINATION ' GET DESTINAT @ 17,10 SAY 'ENTER BEGINNING MILEAGE' GET BEGMILES @ 20,10 SAY 'ENTER ENDING MILEAGE ' GET ENDMILES READ ENDIF IF !(TYPE) = 'E' USE B:EXPENSES ? ? ? ? INPUT 'ENTER DATE AS (yymmdd)' TO FINDER DISPLAY ALL FOR DATE = FINDER INPUT 'ENTER RECORD NUMBER YOU WISH TO CHANGE' TO FINDER ERASE @ 7,10 SAY "I'm looking already." GOTO FINDER ERASE @ 7,10 SAY 'MAKE SURE YOU ENTER THE DATE WITH THE' @ 8,10 SAY 'YEAR FIRST, THEN MONTH, AND THEN THE DAY' @ 11,10 SAY 'ENTER DATE (yymmdd)' GET DATE @ 14,10 SAY 'ENTER ITEM ' GET ITEM @ 17,10 SAY 'ENTER REASON ' GET REASON @ 20,10 SAY 'ENTER AMOUNT ' GET AMOUNT READ ENDIF RETURNst as I can!" GOTO FINDER ERASE @ 7,10 SAY 'MAKE SURE YOU ENTER THE DATE WITH THE' @ 8,10 SAY 'YEAR  *...THIS IS COMMAND FILE "CHEX" MODIFIED 11/28/83... *...Overall program setup... SET TALK OFF SET DEFA TO B DO WHILE T ERASE *...Introduction and Purpose... ?' CHECKBOOK MANAGEMENT PROGRAM' ?' *******************************' ?' Copyright 1983' ?' by' ?' R. J. SWITZ' ?'This program is based on an example in the DBase II manual, and furnishes' ?'a number of options for managing checkbooks, including data retrieval' ?'by code or name and for printing a check if one has a printer. The first' ?'choice is to specify a checkbook file, i.e. "which account do you want to' ?'work with?"' *...Choose the Checkbook to be used... ?' CHECKBOOK CHOICES' ? ** modify next 6 lines!! ** ?' 1 = Checkbook A' ?' 2 = Checkbook B' ?' . .' ?' . .' ?' i = Checkbook N' ?' i.e. There is no practical limit to the number of checkbooks' ? ?' PRESS THE ESCAPE KEY TO EXIT BACK TO DBASE AT ANY TIME' ? ?' PRESS THE APPROPRIATE KEY TO INITIATE DESIRED ACTION' ?' ******************************************************' *...Choose the desired checkbook... REST FROM MEMVAR STOR "MON" TO GOOD WAIT TO ACTION IF ACTION = '1' ** modify next 3 lines!! ** STORE 'You are using CHECKBOOK A' TO HOLD STORE 'CHXA' TO BLAST STORE 'CHXA INDEX INDXA' TO OFF STOR MONA TO CDATE STOR 'A' TO PREP DO MENU ENDIF IF ACTION = '2' ** modify next 3 lines!! ** STORE 'You are using CHECKBOOK B' TO HOLD STORE 'CHXB' TO BLAST STORE 'CHXB INDEX INDXB' TO OFF STOR MONB TO CDATE STORE 'B' TO PREP DO MENU ENDIF *...Go back to the top of this command file if an improper digit is entered... ENDDO *...END OF COMMAND FILE 'CHEX'... ' . .' N' ?' i.e. There is no practical limit to the number of checkbooks' ? ?' PRESS THE ESCAPE KEY TO EXIT BACK TO DBASE AT ANY TIME' ? ?' PRESS THE APPROPRIATE KEY TO INITIATE DESIRED ACTION' ?' ******************************************************' *...Choose the desired checkbook... REST FROM MEMVAR STOR "MON" TO GOOD WAIT TO ACTION IF ACTION = '1' ** modify next 3 lines!! ** STORE 'You are using CHECKBOOK A' TO HOLD STORE 'CHXA' TO BLAST STORE 'CHXA CHEX A CHECKBOOK MANAGEMENT PROGRAM (c) 1983 BY R J Switz 1209 East Maple Avenue El Segundo, California 90245 (213) 640-9328 Thió prograí maù bå copieä anä useä onlù bù FOÇ � memberó iî gooä standing® Ownershið ió specificallù � retaineä bù thå author¬  anä thió prograí maù noô bå � solä  oò otherwiså distributeä withouô thå  author'ó � written permission. É  havå useä thå prograí foò approximatelù  onå � yeaò  anä believå thå bugó havå alì  beeî  smashed® � Iô  ió  menõ driven®  Tyrï jrs®  havå useä iô  foò � everydaù purposes¬  anä finä iô easieò tï  managå � theiò checkbook(s© thaî before® Thå prograí handleó multiplå checkbookó anä waó � writteî tï providå alì serviceó needeä foò  managinç � á piecå oæ data¬ oncå á decisioî tï writå á personaì � checë  ió  made®  Iô  wilì  revie÷  checkó  alreadù � written¬  updatå  thå  balancå witè oò  withouô  ne÷ � entries¬  enteò ne÷ checks¬  recorä cancelleä checkó � returneä  bù banë anä rationalizå youò booë  balancå � witè theirs¬  ediô checkó previouslù written¬  prinô � thå checë iæ onå haó á printer¬  anä haó twï wayó oæ � summarizinç  anä  recallinç  checkó  writteî  foò  á � commoî  purposå  oò  payee®  Aô firsô iô  maù  seeí � intimidating¬  buô  iô reallù ió fun¬  anä  foò  thå � firsô timå ever¬ É kno÷ mù banë balance! Followinç   arå  ruleó  tï  makå   thå   checkbooë � managemenô  prograí  work»  prinô theså ouô  becauså � theù arå noô iî anù chronologicaì order®  Thå  disë � ió  setuð witè twï dummù checkbookó (Checkbooë Á anä � Checkbooë  B© anä thå useò shoulä plaù  arounä  witè � theså  foò gaininç confidencå witè thå program®  Sï � poð  thå disë iî Drivå B¬  witè DBASEIÉ iî Drivå  A¬ � anä  afteò callinç uð DBASE¬  saù 'dï  b:chex'¬ � anä awaù wå go® 1®  Somå familiaritù witè DBaseIÉ  programminç � ió assumed 2®  DEPOSIÔ entrieó musô uså thå deposiô datå � aó  thå "checë number"¬  anä singlå digiô daù  codeó � arå noô allowed»  i.e® á deposiô oî Marcè ² woulä bå � entereä aó checë numbeò "302¢ 3® DEPOSIÔ amountó MUST bå entereä aó negativå � numbers 4®  Multiplå depositó oî thå samå daù musô  bå � totalled¬ anä entereä aó á singlå deposiô 5®  ANÙ correctionó tï previouó entrieó musô bå � madå usinç codå "5¢ oæ thå menõ 6®  Botè  thå  CHEX.CMÄ anä  MENU.CMÄ  commanä �Šfileó  wilì  havå  tï bå editeä  tï  removå  examplå � materialó (e.g® Checkbooë A)® Sucè commandó iî eacè � commanä  filå  arå  commenteä  witè  **modifù   nexô � lines*ª 7® Thå trickiesô parô ió answerinç promptó useä foò  thå checë cancellinç commanä filå  KANCELS.CMD¬ � tï  geô thå algebraiã sigî correcô  foò  outstandinç � deposits®  Iô helpó tï gï oppositå one'ó intuitioî � 8®  Alwayó  exiô thå prograí usinç thå  "QUIT¢ � command 9®  Useò  musô  establisè theiò owî  "PURPOSE¢ � commanä codes 10® Wheî startinç á ne÷ file¬ checë numberó musô � starô  witè  á  numbeò =>123² tï  avoiä  duplicatinç � deposiô datå entries..seå rulå #2® Foò accountó witè � checkó numberinç lesó thaî 1232¬  É suggesô addinç á � constant¬  sucè  aó  2000¬  tï thå checë numbeò  foò � inpuô tï CHEX® Thus¬ checë #10³ woulä bå entereä aó � 2103® [Aó á sidå note¬ bankó maù allo÷ ne÷ accountó � tï  bå openeä witè anù checë number¬  sï  yoõ  mighô � look intï startinç witè checë #200° oò so.] 11®  Operationaì checkbooë fileó musô bå INDEXEÄ � oî  NUMBEÒ  durinç initiaì setuð oæ thå prograí  foò � thå KANCELÓ filå tï worë 12® Wheî cancellinç checks¬ uså thå deposiô datå � aó thå checë numbeò foò deposits..see rule #2 13®   Thå  CHKPRINT.CMÄ  commanä  filå  musô  bå � changeä  tï  seô thå printeò "on¢ iæ yoõ intenä  tï � automatically print checks 14®  Followinç  arå  setuð keyó  É  havå  founä � useful: a.  ± ½ DBASE...(oò D© iæ yoõ  havå �              renameä DBASE.CMD          b.  ² ½ Ä Ï Â º  Ã È Å Ø ...notå thaô �              doublå  spacinç ió useä foò  programmeä �              functioî   keyó   oncå   onå   ió    iî �              DBASE...why?...beató  me¬  buô iô won'ô �              worë otherwise! c® ³ ½ Í Ï Ä É Ã Ï Í Í d® ´ ½ Ñ Õ É Ô 15®  Thå diskette¬  aó written¬ haó á numbeò oæ � asteriskeä  remarkó tï aiä readinç thå logic(?© oæ � eacè  commanä  file®  Thå prograí runó  fasteò  iæ � theså  arå eliminated®  Á relativelù ne÷ prograí  iî � the FOG library called DBSQUASH will do this for you 16®  Thå  PRNÔ  fielä iî thå  structurå  ió  tï � identifù  that  á checë haó beeî writteî  usinç  thå � printer®  Jusô  skið  oveò iô foò  alì  entries»  á � logicaì  "T¢ ió entereä automaticallù bù CHXLOAD.CMÄ � foò alì DEPOSITS¬ whicè helpó eliminatå confusion® 17®  Don'ô  givå up»  you'lì reallù  appreciatå � havinç  youò checkbooë recordó iî thió formaô aô taø � timå whetheò oò noô yoõ dï youò owî taø preparationó � sincå thå toughesô parô ió collectinç thå datá tï gï � intï thå calculations. Š  oncå   onå   ió    iî �              DBASE...why?...beató  me¬  buô iô won'ô �              worë otherwise! c® ³ ½ Í Ï Ä É Ã Ï Í Í d® ´ ½ Ñ Õ É Ô 15®  Thå diskette¬  aó written¬ haó á numbeò oæ � asteriskeä  remarkó tï aiä readinç thå logic(?© oæ � eacè  commanä  file®  Thå prograí runó  fasteò  iæ � theså  arå eliminated®  Á relativelù ne÷ prograí  iî � the FOG library called DBSQUASH will do this for you 16®  Thå  PRNÔ  fielä iî thå  structurå  ió  tï � identifù  that  á checë haó beeî writteî  usinç  thå � printer®  Jusô  skið  oveò iô foò  alì  entries»  á � logicaì  "T¢ ió entereä automaticallù bù CHXLOAD.CMÄ � foò alì DEPOSITS¬ whicè helpó eliminatå confusion® 17®  Don'ô  givå up»  you'lì reallù  appreciatå � havinç  youò checkbooë recordó iî thió formaô aô taø � timå whetheò oò noô yoõ dï youò owî taø preparationó � sincå thå tougREMARK...THIS IS COMMAND FILE "CHKPRINT" MODIFIED 11/30/83 ? DO WHILE T ERASE USE &OFF ?' THE NEXT CHECK TO PRINT IS:' GOTO TOP LOCATE FOR .NOT. PRNT ? ?'******************************************************************' DISP OFF ?' (ENTER 0 to return to menu or 1 to advance to next line entry)' ?'******************************************************************' ? INPUT ' ENTER check number, 0, or 1, and PRESS return ' TO TEMP IF TEMP = 0 RETURN ENDIF IF TEMP = 1 REPLACE PRNT WITH T ENDDO ENDIF REPLACE PRNT WITH T ERASE STORE INT(A) TO U STORE A*100 TO V STORE INT(V) TO V STORE U*100 TO W STORE V-W TO W SET FORMAT TO SCREEN @ 7,36 SAY NUMBER @ 10,29 SAY DATE @ 10,35 SAY ", 1984" @ 13,8 SAY PAYEE @ 13,33 SAY A USING '$****.99' @ 16,7 SAY "Exactly" @ 16,15 SAY U USING '*****' @ 16,21 SAY "Dollars and " IF W=0 @ 16,33 SAY "00 Cents" @ 16,120 SAY ' ' WAIT SET FORMAT TO SCREEN ENDDO ENDIF IF  W<10 @ 16,33 SAY "0" @ 16,34 SAY W USING '9' @ 16,36 SAY "Cents" @ 16,120 SAY ' ' WAIT SET FORMAT TO SCREEN ENDDO ENDIF IF W>9 @ 16,33 SAY W USING '99' @ 16,36 SAY "Cents" @ 16,120 SAY ' ' WAIT SET FORMAT TO SCREEN ENDDO ENDIF STORE INDEX + 1 TO INDEX EN MODIFIED 8/7/83 ? ?' ' ERASE ?' **************************************************' ?' * ALWAYS EXIT THE EDITTED RECORD USING "CNTRL W" * ' ?' ******************MARK...THIS IS COMMAND FILE "CHKPRINT" MODIFIED 11/30/83 ? DO WHILE T ERASE USE &OFF ?' THE NEXT CHECK TO PRINT IS:' GOTO TOP LOCATE FOR .NOT. PRNT ? ?'******************************************************************' DISP OFF ?' (ENTER 0 to return to menu or 1 to advance to next line entry)' ?'******************************************************************' ? INPUT ' ENTER check number, 0, or 1, and PRESS return ' TO TEMP IF TEMP = 0 RETURN ENDIF IF TEMP = MODIFIED 8/7/83 ? ?' ' ERASE ?' **************************************************' ?' * ALWAYS EXIT THE EDITTED RECORD USING "CNTRL W" * ' ?' ******************3NUMBERNÑlDATECÕlPAYEECÛlANïlPURPOSEC÷lBNùlCANLmPRNTLm 0JAN 01STARTING BALANCE 0.00 1365.21TT 1300JAN 05TOM SMITH 12.3611 1352.85 T 1301JAN 07MARY JONES 156.2113 1196.64TT 106JAN 06DEPOSIT -210.32 1406.96 T 1302JAN 15FOGHORN 24.0015 1382.96 TS 60.0093 2782.15 2375OCT 31BOYS MARKET * 70.0090 2712.15 2376NOV 1 VOIDED CHECK * 0.00 2712.15 2377NOV 1 PACIFIC TELEPHONE * 33.6263 2678.53 2378NOV 1 LOS ANGELES TIMES * 17.7999 2660.74 2379NOV 1 POSTMASTER,EL SE 3NUMBERNÑlDATECÕlPAYEECÛlANïlPURPOSEC÷lBNùlCANLmPRNTLm 0JAN 01STARTING BALANCE 0.00 564.11 T 1562JAN 21CECIL BAKER 22.0045 542.11TT 1563JAN 24CENTRAL BANK 300.0862 242.03TT 129JAN 29DEPOSIT -156.22 398.25 T 1564FEB 02ACME MORTGAGE 214.3366 183.92TT 1565FEB 03CARTER SHOE STORE 55.3390 128.59 T 1566FEB 22GEO WASHINGTON 35.66 92.93 T 1567MAR 01HERB BROWN 23.00 69.93 T 302MAR 02DEPOSIT -600.21 670.14 T 1568MAR 01JAY THOMAS 145.2222 524.92 T 1569APR 01AJAX JUNK YARD 12.3322 512.59 T 29OUR SUNDAY VISITOR 17.9901 * 96.67 2047OCT 2 ST. ANTHONY CHURCH 40.0000 *56.67T 2048OCT 2 ST.ANTHONY CHURCH CL 2.0000 *4.67 2049OCT 5 RIGHT TO LIFE LEAGUE 10.0001 4*.67T 2050OCT 23SOC.PROPG. OF FAITH 20.0001 24*67 2051OCT 30ST. ANTHONY CHURCH 10.0000 14.*7 1031OCT 31DEPOSIT -60.00 74.6* 2052NOV 1 ST. ANTHONY CHURCH 5.0000 69.67* 2053OCT 31MARIPOSA MARKET 20.0090 49.67 *2054OCT 31 0JAN 01STARTING BALANCE 0.00 564.11 T 1562JAN 21CECIL BAKER 22.0045 542.11TT 1563JAN 24CENTRAL BANK 300.0862 242.03TT 129JAN 29DEPOSIT -156.22 398.25 T 1564FEB 02ACME MORTGAGE 214.3366 183.92TT 1565FEB 03CARTER SHOE STORE 55.3390 128.59 T 1566FEB 22GEO WASHINGTON 35.66 92.93 T 1567MAR 01HERB BROWN 23.00 69.93 T 302MAR 02DEPOSIT -600.21 670.14 T 1568MAR 01JAY THOMAS 145.2222 5  *...THIS IS COMMAND FILE "CHXLOAD" MODIFIED 11/30/83 ? ERASE *...Load the non-indexed file to display entries of interest... USE &BLAST GOTO BOTTOM ?' The last entries were:' ?' ' SKIP -5 DISPLAY NEXT 6 *...Use the indexed file while entering new checks... USE &OFF ?' ' ?' Enter RECORD NO where checkbook balance' INPUT ' is known to be correct and press RETURN ' TO SRN APPEND *...Store the ending record number for subsequent use... STORE # TO ERN *...Load the non-indexed file in preparation for updating the balance... USE &BLAST STORE ERN + 2 TO ERN STORE (ERN-SRN) TO VARIABLE GOTO SRN SKIP -1 STORE B TO TEMP SKIP +1 STORE 1 TO INDEX DO WHILE INDEX < VARIABLE *...Change print status of deposits to 'True' IF A<0 REPL PRNT WITH T ENDIF *...Now update the balance... STORE (TEMP-A) TO TEMP REPLACE B WITH TEMP SKIP 1 STORE INDEX + 1 TO INDEX ENDDO VARIABLE TIMES IF INDEX = VARIABLE RETURN  *...EOF FOR COMMAND FILE "CHXLOAD"...  300.00 4 w? the non-indexed file... USE &BLAST GOTO BOTTOM ?' The last entries were:' ?' ' SKIP -5 DISPLAY NEXT 6 *...Use the indexed file while entering new checks... USE &OFF ?' ' ?' Enter RECORD NO where checkbook balance' INPUT ' is known to be correct and press RETURN ' TO SRN APPEND *...Store the ending record number for subsequent use... STORE # TO ERN *...Load the non-indexed file in preparation for updatREMARK...THIS IS COMMAND FILE "EDIT" MODIFIED 8/7/83 ? ?' ' ERASE USE &OFF ?' *************************************************' ?' * ALWAYS EXIT THE EDITED RECORD USING "CNTRL W" * ' ?' *************************************************' ?' ' ?' ' *...Go back 10 checks to help find the check of interest... GOTO BOTTOM SKIP -10 DISP NEXT 11 ?' ' ?' ' INPUT 'Enter "RECORD NO" for check needing correction' TO TEMP GOTO TEMP EDIT TEMP RETURN *...EOF for command file "EDIT" **********' ? ? WAIT TO ACTION *...Go to the proper subroutine... IF ACTION='0' SET TALK ON CANCEL ENDIF IF ACTION = '1' DO SELECT ENDIF IF ACTION = '2' DO ALTER ENDIF IF ACTION = '3' DO CHXLOAD ENDIF IF ACTION = '4' DO KANCELS ENDIF IF ACTION = '5' DO EDIT ENDIF IF ACTION =g check books, including printing the check' ?' if one has a printer. The first  MENU' ?' ******' @ 7,10 SAY HOLD ?' ' ?' ' ?' OPTIONS TO CHOOSE:' ?' ' ?' 0 = EXIT FROM THE MENU' ?' 1 = DISPLAY CHECKS ALREADY WRITTEN, STARTING AT A SPECIFIED RECORD NUMBER' ?' 2 = RECALCULATE BALANCE, STARTING AT A SPECIFIED RECORD NUMBER' ?' 3 RETURN ENDIF ENDDO RETURN  *...THIS IS COMMAND FILE 'FINDCOD' MODIFIED 09/01/83... ERASE SET TALK OFF ? ? USE &BLAST ?' ******************************************' ?' *...ENTER THE "PURPOSE" CODE IN QUOTES...*' ?' ******************************************' ? *...Find the data using file purpose code... INPUT "Enter code IN QUOTES ('XX'), press RETURN" TO TEMP ? DISP NUMBER,DATE,PAYEE,A,PURPOSE FOR PURPOSE = TEMP ? *...Now total the above... SET TALK ON ?'Total amount of the above checks is:' SUM A FOR PURPOSE = TEMP SET TALK OFF WAIT RETURN *...EOF for command file "FINDCOD"... RIPOSA MARKET 20.0090 1500.83 729JUL 29DEPOSIT -515.31 2016.14T 2233AUG 1 J.C. PENNEY 70.0057 1946.14 2234AUG 1 PACIFIC TELEPHONE 15.8863 1930.26 2235AUG 1 SHELL OIL CO. 67.1351 1863.13 2236AUG 1 TAYLOR PHARMACY 18.9023 1844.23 2237AUG 1 CAROLYN KOVACH 3 1356.48 2258AUG.12PIC & SAVE 12.6999 1343.79 2259AUG.12ST711JUL 11DE95 147*...THIS IS COMMAND FILE 'FINDNAM' MODIFIED 09/01/83... *...Erase the screen... ERASE *...Find all files for Payee = specified name... ?'***********************************************************' ?'*...The "NAME" to be entered must be enclosed IN QUOTES...*' ?'***********************************************************' ? USE &BLAST INPUT "Enter name IN QUOTES ('XX'), press RETURN" TO TEMP ? DISPLAY NUMBER,DATE,PAYEE,A,PURPOSE FOR PAYEE = '&TEMP' *...Total amount of the above checks... SET TALK ON ? ?'A total amount of the above checks is:' SUM A FOR PAYEE='&TEMP' SET TALK OFF WAIT RETURN *...EOF for command file "FINDNAM"... }= TEMP SET TALK OFF WAIT RETURN RIPOSA MARKET 20.0090 1500.83 729JUL 29DEPOSIT -515.31 2016.14T 2233AUG 1 J.C. PENNEY 70.0057 1946.14 2234AUG 1 PACIFIC TELEPHONE 15.8863 1930.26 2235AUG 1 SHELL OIL CO. 67.1351 1863.13 2236AUG 1 TAYLOR PHARMACY 18.9023 1844.23 2237AUG 1 CAROLYN KOVACH  2NUMBERnd file... ENDDO *...END OF COMMAND FILE 'CHEX'... B`CCCOPRIATE KEY TO INITIATE DESIRED ACTION' ?' **********  2NUMBERnd file... ENDDO *...END OF COMMAND FILE 'CHEX'... B`CC B� B0 CbCcCdCeCfCg Ch CiOPRIATE KEY TO INITIATE DESIRED ACTION' ?' ***********...THIS IS COMMAND FILE "KANCELS" MODIFIED 12/17/83 ERAS USE &OFF STOR GOOD+PREP TO TEMP ?' This checkbook was last balanced using the',CDATE,'statement' ACCEPT " ENTER the MONTH and YEAR for today's statement" TO TEMPA STOR TEMPA TO &TEMP SAVE TO MEMVAR ?' ' ?' *******************************************************************' ?' * Press 0 after the last cancelled check to balance the checkbook *' ?' *******************************************************************' ?' ' STOR 0 TO MAXA DO WHIL T INPUT ' Enter cancelled Check No ' to C:CAN IF C:CAN=0 ERAS USE &BLAST STOR LCN+1 TO LCN COPY FIELD NUMBER,PAYEE,A,B,CAN TO B:PARTIAL FOR #0 STOR LC TO MAXA STOR # TO MAXB ENDDO ELSE STOR MAXA TO LC STOR MAXB TO LCN ENDIF ENDDO BPAYEE,A,CAN TO B:PARTIAL FOR # < LCN USE B:PARTIAL COPYND NOT IN BANKBOOK)' STORE T TO ACTIVES.....IF NONPRECEED WITH A MINUS SIGN THOSE IN BANKSTATEMENT AND NOT IN BANKBOOK)' STOR T TO ACTIVE STOR 1 TO COUNT STOR 0 TO T:OUT ? DO WHIL ACTIVE STOR STR(COUNT,3) TO I INPU ' ENTER OUTSTANDING DEPOSIT &I' TO D:OUT IF D:OUT=0 STOR F TO ACTIVE ELSE STOR D:OUT+T:OUT TO T:OUT STOR COUNT + 1 TO COUNT ENDIF ENDDO ? COUNT-1, ' OUTSTANDING DEPOSITS TOTAL = $', T:OUT ? INPU " ENTER ENDING BALANCE FROM BANK STATEMENT " TO BEGIN STOR BEGIN + T:OUT - OUTSTAND TO NEW USE B:PARTIAL GOTO BOTTOM STOR B *...THIS IS COMMAND FILE "MENU" MODIFIED 09/28/83... *...General setup and heading format... DO WHILE T ERASE ? ? ? ?' MENU' ?' ******' *...Display the checkbook name at top of screen... @ 7,22 SAY HOLD ? ? *...Specify the optional operation choices... ?' OPTIONS TO CHOOSE:' ?' ' ?' 0 = EXIT from the menu' ?' 1 = LIST checks already written, starting at a specified record number' ?' 2 = RECALCULATE balance, starting at a specified record number' ?' 3 = ENTER new checks and CALCULATE the balance' ?' 4 = ENTER cancelled checks and BALANCE the checkbook' ?' 5 = CORRECT data in a check already entered into file' ?' 6 = PRINT a check' ?' 7 = LIST and TOTAL all checks for a given purpose' ?' 8 = LIST and TOTAL all checks for a given name' ?' 9 = RETURN to checkbook choice menu' ? ?' ... PRESS THE "ESCAPE" KEY AT ANY TIME TO EXIT FROM THE MENU...' ? ?'  PRESS THE APPROPRIATE KEY TO INITIATE DESIRED ACTION!!' ?' ********************************************************' ? ? WAIT TO ACTION *...Go to the proper subroutine... IF ACTION='0' SET TALK ON CANCEL ENDIF IF ACTION = '1' DO SELECT ENDIF IF ACTION = '2' DO ALTER ENDIF IF ACTION = '3' DO CHXLOAD ENDIF IF ACTION = '4' DO KANCELS ENDIF IF ACTION = '5' DO EDIT ENDIF IF ACTION = '6' DO CHKPRINT ENDIF IF ACTION = '7' DO FINDCOD ENDIF IF ACTION = '8' DO FINDNAM ENDIF IF ACTION = '9' RETURN ENDIF *...Go to the top of this command file... ENDDO *...Go back to the main menu... RETURN *...END OF COMMAND FILE 'MENU'... }g check books, including printing the check' ?' if one has a printer. The first  MENU' ?' ******' @ 7,10 SAY HOLD ?' ' ?' ' ?' OPTIONS TO CHOOSE:' ?' ' ?' 0 = EXIT FROM THE MENU' ?' 1 = DISPLAY CHECKS ALREADY WRITTEN, STARTING AT A SPECIFIED RECORD NUMBER' ?' 2 = RECALCULATE BALANCE, STARTING AT A SPECIFIED RECORD NUMBER' ?' 3 RETURN ENDIF ENDDO RETURN }g check books, including printing the check' ?' if one has a printer. The first  MENU' ?' ******' @ 7,10 SAY HOLD ?' ' ?' ' ?' OPTIONS TO CHOOSE:' ?' ' ?' 0 = EXIT FROM THE MENU' ?' 1 = DISPLAY CHECKS ALREADY WRITTEN, STARTING AT A SPECIFIED RECORD NUMBER' ?' 2 = RECALCULATE BALANCE, STARTING AT A SPECIFIED RECORD NUMBER' ?' 3 RETURN ENDIF ENDDO RETURN  *...THIS IS COMMAND FILE "SELECT" MODIFIED 09/02/83... *...Erase previous information from the screen... ERASE *...Choose the non-indexed file for displaying entries of interest... USE &BLAST *...Display the last check written, for reference to record number... GOTO BOTTOM ?' The last check written was:' DISPLAY *...Display entries of interest, 15 at a time... ? ?' To display a list of 15 checks at a time,' INPUT ' enter a starting RECORD NO (>0) and press RETURN ' TO VARIABLE GOTO VARIABLE DISPLAY NEXT 1000 WAIT *...Go back to main menu... RETURN *...END OF COMMAND FILE 'SELECT'... ED RECORD NUMBER' ?' 3 = ENTER NEW CHECKS AND CALCULATE THE BALANCE' ?' 4 = ENTER CANCELLED CHECKS AND BALANCE THE CHECKBOOKOMMAND FILE "MENU" MODIFIED 8/7/83 ? DO WHILE T ERASE ? ? ? ?' MENU' ?' ******' @ 7,10 SAY HOLD ?' ' ?' ' ?' OPTIONS TO CHOOSE:' ?' ' ?' 0 = EXting the check' ?' if one has a printer. The first  MENU' ?' ******' @ 7,10 SAY HOLD ?' ' ?' ' ?' OPTIONS TO CHOOSE:' ?' ' ?' 0 = EXIT FROM THE MENU' ?' 1 = DISPLAY CHECKS ALREADY WRITTEN, STARTING AT A SPECIFIED RECORD NUMBER' ?' 2 = RECALCULATE BALANCE, STARTING AT A SPECIFIED RECORD NUMBER' ?' 3 RETURN ENDIF ENDDO RETURN  *...THIS IS COMMAND FILE "ALTER" MODIFIED 09/02/83... *...Erase the screen... ERASE *...Use the non-indexed file to display entries of interest... USE &BLAST *...Display the last check written for reference to record number... GOTO BOTTOM ?' The last check written was:' DISPLAY ? *...Update the balance, starting at a number where balance is correct... ?' Enter a RECORD NO where balance' INPUT ' is known to be correct and press RETURN ' TO SRN STORE # TO ERN STORE ERN + 2 TO ERN STORE (ERN-SRN) TO VARIABLE GOTO SRN SKIP -1 STORE B TO TEMP SKIP +1 STORE 1 TO INDEX DO WHILE INDEX < VARIABLE STORE (TEMP-A) TO TEMP REPLACE B WITH TEMP SKIP 1 STORE INDEX + 1 TO INDEX *...Go back to 'do while' if all checks aren't updated yet... ENDDO VARIABLE TIMES *...Go back to main menu when all checks are updated... IF INDEX = VARIABLE RETURN ENDIF *...END OF COMMAND FILE 'ALTER'... ter a RECORD NO where balance' INPUT ' is known to be correct and press RETURN ' TO SRN STORE # TO ERN STORE ERN + 2 TO ERN STORE (ERN-SRN) TO VARIABLE GOTO SRN SKIP -1 STORE B TO TEMP SKIP +1 STORE 1 TO INDEX DO WHILE INDEX < VARIABLE STORE (TEMP-A) TO TEMP REPLACE B WITH TEMP SKIP 1 STORE INDEX + 1 TO INDEX ENDDO VARIABLE TIMESOMMAND FILE "MENU" MODIFIED 8/7/83 ? DO WHILE T ERASE ? ? ? ?' MENU' ?' ******' @ CLEAR SET TALK OFF SET INTE OFF ERASE STORE PEEK(340) TO WIDE STORE PEEK(341) TO LINES STORE LINES-1 TO CNTLINES DO WHILE CNTLINES > 1 @ CNTLINES,0 SAY "*" @ CNTLINES,WIDE-1 SAY "*" IF CNTLINES > 3 @ CNTLINES-1,0 SAY "|" @ CNTLINES-1,WIDE-1 SAY "|" ENDIF STORE CNTLINES-2 TO CNTLINES ENDDO STORE WIDE-2 TO CNTROW DO WHILE CNTROW > 0 @ 2,CNTROW SAY "*" @ LINES-1,CNTROW SAY "*" IF CNTROW > 4 @ 2,CNTROW-2 SAY "-" @ LINES-1,CNTROW-2 SAY "-" ENDIF STORE CNTROW-4 TO CNTROW ENDDO STORE "Welcome to the dBASE II RCP/M " TO M1 STORE "Presented by" TO M2 STORE "Computer Systems Design " TO M3 STORE INT(LINES/2) TO ML2 STORE ML2-4 TO ML2 STORE ML2-2 TO ML1 STORE ML2+2 TO ML3 STORE INT(WIDE/2) TO MRA1,MRB1,MRC1 STORE MRA1+1 TO MRA2,MRB2,MRC2 STORE LEN(M1) TO P1 STORE LEN(M2) TO P2 STORE LEN(M3) TO P3 STORE INT(P1/2) TO PA1 STORE PA1+1 TO PA2 STORE INT(P2/2) TO PB1 STORE PB1+1 TO PB2 STORE INT(P3/2) TO PC1 STORE PC1+1 TO PC2 DO WHILE PA2 < P1+1 @ ML1,MRA1 SAY $(M1,PA1,1) @ ML1,MRA2 SAY $(M1,PA2,1) STORE MRA1-1 TO MRA1 STORE MRA2+1 TO MRA2 STORE PA1-1 TO PA1 STORE PA2+1 TO PA2 ENDDO SET INTE ON DO WHILE PB2 < P2+1 @ ML2,MRB1 SAY $(M2,PB1,1) @ ML2,MRB2 SAY $(M2,PB2,1) STORE MRB1-1 TO MRB1 STORE MRB2+1 TO MRB2 STORE PB1-1 TO PB1 STORE PB2+1 TO PB2 ENDDO SET INTE OFF DO WHILE PC2 < P3+1 @ ML3,MRC1 SAY $(M3,PC1,1) @ ML3,MRC2 SAY $(M3,PC2,1) STORE MRC1-1 TO MRC1 STORE MRC2+1 TO MRC2 STORE PC1-1 TO PC1 STORE PC2+1 TO PC2 ENDDO STORE T TO FIRST DO DEMOCHC INT(LINES/2) TO ML2 STORE ML2-4 TO ML2 STORE ML2-2 TO ML1 STORE ML2+2 TO ML3 STORE INT(WIDE/2) TO MRA1,MRB1,MRC1 STORE MRA1+1 TO MRA2,MRB2,MRC2 STORE LEN(M1) TO P1 STORE LEN(M2) TO P2 STORE LEN(M3) TO P3 STORE INT(P1/2) TO PA1 STORE PA1+1 TO PA2 STORE INT(P2/2) TO PB1 STORE PB1+1 TO PB2 STORE INT(P3/2) TO PC1 STORE PC1+1 TO PC2 DO WHILE PA2 < P1+1 @ ML1,MRA1 SAY $(IF .NOT. FIRST ERASE ENDIF CLEAR STORE F TO FIRST STORE PEEK(340) TO WIDE STORE PEEK(341) TO LINES @ LINES-8,8 SAY "1> Ruler lines demo - by Mike Kelly" @ LINES-7,8 SAY "2> Square root demo - by John Hathaway" @ LINES-6,8 SAY "3> Graphics demo - by John Hathaway" @ LINES-5,8 SAY "4> Download information for Demo Programs" @ LINES-4,8 SAY "5> Quit to dBASE II RCP/M" SET INTE ON @ LINES-2,8 SAY "Your request - " SET INTE OFF STORE " " TO QUEST SET COLON ON DO WHILE QUEST = " " @ LINES-2,22 GET QUEST PICT "#" READ STORE VAL(QUEST) TO QST IF QST < 1 .OR. QST > 5 STORE " " TO QUEST ENDIF ENDDO IF QUEST = "1" DO RULEDEMO ELSE IF QUEST = "2" DO SQRTDEMO ELSE IF QUEST = "3" DO DEMGRAPH ELSE IF QUEST = "4" DO DEMOINFO ELSE IF QUEST = "5" ERASE QUIT ENDIF 5 ENDIF 4 ENDIF 3 ENDIF 2 ENDIF 1 ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååGOODÃdACTIONÃLdHOLDÕdBLASTÃdOFFðdPREPÃTdMONAÃWdMONBÃdMONCÃgdMONDÃodCDATEÃdVARIABLEÎ …dTEMPÃ_dTEMPAÃ%dSRNÎ 0dERNÎ 7dINDEXÎ Ed MONDEC 83DEC 83CHXADEC 83@@p@`4ADEC 83MONANOV 83DEC 83@You are using CHECKBOOK ACHXA INDEX INDXA..THIS IS COMMAND FILE "MENU" MODIFIED 09/02/83... *...General setup and heading format... DO WHILE T ERASE ? ? ? ?' MENU' ?' ******' *...Complete the name of the checkbook at top of screen... @ 7,10 SAY HOLD ? ? *...Specify the optional operation choices... ?' OPTIONS TO CHOOSE:' ?' ' ?' 0 = EXIT from the menu' ?' 1 = LIST checks already written, starting at a specified record number' ?' 2 = RECA* * tryme.cmd * * Simple command file to show dBASE cursor positioning. * Used on the BBS to be sure that the BBS knows about your * terminal. * Mike Kelly * * 03/20/83 v1.0 originially written * 03/20/83 v1.0 updated * clear erase set talk off set colon off set bell off set escape on set inte off * store 0 to col store 1 to cnt1 * print ruler across top of screen (remember line 0 is a no-no) do while (cnt1 <= 8) store 1 to cnt2 do while (cnt2 <= 10) @ 1,col say cnt2 using '9' store cnt2 + 1 to cnt2 store col + 1 to col enddo (cnt2<10) store cnt1 + 1 to cnt1 enddo (cnt1<10) * store 0 to line1 do while (line1 <= 23) @ line1,0 say line1+1 using '99' store line1 + 1 to line1 enddo (line1<24) * @ 10,10 say 'You should see a ruler across the top of the screen ' @ 11,10 say ' (which is really on physical line 2, because line 1' @ 12,10 say ' is resevered by dBASE (grrrr)), and you should see' @ 13,10 say ' a ruler running down the left hand side.' @ 15,10 say 'If not, better check that your terminal is known to' @ 16,10 say ' this bbs.' @ 18,10 say 'When you have checked the positioning out,' @ 19,10 say ' PRESS ANY KEY, to return to the demo menu.' * STORE " " TO QUEST SET COLON OFF DO WHILE QUEST = " " @ 20,10 GET QUEST READ STORE 'A' TO QUEST enddo (forever) * DO DEMOCHC  screen (remember line 0 is a no-no) do while (cnt1 <= 8) store 1 to cnt2 do while (cnt2 <= 10) @ 1,col say cnt2 using '9' store cnt2 + 1 to cnt2 store col + 1 to col enddo (cnt2<10) store cnt1 + 1 to cnt1 enddo (cnt1<10) * store 0 to line1 do while (line1 <= 23) @ line1,0 say line1+1 using '99' store line1 + 1 to line1 enddo (line1<24) * @ 10,10 say 'You should see a ruler across the top of the screen ' @ 11,10 say ' (which is really on physical line 2, because line 1' @ 12,10 say ' is resevered by dBASE (grrrr)), and you should see' @ 13,10 say ' a ruler running down the left hand side.' @ 15,1TESTCÑl 8Ê8ËÊ8ƾ•Ä¡ÆÊ8Ͷ ÆŸÍž"Ë¡$¶צ Can't find ͶÆÍ¸¹òÆÌ:Æ:²€ÌÊ9¤ Æ€ºצ:²€ÌÊ9¤ ÍÍÆ€ºÍÆ:¦SYSTEM.SWAPDISK×&ÍÆ:ª(¶7ÆŸÍÆ,¦*SYSTEM.WRK.CODE[*]ת¶“¡ô¶צTo what codefile? ͶÆ(ͶÍÎ Æצ·¡Oƾ¶¢,ºÃ¡¹ò¹<צ$ÆÍÌ8Ê8Å¡ÆÊ8ÍÆÆ(Ê8ÍÆÏ¡¹XÆÍ+Æ,ƪ¶Æ,ŸÍž"Ë¡ ¶¦ Can't open ×ͶÆ,͹¸   ..ͶÍž¶©…Íž¶¦CP/M boot error -- ×ÍžØ8‹¡ö¶צVolume Íž¶¥&Íž¶צSQRT.DOC ==> Documentation for SQRT.CMD Higheò matè functionó (SIN,COS,SQR...© arå � unfortunatlù missinç iî DBASÅ whicè decreaseó itó � usefullnesó aó á scientifiã oò engineerinç datá � managemenô system® Thå abilitù tï takå squarå � rootó ió thå mosô notablå oæ theså inadequacies® � SQRT.CMÄ ió á shorô commanä filå whicè maù bå useä � aó ió oò inserteä intï á largeò commanä filå witè � somå modifications® Iô ió morå powerfuì thaî thå � routinå listeä iî thå latesô editioî oæ thå DBASÅ � manuaì bå causå iô caî handlå numberó largeò thaî � 100. Tï uså aó is¬ simplù typå DÏ SQRÔ anä enteò youò � number® Tï inserô intï anotheò commanä file¬ � deletå thå SET¬ RELEASE¬ INPUT¬ anä RETURÎ lineó � anä inserô thå routinå intï thå propeò sectioî oæ � youò file® Yoõ maù eitheò renamå youò variable tï � thå variablå namå 'in§ (STORÅ ¿ TÏ in© oò changå � 'in§ iî thå routinå tï youò variablå name. John Hathaway 8/15/82 * SQUARE ROOT COMMAND FILE (JOHN HATHAWAY 8/5/82) * HANDLES ANY NUMBER GREATER THAN 0 * * Modified by Roger Brown for dBASE II RCP/M demo. * SET TALK OFF * NEEDS A DATABASE OPEN USE SQRT SET INTE OFF SET COLON OFF STORE "Y" TO YN ERASE STORE "Square Root demo by John Hathaway" TO HDNG STORE (WIDE-LEN(HDNG))/2 TO PA1 @ 3,PA1 SAY HDNG STORE F TO MSG20 DO WHILE YN = "Y" STORE 0 TO IN @ 8,10 SAY "Input a number between 0 and 100 : " @ 8,45 GET IN PICT "##" READ IF MSG20 @ 20,0 ENDIF IF IN = 0 @ 20,10 SAY "The square root of zero ? - don't be silly..." STORE T TO MSG20 LOOP ELSE IF IN < 1 @ 20,10 SAY "Greater than 0 and less than 100 please..." STORE T TO MSG20 LOOP ELSE STORE F TO MSG20 ENDIF ENDIF STORE 0 TO a STORE in*.5 TO out STORE 0 TO z5 * YOU CAN INCREASE OR DECREASE NUMBER OF LOOPS HERE TO * CHANGE ACCURACY. I'VE FOUND 7 TO BE ADEQUATE DO WHILE a<7 STORE (in/out-out)*.5 TO w5 STORE out+w5 TO out STORE w5 TO z5 STORE a+1 TO a ENDDO @ 12,10 SAY "The square root of " @ 12,29 SAY IN USING "##" @ 12,32 SAY " is " @ 12,37 SAY OUT @ 16,10 SAY "Want to try another ? (Y/N)" @ 16,38 GET YN PICT "!" READ ENDDO DO DEMOCHC  DO WHILE YN = "Y" STORE 0 TO IN @ 8,10 SAY "Input a number between 0 and 100 : " @ 8,45 GET IN PICT "##" READ IF MSG20 @ 20,0 ENDIF IF IN = 0 @ 20,10 SAY "The square root of zero ? - don't be silly..." STORE T TO MSG20 LOOP ELSE IF IN < 1 @ 20,10 SAY "Greater than 0 and less than 100 please..." STORE T TO MSG20 LOOP ELSE STORE F TO MSG20 ENDIF ENDIF STORE 0 TO a STORE in*.5 TO out STORE 0 TO z5 * YOU CAN INCREASE OR DECREASE NUMBER OF LOOPS HERE TO * CHANGE ACCURACY. I'VE FOUND 7 TO BE ADEQUATE DO WHILE a<7 STORE (in/out-out)*.5 T*-------------------------------------------------------- * Screen graphics command module (bar graph) | * Universal terminal version | * John Hathaway 3/1/83 | *-------------------------------------------------------- RELEASE ALL SET TALK OFF ERASE *-------------------------------------------------------- * new DBF file ? | *-------------------------------------------------------- ? 'DBASE SCREEN GRAPHICS COMMAND PROGRAM' ? ACCEPT 'USE LOGGED IN DATA BASE? (Y/N)' TO YS IF !(YS)<>'Y' ACCEPT 'ENTER DATA BASE NAME' TO name USE &name ENDIF ERASE RELEASE YS *-------------------------------------------------------- * setup field variables and data base read conditions | *-------------------------------------------------------- ? 'ENTER FIELD VARIABLES AND CONDITIONS BELOW' ? ACCEPT ' FIELD X' TO vx ACCEPT ' FIELD Y' TO vy ACCEPT 'CONDITIONS' TO C ? ? ACCEPT 'GRAPH TYPE ( catter or ar )' TO bars IF !(bars)='B' ACCEPT 'LABEL FIELD' TO label ENDIF ERASE ?'DETERMINING MINIMUM AND MAXIMUM DATA POINTS ...' ? STORE -10000 TO xmax STORE 10000 TO xmin STORE -10000 TO ymax STORE 10000 TO ymin STORE 1 TO num STORE 0 TO sume GOTO TOP DO WHILE .NOT. EOF *--------------------change following line for cursor up and remove '*' * DISPLAY OFF 'RECORD #:',#,CHR(11) IF &C IF &vx<=xmin STORE &vx TO xmin ELSE IF &vx>=xmax STORE &vx TO xmax ENDIF ENDIF IF &vy<=ymin STORE &vy TO ymin ELSE IF &vy>=ymax STORE &vy TO ymax ENDIF ENDIF STORE num+1 TO num STORE sume+&vy TO sume ENDIF SKIP+1 ENDDO *------------------------------------------------------- * display minimum and maximum - allow alternate entries| *------------------------------------------------------- ERASE @ 2,10 SAY 'AXIS SETUP SCREEN' @ 5,10 SAY 'NUMBER:' @ 5,20 SAY STR(num,6,0) @ 7,10 SAY 'AVERAGE:' @ 7,20 SAY STR(sume/num,8,2) @ 8,10 SAY '------------------' @ 10,10 SAY 'LOWER X' GET xmin @ 11,10 SAY 'UPPER X' GET xmax @ 13,10 SAY 'LOWER Y' GET ymin @ 14,10 SAY 'UPPER Y' GET ymax IF NUM>15 @ 17,5 SAY 'Too many points for BAR GRAPH. Switching to SCATTERPLOT.' STORE 'S' TO BARS ENDIF READ *-------------------------------------------------------- * determine axis scaling factors | *-------------------------------------------------------- STORE xmax-xmin TO xdif STORE xdif/5 TO xinc STORE ymax-ymin TO ydif STORE ydif/4 TO yinc STORE 1 TO X STORE 1 TO Y STORE 1 TO A ERASE *-------------------------------------------------------- * draw Y axis | *-------------------------------------------------------- STORE ymax TO B STORE ' ' TO D DO WHILE A<23 STORE (A-2)/5 TO F IF ymax>10 STORE STR(B-F*yinc,3) TO D ELSE STORE STR(B-F*yinc,3,1) TO D ENDIF IF A=2 .OR. A=7 .OR. A=12 .OR. A=17 .OR. A=22 @ A,1 SAY D  @ A,4 SAY '+' ELSE @ A,4 SAY '|' ENDIF STORE A+1 TO A ENDDO *-------------------------------------------------------- * draw X axis | *-------------------------------------------------------- STORE 0 TO A @ 22,4 SAY '+--------------+--------------+--------------+--------------+--------------+' STORE 15 TO N5 DO WHILE A<6 IF A=5 STORE 14.4 TO N5 ENDIF STORE xmin+A*xinc TO B @ 23,A*N5+2 SAY STR(B,4,1) STORE A+1 TO A ENDDO @ 1,50 SAY 'Y AXIS =' @ 1,58 SAY vy @ 1,30 SAY 'X AXIS =' @ 1,38 SAY vx *-------------------------------------------------------- * read file and plot data | *-------------------------------------------------------- GOTO TOP DO WHILE .NOT. EOF IF &C STORE (&vx-xmin)/xdif*75 TO X1 STORE (&vy-ymin)/ydif*20 TO Y1 STORE 22-Y1 TO JJ IF !(bars)='B' @ JJ,X1+3 SAY '*' @ JJ,X1+4 SAY '*' @ JJ,X1+5 SAY '*'  STORE JJ+1 TO JJ DO WHILE JJ<22 @ JJ,X1+3 SAY '|' @ JJ,X1+5 SAY '|' STORE JJ+1 TO JJ ENDDO *-------------------------------------------------------- * plot labels vertically inside bars | *-------------------------------------------------------- STORE 1 TO L IF TYPE(&label)='N' STORE STR(&label,4) TO Tlabel ELSE STORE TRIM(&label) TO Tlabel ENDIF DO WHILE L<=LEN(Tlabel) @ 21-LEN(Tlabel)+L,X1+4 SAY $(Tlabel,L,1) STORE L+1 TO L ENDDO *------------------------------------ scatter plot ELSE @ JJ,X1+4 SAY '*' ENDIF ENDIF SKIP+1 ENDDO RELEASE ALL *-------------------------------------------------------- * jump up here to avoid rolling the screen up | *-------------------------------------------------------- STORE ' ' TO YS @ 1,70 SAY 'RET' GET YS READ RETURN  XNÑlYNÖlLABELC Ýl 1 3.30ONE 2 5.50TWO 3 6.60THREE 4 4.50FOUR 5 3.80FIVE 6 2.80SIX 7 7.70SEVEN 8 5.50EIGHT 9 4.90NINE  0 14444-2-3243FF 076.3123.6942.8257.151.332.650.29 0 14444-2-3245FF 076.0223.9943.0256.981.322.660.25 50 52 8 200-2-0496FF 076.7323.2742.5457.461.352.320.49 OK 0 5 130-2-0580FF 076.2423.7742.7457.261.340.000.47 UGRAPH.DOC ---> Documentation for UGRAPH.CMD and DEMGRAPH.CMD Written by John Hathaway (3/1/83) Thå UGRAPÈ commanä filå ió á screeî graphicó prograí whicè wilì � generatå baò oò scatteò graphó oî thå CRÔ screeî usinç datá froí � á specifieä datá baså file® Iô requireó thå inpuô oæ twï numeriã � fieldó ¨ FIELD Ø anä FIELD Ù )¬ á CONDITIOÎ ¨ ie® � FIELD X<>0) and a LABEL field if the Bar option is chosen. Thå datá baså ió firsô reaä tï determinå thå minimuí anä maximuí � valueó iî eacè variablå fielä usinç thå conditionó specified® � Theî theså valueó arå displayeä anä yoõ arå prompteä tï enteò thå � actuaì axió endpoints® Sincå thå alphanumeriã graphicó � capabilitieó oæ DBASÅ are fairlù limited¬ thå numbeò oæ intervaló � oî eacè axió ió preset® Thå Ù axió haó ´ intervaló whicè meanó � thaô thå differencå betweeî thå uppeò endpoinô anä thå loweò � endpoinô musô bå evenlù divisablå bù ´ (sï thå labeló don'ô comå � ouô likå '4.6666666§ )® Thå Ø axió haó µ intervaló sï itó � difference must be evenly divisable by 5. Thå prograí ió fairlù fasô foò shorô datá baseó buô coulä takå � awhilå foò longeò files® Iæ youò fileó arå reaì long¬ É woulä � suggesô thaô yoõ conditionallù copù thå datá yoõ wanô grapheä � intï á temporarù filå. Legal Entries: FIELD (X/Y© º Anù valiä fielä namå oò thå recorä numbeò symboì � (#) CONDITIONS: Anù valiä conditionaì statemenô includinç �               .AND.,.OR.¬ anä .NOT® Thå recorä numbeò symboì (#© �               maù alsï bå used. LABELS: Anù valiä fielä name® Thå substrinç functrioî ($© �               maù alsï bå used. Thió versioî oæ thå prograí wilì ruî oî anù terminaì witè cursoò � addressinç capabilities® É alsï havå versionó whicè wilì ruî oî � thå Televidiï 95° anä H89/Z1¹ terminals® Leavå á messagå herå iæ � you would like to have these uploaded. lù divisablå bù ´ (sï thå labeló don'ô comå � ouô likå '4.6666666§ )® Thå Ø axió haó µ intervaló sï itó � difference must be ev*-------------------------------------------------------- * Screen graphics demonstration program | * Universal terminal version | * John Hathaway 3/1/83 | *-------------------------------------------------------- RELEASE ALL SET TALK OFF ERASE *-------------------------------------------------------- * new DBF file ? | *-------------------------------------------------------- ? 'DBASE SCREEN GRAPHICS DEMONSTRATION PROGRAM' ? IF FILE("UGRAPH.DBF") USE UGRAPH ELSE ? 'FILE "UGRAPH.DBF" NOT IN THIS USER GROUP' RETURN ENDIF STORE 0 TO D DO WHILE D<50 STORE D+1 TO D ENDDO RELEASE D *-------------------------------------------------------- * setup field variables and data base read conditions | *-------------------------------------------------------- *? 'ENTER FIELD VARIABLES AND CONDITIONS BELOW' ? STORE 'X' TO VX STORE 'Y' TO VY STORE 'X<>0' TO C ? ? STORE 'B' TO BARS IF !(BARS)='B' STORE 'LABEL' TO LABEL ENDIF ERASE ?'DETERMINING MINIMUM AND MAXIMUM DATA POINTS ...' ? STORE -10000 TO XMAX STORE 10000 TO XMIN STORE -10000 TO YMAX STORE 10000 TO YMIN STORE 1 TO NUM STORE 0 TO SUME GOTO TOP DO WHILE .NOT. EOF * DISPLAY OFF 'RECORD #:',#,CHR(11) IF &C IF &VX<=XMIN STORE &VX TO XMIN ELSE IF &VX>=XMAX STORE &VX TO XMAX ENDIF ENDIF IF &VY<=YMIN STORE &VY TO YMIN ELSE IF &VY>=YMAX STORE &VY TO YMAX ENDIF ENDIF STORE NUM+1 TO NUM STORE SUME+&VY TO SUME ENDIF SKIP+1 ENDDO *------------------------------------------------------- * display minimum and maximum - allow alternate entries| *------------------------------------------------------- STORE ' ' TO RET ERASE @ 2,10 SAY 'AXIS SETUP SCREEN' @ 5,10 SAY 'NUMBER:' @ 5,20 SAY STR(NUM,6,0) @ 7,10 SAY 'AVERAGE:' @ 7,20 SAY STR(SUME/NUM,8,2) @ 8,10 SAY '-------------------' @ 10,10 SAY 'LOWER X' @ 10,20 SAY STR(XMIN,8,2) @ 11,10 SAY 'UPPER X' @ 11,20 SAY STR(XMAX,8,2) @ 13,10 SAY 'LOWER Y' @ 13,20 SAY STR(YMIN,8,2) @ 14,10 SAY 'UPPER Y' @ 14,20 SAY STR(YMAX,8,2) @ 17,1 SAY 'THESE ARE THE ACTUAL MAXIMUM AND MINUMUM DATA POINTS IN THE DATA' @ 18,1 SAY 'BASE. THESE VALUES WOULD BE USED TO DETERMINE THE AXIS ENDPOINTS.' @ 19,1 SAY 'THE Y AXIS HAS 4 INTERVALS SO THE DIFFERENCE BETWEEN THE UPPER POINT' @ 20,1 SAY 'AND THE LOWER POINT SHOULD BE EVENLY DIVISABLE BY 4. X AXIS HAS 5.' @ 23,10 SAY 'PRESS "RETURN" TO CONTINUE' GET RET READ STORE 0 TO XMIN STORE 10 TO XMAX STORE 0 TO YMIN STORE 8 TO YMAX *-------------------------------------------------------- * determine axis scaling factors | *-------------------------------------------------------- STORE XMAX-XMIN TO XDIF STORE XDIF/5 TO XINC STORE YMAX-YMIN TO YDIF STORE YDIF/4 TO YINC STORE 1 TO X STORE 1 TO Y STORE 1 TO A ERASE *-------------------------------------------------------- * draw Y axis | *-------------------------------------------------------- STORE YMAX TO B STORE ' ' TO D DO WHILE A<23 STORE (A-2)/5 TO F IF YMAX>10 STORE STR(B-F*YINC,3) TO D ELSE STORE STR(B-F*YINC,3,1) TO D ENDIF IF A=2 .OR. A=7 .OR. A=12 .OR. A=17 .OR. A=22 @ A,1 SAY D @ A,4 SAY '+' ELSE @ A,4 SAY '|' ENDIF STORE A+1 TO A ENDDO *-------------------------------------------------------- * draw X axis | *-------------------------------------------------------- STORE 0 TO A @ 22,4 SAY '+--------------+--------------+--------------+--------------+--------------+' STORE 15 TO N5 DO WHILE A<6 IF A=5 STORE 14.4 TO N5 ENDIF STORE XMIN+A*XINC TO B @ 23,A*N5+1 SAY STR(B,5,1) STORE A+1 TO A ENDDO @ 1,50 SAY 'Y AXIS =' @ 1,58 SAY VY @ 1,30 SAY 'X AXIS =' @ 1,38 SAY VX *-------------------------------------------------------- * read file and plot data | *-------------------------------------------------------- GOTO TOP DO WHILE .NOT. EOF IF &C STORE (&VX-XMIN)/XDIF*75 TO X1 STORE (&VY-YMIN)/YDIF*20 TO Y1 STORE 22-Y1 TO JJ IF !(BARS)='B' @ JJ,X1+3 SAY '*' @ JJ,X1+4 SAY '*' @ JJ,X1+5 SAY '*' STORE JJ+1 TO JJ DO WHILE JJ<22 @ JJ,X1+3 SAY '|' @ JJ,X1+5 SAY '|' STORE JJ+1 TO JJ ENDDO *-------------------------------------------------------- * plot labels vertically inside bars | *-------------------------------------------------------- STORE 1 TO L STORE TRIM(&LABEL) TO TLABEL DO WHILE L<=LEN(TLABEL) @ 21-LEN(TLABEL)+L,X1+4 SAY $(TLABEL,L,1) STORE L+1 TO L ENDDO *------------------------------------ scatter plot ELSE @ JJ,X1+4 SAY '*' ENDIF ENDIF SKIP+1 ENDDO RELEASE ALL *-------------------------------------------------------- * jump up here to avoid rolling the screen up | *-------------------------------------------------------- STORE ' ' TO YS @ 1,70 SAY 'RET' GET YS READ ERASE ? 'TYPE FILE "UGRAPH.DOC" FOR FURTHER INFORMATION' DO DEMOCHC  @ JJ,X1+4 SAY '*' @ JJ,X1+5 SAY '*' STORE JJ+1 TO JJ DO WHILE JJ<22 @ JJ,X1+3 SAY '|' @ JJ,X1+5 SAY '|' STORE JJ+1 TO JJ ENDDO *-------------------------------------------------------- * plot labels vertically inside bars | *-------------------------------------------------------- STORE 1 TO L STORE TRIM(&LABEL) TO TLABEL DO WHILE L<=LEN(TLABEL) @ 21-LEN(TLABEL)+L,X1+4 SAY $(TLABEL,L,1) STORE L+1 TO L ENDDO *------------------------------------ scatter plot ELSE @ JJ,X1+4 SAY '*' ENDIF ENDIF SKIP+1 ENDDO RELEASE ALL *-------------------------------------------------------- ÃÉÍ«Copyright (C)1984 BORLAND Inc‚A Osborne 1al selectedP)(= ERT()~·7È#õå~Íáñ=ÈóÍ% ÉÅÕåÝåýåõo&åͦñýáÝááÑÁÉoåͦÉþ€Ü�Ô©æîÅÕåÝåýåÍ£}Ùå!å!"8áãõÅÕ~#·(åÍáôÑÁñãÉ}´È:$‡‡‡ããããÅÒÁ= ô+èÍÐØ*ÎßõÅÕå!¨ÍZ!¢ÍÐ*ºÔBáÑÁñÉõÅÕå!´éõÅÕå!®àõ:¼·(ÅÕå=2¼!ÈÍZáÑÁñÉõ:¼· ÷ÅÕå<2¼!ÂåõÅÕå!¼ÛõÅÕååð!‹í°Ñ:žO:œ‚ÕÍÑ:ŸO:�ƒÍ!ðÍÐ* ÍBáÑÁñÉ!ð ë!›45(É!.+/ –0ü†õyþ0(ñíÉ d!kÃZ!{ÃZ͈æ͈o&Éô  áÁå:á·(yþ ÕÅÍ |µ(Íþ ÍþÊÅÁÑ*é"ÛÕx2áy·( >Ã28!?"9!É í°!á¸í°áí°>2گà Ã:ÃDÃ]ÃSÃXÃNÃ]ÃDÿ í[Ûþ (ú!eÍ}Í„þA8þQ0Gþ: xÖ@¯!\w# ( þ  ÍyÍVþ. ÍV!h6#ûÉ (þ*(þ.(þ!8þ}(þ*(Í„w#ßÉ>?> w#üÉþaØþ{ÐÖ É|Í’}õÍ›ñæÆ�'Î@'Ãè¯7Ë|À|·}È>ÿÉ"ÍíCß"í6#ûëÑùü "Ïë"ÕÍ�Í©éå*Ï·íB"Ïí[Í·íRëáÚ5í°É*Ïí°"ÏÙÉ^#V#Õ^#V#N#FáÉÝáëO/o&ÿ9ùëí°ÝéÑO/o&ÿ9ùëí°éÝáë!àÿ9ùëÅ(¯üí°Á> �‘(G¯üÝéÝá!àÿ9ù ¯w#üÝéÝáEÍŠ¶wÝéÝáÑ}“8÷�Ãu·íR·íB0 É>‘î·íRëê@ðøÉÕë·íRëáë·íR!È+Éͨ õÍz ð·íR!À+Éͨ õÍz ðÍ<!Ð+Éͨ õÍz ðÍ<!ÈØ+Éͨ ôÍz ïÍ<!ÈØ#Éͨ ôÍz ïÍ<!Ø+Éͨ õÍz ðT]KBë!z·> S>)ë)ë0 = öÉ|ªõÍJëÍJëDM¯go>íjíB0 7?ËË= ðëñðHåÍ\Ë<ËÑëÍÞëËzÈ5Í+È)ýÉÍ+ÈË<ËúÉëz· {þ0G·É¯goÉë|ª|úHºÀ}»ÉÉË|È|/g}/o#É}æo&ÉíKÓí[ÑÅÕxAJSËËËËáëáíJDM!éb"Ñë!6íJ"ÓDMÉ'ͬèͬdͬ ͬ} ¯<íR0û= ÈÆ0ÝwÝ#ÉÝ~Ö$O! Ý#Ý~Í„Ö08)þ 8 !Öþ 8þ0T])Ø)Ø T]Ø)Ø_ØËy·È|‡ÉÝááå}&#9N�8wë!DíB9ùëåí°ëá+Oí¸ë#ùÝé>ÃwÝáͦWáͧ _áå}“8(º8J`9{‚T]=o`9yí¸ë ¯ÃwÍÖ Ð>ÃuÍJ õÍuÍ` íÙ}·Ù>(è; àÙËxÙÂQ Ù}·ÙÈÙÅÕåÙ}· Ù˸TÅËø¯ÙËø}Ù•(0íD=ÙÍC ,= ù(Ùñæ€ Í[ 0%ÍD ·, 7 Í� ?õ(8ÙÍu Ëx ÍO - öÍ; ñ8˸·ÙáÑÁÙÉÙËxÙÂÝ ÍX ÍÝ Ø,-Èxî€GÉÙ}·ÙÊ; }·ÈÙ…ÙÍ ÅÕåÝ9Í; Ù.Ù>Ý#ÝnË0Í[ ÍD = ñÙ-Ù åÝnûËx ÍP ,-(-ñññ·ñÙÁáÙÝá˸°G,-Ì; É}·ÈÙ•Ù?Í åååÝ9Ù.Ù>Í� 8Íu ?Ë= ÝuÝ+Ù-Ù(>ÍO 0ßÍu ·áÍO 8Í� ?áÑÁËx ÍP š, —7•8Æ€8Æ€8oÝãÙåÅxËøÙ¨æ€õËøÝåÝ!ÉáØ¯oGOW_gÉ·ËËËËËÉ·ËËËËËÉ|Ù„Ùg{Ù‹Ù_zÙŠÙWyÙ‰ÙOxÙˆÙGÉ|Ù”Ùg{Ù›Ù_zÙšÙWyÙ™ÙOxÙ˜ÙGÉxÙ¸ÙÀyÙ¹ÙÀzÙºÙÀ{Ù»ÙÀ|Ù¼ÙÉÙxÙ¨ò² xÉËx(ͼ È?É}Ù½ÙÀ·ÈÃ� }Ö�Ú; <þ(ÐÙÅÕåÍ; 7ÍD = ùÙ|Ù¤Ùg{Ù£Ù_zÙ¢ÙWyÙ¡ÙOxÙ ÙGÃD ÙÅÕåÙÍuÙÍÆ ÙÍJ ë}·ÈËx>ÂuÍu}Æ€Ë/Æ€oÖõÙÅÕå; ÍÖ -ÅÕåÍJ }áÑÁÙáÑÁã¼ã0ãñÙÉÙÍW-ÍJ ÙÍW,Ù}þlØÅ˸ͨ Á8 ; Íý Í` Ëx(ÍÖ Ù-Ùͨ õ8ÍJ Ù-Ùͨ 8Ù,ÍJ }þl8;Ùª*ªª!ªÍ` ÝåÝ!Ð >ÍýÝáÍuÍ` Í` ÅÕåÙÍu--Ù-ÍÖ ÙáÑÁÙÍJ ,,ñ,-ÈØxî€GÉgª?+2×n¶*ï8t Ð Ðzˆˆˆˆ~«ªªªª,->ÊuËxÂuÙÍaÙ}.�•õ; ÙÍOÙÍJ ÅÕåÙ,ÍÖ ÙáÑÁ; ÝåÝ!U >ÍýÝá,ÙÍk-ÙÍÖ ñÅÕåo&0%ÍÑÙ,Í` ÙáÑÁÍÖ }þgÚ; É}Š�؉}颋.:}Žã8Žc~I’$I~ÍÌÌÌL«ªªª*ÙÍkÙ·Ëxõ˸; }þˆ0GÅÕå,Í™åË<Ë}áõÍÑ,-(-ÙñáÑÁõÍJ ÝåÝ!Ù >ÍÝáñ0 õÙÍaÙÍ` ñ…o8 ñÈÙÍOþ á>Ãum.`1pF,þåt6|‰„!wS<ÿÃ.zÒ}[•|%¸FXc~üïýu€Ò÷r1}·ÈÝåÙÍOÙ¯Ëx(<˸õͨ 8Ù; ñËÿõÙÏŽé!~JÙͨ 0Í÷OÝ!—>ÙÝÍ<Ùͨ 8 = ìÙ ÝÙÙÍ7ËøÍÖ ÅÕåÍ<Í` ÙÍOÍÖ ÙáÑÁ; ÝåÍ÷ÝáÙÍ7ÍÖ ñ0 õÙÍW-ÍJ ñÝáËOÈËøÉçÏÌTöô¢0 jÁ‘ €µžŠoD€‚,:Í€jÁ‘ �€!¢ÚI}袋.º}Žã8Žc~I’$I’~ÍÌÌÌL«ªªªªÝ!Ó>ÅÕåõÍuÍ` ñÍÙáÑÁÃ` õÙÍ7õÙÅÕåÍ7ÍÖ ÙáÑÁÙÍ` ñ= éÙÍOÃÖ ÝÝnÝfÝ^ÝVÝNÝFÉ!�DLT\ÉI¢Ú!‚!É53ó!�úÉr1÷!€ÒÉÅÕåÙáÑÁÉÍ\!€> Ëx Ë#ËËË-= ðo˸ÉËxÙÍO(Ëø-ÍÖ ·Ë}(ËxËø>�½8(ÍC ,óÍC `iÈÃM!É>’Ãu|µÊ; Ë|ÍJ>�Ë| )=Ë|(úDMboÀ˸Éͦë8þ8ͦÙËxÙ(’0¯þ 8> ÕÍMÑËx(>-ͲË{(aËy(Ͱͦ ò\z·(>.Ͳ (Ͱ ÷ú~ͦ÷Ë{È>EͲ>+Ë|(|íDg>-Ͳ|/Ö 0ûÆ:ÝpÝ# ý~ý#· ý+>0ÝwÝ#Éýå,-  ý60ý#ø¯ÃJÅ˸}ÙÖ€oŸgMÍÄ|þÙ <ýwíDÍ }þ�0Í€ý5Ëø>„•.(ÍC Ë= øý~õ> xæÆ0ýwý#xæGÅÕåË%ÍP Ë%ÍP ëãÑãíZëáãíJDMáË%ÍP = ÈñÁýáÉýåá_~6þ5Øúi+~¨¥Ôh¶¿ÉìÅëx-ÐÍÎÂSÞùx9?ë+¨­ÅøÉ{Η@}·ÈËøÅÕ|ÍC ÍC „gãíZëáãíJDMá0ÍD ,7È}Æo˸ÉÍ ¾ #øyîO!@9ùi&ÝéÍ  ë¶¾ â#÷ÚÍ ¶w#ùëùÝéÍ /¦w#øïÍ ¦w#ùãýáÝá!9ë! E9ýéÝá!!9~·(¯+FÍŠ¦!"9ù!(#Ýé>¯2æýá*ÛͲ¯á"âýå|·>"Ê :æ·( ͆ *â6#wÉÍ÷*â6#6 ë!\$í°É!¶Ååí[Ûþ (úÍ„–( áÁã·É#ëÁÁþ:À~ÉCONTRMKBDLSTAUXUSR>¯2æÍîÍ$*â#~þ ͶÍ$*â:æ·> >w###6ÀÃÖþ þ #6++pÉ>¯2æíSäÍ-Í$Ͷ:Ù·À*â6###ww#w$w#wÖÿ:æ· åÍôá##N#F*ä·íBÈ>�à å¯w#w#í[äs#ráÃó>¯2æÍSÍ$ͶÍ$*â6å ë#Íá-¯Nw#FwÖÿq#p#6€#w#w#wÉÍß*â ë:æ·( ÕÍÑñÅÍÁ<Àxà *â6#ûÉ"â#~+þ 2ËN(>Í’:Ù· *âË^ îËFÈ*âå ëÍá< >ÿ2Ù6É"â~æÈÍŸ*â-¯w#wÕÿw#ÍóÍŸÀ"â~æÈ·ÍÀ ëÍ<À@ýá*ÛͲ¯áýåÍÀåÍ÷áåë!\ í°á åëÍÑ<Ê®!\$í°É>à >¯2æÍÀ*ß|µ>! ë*â \$í°\Í<(Ï!ý€í°:æ· í[1Ã�ÿÕÍ\ÍÑ!€ë·(éf"âÍÂÈ> 2ÙÉ:Ù·ÈñÉÝáÝåå!ÊÍ<áÉÝáÝå"âËF( #~þÀ#6Ãe>Îå!ÊÍ[áÉ"âËNÀ>ë!Ú~þ€8>O6*Û"ÝÍwþ (=þ(&þ("þ(þ :á·(ßÃNþ 8Øyº(Ô~#ÍèÌúx+Í% (½ï6Éå*â#~þáÉÍÂÈÍ[þÈÅÕå*â#~· *Ý~þ(h#"Ýb= Íõþ 8Íèþ ÌáñJ= ÍB== ͯ}8= ͵}/Í­ !*â###å~Æ-_~áþ(4òQ6*âËÖ>™2Ù>*â##wáÑÁÉ:Ù·>Àå*â##~áÉå*â#~þÿ(EÍÌÍ[þ ( þ (þ (þ ÍÖè!]Í[þ (þ (þ (þ(w#(ÍÖãÍÂÌÖ6áÉÝ!]Ý~·Èþ-ÀÝ#É8Ý~·È>7à ëÍ Í[ÃÖÍÖÉ>¯OÅÍkÁͼÈÅåÍÁÑÁÍÎØÌMës #rëÉÍkͼÈÅåÍpÙáÁÍÎØÙÌX ÙáåÍÌÍ[þ ÍÖôÍ[þ (þ( #w(ÍÖêÍÂÌÖáqÉ*â#~þÊáÍ[þ (þÈÍÖñÍ ÍÖþ ÀÃÖ*â##~þÈ6ÉÅÕåÍœáÑÁÉOÍ$*â#~þ(08áÅå·Ê¦=ʦ==Ê©=ʬò+ËÞ###å~Æ-_qá4ð6Í¡È>ðà *æ:è¾È4^qÉ}Ã’ÁÑÅÝ*ÛË|(ÍMëëË|( ÍMÝ6-Ý#ÕÍ�áͦí[ÛÝåá·íRë“8 (G> Í’ùCÈ~Í’#÷ÁÑÙáÑÁÙÅÝ*ÛÕÍôÇÁÑÅͦËC!h Ç!lÀTRUEFALSEͦ!9^#Í(ÑùÕÉá~#·(G~Í’#ùé> Í’> Ã’ "âËF!ÈÍ[¸(þÀ#ÉåÍRë·íRá0Íô*â4À#4É>™Ã åÍR·íR *â4 #4(áÍóÒ>òÜ>¯2çÍ$ë*âËV(/Ë–:ç·(#~+· x· y·ú2ÅÕ!͵ÑÁ( =(þ X:ç·(R*â:ç·(ËÞ###~Æ-Õ_ÑÖ-ÍŒí âX<òN=<ÍŒ*â###æw ÅÕåÍŸáÑÁ Õ*Ñ4 #4x±ÂüëÉ>™>ðà õ:ç·(ëñÉ"âÍŸÈè"*âËÖË^ÈËž*âËVÈË–åÅ0ëÍÁá ëÍ·ÉÁÑíSâÅåÍRÑ·íR8A*â N#F#s#rÍ$ 0}æ)ëíjëS\*â###w* N#Fë·íB ÈÕåÍŸÑár+sÉ>‘à ÕÙáÙ!T]>)ëíjëÙ)Ù0 0= ïÉÍU·íR!À#ÉÍUëÉ*â^#V#ÕN#F#^#VáÉ>">!2çDMÝáÑáÝå"â~æÊóx±(LÅÕÍ*â ë:çOÍÑÁ·(o:çþ" C}=(þ ?ÅÕ*â-N#Fp+qÛÿq#pÑÁ!€ë °*â F+N+++V+^ë·íBÐëq#pÉ>™>ð>à ÁÑíSâÅåÍRÑ·íRÚ*â s#r$ s#rÉ"äíSæëá"â! N#Fë·íB(^x± *â 6#ûí[âÍ<(H*â! íKäq#p##ëíKæÅÕÍí[â!Í· *â! 4 #4Ñ!€ëÁ x± Õ*â$ éÝ*â>ðÃw"òëáã"ô{æü_!í"ëÝ*íÝnÝf}´(HíR0ÝnÝfåÝ"ëÝáã Ý^ÝVÝåMDÝnÝfÝåÝÝuÝtÝqÝpÝåÑ*ës#rÑ*ôs#rÉÝåá"Í*ò ÝåÁ Ú5íKÏíB!Úð>ÿÃuëáã~#fo{æü_ë"ò*íåÝá·íR0RÝnÝfå·íR0ÝáðáÕýáíKòýqýpýuýtÝsÝrÝåáÝNÝFÍÄ( Ý^ÝVÕÝáÝåáÝNÝFÝ^ÝV*ííSíÕÝáÝuÝtíKòÝqÝpë ·íRÀÕýá*Í·íR(ý~Ýwý~Ýwýnýf ÝuÝt¯ÉÝåá"Í6#ûÉÍ *öÉÍ *øÉ!"ö"øÝ*íÝNÝFy°(*ö "ö*ø·íB0íCøÝnÝfåÝáØ*Ïûÿ í[Í·íRØë*ö"ö*ø·íRÐíSøÉí[Ís#rÉ^#VíSÍÉ>¯O"æ¯w2Ùx2è!ê"âá"äá ÍöÍ@*äé>¯2ê"æ!ê"âá"äá"è!\Ͳ¯*è:ê· ÍîÍ!Ù~6·go(Ýåá\íRë*æs#r¯ÿí_2ÔÉëÝáÁáx±( s x±(T]í°ÝéDMÝáÑá·íR0ð ë ëí¸ÝéÑÁÕ-a%ÃÆ}Í„oÉ*é!Ù~6o&ÉÍ |µÈÍ£}þÀÝáÍ%^C User break1:Ù·ÈÝáõÍ% I/OÝáÍ% Run-timeÍ% error Í’Í%, PC=Ýåáí[Õ·íR"×Í�Í% Program aborted*ßé1!€ »Í�!1 ;ͲÃb/ÍRÍ�!dFORMAT (c) Charles Perry, 1986.Í�ÍbÉÍRÍ�ÍbÍRÍ�dFORMAT formats dBASE Í�CMDÍ� files. It lines upÍ�ÍbÍRÍ�-DO, IF, and CASE loops correctly, making the Í�CMDÍ�ÍbÍRÍ�0file easier to read and debug. The Tab Size isÍ�ÍbÍRÍ�currently set to *&å!ÍöÍ� spaces;you can change this toÍ�ÍbÍRÍ�0your own preferred value by pressing .Í�ÍbÍRÍ�0Filenames can be entered in the command line, egÍ�ÍbÍRÍ�A>DFORMAT FILENAME.Í�CMDÍ� Send feedback,or $10 forÍ�ÍbÍRÍ�0Turbo Pascal program listing to: Charles Perry,Í�ÍbÍRÍ�07 Bowaga St,Indooroopilly, Brisbane, Queensland,Í�ÍbÍRÍ�Australia, 4068.Í�ÍbÍRÍ�ÍbÉ!Aå!åÁÍo&Ñ}2´<*´<&É!å!/ÑÍ5z³ÊÒ"Õ"®<ÍR!-ÍòÍb*®<#Ñô"ÍRÍ�ÍbÉýáá"¬<ýå*¬<Í Ímå!ÑÍ›ËEÊ9#!å*¬<Í ÍmÑÍ5z³Ê9#Õ"¨<*¬<å*¨<Ñå*¬<å*¨<Ñn&Í(ëás*¨<#Ñà #Éýáá"¦<ýå*¦<Í Ímå!ÑÍ›ËEÊä#!"¢<*¦<Í Ím" <*¦<å*¢<Ñn&å! ÑÍNËEÊ’#*¢<å!Ñ"¢<Ãj#*¦<å* <Ñn&å! ÑÍNËEʽ#* <å!Ñë·íR" <Ã’#*¦<Í *¢<å* <å*¢<Ñë·íRå!ÑÍ5þ*¦<ͲÉÍRÍ�ÍbÍRÍ� Exit dFORMATÍ�ÍbÍRÍ�ÍbÍÅÉýáá"œ<ýåÍ*œ<Ͳ!¾Í8!™<ÍÛÍb*™<&!^·íR·íBÒŒ$*œ<Í Ímå!ÑͯËEʉ$*™<&ÍRÍòÍb*œ<Í *™<&e.åÍ*œ<ͲÃ(% ·íRÊ«$·íRÊ«$·íRÂð$*œ<Í Ímå!ÑÍ›ËEÊí$ÍR!Íò! Íò!ÍòÍb*œ<å*œ<Í Ímå!ͽÃ(%·íRÂ%ÍRÍ�^CÍ�ÍbÍå#Ã(%·íRÂ(%!e.å*œ<Ͳ*™<&åÍQ! Ía!ÍaÍËEÊ($ÉÍ5"•<*•<å!ÑÍaËEÊù%ÍRÍ�ÍbÍ©"ÍRÍ�** Íb*•<ð·íRÂ�%ÍRÍ� Disk is fullÍ�ÍbÃÛ%ñ·íRÂÅ%ÍRÍ�Directory fullÍ�ÍbÃÛ%ÍRÍ� File bad?Í�ÍbÍ©"!k=ÍSÍ5"•!†<Í !å!.e.å!†<Í Í|å!Ñë·íRÍ5!£>Ͳ!†<Í !.e.å!†<Í Í|å!Ñå!Í5!¬>Ͳ*¢>&å!:e.åÍl Í!£>Í Í!.e.åÍ!¬>Í Í!¿>ͲÉ!k=ÍU"| !¨aå!€ÑÍÞ"z É*| å*z Ñ͇ËEÊX'*| "~å*~<ÍkÍb*~<å!€ÑÍÄ"x !"v É*v å*x ÑÍ›ËEÊÃ'*| å!ÑÍNËEÊÀ'!}2}<Ãæ'ÃÃ'Í9'!Î>å*v +Ñn&å!Ñ|¢g}£o}2}<*v #"v *}<&Éýáþ!{;Ͳýå!{;Í Ímå!ÑÍ›å!{;å!{;Í ÍmÑn&å!;ÑÍNÑ}£o}2z<*z<&ÉÃ6(ÍR! ÍòÍ!2Íq! ÍòÍ�'Enter your preferred Tab Size (0-9) [ ]!Íò!ÍòÍb!¾Í8!v;ÍÛÍb*v;&å!ÑÍNËEÊ­(Íå#*v;&åÍQ!0å!9ÍkÍËEʉ(*v;&å!0Ñë·íR}2*v;&ÍRÍòÍ�ÍbÍRÍ�Íb!F;åÍ DFORMAT.COMÍ=!F;ÍzÍ5å!ÑÍaËEÊH)ÍRÍ�**Not found: DFORMAT.COMÍ�ÍbÈ)!F;å!å*5(&ÍgÍb!F;ÍSÍbÍRÍ�Installation successfulÍ�ÍbÍå#Éýá!5;Ͳá"D;ýå*D;å!ÑÍaËEÊE*ÍR*D;ÍJå!Íö! ÍòÍb*D;å!ÑÍ›ËEÊé)ÍRÍ�missingÍbÃø)ÍRÍ�extraÍbÍR! Íò!5;Í !ÍqÍb*D;ÍJå!ÑÍ›ËEÊ/*ÍR!sÍòÍbÍRÍ� detectedÍ�ÍbÉ*&å*¹<ÑÍÄå*¡>&Ñ"/;ÍRÍ*/;Íq!¡=Í !ÍqÍ�Íb!»<Í[Í*/;Íq!¡=Í !ÍqÍ�ÍF%Éä*!"�=!"›=!"Ÿ=!}2¡>!"¹&å!:e.åÍl Í!£>Í ÍÍ.$$$ÍÍ<Íb!»<ÍÎÍF%Íc*£*&ËEÊ‘.Íþ!¡=ͲÍ“'}2,;*,;&å! ÑÍtËEÊL+!¡=Í *,;&e.åÍþ!¡=ͲË+*,;&å!ÑÍNËEÊ‹+!}2£*!¡=åÍ:#!¡=Í Ímå!ÑÍ›ËEʈ+Ã�+Ë+Ñ.*,;&å! ÑÍNËEÊ+!¡=åÍ:#!¡=Í !å! Í5 !";Ͳ!";åÍÜ"!";Í !å!Í5ÍDOÍ\ËEÊ.,ÍWHIL!";Í Í|å!ÑÍtËEÊ,!}2 >ÍCASE!";Í Í|å!ÑÍtËEÊ+,!}2 >Ã!-!";Í !å!Í5ÍENDDÍ\ËEÊX,!}2 >Ã!-!";Í !å!Í5ÍENDIÍ\ËEÊ‚,!}2 >Ã!-!";Í !å!Í5ÍENDCÍ\ËEʬ,!}2 >Ã!-!";Í !å!Í5ÍELSEÍ\ËEÊÖ,!}2 >Ã!-!";Í !å!Í5ÍIFÍ\ËEÊþ,!}2 >Ã!-!¡=Í ÍÍ\ËEÊ-!}2 >Ã!-!}2 >* >&·íRÂM-ÍF**¹<å!Ñ"¹<*›=å!Ñ"›=Ã�.·íRÂu-ÍF**¹<å!Ñ"¹<*�=å!Ñ"�=Ã�.·íRÂ�-ÍF**¹<å!Ñ"¹<*Ÿ=å!Ñ"Ÿ=Ã�.·íRÂÈ-*¹<å!Ñë·íR"¹<ÍF**¹<å!Ñ"¹<Ã�.·íRÂö-*¹<å!Ñë·íR"¹<ÍF**›=å!Ñë·íR"›=Ã�.·íRÂ$.*¹<å!Ñë·íR"¹<ÍF**�=å!Ñë·íR"�=Ã�.·íRÂR.*¹<å!Ñë·íR"¹<ÍF**Ÿ=å!Ñë·íR"Ÿ=Ã�.·íRÂt.*¹<" ;!"¹<ÍF** ;"¹<Ã�.·íRÂ�.ÍF*!¡=Í Íì'}2¡>Ã+ÍRÍ�ÍbÍ©"*›=ÍJå*�=ÍJÑå*Ÿ=ÍJÑå!ÑÍNËEÊõ.!¿>Í ÍR!ÍqÍ� formatted successfullyÍ�ÍbÃ'/*›=åÍENDDOÍŒ)*�=åÍENDIFÍŒ)*Ÿ=åÍENDCASEÍŒ)Í©"ÍRÍ�Íb!»<ÍîÍF%!k=ÍSÍbÍF%!k=Í\Íb!»<å!¿>Í ÍnÍbÉÍç!€åÍ:#!€Í ÍÍ\ËEÊ�/Í !ËEÊý0!€Í ÍÍoËEʬ/!€Í !°>ͲÃí/ÍR! ÍòÍ�Enter name of Í�CMDÍ� file to format: Íb!°>åÍ$!°>åÍÜ"!°>Í Íú%!£>Í !e.åÍ\ËEÊ0Í2(Ãú0!£>Í ÍÍ\ËEÊ60ÍRÍ�ÍbÃú0ÍRÍ�Íb!k=å!¿>Í Í=!k=ÍzÍ5å!ÑÍaËEʲ0ÍRÍ�File !¿>Í !ÍqÍ� not foundÍ�Íb!€Í ÍͪËEʦ0Íå#ï0ÍRÍ�ÍbÃú0!€Í ÍÍ\ËEÊÍ0ÍRÍ�ÍbÍRÍ� Formatting !¿>Í !ÍqÍbÍ!'Í9'Í *ÍÅÃ�/ÃÅ.op .he dFORMAT.DOC .ig dFORMAT_Overview dFORMAT is a program for formatting dBASE CMD files. It aligns DO, IF and CASE loops, 'tidying up' the CMD file, making the CMD file easier to read and debug. It will also detect unclosed loops, which can be useful during program development. It can be especially useful for those writing dBASE programs on Osbornes with 52 column screens, as it allows them to expand and compress the code. It allows you to set the size of the character to suit the individual programmer. Common values are 3, 4 or 5. Iô  wilì  alsï expand¬  tï á largå extent¬  fileó squasheä  witè  DBSQUASH® � However¬  iæ  yoõ  arå squashinç dBASÅ files¬  yoõ maù finä  thå  companioî � prograí  dDSTRIÐ useful®  Itó squasheä fileó caî bå totallù unsquasheä witè � this program. Using_dFORMAT dFORMAT is extremely simple to use. The only precaution you need take is to ensure there is some free space on the diskette.  This is because dFORMAT writes some temporary files to disk. If you are processing a 10K file, you will need 10K of space, etc. You will probably have this space available if you are writing programs. When you enter a filename, the extension CMD can be omitted. Hardware dFORMAT will work on all versions of the Osborne 1, single and double density, 52 and 104 column screens. It has not been tested on the Executive. As dFORMAT is written in Turbo Pascal, it uses Z80 opcodes, which sometimes react unfavourably with the BIOS of the Executive. If there are such problems, I am told a patch called TPATCH, available from the Osborne library, may help. Acknowledgements The algorithm was obtained from the book, 'Advanced dBASE II Advanced User Guide', by Adam Green, published by Prentice-Hall. Thank you. Thanks also to Bill Wardell, Dave Moore of Cerenkov Modula, and Borland International for Turbo Pascal. Recommended. Contributed by: Charles Perry, University of Queensland Osborne User Group, Brisbane, Australia. Jan 1986. ooooOOoooo .pa Š.he an be omitted. Hardware dFORMAT will work on all versions of the Osborne 1, single and double density, 52 and 104 column screens. It has not been tested on the Executive. As dFORMAT is written in Turbo Pascal, it uses Z80 opcodes, which sometimes react unfavourably with the BIOS of the Executive. If there are such problems, I am told a patch called TPATCH, available from the Osborne library, may help. Acknowledgements The algorithm was obtained from the book, 'Advanced dBASE II Advanced User Guide', by Adam Green, published by Prentice-Hall. Thank you. Thanks also to Bill Wardell, Dave Moore of Cerenkov Modula, and Borland International for Turbo Pascal. Recommended. Contributed by: Charles Perry, UÃÉÍ«Copyright (C) 1984 BORLAND Inc‚A Osborne 1al selectedP)(= ERT()~·7È#õå~Íáñ=ÈóÍ% ÉÅÕåÝåýåõo&åͦñýáÝááÑÁÉoåͦÉþ€Ü�Ô©æîÅÕåÝåýåÍ£}Ùå!å!"8áãõÅÕ~#·(åÍáôÑÁñãÉ}´È:$‡‡‡ããããÅÒÁ= ô+èÍÐØ*ÎßõÅÕå!¨ÍZ!¢ÍÐ*ºÔBáÑÁñÉõÅÕå!´éõÅÕå!®àõ:¼·(ÅÕå=2¼!ÈÍZáÑÁñÉõ:¼· ÷ÅÕå<2¼!ÂåõÅÕå!¼ÛõÅÕååð!‹í°Ñ:žO:œ‚ÕÍÑ:ŸO:�ƒÍ!ðÍÐ* ÍBáÑÁñÉ!ð ë!›45(É!.+/ –0ü†õyþ0(ñíÉ d!kÃZ!{ÃZ͈æ͈o&Éô  áÁå:á·(yþ ÕÅÍ |µ(Íþ ÍþÊÅÁÑ*é"ÛÕx2áy·( >Ã28!?"9!É í°!á¸í°áí°>2گà Ã:ÃDÃ]ÃSÃXÃNÃ]ÃDÿ í[Ûþ (ú!eÍ}Í„þA8þQ0Gþ: xÖ@¯!\w# ( þ  ÍyÍVþ. ÍV!h6#ûÉ (þ*(þ.(þ!8þ}(þ*(Í„w#ßÉ>?> w#üÉþaØþ{ÐÖ É|Í’}õÍ›ñæÆ�'Î@'Ãè¯7Ë|À|·}È>ÿÉ"ÍíCß"í6#ûëÑùü "Ïë"ÕÍ�Í©éå*Ï·íB"Ïí[Í·íRëáÚ5í°É*Ïí°"ÏÙÉ^#V#Õ^#V#N#FáÉÝáëO/o&ÿ9ùëí°ÝéÑO/o&ÿ9ùëí°éÝáë!àÿ9ùëÅ(¯üí°Á> �‘(G¯üÝéÝá!àÿ9ù ¯w#üÝéÝáEÍŠ¶wÝéÝáÑ}“8÷�Ãu·íR·íB0 É>‘î·íRëê@ðøÉÕë·íRëáë·íR!È+Éͨ õÍz ð·íR!À+Éͨ õÍz ðÍ<!Ð+Éͨ õÍz ðÍ<!ÈØ+Éͨ ôÍz ïÍ<!ÈØ#Éͨ ôÍz ïÍ<!Ø+Éͨ õÍz ðT]KBë!z·> S>)ë)ë0 = öÉ|ªõÍJëÍJëDM¯go>íjíB0 7?ËË= ðëñðHåÍ\Ë<ËÑëÍÞëËzÈ5Í+È)ýÉÍ+ÈË<ËúÉëz· {þ0G·É¯goÉë|ª|úHºÀ}»ÉÉË|È|/g}/o#É}æo&ÉíKÓí[ÑÅÕxAJSËËËËáëáíJDM!éb"Ñë!6íJ"ÓDMÉ'ͬèͬdͬ ͬ} ¯<íR0û= ÈÆ0ÝwÝ#ÉÝ~Ö$O! Ý#Ý~Í„Ö08)þ 8 !Öþ 8þ0T])Ø)Ø T]Ø)Ø_ØËy·È|‡ÉÝááå}&#9N�8wë!DíB9ùëåí°ëá+Oí¸ë#ùÝé>ÃwÝáͦWáͧ _áå}“8(º8J`9{‚T]=o`9yí¸ë ¯ÃwÍÖ Ð>ÃuÍJ õÍuÍ` íÙ}·Ù>(è; àÙËxÙÂQ Ù}·ÙÈÙÅÕåÙ}· Ù˸TÅËø¯ÙËø}Ù•(0íD=ÙÍC ,= ù(Ùñæ€ Í[ 0%ÍD ·, 7 Í� ?õ(8ÙÍu Ëx ÍO - öÍ; ñ8˸·ÙáÑÁÙÉÙËxÙÂÝ ÍX ÍÝ Ø,-Èxî€GÉÙ}·ÙÊ; }·ÈÙ…ÙÍ ÅÕåÝ9Í; Ù.Ù>Ý#ÝnË0Í[ ÍD = ñÙ-Ù åÝnûËx ÍP ,-(-ñññ·ñÙÁáÙÝá˸°G,-Ì; É}·ÈÙ•Ù?Í åååÝ9Ù.Ù>Í� 8Íu ?Ë= ÝuÝ+Ù-Ù(>ÍO 0ßÍu ·áÍO 8Í� ?áÑÁËx ÍP š, —7•8Æ€8Æ€8oÝãÙåÅxËøÙ¨æ€õËøÝåÝ!ÉáØ¯oGOW_gÉ·ËËËËËÉ·ËËËËËÉ|Ù„Ùg{Ù‹Ù_zÙŠÙWyÙ‰ÙOxÙˆÙGÉ|Ù”Ùg{Ù›Ù_zÙšÙWyÙ™ÙOxÙ˜ÙGÉxÙ¸ÙÀyÙ¹ÙÀzÙºÙÀ{Ù»ÙÀ|Ù¼ÙÉÙxÙ¨ò² xÉËx(ͼ È?É}Ù½ÙÀ·ÈÃ� }Ö�Ú; <þ(ÐÙÅÕåÍ; 7ÍD = ùÙ|Ù¤Ùg{Ù£Ù_zÙ¢ÙWyÙ¡ÙOxÙ ÙGÃD ÙÅÕåÙÍuÙÍÆ ÙÍJ ë}·ÈËx>ÂuÍu}Æ€Ë/Æ€oÖõÙÅÕå; ÍÖ -ÅÕåÍJ }áÑÁÙáÑÁã¼ã0ãñÙÉÙÍW-ÍJ ÙÍW,Ù}þlØÅ˸ͨ Á8 ; Íý Í` Ëx(ÍÖ Ù-Ùͨ õ8ÍJ Ù-Ùͨ 8Ù,ÍJ }þl8;Ùª*ªª!ªÍ` ÝåÝ!Ð >ÍýÝáÍuÍ` Í` ÅÕåÙÍu--Ù-ÍÖ ÙáÑÁÙÍJ ,,ñ,-ÈØxî€GÉgª?+2×n¶*ï8t Ð Ðzˆˆˆˆ~«ªªªª,->ÊuËxÂuÙÍaÙ}.�•õ; ÙÍOÙÍJ ÅÕåÙ,ÍÖ ÙáÑÁ; ÝåÝ!U >ÍýÝá,ÙÍk-ÙÍÖ ñÅÕåo&0%ÍÑÙ,Í` ÙáÑÁÍÖ }þgÚ; É}Š�؉}颋.:}Žã8Žc~I’$I~ÍÌÌÌL«ªªª*ÙÍkÙ·Ëxõ˸; }þˆ0GÅÕå,Í™åË<Ë}áõÍÑ,-(-ÙñáÑÁõÍJ ÝåÝ!Ù >ÍÝáñ0 õÙÍaÙÍ` ñ…o8 ñÈÙÍOþ á>Ãum.`1pF,þåt6|‰„!wS<ÿÃ.zÒ}[•|%¸FXc~üïýu€Ò÷r1}·ÈÝåÙÍOÙ¯Ëx(<˸õͨ 8Ù; ñËÿõÙÏŽé!~JÙͨ 0Í÷OÝ!—>ÙÝÍ<Ùͨ 8 = ìÙ ÝÙÙÍ7ËøÍÖ ÅÕåÍ<Í` ÙÍOÍÖ ÙáÑÁ; ÝåÍ÷ÝáÙÍ7ÍÖ ñ0 õÙÍW-ÍJ ñÝáËOÈËøÉçÏÌTöô¢0 jÁ‘ €µžŠoD€‚,:Í€jÁ‘ �€!¢ÚI}袋.º}Žã8Žc~I’$I’~ÍÌÌÌL«ªªªªÝ!Ó>ÅÕåõÍuÍ` ñÍÙáÑÁÃ` õÙÍ7õÙÅÕåÍ7ÍÖ ÙáÑÁÙÍ` ñ= éÙÍOÃÖ ÝÝnÝfÝ^ÝVÝNÝFÉ!�DLT\ÉI¢Ú!‚!É53ó!�úÉr1÷!€ÒÉÅÕåÙáÑÁÉÍ\!€> Ëx Ë#ËËË-= ðo˸ÉËxÙÍO(Ëø-ÍÖ ·Ë}(ËxËø>�½8(ÍC ,óÍC `iÈÃM!É>’Ãu|µÊ; Ë|ÍJ>�Ë| )=Ë|(úDMboÀ˸Éͦë8þ8ͦÙËxÙ(’0¯þ 8> ÕÍMÑËx(>-ͲË{(aËy(Ͱͦ ò\z·(>.Ͳ (Ͱ ÷ú~ͦ÷Ë{È>EͲ>+Ë|(|íDg>-Ͳ|/Ö 0ûÆ:ÝpÝ# ý~ý#· ý+>0ÝwÝ#Éýå,-  ý60ý#ø¯ÃJÅ˸}ÙÖ€oŸgMÍÄ|þÙ <ýwíDÍ }þ�0Í€ý5Ëø>„•.(ÍC Ë= øý~õ> xæÆ0ýwý#xæGÅÕåË%ÍP Ë%ÍP ëãÑãíZëáãíJDMáË%ÍP = ÈñÁýáÉýåá_~6þ5Øúi+~¨¥Ôh¶¿ÉìÅëx-ÐÍÎÂSÞùx9?ë+¨­ÅøÉ{Η@}·ÈËøÅÕ|ÍC ÍC „gãíZëáãíJDMá0ÍD ,7È}Æo˸ÉÍ ¾ #øyîO!@9ùi&ÝéÍ  ë¶¾ â#÷ÚÍ ¶w#ùëùÝéÍ /¦w#øïÍ ¦w#ùãýáÝá!9ë! E9ýéÝá!!9~·(¯+FÍŠ¦!"9ù!(#Ýé>¯2æýá*ÛͲ¯á"âýå|·>"Ê :æ·( ͆ *â6#wÉÍ÷*â6#6 ë!\$í°É!¶Ååí[Ûþ (úÍ„–( áÁã·É#ëÁÁþ:À~ÉCONTRMKBDLSTAUXUSR>¯2æÍîÍ$*â#~þ ͶÍ$*â:æ·> >w###6ÀÃÖþ þ #6++pÉ>¯2æíSäÍ-Í$Ͷ:Ù·À*â6###ww#w$w#wÖÿ:æ· åÍôá##N#F*ä·íBÈ>�à å¯w#w#í[äs#ráÃó>¯2æÍSÍ$ͶÍ$*â6å ë#Íá-¯Nw#FwÖÿq#p#6€#w#w#wÉÍß*â ë:æ·( ÕÍÑñÅÍÁ<Àxà *â6#ûÉ"â#~+þ 2ËN(>Í’:Ù· *âË^ îËFÈ*âå ëÍá< >ÿ2Ù6É"â~æÈÍŸ*â-¯w#wÕÿw#ÍóÍŸÀ"â~æÈ·ÍÀ ëÍ<À@ýá*ÛͲ¯áýåÍÀåÍ÷áåë!\ í°á åëÍÑ<Ê®!\$í°É>à >¯2æÍÀ*ß|µ>! ë*â \$í°\Í<(Ï!ý€í°:æ· í[1Ã�ÿÕÍ\ÍÑ!€ë·(éf"âÍÂÈ> 2ÙÉ:Ù·ÈñÉÝáÝåå!ÊÍ<áÉÝáÝå"âËF( #~þÀ#6Ãe>Îå!ÊÍ[áÉ"âËNÀ>ë!Ú~þ€8>O6*Û"ÝÍwþ (=þ(&þ("þ(þ :á·(ßÃNþ 8Øyº(Ô~#ÍèÌúx+Í% (½ï6Éå*â#~þáÉÍÂÈÍ[þÈÅÕå*â#~· *Ý~þ(h#"Ýb= Íõþ 8Íèþ ÌáñJ= ÍB== ͯ}8= ͵}/Í­ !*â###å~Æ-_~áþ(4òQ6*âËÖ>™2Ù>*â##wáÑÁÉ:Ù·>Àå*â##~áÉå*â#~þÿ(EÍÌÍ[þ ( þ (þ (þ ÍÖè!]Í[þ (þ (þ (þ(w#(ÍÖãÍÂÌÖ6áÉÝ!]Ý~·Èþ-ÀÝ#É8Ý~·È>7à ëÍ Í[ÃÖÍÖÉ>¯OÅÍkÁͼÈÅåÍÁÑÁÍÎØÌMës #rëÉÍkͼÈÅåÍpÙáÁÍÎØÙÌX ÙáåÍÌÍ[þ ÍÖôÍ[þ (þ( #w(ÍÖêÍÂÌÖáqÉ*â#~þÊáÍ[þ (þÈÍÖñÍ ÍÖþ ÀÃÖ*â##~þÈ6ÉÅÕåÍœáÑÁÉOÍ$*â#~þ(08áÅå·Ê¦=ʦ==Ê©=ʬò+ËÞ###å~Æ-_qá4ð6Í¡È>ðà *æ:è¾È4^qÉ}Ã’ÁÑÅÝ*ÛË|(ÍMëëË|( ÍMÝ6-Ý#ÕÍ�áͦí[ÛÝåá·íRë“8 (G> Í’ùCÈ~Í’#÷ÁÑÙáÑÁÙÅÝ*ÛÕÍôÇÁÑÅͦËC!h Ç!lÀTRUEFALSEͦ!9^#Í(ÑùÕÉá~#·(G~Í’#ùé> Í’> Ã’ "âËF!ÈÍ[¸(þÀ#ÉåÍRë·íRá0Íô*â4À#4É>™Ã åÍR·íR *â4 #4(áÍóÒ>òÜ>¯2çÍ$ë*âËV(/Ë–:ç·(#~+· x· y·ú2ÅÕ!͵ÑÁ( =(þ X:ç·(R*â:ç·(ËÞ###~Æ-Õ_ÑÖ-ÍŒí âX<òN=<ÍŒ*â###æw ÅÕåÍŸáÑÁ Õ*Ñ4 #4x±ÂüëÉ>™>ðà õ:ç·(ëñÉ"âÍŸÈè"*âËÖË^ÈËž*âËVÈË–åÅ0ëÍÁá ëÍ·ÉÁÑíSâÅåÍRÑ·íR8A*â N#F#s#rÍ$ 0}æ)ëíjëS\*â###w* N#Fë·íB ÈÕåÍŸÑár+sÉ>‘à ÕÙáÙ!T]>)ëíjëÙ)Ù0 0= ïÉÍU·íR!À#ÉÍUëÉ*â^#V#ÕN#F#^#VáÉ>">!2çDMÝáÑáÝå"â~æÊóx±(LÅÕÍ*â ë:çOÍÑÁ·(o:çþ" C}=(þ ?ÅÕ*â-N#Fp+qÛÿq#pÑÁ!€ë °*â F+N+++V+^ë·íBÐëq#pÉ>™>ð>à ÁÑíSâÅåÍRÑ·íRÚ*â s#r$ s#rÉ"äíSæëá"â! N#Fë·íB(^x± *â 6#ûí[âÍ<(H*â! íKäq#p##ëíKæÅÕÍí[â!Í· *â! 4 #4Ñ!€ëÁ x± Õ*â$ éÝ*â>ðÃw"òëáã"ô{æü_!í"ëÝ*íÝnÝf}´(HíR0ÝnÝfåÝ"ëÝáã Ý^ÝVÝåMDÝnÝfÝåÝÝuÝtÝqÝpÝåÑ*ës#rÑ*ôs#rÉÝåá"Í*ò ÝåÁ Ú5íKÏíB!Úð>ÿÃuëáã~#fo{æü_ë"ò*íåÝá·íR0RÝnÝfå·íR0ÝáðáÕýáíKòýqýpýuýtÝsÝrÝåáÝNÝFÍÄ( Ý^ÝVÕÝáÝåáÝNÝFÝ^ÝV*ííSíÕÝáÝuÝtíKòÝqÝpë ·íRÀÕýá*Í·íR(ý~Ýwý~Ýwýnýf ÝuÝt¯ÉÝåá"Í6#ûÉÍ *öÉÍ *øÉ!"ö"øÝ*íÝNÝFy°(*ö "ö*ø·íB0íCøÝnÝfåÝáØ*Ïûÿ í[Í·íRØë*ö"ö*ø·íRÐíSøÉí[Ís#rÉ^#VíSÍÉ>¯O"æ¯w2Ùx2è!ê"âá"äá ÍöÍ@*äé>¯2ê"æ!ê"âá"äá"è!\Ͳ¯*è:ê· ÍîÍ!Ù~6·go(Ýåá\íRë*æs#r¯ÿí_2ÔÉëÝáÁáx±( s x±(T]í°ÝéDMÝáÑá·íR0ð ë ëí¸ÝéÑÁÕ-a%ÃÆ}Í„oÉ*é!Ù~6o&ÉÍ |µÈÍ£}þÀÝáÍ%^C User break1:Ù·ÈÝáõÍ% I/OÝáÍ% Run-timeÍ% error Í’Í%, PC=Ýåáí[Õ·íR"×Í�Í% Program aborted*ßé1!€ »Í�!ó,j;ͲÃr+ÍRÍ� dSTRIP (c) Charles Perry, 1986.Í�ÍbÉÍRÍ�ÍbÍRÍ�dSTRIP squashes dBASE Í�CMDÍ� files. Unlike someÍ�ÍbÍRÍ�0other squash programs, it does not removeÍ�ÍbÍRÍ�0comments, nor does it clip the dBASE keywords.Í�ÍbÍRÍ�0The result is a file which is not quite soÍ�ÍbÍRÍ�0completely squashed, but one which retains itsÍ�ÍbÍRÍ�0readability and maintainability. Also, it can beÍ�ÍbÍRÍ�0'unsquashed' by using the companion program,Í�ÍbÍRÍ�0dFORMAT. Filenames can be entered in the commandÍ�ÍbÍRÍ�line, eg A>DSTRIP FILENAME.Í�CMDÍ� Send feedback,Í�ÍbÍRÍ�0or $10 for Turbo Pascal program to: CharlesÍ�ÍbÍRÍ�0Perry, 7 Bowaga St,Indooroopilly, Brisbane,Í�ÍbÍRÍ�Queensland, Australia, 4068.Í�ÍbÍRÍ�ÍbÉ!Aå!åÁÍo&Ñ}2½<*½<&É!å!/ÑÍ5z³ÊD#Õ"·<ÍR!-ÍòÍb*·<#ÑÃ&#ÍRÍ�ÍbÉýáá"µ<ýå*µ<Í Ímå!ÑÍ›ËEÊ«#!å*µ<Í ÍmÑÍ5z³Ê«#Õ"±<*µ<å*±<Ñå*µ<å*±<Ñn&Í(ëás*±<#ÑÃ}#Éýáá"¯<ýå*¯<Í Ímå!ÑÍ›ËEÊV$!"«<*¯<Í Ím"©<*¯<å*«<Ñn&å! ÑÍNËEÊ$*«<å!Ñ"«<ÃÜ#*¯<å*©<Ñn&å! ÑÍNËEÊ/$*©<å!Ñë·íR"©<Ã$*¯<Í *«<å*©<å*«<Ñë·íRå!ÑÍ5þ*¯<ͲÉÍRÍ�ÍbÍRÍ� Exit dSTRIPÍ�ÍbÍRÍ�ÍbÍÅÉýáá"¥<ýåÍ*¥<Ͳ!¾Í8!¢<ÍÛÍb*¢<&!^·íR·íBÒý$*¥<Í Ímå!ÑͯËEÊú$*¢<&ÍRÍòÍb*¥<Í *¢<&e.åÍ*¥<ͲÙ% ·íRÊ%·íRÊ%·íRÂa%*¥<Í Ímå!ÑÍ›ËEÊ^%ÍR!Íò! Íò!ÍòÍb*¥<å*¥<Í Ímå!ͽÙ%·íR€%ÍRÍ�^CÍ�ÍbÍW$Ù%·íR™%!e.å*¥<Ͳ*¢<&åÍQ! Ía!ÍaÍËEÊ™$ÉÍ5"ž<*ž<å!ÑÍaËEÊm&ÍRÍ�ÍbÍ#ÍRÍ�** Íb*ž<ð·íRÂ&ÍRÍ� Disk is fullÍ�ÍbÃO&ñ·íRÂ9&ÍRÍ�Directory is fullÍ�ÍbÃO&ÍRÍ� File bad?Í�ÍbÍ#!r=ÍSÍ5"ž!�<Í !å!.e.å!�<Í Í|å!Ñë·íRÍ5!£>Ͳ!�<Í !.e.å!�<Í Í|å!Ñå!Í5!¬>Ͳ*¢>&å!:e.åÍl Í!£>Í Í!.e.åÍ!¬>Í Í!¿>ͲÉ!r=ÍU"| !¨aå!€ÑÍÞ"z É*| å*z Ñ͇ËEÊÌ'*| "‡å*‡<ÍkÍb*‡<å!€ÑÍÄ"x !"v É*v å*x ÑÍ›ËEÊ7(*| å!ÑÍNËEÊ4(!}2†<ÃZ(Ã7(Í­'!Î>å*v +Ñn&å!Ñ|¢g}£o}2†<*v #"v *†<&Éýáþ!„;Ͳýå!„;Í Ímå!ÑÍ›å!„;å!„;Í ÍmÑn&å!;ÑÍNÑ}£o}2ƒ<*ƒ<&Éê(!}2j;!ÍÑÙ!y;Í¡!ÍÑÙ!s;Í¡!Â<å*¢>&å!:e.åÍl Í!£>Í ÍÍ.$$$ÍÍ<Íb!Â<ÍÎÍ·%Íc*©(&ËEÊ{*Íþ!¢=ͲÍ(}2;*;&å! ÑÍtËEÊT)!¢=Í *;&e.åÍþ!¢=ͲÓ)*;&å!ÑÍNËEÊ“)!}2©(!¢=åͬ#!¢=Í Ímå!ÑÍ›ËEÊ�)Ã¥)Ó)Ã{**;&å! ÑÍNËEÊ)!y;ÍüÅÕå!¢=Í ÍmÍÑÙáÑÁͳ ÅÕå!ÍÑÙáÑÁͳ Ù!y;Í¡!¢=åͬ#*j;&"k;!s;ÍüÅÕå!¢=Í ÍmÍÑÙáÑÁͳ ÅÕå*k;ÍÑÙáÑÁͳ ÅÕå!ÍÑÙáÑÁͳ Ù!s;Í¡ÍRÍ*k;Íq!¢=Í !ÍqÍ�Íb!Â<Í[Í*k;Íq!¢=Í !ÍqÍ�Í·%!¢=Í Í`(}2j;Ã)ÍRÍ�Íb!y;ÍüÅÕå!s;ÍüÙáÑÁͼ ÅÕå!y;ÍüÙáÑÁÍÉ ÅÕå!dÍÑÙáÑÁÍÄ Ù!m;Í¡!m;ÍüÅÕå!ÍÑÙáÑÁ͸ËEÊé*!ÍÑÙ!m;Í¡Í#!¿>Í ÍR!ÍqÍ� successfully reduced by !m;ÍüÅÕå!å!Í@!%ÍòÍ�ÍbÍ#ÍRÍ�Íb!Â<ÍîÍ·%!r=ÍSÍbÍ·%!r=Í\Íb!Â<å!¿>Í ÍnÍbÉÍç!€åͬ#!€Í ÍÍ\ËEÊ‘+Í !ËEÊð,!€Í ÍÍoËEʼ+!€Í !°>ͲÃü+ÍR! ÍòÍ�Enter name of Í�CMDÍ� file to strip: Íb!°>åÍ…$!°>åÍN#!°>Í Ín&!£>Í ÍÍ\ËEÊ*,ÍRÍ�ÍbÃí,ÍRÍ�Íb!r=å!¿>Í Í=!r=ÍzÍ5å!ÑÍaËEʦ,ÍRÍ�File !¿>Í !ÍqÍ� not foundÍ�Íb!€Í ÍͪËEÊš,ÍW$ã,ÍRÍ�ÍbÃí,!€Í ÍÍ\ËEÊÁ,ÍRÍ�ÍbÍRÍ� Stripping !¿>Í !ÍqÍbÍ•'Í­'ͦ(ÍÅÑ+ÃÅnot foundÍ�Í.op .he dSTRIP.DOC .ig dSTRIP_Overview dSTRIP is a program for 'squashing' dBASE CMD files. dSTRIР onlù squasheó 2/³ aó mucè aó DBSQUASÈ does¬  buô iô doeó noô removå � comments¬ noò doeó iô clið dBASÅ keywords® Thå resulô ió thaô thå resultanô � CMÄ filå ió easieò tï reaä anä maintain®  Also¬  iô caî bå 'unsquashed§  bù � usinç thå companioî prograí dFORMAT. É wrotå dSTRIÐ because¬ althougè DBSQUASÈ ió verù efficient¬ É finä iô verù � harä  tï worë oî thå highlù compresseä codå iô produces®  Thå codå produceä � by dSTRIÐ ió very readable. dSTRIP is also smaller and faster than DBSQUASH. dSTRIР caî  bå  especiallù usefuì foò thoså  writinç  dBASÅ  programó  oî � Osborneó  witè 5² columî screens®  Iô allowó thå useò tï fiô thå wholå  CMÄ � filå oî thå screen. Using_DFORMAT dSTRIP is extremely simple to use. Thå onlù precautioî yoõ neeä takå ió tï ensurå therå ió somå freå spacå oî � thå diskette®  Thió ió becauså dSTRIÐ writeó somå temporarù fileó tï disk® � Iæ yoõ arå processinç á 10Ë file¬ yoõ wilì neeä 10Ë oæ space¬ etc® Yoõ wilì � probablù havå thió spacå availablå iæ yoõ arå writinç programs® When you enter a filename, the extension CMD can be omitted. Hardware dSTRIP will work on all versions of the Osborne 1, single and double density, 52 and 104 column screens. Iô haó noô beeî testeä oî thå Executive®  Aó dSTRIÐ ió writteî iî Turbï � Pascal¬ iô useó Z8° opcodes¬ whicè sometimeó reacô unfavourablù witè thå � BIOÓ oæ thå Executive® Iæ therå arå sucè problems¬ É aí tolä á patcè calleä � TPATCH¬ availablå froí thå Osbornå library¬ maù help. Acknowledgements Thankó  tï  Bilì Wardell¬  Davå Moorå oæ Cerenkoö  Modula¬  anä  Borlanä � Internationaì foò Turbï Pascal® Recommended. Contributeä byº Charleó Perry¬ Universitù oæ Queenslanä Osbornå Useò Group¬ Brisbane, Australia. Jan 1986. ooooOOoooo .pa Š.he Ã*ù͇Í»á"1 !Öå*1 å!PåÍh7!ãåÍ<.DBF!PåÍh7!½å!åÍSCON:Íý!½å!ÿÿåÍ2!½åÍB7ͧ;RECOVER - a program to recover trashed dBASEII tm databasesÍH7͹7Í;6!½åÍB7ÍÕBrett Bonner - Memphis, TNÍH7͹7Í;6!Ö^Õ!åÍ¿6ñÒŠ!½åÍB7Í6;To use RECOVER supply a origin file and a destination file.ÍH7͹7Í;6!½åÍB7Í5 RECOVER will automatically place the .dbf extensionÍH7͹7Í;6!½åÍB7ͦ on the file namesÍH7͹7Í;6!½åÍB7Í;6!½åÍB7Íæ" ex. d>RECOVER d:infile d:outfileÍH7͹7Í;6!½åÍB7Í;6!½åÍB7Í@< RECOVER will remove all end of file markers in a database,ÍH7͹7Í;6!½åÍB7Í�- and change the number of records to 65532. ÍH7͹7Í;6!½åÍB7ÍÌ7 You will have some garbage at the end of your file soÍH7͹7Í;6!½åÍB7Íö after using RECOVER:ÍH7͹7Í;6!½åÍB7Í 1. go into dbaseÍH7͹7Í;6!½åÍB7ÍM 2. DELETE the garbageÍH7͹7Í;6!½åÍB7Í~ 3. and COPY to a newfileÍH7͹7Í;6Ãà!Öë!^Õ! åÍ¿6ñÒ³!Öå!å!åÍJ#Ê!…å!Öå!å! å!ÖåÍ $á+åÍ�!PåÍh7!…åÍÍ4!…åÍÛ4!ãåÍÛ4ÍÈ4!PåÍh7!Öå!å! å!ÖåÍ $ÍJ#!Öë!^Õ! åÍ¿6ñÒ5!Öå!å!åÍJ#à !4åÍÍ4!ÖåÍÛ4!ãåÍÛ4ÍÈ4!PåÍh7!½åÍB7ÍgReading ÍH7͹7!…åÍH7͹7͉ and writeing ÍH7͹7!4åÍH7͹7Í;6!½åÍB7ͶAssigning filesÍH7͹7Í;6!3 å!ÿå!…å!- åÍe*- å!ÿåÍ¿6ñÒ#!½åÍB7!…åÍH7͹7Í! does not exist - RECOVER abortedÍH7͹7Í;6Ãà!÷å!å!4åÍý!÷å!åÍ!½åÍB7ÍZBeginning transferÍH7͹7Í;6!}2…!"+ !3 å!ÿåÍï"á}/oå:…&o}/oÑ}£ÒX!3 å!ÿåÍ‚.á}2ƒ:ƒ&oå!åÍ¿6ñÒ¹! }2ƒ*+ åÃì*+ #"+ Ãû!ÿ}2ƒ*+ #"+ Ãû!ÿ}2ƒ*+ #"+ ÃûÍ]4ÀÊÛû!÷å!å:ƒ&oåÍÆ0ñÒU!½åÍB7ÍE)Error writing character - RECOVER abortedÍH7͹7Í;6!}2…Ãp!÷å!å!- åÍ*- å!ÿåÍ¿6:…&o}/oÑ}£Ò±!½åÍB7Í›Error closing ÍH7͹7!4åÍH7͹7Í;6Ãà!½åÍB7Í×RECOVER compeleted normallyÍH7͹7Í;6Í>2*}´Ê¢^#V#{²Êž¯‘!´6#6#6#6!²6#6! 8##" 8!€ÿ9"š8"”8>2¯!00"°!%†6# x±Âß!"^"Y"!">2]2 >2e2(> 2ç!ç"b!ª"%!R&"«!Â#"­ÉÃþ!€å!Øå!€åÍ8!Ø"X*XãéÃÃkéÍA2á"á"á"á"ÍG2*å*å*åÍý*å*åÍ2*å͆1áëás#rÉÍA2á" á" á"á"á"ÍG2*å*å*åÍý*ë! å* ëás*å*åÍ2* å͆1áëás#rÉÃÃÍA2á"+á"-ÍG2ÍN6*-^Õ!åÍ¿6ñÒÚ*-åÍS@:PASTMP00.$$$!åÍh7!¯ë!å*-ë! å!åÍ8!¯ë!å!¯ë!^ë#ëás!¯ë!^Õ!9åÍò6ñÒË!¯ë!å!0ëás!¯ë!å!¯ë!^ë#ëás*-å*+å*-åÍý*-ë! å!å!åÍR8*+å!ÿÿåÍ¿6ñÒ*-@å!ëás*+}/o|/g#"+Ã-*-@å!ëás*-<å!ëás*-;å!ëás*-8å!ëás!–1å*-ëás#r*-6å!ëás#r*-9å*+ëás#r*-=å*-Âëás#r*-4å*+ëás#r*-?å!ëás*-åÍ9(á}/ÒÒ!”1å!ÿëás#rÃ"*-åÍ6(ñÒàÃ"*-å*+åÍ&!”1å!å*-åÍK6áëás#r!”1^#VÕ!ÿåÍ7ñÒ"!”1å!ëás#rÉÃÃ5ÍA2á"á"ÍG2ÍN6*8^Õ!åÍ¿6ñÒ*å*å!åÍ*å!ÿåÍ¿6ñÒ!èåÍB7Í;6!èåÍB7Í®Unable to automatically close: ÍH7͹7*åÍH7͹7ÍË in RESETÍH7͹7Í;6!èåÍB7Í;6!èåÍB7ÍøProgram abortedÍH7͹7Í;6Í>2*ë! å!å!åÍR8*8å!ëás*å!ÿÿåÍ¿6ñÒW*}/o|/g#"*@å!ëásÃe*@å!ëás*<å!ëás*;å!ëás*ë! å!ëás!–1å*ëás#r*?å!€ëás*Aå!ëás*8å!ëás*9å*ëás#r*4å*ëás#r*=å*Âëás#r*^Õ!åÍ¿6*åÍ9(á}/oÑ}³Ò-!”1å!ÿëás#rÃW*åÍ6(ñÒ>à ÃW!”1å!å*åÍK6áëás#r!”1^#VÕ!ÿåÍ7ñÒî!”1å!ëás#r*<å!ëás*;å!ëás*4å*ëás#r*å!åÍ7ñÒë*6å!ëás#r*@~Òè!–1^#VÕ!–1^#Vë4^#VÕÍå&ÃëÍÂ)à *<å!ëás*;å!ëásÉÃÃ"ÃÍA2á"}á"á"�ÍG2ÍN6!–1å*�ëás#r*�8^Õ!åÍ¿6ñÒw*�9å*�6^#Vëëás#rÍ4,*�?^Õ!€åÍ7*�@^ëÑ}³Ò8*�4^#VÕ!€åÍ'7ñÒ*�Âë!å!ëás*�9å!ëás#r!å!�åÑá+åÕ"ƒÑá#åÕÍœ1"‹*ƒ#"ƒ*‹+"‹|µÊÍ4,ÃìÃ5*�Âå*�4^#VÕ!åÍR8*�9å!�ëás#rÍ4,Ãt*�?^Õ!€åÍ¿6ñÒt*�Âë!å!ëás*�9å!ëás#rÍ4,ë*�8^Õ!åÍò6ñÒ«*�9å*�6^#Vëëás#rÍ4,Ã*�8^Õ!åÍ¿6*�8^Õ!åÍ¿6áÑ}³Ò!”1å!å*�åÍK6áëás#r*}å͆1áëás#rà *}å!ëás#r*�8å!ëásÍN6ÉÍA2á"…á"‡á"‰ÍG2*‰8^Õ!åÍò6ñÒIÃz*‰å*‡åÍ&!”1å!ëás#r*…å!ëás#r*‰8å!ëásÉÃÓÍA2á"ñá"óá"õÍG2*ñå!ÿåÍò6ñÒº!ÿ"ñ*õë*óå!íë!å*ñåÍ8!íë!å*ñëás!í"í*íãéÃà ÃU ÍA2á}2Ð"ÍG2:Ð"&oå!aåÍÖ6:Ð"&oå!zåÍ7áÑ}£ÒC :Ð"&oë!ß}£o|¢g}2Ð":Ð"&o}2Æ":Æ"&oãéÍA2á"Ò"á"Ô"á"Ö"ÍG2!”1å!ëás#r*Ò"^Õ!åÍ7*Ò"ë!^Õ! åÍ¿6áÑ}£Ò® *Ò"å!å!åÍJ#Ãs *Ö"å*Ò"å!åÍh7*Ö"^Õ!åÍ7ñÒÅ"!@}2Ø"!Ú"åÍæ  á#å!åÍ8!â"åÍû  á#å!åÍ8*Ö"ë!^Õ!:åÍ¿6ñÒ9!!"ê"*Ö"ë!^ÕÍúá}2Ø"Ã?!!"ê"*ê""æ"!"è"*Ö"ë*ê"^Õ!.åͤ2!:åͤ2Í…3Í:3á}/oå*ê"å*æ"åÍ'7áÑ}£oå*ê"å*Ö"^ÕÍ7áÑ}£ÒÊ!!Ú"å*è"+Ñå*Ö"ë*ê"^ÕÍúáëás*è"#"è"*ê"#"ê"ÃO!*Ö"ë*ê"^Õ!.åÍ¿6*ê"å*Ö"^ÕÍ7áÑ}£ÒP"*ê"#"ê"!"è"*è"å!åÍ'7*ê"å*Ö"^ÕÍ7áÑ}£ÒP"!â"å*è"+Ñå*Ö"ë*ê"^ÕÍúáëás*è"#"è"*ê"#"ê"Ã"*Ö"å!Ãïÿå!åÍR8*Ö"ë!å:Ø"&oë!@{•ozœgëás!Ú"å*Ö"ë!å!åÍ8!â"å*Ö"ë! å!åÍ8*Ö"8å!ëásÉÃÃò"ÍA2á"C#á"E#ÍG2*C#å!}/o|/g#åÍ¿6ñÒ(#!%<^ë}2?#Ã7#*E#<^ë}2?#:?#&oãéÃÃM#ÍA2á"¹#á"»#á"½#ÍG2*½#å*»#ë*¹#Ñå*½#ë*»#å*½#^Õ*»#ë*¹#ë!{•ozœgÑ{•ozœgåÍ8*½#ë!å*½#^Õ*¹#Ñ{•ozœgëásÉÃÃÅ#ÍA2á}2$ÍG2!–1^#VëÂë!å:$&oëás!–1^#VÕ!–1^#Vë4^#VÕÍ(ÉÃ×$Ã$ÍA2á"&á"&ÍG2!}2&!å:ý%&oåÑá+" &#åÕÍœ1" &* &#" &* &+" &|µÊˆ$!&^#VÕ!&^#VëÑÍ4ñÒo$Ã�$*&ë!"&*&ë!"&Ã@$!}2&:&&oãéÍA2á"¦%!¨%ãå!QåÍh7ÍG2!}2&!¨%ë!^ë}2ú%*¦%^ë}2ü%!}2þ%!¨%^ë}2ý%:þ%&oå:ü%&oåÍ7:&&o}/oÑ}£Òx%:ú%&oå*¦%å:þ%&oÑ^ÕÍ¿6:ü%&oå:þ%&oÑ{•ozœgë!å:ý%&oåÍÖ6áÑ}£Òf%*¦%å:þ%&oÑå!¨%ë!åÍ$á}2&:þ%&oë!}2þ%Ãá$:&&Ò—%:þ%&oë!{•ozœg"¢%Ã�%!"¢%*¢%ãéÃÃ&ÍA2á"K&á"M&ÍG2ÍN6!”1å!å*M&åÍK6áëás#r!”1å!ëás#rÉÃÃU&!–1^#Vë8^Õ!åÍò6ñÒ£&!–1^#VÕ!–1^#Vë4^#VÕÍå&!–1^#VëÂë!^ë}2Þ&ÃÔ&!–1^#VëÂë!^ë}2Þ&!–1^#VÕ!–1^#Vë4^#VÕÍå&:Þ&&oãéÃÃè&ÍA2á"(á"(ÍG2*(;å!ëás!–1å*(ëás#r*(<~Ò-'*(;å!ëásÃ(ÍÂ)*(@~Ò(*(<å*(Âë!^Õ!åÍ¿6*(<^ëÑ}³oëás*(Âë!^Õ! åÍ¿6á}2 (: (&oå*(<^ëÑ}³Ò°'*(;å!ëás: (&oå*(8^Õ!åÍ¿6áÑ}£ÒÔ'ÍÂ)*(<^Õ*(;^ëÑ}³Ò(*(Âë!å! ëásÉÃÃ(ÍA2á"/(á"1(ÍG2!–1å*1(ëás#rÍ4,ÉÃÃ<(Ãæ(ÍA2á"“)ÍG2!}2�)*“)åÍY(CON:ÍÒ1ñÒx(*“)8å!ëás!}2�)ÃÞ(*“)åÍ„(LST:ÍÒ1ñÒ£(*“)8å!ëás!}2�)ÃÞ(*“)åͯ(KBD:ÍÒ1*“)å;(TRM:ÍÒ1áÑ}³ÒÞ(*“)8å!ëás!}2�):�)&oãéÍA2á"™)ÍG2!}2•)!�)å! å!~åÍî2Íe2*™)^Õ!åÍò6*™)^Õ!åÍ'7áÑ}³Ò0)Ç)!å*™)^ÕÑá+"›)#åÕÍœ1"½)*›)#"›)*½)+"½)|µÊ€)*™)ë*›)^Õ!�)åÍN2Í:3á}/Ò})Ç)ÃJ)!}2•):•)&oãéÃÃÅ)!–1^#Vë=å!$,å!åÍ8!–1^#Vë8^Õ!åÍ¿6ñÒc**$,å!å!åÍK6áëás*$,^Õ! åÍ¿6ñÒ-*!å! åÍK6á"&,Ã]**$,^Õ!åÍ¿6ñÒ]*!å! åÍK6á"&,!å!åÍK6á"&,Ã#,Ã¥*!–1^#Vë8^Õ!åÍ¿6ñÒ¥**$,å!å!ÿåÍK6áëás*$,^Õ!åÍ7ñÒ}*Ã#,!–1^#VëA~ÒÊ*!–1^#Vë<å!ëásÃ#,!å!–1^#Vë9^#VÕÑá+åÕ"(,Ñá#åÕÍœ1"*,*(,#"(,**,+"*,|µÊ ,!–1^#Vë",,*,,?^Õ!€åÍ¿6ñÒŽ+*,,?å!ëás*,,A^ë}/ÒŽ+!å*,,BåÍK6á"&,!”1å!å*,,åÍK6áëás#r!”1^#VÕ!åÍ7ñÒŽ+*,,Aå!ëás*,,A~ÒË+*$,å!ÿëás*,,<å!ëás*,,6å!ëás#rÍN6Ã#,Ãë+*$,å*,,Bå*,,?^ëÑ^ëëás*,,?å*,,?^ë#ëás*$,#"$,Ãð*!–1^#Vë6å!ëás#rÍN6ÉÃÃ7,ÃÙ,ÍA2á}2h.ÍG2!–1^#Vë"t.*t.?^Õ!€åÍ¿6ñÒ¢,!”1å!å*t.BåÍK6áëás#r!”1å!å*t.åÍK6áëás#r*t.?å!ëás*t.Bå*t.?^ëÑå:h.&oëás*t.?å*t.?^ë#ëásÉ!”1å!ëás#r!–1^#Vë=å!l.å!åÍ8!–1^#Vë8^Õ!åÍò6ñÒ.!–1^#Vë"v.!å*v.9^#VÕÑá+åÕ"r.Ñá#åÕÍœ1"x.*r.#"r.*x.+"x.|µÊ.*l.^ë}2n.:n.&oå! åÍ¿6ñÒu-Ãe.*v.8^Õ!åÍ¿6ñÒÁ-!å:n.&oåÍK6á"p.:n.&oå! åÍ¿6ñÒ¾-!å! åÍK6á"p.à .!å:n.&oåÍK6á"p.*v.8^Õ!åÍ¿6ñÒ .:n.&oå! åÍ¿6ñÒ .!å! åÍK6á"p.*l.#"l.ÃB-Ãd.!å!–1^#Vë9^#VÕÑá+åÕ"r.Ñá#åÕÍœ1"z.*r.#"r.*z.+"z.|µÊd.*l.^ÕÍ1,*l.#"l.Ã=.Éà .ÃÃ….Ã0!–1^#Vë=å!«0å!åÍ8!–1^#VëA~ÒÁ.!–1^#Vë<å!ëásÃ0!"¯0*¯0å!–1^#Vë9^#VÕÍ7ñÒê/!–1^#Vë"¿0*¿0?^Õ!€åÍ¿6ñÒl/*¿0?å!ëás*¿0A^ë}/Òl/!å*¿0BåÍK6á"­0!”1å!å*¿0åÍK6áëás#r!”1^#VÕ!åÍ7ñÒl/*¿0Aå!ëás*¿0A~Ò¢/*¿06å!ëás#r*¿04å*¯0+ëás#rÍN6Ã0ÃÂ/*«0å*¿0Bå*¿0?^ëÑ^ëëás*¿0?å*¿0?^ë#ëás*«0#"«0*¯0#"¯0ÃÇ.!–1^#Vë6å!ëás#rÍN6ÉÍA2á"»0á"½0ÍG2!–1å*½0ëás#r*½0"Á0*Á06^#VÕ*Á04^#VÕÍ¿6ñÒR0Í.*Á06å!ëás#r*Á0<^ë}/Òœ0*Á0Âå*Á06^#VëÑ^ë}2±0*Á06å*Á06^#Vë#ëás#rã0!ÿ}2±0:±0&oãéÃÃÉ0ÍA2á}2}1á"1á"�1ÍG2!”1å!ëás#r!–1å*�1ëás#r*�16^#VÕ*�14^#VÕÍ¿6ñÒ$1Í4,*�16å!ëás#r*�1Âå*�16^#VëÑå:}1&oëás*�16å*�16^#Vë#ëás#r͆1!åÍ7á}2s1:s1&oãéÃÉ1*”1"˜1*˜1ãéá"È1ÑáåÕåÕÍò6ñÚ½1Ñá{•ozœg##å*È1ãÉáÑ!å*È1ãÉáã"<2Ã2ÍÊ1Âà1!å*<2é!ÃÛ1ÍÊ1ÂØ1Ãà1ÍÊ1Úà1Êà1ÃØ1ÍÊ1ÚØ1Ãà1ÍÊ1Úà1ÃØ1ÍÊ1ÚØ1ÊØ1Ãà1áÑãëN2;2G¹Ú)2Ay·Ê62#¾ÀÂ-2:;2¹ÉÃáã"L2É*L2ãéá"˜2Ñ!àÿ9ùåÕ ÅÍ8*˜2éá"˜2! 9^#V!9Æ2á"˜2!9^#V!9Õå ÅÍ8!"9ù*˜2é 6#œ2Éá"é3á"ë3!àÿ9ùÍš2*ë3|·Â¿2ÍÃ2*é3é:ë3æ_!9å:ë3æ_!æ2~áG¶wÉ @€á"é3á"ñ3á"ï3!àÿ9ùÍš2*ï3|·Â¿2"ë3ë*ñ3|·Â¿2}»Ú¿2Ê33ÍÃ2*ë3#"ë3ë*ñ3{•zœÂ3ÍÃ2*é3éá"é3!9DM! 9^#Vë"ë3|·Â3Å}æ_áF:ë3æ_!æ2~ Ê3!"9ùÕ*é3éÃu3á"é3!9ë! 9 ¶w#”3! 9ù*é3éá"é3!9ë! 9 /¦w#µ3! 9ù*é3éá"é3!9ë! 9 ¦w#Â×3! 9ù*é3éë¾Â4# y°Âô3!ãéyMD!ãå`iO>·ÉÍó3á}îoãéÍó3y°Ê.4¾Ú44á!ãéá!ãéÍó3y°Ê.4ë¾Ú44Ã.4Íó3Ê44Ã)4Íó3Ê44ÃB4Ñá"Æ4ë^#V#ë"Ä4ë^#V#"Â4ë"À4*Æ4å*Ä4åÍ'7ñÚ±4*Æ4å*À4ë*Ä4åÍò6ñÚ±4*Æ4ë*Ä4{•_zœW*Â4^#Vëé*À4#)ë*Â4^#Vëé!45ãé!55"46¯2452³7Éá"86Ñ·Ê52:6O:45�Ú5*46åÕÅÍ8:45G::6€245_!55"46*86é>ÿ‘O>2³7Ãð4ÑÁy276>266!66åÕÃÛ4 ÅÍi8 ÅÍi8ÉÃÃQ6Ã{6ÍA2á"•6á"—6ÍG2*—6M*•6ëÍo&"™6*™6"‹6*‹6ãé!å!€åÍK6á"›6Éá~#å·Ê¼6þÊ7þÊï6þÊ$7þÊÓ6Ã7Í-7ÁÑá}“ÂÌ6|šÊ7!å`iéÍ-7ÁÑáz¬úè6}“|šò7ÃÌ6¤ò7ÃÌ6Í-7ÁÑáz¬úè6{•zœÚ7ÃÌ6Í-7ÁÑá}“Â7|šÊÌ6!å`iéÍ-7ÁáÑÃÙ6Í-7ÁáÑÃõ6ÁÑá&}æoã&}æoãåÕÅÉáã"–1ÉáÿÿÕÕéáã"«Éáã"­É!R&"«!Â#"­ɯ2³7á"´7áÁÑÕë"¶7ëYPz·Ê¦7Õ½Ê�7Ú�7>2³7}2¸7Ú7á"Ü7á"Þ7á"à7á#å+n&å*à7å*Þ7åÍâ7*Ü7éÁááÑÕÅ|þÿÊû7}“o|šgúû7#Ís8ÁÑáÅ{²ÈÕNåÅÍi8áÑ#z³Â8ÉáÁÑãÃ8áÁÑãëx±Ê.8~# x±Â$8ëÉáÁÑãëÃ<8áÁÑãx±ÊP8 +ë +~+ x±ÂF8ëÉáÁÑã{²Èq#{²ÂY8ÉÁááÅÍs8áÁåÅYÍŠ8ÁÉ}´È-È-È åÍŠ8á-Â~8ÉáÕå*­éÉPROGRAM RECOVER; CONST END_OF_FILE = $1A; SPACE = ' '; (* change size paramater for larger buffer *) SIZE = 2047; SEQUENTIAL = -1; TYPE PSTRG = ^STRING; BUFFER_ARRAY = packed ARRAY [1..size] OF char; VAR COMMAND_LINE,INPUT_NAME,OUTPUT_NAME,EXTENSION : STRING; I,J,K : INTEGER; IOR : INTEGER; block : Integer; POINTER_TO_COMMAND : PSTRG ; infile : file of buffer_array; outfile : file of char; crt : text; value : char; abort : boolean; EXTERNAL FUNCTION @CMD : PSTRG; BEGIN (* DECODE THE COMMAND LINE *) POINTER_TO_COMMAND := @CMD; COMMAND_LINE := POINTER_TO_COMMAND^ ; EXTENSION := '.DBF'; assign(crt,'CON:'); reset(crt); writeln(crt,'RECOVER - a program to recover trashed dBASEII tm databases'); writeln(crt,'Brett Bonner - Memphis, TN'); if (length(command_line) = 0) then begin writeln(crt,'To use RECOVER supply a origin file and a destination file.'); writeln(crt,' RECOVER will automatically place the .dbf extension'); writeln(crt,' on the file names'); writeln(crt); writeln(crt,' ex. d>RECOVER d:infile d:outfile'); writeln(crt); writeln(crt,' RECOVER will remove all end of file markers in a database,'); writeln(crt,' and change the number of records to 65532. '); writeln(crt,' You will have some garbage at the end of your file so'); writeln(crt,' after using RECOVER:'); writeln(crt,' 1. go into dbase'); writeln(crt,' 2. DELETE the garbage'); writeln(crt,' 3. and COPY to a newfile'); exit end; WHILE COMMAND_LINE[1] = SPACE DO DELETE(COMMAND_LINE,1,1); INPUT_NAME := COPY(COMMAND_LINE,1,POS(SPACE,COMMAND_LINE)-1); INPUT_NAME := CONCAT(INPUT_NAME,EXTENSION); DELETE(COMMAND_LINE,1,POS(SPACE,COMMAND_LINE)); WHILE COMMAND_LINE[1] = SPACE DO DELETE(COMMAND_LINE,1,1); OUTPUT_NAME := CONCAT(COMMAND_LINE,EXTENSION); writeln(crt,'Reading ',input_name,' and writeing ',output_name); (* ASSIGN FILES *) writeln(crt,'Assigning files'); open(infile,INPUT_NAME,ior); if ior = 255 then begin writeln(crt,input_name,' does not exist - RECOVER aborted'); exit end; assign(outfile,output_name); rewrite(outfile); writeln(crt,'Beginning transfer'); abort := false; i := 1; WHILE (NOT EOF(infile)) and (not abort) DO BEGIN value := gnb(infile); if value = chr(end_of_file) then value := space; case i of 1 : i := i + 1; 2 : begin value := chr($ff); i := i+1; end; 3 : begin value := chr($ff); i := i+1; end; end;  IF wnb(outfile,value) then begin writeln(crt,'Error writing character - RECOVER aborted'); abort := true; end; END; CLOSE(outfile,IOR); if (ior = 255) and (not abort) then writeln(crt,'Error closing ',output_name) else writeln(crt,'RECOVER compeleted normally'); END. if ior = 255 then begin writeln(crt,input_name,' does not exist - RECOVER aborted'); exit end; assign(outfile,output_name); rewrite(outfile); writeln(crt,'Beginning transfer'); abort := false; i := 1; WHILE (NOT EOF(infile)) and (not abort) DO BEGIN value := gnb(infile); if value = chr(end_of_file) then value := space; case i of 1 : i := i + 1; 2 : begin value := chr($ff); i := i+1; end; 3 : begin value := chr($ff); i := i+1; end; end; €™ ½ UNIQUE.CMD - A dBASEII(tm) Utility To Purge Duplicate Records Version 2.2 December 18, 1984 Authors: James Gronek Stephen Aidikonis Copyright UCS, inc. 1984 ALL RIGHTS RESERVED ENDT š ‚ – ¹»º½ªß°¹¹ ¹º¬¼¾ß°¹¹ ¹¬«º¯ß°¹¹ ¹º¼·°ß°¹¹ ¹«¾³´ß°¹¹ Ÿ ŠÝߪ±¶®ªºÑ¼²»ß‰ÍÑÍßÒß›½¾¬º¶¶×‹’Öߪ«¶³¶«¦ß«°ß¯ª­¸ºß»ª¯³¶¼¾«ºß­º¼°­»¬ßÝßÔݹ­°²ß¾ßÑ»½¹ßÝß«°ß’Œ‹�–‘˜ Ÿ Š“š‘×’Œ‹�–‘˜Öß«°ß’“š‘ Š××ÇÏÒ’“š‘ÖÐÍÖÒÎß«°ß’œ�“Î Š’œ�“ÎÔ’“š‘ß«°ß’œ�“Í �ÎÎÓ’œ�“Î߬¾¦ß’Œ‹�–‘˜ ŠÎß«°ß‡ ˆ‡ÃÇÏ Š‡ÔÎß«°ß‡ „ ˆ’œ�“ÍÁÂ’œ�“Î �ÎÎÓ’œ�“Î߬¾¦ßÝßÝ �ÎÎÓ’œ�“Í߬¾¦ßÝßÝ Š’œ�“ÎÔÎß«°ß’œ�“Î Š’œ�“ÍÒÎß«°ß’œ�“Í „ Œ¾³³ ¹»º½ªß°¹¹ ¹º¬¼¾ß°¹¹ ¹¬«º¯ß°¹¹ ¹º¼·°ß°¹¹ ŠÝª±¶®ªºÑ¼²»ß‰š�Œ–�‘ßÍÑÍßלÖߪ¼¬Óß–‘œÑßÎÆÇËÝß«°ß—“Î ŠÝß›½¾¬º¶¶×‹’Öߪ«¶³¶«¦ß«°ß¯ª­¸ºß»ª¯³¶¼¾«ºß­º¼°­»¬ß¹­°²ß¾ßÑ»½¹ßÝß«°ß—“Í �ÍÓÎÆß¬¾¦ß—“Î �Ìӯ߬¾¦ß—“Í ŠØßØß«°ß›ž‹š–‘ ˆÞ×›ž‹š–‘ÖÃÁØ»°±ºØ ŠØßßßßßßßߨ߫°ß’›ž‹š �ÇÓÍÇ߬¾¦ßݨ·¾«ß¶¬ß«·ºß»¾«ºÀß²²Ð»»Ð¦¦Ý �ÎÏÓÌÉ߸º«ß’›ž‹šß¯¶¼«ª­ºßØÆÆÐÆÆÐÆÆØ ¯ ‰ …‰ž“×Û×’›ž‹šÓÎÓÍÖÖÁÂÎßѾ±»Ñ߉ž“×Û×’›ž‹šÓÎÓÍÖÖÃÂÎÍѾ±»Ñ׉ž“×Û×’›ž‹šÓËÓÍÖÖÁÂÎßѾ±»Ñ߉ž“×Û×’›ž‹šÓËÓÍÖÖÃÂÌÎÖѾ±»Ñ׉ž“×Û×’›ž‹šÓÈÓÍÖÖÂÇËѰ­Ñ߉ž“×Û×’›ž‹šÓÈÓÍÖÖÂÇÊÖ ‰ …׉ž“×Û×’›ž‹šÓÎÓÍÖÖÂÎѰ­Ñ‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÌѰ­Ñ‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÊѰ­Ñ‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÈѰ­Ñ‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÇѰ­Ñ‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÎÏѰ­Ñ‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÎÍÖѾ±»Ñ׉ž“×Û×’›ž‹šÓËÓÍÖÖÁÂÎѾ±»Ñ‰ž“×Û×’›ž‹šÓËÓÍÖÖÃÂÌÎÖ ŠØ»°±ºØß«°ß›ž‹š–‘ …׉ž“×Û×’›ž‹šÓÎÓÍÖÖÂËѰ­Ñ߉ž“×Û×’›ž‹šÓÎÓÍÖÖÂÉѰ­Ñ߉ž“×Û×’›ž‹šÓÎÓÍÖÖÂÆÑ°­Ñ‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÎÎÖѾ±»Ñ׉ž“×Û×’›ž‹šÓËÓÍÖÖÁÂÎѾ±»Ñ‰ž“×Û×’›ž‹šÓËÓÍÖÖÃÂÌÏÖ ŠØ»°±ºØß«°ß›ž‹š–‘ …‰ž“×Û×’›ž‹šÓÎÓÍÖÖÂÍѾ±»Ñ׉ž“×Û×’›ž‹šÓËÓÍÖÖÁÂÎѾ±»Ñ‰ž“×Û×’›ž‹šÓËÓÍÖÖÃÂÍÆÖ ŠØ»°±ºØß«°ß›ž‹š–‘ † �ÎÍÓÍÍ߬¾¦ßݽ¾»ß»¾«ºÑÑÑÑÑ·¶«ß­º«ª­±ßÙß«­¦ß¾¸¾¶±ÞÝ Â �ÎÍÓÏ ‡ €›ž‹š–‘ÂØ»°±ºØ ŠÛ×’›ž‹šÓÎÓÍÖÔØßØßÔÛ×’›ž‹šÓËÓÍÖÔߨߨßÔÛ×’›ž‹šÓÈÓÍÖß«°ß’›ž‹š ¹»¾«ºß«°ßÙ’›ž‹š ‚ † �ÎÍÓÍÍ߬¾¦ßݽ¾»ß»¾«ºÑÑÑÑÑ·¶«ß­º«ª­±ßÙß«­¦ß¾¸¾¶±ÞÝ Â �ÎÍÓÏ ‡ „ Œ›ž‹š–‘Ó‹›–Œ�Ó’›ž‹š �ÇÓÏ �ÎÏÓÏ �ÎÍÓÏ �ÍÓÎÆß¬¾¦ß—“Î �Ìӯ߬¾¦ß—“Í ŠØ½Øß«°ß›� Й߫°ß›��” ˆÑ±°«Ñß›��” �ÉÓÏ �ÉÓÍÍ߬¾¦ßݺ‘‹š�ß›š™žŠ“‹ß›�–‰šÒÒÒÒÒÁßÝ߸º«ß›�߯¶¼«ª­ºßØ¾Ø ¯ €Þ×›�ÖÃݾÝßѰ­ÑßÞ×›�ÖÁßÝ¯Ý ª � Ћ߫°ß›��” ¹»º¹¾ß«°ßÙ›� ‚ „ Œ›��” �ÉÓÏ Š™ß«°ß›��” ˆÑ±°«Ñß›��” Ÿ ŠØßßßßßßßßßߨ߫°ß›� �ÍÓÎÆß¬¾¦ß—“Î �Ìӯ߬¾¦ß—“Í ›™–“šŒ �ÎÇÓËÏ߬¾¦ßݺ‘‹š�ß»ž‹ž�žŒšß‘ž’šß‹�ß�šß�Š�˜š›ßÝ �ÎÆÓËÏ߬¾¦ßÝßßßßßßßßßÒÒÒÁßÝ߸º«ß›�߯¶¼«ª­ºßØÞÞÞÞÞÞÞÞÞÞØ ¯ Š‹�–’×›�Öß«°ß›� €¹¶³º×ßØÙ»½ÑÑ»½¹ØßÖ Š‹ß«°ß›��” � ª ‚ „ Œ›��” ¹¼°±¬ß°¹¹ š¹¶³ºßŠ‘–ŽŠšÑ›�™ ¹¼°±¬ß°± �ÎÇÓÏ �ÎÆÓÏ ŠØÀØß«°ßˆ—–œ— Ÿ �ÍÓÎÆß¬¾¦ß—“Î �Ìӯ߬¾¦ß—“Í �ËÓÏ ½ You Have TWO Ways to Proceed From Here: (A) - This routine is MEMORY VARIABLE DEPENDANT, and cannot be used on databases with more than 22 fields. (B) - This routine is DISK SPACE DEPENDANT, and generally requires that there be AT LEAST 3 TIMES as much free space as the size of your database. This routine generally runs from 2 to 6 times faster than (A) for larger databases. -- For Further Information, Refer to the Documentation on 'TRADEOFFS' -- ENDTEXT Ћ߫°ßœ—��Œš ˆœ—��Œš �ÍÏÓÏ �ÍÏÓÎÏ߬¾¦ßݼ—��ŒšßؾØß��ߨ½Øß�“šžŒšßÒÒÒÒÁßÝ߸º«ßˆ—–œ— ¯ €Þ׈—–œ—ÖÃØ¾ØßѰ­ÑÞ׈—–œ—ÖÁߨ½Ø ŠØÀØß«°ßˆ—–œ— Ћ߫°ßœ—��Œš � Й߫°ßœ—��Œš ‚ „ Œœ—��Œš ÁÙ›� Ÿ �ÍÓÎÆß¬¾¦ß—“Î �Ìӯ߬¾¦ß—“Í �ÎÍÓÎÈ߬¾¦ßݼ��†–‘˜ßÙ›�ÑÑ»½¹ßŒ‹�Šœ‹Š�šß‹�ߪ±¶®ªºÑ»½¹ßÑÑÑÝ —¬«­ªß«°ßŠ‘–ŽŠš —¬«­ªßº§«ºß«°ß¯¶¼«ª­º Á Á¯¶¼«ª­º  ½°«« €ÜÁÍÍѾ±»ÑÞ׈—–œ—ÖÂØ¾Ø – ¹»º½ªß°¹¹ ¹º¬¼¾ß°¹¹ ¹¬«º¯ß°¹¹ ¹º¼·°ß°¹¹ Ÿ �ÎÏÓÏßݦ�Š�ß›ž‹ž™–“šßš‡œšš›Œß‹—šß’ž‡–’Š’ß�™ßÍÍß™–š“›ŒßÒ߮Ж‹‹–‘˜ÑÝ ¹¼°±¬ß°¹¹ š¹¶³ºß¯¶¼«ª­º š¹¶³ºßŠ‘–ŽŠš ® � ¹»º½ªß°¹¹ ¹º¬¼¾ß°¹¹ ¹¬«º¯ß°¹¹ ¹º¼·°ß°¹¹  «°¯ Ћ߫°ß™–�Œ‹ ŠÎÏß«°ßœ�Š‘‹š� ŠÝÎÝß«°ß‘š‡‹ ŠÝÕÝß«°ß›šŒœ�–�‹Í ˆÑ±°«Ñßš�™ ŠŒ‹�ל�Š‘‹š�ÓÍÖß«°ßœ�Š‘‹Œ‹� Š‹�–’×™–š“›Å‘ž’šÖß«°ß’Ùœ�Š‘‹Œ‹� €™–�Œ‹ Š‹�–’×™–š“›Å‘ž’šÖÔÝߨ¶«·ß³Ù¼°ª±«¬«­Ýß«°ß›šŒœ�–�‹Ù‘š‡‹ Š™ß«°ß™–�Œ‹ � Š›šŒœ�–�‹Ù‘š‡‹ÔÝÓÝßÔ‹�–’×™–š“›Å‘ž’šÖÔßÝߨ¶«·ß³Ù¼°ª±«¬«­Ýß«°ß›šŒœ�–�‹Ù‘š‡‹ ‚ €œ�Š‘‹š�ÂÍÍ ŠÝÍÝß«°ß‘š‡‹ Š‹ß«°ß™–�Œ‹ ‚ Šœ�Š‘‹š�ÔÎß«°ßœ�Š‘‹š� º „ Šœ�Š‘‹š�ß«°ß’œ�Š‘‹š� Œœ�Š‘‹Œ‹� ‚ š¹°­ßѱ°«Ñß™–š“›Å‹†�šÂØ¼Ø ¬ �ÎÍÓÏ �ÊÓÏ߬¾¦ßÝß¼—ž�žœ‹š�ß¹–š“›Œß–‘ß»ž‹ž�žŒšß¬‹�Šœ‹Š�šßž�šßžŒß™�““�ˆŒÅßÝ ‹ ŠÝßÎÝß«°ß™‘ž’š  «°¯ ‹ ˆÑ±°«Ñßš�™ ‹ØÜÙ™‘ž’šØÓ™–š“›Å‘ž’šÓ™–š“›Å‹†�šÓ™–š“›Å“š‘Ó™–š“›Å›šœ º ŠŒ‹�×Ù™‘ž’šÔÎÓÍÓÏÖß«°ß™‘ž’š ‹ÀߨßßßßßÜÙ™‘ž’šØÓ™–š“›Å‘ž’šÓ™–š“›Å‹†�šÓ™–š“›Å“š‘Ó™–š“›Å›šœ º ŠŒ‹�×Ù™‘ž’šÔÎÓÍÓÏÖß«°ß™‘ž’š „ ‹ ¹»º³º«ºß°± ŠÝßßßßßßßßßßÝß«°ß”š† Š‹ß«°ß”š†Å™–�Œ‹ Ћ߫°ß”š†Å�” ˆ”š†Å�” ŠÝßßßßßßßßßßÝß«°ß�‘š”š† �ÍÏÓÏ߬¾¦ßݶ‘›š‡ß´š†ß‹�ß–›š‘‹–™†ßŠ‘–ŽŠšß�šœ��›Œß��ßü­Áß‹�ßŽŠ–‹ÒÁßÝ߸º«ß�‘š”š†ß¯¶¼«ª­ºßØÞÞÞÞÞÞÞÞÞÞØ ¯ �ÍÍÓÏ  «°¯ ©¹°­ß�‘š”š†Â™–š“›Å‘ž’š €�‘š”š†ÂÝßßßßßßßßßßÝ Š™ß«°ß”š†Å�” � €š�™ �ÍÍÓÏ߬¾¦ßݶ‘›š‡ß™–š“›ßÝÔ‹�–’×�‘š”š†ÖÔÝß›�šŒß‘�‹ßš‡–Œ‹ß��ß–Œßž“�šž›†ßÝÔÝ–‘ߊŒšÑÝÔœ—�×ÈÖ ŠÝßßßßßßßßßßÝß«°ß�‘š”š† � €”š†Å™–�Œ‹ š Š�‘š”š†ß«°ß”š† Š™ß«°ß”š†Å™–�Œ‹ � Š‹�–’×”š†ÖÔØÔØßÔ�‘š”š†ß«°ß”š† š ‚ �ÍÎÓÏ߬¾¦ßÝ´š†Œß–‘ߊŒšÅßÝÔ”š† ‚ ‚ „ ¹»º³º«ºß°¹¹ Ÿ Á Œ�‘š”š†Ó”š†Å™–�Œ‹Ó”š†Å�” €”š†ÂÝßßßßßßßßßßÝ Ÿ �ÎÏÓÏ߬¾¦ßÝß±°ß´º¦¬ß¬¯º¼¶¹¶º»ßÒߺ§¶«¶±¸ß¯­°¸­¾²ÑßÝ š¹¶³ºßŠ‘–ŽŠš š¹¶³ºß‹šŒ‹ š¹¶³ºß¯¶¼«ª­º š¹¶³ºßœ�‘Œ‹ž‘‹Ñ’š’ ® ‚ ¹»º¹¾ß«°ßÙ›� �ÍÓÎÆß¬¾¦ß—“Î �Ìӯ߬¾¦ß—“Í �ÎÍÓÍÉ߬¾¦ßݶ‘›š‡–‘˜ßª±¶®ªºÑ»½¹ßÑÑÑÑÝ €Þ׈—–œ—ÖÂØ¾Ø ÁŠ‘–ŽŠš � ÁÙ›� ‚ £°±ßÙ”š†ß«°ßŠ‘–ŽŠš €Þ׈—–œ—ÖÂØ¾Ø ¹¶±»ºß«°ßŠ‘–ŽŠš � Á ÁÙ›�ß¶±»º§ßŠ‘–ŽŠš ‚ €Þ׈—–œ—ÖÂØ½Ø —«°ßŠ‘–ŽŠš ÁŠ‘–ŽŠš  ½°«« � �ÎÍÓÏ �ÎÍÓÍÏ߬¾¦ßݾ��š‘›–‘˜ß™–�Œ‹ß�šœ��›ß™��’ßÙ›�ÑÑ»½¹ßÑÑÑÝ ‘¹­°²ßÙ›�ߨ·¶³ºßÜÂÎ Á �ÎÍÓÏ Ž¬º¼° ÁŠ‘–ŽŠšß¶±»º§ßŠ‘–ŽŠš Ž¯­¶² ÁÙ›�  ½°«« ‚ ŠŒ‹�×ÜÓÊÓÏÖß«°ß“žŒ‹‘Š’ �ÎÍÓÏ �ÉÓÌÏ߬¾¦ßݯ“šžŒšß�šß�ž‹–š‘‹ÑÑÑÝ �ÈÓÎÌ߬¾¦ßÝ«—–Œßˆ–““ß‹ž”šßžßˆ—–“šßˆ–‹—ßÙ“žŒ‹‘Š’ß�šœ��›Œß–‘ßÙ›�ÑÑ»½¹Ý �ÎËÓÎÏ߬¾¦ßݾ››–‘˜ßª±¶®ªºÑ»½¹ß�šœ��›ß‘Š’�š�ßÒÒÒÒÁßÝ �ÎÍÓÎÏ߬¾¦ßݨ��”–‘˜ßÙ›�ÑÑ»½¹ß�šœ��›ß‘Š’�š�ßÒÒÒÁßÝ €Þ׈—–œ—ÖÂØ½Ø  «°¯ ŠÎß«°ßŒšž�œ— ŠÏß«°ß™�Š‘› ŠÝßÝß«°ß“žŒ‹”š† ˆÑ±°«Ñßš�™ ŠÙ”š†ß«°ß™‘›”š† �ÎÍÓÊÏ߬¾¦ßŒšž�œ— €“žŒ‹”š†Â™‘›”š† š � Š™�Š‘›ÔÎß«°ß™�Š‘› �ÎËÓÊÏ߬¾¦ß™�Š‘› ‚ ŠÝÙ¹±»´º¦Ýß«°ß“žŒ‹”š† º ŠŒšž�œ—ÔÎß«°ßŒšž�œ— „ ŠŒ‹�×™�Š‘›ÓÈÖß«°ß‹˜‹“žŒ‹ ¹¶±»ºß«° Á ¹¼°±¬ß°¹¹ š¹¶³ºß¯¶¼«ª­ºÑ›�™ š¹¶³ºßœ�‘Œ‹ž‘‹Ñ’š’ š¹¶³ºßŠ‘–ŽŠšÑ‘›‡ ¹¼°±¬ß°± ÁŠ‘–ŽŠš —«°ßŠŽ Á š¹¶³ºßŠ‘–ŽŠšÑ›�™ ³ŠŽÑ›�™ß«°ßŠ‘–ŽŠšÑ›�™ �  «°¯ ˆÑ±°«Ñßš�™ ŠÙ”š†ß«°ß™‘›”š† ŠÜß«°ß‘Š’ �ÎÍÓÊÏ߬¾¦ß‘Š’ ެº¼° ¡ØÙ¹±»´º¦Ø €ÜÂÏ Ž¯­¶² ŠÎÏß«°ß“žŒ‹œ�Š‘‹ ˆ“žŒ‹œ�Š‘‹Ãœ�Š‘‹š� ŠŒ‹�דžŒ‹œ�Š‘‹ÓÍÖß«°ß“žŒ‹Œ‹� ŠÙ’Ù“žŒ‹Œ‹�ß«°ß“Ù“žŒ‹Œ‹� Š“žŒ‹œ�Š‘‹ÔÎß«°ß“žŒ‹œ�Š‘‹ „ ެº¼° ‘½³¾± ´Ù›šŒœ�–�‹Î €‘š‡‹ÂÝÍÝ ´Ù›šŒœ�–�‹Í ‚ �ÎËÓÊÏ߬¾¦ßŒ‹�×ÜÓÈÖ ‚ ޝ­¶² º „ ެº¼° ¹¶±»ºß«°  ½°«« ŠŒ‹�×ÜÓÊÓÏÖß«°ß‹˜‹“žŒ‹ ‚ �ÉÓÏ �ÈÓÏ �ÎÍÓÏ �ÎËÓÏ �ÎÍÓÎÊ߬¾¦ßݦ�Š�ß�Š�˜š›ß›ž‹žß—žŒß�šš‘ߌž‰š›ß‹�ߪ±¶®ªºÑ»½¹Ý �ÎËÓÎÊ߬¾¦ßÝ«—š�šßˆš�šßÙ‹˜‹“žŒ‹ßŠ‘–ŽŠšß�šœ��›Œß–‘ßÙ›�ÑÑ»½¹Ý �ÎÉÓÏÆß¬¾¦ßݯ“šžŒšßœ—šœ”ߪ±¶®ªºÑ»½¹ß�š™��šß�š‘ž’–‘˜ß‹�ßÙ›�ÑÑ»½¹ß™��ߊŒšÝ ŠÏß«°ß‹–’š ˆ‹–’šÃÎÏ ‹Àßœ—�×ÈÖ Š‹–’šÔÎß«°ß‹–’š „ ¹¼°±¬ß°¹¹ š¹¶³ºß¯¶¼«ª­ºÑ›�™ š¹¶³ºßŠ‘–ŽŠšÑ‘›‡ ® � OWNER --> James A. Gronek ž†ßØßØ ‹ÀߨßÒÒÁßØÔ«­¶²×³ÖÔ¼·­×ÎÌÖ ‚ Š«­¶²×³Öß«°ß´ ¹¼°±¬ß°¹¹ ¹¾³«ºß°± ‹Àß´Ô¼·­×ÎÌÖÔ¼·­×ÎÏÖ ¹¾³«ºß°¹¹ ¹¼°±¬ß°± º „ ‚ „ �ÍÎÓÏ ¹¾³«ºß°± ¹¼°±¬ß�™ ==== DOCUMENTATION FOR UNIQUE.CMD (c) ==== Version 2.2 Released 12/18/1984 A dBASEII(tm) Utility To Purge Duplicate Records From a dBASEII(tm) .DBF file by James A. Gronek Phoenix, Arizona & Stephen Aidikonis Streamwood, Illinois COPYRIGHT (C) UCS, inc. November 8, 1984 ALL RIGHTS RESERVED dBASEII is a trademark of Ashton-Tate Incorporates routines from: DATEIN.CMD (c) 1983 by Bernard L. Lambert SHRINK.CMD (c) 1984 by Les Shockley ==== WHAT IS IT?? ==== UNIQUE.CMD is a utility program that is designed to allow you to purge almost ANY dBASEII .DBF file of duplicate records. It is written in the dBASEII applications language and requires dBASEII version 2.4 or later to run on any computer. UNIQUE.CMD may be used with any database that has character fields to use as keys. It creates a file, UNIQUE.DBF, that contains the unduplicated records of your original source database. Once you have verified the validity of UNIQUE.DBF, you may rename it for use in place of your source database. It will not alter your source database in any ANY WAY!! ==== HOW DO I USE IT?? ==== Place DBASE.COM, DBASEOVR.COM, and UNIQUE.CMD together with the database you wish to purge. Ensure that you have a blank disk in the default drive, or sufficient space on the disk with your database to allow for working room. See the discussion on free space requirements later under TRADEOFFS. When you execute the program ( A>DBASE UNIQUE ), you will be prompted for a system date, and a default drive. If you  do not have sufficient space on the same disk with your original database, select a disk with sufficient space for working files and the database of unique records, UNIQUE.DBF. Next, you will be presented with a list of the .DBF files on your default disk, and asked to select the database to be purged. If you selected a blank disk as your default drive, no files will be listed. Enter the PRIMARY FILENAME of the .DBF to be purged (including the drive, if not on the default disk). After some status messages, you will be shown a selection of character fields in your .DBF and asked for an index key. Select the field names to be used for comparison, one at a time. Ensure that you select a sufficient number of fields to compare on to guarantee record uniqueness. Watch out that you don't exceed dBASE's internal limits of 99 characters in your index key! If you do, you will be unceremoniously dumped to a dot prompt. As you enter the field names to be used, you will see a status line appear on the bottom line of the screen, showing the syntax of the index key you are constructing. It will look something like this: FIELDNAME1+FIELDNAME2+FIELDNAME3+FIELDNAME4 ... You may select on up to FIVE separate fields so long as the combined length of the fields does not exceed the 99 character limit. When you have entered the last field name to be used, enter a to continue. You will be presented with a choice of two ways to attack the problem. You may select either "A" or "B" from the menu. See the section following: ==== TRADEOFFS ==== The two methods used to purge the database differ dramatically. Selection "A" uses a technique that is very MEMORY VARIABLE DEPENDANT and can only be used on databases with 22 or fewer total fields. The purge function will begin almost immediately, but goes VERY SLOWLY from there, on through your database. This method requires less free disk space to use than method "B", described next, but can take as much as TWICE as long to run as method "B". Selection "B" uses a technique that requires the indexing of the source database on the index key before starting the actual purge function. This can take varying amounts of time to accomplish, depending on the number of records in the source database, and the complexity of the index key. About the only thing I can tell you is that it will ALWAYS seem to take longer than it should. Once the Purge has started, the program fairly RIPS through the database, about as fast as a terminal can update the count on the screen, faster in some cases. This method is extremely DISK SPACE DEPENDANT. IN ORDER TO ENSURE A SUCCESSFUL RUN YOU SHOULD HAVE, AT LEAST, FOUR (4) TIMES AS MUCH FREE SPACE AS THE SIZE OF THE SOURCE DATABASE!!! If you are running on a hard disk, you have no problems. Those on floppies may run out of room with larger databases. This method can be (by my benchmark tests, anyway) up to 2.5 times as fast as method "A". During the time the program is processing your source .DBF, status messages will be sent to the console advising you of what record numbers are under study at any given time. ==== KNOWN BUGS AND CAUTIONS ==== UNIQUE.CMD is NOT fast. It is written entirely in the dBASEII applications language and is intensely disk-bound, hence, very slow. Despite its 'underwhelming' speed of execution, its flexibity may make it a valuable addition to the dBASEII users 'Toolkit'. ==== VERSION 2.0 UPDATE INFORMATION ==== This release of UNIQUE.CMD incorporates many improvements over the original version, primarily due to the efforts of STEVEN AIDIKONIS of Streamwood, Illinois. Steve came up with error checking routines that greatly improved the key selection routine. He also came up with TWO different (and superior) methods to do the purge function. I studied and tested both before deciding that each had its' own merits, and potential applications. Well, they are both incorporated into this version, you may select from them as appropriate. Thanks Steve, your efforts made a useful tool into an indispensible one. ==== VERSION 2.1 UPDATE INFORMATION ==== This release repairs a 'bug' found in the (A) search routine and incorporates some additional changes to reduce the size of the .CMD file. ==== VERSION 2.2 UPDATE INFORMATION ==== This release is functionally identical to version 2.1, with the exception that default drives may be in the range "A" through "P". This modification was made at the request of some users without contiguous disk drives. Version 2.2 also incorporates some additional changes to reduce the size of the command file, and speed execution. ====>>>> WARNING <<<<==== Finally, this program is COPYRIGHTED. I wrote it.* I am releasing it to the Public Domain for non-commercial use by other people who may find it of use. This program may be freely reproduced and distributed, as long as this file and all copyright notices remain intact and no monetary consideration is involved. I have recently found software, authored by me, being sold as part of a package (a 'so-called' USER DISK offered by a well known seller of 'USER DISKS') with some other PD programs. I am advised by my corporate attorney (who is on a 5 figure annual retainer to know about such things) that this is copyright infringement, and potentially actionable in a court of law. I have therefore decided to "FRY, IN THEIR OWN OILY SLEAZE" anyone who does this to me again. I will point out that even inconsequential programs take time to write, modify and debug. My attorney is of the opinion, and I wholeheartedly agree, that Authors are entitled to compensation for their efforts in the event of the sale of their work. This is still true for copyrighted PD software that is distributed with limited use rights. If you wish to avail yourself of this software, please use it in good health. If you attempt to sell it, or any part of it, I advise you that I have the financial means to track you down, and prosecute you, regardless of cost. (* versions 2.0 & 2.1 co-authored with Stephen Aidikonis, Streamwood, Ill.) UNIQUE.CMD is being distributed as an encrypted file, encoded by Gene Head's DB-SQZ5(c). The file occupies less space on the disk, and executes faster, in this form. The .CMD file cannot be listed, or externally altered. Source code is available from the author. If you manage to 'break' the encod ing to modify the program, I forgive you. Please upload a copy of the modified code to me at my RCP/M (see below) as a 'PRIVATE' file, and PLEASE keep the source code to yourself. If I decide to incorporate your modification in a future revision, you will receive appropriate credit in the documentation. If you desire an 'Official' copy of the commented source code, you may purchase it for $15.00, if you pick it up from my RCP/M, or for $25.00 on 5 1/4" disk by return mail. I can support about 50 different formats, leave a message on my RCP/M for information of disk formats. Money Order or Cash orders will be shipped within 48 hours. Allow 2 weeks for personal checks to clear. JAMES A. GRONEK President UCS, inc. Telephone: The Lost Dutchman's Gold Mine RCP/M (602)848-6708 300-1200 Baud 24 Hours 7 Days a week Address: The Lost Dutchman's Gold Mine RCP/M Post Office Box 23866 Phoenix, Arizona 85063 Attn: Unique A. GRONEK ‘ SBISSUEC ÑlPAGECÛlSUBJECTCâlCATEGORYCmSOFTWAREC m Aug/Sep 8296 Two NEW FREE Bulletin Boards 805~~408AMCALL Dec/Jan 83102 New RCP/M in California Article AMCALL Dec/Jan 83102 Oxgate 4159644097=415-965-4097Correct AMCALL Oct/Nov 8225 The Source InstructAMCALL Etc Jun 83 70-75 Spelling Checkers-DissertationArticle Aspen Dec/Jan 8348-49 C-BASIC - A Dissertation Comment CBASIC Sept 83 26-27 CBASIC Made Less Difficult InstructCBASIC/WS Sept 83 53 Make Your Printer Do Right Adv CI Sftware Feb/Mar 8351 HomeTax (tm) Adv CP/M Feb/Mar 8374-77 Word Processing Typeset ConectArticle CP/M Jul 83 83-85 BB: Disk Doctor/Osbaud Rate GnArticle CP/M Feb/Mar 8359-64 Autost.Com (Program) InstructCP/M Jun 83 54-55 Serial Port Programming InstructCP/M August 83 19-21 The Wizard InstructCP/M August 83 68-70 Formatting Disk Twist InstructCP/M Jul 83 52-53 Printing Squeezed Files User GrpCP/M Sept 83 31-35 Graphics For Epson Printer InstructCP/MMBASIC Feb/Mar 8316 Correction dBASE II Oct/Nov 82Correct DBASE II Oct/Nov 8265 dBASE II Explanation & Pitch Data DBASE II Aug/Sep 8262-63 Labels W/dBASE II & WordStar InstructDBASE II Dec/Jan 8380-83 dBASE II Basics of Use InstructDBASE II Feb/Mar 8392-95 dBASE II Easy Edit (Program) InstructDBASE II Apr/May 83102-104DBASE II Inventory Program InstructDBASE II August 83 47-50 Cables Tables Labels InstructDBASE II Sept 83 59-63 Using Database Simply(?) InstructDBASE II Oct 83 52-56 UserGroup Data WS/SC/& DBASE II August 83 23-28 Me and My Ramblin' Osborne Article Dave Kline Apr/May 8376-79 Updated User Groups Names/AddrListing Directory Dec/Jan 8350-53 Disk Doctoring, Sector, Track Article Diskettes Dec/Jan 8367-70 New XDIR Use/Catalog File/DiskInstructDiskettes Jun 83 69 Software Bargains (?) Nevada Adv Ellis Comp Apr/May 8311-13 Adam Osborne: Big Problems Article Explnation Jun 83 32-35 Self Publishing Article FEDfind Aug/Sep 8219 Montop - Save Desk-Top Space Adv Hardware Dec/Jan 837 Green Screen 11 Inch Diagonal Adv Hardware Dec/Jan 8393 Cover For OZ1 While Open/ReadyAdv Hardware August 83 7 Fan For OZ1 Adv Hardware August 83 52 Screen Magnifier (B & L) Adv Hardware August 83 59 WS+SC Templates+Index+Punch Adv Hardware Oct 83 68 Graphics for OZ1 (Was $49.95) Adv Hardware Aug/Sep 8215-18 DEL Key,Voltage,MBasic,Baud SwArticle Hardware Feb/Mar 8356-58 Double Density Article Hardware Apr/May 8392-96 Making Epson Dance Article Hardware Jun 83 27-30 OZ Exec Comments & Specs Article Hardware August 83 35-36 Modem Use by the Deaf Article Hardware Sept 83 14 OZ Executive Extras Built In Article Hardware Sept 83 74-75 Compact OZ1/Peripheral StationArticle Hardware Oct/Nov 8244-47 I/O (Wrote BB: Make Tape Work)InstructHardware Jun 83 39-42 Stanford Univ Using OZ1 Article Inform Oct/Nov 8220-24 FOG How to Start a User's Grp Article Instruct Apr/May 8366-71 I/O(Part 3) Good Dope: PrinterArticle Instruct Jun 83 64-68 User Group Suggestions Article Instruct August 83 14 Adam on Realities re ComputersArticle Instruct Jul 83 36-39 IEEE-488 > Understanding It Program Instruct Aug/Sep 82!84-85 ASCII & Appndx M MicroSft ManlGuide MBASIC Dec/Jan 8342 How To Print Your BASIC ProgrmInstructMBASIC Apr/May 8315 MB How To Change A Line NumberInstructMBASIC Jun 83 20-22 MB Printout By Subroutine InstructMBASIC Jun 83 48-49 Dating Your Computer InstructMBASIC Jun 83 50-53 MB Problems Solved InstructMBASIC August 83 30-33 Interfacing External Devices InstructMBASIC Sept 83 28-29 Type Like Typewriter - No EditInstructMBASIC Sept 83 36-37 Random Seed For Games- AT LASTInstructMBASIC Sept 83 40-41 Logarithms & AntiLogs Base 10 InstructMBASIC Oct 83 35-38 Custom Loan Tables InstructMBASIC Aug/Sep 8248-54 Cards A Graphic Beauty Program MBASIC Oct/Nov 8226-27 Beeping the OZ1 Beeper Program MBASIC Feb/Mar 8343-44 BASIC Approximate Stop Watch Program MBASIC Feb/Mar 8352-55 Tax Tips (Article) Program MBASIC Apr/May 8342-45 DUCK: A Game W/Moving GraphicsProgram MBASIC Apr/May 8353-55 Graphics Screenwriting Program MBASIC Jun 83 44-45 3-D Graphics: Direct Cursor CmProgram MBASIC Jun 83 50 RND: Conquer Predicability Program MBASIC Jul 83 32-34 TRS-80 Print @: Conversion Program MBASIC Apr/May 8374-75 WS & MB File Saving W/DDT CP/MInstructMBASIC/WS Oct 83 14-15 8-bit vs 16-bit Adam OsborneArticle N/A August 83 87 Super Graf Graphics Adv None Sept 83 12-13 Adam Osborne: User Grp/Dealer Comment None Sept 83 38 Formatting Foreign CP/M, Etc. Adv Osmosis Feb/Mar 8317 JRT Pascal 3.0 etc. $29.95 Adv Pascal Sept 83 18-24 Stock Market Use Of OZ1 InstructPubDomain Aug/Sep 8222-24 FOG Library Listing User GrpPubDomain Oct 83 43-46 Using Computer for Auctions Article Special Aug/Sep 8234 Spellguard A Dissertation Article Spellguard Dec/Jan 8329 Sorcim SC Offers Good Deals Adv SuperCalc Apr/May 8327 SC Answer Card & News Letter Adv SuperCalc Oct 83 58-61 BDOS Errors - How to Beat Article SuperCalc Sept 83 78 Corrections Of July Issue Correct SuperCalc Aug/Sep 8272-75 Programming W/SuperCalc InstructSuperCalc Oct/Nov 8254-55 SuperCalc Trick & File TrnsferInstructSuperCalc Oct/Nov 8284-85 Printing SC W/Condensed Type InstructSuperCalc Oct/Noc 8287-91 SuperCalc Aids InstructSuperCalc Dec/Jan 8388-93 SC Super Calendar (Program) InstructSuperCalc Feb/Mar 8322 SC-Instruction For NO Trouble InstructSuperCalc Apr/May 8323-26 SC Accuracy Getting 2 DecimalInstructSuperCalc Apr/May 8398-99 SC Aids For SuperCalc InstructSuperCalc Jun 83 76-79 SC Bowling Scorekeeper InstructSuperCalc August 83 75-80 Insulation Calculation InstructSuperCalc Dec/Jan 8311 Print SC Files W/No Lines InstructSuperCalc Oct 83 62-69 Streamlined Spreadsheets InstructSuperCalc Feb/Mar 8385-91 Illustrative SC (Bar Chart)  Program SuperCalc Jul 83 74-78 SC Budget/Check Program SuperCalc Oct 83 24-28 Success Story Eric Ruff Article SuprGrafic Jul 83 58 OZ1 In Narcotics Search Article User Group Aug/Sep 8213 OZ1 Frmt Software Priced To GoAdv Various Apr/May 8391 Wanted: Software Testers Adv Various Jul 83 18-21 Wizard: Printer, PIP, MB Article Various August 83 83-87 Reviews of Software Article Various Dec/Jan 8396 OZ1 Update Data (Errors) Correct Various Aug/Sep 8230 BDOS Error Bad Sector SolutionInstructVarious Apr/May 8361-63 Technical Tips SC/WS/CP~M InstructVarious Apr/May 83106-107Upgrades & WS/SC/CB/CPM ChangeInstructVarious Jun 83 36-37 Technical Tips DD/DB/WS/MB/Z80InstructVarious Jul 83 42-47 Interfacing External Devices InstructVarious August 83 39-43 Copyright Basics InstructVarious August 83 53-61 User Group Stuff InstructVarious Feb/Mar 8349  OZ Accessory Catalog Listing Various Feb/Mar 83100 Source For Software: Name/AddrListing Various Sept 83 44-51 User Groups Various Various Sept 83 67-69 Reviews Of Software Various Various Oct 83 19-23 Answers to Questions - BaldwinInstructWS/SC/&& Dec/Jan 8314 Writer's Guidlines (Write OCC)Article WordStar Dec/Jan 8384-87 WS 3.0 vs WS 2.26 Article WordStar Apr/May 8334-38 Freelance Writing With OZ1/WS Article WordStar Apr/May 8347-51 Practical Editing (Part 1) Article WordStar Jun 83 22-24 WS Labels & Graphics Data Article WordStar Jun 83 25 WS Tips On Preventive Things Article WordStar Jun 83 58-62 Practical Editing (Part 2) Article WordStar Jul 83 67-70 Word Processing Made Easier Article WordStar August 83 62-67 B Elman: Processed Word Article WordStar August 83 11 PIP and WordStar Correct WordStar Sept 83 16-17 ^QF Command For Searching WS C"orrect WordStar Oct/Nov 8228 Labels 3-across w/WordStar InstructWordStar Oct/Nov 8277 WordStar Trick InstructWordStar Feb/Mar 8328-31 Mailmerge-Sorting Notes InstructWordStar Feb/Mar 8337-38 WS-Using For Form Filling InstructWordStar Apr/May 8379 How To Combine Files: W/CP/M InstructWordStar Apr/May 8382-85 User Group Tips & Expertise InstructWordStar August 83 44-45 COMFYL For Keyboard Entry InstructWordStar Oct 83 31-34 Automate Correspondence InstructWordStar Oct 83 49-51 Install Sub vs Com ComparisonInstructWordStar Sept 83 11 C. Itoh Printer Standards Letters WordStar Feb/Mar 8335 WS-Common Commands Listing WordStar Feb/Mar 8365-67 Creating PRINT Statements Program WordStar Feb/Mar 8321 Mailmerge-Hints For Better UseWizard WordStar  Apr/May 8382-85 User Group Tips & Expertise InstructWordStar August 83 44-45 COMFYL For Keyboard Entry InstructWordStar Oct 83 19-2M=3, L=58, W=79 Y THE PORTABLE COMPANION DIRECTORY N N 10,ISSUE ISSUE 7,PAGE PAGE(S) 30,SUBJECT SUBJECT 8,CATEGORY CATEGORY 10,SOFTWARE SOFTWARE perCalc Oct/Nov 8254-55 SuperCalc Trick & File TrnsferInstructSuperCalc Oct/Nov 8284-85 Printing SC W/Condensed Type InstructSuperCalc Oct/Noc 8287-91 SuperCalc Aids InstructSuperCalc Dec/Jan 8329 Sorcim SC Offers Good Deals Adv SuperCalc Dec/Jan 8388-93 SC Super Calendar (Program) InstructSuperCalc Feb/Mar 8322åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå*---------- program GETXTIME * Peter C. Hawxhurst * 04/04/84 * * This is a program (command file in dBASE II) to * retrieve the date and time from the memory of * the Osborne Executive computer, set the dBASE II * date, and display the current date and time. * * Hexidecimal conversions may be required to do * likewise in a BASIC program; memory location * values shown in this program are decimal. * *---------- ACKNOWLEGEMENTS * * 1. To myself and others who have need and * persistance. * 2. To Jim Hanlon who gave me the memory locations * for the Osborne Executive date as a start. * Jim's tireless direction and support are * forever to his credit. * 3. To algorithms, including portions of those in * examples supplied with Ashton Tate's dBASE II * that programmers forever supply. * 4. To Roy Robinson of the Osborne Computer * Corporation who lead me to the starting date * of the Osborne Exective's date function. * 5. To those who make creative, beneficial use * of this program and pass it along to others. * *---------- NOTE * * dBASE II is a trademark of Ashton-Tate. * CP/M is a trademark of Digital Research. * Osborne Executive is a trademark of Osborne * Computer Corporation. * *--------- PROGRAM NOTES * * Memory location 63733 holds the number of * 256 day periods since the 01/01/78 start * date of the Osborne Executive's date function. * Memory location 63732 is added to this value * to determine the Julien date from 722099 * (01/01/78). * * Memory locations 63734 & 63735 give values for * the hour and minute (63736 holds a value for * seconds, if you are intertested). * * The date on the Osborne Executive must be set * from CP/M+ using the DATE command before the * dBASE II date can automatically be set and * this program display the proper date and time. * * The rest is formulamatic and self explanitory. * *-------------------------------------------------- * set talk off store 722099+peek(63732)+peek(63733)*256 to x store int(x/365.26)+1 to y store x+int(395.25-365.25*y) to d if int(y/4)*4=y store 1 to d1 else store 2 to d1 endif if d>(91-d1) store d+d1 to d endif store int(d/30.57) to m store d-int(30.57*m) to d if m>12 store 1 to m store y+1 to y endif store y-1900 to y store str(m,2)+'/'+str(d,2)+'/'+str(y,2) to date set date to &date store x+(int(-x/7)*7) to x if x=0 store 'Saturday, ' to today else if x=1 store 'Sunday, ' to today else if x=2 store 'Monday, ' to today else if x=3 store 'Tuesday, ' to today else if x=4 store 'Wednesday, ' to today else if x=5 store 'Thursday, ' to today else store 'Friday, ' to today endif 5 endif 4 endif 3 endif 2 endif 1 endif 0 if m=1 # store today+'January 'to today else if m=2 store today+'February ' to today else if m=3 store today+'March ' to today else if m=4 store today+'April ' to today else if m=5 store today+'May ' to today else if m=6 store today+'June ' to today else if m=7 store today+'July ' to today else if m=8 store today+'August ' to today else if m=9 store today+'September ' to today else if m=10 store today+'October ' to today else if m=11 store today+'November ' to today else store today+'December ' to today endif 11 endif 10 endif 9 endif 8 endif 7 endif 6 endif 5 endif 4 endif 3 endif 2 endif 1 store today+str(d,2)+', 19'+str(y,2) to today store peek(63734) to hour store peek(63735) to min store hour-6*int(hour/16) to hour store min-6*int(min/16) to min if hour>12 store hour-12 to hour store ' p.m. '+today to today else store ' a.m. '+today to today endif if min<10 store '0'+str(min,1) to minute else store str(min,2) to minute endif store str(hour,2)+':'+minute+today to today erase ? ? today return  if m=11 store today+'November ' to today e‘ SBISSUEC ÑlPAGECÛlSUBJECTCâlCATEGORYCmSOFTWAREC m Aug/Sep 8296 Two NEW FREE Bulletin Boards 805~~408AMCALL Sept 83 53 Make Your Printer Do Right Adv CI Sftware Feb/Mar 8351 HomeTax (tm) Adv CP/M Jun 83 69 Software Bargains (?) Nevada Adv Ellis Comp Aug/Sep 8219 Montop - Save Desk-Top Space Adv Hardware Dec/Jan 837 Green Screen 11 Inch Diagonal Adv Hardware Dec/Jan 8393 Cover For OZ1 While Open/ReadyAdv Hardware August 83 7 Fan For OZ1  Adv Hardware August 83 52 Screen Magnifier (B & L) Adv Hardware August 83 59 WS+SC Templates+Index+Punch Adv Hardware August 83 87 Super Graf Graphics Adv None Sept 83 38 Formatting Foreign CP/M, Etc. Adv Osmosis Feb/Mar 8317 JRT Pascal 3.0 etc. $29.95 Adv Pascal Dec/Jan 8329 Sorcim SC Offers Good Deals Adv SuperCalc Apr/May 8327 SC Answer Card & News Letter Adv SuperCalc Aug/Sep 8213 OZ1 Frmt Software Priced To GoAdv Various Apr/May 8391 Wanted: Software Testers Adv Various Oct 83 68 Graphics for OZ1 (Was $49.95) Adv Hardware Dec/Jan 83102 New RCP/M in California Article AMCALL Jun 83 70-75 Spelling Checkers-DissertationArticle Aspen Feb/Mar 8374-77 Word Processing Typeset ConectArticle CP/M Jul 83 83-85 BB: Disk Doctor/Osbaud Rate GnArticle CP/M August 83 23-28 Me and My Ramblin' Osborne Article Dave Kline Dec/Jan 8350-53 Disk Doctoring, Sector, Track Article Diskettes Apr/May 8311-13 Adam Osborne: Big Problems Article Explnation Jun 83 32-35 Self Publishing Article FEDfind Aug/Sep 8215-18 DEL Key,Voltage,MBasic,Baud SwArticle Hardware Feb/Mar 8356-58 Double Density Article Hardware Apr/May 8392-96 Making Epson Dance Article Hardware Jun 83 27-30 OZ Exec Comments & Specs Article Hardware August 83 35-36 Modem Use by the Deaf Article Hardware Sept 83 14 OZ Executive Extras Built In Article Hardware Sept 83 74-75 Compact OZ1/Peripheral StationArticle Hardware Jun 83 39-42 Stanford Univ Using OZ1 Article Inform Oct/Nov 8220-24 FOG How to Start a User's Grp Article Instruct Apr/May 8366-71 I/O(Part 3) Good Dope: PrinterArticle Instruct Jun 83 64-68 User Group Suggestions Article Instruct August 83 14 Adam on Realities re ComputersArticle Instruct Aug/Sep 8234 Spellguard A Dissertatio$n Article Spellguard Jul 83 58 OZ1 In Narcotics Search Article User Group Jul 83 18-21 Wizard: Printer, PIP, MB Article Various August 83 83-87 Reviews of Software Article Various Dec/Jan 8314 Writer's Guidlines (Write OCC)Article WordStar Dec/Jan 8384-87 WS 3.0 vs WS 2.26 Article WordStar Apr/May 8334-38 Freelance Writing With OZ1/WS Article WordStar Apr/May 8347-51 Practical Editing (Part 1) Article WordStar Jun 83 22-24 WS Labels & Graphics Data Article WordStar Jun 83 25 WS Tips On Preventive Things Article WordStar Jun 83 58-62 Practical Editing (Part 2) Article WordStar Jul 83 67-70 Word Processing Made Easier Article WordStar August 83 62-67 B Elman: Processed Word Article WordStar Oct 83 14-15 8-bit vs 16-bit Adam OsborneArticle N/A Oct 83 24-28 Success Story Eric Ruff Article SuprGrafic Oct 83 43-46 Using Computer for Auctions Article Special Oct 83 58-61 BDOS Errors - How to Beat Article SuperCalc Dec/Jan 8348-49 C-BASIC - A Dissertation Comment CBASIC Sept 83 12-13 Adam Osborne: User Grp/Dealer Comment None Dec/Jan 83102 Oxgate 4159644097=415-965-4097Correct AMCALL Feb/Mar 8316 Correction dBASE II Oct/Nov 82Correct DBASE II Sept 83 78 Corrections Of July Issue Correct SuperCalc Dec/Jan 8396 OZ1 Update Data (Errors) Correct Various August 83 11 PIP and WordStar Correct WordStar Sept 83 16-17 ^QF Command For Searching WS Correct WordStar Oct/Nov 8265 dBASE II Explanation & Pitch Data DBASE II Aug/Sep 8284-85 ASCII & Appndx M MicroSft ManlGuide MBASIC Oct/Nov 8225 The Source InstructAMCALL Etc Sept 83 26-27 CBASIC Made Less Difficult InstructCBASIC/WS Feb/Mar 8359-64 Autost.Com (Program) InstructCP/M Jun 83 54-55 Serial Port Programming InstructCP/M August 83 19-21 The Wizard  InstructCP/M August 83 68-70 Formatting Disk Twist InstructCP/M Sept 83 31-35 Graphics For Epson Printer InstructCP/MMBASIC Aug/Sep 8262-63 Labels W/dBASE II & WordStar InstructDBASE II Dec/Jan 8380-83 dBASE II Basics of Use InstructDBASE II Feb/Mar 8392-95 dBASE II Easy Edit (Program) InstructDBASE II Apr/May 83102-104DBASE II Inventory Program InstructDBASE II August 83 47-50 Cables Tables Labels InstructDBASE II Sept 83 59-63 Using Database Simply(?) InstructDBASE II Dec/Jan 8367-70 New XDIR Use/Catalog File/DiskInstructDiskettes Oct/Nov 8244-47 I/O (Wrote BB: Make Tape Work)InstructHardware Dec/Jan 8342 How To Print Your BASIC ProgrmInstructMBASIC Apr/May 8315 MB How To Change A Line NumberInstructMBASIC Jun 83 20-22 MB Printout By Subroutine InstructMBASIC Jun 83 48-49 Dating Your Computer InstructMBASIC Jun 83 50-53 MB Problems Solved InstructMBASIC August 83 30-33 Interfacing External Devices InstructMBASIC Sept 83 28-29 Type Like Typewriter - No EditInstructMBASIC Sept 83 36-37 Random Seed For Games- AT LASTInstructMBASIC Sept 83 40-41 Logarithms & AntiLogs Base 10 InstructMBASIC Apr/May 8374-75 WS & MB File Saving W/DDT CP/MInstructMBASIC/WS Sept 83 18-24 Stock Market Use Of OZ1 InstructPubDomain Aug/Sep 8272-75 Programming W/SuperCalc InstructSuperCalc Oct/Nov 8254-55 SuperCalc Trick & File TrnsferInstructSuperCalc Oct/Nov 8284-85 Printing SC W/Condensed Type InstructSuperCalc Oct/Noc 8287-91 SuperCalc Aids InstructSuperCalc Dec/Jan 8388-93 SC Super Calendar (Program) InstructSuperCalc Feb/Mar 8322 SC-Instruction For NO Trouble InstructSuperCalc Apr/May 8323-26 SC Accuracy Getting 2 DecimalInstructSuperCalc Apr/May 8398-99 SC Aids For SuperCalc InstructSuperCalc Jun 83 76-79 SC Bowling Scorekeeper InstructSuperCalc August 83 75-80 Insulation Calculation  InstructSuperCalc Dec/Jan 8311 Print SC Files W/No Lines InstructSuperCalc Aug/Sep 8230 BDOS Error Bad Sector SolutionInstructVarious Apr/May 8361-63 Technical Tips SC/WS/CP~M InstructVarious Apr/May 83106-107Upgrades & WS/SC/CB/CPM ChangeInstructVarious Jun 83 36-37 Technical Tips DD/DB/WS/MB/Z80InstructVarious Jul 83 42-47 Interfacing External Devices InstructVarious August 83 39-43 Copyright Basics InstructVarious August 83 53-61 User Group Stuff InstructVarious Oct/Nov 8228 Labels 3-across w/WordStar InstructWordStar Oct/Nov 8277 WordStar Trick InstructWordStar Feb/Mar 8328-31 Mailmerge-Sorting Notes InstructWordStar Feb/Mar 8337-38 WS-Using For Form Filling InstructWordStar Apr/May 8379 How To Combine Files: W/CP/M InstructWordStar Apr/May 8382-85 User Group Tips & Expertise InstructWordStar August 83 44-45 COMFYL For Keyboard Entry InstructWordStar Oct 83 19-2%3 Answers to Questions - BaldwinInstructWS/SC/&& Oct 83 31-34 Automate Correspondence InstructWordStar Oct 83 35-38 Custom Loan Tables InstructMBASIC Oct 83 49-51 Install Sub vs Com ComparisonInstructWordStar Oct 83 62-69 Streamlined Spreadsheets InstructSuperCalc Sept 83 11 C. Itoh Printer Standards Letters WordStar Apr/May 8376-79 Updated User Groups Names/AddrListing Directory Feb/Mar 8349 OZ Accessory Catalog Listing Various Feb/Mar 83100 Source For Software: Name/AddrListing Various Feb/Mar 8335 WS-Common Commands Listing WordStar Jul 83 36-39 IEEE-488 > Understanding It Program Instruct Aug/Sep 8248-54 Cards A Graphic Beauty Program MBASIC Oct/Nov 8226-27 Beeping the OZ1 Beeper Program MBASIC Feb/Mar 8343-44 BASIC Approximate Stop Watch Program MBASIC Feb/Mar 8352-55 Tax Tips (Article) Program MBASIC Apr/May 8342-45 DUCK: A Game W/Moving GraphicsProgram MBASIC Apr/May 8353-55 Graphics Screenwriting Program MBASIC Jun 83 44-45 3-D Graphics: Direct Cursor CmProgram MBASIC Jun 83 50 RND: Conquer Predicability Program MBASIC Jul 83 32-34 TRS-80 Print @: Conversion Program MBASIC Feb/Mar 8385-91 Illustrative SC (Bar Chart) Program SuperCalc Jul 83 74-78 SC Budget/Check Program SuperCalc Feb/Mar 8365-67 Creating PRINT Statements Program WordStar Jul 83 52-53 Printing Squeezed Files User GrpCP/M Aug/Sep 8222-24 FOG Library Listing User GrpPubDomain Sept 83 44-51 User Groups Various Various Sept 83 67-69 Reviews Of Software Various Various Oct 83 52-56 UserGroup Data WS/SC/& dBASE II Feb/Mar 8321 Mailmerge-Hints For Better UseWizard WordStar  Sept 83 40-41 Logarithms & AntiLogs Base 10 InstructMBASIC Apr/May 8374-75 WS & MB File Saving W/DDT CP/MInstructMBASIC/WS Sept 83 18 This is the release date of the disk. !K"Kÿÿ$K%K&K'K(K)Kÿÿ+K,K-K.K/Kÿÿÿÿ2K3K4K5K6K7K8K9K:K;KK?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzK{K|K}K~KK€K�K‚KƒK„K…K†K‡KˆK‰KŠK‹KŒK�KŽK�K�K‘K’K“K”K•K–K—K˜K™KšK›KœK�KžKŸK K¡K¢K£K¤K¥K¦K§K¨K©KªK«K¬K­K®K¯K°K±K²K³K´KµK¶K·K¸K¹KºK»K¼K½K¾K¿KÀKÁKÂKÃKÄKÅKÆKÇKÈKÉKÊKËKÌKÍKÎKÏKÿÿÑKÒKÓKÔKÕKÖK×KØKÙKÚKÛKÜKÝKÞKßKàKáKâKãKäKåKæKçKèKéKêKëKìKÿÿîKïKðKñKòKóKôKÿÿöK÷KøKùKúKûKüKýKþKÿKLCHEX .DOC F1 34 5248 41 CHKPRINT.CMD 23 0D 2560 20 CHXA .DBF 03 70 1024 8 CHXB .DBF 09 1F 1536 12 CHXLOAD .CMD E5 F7 2560 20 EDIT .CMD 4C 7A 2048 16 FINDCOD .CMD 6C 39 2048 16 FINDNAM .CMD DF 34 2048 16 INDXA .NDX A2 4A 1024 8 INDXB .NDX 1C 11 1024 8 KANCELS .CMD F1 E3 3072 24 MENU .CMD E6 CE 3584 28 SELECT  Fog Library Disk FOG-CPM.057 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. dBASE II applications. Filename Description -06-00 .86 This is the release date of the disk. -CPM057 .DOC This is the description of the disk contents. EXPENSE .CMD A0A6 2K [Mileage Expenses 1 of 8] dBASE II menu-driven program to keep track of mileage expense EXPENSE .DOC 1AB3 5K [Mileage Expenses 2 of 8] EXPENSES.DBF 407B 1K [Mileage Expenses 3 of 8] MILEAGE .DBF A542 1K [Mileage Expenses 4 of 8] MONTHREP.CMD BC1E 4K [Mileage Expenses 5 of 8] ADDMILES.CMD CB50 1K [Mileage Expenses 6 of 8] ADDXPENS.CMD 186D 1K [Mileage Expenses 7 of 8] EDITEXP .CMD 461E 2K [Mileage Expenses 8 of 8] CHEX .CMD 584E 3K [CHEX 1 of 15] dBASE II menu-driven program which handles two different checkbooks. CHEX .DOC F134 6K [CHEX 2 of 15] CHKPRINT.CMD 230D 3K [CHEX 3 of 15] CHXA .DBF 0370 1K [CHEX 4 of 15] CHXB .DBF 091F 2K [CHEX 5 of 15] CHXLOAD .CMD E5F7 3K [CH&EX 6 of 15] EDIT .CMD 4C7A 2K [CHEX 7 of 15] FINDCOD .CMD 6C39 2K [CHEX 8 of 15] FINDNAM .CMD DF34 2K [CHEX 9 of 15] INDXA .NDX A24A 1K [CHEX 10 of 15] INDXB .NDX 1C11 1K [CHEX 11 of 15] KANCELS .CMD F1E3 3K [CHEX 12 of 15] MENU .CMD E6CE 4K [CHEX 13 of 15] SELECT .CMD E679 2K [CHEX 14 of 15] ALTER .CMD B309 2K [CHEX 15 of 15] DEMO .CMD 2321 2K [Demonstration 1 of 11] A collection of dBASE II demos. DEMOCHC .CMD 3287 1K [Demonstration 2 of 11] MEMVAR .MEM B209 3K [Demonstration 3 of 11] RULEDEMO.CMD 03F9 2K [Demonstration 4 of 11] dBASE II ruler lines. SQRT .DBF 6E1B 1K [Demonstration 5 of 11] SQRT .DOC 012B 1K [Demonstration 6 of 11] SQRTDEMO.CMD A183 2K [Demonstration 7 of 11] Add square roots to your dBASE command files. UGRAPH .CMD B5BB 5K [Demonstration 8 of 11] Bar graphs with dBASE II. UGRAPH .DBF 2A4A 1K [Demonstration 9 of 11] UGRAPH .DOC 4EBE 2K [Demonstration 10 of 11] DEMGRAPH.CMD CFBD 6K [Demonstration 11 of 11] Graphics with dBASE II. DFORMAT .COM B420 12K [dBASE format 1 of 2] Align and indent your dBASE II command files. DFORMAT .DOC 0CC2 3K [dBASE format 2 of 2] DSTRIP .COM BB1A 11K [dBASE Strip 1 of 2] Condense your dBASE II command files without removing comment lines. DSTRIP .DOC FB91 2K [dBASE Strip 2 of 2] RECOVER .COM 310A 14K [Recover dBASE 1 of 2] Program to recover trashed dBASE II data files. Turbo Pascal source code is included. RECOVER .PAS 8708 4K [Recover dBASE 2 of 2] UNIQUE22.CMD 946E 7K ver. 2.2 [Unique records 1 of 2] Utility to purge duplicate records from your dBASE II data files. Note that this is encrypted so that you cannot list it UNIQUE22.DOC DCA6 10K ver. 2.2 [Unique records 2 of 2] GETXTIME.CMD A57F 5K dBASE II program to date and time from the Osborne Executive memory and use it to set the dBASE DATE(). PORTCOMP.DBF 5B88 10K [Portable Companion 1 of 3] Two dBASE II data files (one sorted on the software field, one sorted on the category field) listing Portable Companion articles from Aug/Sep 82 through Oct 83. Also uncloses a print format file. TPCDIREC.DBF FA75 10K [Portable Companion 2 of 3] TPCDIREC.FRM 4FC7 1K [Portable Companion 3 of 3] .DOC" TO malt SET ALTE TO &malt SET ALTE ON DO WHILE diskno="&mdiskno".AND. .NOT. EOF() IF diskno="000" IF dfile="FOG-DOS" ? " åå'ååååå