Débuter en asm 6809E sur Thomson : petit récapitulatif

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Carl, Papy.G, fneck

Avatar du membre
jb_jb_fr
Messages : 295
Enregistré le : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par jb_jb_fr » 13 janv. 2016 13:28

Bonjour Xavier
Donc un système d'exploitation est en cours de codage sur une machine 6809 de Motorola, ici le MO5.
Il reprendra les bases du système d'exploitation créé pour les machines Apple... le fameux Os9.
OS9 n'a strictement rien a voir avec l'OS9 d'Apple.
A l'origine OS9 etait : Operating Systeme for 6809 d'ou le nom OS9https://en.wikipedia.org/wiki/OS-9
A ne pas confondre avec Mac OS-9 qui est la version No 9 de l'OS d'Aapple https://fr.wikipedia.org/wiki/Mac_OS_9

Ce sont 2 chose totalement différentes.

Et ce qui est fait ce n'est pas la création d'un OS en cours de Codage.
C'est plutot en cours d'adaptation. Le but est donc d'adapter un OS existant, eprouvé, à une machine qui n'a pas les caracteristiques requise. Donc ca ne se fait pas d'un coup.
Et comme tout OS, il faut bien évidemment ecrire les drivers qui vont avec. Ce qui est justement en cours d'écriture.

Jacques

Avatar du membre
jb_jb_fr
Messages : 295
Enregistré le : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par jb_jb_fr » 13 janv. 2016 13:40

Daniel
Daniel a écrit :C'est le seul et unique fichier téléchargeable à la page officielle d'OS/9 : http://os9.forler.ch/download.php
Depuis 2004 je n'ai eu aucun élément concret pour le faire évoluer, et c'est dommage car l'émulateur est le meilleur moyen de montrer à quoi ressemble le système.
Il y a une chose qui me gene dans cette philosophie, c'est qu'il faut forcement intégrer la ROM à l'émulateur.
Ce que je vais livrer, ce sont des ROM : 1 ROM pour le MO5, 2 ROM pour le MO6, 3 ROM pour le TO9+
Ce qui veut dire que à chaque modif soit de l'émulateur, soit d'OS9, il faudra relivrer l'executable.

N'y a t'il pas l'option de passer ces ROM en parametre?

Pour ma part, pour faire tourner/debugger OS9 j'utilise XEMUL56
Qui a l'origine était un emulateur de Fool qui s'appelait XEmul5, et qui ne faisait tourner que du MO5.
Maintenant il est capable de faire tourner le MO5, le MO6, le TO9+, et il suffit juste de passer en parametre le type de machine voulue.
Derriere il se debrouille tout seul pour aller chercher les ROM dans les bons répertoires.
Il a quelques defaut qui rebute du monde : C'est tout en ligne de commande, et c'est sous X11, ce qui veut dire qu'il faut utiliser Cygwin sur PC.
Mais l'avantage que j'y vois est que je peux avec un seul executable utiliser les roms que je veux sur la machine que je veux.
Et tres important pour moi : Ca tourne sur Mac, sur PC, et sur Unix

Jacques

Avatar du membre
gilles
Messages : 1632
Enregistré le : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par gilles » 13 janv. 2016 14:45

En bricolant un peu TEO il doit être possible de le faire tourner en mode TO9+. La gestion clavier est à modifier et éventuellement simuler la présence du modem interne mais cela ne doit pas être bien complexe.
Une option pour diffuser sans peine c'est aussi l'emulateur java directement sur une page web (en stock j'ai MO5 et TO8 (mais la gestion du timer 6846 est à compléter)). C'est multi plateforme, pour montrer quelquechose prêt à l'emploi et pour quasi tout OS desktop c'est idéal.
MESS peut également convenir mais il faudra passer outre la signature de rom différente de celle attendue.

Fool-DupleX
Messages : 986
Enregistré le : 06 avr. 2009 12:07

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par Fool-DupleX » 15 janv. 2016 17:37

Les raisons du flou qui règne autour du projet OS9/MO5 n'ont rien a voir avec celles evoquées pour Mame ou autre. Il n'y a essentiellement qu'une seule raison : plus aucun d'entre nous n'a le temps de travailler dessus. Ca et effectivement que le projet n'a pas soulevé les foules comme dit Jacques.

Il y a un repository FTP chez moi avec plusieurs versions bien plus récentes que celle sur le site web. Le site web est plus ou moins obsolète, je le laisse histoire d'occuper le terrain, mais il faudrait le refaire de A à Z et pour le coup je n'ai vraiment pas le temps de m'en occuper.

Et puis pour l'émulateur, il va falloir émuler le RomDisk NG que nous utilisons pour nos développements. C'est pas compliqué. Je peux te filer la derniere rom, Daniel, pour tester.

OS9 n'a effectivement rien à voir avec MacOS. Dans l'usage, ça ressemble beaucoup à Linux : multi-tâche, multi-utilisateur, système de fichiers avec noms longs et permissions, shell, etc.

Avatar du membre
Xavier
Messages : 1000
Enregistré le : 03 avr. 2014 14:42

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par Xavier » 15 janv. 2016 19:03

Salut,

Merci pour la mise au point apportée à mon esprits béotien et naïf sur le sujet!
Sur le site, l'OS était fonctionnel en 2003 lors du meeting Thomson.
Cette version sera-t-elle suffisante pour une version de démonstration sur émulateur?
Personnellement ma philosophie serai à l'inverse, à savoir de l'émulateur à la machine... et non de la machine à l'émulateur!
Mais en 2002, je ne sais pas si DCmoto existait dans une version qui pouvait déjà exploiter une rom aussi complexe...

(...)
Grâce à Daniel, cette version spéciale de l'émulateur DCMO5 permet de voir à quoi ressemble OS-9/MO5.
En 2004, intégration du projet à DCmoto.

Fool-DupleX
Messages : 986
Enregistré le : 06 avr. 2009 12:07

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par Fool-DupleX » 17 janv. 2016 16:41

Le statut du projet OS-9/MO5 est le suivant à ce jour :
  • Le noyau OS-9 layer one est totalement fonctionnel sur MO5. Il est multitâche préemptif.
  • La gestion des comptes utilisateurs est OK (login/mdp)
  • RBF/SCF est OK (pipes, redirections, streams)
  • Le système de fichier est OK (à la unix avec dossiers, noms longs et privilèges UGO/RWX)
  • Périphériques 100% supportés : vidéo avec 80 colonnes simulées, clavier, lecteur de disquette 3"1/2 CD90-351, interface série RF57-932, Romdisk NG (ext. 256 Ko RAM + disque flash 256 Ko)
  • A noter que sur les disquettes 3"1/2, on stocke 760 Ko (contre 2x320 Ko sur Thomson standard)
  • Environ 80 outils divers et variés sont fonctionnels, dont un shell, un assembleur, un désassembleur, un éditeur de texte pleine page, un éditeur de secteurs de disque, et tous les petits machins genre ps, ls, chdir, mkdir, rmdir, cat etc.
Tout cela en fait était déjà OK en 2006, hormis le romdisk ng qui est une création de 2011.

Ce qui a été fait depuis :
  • Portage du noyau sur MO6/MO5NR, support du clavier, mode vidéo 80 vraies colonnes
  • Développement du driver et des services pour le Nanoréseau : partiellement fonctionnel
  • Portage du noyau sur TO9+, support du clavier, la vidéo marche pareil que sur MO6
Une fois que le noyau tourne sur les machines, il y a zéro travail pour les drivers et les outils : ca tourne sans modification. Donc à ce jour, OS-9 tourne sur MO5, MO5E, MO6, MO5NR, TO9+. Il suffirait de très peu de modifications pour ajouter les TO8/TO8D. Par contre, il y a un peu plus de travail pour les TO7/TO7-70/TO9.

En 2003, nous avions fait une démo au Forum qui était impressionnante pour un MO5 :
  • Login à distance depuis un Atari ST à travers la ligne série. L'utilisateur local et l'utilisateur distant travaillaient simultanément sur la machine
  • Impression d'un texte en tâche de fond
  • Formatage d'une disquette en tâche de fond
Soit des choses impossibles sur un Thomson standard.

Je tiens à préciser que tout cela est possible sans modification de l'électronique de la machine, seule la ROM change. Pourquoi je dis cela, eh bien, parce que mon avis depuis toujours est que ces machines ont été largement desservies par la médiocrité du logiciel qui les équipait.

Avatar du membre
jb_jb_fr
Messages : 295
Enregistré le : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par jb_jb_fr » 17 janv. 2016 19:45

Merci Fool pour ce résumé complet, exhaustif, et (a mon gout) très alléchant.

Je rajoute, un petit truc qui pourrait peut-être en allécher certains:
Comme il avait été sujet sur ce forum d'utiliser un 6309 pour gagner en vitesse, le Noyau a été adapté pour supporter un 6309.
Cela va a l'encontre de ce qu'a dit Fool : Sans modification d’électronique.
Mais c'est un point que je voulais remonter car cela a impliqué une modif du Noyau tout de même, qui n'était pas négligeable. :o

Ce qui pourrait être fait, comme on est en début d'année, c'est faire comme les politiciens: Faire un plan de travail (des promesses quoi!)
Donc voila ce que je propose pour cette nouvelle année:
- Finir OS9 pour TO9+
- Mettre a disposition les ROM OS9 MO5/MO6/TO9+
- Faire du matraquage pour que le plus de personnes s'y intéresse :)

Est-ce de bonnes résolutions ?

Jacques

petitjd
Messages : 1817
Enregistré le : 23 oct. 2007 11:50

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par petitjd » 18 janv. 2016 22:02

J'attend ca avec impatience!!!
Je me souviens de la démo que tu m'avais fait au forum Thomson en 2004 il me semble, ca m'avait fait halluciner de voir un Thomson capable de faire tourner un tel OS
Vivement la diffusion de ces travaux pour que tout le monde puisse s'apercevoir des capacités insoupçonnées et pourtant réelles des Thomson :D
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr

Avatar du membre
SOREK
Messages : 12
Enregistré le : 25 févr. 2012 02:29
Localisation : 59169 Férin (près de Douai, département du Nord 59)

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par SOREK » 26 mars 2016 12:33

Bonjour,

Je suis entrain de peaufiner la programmation d'un "Editeur, Assembleur, Désassembleur" pour le 6809.

J'ai une interrogation concernant les directives FCC, FCB et FDB.

Dans un listing objet (uniquement composé de code hexa), comment un désassembleur fait-il pour les distinguer ces datas des autres codes réservé aux OpCodes et Opérandes ?

Pourriez-vous m'aider, d'avance merci.

Bonne journée et bon Week-End de Pâques.

Richard SOREK
Keros6809@gmail.com

__sam__
Messages : 3991
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par __sam__ » 26 mars 2016 12:45

A ma connaissance il fait ça de façon heuristique. Naïvement si l'opecode est entre 32 et 127 on a affaire à de l'ascii donc FCC sinon FCB. Le FCC peut être renforcé si l'octet suivant contient aussi un code ASCII.

Mais on peut faire plus performant en détectant les portions de mémoire non joignable en RAM. Par exemple si l'instruction juste avant est un RTS, un JMP, ou un BRA et que nulle part on ne saute sur notre adresse, c'est qu'on a affaire à une donnée. On avance alors en mémoire sur la 1ere adresse qui est atteignable par un saut. On a alors trouvé une zone morte qui correspond vraisemblablement à des données.On peut alors regarder le contenu de cette zone de données. Si les octets sont tous entre 32 et 127, on a de l'ascii on peut faire un FCC. Sinon on peut faire une zone de FCB, voir mélanger les deux si la zone contient majoritairement de l'ascii. C'est, de mémoire, ainsi que fonction ADis l'un des desassembleurs sur amiga (http://aminet.net/package/dev/asm/ADisV1_3).

[EDIT] oui c'est à peu près ça

Code : Tout sélectionner

5. THEORY OF OPERATION

ADis makes three passes through the program.  The first one only reads
the  relocation  and symbol hunks and enters them into a symbol table.
The second pass analyzes the code and stores the type of each location
(code  or  data)  in  a temporary file.  The third pass writes out the
code and data using the temporary file generated in the second pass.


Analysis

The analysis is sort of a backtracking algorithm.  It assumes that the
first  location in the first code segment is executable and traces all
jumps  and  branches from there on recursively.  When stepping onto an
illegal  instruction  it  takes back all decisions that lead there and
flags  the  offending  location as data.  There are several heuristics
which  are used when every code thread has been followed and there are
still  undetermined  parts of the file.  E.g.  it will assume the next
instruction  after  a  RTS  or  JMP  as code, tries to follow it until
either  having  followed all threads again or stepping onto an illegal
instruction.   During  all  this  trial  and error it takes the labels
generated  so  far  as  an orientation where to try disassembling.  By
inserting  labels  "by  hand"  you  can  modify  the  behaviour of the
analysis  pass.   You can also mislead ADis, for instance by placing a
code label at the second word of a legal instruction.  This will cause
ADis  to  take  back  all its decisions, because an instruction is not
allowed to cross a label.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Avatar du membre
Xavier
Messages : 1000
Enregistré le : 03 avr. 2014 14:42

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par Xavier » 26 mars 2016 12:55

Salut,
Personnellement, je ne peux répondre à cette question... sur Motorola.

Mais, sur le Z80, le nombre d'octets sur les mnémoniques sont fixe, sauf si la mnémonique attend une rupture d'informations.
Pour l'interruption RST28, l'ordre est donné par un octet de h03 à h2C et DOIT se terminer par un !RET! Tagué par h34.
Toutes les autres mnémoniques processeur ont une taille fixe, donnée dans l'abaque du constructeur.
Certaines instruction (non documenter) peuvent toutefois comporter des "options" parfois inutiles, qui augmente la taille de mnémoniques et trompent ainsi les désassembleurs qui ne le prévoient pas.

Nous sommes sur un autre langage, donc cela ne s'applique peut-être pas à ce type de processeur!

Avatar du membre
SOREK
Messages : 12
Enregistré le : 25 févr. 2012 02:29
Localisation : 59169 Férin (près de Douai, département du Nord 59)

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par SOREK » 26 mars 2016 19:36

Bonsoir,
Je ne suis pas concerné par le Z80, je reste sur le 6809.
Mais c'est très gentil de votre part, merci.
Bonne soirée et bon Week-end
Richard

Baptiste
Messages : 98
Enregistré le : 11 mars 2013 15:17
Localisation : Vernouillet (78)

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par Baptiste » 18 déc. 2017 19:25

Je suis allé sur le site de l'OS-9. J'ai l'impression que le projet n'a pas bougé depuis 2008. A t-il été abandonné ?
Rien ne sert de courir, en plus tu risques de tomber.

Baptiste
Messages : 98
Enregistré le : 11 mars 2013 15:17
Localisation : Vernouillet (78)

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par Baptiste » 18 déc. 2017 19:51

Je dois bien avouer que les outils de développement Thomson, par rapport à d'autres machines de l'époque (par exemple le ZX Spectrum ou le CPC), c'est le désert. Je comprends un peu mieux pourquoi il y a si peu de développement sur ces machines, alors que les scenes CPC et ZX profitent de nouveaux programmes chaque années.

Les machines Thomson sont-elles à ce point inintéressantes que l'on ne veuille pas prendre la peine de développer des outils de dev dignes de ce nom ?

Baptiste.
Rien ne sert de courir, en plus tu risques de tomber.

__sam__
Messages : 3991
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Débuter en asm 6809E sur Thomson : petit récapitulatif

Message par __sam__ » 18 déc. 2017 20:40

Sur thomson il y a juste très peu de developpeurs. Les capacités de la machine n'aident pas trop (aucune accélération matérielle). Il y a pourtant des productions tous les ans (j'en sais quelque chose :) )
* http://www.pouet.net/prodlist.php?platf ... son&page=1
* http://dcmoto.free.fr/programmes/_html/ ... -2019.html

Pour débuter, je te recommande cette lecture vintage:
* http://www.logicielsmoto.com/phpBB/view ... ?f=3&t=419
* http://www.logicielsmoto.com/phpBB/viewforum.php?f=3
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Répondre