Hello!
Voici un premier (enfin, Xième !) jet d’un projet (expérimental, pour le fun) que j’ai, à savoir un émulateur Minitel pour micro-ordinateur MSX1 (avec toutes ses contraintes quant au graphisme pour ceux qui connaissent !)
La première étape est donc de pouvoir afficher plus ou moins correctement des fichiers videotex, à la norme CEPT2.
Pas facile, sachant qu’un écran videotex est composé de 25 lignes de 40 caractères de 8 pixels X 8 pixels, pour une résolution de 320 x 200, avec 2 couleurs parmi 8 par caractère.
Et scrolling vertical haut et bas pris en charge ainsi que les caractères double hauteur, double largeur et double taille.
Bref, pas du tout la résolution d’un MSX 1 : 24 lignes de 32 caractères de 8x8 pixels, 256x192 pixels, avec une limite de 2 couleurs pa rangées de 8 pixels. C’est le challenge !
Deux possibilités s’offraient : afficher uniquement des lignes de 32 caractères et proposer un scrolling horizontal pour voir les 8 caractères manquants.
Ou redéfinir l’écran pour obtenir 40 caractères de 6 pixels de large.
J’ai choisi la deuxième solution, la plus complexe : les caractères sont de 6 pixels de large x 8 pixels de haut et dessinés « à cheval » entre chaque tuile (emplacement) avec un décalage variable cyclique.
Et les couleurs doivent suivre (comme elles peuvent, sachant qu’avec le décalage on peut se retrouver avec 4 couleurs alors qu’on ne peut en afficher que 2), avec la contrainte du mode Screen2 des MSX de 2 couleurs par ligne 8 pixels !
L’écran est donc de 40 caractères sur 24 lignes (et non 25 comme sur un minitel : la ligne 00 (celle du haut) est affiché en ligne 1, mais se comporte comme la ligne 0 dans ce cas).
J’ai repris la police de caractères des vrais minitels.
Voici le résultat pour le moment, soyez indulgent c’est mon premier projet (hors programmes en Basic en 1985) sur MSX (et même sur n’importe quel ordinosaure !) :
Video Eminex 0.0.1, sur émulateur MSX1 Canon V20
Alors, l’émulation est je pense correcte à 75%.
C’est peu et beaucoup à la fois, compte tenu des contraintes.
Plus la page est chargée en graphisme « complexes », plus cela est difficile pour obtenir un affichage correct.
On ne peut parfois (souvent) pas obtenir l’affichage comme on désirerai du aux contraintes de l’ordi.
Certaines choses ne sont pas émulées, dont: séquences CSI, masquage, DRCS,…
Tout comme le clignotement, hors de portée je pense, le MSX1 ne le prenant pas en charge nativement.
Le scrolling serait à revoir, tout comme la propagation des couleurs de fond et du soulignement.
Ainsi qu’une optimisation de la vitesse d’affichage (mettre toutes mes variables en globale serait parait-il bon pour cela…)
Je suis relativement content car le résultat est un affichage somme toute tout à fait utilisable.
Le prochaine étape (hormis optimiser ce qui est déjà fait), est la partie connexion.
Pour cela je pense utiliser la cartouche modem BadCat Wifi que j’ai qui permet à un ordinateur MSX de se connecter en Wifi.
Si j’arrive à obtenir une connexion telnet avec MiniPavi, cela sera alors parfait !