Wednesday, September 2, 2009

Website Obiturary: TurboPower.com

Website Obituary: TurboPower.com

TurboPower started in 1985 with Mr. Kim Kokkonen writing the famous TurboProfessional toolkit 1.0 many years ago.

TurboProfessional collection was a set or routines for TurboPascal that aids in dos-based 80column x 40rows Menu options, Top-layer drop-down menus, DOS-based Windowed layout and simple single-file system, simple TSR hook, flat-file block I/O (it would resolve 64kb limits). The edit controls, or rather, text-based edit fields would control keyboard and mouse. (Your reviewer call it "TPro")

When TurboPascal 6.0 (with Objects) came out, ObjectProfessional was released, with a re-hash of TurboProfessional as objects instead. There was added, Text-file viewer, mini-help viewer (OPH), and somewhat decent XMS/EMS/Swapping/DPMI support. (Your reviewer call it "OPro")

TurboPower brought over BTree from a German company and called it the famous TurboPower BTree Filer package. BTree filer was an indexed-sequential implementation of the BTree algorithm in commercial package. BTree Filer had ISAM support with IPX/SPX support, Microsoft sharing, NETBIOS support. If you browse around the CompuServe TURBO forums long time ago, there was object-oriented persistence where you could stream / or serialize OPro objects and TurboVision objects into BTree filer. (More info below)

The idea was, long time ago, you were using DOS, CRT, and needed more functionality than required. For example, there was GoToXY, but that moved both cursor position and write to DOS text on that area. There were the IBM PC Interrupt guide, made famous by Peter Norton (anyone remembers the famous Norton Commander?). Thus, it was hard work to make all those code to use:

- Int 21h, 2Fh for DOS services,
- Int 10h for video,
- Int 16h for keyboard, then
- Int 33h for Mouse, then
- make direct memory access (DMA) for Printing and COM port access
- multi-plex DOS using Int 2Fh,
- Custom traps Int 3, 4, 6, 7, 8 (to prevent run-time errors)
- call IBM Lan Manager (now called OS/2), Novell NetWare, Bunyan Vines, MS Network support.
- write correctly to record or file I/O or DBF file support
- swap to disk using overlays, or call XMS, EMS, or DPMI.
- either ANSI.SYS or custom teletype support.

TurboPascal, in those days, you linked to the TurboPascal RTL, but there never seems to be sufficient code. Either you had to spend days browsing the library or hanging around the computer section of the book-store, or attend weekly group meetings:

- If you go to library, all those books would be either checked-out or so old (anyone interested in PDC Unix or K&R C basics?) or so steeped in theory (Knuth's Algorithms volume 1 with code in VAX Assembly). If you got lucky, you could get "interested" your University's librarian and get access to greater time-sharing (with the computer, not with the librarian) and faster computers to try your code out.

- In the computer book-store section, there were those discounts for repeat-buyers, or book-clubs. Those computer books (those days) were bundled together. There were usually with 1 good book and 1 bad book, such as, K&R C++ with AT&T Unix, Vax JCL* guide with Wang Word-Processing guide, or general IBM guides. [JCL: Job Control Language, not Jedi Code Library]

- In those weekly meetings, they were usually sponsored by RS (anyone remembers Radio Shack?) or Compaq (make the switch!) or Heath Cliff (Personal Computing Kits) or IBM (anyone remembers the IBM Joint Development discussions?).

Later years would be the famous IBM PC, with standardized Intel 80186 CPU, a small 2mb Hard disk, 512kb RAM, 5(1/2) inch diskette drives. More expensive models included upgrades included 640kb RAM, dual diskette drives (A:, B:) and bigger hard-disk capacity. The magic that made it work was the Intel 80xxx chip-set that included interrupt multi-plexer, DMA (direct memory access), CPU register-level support.

For example, if you wished to make the serial port (or parallel port) work, you could use Port In, Port Out command to send data to serial port. If you looked at the IBM PC BIOS manual, you could control the Diskette drive (remember the old copy-protection?) and make your own custom "diskette-format" which only your software could read.

In those days, TurboPascal was sold for CP/M and later for IBM PC. Since Intel controlled the CPU and Microsoft controlled the OS, Intel and Microsoft would sell to other vendors. So long as your hard-ware implementation would reset the Intel CPU and chip-set with correct voltages levels, set memory banks to FFh and set the PIC (Programmable Interrupt controller) to "reset" and supply power to the diskette drives, shugart hard-disk and so on, then hand over control to BIOS (anyone remembers the days when the BIOS would say, Checking RAM... 128, 256, 512...), then from BIOS to 1st sector of floppy (beep, beep, beep, beep, beep) and then get a DOS command-prompt, you could call your hardware IBM compatible.

To correctly program the IBM PC (or compatible), you had to have good knowledge of hardware, MS-DOS interrupt calls, and so on. It was hard work writing all those codes. Thus, Mr. Kim Kokkonen wrote if not, one of the first commercial packages for Borland TurboPascal product. Two years later, it won the Jolt Cola awards, one of the highest awards for Software Development.

Using TurboPascal 4/5/6, along with TurboProfessional, you could write nice front-end, small record-type IO, simple keyboard and mouse support, without having to worry too much about memory leaks, memory models, and various C/C++ specifics.

From TurboProfessional, then came ObjectProfessional. In fact, most of the source-code base from TPro and OPro would exceed the quality or completeness found in those BBS's or CompuServe forums. In one package, you could quit spending time browsing around the programming door (or Programming section), or save on CompuServe access time.

Around the next update, TPro and OPro would be DPMI compatible. That spawned off an interesting forth-party add-ons, such as Business Reports (now out of business), OPro spreadsheet add-on (from a company, now out of business) and small WordPerfect clone (now out of business, sued by WordPerfect Corp).

Then, came Turbo Analyst, licensed from code from Per, and then BTree filer. Later would come TurboPower Asynch for DOS (and Windows), and various diskette updates.

Change towards Windows 3.1
With advent of Windows, there were new products, such as, the older packages for 16-bit Windows:

ObjectProfessional -- called Windows Design Library (really old, for 16-bit Windows)

BTree-Filer -- made for both DOS/DPMI/Windows,

Asynchronous Professional -- made DOS/DPMI/Windows 16-bit

TurboAnalyst -- made DOS/DPMI/Windows 16-bit compatible.

Change towards Windows 95
With advent of Windows 95, there was shake-up:

Windows Design Library, ObjectProfessional --> some parts in Orpheus, some in Abbrevia (one-file-system), parts in SysTools

BTree-Filer --> called Flash Filer 1.0, Flash Filer 2.0

Turbo Analyst --> retired, parts in MemProof, parts in SysTools.

Escalon Products* --> On Guard Library, TurboPower essentials.

[* Escalon Products was sold to TurboPower, the owner now works for Microsoft]


Financial issues
TurboPower released a newsletter stating that TurboPower was having some financial issues, and TurboPower would be sold. Few months later, it was sold to Casino Data Systems. CDS took a hands-off approach and used some of their products, presumably, for their Hotel, Reservation and booking system, Casino products.

CDS invested into TurboPower, but it seems that, with 5 million poured over a decade profits were far away. TurboPower took a life of it's own, from Mr. Brian Warner taking over day-to-day activities until a president was found. Mr. De-Rossi came, and then Mr. Eric Hammon, Mr. Julian Bucknall, Mr. Lee (?), Mr. Fred Huffman, Mr. Mike (the AsynchoPro person), Mr. Kent Reisdorph (from Team B). The products were really good...

What's wrong with TurboPower?
What went wrong or was the company doomed from the start?

Your reviewer looked and pondered on various aspects, wondering why TurboPower failed. It had the right people, experts in their field, good accounting practices (you can find them in CDS's SEC (Security Exchange Commissions) filings year after year), good order filfilment, good customer support and excellent products...

Costs
The fall started with Imprise Delphi 4, when prices for Delphi were increased from US$99 to US$149, then US$1500 for the "Professional" version of Delphi. Many hobbyists were disappointed with the new pricing. You can spend a few hundreds on your hobby, but not a few thousands.

Let me explain. If you are a hobbyist, you could spend a few hundreds a month, here and there, but you can't possibly spend a thousand and then a few hundreds here and there as you liked. It would be too expensive.

With high prices, the people who sell add-ons would suffer, and TurboPower was an indirect result of that issue.

Shipping
Your reviewer loves TurboPower, but it made really no sense when shipping. For example, shipping (3 days), the wire-transfer and shipping would eat-up into nearly costs. I don't know about overseas, but it could really get really costly.

Your reviewer saw some complaints about shipping costs, but nope, they always shipped with manuals.

Forever in beta
The legendary products were mired in issues. TurboPower SysTools would have plenty of service patches, FlashFiler would have data-corruption issues, but to be fair, the next week or so, Mr. Julian would get it resolved.

One unusual casualty was Flash Filer, the database that could. The first version was good, but if you added more and more data, there was great risk of corruption. The problems were resolved, but that took over a year leading to FF2. Months after FF2 was released, TurboPower went out of business.

With AsynchProfessional, the product was mired in either driver issues, COMM board issues, or various modem issues. To be fair, there were so many modem versions and so many serial-boards, it was nearly impossible to test all of them, not to mention get it working for overseas customers - Try for example, getting the Caller ID in Brazil (depends on operator; You need to subscribe to CallerID package?) or making a phone call in UAE (you need to make ^7 or ^9 and then wait 5 seconds and call) or work with compatible boards (you need the Hayes-modem compatible ones). Your Fax modem receives needs to be baud 19200 and duplex, and so on.

SysTools/Orpheus was always in development, with some parts left to be desired. For example, the last versions had continually problems with their Grid and editors (to be fair, most of the 1.xx versions were marked depreciated) and newer editors were made.

Newer products, Abbrevia would work well, a good implementation of the PKZIP algorithm. Newer versions had TAR support and ZLib compatible libraries. To be fair, most of the bugs were fixed in later versions, although that resulted in weird bugs such as memory overflow, funny PKZIP compatible errors).

OnGuard had interesting CRC128 algorithm and hashing libraries, but the supposed copy protection had flaws, such as plain-text attacks. The Lockbox had weird RC4/RC5 encryption errors, that was never fixed, so the crypto results were different from standard results. (Use Hagin's DEC library instead).

You could call TurboPower support, but they often prefer you post to their newsgroups.

Not Essential?
Your reviewer could see using Orpheus for grid support, but it was so hard to use, then, SysTools was nice to have, but unless you really needed it, you could live without it. There was no reporting support (that itself is another blog post) or database library other than FlashFiler.

New Kids on the Block
The new kids, notably, Dream Company, DevExpress, LMD had comparable offerings. LMD had good products which competed against SysTools, Opherus.

Developer Express was probably what brought TurboPower down. DeveloperExpress had good product offerings, if you remember the olden days, dxGrid 1.0, 2.0, good offerings (their bars library, master-grid and so on). With DevExpress able to replace most of TurboPower Opherus, Essentials, SysTools there was hardly any more justification for TurboPower...

Sons of TurboPower
In the year 2003, months after awarded "Company of the Year" from Borland, TurboPower went out of business. The employees were absorbed into Aristocrat, but a month later, founded “ComponentScience” (founded by the same person who made Raize components), except Mr. Gary Ferking and Mr. Kent Reisdorph. A year later, ComponentScience went out of business and folded into Fafel technologies. They used to have Fafel flogs (some kind of blog website) that promoted Delphi consulting and later, removed all references to Borland.

Roll Call:
Mr. Kim Kokkonen persued his Masters degree, graduated, now at Intelligent Software Solutions,
Mr. Julian Bucknall went over to DevExpress, replacing CTO Dale Fuller.
Mr Fred Huffman, co-founded ComponentScience and now at Maxim Integrated Products,
Mr. Roy Salisbury and Mr. Robert DelRossi former TurboPower President now at Rocket Gaming Systems.
Mr. Kent Reisdorph and Mr. Gary Ferking, were at R&D at Aristocrat. Mr Kent left, and now at Rocket Gaming Systems.
Mr Mike Welch worked at ComponentScience, now in broadcasting.
Mr Steve Troxell, independent.

[There are others, but your reviewer did not manage to trace them in time before publication]

The king is dead, long live the King.

[Spelling mistakes corrected, re-edited for clarity and accuracy]
[Dates fixed]

9 comments:

Andy D said...

What utter garbage. You can't even spell the main people's names! It's Mike Welch and Kim Kokkonen. Turbopower were essentially asset-stripped by Aristocrat Technologies. It was they who made Turbopower withdraw from the retail components market.

Dev Express was not the main reason behind TP's demise - their products were more expensive and were not as well documented as TP's. Dream Company's products were never a direct competitor for any of TP's product line. LMD might conceivably have been an Orpheus competitor, but their products didn't have the grid or the picture and validation features that Orpheus had (essential for serious business applications).

Most of this article is wild speculation and pure guesswork. Little of what you wrote has any basis in truth.

Delphi Haters said...

wow Andy, what kind words!

Did you ever bother to check:

- Since when did Orpherus had a working "grid" you could decently use? or decent edit controls you could use without crashing or having problems? I was dying to use working decent editors that came with Opherus.

- Did you ever check how much losses TurboPower the year before they closed down? That information is public. If they were asset-stripped, that was to pay for the losses they accumulated.

- LMD, which do you refer to - their ElPack or LMD package?

- DevExpress, the idea is simple: you need a working decent grid and edit controls that did not crash or make you look like stupid. Is that not clear?

Delphi Haters said...

Andy, you don't mind:

There's a need to fix all the Opherus bugs for Delphi 2009/Delphi 2010 at this moment. You can google around for this...

About Delphi 2010, do you feel nice if you don't receive any media-kit after buying Delphi 2010?

or that Delphi 2010 is just a collection of bug-fixes which should be called Delphi 2009 update 5/6?

:)

Andy D said...

Orpheus did have a grid that worked. I used it in several applications without a hitch. Admittedly, it wasn't the easiest component in the world to get started with, but it definitely worked. I still use the Orpheus edit controls today as there is nothing else that I've found comes close to their ease of use or flexibility.

I am aware of exactly what happened at Turbopower, as I worked closely with the company, especially for the last 2 or 3 years they were in business and was privy to information the general public was not. It was an excellent company with good quality products produced by a dedicated and talented team.

Anonymous said...

I also had great difficulty with the TPower components I used. Always in the details, and always once I'd pretty much committed to them.

Edit component; you can remove the frame! - yes. But replaces it with white. It still occupies the full space.

The text editor - it took some analysis on my part and two attempts to get it to stop corrupting larger files.

String library changed its names and became clumsy when AnsiStrings were introduced.

Async FTP component. Almost impossible to figure out how to used it correctly.

That is why I drifted away.

3rd party components to this day try to fulfill everyone's needs. Grid controls grow to become mini Excels, thus compromising reliability.

Why reinvent the wheel, when you can fix someone else's wheel?

Robert DelRossi said...

There's a few inaccuracies here and I'd be happy to help clear them up if you'd like.

TurboPower was a great company with an awesome staff of people who really cared for their customers. I hold them all in very high regard. Of course, I realize I'm a bit biased :-)

-- Robert DelRossi
(past president of TurboPower)

Anonymous said...

I worked at CDS when TurboPower was purchased. CDS was using Borland Pascal (DOS) for their casino products, and wanted to move up to Windows development. All the DOS Pascal code (which was terribly buggy) was sent to TurboPower, and they were told to make their DOS product a Windows product. It was a mess. The first problem was that all the bugs in the DOS product made it into the Windows version! The next problem was the hardware technology, based on RS485 communications. The DOS product had little trouble, because it had direct access to the hardware. But Windows is a different beast, and the poll timings were too tight for the Windows code. Most of the code was discarded, and an attempt was made to switch to a VB front end, with a VC++ back end. All the programmers were Pascal programmers, it was a disaster. Most of the programing staff walked out and CDS sold itself to Aristocrat.

I was there.

Unknown said...

Hi. My name is Rich Sadowsky and I was one of the early employees at TurboPower. When I joined we were still working out of Kim's basement. TurboPower was a great place to work and we were very proud of our products. I was a customer before I went to work there. I had read the source code to the product I had bought and met Kim at a Borland picnic. Back then the company was Kim Kokkonen, Brian Foley, and myself. I contributed to many areas but a couple of pieces of technology that were purely mine were the swappable TSR library (took just 6K of main RAM), and the IPX/SPX and NetBIOS real-time networking. I also contributed MARKNET and RELNET to the free TurboPower Utilities. I look back very fondly on my days at TurboPower. You were responsible for the design, implementation, testing, documentation, support and sometimes even shipping the products. This experience of managing the full lifecycle of the products from birth to sunset gave me unique insight into how decisions I made would impact users of the software. It gave me empathy for the programmers who bought our software and their customers who bought their programs. I went on to do great things after TurboPower. Feel free to check out my newly minted webpage and blog at Rich Sadowsky's Homepage I had jumped from my beloved Turbo Pascal to C++ for portability reasons and was recruited by Symantec. In the decades that followed I've been using many different programming platforms including Java, Grails, Python, and my current obsession node.js/JavaScript. I know much of my success was a direct result of the experience I gained at TurboPower. Thank you to Kim, Brian, Anders (from Borland), Terry, Steve and all of our wonderful customers!

Unknown said...

Hmm, not sure why the comment states "unknown," I logged in through Google as requested.

I wish it had given me a way to change the email associated with my comment. Let's just say to reach me feel free to get the domain name from above, and add my first name and an at sign.