minitel
minitel copied to clipboard
Port to the Minitel 1B too
Hi! Would you be interested in targeting the Minitel 1B (NFZ 330) too in your demo program? Specifically, the one you documented here. I've also also been working on trying to emulate it in MAME, and I think you demo would be useful as a testcase for the EF9345 code paths :)
It turns out there are not a lot of differences from the Minitel 2 that the demo program should care about:
-
The Minitel 1B has an EF9345 video chip instead of the TS9347. They are very similar (but not identical, as you know very well). This patch renames all the functions and names containing "ts9347" in their name to make them generic.
-
Video chip registers TGS and PAT have to be initialized with different values.
-
The modem of the Minitel 1B is of a different type (TS7513 instead of TS7514). This patch disables all the code paths involving the modem when compiled for the Minitel 1B.
-
The Minitel 1B has a 11.0592 MHz crystal (instead of 14.318181 MHz). Therefore, the reload values of timers have to be adjusted accordingly to match the duration of timed delays.
Video proof that it works: :smile:
https://github.com/user-attachments/assets/6ec978a2-69b2-40ae-8b99-91665b8f1096
Note: I saw that there's code that plays music through the modem in your demo, which I've disabled for the Minitel 1B. This Minitel only has a simple single-note (around 2675 Hz) buzzer, that we could try to use, if we want.
Note 2: You'll see that French special characters appear corrupted in the video. I think it's an encoding problem with my installation of SDCC, because I also see them like this in MAME with the Minitel 2 if I recompile the demo from source. Similarly, the 3D computations "explode" after a few iterations, I think for similar issues with my local compiler.
If you're curious, here is a preliminary analysis of the board you showed here:
It's interesting that, unlike yours, in this particular Minitel there was no external ROM and the CPU was a P8052AH. But all the connections seem to match the board you've shown (except for the position of the resistor close to the EA pin, which selects booting from the internal or external ROM). Luckily, being a resistor, it's not hard to force EA in the opposite direction and make it boot externally anyway :)