EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post Reply
User avatar
Pacman
Posts: 172
Joined: Mon Feb 05, 2018 2:59 pm

EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by Pacman »

EN :
Hello,

I present you a new project opur Sharp MZ-700:
An EPROM selector of European or Japanese characters, or something else if you reprogram the EPROM ;) .
I used a 2764 instead of the original 2732, and filled it with the 2 character sets Europe and Japan.
I realized the PCB and the connectors to replace the original 2732 Sharp.
The whole project is here:
https://github.com/SHARPENTIERS/EPROM-C ... arp-MZ-700

Pacman

FR :
Bonjour,

Je vous présente un nouveau projet opur Sharp MZ-700 :
Un sélecteur d'EPROM de caractères Européen ou Japonnais, ou autre chose si on reprogramme l'EPROM ;) .
J'ai utilisé une 2764 à la place de la 2732 d'origine, et l'ai remplie avec les 2 jeux de caractères Europe et Japon.
J'ai réalisé le PCB et la connectique afin de remplacer le 2732 original du Sharp.
Tout le projet se trouve ici :
https://github.com/SHARPENTIERS/EPROM-C ... arp-MZ-700

Pacman
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by hlide »

FR:

Excellent ! ca tombe bien, j'y pensais depuis un moment quand je voyais les jeux japonais rendre moins bien sur le MZ-700 européen. Tu m'as pris de court :).

Questions :

- avec quoi as-tu reprogrammé le 2764? j'ai un programmeur TL866 II Plus USB Minipro mais j'ignore s'il fonctionne avec.
- que me conseilles-tu pour faire fabriquer ces PCB ?
- ça se trouve encore ces 2764?

En fait, si on avait une ROM 27128, on pourrait ajouter deux autre polices :

- on connaissait les 16 caractères pseudo-graphiques (16 en tout) qui permettent de faire du graphique 80x50. Ben avec 256 caractères, on peut faire une combinaison de 4x4 blocs dans le caractère et donc un graphisme 160x100. Ces 256 caractères graphiques serait dans la partie haute des 512 caractères avec un vrai ascii dans la partie basse. Ce pourrait être la troisième police.

- pour la quatrième police, ce pourrait pour faire du graphisme 320x200 avec en partie haute un mapping identitaire : 0 -> 00000000, 1 -> 10000000, 2 -> 01000000, ..., 255 -> 11111111. Ca pourrait être utilisé pour faire des effets graphiques à la Y2K. La partie basse des 512 caractères contiendrait l'ASCII.

J'ai noté que les bits de sortie PA4, PA5 et P6 du 8255 ne sont pas utilisé, il serait intéressant de voir si on peut les utiliser pour changer de police.

EN:

Excellent! I've been thinking about it for a while when I saw the Japanese games making less good on the European MZ-700. You caught me off guard:).

Questions :

- What did you reprogram 2764 with? I have a TL866 II Plus USB Mini pro programmer but I don't know if it works with it.
- what do you advise me to do to make these PCBs?
- Is it still those 2764s?

In fact, if we had a ROM 27128, we could add two other fonts :

- we knew the 16 pseudo-graphic characters (16 in all) that allow us to make 80x50 graphics. Well with 256 characters, we can make a combination of 4x4 blocks in the character and therefore a 160x100 graphics. These 256 graphics characters would be in the upper part of the 512 characters with a real ascii in the lower part. This could be the third font.

- for the fourth font, it could be to make 320x200 graphics with an identity mapping at the top: 0 -> 00000000, 1 -> 10000000, 2 -> 01000000, ..., 255 -> 11111111. This could be used to make graphics effects à la Y2K. The lower part of the 512 characters would contain ASCII.

I noticed that the output bits PA4, PA5 and P6 of 8255 are not used, it would be interesting to see if we can use them to change the font.
User avatar
Pacman
Posts: 172
Joined: Mon Feb 05, 2018 2:59 pm

Re: EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by Pacman »

FR:
J'ai un programmateur STAG avec le module 39M100.
Pour les EPROM j'ai fait pas mal de récupération et j'avais des 2764 que j'ai effacé aux UV, masi ça doit se trouver je pense (on trouve encore des 2732).
Pour les PCB, j'utilise ma vieille fraiseuse toujours focntionnelle. Maintenant il y a des sites spécialisés dans le prototypage mais en général il font en quantité (souvent 10 mini)
Pour ce qui est de l'extension, pourquoi pas y mettre même un 27512 mais on a des caractères figés.
Je pense qu'il serait mieux d'utiliser une RAM et de refaire un PCG700 en utilisant les mêmes "normes" de codage et en l'étendant pour avoir plus de caractères possibles: on aurait les jeux PCG qui fonctionnerait et en plus on pourrait faire du pseudo graphique étendu.
J'y réfléchit...

PS : j'avais aussi noté que les bits du 8255 ne sont pas utilisés mais il faudra re-adapter le moniteur.

EN:
I have a STAG programmer with the 39M100 module.
For the EPROM I did a lot of recovery and I had 2764 that I erased UV, masi it must be I think (we still find 2732).
For PCBs, I use my old milling machine always functional. Now there are specialized sites in prototyping but in general it is in quantity (often 10 mini)
As for the extension, why not even put a 27512 but we have fixed characters.
I think it would be better to use a RAM and redo a PCG700 using the same "standards" of coding and extending it to have more characters possible: we would have the PCG games that would work and in addition we could to make an extended pseudo graph.
I think about it ...

PS: I also noted that the bits of the 8255 are not used but it will re-adapt the monitor.
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by hlide »

Pacman wrote: Tue Jul 10, 2018 7:02 am Pour ce qui est de l'extension, pourquoi pas y mettre même un 27512 mais on a des caractères figés.
Je pense qu'il serait mieux d'utiliser une RAM et de refaire un PCG700 en utilisant les mêmes "normes" de codage et en l'étendant pour avoir plus de caractères possibles: on aurait les jeux PCG qui fonctionnerait et en plus on pourrait faire du pseudo graphique étendu.
J'y réfléchit...
FR:

Plusieurs choses:

1) La VRAM attribute, le bit D3 n'est pas utilisé. Si on regarde le schéma électronique du manuel, il est récupérable depuis l'IC AD sur le pin 14, comme le bit D7 est récupérable en pin et connecté avec le nom GC32 sur le pin 21 (A11) de l'IC BC 2732. Admettons que l'on mette un 27128 à la place du 2732, nous pourrions alors connecter le pin 14 de l'IC AD avec le pin décrivant l'adresse A12. Et tu mettrais l'interrupter EU/JAP sur l'adresse A13. On obtiendrait jusqu'à 1024 carctères affichables sur l'écran au lieu des 512 habituels. C'est là que je voyais des caractères de bloc 4x4 pour créer une résolution graphique virtuelle de 160x100 par axemple en ayant le bit D7 à 0 et le bit D3 à 1 par exemple. Pour ce faire, utiliser un cable une pince à accrocher sur le pin 14 de l'IC AD et le connecter au pin A12 du 27128 et ce devrait être bon.

Pour le PGC, c'est plus complexe à mettre en place donc je n'en discuterais pas ici.

Dans le même ordre d'idée, j'aimerais pouvoir personnaliser les ROM IPL et externe. On pourrait avoir une paire de ROM et SRAM non volatile (j'en ai de DALLAS). Par défaut, on boote en ROM. Idéalement la ROM (et la SRAM) peut faire plus que 4 Ko mais il faudrait aider à mapper le surplus à un endroit : $0000-$0FFF, $E800-$EFFF, $F000-$FFFF. A noter que je ne pense pas qu'à partie de $E100 il y ait grand chose non plus. Il faudra peut être un GAL pour rediriger les adresse $E800-$FFFF vers le surplus de ROM ou vers la SRAM non volatile. Par exemple, si les ardresses A15-A8 sont dans les plages désirée, on accède à la ROM ou à la SRAM. Comme la SRAM est réinscriptible, il y a risque de corruption mais à la limite rien de compliquer à lancer un petit programme qui va pouvoir reprogammer la SRAM en en jouant sur un pin non utilisé pour sélectionner la SRAM au lieu de la ROM. Donc ça me parait plutôt pas mal. T'en penses quoi ?

Avec 27512, on aurait... 16 x 512 caractères ! mais le bit D7 et D3 ne permet que d'atteindre 1024 caractères simultatnément. Soit 8 x 1024. C'est beaucoup. Il faudrait 3 pins pour sélectionner une banque de 1024 caractères et je ne vois pas dans quel but.

EN:

1) The VRAM attributes, bit D3 is not used. If we look at the electronic diagram of the manual, it is retrievable from the AD IC on pin 14, as the D7 bit is retrievable in a pin and connected with the name GC32 on pin 21 (A11) of the BC IC 2732. If we put a 27128 instead of 2732, we could then connect pin 14 of the AD IC with the pin describing address A12. And you'd put the EU/JAP switch on address A13. Up to 1024 characters would be displayed on the screen instead of the usual 512. This is where I saw 4x4 block characters, for instance, to create a virtual graphics resolution of 160x100 with bit D7 at 0 and bit D3 at 1 for example. To do this, use a cable clip to hang on pin 14 of the IC AD and connect it to pin A12 of 27128 and it should be good.

For the PGC, it's more complex to set up so I wouldn't discuss it here.

In the same vein, I would like to be able to customize the IPL and external ROMs. We could have a pair of non-volatile ROMs and SRAMs (I have some DALLAS). By default, we boot in ROM. Ideally, the ROM (and SRAM) can do more than 4 KB but it would help to map the surplus to a location: $0000-$0FFF, $E800-$EFFF, $F000-$FFFF. Note that I don't think that from $E100 there is much either. A LAG may be required to redirect the $E800-$FFFF addresses to the ROM surplus or to the non-volatile SRAM. For example, if the A15-A8 addresses are in the desired ranges, the ROM or SRAM is accessed. As the SRAM is rewritable, there is a risk of corruption but at the limit, there is nothing difficult to launch a small program that will be able to reprogram the SRAM by playing on an unused pin to select the SRAM instead of the ROM. So that sounds pretty good. What do you think?

With 27512, we would have... 16 x 512 characters! but bit D7 and D3 can only reach 1024 characters simultaneously. That's 8 x 1024. That's a lot. It would take 3 pins to select a bank of 1024 characters and I do not see for what purpose.
User avatar
Pacman
Posts: 172
Joined: Mon Feb 05, 2018 2:59 pm

Re: EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by Pacman »

FR:
hlide wrote: Tue Jul 10, 2018 1:36 pm Et tu mettrais l'interrupter EU/JAP sur l'adresse A13. On obtiendrait jusqu'à 1024 carctères affichables sur l'écran au lieu des 512 habituels. C'est là que je voyais des caractères de bloc 4x4 pour créer une résolution graphique virtuelle de 160x100 par axemple en ayant le bit D7 à 0 et le bit D3 à 1 par exemple. Pour ce faire, utiliser un cable une pince à accrocher sur le pin 14 de l'IC AD et le connecter au pin A12 du 27128 et ce devrait être bon.
Oui, mais comment distinguer, de façon automatique, les différents caractères. Il n'y a aucune information dans les fichiers MZF pour savoir si on doit se mettre si EUROPE ou JAPON. Car une fois lancé, on ne peut pas intervenir sur ce bit, il faut que le chargeur le fasse avant lancement.
On pourrait modifier la norme MZF en mettant dans le premier octet un indicateur ou ajouter un octet supplémntaire dans l'entête, ou utiliser les commentaires (qui ne sont jamais utilisé) pour ça.
hlide wrote: Tue Jul 10, 2018 1:36 pm Dans le même ordre d'idée, j'aimerais pouvoir personnaliser les ROM IPL et externe. On pourrait avoir une paire de ROM et SRAM non volatile (j'en ai de DALLAS). Par défaut, on boote en ROM. Idéalement la ROM (et la SRAM) peut faire plus que 4 Ko mais il faudrait aider à mapper le surplus à un endroit : $0000-$0FFF, $E800-$EFFF, $F000-$FFFF. A noter que je ne pense pas qu'à partie de $E100 il y ait grand chose non plus. Il faudra peut être un GAL pour rediriger les adresse $E800-$FFFF vers le surplus de ROM ou vers la SRAM non volatile. Par exemple, si les ardresses A15-A8 sont dans les plages désirée, on accède à la ROM ou à la SRAM. Comme la SRAM est réinscriptible, il y a risque de corruption mais à la limite rien de compliquer à lancer un petit programme qui va pouvoir reprogammer la SRAM en en jouant sur un pin non utilisé pour sélectionner la SRAM au lieu de la ROM.
C'est une bonne idée, mais il faut réfléchir au codage d'un caractère afin de pourvoir en automatique les faire afficher, et là, ça veut dire refaire tout le circuit SRAM et décodage, car j'ai quand même l'impression qu'il va nous falloir 16bits par caractères avec ça.
À creuser... Je te laisse le soin d'y réfléchir, de mon côté, j'ai un programme à terminer.


EN:
hlide wrote: Tue Jul 10, 2018 1:36 pm And you'd put the EU/JAP switch on address A13. Up to 1024 characters would be displayed on the screen instead of the usual 512. This is where I saw 4x4 block characters, for instance, to create a virtual graphics resolution of 160x100 with bit D7 at 0 and bit D3 at 1 for example. To do this, use a cable clip to hang on pin 14 of the IC AD and connect it to pin A12 of 27128 and it should be good.
Yes, but how to distinguish, automatically, the different characters. There is no information in the MZF files to know if we should put ourselves in EUROPE or JAPAN. Because once launched, we can not intervene on this bit, it is necessary that the charger does it before launching.
One could change the MZF standard by putting in the first octet a flag or add an extra byte in the header, or use the comments (which are never used) for that.
hlide wrote: Tue Jul 10, 2018 1:36 pm In the same vein, I would like to be able to customize the IPL and external ROMs. We could have a pair of non-volatile ROMs and SRAMs (I have some DALLAS). By default, we boot in ROM. Ideally, the ROM (and SRAM) can do more than 4 KB but it would help to map the surplus to a location: $0000-$0FFF, $E800-$EFFF, $F000-$FFFF. Note that I don't think that from $E100 there is much either. A LAG may be required to redirect the $E800-$FFFF addresses to the ROM surplus or to the non-volatile SRAM. For example, if the A15-A8 addresses are in the desired ranges, the ROM or SRAM is accessed. As the SRAM is rewritable, there is a risk of corruption but at the limit, there is nothing difficult to launch a small program that will be able to reprogram the SRAM by playing on an unused pin to select the SRAM instead of the ROM.
It's a good idea, but you have to think about the encoding of a character in order to automatically make them display, and that means to redo the entire SRAM and decode circuit, because I still feel that we will need 16 bits per character with that.
To dig ... I leave you to think about it, for my part, I have a program to finish.
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by hlide »

Pacman wrote: Thu Jul 12, 2018 7:32 am Oui, mais comment distinguer, de façon automatique, les différents caractères. Il n'y a aucune information dans les fichiers MZF pour savoir si on doit se mettre si EUROPE ou JAPON. Car une fois lancé, on ne peut pas intervenir sur ce bit, il faut que le chargeur le fasse avant lancement.
On pourrait modifier la norme MZF en mettant dans le premier octet un indicateur ou ajouter un octet supplémntaire dans l'entête, ou utiliser les commentaires (qui ne sont jamais utilisé) pour ça.
FR:
Précisément, par interrupteur - tu sais le bouton-tige que tu mets à l'extérieur pour choisir. Actuellement, tu as du le mettre sur A12 du 2764. Je propose de le mettre sur A13 du 27128 et de connecter le A12 sur le pin associé au bit D3 pour augmenter la taille de la police de 512 à 1024. Les premiers 512 caractères des polices EU et JAP seront celles que tu as déjà.

EN:
Precisely, by the switch - you know the rod button you put on the outside to choose. Actually, you must have put it on A12 from 2764. I propose to set it to A13 from 27128 and connect the A12 to the pin associated with bit D3 to increase the font size from 512 to 1024. The first 512 characters of the EU and JAP fonts will be those you already have.
Pacman wrote: Thu Jul 12, 2018 7:32 am
hlide wrote: Tue Jul 10, 2018 1:36 pm Dans le même ordre d'idée, j'aimerais pouvoir personnaliser les ROM IPL et externe. On pourrait avoir une paire de ROM et SRAM non volatile (j'en ai de DALLAS). Par défaut, on boote en ROM. Idéalement la ROM (et la SRAM) peut faire plus que 4 Ko mais il faudrait aider à mapper le surplus à un endroit : $0000-$0FFF, $E800-$EFFF, $F000-$FFFF. A noter que je ne pense pas qu'à partie de $E100 il y ait grand chose non plus. Il faudra peut être un GAL pour rediriger les adresse $E800-$FFFF vers le surplus de ROM ou vers la SRAM non volatile. Par exemple, si les ardresses A15-A8 sont dans les plages désirée, on accède à la ROM ou à la SRAM. Comme la SRAM est réinscriptible, il y a risque de corruption mais à la limite rien de compliquer à lancer un petit programme qui va pouvoir reprogammer la SRAM en en jouant sur un pin non utilisé pour sélectionner la SRAM au lieu de la ROM.
C'est une bonne idée, mais il faut réfléchir au codage d'un caractère afin de pourvoir en automatique les faire afficher, et là, ça veut dire refaire tout le circuit SRAM et décodage, car j'ai quand même l'impression qu'il va nous falloir 16bits par caractères avec ça.
À creuser... Je te laisse le soin d'y réfléchir, de mon côté, j'ai un programme à terminer.
FR:
Attention je parle d'une ROM/SRAM pour la ROM Monitor et les ROM externes non présentes - pas pour les caractères. Je parle de permettre basculer entre une ROM et une SRAM, en sachant que pour écrire dans cette SRAM NON volatile, il suffirait de charger un programme en DRAM qui va écrire l'image dans la SRAM une fois basculée. Ca permettrait de personnaliser nos ROM sur la partie SRAM. La ROM d'origine est là pour le lancement - elle cherchera à passer en $E800 (et là on pourra mapper la parte de la SRAM entre $E800-$FFFF. On pourra y mettre une sorte d'IPL qui pourrait :
- permettre de changer d'une police EU en JAP et vice versa.
- permettre de gérer des load/save depuis les signaux du CMT en mode accéléré avec un Arduino. Ce peut être comme un port série, où on peut envoyer des commandes (lecture de répertoire, changement de répertoire, lecture/écriture d'un fichier, configurer, etc.)
- permettre d'utiliser le port parallèle de l'imprimante (si non présente) également pour des tranferts plus rapides avec un Arduino. On pourrait mettre au point un protocole qui permettrait de faire des actions diverses avec l'arduino.
- émuler le QDD depuis un SD (travail déjà fait par um membre d'ici - fonctionne pour MZ-800 mais pas pour le MZ-700, faute de la ROM pour le gérer.
- émuler les FDD depuis un SD.
- etc.

EN:
Wait! I speak about a ROM/SRAM for the Monitor ROM and the external ROM not present - not for the characters. I'm talking about allowing to switch between a ROM and an SRAM, knowing that to write in this NON-volatile SRAM, it would be enough to load a DRAM program that will write the image in the SRAM once switched through a PC0 or PAx not used. It would allow us to customize our ROM on the SRAM part. The original ROM is there for the launch - it will seek to switch to $E800 (and there we can map the share of SRAM between $E800-$FFFF. We can put some kind of PW that could:
- allow you to change from an EU font to JAP and vice versa.
- allow managing load/save from CMT signals in an accelerated mode with an Arduino. It can be like a serial port, where you can send commands (read directory, change directory, read/write a file, configure, etc.).
- allow using the printer's parallel port (if not present) also for faster transfers with an Arduino. We could develop a protocol that would allow various actions to be taken with Arduino.
- emulate the QDD from an SD (work already done by a member here - works for MZ-800 but not for MZ-700, because the ROM doesn't manage it.
- emulate the FDD from an SD.
- and so on
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by hlide »

And as a bonus, those Non-volatile SRAMs also have 8 x byte registers at the end of the physical address which allow setting an RTC and probably a programmable alarm event.
User avatar
TextAdventureKing
Posts: 52
Joined: Sat Jun 23, 2018 4:42 pm
Location: England, UK
Contact:

Re: EPROM Selector for Sharp MZ-700 / Sélecteur d'EPROM pour Sharp MZ-700

Post by TextAdventureKing »

Looks pretty good! Well done.
Sharp MZ Developer, Global Moderator and lover of this tiny MZ-80K.
Projects:
  • MZ-80K Text Adventure Game
  • MZ-80K Quiz Game with multiple "quiz packs"
  • DSi Homebrew (not related to Sharp, this is nintendo)
Post Reply