Comme mon organisation ne me permet d'être ni assidu ni productif dans mon projet, je vais vous faire état de mes avancées, que d'autres puissent s'y mettre, si cela les intéresse.
Donc, je me base sur le
M1b de Telic/Alcatel (vu dans la collection de Carl, d'ailleurs, référencé comme M1 ici, le M1 Telic est différent), un des plus courants, en examinant de près, on y trouve:
Le 8052, ou 8032, selon la production, mais on s'accomodera autant d'un que de l'autre, nous verrons ensuite comment et pourquoi. Vite fait, c'est un microcontrôleur type Intel 8051 à ~12MHz (12cycles/instruction, instructions de 3 octets maximum, ce qui n'est pas trop vilain), avec 256o de ram, adressant ram ou rom externe via un bus multiplexé A/D 16/8 bits, quatre banks de huit registres 8 bits switchables trois timers/compteurs 16bits intégrés, un port série full duplex asynchrone avec buffers, un gestionnaire d'interruptions à deux niveaux de priorité...
Le 9345, avec ses 8ko dédiés (un NEC 4168C, dram rafraîchie automatiquement en interne), pilotant aussi le buzzer par sa broche i (insertion).
Le modem, dont je n'ai pas encore trouvé la doc, je sais juste que c'est un composant série pour l'instant (TIC Modem 01 HC3 5731R-5, celui qui me trouve la doc est un dieu vivant).
Un port série TTL 5V bidirectionnel, avec une ligne de handshaking.
Un emplacement libre pour un composant de 8 pattes, probablement une eprom série (SPI), les quatre lignes (E-S) du 8052 qui y mènent sont dévoués uniquement à ce composant (présent dans les M2 Alcatel, si quelqu'un pouvait m'en communiquer la référence).
L'écran monochrome, dont il faut encore que je détermine les modes supportés (je soupçonne un 50Hz entrelacé, pour la compatibilité péritel, à confirmer)
Des plots pour un connecteur ou une nappe vers Péritel (dessin de la prise dans la coque)
Un clavier avec logique pour gérer la matrice, 64 touches, appuis simultanés supportés.
Ici, le mappage, fait par Mortal Kastor.
Pour finir,
un "connecteur" de bus mémoire recevant les 16 bits multiplexés, les R/W, Rom/Ram, et ressortant le CE du 9345 et les 8 Hsb du bus vers les périphériques sur la carte mère. Il semblerait que certains M2,
et terminatel 258, partagent ce bus, avec toutefois trois broches supplémentaires. D'autres M2 ont un bus d'extension de ce type, mais je n'en ai pas vu de près, je ne saurais dire leurs possibilités. Des shunts par Wraps (repérés Sxx) sont prévus sur la carte-mère, selon que la carte-fille Rom est présente (version 8032) ou non sur le connecteur, et pour d'autres possibilités que j'ignore.
C'est donc une machine avec un certain potentiel, mais le modèle mémoire prévu par le fondeur ne convient pas, à priori, à une utilisation avec programmes en "software", les vecteurs d'interruptions étant dans l'espace "rom", ainsi que les programmes, il faut une rom pour démarrer, mais qu'elle puisse s'effacer pour laisser apparaître un espace ram à sa place, une fois que le programme y a été chargé.
L'époque et les technologies étant ce qu'elles sont actuellement, on oublie l'utilisation type cartouche, qui aurait été possible, et assez simplement, le masquage de la rom interne (sur le 8052) étant prévu par une broche qui va au bus d'extension, sur la version 8032, la désactivation de l'Eprom n'aurait pas été incontournable.
L'idée étant de mettre une carte mémoire type SD sur le "bus" SPi, et ensuite, mettre de la Ram, accessible indifféremment comme rom et comme Ram, afin de pouvoir charger des programmes, avec un bloc mémoire (genre un 373 avec un peu de logique) activant l'accès aux périphériques et à la Rom de boot. Ce bloc peut être hors des espaces mémoire, car on peut différencier les accès Rom/Ram/IO grâce aux broches de contrôle bus (à vérifier toutefois selon le mode d'accès au modem et au clavier sur la carte).
Si les 64Ko ne suffisent pas, on peut utiliser le bloc de contrôle mémoire plus extensivement, en le faisant pointer des blocs de 64Ko, qui seront présentés au microcontrôleur comme Ram ou Rom, exemple:
Si CYYYXZZZ sont les bits envoyés au 373, C active ou non la présence de la Rom, qui masque le reste selon sa taille, YYY l'adresse du bloc de Ram de 64Ko présenté comme espace Rom, X active l'accès aux périphériques de la carte-mère en masquant les adresses utilisées par ceux-ci (ou masquage total, à définir ultérieurement), ZZZ l'adresse du bloc de Ram présenté comme espace Ram. Cette option, avec un seul bloc, permet l'utilisation jusqu'à 512Ko de Ram, ce qui est déjà conséquent pour ce type de machine.
Le Swap de la Rom posant des problèmes de déroulement du programme, il faut que la portion de code faisant le swap soit dupliqué à une adresse commune dans chaque bloc où sera exécuté du code, quelques octets y suffiront. Il faut aussi dupliquer, si besoin, les vecteurs d'interruption.
Sinon, j'ai vu qu'il y a le TripleX, y-aurait-il un intérêt à utiliser un modèle mémoire compatible, sachant que c'est un système à part? Comme on commence avec une machine pour l'instant sans rom, et sans trop de contraintes de modèle mémoire, l'intérêt m'en semble limité, mais peut-être me trompè-je.
Le détail du port d'extension:
1: +5V
2: P 0.0 AD0
3: P 0.1 AD1
4: P 0.2 AD2
5: P 0.3 AD3
6: P 0.4 AD4
7: P 0.5 AD5
8: P 0.6 AD6
9: P 0.7 AD7
10: /EA ("External Access" relié au +5V, rom interne, relié à la masse, forçage rom externe)
11: ALE ("Adress Latch Enable" Latch d'adresse Mux)
12: /PSEN ("Program Store Enable" Lecture d'instructions depuis la Rom externe)
13: A15 Shunt possible vers P 2.7
14: A14 Shunt possible vers P 2.6
15: A13 Shunt possible vers P 2.5
16: A12 Shunt possible vers P 2.4
17: A11 Shunt possible vers P 2.3
18: A10 Shunt possible vers P 2.2
19: A9 Shunt possible vers P 2.1
20: A7 Shunt possible vers P 2.0
21: P 2.7 A15
22: P 2.6 A14
23: P 2.5 A13
24: P 2.4 A12
25: P 2.3 A11
26: P 2.2 A10
27: P 2.1 A9
28: P 2.0 A8
29: /CS du 9345
30: P 3.7 /RD (Lecture depuis la mémoire de données externe)
31: P 3.6 /WR (Ecriture en mémoire de données externe)
32: Masse