Thursday, September 6, 2018

Why Does the 6502 Matter?

Arguably the MOS 6502 processor was really no better than Motorola 6800 that was its direct predecessor, and why would you buy the most important part of your computer from a calculator chip company like MOS Technologies instead of a more stable company like Motorola?

The answer is clear.  $25  The 6502 was merely 1/6th the cost of a Motorola 6800.

Think about it.  Without this low price, Steve Wozniak would not have produced the Apple I and Apple II computers as we know them, and Commodore could not have produced the PET, VIC-20, C64, etc.  The Atari VCS and Nintendo NES would never have existed.

The home computer market would have evolved more slowly and in a completely different direction.


  1. I'm a member of the Toronto PET Users Group. We have an annual event in December called World Of Commodore. I was thinking of making presentation this year comparing how different implementations of languages in the C64 use memory. Or access memory. There are a range of languages ported to C64: Lisp, Forth, C, BASIC. The reason I want to look at that is to better comprehend how Rosetta Smalltalk used memory in the TRS-80 with a Z80 chip. My understanding is that a standard program in a VIC20/C64 loads a program in (perhaps from a tape) in one continuous block. The only thing to do is find the memory location of the first part of the program (RUN) and it proceeds down the contiguous numbers in memory. Maybe it jinks back and forth with if/then or goto. Maybe all the languages I just mentioned do that on the 6502? With an OOP language it seems you can enter and exit memory at any point, not just at the beginning to watch the dominoes fall. So a layer, or table has to contain lots of memory addresses to create objects. Something, something. The Rosetta Smalltalk people must have done something like this. And if I could illustrate this clearly, then I think the Smalltalk VM could be explained form first principles. Any thoughts? Any book come to mind that you'd recommend? It'd be cool to be able to go to TPUG's WOC this year with examples from Jim Butterfield's Machine Language For The C64 and talk about how different languages access memory differently.

  2. Hey Chris, interesting to be discussing Smalltalk with you here. :-) So, yes I believe you can actually load information into a Commodore machine at any particular address. Commonly once a machine language program is loaded the user types SYS address to start running that program.

    I don't think the programmer can probably put a Smalltalk VM anywhere in code. I remember asking Dan Ingalls what the smallest VM was that he ever wrote. He told me 6K bytes. So where is the best place to put the VM and all the objects? Maybe Compute's Mapping the Commodore 64 will be helpful. ;-)

    Also you may find it interesting to read an article about Smalltalk-PC in a May 1985 BYTE Magazine article. It describes a Smalltalk implementation for the Apple II. IIRC it requires an extra 64K banked RAM card to run.