Next Meeting: Sat, Jun 15th, 2019
Meeting Directions

Be a Member


Help with Searching

20 Most Recent Documents
Search Archives
Index by date, title, author, category.


Mr. Know-It-All

Supporting Warpstock 2006



Membership Form

Email Lists

SIGs (Internet, General Interest, Programming, Network, more..)

Online Chats


Past Presentations



Contact SCOUG

Copyright SCOUG

warp expowest
Pictures from Sept. 1999

The views expressed in articles on this site are those of their authors.

SCOUG was there!

Copyright 2019, Southern California OS/2 User Group. ALL RIGHTS RESERVED.

SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group. OS/2, Workplace Shell, and IBM are registered trademarks of International Business Machines Corporation. All other trademarks remain the property of their respective owners.

The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA
Saved By Chris Graham

Disk Drive Problems?  Reach for the Graham Utilities

by Peter Skye

ELAHEY, VICTORIA, AUSTRALIA --- It's all coming back to me now.  In the old days, the Days Of DOS, you could solve just about any disk problem, enhance just about any batch file, or peek at the low-level bits just about anywhere on your hard drive with a slick little package called the Norton Utilities.  Its blindingly-fast "Text Search" feature would scream through your entire drive and find that critical file you'd misplaced; its famous Unerase saved major corporations from ruin.  In the Days Of DOS, no computerphobe would dare to boot without a nearby copy of the Great NU.

           But in those golden days, those Golden Days Of DOS, Chris Graham was booting OS/2.

That Old-Time Boot

           "Chris," I ask him as he leans forward at my question, "what was the single utility in Norton that made you decide to write your Graham Utilities for OS/2?  What was it that you needed on OS/2 that you could only do on DOS?"

           "It was either TM or FF," replies Chris, referring to TimeMark and FileFind.  "I don't wear a watch, so I always used TM to tell me the time.  And FF was before the days of DIR /S.  I used it all the time, and everybody I knew used it all the time.  We needed it on OS/2.  I couldn't find an OS/2 equivalent, so I started coding."

The Once And Future Utilities

           "I was running a FidoNet BBS, and I wanted to be able to use the machine while the BBS was up.  That's why I switched from DOS to OS/2 --- for the multitasking.  But then I found that there weren't any utilities."

           "Which one did you start on?" I ask.

           "WC (Word Count) was the first one completed," says Chris.  "And once FF was done, the other similar ones like FS (File Size) and FA (File Attributes) fell out of the woodwork."

           "They actually started life back in 1989.  It wasn't until much, much later that the concept of doing what Norton did hit me.  I only had one competing product --- GammaTech --- and that product was heavily marketed but didn't have all the features that I wrote into mine.  Because there was an existing product to measure myself against, I always had a good target of what to aim for and what to be better than.  From that point of view, I know my utility suite is better because I designed it that way."

           "The absolute easiest ones to write were ToUnix and FromUnix, as the C runtime x library does most of the work for me!  The biggest headache was FAT-Dfrg.  That beast is the reason that version 2.0 of my utilities was six months late.  They should have been released in Jan-Feb '96, but instead they slipped to August when the code was finished."

Version 2.0

           "Anyway, for five years, from '89 to '94, I wrote and rewrote what would become the Graham Utilities.  And in mid-'94, at the OS/2 World conference in San Jose, California, they were released to the world."

           I'm dutifully taking notes on my low-tech yellow pad and drawing pictures to mark out the time line.  "That was version 1.0," I say to Chris.  "FAT-Defrg came along in 2.0.  Tell me about the problems you had with it."

           "The problem with FAT-Dfrg," Chris continues, "which I lived, breathed and slept for over 6 months, was one line of code, or the lack of one line to be precise.  Originally I wrote down two lines of code that handled the FAT allocation routines, which was not enough, as it failed under certain situations.  I then expanded the code to around 500 lines, and found that it still didn't work.  Now you have to remember that I was working on this for 14-plus hours a day, seven days a week for six months.  I had simply gone down the wrong path, convinced that I was correct, while all I was really doing was making a bad position worse.  It was not until I was talking to a friend of mine on the phone and talking through it with him and manually doing the sector allocation on a white board that I saw the fault, which was the lack of one line of code.  So my original two lines of code for FAT allocation while doing the reallocation-resequencing should have been three lines of code!  The relief after fixing that was somewhat immense."

           "What was the missing line of code?" I ask.  "Was it part of the defragmentation algorithm?"

           Chris is amused with it now, although he wasn't when he still had to solve the problem.  "When you defragment a FAT partition, you move the data clusters around.  I precalculated everything I wanted to do, including any moves to temporary storage, and then I started moving, cluster to cluster.  But I had forgotten to mark the target clusters as 'now in use'.  It was that simple."

           "When I finally solved the defragmentation issue, I was in the middle of negotiating with DevTech (Development Technologies in North Carolina) to handle distribution, and I pulled the plug in late '96 and the utilities were physically released about Feb '97."

Spread The Word

           "And what was the reception?" I ask.  Chris ponders his answer.

           "The problem then, as it is now, is how to tell people you exist.  $5,000 (U.S.) per page is a lot of money just to reach the 60,000 people that OS/2 Magazine claimed for its circulation stats.  Then to be told that you'll probably have to do it ten times to get noticed is just downright depressing.  So, being underfunded as I've always been, I had to resort to my only available option.  Word of mouth."

           "And word of mouth has worked.  From what I've heard from others, I've generally got a good reputation out there in the marketplace.  They say I've got a good set of tools that work -- unlike my competition, and that is what people tell me, not something I'm just telling you -- and most 'net people have heard of me.  In these days of shareware, it's even harder to sell real CD's in real printed boxes, with real 400-page printed manuals and real support.  But people keep buying."

           Chris pauses for a little encouragement.  "Yes," I say, "I bought your Graham Utilities and like them very much.  Has the good word of mouth helped in more than just single sales?"

Sams Tries Graham

           "The Sams OS/2 Warp Unleashed book deal was certainly the most widely exposed deal," replies Chris, "and the OS/2 Warp Companion, with over 20,000 copies sold, didn't hurt the bank account a lot either."

           "Tell me about that," I say.

           "I got this call at 2:30 a.m. from Wayne Wankenblanker from Sams Publishing.  They had gone to GammaTech first and they had two weeks to get everything done.  GammaTech couldn't move fast enough, so they came to me.  I was creating version 1.04 at the time, and I went back to version 1.03 and created the package for Sams.  Only got six requests for promised updates out of 20,000 copies."

           "I also do an OEM version where a company can pick and choose what they want, along with any specific custom changes that they need made for a flat rate of $20 (U.S.) each.  Octel (now Lucent Technologies) is an example; my HPFS utilities go out with each OS/2 voice mail box that they sell."

Bugs In Chicago

           Chris will be one of the presenters at Warpstock, where he'll lecture on debugging.

           "I try to write bullet-proof code to begin with," he says, "which means planning for every exception.  And when I've finally got some code that's ready for beta, I'm usually aware of some bugs that I haven't stomped into submission yet, so I use them to test my beta testers.  If they find the bugs, I know I've had a good beta test.  If they don't find them, well, there might be other bugs that they didn't find too."

           He laughs.  "If you like that trick, come to my lecture.  I've got plenty more!"


           Chris was a guest on a recent V.O.I.C.E "SpeakUp" session, and he had a special presentation for the unsuspecting participants.  I'll let Chris tell the story.

           "My most fun beta testing scenario was recently when I was on a SpeakUp with V.O.I.C.E. last July (20th).  At the end I had a special surprise for them, in that I was previewing one of my upcoming PM apps, TaskMgr, which is an OS/2 version of the NT task manager but one that I plan to add a whole lot more to.  It basically turned into an on-line beta test session.  I was chatting in IRC in one session, cutting code in another and uploading a new build in a third (I love OS/2!).  I think that the users liked it as well.  All in all the session was scheduled for one hour, and it lasted well over two.  I should do that more often, as it was very, very refreshing to get involved with some OS/2 zealots.  Which is, after all, what WarpStock is all about, isn't it?"

Compiling Away

           "What compiler," I inquire, "did you originally use, and what do you use now?"

           "Well," says Chris, "Version 2 was 16-bit and was written with Microsoft C version 6.  For 32-bit I use macros to redefine the 32-bit calls as 16-bit and then call the 32-bit functions.  I also use the Metaware compiler, now broken under Warp 3 FixPack 29.  I've got VisualAge C/C++ but I've had some compile problems with it, so I do my final compile under CSet."

Down Under

           Chris' family has been in Australia for several generations.  His father, Robert James, is a mechanical engineer, metallurgist, process engineer and, currently, a Seniour Site Engineer for Bonlac Foods Ltd.  He's stationed at their Stanhope site in central country Victoria, which produces powdered milk and over 240,000 pounds of cheese per day.  His mom, Judith Brenda ("call her Brenda," says Chris), is a Theatre (operating room) Nurse.

           And on April 19, 1997, Chris married Kathryn Elizabeth Eilenberg.  "Kate" is a Chemical Engineer and currently employed at Nestle, "in Broadford where they make all of the jelly confectionery such as snakes and the like."

           They've got a house in Delahey.  No kids yet, but there's Dax, an Australian "Spotted Mist" cat ("see DSN for the reference," says Chris), and Jake the Motorcycle, an '85 Yamaha FZ 750.  He reads SciFi in his "rare spare time" and occasionally goes hunting.  "What do you hunt?" I ask.  "Anything that moves," says Chris.

Press Start To Begin

           Chris' first computer was a TRS 80, on which he did some Basic and assembler programming.  His first computer job was writing and selling a set of graphics libraries for the HP 150 series of PCs ("they had those old touch screens, and used HPIB for a bus" he adds).  "You've always been an entrepreneur," I comment to him later.  "Well, yes," says Chris, "it's fun to do what needs to be done."

           "But what was your first real computer job?" I continue.  "You know, where you have to go to work every day and you get a pay check in return?"  "Well I did that too," says Chris.  "Worked for Beam Software doing games development.  Worked on the Commodore 64 and the IBM PC, and did a licensed port of Jr. Pac Man and Super Pac Man.  That was back in 1985 or so."

HP Lasers and 4th Orders

           "From there I was back on my own, doing some consulting work for HP on a laser metrology package.  The product was a laser inferometer that was used for precise measurements --- 1 millionth of a meter --- in distance, yaw and pitch.  They're generally used to calibrate things such as numerical control ('NC') machines and surface plates, and the like.  This was in 1988."

           "At the same time, I also developed a DOS based industrial data logger and the associated hardware to go with it.  This software is still running at a number of sites where it just sits there and works, recording data and reporting on it. It is still the only logging/modeling package that uses 4th order polynomial curve fitting for its calibration.  Most people use straight line (linear) curve fitting, and I assure you that over 99.9% of instruments are not linear!  There's a lot more error when someone tries to fit nonlinear data points to a straight line."

           "As you can see, I've always had an interest in real world applications and control.  One of my dream projects is to develop an OS/2 based NC controller.  Now that would be cool."

Outclassing The Professor

           "Where'd you learn to do all this?" I ask.  "Pretty much on my own," replies Chris.

           "I dropped out of a course in Communications and Electronic Engineering at the Royal Melbourne Institute of Technology, which is where I got my only formal software training.  That was in Pascal and Fortran."

           "After the data logger, I went to work as a programmer at the Alfred Hospital, working on Prime minicomputers from 1990 to 1992.  I did a bit of Cobol there, but mostly worked with a language oddity called QUEO, a 3.5-GL which looks like a cross between Fortran and Cobol."

           "And then I worked for a company that interfaced fax and data to mobile phones.  This was in 1993, before it was commonplace.  From there I went to a company where I did production line programming and testing of the body electronic modules that handle all user input for all Ford Falcons.  We worked on them as they were coming down the production line.  The Ford Falcon was the largest Australian-manufactured sedan."

           "And that was it."

           "What do you mean, 'that was it'," I say.  "That was what?"

That Was That

           "Because," says Chris, "from July 1994 to March 1997 I worked for myself exclusively, doing more on the Graham Utilities and other WarpSpeed stuff.  I spent literally every hour of every day writing code and researching how to do more with the system, how to handle certain things, how to repair things when they broke.  It takes time to write good code, code that's complete and does what you need done when you need to do it.  I'm proud of what I've created.  Nothing else comes close.  My customers keep telling me they've tried other things but Graham Utilities is the best.  I guess I did it right."

           "I've heard the same," I say to Chris.  "Congratulations on a job well done.  What's next?"

           "I'm doing OS/2 programming for 21C3, The 21st Century Communications Company, right now," he says.  "I was hired specifically to fix the mistakes in their telephony systems.  I'm good at fighting fires.  I've done a Myers Briggs personality type test, and I'm an ISTP for those who know what that means.  Kate, my wife, is an ISTJ."

           "And I'm working on a new release of Graham Utilities.  I aim to eventually have over 100 apps, all in the same box."

Where's The Mouse?

           I take notice of the multitude of computers sitting around Chris' house.  "The whole house is wired with a network," Chris notes.  In his study alone, he points out five machines, all on the network.  At his desk is a Dual Pentium II 333 MHz with a 100 MHz bus, 256 MB of RAM, an IBM 9 GB UltraWide SCSI hard drive, a Matrox Millennium II video card and a Rockwell-based modem.  He's worn out his current printer; he's got a Lexmark Optra S 1855 on order.  Later I check out the specs on the Lexmark.  Nice printer.

           "A friend of mine is an ISP with a 256 Kb fiberoptic link, and I've got a Warp Server Advanced machine there that handles the WarpSpeed site.  I control it remotely, from here."

           WarpSpeed Computers, Chris' company, has all the INF books online.  "All the OS/2 toolkit stuff, the DDK stuff, the VisualAge C/C++ programming books, the SOM reference, OS/2 debugging books including undocumented calls, internal structures, other miscellaneous books," recites Chris.  "From my home page, just click on 'Programming Info'."

Support Calls

           "Your utilities support the PowerPC," I say.  "Do you have a PowerPC?"

           "I've got two," Chris says.  "I'm one of about 500 who actually have the proper GA disks from IBM for the Power PC.  I've got a model 440 (with a 601 chip) which was a developer's box, plus an 850 (with a 603 or 604 chip, I can't remember) production line model."

           "I don't suppose you get too many PowerPC support requests these days," I say to Chris with the straightest face I can muster.  "But what kinds of support calls do you get?  Certainly, the people who are using your Utilities are trying to do more than format some report."

           "First of all, being in Australia gives me a bit of an advantage," says Chris.  "If a problem or requirement arises during the U.S. day, I have my day to work on it while the U.S. is asleep, and generally can have a fix delivered the next morning to the waiting customer.  Bug fixes, by the way, are free, and I consider the Y2K problem a bug fix."

           "I remember I was in the U.S. one time, when I got a call from my wife Kate saying that she had just gotten some email from someone in Germany who had mulched everything.  I relayed instructions through her on how to recover, and she sent them back to the customer."

           "I also had a customer in New Zealand, one of my resellers as I recall, who had mulched his partitions.  I wrote a little tool called PartFind that reads the hard disk looking for valid partition tables and then displays them.  That took about 3 hours.  He was able to recover his data and was a rather happy camper after that."

What's On Your Boot Disk?

           "Let's see," I say, looking at my list of questions.  "What do you like about Graham Utilities?  And what don't you like?"

           "I'm just like everybody else," answers Chris.  "I like the fact that they work.  Although they're all text based currently, I'd rather give people the functionality they need rather than the gloss they might like to see.  All of my stuff should run off of a boot disk, which is exactly what you need when your system has just hosed itself."

           "And I don't like the manual.  I always wanted a good comprehensive manual, but it's just too big and, unfortunately, it's going to get bigger.  Version 1.00 was 124 pages, and Version 2.00 is 424 pages.  The printing costs kill me, but 60% of my sales are with a manual.  The CD-ROM has the manual on it in HTML, Adobe PDF, PostScript and INF formats, and I also provide a version with the CD-ROM and floppy but no manual which costs less and also saves considerably on freight.  I wrote the manual myself using Word For Windows 2.0c.  Each manual is printed on a Xerox Docutech 135 at 600×600, and costs me about $20.  I have the covers printed separately."


           "Who designed the box?" I ask.  "Me!" says Chris.  "Why pink?" I ask.  "It stands out on the shelf," says Chris.

           "You know," I say to Chris, "we never ever studied the color pink back in marketing class."

           Chris laughs.  "If you can just get the customer to pick up the box, you're 90% of the way to a sale.  When I was designing the box, I looked at the shelves of software in offices and stores.  Pink seemed to stand out more than anything else.  So it's pink."

Pink Lifesavers

           "So what is the little thing that you like the most that you've buried in your utilities?" I ask.

           "It's in the HPFS-UD (HPFS Undelete) program," says Chris.  "There's a -d switch that is designed to allow you to get good files, i.e. those that have not been deleted, off of damaged partitions."  I start flipping through the manual to find the switch.  The HPFS-UD description, along with a number of screen shots, is ten pages long and I find "-d Damaged partition mode" in the middle.

           "Suppose you have deleted a partition, realized your mistake and then put the partition back, but not formatted it.  Well, I can actually handle a quick formatted partition, but not a long format, as that overwrites everything.  When you put the partition back, OS/2's FDISK destroys the Super and Spare blocks which are the main anchor points of an HPFS partition."

           "The -d switch relaxes the checks for a valid HPFS disk and changes the match code to look for valid files rather than deleted ones.  I also do not look at ACL's (Access Control Lists, used with HPFS386) or EA's (Extended Attributes) for that matter.  So, one use of HPFS-UD -D is to copy files that have ACL's on them.  Useful if you need it."  There are some ramifications to this capability which Chris carefully explained and, rather than cover them here where everyone can read them, I'll just leave it to those who use HPFS386 and ACL's to figure them out.

OS/2 Rules

           "'Cause OS/2 rules" were Chris' exact words when I asked him, "why are you selling OS/2 products instead of products for other platforms?"

           "Windows 98 is a glorified version of Windows 95, which is still inherently broken.  What it does prove is that marketing beats technical excellence.  And the only fans of NT are those that haven't used it."

           "Back in the early 90's you had 8-bit DOS and Windows 3.x, and then you had OS/2.  Which would you personally prefer to work on?"

           "I also know OS/2.  I don't know the others.  That will change a bit, of course, as I continue to learn new operating systems.  I've a choice of UNIX or NT, but I'll probably end up doing both.  My next project will probably be OS/2, NT and AIX (an IBM version of Unix) based.  I'll develop under OS/2, as that is what I'm most comfortable with, and then parallel port to and develop the others."

           "I just wish that IBM would wake up and realize why we are so zealotous about OS/2.  It works.  It's stable.  It gives us the flexibility to do things the way we want to.  Not the MS way.  It will always be out there and I will always support it and develop for it, even if only for myself, because I love it so much."

           "The more I work on other systems, the more I appreciate the design and the philosophy of OS/2."


Chris Graham, WarpSpeed Computers,

WarpSpeed Computers,

Myers Briggs Type Indicator, one site is and see page

Lexmark Optra S 1855 printer,

V.O.I.C.E. transcript of July 20, 1998 "SpeakUp With Chris Graham",

Section List

That Old-Time Boot
The Once And Future Utilities
Version 2.0
Spread The Word
Sams Tries Graham
Bugs In Chicago
Compiling Away
Down Under
Press Start To Begin
HP Lasers and 4th Orders
Outclassing The Professor
That Was That
Where's The Mouse?
Support Calls
What's On Your Boot Disk?
Pink Lifesavers
OS/2 Rules

The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA

Copyright 1998 the Southern California OS/2 User Group. ALL RIGHTS RESERVED.

SCOUG is a trademark of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International Business Machines Corporation.
All other trademarks remain the property of their respective owners.