Design-Fehler am Serial-Port?

  • Ich höre gerade die erste Folge des "Retrobits"-Podcast, in der es um den VC20 geht.


    Der Autor erzählt darin, dass ein "Glitch" im Computer dazu geführt hat, dass die Floppy (die 1540) nur mit etwa einem Sechstel der möglichen Geschwindigkeit gearbeitet hat.


    Dann sagt er, dass es Commodore nicht gelungen ist, diesen Fehler zu beheben, so dass auch die Nachfolger C64 und C128 damit auf den Markt kamen.


    Vom C64 habe ich anderswo gelesen, dass der Grund für die langsame Datenübertragung am Serialbus auf ein Missverständnis zwischen Commodore und dem Platinenhersteller zurückgeht und dass der Fehler dann aus Kompatibilitätsgründen beibehalten wurde.


    Meine Frage: Was hat es mit der Aussage aus dem Podcast auf sich? Stimmt die so? Haben noch andere Commodore-Homecomputer das Problem?


    Microprof.

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Bei Wikipedia steht:

    Zitat

    Langsamkeit und Floppy-Speeder


    Geradezu sprichwörtlich war die Langsamkeit der 1541 (deshalb unter Usern auch Schneckenkarussell genannt). Bereits das Lesen der Daten von der Diskette in den internen Speicher des Laufwerks war nicht optimal gestaltet. Vor allem aber war die Langsamkeit durch die umständliche Programmierung der Datenübertragung zwischen Laufwerk und Rechner über den seriellen IEC-Bus bedingt. Diese wurde ursprünglich für die zum VC 20 passende VC1540 entwickelt, da der damals im VC-20 eingesetzte Interface-Chip MOS 6522 VIA einen Fehler in der automatischen seriellen Übertragung enthielt (in unregelmäßigen Abständen wurden 9 statt 8 Bit übertragen). Daher wurde die Übertragung so organisiert, dass jedes einzelne Bit vom Prozessor explizit übertragen werden muss – ein äußerst langsamer Prozess. Bei dem kleinen Speicher des VC-20 machte das nicht so viel aus wie später auf dem C64. Der Interface-Chip des C64, der MOS 6526 CIA, enthielt diesen Fehler zwar nicht, aber zwecks Rückwärtskompatibilität zu den VC1540-Laufwerken (die ebenfalls den fehlerhaften 6522 enthielten) entschloss man sich, für den C64 kein ganz neues Laufwerk zu entwickeln.


    (Quelle: http://de.wikipedia.org/wiki/VC1541)

  • Das macht es deutlich. Danke!

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • So steht es in der Load 1...


    Stefan


    In der Tat:


    Zitat

    Schuld war ein Fehler auf der Haupt- platine des C64. Die Entwickler staun- ten nicht schlecht, als das Platinenwerk bei der Korrektur des Platinenlayouts einfach einige (angeblich unnötige) Leiterbahnen wegließ, weil man sich deren Funktion nicht erklären konnte. Erst nach 100.000 produzierten Plati- nen erreichte ein Produktionsmuster die Commodore-Entwicklungsabtei- lung und der zuständige Ingenieur platzte regelrecht vor Zorn, denn diese „wegradierten“ Leiterbahnen waren für den High-Speed-Modus der seriel- len Datenübertragung zu den Peri- pheriegeräten zuständig. Nun fehlten diese wichtigen Leiterbahnen, und das Laufwerk erreichte nur einen Bruchteil der geplanten Geschwindigkeit.


    Das ist dann wohl aber nur halb richtig, oder?

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Heißt das, dass sowohl die Platine falsch geätzt ist als auch der VIA-Chip nen Design-Fehler hat? Und ist dann beides zusammen der Grund für die Langsamkeit? (Der Platinen-Ätzfehler wird dann doch wohl aber nicht im C128 beibehalten worden sein, oder doch?)

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Es geht ja hier um zwei verschiedene Computer. Der Fehler im MOS 6522 vom VC 20 war erstmal die Ursache für die Langsamkeit, weil man jedes Bit einzeln übertragen musste. Daran hat man aus Gründen der Kompatibilität zu den älteren Laufwerken später nichts mehr geändert.


    Der C-64 sollte wohl zusätzlich einen High-Speed-Modus bekommen, der Aufgrund des Platinen-Ätzfehlers aber nicht nutzbar war.

  • Danke. Also ist beides richtig und der C64 damit um einen Fehler reicher als der VC20. :)

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Zitat

    Nö, ist belegt.
    Hatte damals als "Gegenleser" auch nachgefragt.
    Zitat kann ich Dir wahrscheinlich noch schicken.
    Im Laufe des Tages.


    Stefan


    Im Laufe welchen Tages? ;)


    Mich würde Originalquelle und Zitat auch sehr interessieren.


    Technisch kann ich das ganze nicht ganz nachvollziehen. Der überlieferten Stückzahl an Platinen zufolge muss es ja die erste NTSC C64 Platine betroffen haben.


    Geht man davon aus, dass die Modifikation darin besteht, einfach zwei Drähte zwischen dem Hardware-Schieberegister und den Pins am IEC Bus hinzuzufügen, dann müssten die betreffenden Leitungen im Platinenlayout ja wenigstens in direkter Nachbarschaft verlaufen und irgendwo eine "verdächtige" Lücke existieren. Liesse sich ja nachprüfen, wenn jemand hier diese Platinenversion besitzt.


    Ob das ganze überhaupt zuverlässig funktioniert hätte, wage ich auch stark zu bezweifeln. Beim C128 hat Commodore mit einigem Aufwand noch Leitungstreiber eingeflickt, weil sonst die Funktion bei mehr als einem angeschlossenen Laufwerk (oder Drucker) nicht mehr sicher gegeben gewesen wäre.


    Auch haben sowohl die Leitungen des IEC ihre eigenen pull-up Widerstände (1k Ohm) als auch die Leitungen der Schieberegister (3,3k Ohm). Das sieht nicht so aus, als wäre eine Trennung nicht vorgesehen gewesen, sondern zufällig passiert. Sonst wäre ja nur ein Satz von Widerständen vorhanden.


    Was mir auch nicht passt, dass es im Kernal keine Unterstützung für das Schieberegister gibt. Dafür dass schon Platinen im Produktionsmassstab gemacht wurden, ist das sehr seltsam.


    Wenn Commodore gewollt hätte (und die Software im Kernal gewesen wäre), dann hätte die 1541 mit Userport-Anschluss gebaut werden können. Da liegen sowohl die ATN Leitung des seriellen Bus an als auch die Signale der Schieberegister ...


    Irgendwie glaube ich die Geschichte ist nicht komplett erzählt mit dem Layoutfehler der Platine!




    Gruß x1541

    Zuletzt repariert:

    10.11. defektes µT RAM im Apple //e ersetzt

    10.11. defektes µT RAM im Atari 130XE ersetzt

    12.11. VC20 mit black screen: defekter Videotransistor ersetzt

  • Da wird die Sache ja doch noch einmal spannend ...

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Das ist interessant. Danke. Ist das die Übersetzung des Bragnall Buchs? Ich habe die erste Ausgabe auf Englisch und kann mich an die Passage nicht erinnern.


    Da sind etliche sachliche Fehler und falsche Zahlenwerte drin. Kann aus der Übersetzung kommen, oder aus der falschen Erinnerung der Interviewpartner.


    Z.B. weiss man sehr genau was der damals versaubeutelte Übertragungsmodus gebracht hätte. Man muss sich nur die 1571 ansehen. Allerdings hat diese noch schnelle Dekodiertabellen, die der geplanten 1541 gefehlt hätten. Die wäre maximal auf den Speed einer 2031 gekommen. Die schafft vielleicht 3-4 mal den Speed der realen 1541. Dank der grottigen Dekodierroutinen! Von den 20-30 mal die da geschrieben werden kann eine 1571 nur träumen. Das schafft die nur mit Edelspeedern wie Dolphindos oder Prospeed 1571 GTI oder Professional DOS 1571.


    Und nochmal zurück zu den C64 Platinen. Es gibt eine Rev 6 von 1982, die in dem Prototypen #19 von Al Charpentier verbaut war. In Verkaufsversionen ist nur die Rev A bekannt. Ich glaube die hätten wohl die Möglichkeit gehabt, den Fehler bis zur Rev A zu fixen. Zumal Rev 6 impliziert, dass vorher 5 Platinenruns gemacht wurden, und die Rev 6 die Version war, die bei der C64 Vorstellung zum Einsatz kam!


    Und nach wie vor glaube ich, die hätten den schnellen Modus nicht sinnvoll nutzen können, weil die Treiberbausteine des C128 fehlen ;) Der 6526 Chip war brandneu und nicht erprobt. Die Implementation des C64 war unerprobt und nach dem Reißbrett gebaut. Vielleicht gut, dass es "vergessen" wurde.


    Gebt mir bitte nie dieses Buch in die Hand, ich würde es mit meinem Rotstift entweihen ;)


    Gruß x1541

    Zuletzt repariert:

    10.11. defektes µT RAM im Apple //e ersetzt

    10.11. defektes µT RAM im Atari 130XE ersetzt

    12.11. VC20 mit black screen: defekter Videotransistor ersetzt