10 PRINT on the Rockwell AIM 65
By Michael Doornbos
- 4 minutes read - 667 wordsRockwell International was a powerhouse of the 1970s and 80s.
The Rockwell AIM 65 computer, also known as the Advanced Interactive Microcomputer 65, is an early microcomputer produced by Rockwell International in the late 1970s. It was essentially a development system, intended primarily for engineers, educators, and hobbyists, and was named for its built-in alphanumeric keyboard and LED display.
The AIM 65 was built around the 6502 microprocessor, the same chip used in popular systems like the Apple II, Commodore PET, and Atari 2600. The AIM 65 was designed as a single-board computer, with the processor, memory, input, and output all integrated into one circuit board.
The system came standard with 1KB of static RAM, expandable up to 4KB, and 4KB of ROM, which contained a monitor program and BASIC interpreter. The machine also included a built-in printer and a 20-character LED display. Rockwell International promoted the AIM 65 as an educational tool and a stepping stone for developers looking to move on to more complex systems. It was used in classrooms and laboratories for teaching computer science and electrical engineering concepts.
Though the AIM 65 never achieved the widespread popularity of some other microcomputers of its era, it was a significant entry in the history of computing. Its flexible and accessible design made it an essential tool for computer education and development during the early days of the microcomputer revolution.
The Rockwell AIM 65 computer was a versatile, user-friendly microcomputer that played a crucial role in the burgeoning field of microcomputing. Its influence can be seen in the myriad educational, hobbyist, and professional environments it was used in, fostering a deep understanding of computing principles underpinning the digital age.
Despite it’s impressive design and utility, most people have never heard of it.
Let’s make it do something
I have a modern clone that is functionally equivalent to the “real” AIM 65. The printer (thermal on my clone, but there were several variants on the originals) is one of the more exciting features of this machine. It makes it portable and self-contained—-a laptop way before laptops.
The AIM 65 was made to have several selectable ROMs, which made it very versitile. Mine has ROMs for Forth, BASIC, and more
BASIC is most familiar to many of us, so lets use that.
Doing one of my favorite programs on this machine, 10PRINT, makes sense. Implementing this is straightforward, with a few minor caveats. The printer is 20 columns wide, making a VIC-20’s 23 columns seem roomy. Second is that we don’t have the Commodore character sets. On a Commodore 10PRINT looks like this:
10 PRINT CHR$(205.5+RND(1));:GOTO10
The character 205 is the / and 206 is the \ character. RND generates a decimal number bewteen 0 and 1 and the CHR$ function takes an integer. This means by adding the fraction, the Commodore rounds down if it’s less than .5 and up if it’s more, giving us 205 or 206 randomly. Easy right?
The Rockwell Version
On non-Commodore systems, the / and \ characters aren’t neatly at 205 and 206, so we need to use a different approach to get this to work. Using the ASCII table, the / is 47, and the \ is 92.
Subset of ASCII Table
Dec | Hex | Char | Dec | Hex | Char |
---|---|---|---|---|---|
47 | 2F | / | 92 | 5C | \ |
How do we select a 47 or a 92?
One approach is to get a 1 or a 0 from BASIC. The way we do that is:
INT(RND(1)*2)
Now we can start with 47 and add the diffefference between them (92-47=45) multiplied by the 1 or zero. Half the time we’ll add 0 and half of the time we’ll add 45 and get 92.
Insert this into our 10PRINT and we get:
10 PRINTCHR$(47+(INT(RND(1)*2)*45));:GOTO 10
Let’s run it
It works! The modern thermal printer on my model comes from point of sale machines like cash registers and is very fast. The original is quite a bit slower to print but the result is the same.
Happy coding!