It is a fully featured scientific calculator for macOS with support for hexadecimal, octal and binary calculations, as well as an optional RPN mode, parentheses, programmable functions, and an extensive set of unit conversions.
The height of the display area is slightly larger with the two-line display, but not large enough to use the same size font as with the single-line display. The smaller font size means the numbers take up less horizontal space; the landscape display takes advantage of this by including labels for the x and y registers and an indication of the total depth of the RPN stack.
This is an updated version of a piece I wrote for the 20th anniversary, with an extra ten years of history! Many people using PCalc on their shiny devices today don't realise that the app has been around for a lot longer than they think. In some cases, a lot longer than they've been thinking.
I was a student at Glasgow University's Computing Science department, taking a class in Human Computer Interaction on how to build good user interfaces. One of the class projects was to design a simulated control panel for a central heating system - setting temperatures, letting you switch heat and water on and off separately, and so on. It was to be implemented as a Hypercard stack. Sadly, it doesn't survive to contradict me, but my design was likely impeccable.
I figured it had to look authentic, and handcrafted a set of custom 1-bit black and white fake LCD digits and little buttons that you could push in. Skeuomorphism has been around a lot longer than Corinthian leather.
At around the same time, we'd started coding using THINK Pascal, and I had begun to explore the Macintosh programming APIs in my own time. I had come to the conclusion that I was not going to be the next Jean Michel Jarre, but I really liked the way the Mac user interface worked in comparison to my old Atari. So I sold all my synthesizers and my ST, and bought one of the latest Mac Classics - 4 meg of RAM, a 40 meg hard disk, and a 512x342 1-bit display.
The built-in Mac OS calculator of the day was a very simple affair, and so I decided I would write a calculator that could do binary and hex, to help me with my programming. And so the idea for PCalc was born. I bought the books Inside Macintosh, Volumes I, II, and III, and sat down to figure it all out. We didn't have the Internet back then - well, no web at least - so that was basically all I had to go on. Eventually, I started to get the internal logic working, and built a user interface around it all. System 7 was new, so I eventually got a copy of the massive Volume VI to see what had changed there. I didn't think I needed any of the stuff in the middle.
Again, this was back in 1992 - FTP sites were the new hotness. Our class had discovered this application called Fetch which quickly got passed around. You ran this one application, and it could get you more applications. I quickly realised there was this thing called the Info-Mac Archive which was mirrored all around the world, and I could send my app to them, and it would then be mirrored everywhere automatically for people to download. So, I read all the submission guidelines carefully and packaged it up.
If you use System 6.0.x or earlier, here is what you are missing:
Programmable functions via a simple mini language.
System 7.x.x savvy:
Can be controlled & programmed via Apple Events.
Balloon Help for every button, menu & dialog item.
Resolves Aliases.
32-bit clean.
Multifinder aware.
Large 16+3 digit display.
Hierarchical menu of user functions.
Includes many functions for converting between different weights and measures.
Quick, one click, conversion between decimal, hexadecimal and binary numbers.
AND, OR, NOT, XOR, ROL, ROR and other extra functions in hex and binary mode.
30 named user constants, 10 for each mode.
'Undo' of any action.
Enhanced graphics when viewed on a 256 colour or 16 gray (or better) screen.
Colour graphics and help screens are stored in separate plug-in extensions.
Runs on any Mac with System 7.x.x or greater, with or without Color Quickdraw.
Version 1.0.2 fixes some bugs that caused problems on colour macs, notably
those with 16 and 24-bit displays. Vast speed increases too on some 8-bit
screens. Shouldn't turn bright orange at inconvenient moments either. Some
other silent bug-fixes and support for the ',' key as a decimal separator.
As an aside, sometime later Douglas became a beta tester for my other app, DragThing. I never asked him what he thought of all the Hitch Hiker's references in PCalc, if he ever saw them. The icon has always had a 42 on it, I try to put 42 on the screen whenever I take a screenshot, and there's always been an Ultimate Answer scientific constant in there. I had the pleasure of shaking his enormous hand at WWDC once, and he greeted me with genuine recognition and a smile. I had been due to meet up with him again at a later WWDC, but he died suddenly just beforehand, just a few weeks after we'd exchanged emails, and it hit me quite hard. That's why the PCalc icon still has a 42 on it - it's meant as a tribute to him. I didn't know him very well, but he was always enthusiastic about my work, and as a huge fan of his writing, that meant a lot.
Anyway, I let PCalc make its way around the world, while I actually did some work for my degree. I got distracted a bit after that, first by writing DragThing, and then by going off and getting a job with Apple where I worked on the OS X Finder and Dock. Yes, yes, I know. But that's another story.
When I was back in Glasgow in 2000, I was looking for another small project to learn the new Metrowerks CodeWarrior development environment and accompanying PowerPlant application framework. I still got emails about PCalc, even though it had been seven years since the last update, and it was the perfect size to quickly build something usable. So, PCalc 2 was born. The Pascal core mathematics code was hand-translated into C, and a new user interface was written around it in C++. PCalc 2 would still run on old 68K machines, but it would now not only run natively on PowerPC machines, but it would run on both the Classic Mac OS, as well as on the new OS X, with an appropriate user interface on both.
I'd also decided, based on the popularity of DragThing, that I should probably charge a little bit for it. One reason I'd been happy to let it sit for seven years between releases is that the first version had been completely free. Having paying customers would be a good incentive to keep it updated.
At WWDC in 2001, I pressed my business card into the hand of a young fresh-faced Phil Schiller, and told him about PCalc. Afterwards, I remember his assistant emailed me asking for a serial number for Phil, which I gladly passed on. Later, I learned that Steve Jobs had used PCalc and allegedly had not completely hated it. Steve Wozniak bought a number of copies that year too.
Sadly, it didn't last - Mac OS 10.2 was released, and with it came a new Apple-written scientific calculator. The rumour was that someone high up in Apple had worked out exactly who they were paying royalties to - an ex-Apple employee they had not always seen eye-to-eye with. But, I couldn't verify that. In any case, PCalc was no longer bundled, and things went a bit quiet again for a while.
In 2005, I rewrote PCalc once again. This time, it was to learn the new Carbon HIToolbox APIs - this was a different way of writing an application, somewhat similar to PowerPlant, but provided by Apple.
PCalc 3 sported the much loved brushed metal appearance that was all the rage back then. There was also a new companion Dashboard Widget which had the same core code, but a user interface written in HTML and javascript. Widgets were the future.
In 2006, it was the perfect sized app to port to Intel and learn about that - I got one of the prototype Intel based Macs, and had a universal binary for Intel and PowerPC ready to release by the middle of January. Many updates to the Mac version have followed in the years since.
I took the code I'd written for the Dashboard Widget version of PCalc, and got that running within a day or two on the iPhone. From there, I wrote a completely new interface around it, this time in Cocoa. PCalc was the perfect app to have on a touchscreen portable device - it had turned from an imitation of a calculator on a screen where you pressed the buttons with a mouse, into an actual calculator in your hand. It felt like it wasn't pretending any more.
PCalc was in the App Store on day one with around 400 other apps and it did really well. Eventually, a lot of our income was coming from PCalc rather than DragThing, and from iOS rather than Mac OS, and so a lot of the effort went into the iOS version first and then was ported back to the Mac afterwards. I even ported the theme engine from DragThing on the Mac to PCalc on the iPhone. That seemed like an insane thing at the time, that you could take a fairly sophisticated drawing engine running on a Mac Pro and put it on a thing that fits in your hand.
And then came iPads, Retina displays, more iPads, taller iPhones, and... well, you know the rest. And then we had PCalc in the Mac App Store with Retina display support too, and lots of features from the iOS version.
Well before the days of Mac Catalyst, this new version was actually based on the iOS source code, which made development a little easier for me, as I didn't have to write everything multiple times. I also broke out the core code into a separate and portable chunk, which could be used everywhere.
In 2016, Apple added the ability for iOS apps to offer alternative app icons, so I started on a little project to make some new ones. People may remember this was a start of a rather stressful time in the world, and I did a lot of these projects to keep myself sane, or at least distracted.
At the same time, rumours about Apple making an AR/VR headset started to swirl, and I decided I wanted to learn about how to do 3D graphics. I'd done a course at my university, but things had changed just a bit in the 22 years that followed.
7fc3f7cf58