Site hosted by Angelfire.com: Build your free website today!

Developing Delphi Software for the 'Cat

page and code by Doug Good - always use www.kickme.to/delphicat to get to this page

Cat Poop (kat poop), n.: The encoded text string excreted by a small, feline-shaped hand-held barcode scanner.

What's the purpose of 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)

The KittyCat Unit v1.1
 Last updated 9/30/2000

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.

List of Routines in the KittyCat Unit: 

// High level functions that get the job done
Function ExtractSerial(CatPoop:String):string;
Function ExtractCodeType(CatPoop:String):string;
Function ExtractBarcode(CatPoop:String):string;
Function MakeCatPoop(Serial,CodeType,Barcode:String):string;
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 ReverseCase(str:string):string;
Function XorStr (astr:string;xval:integer):string;
Function DecodeOctet(octet:string):string;
Function EncodeTriplet(triplet:string):string;
Function DecodeString(codestring:string):string;
Function EncodeString(plaintext:string):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

LitterBox  - The KittyCat Demo Project
 (Last Updated 9/30/2000)

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.

Download the KittyCat Unit v1.1 - Unit for Encoding/Decoding Cat Poop

Download LitterBox 0.11 - Kitty Cat Unit Demo Application

Download SendKey - Used in LitterBox, sends keystrokes to another application

Download Indy - Internet Controls used in LitterBox demo app

Download Strings Unit - Used by SendKey, required to compile LitterBox

 Other useful sites with info on the Cat:

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!

 

    Current number of cats in my collection: 07   ;-)