|About us||RCL 20||Projects||Colour Selector||Library|
Hewlett-Packard (HP) invented the hand-held scientific calculator back in 1972 with the HP-35, and led a relentless charge of miniature technical innovation through the 1970s and 1980s, culminating with the HP-41 system, which was powerful enough to be used for mission-critical tasks aboard early space shuttle flights.
During this time, Frank Wales developed HP-41 software and tools for Zengrange. Because of their reputation with HP, Zengrange were asked to develop a cross-over product that would give the existing base of HP-41 users an easy migration path to the HP's next-generation HP-48SX, which had a completely different underlying architecture, programming language and user interface.
Zengrange chose Frank as technical lead on this project, and he travelled with a colleague to HP's Corvallis development labs, in Oregon, U.S.A., to design and develop the product. A technical writer joined them later to write the user manual once Frank had sufficiently developed the product's specification.
The result was HP's HP-41CV Emulator module for the HP 48, which was not only able to run any software written for the HP-41CV and its accessory printer, but also provided a compatible keyboard and display emulation designed to let those users more familiar with the HP-41's ways of working be productive immediately on the HP-48.
Attention was paid to seemingly minor details, such as the appearance and behaviour of display elements and prompts, and the placement and colour-coding of the keys, in order to make the seasoned HP-41 user feel at ease while allowing them to experiment with the greater capabilities of their new calculator.
To make the migration of code and data simple, the emulator included a parser that could read and translate programs and data beamed over from an HP-41 via its infra-red printer module. It also incorporated an extension system that allowed HP-41 programs to call HP-48 programs, and vice versa, making possible the gradual transfer of software from one environment to the other.
Frank not only designed the product, but also implemented core features such as the execution engine, the program and data parser and many of the lower-level functions that were critical to the product's performance and stability.
He also spent much time refactoring working code from all the programmers on the project for speed or size, in order to get the product under its memory budget of thirty-two thousand bytes, while keeping to the original performance goal of matching or beating the HP-41 on average.
The most significant optimisation came when he realised that, by altering the way the software was compiled, combined with some assembly code to reprogram the HP-48's memory controller, he could decrease the size of the whole product by 20% and double its speed at the same time.
The module was subsequently re-ordered by HP when the initial production run sold out. It was also used as the basis for third-party application hosting, allowing entire existing HP-41 applications to be combined with the emulator in a larger memory module for running on the HP-48 without the need to change the software.
Copyright © Limitless Innovations 2020