Google chap reverse engineers Sinclair Scientific Calculator
No Pi, only basic functions and hardly any storage, but Clive's 1974 team made it work
A Google employee named Ken Shirriff has delved into computing history by reverse-engineering the code running Sinclair Radionics' 1974 scientific calculator.
Shirriff's story of the calculator's genesis notes that in the early 1970s a scientific calculator was an expensive and extraordinary tool for which the likes of HP could charge around $400, such was the exotic nature of its interior. Texas Instruments had come up with cheaper calculator chips that Shirriff writes “could barely do four-function math”.
The idea of turning that kit into a scientific calculator seemed improbable, to everyone except Sinclair and Nigel Searle (later the head of Sinclair Research's Computer division and apologist for ZX Microdrive delays). The former charged the latter with getting it done and the rest is history, as the Sinclair Scientific emerged at the then-astounding price of about fifty quid yet did most of what one could wish a scientific calculator to do.
Shirriff's post explains how he thinks the Sinclair team did the job. We won't spoil the algorithmic fun explained in the post, but suffice to say the Sinclair team found ways to simulate scientific calculator functions like log and trig with very clever use of the limited resources on offer in TI's TMS0800 silicon.
The post also offers a simulator and Shirriff's code, should you wish to journey back to 1974 yourself.
Sinclair Radionics went on to make several more calculator models and even digital watches. Like other Sinclair ventures, it went titsup with financial troubles after winning a reputation for kit that may not have been perfect, or even particularly reliable, but dramatically undercut rivals and therefore expanded the market.
That was certainly the case for Sinclair Research and its ZX line of microcomputers, which borrowed some of the calculator's idiosyncrasies including function keys that allowed one button to serve multiple functions. ®