Bonjour à tous
J'ai enfin réussi à trouver le probleme.
Et c'est une découverte surprenante.
Dans le Gate Array du MO6 (et MO5_NR & MO5E), il y a le bit 4 dans $A7DD (System2) qui permet de choisir entre BASIC 1 ou Basic 128.
Je pensais (et je pense comme beaucoup de monde ici) que cela servait à selectionner IW1 ou IW2
Et bien NON!
En fait ce bit permet de choisir entre IW1 et IW2 mais seulement a partir des adresses $C000
En $B000 on voit TOUT le temps IW2.
En résumé
[$B000-$BFFF] = IW2
[$C000-$EFFF] = IW1 ou IW2 (fonction du bit 4 dans $A7DD)
[$F000-$FFFF] = IW1
Et c'est ca qui posait un problème à OS9, car entre [$B000-$BFFF], il y a le disque virtuel R3, qui comporte des modules OS9
Et quand OS9 démarre, il cherche les modules qui se trouvent en mémoire, et du coup trouve les modules du disk R3
Et pour optimiser la recherche os9 fait : adresse_suivante = adresse_du_module + longueur_du_module.
Et comme OS9 a trouvé en $B900 un gros module, quand il fait l'addition, il tombe en $CD40.
Donc tous les modules entre $C000 et $CD40 sont squeezés, et il y avait dedans le driver de terminal!
Pas de driver de terminal, donc pas d'affichage, donc inexploitable!
J'ai donc trouvé le problème.
Il va donc falloir maintenant le résoudre, mais ca ne va pas être évident.
La seul solution que je vois est qu'il faut mettre dans le disk virtuel R3, seulement que des petits modules qui n'excedent pas 256/512 octets
Jacques