Dec 052017
Interactive Checkbook program for use with Windows 3.0.
File CHKBK1.ZIP from The Programmer’s Corner in
Category Windows 3.X Files
Interactive Checkbook program for use with Windows 3.0.
File Name File Size Zip Size Zip Type
CHKBOOK.DOC 22953 8148 deflated
CHKBOOK.EXE 105378 43719 deflated
HELP.IDT 18715 5095 deflated
HELP0.IKY 3209 236 deflated

Download File CHKBK1.ZIP Here

Contents of the CHKBOOK.DOC file

Windows Checkbook Program

This program was written to help you manage your personal finances through the
use of Microsoft Windows. It contains several selections including deposits,
withdrawals, corrections, void checks, clearing of checks, reports and bank
book balancing.

It also contains inquiries by several data items which would normally be
useful. These inquiries can be printed to an existing printer for hardcopy
and storage.

Hardware/Software Requirements
IBM PC XT,AT or PS/2 (100% compatible)
Color Display (work best with EGA/VGA)
Printer (system detects type)
DOS 3.0 or higher
Microsoft Windows 2.0 or higher

Setting up the System
The system will automatically set itself up when you first start up the
program. All you need to do is put the executable file, CHKBOOK.EXE into the
directory you wish to run from. When the program is started (by opening or
double-clicking), it will create some files. They have .IDT or .IKY in the
file suffix. These are the data files the program uses to keep your records.
There is a set for the categories, one for the Payees and one for the check
data. After the system starts up for the first time, it is suggested that you
update the categories and put all of them in that you need. If you want to add
one later, you can do so at any time, it will just add a step when you put
data in. If known, you should also put at least the payee names in the payee
data set. Again, they can be put in any time, it just adds another step. The
only other step necessary to set up the system is to put in the beginning
balance. This should be done with a deposit adjustment with the amount of the
balance you want to start with (see the section on Deposits for more specific
information). The next available record is for numbering deposits and non-check
withdrawals and should not be considered as the next available check number, it

Program Operation
After you start the program you will notice that it just sits there with an
open window and an arrow. If there is text in the window other than the
balance information at the bottom, the program had a problem starting up, if
it is empty, the system came up OK.

The program simulates 'multi-threads'. That means you can do more than one
operation at a time. The only things that are single threaded are the
Inquiry/Report transactions. All other transactions can be open at the same
time. The program will not allow you to open multiple copies of the same
transaction (ie you can only do one 'Deposits') but you can do anything with
anything else. This means that if you need to put in a payee, you can do so
while you are entering the withdrawal. It also means that you can put in
a category in during corrections, deposits, withdrawals, etc. Be careful when
executing many transactions at one time, memory will be eaten up and the
program may fail to respond.

The program opens the files once, at the beginning. If you crash the system or
switch to something else and forget to come back, you may lose data. Always
quit, or at least quit all individual transactions, before switching. If you
lose data or the keys and data get out of synch, you can recover the file with
only a good checks.idt. See file recovery for more information.

Application Philosophy
The application uses the standard accounting philosophy that once you make an
entry, you should only adjust it. In that light, you cannot correct an amount
once a transaction is accepted. The adjustments within deposits and withdrawals
are for correcting your balance. You can void a check and this will add
the check amount back into the balance, however, the record of that check is
still kept and that number is considered used. There is no way to delete a
check once accepted (again a philosophical decision). However if you are handy at
programming, the file layout for the checks.idt is included in the appendix.
Please recover your files if you decide you want to 'fix' the file, the .iky
files must be in synch and the reog will guarantee that. You CAN correct the
date, memo and category at any time with the Corrections transaction.
You cant currently change the payee once accepted.

The balancing algorithm takes the bank balance, all outstanding 'pluses'
and all outstanding 'minuses' and reconciles them. The difference should be
zero, however adjustments are considered cleared and could cause discrepancies
if not considered.

The files with .IDT in the suffix are actually data files you can read with a
high-level language. You can't read them with a plain editor because they
contain binary data. The .IKY files are the indexes for the .IDT files and
should always be in the same directory. If the .IKY files get corrupted or are
removed, they can be recreated, so long as the .IDT files are in tact. In fact,
the payee files and the keys for the checks can be rebuilt if all you have
left is the checks.idt. The categories are just for reference and can be
readded if they get lost. Upon startup or initialization of the files, there
are specific categories which get set up, these are the defaults used by the
deposits and withdrawals. The names of those categories can be changed,
but should not be 'blanked', all other category letters are open territory for
any use you want. The payee file is intialized to a blank file and contains no
defaults or data. The check file will contain one record, a control record,
for keeping the running balance and the next avaialble check number. NEVER
change or remove this record, although the system doesnt allow you to, if you
ever get access to the record, leave it alone, use adjustments to update
incorrect balances.

You should always back up your files after updating. To do this just copy the
entire directory to a floppy disk (if you set up an separate directory for this
program) or copy the files as follows:

copy chkbook.exe a:
copy *.idt a:
copy *.iky a:

Occasionally there may be a file called TEMP in the directory, you may remove
this file if you are not running the program. If you are running the program,
dont remove it unless you quit the program and it is still there.

Options and Operations
There are 10 options under maintenance. The Exit will end the program. The
others have serious effects on the system and should be thought about before

Start New Year: This option is for beginning a new year of checks. It will
DELETE all cleared checks. You should back up your files before running this
option, once you have run this, those records are physically deleted and cannot
be recovered.
Although this is not mandatory, its a good idea to do this once a year. The
program can get slow after 400 to 500 checks and this will increase performance.
The inquiries will also only sort 700 records. Using this, with caution, will
help keep yearly data segregated. It leaves un-cleared checks in the file
for the next clearing process.

New Master File: This initializes the checks.idt and .iky files. It builds a
zero balance control record. Again, this can be devastating if you haven't
backed up your files. This is to be used VERY RARELY, if ever. Its much
better to reorganize, than to start all over.

New Payee File: This initializes the payee.idt and .iky files. It blanks out
the payee master. This is not quite as disasterous as the New Master File
because it will read the checks.idt file and rebuild the names and balances.
You will lose all of the addresses you have entered. You can rebuild the
balances without losing the addresses by using the Rebuild Payee Balances item.
Again, not something you want to do on a regular basis.

New Category File: This will initialize the catgy.idt and .iky files. It will
place the defaults into the file, but you will have to reenter the others that
you have put in. This does not affect any other part of the system, except
for creating an error if you try to enter a check without restoring the
category descriptions.

Update Categories: This is the transaction used to add, change or remove a
category. To remove a category, blank out its description. To add or change
one, just type in a new description. The description is just used as a
reference. A blank description is significant, it tells the system
that this is not a valid category.

Update Payees: This is where you add. change or delete a payee. Enter a
payee name in the payee name field and press or click on the RETRIEVE
button. If it doesn't exist, the left button will change to ADD and there
should be a message stating that the information was not found. Just fill in
the data and press or click ADD. The data will be added and a message
saying so should appear. Changes will change the button to UPDATE and you can
just type over the data. You cannot change the balance of a payee, that is

calculated by the system when checks are put in or voids are processed. Again
or clicking the UPDATE button will store the data and a message will
tell you if you were sucessful or not. To delete a payee, the payee
cannot have any checks written against it, cleared or otherwise. The system
will tell you that if you try to delete one that does. Deleting also requires
two clicks. You must check the Delete? checkbox AND press or click
UPDATE. You can cancel an update at any time by pressing or clicking
CANCEL. To exit the transaction click .

Rebuild Payee Balances: This transaction reads the checks.idt file and
recalculates the Payee Balance field. It requires no other intervention and
should be used when the balances get out of synch with the check file (This
should never happen, but it's possible). It is harmless in the fact that it
only affects the balances, actually correcting them. Having to use it is
significant and the reason should be understood. See 'Full Database Recovery'
for more information.

Change Database Directory: This will reset the disk directory for FILES ONLY.
If you keep your files in a different directory than the same one the program
(chkbook.exe) is in, you can change to that directory by typing in the COMPLETE
directory name: E.G.: C:\MC51\TEST the ending \ is not necessary.
Changing directories is not kept across runs, therefore you must do this each
time you start the program if you want to keep your files separated.

Reorg Check Data Set: This will rebuild the .IKY file from the checks.idt
data set. This is how you recover a lost .IKY file or an out-of-synch one.
Having to do this is serious if it is being done to recover lost or currupted
files. Use with caution. See 'Full Data Base Recovery' for more information.

Exit: This exits the application and shuts its down, recording all updates
permenantly to disk. (All the files are closed).

Note: All transactions 'act' the same way. To exit, you click the Exit button, to cancel use or click Cancel, to accept use or click Update. Each transaction is edited as follows:

1. Category must exist
2. Payee must exist unless it begins with a '.' or is some form
of the word miscelleanous.
3. Amount must be numeric
4. Date must be valid
5. Number cannot already exist, even in a cleared or
voided state.
6. All 'non-check' items start with a 6 and are 4 digits
long. Check number must be numeric can be any number,
so long as it doesn't already exist.
7. All new items, except adjustments, are marked as un-cleared.
Adjustments are marked as 'cleared' automatically.

Deposits: The deposit transaction is an add to the running balance. There
are several options set up. The number is automatically calculated, and the
date will default to today, or the date used for the previous transaction
before Exiting. To change the balance upwards, enter a deposit adjustment.
It will add to the running balance (NOT replace it) and will be marked as
cleared. The date, amount, memo and category can be changed at will. Payee
and Number are fixed and cannot be changed.

An error will place the cursor on the field in error and display a message
telling you what is wrong. Likewise a good transaction will be accepted and
you will get a message saying so. The number is then increased by 1 for the
next deposit or withdrawal and the running balance is increased and redisplayed.
If you have a withdrawal window open, the number that was displayed will be
changed to a new one when that window is activated.

Withdrawals: The withdrawal transaction is a subtraction from the running
balance. Again there are several options, they all work the same way except
for Check. When the Check radio button is selected, the Number and Payee
fields are enabled and you can then enter them. There is a 'suggested' number
placed into the number field. This number is based on the last accepted check.
To choose another number, just type over it. The other options will disable
those fields. For a Check, the payee must exist and the number must not exist.
There is also a check box to mark an item as a tax item. To make a check a
tax item, click in the box. You can uncheck the box efore your store it if you
change your mind.
Again, as in the deposit, an error will give an appropriate message and an
accepted withdrawal will display an accepted message. If you have
a deposit window open, and you do a 'non-check', the number will be updated
when that window is activated. An adjustment will be marked as cleared.
This is how you would adjust the running balance downwards. You cannot
currently 'print' a check. You must hand write it and then record it

Inquiries/Repts: This transaction will display your data and generate reports.
It reads the check master and displays the data in the main window. The order
is selected by the menu item. Totals for each group are included for the payee,
category and DR/CR options. The date and number options will be a flat list
with no breaks. You can print the displayed data be selecting the 'Print to
Report' option. It will be formatted and printed for your printer with
appropriate headings and totals. The last menu item displays/prints your
payee file in payee name order. The payee name and check number options are
FASTER than the others. No sort is necessary for those two options. If you
put more than 700 items in the file, you can still do those two inquiries, as
well as the payee list. The other options may cause failures in the system
when there are more than 700 items.

The CCCT fields in the report/inquiry are the Cleard, Credit/Debit, Category
and Tax Item fields respectively. A void check shows an * in the Cleared field.
A 'Y' means the record has cleared and an 'N' measn it hasn't. The Credit/Debit
field shows whether a record increased (+) or decreased(-) the running balance.
The category is the category character. For example *-X means a void check
which subtracted from the balance and is in category X. Y+S is a cleared
deposit in category S, etc. The Tax Item is Y for Yes or N for No. When
selecting the report/inquiry by Tax Item, only items with numbers < 6000 are
selected since this field has no meaning for any other type of transaction.

Data Corrections: You can correct Dates, Categories and Memo data with this
option. You cannot correct amounts or payees. You can also 'un-clear' a
record. To correct data, enter the number (it will either be a 6xxx type
number or the check number). The data will be brought up for you
to type over. Editing is performed as if the data was totally new. For
example, if you got rid of a category, the record will display, but will not
change until you add the category back. To un-clear a record, just check
the 'Un-clear' check box before updating. This will put it back into the
system as an active record and can be cleared or updated as usual. You CAN
update void or cleared records, however the void state is not changed, and the
clear state is only changed when you check the 'un-clear' box. The Tax Item
box works the same was as the original withdrawal. You can check or uncheck
it as you desire.

Void Checks: This transaction will void a check. It is different in that it
only works on checks. It actually adds the amount of the check back into the
balance and marks the record as void. It does NOT remove the check number
from the system and you cannot use that number again. You also
cannot un-void a check like you can a cleared check. It is suggested that you
use a number like 5xxx (it must be less than 6000), where the xxx is the original
number, to rewrite a check which was mistakenly voided and note it as such in
the memo field.

Clear Checks: This option is the start of the balancing process. It is where
you clear your records. The program will display only records which are not
cleared. As a record is displayed, you can Clear it (by clicking Clear), not
clear it (by clicking Skip) or exit the program. If you accidentally clear a
record, you can 'un-clear' it by using the data correction transaction
previously described. The records are presented in 'number' order. Your
checks will show up first, and then all of the other items,
in the order they were entered. This follows your bank statement format
(generally). After clearing all of your records, you should enter all of your
service charges, missed items, etc and clear those items. Remember, the only
transactions which are automatically marked as cleared are adjustments.
Service charges are not automatically marked, so you have to go back and clear
them also. After you have cleared your records you can then check your
balance using the 'Balance Bank Statement' option.

Balance Bank Statement: The system will ask you for the balance from your
bank statement. After entering it, the program will search through your
records and calculate, from your open records, what your balance says it
should be. This is not the running balance, it is the running balance plus all
your open deposits minus your open withdrawals. This calculated number
should match your bank's balance. A report is printed showing all of your open
items, and a spearate page showing the calculation and any descrepancy.
A descrepancy is usually a forgotten transaction or an adjustment which has
been marked as cleared, but has not been processed by the bank. After finding
the error, you should correct your data by entering a deposit adjustment or
withdrawal adjustment for the amount you are out of balance. Just to make
sure, you should rebalance and check for a zero discrepancy.

A. Full Database Recovery
A full file recovery should not be performed or considered lightly. The best
recovery is just to recopy the files from your backup disk. If, for some
reason, you dont have a backup, you can recover as long as you have a good
checks.idt file. DO NOT start up the program if you dont have the two .IKY
files to go with it, if the system detects a bad or missing file, it will
build a new one and then your only hope will be gone. You must create two
dummy .iky files to fool the system into thinking its ok. The procedure is as
follows (assumes you only have a good checks.idt file):

1. Copy the checks.idt file to another directory. If your other
files or OK copy them too (catgy.idt, catgy0.iky, payees.idt,
and payees0.iky).
2. Run the program and let it create new, clean files.
3. Quit the program
4. Copy the checks.idt file from the other directory to
the program directory. DO NOT remove the copy yet.
5. Start the program. If it starts to recreate the
files, you have got a corrupted checks.idt file
and you have to start all over again.
6. If the system did not recreate the files, select the
'Reorg check data set' under maintenance. Note that
the running balance line may be incorrect at this point.
After the reorg completes, the running balance should be
OK. If not, you have a bad checks.idt file.
7. If you have lost the payee files, continue on. If not
you should copy the payees*.* and catgy*.* from your saved
files and then run the rebuild balances transaction, otherwise
after the reorg completes, select the 'Initialize
Payee File' option under maintenance. This will
recreate a good payee file without addresses.
8. Reinput your categories if necessary.
9. Quit the program and BACK UP ALL YOUR FILES.
10. Remove the COPY of your files in the save directory.

B. CHECKS.IDT 'C' File Layout
typedef struct {
char check_key1[5];
char check_key2[31];
char check_payee[26];
int check_number;
char check_date[9];
short check_tax;
double check_amount;
char check_memo[31];
char check_category;
int check_cleared;
int check_credit;
int check_voided;
} tCheck;

C. New Features and fixes for 4.01.ISM
1. Home/End now work in dialog items.
2. Printing while inquiring no longer makes the inquiry double spaced
3. You no longer have to quit to do multiple inquiries after printing
4. Reorg no longer trashes the control record during full database recovery
5. Help now works
6. 'Tax Item' processing was added to withdrawals and corrections.
7. 'Tax Item' display was added to inquires, clear and void.
8. Unclear is now enabled for only cleared items in corrections.
9. Miscelleanous is now valid as a Payee (any derivation which starts with
misc, e.g. Misc. misc., misc, miscelleanous, MiScElLe, etc.)
10. 'Suggested next check number' was added for withdrawals
11. Running balance display was changed to accomodate suggested next check
12. Corrected enabling of non-existant dialog items in void processing.
13. Data set open/close was moved to the transaction rather than just at the
beginning of the program.
14. Inquiry now displays a full line on CGA and EGA displays as well as
VGA displays.
15. Color on totals was changed so it shows up on monochrome screens.

 December 5, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>