Könnte der 6502 mit einer Frontplatte im Altair-Stil gearbeitet haben?

Nov 19 2020

Ich habe gute Erinnerungen an die Programmierung des 6502, obwohl ich nie Hardware-Hacking damit gemacht habe. Ich stelle fest, dass der Altair mit seiner ikonischen Frontplatte auf dem Intel 8080 basierte und von da an die Ökosysteme Intel / Zilog und Motorola / MOS-Technologie mit begrenzter Frequenzweiche ganz getrennt entwickelt wurden. Das nächste, was ich einem 6502-Äquivalent des Altair kenne, war der SWTPC, der auf dem 6800 basierte und keine ähnliche Frontplatte hatte. Ich frage mich , ob eine Maschine wie die Altair könnte genauso gut um die 6502 gebaut worden war, in welchem Ausmaß dies ist eine Frage der Technik im Vergleich zu historischen Kontingenz.

Gemäß https://en.wikipedia.org/wiki/MOS_Technology_6502

Die Hauptänderung in Bezug auf die Chipgröße war die Eliminierung des Drei-Zustands von den Adressbusausgängen. Dies war im 6800 enthalten, um es ihm zu ermöglichen, mit anderen Chips im direkten Speicherzugriff (DMA) und in Co-Verarbeitungsrollen auf Kosten eines erheblichen Chipraums zu arbeiten. In der Praxis erforderte die Verwendung eines solchen Systems, dass die anderen Geräte ähnlich komplex waren, und Designer tendierten stattdessen dazu, Off-Chip-Systeme zu verwenden, um einen solchen Zugriff zu koordinieren. Der 6502 hat diese Funktion einfach entfernt, um seinem Design als kostengünstiger Controller gerecht zu werden, der für bestimmte Aufgaben verwendet wird und mit einfachen Geräten kommuniziert. Peddle schlug vor, dass jeder, der diesen Zugriffsstil tatsächlich benötigte, ihn mit einem einzigen 74158 implementieren könnte.

Das klingt nach Übertreibung; Eine Google-Suche legt nahe, dass der 74158 ein Quad-Multiplexer war. Vier davon plus Klebelogik wären also erforderlich gewesen, um einen Multiplexer für einen 16-Bit-Adressbus zu bauen.

Aber hängt die Altair-Frontplatte nicht in jedem Fall von der Fähigkeit ab, genau das zu tun, was beschrieben wird, die CPU in drei Zuständen zu versetzen, um sie als DMA-Gerät zu übernehmen? Wäre dies ein erhebliches Hindernis für den Aufbau eines solchen Systems um den 6502 (zumindest ohne zusätzliche Logik, die den Kostenvorteil der CPU selbst zunichte machen würde)?

Antworten

2 Raffzahn Nov 20 2020 at 00:04

Aber hängt die Altair-Frontplatte nicht in jedem Fall von der Fähigkeit ab, genau das zu tun, was beschrieben wird, die CPU in drei Zuständen zu versetzen, um sie als DMA-Gerät zu übernehmen? Wäre dies ein erhebliches Hindernis für den Aufbau eines solchen Systems um den 6502 (zumindest ohne zusätzliche Logik, die den Kostenvorteil der CPU selbst zunichte machen würde)?

Kommt darauf an, was und wie Sie erreichen wollen.

Für einen einfachen Schritt, dh die CPU einen einzelnen Befehl pro Schritt ausführen zu lassen, verwendet die klassische Lösung das NMI und verarbeitet alles andere in der Software, was der Grundidee des 6502 entspricht, in der Software so viel zu tun. Diese Methode wurde beispielsweise mit dem KIM verwendet. Wenn der SST-Schalter gesetzt ist, gibt jeder Befehl außerhalb des KIM-ROM (* 1), der abgerufen (markiert mit SYNC) wird, ein NMI aus, das vom ROM bedient wird und dem Monitor die Kontrolle zurückgibt, sodass jede Operation den Speicher untersuchen / ändern kann. E / A und auch Register (* 2), was durch die Übernahme des Busses nicht möglich ist.

Ein einziger Zyklus, dh die CPU muss einen und genau einen Taktzyklus pro Schritt ausführen, muss in Hardware durchgeführt werden. Hier geht es einfach ums Ziehen RDY. Dies funktioniert, weil jeder Zyklus eines 6502 ein Speicherzyklus ist. Durch Ziehen RDYwird dieser Speicherzugriff um so viele Zyklen verlängert, wie RDY aktiv ist.

Während die grundlegende Logik ziemlich einfach ist, wird sie beim Kombinieren von Funktionen etwas ausgefeilter. Die gesamte Schaltung für Einzelschrittzyklen und Anweisungen benötigt jedoch nur 6 TTL und passt auf eine einzelne Seite des Hardware-Handbuchs:

(Abbildung 3.1 auf S.125 der zweiten Ausgabe vom Januar 1976 )

Natürlich kann nur eine Statik den Buszustand und alle Signale untersuchen. Um Speicher unabhängig von der CPU lesen / schreiben zu können, wäre ein Satz von Tristate-Puffern und / oder Multiplexern erforderlich, um den Bus zu übernehmen, während die CPU angehalten ist. Plus die üblichen Schalter und LED ofc.

Insgesamt wäre der Hardware-Aufwand mit der Altairs-Frontplatte vergleichbar.


* 1 - Dies ist nur das KIM-ROM (6530-002 at$1C000), not the cassette extension (6530-003 at $1800).

1 supercat Nov 20 2020 at 01:50

Selbst ohne Treiber mit drei Zuständen hätte man einen Computer mit einer Altair-Frontplatte ziemlich einfach bauen können, indem man Schalter mit drei Positionen verwendet hätte, die einen Kontakt für die mittlere Position enthielten, der die CPU verbinden würde. Damit die Maschine ausgeführt werden kann, müssen sich die Adress- und Datenschalter in der mittleren Position befinden, damit die CPU sie steuern kann. Ein solches Design könnte sinnvoll sein, wenn es ein paar Klapphebel enthält, mit denen Gruppen von acht Schaltern gleichzeitig hoch oder niedrig geschaltet werden können.

Alternativ könnte ein System einen 25-poligen Schalter verwenden, um READY (Einfrieren der Programmausführung mit einem Kontakt, der zuerst unterbrochen werden sollte) zu aktivieren, die Adresse und Daten von der CPU zu trennen und die Adresse mit der Frontplatte und die Daten mit einem zehnpoligen zu verbinden Schalter, der die Lesefreigabe trennt, die Datenschalter verbindet und die Schreibfreigabe aktiviert. Während 25-polige Schalter wie eine Monstrosität erscheinen mögen, waren mechanische mehrpolige Schaltanordnungen vor den Tagen elektronischer Steuerungssysteme eher üblich. Eine robuste Methode zum Umschalten wäre die Verwendung einer Gruppe von rollengesteuerten Mikroschaltern, die von Nocken betätigt werden, aber selbst Kontakte, die auf einer Leiterplatte gleiten, hätten wahrscheinlich funktioniert.