9 ms·
The Power C Compiler
- dekhn 4y agoI may very well have used this in college some 30 years ago on a 286 DOS machine. IIRC I managed to blow the stack with a recursive function 6 calls deep. Shortly after, I got a 486 and installed Linux (gcc worked much better)
- pseale 4y agoThis is like opening a time capsule and examining all the little details. Almost more interesting than the barebones, locked-in-time product page for a paid C compiler, is the locked-in-time cgi-bin-powered shopping cart page at http://www.safepay.net/cgi-bin/shop/cart.cgi?db=products.dat&merchant=mixsoftware http://www.safepay.net/cgi-bin/shop/cart.cgi?db=products.dat... (note it's an http link). There's a whole host of old-school relics here--it is truly a blast from the past: paying separately for a debugger, paying for specific libraries, videos available on DVD. It's really hard to express how deeply internet access has changed the landscape of ... well, everything, but in this particular case, the programming ecosystem. gcc probably existed back when I bought this compiler, and probably so did Borland's excellent pre-internet-era IDE, but I didn't know that. And so I bought this one.
- reidrac 4y agoDiscovering DJGPP (DJ's GNU Programming Platform) on a CD from a computer magazine literally changed my life. I can't remember the year, but I had a Pentium 100MHz at home (with CD, which back then was optional). You are absolutely right. There were tools, but knowing about them was a different story!
- NotCamelCase 4y agoHaving to pay for a compiler sounds a little funny through the lens of 2022; I wonder if the majority of people buying these software/packages at the time found the idea strange, too.
- LeFantome 4y agoIt was not strange. Working with niche compilers was normal and high prices were expected. Even as a student I shelled out what would have been pretty significant money at the time for Borland C++.
- pjmlp 4y agoBack in 1992 I bought Turbo Pascal for Windows 1.5, followed by Turbo C++ for Windows 3.1, for around what would be 100 euros in today's money, by making use of their student prices, also available to highschool students. I hat to get the money from different kinds of gigs while at high school. Still, it is goes with your point, as the minimum wage would be around 300 euros when converted to today's money, if I get the proportions right. However that is because I wanted to have the real deal, boxes, manuals and so forth, on a street bazaar those floppies would have been more accessible, as it was still the days when piracy reigned, and there wasn't any government agency checking on software licences compliance.
- jng 4y agoI was around in that era and having to pay for assemblers, compilers, etc... didn't sound strange at all. What was also a reality was the difficulty of actually getting them if you were far away from the US (Spain in my case). The world was way bigger back then in so many ways.
- cmrdporcupine 4y agoIt was just the way things were back then. Compilers were expensive too. In the late 80s I saved up my allowance money for months to buy a Modula-2 compiler for my Atari ST. I still remember reading the manual on my way home from the city, floppies in hand. In the 80s there was a vibrant shareware & public domain scene, but 'open source' wasn't nearly what it is today, and shareware & PD things were mostly utilities, etc. That really took off in the early 90s with the advent of Linux, the Internet, FTP sites. Some of the GNU stuff existed in the late 80s but was mainly only of use to academics until Linux came on the scene. The upside of the way things were is that lots of people seemed to make somewhat reasonable livings as individual businesses selling software they'd made. People who would be sinking their time into open source projects now were often sinking their time into software that they sold by mail order or through user groups, etc.
- MontyCarloHall 4y agoThis raises a host of other questions. Does Mix Software still exist? Their product catalog does not appear to be updated in the last ~20 years (owing to a Y2K compliance statement prominent on the front page), so unless they have a side business not listed on their website, it seems unlikely they’re still in business. Surely nobody’s still buying their compilers or training materials on VHS. If they’re gone, who’s still paying the bill for hosting, and why? Just for fun to preserve a time capsule? Did they prepay for hosting for 30 years, and the site will disappear one day?
- Wuzado 4y agoChecking Texas's CPA system, it seems like the company is (formally) active. The domain is registered at GoDaddy and it points to an IP in DigitalOcean's space. If I had to assume, they probably still have some limited sales, support and consulting (ex. schools with teachers used to old software? companies with unusual development environments?). While looking for Mix Software, Inc., though, I found their official(?) YouTube channel with the introductions for their C [0] and C++ [1] courses uploaded 8 years ago. They definitely have that old 90's VHS feeling to them, complete with music, early 3D animations and everything. It would seem that the MIX C compiler for CP/M 80 got preserved at some point, too! [2] I'd need to look into it, but this looks promising. [0] https://youtu.be/ikTh2JQbkls https://youtu.be/ikTh2JQbkls [1] https://youtu.be/wAm3CKoJW3o https://youtu.be/wAm3CKoJW3o [2] http://www.cpm8680.com/mix/index.htm http://www.cpm8680.com/mix/index.htm
- LVB 4y agoI remember learning C from this when I was a teen. The advice at the time was buy the package, throw away the compiler and use Turbo C, and then learn from the Power C book which was the best resource available.
- DeathArrow 4y agoI think I used Microsoft, Borland and Wacom compilers under DOS/Windows 3.x.
- wyldfire 4y ago> binary coded decimal floating point routines and financial functions for calculating the time value of money, depreciation, etc Wow what was the utility of BCD for these applications? My only experience with BCD is with RTCs. I always assumed that the RTCs had been designed for driving a simple display like 7-segment lcd. But doing floating point in BCD? I guess the 8087 wasn't common yet but maybe soft float using twos complement wasn't common either?
- racingmars 4y agoFinancial calculations need to be done with fixed-point, not floating-point, arithmetic. Floating-point can't store the exact value of most fractional numbers, and especially over many transactions for many customers the floating-point errors will accumulate. You need basic addition and subtraction to always be exact (e.g. $15.27 + $91.31 needs to come out as $106.58, not $106.5799999999999999999998), and for operations that may have remainders beyond your desired number of digit precision, you need deterministic rounding or other rules to handle it. If you're ever writing any code that handles money, DO NOT use just naively use float and double types in your code!
- grishka 4y agoWhy would you ever want monetary amounts as fractions or any kind? Why would you want to separate dollars from cents? Just represent them in cents or other smallest units ($15.27 would be 1527), and only make the distinction between dollars and cents for human-readable output. Problem solved. I don't understand what BCD would solve here vs plain binary integers.
- soonix 4y agoas soon as interest or taxes are involved, you'll end up with fractions of cents. Or if you want to split an uneven amount between people.
- lelanthran 4y agoWhen currencies are represented as integers you have trouble doing transactions in multiple currencies. Floating point is out of the question, so division, multiplication, etc was more accurate in BCD than in integers when different currencies were involved.
- crazyideaman 4y agoI just ran across my 3.5" disks for this along with some of the support tools! Finding this book in the mall bookstore and seeing the ad in the back was a revelation for me. Best $20 I ever spent. I wanted to learn how to make .exe files but at the time had no resources or contacts on how to even start. This book and compiler was what launched my entire career. It allowed you to do inline assembly as well which was a lot of fun on an old DOS machine. I'm pretty sure my brother and I hit every possible way to lock up the computer or have it spontaneously reboot since we didn't really understand memory management. Lots of fun trying to make video games and putting the vga card into Mode13 or ModeX as well. Good times.
- avgcorrection 4y agoThat looks like the Go logo. Did the Go creators reuse one of the C logos? (Yes yes, Unix lineage)
- pjmlp 4y agoNope, first they started with Gopher that was based on Glenda. https://9p.io/plan9/glenda.html https://9p.io/plan9/glenda.html Then because it wasn't deemed professional enough, a marketing campaign was created for the current logo. https://go.dev/blog/go-brand https://go.dev/blog/go-brand
- mseepgood 4y agoThe Gopher is the mascot, not the logo, always has been. The original Go logo was this: https://go.dev/blog/gopher/logo.png https://go.dev/blog/gopher/logo.png
- pjmlp 4y ago> The circular shape of the letters hints at the eyes of the Go gopher, creating a familiar shape and allowing the mark and the mascot to pair well together.
- whartung 4y agoI bought and used their Database Toolkit back in the day. Far more than adequate for the job at hand. I've looked, and it's actually hard to find just a simple B+Tree library out on the internets today.
- cowmix 4y agoThe little ISP I started back in '93 used the Mix DB for our accounting system. We wrote a Perl lib for it (that was turned it into a client/server type architecture.) It was GREAT.
- pjmlp 4y agoNever heard of it. Back in the late 80's Portugal it was either Borland or Microsoft for MS-DOS, eventually we also became aware of Watcom, Metaware and Symantec.
- rwmj 4y agoThe first C compiler I used! I found a bug where if you allocated arrays larger than 64K (using far pointers of course) accesses would wrap around at 64K. I guess they didn't implement far pointers correctly. Anyway I sent them a bug report with a reproducer as a typed letter -- from the UK to the US -- including an international reply coupon[1], and they were kind enough to send me an update to the newer version on a 5.25" floppy. It fixed the problem. [1] https://en.wikipedia.org/wiki/International_reply_coupon https://en.wikipedia.org/wiki/International_reply_coupon
- fweimer 4y agoMaybe the compiler didn't implement the HUGE memory model, only the LARGE memory model? https://devblogs.microsoft.com/oldnewthing/20200728-00/?p=104012 https://devblogs.microsoft.com/oldnewthing/20200728-00/?p=10... has an overview that appears to match what I remember from those times.
- reitzensteinm 4y agoGlad they fixed your issue, but I wonder if they also had a stack of "closed: wontfix" postcards.
- mid-kid 4y agoThat sounds to me like the far pointer was used to set the segment number, and the pointer offset isn't added back to the segment number as that'd be slow. Sounds like a sensible implementation to me though of course it's unexpected
- vim-guru 4y agoI love these types of stories. I can definitely relate as I’ve traded games etc on floppies, but by the time I started developing software professionally, there was internet, ftp etc. Someone ought to create a film about the Apollo launch or some other pre-internet achievement and focus on these bits of the problem
- judojava 4y agoThe goodness was actually the book. The writing was simple and clear, the examples were self-contained and practical. It was a perfect textbook. Many years ago I gave my tattered copy to a second-cousin when he was about 15 and it totally changed his life; he became a coder and never looked back.
- rramadass 4y ago>The goodness was actually the book. The writing was simple and clear, the examples were self-contained and practical. It was a perfect textbook. Very True. All documentation that came with the then OSes, Toolchains etc. were top-notch. Far better then many of the textbooks being published today. I still have a volume of early C++ papers (some authored by Stroustrup himself) which came with the SCO Unix C++ toolchain. That was the first place i learnt about "C++ Internals" i.e. vtables etc.
- UltraViolence 4y agoI cringe when I look at this. Everything was sooooo primitive back then! We've become spoiled with programming languages like Rust, C# and Python, almost all of which are free to use. Except for the fact that I was 30 odd years younger and had a beautiful girlfriend, I don't long back for those times.
- bluedino 4y agoI'd love to see the VHS tapes with lessons that teach you C
- jhgb 4y agoIsn't there a decent chance that they're somewhere on YouTube?
- zxcvbn4038 4y agoThis was the compiler I learned to code on - $20 was great for a student budget. If you click through the pages you can also find their database toolchest which is a great introduction to btrees and managing storage.
- CRConrad 4y ago> The manuals (if any) that accompany our competitor's products are terse at best. So they didn't compete with Borland?
- Perenti 4y agoWhat a blast from the past! I loved Power C. The paper manual was quite amazing - imagine all the man pages, but informative with examples and superbly written. I kept using that manual for years until it quite literally fell apart, purely because it was so good.
- TheDesolate0 4y ago
- jim_lawless 4y agoI used to teach C Programming using the Power C compiler at a local community college. It was a nice enough compiler that the students then owned so that they could continue to experiment and learn. I found a couple of things to not ring true in what I'd read about the compiler, though. There were issues around a lack of error messages when students would send incorrect parameters to a function. If I remember correctly, I think that one could transpose the arguments in a call to fprintf() so that the FILE * reference was not the first parameter. A few of my students put a format string at the front, a few parameters, and then the FILE *. I believe that the version of Power C that we were using did not flag this as invalid. I question the ANSI compliance claim because of this and a couple other odd issues. The other thing that didn't really ring true was the often-quoted line about loving the book and throwing away the compiler. Really, the book wasn't that great, in my opinion. I do believe that one received more than their $20 worth of value from the offering, though. It was a nice enough compiler with a decent book.