[SHARP MZ-700] CGROM E/J/G
Publié : 09 avr. 2020 02:00
Me revoilà pour une autre réalisation sur le MZ-700.
Cette machine est en deux versions : européenne et japonaise. L'européenne est en PAL, contient un jeu de caractère (CGROM) et un moniteur (ROM) "européens". La japonaise est en NTSC, contient un jeu de caractère et un moniteur "japonais".
La partie vidéo n'est pas un gros problème car les programmes n'en font pas cas - la fréquence du CPU, bien qu'impactée par la fréquence principale différente selon PAL ou NTSC est divisée de manière à donner du 3.5 MHz et on a du 40x25 en 8 couleurs dans les deux cas.
Le moniteur présente quelques différences qui semblent avoir un impact assez limité pour la plupart des programmes. L'impact le plus majeur, c'est l'utilisation du caractère codé $05 du côté du moniteur japonais qui sert de bascule majuscule/miniscule pour les lettres latines ou de bascule hiragana/katakana, que l'on ne retrouve pas sur le moniteur européen.
Je dis européen mais je devrais dire occidental.
Il y a un certain nombre de jeux du côté Japonais qui exploitent à fond le MZ-700 en dépit de ces limites en partie liées à sa rétrocompatibilité avec le MZ-80 K mais qui visuellement donne mal à l'écran principalement à cause du CGROM européen.
J'avais donc besoin d'un échangeur de CGROM en temps réel et avec le concours de @Fred_72 (que je remercie beaucoup au passage) il a pu être réalisé sous forme d'un prototype fonctionnel. Le challenge est qu'il y a le clavier au-dessus et il laisse très peu de place !
Pour ce faire, j'avais besoin d'une ROM de 8 Ko (2 jeux de 512 caractères) mais la VRAM des attributs de couleur avait le bit D3 inutilisé (alors qu'il y un connecteur associé sur la carte-mère) et le bit D7 utilisé pour sélectionner la première ou seconde moitié du jeu de 512 caractères. Quoi de plus naturel que d'utiliser la paire D7 et D3 pour sélectionner le premier, second, troisième ou quatrième quart d'un jeu de 1024 caractères ?
Du coup, il nous fallait a minima une ROM de 16 Ko (2 jeux de 1024 caractères). Pour cet effet, on a choisi le brochage qui nous permet d'utiliser des EEPROM 27128/256/512. Le circuit électronique a été conçu de façon à pouvoir également intégrer la ROM d'origine (juste l'un ou l'autre).
EDITION : vu les couleurs noir et blanc des fils sur la photo suivante, c'est en fait le VCC au milieu du l'entête et non le GND. J'ai manqué de vigilence au moment de l'édition de la photo.
L'entête à 5 broches n'en utilise que 4 : les trois broches à droite vont servir de GND/A12/VCC pour les brancher sur un capteur sensitif qui servira à basculer en temps réel entre le jeu de caractère européen (par défaut) et japonais.
Ce capteur, je le place à l'intérieur de la coque sans que j'ai besoin de la charcuter.
Sinon à côté de ça, j'ai ouvert un projet public pour un circuit imprimé qui place plus en arrière la ROM pour donner plus d'espace car je crains que la hauteur actuel du prototype est un peu juste par rapport au clavier.
Cette machine est en deux versions : européenne et japonaise. L'européenne est en PAL, contient un jeu de caractère (CGROM) et un moniteur (ROM) "européens". La japonaise est en NTSC, contient un jeu de caractère et un moniteur "japonais".
La partie vidéo n'est pas un gros problème car les programmes n'en font pas cas - la fréquence du CPU, bien qu'impactée par la fréquence principale différente selon PAL ou NTSC est divisée de manière à donner du 3.5 MHz et on a du 40x25 en 8 couleurs dans les deux cas.
Le moniteur présente quelques différences qui semblent avoir un impact assez limité pour la plupart des programmes. L'impact le plus majeur, c'est l'utilisation du caractère codé $05 du côté du moniteur japonais qui sert de bascule majuscule/miniscule pour les lettres latines ou de bascule hiragana/katakana, que l'on ne retrouve pas sur le moniteur européen.
Je dis européen mais je devrais dire occidental.
Il y a un certain nombre de jeux du côté Japonais qui exploitent à fond le MZ-700 en dépit de ces limites en partie liées à sa rétrocompatibilité avec le MZ-80 K mais qui visuellement donne mal à l'écran principalement à cause du CGROM européen.
J'avais donc besoin d'un échangeur de CGROM en temps réel et avec le concours de @Fred_72 (que je remercie beaucoup au passage) il a pu être réalisé sous forme d'un prototype fonctionnel. Le challenge est qu'il y a le clavier au-dessus et il laisse très peu de place !
Pour ce faire, j'avais besoin d'une ROM de 8 Ko (2 jeux de 512 caractères) mais la VRAM des attributs de couleur avait le bit D3 inutilisé (alors qu'il y un connecteur associé sur la carte-mère) et le bit D7 utilisé pour sélectionner la première ou seconde moitié du jeu de 512 caractères. Quoi de plus naturel que d'utiliser la paire D7 et D3 pour sélectionner le premier, second, troisième ou quatrième quart d'un jeu de 1024 caractères ?
Du coup, il nous fallait a minima une ROM de 16 Ko (2 jeux de 1024 caractères). Pour cet effet, on a choisi le brochage qui nous permet d'utiliser des EEPROM 27128/256/512. Le circuit électronique a été conçu de façon à pouvoir également intégrer la ROM d'origine (juste l'un ou l'autre).
EDITION : vu les couleurs noir et blanc des fils sur la photo suivante, c'est en fait le VCC au milieu du l'entête et non le GND. J'ai manqué de vigilence au moment de l'édition de la photo.
L'entête à 5 broches n'en utilise que 4 : les trois broches à droite vont servir de GND/A12/VCC pour les brancher sur un capteur sensitif qui servira à basculer en temps réel entre le jeu de caractère européen (par défaut) et japonais.
Ce capteur, je le place à l'intérieur de la coque sans que j'ai besoin de la charcuter.
Sinon à côté de ça, j'ai ouvert un projet public pour un circuit imprimé qui place plus en arrière la ROM pour donner plus d'espace car je crains que la hauteur actuel du prototype est un peu juste par rapport au clavier.