Impec ! Merci encore !
le minitel est de retour
Modérateurs : Papy.G, fneck, Carl
-
- Messages : 376
- Inscription : 20 mars 2011 14:24
Re: le minitel est de retour
Bricox a écrit : ↑17 mars 2024 15:23 J'ai trouvé ta correction du port série dans MAME :
https://github.com/jfdelnero/mame/commi ... 48b1a1ad14
Dois-je modifier ton driver Minitel2 ?
https://github.com/jfdelnero/mame/blob/ ... 2_rpic.cpp
Ta phrase d'entete est toujours d'actualité ?
What is implemented but not working :
- The rear serial port.(Prise péri-informatique)
(Internal 8051 serial port emulation missing).
Pourrais-je écrire "-periinfo -bitb socket.127.0.0.1:20000" ?
Voilà une bonne question ! : Je me souviens avoir testé l'interface série modem. Et il semble que la déclaration du port péri-info soit complète (ça j'avais oublié...) , avec les connexions aux pins du uC.
Il faut que je regarde le core 8051 pour voir si les choses ont bougées de ce coté.
-
- Messages : 376
- Inscription : 20 mars 2011 14:24
Re: le minitel est de retour
Alors d'après ça :
https://github.com/mamedev/historic-mam ... 51/i8051.c
le support série du 8051 semble là. Donc sur un malentendu ça pourrait fonctionner
https://github.com/mamedev/historic-mam ... 51/i8051.c
le support série du 8051 semble là. Donc sur un malentendu ça pourrait fonctionner
Re: le minitel est de retour
Merci @Jeff pour ton expertise.
La réponse est quelque peu laconique
Je n'ai pas le choix ... je fonçe !
https://www.facebook.com/cineseriecom/v ... 501593892/
La réponse est quelque peu laconique
Je n'ai pas le choix ... je fonçe !
https://www.facebook.com/cineseriecom/v ... 501593892/
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
-
- Messages : 376
- Inscription : 20 mars 2011 14:24
Re: le minitel est de retour
Ah bah que voulez vous, de nos jours plus rien n'est garanti , il faut donc tester ...
Et si ça cela ne fonctionne pas -> ouverture d'une issue sur le projet mame, le problème pouvant se trouver sur un élément commun a plusieurs drivers.
https://github.com/mamedev/mame/issues
Et si ça cela ne fonctionne pas -> ouverture d'une issue sur le projet mame, le problème pouvant se trouver sur un élément commun a plusieurs drivers.
https://github.com/mamedev/mame/issues
Re: le minitel est de retour
Comme dirait quelqu'un de connu : "Ca va bien se passer !"
ZamZam et moi défrichons le processus ...
Les 1ers essais nous laissent percevoir une voie prometteuse à suivre
Nous partagerons bientôt nos futures avancées significatives
ZamZam et moi défrichons le processus ...
Les 1ers essais nous laissent percevoir une voie prometteuse à suivre
Nous partagerons bientôt nos futures avancées significatives
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
Cela fait de nombreux jours que j'ai une multitude d'erreurs inattendues lors de la création du code pour étendre le programme de démonstration de @Jeff (décodage clavier, mode trace vers Putty, codage Uart en mode 7p, etc...)
Hier soir, ZamZam et moi avons enfin découvert le problème :
La taille de l'éxécutable (*.bin) dépasse la taille physique de la ROM !!!
La toolchain de SDCC ne génère ni erreur, ni alerte… ce qui semble normal, car elle n'a pas la taille de la ROM.
Par contre, le logiciel de gravage "xgpro" la connait surtout après un "blank check". Peut-être, a-t-il une option de contrôle...
Après analyse du fichier *.map, exploité dans Excel, et sachant que l'EPROM Minitel2 fait 32Ko, voici :
- Le mapping des constantes avec les tailles de chaque déclaration, le total faisant 15201 octets.
=> Le Nyan_cat est très gourmand en ressource (35% de la taille totale).
- Le mapping des fonctions avec les tailles de chaque déclaration, le total faisant 17582 octets
Conclusion : Je vais sacrifier temporairement le "nyan_cat" pour pouvoir continuer mon développement
Hier soir, ZamZam et moi avons enfin découvert le problème :
La taille de l'éxécutable (*.bin) dépasse la taille physique de la ROM !!!
La toolchain de SDCC ne génère ni erreur, ni alerte… ce qui semble normal, car elle n'a pas la taille de la ROM.
Par contre, le logiciel de gravage "xgpro" la connait surtout après un "blank check". Peut-être, a-t-il une option de contrôle...
Après analyse du fichier *.map, exploité dans Excel, et sachant que l'EPROM Minitel2 fait 32Ko, voici :
- Le mapping des constantes avec les tailles de chaque déclaration, le total faisant 15201 octets.
Code : Tout sélectionner
0xValue Taille Global
0x454F 1000 _data_nolife_bmp
0x4937 1000 _data_bmpImage3_raw
0x4D1F 1000 _data_bmpImage4_raw
0x5107 1000 _data_bmpImage5_raw
0x54EF 1000 _data_bmpmac_raw
0x58D7 1000 _data_bmptheminiteldemo_200x40_r
0x5CBF 21 _txt_scroll
0x5CD4 202 _txt_start
0x5D9E 128 _Vertex_Box01
0x5E1E 4 _data3d_Box01
0x5E22 1840 _Vertex_Sphere01
0x6552 4 _data3d_Sphere01
0x6556 368 _Vertex_Cylinder01
0x66C6 4 _data3d_Cylinder01
0x66CA 176 _Vertex_Prism01
0x677A 4 _data3d_Prism01
0x677E 128 _Vertex_Piramid01
0x67FE 4 _data3d_Piramid01
0x6802 64 _Vertex_Hedra01
0x6842 4 _data3d_Hedra01
0x6846 5280 _nyan_cat
0x7CE6 25 _initstarstab
0x7CFF 10 _testpg
0x7D09 33 _txt
0x7D2A 257 _SinCos
0x7E2B 2 _Xoff
0x7E2D 2 _Yoff
0x7E2F 2 _Zoff
0x7E31 260 _div10tab
0x7F35 13 _multentab
0x7F42 13 _i8D
0x7F4F 15 _i8H
0x7F5E 13 _i16D
0x7F6B 15 _i16H
0x7F7A 9 _i16L
0x7F83 6 _i16C
0x7F89 7 _i16S
0x7F90 6 _i16T
0x7F96 6 _i16F
0x7F9C 12 _i16K
0x7FA8 12 _i16M
0x7FB4 11 _i16N
0x7FBF 8 _Debt
0x7FC7 18 _U_7p
0x7FD9 24 _U_8n
0x7FF1 6 _Ud7p
0x7FF7 6 _Ud8n
0x7FFD 16 _Acct
0x800D 10 _lstDebt
0x8017 9 _lstLgClavier
0x8020 72 _kbN
0x8068 72 _kbJ
0x80B0
15201 octets
- Le mapping des fonctions avec les tailles de chaque déclaration, le total faisant 17582 octets
Code : Tout sélectionner
0xValue Taille Global Global Defined In Module
0x00A1 1 music_timer_isr demo_minitel
0x00A2 133 _timer_isr demo_minitel
0x0127 19 _wait demo_minitel
0x013A 464 _nyan_cat_sc demo_minitel
0x030A 1391 _start_screen demo_minitel
0x0879 520 _starfield demo_minitel
0x0A81 1182 _mandel demo_minitel
0x0F1F 2351 _main demo_minitel
0x184E 425 _Show3DPoint troisd_func
0x19F7 445 _rotateX troisd_func
0x1BB4 432 _rotateY troisd_func
0x1D64 432 _rotateZ troisd_func
0x1F14 848 _drawpolygone troisd_func
0x2264 199 _drawobject troisd_func
0x232B 173 _setpixel deuxd_func
0x23D8 131 _setpixelFast deuxd_func
0x245B 746 _Ligne deuxd_func
0x2745 984 _LigneFast deuxd_func
0x2B1D 689 _cercle deuxd_func
0x2DCE 49 _UART_Init minitel_hw
0x2DFF 42 _UART_TxRetr minitel_hw
0x2E29 202 _UART_Tx7pChar minitel_hw
0x2EF3 204 _UART_TXC minitel_hw
0x2FBF 43 _UART_TxStr minitel_hw
0x2FEA 246 _UART_TxI8H minitel_hw
0x30E0 563 _UART_TxI8K minitel_hw
0x3313 248 _UART_TxI8D minitel_hw
0x340B 368 _UART_TxBd minitel_hw
0x357B 240 _UART_Test minitel_hw
0x366B 108 _clearscreen minitel_hw
0x36D7 50 _setbank minitel_hw
0x3709 168 _init_ts9347 minitel_hw
0x37B1 54 _set_ptr minitel_hw
0x37E7 136 _fillmosaic minitel_hw
0x386F 221 _setcharset1010 minitel_hw
0x394C 265 _setcharset minitel_hw
0x3A55 274 _clearcharset minitel_hw
0x3B67 142 _write_to_modem minitel_hw
0x3BF5 147 _write_to_modem_dtmf minitel_hw
0x3C88 57 _init_modem minitel_hw
0x3CC1 951 _lit_clavier minitel_hw
0x4078 11 ___fssub _fssub
0x4083 10 __divuint _divuint
0x408D 39 __divint _divuint
0x40B4 163 ___fsmul _fsmul
0x4157 46 fsgetargs _fsget2args
0x4185 51 fs_normalize_a _fsnormalize
0x41B8 27 __gptrput _gptrput
0x41D3 48 ___fslt _fslt
0x4203 0 __mulint _mulint
0x4203 34 __mulint_dummy _mulint
0x4225 3 ___fsadd _fsadd
0x4228 86 fsadd_direct_entry _fsadd
0x427E 30 fs_compare_uint32 _fscmp
0x429C 43 fs_check_negative_zeros _fscmp
0x42C7 86 __divslong _divslong
0x431D 13 ___sint2fs _sint2fs
0x432A 6 __divulong _divulong
0x4330 103 __divlong _divulong
0x4397 24 fs_round_and_return _fsreturnval
0x43AF 9 fs_zerocheck_return _fsreturnval
0x43B8 8 fs_return_zero _fsreturnval
0x43C0 14 fs_direct_return _fsreturnval
0x43CE 13 fs_return_inf _fsreturnval
0x43DB 11 fs_return_nan _fsreturnval
0x43E6 26 fs_swap_a_b _fsswapargs
0x4400 28 __gptrget _gptrget
0x441C 61 __modsint _modsint
0x4459 9 ___slong2fs _slong2fs
0x4462 36 slong2fs_doit _slong2fs
0x4486 10 __moduint _moduint
0x4490 59 __modint _moduint
0x44CB 61 __divsint _divsint
0x4508 67 fs_rshift_a _fsrshift
0x454B 4 ___sdcc_external_startup _startup
0x454F
17582 octets
Dernière modification par Bricox le 26 mars 2024 08:41, modifié 3 fois.
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
Face aux difficultés de faire fonctionner correctement CMON51 dans MAME, ZamZam a décidé de le tester directement dans un Minitel2.Bricox a écrit : ↑17 mars 2024 10:36Hier, nous avons commencé à adapter le projet "cmon51" pour SDCC 4.4.0 released : https://sdcc.sourceforge.net/Bricox a écrit : ↑05 mars 2024 22:02 Le 1er soft que nous avons l'intention de découvrir serait un moniteur : cmon51-1.2
CMON51 est écrit principalement en C et compilé à l'aide du compilateur SDCC, notre compilateur.
Dans un 1er temps, nous pouvons l'utiliser, en standard, avec sa gestion Uart pour l'entrée clavier et la sortie Terminal.
Puis, je pourrai intégrer mon décodage clavier Minitel, puis, rediriger la sortie sur l'écran Minitel via le EF9345 ou le TS9347.
Nous aurions ainsi un moniteur totalement autonome.
Le code : http://sourceforge.net/projects/cmon51.
Le "Wiki" : https://cmon51.sourceforge.net/
Le code comporte de nombreuses fonctions "assembleur".
La création d'une carte d'extension mémoire semble être indispensable pour l'aboutissement de ce projet.
@Jeff, penses-tu qu'il est difficile d'intégrer l'UART dans "MAME" pour exécuter et tester "CMON51" ?
Genre, localhost :127.0.0.1 pour un loopback en local
Nous avons lancer "CMON51" dans "MAME" en mode débugueur et l'on voit un bouclage permanent sur RI (Receive Interrupt Flag),
il est en attente d'une réception UART...
Le binaire de CMON51 fait 9Ko => 7Ko de code + 1.5Ko de constantes(par exemple : la liste "mnemtbl" des mnémoniques pour désassembler).
Code : Tout sélectionner
0xValue Taille Global
0x1C25 119 _sfrn 8052
0x1C9C 246 _bitn 8052
0x1D92 107 _cmdlst cmon51
0x1DFD 17 _hexval cmon51
0x1E0E 162 _maskbit cmon51
0x1EB0 32 _mnem d51
0x1ED0 868 _mnemtbl d51
0x2234
1551 octets
Fréquence calculée : 74574 bauds (c'est la vitesse maxi de l'UART utilisant le Timer 0 ou 1, donc compatible MIB RTIC)
Protocole standard : 8 bits de données, 1 bit de stop, pas de parité.
Voici une capture de Putty suite à l'envoi des qques commandes de test. Le prompt d'accueil...
"r" : affichage de tous les registres
"u 17FF 10" : désassemblage à partir de l'adresse 0x17FF pour 0x10 lignes d'assembleur.
Les essais semblent concluants
La création d'une carte d'extension mémoire semble rester indispensable pour permettre l'exécution de gros programmes et la possibilité d'effectuer du débogage hardware permis par CMON51.
Fichier .mem du CMON51 :
Code : Tout sélectionner
Internal RAM layout:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|b|b|b|A|A|A|c| |
0x10:| | | |A|A|A| | | | | | | | | | |
0x20:|B|T| |A|A|A| | | | | |A|A|A|a|a|
0x30:|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|
0x40:|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|S|
0x50:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x60:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x70:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x80:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x90:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xa0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xb0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xc0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xd0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xe0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xf0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S| |
0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData, S:Stack, A:Absolute
Stack starts at: 0x4f (sp set to 0x4e) with 176 bytes available.
The largest spare internal RAM space starts at 0x16 with 10 bytes available.
Other memory:
Name Start End Size Max
---------------- -------- -------- -------- --------
PAGED EXT. RAM 0 256
EXTERNAL RAM 0x0001 0x00c1 193 65536
ROM/EPROM/FLASH 0x0000 0x2233 8756 65536
Dernière modification par Bricox le 26 mars 2024 08:42, modifié 2 fois.
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
Mes derniers posts me semblent un peu trop sérieux...
Je vous partage un cadeau fantaisiste de mes collègues, le jour de mon départ à la retraite, que j'ai énormément apprécié.
Un M1B RTIC, Modèle "Enedis", version Linky !
C'est une référence, à un développement sur microcontrôleur STM32, de la mesure de puissance électrique instantanée par calcul de la durée entre 2 impulsions LED du Linky (équivalent à 1 Wh).
Always having fun !!!
Je vous partage un cadeau fantaisiste de mes collègues, le jour de mon départ à la retraite, que j'ai énormément apprécié.
Un M1B RTIC, Modèle "Enedis", version Linky !
C'est une référence, à un développement sur microcontrôleur STM32, de la mesure de puissance électrique instantanée par calcul de la durée entre 2 impulsions LED du Linky (équivalent à 1 Wh).
Always having fun !!!
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
Bonjour bonjour,
Je reviens trainer ici après plusieurs années d'absence, et quelle bonne surprise de voir qu'il y a toujours de l'activité autour du Minitel !
J'ai beaucoup, beaucoup à lire et rattraper !
Mais en attendant je me sens obligé de répondre à ce post :
Le type de vtrm.net c'est moi, "fff" sur ce forum.
Papy.G et moi avions un peu correspondu par mail en 2020.
Je me permets de recopier un extrait d'un des mails que je lui ai envoyés.
Il pourra attester de son authenticité si certains pensent que j'invente.
Mais pour le reste, mollo sur les extrapolations s'il te plait
C'était donc bien un projet personnel et je ne m'en suis certainement pas servi comme projet de fin d'études pour avoir mon diplôme. De toute façon, au cas où tu l'ignores, un projet de fin d'études ça se fait lors d'un stage en entreprise et sur un sujet "réel" et "sérieux", pas sur des expérimentations de hobbyiste sur une vieille curiosité technologique d'il y a 40 ans.
Ensuite, un tas de gens ont des sites web perso en anglais et en français.
Depuis quand avoir un site bilingue serait forcément la marque d'un travail fait dans un cadre académique ou professionnel ?
Il suffit de farfouiller trois secondes sur mon site pour voir que toutes les pages, y compris celles qui n'ont aucun rapport avec le Minitel ou l'électronique, sont écrites en anglais et en français.
Mais surtout, "plagiat", sérieusement ?
Si c'est de l'humour, alors je suis passé à côté. Dans ce cas toutes mes excuses pour ce post déjà trop long.
Si c'est sincère alors il va falloir que tu m'expliques un peu ce que j'ai bien pu plagier.
Sur le vieux sujet de 2014 que Papy.G a mentionné, nos discussions concernaient la matrice clavier et des réflexions générales sur la connexion du 8052 à une mémoire externe.
Il va falloir quelque chose de plus substantiel pour pouvoir parler de plagiat…
Pour répondre aux interrogations de Papy.G :
Le CPLD ?
Un PAL/GAL ne me permettait pas d'implémenter toutes les fonctionnalités que je voulais.
Le CPLD que j'ai utilisé est quasiment plein, plus aucune ressource logique de libre, alors c'est clair qu'un PAL/GAL n'aurait pas fait l'affaire.
Et une autre raison pour le CPLD, c'est que ça me faisait un bon prétexte pour expérimenter avec ce genre de chip et le Verilog.
Pour le coup du contrôleur SPI c'est vrai que ma phrase n'est pas très claire quant aux motivations.
Je voulais un contrôleur SPI notamment pour la connexion à une carte SD.
Le 8052, du moins celui du Minitel, n'a pas de contrôleur SPI, donc il aurait fallu soit faire du bit banging avec les GPIO (faisable), soit bidouiller une bricole avec l'UART (peut-être pas faisable — quid de l'horloge ?). À partir du moment où j'avais choisi d'utiliser un CPLD, il n'y avait aucune raison de faire ce genre de bidouilles plutôt que de mettre un contrôleur SPI dans le CPLD.
Tu as raison, j'ai sûrement dû trouver quelques ressources à l'époque.
Lesquelles, je ne me souviens plus. C'était il y a 10 ans…
La photo de la nappe clavier, je me rappelle de quelque chose comme ça, mais ça ne m'a été d'aucune utilité. À partir du moment où le matériel est réalisé et que tu arrives à faire tourner un programme de ton cru, c'est pas bien compliqué d'écrire un petit programme qui t'affiche le numéro de ligne et de colonne de la matrice dès que tu appuies sur une touche, comparé à prendre une photo du circuit du clavier en rayons X ou je ne sais trop quoi, ou à reverse-engineerer les fils de la nappe clavier avec un multimètre (ça c'est facile, mais à la fin il faudra de toute façon vérifier avec un programme que le mapping qu'on a déduit avec le multimètre ne comporte pas d'erreurs).
Le petit mémo du Pr Oumnad, connais pô (joli petit nom cependant).
Le 9345, j'ai vu qu'il y avait quelques exemples de code par-ci par-là mais je ne m'en suis jamais servi, parce que c'étaient souvent des "minimal working examples" et que je voulais comprendre et maitriser le 9345 à fond (ce qui m'a valu de nombreuses séances d'arrachage capillaire avec la doc du 9345 qui n'est vraiment pas une sinécure ).
Concernant la "mise en panneau", j'en conviens, c'est moche
Mais c'est pourtant bien la traduction (consensuelle, à défaut d'être officielle) que j'ai trouvée pour l'anglais "panelization".
Si tu cherches "mise en panneau" sur Google tu trouveras des utilisations, par exemple ici chez Altium.
Je reviens trainer ici après plusieurs années d'absence, et quelle bonne surprise de voir qu'il y a toujours de l'activité autour du Minitel !
J'ai beaucoup, beaucoup à lire et rattraper !
Mais en attendant je me sens obligé de répondre à ce post :
Oh là là, si j'avais su que ça susciterait autant de controverse !kirion a écrit : ↑30 janv. 2024 22:19 @Papy.G tu n'es pas content qu'il ait eu son diplôme grâce au plagiat de ton travail ?
si ça se trouve il a même un pseudo ici et il a discuté avec toi durant toute la rédaction de son mémoire
Parce que son "mémoire de projet personnel d'électronique", je n'y crois pas une seconde, c'est rédigé comme un mémoire d'ingénieur. Une fois son diplôme en poche il a changé le titre, enlevé les remerciements à ses professeurs et à diffusé ça comme un projet personnel.
Personne n'écrit tout un mémoire de cette façon (en postscript) juste pour un projet personnel En plus il écrit aussi bien en français qu'en anglais sur son site. C'est sûrement pas un projet pour le diplôme du Bac
Demandons l'avis de @sam...
Le type de vtrm.net c'est moi, "fff" sur ce forum.
Papy.G et moi avions un peu correspondu par mail en 2020.
Je me permets de recopier un extrait d'un des mails que je lui ai envoyés.
Il pourra attester de son authenticité si certains pensent que j'invente.
Donc, cher kirion, bien vu pour le coup du mémoire d'ingénieurJ'avais suivi ton fil avec intérêt. Puis, la motivation me faisant défaut,
j'ai laissé tomber le projet pendant un long moment.
J'ai repris l'idée deux ans après. Si je n'ai pas posté sur le forum,
c'était parce que je faisais ce projet pour appuyer mon dossier de
candidature dans une école d'ingénieurs et que je tenais donc à le faire
sans info extérieure, par honnêteté. J'espère que tu comprendras.
Il est vrai que j'aurais pu poster le résultat fini sur le forum, mais je
n'ai pas osé déterrer le topic pour poster un message qui aurait pu être
interprété comme de la frime. Bon, ok, je me fais peut-être des idées...
Mais pour le reste, mollo sur les extrapolations s'il te plait
C'était donc bien un projet personnel et je ne m'en suis certainement pas servi comme projet de fin d'études pour avoir mon diplôme. De toute façon, au cas où tu l'ignores, un projet de fin d'études ça se fait lors d'un stage en entreprise et sur un sujet "réel" et "sérieux", pas sur des expérimentations de hobbyiste sur une vieille curiosité technologique d'il y a 40 ans.
Ensuite, un tas de gens ont des sites web perso en anglais et en français.
Depuis quand avoir un site bilingue serait forcément la marque d'un travail fait dans un cadre académique ou professionnel ?
Il suffit de farfouiller trois secondes sur mon site pour voir que toutes les pages, y compris celles qui n'ont aucun rapport avec le Minitel ou l'électronique, sont écrites en anglais et en français.
Mais surtout, "plagiat", sérieusement ?
Si c'est de l'humour, alors je suis passé à côté. Dans ce cas toutes mes excuses pour ce post déjà trop long.
Si c'est sincère alors il va falloir que tu m'expliques un peu ce que j'ai bien pu plagier.
Sur le vieux sujet de 2014 que Papy.G a mentionné, nos discussions concernaient la matrice clavier et des réflexions générales sur la connexion du 8052 à une mémoire externe.
Il va falloir quelque chose de plus substantiel pour pouvoir parler de plagiat…
J'ai connu des étudiants qui prenaient leurs notes de cours en LaTeX
Pour répondre aux interrogations de Papy.G :
Qu'est-ce qui te fait tiquer dans le choix du matériel ?Papy.G a écrit : ↑03 févr. 2024 16:31 […] toutefois, le choix du matériel mis en œuvre me paraît curieux, il semble être guidé par une contrainte dont l'origine m'échappe. […]
Aussi, une expression attise ma curiosité: "mise en panneau", c'est couramment usité dans le milieu?
Bas de page 8 du mémoire, le mec ne connaît pas les PAL/GAL ou prend les lecteurs pour des jambons?
"Le CPLD permet de câbler un vrai contrôleur SPI comme sur les µC modernes", mais c'était juste prévu sur la carte-mère du minitel avec le 8052!
Seulement, je ne peux pas croire qu'il ne soit pas tombé sur certaines informations sur le sujet, qui étaient déjà sur internet, le travail de Jeff est certes génial et inspirant, mais ce n'est probablement pas la ressource la plus utile qu'il ait trouvé, du fait du modèle dont il disposait pour son projet.
Exemple, la photo de la nappe clavier de Mortal Kastor, le petit mémo du Pr Oumnad, les sujets ici sur le 9345, avant même de parler de mon sujet ou des infos que j'ai disséminées à gauche à droite.
Le CPLD ?
Un PAL/GAL ne me permettait pas d'implémenter toutes les fonctionnalités que je voulais.
Le CPLD que j'ai utilisé est quasiment plein, plus aucune ressource logique de libre, alors c'est clair qu'un PAL/GAL n'aurait pas fait l'affaire.
Et une autre raison pour le CPLD, c'est que ça me faisait un bon prétexte pour expérimenter avec ce genre de chip et le Verilog.
Pour le coup du contrôleur SPI c'est vrai que ma phrase n'est pas très claire quant aux motivations.
Je voulais un contrôleur SPI notamment pour la connexion à une carte SD.
Le 8052, du moins celui du Minitel, n'a pas de contrôleur SPI, donc il aurait fallu soit faire du bit banging avec les GPIO (faisable), soit bidouiller une bricole avec l'UART (peut-être pas faisable — quid de l'horloge ?). À partir du moment où j'avais choisi d'utiliser un CPLD, il n'y avait aucune raison de faire ce genre de bidouilles plutôt que de mettre un contrôleur SPI dans le CPLD.
Tu as raison, j'ai sûrement dû trouver quelques ressources à l'époque.
Lesquelles, je ne me souviens plus. C'était il y a 10 ans…
La photo de la nappe clavier, je me rappelle de quelque chose comme ça, mais ça ne m'a été d'aucune utilité. À partir du moment où le matériel est réalisé et que tu arrives à faire tourner un programme de ton cru, c'est pas bien compliqué d'écrire un petit programme qui t'affiche le numéro de ligne et de colonne de la matrice dès que tu appuies sur une touche, comparé à prendre une photo du circuit du clavier en rayons X ou je ne sais trop quoi, ou à reverse-engineerer les fils de la nappe clavier avec un multimètre (ça c'est facile, mais à la fin il faudra de toute façon vérifier avec un programme que le mapping qu'on a déduit avec le multimètre ne comporte pas d'erreurs).
Le petit mémo du Pr Oumnad, connais pô (joli petit nom cependant).
Le 9345, j'ai vu qu'il y avait quelques exemples de code par-ci par-là mais je ne m'en suis jamais servi, parce que c'étaient souvent des "minimal working examples" et que je voulais comprendre et maitriser le 9345 à fond (ce qui m'a valu de nombreuses séances d'arrachage capillaire avec la doc du 9345 qui n'est vraiment pas une sinécure ).
Concernant la "mise en panneau", j'en conviens, c'est moche
Mais c'est pourtant bien la traduction (consensuelle, à défaut d'être officielle) que j'ai trouvée pour l'anglais "panelization".
Si tu cherches "mise en panneau" sur Google tu trouveras des utilisations, par exemple ici chez Altium.
Re: le minitel est de retour
Bienvenue @fff dans ce fil de création artisanale et de bienveillance.
Tes compétences techniques/rédactionnelle et tes expériences nous serons, à tous, très utiles...
"Good job" pour ton travail sur le M5... très inspirant !
("Nous", une forme littéraire ? ou multi-concepteurs ?)
ZamZam essaie ( ) d'assembler le programme "CamelForth" avec l'assembleur du SDCC.
La doc de l'assembleur que je viens juste de trouver,
("SDCC uses a modified version of ASXXXX & ASLINK, free open source retargetable assembler & linker.") :
http://svn.code.sf.net/p/sdcc/code/trun ... asmlnk.txt
et son code source :
https://github.com/pfalcon-mirrors/sdcc ... as/linksrc
Je vais calculer la vitesse de l'UART, pour un essai sur le Minitel 2 avec Putty en interface d'échange.
Si la config. est identique à CMON51 :
"Fréquence calculée : 74574 bauds (c'est la vitesse maxi de l'UART utilisant le Timer 0 ou 1, donc compatible MIB RTIC)"
Cependant pour le M1B RTIC, la vitesse serait de ; 74574 x 12MHz / 14.32 MHZ = 62492 Bauds.
Tes compétences techniques/rédactionnelle et tes expériences nous serons, à tous, très utiles...
"Good job" pour ton travail sur le M5... très inspirant !
("Nous", une forme littéraire ? ou multi-concepteurs ?)
ZamZam essaie ( ) d'assembler le programme "CamelForth" avec l'assembleur du SDCC.
La doc de l'assembleur que je viens juste de trouver,
("SDCC uses a modified version of ASXXXX & ASLINK, free open source retargetable assembler & linker.") :
http://svn.code.sf.net/p/sdcc/code/trun ... asmlnk.txt
et son code source :
https://github.com/pfalcon-mirrors/sdcc ... as/linksrc
Je vais calculer la vitesse de l'UART, pour un essai sur le Minitel 2 avec Putty en interface d'échange.
Si la config. est identique à CMON51 :
"Fréquence calculée : 74574 bauds (c'est la vitesse maxi de l'UART utilisant le Timer 0 ou 1, donc compatible MIB RTIC)"
Cependant pour le M1B RTIC, la vitesse serait de ; 74574 x 12MHz / 14.32 MHZ = 62492 Bauds.
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
ZamZam et moi avons testé CamelForth52 avec une vitesse d'uart de 12430 bauds, pour commencer.
Nous avons utilisé 3 modes pour réaliser une opération "(5 + 2) * 2 = 14" :
1) Avec Putty => OK :
2) Sous DOS, avec plink (putty en ligne de commande) => OK
3) Sous Notepad++, avec nppExec et plink => le prompt de CamelForth est OK mais les commandes ne s'exécutent pas La commande est retournée à l'identique si le minitel est sous tension, sinon il n'y a aucun retour de texte (juste un "saut de ligne").
Paramétrage de la npe_console de nppExec :
Si vous avez des idées sur ce dysfonctionnement, je suis preneur...
Nous avons utilisé 3 modes pour réaliser une opération "(5 + 2) * 2 = 14" :
1) Avec Putty => OK :
2) Sous DOS, avec plink (putty en ligne de commande) => OK
3) Sous Notepad++, avec nppExec et plink => le prompt de CamelForth est OK mais les commandes ne s'exécutent pas La commande est retournée à l'identique si le minitel est sous tension, sinon il n'y a aucun retour de texte (juste un "saut de ligne").
Paramétrage de la npe_console de nppExec :
Code : Tout sélectionner
NPE_CONSOLE
Console mode: a- d- e0 h- m+ p+ q+ v- f- r- k3 o0 i0
; append: off, cd_curdir: off, esc_seq: raw
; cmd_history: off, int_msgs: on, print_ready: on
; cmd_aliases: on, output_var: off
; filter: off, replace_filter: off
; shortcut_keys: std+usr
; out_enc: ANSI, in_enc: ANSI
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
Ce matin, nouvelle idée...
Pourquoi ne pas analyser l'uart avec un oscillo !
1) En mode Putty et DOS :
- chacun des caractères est envoyé à chaque frappe
- Enter => CR (\r)
2) En mode nppExec + plink :
- La chaine est envoyée en une seul fois
- avec un "NewLine", LF (\n) à la fin
3) Par défaut, nppExec génère un LF (\n) à la fin
pour remplacer ce caractère, il faut ajouter "Key_Enter=\r" comme indiqué dans le fichier :
C:\Program Files\Notepad++\plugins\NppExec\doc\NppExec\NppExec_TechInfo.txt
dans le fichier : C:\Users\nomUser\AppData\Roaming\Notepad++\plugins\config\NppExec.ini, dans la section [console]
Oscillogramme après modif...
Résultat dans "nppExec Console" :
Remarque pour ce mode : Aprés la frappe de Enter => Saut de ligne + répétition de la commande + résultat de l'opération
Pourquoi ne pas analyser l'uart avec un oscillo !
1) En mode Putty et DOS :
- chacun des caractères est envoyé à chaque frappe
- Enter => CR (\r)
2) En mode nppExec + plink :
- La chaine est envoyée en une seul fois
- avec un "NewLine", LF (\n) à la fin
3) Par défaut, nppExec génère un LF (\n) à la fin
pour remplacer ce caractère, il faut ajouter "Key_Enter=\r" comme indiqué dans le fichier :
C:\Program Files\Notepad++\plugins\NppExec\doc\NppExec\NppExec_TechInfo.txt
Code : Tout sélectionner
****************************************************************************
* NppExec plugin ver. 0.7 for Notepad++
* by DV <dvv81 @ ukr.net>, December 2006 - July 2021
****************************************************************************
***************************
* Technical Information *
***************************
NppExec has advanced "hidden" settings which can be set manually.
You need to edit NppExec's ini-file: "\Plugins\Config\NppExec.ini".
-----------------------------------------------------------------------------
| KEY | DEFAULT VALUE | TYPE |
|-----------------------------------------------------------------------------|
| | | |
| [Console] | | |
| ChildProcess_StartupTimeout_ms | 240 | int |
| ChildProcess_CycleTimeout_ms | 120 | int |
| ChildProcess_ExitTimeout_ms | 2000 | int |
| ChildProcess_KillTimeout_ms | 500 | int |
| ChildProcess_RunPolicy | 0 | int |
| ChildProcess_ComSpecSwitches | /C | string |
| ChildScript_SyncTimeout_ms | 200 | int |
| ExitScript_Timeout_ms | 4000 | int |
| Path_AutoDblQuotes | 0 (FALSE) | BOOL |
| CmdHistory_MaxItems | 256 | int |
| Exec_MaxCount | 100 | int |
| GoTo_MaxCount | 10000 | int |
| RichEdit_MaxTextLength | 4194304 (4 MB) | int |
| SendMsg_MaxBufLength | 4194304 (4 MB) | int |
| Calc_Precision | 0.000001 | float |
| CommentDelimiter | // | string |
| Visible | 0 (FALSE) | BOOL |
| ShowHelp | 0 (FALSE) | BOOL |
| PrintMsgReady | 1 (TRUE) | BOOL |
| CustomMsgReady | ========== READY ==========\r | string |
| NoEmptyVars | 1 (TRUE) | BOOL |
| SaveCmdHistory | 1 (TRUE) | BOOL |
| TextColorNormal | 00 00 00 | HEX |
| TextColorError | A0 10 10 | HEX |
| TextColorMessage | 20 80 20 | HEX |
| BackgroundColor | 0 | HEX |
| Alias_Cmd_NppExec | \ | string |
| Key_Enter | \n | string |
Code : Tout sélectionner
Key_Enter
---------
Specifies the character(s) sent to stdin of the running process
when the Enter key is pressed.
Available values are: \n, \r, \r\n, \n\r and so on.
In case of empty value, the default value of \n is used.
Oscillogramme après modif...
Résultat dans "nppExec Console" :
Remarque pour ce mode : Aprés la frappe de Enter => Saut de ligne + répétition de la commande + résultat de l'opération
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
Comme le "CMON51" fonctionne sur le même principe que "CamelForth52", je l'ai intégré dans :
Notepad++, NppExec, Plink à 74574 Bauds :
Remarque : Ma colorisation automatique par détection du point '.', adaptée au Forth, devra devenir paramétrable suivant l'application lancée dans le Minitel.
Notepad++, NppExec, Plink à 74574 Bauds :
Remarque : Ma colorisation automatique par détection du point '.', adaptée au Forth, devra devenir paramétrable suivant l'application lancée dans le Minitel.
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs
Re: le minitel est de retour
Un paramétrage global de "NppExec Console Filters", "HighLight", peut s'avérer suffisant :
Ligne 1 : "> " : noir gras => prompt de CMON51 puis la commande, étant sur la même ligne
Ligne 2 : "* ." : magenta gras => écho d'une commande FORTH
Ligne 3 : "u ???? *" : bleu gras => écho d'une commande de désassemblage de CMON51
Ligne 4 : "*" : bleu => retour normal du minitel vers "NppExec Console"
Ligne 1 : "> " : noir gras => prompt de CMON51 puis la commande, étant sur la même ligne
Ligne 2 : "* ." : magenta gras => écho d'une commande FORTH
Ligne 3 : "u ???? *" : bleu gras => écho d'une commande de désassemblage de CMON51
Ligne 4 : "*" : bleu => retour normal du minitel vers "NppExec Console"
Le monde a plus besoin d'artisans, d'entrepreneurs, de créateurs que de prédicateurs et de procureurs