PROM de son pour PINK PANTHER

Pinup
Pink Panther

PROM audio

Pour carte son MA-55 (SYSTEM 80)
Version corrigée des bugs
affectant la PROM originale.

Historique

La PROM audio du Pink Panther semble fonctionner correctement, pourtant elle comporte plusieurs bugs dont l'un est majeur.

Par un heureux concours de circonstances, ce bug n'affecte pas une carte originale. En revanche, sur un adaptateur 6530/6532, le bug conduit au plantage de la carte lorsqu'elle joue certain sons. Ces bugs ont été découverts et mis en évidence, lors de l'étude des cartes MA-55 et de l'analyse de la PROM audio du Pink Panther (voir l'article à ce sujet).

A la fin des années 1980, le problème d'approvisionnement en CPU 6503 et RRIOT 6530 avait été résolu par la société ManilaMatic (MM Computer), en concevant une carte de substitution avec des circuits plus conventionnels.

Carte ManilaMatic comportant un CPU 6502, un RIOT 6532 et une EPROM:
Carte audio ManilaMatic

Plus tard, en 2004, Olivier Houssard et Pascal Janin, ont fabriqué et publié les plans d'un adaptateur 6530/6532. Celui-ci utilisait le même principe que la carte ManilaMatic pour le remplacement du RRIOT 6530 par un RIOT 6532 + EPROM.

Copié et cloné, on trouvera par la suite dans le commerce des versions améliorées de cet adaptateur, certaines comportant des mémoires de capacité plus importante.

Toutes ces cartes ont en commun, qu'aucune ne fonctionne avec le Pink Panther et jusqu'à présent, personne n'a été capable d'expliquer pourquoi.

Explications techniques

Le circuit RRIOT 6530 est un composant complexe dont l'une des particularités est d'intégrer une PAL de décodage du plan d'adressage. Le contenu de cette PAL n'étant pas lisible, les concepteurs de la carte ManilaMatic ont reproduit ce décodage par déduction logique. Toutefois, le décodage réalisé, même s'il est parfaitement fonctionnel, n'est pas strictement identique à celui de la PAL interne.

La PROM du Pink Panther comporte un bug majeur: une erreur de programmation conduit le processeur à exécuter du code à une adresse érronée. La séquence à executer est 3B A6 3C, ce qui ne correspond à aucune instruction officielle du 6503. La suite de la séquence en mémoire, correspond au code devant normalement être executé.

Cette bizarerrie avait bien été détectée par les concepteurs de l'émulateur VpinMame qui avaient alors mis en place une solution de contournement.

Dans la séquence prévue, il est impératif de ne pas modifier le contenu des registres A et X du 6503. La séquence 3B A6 3C est en réalité une opération tout à fait légale pour un 6503 et fait partie des instructions non officielles. Il s'agit de l'instruction RLA $3CA6,Y dont le résultat peut modifier le registre A. Selon le décodage d'adresse réalisé, le comportement est différent: sur une carte originale le registre A reste inchangé, sur une carte ManilaMatic le registre A est modifié. Dans ce dernier cas, la séquence initialement prévue est perturbée et se termine par un crash du processeur.

Pour corriger ce problème, on pourrait améliorer le décodage d'adresse pour obtenir l'équivalent de celui original du 6530. Mais cette solution coûteuse en hardware, n'est pas satisfaisante. En effet, certains adaptateurs changent le processeur pour un 6502 et selon les constructeurs, le jeu d'instruction "non officielles" n'est pas garantie. On ne peut donc être certain que l'instruction RLA fonctionnera toujours.

La solution la plus simple et la plus éfficace, consiste à corriger le bug de la PROM et lui faire executer la séquence initialement prévue.

Installation

Les PROM vierges HM7643 étant introuvables et peu pratiques à programmer, ce composant devra la plupart du temps être remplacé par un adaptateur.

Plusieurs modèles existent, le plus simple étant équipé d'une mémoire EPROM 2716 (ou EEPROM 2816), le contenu de la HM7643 (1 Ko) est alors codé deux fois dans la 2716 (2 Ko). D'autres sont équipés avec des mémoires de capacité plus importante, contenant plusieurs PROM audio, sélectionnables par DIP switches. Il existe également des adaptateurs de remplacement 6530/6532, sur lesquels la mémoire son est combinée avec celle du 6530.

Carte MA-55 équipée d'un adaptateur 6530/6532:
Adaptateur 6530/6532 Adaptateur 6530/6532

Comme on peut le voir sur la première photo, le CPU 6503 est remplacé par un connecteur. Celui-ci est relié à notre banc de test qui permet un contrôle complet de ces cartes (RAM, ROM, PROM, I/O, Timer).

PROM audio corrigée

Afin de rester le plus standard possible, nous fournissons un binaire de base correspondant au contenu de la HM7643 sur 1 Ko. Libre à chacun ensuite d'utiliser ce code et de l'enregistrer de la façon adéquate en fonction de son matériel. Ce fichier binaire est disponible gratuitement en téléchargement.

PROM audio corrigée du PINK PANTHER:
Télécharger

Distribution

Cette réalisation est disponible gratuitement.

Gratuit

Conditions d'utilisation

Toute utilisation en dehors du cadre privé devra obligatoirement faire mention de l'origine de ce programme (par exemple: PINK PANTHER "version corrigée Flipprojets").

Dernière mise à jour de cette page: 7 Août 2018