Updated 1-27-17
Cash Register

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 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 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 1000 times the usual limits. However only on the sales screen and on the receipts an extra "000" will 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 10000 times the usual limits. However only on the sales screen and on the receipts an extra "0000" will follow every currency amount. In effect, on the sales screen and the receipts all values will be displayed 10000 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.

Sale Parking
Ever come to the end of a sale and when you tell your customer the total she decides that then is a good time to start looking for her checkbook or the customer has left his wallet in the car and will be, "Right back," or the credit card machine has determined that your customer is from Mars and needs to check a database on Vulcan before it will validate his card? Well, bunky, until those other people get it together, YOUR STORE IS CLOSED! Unless you have another register in your store you could not ring up another sale until the first one was completed. (Or your voided it out and had to start over.) You have six other customers in line but can't ring up any of them. Bummer.

Well with this program you can park up to 255 pending sales and ring up those six other customer's. Use the "Sale parking" feature in POSCONFG.EXE to allow 0 to 255 sales to be parked. It's almost like having a second register.

Sale Parking can also be used to run a "tab" in a bar or restaurant. As consumables are delivered to the customer you recall their parked sale and add to their transaction. When the customer wishes to pay his check, you recall his parked sale, give him his total, and finish ringing his sale.

To actually park a sale, or retrieve a previously parked sale, press [F6] from any current sale transaction. (Returns may not be parked.) There are 3 options...

You may park the current sale in progress and begin a new sale.

You may park the current sale in progress and retrieve a previously parked sale.

You may void (erase) the current sale in progress and retrieve a previously parked sale.

To park a sale you must give it a 4 character code. In a restaurant you would probably enter the sales person's number and the table number. 0425 would be for sales person #4 on table #25. If you are more interested in the table than the sales person then enter the table number first, ie. 2504. Your code may contain letters or punctuation.

When you wish to retrieve a parked sale the parking codes will be sorted and displayed. This is why you always enter the sales person's or table number as two digits, "04" not just "4". The program uses an alphabetical sort, not a numeric sort. In a alphabetical sort 23, 15, 2, 18, 1 would be sorted as 1, 15, 18, 2, 23. But 23, 15, 02, 18, 01 would be sorted as 01, 02, 15, 18, 23. To retrieve the sale, enter one of the codes listed and press [ENTER].

Parked sales are written to your drive. Parked sales will not be lost if there is a power loss, or if you turn the register off, or even if you close out the register. To clear a sale out of the parking lot you must retrieve it and then either finish the sale or void it out.

Sale Recording-VOIDS
You may have the register record 0, 10, 100, 1000, or 10,000 of your last sales. After recording the maximum number of sales new sales will overwrite the beginning of the file. For example if you are recording 100 sales the 101st sale will overwrite sale #1.

Actually, all transactions are recorded including opening, closing, no sales, and voids. From the "Void" function of the register you may call up and view any transaction, even the non-sale transactions. You may page through the transactions by pressing only one key. It is sort of like being able to view your journal on the screen.

Your sales record file will have the extension of .REC If you named your register file MARTHA then the sales record file for your register will be MARTHA.REC Please be aware that a sales record file can be very large, one with 10,000 transactions will be over 42,000,000 bytes if you have 60 lines maximum per sale. Or if you used the RECONVRT.EXE program to change the maximum number of lines in a sale to 200 lines then 10,000 transactions will require over 120,000,000 bytes.

WARNING! If you want to reset the program to change the maximum number of lines in a sale and reset the number of transactions recorded, you MUST use the RECONVRT.EXE program to reset the maximum number of lines first!

You can use the RECONVRT.EXE program to switch back and forth between a maximum of 60 and 200 lines. However if you switch from 200 to 60 obviously any sale with data in lines 61 to 200 will lose the data in those lines. Not a problem if no sale went over 60 lines. When going from 200 to 60 while some line data may be lost the totals for the sale, taxes, etc. will still be correct.

Only sales in your sales record file (not refunds or anything else) may be voided and then only if they are from the same day. You may also require a password before a sale may be voided.

A voided sale will be totally erased from the register. The sales will be removed from the sales totals, the pieces will be returned to the inventory, even the transaction count will be reduced by 1. The transaction type in the sales record will be changed from "SALE" to "VOIDED SALE". However the amount of all of the voids and the number of voids will be recorded in the daily sales report as a separate number, ie. not added into the daily sales.

Sales History - "Z" Readings
To use "Sales History" your cash register must have a stock table and you must be keeping track of your inventory in the stock table.

Use the POSCONFG.EXE program to turn "Sales History" to ON. A history file is over 600,000 bytes. Consider this fact before deciding to turn "History" on.

Sales History is updated at the end of each sale so it is always current unless turned off using the POSCONFG.EXE program.

From the 'Reports' feature in the POS program 'Sales History' will tell you how many pieces of, and the dollar amount, you have sold for any item for up to one year. You may specify 1 to 12 months of history. You may show one item or all items sorted by stock number, category, or vendor. The history rolls over after 12 months, i.e. the 13th month will overwrite the first month.

Displaying the History file from the POSCONFG.EXE program will only show the raw data in the file. Use the POS program to display a more usable format.

When using the "Reports" feature in the POS program, month #1 is the current month. If it is the 3rd of the month a "one month" history will show only the sold amounts for the 3 days of the month so far. A "two month" history will show you the sales for all of last month and for the 3 days of this month so far.

"Z" readings
A "Z" reading is a tally of your sales from the first sale ever rung up on the register when it was just taken out of the box. It cannot be reset. They are usually used in malls to keep track of the sales of their cart and kiosk vendors.

The point of this is that the mall can take a "Z" reading from each of the cart registers once a week, or once a month. Then they subtract the previous "Z" reading and they will then know what the cart sold in the time period without having to worry about how many times the daily sales were reset.

The "Z" reading works like an odometer. When it reaches its maximum it will "turn over" to zero. For the POS program the maximum is 999999999999.99 and if you add 10¢ to that you will get 000000000000.09. Got the concept? It is not likely that you are going to reach 999999999999.99 in sales too often and this point will probably not come up in your lifetime.

The "Z" reading is displayed in the upper left corner of the "Close" screen of the POS.EXE program only if the display of the "Z" reading has been turned on. You turn it on using the "Sales history - "Z" reading" feature of the POSCONFG.EXE program. The POS program will update of the value of the "Z" reading even if the "Z" reading is not displayed.

When the "Z" reading is displayed on the screen and if your register prints receipts, you can print out the "Z" reading by pressing [F1]. Printing out the "Z" reading will also give you additional "Z" readings for total returns and total voids. While sales add to the regular "Z" reading, returns and voids will of course subtract from the "Z" reading. The mall management can use the return and void "Z" readings to see if the volume of returns or voids are way out of line.

So what if a user has two (or more) register files on his computer. They could be identical except for the file name. On the first half of the month the user could use one of the files and on the second half of the month the user could use the other file. Since they look and work the same the mall would have no idea that different files were being used at different times of the month. When the mall takes the "Z" reading only the sales from the register file currently being used would be included. The sales from the other register file would not be in the "Z" reading that was just taken by the mall. The mall is being cheated.

To prevent this from occurring all register files on the same computer use the same "Z" reading. This means that all register files, in any folder, on any drive, on the same computer will share the same "Z" reading. If you have register files for "JEWELER" and "KEYSHOP" on the same computer then a sale rung using the JEWELER register file will increase the "Z" reading for both the JEWELER and the KEYSHOP registers. So it would make no difference how many register files the user used to ring up sales for the month, the "Z" reading would be increased on every sale.

The downside of this is that if you do use the "Z" reading then once a computer becomes an actual register in a real store you cannot use the other register files to "play" with or for other vendors, or for other purposes. However if you do not use the "Z" reading (meaning that you do not keep track of it, the register always keeps track of it) then this will not apply.

Remember that if you turn the display of the "Z" reading off, the register file will still update the "Z" reading on every transaction, only the display of the "Z" reading has been turned off.

Deleting and reinstalling the POS software on a computer will not affect the current "Z" reading. Wiping the hard drive and then reinstalling the operating system and POS software will reset the "Z" reading to zero. Replacing the computer with a new one will reset the "Z" reading to zero even if the current POS files are copied to the new computer. Resetting the "Z" reading to zero will cause the mall to ask you some interesting questions, you would probably want their representative to be there when you do it.

This program will support scales that produce a barcode label that contains the stock number and the price in the barcode. The POS program will then read the barcode and separate the barcode number back into the stock number and price. This program will not support scales that weigh the item at the checkout counter and then transmit the information directly into the POS system.

Many scales will produce a barcode label to attach to a package that contains the stock number for the item and the price for the package (price per unit weight times the weight, i.e. 1.30 per pound at 4.5 pounds = 5.85. The price for the package printed on the label will be 5.85.) If the stock number for the item was 75698 then the barcode printed on the label may have this number encoded 275698405853. As you can see the digits 2 - 6 are the stock number and digits 7 - 11 is the price.

Scale barcodes must contain 3 things, a 'flag' to tell the POS program that this is a scale barcode (which is the same on every scale barcode,) the actual stock number for the item, and the total price for the package.

Use the "Scale" feature in the POSCONFG.EXE program and enter a sample barcode number printed by your scale. If the stock number is less than 14 digits long then enter leading zeros to make it 14 digits long. If you compare several barcodes printed by your scale you will see that they all begin with the same digits or at least will have the same 1 - 3 digits printed in the same place on each label. For example you may have scale numbers like 234242111422, 216985412578, 269856475124, each one of these numbers begins with the digit "2." And, importantly, no other 12 digit stock numbers in your stock table will begin with "2." Now from left to right, under the stock number, place "F" under the part of the stock number that holds the scale flag (including any leading zeros) or just those digits that are the same on every "scale" barcode but different on all non-scale barcodes.

To mark the location of the stock number, place the letter "S" under the stock number digits. To mark the price, place the letter "P" under the digits representing the price. Be careful, one or more of the digits in barcode will be used for a parity check or other purpose and not be part of the flag, stock number, or price. Do not place any letters under them. For example if flag is '2', the stock number is 56987, and the price is 23.56 then you should enter...


Once you have filled in a sample scale barcode number and identified the parts by placing the letters underneath press [TAB] to set the flag in the program. This is important; the flag will not be set unless you press [TAB]

Pressing [TAB] will also show you the stock number that you must use to enter the stock number for this item into the stock table. This will usually consist of the flag plus the stock number followed by trailing zeros. In the sample above the stock number for that item would be 256987000000. When you enter the item into the stock table you must enter the price per unit weight as the price. For example if the price were 2.98 per pound then you would enter 2.98 as the price. If the price were 8.45 per kilogram then the price entered in the stock table would be 8.45.

Now when you scan a scale barcode into a sale it will recognize that the item is from the scale. It will look up the item in the stock table by 256987000000 (NOT 00256987223561), and use the description entered for that item. The POS program will use the price in the stock table for the price, and calculate the weight of the package as the pieces. For example if the price in the stock table is 4.30 and the price on the scale barcode is 12.36 then the weight (pieces) must be 2.874. NOTE: I do the best that I can but your scale and the POS program may round off differently and there may be a rounding error of .001 on the weight (pieces) or .01 on the price.

For this feature to work properly it is absolutely required that the scale and the POS program have the same price (per unit weight) for the same item. If they are not the same, then you will have to ring up the package by entering (for example) the 256987000000 number as the stock number. Then manually enter the price and weight (pieces) so that the total price for that item comes out to the same price that is on the scale label.

You may use a "keyboard wedge" or most scanners that plug into the computer's USB port to read bar code stock numbers into sales. Serial scanners MAY function, see below.

"Keyboard wedge" and USB scanners fool the computer into thinking that the stock numbers being read by the scanner from the barcode are coming from the keyboard.

If you enter a stock number into a sale using the keyboard the program will then ask you for the price and the number of pieces that are being sold. If you scan the stock number from a barcode the program will fill in the price from the stock table for that item, use '1' as the pieces, and ask you to scan the next item. So the program needs a way to tell if the stock number came from a scanner or the keyboard.

There are three options for the program to determine if a stock number has been keyed in or scanned. You must choose one.

1. Stock numbers greater than 99999 entered in less than 1 second were scanned all others were keyed.
2. All stock numbers are assumed to have been keyed.
3. All stock numbers are assumed to have been scanned.

Normally the computer will beep when a barcode is scanned into a sale. Pressing [TAB] here will turn off the BEEP.

When ringing up a sale there are times, when this feature is set to assume that all stock numbers are typed, that you may want to make the program think the next item was scanned so that you can skip typing in the price and quantity. Or the reverse, that the program is set to assume all items are scanned and you want to make the program think the next item was typed so that you can change the price or quantity. This can be accomplished by typing in the stock number and then pressing [F8] instead of [ENTER].

Here are the rules…

If the above is set to 1 or 2 then if you press [F8] after typing in the stock number the program will act as if the stock number was scanned.

If the above is set to 3 then if you press [F8] after typing in the stock number then the program will act as if the stock number was typed.

Termination character.
When the scanner scans the barcode it will send the resultant digits to the POS program. However the scanner must also tell the program when the last digit has been sent. It does this by sending a "termination character." The POS program requires that [ENTER] be used as the scanner termination character. This means that after scanning the barcode that either you must press [ENTER] on the keyboard or it is possible to program the scanner itself to send [ENTER] to the program.

The manual that comes with the scanner will tell you how to do this, usually by scanning a special barcode printed in the manual or through the software that came with the scanner.

The scanner manual will list several options for the termination character. The one that you must use is [ENTER] however the manual may identify [ENTER] as [RETURN], LF, LF/CR, CR, 13, or ASCII 13. These are all different ways of saying [ENTER] and you may use any one of them.

Serial scanner setup.
If your computer is running Windows versions '95 or after you may be able to set it up to be able to take input from a serial scanner. You will need Windows Accessibility Options installed (See below on how to install them if they are not.)

From the Windows desktop screen click on [Start] then [Settings] then [Control Panel]. Now click on [Accessibility Options], then the [General] tab. Now click on [Support SerialKey devices] and then [Settings]. Select the serial port to which you have connected the barcode scanner and set the "Baud rate" to 9600, or whatever your scanner outputs as (Usually 9600). Now click on [OK] then [Apply] then [Ok]. You may need to reboot your computer to have it take effect. This may allow any barcode scanned using a serial scanner to go directly to the application running just as if you had typed it in via the keyboard.

Installing Accessibility Options
If the "Accessibility Options" are not in your "Control panel" you may install them if you have the "Windows" CD. Put the Windows CD in the drive and then from the Windows desktop screen click on [Start] then [Settings] then [Control Panel].Click [Add/Remove programs]. Choose the "Windows Setup" tab at the top, tick "Accessibility", click [OK]. It will then copy files from the CD (or the hard disk!)

Testing the scanner
Scanner problems? Is it the scanner or the software? To find out load your word processing program and scan the same barcode 3 time into the software.

If nothing displays then the problem is the scanner.

If the wrong digits appear then the problem is the scanner.

If the 3 set barcode digits appear on one line like this

then the termination character is not set to [ENTER] and when used with the POS program you will have to press [ENTER] after scanning the barcode.

If the 3 set barcode digits appear on one line like this


then the scanner is working properly.

Screen Saver
You may enter 2 lines of text that will bounce around the screen as a screen saver for the register. You may also set the time delay in minutes before the screen saver kicks in. If you are running Windows and are using the Windows screen saver, it will over-ride the screen saver of this program.

Previous page | Table of contents | Next page