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}~UNIQUE22CMD8UNIQUE22DOCPTPCDIRECDBFPTPCDIRECFRMGETXTIMECMD'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 CDATENlITEMC lREASONClAMOUNTNl ' 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 CDATENlDESTINATC lBEGMILESNlENDMILESNl  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" * ' ?' ******************3NUMBERNlDATEClPAYEEClANlPURPOSEClBNlCANLmPRNTLm 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 3NUMBERNlDATEClPAYEEClANlPURPOSEClBNlCANLmPRNTLm 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 GOODdACTIONLdHOLDdBLASTdOFFdPREPTdMONAWdMONBdMONCgdMONDodCDATEdVARIABLE 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,1TESTCl 888Ä8 "ˡ$צ Can't find ::9 ƀצ:9 ƀ:SYSTEM.SWAPDISK&:(7,*SYSTEM.WRK.CODE[*]תצTo what codefile? ( צO,á<צ$88š8(8X+,,"ˡ  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  XNlYNlLABELC 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 IncA Osborne 1al selectedP)(= ERT()~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!1 ;Ͳb/Ŕ!dFORMAT (c) Charles Perry, 1986.͐bR͐bŔdFORMAT formats dBASE ́CMD́ files. It lines up͐bŔ-DO, IF, and CASE loops correctly, making the ́CMD͐bŔ0file easier to read and debug. The Tab Size is͐bŔcurrently set to *&!́ spaces;you can change this to͐bŔ0your own preferred value by pressing .͐bŔ0Filenames can be entered in the command line, eg͐bŔA>DFORMAT FILENAME.́CMD́ Send feedback,or $10 for͐bŔ0Turbo Pascal program listing to: Charles Perry,͐bŔ07 Bowaga St,Indooroopilly, Brisbane, Queensland,͐bŔAustralia, 4068.͐bR͐b!A!o&}2<*<&!!/5z""!< !!.e.!< |!R5!>Ͳ!< !.e.!< |!!5!>Ͳ*>&!:e.l !> !.e.!> !>Ͳ!k=U"|!a!"z*|*z͇EX'*|"~*~*v+n&!|g}o}2}<*v#"v*}<&!{;Ͳ!{; m!͛!{;!{; mn&!;N}o}2z<*z<&6(R! !2q! ́'Enter your preferred Tab Size (0-9) [ ]!!b!8!v;b*v;&!NEʭ(#*v;&Q!0!9kEʉ(*v;&!0R}2*v;&R͐bR͐b!F; DFORMAT.COM=!F;z5!aEH)Ŕ**Not found: DFORMAT.COM͐bÈ)!F;!*5(&gb!F;SbŔInstallation successful͐b#!5;Ͳ"D;*D;!aEE*R*D;J!! b*D;!͛E)Ŕmissingb)ŔextrabR! !5; !qb*D;J!͛E/*R!sbŔ detected͐b*&*<*>&"/;R*/;q!= !q͐b!<[*/;q!= !q͐F%ä*!"=!"=!"=!}2>!"&!:e.l !> .$$$<b!<F%c**&Eʑ.!=Ͳ͓'}2,;*,;&! tEL+!= *,;&e.!=ͲË+*,;&!NEʋ+!}2*!=:#!= m!͛Eʈ+Ý+Ë+Ñ.*,;&! NE+!=:#!= !! 5 !";Ͳ!";"!"; !!5DO\E.,WHIL!"; |!tE,!}2>CASE!"; |!tE+,!}2>!-!"; !!5ENDD\EX,!}2>!-!"; !!5ENDI\Eʂ,!}2>!-!"; !!5ENDC\Eʬ,!}2>!-!"; !!5ELSE\E,!}2>!-!"; !!5IF\E,!}2>!-!= \E-!}2>!-!}2>*>&RM-F**+R͐bͩ"*=J*=J*=J!NE.!> R!q́ formatted successfully͐b'/*=ENDDO͌)*=ENDIF͌)*=ENDCASE͌)ͩ"R͐b!<F%!k=SbF%!k=\b! nb!:#! \Eʁ/ !E0! oEʬ/! !>Ͳ/R! ́Enter name of ́CMD́ file to format: b!>$!>"!> %!> !e.\E02(0!> \E60R͐b0R͐b!k=!> =!k=z5!aEʲ0ŔFile !> !q́ not found͐b! ͪEʦ0#ï0R͐b0! \E0R͐bŔ Formatting !> !qb!'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 IncA Osborne 1al selectedP)(= ERT()~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!,j;Ͳr+Ŕ dSTRIP (c) Charles Perry, 1986.͐bR͐bŔdSTRIP squashes dBASE ́CMD́ files. Unlike some͐bŔ0other squash programs, it does not remove͐bŔ0comments, nor does it clip the dBASE keywords.͐bŔ0The result is a file which is not quite so͐bŔ0completely squashed, but one which retains its͐bŔ0readability and maintainability. Also, it can be͐bŔ0'unsquashed' by using the companion program,͐bŔ0dFORMAT. Filenames can be entered in the command͐bŔline, eg A>DSTRIP FILENAME.́CMD́ Send feedback,͐bŔ0or $10 for Turbo Pascal program to: Charles͐bŔ0Perry, 7 Bowaga St,Indooroopilly, Brisbane,͐bŔQueensland, Australia, 4068.͐bR͐b!A!o&}2<*<&!!/5zD#"!< !!.e.!< |!R5!>Ͳ!< !.e.!< |!!5!>Ͳ*>&!:e.l !> !.e.!> !>Ͳ!r=U"|!a!"z*|*z͇E'*|"**v+n&!|g}o}2<*v#"v*<&!;Ͳ!; m!͛!;!; mn&!;N}o}2<*<&ê(!}2j;!!y;͡!!s;͡!<*>&!:e.l !> .$$$<b!<ͷ%c*(&E{*!=Ͳ(}2;*;&! tET)!= *;&e.!=ͲÓ)*;&!NEʓ)!}2(!=ͬ#!= m!͛Eʐ)å)Ó){**;&! NE)!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=Sbͷ%!r=\b! nb!ͬ#! \Eʑ+ !E,! oEʼ+! !>Ͳ+R! ́Enter name of ́CMD́ file to strip: b!>ͅ$!>N#!> n&!> \E*,R͐b,R͐b!r=!> =!r=z5!aEʦ,ŔFile !> !q́ not found͐b! ͪEʚ,W$ã,R͐b,! \E,R͐bŔ Stripping !> !qb͕'ͭ'ͦ(Ñ+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 !Ph7!<.DBF!Ph7!!SCON:!!2!B7ͧ;RECOVER - a program to recover trashed dBASEII tm databasesH7͹7;6!B7Brett Bonner - Memphis, TNH7͹7;6!^!Ϳ6Ҋ!B76;To use RECOVER supply a origin file and a destination file.H7͹7;6!B75 RECOVER will automatically place the .dbf extensionH7͹7;6!B7ͦ on the file namesH7͹7;6!B7;6!B7" ex. d>RECOVER d:infile d:outfileH7͹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!B77 You will have some garbage at the end of your file soH7͹7;6!B7 after using RECOVER:H7͹7;6!B7 1. go into dbaseH7͹7;6!B7M 2. DELETE the garbageH7͹7;6!B7~ 3. and COPY to a newfileH7͹7;6!!^! Ϳ6ҳ!!!J#Ê!!!! ! $+͐!Ph7!4!4!44!Ph7!!! ! $J#!!^! Ϳ65!!!J# !44!4!44!Ph7!B7gReading H7͹7!H7͹7͉ and writeing H7͹7!4H7͹7;6!B7ͶAssigning filesH7͹7;6!3 !!!- e*- !Ϳ6#!B7!H7͹7! does not exist - RECOVER abortedH7͹7;6!!!4!!!B7ZBeginning transferH7͹7;6!}2!"+ !3 !"}/o:&o}/o}X!3 !͂.}2:&o!Ϳ6ҹ! }2*+ *+ #"+ !}2*+ #"+ !}2*+ #"+ ]4!!:&o0U!B7E)Error writing character - RECOVER abortedH7͹7;6!}2p!!!- *- !Ϳ6:&o}/o}ұ!B7͛Error closing H7͹7!4H7͹7;6!B7RECOVER compeleted normallyH7͹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*XkéA2""""G2*****2*͆1s#rA2" " """G2****! * s**2* ͆1s#rA2"+"-G2N6*-^!Ϳ6*-S@:PASTMP00.$$$!h7!!*-! !8!!!!^#s!!^!96!!!0s!!!!^#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!*-K6s#r!1^#V!7"!1!s#r5A2""G2N6*8^!Ϳ6**!*!Ϳ6!B7;6!B7ͮUnable to automatically close: H7͹7*H7͹7 in RESETH7͹7;6!B7;6!B7Program abortedH7͹7;6>2*! !!R8*8!s*!Ϳ6W*}/o|/g#"*@!se*@!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#rW*6(> W!1!*K6s#r!1^#V!7!1!s#r*<!s*;!s*4*s#r*!7*6!s#r*@~!1^#V!1^#V4^#V&) *<!s*;!s"A2"}""G2N6!1*s#r*8^!Ϳ6w*9*6^#Vs#r4,*?^!7*@^}8*4^#V!'7*!!s*9!s#r!!+"#͜1"*#"*+"|4,5**4^#V!R8*9!s#r4,t*?^!Ϳ6t*!!s*9!s#r4,ë*8^!6ҫ*9*6^#Vs#r4,*8^!Ϳ6*8^!Ϳ6}!1!*K6s#r*}͆1s#r *}!s#r*8!sN6A2"""G2*8^!6Iz**&!1!s#r*!s#r*8!sÓA2"""G2*!6Һ!"**!!*8!!*s!"* U A2}2"G2:"&o!a6:"&o!z7}C :"&o!}o|g}2":"&o}2":"&oA2""""""G2!1!s#r*"^!7*"!^! Ϳ6}Ү *"!!J#s *"*"!h7*"^!7"!@}2"!"  #!8!"  #!8*"!^!:Ϳ69!!""*"!^}2"?!!""*"""!""*"*"^!.ͤ2!:ͤ2ͅ3:3}/o*"*"'7}o*"*"^7}!!"*"+*"*"^s*"#""*"#""O!*"*"^!.Ϳ6*"*"^7}P"*"#""!""*"!'7*"*"^7}P"!"*"+*"*"^s*"#""*"#"""*"!!R8*"!:"&o!@{ozgs!"*"!!8!"*"! !8*"8!s"A2"C#"E#G2*C#!}/o|/g#Ϳ6(#!%<^}2?#7#*E#<^}2?#:?#&oM#A2"#"#"#G2*#*#*#*#*#*#^*#*#!{ozg{ozg8*#!*#^*#{ozgs#A2}2$G2!1^#V!:$&os!1^#V!1^#V4^#V(×$$A2"&"&G2!}2&!:%&o+" &#͜1" &* &#" &* &+" &|ʈ$!&^#V!&^#V4o$Ï$*&!"&*&!"&@$!}2&:&&oA2"%!%!Qh7G2!}2&!%!^}2%*%^}2%!}2%!%^}2%:%&o:%&o7:&&o}/o}x%:%&o*%:%&o^Ϳ6:%&o:%&o{ozg!:%&o6}f%*%:%&o!%!$}2&:%&o!}2%$:&&җ%:%&o!{ozg"%Ý%!"%*%&A2"K&"M&G2N6!1!*M&K6s#r!1!s#rU&!1^#V8^!6ң&!1^#V!1^#V4^#V&!1^#V!^}2&&!1^#V!^}2&!1^#V!1^#V4^#V&:&&o&A2"("(G2*(;!s!1*(s#r*(<~-'*(;!s()*(@~(*(<*(!^!Ϳ6*(<^}os*(!^! Ϳ6}2 (: (&o*(<^}Ұ'*(;!s: (&o*(8^!Ϳ6}')*(<^*(;^}(*(!! s(A2"/("1(G2!1*1(s#r4,<((A2")G2!}2)*)Y(CON:1x(*)8!s!}2)(*)̈́(LST:1ң(*)8!s!}2)(*)ͯ(KBD:1*);(TRM:1}(*)8!s!}2):)&oA2")G2!}2)!)! !~2e2*)^!6*)^!'7}0)Ç)!*)^+")#͜1")*)#")*)+")|ʀ)*)*)^!)N2:3}/})Ç)J)!}2):)&o)!1^#V=!$,!8!1^#V8^!Ϳ6c**$,!!K6s*$,^! Ϳ6-*!! K6"&,]**$,^!Ϳ6]*!! K6"&,!!K6"&,#,å*!1^#V8^!Ϳ6ҥ**$,!!K6s*$,^!7}*#,!1^#VA~*!1^#V<!s#,!!1^#V9^#V+"(,#͜1"*,*(,#"(,**,+"*,| ,!1^#V",,*,,?^!Ϳ6Ҏ+*,,?!s*,,A^}/Ҏ+!*,,BK6"&,!1!*,,K6s#r!1^#V!7Ҏ+*,,A!s*,,A~+*$,!s*,,<!s*,,6!s#rN6#,+*$,*,,B*,,?^^s*,,?*,,?^#s*$,#"$,*!1^#V6!s#rN67,,A2}2h.G2!1^#V"t.*t.?^!Ϳ6Ң,!1!*t.BK6s#r!1!*t.K6s#r*t.?!s*t.B*t.?^:h.&os*t.?*t.?^#s!1!s#r!1^#V=!l.!8!1^#V8^!6.!1^#V"v.!*v.9^#V+"r.#͜1"x.*r.#"r.*x.+"x.|.*l.^}2n.:n.&o! Ϳ6u-e.*v.8^!Ϳ6-!:n.&oK6"p.:n.&o! Ϳ6Ҿ-!! K6"p. .!:n.&oK6"p.*v.8^!Ϳ6 .:n.&o! Ϳ6 .!! K6"p.*l.#"l.B-d.!!1^#V9^#V+"r.#͜1"z.*r.#"r.*z.+"z.|d.*l.^1,*l.#"l.=. .Å.0!1^#V=!0!8!1^#VA~.!1^#V<!s0!"0*0!1^#V9^#V7/!1^#V"0*0?^!Ϳ6l/*0?!s*0A^}/l/!*0BK6"0!1!*0K6s#r!1^#V!7l/*0A!s*0A~Ң/*06!s#r*04*0+s#rN60/*0*0B*0?^^s*0?*0?^#s*0#"0*0#"0.!1^#V6!s#rN6A2"0"0G2!1*0s#r*0"0*06^#V*04^#VͿ6R0.*06!s#r*0<^}/Ҝ0*0*06^#V^}20*06*06^#V#s#rã0!}20:0&o0A2}2}1"1"1G2!1!s#r!1*1s#r*16^#V*14^#VͿ6$14,*16!s#r*1*16^#V:}1&os*16*16^#V#s#r͆1!7}2s1:s1&oÉ1*1"1*1"16ڽ1{ozg##*1!*1"<2211!*<2!111111111111111111N2;2G)2Ay62#-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|¿22*3:3_!9:3_!2~Gw @"3"3"3!9͚2*3|¿2"3*3|¿2}ڿ2332*3#"3*3{z32*3"3!9DM! 9^#V"3|3}_F:3_!2~3!"9*3u3"3!9! 9 w#”3! 9*3"3!9! 9 /w#µ3! 9*3"3!9! 9 w#3! 9*34# y3!yMD!`iO>3}o3y.444!!3y.444.4344)4344B4"4^#V#"4^#V#"4"4*4*4'7ڱ4*4*4*46ڱ4*4*4{_zW*4^#V*4#)*4^#V!45!55"4624527"8652:6O:455*468:45G::6245_!55"46*86>O>274y276>266!664 i8 i8Q6{6A2"6"6G2*6M*6o&"6*6"6*6!!K6"6~#ʼ676$767-7}6|7!`i-7z6}|7676-7z6{z76-7}7|6!`i-76-76&}o&}o"1""!R&"!#"ɯ27"7"7YPzʦ7ʏ7ڏ7>27}27Ú7"7"7"7#+n&*7*77*7|7}o|g7#s8{Ni8#z88x.8~# x$8<8xP8 + +~+ xF8{q#{Y8s8Y͊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 lPAGEClSUBJECTClCATEGORYCmSOFTWAREC 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 lPAGEClSUBJECTClCATEGORYCmSOFTWAREC 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/K2K3K4K5K6K7K8K9K:K;KK?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzK{K|K}K~KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLCHEX .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" ? " '