Brain storm a solution to a Dos Problem created by an obsolete program.
Posted on 2004-09-29
I am currently seeking solutions to a problem that becomes a bigger problem with each passing day.
One of my clients has an old Aging DOS Point of Sale system using PC DOS 7.0, IBM NDIS2 drivers
configured for NetBEUI that connects to an O/S2 Warp 4 File Server. The DOS clients in addition to
running the POS software runs a TSR called ICVerify V. 6.63.01. The TSR is used to grab bhe amount
of the transaction from video memory, then get credit card authorization. It does this as client/server.
Hardware wise they have anything from a P100 with 8 meg ram to 1Ghz P3's with 64.
The program does not have any option to turn off printing of the Credit Card number on the customer receipt and so it prints the entire number for all to see. My understanding is a Federal law (and probably state regulations as well) prohibits printing of this information on the receipt. The merchants with old systems are 'GrandFathered' until 2005 at which time they need be in compliance with the law.
Short of finding a 'hacked' version from someone with access to the original source code to this program,
there is one thing that may work. Normally the receipt is printed out a serial port to a 40 column serial printer at 9600 baud. It is configured to print 2 receipts. 1 goes to the customer and the other to the merchant. The ICverify can be configured to just output to a file instead of a printer device. This is a good thing. The idea is when this file (which has the same filename each time it is created) is present we modify the first part of the file by using something like SED for DOS and remove all but the last 4 digits of the CC#. We then print the other part verbatum which is the merchant copy and requires the number be intact. The file actually has 2 clean ASCII representations of both receipts The format is pretty much the same and the credit card number line never really changes its location on the receipt. Once printed, the file is either moved to an archive or deleted.
My first idea in order to keep things as simple as possible would be to find a 'hot-key' TSR program
compatable with the CC TSR. The Hot key would be labled something like Print. This activates the TSR,
which runs our batch file which envokes SED or something else, then sends the file to the printer via
COM1 or COM2 etc/ Since the size is relatively small, it would not take much time to process the file and
Other ways are to intercept the file before it goes out the comport and replace the credit card number
'on the fly' but this is more complex and would render the machine unstable if not done right.
There may be other ways of dealing with this problem other than telling my client to buy a lot of black
Magic Markers to blank out the CC #. I'm really hitting a dead end on finding a TSR to do this and I 've yet to prove the concept is workable . Or I could be open to other ideas, provided they try to follow the KISS formula.