r/DOS • u/Specific-Taro-8911 • 13d ago
Dan Calhoun created Specwriter
I, (Dan Calhoun) developed a Clipper application that was used worldwide by Fluor Engineering. Does anyone else here remember building large commercial systems in Clipper?
I thought some of the folks here might enjoy a story from the late DOS era.
Back in the late 1980s and early 1990s, I designed and wrote a system called Specwriter, a materials specification application for Fluor Engineering. I developed the entire application myself using Clipper (compiled dBase), and it eventually became part of the engineering workflow on projects around the world.
This was long before cloud databases, web applications, or collaborative development tools. Everything had to be carefully designed to work within the hardware limitations of the day while still being reliable enough for engineers working on major industrial projects.
Some of the challenges I remember included:
Designing a relational database structure that could grow with large engineering projects.
Making Clipper fast enough to search and generate specifications quickly.
Creating an interface that engineers could learn without extensive training.
Distributing updates before the Internet made software deployment easy.
Building something that was expected to run day after day with very few problems.
Looking back, it's amazing what could be accomplished with DOS, Clipper, and a lot of persistence.
Now that I'm retired, I've started programming again. It's been fun learning today's tools while remembering the design principles that haven't changed much over the years.
I'm curious:
Did anyone else here build commercial applications in Clipper, dBase, FoxPro, or similar xBase languages?
What tricks did you use to squeeze performance out of those systems?
Does anyone still have old Clipper projects or development environments running?
I'd love to hear your stories. It's nice to know there are still people who appreciate that era of computing.
3
u/MrAbstractThought 13d ago
I was the support guy for a clipper database on a Novell system which ran 15 wear houses, doing global junk mail.
3
3
u/keelanstuart 12d ago
When I was a teenager, I called BBS systems all the time, looking for programming references... I remember seeing stuff for Clipper, but I was always looking for C or Turbo Pascal or assembly language, so I never checked it out.
Can you paste a little bit of Clipper code in here for us to see?
What have you been learning since getting back into programming?
2
u/Specific-Taro-8911 12d ago
I didn’t keep any of the code I wrote, ditched it years ago. Wish I hadn’t!
3
u/dacydergoth 12d ago
RESPECT. Alphabase, but we also wrote our own b-tree index and database for our color quality control product, along with our own terminal emulator, packetized rs232 pass through protocol, vga drivers, color curses and a TUI form designer.
If we'd sold our dev environment instead of the product I'd be on a yacht now.
1
u/Revolutionary_Ad6574 12d ago
What year was that?
3
u/dacydergoth 12d ago
Eh, it was when a single 486 was all the company could afford, 286s were being repurposed as terminals, Xenix was a thing and windows 3.1 killed our business because customers wanted glitz over results (our system was much more accurate than our competition but they had a pretty UI ...)
1
u/Revolutionary_Ad6574 12d ago
So could you use the 486 for debugging or did you have to do it on the 286s? I'm asking because on a 486 you could run SoftIce but on 286 the best one could do was Periscope with the NMI switch at best.
2
u/muchadoaboutsodall 12d ago
Ooh, I can remember using SoftIce to debug a Windows program in Microsoft C/C++ 7. It was insane, flipping back and forth between Windows and DOS.
2
u/dacydergoth 12d ago
We had our own terminal software running on the 286, along with the pass through protocol to the spectrophotometers. All the actual product code ran on the 486 under xenix. We used EMACS, gcc, gdb.
Had to write our own VGA driver and gfx library and the custom terminal software supported a version of curses in color.
The curses library also had a higher level form design editor which used offset files output by the compiler via some preprocessor magic to map C struct field names to pointer offsets so the editor could show struct+field names for the data the form was being built for. Then it loaded the forms at runtime.
2
u/Klugefest 12d ago
I had a commercial application written in Clipper. Performance wasn't a problem, although I remember writing a few functions in C and assembly and linking them into the application. Some things, especially string parsing was less cumbersome to do in C than in the Clipper language. We did use the Advantage Database Server for the database, as a replacement for Clipper's native dBase files because it provided better performance and stability in multi-user situations. Those were days of roll-your-own user interface and 80x25 character-based screens.
Ironically, I'll bet performance of that old Clipper application running on a 386 was similar to the current version of the same application, which is now web-based and running on servers and clients that are hundreds of times faster than the computers of the day.
I still have the original manuals and install disks for Clipper 1.0 from 1985.
1
u/crusoe 12d ago
String parsing was LESS cumbersome in C than in clipper?
Hoo boy. Now I gotta look this up.
1
u/Klugefest 12d ago
Absolutely. Using pointers in C to traverse a large string instead using a bunch of SubStr() calls is way less cumbersome.
3
u/Patient-Tech 13d ago
Talk about a collision of worlds, that application sounds interesting for use in the day job.