Le 6502 aurait-il pu fonctionner avec un panneau avant de style Altair?

Nov 19 2020

J'ai de bons souvenirs de la programmation du 6502, même si je n'ai jamais fait de piratage matériel avec. Je remarque que l'Altair, avec son panneau avant emblématique, était basé sur l'Intel 8080, et à partir de là, les écosystèmes Intel / Zilog et Motorola / MOS Technology se sont développés assez séparément avec un croisement limité. La chose la plus proche que je connaisse d'un équivalent 6502 de l'Altair était le SWTPC qui était basé sur le 6800 et n'avait pas de panneau avant similaire. Je me demande si une machine comme l'Altair aurait pu être construite aussi facilement autour du 6502, dans quelle mesure c'est une question de technologie par rapport à une contingence historique.

Selon https://en.wikipedia.org/wiki/MOS_Technology_6502

Le principal changement en termes de taille de puce a été l'élimination des trois états des sorties du bus d'adresse. Cela avait été inclus dans le 6800 pour lui permettre de fonctionner avec d'autres puces dans des rôles d'accès direct à la mémoire (DMA) et de co-traitement, au prix d'un espace de puce important. En pratique, l'utilisation d'un tel système exigeait que les autres dispositifs soient d'une complexité similaire, et les concepteurs avaient plutôt tendance à utiliser des systèmes hors puce pour coordonner un tel accès. Le 6502 a simplement supprimé cette fonctionnalité, conformément à sa conception en tant que contrôleur peu coûteux utilisé pour des tâches spécifiques et communiquant avec des appareils simples. Peddle a suggéré que toute personne ayant réellement besoin de ce style d'accès pourrait l'implémenter avec un seul 74158.

Ce dernier sonne comme une hyperbole; une recherche sur Google suggère que le 74158 était un multiplexeur quadruple, donc quatre d'entre eux plus une logique de colle auraient été nécessaires pour construire un multiplexeur pour un bus d'adresse 16 bits?

Mais dans tous les cas, le panneau avant de l'Altair ne dépend-il pas de la capacité à faire exactement ce qui est décrit, à trois états du CPU afin de prendre le relais en tant que périphérique DMA? Serait-ce un obstacle important à la construction d'un tel système autour du 6502 (du moins sans avoir à fournir une logique supplémentaire qui aurait tendance à annuler l'avantage de coût du processeur lui-même)?

Réponses

2 Raffzahn Nov 20 2020 at 00:04

Mais dans tous les cas, le panneau avant de l'Altair ne dépend-il pas de la capacité à faire exactement ce qui est décrit, à trois états du CPU afin de prendre le relais en tant que périphérique DMA? Serait-ce un obstacle important à la construction d'un tel système autour du 6502 (du moins sans avoir à fournir une logique supplémentaire qui aurait tendance à annuler l'avantage de coût du processeur lui-même)?

Cela dépend de ce que vous voulez atteindre et comment.

Pour un simple pas à pas, c'est-à-dire laisser le CPU exécuter une seule instruction par étape, la solution classique utilise le NMI et gère tout le reste dans le logiciel, ce qui est conforme à l'idée de base 6502 de faire autant dans le logiciel. Cette méthode a par exemple été utilisée avec le KIM. Lorsque le commutateur SST est réglé, chaque instruction en dehors de la ROM KIM (* 1) récupérée (marquée par SYNC) émettra un NMI, qui est servi par la ROM, redonnant le contrôle au moniteur, permettant à toute opération d'examiner / modifier la mémoire, E / S et aussi registres (* 2), ce qui n'est pas possible en prenant le bus.

Un cycle unique, c'est-à-dire laisser le CPU exécuter un et exactement un cycle d'horloge par étape, doit être effectué dans le matériel. Ici, il s'agit simplement de tirer RDY. Cela fonctionne parce que chaque cycle d'un 6502 est un cycle de mémoire, donc le tirage RDYétendra cet accès à la mémoire pour autant de cycles que RDY est actif.

Bien que la logique de base soit plutôt simple, elle devient un peu plus sophistiquée lors de la combinaison de fonctions. Néanmoins, l'ensemble des circuits pour les cycles et instructions pas à pas simples ne nécessite que 6 TTL et tient sur une seule page du manuel du matériel:

(Figure 3.1 à la page 125 de la deuxième édition de janvier 1976 )

Bien sûr, cela ne laisse qu'un seul examen statique de l'état du bus et de tous les signaux. Pour pouvoir lire / écrire de la mémoire indépendamment du processeur, un ensemble de tampons à trois états et / ou de multiplexeurs serait nécessaire pour prendre en charge le bus pendant que le processeur est arrêté. Plus le groupe habituel d'interrupteurs et de LED ofc.

Dans l'ensemble, l'effort matériel serait comparable avec le panneau avant Altairs.


* 1 - Ce n'est que la ROM KIM (6530-002 à$1C000), not the cassette extension (6530-003 at $1800).

1 supercat Nov 20 2020 at 01:50

Même sans pilotes à trois états, on aurait pu assez facilement construire un ordinateur avec un panneau avant de style Altair en utilisant des commutateurs à trois positions qui comprenaient un contact pour la position médiane qui connecterait le processeur. Pour que la machine fonctionne, les commutateurs d'adresse et de données doivent être en position médiane pour permettre au processeur de les piloter. Une telle conception pourrait être raisonnablement pratique si elle comprenait deux leviers articulés qui permettraient à des groupes de huit commutateurs d'être commutés simultanément vers le haut ou le bas.

Alternativement, un système pourrait utiliser un interrupteur à 25 pôles pour affirmer READY (gel de l'exécution du programme avec un contact qui devrait se rompre en premier), déconnecter l'adresse et les données du CPU, et connecter l'adresse au panneau avant et les données à un dix pôles. commutateur qui déconnecterait la validation de lecture, connecterait les commutateurs de données et affirmerait la validation en écriture. Alors que l'interrupteur à 25 pôles peut sembler une monstruosité, les agencements de commutation mécaniques à plusieurs pôles étaient quelque peu courants avant les jours des systèmes de commande électroniques. Une manière robuste de faire la commutation consisterait à utiliser un groupe de micro-interrupteurs actionnés par des rouleaux actionnés par des cames, mais même des contacts glissant sur une carte de circuit imprimé auraient probablement fonctionné.