Sunday, March 27, 2022

Mechanical Calculator

The fact that people made mechanical computational devices shows that there is a strong need for computation.

I feel like the birth of the computer started with mechanical devices.  

NCR started in the cash register business, which technically was an adding machine with a mechanical crank to make it work.  From there it is a natural transition to electric, then electronic, and eventually digital.

In order to help with the U.S. census, in the late 1800s, someone invented the mechanical tabulating machine that used punch cards.  Census takers would punch holes into cards depending upon the answers to questions that they asked.  Then the machine could process the cards and add up the answers to specific questions.  This is long before we had computers, although the tabulating machine could be considered a type of computer.  This punch card technology would later be used to store computer programs and data.

Around 1971 my parents had a mechanical adding machine to help with their business.  It was heavy and bulky but it did the job.

Around the same time, a Japanese company contracted with Intel to produce the first electronic calculator.  Up to that point, Intel had made integrated circuits with relatively simple logic circuits.  It was possible to build a big computer by combing a large number of these logic chips.  So to make the first electronic calculator, Intel came up with the 4004 microprocessor, which is the 4-bit grandfather of the 8-bit 8008, 8080, and 16-bit 8086 chips that would follow.  The microprocessor revolution started with a calculator.

The 4004 chip had limited capabilities, but it was still the first whole computer processor on a single chip.  The first real microprocessor operating system, CPM, was designed to run on the 8080 processor long before we had DOS or Windows.  CPM was all the rage in the mid-1970s.   Consequently, a company called Zilog came up with a slightly superior 8080 clone called the Z80 which was compatible with CPM.  The Z80 processor would go on to be used in the TRS-80, Sinclair, and Timex-Sinclair computers, as well as a whole series of MSX computers in Japan.  The chip would also be used in a few videogame systems.

On a more personal note, most early videogame systems did not have any kind of operating system or high-level language that they could be programmed in.  This meant that they had to be programmed in the language of the microprocessor itself, which is called machine code.  This is considered not only archaic but also technically much more difficult.  In the 1970s, one of the first computers I got my hands on was an RCA 1802 Elf computer, which was incredibly primitive, but I learned to write 1802 machine code on it.  In the late 1970s, I learned Z80 machine code on the TRS-80 computer.  In 1985, on the Timex-Sinclair 2068 computer, I wrote a videogame in Z80 machine code, using a tool called an Assembler that I wrote myself.  Along the way, I picked up 6502 machine code, and in 1993 I got my first videogame job in Utah writing 65816 machine code, a more advanced 16-bit version of the 6502, for the Super Nintendo.  In 1999 I change jobs, and I was back to writing Z80 machine code on the Gameboy Color.  By that point, the Z80 was considered mostly obsolete, but it was still being used on Gameboys.  Because of my previous experience with the Z80, I hit the ground running on that job, and my new boss was so impressed with my programming skills that he gave me a raise after my first week.

Best wishes,

John Coffey

No comments:

Post a Comment