„CBM-Bus“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
lf
Zeile 1: Zeile 1:
Der '''CBM-Bus''' ist ein von [[Commodore International|Commodore]] für ihre [[Heimcomputer]]-Serie entwickelter serieller [[Bus (Datenverarbeitung)|Bus]].
Der '''CBM-Bus''' ist ein von [[Commodore International|Commodore]] für ihre [[Heimcomputer]]-Serie entwickelter serieller [[Bus (Datenverarbeitung)|Bus]].


Er ist eine [[Proprietär|proprietäre]] serielle Variante des [[IEEE-488]]-Busses und dient zum Anschließen von Peripheriegeräten (hauptsächlich [[Diskette]]nlaufwerke und Drucker). Der Bus fand sich in den [[MOS Technology 6502#Varianten des 6502|6502]]-basierten Commodore-Heimcomputern vom [[Commodore VC 20|VC 20]] bis zum [[Commodore 128|C128]], während die professionellen [[PET 2001|PET/CBM]]-Rechner den genormten parallelen IEEE-488-Bus verwendeten. Die Rechner der Commodore-[[Amiga]]-Serie verwendeten keine derartige Schnittstelle, stattdessen kam bei den größeren bzw. schnelleren Modellen ([[Amiga_3000|A3000]]er-Versionen, [[Amiga_4000T|A4000T]]) der [[Small_Computer_System_Interface|SCSI]]-Bus zum Einsatz.
Er ist eine [[Proprietär|proprietäre]] serielle Variante des [[IEEE-488]]-Busses und dient zum Anschließen von Peripheriegeräten (hauptsächlich [[Diskette]]nlaufwerke und Drucker). Der Bus fand sich in den [[MOS Technology 6502#Varianten des 6502|6502]]-basierten Commodore-Heimcomputern vom [[Commodore VC 20|VC 20]] bis zum [[Commodore 128|C128]], während die professionellen [[PET 2001|PET/CBM]]-Rechner den genormten parallelen IEEE-488-Bus verwendeten. Die Rechner der Commodore-[[Amiga]]-Serie verwendeten keine derartige Schnittstelle, stattdessen kam bei den größeren bzw. schnelleren Modellen ([[Amiga 3000|A3000]] bis hin zum [[Amiga 4000|A4000T]]) der [[Small Computer System Interface|SCSI]]-Bus zum Einsatz.


Der CBM-Bus wurde in der Literatur der 1980er-Jahre oft auch als (serieller) '''IEC-Bus''' bezeichnet. Dies ist aber nicht korrekt, da der CBM-Bus ''nicht'' durch die [[International Electrotechnical Commission]] standardisiert war.
Der CBM-Bus wurde in der Literatur der 1980er-Jahre oft auch als (serieller) '''IEC-Bus''' bezeichnet. Dies ist aber nicht korrekt, da der CBM-Bus ''nicht'' durch die [[International Electrotechnical Commission]] standardisiert war.

Version vom 8. Dezember 2013, 04:22 Uhr

Der CBM-Bus ist ein von Commodore für ihre Heimcomputer-Serie entwickelter serieller Bus.

Er ist eine proprietäre serielle Variante des IEEE-488-Busses und dient zum Anschließen von Peripheriegeräten (hauptsächlich Diskettenlaufwerke und Drucker). Der Bus fand sich in den 6502-basierten Commodore-Heimcomputern vom VC 20 bis zum C128, während die professionellen PET/CBM-Rechner den genormten parallelen IEEE-488-Bus verwendeten. Die Rechner der Commodore-Amiga-Serie verwendeten keine derartige Schnittstelle, stattdessen kam bei den größeren bzw. schnelleren Modellen (A3000 bis hin zum A4000T) der SCSI-Bus zum Einsatz.

Der CBM-Bus wurde in der Literatur der 1980er-Jahre oft auch als (serieller) IEC-Bus bezeichnet. Dies ist aber nicht korrekt, da der CBM-Bus nicht durch die International Electrotechnical Commission standardisiert war.

Kennzeichnung

Im Unterschied zu IEEE 488 (amerikanisch) oder dem IEC-625-Bus (international) erfolgt die Datenübertragung beim CBM-Bus seriell. Dadurch werden weniger Signalleitungen erforderlich, so dass Einsparungen bei den Ein/Ausgabe-Chips als auch an den Kabeln und den zugehörigen Steckverbindern möglich wurden. Zusätzlich werden beim CBM-Bus einige Funktionen, für die bei IEEE 488 eigene Steuerleitungen vorgesehen sind, als speziell formatierte Dateninhalte über die normale Datenleitung übertragen. Letztlich werden somit nur 5 statt der 24 Leitungen des IEEE-488-Standardsteckers gebraucht. Das Busprotokoll ist aber bei beiden Bussen sehr ähnlich.

Anzahl der nutzbaren Geräte

Theoretisch können bis zu 31 Geräte angeschlossen werden (wobei jedes Gerät ab dem zweiten kettenartig an das jeweils vorige angeschlossen wird), das Betriebssystem nutzte davon 27 Geräteadressen (4 bis 30, 31 ist für untalk/unlisten reserviert) aus. Praktisch liegt die Obergrenze jedoch bei etwa 8 Geräten, was sich aus der möglichen Stromstärke der Ausgangstreiber-Bausteine und dem Strombedarf der Eingangstreiber ergibt. Die Anzahl war üblicherweise völlig ausreichend.

Üblicherweise wurden die Adressen 4 und 5 für Drucker verwendet, 6 für Plotter, und 8 bis 11 für Laufwerke. Diese Zuordnung ist dem Computer selbst jedoch nicht bekannt; so war es etwa durchaus möglich, den Computer anzuweisen, ein Programm auf den Drucker zu "speichern", was zum Ausdruck eines "Zeichensalats" führte.

Die Nummern 0 bis 3 waren für "unintelligente" Peripheriegeräte ohne eigene CPU reserviert, die nicht über den CBM-Bus angeschlossen wurden: 0 für die Tastatur, 1 für die Datasette, 2 für Modems und andere über RS-232 angeschlossene Geräte und 3 für den Bildschirm. Das Betriebssystem sendet daher diese Gerätenummern nicht auf den Bus, sondern verwendet die jeweiligen internen Zugriffsroutinen.

Steuerchip MOS 6522

Erkauft wird der Preisvorteil des seriellen Aufbaus durch eine stark verringerte Übertragungsgeschwindigkeit. Da der verwendete Steuerchip MOS Technology VIA (MOS 6522) sich kurz vor dem Verkaufsstart des VC-20 als fehlerhaft in der Serialisierungs- und Parallelisierungseinheit herausstellte, musste diese Aufgabe durch eine in kürzester Zeit "zusammengeflickte" und suboptimal programmierte Firmware vom Prozessor übernommen werden, wodurch die Geschwindigkeit nochmals stark absank. Durch den kleinen Speicher dieses Rechners und die dementsprechend geringe Größe seiner Programme fiel die niedrige Ladegeschwindigkeit jedoch beim VC-20 noch nicht so stark ins Gewicht. Für damalige Drucker ist die Geschwindigkeit ohnehin mehr als ausreichend.

Steuerchip MOS CIA

Obwohl der C64, im Unterschied zum VC-20, die in dieser Hinsicht fehlerfreien CIA-Chips (MOS 6526) verwendete, wurde aus Gründen der Rückwärtskompatibilität zum VC-20 und zu dessen Floppy VC1540, von der noch große Lagerbestände vorhanden waren, weiter die suboptimale Softwareversion des Busses verwendet. Auch wurde im speziell für den C64 geschaffenen Diskettenlaufwerk VC1541 weiterhin nicht der CIA, sondern der billigere, aber fehlerhafte VIA-6522-Chip verbaut. Da beim C64, anders als beim VC-20, der Prozessor vom Videochip einmal je Textzeile für jeweils 40 Taktzyklen angehalten wird, musste die Busgeschwindigkeit im Vergleich zum VC-20 sogar noch weiter abgesenkt werden, damit der C64 während dieses Haltezustandes kein Bit verpassen konnte. Im Zusammenhang mit dem sehr viel größeren Speicher dieses Rechners stiegen die Ladezeiten für umfangreiche Programme in den Bereich mehrerer Minuten an.

Turbotreiber

So wurden diverse externe Turbo-Lösungen zur schnellen Floppy-Ansteuerung beim C64 über seine CIA-Chips populär. Diese verwenden entweder zusätzliche Hardware (Parallelkabel) oder stark optimierte Busprotokolle auf der vorhandenen Hardware, wobei gleichzeitig die GCR-Dekodierung der Daten, die Datenflusskontrolle und die softwaremäßige Serialisierung und Deserialisierung verbessert waren. Indem bei diesen sogenannten Schnell-Ladern stets der Computer statt des jeweils sendenden Partners den Bustakt vorgab, entfiel auch das Problem der im Haltezustand verpassten Bits.

Die meisten kommerziellen Programme verwendeten eine Vorgehensweise, bei der zunächst ein kleines Beschleunigerprogramm mit der Standardmethode geladen wurde, welches dann in den RAM-Speicher von Computer und Laufwerk zueinander passende Routinen zum schnelleren Busbetrieb ablegte. Anschließend konnte das eigentlich gewünschte Programm mit hoher Geschwindigkeit geladen werden. Da viele Programme sich nur durch den Reset des Computers beenden ließen, musste das Beschleunigerprogramm häufig neu geladen werden, was zusammen mit dem Diskettenwechsel den Zeitvorteil deutlich reduzierte.

Es gab auch Dauerlösungen, die auch bei eigenen Programmen ohne weitere Arbeit ein schnelles Laden ermöglichten. Oft waren diese in Form eines Steckmoduls für den Computer realisiert; dies enthielt direkt die computerseitige Routine für den schnellen Busbetrieb, während die laufwerksseitige Routine jeweils vor dem Laden automatisch an das Laufwerk übermittelt wurde. Andere Lösungen verwendeten auf beiden Seiten um entsprechende Routinen erweiterte ROMs, welche direkt in Computer und Laufwerk eingebaut wurden, und teilweise zusätzlich ein paralleles Kabel zwischen dem Userport des Rechners und einigen ansonsten ungenutzten Pins eines Chips im Laufwerk. Laufwerksseitig wurde meist ein zusätzlicher DIP-Sockel mit angelötetem Kabel unter diesen Chip eingebaut, zusätzlich musste eine Öffnung in das Laufwerksgehäuse geschnitten werden, um das Kabel hindurchzuführen. Diese Lösungen waren aufwendiger, erreichten aber die beste Leistung. Gängige Hardware-Lösungen waren z. B. SpeedDOS, DolphinDOS und JiffyDOS.

Frühe Schnell-Lader erreichten ca. fünffache Ladegeschwindigkeiten, raffiniertere spätere Varianten schafften bis zum 25- oder 30-fachen der normalen Geschwindigkeit.

Der schnelle CBM-Bus auf dem C128

Erst auf dem C128 wurde endlich die lange geplante hardwaremäßige Serialisierung genutzt und somit die Busgeschwindigkeit bereits ab Werk auf einen erträglichen Wert gesteigert. Voraussetzung ist die Verwendung der speziellen C128-Laufwerke VC1570, VC1571 oder VC1581, da bei diesen auch auf Laufwerksseite der fehlerfreie CIA-Chip zum Einsatz kommt.