Logicielsmoto.com

Nous sommes le 28 Mar 2024, 13:48

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 50 messages ]  Aller à la page Précédente  1, 2, 3, 4  Suivante
Auteur Message
MessagePosté: 23 Aoû 2006, 10:58 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
jasz a écrit:
Ton petit programme A=PEEK(&HE7DF)*PEEK(&HE7C8) fonctionne bien sur TO8 (non émulé). :)


C.a.d. qu'il ne plante pas je suppose...

Citation:
Par contre A reste invariable quelque soit la touche choisie.


Il retourne toujours 0 ? :p

Ca doit etre une difference entre TO9 et TO8.. je vais zieuter les docs techniques sur TO8..

En effet je ne trouve pas trace de $E7DF dans la partie TO8. En revanche sur TO9 et TO9+ ce registre est bien decrit comme "registre de reception en lecture de l'ACIA 6850"... ACIA inexistant sur TO8 (le decodage clavier s'y faisant differement).

Donc apparement sur TO8 le decodage clavier passe necessairement par le CPU la ou sur to9(+) il n'y a communication qu'entre le chip du clavier (6805) et l'acia de l'unite centrale (6850). Le CPU peut avoir ses interruptions bloquees et etre quand meme capable de lire le clavier via le registre $E7DF de l'ACIA.

Donc voila le pb de DCMOTO: il n'emule pas l'ACIA en mode to9. Ca ne doit pas etre dur a ajouter je presume (en gros coller le code ascii de la derniere touche pressee en $E7DF dans un 1er temps...)

sam.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 23 Aoû 2006, 11:05 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 492
Tomix3 a écrit:
Sinon, effectivement, le basic 128 ne permet pas de faire un console,,,,4 (y a ptete erreur sur le nombre de virgules) pour passer en mode 160x200. Je passais par un code d'echappement en basic pour ca.


C'est etrange parce que sous DCMOTO, le CONSOLE ,,,,3 fonctionne (le mode 160x200x16 est "3"). Cependant, les fonctions du moniteur en ce qui concerne le texte ne gere pas ce mode (et ce, meme sur TO8 et superieur). Cela veut dire que le mode 320x200x16 est reactive des que la main est rendu a l'editeur BASIC.

Alors, est-ce un defaut de DCMOTO ou plutot une version de ROM plus evoluee qu'il a implente dans DCMOTO ?


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 23 Aoû 2006, 11:13 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Samuel Devulder a écrit:
Citation:
Par contre A reste invariable quelque soit la touche choisie.

Il retourne toujours 0 ? :p
[/quote]
Non!

$E7DF retourne #204
$E7C8 retourne bien #1

Et ce quelque soit la touche.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 23 Aoû 2006, 11:30 
Hors ligne

Inscription: 27 Avr 2006, 09:04
Messages: 101
Sur To9, le "console ,,,,3" change bien le mode d'ecran pour terminer par une erreur basic comme quoi c'est pas possible...
Bref, ca marche pas.
Ceci dit, je peux peut-etre me tromper. Il faudra que je rallume mon To9 pour le savoir.

a+
Seg.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 23 Aoû 2006, 15:17 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 492
Tomix3 a écrit:
Sur To9, le "console ,,,,3" change bien le mode d'ecran pour terminer par une erreur basic comme quoi c'est pas possible...
Bref, ca marche pas.
Ceci dit, je peux peut-etre me tromper. Il faudra que je rallume mon To9 pour le savoir.

a+
Seg.


Je ne vois pas l'erreur en question. Si tu fais :

CONSOLE ,,,,3: A$=INPUT$(1)

Ca devrait etre stable. Comme dit precedement, le mode 320x200x16 revient a la charge des que l'editeur BASIC prend la main.

En passant par le registre, tu court-circuites le moniteur, qui ne sait donc pas dans quel mode il est. Donc, il ne revient pas automatiquement au mode 320x200x16 ... par contre, l'affichage par les routines du moniteur ne sont pas gerees correctement.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 23 Aoû 2006, 16:42 
Hors ligne

Inscription: 27 Avr 2006, 09:04
Messages: 101
Bah ecoute, c'est possible.
J'avais en memoire un petit soucis sur To9. J'ai du me tromper.

a+
Seg.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 23 Aoû 2006, 16:45 
Hors ligne

Inscription: 27 Avr 2006, 09:04
Messages: 101
Remarques c'est peut-etre ce qui concerne les routines du moniteur comme tu dis. Ca doit etre ca le probleme :)

Quoi que la aussi je me demande si le probleme de trace de ligne venait pas du basic. Je me demande si le moniteur savait pas justement bien les tracer...
Faudra que je me replonge un peu dedans dites donc :)

a+
Seg.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 23 Aoû 2006, 20:44 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Yoann Riou a écrit:
Je ne vois pas l'erreur en question. Si tu fais :

CONSOLE ,,,,3: A$=INPUT$(1)

Ca devrait etre stable. Comme dit precedement, le mode 320x200x16 revient a la charge des que l'editeur BASIC prend la main.


Je viens de tester sous dcmoto avec le prog suivant:
Code:
10 CONSOLE,,,,3
20 LINE(0,0)-(30,30),1
30 A$=INPUT$(1)


On voit l'ecran devenir noir une fraction de seconde. On entend un beep. On devine meme s'afficher un message d'erreur. Et on retourne au mode TO7 classique.

La quand on fait
Code:
LIST .
pour afficher la liste qui contient l'erreur on tombe sur la ligne 10 avec la marque d'erreur positionee apres le 3 du console. Les variables ERR et ERL valent respectivement 0 et 10. L'erreur 0 correspond a un "Illegal function call" comme l'indique l'execution de
Code:
ERROR 0
.

On dirait que le 3 n'est pas supporte. Par ailleurs la doc TO9 de: http://dcmoto.free.fr/onlinedoc/guideto9/guideto9.djvu
sur la page 143 (page 107 du vrai manuel) qui defini la commande CONSOLE ne defini pas le mode 3:
Citation:
Le 5e paramètre définit le mode graphique:
- s'il est à 0, c'est le mode 40 colonnes 16 couleurs
- s'il est à 1, l'écran fonctionne en 80 colonnes avec deux couleurs
- s'il est à 2, l'écran fonctionne en quatre couleur sur tous les points. Dans ce mode chaque point peut prendre l'une des quatres couleurs , indépendamment de la couleurs de ses voisins.


Point de "3" dedans :-(

Le basic 128 du TO9 est vraiment l'ancetre par rapport au basic 256 ou 512. Pour passer en mode 160x200 proprement il faut passer par l'affichage d'un code d'echappement:
Code:
? CHR$(27)"^"
au lieu du console,,,,3. Mais alors c'est le line(0,0)-(30,30),1 qui n'affiche pas vraiment une vraie ligne. On dirait qu'il continue de dessiner comme en mode TO7. Il me semble (mais la c'est de memoire et ca date) que l'explication vient de ce que le basic 128 n'utilise pas la routine DRAW$ du moniteur mais un truc de l'extramoniteur qui a certes l'avantage de faire du clipping (cf la commande WINDOW), mais qui ne connait pas le mode 160x200 et le traite comme un 320x200.

Le TO9 a des airs de trucs pas completement fini en regard du TO8.

sam.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 23 Aoû 2006, 20:49 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Yoann Riou a écrit:
C'est etrange parce que sous DCMOTO, le CONSOLE ,,,,3 fonctionne


Pas avec v9.3sr1 en mode TO9 en tout cas. Je viens de verifier. En mode TO8 ou TO9+ ca marche en revanche.

Le TO9 est pas completement termine au niveau du soft systeme.

sam.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 29 Aoû 2006, 07:17 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Samuel Devulder a écrit:
Le TO9 est pas completement termine au niveau du soft systeme.

Bonjour ! De retour de vacances, j'arrive un peu tard dans cette discussion, mais elle contient une foule d'informations pour améliorer dcmoto.
Ceux qui ont déjà écrit un émulateur comprendront facilement qu'on ne peut pas reproduire toutes les particularités de la machine au niveau de l'électronique (exemple : le clavier du TO9). Mon objectif est simplement de permettre l'exécution réaliste de tous les programmes existants. Avec des programmeurs aussi doués que Yoann, Prehisto, Samuel, jasz et les autres (je ne peux pas tous les citer, ils me pardonneront ;) ), dcmoto est toujours un peu en retard ;)
Dans le cas particulier du TO9, j'ai une bonne excuse : je n'ai pas la machine. Donc rien n'a été testé, c'est pourquoi les observations de Samuel sont très précieuses pour corriger les anomalies et ajouter de nouvelles fonctions. Ce n'est qu'une question de temps, je reprendrai toutes les remarques en détail, et je ferai peut-être appel à vous tous pour m'aider.

Daniel


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 29 Aoû 2006, 08:38 
Hors ligne

Inscription: 27 Juin 2006, 19:44
Messages: 1061
Localisation: France (24)
Pour revenir aux réactions de l'émulateur à l'exécution d'instructions 6809 non officielles (http://www.logicielsmoto.com/phpBB/viewtopic.php?t=189), je citerai les instructions TFR et EXG dans le cas où les registres sont de calibre différents:

Code:
             TFR       A,X

Code:
             TFR       X,A

Code:
             EXG       A,X

L'assembleur affiche un "Register Error", mais la ligne est quand même assemblée, et correctement assemblée. L'émulateur de Daniel ne fait rien dans ces cas, Teo transfère/échange les 8 bits de poids faible entre les deux registres avec $00 en poids fort du registre 16 bits, alors que le Thomson transfère/échange les 8 bits de poids faible entre les deux registres avec $FF en poids fort du registre 16 bits. Du moins sur TO8D.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 29 Aoû 2006, 08:54 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 492
Prehisto a écrit:
L'assembleur affiche un "Register Error", mais la ligne est quand même assemblée, et correctement assemblée.

Tient donc, je ne savais pas que l'assembleur etait capable de compiler ca. C'est cool alors :jap:

Citation:
Teo transfère/échange les 8 bits de poids faible entre les deux registres avec $00 en poids fort du registre 16 bits

Vu que ce n'est pas documente, je pense qu'il a du choisir quelque chose (mauvais choix au final). Ca indique par contre que son emulateur 6809 est tolerant aux erreurs ce qui est bien dans le sens qu'un microprocesseur est aussi tolerant aux erreurs (mais qui peut amener a un crash), ce que DCMOTO essaye justement d'eviter, en stoppant l'emulation avec une erreur.

Citation:
alors que le Thomson transfère/échange les 8 bits de poids faible entre les deux registres avec $FF en poids fort du registre 16 bits. Du moins sur TO8D.


C'est aussi ce que j'ai lu, je crois sur des pages de la communaute Dragon.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: 29 Aoû 2006, 16:02 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Yoann Riou a écrit:
...ce que DCMOTO essaye justement d'eviter, en stoppant l'emulation avec une erreur.

C'est un choix contestable, car il ne reproduit pas fidèlement le comportement de la vraie machine. Mais c'est très pratique pour mettre au point un programme, et c'est la raison de ce choix.
Il est possible d'ignorer l'erreur et de continuer, mais là encore le comportement n'est pas réaliste, car une instruction invalide ne fait jamais rien dans dcmoto, comme l'a remarqué Prehisto.
L'idéal serait de programmer toutes les instructions non documentées, et de prévoir une option pour les signaler ou pas.

Daniel


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 30 Aoû 2006, 08:11 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Samuel Devulder a écrit:
On dirait que dans DCMoto les couleurs 8-15 sont inversees avec 0-7 pour les modes non TO7: 320x200 (4couls) 640x200(2couls) 160x200(16 couls).

En remplaçant les couleurs 0-7 par les couleurs 8-15 (et vice-versa) le programme de dégradé de gris fonctionne, mais le CONSOLE,,,,1 est mauvais :
Image Image

Si alors on inverse les couleurs 1/6 et 9/14 le CONSOLE,,,,1 est correct mais les dégradés sont mauvais :
Image Image

Dans le programme Basic TST, la permutation de la palette 1 avec la palette 6 est-elle nécessaire sur le vrai TO9 ? Si oui, une subtilité m'échappe encore. Toute suggestion sera la bienvenue, car sans TO9 pour tester je ne sais plus quoi essayer.

Daniel


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 30 Aoû 2006, 08:43 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Daniel Coulom a écrit:
je ne sais plus quoi essayer.

Mais si ! J'ai déduit des essais précédents que les inversions de couleurs ne sont pas les mêmes dans tous les modes d'affichage. Il faut inverser 1/6 et 9/14 pour le mode bitmap16 mais pas pour le mode 80 colonnes. J'ai donc créé pour le TO9 une table de transposition des couleurs différente pour chaque mode écran. L'affichage est alors correct en bitmap 16 et en 80 colonnes :
Image Image

Il reste à tester les modes bitmap4 et bitmap4 special.
Pour Samuel : as-tu un programme de test pour ces deux modes ?

Daniel


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

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 28 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 à:  
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com