Logicielsmoto.com

Nous sommes le 28 Mar 2024, 17:22

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 
Auteur Message
 Sujet du message: Quelques news d'OS9
MessagePosté: 19 Fév 2019, 22:13 
Hors ligne

Inscription: 10 Fév 2019, 15:56
Messages: 17
Localisation: Essonne
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. :langue:

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 :tourne:
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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 20 Fév 2019, 09:03 
Hors ligne

Inscription: 21 Avr 2010, 10:59
Messages: 253
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 ;)

_________________
http://www.alternative-system.com


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 20 Fév 2019, 10:55 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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 ?

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 21 Fév 2019, 17:03 
Hors ligne

Inscription: 10 Fév 2019, 15:56
Messages: 17
Localisation: Essonne
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:

    XAsm is a cross assembler for OS-9/6809 programs. It is derived from the C
    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 :D )

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


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 21 Fév 2019, 21:45 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 23 Fév 2019, 11:58 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
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é. :non: :cry:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 24 Fév 2019, 18:35 
Hors ligne

Inscription: 10 Fév 2019, 15:56
Messages: 17
Localisation: Essonne
Ce WE a été un gros we de débogage :D

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é
:L

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


Dernière édition par jb_jb_fr le 25 Fév 2019, 12:01, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 25 Fév 2019, 07:36 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Super boulot ! :good:

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.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Quelques news d'OS9
MessagePosté: 25 Fév 2019, 22:00 
Hors ligne

Inscription: 10 Fév 2019, 15:56
Messages: 17
Localisation: Essonne
Salut

Voila les ROM pour le MO5.

Dis moi si tu arrives à t'en servir :)

Jacques


Fichiers joints:
Commentaire: ROMs OS9 pour le MO5
ROM_OS9_MO5.tar.gz [104.21 Kio]
Téléchargé 604 fois
Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com