page and code by Doug Good - always use www.kickme.to/delphicat to get to this page
A large company ("DC") has been giving out free barcode reader hardware to hundreds of thousands of people. The hardware is supposed to be proprietary, meaning us "normal" folks aren't supposed to know how it works. But, thanks to the work of many other people, we now know not only how it works, but now we can write our own software to use it. Since I program in Delphi, and there seems to be a lack of Delphi resources for the Cat, I put this page on the net. All my friends in the Linux world who use Kylix can probably benefit from my code too, with a few alterations. So, the purpose of this page is to give my code and whatever other Cat knowledge I have to everyone else in the world. (In fact, the real point of this page is to stand up and support all those other pages getting harrassed by that big New York law firm, but I digress)
My latest programming work is a collection of routines that handle "Cat Poop" - the long, encoded string of garbage excreted by the Cat when it scans a bar code. The KittyCat Unit provides routines to encode and decode all three elements in the Cat Poop (serial number, barcode type, and barcode value) as well as routines to change the serial number in a string of Cat Poop, reverse the case of the Poop so it can be properly sent to a URL server, and a number of "helper" functions that make translating strings easier. Includes full source code.
// High level functions that get the job done
Function ChangeSerial(Catpoop,NewSerial : string) : string;
Function MakeURL(AServer,AuthCode,CatPoop: string; FakeSerial: boolean) :string;
// Lower -level functions that are the meat of this unit
Function XorStr (astr:string;xval:integer):string;
Function Base64Decode(Value : String) : String;
Function Base64Encode(Value : String) : String;
//Helper functions for the above routines...
Function sLeft(cString : String; iChars : Integer) : string;
Function sRight(cString : String; iChars : Integer) : string;
Function StripChar(var Data : string; OneChar : Char) : string;
Function ParseCount( cString: STRING; cChar: CHAR ): INTEGER;
Function Parse( cString: STRING; nIndex: INTEGER; cChar: CHAR ): STRING;
Kittycat Revision History
v1.1 - Released 9/30/00 - Fixed huge bug in ChangeSerial function, added
MakeURL function. See source
for all the details.
v1.0 - Released 9/27/00 - Initial Release
This software pretty much does it all - shows you how to grab the ALT-F10 wake up call from the cat, how to encode/decode Cat Poop, how to launch a Web Page by scanning a barcode, how to protect your privacy by sending a fake serial number to the URL servers, and how to capture a scanned barcode and send it's decoded text to the active application. This is a simple demo app, but if you want to know how to program for your Cat, it's an invaluable learning tool. All source code is, of course, included.
The Battle with "DC"
White Papers on the Cat
Declawing your Cat (great hardware info)
Mirrors for other Cat Software sites
Barbie Q. Cat (a must see!)
CueCat Hacks page
One jumper wire turns the Cat into a "normal" barcode scanner! Check this hardware hack! - Worked for me!