De KIM-1 was de eerste computer van Commodore. Maar de KIM-1 was ontworpen door het bedrijf MOS. MOS werd opgericht in 1974 door 8 ex werknemers van Motorola. Twee van deze werknemers waren Bill Mensch en Chuck Peddle. Dit nieuwe bedrijf werd MOS Technology genoemd en startte de ontwikkeling van de 6501 chip. Dit was een microprocessor die pin compatible is met de 6800 chip van Motorola. Het interne ontwerp was afwijkend van het Motorola ontwerp maar Motorola startte een rechtszaak tegen MOS voor het copieren van hun ontwerp. MOS en Motorola kwamen tot een schikking en het ontwerp van de 6501 werd geschrapt. MOS ging verder met het ontwikkelen van een eigen microprocessor. Dit werd de 6502. De 6502 behoort tot de meest belangrijke chip ooit ontwikkeld. De man achter de ontwikkeling van de 6502 was Chuck Peddle. Na de geboorte van de 6502 ontwikkelde MOS een computer ronde deze nieuwe chip. Dit werd de KIM-1. Maar in hetzelfde jaar nam Jack Tarmiel's bedrijf Commodore het bedrijf MOS over. Er zijn daardoor KIM-1's met MOS op het moederbord, en er zijn moederborden met de namen Commodore en MOS.
De onderdelen:
De KIM-1 is een echte computer maar is niet te vergelijken met een moderne PC. De KIM-1 heeft de volgende hoofd onderdelen. De 6502 microprocessor, Twee 6530 I/O chips, 1 kbyte RAM, 2 kbyte ROM, 6 digit 7-segment LED display. De rest van de onderdelen zijn simpele logische componenten.
De 6502 technische specificaties:
Data bus: 8 bits
Address bus: 16 bits
Interrupts: IRQ, NMI, RDY
Snelheid: 1 MHz
Instructies: 151
De 6502 is een microprocessor. Binnenin de microprocessor worden allerlei binaire manipilaties gedaan op data. Om data in en uit de microprocessor te krijgen is een databus nodig. De databus van de 6502 is 8 bits breed en dat betekend dat er 8 aansluit pinnen contact hebben met het geheugen buiten de 6502. De 6502 werkt, net zoals alle processors, met het binaire systeem. Dat wil zeggen er zijn maar 2 mogelijkheden aan of uit, dit wordt aangeduid met een 0 of een 1. Dit wordt een bit genoemd. Als je een 8 bits brede data bus hebt dan zijn dit de mogelijkheden: 00000000 t/m 11111111. Een waarde van 8 bit breed wordt een byte genoemd. In ons decimale getallen stelsel is dat van 0 t/m 255. Alle verwerkingen zijn dan ook beperkt tot getallen van 0 t/m 255, wil je grotere getallen verwerken dan moet je het getal in meerdere stukken hakken en apart verwerken.
Maar je hebt ook nog een manier nodig om een bepaalde geheugen locatie aan te wijzen. Dit is de adresbus. De beperking is de breedte van de bus, met 16 bits kan je een getal maken tussen 00000000 00000000 t/m 11111111 11111111 of te wel tussen 0 en 65536. De 6502 kan dus 64 kbyte adresseren. En dat is ruim voldoende in de KIM-1.
Naast de Data en de Address heeft de 6502 ook interrupts. Een interrupt is een onderbreking. Via deze ingang kan het in de processor lopende programma worden onderbroken.
De systeem snelheid van de KIM-1 is 1 MHz wat wil zeggen dat er 1 miljoen acties per seconden worden uitgevoerd. De processor voert dus 1.000.000 acties uit per seconden. De snelste instructie heeft aan 2 actie genoeg maar de langzaamste heeft 7 acties nodig.
De 6502 heeft een aantal instructies, dit aantal instructies is 151 maar in theorie zijn er 255 mogelijk. Programmeurs hebben door experimenteren extra instructies gevonden. Maar dit zijn eigenlijk ingebakken fouten en horen niet tot de echte instructie. Er zijn instructie die alleen maar data verplaatsen zoals LDA (Laad de accu met een waarde) maar ook reken instructie zoals ADD (tel bij de accu een waarde op) ook instructie die "rommelen" met een waarde zoals ROR die de bits een plekje naar rechts opschuift.
The 6530 technische specificaties:
Data bus: 8 bits
I/O: 2 x 8 bits (twee richtingen)
Timer: programmeerbaar
RAM: 64 byte
ROM: 1 kbyte
De twee 6530's zijn de verbindingen met de wereld buiten de KIM-1. Het toetsenbord wordt gelezen door deze chips. Het display wordt ook aangestuurd door de 6530's. Er is ook een aansluiting voor een cassette recorder voor het laden of opslaan van programma's. Ook een aansluiting voor een teletype is aanwezig. Bijna alle IO is ook beschikbaar op de twee aansluit poorten aan de zijkant van de KIM-1.
De 6530 beschikt over zijn eigen ROM en daardoor zijn er verschillende 6530's. MOS heeft verschillende 6530's gemaakt voor specifieke toepassingen of zelf voor andere bedrijven.
RAM / ROM
Tegenwoordig is 1 kbyte RAM een grap maar in 1976 was dit enorm. RAM wordt gebruikt om je eigen programma code in op te slaan. RAM kan gelezen en beschreven worden. RAM staaat voor Random Access Memory. Er is ook 2 kbyte ROM aanwezig op de KIM-1. In het ROM is een programma aanwezig die de KIM-1 bestuurd. Het programma zorgt voor het lezen van het toetsenbord en het aansturen van de displays. Het heeft ook en machinetaal monitor die je helpt om je eigen machinetaal programma in te voeren. ROM kan allen maar gelezen worden. ROM staat voor Read Only Memory. Het programma in het ROM blijft ook bewaart als je de voedingsspanning uitschakelt. De data in het RAM gaat verloren als je dit doet.
Toetsenbord / Display
Om een complete computer te maken moet je een manier hebben om te "interfacen" met de gebruiker. De interactie tussen de computer en de gebruiker gaat via een simpel toetsenbordje. Het toetsenbord beschikt over de hexadecimale cijfers 0 tot F, een reset toets, een aantal toetsen voor programmeren en een aan / uit schakelaar.
Het display bestaat uit zes 7-segments LED displays. Doordat de microprocessor alle segmenten van het display kan aansturen via de 6530's you kan je meer laten zien dan de cijfers 0-9.
Op de foto de KIM-1. Dit is een revisie-G uit November 1978.