Cash Register

Printer port - APRINT4.EXE - USB Printing
There are 6 possible ports on the back of your computer to which your printer may be attached. You may have up to two parallel printer ports, LPT1 or LPT2. You may have up to two serial ports, COM1 or COM2. You may have up to two USB ports.

You may also print to the port FILE. This will allow you to send your print job to your printer through your Windows printer drivers, in effect this program will print to any printer that Windows can including your USB ports.

To select a printer port use the "printer setup" feature in the POSCONFG.EXE program. The default printer port is LPT1 so you do not have to do anything if your printer is connected to the LPT1 port as most printers are.

From "printer setup" press [F5] to select the port. If you choose LPT1 or LPT2 you are done and need to do nothing else except to try to print a sample receipt.

NOTE! Support for COM1 or COM2 is still underdevelopment and not complete. There is no error trapping currently for serial printers. If your serial printer is not working properly this program will not stop until the printer is fixed but will continue to send data to the printer even though nothing is actually being printed.

If you choose COM1 or COM2 you will have to select various settings to configure the port to match the settings on your printer. To find the correct settings for your printer you will have to either look them up in your printer's manual or contact the printer's manufacturer. One special setting is MODE. If you get the printer to operate but the text does not line up properly set MODE = ASC.

If you choose the port FILE: then something completely different will happen. The printer data will be sent to a disk file instead of your printer. To get the data to your printer another program must be running while this cash register program is also running.

The program APRINT4.EXE is one of the files that you downloaded with this program. It will look for printer data in the FILE: and when it finds it the data will be sent to your printer using your Windows printer drivers. For this to happen APRINT4.EXE must be running while any other Cash Register program file is running.

The first time you start APRINT4.EXE it will display your Windows printers, meaning all the printers that have had their drivers loaded into Windows. To the left of each printer will be a number. Type in the number of the printer that you wish to use and press [ENTER].

Now you will be shown a list of fixed width fonts, i.e. fonts where all the characters are the same width when printed. These are the only fonts that can be used with the Cash Register program. To the left of each font will be a number. Type in the number of the font that you wish to use ("Courier" is a good choice) and press [ENTER].

Lastly you must choose a font size, 10 is standard. If you choose a size that is too large receipts will not print correctly. Depending on your printer either the right portion of each line will not print or it will be wrapped under the left portion of the line. Type in the font size you wish to use and press [ENTER].

If your settings do not print good receipts return to the APRINT4.EXE program while it is running and press [S] to re-enter the settings.

For APRINT4 to work you must start it before you start any of the other Cash Register programs. it must still be running while the other Cash Register programs are running. You must choose the correct printer and that printer must be ready to print. The Cash Register program must be set to send printer data the FILE port, and you cannot close APRINT4 until after you have closed the Cash Register program. To close the APRINT4.EXE program, return to the APRINT4.EXE and press [X].

APRINT4.EXE was conceived and created by Jonathan Simpson. I would like to express my sincere gratitude for his Contribution to Cash Register.

Receipt printers.
In general a receipt printer will print on a long roll of paper. This is called printing continuously because the paper stock is one long continuous piece of paper. This makes it very easy for the POS software because it does not have to worry about printing receipts that are too long or too short. When the printer stops printing you just tear off the receipt no matter how long or short it is.

The things that you have to think about with a receipt printer are how many blank lines need to be printed at the end of each receipt to get the last printed line out of the printer before the receipt is torn off, the fact that receipt printers print only 40 characters per line, and how many plies are on the paper roll, ie, how many copies of the receipt are printed on one pass.

To set up a receipt printer run the POSCONFG.EXE program and select "Printer Setup." Set "Print receipts on printer" to "YES". Set "Print on a page printer or print continuously" to "CONT." Enter a number into "Number of blank lines between receipts." Last set "Print 40 or 80 characters wide." to "40."

If your printer uses a cutter to cut the receipt off the paper roll, you must set this program to activate the cutter. Press [F1] to enter the code to make the printer cut the receipt. Entering this code is similar to entering the code to open a cash drawer attached to the printer, see the instructions for opening the cash drawer to learn how to enter the code to activate the cutter.

If you now press [F4], and your printer is set up and attached to your computer, the program will print out a sample receipt.

NOTE: if you are using a computer printer that has a tear bar on it to tear off the page when it stops printing then you may consider setting it up as a receipt printer following the above instructions. The only change you may want to make is to set the width to "80."

Computer printers.
Computer printers usually print pages, normally 11 inches long. This is much tougher that setting up a continuous printer. No matter how short a receipt may be you will want it to finish off the page it is printing on and get ready for the next page. If a receipt is very long then you will want to print it on two pages, and then finish off the last page. This is called pagination, every receipt will start off at the top of a new page.

To use page printing set "Print receipts on printer" to "YES". Set "Print on a page printer or print continuously" to "PAGE"

Form feed.
The easiest way to set up pagination is to use the "Number of printed lines per page" and "Use form feed at the end of the page." Most computer printers will print 60 lines per page. Laser and inkjet printers will print 60 lines and automatically provide a 1/2" top and bottom margin on each page. Line or dot matrix printers will print 60 lines but ask the computer to print top and bottom margins. In either case set "Number of printed lines per page" to "60" and "Use form feed at the end of the page." to "YES". Now press [F4] and print out a sample receipt, press [F4] again to print out a second receipt.

Both receipts should start at the same distance from the top of the page. If the second receipt starts at the middle of the first page then your printer may not use the "form feed" command, see "Line counting" below. If the second receipt starts lower on the page than the first page then try setting "Number of printed lines per page" to less than 60. If a blank page is printed between the two receipts then also try setting "Number of printed lines per page" to less than 60. (If your printer prints EXACTLY 60 lines per page then it will paginate after the 60th line is printed, when it then receives the form feed command it will then send out another blank page.) If needed, you may also try experimenting with the top and bottom margin settings.

Line counting.
If "form feed" does not work on your printer, or you get weird results, then you must use line counting. This is simply having the computer count the lines it prints to calculate when a page ends. To do this set "Use form feed at the end of the page." to "NO". Now adjust the top and bottom margin settings and the "Number of printed lines per page" until you get two sample receipts to begin printing the same distance from the top of the page.

Receipt copies.
Now that you have your receipts printing correctly you will want to think of how many of each receipt you want to print.

A journal receipt is the copy of the receipt that is kept in your store. It is your record of every transaction that is rung on your register. You may be legally required to keep a journal of your transactions. If you are using two or three ply paper in your printer then the top copy will be your customer's receipt and the bottom will be the journal. If you are using single ply paper you may print two copies of each receipt, one for the customer, one for the journal. To set the number of copies, set "Print one or two receipts per transaction" to "1" or "2".

Another option is to save the journal as a computer file. See the section "Journal" in this manual.

You may also want an extra copy of any credit receipts, one for the customer, one for the journal, one to attach to the credit slip. To do this set ""Print an extra receipt for credit sales" to YES". This extra receipt will only print for a credit transaction.

Ask before printing sales receipt.
This setting allows you to not print a receipt for a sale, return, void, or no-sale. At the end of the transaction you will be allowed to choose between "1. Print receipt" or "2. Do not print receipt". This assumes that you have set up the POS program to print receipts. If you choose to not print a receipt then no receipt will be printed. However everything else will still happen. The cash drawer will open, the sale will be written to the journal file, a transaction number will be used up. Be warned! If your printer prints on multiple ply paper and you are using the second sheet as your journal, you will not have a printout of the transaction on your journal. This may not be legal! You will however be able to tell that a transaction is missing because the transaction numbers will not be sequential.

Ask before printing opening receipt.
This setting allows you to not print an opening receipt when you start the cash register. This assumes that you have set up the POS program to print receipts.

If you choose not to print the opening receipt the cash drawer will still pop open but there will be no transaction and therefore no entry will be made into either the sales record file or the journal file.

This is an absolutely terrible idea. The purpose of the opening receipt is to make certain that the register sales totals were reset when the register was closed, and if not, to tell you how much is being added to today's sales that should not be there. If you do not print an opening receipt when you start the cash register then the next thing you should do is to go to the "close" screen to make sure that all of the totals are actually zero.

Sales Check
If you allow the printing of sales checks then at the end of each sale you will be offered the option of parking the sale and printing a sales check or finishing the sale and printing the receipt. It is assumed that you wish to give the sales check to the customer who will pay later when you then will recall the parked sale. Of course to be able to park a sale you must enable sale parking.

A sales check will look just like a receipt except that only the first line of the header will be printed followed by "SALES CHECK", of course there will be no payment information (change, cashpay, etc.) because the customer has not yet tendered payment. The "PARKED" code will also be at the top of the sales check.

If you use the "employee setup" feature to allow the tracking of tips then the sales check will have a line for the customer to enter the amount of the tip.

Forced line feed
This is mainly for serial printer users. If your serial printer will not feed the paper while printing setting this feature to "YES" may fix it. If your printer is already feeding paper then setting this to "YES" will double space your receipts.

Pause before printing second receipt
This will halt printing between multiple copies of the same receipt until you press any key.

Print blank line between items

This will print a blank line between the merchandise items on receipts. This only functions on 40 wide printing where each item sold uses two lines. so you will print two lines for the first item, then a blank line, then two lines for the next item, then a blank line, etc.

Print additional alternate transaction numbers.
Some countries require a two part transaction number. The actual transaction number is reset to zero when the register is closed and starts the next day at "1". The second part of the transaction number counts the number of times the register has been closed. So today the transaction numbers may be 2687-1, 2687-2, 2687-3, 2687-4... and tomorrow the transaction numbers will be 2688-1, 2688-2, 2688-3, 2688-4...

This program will now do this. Use "Printer setup" setup feature of the POSCONFG.EXE program to turn on the printing of these new transaction numbers on your receipts. These new transaction numbers are in addition to the old transaction numbers and if you choose to print them both the old and the new transaction numbers will be printed. The new numbers will be printed on the left side of the dashed line that is printed after the header. The new numbers will also be printed in the journal file.

Both numbers will reset to 0 after they reach 30,000 so if you have more than 30,000 sales on ONE register in a single day or use this register for more than 82 years, assuming that you close out the register only once a day, this could be a problem.

Number of digits in receipt transaction numbers.
Some countries now require 6 digit transaction numbers, i.e., 000000 to 999999. If you set this feature to allow 6 digit transaction numbers then they will be printed only on the receipts and in the journal. All other parts of this program will use the last 4 digits of the transaction number.

For example, if you wish use the "Void" function to lookup transaction number 256987 you would have to lookup transaction 6987. Since the sales record file only stores a maximum of the last 10,000 transactions there is no possibility of there being two number 6987 transactions in the file.

Prints weird.
If you are running this program from DOS you will have almost no printer problems if your printer is set up to print in a data processing mode. For most DOS printers that is the only mode they have so "No problem."

About the only problem you will have when printing from DOS is if the columns do not line up. This is caused by using a font that is not fixed width. A "W" is wider than an "I". Changing your printer to a data processing mode or the default font to "Courier" or other fixed width font will solve this.

Windows
There are a lot of printers out there. Windows has many different printer drivers and controls. Here are some problems that may occur.

Prints nothing! Well first of all have you set up the cash register to print receipts? If not, it will not print anything else either. Some printers / Windows combinations need to be specifically told that you will be printing from DOS. See your printer manual. If you are running this program from windows '95 or later then even though you are running a DOS program, Windows takes over controlling the printing and many DOS printer features are over-ridden even if you are running this program from the DOS prompt. But since it is a DOS program then Windows wants to send printing to DOS controls even though it has over-ridden them. Isn't this FUN? Another solution to this problem is to make the "Generic Printer" your default, see below.

Columns don't line up. This is caused by using a font that is not fixed width. A "W" is wider than an "I". Changing your printer to a data processing mode or the default font to "Courier" or other fixed width font may solve this. Another solution is to set up the "Generic Printer" as your Windows default printer. Are you sure that you want to mess with your Windows settings? Think again?

Program printer
When your computer wants to send out some data to be printed is asks the printer if it is ready. If it is ready it sends back a number, usually 223. If it is not ready, out of paper, not on line, turned off, something else, it will send back another number or no number. Some computer / printer combinations will use a different number for "Ready". If yours does then you will see the "Printer Error" screen even though there is no error. This gets real annoying, real quick.

You may use the "Program Printer" function in POSCONFG.EXE to reprogram the "Ready" code that the cash register will accept.

Receipt Coupons
You may print up to three 10 line coupons on your receipts. These coupons can be for anything you want to offer that you can explain in 10 lines.

Here are some suggestion of things that should be in your coupons...

Your business name and address. An expiration date. "Value = 1/20 Cents", "Void where prohibited, licensed, or taxed.", "Some restrictions may apply.", "Cannot be combined with any other offer, discount or promotion.", "Must be over 18 / 21." "Coupon must be presented / surrendered at time of purchase."

The width of your coupon depends on the width of your receipts. Use "Printer Setup" to set your width first because if you change it later you will have to retype your coupons.

There are two variables to set for each coupon. First is "how often", with a range of 0 to 9,999. This tells the register how frequently each coupon will be printed. A setting of 0 would mean never. 1 would mean 1 out of 1 or every receipt would have a coupon. A setting of 2 would mean 1 out of 2, 50 would mean 1 out of 50 and so on.

The "Evenly" or "Random" setting determines which receipts will have the coupons. If the coupon frequency is divided "Evenly" among the receipts then the spacing between receipts that have the coupon will be the same. For example, if the frequency of a coupon is set to 18 and they are to be printed "Evenly" then every receipt that has a transaction number that is evenly divided by 18 will have the coupon printed on it. If the transaction that is divisible by 18 is not a sale, (opening, closing, no sale), then that receipt will be skipped. "Random" means that every receipt would have the same chance of having the coupon printed on it. If the frequency of a coupon is set to 18 and they are to be printed at "Random" then every receipt would have a 1 in 18 chance of having the coupon printed on it. Theoretically 3 receipts in a row could have the coupon printed on it or you could go 100 receipts with no coupon. But in the long run the ratio would be 1 receipt out of 18 will have the coupon.

Receipt Head & Foot
You will probably want your receipts to have a header (the same text on each receipt above the sale) and a footer (the same text on each receipt below the sale.)

For a header you will want to have your store's name, address, and phone number. Also some text stating that keeping the receipt would be a good idea. "Retain this receipt to compare with your monthly statement or for return or exchange." or "No cash refunds without this receipt!"

A footer usually has a motto or slogan. "Keys made right." or "Satisfaction guaranteed"

The width of your header and footer depends on the width of your receipts. Use "Printer Setup" to set your width first because if you change it later you will have to retype your header and footer.

Receipt Language
While this program itself will be persistently in English it is possible to change the labels on the receipts (ASSOCIATE, DESCRIPTION, PRICE, TOTAL, AMOUNT TENDERED, etc.) to anything or any language you want assuming that it will fit in the allowable space, use either the Latin or Greek character set, and your printer will properly print those characters.

To do this, use the "Receipt Language" function. This will show you the current labels (or allow your to reset them to the default labels) and then type in the new labels that you want.

Since it is possible that another language will use different characters, such as those with accents, additional alternate characters can be displayed by pressing [F3]. These are 80 selected characters from the upper half of the ASCII character list of 128. The remaining 48 are either graphics characters or just plain weird, but you may also enter them even though they are not displayed if you know the code. To the left of each displayed alternate character will be a three digit code. To actually enter an alternate character into a label hold down the [ALT] key, type in the 3 digit code using the numeric key pad to the right of your keyboard (NOT the row of number keys above the "QWERTY" keys), and then release the [ALT] key. You must hold down the [ALT] key while you are typing in the 3 digit code.

NOTE: at the current time printing a sample receipt from the POSCONFG.EXE program will print only the default labels. Your labels will only be printed when printing an actual receipt from POS.EXE

Receiving
(To use "receiving" you must be keeping track of your inventory in the stock table.)

This function will actually run another program that will allow you to enter merchandise received into your store into a file. From the POS program you may then use "File maintenance" to load this file. When a receiving file is loaded your current inventory will NOT be erased from your stock table, the receiving file will be ADDED to your inventory.

To use this program a copy of your stock table must be in the same directory as this program even though the stock table will not be changed until the resulting file is loaded by the POS program. The receiving program uses the stock table only to verify that the correct stock numbers and descriptions are being used by the receiving program.

The receiving program does not have to be run on the same computer as the cash register program is on. The receiving program will copy the receiving file to a floppy disk and the POS program will read the receiving file from the floppy.

You do not have to enter the items into the receiving program in any order nor do you have to group all of the same items together. For example if you enter 12 of item number 555 and then enter five other items, and then add 7 more 555's, and then six other items, and then 4 more 555's, the program will know that you entered 23 555's.

(See Receiving.)

Rounding
There are eight choices for rounding currency amounts."

".01" Will round all money amounts to the nearest .01

".05" Will round all money amounts to the nearest .01 but will allow the sales person at the end of the sale to press [F8] to round out the total of the purchase to the nearest .05. With this feature set to ".05", when you press [+] to total a sale and are then able to choose the payment method (cash, check, charge) you may press [F8] to round out the sale to the nearest .05. Pressing [F8] again will restore the sale to the original amount.

It does this by adding or subtracting a few cents from the first item in the sale. If the new price puts the sale in a different tax amount the tax will not change but will remain the tax on the total original amount.

".10" Will do the same thing as ".05" except that it will round to the nearest .10 when you press [F8] at the end of the sale.

"1" Will round all money amounts to the nearest 1 (NO DECIMALS) and will allow money amounts 100 times the usual limits. For example the maximum price for an item will be 999999 instead of 9999.99

"10" Will round all money amounts to the nearest 1 (NO DECIMALS) and will allow money amounts 100 times the usual limits. However only on the sales screen and on the receipts an extra "0" will be follow every currency amount. In effect, on the sales screen and the receipts all values will be displayed 10 times their actual amounts.

"100" Will round all money amounts to the nearest 1 (NO DECIMALS) and will allow money amounts 100 times the usual limits. However only on the sales screen and on the receipts an extra "00" will be follow every currency amount. In effect, on the sales screen and the receipts all values will be displayed 100 times their actual amounts.

"1000" Will round all money amounts to the nearest 1 (NO DECIMALS) and will allow money amounts 100 times the usual limits. However only on the sales screen and on the receipts an extra "000" will be follow every currency amount. In effect, on the sales screen and the receipts all values will be displayed 1000 times their actual amounts.

"10000" Will round all money amounts to the nearest 1 (NO DECIMALS) and will allow money amounts 100 times the usual limits. However only on the sales screen and on the receipts an extra "0000" will be follow every currency amount. In effect, on the sales screen and the receipts all values will be displayed 1000 times their actual amounts.

On the settings 1 to 10000 what is going on? The program will allow a price on items from .01 to 9999.99. For countries that have a currency that is small, or tiny, the upper limit of 9999.99 may be inadequate. If you need a larger total price then by setting the rounding factor to 1 you can then set a price for your items from 0 to 999999. The increase of 100 times will apply to all currency amounts in all parts of the program. This does however drop decimal places from the currency amounts.

But even that may not be enough. If a loaf of bread in your country costs 52630000 then even using the rounding factor of 1 will not be adequate. Unfortunately there is no room on most screens or on reports to print an endless number of zeros. A rounding factor of 1 will be the limit. This means that if you are using a rounding factor of 1000 that on most screens the currency amounts will be 1/1000 of the actual value. For example you would enter your "bread" price as 5263 and in most parts of the program 5263 is what will be displayed and you will have to remember that it really represents 52630000. This also applies to all other currency amounts. If the program tells you that your daily sales were 2563998 that means you actually sold 25639980000 and that is what you report to your local tax buddies.

While you and your government will get the concept of extra, implied, zeros, most of your customers and many of your employees will not. For this reason there are the rounding factors from 10 to 10000. If you use one of them, then only on the sales screen and the receipts will the price of bread actually be displayed as 52630000.

NOTE: I have added as much space as possible to the sales screen and receipts to print the additional zeros when using the rounding factors of 10 to 10000. However there is only so much space available. When using the rounding factors of 1000 or 10000 it is possible that you may have currency amounts that can just not be printed. In that case one or two of the trailing zeros may be omitted. If this becomes an issue then I am sorry but there is just no more room to print more zeros. Sorry.


Previous page | Table of contents | Next page