Probleme: detection d'architecture
Modérateur : Politburo
- foolduplex
- Fonctionne à 1200 bauds
- Messages : 628
- Enregistré le : 02 oct. 2002 23:06
- Localisation : Lausanne, Suisse
- Contact :
Probleme: detection d'architecture
Salut,
j'aimerais soumettre un probleme interessant:
Comment savoir a coup sur dans un programme a quelle machine thomson on a affaire, sans utiliser l'octet de reference qui se trouve dans la rom moniteur. Autrement dit, est-il possible de concevoir une routine en langage machine, qui s'execute sur tous les thomson et qui testerait certaines particularites hardware pour en deduire: "je tourne sur un to7/70" par exemple, a la maniere des Norton Utilities qui nous epataient dans les annees 80 en disant "Vous avez un NEC V30 a 8 MHz sur votre PC".
Faire la distinction entre MO et TO est aise, il suffit par exemple d'aller ecrire un truc en $1FFF, qui est en RAM sur MO et en ROM sur TO.
La question devient interessante lorsqu'il s'agit de distinguer deux MO ou deux TO. En particulier, distinguer un MO5, un MO5E et un MO5NR me parait non trivial. Naturellement la question se pose aussi pour les autres architectures. J'attends donc vos propositions
Concernant les MO5, je n'ai pour le moment trouve qu'une difference entre MO5 et MO5E, c'est la matrice clavier. Le probleme est que je ne vois pas comment on peut faire la difference sans devoir presser une touche et poser la question a l'utilisateur, ce qui n'a evidemment aucun interet. Mais je n'ai pas cherche beaucoup plus loin.
Le MO5 NR me pose egalement un probleme, peut-on le differencier d'un MO5 equipe d'une extension NR et d'une cartouche 64 Ko ?
NB: on doit uniquement utiliser un test hard, il faut partir de l'hypothese que le contenu des ROMs d'origine n'est pas disponible (certains doivent me voir venir avec mes gros sabots )
Fool
j'aimerais soumettre un probleme interessant:
Comment savoir a coup sur dans un programme a quelle machine thomson on a affaire, sans utiliser l'octet de reference qui se trouve dans la rom moniteur. Autrement dit, est-il possible de concevoir une routine en langage machine, qui s'execute sur tous les thomson et qui testerait certaines particularites hardware pour en deduire: "je tourne sur un to7/70" par exemple, a la maniere des Norton Utilities qui nous epataient dans les annees 80 en disant "Vous avez un NEC V30 a 8 MHz sur votre PC".
Faire la distinction entre MO et TO est aise, il suffit par exemple d'aller ecrire un truc en $1FFF, qui est en RAM sur MO et en ROM sur TO.
La question devient interessante lorsqu'il s'agit de distinguer deux MO ou deux TO. En particulier, distinguer un MO5, un MO5E et un MO5NR me parait non trivial. Naturellement la question se pose aussi pour les autres architectures. J'attends donc vos propositions
Concernant les MO5, je n'ai pour le moment trouve qu'une difference entre MO5 et MO5E, c'est la matrice clavier. Le probleme est que je ne vois pas comment on peut faire la difference sans devoir presser une touche et poser la question a l'utilisateur, ce qui n'a evidemment aucun interet. Mais je n'ai pas cherche beaucoup plus loin.
Le MO5 NR me pose egalement un probleme, peut-on le differencier d'un MO5 equipe d'une extension NR et d'une cartouche 64 Ko ?
NB: on doit uniquement utiliser un test hard, il faut partir de l'hypothese que le contenu des ROMs d'origine n'est pas disponible (certains doivent me voir venir avec mes gros sabots )
Fool
empreinte graphique
A mon humble avis il suffirait de raisonner graphiquement en disant
'c est ecrit desssus'
un programme assembleur qui lirait chaque pixel du bandeau
ensuite par comparaison avec une table on determinerait le type d ordi.
'c est ecrit desssus'
un programme assembleur qui lirait chaque pixel du bandeau
ensuite par comparaison avec une table on determinerait le type d ordi.
Re: Probleme: detection d'architecture
tient donc, ne serait-ce pas pour OS/9 justement ?foolduplex a écrit : NB: on doit uniquement utiliser un test hard, il faut partir de l'hypothese que le contenu des ROMs d'origine n'est pas disponible (certains doivent me voir venir avec mes gros sabots )
Fool
- romualdl
- Fonctionne à 2400 bauds
- Messages : 1986
- Enregistré le : 23 mai 2002 15:44
- Localisation : Beaumont Sur Oise (95)
- Contact :
coucou
Salut,
J'allais répondre justement en partant d'interruptions. Il me semble qu'au demarrage la machine va voir en ROMDIS si qqchose en port cartouche. Il serait peut etre possible de voir unpeu plus clair avec ca, mais je ne sais si c'est possible et si OS9 est en cartouche c'est foutu.
J'allais répondre justement en partant d'interruptions. Il me semble qu'au demarrage la machine va voir en ROMDIS si qqchose en port cartouche. Il serait peut etre possible de voir unpeu plus clair avec ca, mais je ne sais si c'est possible et si OS9 est en cartouche c'est foutu.
<Pocket>la striole en a un et il me le montre quand j'ai envie (irc-25/09/2008)
Re: Probleme: detection d'architecture
A priori, il devrait être très difficile, voire impossible, de distinguer un MO5 d'un MO5E, car ce sont quasiment les mêmes machines. Même chose entre un MO5NR, un MO6 et un Olivetti PC128. A part le clavier, ils sont trop semblables pour pouvoir les identifier sans lire la ROM.foolduplex a écrit :distinguer un MO5, un MO5E et un MO5NR me parait non trivial
Par contre il devrait être très facile de reconnaitre les MO5-MO5E des MO5NR-MO6-PC128, en testant les adresses A7E4-A7E7 et A7DC-A7DD. Sur les MO5NR-MO6-PC128 ce sont des registres système, de commutation de RAM ou de mode d'affichage, alors qu'elles sont inutilisées sur MO5-MO5E.
A l'occasion j'écrirai et testerai un petit programme en langage machine.
Je chercherai aussi pour la distinction MO5/MO5E et MO5NR/MO6, mais il y a peu d'espoir.
Daniel
Re: Probleme: detection d'architecture
y'a-t-il un moyen de detecter le type de clavier (AZERTY ou QWERTY) sans passer par la ROM ?Daniel a écrit :A priori, il devrait être très difficile, voire impossible, de distinguer un MO5 d'un MO5E, car ce sont quasiment les mêmes machines. Même chose entre un MO5NR, un MO6 et un Olivetti PC128. A part le clavier, ils sont trop semblables pour pouvoir les identifier sans lire la ROM.foolduplex a écrit :distinguer un MO5, un MO5E et un MO5NR me parait non trivial
Par contre il devrait être très facile de reconnaitre les MO5-MO5E des MO5NR-MO6-PC128, en testant les adresses A7E4-A7E7 et A7DC-A7DD. Sur les MO5NR-MO6-PC128 ce sont des registres système, de commutation de RAM ou de mode d'affichage, alors qu'elles sont inutilisées sur MO5-MO5E.
A l'occasion j'écrirai et testerai un petit programme en langage machine.
Je chercherai aussi pour la distinction MO5/MO5E et MO5NR/MO6, mais il y a peu d'espoir.
Daniel
Re: Probleme: detection d'architecture
Eh non, et c'est bien ce qui fait la difficulté du problème de FoolduplexYoann a écrit :y'a-t-il un moyen de detecter le type de clavier (AZERTY ou QWERTY) sans passer par la ROM ?
Les claviers ont exactement les mêmes scan codes, seules les gravures sur les touches sont différentes.
C'est la table de décodage du clavier qui détermine le code ASCII, et cette table est en ROM.
Daniel
Re: Probleme: detection d'architecture
c'est ce que je pensais ... c'est chaud quoiDaniel a écrit :C'est la table de décodage du clavier qui détermine le code ASCII, et cette table est en ROM
-
- Fonctionne à 2400 bauds
- Messages : 1806
- Enregistré le : 03 mai 2003 02:24
- Localisation : Nonglard (Annecy)
- Contact :
Juste une question comme ca : pourquoi justement ne pas tester la ROM ?
Il devrait y avoir des messages de copyright non ?
Lolo (hein, pourquoi ?)
Il devrait y avoir des messages de copyright non ?
Lolo (hein, pourquoi ?)
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Re: Probleme: detection d'architecture
Voici un début de réponse, qui ne répond pas entièrement à la question (mais le problème a-t-il une solution ?) :foolduplex a écrit :En particulier, distinguer un MO5, un MO5E et un MO5NR me parait non trivial... J'attends donc vos propositions
- Ecrire &HEE en &HA7E4, puis lire &HA7E4
- Si c'est égal à &HEE, c'est un TO, je laisse aux spécialistes le soin de déterminer lequel
- Sinon c'est un MO. Faire un AND avec &H0F
- Si nul, c'est un MO6, MO5NR ou PC128
- Sinon, c'est un MO5 ou MO5E
Daniel
oui, c'est ca. Ils reprogramme une ROM avec un OS/9 qui remplace la ROM originale du Thomson. Donc il n'est evidement pas possible d'aller cherche quelques informations dans cette ROM originale qui n'existera pas sous cet OS.jp a écrit :si j'ai bien compris, c'est justement parce que le programme va tourner à la place de la ROM d'origine... non ?
jp
L'un des problemes majeurs semble-t-il n'est pas la detection MO / TO (qui peut etre faite par un poke en memoire, car les ROMs et RAMs ne sont pas placee aux meme adresses sur MO et TO) mais de determiner si j'ai bien compris le type de clavier (QWERTY ou AZERTY) car :
Certain MO5E (E comme "Export") ont un clavier QWERTY ainsi que les PC128 d'Olivetti (qui sont en fait des MO6)
- romualdl
- Fonctionne à 2400 bauds
- Messages : 1986
- Enregistré le : 23 mai 2002 15:44
- Localisation : Beaumont Sur Oise (95)
- Contact :
clavier
SAlut,
Désolé mais pour le clavier je ne vois pas de solution... Etant donné que c'est une matrice et que le caractère correspondant est en ROM cela parait compromis. Il y aurait cependant une solution. POur ceux voulant une machine tournant sur os9 OU sur os thomson (a supposer donc qu'il y ai une double ROM en interne ou que OS9 soit en cartouche externe:
-un menu ou l'utilisateur doit choisir entre A-> mode OS9 B-> mode normal (et non 1 ou 2) en fonction du code renvoyé par la pression de la touche A cela permettra de savoir si le clavier est azerty ou qwerty. Malheureusement cela demande l'intervention de l'utilisateur, et arrivè à ce niveau là certains diront (suivez mon regard) qu'il sera aussi simple de demander directement à l'utilisateur. Mais bon la solution A ou B pourrait etre un compromis.
Désolé mais pour le clavier je ne vois pas de solution... Etant donné que c'est une matrice et que le caractère correspondant est en ROM cela parait compromis. Il y aurait cependant une solution. POur ceux voulant une machine tournant sur os9 OU sur os thomson (a supposer donc qu'il y ai une double ROM en interne ou que OS9 soit en cartouche externe:
-un menu ou l'utilisateur doit choisir entre A-> mode OS9 B-> mode normal (et non 1 ou 2) en fonction du code renvoyé par la pression de la touche A cela permettra de savoir si le clavier est azerty ou qwerty. Malheureusement cela demande l'intervention de l'utilisateur, et arrivè à ce niveau là certains diront (suivez mon regard) qu'il sera aussi simple de demander directement à l'utilisateur. Mais bon la solution A ou B pourrait etre un compromis.
<Pocket>la striole en a un et il me le montre quand j'ai envie (irc-25/09/2008)
Re: clavier
Pareil pour moi, plus j'y réfléchis, moins j'ai d'espoir.romualdl a écrit :pour le clavier je ne vois pas de solution...
Pour compliquer encore, les MO5E ont au moins 2 claviers différents (si ce n'est plus) en fonction du pays de destination. Il y a aussi le fameux clavier arabe de la machine de Piloux, et les PC128 avec leur point d'exclamation à l'envers.
Rappelez-vous les problèmes que nous avions avec le MS-DOS sur PC, qui démarrait par défaut avec un clavier QWERTY. Nous connaissions par coeur la position des touches : A, Q, Z, W, M, *, / etc.
Point de salut sans la fameuse commande keyb fr. Il faudra probablement en passer par là avec OS/9
Daniel
- foolduplex
- Fonctionne à 1200 bauds
- Messages : 628
- Enregistré le : 02 oct. 2002 23:06
- Localisation : Lausanne, Suisse
- Contact :
Salut a tous,
j'etais absent quelques temps, desole pour mon silence... je suis heureux de voir que ce sujet interesse du monde.
Pour le MO5 NR, il y a une solution a priori (je laisse le soin a daniel de trouver le detail): il a plus de banques de ROM et de RAM (car menu de demarrage notamment et 6 banques de RAM au lieu de 4 avec l'ext 64k sur mo5 classique). Donc en ecrivant quelque chose dans une banque RAM inexistante sur mo5, on doit pouvoir s'en sortir.
Je n'ai toujours pas de solution pour le mo5e. surtout qu'il existe des mo5e azerty et des mo5e qwerty.. pfff...
cela etant dit, je pense que nous allons opter pour une compilation conditionnelle du systeme avec des #defines. mais je trouve que cette question merite tout de meme reflexion, c'est rigolo. n'y aurait-il pas une subtilite sur le gate array du mo5e
Fool
j'etais absent quelques temps, desole pour mon silence... je suis heureux de voir que ce sujet interesse du monde.
Pour le MO5 NR, il y a une solution a priori (je laisse le soin a daniel de trouver le detail): il a plus de banques de ROM et de RAM (car menu de demarrage notamment et 6 banques de RAM au lieu de 4 avec l'ext 64k sur mo5 classique). Donc en ecrivant quelque chose dans une banque RAM inexistante sur mo5, on doit pouvoir s'en sortir.
Je n'ai toujours pas de solution pour le mo5e. surtout qu'il existe des mo5e azerty et des mo5e qwerty.. pfff...
cela etant dit, je pense que nous allons opter pour une compilation conditionnelle du systeme avec des #defines. mais je trouve que cette question merite tout de meme reflexion, c'est rigolo. n'y aurait-il pas une subtilite sur le gate array du mo5e
Fool