IMD 1.16: 31/05/2007 19:45:26 FOGCPM.098 --FOGCPM098AC101 CMDG AC101 DOC AC101DOCCMDAC101DOCCMD4 !"#$%-07-00 86 AC101FRMCMD&'(AC101GL CMD)AC101LTRCMD *+,-AC101REGCMD!./012ADDREC CMD345ANCHART CMD6789ANCHART DBF:;<GENJOURNDBF=PAYSTUB CMD(>?@ABPRTDAT CMDCDEPRTJRN CMD(FGHIJPRTJRN DBFKRECEIPTSCMDLMNOREGENFILDBFPSECTICKSCMDQRBUDGET COMSBUDGET DOCTUVWXYZ[\]^_`abcAUTOST COMdefBUDG BASghijklmnopqrstuvBUDG BASKwxyz{|}~-CPM098 DOCBUDGET INFCOPYRITEGRFEDITBUDGBASiFIXTRANSBAS:R COMSEARCH BAS<SUMMARY DOC!UP SUBThis is the disk name. *************************************************** * AC101.CMD - V1.00 - * THE MAIN PROGRAM WHICH CONTROLS THE * AC101 PROGRAM FLOW. *************************************************** ERASE SET TALK OFF STORE DATE() TO MTODAY STORE 0 TO MFLAG ? CHR(07) ? "===================================================================" ? "Released to: FOG RBBS-RCP/M #29 BOSTON, MA. 02124 TEL:(617)288-4667" ? "===================================================================" @ 7,12 SAY "WELCOME TO THE WORLD OF" @ 9,12 SAY " ACCOUNTING 101" @ 10,12 SAY " V1.00" @ 12,6 SAY "(C) COPYRIGHT 1986 ROBERT D. SAUNDERS" @ 13,6 SAY " ALL RIGHTS RESERVED" @ 14,6 SAY " RELEASED MARCH 10, 1986" @ 18,2 SAY "This program is not to be sold for profit." @ 22,1 SAY " " DO WHILE MFLAG < 75 STORE MFLAG + 1 TO MFLAG LOOP ENDDO *************************************************** SET TALK OFF ERASE SET EJECT OFF STORE " " TO CHOICEL ? CHR(07) @ 1,10 SAY "****** INTRODUCTION MENU ******" @ 2,20 SAY MTODAY @ 3,1 SAY "1. SKIP TO MAIN MENU." @ 5,1 SAY "2. PRINT START-UP DOCUMENTATION." @ 7,1 SAY "3. PRINT AUTHOR'S COVER LETTER." @ 9,1 SAY "4. DISPLAY WELCOME FRAMES." @ 11,1 SAY "5. PRINT REGISTRATION FORM & INSTRUCTIONS." @ 13,1 SAY "6. EXIT TO dBASE II." @ 15,1 SAY "7. QUIT dBASE II." @ 17,1 SAY "8. SET TODAY'S DATE." @ 22,1 SAY " " WAIT TO CHOICEL DO CASE **************** CASE CHOICEL = "2" DO AC101DOC DO AC101 **************** CASE CHOICEL = "3" DO AC101LTR DO AC101 ************** CASE CHOICEL = "4" DO AC101FRM DO AC101 ************** CASE CHOICEL = "5" DO AC101REG DO AC101 ************** CASE CHOICEL = "6" CANCEL ************** CASE CHOICEL = "7" QUIT ************** CASE CHOICEL = "8" STORE " " TO MTODAY ACCEPT "ENTER TODAY'S DATE (MM/DD/YY)" TO MTODAY SET DATE TO &MTODAY ? DATE() DO AC101 ENDCASE ******************** INIT ************************ STORE " " TO MEND STORE " " TO MHNAME STORE " " TO MHYEAR STORE " " TO MHQUART STORE DATE() TO MHDATE DO WHILE .NOT. MEND = "END" STORE DATE() TO MDATE STORE 0 TO MRECS STORE " " TO CHOICES2 STORE " " TO CHOICEBK STORE " " TO CHOICES STORE " " TO CHOICE1 STORE " " TO CHOICE2 STORE " " TO CHOICE3 STORE " " TO MPRTJRN ERASE SET TALK OFF ******************* START ************************ ERASE ? CHR(07) @ 1,0 SAY " " @ 1,15 SAY "****** MAIN MENU ******" @ 3,0 SAY "SELECT ONE OF THE FOLLOWING:" @ 5,2 SAY "1. PROCESS BOOKKEEPING RECORDS." @ 7,2 SAY "2. PROCESS SECURITIES RECORDS +" @ 9,2 SAY "3. PROCESS IRS FORM 1040 RECORDS +" @ 11,2 SAY "4. PROCESS CHECKBOOK RECORDS +" @ 13,2 SAY "5. PROCESS OTHER RECORDS +" @ 15,2 SAY "6. EXIT TO dBASE II." @ 17,2 SAY "7. QUIT dBASE II." @ 19,2 SAY "8. RETURN TO INIT MENU." @ 21,2 SAY " + DENOTES: AC101GL PROGRAM IS REQUIRED." @ 22,2 SAY " " WAIT TO CHOICES **************** PROCESS BOOKKEEPING ************* IF CHOICES = "1" ERASE ? CHR(07) @ 1,10 SAY "****** BOOKKEEPING MENU ******" @ 3,0 SAY "SELECT ONE OF THE FOLLOWING:" @ 5,2 SAY "1. PROCESS JOURNAL RECORDS." @ 7,2 SAY "2. PROCESS LEDGER RECORDS +" @ 9,2 SAY "3. PROCESS CHART OF ACCOUNTS." @ 11,2 SAY "4. RETURN TO MAIN MENU." @ 22,2 SAY " " WAIT TO CHOICEBK ENDIF DO CASE **************** PROCESS SECURITIES ************** CASE CHOICES = "2" DO AC101GL.CMD **************** PROCESS IRS FORMS *************** CASE CHOICES = "3" DO AC101GL.CMD **************** PROCESS CHECKBOOK *************** CASE CHOICES = "4" DO AC101GL.CMD **************** PROCESS OTHER ******************* CASE CHOICES = "5" DO AC101GL.CMD ****************** CANCEL ************************ CASE CHOICES = "6" CANCEL ****************** QUIT ************************** CASE CHOICES = "7" QUIT ****************** INIT ************************** CASE CHOICES = "8" DO AC101 ENDCASE ******************* PROCESS JOURNAL ************** IF CHOICEBK = "1" STORE " " TO CHOICE STORE " " TO CHOICE2 STORE " " TO CHOICE4 STORE " " TO MMONAME ? CHR(07) ERASE @ 1,10 SAY "****** JOURNAL MENU ******" @ 2,0 SAY "SELECT ONE OF THE FOLLOWING:" @ 4,2 SAY "1. ADD NEW RECORDS." @ 6,2 SAY "2. SORT JOURNAL BY DATE." @ 8,2 SAY "3. FIND A RECORD." @ 10,2 SAY "4. EDIT A RECORD." @ 12,2 SAY "5. DELETE A RECORD." @ 14,2 SAY "6. PRINT THE JOURNAL (FORMATTED)." @ 16,2 SAY "7. PRINT A REPORT +" @ 18,2 SAY "8. RETURN TO MAIN MENU." @ 20,2 SAY "9. LIST THE JOURNAL (NON FORMATTED)." @ 22,2 SAY "0. SUMMARIZE JOURNAL ACCOUNTS +" WAIT TO CHOICE ***************** ADD NEW RECORDS **************** DO CASE CASE CHOICE = "1" ERASE USE B:GENJOURN ERASE SET TALK OFF STORE " " TO MDR:DESCR STORE " " TO MCR:DESCR STORE 0.00 TO MAMT STORE " " TO MANS STORE " " TO MSELADD STORE 00.00 TO MDR:AMT STORE 00.00 TO MCR:AMT STORE " " TO MSALAN STORE " " TO MCASHAN STORE " " TO MFWHAN STORE " " TO MFICAAN STORE " " TO MSWHAN STORE " " TO MINSH ********************** DO WHILE .NOT. (MSELADD = "8" .OR. MANS = "N") STORE " " TO MDR:AN STORE " " TO MCR:AN STORE " " TO MDATEOLD STORE " " TO MDR:DESCR STORE " " TO MCR:DESCR STORE " " TO MSELADD ? CHR(07) ERASE COUNT TO MREC IF MREC > 500 ERASE @ 10,1 SAY "WARNING: THERE ARE MORE THAN 500 RECORDS" @ 11,10 SAY "IN THE GENERAL JOURNAL - THIS DATABASE" @ 12,10 SAY "SHOULD BE DIVIDED INTO SMALLER TIME PERIODS." @ 13,10 SAY "IF YOU ARE NOW USING A FULL YEAR AS THE" @ 14,10 SAY "FISCAL PERIOD, YOU SHOULD CONSIDER HALF" @ 15,10 SAY "YEAR OR QUARTERLY PERIODS." @ 16,10 SAY " TO CONTINUE." WAIT ERASE ENDIF STORE MREC + 1 TO MREC @ 1,0 SAY "ENTER RECORD:" @ 1,15 SAY MREC @ 2,0 SAY " " ************** ENTER DATA MENU *************** @ 3,0 SAY "SELECT ONE OF THE FOLLOWING:" @ 5,2 SAY "1. Enter GENERAL RECEIPTS." @ 7,2 SAY "2. Enter CHECK STUBS." @ 9,2 SAY "3. Enter SECURITY TICKETS." @ 11,2 SAY "4. Enter GASOLINE RECEIPTS." @ 13,2 SAY "5. Enter PAYROLL STUBS." @ 15,2 SAY "6. Enter CREDIT CARD RECEIPTS." @ 17,2 SAY "7. Enter CASH RECEIPTS." @ 19,2 SAY "8. RETURN TO MAIN MENU." @ 22,2 SAY " " WAIT TO MSELADD IF .NOT. (MSELADD = " " .OR. MSELADD = "8") DO RECEIPTS ENDIF LOOP ENDDO **************** SORT THE JOURNAL *************** CASE CHOICE = "2" ERASE @ 15,10 SAY "SORTING THE JOURNAL BY DATE." USE B:GENJOURN SORT ON DATE TO B:TEMP USE B:TEMP COPY TO B:GENJOURN USE B:GENJOURN ERASE @ 15,15 SAY "SORT COMPLETE." DELETE FILE B:TEMP **************** FIND A RECORD ****************** CASE CHOICE = "3" ERASE STORE " " TO MRECDAY @ 9,2 SAY " " ACCEPT "ENTER DATE OF RECORD (MM/DD/YY)" TO MRECDAY USE B:GENJOURN DISPLAY FOR DATE = MRECDAY WAIT **************** EDIT A RECORD ****************** CASE CHOICE = "4" ERASE USE B:GENJOURN ? "USE: W TO WRITE (SAVE) EDITS." ? "USE: Q TO QUIT (WITHOUT SAVING) EDITS." ? "USE: TO EXIT EDIT MODE." ? "USE: ARROW KEYS TO MOVE CURSOR IN EDIT MODE." ? "--------------------------------------------------" ? " " EDIT **************** DELETE A RECORD **************** CASE CHOICE = "5" STORE 0 TO MDELREC STORE " " TO MEND ERASE USE B:GENJOURN DO WHILE .NOT. MEND = "END" ERASE @ 1,1 SAY "TO DELETE A RECORD ENTER RECORD #:" @ 2,1 SAY " " INPUT TO MDELREC GOTO MDELREC DISPLAY @ 10,1 SAY "IS THIS THE RECORD TO BE DELETED? (Y/N)" ACCEPT TO MANS IF MANS = "Y" .OR. MANS = "y" DELETE ENDIF ERASE @ 18,1 SAY "ARE MORE RECORDS TO BE DELETED? (Y/N)" ACCEPT TO MANS IF .NOT. (MANS = "Y" .OR. MANS = "y") STORE "END" TO MEND ENDIF LOOP ENDDO STORE " " TO MEND ************** PRINT THE JOURNAL *************** CASE CHOICE = "6" DO PRTJRN ***************** PRINT REPORT ****************** CASE CHOICE = "7" ERASE DO AC101GL ***************** RETURN ************************ CASE CHOICE = "8" ERASE ***************** LIST JOURNAL ****************** CASE CHOICE = "9" DO PRTDAT ************* SUMMARIZE ACCOUNTS **************** CASE CHOICE = "0" ERASE DO AC101GL ENDCASE ************************************************** ENDIF IF CHOICEBK = "2" ERASE DO AC101GL ENDIF **************** PROCESS ANCHART ****************** IF CHOICEBK = "3" STORE "7" TO CHOICEAN STORE " " TO MEDAN STORE " " TO MANS STORE " " TO MDELAN DO WHILE .NOT. CHOICEAN = " " ? CHR(07) ERASE @ 2,10 SAY "****** CHART OF ACCOUNTS MENU ******" @ 4,2 SAY "1. DISPLAY CHART OF ACCOUNTS." @ 6,2 SAY "2. EDIT CHART OF ACCOUNTS." @ 8,2 SAY "3. ADD ACCOUNT TO CHART." @ 10,2 SAY "4. SORT CHART OF ACCOUNTS." @ 12,2 SAY "5. DELETE ACCOUNT FROM CHART." @ 14,2 SAY "6. PRINT CHART OF ACCOUNTS." @ 16,2 SAY "7. RETURN TO MAIN MENU." @ 22,1 SAY " " WAIT TO CHOICEAN IF .NOT. CHOICEAN = " " DO ANCHART ENDIF ******** LOOP ENDDO ENDIF *********************** LOOP ******************** IF MEND = "END" CANCEL ENDIF LOOP ENDDO DO AC101 CANCEL  DO PRTDAT ************* SUMMARIZE ACCOUNTS **************** CASE CHOICE = "0" ERASE DO AC101GL ENDCASE **************------------------------------------------------------------------- Released to: FOG RBBS-RCP/M #29 BOSTON, MA. 02124 TEL:(617)288-4667 ------------------------------------------------------------------- ACCOUNTING 101 V1.00 (C) 1986 ROBERT D. SAUNDERS ALL RIGHTS RESERVED RELEASE MARCH 10, 1986 ------------------------------------------------------------------- I. NOTES ON PROGRAM. 1. AC101 is an accounting program created on an Osborne 1, double density system under dBASE II (*), Ver 2.3B. It has also been run on Ver 2.43. 2. It can be made to run on other systems but may need some modifications. 3. The program you have received is source code. You may wish to make changes in the program, but a word of caution is offered. Future programs will run under AC101 but any changes may interfere with linkages already built into AC101. II. STARTING UP AC101. 1. Load the AC101.LBR disk (disk #1) in drive B: and a de-library program (such as NULU) in drive A:. Unsqueeze AC101.LBR. 2. Copy disk #1 onto another blank formatted disk (disk #2) and delete the library file (AC101.LBR) from this disk. Copy your dBASE II files onto disk #2. This is now your Master AC101 disk (disk #3). Copy this disk onto a working disk ('A' disk). 3. Copy file GENJOURN.DBF from the 'A' disk onto a blank formatted disk in drive B:. This is the 'B' disk which will contain your General Journal. The General Journal is the database file you will create and from which you will generate all other files and reports. Place the 'A' disk in drive A: and the 'B' disk in drive B:. 4. Type DB AC101 or DO AC101. 5. When the first menu appears on the screen, select the function desired. It is suggested that selections 2 through 5 in the Introduction Menu be run first. Select 8 to enter system date. 6. Do not attempt to put more than 500 records on a double density disk. If necessary, separate your database into quarters or months. (*) dBASE II is a registered trademark of Ashton-Tate.om this disk. Copy your dBASE II files onto disk #2. This is now your Master AC101 disk (disk #3). Copy this disk onto a working disk ('A' disk). 3. Copy file GENJOURN.DBF from the 'A' disk onto a blank formatted disk in drive B:. This is the 'B' disk which will contain your General Journal. The General Journal is the database file you will create and from which you will generate all other files and reports. Place the 'A' disk in drive A: and the 'B' disk in drive B:. 4. Type DB AC101 or DO AC101. 5. When the first menu appears on the screen, select the function desired. It is suggested that selections 2 through 5 in the Introduction Menu be run first. Select 8 to enter system date. 6. Do no************************************************** * AC101DOC.CMD - V1.00 - * CONTAINS SYSTEM DOCUMENTATION. ************************************************** ERASE SET TALK OFF SET FORMAT TO PRINT SET PRINT ON ? " -------------------------------------------------------------------" ? " Released to: FOG RBBS-RCP/M #29 BOSTON, MA. 02124 TEL:(617)288-4667" ? " -------------------------------------------------------------------" ? " ACCOUNTING 101" ? " V1.00" ? " (C) 1986 ROBERT D. SAUNDERS" ? " ALL RIGHTS RESERVED" ? " RELEASE MARCH 10, 1986" ? " -------------------------------------------------------------------" ? " I. NOTES ON PROGRAM." ? " " ? " 1. AC101 is an accounting program created on an Osborne 1," ? " double density system under dBASE II (*), Ver 2.3B." ? " It has also been run on Ver 2.43." ? " " ? " 2. It can be made to run on other systems but may need some" ? " modifications." ? " " ? " 3. The program you have received is source code. You" ? " may wish to make changes in the program, but a word of caution" ? " is offered. Future programs will run under AC101 but any" ? " changes may interfere with linkages already built into AC101." ? " " ? " II. STARTING UP AC101." ? " " ? " 1. Load the AC101.LBR disk (disk #1) in drive B: and a de-library" ? " program (such as NULU) in drive A:. Unsqueeze AC101.LBR." ? " " ? " 2. Copy disk #1 onto another blank formatted disk (disk #2) and" ? " delete the library file (AC101.LBR) from this disk." ? " Copy your dBASE II files onto disk #2." ? " " ? " This is now your Master AC101 disk (disk #3)." ? " Copy this disk onto a working disk ('A' disk)." ? " " ? " 3. Copy file GENJOURN.DBF from the 'A' disk onto a blank formatted" ? " disk in drive B:. This is the 'B' disk which will contain your" ? " General Journal. The General Journal is the database file you" ? " will create and from which you will generate all other files and" ? " reports." ? " " ? " Place the 'A' disk in drive A: and the 'B' disk in drive B:." ? " " ? " 4. Type DB AC101 or DO AC101." ? " " ? " 5. When the first menu appears on the screen, select the function" ? " desired. It is suggested that selections 2 through 5 in the" ? " Introduction Menu be run first. Select 8 to enter system date." ? " " ? " 6. Do not attempt to put more than 500 records on a double density" ? " disk. If necessary, separate your database into quarters or months." ? " " ? " (*) dBASE II is a registered trademark of Ashton-Tate." ? CHR(12) ? "8. The following flow charts should help users find their way through" ? " the AC101 system." ? " [.DO AC101]" ? "  |" ? " |" ? " |" ? " ***************" ? " |INTRODUCTION |" ? " | MENU |<--------------------------+" ? " | (1-8) | |" ? " *************** |" ? " | |" ? " | |" ? " | CHOICEL |" ? " +-----------------+--------+--------+----------------+ |" ? " | | | | | |" ? " | | | | | |" ? " | | | | | |" ? "+-------------+ +-------------+ | +-------------+ +-------------+ |"  ? "| 1 | | 2 | | | 3 | | 4 | |" ? "| SKIP TO | |PRINT STARTUP| | |PRINT LETTER | |DISP WELCOME | |" ? "| MAIN MENU | |DOCUMENTATION| | |INTRODUCTION | | FRAMES | |" ? "+-------------+ +-------------+ | +-------------+ +-------------+ |" ? " | | | | | |" ? " | | | | | |" ? " | | | | | |" ? " TO +-----------------+----------------+--------+" ? " MAIN | |" ? " MENU | |" ? " | |" ? " +-----------------+--------+--------+----------------+ |" ? " | | | | |" ? " | |  | | |" ? " | | | | |" ? "+-------------+ +-------------+ +-------------+ +-------------+ |" ? "| 5 | | 6 | | 7 | | 8 | |" ? "| PRINT FORM | | EXIT TO | | QUIT | | SET TODAY'S | |" ? "|REGISTRATION | | dBASE II | | dBASE II | | DATE | |" ? "+-------------+ +-------------+ +-------------+ +-------------+ |" ? " | | | | |" ? " | CANCEL QUIT | |" ? " | | |" ? " | | |" ? " +----------------------------------------------------+--------+" ? " " ? " " ? " " ? " Figure 1. Introduction Menu flow diagram." ? CHR(12) ? " " ? " " ? " " ? " " ? " " ? "  FROM" ? " INTRODUCTION" ? " MENU" ? " |" ? " |" ? " |" ? " ***************" ? " | MAIN |" ? " | MENU |" ? " | (1-7) |" ? " ***************" ? " | " ? " | " ? " | CHOICES" ? " +--------+--------+--------+--------+--------+--------+" ? " | | | | | | |" ? " | | | | | | |" ? " | | | | | | |" ? "+-------------+ | +-------------+ | +-------------+ | +-------------+" ? "| 1 | | | 2 | | | 3  | | | 4 |" ? "| PROCESS | | | PROCESS | | | PROCESS | | | PROCESS |" ? "| BOOKKEEPING | | | SECURITIES | | |IRS FORM 1040| | | CHECKBOOK |" ? "| RECORDS | | | RECORDS | | | RECORDS | | | RECORDS |" ? "+-------------+ | +-------------+ | +-------------+ | +-------------+" ? " | | | | | | |" ? " | | | | | | |" ? " | | | | | | |" ? " | +-------------+ | +-------------+ | +-------------+ |" ? " | | 5 | | | 6 | | | 7 | |" ? " | | PROCESS | | | EXIT | | | QUIT | |" ? " | | OTHER | | | TO | | | dBASE II | |" ? " | | RECORDS | | | dBASE II | | | | |" ? " | +-------------+ | +-------------+ | +-------------+ |" ? " | | | | | | |" ? " | | | CANCEL | QUIT |" ? " | | | | |" ? " | +--------+-----------------+-----------------+" ? " | | " ? " | | " ? " | | " ? " TO TO +-------------+ " ? " BOOKKEEPING ADD-ON | 8 | " ? " MENU MENU | RETURN TO | " ? " AC101GL.CMD | INIT MENU | " ? " +-------------+ " ? " " ? " Figure 2. Main Menu flow diagram." ? CHR(12) ? " " ? " " ? " " ? " " ? " " ? " FROM" ? " INTRODUCTION" ? " MENU" ? " |" ? " |" ? "  |" ? " ***************" ? " | BOOKKEEPING |" ? " | MENU |" ? " | (1-4) |" ? " ***************" ? " | " ? " | " ? " | CHOICEBK" ? " +-----------------+--------+--------+-----------------+" ? " | | | |" ? " | | | |" ? " | | | |" ? "+-------------+ +-------------+ +-------------+ +-------------+" ? "| 1 | | 2 | | 3 | | 4 |" ? "| PROCESS | | PROCESS | | PROCESS | | RETURN |" ? "| JOURNAL | | LEDGER | | CHART OF | | TO MAIN |" ? "| RECORDS | | RECORDS | | ACCOUNTS | | MENU |" ? "+-------------+ +-------------+ +-------------+ +-------------+" ? " | | | |" ? " | | | |" ? " | | | |" ? " TO TO TO TO" ? " JOURNAL ADD-ON CHART OF ACCOUNTS MAIN" ? " MENU MENU MENU MENU" ? " AC101GL.CMD" ? " " ? " Figure 3. Bookkeeping Menu flow diagram." ? CHR(12) ? " " ? " FROM" ? " BOOKKEEPING " ? " MENU" ? " |" ? " |" ? " |" ? " ***************" ? " | JOURNAL |" ? " | MENU |"  ? " | (1-10) |" ? " ***************" ? " | " ? " | " ? " | CHOICE " ? " +-----------------+--------+--------+-----------------+" ? " | | | | |" ? " | | | | |" ? " | | | | |" ? "+-------------+ +-------------+ | +-------------+ +-------------+" ? "| 1 | | 2 | | | 3 | | 4 |" ? "| ADD | | SORT | | | FIND | | EDIT |" ? "| NEW |<+ | JOURNAL | | | A | | A |" ? "| RECORDS | | | BY DATE | | | RECORD | | RECORD |" ? "+-------------+ | +-------------+ | +-------------+ +-------------+" ? " | | |" ? " TO  | |" ? " ENTER DATA----+ |" ? " MENU |" ? " +-----------------+--------+--------+-----------------+" ? " | | | | |" ? " | | | | |" ? " | | | | |" ? "+-------------+ +-------------+ | +-------------+ +-------------+" ? "| 5 | | 6 | | | 7 | | 8 |" ? "| DELETE | | PRINT | | | PRINT | | RETURN |" ? "| A | | THE | | | A | | TO |" ? "| RECORD | | JOURNAL | | | REPORT | | MAIN MENU |" ? "+-------------+ +-------------+ | +-------------+ +-------------+" ? " :" ? " :" ? " :" ? " :" ? " +--------------------------+--------------------------+" ? " | |" ? " | |" ? " | |" ? "+-------------+ +-------------+" ? "| 9 | | 0 |" ? "| LIST | | SUMMARIZE |" ? "| THE | | ACCOUNTS |" ? "| JOURNAL | | |" ? "+-------------+ +-------------+" ? " " ? " " ? " Figure 4. Journal Menu flow diagram." ? CHR(12) ? " FROM" ? " JOURNAL " ? " MENU" ? " |" ? " |" ? " |" ? " ***************" ? " | ENTER DATA |" ? " | MENU |<---------------------------+" ? " | (1-8) | |" ? " *************** |" ? " | |" ? " | |" ? " | MSELADD |" ? " +--------+--------+--------+--------+--------+--------+ |" ? " | | | | | | | |" ? " | | | | | | | |" ? " | | | | | | | |" ? "+-------------+ | +-------------+ | +-------------+ | +-------------+ |" ? "| 1 | | | 2 | | | 3 | | | 4 | |" ?  "| ENTER | | | ENTER | | | ENTER | | | ENTER | |" ? "| GENERAL | | | CHECK | | | SECURITY | | | GASOLINE | |" ? "| RECEIPTS | | | STUBS | | | TICKETS | | | RECEIPTS | |" ? "+-------------+ | +-------------+ | +-------------+ | +-------------+ |" ? " | | | | | | | |" ? " | | | | | | | |" ? " | | | | | | | |" ? " +--------|--------+--------|--------+--------|--------+--------+" ? " | | | |" ? " +--------+ | | |" ? " | | | | |" ? " | +-------------+ +-------------+ +-------------+ |" ? " | | 5 | | 6 | | 7 | |" ? " | | ENTER  | | ENTER | | ENTER | |" ? " | | PAYROLL | | CREDIT CARD | |EXPENSE/CASH | |" ? " | | STUBS | | RECEIPTS | | RECEIPTS | |" ? " | +-------------+ +-------------+ +-------------+ |" ? " | | | | |" ? " | | | | |" ? " | | | | |" ? " | +-----------------+-----------------+-----------------+" ? " |" ? "+-------------+" ? "| 8 |" ? "| EXIT TO |" ? "| MAIN |" ? "| MENU |" ? "+-------------+" ? " |" ? " TO" ? " MAIN" ? " MENU Figure 5. Enter Data Menu flow diagram." ? CHR(12) ? " FROM" ? " JOURNAL MENU" ? " |" ? " |" ? "  ***************" ? " |FORMAT PRINT |" ? " | MENU |<--------------------------+" ? " | (1-5) | |" ? " *************** |" ? " | |" ? " | |" ? " | PRTANS |" ? " +--------+--------+--------+--------+ |" ? " | | | | | |" ? " | | | | | |" ? " | | | | | |" ? " +-------------+ | +-------------+ | +-------------+ |" ? " | 1 | | | 2 | | | 3 | |" ? " | SAVE DISK | | |PRINT JOURNAL| | |PRINT JOURNAL| |" ? " | FILE | | | & SAVE FILE | | | ONLY | |" ? " +-------------+ | +-------------+ | +-------------+ |" ? " | | | | | |" ? " | | | | | |" ? " | | | | | |" ? " +-----------------+-----------------+----------------+" ? " | | |" ? " | | |" ? " | | |" ? " +-------------+ +-------------+ |" ? " | 4 | | 5 | |" ? " |PRINT JOURNAL| | RETURN TO | |" ? " | FROM DISK | | INIT MENU |  |" ? " +-------------+ +-------------+ |" ? " | | |" ? " | TO |" ? " | INIT |" ? " | MENU |" ? " +-------------------------------------------+" ? " " ? " " ? " " ? " Figure 6. Formatted Print Menu flow diagram." ? CHR(12) ? "III HINTS ON USING AC101." ? " " ? " 1. Study the file ANCHART.DBF. Print the Chart of Accounts by" ? " choosing the proper menu selections." ? " " ? " 2. The Chart of Accounts is organized as follows:" ? " " ? " A/N RANGE CATEGORY" ? " " ? " 100-199 Asset Accounts" ? " 200-299 Liability Accounts" ? " 300-399 Proprietorship Accounts" ? "   400-499 Revenue Accounts" ? " 500-599 Expense Accounts" ? " " ? " The Chart of Accounts should be tailored to each user's" ? " own requirements. More accounts can be added at any time." ? " Likewise, accounts which are not expected to be used should" ? " be deleted." ? " " ? " 3. An easy way to remember whether an account should be debited" ? " or credited is to relate each transaction to a cash transaction." ? " If cash is added to the cash account, it is debited. If cash" ? " is disbursed, the transaction requires a credit to the cash" ? " account. An expense paid in cash requires a debit to the expense" ? " account and a credit to the cash account. Any first year accounting" ? " book can be used as a reference to determine the proper debit or" ? " credit entry. Remember that a checking account is a cash account." ? " " ? " NOTE: Some users will notice that debits and credits appear to be" ? " the reverse of those used by banks in reconciling checking" ? " accounts." ? " " ? " 4. The use of T-Accounts is recommended for the user where complicated" ? " transactions are encountered or where temporary accounts are used" ? " when books are closed for a fiscal period. This exercise is beyond" ? " the scope of these instructions but will be covered in the AC101" ? " Handbook which has not yet been published. For those able to" ? " understand T-Accounts, the following examples are offered." ? " " ? " CASH (101) SALARIES (400)" ? " -------+------- -------+-------" ? " (a)400.00|50.00(b) |400.00(a)" ? " |25.00(c) |" ? " | |" ? " | |" ? " | |" ? " " ? " TELEPHONE(503) PURCHASE SOFTWARE (115)" ? " -------+------- -------+-------" ? " (b)50.00| (c)25.00|" ? " | |" ? " | |" ? " | |" ? " | |" ? " " ? CHR(12) SET PRINT OFF SET FORMAT TO SCREEN RETURN CANCELto" ? " understand T-Accounts, the following examples are offered." ? " " ? " CASH (101) SALARIES (400)" ? " -------+------- -------+-------" ? " (a)400.00|50.00(b) |400.00(a)" ? " |25.00(c) |" ? " | |" ? " | |" ? " | |" ? " " ? " TELEPHONE(503) PURC************************************************** * AC101FRM.CMD - V1.00 - * DISPLAYS WELCOME FRAMES AUTOMATICALLY WHEN SELECTED. **************** FRAME 1 ************************* ERASE STORE 0 TO MFLAG ? " ===================================================================" ? " Released to: FOG RBBS-RCP/M #29 BOSTON, MA. 02124 TEL:(617)288-4667" ? " ===================================================================" @ 5,12 SAY "WELCOME TO THE WORLD OF" @ 7,12 SAY " ACCOUNTING 101" @ 8,12 SAY " V1.00" @ 10,6 SAY "(C) COPYRIGHT 1986 ROBERT D. SAUNDERS" @ 11,6 SAY " ALL RIGHTS RESERVED" @ 12,6 SAY " RELEASED MARCH 10, 1986" @ 16,2 SAY "This program is not to be sold except by copyright holder." @ 22,1 SAY " " DO WHILE MFLAG < 150 STORE MFLAG + 1 TO MFLAG LOOP ENDDO **************** FRAME 2 ************************* ERASE STORE 0 TO MFLAG @ 1,6 SAY " DISCLAIMER OF WARRANTY" @ 5,6 SAY "This AC101 program is distributed and sold" @ 6,6 SAY "without any implied or express warranties." @ 7,6 say "The user is encouraged to try the program" @ 8,6 SAY "and to become thoroughly familiar with it" @ 9,6 SAY "before using it or before purchasing it or" @ 10,6 SAY "before ordering any additional material offered" @ 11,6 SAY "by the seller. The user assumes any and all" @ 12,6 SAY "risk in using this program. Reproduction" @ 13,6 SAY "for commercial purposes prohibited. It may be" @ 14,6 SAY "used for commercial purposes by accountants" @ 15,6 SAY "and bookkeepers, and other business firms who" @ 16,6 SAY "first register with the copyright holder." @ 22,6 SAY " " DO WHILE MFLAG < 300 STORE MFLAG + 1 TO MFLAG LOOP ENDDO **************** FRAME 3 ************************* ERASE STORE 0 TO MFLAG @ 1,6 SAY "WELCOME TO THE WORLD OF ACCOUNTING 101" @ 5,14 SAY "This program can be set up" @ 7,14 SAY "by anyone with at least" @ 9,14 SAY "some business, accounting" @ 11,14 SAY "or bookkeeping background," @ 13,14 SAY "or a desire to  learn the" @ 15,14 SAY "fundamentals of accounting." @ 17,14 SAY "It can be used by a clerk," @ 19,14 SAY "without any need for programming" @ 21,14 SAY "skills." @ 22,14 SAY " " DO WHILE MFLAG < 300 STORE MFLAG + 1 TO MFLAG LOOP ENDDO **************** FRAME 4 ************************* ERASE STORE 0 TO MFLAG @ 1,6 SAY "WELCOME TO THE WORLD OF ACCOUNTING 101" @ 5,6 SAY "It was designed for individuals" @ 7,6 SAY "who are TOO BUSY and who tend to" @ 9,6 SAY "keep their receipts in a shoebox." @ 11,6 SAY "Small businesses can use it without" @ 13,6 SAY "the need for a programming expert." @ 15,6 SAY "Accountants and bookkeepers will" @ 17,6 SAY "find it very effective for" @ 19,6 SAY "handling small business accounts." @ 22,6 SAY " " DO WHILE MFLAG < 300 STORE MFLAG + 1 TO MFLAG LOOP ENDDO SET PRINT OFF SET FORMAT TO SCREEN RETURN CANCEL e with at least" @ 9,14 SAY "some business, accounting" @ 11,14 SAY "or bookkeeping background," @ 13,14 SAY "or a desire to ************************************************** * AC101GL.CMD - V1.00 - * THIS FILE TO BE REPLACED WHEN RECEIVED FROM SUPPLIER." ************************************************** ERASE @ 10,2 SAY "NOT IMPLEMENTED IN THIS PROGRAM." @ 12,2 SAY "TO ORDER ASK FOR AC101GL PROGRAM." @ 14,2 SAY " TO RETURN TO MAIN MENU." @ 22,2 SAY " " WAIT RETURN CANCEL ORE " RY ************** IF MSELADD = "4" DO GASRCPTS ENDIF ****************** PAY STUB ENTRY ***************** IF MSELADD = "5"************************************************** * AC101LTR.CMD - V1.00 - COVER LETTER ************************************************** ERASE SET PRINT ON ? " ===================================================================" ? " Released to: FOG RBBS-RCP/M #29 BOSTON, MA. 02124 TEL:(617)288-4667" ? " ===================================================================" ? " " ? " ROBERT D. SAUNDERS" ? " P.O. BOX 517" ? " LEXINGTON, MA. 02173" ? " " ? " March 10, 1986" ? " " ? " Dear User:" ? " " ? " Congratulations! You have received a powerful Accounting" ? " program designed to help you keep your personal financial " ? " records. Add-on programs are designed to provide an" ? " extensive personal or small business accounting system." ? " " ? " AC101 is a general accounting package which runs under dBASE II*." ? " It allows the user to create the following:" ? " " ? " 1. A data base of all financial transactions." ? " " ? " 2. A printed General Journal." ? " " ? " 3. A printed General Ledger (add-on)." ? " " ? " 4. Printed periodic account summaries (add-on)." ? " " ? " The Journal is known as the book of original entry" ? " in accounting terms. It is a chronological record of all the" ? " financial transactions conducted during a given accounting" ? " period. This is the data used to make up a set of books." ? " " ? " The General Ledger is a summary of all transactions by" ? " account number. The program AC101GL is the first add-on" ? " program. It uses the General Journal database to print" ? " the General Ledger." ? " " ? " Together, AC101 programs allow the user to sufficiently organize" ? " financial records to generate a complete set of books." ? " The Income Statement, Balance Sheet and Capital Statement can" ? " be generated by the user or by an accountant from the information" ? " produced by these programs." ? " " ? " Significant savings can be realized by the user who turns over" ? " organized records, rather than a shoebox full of receipts," ? " to an accountant. The accountant, in turn, can prepare final" ? " records for tax and other reporting purposes. In addition," ? " the use of AC101 programs provides a complete audit trail," ? " whenever an audit may be required." ? " " ? " * dBASE II is a registered trademark of Ashton-Tate." ? CHR(12) ? " This accounting system is offered on RCP/M systems as a user" ? " supported software package. The distribution method is not new." ? " It is, however, the least expensive method for distribution of" ? " software. The first part of the program is distributed free." ? " The user is encouraged to try it and to share it with friends and" ? " business associates. There is a charge of $25.00 for add-on" ? "   programs. Registration is offered for those who might need help" ? " in using the program. A handbook will be published with added" ? " assistance in using the program and in general accounting" ? " methods as they apply to AC101 programs." ? " " ? " This program was written to make it as easy as possible" ? " for the user to develop a bookkeeping database. It was born" ? " of frustration, where only complicated, difficult to use and" ? " expensive programs seemed to be available." ? " " ? " Any comments you wish to make can be sent to FOG RBBS-RCP/M #29," ? " by using the message system. Send to user Robert D. Saunders." ? " Comments are welcome on how to improve the program." ? " Suggestions will be considered for future programs." ? " " ? " Thank you for your interest in AC101 and I look forward to" ? " hearing from you." ? " " ? " Bob Saunders" ? CHR(12) SET PRINT OFF RETURN CANCEL************************************************** * AC101REG.CMD - V1.00 - * REGISTRATION FILE ************************* REGISTRATION *********** ERASE SET TALK OFF SET EJECT OFF SET PRINT ON ? " -------------------------------------------------------------------" ? " Released to: FOG RBBS-RCP/M #29 BOSTON, MA. 02124 TEL:(617)288-4667" ? " -------------------------------------------------------------------" ? " REGISTRATION" ? " for" ? " ACCOUNTING 101" ? " -------------------------------------------------------------------" ? " AC101 REGISTRATION:" ? " " ? " To register: If you do not wish to order the" ? " AC101 GENERAL LEDGER program now, fill out the attached" ? " form and include the registration fee of $10.00." ? " The registration form is also a mailing envelope," ? " if folded and sealed as directed. Do NOT mail to FOG." ? " " ? " After you register: You will be able to receive assistance" ? " and periodic information about new add-on programs as they" ? " are released. Telephone inquiries or comments to the following:" ? " (617)288-4667, leave a message for user ROBERT D. SAUNDERS." ? " " ? " AC101 GENERAL JOURNAL: This program is FREE." ? " " ? " AC101 GENERAL LEDGER:" ? " " ? " The AC101 GENERAL LEDGER program is available" ? " only to those who register. It may be ordered" ? " only by completing the registration form." ? " " ? " If ordered now, Registration is FREE. This offer is" ? " valid until April 15, 1986." ? " " ? " When you order the AC101 GENERAL LEDGER program," ? " you will receive a program disk for your Osborne 1, DD" ? " with the General Ledger files and other updates." ? " " ? " To order now: Complete the registration form and include $25.00" ? " for both the AC101 GENERAL LEDGER program and free registration." ? " " ? " FUTURE RELEASES:" ? " " ? " AC101 HANDBOOK:" ? " " ? " This is a pre-publication notice. The handbook includes" ? " information for those using AC101 programs and learning" ? " bookkeeping and accounting methods. It includes examples" ? " and hints on setting up a complete AC101 bookkeeping system," ? " suitable for personal or small business use. It also" ? " includes information useful for preparing tax reports," ? " financial statements and other important records." ? " " *********************** AC 101 MAILER ************ SET FORMAT TO PRINT @ 1,5 SAY "TO REGISTER: Please complete the information requested below:" @ 2,7 SAY "DATE:___________ FOG RBBS-RCP/M #_________" @ 3,7 SAY "NAME:_____________________________________" @ 4,7 SAY "COMPANY:__________________________________" @ 5,7 SAY "ADDRESS:__________________________________" @ 6,7 SAY "CITY:______________STATE_______ZIP________" @ 7,7 SAY "TEL NO:(_____)____________EXT:____________" @ 8,5 SAY " For Comments and Help: Please register & use back of this sheet." @ 9,9 SAY "____ Enclose $10.00 for AC101 REGISTRATION and Postage." @ 10,9 SAY "____ Enclose $25.00 for AC101 GENERAL LEDGER & FREE registration." @ 11,9 SAY "____ Enclose $25.00 for AC101 HANDBOOK (Allow 8 weeks delivery)." @ 12,5 SAY "Please SEAL envelope with tape. Make check payable to R. Saunders." @ 13,5 SAY "THANK YOU. Total enclosed:__________" @ 15,5 SAY "------------------------------ FOLD HERE FIRST -----------------" @ 16,5 SAY "FROM:_____________________ +-----+" @ 17,5 SAY " _____________________ |place|" @ 18,5 SAY " _____________________ |STAMP|" @ 19,5 SAY " _____________________ |here |" @ 20,5 SAY " +-----+" @ 25,35 SAY "ROBERT D. SAUNDERS" @ 26,35 SAY "P.O. BOX 517" @ 27,35 SAY "LEXINGTON, MA. 02173" @ 38,5 SAY "------------------------------- FOL D HERE LAST -----------------" @ 40,0 SAY CHR(12) SET PRINT OFF SET FORMAT TO SCREEN RETURN CANCEL5.00 for AC101 GENERAL LEDGER & FREE registration." @ 11,9 SAY "____ Enclose $25.00 for AC101 HANDBOOK (Allow 8 weeks delivery)." @ 12,5 SAY "Please SEAL envelope with tape. Make check payable to R. Saunders." @ 13,5 SAY "THANK YOU. Total enclosed:__________" @ 15,5 SAY "------------------------------ FOLD HERE FIRST -----------------" @ 16,5 SAY "FROM:_____________________ +-----+" @ 17,5 SAY " _____________________ |place|" @ 18,5 SAY " _____________________ |STAMP|" @ 19,5 SAY " _____________________ |here |" @ 20,5 SAY " +-----+" @ 25,35 SAY "ROBERT D. SAUNDERS" @ 26,35 SAY "P.O. BOX 517" @ 27,35 SAY "LEXINGTON, MA. 02173" @ 38,5 SAY "------------------------------- FOL************************************************* * ADDREC.CMD - V1.00 = * ADDREC ADDS RECORDS TO GENJOURN OR * ADD TOTALS TO PRTJRN ************** ADD TOTALS TO PRTJRN ************* IF MPRTJRN = "Y" APPEND BLANK STORE MREGREC + 1 TO MREGREC STORE STR(MREGREC,3,0) TO MX STORE MX TO MFLD1 REPLACE FIELD1 WITH MFLD1 DISPLAY OFF APPEND BLANK STORE MREGREC + 1 TO MREGREC STORE STR(MREGREC,3,0) TO MX STORE MX + " " + "TOTAL:" TO MFLD1 REPLACE FIELD1 WITH MFLD1 STORE STR(MDR:SUM,10,2) + STR(MCR:SUM,10,2) TO MFLD2 REPLACE FIELD2 WITH MFLD2 DISPLAY OFF IF PRTANS = "1" APPEND BLANK STORE CHR(12) TO MFLD1 STORE " " TO MFLD2 REPLACE FIELD1 WITH MFLD1 DISPLAY OFF ENDIF STORE " " TO MFLD1 STORE " " TO MPRTJRN IF PRTANS = "3" DELETE ALL PACK ENDIF RETURN ENDIF *************** ADD RECORDS TO GENJOURN ********* USE B:GENJOURN GOTO BOTTOM COUNT TO MRECS APPEND BLANK STORE MRECS +1 TO MRECS REPLACE DATE WITH MDATE REPLACE DR:DESCR WITH MDR:DESCR REPLACE DR:AN WITH MDR:AN REPLACE DR:AMT WITH MAMT REPLACE CR:DESCR WITH MCR:DESCR REPLACE CR:AN WITH MCR:AN REPLACE CR:AMT WITH MAMT REPLACE NOTES1 WITH MNOTES1 REPLACE NOTES2 WITH MNOTES2 ERASE SET PRINT ON ? " " ? "RECORD: ", MRECS ? " " ? "DATE: ", MDATE ? "Dr DESCRIPTION: ", MDR:DESCR ? "Dr ACCOUNT NO.: ", MDR:AN ? "Dr AMOUNT: ", MAMT ? "Cr DESCRIPTION: ", MCR:DESCR ? "Cr ACCOUNT NO.: ", MCR:AN ? "Cr AMOUNT: ", MAMT ? "NOTES1: ", MNOTES1 ? "NOTES2: ", MNOTES2 ? " " ? " " ? " " ? " " ? " " ? " " ? " " SET PRINT OFF RETURN CANCEL6,2 SAY "7. RETURN TO MAIN MENU." @ 22,1 SAY " " WAIT TO CHOICEAN IF .NOT. CHOICEAN = " " DO ANCHART ENDIF ******** LOOP ENDDO ENDIF *********************** LOOP ******************** IF MEND = "END" CANCEL ENDIF LOOP ENDDO DO AC101 C,10,2) + STR(MCR:SUM,10,2) TO MFLD2 REPLACE FIELD2 WITH MFLD2 DISPLAY OFF APPEND BLANK * STORE CHR(12) TO MFLD1 STORE " " TO MFLD1 STORE " " TO MFLD2 REPLACE FIELD1 WITH MFLD1 DISPLAY OFF STORE " " TO MFLD1 STORE " " TO MPRTJRN IF PRTANS = "3" DELETE ALL PACK ENDIF RETURN ENDIF *************** ADD RECORDS TO GENJOURN ********* USE B:GENJOURN GOTO BOTTOM COUNT TO MRECS APPEND BLANK STORE MRECS +1 TO MRECS REPLACE DATE ND = "END" CANCEL ************************************************ * ANCHART.CMD - V1.00 - * USED TO PROCESS ANCHART. * FROM CHART OF ACCOUNTS MENU. ************************************************ ERASE ******************* DISPLAY ANCHART *************** IF CHOICEAN = "1" USE ANCHART DISPLAY ALL WAIT ENDIF ******************* EDIT ANCHART *************** IF CHOICEAN = "2" ERASE ? "USE: W TO WRITE (SAVE) EDITS." ? "USE: Q TO QUIT (WITHOUT SAVING) EDITS." ? "USE: TO EXIT EDIT MODE." ? "USE: ARROW KEYS TO MOVE CURSOR IN EDIT MODE." ? "--------------------------------------------------" ? " " ACCEPT "ENTER ACCOUNT NUMBER TO EDIT" TO MEDAN USE ANCHART LOCATE FOR AN = MEDAN DISPLAY OFF @ 18,2 SAY "IS THIS THE ACCOUNT NUMBER TO EDIT? (Y/N)" @ 22,1 SAY " " WAIT TO MANS IF MANS = "Y" .OR. MANS = "y" EDIT # ENDIF ENDIF ********************* ADD ACCOUNTS ************** IF CHOICEAN = "3" ERASE ? "USE: W TO WRITE (SAVE) EDITS." ? "USE: Q TO QUIT (WITHOUT SAVING) EDITS." ? "USE: TO EXIT APPEND MODE." ? "USE: ARROW KEYS TO MOVE CURSOR IN APPEND MODE." ? "--------------------------------------------------" ? " " USE ANCHART APPEND ENDIF ********************* SORT ANCHART ************** IF CHOICEAN = "4" ERASE @ 10,5 SAY "SORTING CHART OF ACCOUNTS" USE ANCHART SORT ON AN TO B:ANTEMP USE B:ANTEMP DELETE FILE ANCHART COPY TO ANCHART USE ANCHART DELETE FILE B:ANTEMP ENDIF ********************* DELETE ACCOUNT ************ IF CHOICEAN = "5" USE ANCHART STORE "Y" TO MANS DO WHILE MANS = "Y" .OR. MANS = "y" ERASE ACCEPT "ENTER ACCOUNT NUMBER TO DELETE" TO MDELAN USE ANCHART LOCATE FOR AN = MDELAN DISPLAY OFF @ 18,2 SAY "IS THIS THE ACCOUNT TO DELETE?(Y/N)" @ 22,1 SAY " " WAIT TO MANS IF MANS = "Y" .OR. MANS = "y" DELETE STORE " " TO MANS ENDIF ACCEPT "DELETE ANOTHER ACCOUNT? (Y/N) " TO MANS LOOP ENDDO PACK ENDIF ***************** PRINT ANCHART ***************** IF CHOICEAN = "6" STORE 1 TO MGRP STORE " " TO MAN STORE " " TO MDESCR ERASE @ 10,5 SAY "GETTING CHART OF ACCOUNTS" USE ANCHART DO WHILE MGRP <= 5 USE ANCHART DO CASE CASE MGRP = 1 COPY TO ANTEMP FOR AN <= "199" CASE MGRP = 2 COPY TO ANTEMP FOR AN >= "200" .AND. AN <= "299" CASE MGRP = 3 COPY TO ANTEMP FOR AN >= "300" .AND. AN <= "399" CASE MGRP = 4 COPY TO ANTEMP FOR AN >= "400" .AND. AN <= "499" CASE MGRP = 5 COPY TO ANTEMP FOR AN >= "500" .AND. AN <= "599" ENDCASE USE ANTEMP ERASE IF MHNAME = " " ACCEPT "TYPE HEADER NAME" TO MHNAME ENDIF IF MHDATE = "00/00/00" ACCEPT "TYPE HEADER DATE (MM/DD/YY) " TO MHDATE ENDIF ERASE SET PRINT ON SET FORMAT TO PRINT @ 0,5 SAY MHNAME @ 1,5 SAY "CHART OF ACCOUNTS" @ 2,5 SAY MHDATE DO CASE CASE MGRP = 1 @ 3,0 SAY " *** ASSET ACCOUNTS ***" CASE MGRP = 2 @ 3,0 SAY " *** LIABILITY ACCOUNTS ***" CASE MGRP = 3 @ 3,0 SAY "  *** CAPITAL ACCOUNTS ***" CASE MGRP = 4 @ 3,0 SAY " *** INCOME ACCOUNTS ***" CASE MGRP = 5 @ 3,0 SAY " *** EXPENSE ACCOUNTS ***" ENDCASE @ 4,0 SAY " =============================================" @ 5,0 SAY " A/N DESCRIPTION" @ 6,0 SAY " ---------------------------------------------" @ 7,1 SAY " " STORE 0 TO MLIN DO WHILE .NOT. EOF STORE MLIN + 1 TO MLIN STORE AN TO MAN STORE DESCR TO MDESCR ? " ",MAN," ",MDESCR IF MLIN = 50 ? CHR(12) STORE 0 TO MLIN ENDIF SKIP LOOP ENDDO ? " " STORE MGRP + 1 TO MGRP ENDDO ? CHR(12) SET FORMAT TO SCREEN SET PRINT OFF USE ANCHART DELETE FILE ANTEMP ENDIF ******************* RETURN ******************** IF CHOICEAN = "7" STORE " " TO CHOICEAN ENDIF RETURN CANCEL SAY " *** ASSET ACCOUNTS ***" CASE MGRP = 2 @ 3,0 SAY " *** LIABILITY ACCOUNTS ***" CASE MGRP = 3 @ 3,0 SAY " I!ANClTAXREFClDESCRCl 101 3 CASH 102 1 ABC CHECKING ACCOUNT 103 1 XYZ BANK ACCOUNT 105 5 XYZ SAVINGS ACCOUNT 110 0 ACCOUNTS RECV 111 1 PURCHASES-SECURITIES 112 3 PURCHASES-EQUIPMENT 113 5 PURCHASES-HOBBYS 115 2 PURCHASES-SOFTWARE 140 1 OTHER TAXES WITHHELD 140A1 FEDERAL WITHHOLDING (W2) 140B1 FICA (S/S) W/H (W2) 140C1 STATE WITHHOLDING (W2) 170 1 OFFICE EQUIPMENT 180 1 PERSONAL-IRA 210 3 ACCOUNTS PAY 210A3 MASTERCHARGE CREDIT CARD 210B3 VISA CREDIT CARD 210C3 GASOLINE CREDIT CARD 220 2 CURRENT LOANS PAYABLE 230 2 LONG TERM DEBT 231 1 MORTGAGE BALANCE 232 1 AUTO LOAN BALANCE 240 2 INTEREST PAYABLE 250 2 TAXES PAYABLE 250A2 FEDERAL W/H (FORM 1040ES) 250B2 FEDERAL W/H (940 LABOR) 250C2 FICA S/S (940 LABOR) 251 2 PROPERTY TAXES 310 5 USER NAME, CAPITAL 320 0 USER NAME, DRAWING 330 3 RETAINED EARNINGS 399 5 EXPENSE & REVENUE SUMMARY 400 1 SALARIES 410 1 FEES AND SERVICES (1099) 420 1 OTHER INCOME 430 1 TIPS INCOME 440 1 SALES-SECURITIES 450 1 INTEREST INCOME 499 1 MISCELLANEOUS INCOME 500 1 ADMINISTRATIVE SALARIES 500A1 LABOR 500B1 CONTRACT LABOR (1099) 500C1 EMPLOYER'S FICA 500D1 STATE UNEMPLOYMENT 500E1 COMMISSIONS & BONUSES 501 2 TRAVEL 502 3 ENTERTAINMENT 503 3 TELEPHONE 504 2 POSTAGE 505 3 UTILITIES 510 3 AUTO-OPER 515 3 AUTO-REP&MAINT 520 3 RENT-RESIDENCE 530 2 PRINT & REPRO 531 2 PERIOD & TECH PUBS 532 2 MOVING & STORAGE 540 2 OFFICE SUPPLIES 545 3 MATERIALS 556 3 CLUB MEMBERSHIPS 560 2 INTEREST 564 4 GRATUITIES 566 4 TAX & LICENSES 570 2 DEPRECIATION 580 5 INSURANCE-LIFE 582 5 INSURANCE-LTD 583 3 INSURANCE-AUTO 584 3 INSURANCE-HOME 585 5 INSURANCE-HEALTH 586 5 MEDICAL 590 5 BANK CHARGES 597 2 CHARITIES 599 5 MISCELLANEOUS  140B1 FICA (S/S) W/H (W2) 140C1 STATE WITHHOLDING (W2) 170 1 OFFICE EQUIPMENT 180 1 PERSONAL-IRA 210 3 VrDATEClDR:DESCRClDR:ANClDR:AMTNlCR:DESCRClCR:ANC mCR:AMTNmNOTES1CmNOTES2C+mTAXREFC?m  101 160.00ANYBODY DELAWARE *01/02/86STATE WITHHOLDING 160 200.00CASH 101 200.00ANYBODY DELAWARE *01/02/86INSURANCE-HEALTH 200.00CASH 101 200.00ANYBODY DELAWARE 1/88PURCHASES-SECURITIES111 100.00CASH 101 100.00DUMMIES BIG DUMMY 01/02/03CASH 101 1000.00SALARIES 300 1000.00DUMMY DENVER ************************************************** * PAYSTUB.CMD - USED TO ENTER PAYROLL STUBS IN THE * GENERAL JOURNAL. ************************************************** ERASE @ 4,0 SAY " " STORE " " TO MANS STORE " " TO MOTH STORE " " TO MINSD STORE " " TO MSALAN STORE " " TO MSALDES STORE " " TO MCASHAN STORE " " TO MCASHDES STORE " " TO MFWHAN STORE " " TO MFWHDES STORE " " TO MFICAAN STORE " " TO MFICADES STORE " " TO MSWHAN STORE " " TO MSWHDES STORE " " TO MINSAN STORE " " TO MINSDES STORE " " TO MDEDAN STORE " " TO MDEDDES ********************* DO WHILE MSALDES = " " STORE " " TO MSALDES ACCEPT "Enter SALARIES A/N" TO MSALAN USE ANCHART LOCATE FOR AN = MSALAN IF AN = MSALAN STORE DESCR TO MSALDES ? MSALAN, " ", MSALDES ? " " ENDIF IF MSALDES = " " ? "ACCOUNT ERROR", MSALAN ? " " STORE " " TO MSALAN ? CHR(07) ENDIF LOOP ENDDO ********************* DO WHILE MCASHDES = " " STORE " " TO MCASHDES ACCEPT "Enter CASH or CHECKING A/N" TO MCASHAN USE ANCHART LOCATE FOR AN = MCASHAN IF AN = MCASHAN STORE DESCR TO MCASHDES ? MCASHAN, " ", MCASHDES ? " " ENDIF IF MCASHDES = " " ? "ACCOUNT ERROR", MCASHAN ? " " STORE " " TO MCASHAN ? CHR(07) ENDIF LOOP ENDDO ********************** DO WHILE MFWHDES = " " STORE " " TO MFWHDES ACCEPT "Enter FEDERAL WITHHOLDING A/N" TO MFWHAN USE ANCHART LOCATE FOR AN = MFWHAN IF AN = MFWHAN STORE DESCR TO MFWHDES ? MFWHAN, " ", MFWHDES ? " " ENDIF IF MFWHDES = " " ? "ACCOUNT ERROR", MFWHAN ? " " STORE " " TO MFWHAN ? CHR(07) ENDIF LOOP ENDDO ********************* DO WHILE MFICADES = " " STORE " " TO MFICADES ACCEPT "Enter FICA (SOC SEC) A/N" TO MFICAAN USE ANCHART LOCATE FOR AN = MFICAAN IF AN = MFICAAN STORE DESCR TO MFICADES ? MFICAAN, " ", MFICADES ? " " ENDIF IF MFICADES = " " ? "ACCOUNT ERROR", MFICAAN ? " " STORE " " TO MFICAAN ? CHR(07) ENDIF LOOP ENDDO *********************** DO WHILE MSWHDES = " " STORE " " TO MSWHDES ACCEPT "Enter STATE WITHHOLDING A/N" TO MSWHAN USE ANCHART LOCATE FOR AN = MSWHAN IF AN = MSWHAN STORE DESCR TO MSWHDES ? MSWHAN, " ", MSWHDES ? " " ENDIF IF MSWHDES = " " ? "ACCOUNT ERROR", MSWHAN ? " " STORE " " TO MSWHAN ? CHR(07) ENDIF LOOP ENDDO ********************* DO WHILE MINSDES = " " STORE " " TO MINSDES ACCEPT "Enter INSURANCE DEDUCTION A/N" TO MINSAN IF MINSDES = " " STORE "***" TO MINSDES ENDIF IF .NOT. MINSAN = " " USE ANCHART LOCATE FOR AN = MINSAN IF AN = MINSAN STORE DESCR TO MINSDES ? MINSAN, " ", MINSDES ? " " ENDIF ENDIF IF MINSDES = " " ? "ACCOUNT ERROR", MINSAN ? " " STORE " " TO MINSAN ? CHR(07) ENDIF LOOP ENDDO *************************** DO WHILE MDEDDES = " " STORE " " TO MDEDDES ACCEPT "Enter OTHER DEDUCTION A/N" TO MDEDAN IF MDEDAN = " " STORE "***" TO MDEDDES ENDIF IF .NOT. MDEDAN = " "  USE ANCHART LOCATE FOR AN = MDEDAN IF AN = MDEDAN STORE DESCR TO MDEDDES ? MDEDAN, " ", MDEDDES ? " " ENDIF IF MDEDDES = " " ? "ACCOUNT ERROR", MDEDAN ? " " STORE " " TO MDEDAN ? CHR(07) ENDIF ENDIF LOOP ENDDO *************************** DO WHILE .NOT. (MANS = "N" .OR. MANS = "n") ERASE INPUT "Amount GROSS EARNINGS " TO MAMT STORE MSALAN TO MCR:AN STORE MSALDES TO MCR:DESCR STORE MCASHAN TO MDR:AN STORE MCASHDES TO MDR:DESCR ACCEPT "EMPLOYER" TO MNOTES1 ACCEPT "HOURS OR LOCATION" TO MNOTES2 DO ADDREC ERASE @ 4,0 SAY " " INPUT "Amount FEDERAL WITHHOLDING " TO MAMT STORE MFWHAN TO MDR:AN STORE "FEDERAL WITHHOLDING" TO MDR:DESCR STORE MCASHAN TO MCR:AN STORE "CASH" TO MCR:DESCR DO ADDREC ERASE @ 4,0 SAY " " INPUT "Amount FICA " TO MAMT STORE MFICAAN TO MDR:AN STORE "FICA" TO MDR:DESCR DO ADDREC ERASE @ 4,0 SAY " " INPUT "Amount STATE WITHHOLDING " TO MAMT STORE MSWHAN TO MDR:AN STORE "STATE WITHHOLDING" TO MDR:DESCR DO ADDREC STORE " " TO MNOTES2 ERASE @ 4,0 SAY " " IF .NOT. MINSDES = "***" ACCEPT "Enter INSURANCE DEDUCTION (Y/N) ?" TO MINSD IF MINSD = "Y" .OR. MINSD = "y" INPUT "Amount INSURANCE " TO MAMT STORE MINSAN TO MDR:AN STORE "INSURANCE DEDUCTION" TO MDR:DESCR DO ADDREC STORE " " TO MINSD ERASE ENDIF ENDIF @ 4,0 SAY " " IF .NOT. MDEDDES = "***" ACCEPT "Enter OTHER DEDUCTIONS (Y/N) ?" TO MOTH IF MOTH = "Y" .OR MOTH = "y" INPUT "Amount OTHER DEDUCTION " TO MAMT STORE MDEDAN TO MDR:AN STORE "PAYROLL DEDUCTION" TO MDR:DESC DO ADDREC ERASE STORE " " TO MOTH ENDIF ENDIF ACCEPT "Enter more PAYROLL STUBS (Y/N) ?" TO MANS LOOP ENDDO RETURN CANCEL************************************************* * PRTDAT.CMD - V1.00 - * THIS IS A UTILITY COMMAND TO PRINT THE RAW * JOURNAL IN FIFTY LINE PAGES. * PRINTS ON WIDE CARRIAGE OR IN COMPRESSED TEXT. * SEE NOTES BELOW IF COMPRESSED MODE DOESN'T WORK. ************************************************* ERASE SET TALK OFF ERASE USE B:GENJOURN ACCEPT "PACK THE GENERAL JOURNAL? (Y/N) " TO MANS IF MANS = "Y" .OR. MANS = "y" PACK ENDIF STORE " " TO MANS STORE " " TO MPRINT STORE " " TO MCOMP STORE 0 TO MDRAMT STORE 0 TO MCRAMT STORE " " TO MTAXREF ? " " ******** ACCEPT "LIST ON WIDE CARRIAGE PRINTER? (Y/N) " TO MANS IF MANS = "Y" .OR. MANS = "y" STORE "Y" TO MANS STORE "Y" TO MPRINT ENDIF IF .NOT. MANS = "Y" ? " " ? "DOES YOUR PRINTER PRINT COMPRESSED TEXT? (Y/N) " ACCEPT TO MCOMP ENDIF IF MCOMP = "Y" .OR. MCOMP = "y" STORE "Y" TO MCOMP STORE "Y" TO MPRINT ENDIF ******** IF .NOT. MPRINT = "Y" DISPLAY ALL ENDIF ************************************************* IF MPRINT = "Y" STORE 0 TO MPAGE STORE 0 TO MRECDONE USE B:GENJOURN SET FORMAT TO PRINT SET PRINT ON IF MCOMP = "Y" ************************************************* * NOTE: To set compressed print mode. * If CHR(15) doesn't work on your printer, * look in your printer manual for character * that sets compressed print mode. Change * "? CHR(15)" to correct character. ************************************************* ? CHR(15) ? " " ? " " ENDIF DO WHILE .NOT. EOF IF MRECDONE = (MPAGE * 50) ERASE @ 2,8 SAY "DATE" @ 2,18 SAY "DR:DESCR" @ 2,37 SAY "DR:AN" @ 2,44 SAY "DR:AMT" @ 2,54 SAY "CR:DESCR" @ 2,70 SAY "CR:AN" @ 2,78 SAY "CR:AMT" @ 2,88 SAY "NOTES1" @ 2,108 SAY "NOTES2" @ 3,1 SAY " " STORE MPAGE + 1 TO MPAGE ENDIF STORE MRECDONE + 1 TO MRECDONE STORE DR:AMT TO MDRAMT STORE CR:AMT TO MCRAMT IF .NOT. MDRAMT = MCRAMT STORE TAXREF TO MTAXREF REPLACE TAXREF WITH "ERR" ENDIF DISPLAY IF .NOT. MDRAMT = MCRAMT REPLACE TAXREF WITH MTAXREF STORE 0 TO MDRAMT STORE 0 TO MCRAMT ENDIF SKIP LOOP ENDDO ENDIF IF MCOMP = "Y" ************************************************* * NOTE: To return printer to regular print mode. * If CHR(18) doesn't work on your printer, * look in your printer manual for character * that sets regular print mode. Change * "? CHR(18)" to correct character. ************************************************* ? CHR(18) ENDIF ? CHR(12) SET FORMAT TO SCREEN SET PRINT OFF RETURN CANCEL TE" @ 2,18 SAY "DR:DESCR" @ 2,37 SAY "DR:AN" @ 2,44 SAY "DR:AMT" @ 2,54 SAY "CR:DESCR" @ 2,70 SAY "CR:AN" @ 2,78 SAY "CR:AMT" @ 2,88 SAY "NOTES1" @ 2,108 SAY "NOTES2" @ 3,1 SAY " " STORE MPAGE + 1 TO MPAGE ENDIF STORE MRECDONE + 1 TO MRECDONE STORE DR:AMT TO MDRAMT STORE CR:AMT TO MCRAMT IF .NOT. MDRAMT = MCRAMT STORE TAXREF TO MTAXREF REPLACE ************************************************** * PRTJRN.CMD - V1.00 - * PRINTS THE JOURNAL IN JOURNAL FORMAT * CHOICES FOR SAVING AND PRINTING FILE ************************************************** SET TALK OFF STORE " " TO PRTANS DO WHILE .NOT. PRTANS = "5" STORE " " TO PRTANS STORE 1 TO MRECNUM STORE 0 TO MPAGE STORE 0 TO MLASTREC STORE 0 TO MLASTPG STORE " " TO MNAME STORE 0 TO MDR:SUM STORE 0 TO MCR:SUM STORE 1 TO MPAGREC STORE " " TO MPRTJRN ERASE ? CHR(07) @ 2,10 SAY "******** FORMATTED PRINT MENU ********" @ 4,1 SAY "SELECT ONE OF THE FOLLOWING:" @ 6,1 SAY "1. SAVE OUTPUT FILE ON DISK ONLY." @ 8,1 SAY "2. PRINT JOURNAL AND SAVE FILE." @ 10,1 SAY "3. PRINT FORMATTED JOURNAL ONLY." @ 12,1 SAY "4. PRINT JOURNAL FROM DISK FILE." @ 14,1 SAY "5. RETURN TO INIT MENU." @ 18,1 SAY "CAUTION: '3' WILL DESTROY OUTPUT FILE." @ 19,10 SAY "OUTPUT FILE REQUIRES 2.5X" @ 20,10 SAY "UNFORMATTED DISK SPACE." @ 22,1 SAY " " WAIT TO PRTANS IF PRTANS = " " .OR. PRTANS = "5" DO AC101 ENDIF ***************** PRINT FROM DISK FILE *********** IF PRTANS = "4" SET FORMAT TO PRINT SET PRINT ON USE B:PRTJRN LIST OFF SET FORMAT TO SCREEN SET PRINT OFF DO PRTJRN ENDIF **************************** IF .NOT. PRTANS = "4" USE PRTJRN COPY STRUCTURE TO B:PRTJRN ENDIF ERASE ****************** BEGIN PAGE LOOP *************** USE B:GENJOURN COUNT TO MLASTREC GOTO 1 DO WHILE .NOT. EOF STORE MPAGE + 1 TO MPAGE ****************** PRINT HEADER ****************** ERASE @ 5,2 SAY " " IF MHNAME = " " ACCEPT "TYPE HEADER NAME " TO MHNAME ENDIF IF MHYEAR = " " ACCEPT "TYPE HEADER YEAR " TO MHYEAR ENDIF IF MHQUART = " " ACCEPT "TYPE HEADER PERIOD " TO MHQUART STORE "GENERAL JOURNAL - PERIOD:" + MHQUART TO MHQUART ENDIF IF MHDATE = "00/00/001" ACCEPT "TYPE HEADER DATE (MM/DD/YY) " TO MHDATE STORE "DATE: " + MHDATE TO MHDATE ENDIF ******** ERASE USE B:PRTJRN IF .NOT. PRTANS = "1" SET FORMAT TO PRINT SET PRINT ON ENDIF APPEND BLANK STORE "PAGE: " + STR(MPAGE,4,0) TO MHPAGE REPLACE FIELD1 WITH MHNAME REPLACE FIELD2 WITH MHPAGE DISPLAY OFF APPEND BLANK REPLACE FIELD1 WITH MHQUART REPLACE FIELD2 WITH MHDATE DISPLAY OFF APPEND BLANK REPLACE FIELD1 WITH MHYEAR DISPLAY OFF APPEND BLANK DISPLAY OFF APPEND BLANK STORE "---------+---------+---------+---------+---------+" TO MFLD1 REPLACE FIELD1 WITH MFLD1 STORE "---------+---------+" TO MFLD2 REPLACE FIELD2 WITH MFLD2 DISPLAY OFF APPEND BLANK DISPLAY OFF APPEND BLANK STORE " ITEM DATE DESCRIPTION A/N" TO MFLD1 STORE " Dr Cr" TO MFLD2 REPLACE FIELD1 WITH MFLD1 REPLACE FIELD2 WITH MFLD2 DISPLAY OFF APPEND BLANK DISPLAY OFF ********** PRINT/REASSEMBLE RECORDS **************** ERASE IF PRTANS = "1" @ 10,10 SAY "TOTAL RECORDS:" @ 10,25 SAY MLASTREC @ 12,10 SAY "GETTING RECORD:" @ 14,1 SAY " " ENDIF ***************** 10 RECORD PAGE LOOP ********************** STORE 0 TO MREGREC STORE 0 TO MDR:SUM STORE 0 TO MCR:SUM USE B:GENJOURN DO WHILE MREGREC < 40 .OR. (.NOT. EOF) USE B:GENJOURN GOTO MRECNUM IF PRTANS = "1" @ 12,25 SAY MRECNUM ENDIF STORE DATE TO MDATE STORE DR:DESCR TO MDR:DESCR STORE DR:AN TO MDR:AN STORE DR:AMT TO MDR:AMT STORE MDR:SUM + MDR:AMT TO MDR:SUM STORE " " + CR:DESCR TO MCR:DESCR STORE CR:AN TO MCR:AN STORE CR:AMT TO MCR:AMT STORE MCR:SUM + MCR:AMT TO MCR:SUM STORE NOTES1 TO MNOTES1 STORE NOTES2 TO MNOTES2 STORE " " TO MX **************** SINGLE RECORD LOOP ************** USE B:PRTJRN STORE 1 TO MRECLIN DO WHILE MRECLIN <= 4 APPEND BLANK STORE MREGREC + 1 TO MREGREC STORE STR(MREGREC,3,0) TO MX DO CASE **************** 1ST LINE OF RECORD *************** CASE MRECLIN = 1 STORE MX + " " + MDATE + " " + MDR:DESCR + " " + MDR:AN TO MFLD1 STORE STR(MDR:AMT,10,2) TO MFLD2 **************** 2ND LINE OF RECORD *************** CASE MRECLIN = 2 STORE MX + " " + MCR:DESCR + " " + MCR:AN TO MFLD1 STORE " " + STR(MCR:AMT,10,2) TO MFLD2 **************** 3RD LINE OF RECORD *************** CASE MRECLIN = 3 STORE MX + " " + MNOTES1 TO MFLD1 STORE " " TO MFLD2 **************** 4TH LINE OF RECORD *************** CASE MRECLIN = 4 STORE MX + " " + MNOTES2 TO MFLD1 STORE " " TO MFLD2 ENDCASE REPLACE FIELD1 WITH MFLD1 REPLACE FIELD2 WITH MFLD2 STORE MRECLIN + 1 TO MRECLIN DISPLAY OFF LOOP ENDDO ************** END OF RECORD LOOP **************** STORE MRECNUM + 1 TO MRECNUM IF MRECNUM > MLASTREC STORE "Y" TO MPRTJRN DO ADDREC ? CHR(12) SET FORMAT TO SCREEN SET PRINT OFF DO PRTJRN ENDIF LOOP ENDDO STORE "Y" TO MPRTJRN DO ADDREC ************* END OF PAGE LOOP ******************* IF MRECNUM > MLASTREC STORE "Y" TO MPRTJRN DO ADDREC ? CHR(12) SET FORMAT TO SCREEN SET PRINT OFF DO PRTJRN ENDIF USE B:GENJOURN GOTO MRECNUM LOOP ENDDO LOOP ENDDO CANCELVGFIELD1C2lFIELD2Cm 02/02/86TELEPHONE 503 100.00ACCOUNTS PAY 210 100.00LD CALL NEW HAVEN 01/01/01CASH 101 1.99SALARIES 300 1.99DUMMY NY 01/01/01FEDERAL WITHHOLDING 140 100.00CASH 101 100.00DUMMY NY 01/01/01FICA 150 200.00CASH 101 200.00DUMMY NY 01/01/01STATE WITHHOLDING 160 300.00CASH ************************************************** * RECEIPTS.CMD - V1.00 - * USED TO ENTER GENERAL RECEIPTS IN * THE GENERAL JOURNAL. ************************************************** ERASE STORE " " TO MANS ERASE STORE " " TO MDR:AN STORE " " TO MCR:AN STORE " " TO MDR:DESCR STORE " " TO MCR:DESCR STORE " " TO MDATE @ 2,5 SAY "NEXT RECORD:" @ 2,20 SAY MREC ACCEPT "Enter DATE OF TRANSACTION (MM/DD/YY) " TO MDATE DO WHILE MDR:AN = " " @ 4,0 SAY " " ******************** ENTER DEBIT DATA ************* DO CASE CASE MSELADD = "1" ACCEPT "Enter ACCOUNT NUMBER to DEBIT A/N " TO MDR:AN CASE MSELADD = "2" ACCEPT "Enter account PAID TO by CHECK A/N " TO MDR:AN CASE MSELADD = "3" DO SECTICKS RETURN CASE MSELADD = "4" ACCEPT "Enter GASOLINE EXPENSE A/N " TO MDR:AN CASE MSELADD = "5" DO PAYSTUB ERASE IF MANS = "N" @ 10,10 SAY "ENTER MORE RECEIPTS? (Y/N) " WAIT TO MANS IF MANS = "y" STORE "Y" TO MANS ENDIF ENDIF RETURN CASE MSELADD = "6" ACCEPT "Enter PURCHASE or EXPENSE A/N " TO MDR:AN CASE MSELADD = "7" ACCEPT "Enter CASH PURCHASE A/N " TO MDR:AN CASE MSELADD = "8" STORE "N" TO MANS RETURN ENDCASE *************************************************** USE ANCHART LOCATE FOR AN = MDR:AN IF AN = MDR:AN STORE DESCR TO MDR:DESCR ENDIF IF MDR:DESCR = " " @ 6,0 SAY "ACCOUNT ERROR" STORE " " TO MDR:AN STORE " " TO MDR:DESCR ? CHR(07) ENDIF LOOP ENDDO @ 6,0 SAY " " @ 6,0 SAY MDR:DESCR @ 7,0 SAY " " INPUT "AMOUNT XXXX.XX " TO MAMT STORE MAMT TO MDR:AMT STORE MAMT TO MCR:AMT @ 9,0 SAY " " ******************* ENTER CREDIT DATA ************* DO WHILE MCR:AN = " " @ 9,0 SAY " " DO CASE CASE MSELADD = "1" ACCEPT "Enter ACCOUNT NUMBER to CREDIT A/N " TO MCR:AN CASE MSELADD = "2" ACCEPT "Enter CHECKING ACCOUNT A/N " TO MCR:AN CASE MSELADD = "4" ACCEPT "Enter GAS CREDIT CARD OR CASH A/N " TO MCR:AN CASE MSELADD = "6" ACCEPT "Enter CREDIT CARD A/N " TO MCR:AN CASE MSELADD = "7" ACCEPT "Enter CASH A/N " TO MCR:AN ENDCASE *************************************************** USE ANCHART LOCATE FOR AN = MCR:AN IF AN = MCR:AN STORE DESCR TO MCR:DESCR ENDIF IF MCR:DESCR = " " @ 11,0 SAY "ACCOUNT ERROR" STORE " " TO MCR:AN STORE " " TO MCR:DESCR ? CHR(07) ENDIF LOOP ENDDO @ 11,0 SAY " " @ 11,0 SAY MCR:DESCR @ 12,0 SAY " " ******************* ENTER NOTES ******************* DO CASE CASE MSELADD = "1" ACCEPT "Enter NOTES (1ST LINE) " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter NOTES (2ND LINE) " TO MNOTES2 CASE MSELADD = "2" ACCEPT "Enter PAY TO THE ORDER OF " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter CHECK NUMBER " TO MNOTES2 CASE MSELADD = "4" ACCEPT "Enter LOCATION or TRIP PURPOSE " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter AUTO ID or MILEAGE " TO MNOTES2 CASE MSELADD = "6" ACCEPT "Enter ITEM PURCHASED or PURPOSE " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter LOCATION/GUEST " TO MNOTES2 CASE MSELADD = "7" ACCEPT "Enter EXPENSE or PURPOSE " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter LOCATION/GUEST " TO MNOTES2 ENDCASE *************************************************** @ 17,0 SAY " " ACCEPT "Enter MORE TRANSACTIONS? (Y/N) " TO MANS @ 19,0 SAY " " IF MANS = "N" .OR. MANS = "n" STORE "N" TO MANS ENDIF DO ADDREC RETURN CANCEL "1" ACCEPT "Enter NOTES (1ST LINE) " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter NOTES (2ND LINE) " TO MNOTES2 CASE MSELADD = "2" ACCEPT "Enter PAY TO THE ORDER OF " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter CHECK NUMBER " TO MNOTES2 CASE MSELADD = "4" ACCEPT "Enter LOCATION or TRIP PURPOSE " TO MNOTESU>ITEMNlDATEC lDESCRClANClDR:AMTN lCR:AMTN m 0101/22/83AUTO-REPAIR 515 3.50 0.00 02 CASH 101 0.00 3.50 03 BRADLEES 0.00 0.00 04 0.00 0.00 0501/23/83MATERIALS 101.80 0.00 06 CASH 101 0.00 101.80 07 THE MATTRESS MAN 0.00 0.00 08 0.00 0.00 0901/24/83TRAVEL 0.50 0.00 10 CASH 101 0.00 0.50 11 TO************************************************** * SECTICKS.CMD - V1.00 * TO ENTER SECURITIES CONFIRMATIONS * IN THE GENERAL JOURNAL. USED FOR * CASH OR MARGIN (ACCOUNTS PAYABLE) * ACCOUNTS BY SELECTING PROPER * ACCOUNT NUMBER. ************************************************** ERASE STORE " " TO MANS DO WHILE .NOT. (MANS = "N" .OR. MANS = "n") ERASE STORE " " TO MDR:AN STORE " " TO MCR:AN STORE " " TO MDATE STORE " " TO MTRAN ACCEPT "Enter PURCHASE or SALE (P/S) " TO MTRAN ACCEPT "Enter TRADE DATE (MM/DD/YY) " TO MDATE DO WHILE MDR:AN = " " @ 4,0 SAY " " IF MTRAN = "P" .OR. MTRAN = "p" ACCEPT "Enter PURCHASES - SECURITIES A/N " TO MDR:AN ENDIF IF MTRAN = "S" .OR. MTRAN = "s" ACCEPT "Enter ACCOUNTS RECEIVABLE A/N or CASH A/N " TO MDR:AN ENDIF STORE " " TO MDR:DESCR USE ANCHART LOCATE FOR AN = MDR:AN IF AN = MDR:AN STORE DESCR TO MDR:DESCR ENDIF IF MDR:DESCR = " " @ 6,0 SAY "ACCOUNT ERROR" STORE " " TO MDR:AN ? CHR(07) ENDIF  LOOP ENDDO @ 6,0 SAY " " @ 6,0 SAY MDR:DESCR @ 7,0 SAY " " INPUT "AMOUNT DUE XXXX.XX " TO MAMT STORE MAMT TO MDR:AMT STORE MAMT TO MCR:AMT @ 9,0 SAY " " DO WHILE MCR:AN = " " @ 9,0 SAY " " IF MTRAN = "P" .OR. MTRAN = "p" ACCEPT "Enter ACCOUNTS PAY A/N or CASH A/N " TO MCR:AN ENDIF IF MTRAN = "S" .OR. MTRAN = "s" ACCEPT "Enter SALES - SECURITIES A/N " TO MCR:AN ENDIF USE ANCHART STORE " " TO MCR:DESCR LOCATE FOR AN = MCR:AN IF AN = MCR:AN STORE DESCR TO MCR:DESCR ENDIF IF MCR:DESCR = " " @ 11,0 SAY "ACCOUNT ERROR" STORE " " TO MCR:AN ? CHR(07) ENDIF LOOP ENDDO @ 11,0 SAY " " @ 11,0 SAY MCR:DESCR @ 12,0 SAY " " ACCEPT "Enter SECURITIES BOUGHT OR SOLD " TO MNOTES1 @ 14,0 SAY " " ACCEPT "Enter BROKERS'S NAME " TO MNOTES2 @ 17,0 SAY " " ACCEPT "Enter more SECURITY CONFIRMATIONS? (Y/N) " TO MANS @ 19,0 SAY " " DO ADDREC LOOP ENDDO RETURN CANCEL!~!t!͜M BUDGͻ ͵ ͠ ͖ 8{ Ăy0 2͵ ͖ Gͻ ͋ ͖ 1ͻ ͯ 2ͯ M*."*p*>w:O*~#~_ #~ #~ #~ AC101REGCMD!./012ADDREC CMD345ANCHART CMD6789ANCHART DBF:;<GENJOURNDBF=PAYSTUB CMD(>?@ABPRTDAT CMDCDEPRTJRN CMD(FGHIJPRTJRN DBFKRECEIPTSCMDLMNOREGENFILDBFPSECTICKSCMDQRBUDGET $$$ B U D G E T M A N A G E R Copyright January 1984 by J. G. Yoder This program may be copied and distributed freely for non-commercial use only. For any other purpose please contact the author... Mr. J. G. Yoder P. O. Box 165 Spring Hill, KS 66083 INTRODUCTION: BUDGET MANAGER is designed to keep a yearly record of your personal expenses and to make reports of those expenses taylored to your needs, when you need them. Another important aspect of this program is its ability to aid the user in budgeting his income into monthly accounts, however leaving the user free to edit the budgets at his whim. Because all transactions are stored on disk rather than in memory the number of transactions with which the program can work is virtually unlimited. A formatted single density diskette on drive B may contain from 1,462 (worst case) to 1,956 (best case) maximum transaction records. The worst case example needs some explanation. Because of the way CP/M handles MBASIC's random access files, a maximum of 2,047 bytes of disk memory could be wasted in each of 12 data files (one for each month) used by BUDGET MASTER. Assuming the user has placed data in 11 of these files and is working on the last file (i.e. in the month of December), it is theoretically possible for nearly 22K bytes of disk memory to be wasted. Even in the worst case there is still room for an average of 4 transactions per day for the entire year. If necessary the data may be divided and placed on separate disks. Although this program may be used on single density systems, double density users will especially enjoy its utility. A formatted double density diskette on drive B may contain from 3,822 (worst case) to 4,073 (best case) maximum transaction records. Under the worst case example an average of about 10 and one half transactions may be performed per day for 365 days (11.15/day for best case). Each month may contain records for about 315 transactions... more than enough for the average household. Because BUDGET MANAGER is menu driven, most users will find that it can be used without instruction. However, you should still read this documentation. In it you will read how to "install" the program, how to run the program, descriptions of user options, how to protect valuable data, and descriptions of files created by the program. A judicious use of BUDGET MANAGER will help the user save money. Most people spend a great deal of money on things they would not, if they only knew how the money was spent. BUDGET MANAGER will help you set your financial priorities and follow your plan. In a month's time you should be able to see a qualitative difference in your purchasing power.  CHAPTER ONE: INSTALLING THE PROGRAM To perform the following steps you will need a disk that contains a copy of MBASIC.COM and a copy of the CP/M utility disk that came with your computer. The latter should contain these files: COPY.COM, PIP.COM, DDT.COM, and SUBMIT.COM, You will also need a disk, which contains these files: BUDG.BAS, FIXTRANS.BAS, EDITBUDG.BAS, SEARCH.BAS, COPYRITE.GRF, and UP.SUB, all of which are included with this package. Finally you will need four blank disks. Step One: Initialize Four Blank Disks. (1) Use the COPY command to format four blank disks. Follow the instructions for this command explained in your OSBORNE 1 User's Reference Guide in chapter two. (4) Follow the instructions in your OSBORNE 1 User's Reference Guide, chapter 8, to "SYSGEN" each of these four newly formatted disks. Step Two: Install the Data Disks (1) Use PIP.COM to copy the CP/M utility SUBMIT.COM to two of the above disks, but change the name BACK.COM. (2) Use PIP.COM to copy UP.SUB to the two disks of the above step. (3) Lable these two disks "BUDGET DATA." Step Three: Install the First Program Disk (1) Follow the instructions in chapter 2 of the OSBORNE 1 User's Reference Guide to "SETUP" the one of the remaining blank disks with these specifications: (a) Printer - Your choice as appropriate. (b) Screen size - 128. (c) Function keys - Your choice as appro- priate. (d) Baud rate - Your choice as appropriate. (e) Auto horizontal scroll - Off. (f) Arrow keys - CP/M. (2) Use PIP.COM to copy these files to above disk: COPYRITE.GRF, FIXTRANS.BAS, EDITBUDG.BAS, SEARCH.BAS, and BUDG.BAS. (3) Use PIP.COM to copy MBASIC.COM to this same disk. (4) Label this disk "BUDGET PROGRAMS #1." Step Four: Make a Back Up Program Disk The disk that you have just installed contains files not found on any one other disk. For this reason you should immediately make a copy of the disk and place it in a safe place. Label this disk "BUDGET PROGRAMS #2." CHAPTER TWO: RUNNING THE PROGRAM Most users will find BUDGET MANAGER very easy to use. The reason for this is that it is almost totally menu driven. This means that most of the time to do something within the program all you need to do is to select your option from a menu presented on the screen and answer a few simple questions. The purpose of this chapter is to give you an over- view of the program as it runs. The best way to learn to use this program is to use it. Therefore get one of your program disks and one of your data disks and get ready to do a little experimenting. Read and follow the instructions presented below and watch the results on your compu- ter's screen. Getting Started: The easiest way to start BUDGET MANAGER is to go to CP/M, log on to drive A, and type MBASIC BUDG followed by pressing the "return" key. The first thing that BUDGET MANAGER does is to print a graphic title page on your screen. On this page is a reminder to place one of your data disks in drive B. If you have not done this yet, you should do it now. BUDGET MANAGER will next ask your for the date. Little error checking is done at this point, so please enter the date carefully. You will enter it in the format "MM/DD/YY." Notice that the date has already been fielded. Only the numbers need be typed; the slashes are entered automatically. If you make a mistake, reposition the cursor with the left and right arrows and type over your mistake. Be careful here! The month should be a two digit number from 01 to 12. This number is used by the program to determine on which monthly file to opperate.. The day should be a two digit number from 01 to 28, 29, 30, or 31 depending upon the month (the computer does not check this), and the year may by any two digit number. The day and year are printed on reports, when you need them; this is the only way they are used. Their exact values are unimportant, unless you wish your reports to print the date accurately. However the day field must be given a value between 1 and 31 inclusive. When you are sure that you have entered the date correctly, press . For convenience the date is stored in memory in such a way that it will not be forgotten from one program run to another, as long as the power to the computer has not been lost. If for some reason you need to run the program after you have already exited the program, use method two from the CP/M command prompt. The date will be pulled up from its special storage area and this routine will be skipped, assuming that the computer has not be turned off. BUDGET MANAGER uses a file on drive B named ACCOUNTS.DAT to hold a variable number of accounts and related information. At this point in the pro- gram's opperation this file is read into memory. Normally this process will be invisible to you, but on two occasions this will not be so. If you are using a new data disk and no accounts have been created, or if you have placed the wrong disk in drive B by mistake, BUDGET MANAGER will inform you that it cannot find the ACCOUNTS.DAT file and will allow you to create the file (the program does the work) or change the new file. You should do what- ever is appropriate. The Main Menu: You should next see on your screen BUDGET MANAGER's main menu. There are several options available to you from this point. Using these op- tions you will add records of your daily trans- actions to your data files, repair records in which you have entered mistakes, prepare and use monthly budgets, and generate reports. You are also pro- vided an option to search for specific transactions, and a convenient and needed exit for the program. A description of these options follows. Option 0 - Exit to CP/M: This is the ordinary exit of the program. Always be sure to use it when data has been entered that must be saved to a disk file. If the option is not used, the program will become confused, and will not opperate correctly the next time it is run. Option 1 - Add Transaction Records: This selection is made in order to record one's daily transactions. When the selection is made, a form is printed on the screen which contains empty fields to be filled in to describe each transaction. Instructions are given at the bottom of the form for each field to be filled. Option 2 - Repair an Old Transaction: If the user makes an incorrect entry under option 1, option 2 can be used to correct the entry. The record number of the transaction to correct is required. This may be found by using option number 6. Option 3 - Edit or Add Account Lables: This is one of the ways to create the accounts into which each transaction is recorded. Accounts (clothes, automobile, home, etc.) are given names (lables) and two character codes. One lable has already been defined - Deposits. It has been given the code DP. All other accounts must be defined by the user. Accounts may be defined "interactively" under option number 1. This option is also used to create a monthly budget. That is the ammount of money you plan to receive (deposits) and the ammount of money you plan to spend in each of the accounts. This budget may be edited at any time. Option 4 - Calculate and Report Expenses: This option is selected when the user wishes to examine his monthly income and outflow. Reports may either be printed upon an Epson printer or sent to the video screen. Several different kinds of reports may be generated. Option 5 - Compare Montly Expenses with Budget: This option is used to check expenses against the budget defined under option number 3. A report may be sent to the printer or to the screen. Option 6 - Search for a Record: This option allows the user to search the current data base for any value within most of the fields defined in option 1. Option 7 - Reset "Today's" Date: Sometimes it is necessary to change the date entered at the beginning of a program run. If this can be done without harming any data, the program will allow this to be done using this option. If harm of data would occur, the date cannot be re-entered. The solution for this problem is to return to CP/M using option 0, and then running the program again. Then use this option at the very beginning of the run. Option 8 - Bring Balance Forward: Ordinarily the balance for the last month is automatically forwarded, when a new month begins. However if a change is made to the last month's data after the original forwarding is performed, this option must be used in order to update the records. The user will notice that the numbers of three of the above options will be dim, when printed on the screen. This is to remind the user that these options load overlays into memory from the program disk, thus taking up a bit of time. Use of these options should therefore be sparing. Only a brief description of each option has been given. However, if the user pays good attention to the instructions given by the program itself, he should not have mush difficulty making this system work for him. The author has been using the system for nearly a year, and strongly believes in its utility. CHAPTER THREE: DATA PROTECTION The importance of data protection cannot be over emphasized, and nearly every major piece of commercial software reminds us of this fact! Data protection of the data you enter using this program is particularly important. Consider this case: You have been dutifully entering every transaction that you and your family have made for the last seve months. Because of the use made of the disk, one day you get that dreaded message, "BDOS error!" Something has destroyed your data. Don't laugh, it has happened to this writer with this very program. Fortunantly I had backups available. When you exit this program using option 0, some information is stored on you data disk in drive B, and message appears which reads: "Don't forget to BACK UP OCT," depending upon the current month. This is a reminder for you to protect your data. To do this follow these simple steps from the CP/M prompt: (1) Take the program disk out of drive A and  replace it with the other data disk (the one that was not placed in drive B). (2) Reset CP/M to recognize the new disk: A>^C Press control C. (3) Type on the command line the uppercase message in the reminder: A>BACK UP OCT Depending upon the month. ****NOTE**** This is normally all that is required to keep your data protected. However occasionally a different situation arrises needing special attention. Whenever a new month is entered data is entered in two different montly files. This also the case when option 8 is used. In this case use the above method with this change: Instead of entering the three character month identification simply place the asterisk character (*). This will cause all files with the extention .DAT on drive B to be copied to drive A. CONCLUSION: Most people have never kept the kind of records which BUDGET MANAGER requires. For it to be of use one should make an attempt to get receipts for every transaction if possible. Although this will be new for many, it will quickly become second nature. Occasionally a few transactions will be inadvertantly not recorded. Normally the ammounts of these transactions will be minimal. When you compare the ammount of money you actually have, to the ammount of money BUDGET MANAGER says that you have, these descrepancies will appear. Simply adjust the balance by adding to the deposit account or subtracting from another account. I believe that the program is easy enough to use that anyone can use it. However, if you have any problem (other than hardware problems) please feel free to drop me a line at the address below. If I can help, then I will try. Indicate in your note if I may call you collect. Mr. J. G. Yoder P. O. Box 165 Spring Hill, KS 66083 *.|g"e A xs`! u`g *e.U*e.>w*e.|w*ew# xU !4M BUDG$=0! RUNNING BUDGET MANAGER Osborne Computer Corporation 26500 Corporate Ave. Hayward, CA 94545 $YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKWWWWWWWWWWWWWWWWWWWWIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKWWWWWWZaaaaaaaaaaVWWWWWWIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVWWWWWWIaaaaaaaaaaKWWWWWWZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVWWWWWWWWWWWWWWWWWWWWZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa$ DMʡڏ"=ʡͲ=ʡYPͲ1**!O~4#~#F#x~#s#r#w>͐ « f f  . ᯕo>g.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaWWWWWWWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVWWWWWWIaaaaaaaaaaKWWWWWWZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa10 PRINT CHR$(&H1A); 20 A$=" " 30 A=VARPTR(A$) 40 POKE A,52:B=&HF000 50 OPEN "R",1,"COPYRITE.GRF",52 60 FIELD 1, 52 AS B$ 70 FOR X=1 TO 24 75 POKE A+1,-(B MOD 256):POKE A+2,INT(256+(B/256)):B=B+128 80 'PRINT CHR$(&H1B)"R"; 90 GET 1 100 LSET A$=B$ 110 NEXT X 120 A$=INPUT$(1) 130 CLOSE 140 RESET 150 CLEAR 1000 WIDTH 255 1020 DEFINT A-Z 1040 DIM ACNTCODE$(200),ACNTLBL$(200),ACNTBUDG!(200) 1050 DIM ANS1$(30),ANS2$(30) 1070 CLS$=CHR$(&H1A) 1080 ESC$=CHR$(&H1B):DARK$=ESC$+")":BRITE$=ESC$+"(" 1090 STRSCR$=ESC$+"l":ENDSCR$=ESC$+"m":MVLEFT$=CHR$(8) 1100 MVRITE$=CHR$(12):MVDOWN$=CHR$(10):MVUP$=CHR$(11) 1110 CR$=CHR$(13):LF$=CHR$(10):TF$=CHR$(12) 1120 INSERT$=ESC$+"Q":DELEND$=ESC$+"T":DELINE$=ESC$+"R" 1130 DELCHA$=ESC$+"W":MOVSCR$=ESC$+"S":MOVCUR$=ESC$+"=" 1140 BELL$=CHR$(7):GOSUB 1150:GOTO 1200 1150 DEF FNCENTER$(A$)=STRING$(26-LEN(A$)/2-.5," ")+A$ 1160 DEF FNLCNTR$(A$)=STRING$(40-LEN(A$)/2-.5," ")+A$ 1170 DEF FNVERTAB$(A)=STRING$(A!,LF$) 1180 DEF FNPRTAT$(X,Y)=CHR$(&H1B)+"="+CHR$(Y+32)+CHR$(X+32) 1190 DEF FNMONTH$(X$)=MID$("DECJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",VAL(X$)*3+1,3) 1191 COMMON ANS1$(),ANS2$(),ACNTCODE$(),ACNTLBL$(),ACNTBUDG!(),NUMRECS,DATE$,NUMACCTS 1192 COMMON CLS$,DARK$,ESC$,BRITE$,STRSCR$,ENDSCR$ 1193 COMMON MVLEFT$,MVRITE$,MVDOWN$,MVUP$,CR$,LF$ 1194 COMMON TF$,DELEND$,DELINE$,DELCHA$,MOVSCR$ 1195 COMMON MOVCUR$,BELL$ 1196 RETURN 1200 PRINT CLS$ 1210 PRINT FNCENTER$("B U D G E T M A N A G E R") 1220 PRINT:PRINT FNCENTER$("Copyright January 1984") 1230 PRINT FNCENTER$("by J. G. Yoder") 1232 DF=-1:DATE$=" ":POKE VARPTR(DATE$),8 1234 POKE VARPTR(DATE$)+1,16 1236 POKE VARPTR(DATE$)+2,0 1238 GOTO 1270 1239 IF DF THEN PRINT CLS$ ELSE 1750 1240 PLIN=9:PCOL=0 1250 PROMPT$=FNCENTER$("Enter the date :00/00/00:") 1260 GOSUB 1880:LSET DATE$=ANS$ 1270 IF VAL(DATE$)>0 AND VAL(DATE$)<13 THEN 1290 1280 PRINT BELL$;:GOTO 1240 1290 DUM=VAL(RIGHT$(DATE$,5)) 1291 IF DUM<1 OR DUM>31 THEN 1280 1295 PRINT FNPRTAT$(0,9) DELINE$ FNCENTER$("TODAY'S DATE:") 1297 PRINT:PRINT STRING$(19,32) USING "&. ##& 19\\"; FNMONTH$(DATE$),VAL(MID$(DATE$,4,2)),",",RIGHT$(DATE$,2); 1310 OPEN "R",1,"B:RECLENTH.DAT",2 1320 FIELD 1, 2 AS RC$ 1330 GET#1,VAL(DATE$) 1340 NUMRECS=CVI(RC$) 1342 IF NUMRECS>0 THEN 1358 1344 IF VAL(DATE$)=1 THEN LM=12 ELSE LM=VAL(DATE$)-1 1346 GET#1,LM 1348 IF CVI(RC$)=0 THEN 1358 1350 GOSUB 9000 1358 CLOSE 1360 NUMACCTS=0 1370 ON ERROR GOTO 1440 1380 OPEN "I", #1, "B:ACCOUNTS.DAT" 1390 ON ERROR GOTO 0 1400 IF EOF(1) THEN 1590 1410 NUMACCTS=NUMACCTS+1 1420 INPUT# 1,ACNTCODE$(NUMACCTS),ACNTLBL$(NUMACCTS),ACNTBUDG!(NUMACCTS) 1430 GOTO 1400 1440 PRINT FNPRTAT$(0,14)DELEND$"Cannot find B:ACCOUNTS.DAT" 1450 PLIN=15:PCOL=0:PROMPT$="(C)reate anew, or (G)et new disk? :#:" 1460 GOSUB 1880 1470 IF ANS$="C" THEN 1550 1480 IF ANS$<>"G" THEN PRINT BELL$;:GOTO 1450 1490 PRINT 1500 PRINT "Insert correct disk in drive B and press return. "; 1520 ANS$=INPUT$(1) 1530 RESET 1540 RESUME 1200 1550 OPEN "O", 1, "B:ACCOUNTS.DAT" 1560 PRINT# 1,"DP,Deposits,";0! 1570 CLOSE 1580 RESUME 1310 1590 CLOSE:GOTO 1610 1600 GOSUB 1150:DEFINT A-Z 1610 PRINT CLS$ 1620 PRINT FNCENTER$("B U D G E T M A N A G E R") 1630 PRINT:PRINT:PRINT " "FNCENTER$(STRSCR$+"Main Menu"+ENDSCR$) 1640 PRINT 1650 PRINT FNCENTER$("(1) Record a new transaction ") 1660 PRINT " "FNCENTER$("("+DARK$+"2"+BRITE$+") Repair an old transaction ") 1670 PRINT " "FNCENTER$("("+DARK$+"3"+BRITE$+") Edit or add account labels ") 1680 PRINT FNCENTER$(" [Prepare a monthly budget] ") 1690 PRINT FNCENTER$("(4) Calculate and report expenses ") 1700 PRINT FNCENTER$("(5) Compare monthly expenses with budget ") 1720 PRINT " "FNCENTER$("("+DARK$+"6"+BRITE$+") Search for a record ") 1725 PRINT FNCENTER$("(7) Reset "+CHR$(34)+"today's"+CHR$(34)+" date ") 1727 PRINT FNCENTER$("(8) Bring balance forward from "+FNMONTH$(STR$(VAL(DATE$)-1))+" to "+FNMONTH$(DATE$)) 1730 PRINT FNCENTER$("(0) Done - "+DARK$+"Don't stop without this!"+BRITE$+" ") 1750 PLIN=20:PCOL=0 1760 PROMPT$=" What is your selection? :1:" 1770 GOSUB 1880:IF ANS$<>"7" AND ANS$<>"4" AND ASN$<>"5" THEN DF=0 1780 DUM=VAL(ANS$):DUM=DUM+1 1790 IF DUM<1 OR DUM>9 THEN 1750 1800 ON DUM GOTO 2140,2360,5910,5940,3060,5570,5880,1239,8000 1810 YES$=INPUT$(1):YES$=CHR$(ASC(YES$)AND &HDF) 1830 IF YES$="Y" OR YES$="N" THEN PRINT YES$;:RETURN 1840 PRINT BELL$; 1850 GOTO 1810 1860 PROMPT$=PROMPT$(X) 1870 PLIN=PLIN(X):PCOL=0 1880 GOSUB 7000:PRINT FNPRTAT$(PCOL,PLIN)PROMPT$;:A=PCOL 1890 PCOL=INSTR(PROMPT$,":"):CRS=INSTR(PCOL+1,PROMPT$,":")-PCOL+1 1900 FOR XYZ=1 TO CRS 1910 ANS2$(XYZ)=MID$(PROMPT$,XYZ+PCOL-1,1) 1920 IF XYZ<>1 THEN ANS1$(XYZ-1)=ANS2$(XYZ) 1930 NEXT XYZ:IF ANS1$(1)=CHR$(160) THEN 10000 ELSE PCOL=PCOL+A 1940 LTH=CRS-2 1950 PRINT FNPRTAT$(PCOL,PLIN);:CRS=2 1960 ANS$=INPUT$(1) 1970 IF ANS$=CR$ OR ANS$=MVUP$ THEN 2060 1980 IF ANS$=MVRITE$ AND CRS1 THEN CRS=CRS-1:PRINT ANS$;:IF ANS2$(CRS)=":" THEN 2040 ELSE IF INSTR("# 0123456789",ANS2$(CRS)) THEN 1960 ELSE 1990 2000 IF ASC(ANS$)<32 THEN 2040 2010 IF ANS2$(CRS)=" " THEN 2050 2020 IF 0<>INSTR("0123456789",ANS2$(CRS)) AND 0<>INSTR("0123456789",ANS$) THEN 2050 2030 IF ANS2$(CRS)="#" AND INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ANS$) THEN 2050 2040 PRINT BELL$;:GOTO 1960 2050 ANS1$(CRS-1)=ANS$:PRINT ANS$;MVLEFT$;:ANS$=MVRITE$:GOTO 1980 2060 IF LTH=0 THEN LAST$=ANS$:ANS$="" :RETURN 2070 IF INSTR("# ",ANS1$(LTH)) THEN LTH=LTH-1:GOTO 2060 2080 LAST$=ANS$ 2090 ANS$="" 2100 FOR XYZ=1 TO LTH 2110 ANS$=ANS$+ANS1$(XYZ) 2120 NEXT XYZ 2130 RETURN 2140 PRINT CLS$ 2150 PRINT FNPRTAT$(0,6) "Updating B:ACCOUNTS.DAT" 2160 OPEN "O", 1, "B:ACCOUNTS.DAT" 2170 FOR X=1 TO NUMACCTS 2180 PRINT# 1,ACNTCODE$(X)","ACNTLBL$(X)","ACNTBUDG!(X) 2190 NEXT X 2200 CLOSE 2210 PRINT "Updating B:RECLENTH.DAT" 2220 OPEN "R",1,"B:RECLENTH.DAT",2 2230 FIELD 1,2 AS RC$ 2240 LSET RC$=MKI$(NUMRECS) 2250 PUT 1,VAL(DATE$) 2260 CLOSE 2265 PRINT:PRINT "Be sure to BACK UP "FNMONTH$(DATE$)" for new data!" 2266 PRINT"Thank you." 2270 SYSTEM 2280 DATA "Account code ................ : :" 2290 DATA "Check number ................ :>C ;C ;C ;C ;C:" 2300 DATA "Day of the month ............ :>C <C:" 2310 DATA "Payee or payor .............. : :" 2320 DATA "Item description ............ : :" 2330 DATA "Total ammount ............... :?C =C =C =C . =C ;C:" 2340 DATA "Tax included in total ammount :=C ;C ;C ;C . <C ;C:" 2350 DATA "Deductible item (T/F-RET) ... :#:" 2360 OPEN "R", 1, "B:"+FNMONTH$(DATE$)+".DAT",49 2370 FIELD 1, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 2380 PRINT CLS$;FNCENTER$("N E W T R A N S A C T I O N S") 2390 PRINT:PRINT FNCENTER$("Today's Date: "+DATE$) 2400 FL=6:PCOL=0 2410 RESTORE 2280 2420 FOR X=1 TO 8 2430 PLIN(X)=FL 2440 FL=FL+1 2450 READ ANS$ 2460 PROMPT$(X)=ANS$ 2470 NEXT X 2480 FOR X=1 TO 8 2490 PRINT FNPRTAT$(0,PLIN(X)) PROMPT$(X) 2500 NEXT X 2510 X=1 2520 PRINT FNPRTAT$(0,4)FNCENTER$("Record #"+STR$(NUMRECS+1)):ON X GOTO 2530,2810,2870,2950,3000,5970,6040,6100 2530 B=-1:PRINT FNPRTAT$(0,20) "Enter a two character account code" 2540 PRINT "or press to ignore and return to menu." 2550 GOSUB 1860 2560 IF ANS$="" THEN CLOSE:GOTO 1610 2570 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ 2580 IF INSTR(ANS$," ") THEN PRINT BELL$;:GOTO 2530 2590 XX=1 2600 WHILE XX<=NUMACCTS AND ACNTCODE$(XX)<>ANS$ 2610 XX=XX+1 2620 WEND 2630 IF XX>NUMACCTS THEN 2670 2640 PRINT FNPRTAT$(0,PLIN(X)) DELEND$ "Account: "ACNTLBL$(XX) 2650 LSET ACNTCODE$=ANS$ 2660 X=X+1:GOTO 2520 2670 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ "Cannot find code in account label file." 2680 IF NUMACCTS=200 THEN 2790 2690 PRINT "Do you wish to add another label? "; 2700 GOSUB 1810 2710 PRINT FNPRTAT$(0,20) DELINE$ DELINE$; 2720 IF YES$="N" THEN 2530 2730 PRINT "Enter label for code: "ANS$" "; 2740 INPUT;"",ANS2$ 2750 NUMACCTS=NUMACCTS+1 2760 ACNTCODE$(NUMACCTS)=ANS$ 2770 ACNTLBL$(NUMACCTS)=ANS2$ 2780 GOTO 2640 2790 PRINT "And account file cannot be be extended." 2800 FOR XX=1 TO 500:NEXT XX:GOTO 2530 2810 PRINT FNPRTAT$(0,20)DELINE$ DELINE$"Enter a check number or other identification." 2820 PRINT "Use ESC key to clear entry." 2830 GOSUB 1860 2840 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ 2845 IF LAST$=MVUP$ AND B THEN X=X-1:B=0:GOTO 2520 ELSE B=-1 2848 IF VAL(ANS$)>&H7FFF THEN PRINT BELL$;:GOTO 2810 2850 LSET CHK$=MKI$(VAL(ANS$)) 2860 X=X+1:GOTO 2520 2870 PRINT FNPRTAT$(0,20)"Enter the day of transaction (01-31)." 2880 PRINT "Use ESC key to clear entry." 2890 GOSUB 1860 2900 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ 2905 IF LAST$=MVUP$ AND B THEN X=X-1:B=0:GOTO 2520 ELSE B=-1 2910 IF VAL(ANS$)<1 OR VAL(ANS$)>31 THEN PRINT BELL$;:GOTO 2870 2920 LSET DAY$=ANS$ 2930 X=X+1 2940 GOTO 2520 2950 PRINT FNPRTAT$(0,20)"Enter the name of payee or payor." 2960 PRINT "Use arrow keys to move cursor." 2970 GOSUB 1860 2971 PRINT FNPRTAT$(0,20) DELINE$ DELINE$; 2975 IF LAST$=MVUP$ AND B THEN X=X-1:B=0:GOTO 2520 ELSE B=-1 2980 LSET PAYEE$=ANS$ 2990 X=X+1:GOTO 2520 3000 PRINT FNPRTAT$(0,20)"Enter a description of the transaction or item." 3010 PRINT "User arrow keys to move cursor." 3020 GOSUB 1860 3030 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ 3035 IF LAST$=MVUP$ AND B THEN X=X-1:B=0:GOTO 2520 ELSE B=-1 3040 LSET ITEM$=ANS$ 3050 X=X+1:GOTO 2520 3060 OPEN "R",2,"B:RECLENTH.DAT",2 3070 FIELD 2, 2 AS RC$ 3080 LSET RC$=MKI$(NUMRECS) 3090 PUT#2,VAL(DATE$) 3100 CLOSE 2 3105 PRFL=0 3110 PRINT CLS$ 3120 PRINT:PRINT:PRINT FNCENTER$("C A L C U L A T E A N D R E P O R T") 3130 PRINT:PRINT " "FNCENTER$(STRSCR$+"Report Menu"+ENDSCR$) 3140 PRINT:IF DUM=5 THEN PRINT " "FNCENTER$(DARK$+"Printer disabled"+BRITE$) 3150 IF DUM<>5 THEN PRINT " "FNCENTER$(DARK$+"PRINTER ENABLED"+BRITE$) 3160 PRINT 3170 PRINT FNCENTER$("(1) Toggle printer enable/disable ") 3180 PRINT 3190 PRINT FNCENTER$("(2) Calculate expenses by account ") 3200 PRINT FNCENTER$("(3) Calculate deductible expenses by account ") 3210 PRINT FNCENTER$("(4) Calculate expenses by payee under account") 3220 PRINT FNCENTER$("(5) Calculate expenses by item under account ") 3230 PRINT 3240 PRINT FNCENTER$("(6) Calculate expenses by payee ") 3250 PRINT FNCENTER$("(7) Calculate expenses by account under payee") 3260 PRINT 3270 PRINT FNCENTER$("(0) Return to Main Menu ") 3280 PCOL=0:PLIN=22:PROMPT$=FNCENTER$("Please enter your selection :0:") 3290 GOSUB 1880 3300 IF ANS$="0" THEN IF PRFL THEN LPRINT CHR$(&H1B)"@";:GOTO 1610 ELSE 1610 3310 IF ANS$>"7" THEN PRINT BELL$;:GOTO 3280 3320 ON VAL(ANS$) GOSUB 3340,3360,4200,4380,4600,4820,5400 3330 GOTO 3110 3340 PRFL=-1:DUM=-DUM:IF DUM=5 THEN RETURN 3341 PRINT CLS$"Position printer to top of form and press ." 3342 ANS$=INPUT$(1) 3343 LPRINT:LPRINT:LPRINT:LPRINT:LPRINT 3344 LPRINT CHR$(&H1B)"@"CHR$(&H1B)"N"CHR$(10); 3350 RETURN 3360 PRINT CLS$ 3370 PRINT FNCENTER$("Calculation of Expenses by Account") 3380 PRINT:PRINT:PRINT 3390 PRINT "Expenses for all accounts? "; 3400 GOSUB 1810 3410 IF YES$="Y" THEN ACD$="":GOTO 3520 3420 PLIN=6:PCOL=0:PROMPT$="Enter Code of desired account : :" 3430 GOSUB 1880 3440 IF ANS$="" THEN PRINT BELL$;:GOTO 3420 3450 X=1:A=0 3460 WHILE X<=NUMACCTS AND A=0 3470 IF ACNTCODE$(X)=ANS$ THEN A=-1:GOTO 3490 3480 X=X+1 3490 WEND 3500 IF X>NUMACCTS THEN PRINT BELL$;:GOTO 3420 3510 ACD$=ANS$ 3520 PE$="":IT$="":DED=0 3530 PRINT CR$ LF$"Do you want records for the whole year? "; 3540 GOSUB 1810 3550 IF YES$="Y" THEN A=1 ELSE A=VAL(DATE$) 3560 PRINT CLS$:TOTAL!=0:TOTTAX!=0 3570 FOR MONTH=A TO VAL(DATE$) 3580 IF ACD$="" THEN 3610 ELSE ACNT=0 3590 GOSUB 3760 3595 TOTAL!=TOTAL!+SUM!:TOTTAX!=TOTTAX!+TAX! 3600 GOTO 3680 3610 FOR ACNT=1 TO NUMACCTS 3620 ACD$=ACNTCODE$(ACNT) 3630 GOSUB 3760 3640 IF ACD$="DP" THEN TOTAL!=TOTAL!+SUM!:TOTTAX!=TOTTAX!-TAX!:GOTO 3660 3650 TOTAL!=TOTAL!-SUM!:TOTTAX!=TOTTAX!+TAX! 3660 NEXT ACNT 3670 ACD$="" 3680 NEXT MONTH 3690 IF DUM=5 THEN 3710 3700 LPRINT:LPRINT USING " TOTAL $$###.##- ###.##-";TOTAL!;TOTTAX! 3705 LPRINT CHR$(12); 3710 PRINT:PRINT USING "Total deposits less expenses: $$###.##-";TOTAL! 3720 PRINT USING "Total taxes: $$###.##-";TOTTAX! 3730 PRINT:PRINT"Generate same report? "; 3740 GOSUB 1810:IF YES$="Y" THEN 3560 3750 RETURN 3760 SUM!=0:TAX!=0 3770 U$=" \\ ##### \ \ \ \ $$###.## ###.##" 3780 IF DUM=5 THEN 3910 3790 LPRINT:LPRINT "Account code: ";ACD$ 3800 IF ACNT>0 THEN 3850 3810 A=0 3820 WHILE ACNT<=NUMACCTS AND A=0 3830 ACNT=ACNT+1:IF ACD$=ACNTCODE$(ACNT) THEN A=-1 3840 WEND 3850 LPRINT "Account name: ";ACNTLBL$(ACNT) 3860 LPRINT"Month: "FNMONTH$(STR$(MONTH)) 3870 LPRINT "Date of generation: ";DATE$ 3880 LPRINT 3890 LPRINT " DATE CHECK PAYEE ITEM AMOUNT TAX"CR$; 3900 LPRINT " ____ _____ ____________________ ____________________ ________ ______" 3910 PRINT:PRINT:PRINT "Account code: "ACD$,"Month: "FNMONTH$(STR$(MONTH)) 3920 IF PE$<>"" THEN PRINT "Payee: "PE$ 3930 IF IT$<>"" THEN PRINT "Item: "IT$ 3940 PRINT 3950 OPEN "R", 1, "B:"+FNMONTH$(STR$(MONTH))+".DAT",49 3960 FIELD 1, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 3970 OPEN "R",2,"B:RECLENTH.DAT",2 3980 FIELD 2, 2 AS RC$ 3990 GET#2,MONTH 4000 RC=CVI(RC$) 4010 CLOSE 2 4020 FOR REC=1 TO RC 4030 GET# 1 4040 IF ACD$<>ACNTCODE$ THEN 4130 4050 IF DED THEN IF DFLAG$<>"T" THEN 4130 ELSE 4100 4060 IF PE$="" THEN 4080 4070 IF INSTR(PAYEE$,PE$) THEN 4100 ELSE 4130 4080 IF INSTR(ITEM$,IT$)=0 THEN 4130 4090 IF DFLAG$="T" THEN D$=" D" ELSE D$="" 4100 IF DUM=-5 THEN LPRINT USING U$+D$;DAY$;CVI(CHK$);PAYEE$;ITEM$;CVS(AMNT$);CVI(TAX$)/100 4110 SUM!=SUM!+CVS(AMNT$) 4120 TAX!=TAX!+CVI(TAX$)/100 4130 NEXT REC 4140 PRINT USING "Subtotal of expenses: $$###.##";SUM! 4150 PRINT USING "Subtotal of taxes: $$###.##";TAX! 4160 IF DUM=5 THEN 4180 4170 LPRINT USING " SUBTOTAL $$###.## ###.##";SUM!;TAX! 4180 CLOSE 4190 RETURN 4200 PRINT CLS$ 4210 PRINT FNCENTER$("Calculation of Deductible Expenses by Account") 4220 PRINT:PRINT:PRINT 4230 PRINT "Deductible expenses for all accounts? "; 4240 GOSUB 1810 4250 IF YES$="Y" THEN ACD$="":GOTO 4360 4260 PLIN=6:PCOL=0:PROMPT$="Enter Code of desired account : :" 4270 GOSUB 1880 4280 IF ANS$="" THEN PRINT BELL$;:GOTO 4260 4290 X=1:A=0 4300 WHILE X<=NUMACCTS AND A=0 4310 IF ACNTCODE$(X)=ANS$ THEN A=-1:GOTO 4330 4320 X=X+1 4330 WEND 4340 IF X>NUMACCTS THEN PRINT BELL$;:GOTO 4260 4350 ACD$=ANS$ 4360 PE$="":IT$="":DED=-1 4370 GOTO 3530 4380 PRINT CLS$ 4390 PRINT FNCENTER$("Calculation by Payee Under Account") 4400 PRINT:PRINT:PRINT 4410 PRINT "Expenses for all accounts? "; 4420 GOSUB 1810 4430 IF YES$="Y" THEN ACD$="":GOTO 4540 4440 PLIN=6:PCOL=0:PROMPT$="Enter Code of desired account : :" 4450 GOSUB 1880 4460 IF ANS$="" THEN PRINT BELL$;:GOTO 4440 4470 X=1:A=0 4480 WHILE X<=NUMACCTS AND A=0 4490 IF ACNTCODE$(X)=ANS$ THEN A=-1:GOTO 4510 4500 X=X+1 4510 WEND 4520 IF X>NUMACCTS THEN PRINT BELL$;:GOTO 4440 4530 ACD$=ANS$ 4540 PE$="":IT$="":DED=0 4550 PLIN=7:PCOL=0:PROMPT$="Enter name of payee : :" 4560 GOSUB 1880 4570 IF ANS$="" THEN PRINT BELL$;:GOTO 4540 4580 PE$=ANS$ 4590 GOTO 3530 4600 PRINT CLS$ 4610 PRINT FNCENTER$("Calculation by Item Under Account") 4620 PRINT:PRINT:PRINT 4630 PRINT "Expenses for all accounts? "; 4640 GOSUB 1810 4650 IF YES$="Y" THEN ACD$="":GOTO 4760 4660 PLIN=6:PCOL=0:PROMPT$="Enter Code of desired account : :" 4670 GOSUB 1880 4680 IF ANS$="" THEN PRINT BELL$;:GOTO 4660 4690 X=1:A=0 4700 WHILE X<=NUMACCTS AND A=0 4710 IF ACNTCODE$(X)=ANS$ THEN A=-1:GOTO 4730 4720 X=X+1 4730 WEND 4740 IF X>NUMACCTS THEN PRINT BELL$;:GOTO 4660 4750 ACD$=ANS$ 4760 PE$="":IT$="":DED=0 4770 PLIN=7:PCOL=0:PROMPT$="Enter name of item : :" 4780 GOSUB 1880 4790 IF ANS$="" THEN PRINT BELL$;:GOTO 4760 4800 IT$=ANS$ 4810 GOTO 3530 4820 PRINT CLS$ 4830 PRINT FNCENTER$("Calculation of Expenses by Payee") 4840 PRINT:PRINT:PRINT 4850 PLIN=6:PCOL=0:PROMPT$="Enter name of desired Payee : :" 4860 GOSUB 1880 4870 IF ANS$="" THEN PRINT BELL$;:GOTO 4850 4880 PE$=ANS$ 4890 ACD$="" 4900 PRINT CR$ LF$"Do you want records for the whole year? "; 4910 GOSUB 1810 4920 IF YES$="Y" THEN A=1 ELSE A=VAL(DATE$) 4930 PRINT CLS$:TOTAL!=0:TOTTAX!=0 4940 FOR MONTH=A TO VAL(DATE$) 4950 GOSUB 5040:TOTAL!=TOTAL!+SUM!:TOTTAX!=TOTTAX!+TAX! 4960 NEXT MONTH 4970 IF DUM=5 THEN 4990 4980 LPRINT:LPRINT USING " TOTAL $$###.##- ###.##-";TOTAL!;TOTTAX! 4990 PRINT:PRINT USING "Total expenses: $$###.##-";TOTAL! 5000 PRINT USING "Total taxes: $$###.##-";TOTTAX! 5010 PRINT:PRINT"Generate same report? "; 5020 GOSUB 1810:IF YES$="Y" THEN 4930 5030 RETURN 5040 SUM!=0:TAX!=0 5050 U$=" \\ ##### \ \ \ \ $$###.## ###.##" 5060 IF DUM=5 THEN 5130 5070 LPRINT:LPRINT "Payee: ";PE$ 5080 LPRINT"Month: "FNMONTH$(STR$(MONTH)) 5090 LPRINT "Date of report: ";DATE$ 5100 LPRINT 5110 LPRINT " DATE CHECK ACCOUNT ITEM AMMOUNT TAX"CR$; 5120 LPRINT " ____ _____ ____________________ ____________________ ________ ______" 5130 PRINT:PRINT:PRINT "Payee: "PE$,"Month: "FNMONTH$(STR$(MONTH)) 5140 IF ACD$<>"" THEN PRINT "Account: "ACD$ 5150 PRINT 5160 OPEN "R", 1, "B:"+FNMONTH$(STR$(MONTH))+".DAT",49 5170 FIELD 1, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 5180 OPEN "R",2,"B:RECLENTH.DAT",2 5190 FIELD 2, 2 AS RC$ 5200 GET#2,MONTH 5210 RC=CVI(RC$) 5220 CLOSE 2 5230 FOR REC=1 TO RC 5240 GET# 1 5250 IF 0=INSTR(PAYEE$,PE$) THEN 5330 5260 IF ACD$=ACNTCODE$ THEN 5280 5270 IF ACD$<>"" THEN 5330 5280 IF DUM=5 THEN 5310 5290 IF DFLAG$="T" THEN D$=" D" ELSE D$="" 5291 AZ=1:WHILE ACNTCODE$(AZ)<>ACNTCODE$ 5292 AZ=AZ+1:WEND 5300 LPRINT USING U$+D$;DAY$;CVI(CHK$);ACNTLBL$(AZ);ITEM$;CVS(AMNT$);CVI(TAX$)/100 5310 SUM!=SUM!+CVS(AMNT$) 5320 TAX!=TAX!+CVI(TAX$)/100 5330 NEXT REC 5340 PRINT USING "Subtotal of expenses: $$###.##";SUM! 5350 PRINT USING "Subtotal of taxes: $$###.##";TAX! 5360 IF DUM=5 THEN 5380 5370 LPRINT USING " SUBTOTAL $$###.## ###.##";SUM!;TAX! 5380 CLOSE 5390 RETURN 5400 PRINT CLS$ 5410 PRINT FNCENTER$("Calculation by Account Under Payee") 5420 PLIN=5:PCOL=0:PROMPT$="Enter code of desired account : :" 5430 GOSUB 1880 5440 IF ANS$="" THEN PRINT BELL$;:GOTO 5420 5450 X=1:A=0 5460 WHILE X<=NUMACCTS AND A=0 5470 IF ACNTCODE$(X)=ANS$ THEN A=-1:GOTO 5490 5480 X=X+1 5490 WEND 5500 IF X>NUMACCTS THEN PRINT BELL$;:GOTO 5420 5510 ACD$=ANS$ 5520 PLIN=7:PCOL=0:PROMPT$="Enter name of payee : :" 5530 GOSUB 1880 5540 IF ANS$="" THEN PRINT BELL$;:GOTO 5520 5550 PE$=ANS$ 5560 GOTO 4900 5570 ACNT=1:PRINT CLS$;"C A L C U L A T I N G ! "; 5580 OPEN "R", 1, "B:"+FNMONTH$(DATE$)+".DAT",49 5590 FIELD 1, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 5595 DIM ACNTEX!(200) 5600 FOR REC=1 TO NUMRECS 5605 GET 1:ACNT=1 5610 WHILE ACNT<=NUMACCTS 5615 IF ACNTCODE$(ACNT)=ACNTCODE$ THEN ACNTEX!(ACNT)=ACNTEX!(ACNT)+CVS(AMNT$):ACNT=NUMACCTS 5620 ACNT=ACNT+1 5625 WEND 5630 NEXT REC:CLOSE:ACNT=1 5650 U$=" \\ \ \ ####.## ####.## ####.##-" 5660 PRINT CLS$;"Send output to printer? ";:GOSUB 1810:IF YES$="Y" THEN P=-1 ELSE P=0 5661 IF NOT P THEN 5670 5662 LPRINT FNLCNTR$("B U D G E T R E V I E W") CR$ FNLCNTR$("_____________________________________") 5663 LPRINT FNLCNTR$("Date of generation: "+DATE$):LPRINT:LPRINT FNLCNTR$("CODE ACCOUNT BUDGET EXPENSE DIFFERENCE")CR$; 5664 LPRINT FNLCNTR$("____ ____________________ ______ _______ __________") 5670 PRINT CLS$ FNCENTER$("B U D G E T R E V I E W") 5680 PRINT FNPRTAT$(0,2)"CODE ACCOUNT BUDGET EXPENSE DIFFERENCE" 5690 PRINT "---- -------------------- ------ ------- ----------" 5700 LN=1 5710 WHILE ACNT<=NUMACCTS AND LN<11 5770 PRINT USING U$;ACNTCODE$(ACNT);ACNTLBL$(ACNT);ACNTBUDG!(ACNT);ACNTEX!(ACNT);ACNTBUDG!(ACNT)-ACNTEX!(ACNT)+.004 5775 IF NOT P THEN 5780 5776 LPRINT USING " "+U$;ACNTCODE$(ACNT);ACNTLBL$(ACNT);ACNTBUDG!(ACNT);ACNTEX!(ACNT);ACNTBUDG!(ACNT)-ACNTEX!(ACNT)+.004 5780 LN=LN+1:ACNT=ACNT+1 5790 WEND 5795 IF P AND ACNT<=NUMACCTS THEN 5670 5800 PRINT FNPRTAT$(0,23)"Continue - 'Y' | Main Menu - 'N' "; 5810 GOSUB 1810 5820 IF YES$= "Y" AND ACNT<=NUMACCTS THEN 5670 5825 ERASE ACNTEX!:CLOSE:GOTO 1610 5880 PRINT CLS$ 5890 PRINT FNPRTAT$(0,12) FNCENTER$("LOADING SEARCH OVERLAY"); 5895 PRINT FNPRTAT$(53,0); 5900 CHAIN "A:SEARCH.BAS" 5910 PRINT CLS$ 5920 PRINT FNPRTAT$(0,12)FNCENTER$("LOADING RECORD EDITOR OVERLAY"); 5925 PRINT FNPRTAT$(53,0); 5930 CHAIN "A:FIXTRANS.BAS" 5940 PRINT CLS$ 5950 PRINT FNPRTAT$(0,12)FNCENTER$("LOADING THE BUDGET EDITOR OVERLAY"); 5955 PRINT FNPRTAT$(53,0); 5960 CHAIN "A:EDITBUDG.BAS" 5970 PRINT FNPRTAT$(0,20) "Enter the amount of the transaction." 5980 PRINT "This is the total amount including tax." 5990 PRINT "Use ESC key to clear entry." 6000 GOSUB 1860 6010 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ DELINE$ 6015 IF LAST$=MVUP$ AND B THEN X=X-1:B=0:GOTO 2520 ELSE B=-1 6020 LSET AMNT$=MKS$(VAL(ANS$)) 6030 X=X+1:GOTO 2520 6040 PRINT FNPRTAT$(0,20) "Enter the amount of tax." 6050 PRINT "Use ESC key to clear entry." 6060 GOSUB 1860 6070 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ 6075 IF LAST$=MVUP$ AND B THEN X=X-1:B=0:GOTO 2520 ELSE B=-1 6080 LSET TAX$=MKI$(VAL(ANS$)*100) 6090 X=X+1:GOTO 2520 6100 PRINT FNPRTAT$(0,20) "Enter 'T' for deductible items. Enter 'F'" 6110 PRINT "or <RETURN> for nondeductible items." 6120 GOSUB 1860 6130 PRINT FNPRTAT$(0,20) DELINE$ DELINE$ 6135 IF LAST$=MVUP$ AND B THEN X=X-1:B=0:GOTO 2520 ELSE B=-1 6140 LSET DFLAG$=ANS$ 6150 NUMRECS=NUMRECS+1 6160 PUT 1, NUMRECS 6170 GOTO 2480 7000 IF FRE(0)>500 THEN RETURN 7010 FOR BL=1 TO 7:PRINT BELL$;:POKE &HEF6B,3 7020 PRINT FNPRTAT$(0,PLIN) DELEND$ FNCENTER$("=======> GARBAGE COLLECTION IN PROGRESS <======="); 7030 FOR BLL=1 TO 20:NEXT BLL, BL:BL=FRE(A$) 7040 PRINT CR$ DELEND$;:RETURN 8000 IF VAL(DATE$)=1 THEN LM=12 ELSE LM=VAL(DATE$)-1 8010 OPEN "R",1,"B:RECLENTH.DAT",2 8020 FIELD 1, 2 AS RC$ 8030 GET#1,LM 8040 IF CVI(RC$)>0 THEN 8100 8050 PRINT FNPRTAT$(0,20)"Nothing to bring forward! Please press . "; 8060 ANS$=INPUT$(1):GOSUB 7040:CLOSE:GOTO 1750 8100 GOSUB 9000:CLOSE:GOTO 1610 9000 OLDRECS=CVI(RC$): 9010 PRINT CLS$ FNCENTER$("FOWARDING BALANCE") 9020 PRINT FNPRTAT$(0,5)"Calculating last "FNMONTH$(STR$(LM))"'s balance..." 9030 OPEN "R", 2, "B:"+FNMONTH$(STR$(LM))+".DAT",49 9040 FIELD 2, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 9050 SUM!=0 9060 FOR X=1 TO OLDRECS 9070 GET#2,X 9080 IF ACNTCODE$="DP" THEN SUM!=SUM!+CVS(AMNT$) ELSE SUM!=SUM!-CVS(AMNT$) 9090 NEXT 9100 IF SUM!<>0 THEN 9200 9110 PRINT:PRINT FNMONTH$(STR$(LM))"'s balance is zero. Nothing to bring forward!" 9120 PRINT"Please press ." 9125 ANS$=INPUT$(1) 9130 RETURN 9200 PRINT:PRINT"Current balance for "FNMONTH$(STR$(LM))" is "; 9210 PRINT USING"$$,###.##-";SUM! 9220 PRINT"Adjusting data files to bring balance forward..." 9300 GOSUB 9500 9310 LM=LM+1:IF LM=13 THEN LM=1 9320 SUM!=-SUM! 9330 GOSUB 9500 9340 NUMRECS=NUMRECS+1:RETURN 9500 CLOSE 2 9510 GET#1,LM 9520 NR=CVI(RC$) 9530 NR=NR+1 9540 LSET RC$=MKI$(NR) 9550 PUT#1,LM 9560 OPEN "R", 2, "B:"+FNMONTH$(STR$(LM))+".DAT",49 9570 FIELD 2, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 9580 IF SUM!>0 THEN LSET ACNTCODE$="MS" ELSE LSET ACNTCODE$="DP" 9590 LSET CHK$=MKI$(0):LSET DAY$="00" 9600 IF LM=VAL(DATE$) THEN X=LM-1 ELSE X=LM+1 9610 LSET PAYEE$=FNMONTH$(STR$(X)) 9620 LSET ITEM$="BBF":LSET AMNT$=MKS$(ABS(SUM!)) 9630 LSET TAX$=MKI$(0):LSET DFLAG$=" " 9640 PUT#2,NR 9650 RETURN 10000 PCOL=INSTR(PCOL+1,PROMPT$,"."):IF PCOL=0 THEN PCOL=LEN(PROMPT$) ELSE CRS=CRS-(LEN(PROMPT$)-PCOL) 10010 PCOL=PCOL+A-1:ANS2$="" 10020 PRINT FNPRTAT$(PCOL,PLIN); 10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10150 ANS2$=ANS2$+ANS$:PRINT STRING$(LEN(ANS2$)-1,8) ANS2$; 10160 CRS=CRS+1:IF ANS2$(CRS)=":" THEN PRINT BELL$;:GOTO 10600 10170 GOTO 10110 10200 LAST$=ANS$:ANS$=ANS2$:RETURN 10300 PCOL=A:GOTO 1880 10400 PRINT BELL$;:GOTO 10030 10500 PRINT BELL$;:GOTO 10110 10600 ANS$=INPUT$(1) 10610 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 PRINT BELL$;:GOTO 10600 30000 SAVE"BUDG.BAS" 0610 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 P-1:ANS2$="" 10020 PRINT FNPRTAT$(PCOL,PLIN); 10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10150 ANS2$=ANS2$+ANS$:PRINT STRING$(LEN(ANS2$)-1,8) ANS2$; 10160 CRS=CRS+1:IF ANS2$(CRS)=":" THEN PRINT BELL$;: PERSONA FINANC SOFTWARE b Gi Yoder W dea no wit subjec tha i dear i no t all the t most Th subjec i money.. mor specificall mone management I woul no surpris m t fin tha mos peopl bu computer fo tha ver task. However becaus ther ar ver fe persona financ program available th compute ofte become mor whit elephan t b hidde i th closet rathe tha usefu beas o burde t b use ever day Man o yo n doub hav use SuperCal t balanc you chec books an fe wil hav writte som complicate dBAS application fo othe purposes Wit lo o wor an littl luc ( di no hav much dBAS ca b use successfull fo mone management bu i i difficul t kee adequat record usin SuperCalc Fo m mone MBASI i th wa t go. BUDGE MANAGE wa writte b thi author Mos o th progra wa writte i th firs tw week o 1984 bu man change hav bee mad sinc then fe bug wer foun an fixed option wer adde t menus an certai routine hav bee enhanced hav use i fo th entir year an fee tha i ha bee grea hel i managin m financia life Ther ar tw mai purpose fo BUDGE MANAGER (1 t recor al financia transaction fo on averag famil fo ful calenda year an (2 t assis th famil t pla monthl budge an t kee o it Persuan t thes purpose th progra perform numbe o tasks (a i accept dat relatin t one' dail financia transactions whic ar file int severa use define accounts (b i allow correctio o incorrectl entere data (c i calculate monthl an year-to-dat totals (d i aid th use t pla monthl budge b account (e i compare actua expense t th budget (f i allow searche base o severa fields (g i generate report i severa formats etc Abou th onl thin i doe no d i generat pi an ba charts Ca yo d withou that? Yo migh thin tha th progra woul b quit difficul t use Well ye an no I yo ar no concerne abou you finance enoug t kee ever receip fo ever purchas an t us thi progra religiously thi progra i no fo you Bu i yo reall wan t ge handl o th wa yo spen you money thi progra i muc easie t us tha ledge book an i wil d mor fo you. BUDGE MANAGE i almos completel men driven Exception t thi rul ar foun onl wher unknow informatio (lik th cos o transaction i requested Wher menu ar no used adequat hel i provided Documentatio i provide wit th program bu mos wil b abl t us i wit jus littl help. Thes dat ar recorde fo eac financia transaction (1 use define tw characte accoun code (2 a optiona chec number (3 th da o th mont [dat ar hel i 1 monthl file (JAN.DA t DEC.DAT)] (4 a optiona [ye advisable paye o payo name (5 a optiona ite description (6 th tota amoun o th transactio includin tax (7 th amoun o ta included an (8 th deductibilit o th transactio [nic aroun Apri 15].  o th wa yo spen you money thi progra i muc easie t us tha ledge book an i wil d mor fo you. BUDGE MANAGE i almos completel men driven Exception t thi rul ar foun onl wher unknow informatio (lik th cos o transaction i requested Wher menu ar no used adequat hel i provided Documentatio i provide wit th program bu mos wil b abl t us i wit jus littl help. Thes dat ar recorde fo eac financia transaction (1 use define tw characte accoun code (2 a optiona chec number (3 th da o th mont [dat ar hel                                                                                                                            Copyright January 1984 by J. G. Yoder  BE SURE CORRECT DATA DISK IS IN DRIVE B AND THEN PRESS THE KEY                                                                           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ The program that pays for itself --+-- From the Compatible Software Company (c) 1984 by J. G. Yoder 10 DEFINT A-Z 15 DEF FNCENTER$(A$)=STRING$(26-LEN(A$)/2-.5," ")+A$ 20 DEF FNLCNTR$(A$)=STRING$(40-LEN(A$)/2-.5," ")+A$ 25 DEF FNVERTAB$(A)=STRING$(A!,LF$) 30 DEF FNPRTAT$(X,Y)=CHR$(&H1B)+"="+CHR$(Y+32)+CHR$(X+32) 35 DEF FNMONTH$(X$)=MID$("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",(VAL(X$)-1)*3+1,3) 40 COMMON ANS1$(),ANS2$(),ACNTCODE$(),ACNTLBL$(),ACNTBUDG!(),NUMRECS,DATE$,NUMACCTS 45 COMMON CLS$,DARK$,ESC$,BRITE$,STRSCR$,ENDSCR$ 50 COMMON MVLEFT$,MVRITE$,MVDOWN$,MVUP$,CR$,LF$ 55 COMMON TF$,DELEND$,DELINE$,DELCHA$,MOVSCR$ 60 COMMON MOVCUR$,BELL$ 1250 ' 1260 ' 1270 ' E D I T B U D G E T R O U T I N E 1280 ' 1290 ' This is the routine to use in order 1300 ' to add new account labels, and change 1310 ' old labels, and to change budgeted 1320 ' amounts for each account. 1330 ' 1340 PRINT CLS$ 1350 PRINT:PRINT:PRINT FNCENTER$("B U D G E T E D I T O R") 1360 PRINT:PRINT:PRINT " "FNCENTER$(STRSCR$+"Budget Editor Menu"+ENDSCR$) 1370 PRINT FNCENTER$(STR$(NUMACCTS)+" Accounts") 1380 PRINT 1390 ' 1400 PRINT FNCENTER$("(1) Add new account labels ") 1410 PRINT FNCENTER$("(2) Edit old account labels ") 1420 PRINT 1430 PRINT FNCENTER$("(3) Review account labels ") 1440 PRINT FNCENTER$("(4) Generate hardcopy of account codes ") 1450 PRINT FNCENTER$("(5) Generate hardcopy of account budgets") 1460 PRINT 1470 PRINT FNCENTER$("(0) Return to Main Menu ") 1480 ' 1490 PCOL=0:PLIN=20:PROMPT$=FNCENTER$("Please enter your selection :0:") 1500 GOSUB 3790 1510 IF ANS$="0" THEN 4100 1520 IF ANS$>"5" THEN PRINT BELL;:GOTO 1490 1530 ON VAL(ANS$) GOSUB 1580,2030,2720,2940,3340 1540 GOTO 1340 1550 DATA "Account code ......... : :" 1560 DATA "Account label ................... : :" 1570 DATA "Budget for account .............. ::C 8C 8C 8C . 9C 7C:" 1580 IF NUMACCTS<200 THEN 1620 1590 PRINT FNPRTAT$(0,20) DELEND$ "Cannot add more labels!" 1600 FOR X=1 TO 1000:NEXT X 1610 GOTO 1490 1620 PRINT CLS$ 1630 PRINT FNCENTER$("Add Account Labels Option") 1640 ' 1650 RESTORE 1550 1660 FL=6 1670 FOR X=1 TO 3 1680 PLIN(X)=FL 1690 FL=FL+2 1700 READ ANS$ 1710 PROMPT$(X)=ANS$ 1720 NEXT X 1730 FOR X=1 TO 3 1740 PRINT FNPRTAT$(0,PLIN(X)) PROMPT$(X) 1750 NEXT X 1760 X=0:NUMACCTS=NUMACCTS+1 1770 X=X+1 1780 ON X GOTO 1790,1920,1980,1910 1790 PRINT FNPRTAT$(0,16) DELINE$ "Type in a two character code." 1800 GOSUB 3770 1810 IF ANS$="" THEN PRINT BELL$;:NUMACCTS=NUMACCTS-1:GOTO 1340 1820 XX=1 1830 WHILE XXANS$ 1840 XX=XX+1 1850 WEND 1860 IF XX=NUMACCTS THEN 1890 1870 PRINT FNPRTAT$(0,17)"Code " ANS$ " already exists for " ACNTCODE$(XX) 1880 PRINT BELL$;:FOR XX=1 TO 10:NEXT:GOTO 1790 1890 ACNTCODE$(XX)=ANS$ 1900 GOTO 1770 1910 RETURN 1920 PRINT FNPRTAT$(0,17) DELINE$ CR$ MVUP$ DELINE$; 1930 PRINT "Type in a label for this account." 1940 GOSUB 3770 1950 IF ANS$="" THEN PRINT BELL$;:GOTO 1920 1960 ACNTLBL$(NUMACCTS)=ANS$ 1970 GOTO 1770 1980 PRINT FNPRTAT$(0,16) DELINE$ "Type in budgeted amount for this account." 1990 GOSUB 3770 2000 ACNTBUDG!(NUMACCTS)=VAL(ANS$) 2010 GOTO 1770 2020 RESUME 2290 2030 PRINT CLS$ 2040 PRINT FNPRTAT$(0,1) FNCENTER$("Edit Labels Option") 2050 PRINT:PRINT:PRINT 2060 PRINT " To use this option you must know the two byte" 2070 PRINT "account code of the label to be edited. If you" 2080 PRINT "do not know what the code of the account is, answer" 2090 PRINT "'no' to the next question and then get a review of" 2100 PRINT "the account labels under the Budget Editor menu." 2110 PRINT 2120 PRINT " You should note that it is generally not a" 2130 PRINT "good practice to change account labels, and almost" 2140 PRINT "never should one change the account code, since" 2150 PRINT "records may have been placed under these accounts." 2160 PRINT "The main purpose for this option is to change the" 2170 PRINT "budgeted amount for an account... Indeed this" 2180 PRINT "should be done frequently. 2190 XX=5 2200 PRINT FNPRTAT$(XX,19) DELEND$"Do you wish to continue with this option? "; 2210 GOSUB 3720 2220 IF YES$="N" THEN RETURN ELSE PRINT DELINE$; 2230 PLIN=21:PCOL=XX:PROMPT$="Enter the code of the account to edit. : :" 2240 GOSUB 3790 2250 XX=1:ON ERROR GOTO 2020 2260 WHILE ACNTCODE$(XX)<>ANS$ AND XX<=NUMACCTS 2270 XX=XX+1 2280 WEND 2290 ON ERROR GOTO 0 2300 IF XX<=NUMACCTS THEN 2330 2310 PRINT BELL$ CLS$ FNPRTAT$(5,3) "Account code not found." 2320 GOTO 2040 2330 PRINT CLS$ 2340 PRINT STRSCR$ "CODE - ACCOUNT NAME - BUDGET" ENDSCR$ 2350 A$=" \\ - \ \ - $$###.##" 2360 PRINT USING A$;ACNTCODE$(XX);ACNTLBL$(XX);ACNTBUDG!(XX) 2370 PRINT:PRINT 2380 PRINT "Do You wish to change the code? "; 2390 GOSUB 3720 2400 IF YES$="N" THEN 2510 2410 PLIN=6:PCOL=0:PROMPT$="Please enter the new code. : :" 2420 GOSUB 3790 2430 FOR X=1 TO NUMACCTS 2440 IF ACNTCODE$(X)=ANS$ AND X<>XX THEN YES$="N" 2450 NEXT X 2460 IF YES$="Y" THEN ACNTCODE$(XX)=ANS$:GOTO 2500 2470 PRINT FNPRTAT$(2,7) BELL$ "Code used in other account." 2480 FOR X=1 TO 500:NEXT X 2490 GOTO 2330 2500 ACNTCODE$(XX)=ANS$ 2510 PRINT CLS$ 2520 PRINT STRSCR$ "CODE - ACCOUNT NAME - BUDGET" ENDSCR$ 2530 PRINT USING A$;ACNTCODE$(XX);ACNTLBL$(XX);ACNTBUDG!(XX) 2540 PRINT:PRINT 2550 PRINT "Do You wish to change the account name? "; 2560 GOSUB 3720 2570 IF YES$="N" THEN 2610 2580 PLIN=6:PCOL=0:PROMPT$="Please enter the new name. : :" 2590 GOSUB 3790 2600 ACNTLBL$(XX)=ANS$ 2610 PRINT CLS$ 2620 PRINT STRSCR$ "CODE - ACCOUNT NAME - BUDGET" ENDSCR$ 2630 PRINT USING A$;ACNTCODE$(XX);ACNTLBL$(XX);ACNTBUDG!(XX) 2640 PRINT:PRINT 2650 PRINT "Do You wish to change the account budget? "; 2660 GOSUB 3720 2670 IF YES$="N" THEN 2702 2680 PLIN=6:PCOL=0:PROMPT$="Please enter the new budget. :@C >C >C =C . >C ;C:" 2690 GOSUB 3790 2700 ACNTBUDG!(XX)=VAL(ANS$) 2702 PRINT CLS$ 2704 PRINT STRSCR$ "CODE - ACCOUNT NAME - BUDGET" ENDSCR$ 2706 PRINT USING A$;ACNTCODE$(XX);ACNTLBL$(XX);ACNTBUDG!(XX) 2710 XX=0:GOTO 2200 2720 PRINT CLS$; 2730 PRINT STRSCR$ "CODE - ACCOUNT NAME - BUDGET" ENDSCR$ 2740 A$= " \\ - \ \ - $$###.##" 2750 XX=1:SUM!=0 2760 LN=2:GOSUB 2850 2770 IF XX>NUMACCTS THEN PRINT USING A$;" ";" TOTAL";SUM!+.001:GOTO 2820 2780 PRINT:PRINT "Press to continue, any other to exit. "; 2790 ANS$=INPUT$(1) 2800 IF ANS$=CR$ THEN GOSUB 2900:GOTO 2760 2810 RETURN 2820 PRINT:PRINT "End of accounts. Press to exit. "; 2830 ANS$=INPUT$(1) 2840 RETURN 2850 IF XX>NUMACCTS THEN RETURN 2860 PRINT FNPRTAT$(0,LN); 2870 PRINT USING A$;ACNTCODE$(XX);ACNTLBL$(XX);ACNTBUDG!(XX) 2875 IF ACNTCODE$(XX)="DP" THEN SUM!=SUM!+ACNTBUDG!(XX) ELSE SUM!=SUM!-ACNTBUDG!(XX) 2880 XX=XX+1:LN=LN+1 2890 IF LN=21 THEN RETURN ELSE 2850 2900 FOR LN=1 TO 22:PRINT FNPRTAT$(0,2) DELINE$;:NEXT:RETURN 2940 PRINT CLS$ 2950 PRINT FNCENTER$("HARDCOPY OF ACCOUNT CODES") 2960 PRINT:PRINT:PRINT 2970 PRINT " The program is about ready to generate a list" 2980 PRINT "of the account codes and their definitions. For" 2990 PRINT "this to be done a printer must be attached and" 3000 PRINT "ready to print. Paper should be positioned at" 3010 PRINT "top-of-form (see your printer's manual), for this" 3020 PRINT "routine to work correctly." 3030 PRINT 3040 PRINT " If your printer is not connected, or if it is" 3050 PRINT "turned off or off line, correct this condition by" 3060 PRINT "by following pertinent instructions in your com-" 3070 PRINT "puter and/or line printer manuals." 3080 PRINT 3090 PRINT DELEND$" Are you and your printer ready to print? "; 3100 GOSUB 3720 3110 IF YES$="N" THEN RETURN 3120 PRINT CR$ LF$ LF$ " Printing account codes..." 3130 A$=" \\ - \ \ \\ - \ \ \\ - \ \" 3140 B$=" CODE ACCOUNT CODE ACCOUNT CODE ACCOUNT" 3150 C$=" _____________________________________________________________________________" 3160 LN=1:XX=1  3170 LPRINT CR$ LF$ LF$ LF$; 3180 X=1 3190 WHILE X<=9 AND XX<=NUMACCTS 3200 IF X=1 THEN LPRINT B$ CR$ C$ 3210 IF XX<=NUMACCTS THEN A1$=ACNTCODE$(XX):B1$=ACNTLBL$(XX) ELSE A1$=" ":B1$=" " 3220 XX=XX+1 3230 IF XX<=NUMACCTS THEN A2$=ACNTCODE$(XX):B2$=ACNTLBL$(XX) ELSE A2$=" ":B2$=" " 3240 XX=XX+1 3250 IF XX<=NUMACCTS THEN A3$=ACNTCODE$(XX):B3$=ACNTLBL$(XX) ELSE A3$=" ":B3$=" " 3260 XX=XX+1 3270 LPRINT USING A$;A1$;B1$;A2$;B2$;A3$;B3$ 3275 X=X+1 3280 WEND 3290 LPRINT LF$ LF$; 3300 LN=LN+1 3310 IF LN=6 THEN LPRINT TF$;:IF XX<=NUMACCTS THEN 3170 3320 IF XX<=NUMACCTS THEN 3180 3330 RETURN 3340 PRINT CLS$ 3350 PRINT FNCENTER$("HARDCOPY OF ACCOUNT BUDGETS") 3360 PRINT:PRINT:PRINT 3370 PRINT " The program is about ready to generate a list" 3380 PRINT "of the accounts and their budgets. For this to be" 3390 PRINT "done a printer must be attached and ready to print." 3400 PRINT "Paper should be positioned at top-of-form (see your" 3410 PRINT "printer's manual), for this routine to work" 34 20 PRINT "correctly." 3430 PRINT 3440 PRINT " If your printer is not connected, or if it is" 3450 PRINT "turned off or off line, correct this condition by" 3460 PRINT "by following pertinent instructions in your com-" 3470 PRINT "puter and/or line printer manuals." 3480 PRINT 3490 PRINT " Are you and your printer ready to print? "; 3500 GOSUB 3720 3510 IF YES$="N" THEN RETURN 3520 PRINT CR$ LF$ LF$ " Printing account budgets..." 3530 A$=" \ \ $$###.## \ \ $$###.##" 3540 B$=" ACCOUNT BUDGET ACCOUNT BUDGET" 3550 C$=" _____________________________ _____________________________" 3560 LN=1:XX=1 3570 LPRINT CR$ LF$ LF$ LF$; 3580 X=1 3590 WHILE X<=9 AND XX<=NUMACCTS 3600 IF X=1 THEN LPRINT B$ CR$ C$ 3610 IF XX<=NUMACCTS THEN A1$=ACNTLBL$(XX):B1!=ACNTBUDG!(XX) ELSE A1$=" ":B1!=0 3620 XX=XX+1 3630 IF XX<=NUMACCTS THEN A2$=ACNTLBL$(XX):B2!=ACNTBUDG!(XX) ELSE A2$=" ":B2!=0 3640 XX=XX+1 3650 LPRINT USING A$;A1$;B1!;A2$;B2! 3655 X=X+1 3660 WEND 3670 LPRINT LF$ LF$; 3680 LN=LN+1 3690 IF LN=6 THEN LPRINT TF$;:IF XX<=NUMACCTS THEN 3570 3700 IF XX<=NUMACCTS THEN 3580 3710 RETURN 3720 YES$=INPUT$(1) 3740 IF YES$="Y" OR YES$="N" THEN PRINT YES$;:RETURN 3750 PRINT BELL$; 3760 GOTO 3720 3770 PROMPT$=PROMPT$(X) 3780 PLIN=PLIN(X):PCOL=0 3790 GOSUB 7000:PRINT FNPRTAT$(PCOL,PLIN)PROMPT$;:A=PCOL 3800 PCOL=INSTR(PROMPT$,":"):CRS=INSTR(PCOL+1,PROMPT$,":")-PCOL+1 3810 FOR XYZ=1 TO CRS 3820 ANS2$(XYZ)=MID$(PROMPT$,XYZ+PCOL-1,1) 3830 IF XYZ<>1 THEN ANS1$(XYZ-1)=ANS2$(XYZ) 3840 NEXT XYZ:IF ANS1$(1)=CHR$(160) THEN 10000 ELSE PCOL=PCOL+A 3850 LTH=CRS-2 3860 PRINT FNPRTAT$(PCOL,PLIN);:CRS=2 3870 ANS$=INPUT$(1) 3880 IF ANS$=CR$ THEN 3970 3890 IF ANS$=MVRITE$ AND CRS1 THEN CRS=CRS-1:PRINT ANS$;:IF ANS2$(CRS)=":" THEN 3950 ELSE IF INSTR("# 0123456789",ANS2$(CRS)) THEN 3870 ELSE 3900 3910 IF ASC(ANS$)<32 THEN 3950 3920 IF ANS2$(CRS)=" " THEN 3960 3930 IF 0<>INSTR("0123456789",ANS2$(CRS)) AND 0<>INSTR("0123456789",ANS$) THEN 3960 3940 IF ANS2$(CRS)="#" AND INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ANS$) THEN 3960 3950 PRINT BELL$;:GOTO 3870 3960 ANS1$(CRS-1)=ANS$:PRINT ANS$;MVLEFT$;:ANS$=MVRITE$:GOTO 3890 3970 IF LTH=0 THEN ANS$="" :RETURN 3980 IF INSTR("# ",ANS1$(LTH)) THEN LTH=LTH-1:GOTO 3970 3990 LAST$=ANS$ 4000 ANS$="" 4010 FOR XYZ=1 TO LTH 4020 ANS$=ANS$+ANS1$(XYZ) 4030 NEXT XYZ 4040 RETURN 4100 PRINT CLS$ FNPRTAT$(0,12) FNCENTER$("RETURNING TO MAIN MENU"); 4200 PRINT FNPRTAT$(53,0); 5000 CHAIN "A:BUDG.BAS", 1600 7000 IF FRE(0)>500 THEN RETURN 7010 FOR BL=1 TO 7:PRINT BELL$;:POKE &HEF6B,3 7020 PRINT FNPRTAT$(0,PLIN) DELEND$ FNCENTER$("=======> GARBAGE COLLECTION IN PROGRESS <======="); 7030 FOR BLL=1 TO 20:NEXT BLL, BL:BL=FRE(A$) 7040 PRINT CR$ DELEND$;:RETURN 10000 PCOL=INSTR(PCOL+1,PROMPT$,"."):IF PCOL=0 THEN PCOL=LEN(PROMPT$) ELSE CRS=CRS-(LEN(PROMPT$)-PCOL) 10010 PCOL=PCOL+A-1:ANS2$="" 10020 PRINT FNPRTAT$(PCOL,PLIN); 10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10150 ANS2$=ANS2$+ANS$:PRINT STRING$(LEN(ANS2$)-1,8) ANS2$; 10160 CRS=CRS+1:IF ANS2$(CRS)=":" THEN PRINT BELL$;:GOTO 10600 10170 GOTO 10110 10200 LAST$=ANS$:ANS$=ANS2$:RETURN 10300 PCOL=A:GOTO 3790 10400 PRINT BELL$;:GOTO 10030 10500 PRINT BELL$;:GOTO 10110 10600 ANS$=INPUT$(1) 10610 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 PRINT BELL$;:GOTO 10600 30000 SAVE"EDITBUDG.BAS"  IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 PRINT BELL$;:GOTO 10600 30000 SAVE"EDITBUDG.BAS10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10150 ANS2$=ANS2$+ANS$:PRINT STRING$(LEN(ANS2$)-1,8) ANS2$; 10160 CRS=CRS+1:IF ANS2$(CRS)=":" THEN PRINT BELL$;:GOTO 10600 10170 GOTO 10110 10200 LAST$=ANS$:ANS$=ANS2$:RETURN 10300 PCOL=A:GOTO 3790 10400 PRINT BELL$;:GOTO 10030 10500 PRINT BELL$;:GOTO 10110 10600 ANS$=INPUT$(1) 10610 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 PRINT BELL$;:GOTO 10600 30000 SAVE"EDITBUDG.BAS!10 DEFINT A-Z 15 DEF FNCENTER$(A$)=STRING$(26-LEN(A$)/2-.5," ")+A$ 20 DEF FNLCNTR$(A$)=STRING$(40-LEN(A$)/2-.5," ")+A$ 25 DEF FNVERTAB$(A)=STRING$(A!,LF$) 30 DEF FNPRTAT$(X,Y)=CHR$(&H1B)+"="+CHR$(Y+32)+CHR$(X+32) 35 DEF FNMONTH$(X$)=MID$("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",(VAL(X$)-1)*3+1,3) 40 COMMON ANS1$(),ANS2$(),ACNTCODE$(),ACNTLBL$(),ACNTBUDG!(),NUMRECS,DATE$,NUMACCTS 45 COMMON CLS$,DARK$,ESC$,BRITE$,STRSCR$,ENDSCR$ 50 COMMON MVLEFT$,MVRITE$,MVDOWN$,MVUP$,CR$,LF$ 55 COMMON TF$,DELEND$,DELINE$,DELCHA$,MOVSCR$ 60 COMMON MOVCUR$,BELL$ 1180 PRINT CLS$ FNCENTER$("T R A N S A C T I O N R E P A I R") 1190 PRINT FNPRTAT$(0,6)" This function allows you to repair mistakes" 1200 PRINT "entered into a record under the New Transactions" 1210 PRINT "routine. Patches can be made only to the "FNMONTH$(DATE$)".DAT" 1220 PRINT "file. To make changes to another file you must" 1230 PRINT "exit this program and enter it again. When asked" 1240 PRINT "for the date, type in the month as the month in" 1250 PRINT "which the error exists." 1260 PRINT 1270 PRINT " To fix a record you must know its record" 1280 PRINT "number. If you do not know this number, find it" 1290 PRINT "by using the Search command from the Main Menu." 1300 PRINT "If you need to do this, answer the next question" 1310 PRINT "by pressing the letter 'N.'" 1330 PRINT FNPRTAT$(0,20)" Do you wish to continue (Y/N)? "; 1340 GOSUB 2120 1350 IF YES$="N" THEN 2480 1360 PLIN=22:PCOL=5:PROMPT$="What is the record number to fix? ::C 8C 8C 7C:" 1370 GOSUB 2170 1380 FIXREC=VAL(ANS$) 1390 IF FIXREC<1 OR FIXREC>NUMRECS THEN PRINT BELL$;:GOTO 1360 1400 OPEN "R", 1, "B:"+FNMONTH$(DATE$)+".DAT",49 1410 GET 1, FIXREC 1420 FIELD 1, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 1430 PRINT CLS$ "Record #"FIXREC" Today's date: " DATE$ 1440 PRINT FNPRTAT$(0,2) "(1) Account code: " ACNTCODE$ 1450 ' 1460 X=1 1470 WHILE X<=NUMACCTS AND ACNTCODE$(X)<>ACNTCODE$ 1480 X=X+1 1490 WEND 1500 IF X>NUMACCTS THEN PRINT "Cannot find account!":GOTO 1530 1510 PRINT " (" ACNTLBL$(X) ")" 1520 ' 1530 PRINT "(2) Check number: " CVI(CHK$) 1540 PRINT "(3) Transaction date: " DAY$ 1550 PRINT "(4) Payee: " PAYEE$ 1560 PRINT "(5) Item description: " ITEM$ 1570 PRINT USING "(6) Ammount of trans: $$##.##";CVS(AMNT$) 1580 PRINT USING "(7) Taxes included: ###.##";CVI(TAX$)/100 1590 PRINT "(8) Deductible: " DFLAG$ 1600 ' 1610 PRINT FNPRTAT$(1,16) DELINE$ DELINE$ DELINE$ "Enter the number of the field to reenter, or enter" 1620 PRINT FNCENTER$("a (9) to save changes or a (0) to ignore changes.") 1630 PROMPT$=FNCENTER$(":0:"):PLIN=18:PCOL=0 1635 GOSUB 2170 1640 DUM=VAL(ANS$)+1 1650 ON DUM GOSUB 1695,1710,1760,1810,1860,1910,1960,2010,2060,1690 1660 IF DUM>1 AND DUM<10 THEN 1440 ELSE 1330 1680 GOTO 2480 1690 PUT# 1, FIXREC 1695 CLOSE 1700 RETURN 1710 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 1720 PLIN=16:PCOL=0:PROMPT$="Account code .... : :" 1730 GOSUB 2170 1740 LSET ACNTCODE$=ANS$ 1750 RETURN 1760 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 1770 PLIN=16:PCOL=0:PROMPT$="Check number ... :>C ;C :C :C :C: 1780 GOSUB 2170:IF VAL(ANS$)>&H7FFF THEN PRINT BELL$;:GOTO 1760 1790 LSET CHK$=MKI$(VAL(ANS$)) 1800 RETURN 1810 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 1820 PLIN=16:PCOL=0:PROMPT$="Day of the month ... :=C ;C:" 1830 GOSUB 2170:IF VAL(ANS$)>31 OR VAL(ANS$)<0 THEN PRINT BELL$;:GOTO 1820 1840 LSET DAY$=ANS$ 1850 RETURN 1860 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 1870 PLIN=16:PCOL=0:PROMPT$="Payee or payor ... : :" 1880 GOSUB 2170 1890 LSET PAYEE$=ANS$ 1900 RETURN 1910 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 1920 PLIN=16:PCOL=0:PROMPT$="Item description ... : :" 1930 GOSUB 2170 1940 LSET ITEM$=ANS$ 1950 RETURN 1960 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 1970 PLIN=16:PCOL=0:PROMPT$="Total ammount ... :=C ;C ;C ;C . <C :C:" 1980 GOSUB 2170 1990 LSET AMNT$=MKS$(VAL(ANS$)) 2000 RETURN 2010 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 2020 PLIN=16:PCOL=0:PROMPT$="Tax included ... :<C 9C 9C 9C . :C 9C:" 2030 GOSUB 2170 2040 LSET TAX$=MKI$(VAL(ANS$)*100) 2050 RETURN 2060 PRINT FNPRTAT$(0,16) DELINE$ DELINE$ DELINE$ 2070 PLIN=16:PCOL=0:PROMPT$="Deductible item (T/F-RET) ... : :" 2080 GOSUB 2170 2090 IF INSTR("FT ",ANS$)=0 THEN PRINT BELL$;:GOTO 2080 2100 LSET DFLAG$=ANS$ 2110 RETURN 2120 YES$=INPUT$(1) 2140 IF YES$="Y" OR YES$="N" THEN PRINT YES$;:RETURN 2150 PRINT BELL$; 2160 GOTO 2120 2170 PRINT FNPRTAT$(PCOL,PLIN)PROMPT$;:A=PCOL 2180 PCOL=INSTR(PROMPT$,":"):CRS=INSTR(PCOL+1,PROMPT$,":")-PCOL+1 2190 FOR XYZ=1 TO CRS 2200 ANS2$(XYZ)=MID$(PROMPT$,XYZ+PCOL-1,1) 2210 IF XYZ<>1 THEN ANS1$(XYZ-1)=ANS2$(XYZ) 2220 NEXT XYZ:IF ANS1$(1)=CHR$(160) THEN 10000 ELSE PCOL=A+PCOL 2230 LTH=CRS-2 2240 GOSUB 7000:PRINT FNPRTAT$(PCOL,PLIN);:CRS=2 2250 ANS$=INPUT$(1) 2260 IF ANS$=CR$ THEN 2350 2270 IF ANS$=MVRITE$ AND CRS1 THEN CRS=CRS-1:PRINT ANS$;:IF ANS2$(CRS)=":" THEN 2330 ELSE IF INSTR("# 0123456789",ANS2$(CRS)) THEN 2250 ELSE 2280 2290 IF ASC(ANS$)<32 THEN 2330 2300 IF ANS2$(CRS)=" " THEN 2340 2310 IF 0<>INSTR("0123456789",ANS2$(CRS)) AND 0<>INSTR("0123456789",ANS$) THEN 2340 2320 IF ANS2$(CRS)="#" AND INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ANS$) THEN 2340 2330 PRINT BELL$;:GOTO 2250 2340 ANS1$(CRS-1)=ANS$:PRINT ANS$;MVLEFT$;:ANS$=MVRITE$:GOTO 2270 2350 IF LTH=0 THEN ANS$="" :RETURN 2360 IF INSTR("# ",ANS1$(LTH)) THEN LTH=LTH-1:GOTO 2350 2370 LAST$=ANS$ 2380 ANS$="" 2390 FOR XYZ=1 TO LTH 2400 ANS$=ANS$+ANS1$(XYZ) 2410 NEXT XYZ 2420 RETURN 2480 PRINT CLS$ FNPRTAT$(0,12) FNCENTER$("RETURNING TO MAIN MENU"); 2490 PRINT FNPRTAT$(53,0); 3000 CHAIN "A:BUDG.BAS", 1600 7000 IF FRE(0)>500 THEN RETURN 7010 FOR BL=1 TO 7:PRINT BELL$;:POKE &HEF6B,3 7020 PRINT FNPRTAT$(0,PLIN) DELEND$ FNCENTER$("=======> GARBAGE COLLECTION IN PROGRESS <======="); 7030 FOR BLL=1 TO 20:NEXT BLL, BL:BL=FRE(A$) 7040 PRINT CR$ DELEND$;:RETURN 10000 PCOL=INSTR(PCOL+1,PROMPT$,"."):IF PCOL=0 THEN PCOL=LEN(PROMPT$) ELSE CRS=CRS-(LEN(PROMPT$)-PCOL) 10010 PCOL=PCOL+A-1:ANS2$="" 10020 PRINT FNPRTAT$(PCOL,PLIN); 10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10150 ANS2$=ANS2$+ANS$:PRINT STRING$(LEN(ANS2$)-1,8) ANS2$; 10160 CRS=CRS+1:IF ANS2$(CRS)=":" THEN PRINT BELL$;:GOTO 10600 10170 GOTO 10110 10200 LAST$=ANS$:ANS$=ANS2$:RETURN 10300 PCOL=A:GOTO 2170 10400 PRINT BELL$;:GOTO 10030 10500 PRINT BELL$;:GOTO 10110 10600 ANS$=INPUT$(1) 10610 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 PRINT BELL$;:GOTO 10600 30000 SAVE"FIXTRANS.BAS"  IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$-PCOL) 10010 PCOL=PCOL+A-1:ANS2$="" 10020 PRINT FNPRTAT$(PCOL,PLIN); 10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10150 ANS2$=ANS2$+ANS$:PRINT STRING$(LEN(ANS2$)-1,8) ANS2$; 10160 CRS=CRS+1:IF ANS2$(CRS)=":" THEN PRINT BELL$;:GOTO 10600 10170 GOTO 10110 10200 LAST$=ANS$:ANS$=ANS2$:RETURN 10300 PCOL=A:GOTO 2170 10400 PRINT B10 DEFINT A-Z 15 DEF FNCENTER$(A$)=STRING$(26-LEN(A$)/2-.5," ")+A$ 20 DEF FNLCNTR$(A$)=STRING$(40-LEN(A$)/2-.5," ")+A$ 25 DEF FNVERTAB$(A)=STRING$(A!,LF$) 30 DEF FNPRTAT$(X,Y)=CHR$(&H1B)+"="+CHR$(Y+32)+CHR$(X+32) 35 DEF FNMONTH$(X$)=MID$("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",(VAL(X$)-1)*3+1,3) 40 COMMON ANS1$(),ANS2$(),ACNTCODE$(),ACNTLBL$(),ACNTBUDG!(),NUMRECS,DATE$,NUMACCTS 45 COMMON CLS$,DARK$,ESC$,BRITE$,STRSCR$,ENDSCR$ 50 COMMON MVLEFT$,MVRITE$,MVDOWN$,MVUP$,CR$,LF$ 55 COMMON TF$,DELEND$,DELINE$,DELCHA$,MOVSCR$ 60 COMMON MOVCUR$,BELL$ 1000 OPEN "R",1,"B:RECLENTH.DAT",2 1010 FIELD 1,2 AS A$ 1020 LSET A$=MKI$(NUMRECS) 1030 PUT#1,VAL(DATE$) 1040 CLOSE 1250 US$=" #### \\ ##### \\ \ \ \ \####.## ###.## \\" 1260 PRINT CLS$ 1270 PRINT:PRINT:PRINT FNCENTER$("S E A R C H R E C O R D S") 1280 PRINT:PRINT:PRINT " "FNCENTER$(STRSCR$+"Search Records Selection"+ENDSCR$) 1290 DATA "Date for search (mm/dd) :00/00:" 1300 DATA "Account code for search : :" 1310 DATA "Check number for search :<C 9C 8C 8C 8C:" 1320 DATA "Payee name for search : :" 1330 DATA "Amount value for search :;C 9C 9C 9C . :C 9C:" 1340 DATA "Item description for search : :" 1350 RESTORE 1360 FOR X=1 TO 6 1370 READ PROMPT$(X) 1380 PLIN(X)=X+7 1390 PRINT FNPRTAT$(0,PLIN(X)) PROMPT$(X) 1400 NEXT X 1410 X=1 1420 PRINT FNPRTAT$(0,15)"Enter month and date for search. A zero in either" 1430 PRINT "causes a search for all months and/or dates." 1440 PCOL=0:GOSUB 2090 1450 DT$=ANS$ 1460 X=2 1470 PRINT FNPRTAT$(0,16) DELINE$ MVUP$ DELINE$; 1480 PRINT "Enter account code for search. A blank code causes" 1490 PRINT "all accounts to be searched." 1500 PCOL=0:GOSUB 2090 1510 CD$=ANS$ 1520 X=3 1530 PRINT FNPRTAT$(0,16) DELINE$ MVUP$ DELINE$; 1540 PRINT "Enter check number for search. A number of zero" 1550 PRINT "causes all checks to be searched." 1560 PCOL=0:GOSUB 2090 1570 CK$=ANS$ 1580 X=4 1590 PRINT FNPRTAT$(0,16) DELINE$ #MVUP$ DELINE$; 1600 PRINT "Enter name of payee for search. Leave this field" 1610 PRINT "blank to search for all payees." 1620 PCOL=0:GOSUB 2090 1630 PE$=ANS$ 1640 X=5 1650 PRINT FNPRTAT$(0,16) DELINE$ MVUP$ DELINE$; 1660 PRINT "Enter a value other than zero to search for a" 1670 PRINT "specific amount." 1680 PCOL=0:GOSUB 2090 1690 AM$=ANS$ 1700 X=6 1710 PRINT FNPRTAT$(0,16) DELINE$ MVUP$ DELINE$; 1720 PRINT "Enter name of item for search. A blank item field" 1730 PRINT "will cause all items to be searched." 1740 PCOL=0:GOSUB 2090 1750 IT$=ANS$ 1760 PRINT FNPRTAT$(0,16) DELINE$ MVUP$ DELINE$; 1770 PRINT "Send output to printer? "; 1780 GOSUB 2040:PRINT 1790 IF YES$="Y" THEN P=-1 ELSE P=0 1800 IF VAL(DT$)=0 THEN 1930 1810 OPEN "R",1,"B:RECLENTH.DAT",2 1820 FIELD 1, 2 AS A$ 1830 GET#1, VAL(DT$) 1840 RCS=CVI(A$) 1850 CLOSE 1860 IF RCS=0 THEN PRINT "No records for month: "DT$:GOTO 1880 1870 GOSUB 2420 1880 PRINT 1890 PRINT "Would you like to search some more? "; 1900 GOSUB 2040  1910 IF YES$="Y" THEN 1260 1912 PRINT CLS$;FNPRTAT$(0,12)FNCENTER$("RETURNING TO MAIN MENU"); 1914 PRINT FNPRTAT$(53,0); 1920 CHAIN "A:BUDG.BAS", 1600 1930 FOR X=1 TO VAL(DATE$) 1940 OPEN "R",1,"B:RECLENTH.DAT",2 1950 FIELD 1, 2 AS A$ 1960 GET#1, X 1970 RCS=CVI(A$) 1980 CLOSE 1990 IF RCS=0 THEN PRINT "No records for month: "DT$:GOTO 2020 2000 DT$=STR$(X)+RIGHT$(DT$,3) 2010 GOSUB 2420 2020 NEXT X 2030 GOTO 1880 2040 YES$=INPUT$(1):YES$=CHR$(ASC(YES$)AND &HDF) 2060 IF YES$="Y" OR YES$="N" THEN PRINT YES$;:RETURN 2070 PRINT BELL$; 2080 GOTO 2040 2090 GOSUB 7000:PROMPT$=PROMPT$(X) 2110 PLIN=PLIN(X):PCOL=0 2120 PRINT FNPRTAT$(PCOL,PLIN)PROMPT$; 2130 PCOL=INSTR(PROMPT$,":"):CRS=INSTR(PCOL+1,PROMPT$,":")-PCOL+1 2140 FOR XYZ=1 TO CRS 2150 ANS2$(XYZ)=MID$(PROMPT$,XYZ+PCOL-1,1) 2160 IF XYZ<>1 THEN ANS1$(XYZ-1)=ANS2$(XYZ) 2170 NEXT XYZ:IF ANS1$(1)=CHR$(160) THEN 10000 2180 LTH=CRS-2 2190 PRINT FNPRTAT$(PCOL,PLIN);:CRS=2 2200 ANS$=INPUT$(1) 2210 IF ANS$=CR$ THEN 2300 2220 IF ANS$=MVRITE$ AND CRS1 THEN CRS=CRS-1:PRINT ANS$;:IF ANS2$(CRS)=":" THEN 2280 ELSE IF INSTR("# 0123456789",ANS2$(CRS)) THEN 2200 ELSE 2230 2240 IF ASC(ANS$)<32 THEN 2280 2250 IF ANS2$(CRS)=" " THEN 2290 2260 IF 0<>INSTR("0123456789",ANS2$(CRS)) AND 0<>INSTR("0123456789",ANS$) THEN 2290 2270 IF ANS2$(CRS)="#" AND INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ANS$) THEN 2290 2280 PRINT BELL$;:GOTO 2200 2290 ANS1$(CRS-1)=ANS$:PRINT ANS$;MVLEFT$;:ANS$=MVRITE$:GOTO 2220 2300 IF LTH=0 THEN ANS$="" :RETURN 2310 IF INSTR("# ",ANS1$(LTH)) THEN LTH=LTH-1:GOTO 2300 2320 LAST$=ANS$ 2330 ANS$="" 2340 FOR XYZ=1 TO LTH 2350 ANS$=ANS$+ANS1$(XYZ) 2360 NEXT XYZ 2370 RETURN 2420 OPEN "R",1,"B:"+FNMONTH$(DT$)+".DAT",49 2430 FIELD 1, 2 AS ACNTCODE$, 2 AS CHK$, 2 AS DAY$, 20 AS PAYEE$, 16 AS ITEM$, 4 AS AMNT$, 2 AS TAX$, 1 AS DFLAG$ 2440 PRINT:PRINT "Month of search: "FNMONTH$(DT$) 2450 PRINT 2460 PRINT "RECORD CODE CHECK DATE PAYEE ITEM AMOUNT TAXES" 2470 PRINT "------ ---- ----- ---- -------------------- ---------------- ------ -----" 2471 IF NOT P THEN 2480 2472 LPRINT:LPRINT "Month of search: "FNMONTH$(DT$) 2473 LPRINT 2474 LPRINT "RECORD CODE CHECK DATE PAYEE ITEM AMOUNT TAXES"CR$; 2475 LPRINT "______ ____ _____ ____ ____________________ ________________ ______ _____ 2480 FOR R=1 TO RCS:GET #1,R 2490 IF CD$<>"" AND CD$<>ACNTCODE$ THEN 2590 2500 IF VAL(CK$)<>0 AND VAL(CK$)<>CVI(CHK$) THEN 2590 2510 IF VAL(RIGHT$(DT$,2))<>0 AND VAL(RIGHT$(DT$,2))<>VAL(DAY$) THEN 2590 2520 IF PE$<>"" AND 0=INSTR(PAYEE$,PE$) THEN 2590 2530 IF IT$<>"" AND 0=INSTR(ITEM$,IT$) THEN 2590 2540 IF VAL(AM$)<>0 AND CSNG(VAL(AM$))<>CVS(AMNT$) THEN 2590 2550 IF DFLAG$="T" THEN D$="D" ELSE D$=" " 2560 PRINT USING US$;R;ACNTCODE$;CVI(CHK$);DAY$;PAYEE$;ITEM$;CVS(AMNT$);CVI(TAX$)/100;D$ 2570 IF NOT P THEN 2590 2580 LPRINT USING US$;R;ACNTCODE$;CVI(CHK$);DAY$;PAYEE$;ITEM$;CVS(AMNT$);CVI(TAX$)/100;D$ 2590 NEXT R 2595 CLOSE 2600 RETURN 7000 IF FRE(0)>500 THEN RETURN 7010 FOR BL=1 TO 7:PRINT BELL$;:POKE &HEF6B,3 7020 PRINT FNPRTAT$(0,PLIN) DELEND$ FNCENTER$("=======> GARBAGE COLLECTION IN PROGRESS <======="); 7030 FOR BLL=1 TO 20:NEXT BLL, BL:BL=FRE(A$) 7040 PRINT CR$ DELEND$;:RETURN 10000 PCOL=INSTR(PCOL+1,PROMPT$,"."):IF PCOL=0 THEN PCOL=LEN(PROMPT$) ELSE CRS=CRS-(LEN(PROMPT$)-PCOL) 10010 PCOL=PCOL+A-1:ANS2$="" 10020 PRINT FNPRTAT$(PCOL,PLIN); 10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10$150 ANS2$=ANS2$+ANS$:PRINT STRING$(LEN(ANS2$)-1,8) ANS2$; 10160 CRS=CRS+1:IF ANS2$(CRS)=":" THEN PRINT BELL$;:GOTO 10600 10170 GOTO 10110 10200 LAST$=ANS$:ANS$=ANS2$:RETURN 10300 PCOL=A:GOTO 2120 10400 PRINT BELL$;:GOTO 10030 10500 PRINT BELL$;:GOTO 10110 10600 ANS$=INPUT$(1) 10610 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 PRINT BELL$;:GOTO 10600 30000 SAVE"SEARCH.BAS" 10 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10620 IF ANS$=ESC$ THEN 10300 10630 PRINT BELL$;:GOTO 0 PRINT FNPRTAT$(PCOL,PLIN); 10030 ANS$=INPUT$(1) 10040 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10050 IF ANS$=ESC$ THEN 10300 10060 IF INSTR(".0123456789",ANS$)=0 THEN 10400 10070 IF ANS$="." THEN IF ANS2$(CRS)="." THEN CRS=CRS+1:PRINT"."; ELSE 10400 10080 ANS2$=RIGHT$(ANS2$+ANS$,CRS-2) 10090 PRINT STRING$(LEN(ANS2$),8) ANS2$; 10100 IF ANS$<>"." THEN 10030 10110 ANS$=INPUT$(1) 10120 IF ANS$=CR$ OR ANS$=MVUP$ THEN 10200 10130 IF ANS$=ESC$ THEN 10300 10140 IF INSTR("0123456789",ANS$)=0 THEN 10500 10.PO8 .MT0 .MB12 BUDGET MANAGER SUMMARY Copyright 1984 - Gil Yoder Purpose: Financial planning and recording. Minimum System: Osborne 1 computer with SS/SD drives. Preferred System: Osborne 1 computer with... SS/DD (or DS/DD) drives. 80 column upgrade (memory mapped). Epson MX-80 line printer (or compatible). Disks and Files Needed: Three diskettes formatted and SYSGENed. Disk #1 needs these files: AUTOST.COM BUDG.BAS BUDGET.COM COPYRITE.GRF EDITBUDG.BAS FIXTRANS.BAS * M.COM (MBASIC.COM renamed) SEARCH.BAS Disks #2 and #3 need these files: * BACK.COM (SUBMIT.COM renamed) * PIP.COM R.COM (0 length file) UP.SUB * XDIR Files marked with an asterisk (*) are not supplied. Usage Overview: Ever finacia transactio receip (bot deposit an debits ar saved an recorde usin BUDGE MANAGER Receipt shoul b store i twelv envelope correspondin t twelv monthl file name JAN.DAT FEB.DAT etc Thes file includ information entered concerning each transaction. Th progra work bes whe receipt ar recorde often onc pe da i ideal Afte th receipt ar recorded the ar saved in one of the monthly envelopes. Eac transactio i file int account define b th user On accoun i define b default DР (deposits) runnin balanc o th user' cas i maintained Transaction place i th堠 deposi accoun ar added t th堠 user' balance Transaction withi an othe accoun subtrac fro th balance. complet descriptio o BUDGE MANAGE i foun i th fil name BUDGET.DOC However becaus th progra i men driven simpl demonstratio o th progra wil explai mos of the idiosyncracies of the program. Data Protection: Th dat produce b BUDGE MANAGE i extremel importan b virtu o it nature Th importanc o makin bac u o th data produce canno b ove empasized On dis erro o dis tha ha no bee copie ca caus th los o ful yea of hard work! Th ide o dat protectio ha bee incorporate int BUDGE MANAGER A th en o eac sessio wit th progra yo shoul specif optio numbe fro th mai menu Thi cause norma exi fro th progra an return yo t th CP/ comman level Als a thi poin reminde i give t yo t BAC U JAN (or FEB, MAR, etc. depending upon the month). T d tha replac dis # i driv wit dis #3 Dis # shoul remai i driv B Rese th syste b typin ^à (hol th CTR ke an th ke dow simultaneously) The fro th CP/ comman lin promp A ente th followin command: BACK UP JAN Yo wil not tha th thir wor denote th curren mont an i give i th reminde describe above Al o th pertinen data will be copied. Ordinaril tha i al tha mus b don t bac u th file tha hav bee change b BUDGE MANAGER bu th firs tim yo ente ne mont th fil containin las month' record i zeroe an th balanc i brough forwar t th ne month I yo bac u onl th ne month' file th bac u fil fo th ol mont woul no b current Thi coul creat severe problems in the future. T preven problem simpl follo thi procedur th firs tim yo ente eac ne month Exchang disk an rese th syste b pressin ^ jus a yo ordinaril would Bu instea of entering the command BACK UP FEB fo th ne month ente th followin comman an bac u al o the important files: PIP A:=B:*.DAT I yo hav an question o comments o i yo hav mad improvement t thi program pleas contac m %a on o thes numbers: 913-686-3800 or 913-686-2853.a i al tha mus b don t bac u th file tha hav bee change b BUDGE MANAGER bu th firs tim yo ente ne mont th fil containin las month' record i zeroe an th balanc i brough forwar t th ne month I yo bac u onl th ne month' file th bac u fil fo th ol mont woul no b current Thi coul creat severe problems in the future. T preven problem simpl follo thi procedur th firs tim yo ente eac ne month Exchang disk an rese th syste b pressin ^ jus a yo ordinaril would Bu instea of entering the command BACK UP FEB fo th ne month ente th followin comman an bac u al o the important files: PIP A:=B:*.DAT I yo hav an question o comments o i yo hav mad improvement t thi program pleas contac m B: PIP A:=ACCOUNTS.DAT[V] R A:=RECLENTH.DAT[V] R A:=$1.DAT[V] A:  This is the release date of the disk. RECEIPTSCMD LREGENFILDBF PSECTICKSCMD QBUDGET COM SBUDGET DOC T@AUTOST COM d BUDG BAS geUDG BAS w%-CPM098 DOC BUDGET INF COPYRITEGRF EDITBUDGBAS 4FIXTRANSBAS R COM ANCHART .DBF 5E FB 3072 24 GENJOURN.DBF EA 16 1024 8 PAYSTUB .CMD 1E 3A 5120 40 PRTDAT .CMD 20 32 2688 21 PRTJRN .CMD ED 0F 5120 40 PRTJRN .DBF 4C 17 1024 8 RECEIPTS.CMD F3 92 3712 29 REGENFIL.DBF B8 18 1024 8 SECTICKS.CMD 9D 20 2048 16 BUDGET .COM AB A4 256 2 BUDGET .DOC D8 FC 16384 128 AUTOST .COM 9A E6 2560 20 BUDG  Fog Library Disk FOG-CPM.098 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. Personal accounting software. Filename Description -07-00 .86 This is the release date of the disk. -CPM098 .DOC This is the description of the disk contents. AC101 .CMD 8F76 9K [Accounting 101 1 of 18] "Accounting 101" program for personal financial transactions and general journal written for use with dBASE II. AC101 .DOC 1F63 3K [Accounting 101 2 of 18] AC101DOC.CMD 3EA9 23K [Accounting 101 3 of 18] AC101FRM.CMD 0D79 3K [Accounting 101 4 of 18] AC101GL .CMD 7ED5 1K [Accounting 101 5 of 18] AC101LTR.CMD A5EA 4K [Accounting 101 6 of 18] AC101REG.CMD 0F9A 5K [Accounting 101 7 of 18] ADDREC .CMD 9AAE 3K [Accounting 101 8 of 18] ANCHART .CMD 8C74 4K [Accounting 101 9 of 18] ANCHART .DBF 5EFB 3K [Accounting 101 10 of 18] GENJOURN.DBF EA16 1K [Accounting 101 11 of 18] PAYSTUB .CMD &1E3A 5K [Accounting 101 12 of 18] PRTDAT .CMD 2032 3K [Accounting 101 13 of 18] PRTJRN .CMD ED0F 5K [Accounting 101 14 of 18] PRTJRN .DBF 4C17 1K [Accounting 101 15 of 18] RECEIPTS.CMD F392 4K [Accounting 101 16 of 18] REGENFIL.DBF B818 1K [Accounting 101 17 of 18] SECTICKS.CMD 9D20 2K [Accounting 101 18 of 18] BUDGET .COM ABA4 1K [Budget 1 of 12] MBasic program that allows you to plan a monthly budget and keep to it. Compiled version is supplied for ease of use, source so MBasic users can modify it. Fully menu-driven. BUDGET .DOC D8FC 16K [Budget 2 of 12] AUTOST .COM 9AE6 3K [Budget 3 of 12] BUDG .BAS 2A2E 26K [Budget 4 of 12] BUDGET .INF E4E7 4K [Budget 5 of 12] COPYRITE.GRF DDC4 3K  [Budget 6 of 12] EDITBUDG.BAS 4654 14K [Budget 7 of 12] FIXTRANS.BAS B249 8K [Budget 8 of 12] R .COM 0000 0K [Budget 9 of 12] SEARCH .BAS 7D98 8K [Budget 10 of 12] SUMMARY .DOC E3FD 5K [Budget 11 of 12] UP .SUB 7209 1K [Budget 12 of 12]  [Budget 3 of 12] BUDG .BAS 2A2E 26K [Budget 4 of 12] BUDGET .INF E4E7 4K [Budget 5 of 12] COPYRITE.GRF DDC4 3K '