Logicielsmoto.com http://www.logicielsmoto.com/phpBB/ |
|
Quelques news d'OS9 http://www.logicielsmoto.com/phpBB/viewtopic.php?f=23&t=590 |
Page 1 sur 1 |
Auteur: | jb_jb_fr [ 19 Fév 2019, 22:13 ] |
Sujet du message: | Quelques news d'OS9 |
Bonjour à tous Sur la demande de Fool Duplex, une rubrique OS9 a été ouverte et je vais tenter d'y mettre des nouvelles du projet. OS9 est un projet qui ne fait pas couler beaucoup d'encre, et dont peu de monde se préoccupe. Ce n'est pas grave, mais d'un autre coté ça m'arrange comme ça j'ai pas la pression Pour ceux qui ne sont pas trop au courant, voila un petit résumé: - OS9, qui est un système multi-tache, multi-utilisateur tourne actuellement sur 3 machines: - MO5 - MO6 - TO9+ Les début ont été fait sur le MO5, puis ayant un MO6, je mis suis attelé car coté graphique c'est plus intéressant du fait que le Gate array gere le 80 colonnes. Ayant découvert très tardivement le TO9+, je me suis mis en quête d'en acheter un pour y mettre dessus OS9 aussi (c'est un peu une manie chez moi). En fait le TO9+ est bien car il a plein de mémoires ROM et donc je peux y loger pleins de programme OS9 :-) Je me suis mis en tête d'écrire un serveur NR sur le TO9+, et donc j'ai un peu laissé tomber le MO5/6 Mais ces temps ci je m'y suis remis. Car une chose manquait à OS9: un éditeur. Fool me l’avait souvent fait remarquer Donc j'ai réussi à trouver un petit éditeur de texte que j'ai adapté et qui tourne pas trop mal sur le TO9+. En plus, l'avantage de cet éditeur, c'est qu'il m'a fait trouver pleins de bugs sur le driver vidéo, mais aussi sur le noyau OS9. Et maintenant que le TO9+ est a peu prés clean, je me sui remis sur le MO5 et le MO6. Bien sur, je fais tout cela sous émulateur (pour l'instant). Mais malheureusement (ou heureusement) ce foutue éditeur me revèle encore des bugs dans les drivers vidéo du MO5 et du MO6. Donc je ne suis pas sortie d'affaire. mais je ne désespère pas. OS9 est intéressant s'il y a un disque connecté afin d'avoir des commandes. J'ai donc écrit un driver de disque virtuel qui est commun a chaque machine mais qui gère différentes zones mémoires. Voila une résumé pour chaque machine: Pour le MO5 : R0 = RAM disque sur la cartouche 256ko MO5E R1 = ROM disque sur la cartouche 256Ko Pour le MO5NR: R0 = RAM disque sur la cartouche 256ko MO5N R1 = ROM disque sur la cartouche 256Ko MO6 R2 = RAM disque mémoire interne R3 = ROM disque dans IW01/IW02 Pour le TO9+ : R0 = RAM disque mémoire interne R1 = ROM disque dans IW12/IW13 R2 = ROM disque sur la Megarom T2 Afin de debugger tout cela j'utilise un émulateur qui n'a jamais été diffusé: XEMUL56. C'est l'émulateur qu'avait ecrit au départ Fool (xemul5) et que j'ai complètement repris et qui émule MO5/MO6/MO5N/MO5NR/TO9+ Je ne travail qu'avec lui car il a l'avantage de simuler tous les circuits hard (alors qu'un certain emulateur DCMOTO pour ne pas le nommer detourne les appels systemes ce qui n'est pas envisageable pour OS9) Mais ce n'est pas la panacé, car rien ne vaut le hard. En effet j'ai toujours un gros problème sur le MO6 pour le disque R3. J'ai toujours pas réussi à comprendre pourquoi je n'arrive pas a acceder à la 2eme partie de la ROM sans faire planter la machine. De plus j'ai intégré dans le Boot d'OS9 un chargeur XModem. Si le bouton du crayon optique est appuyé, OS9 se configure pour remplacer une partie de la ROM par de la RAM (pour ca les Thomson sont tres bien fait) et la rom peut être téléchargé en respectant le protocole XModem. Une fois le téléchargement terminé, OS9 continue sont boot, et demarre normalement. C'est grâce a cela que j'arrive aussi à debuguer OS9. Je n'ai, ainsi, pas besoin de griller pleins de ROM. Et enfin, pour terminer, cerise sur le gâteau, OS9 a été également prévu pour tourner sur le 6309 (le "6809" de chez Hitachi). J'ai équipé mon TO9+ d'un 6309, et je ne tourne que en mode 6309 natif. Le gain est visible sur le driver vidéo. Et bien sur XEmul56 émule également le 6309 (d'ailleurs sans ca je n'aurais jamais réussi) Bien sur tout cela se fait avec des outils qui ont été créer au fur et a mesure, qui maintenant sont obligatoire pour le développement d'OS9. Voila donc une présentation succincte du projet actuel Et ce qu'il faudrait qui avance temps ci: - Correction des drivers video MO5/MO6 - Comprendre pourquoi sur le MO6 l’accès à la 2eme partie de la ROM fait tout planter - Continuer l’écriture du serveur NR sur le TO9 Jacques |
Auteur: | gilles [ 20 Fév 2019, 09:03 ] |
Sujet du message: | Re: Quelques news d'OS9 |
Si tu as besoin de l'émulation fine de tous les circuits avec TEO en mode 512Ko ca devrait également fonctionner (sauf si tu as besoin du modem interne). Un driver qui pourrait être intéressant pour faire un gros disque en lecture ecriture serait d'utiliser un HxC en mode "host" et acceder à une image de disque dur placée sur une SD ou une clef usb selon le modèle de HxC (classique ou Gotek). Il ne reste plus qu'à sortir une Beta et la poster quelque part maintenant |
Auteur: | Samuel Devulder [ 20 Fév 2019, 10:55 ] |
Sujet du message: | Re: Quelques news d'OS9 |
Tu compiles avec quoi les applis pour OS9, C ou Assembleur ? Comment es organisée l'ABI os9: les programmes sont relogeables je crois. Quelle est la mémoire max utilisable par un programme: l'espace adressable de 64ko, plus via du bank-switching organisé, ou est-ce totalement différent ? Bref: comment les binaires sont organisés, chargés et exécutés sur OS9 finalement ? |
Auteur: | jb_jb_fr [ 21 Fév 2019, 17:03 ] |
Sujet du message: | Re: Quelques news d'OS9 |
Bonjour Tous les modules OS9 sont écrit en assembleur. Je pense que certains étaient ecrit en C au départ, mais ils ont été désassemblé et utilisé tel quel. Ca ce voit aux appels qui se font par la pile. L'assembleur que j'utilise est xasm. Il est à la base, issue de l'assembleur 6809 de Motorola. Voila ce que l'on peut lire dans le README de XAsm:
port of Motorola's free 6809 assembler, and includes functionality from Microware's asm assembler that runs on a natively on an OS-9/6809 system. Quand je l'ai récupéré il en était à la version 1.18 (il me semble) C'etait la version 990104 (la date je suppose) Depuis je l'ai fait carrément evolué et j'ai aussi repris des fonctionnalité de l'assembleur MAMOU, qui est l'assembleur utilisé pour générer OS9 pour le CoCo III. Il est capable de générer du code 6809, 6811, 6309 Il intégre également les fonctions cachées du 6809 Il en est à la version 2.2.0 qui date du 20 Septembre 2018 (donc pas vieux ) Pour ce qui est des modules os9, ils sont obligatoirement écrit en relatif. Sous OS9 l'adressage absolue est interdit. Donc tous les modules sont relogeable. Et pour ce qui est de la mémoire, pour l'instant je ne travaille que avec OS9 Level One C'est a dire qu'il n'y a pas de bank switching, donc tout est à plat. C'est donc limité à 64Ko en théorie. Mais en pratique c'est moins, car il y a la ROM, La video, les périphs Il y a donc 24Ko de libre (si je ne me trompe pas) La RAM est allouée dynamiquement par process par page de 256 octets. Ainsi, chaque fois qu'un module est chargé en RAM, le pointeur U est initialisé au début de la RAM allouée pour ce process. DP est également alloué au debut de cette zone. Donc, pour chaque acces à la mémoire du process, il faut le faire par rapport à U, ou alors dans la page directe si c'est inferieur à 256 octets Jacques |
Auteur: | Samuel Devulder [ 21 Fév 2019, 21:45 ] |
Sujet du message: | Re: Quelques news d'OS9 |
C'est très intéréssant tout ca. En particulier l'organisation mémoire par blocs de 256. Les exe doivent donc être plutôt très petits tout compte fait.pour tenir dans les 24k restés libres. |
Auteur: | Fool-DupleX [ 23 Fév 2019, 11:58 ] |
Sujet du message: | Re: Quelques news d'OS9 |
Les exe sont effectivement très petits, essentiellement car ils sont écrits en pur assembleur. Il y a autre chose qui est intéressant : comme les exe sont relogeables n'importe où, si l'exe est dans la rom noyau, il ne sera pas chargé en RAM, mais directement exécuté depuis la ROM. On parle de la partie "code segment" ou du .text, tu appelles ça comme tu veux en jargon x86 :-). Pour rappel, le noyau initial sur MO5 contenait déjà tout ça dans la ROM de 16 Ko : Code: D0 C1B4 49 Descripteur disquette /D0 D1 C1E5 49 Descripteur disquette /D1 THMFC760 C216 1156 Pilote disquettes Shell C69A 1274 Interpréteur de commandes Rammer CB94 269 Pilote Disque virtuel Ascii CCA1 789 Fontes de caractères WINMO5 CFB6 1450 Pilote écran / clavier IOMan D560 1816 Gestionnaire de périphériques RBF DC78 3503 Système de fichiers à accès direct SCF EA27 1258 Système de fichiers séquentiels SysGo EF11 361 Bootstrap R0 F07A 47 Descripteur ROMDisk /R0 T1 F0A9 60 Descripteur console /T1 TERM F0E5 62 Descripteur console principale /TERM Init F123 46 Intialisation Clock F151 375 Gestionnaire temps réel OS9p2 F2C8 1294 Services avancés OS9 F7D6 2062 Micro-noyau Total 15947 (Reste 437 octets libres) On notera ainsi la présence du shell (une sorte de bash), qui par conséquence de la gestion intelligente par OS-9 des modules, ne prend de ram que pour ses variables, donc très peu. Ce noyau de 16 Ko fournit donc déjà un shell de commande avec les pilotes pour gérer le lecteur de disquette, le ROMDisk, et donc aussi un filesystem (noms longs, dossiers, 4 Go d'espace max par partition, privileges rwx à la unix) et tout le nécessaire pour faire tourner des apps en tâche de fond, utiliser des pipes entre apps, ce genre de choses. Alors certes, il n'y a pas le langage de programmation la-dedans. Mais OS-9 fait déjà tellement plus en termes de gestion de la machine que le BASIC de Microsoft ... Je dois absolument mettre le site d'OS-9 à jour, ça fait plus de 10 ans qu'il n'a pas évolué. |
Auteur: | jb_jb_fr [ 24 Fév 2019, 18:35 ] |
Sujet du message: | Re: Quelques news d'OS9 |
Ce WE a été un gros we de débogage En effet, les 3 drivers vidéo : MO5, MO6 et TO9+ ne réagissaient pas du tout de la même manière, alors qu'il n'y avait pas de raison. Pour l’éditeur de texte tout était nickel pour le TO9, mais pas pour les autres Pour l’éditeur de secteur (DED=Disk EDitor) il y avait de la vidéo inverse sur le MO5 mais pas sur les autres. Mais elle était bugué Donc il a fallu que j'aligne tout ca et maintenant c'est fait. Et donc maintenant sur les 3 machines l’édition de texte marche bien, l’édition de disk marche bien (pour la vidéo je parle) L'inversion vidéo marche sur toutes les machines. De plus XEmul56 m'a fait des sueur froide car j'avais un soucis sur le MO6. Mais ca n'était qu'une histoire de mise à jour de code car je fais des tests sur 2 machines différentes (Une sous Windows avec Cygwin, et une sous MAC OSX) Je suis assez content, mais aligner tout ça n'est pas évident, car ce sont 3 machines différentes, donc chacune a sa contrainte. Et en plus sur le MO5, on simule du 80 colonnes, donc c'est un peu plus ardu à gérer! Bien sur tout ça est sous XEmul56. Il va falloir conforter les tests avec de vrai machines Jacques |
Auteur: | Fool-DupleX [ 25 Fév 2019, 07:36 ] |
Sujet du message: | Re: Quelques news d'OS9 |
Super boulot ! Si tu peux me préparer une image ROM et une image ROMDisk pour le MO5, je suis disponible pour une campagne de test. Mets-moi le driver disquette thmfc760 sur l'un ou l'autre aussi. |
Auteur: | jb_jb_fr [ 25 Fév 2019, 22:00 ] | ||
Sujet du message: | Re: Quelques news d'OS9 | ||
Salut Voila les ROM pour le MO5. Dis moi si tu arrives à t'en servir Jacques
|
Page 1 sur 1 | Heures au format UTC + 1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |