Logicielsmoto.com

Nous sommes le 28 Mar 2024, 10:45

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 59 messages ]  Aller à la page 1, 2, 3, 4  Suivante
Auteur Message
 Sujet du message: Résumé technique du MO5
MessagePosté: 28 Juil 2010, 14:21 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Bon, j'avait fait cette page il y a un moment déjà; le but est de rassembler toutes les infos utiles sur le MO5 :
* A un seul endroit (parce que fouiller plein de ftp et de sites pour tout récolter a pris du temps)
* Dans un format texte (parce que c'est indexable par les moteursde recherche et lisible par les gens)
* De façon claire et concise, sans ambiguités

Je pense que ce n'est pas encore complet (il manque les appels non documentés à la rom disque par exemple). Mais je trouve que c'est pratique à avoir sous la main.

et aussi, je suis sur que vous allez avoir plein de choses à y ajouter... :)

http://shinra.cpcscene.com/mo5.shtml


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 28 Juil 2010, 14:33 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Bonne initiative.

En vrac et de memoire ...

Ca serait bien de détailler les bits du 6821 système, pour les appels en ROM, je ne m'y fierais pas trop, il y a eu plusieurs version de la ROM, $A7CB est utilisé par l'extension mémoire 64 Ko, la zone RAM 1F40-1FFF est utilisable pour stocker des trucs, le nanoreseau ainsi que logo s'en servent, la firq est utilisée par le crayon optique, le contenu des registres du gate-array sont decrit dans le manuel technique du mo5 dispo chez Daniel, je ne suis pas sur que le FDC utilise les adresse A7D9-A7DF, le A7D8 est utilisé pour la commutation des pages de la ROM floppy c'est clair, la zone ROM disque contient des choses diverses et variees et peut etre paginée (cf. A7D8), ca peut aussi etre les routines nanoreseau et le logiciel de l'interface Lego-DACTA.

ah et je crois que A7DD contient le numero de poste nanoreseau mais j'ai un doute, ma memoire flanche.

Fool


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 28 Juil 2010, 17:21 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Merci !
J'ai rajouté tout ça, corrigé une ou deux fautes de frappe et nettoyé un peu la mise en page.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 28 Juil 2010, 17:58 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Fool-DupleX a écrit:
je crois que A7DD contient le numero de poste nanoreseau mais j'ai un doute, ma memoire flanche.

Je n'ai pas plus de mémoire, mais je viens de lire les sources de dcnanoréseau :) Le numéro de poste est dans les 5 bits de poids faible de $A7D8.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 28 Juil 2010, 18:02 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Encore corrigé :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 03 Aoû 2010, 21:09 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Je viens de compléter la liste des syscals avec les appels au contrôleur disque.

J'ai noté en bleu tous les trucs sur lesquels il me manque des informations.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Aoû 2010, 07:32 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Toujours de mémoire et apres parcours rapide, la routine du SWI utilise le numero de routine pour aller piocher dans une table de vecteurs, donc si tu mets un numero impair ou un numero superieur a la taille de la table, tu vas sauter a une adresse bidon, mais previsible : la valeur sur 16 bits qui se trouve a cet endroit.

Ex: si la table contient entre 8 et 10 les valeurs F722 et FACD (exemple bidon), un call 9 devrait aller sauter en 22FA.

Il faut desassembler la routine pour en etre sur.

Le detail du fonctionnement de l'extension memoire se trouve ici : http://www.nanoreseau.net/lib/exe/fetch.php?media=ext64k.pdf

Comme precedemment dit, le detail des compteurs du gate-array se trouve dans le manuel technique du MO5. Whitebird a recree le gate-array commplet 100% fidele (testé sur un vrai MO5) en VHDL, voir ce fil : http://www.logicielsmoto.com/phpBB/viewtopic.php?t=211

Par ailleurs l'octet A7D8 a encore d'autre fonctionnalités sur certaines machines, par exemple sur l'extension MO5, il permet de masquer le controleur de disque externe (ou pas).

D'une maniere generale, utiliser la rom moniteur avec SWI et les registres situes en $2000-$21FF n'est pas très utile si tu veux faire des trucs un peu sérieux ... Ca peut depanner pour afficher un texte ou jouer une note de musique, mais franchement, la routine d'affichage d'une ligne par exemple peut etre reecrite pour aller cinq fois plus vite. Meme les routine disquette et cassette ont ete reecrites maintes fois par les gens un peu serieux (cf. puls). Et ca gagne 512 precieux octets de RAM pour faire autre chose.

Tu devrais plutot te concentrer sur la description du hard, notemment le PIA systeme, qui est encore nettement insuffisante.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Aoû 2010, 09:53 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Oui,il faut que je désassemble la ROM pour voir ou vont atterrir les SWI qui restent. ça peut servir si je veux avoir des bouts de codes accessibles facilement sans détruire le système.

quand à l'utilisation de la ROM, certes c'est lent, mais ça a quand même un interêt quand il s'agit de gagner de la place. Une ROM de ce genre permet d'imaginer facilement une démo 1k ou 512o.

Pour de la démo pluscomplète ça passera efectivement par le matériel. Mais chaque chose en son temps.

Et puis bon les routines d'accès disk de PULS... moi j'ai pas encore réussi à voir une démo entière sur mon TO8, y'a toujours une erreur disque quelque part. Alors que mes disquettes marchent bien sur d'autres machines... :)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Aoû 2010, 10:46 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Je viens d'ajouter les registres du Gate Array (mieux expliqués) et un peu plus d'infos sur le PIA, j'avais en effet raté certains trucs.

Je vais attendre d'avoir un MO5 sous la main et faire des tests plus poussés pour être sur d'avoir tout compris, quand même.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Aoû 2010, 13:59 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Pour la touche ACC, tu dis que c'est un left over du TO7, mais toutes les machines thomson ont la touche ACC, c'est par design. left-over ne me parait pas tres approprie

Octet A7C2, tu dis que le bit qui controle le moteur ne peut rien faire en entree, c'est inexact. En lisant le bit, tu peux detecter la presence ou l'absence du lecteur externe. C'est utilisé par exemple dans le BASIC qui renvoie un Error 60 (de mémoire) quand le lecteur n'est pas branche ou pas alimenté. C'est du au fait que la ligne est en haute impédance quand le lecteur n'est pas branche, mais tirée a 0 quand il est branché.

Octet A7C3: lorsque l'incrustation video est activée, l'horloge est generee par l'extension incrustation en PLL sur le signal video. Pas d'extension incrustation : il n'y a plus d'horloge 16 MHz sur le gate-array et la machine s'arrete. concretement, t'obtient un ecran noir. facile a tester : screen ,,,,1 sous BASIC.

les compteurs du gate array sont en lecture seule. Thomson a d'ailleurs astucieusement loge d'autres fonctionnalites sur MO6 en ecriture a cet endroit.

A7E4 : bits 2-9 du block clock
A7E5 : bits 0-1 du block clock, bit0-2 du dot clock de ligne, horloges a 1, 2 et 4 MHz
A7E6 : iniln a 1 quand on se trouve dans la fenetre horizontalement, j'ai un doute sur lt3, le reste est inutilise
A7E7 : inttn a 1 quand on se trouve dans la fenetre verticalement, le reste est inutilise

en ROM, tu indiques le vecteur de reset, mais il y a tous les autres juste avant : nmi, swi, irw, firq, swi2, swi3 ...

A noter egalement que la zone EFE0-EFFF est utilisée dans les cartouches MEMO5 pour identifier la cartouche et contient notamment le vecteur de redemarrage de l'application en EFFE-EFFF. Cette zone est appelee signature de l'application en langage Nanoreseau.

La zone B000-EFFF est utilisée par les cartouches MEMo5 en masquant le BASIC qui se trouve en C000-EFFF. Avec le basic,la zone B000-BFFF est libre et peut etre exploitee : sur le mo5 a clavier mecanique, ils ont rajoute un slot libre sur la carte-mere pour loger une EEPROM a cet endroit et le signal de decodage d'adresse est egalement disponible sur le bus externe.

les cartouches peuvent etre paginees ; le mecanisme le plus courant pour la commutation de page consiste a aller lire les octets BFFC-BFFF qui sont relies dans la cartouche au commutateur de page. Par exemple, faire un LDA >$BFFC commute en page 0 de la cartouche, et faire un LDA $BFFF commute en page 3.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Aoû 2010, 16:09 
Hors ligne

Inscription: 27 Juil 2010, 14:46
Messages: 38
Fool-DupleX a écrit:
Octet A7C2, tu dis que le bit qui controle le moteur ne peut rien faire en entree, c'est inexact. En lisant le bit, tu peux detecter la presence ou l'absence du lecteur externe. C'est utilisé par exemple dans le BASIC qui renvoie un Error 60 (de mémoire) quand le lecteur n'est pas branche ou pas alimenté. C'est du au fait que la ligne est en haute impédance quand le lecteur n'est pas branche, mais tirée a 0 quand il est branché.


Bin donc on peux rien conclure donc, c'est susceptible d'être 0 aussi si on est en haute impédance, à moins qu'il y est un autre tirage à 1 de résistance plus importante.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Aoû 2010, 17:34 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Il y a ce qu'il faut dans le PIA pour éviter ce genre de problèmes.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 04 Aoû 2010, 19:36 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Page mise à jour avec les infos de Fool Duplex. Merci :)

EDIT: J'ai rajouté une partie des SWI non documentés. J'ai commencé à désassembler et commenter le listing de la rom du MO5v2, mais je mettrai ça en ligne un peu plus tard, c'est pas encore assez complet.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 05 Aoû 2010, 07:16 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Desassembler et commenter la ROM ? Bonne idee, mais ca a deja ete fait. Autant profiter de ce qui existe deja. Je possede d'ailleurs aussi les codes sources de toutes les ROM de premiere generation si besoin.

http://www.forler.ch/secret1.jpg
http://www.forler.ch/secret2.jpg
http://www.forler.ch/secret3.jpg
http://www.forler.ch/secret4.jpg
http://www.forler.ch/secret5.jpg


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 05 Aoû 2010, 08:59 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Si ça peut aider PulkoMandy, j'ai aussi un document de travail à http://dcmoto.free.fr/tmp/mo5v2moniteur.txt
A prendre avec beaucoup de réserves, car je n'ai pas encore tout analysé ni tout compris. Ce document est un brouillon en évolution constante et peut contenir de grosses erreurs.
Au passage j'en profite pour dire que j'apprécie beaucoup la page http://shinra.cpcscene.com/mo5.shtml et je compte l'utiliser souvent :)


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 59 messages ]  Aller à la page 1, 2, 3, 4  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 30 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