Der meistverkaufte Heimcomputer Commodore 64 Der meistverkaufte Heimcomputer
Geschichte Vorstellung Januar 1982 auf der Winter Consumer Electronics Show Commodore Business Machines (CBM) hatte bereits erfolgreich Vorgänger verkauft:
Geschichte „Computer for the masses, not the classes!“, Jack Tramiel September 1982 595$ (USA) Anfang 1983 1.495,- DM (GER) Aufschrift: „Personalcomputer“
Geschichte 11 Jahre lang produziert ca. 17 Millionen verkaufte Exemplare Damit ist er der meistverkaufte Computer technische und optische Veränderungen wurden wären der Produktion immer wieder vorgenommen siehe Typen
Geschichte Das Unternehmen ging am 29. April 1994 offiziell in Insolvenz Der Name „Commodore“ (sowie „Amiga“) ging danach durch die verschiedensten Hände (z.B.: ESCOM) und befindet sich heute im Eigentum eines Asiatischen Elektronikherstellers
Typen: Commodore Max Machine originale Spielkonsolenversion Spiele per Cartridge ansteckbar konnte sich nicht durchsetzen wenige Spielecartridges vorhanden
Typen: C64 „Brotkasten“
Typen: PET64, Educator64 Als Schulrechner vorgestellt ähnliches Gehäuse wie ein PET von Commodore Wahrscheinlich da dies (mit dem Monitor zusammen) schlechter gestohlen werden konnte ;)
Typen: SX64 (Executuve Computer) erste portabler Computer mit Farbbildschirm ein zur 1541 kompatibles 5 ¼“ Diskettenlaufwerk sehr schwer
Typen: C64 Gold goldenes Gehäuse und war auf einer Acryl-Platte mit einem Emblem montiert. Anlass war: 1.000.000 verkaufte C64 in Deutschland. absolut selten / begehrtes Sammlerstück
Typen: C64 C oder C64 II „Türkeil“ vom Design an den neuen C128 angelehnt neuer Soundchip (SID)
Typen: Aldi C64 erstmals wurde über durch einen Discounter ein Computer verkauft das Hardwarelayout wurde jedoch soweit geändert das er zu Erweiterungen von Fremdherstellern kaum noch kompatibel war
Typen: C64GS wieder eine Spielkonsole Spiele konnten per Cartridge angesteckt werden konnte sich auch nicht durchsetzen Ein Grund mag die fehlende, für viele Spiele jedoch notwendige Tastatur gewesen sein, ein anderer der wohl viel zu späte Schritt auf den Markt mit dieser eigentlich überholten Technik
Typen erste C64 unterschieden sich im Innenleben fast völlig von den letzten. dennoch konnte eine nahezu 100%ige Kompatibilität erreicht werden Änderungen: Platinenlayout, CPU, SID, Integrierung aller Logikelemente in einem „Custom-Chip“
Nachfolger C128
Nachfolger C16 / C116
Nachfolger Plus/4 / C65
Aufbau Prozessor MOS 6510 (8500) Eine Variante des 6502 MOS Technologies wurde 1976 von Commodore als Sichere CPU-Quelle aufgekauft Taktfrequenz: ca. 1MHz verglichen mit 6502: 6 zusätzliche Ein- und Ausgänge da mit diesem 8-Bit-Prozessor nur 64kB ansprechbar waren, konnte damit zwischen RAM-, ROM- oder Peripheriebereichen hin und her geschaltet werden (Bank-Switching)
Aufbau Prozessor MOS 6510 (8500) Akkumulator (8 Bit) Index-Register X und Y (je 8 Bit) Statusregister (8 Bit) Carry, Zero, Decimal, Interrupt Disable, Break, Overflow, Negative und ein ungenutztes Bit Stapelzeiger (16 Bit allerdings war das Hi-Byte auf $01 fixiert nur 256 Werte) Befehlszähler (16 Bit)
Aufbau RAM 64kB RAM davon 39kB für BASIC-Programme für damalige Verhältnisse revolutionäre Größe des Speichers (VC20 verfügte nur über 5kB) Byte 0 und 1 konnte nicht genutzt werden Prozessorport (Bank-Switching)
Aufbau ROM 20kB ROM 9kB BASIC-Interpreter der von der PET2001 (1977) übernommen wurde 7kB Betriebssystem 4kB wurden für 2 Zeichensätze verwendet
Aufbau Grafikchip VIC II (MOS 6569/8565) 16 Farben (Farbpalette C64-Multicolor) maximale Auflösung 320x200 40x25 Zeichen im Textmodus Hardware-Scrolling 8 Sprites Rasterzeileninterrupts
VIC II Textmodus (40x25 Zeichen) 1000 Zeichen kann der Bildschirm aufnehmen der Textbildschirm ist im RAM zwischen 1024 und 2023 gemappt Zeichen befinden sich in 8x8 Matrixdarstellung im Speicher
VIC II Textmodus (40x25 Zeichen)
VIC II Textmodus (40x25 Zeichen) 4kB für 2 Zeichensätze POKE 53272,21 = Schrift 1 POKE 53272,23 = Schrift 2 Zeichensätze können durch Programmierung geändert werden Weiterer Speicherbereich (55296-56295) für die Zeichenfarbe an dieser Stelle
VIC II Textmodus (40x25 Zeichen)
VIC II Textmodus (40x25 Zeichen)
VIC II Hochauflösender Hires Modus (320x200) alle 16 Farben können verwendet werden, jedoch nur 2 davon gleichzeitig 8000 Byte werden für einen Bildschirm benötigt jeder Pixel ist durch ein Bit repräsentiert Bildschirmspeicher (1024-2023) wird für Hintergrundfarbe eines 8x8 großen Blockes verwendet Der Farbspeicher wird für den Vordergrund verwendet
VIC II Hochauflösender „Hires“ Modus (320x200)
VIC II Multicolor Modus (160x200) Von den 16 Farben können hier 4 verwendet werden hier gilt das gleiche Verfahren wie beim Hires-Modus, jedoch werden jeweils 2 Bit zu einem Pixel zusammengefasst somit 4 Möglichkeiten (00, 01, 10, 11)
VIC II Multicolor Modus (160x200) auch für den Textmodus lässt sich Multicolor verwenden jedoch sollten dabei extra dafür programmierte Zeichensätze verwendet werden
VIC II Hardware-Scrolling vertikal als auch horizontal Hier wird der dargestellte Bildbereich auf 38x24 verkleinert im RAM existieren gemappte Register mit jeweils 3 Bits mit diesen kann das Bild-Offset jeweils um bis zu 7 Pixel (1 Zeichen) verschoben werden
VIC II Sprites Sprites sind kleine (24x21 Pixel) Grafiken die frei über den Bildschirm verschoben werden können auch hier 2 Modi: Hochauflösend (Spritefarbe und Hintergrund) und Multicolor (3 Spritefarben und Hintergrund) Es existieren Register welche Sprite-zu-Sprite-Kollisionen bzw. Sprite-zu-Hintergrund-Kollisionen anzeigen. Diese Eigenschaften machen Sprites für Spiel natürlich sehr interessant
VIC II Sprites
VIC II Sprites
VIC II Rasterzeileninterrupts machen den C64 trotz der enormen Einschränkungen recht flexibel viele Einschränkungen können durch kreative Programmierung aufgehoben werden
VIC II Rasterzeileninterrupts Prozessor kann seine Arbeit unterbrechen, wenn der Elektronenstrahl eine bestimmte Bildschirmzeile erreicht hat dann kann eine Interrupthandlerroutine aufgerufen werden diese kann nun einige Veränderungen an den Grafikeigenschaften des VIC vornehmen welche dann für den Rest des Bildschirmes gelten z.B.: ändern des Grafikmodus, verschieben von Sprites Anwendung z.B.: Obere Hälfte Grafik, untere Hälfte Text
VIC II Durch Ausnutzung anderer undokumentierter Eigenschaften des VIC können weitere Effekte erzielt werden z.B.: kann der Bildschirmrahmen dazu bewegt werden zumindest die 8 Sprites in seinem Bereich anzuzeigen
Aufbau Soundchip SID (MOS 6581) für die damaligen Verhältnisse ein Soundchip mit herausragenden Möglichkeiten der Verantwortliche Entwickler Robert Yannes, gründete Später die Synthesizerschmiede Ensoniq
SID 3 monophone Stimmen (1 Ton pro Zeit) 4 Wellenformen: Subtraktive Synthese
SID 16 Bit Auflösung der Grundfrequenz der 3 Oszillatoren 0 – 4000 Hz Grundfrequenz Möglichkeit von Ringmodulation
SID Programmierbare ADSR-Hüllkurven
SID Subtraktive Multimode-Filter Programmierbare Grenzfrequenz Programmierbare Filterresonanz
SID auch hier konnte durch Ausnutzung undoku- mentierter Eigenschaften mehr ermöglicht werden z.B.: Wiedergabe von 4-Bit-Samples, Wiedergabe von 12-Bit-Sample mittels Pulsbreitenmodulation Chris Huelsbeck gelang es z.B. in Turrican die 3-Stimmigkeit auf 4-5 Stimmen zu erweitern
Schnittstellen Der C64 bot viele Schnittstellen und war deshalb auch bei Hardwarebastlern sehr beliebt Audio/Video-Ausgang (5 Pin/8 Pin DIN-Buchse) Hochfrequenz-(HF)-Ausgang (Chinch-Buchse) Serieller Bus (6 Pin DIN-Buchse)
Schnittstellen Anschluss für Datasette (6 Platinenkontakte) Expansion-Port (44-Pin-Platinenstecker) User-Port (24 Platinenkontakte) 2 Joystick-, Mouse-, Paddle-Eingänge
Peripherie Laufwerke 5 ¼“ Floppy Laufwerk (1541) Kassettenlaufwerk (Datasette 1530) 3 ½“ Floppy Laufwerk (1581) Festplatte
Peripherie Eingabegeräte der C64 selbst als Tastatur Joystick Mouse (Lightpen) (Lightgun)
Peripherie Ausgabegeräte Fernseher über HF-Ausgang oder SCART Monitor Drucker zumeist 7, 8 oder 9 Nadeldrucker andere Drucker waren zu dieser Zeit kaum zu bezahlen
Peripherie DFÜ-Geräte Modems Anschluss über User-Port Akustikkoppler Hierzulande wegen der nötigen Zertifizierung von Modems durch die Post verbreitet. Fehleranfällig, langsam! Netzwerkkarten z.B.: RR-Net
Peripherie Weitere Peripherie Speichererweiterungen Anwendungen mussten die Speichererweiterungen unterstützen Relais-Karten z.B.: für Modelleisenbahn Turbo-/Prozessorkarten meist inkompatibel zur bestehenden Software Multifunktionscartridges zunächst Schnellladercartridges bald BASIC-Erweiterungen, Freezefunktionen, Maschinensprachmonitor
Software Sicher gibt es sehr viel Software für den C64. Vor allem der Spielbereich ist nahezu unübersehbar. Allerdings gibt es eine Software die für mich am herausstechensten ist: GEOS
GEOS Büro-Software für die 8-Bit Homecomputermodelle C64, C128 sowie Apple II 128k und AppleIIc/e Hersteller war Berkeley Softworks, später in GeoWorks Corporation umbenannt kostenlos unter http://cmdrkey.com/ gedownloadet werden Geos wird zur Zeit aber auch von „Click HereSoftware“ vertrieben. (25$ + Versand) Der Käufer erhält die original Disketten und ein Benutzerhandbuch
Programmierung BASIC Eingebaut war Commodore BASIC V2 nahezu komplett vom PET2001 übernommen deshalb keine Grafik- oder Soundunterstützende Befehle BASIC V4 der neueren PETs wurde aus Marktwirtschaftlichen Gründen nicht übernommen im BASIC V3.5 der C16 oder Plus/4 ist der Befehlsvorrat wesentlich umfangreicher
Programmierung BASIC dennoch kann über die Befehle PEEK und POKE direkt auf die Hardware zugegriffen werden mit dem Befehl SYS lassen sich selbst geschriebene oder System-Routinen anspringen Sound und Grafik lassen sich dennoch nur unter Assembler oder mit entsprechenden BASIC-Erweiterungen effektiv programmieren
Programmierung Assembler ist die wichtigste Programmiersprache auf dem C64 nahezu alle Spiele sind in Assembler geschrieben Assembler als extra Programm oder integriert in eine Cartridge nötig
Programmierung Andere Programmiersprachen gab es zwar (PASCAL, C, COBOL, …) jedoch fristeten diese eher ein Schattendasein auf dem C64
Vielen Dank für Ihre Aufmerksamkeit
Quellen ftp://arnold.c64.org/pub/ - größtes Archive für C64 Spiele/Utilities http://de.wikipedia.org/wiki/C64 - geschichtliche Informationen und Aufbau http://cbmmuseum.kuto.de/cbm_c64.html - Aufbau und sonstige Infos http://www.infinite-loop.at/Power64/Documentation/Power64-LiesMich/AA-C64_BASIC.html - BASIC V2 Syntax http://www.atarimagazines.com/compute/issue39/251_1_PART_I_MIXING_GRAPHICS_MODES_ON_THE_64.php - bzgl. Rasterzeileninterrupts http://zimmers.net/cbmpics/index.html - Bilder und Infos zu allen Commodore Computern http://zimmers.net/cbmpics/cbm/c64/c64prg.txt - BASIC- & Assemblerprogrammierung / Techniken http://www.viceteam.org/ - Emulator http://cmdrkey.com/cbm/geos/geos1.html - GEOS