[luau] NEWS: Sherwin-Williams to use Linux Cash Registers

R. Scott Belford sctinc at flex.com
Thu May 23 20:03:01 PDT 2002


On Thursday, May 23, 2002, at 06:19 PM, Warren Togami wrote:

> On Thu, 2002-05-23 at 17:20, MonMotha wrote:
>> Yes, but SCO != Linux :)
>>
>
> Because SCO was/is a x86 Unix, most SCO binaries run with little or no
> modification on Linux when you have the right libraries and Unix
> compatibility kernel modules installed.  Scott can post more about this.

Yeh, from what I have learned about this program called Counterpoint 
that runs on Linux is that it does so through a "hack" of sorts.  If you 
are using Redhat's 6.2, then you must insmod iBCS in your rc.local file 
to be sure that the program runs.  In Red Hat's 7.2 distro, you must

insmod abi -machdep
insmod abi -svr4
insmod abi -cxenix
insmod abi -sco
insmod abi -ibcs
insmod abi uw7
insmod binfmt_coff
insmod binfmt_xout

I really don't know what it is doing, but it allows one to execute the 
POS application once they ssh in from a remote client.  I think some 
dealers use Slackware, and I suppose it would run on Caldera's flavor of 
SCO.  I never got it to work with debian or mandrake.


Our registers access this application through a private network.  A 
"register" is simply a pc in this case.  They connect to the remote POS 
application, Counterpoint, with a windows based telnet client.  We use 
Vandyke's, www.vandyke.com , CRT program.  Each register has a keyboard 
and scanner for input.    In to the keyboard port plug the keyboard and 
scanner.  They share this port with a wedge or y-adaptor.  Keyboards 
have a credit card reader which is hardware programmed.  The scanner is 
also hardware programmed.  The telnet program doesn't care where the 
data comes from it just takes it from the port.  The POS application 
doesn't care what OS is used to access it and trade data.

Also attached to the pc are a monitor and parallel receipt printer.  The 
pole display, that thing on a pole that displays the price, works in 
pass-through mode on the parallel port.  It can also be plugged in to a 
serial port.

So, there you are at the counter and you want to buy some gum.  The 
cashier positions the cursor in the customer screen, asks your zip code, 
and then uses the keyboard to enter a stream of data matching your 5 
numbers.  The cursor is now positioned in the item entry screen.  The 
gum is passed over the scanner where its barcode is read.  This stream 
of numbers travels through the network, is compared to an inventory 
file, and a stream of data returns displaying big read for .25 on the 
cashiers screen.  At the same time, the price of gum has appeared on the 
pole display.  She scrolls down to the payment entry area, selects 
credit card, and swipes your card.  That stream of data is read from 
your magnetic strip and is passed through the network to the POS 
application.  Counterpoint engages one of the server's many modems and 
dials our processor for approval.  The approval is displayed on the 
cashiers screen a few seconds later, and the magic begins.

On the server end, peripheral devices can be defined.  That pole display 
showing the gum, let's say it was a serial port pole.  On the server 
end, a remote printer is defined where the pole is located.  In our 
case, because our register pc's run windows, that pole display is known 
to windows as a generic text serial printer.  It is shared.  We setup 
this remote windows printer on the server, usually name the queue with 
that register's number, and when the application gets your gum data 
stream, it knows to print the price data to the user defined printer.  
In this case it is a remotely shared windows printer.  It can easily be 
any printer.

This, so far, may not be too hard to replicate on a thin-client linux 
register.  Something else happens, though.  CRT, the windows telnet 
program,  is set up to pass through printing to lpt1.  When the cashier 
got your approval for the gum, she finished the transaction by printing 
a receipt.  When she printed that receipt, the printer was not defined 
the same way as the pole.  The printer in this case is a device defined 
in Counterpoint called local.  Local is a file in the top level of the 
Counterpoint, with 777 permissions but root ownership and root group.  
In the file are the following magical lines

echo -ne "\\033\133\065\151"
cat $*
echo -ne "\\033\133\064\151"

So, this setup tells the telnet application to print to the local 
printer port, it appears.  That's how your receipt comes out.  Receipt 
printers, as opposed to some poles, are not defined print queues.  Some 
poles are also not defined queues.  I mentioned earlier that some poles 
are pass through.  They plug in to the parallel port with the receipt 
printer.  They too are defined as "local"  In Counterpoint certain codes 
are defined for this type of pole display that insert themselves in the 
lpt stream and send the right data to the pole and the rest to the 
printer.  It is this pass through and local file configuration that I am 
not certain about, yet, with a pure linux register.  I know it is 
doable, but I have not tried, period.

If you made it this far, let me share a vision.  Next time you are 
shopping, realize how many small business are out there struggling to 
get by.  Many lack any computer integration save for a cash register.  
Many use windows pos applications.  They, these small businesses, are 
generally said to comprise 90% of all businesses.  These people need a 
linux POS application, and they need YOU to help them do it.  I am going 
to do all I can to make Pricebusters completely open sourced as I 
possibly can, starting with the registers.  I will have obstacles, and 
there will be problems.  When I am done they will serve as a gleaming 
example of the benefits of open source.  We are a locally owned company 
facing formidable mainland competition, so any competitive edge we can 
get, we go for.  I think that linux is it for us.  If you can help in 
any way, this project is for you.  It is for you because when it is done 
you will always have a linux reference.  When you are selling that small 
hardware company on your service and the reliability of this linux POS 
application you have found and are representing, you will have them call 
me to attest for the quality and reliability of your endeavor.

scott




More information about the LUAU mailing list