MOS Technology VIA
Der Versatile Interface Adapter MCS6522 (VIA) ist ein flexibler Ein-/Ausgabebaustein der Firma MOS Technology, der ursprünglich für 8-Bit-Mikroprozessorsysteme der 6500-Familie entwickelt wurde. Er verfügt über zwei 16-Bit-Intervalltimer, ein seriell-nach-parallel/parallel-nach-seriell-Schieberegister und zwei individuell programmierbare I/O-Ports mit je 8 Bit. Zur Kontrolle dieser Funktionen gibt es ein Interrupt-Flag-Register, ein Interrupt-Enable-Register und ein Paar Funktionskontrollregister.
VIA-Bausteine wurden in vielen Personal Computern der 1980er Jahre eingesetzt, außerdem in industriellen Steuercomputern und Einplatinencomputern.
Der 6522 wurde auch von Rockwell Semiconductor[1], Synertek[2], GTE/CMD[3], Western Design Center[4] und UMC in Lizenz gefertigt.
Registersatz
Ein VIA enthält einen Registersatz, der bei der Kommunikation zwischen VIA und Prozessor über einen Datenbus mit 8 Bit und einen Adressbus mit 4 Bit (also über 16 Adressen) angesprochen wird.[5]
Der Schieberegister-Fehler
Das im VIA enthaltene Schieberegister, welches 8 aufeinander folgende Bits ohne CPU-Unterstützung hätte senden bzw. empfangen können, weist einen Designfehler auf,[6] weshalb es nicht, wie ursprünglich geplant, zur Implementierung des CBM-Busses („seriellen IEC-Busses“) im Commodore VC 20 eingesetzt werden konnte. Stattdessen wurde diese Funktionalität komplett in Software implementiert.[7] Das hatte zur Folge, dass dieser Bus nur mit ca. 1/4 der Geschwindigkeit arbeiten konnte, als wenn man auf das Schieberegister hätte zurückgreifen können.[8]
Bei den CIAs 6526 des Nachfolgemodells C64 wurde das besagte Problem zwar behoben, aber in der Floppy VC1540 (und später der VC1541) wurden immer noch die VIA-Chips verwendet. Außerdem entschied sich das damalige Commodore-Marketing, die Rückwärtskompatibilität zum VC 20 wichtiger als die Floppygeschwindigkeit einzustufen, und so wurde dieselbe Technik mit ihrer geringen Geschwindigkeit beibehalten.[9] Erst beim C128 in Verbindung mit den Floppys VC1570 und VC1571 wurde die ursprünglich geplante Technik realisiert, die dann als Fast-Serial-Bus bezeichnet wurde.[10] Zusätzlich wurde mit diesen beiden Floppys der von Commodore sogenannte Burstmodus eingeführt, der ebenfalls das Schieberegister verwendete.[11]
In den CMOS-Ausführungen von GTE/CMD (G65SC22) und Western Design Center (W65C22) wurde der Fehler ebenfalls behoben.
Einzelnachweise
- R6522 Versatile Interface Adapter (VIA). (PDF; 8,5 MB) Abgerufen am 7. September 2020 (englisch).
- SY6522 Versatile Interface Adapter. (PDF; 5,9 MB) Abgerufen am 7. September 2020 (englisch).
- G65SC22 CMOS Versatile Interface Adapter With Interval Timer/Counters. (PDF; 13,6 MB) Abgerufen am 1. Januar 2021 (englisch).
- W65C22 Versatile Interface Adapter (VIA). (PDF; 727,4 KB) Abgerufen am 1. Januar 2021 (englisch).
- MCS6522 Versatile Interface Adapter. (PDF; 10,2 MB) S. 3, abgerufen am 7. September 2020 (englisch).
- SY6522 Versatile Interface Adapter. (PDF; 5,9 MB) S. 7, abgerufen am 7. September 2020 (englisch).
- Commodore Peripheral Bus: Part 4: Standard Serial. Abgerufen am 7. September 2020 (englisch): „The fact that it was now a pure software protocol ...“
- Brian Bagnall: Commodore. Variant Press (englisch): “... the only way for him to make the disk drive work was to slow down the transfer speed by four times.”
- Brian Bagnall: Commodore. Variant Press (englisch): “... but marketing really forced us into it.”
- Commodore Electronics Limited: 1571 Disk Drive User's Guide. APPENDIX F SERIAL INTERFACE INFORMATION (englisch).
- Commodore Electronics Limited: 1571 Disk Drive User's Guide. CHAPTER 10 BURST COMMANDS (englisch).