CBM 500

Aus C64-Wiki
(Weitergeleitet von CBM500)
Zur Navigation springenZur Suche springen

Der CBM 500 oder auch Commodore 500 gehört zur Anfang der 1980er-Jahre herausgegebenen CBM-II-Serie, die die erfolgreiche PET-/CBM-Serie ablösen sollte (auch die Bezeichnung PET-II wurde kolportiert, international kursierten auch B500, P-Serie, P500 oder C128-40) und hatte ein innovatives, preisgekröntes Gehäusedesign von Ira Velinsky. Diese Serie ist intern dem C64 vom Aufbau recht ähnlich und ein reiner Tastaturcomputer mit Ausrichtung auf den Consumer-Bereich. Der CBM 500 wird über ein Modulatorkabel am Fernseher angeschlossen und besitzt ebenfalls die ICs SID und VIC zur Ton- und Grafikausgabe. Ein erweitertes BASIC 4.0, das als CBM Extended BASIC Version 4.0+ bezeichnet wird, ist zusätzlich zum Betriebssystem im ROM vorhanden. Die Modellreihe sollte unter der Bezeichnung "Advanced Personal Computer" vermarktet werden, schaffte es aber nur zu einer kleinen Entwicklerserie, die als Endprodukt verkauft wurde, aber dann von Commodore jäh fallen gelassen wurde. Die ähnlich aufgebauten CBM-600/700-Modelle wurden als "Advanced Business Computer" verkauft.

Aufbau[Bearbeiten | Quelltext bearbeiten]

Den CBM 500 gibt es in verschiedenen Modellvarianten. Sie unterscheiden sich nur durch die Größe des internen Arbeitsspeichers (RAM) bei einer Kapazität von 64, 128 und 256 KByte entsprechend als Modell 500, 510 bzw. 520 gemäß dem Namensschema im europäischen Bereich. Die Unterschiede zur Business-Reihe CBM 600/700 liegen neben dem Äußeren samt der beiden Joystick-Anschlüsse aus interner Sicht primär in der geringeren Taktfrequenz der CPU und im Farbgrafik-Unterstützung (40 statt 80 Zeichen/Zeile).

  • Prozessor: MOS 6509 mit ca. 1 MHz Taktfrequenz, 6502-Derivat mit 2 Port-Register auf Adresse $00 und $01.
  • Coprozessor: Optional als Zusatzausstattung: Mit den Prozessoren Z80 (nicht produziert) oder Intel 8088 (4,77 MHz) wären alternativ die Betriebssysteme CP/M 2.2 oder CP/M-86 bzw. MS-DOS nutzbar.
  • RAM-Speicher: intern 64, 128 oder 256 KByte, zusätzlich extern maximal 704 KByte nachrüstbar, davon sind je nach RAM-Ausstattung und Bank-Zuordnung knapp 64 bis 256 KByte frei unter BASIC (verteilt auf Programm und Daten) nutzbar.
  • ROM-, I/O- und System-Speicher: 48 KByte ROM gesamt (24 KByte intern, max. 24 KByte extern über Steckmodul) verteilt in Bank 15 (System Segment):
    • Puffer-RAM (2 KByte; 0-2047; $0000-$07FF) in Bank 15 mit Zeropage, Stack (Page 1) bis Page 7 für Systemdaten
    • Externer Puffer-RAM (2 KByte; 2048-4095; $0800-$0FFF)
    • Disk-ROM (4 KByte; 4096-8191; $1000-$1FFF)
    • Freier Bereich (8192-32767; $2000-$7FFF) bzw. sofern vorhanden:
      • Steckmodul 8 KByte (8192-16383; $2000-$3FFF)
      • Steckmodul 8 KByte (16384-24575; $4000-$5FFF)
      • Steckmodul 8 KByte (24575-32767; $6000-$7FFF)
    • Extended CBM BASIC V4.0 (16 KByte) (32768-49151 ; $8000-$BFFF)
    • sämtliche I/O-Controller für Video, Sound, Interfaces usw. (49152-57343; $C000-$DFFF)
    • Unbenutzter Bereich (4 KByte) (49152-53247 ; $C000-$CFFF)
    • KERNAL (Kernel) (8 KByte) (57344-65535 ; $E000-$FFFF)
      inkl. Monitorprogramm TIM (Aufruf via SYS 60950).
  • Video: Der VIC-II (55296-55551, $D800-$D8FF)
    • NTSC-Version: 6566
    • PAL-Version: 6569
    • 1 KByte Video-RAM (53248-54247, $D000-$D3FF)
    • 1 KByte Color-RAM (54272-55271, $D400-$D7FF)
    • Darstellungen im Textmodus (entweder Großschrift-/Grafikzeichen oder Groß-/Kleinschrift) 40 (Spalten) × 25 (Zeilen) Zeichen oder im Grafikmodus (HiRes) 320×200 Pixel in 16 Farben, 16 Rahmenfarben und 16 Hintergrundfarben (siehe Farbtabelle) oder Vielfarbmodus (Multicolor; 4 Farben) 160×200 Pixel darstellen, zusätzlich 8 Sprites (HiRes oder Multicolor) in BASIC.
  • Sound: Der SID MOS 6581 (55808-56063, $DA00-$DAFF) wird zur Tonerzeugung genutzt und kann 3 unabhängige Stimmen mit Tönen von über 8 Oktaven (ca. 123 Töne) oder Geräusche und zusätzliche Filterung wiedergeben.
  • Tastatur: 94 Tasten (QWERTY), die mehrfach belegt sind, inkl. Nummernblock (19 Tasten) und 10 Funktionstasten, 4 Cursortasten, 4 commodore-spezifische Sondertasten.
  • Sonstige Chips:
    • Low Cost Diskport (55552-55807, $D900-$D9FF)
    • External Port (on Co-prozessor board, für Coprozessor-Kommunikation) (56064-56319, $DB00-$DBFF)
    • Complex Interface Adapter (CIA) MOS 6526 für die E/A-Steuerung IEEE-488 (User-Port) (Ein-/Ausgabe, 56320-56575, $DC00-$DCFF)
    • Asynchronous Communication Interface Adapter (ACIA) MOS 6551 für RS-232 (56756-56831, $DD00-$DDFF)
    • 2 Tri-Port Interface (TPI) Chips MOS 6525 für Interruptverwaltung, IEEE-488, Kassettenport (56832-57087, $DE00-$DEFF) und Tastatur (57088-57343, $DF00-DFFF)

Speicherverwaltung[Bearbeiten | Quelltext bearbeiten]

Die Speicherverwaltung erfolgt jeweils in 64 KByte großen Segmenten (auch Banks genannt), in denen sich RAM- oder ROM-Bereiche befinden. Es können 16 Segmente (Nr. 0 bis 15, insgesamt 1 MByte Adressraum) verwaltet werden. Im System-Segment 15 ($0F) sind alle eingebauten Chips, deren I/O-Bereiche, sowie das Betriebssystem bestehend aus KERNAL und BASIC adressierbar. Segment (Bank) 0 wurde nicht verwendet.
Angesteuert werden die Segmente über zwei 4-Bit-Register der CPU 6509, welche in allen Segmenten eingeblendet sind:

  • Port $00 (4 Bit): Legt das Segment fest, in dem gerade die CPU die Instruktionen abarbeitet (Exec Segment Bank).
  • Port $01 (4 Bit): Bestimmt jenes Segment, auf das die CPU-Befehle für den Datenzugriff via LDA (),Y STA (),Y wirken (Indirect Segment Bank).

Segmentnutzung bei 64 KByte RAM:

  • Das Segment 1 nimmt das gerade aktive BASIC-Programm und sämtliche Variablen-Typen auf. Im Gegensatz zum C64 gelingt die RAM-Nutzung besser, da I/O- und ROM-Bereiche separat im Systemsegment genutzt werden.

Segmentnutzung bei 128 KByte RAM (ähnlich C128):

  • Im Segment 1 wird das gerade aktive BASIC-Programm gehalten und ausgeführt.
  • Im Segment 2 werden berechnete Daten, also sämtliche Variablen-Typen abgelegt.

Bei der Nutzung von 256 KByte RAM, werden die Segmente 2-4 wie folgt genutzt:

  • Im Segment 2 werden Felder (Array-Variablen) abgelegt.
  • Im Segment 3 werden einfache (nichtindizierte) Variablen abgelegt und es ist hier auch Platz für Commodore-DOS reserviert.
  • Im Segment 4 werden Zeichenketten (Strings) abgelegt.

Weblinks[Bearbeiten | Quelltext bearbeiten]

WP-W11.png Wikipedia: CBM-500-Serie