Logicielsmoto.com

Nous sommes le 28 Mar 2024, 17:03

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 17 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
MessagePosté: 28 Fév 2021, 21:16 
Hors ligne

Inscription: 23 Fév 2021, 18:39
Messages: 6
Bonjour,

Nouveau sur le forum, je ne sais pas trop par où commencer.
Déjà... Y'a-t-il un thread pour se présenter ? Sinon je pourrai le faire ici !
Ensuite voilà, j'ai eu un TO9+ à la fin des années 80. Et je programmais des petits trucs en BASIC 512.
Quelques années après (en 2021, hahaha) j'aimerais voir si je peux m'essayer à l'assembleur.
Et comme je sais qu'il faut savoir commencer petit, voilà l'explication de mon titre.
Donc afficher un pixel, ou écrire "hello world" (pour être super original) à l'écran me suffirait.
Etant sur PC, je voudrais savoir s'il est possible de taper mes sources sous Notepad++ ?
Et ensuite de les envoyer sur l'émulateur DCMoto, là je crois qu'il existe plusieurs assembleurs ?
Si tout cela est possible, je suis preneur de conseils d'autres threads à lire, bouquins, etc...
Mon but est vraiment de faire de tout petits trucs hyper simples.

Merci d'avance, à bientôt,
Sokoban


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 28 Fév 2021, 21:42 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Salut,

De mon coté (j'étais dans le même cas que toi il y a qq temps), j'ai procédé de la manière suivante :
J'ai acheté deux livres :
- "Manuel technique des TO8, T09 et TO9+"
- "Le microprocesseur 6809" (Claude Dardanne)

J'ai lu les deux bouquins en entier ... il y a plein de choses que je n'ai pas compris au début.
Après j'ai commencé a parcourir les fils de ce forum et regardé les bouts de code à droite à gauche.
On trouve des démos avec leur sources, on analyse leur fonctionnement ...
ça vient petit à petit et ça prend du temps.

Tu peux regarder ce livre également (je ne l'ai pas lu) :
"Passez facilement du Basic au langage Machine des TO7 TO7-70 TO8 MO5" (Livre)
il est sur le site de dcmoto dans Littérature/livres


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 01 Mar 2021, 12:00 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Pour le faire à l'ancienne de mes 14ans, il y a les cours ASM de >>Hebdogiciel<<, mais c'est quand même velu.

Dans l'idéal une bonne maitrise du 6809 (ca va ce cpu est facile à apprendre), puis rentrer dans les détails technique du TO9+ via le manuel technique (oublier la 1ère partie trop "matérielle", il faut plusieurs années de lectures pour s'y retrouver; mais la 2e partie sur le moniteur et l'extramon c'est pas mal.)

Dans l'extramon tu retrouve plus ou moins les possibilités du basic (maths, graphiques y compris les tortues, le DOS). C'est très puissant mais pas vraiment plus rapide que le basic. Mais on peut s'ammuser à pas cher à porter des algos qu'on a écrit en basic en ASM et voir le résultat en assembleur. Après pour la vitesse, il faut pratiquer et re-écrire les routines faites par l'extramon (tracer lignes/points par exemple) à sa sauce pour aller plus vite. Il faut faire cela à la toute fin quand on sent qu'on commence à bien connaitre la machine au niveau ASM.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 01 Mar 2021, 13:22 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Oui mais les routines moniteur (l'extramon, je pense aussi) sont poussives et gourmandes! Vaut mieux passer directement au langage machine. L'assembleur n'est qu'une manière de le transcrire sous forme de mnemoniques. ;)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 01 Mar 2021, 13:45 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Moniteur ou extramon tout cela s'appelle depuis le langage machine. Personne ne parle d'autre chose que du langage machine ici :)

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 01 Mar 2021, 19:04 
Hors ligne

Inscription: 23 Fév 2021, 18:39
Messages: 6
Eh bien déjà, merci à tous pour les éléments communiqués.
J'ai cru voir qqpart qu'on peut mixer du basic avec du langage machine, notamment pour booster l'affichage.
Mais ce n'est sans doute pas par là qu'il faut que j'attaque mes investigations.
Je vais déjà jeter un oeil à tout ce que vous avez indiqué.
:cool:


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 01 Mar 2021, 22:07 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Pour passer des paramètres entre le basic et le code machine, le >>blog de paolozaino<< donne pas mal d'infos (en anglais, mais il y a un bouton pour avoir la version traduite par google) dans les différents posts intitulés "6809 ASM: Exchanging data between Assembly code and the BASIC interpreter on the Olivetti Prodest PC 128 and the Thomson MO6 (part xx)". C'est pour MO6, mais les principes sont sensiblement identiques entre TO8 et TO9 / TO9+. Le reste de ses articles sur l'assembleur pour 6809 sont bien aussi. Je crois qu'il a orienté ses articles vers les débutants en ASM (ou du moins vers ceux qui viennent du basic).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 08 Avr 2021, 22:41 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Le Basic appelle les routines du moniteur ou de l'extramoniteur pour exécuter les fonctions mais le basic lui même est interprété et c'est ça qui bouffe énormément de temps!

A titre de comparaison faire des peek-poke en basic pour afficher des sprite ça prend 300 fois plus de temps que la même chose en assembleur (j'ai fait des tests à ce propos, quand le basic affiche un sprite en 2 seconde, l'assembleur en affiche 240 en 0.9s), alors certes, c'est un exemple extrême, mais ça montre bien que l'assembleur ou même du Pascal base compilé, ça peut être bcp plus rapide.

Et il y a aussi des choses qu'on ne peux pas faire en Basic pour lesquel il faut passer en assembleur (pour les jeux utilisant le double buffer (pour éviter l'effet de scintillement), c'est impossible en Basic puisque ça utilise les RAM data où est écrit justement le basic pour le basculement des écrans)... voir "manuel technique des TO8..." pour plus d'explication.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 09 Avr 2021, 09:25 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Si l'objectif est de passer des paramètres à une routine assembleur, je suggère de simplement lire la doc fournie avec la machine. En l'occurence, le guide du TO8 ou le guide du MO6. EXEC et DEFUSR sont tes amis.

L'annexe 4 du guide du MO6, par exemple, explique comment appeler les routines du BASIC pour interpréter des paramètres qui seraient donnés en ligne à une nouvelle instruction, puisqu'on peut étendre le jeu d'instruction du BASIC.

Les livres "Passez facilement du BASIC au langage machine" et "L'interpréteur BASIC du TO7/70" contiennent aussi une foule d'informations utiles, tout en étant très progressifs (surtout le premier).


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 09 Avr 2021, 17:58 
Hors ligne

Inscription: 23 Fév 2021, 18:39
Messages: 6
Merci !

Je ne sais pas quel est mon but. C'est sans doute un problème.
Mais commencer par des routines assembleur depuis un programme basic paraît une bonne idée.
J'imagine qu'avec quelques PEEK & POKE bien pensés, je peux aussi m'amuser.
L'assembleur pur, je suis pas sûr d'être fait pour ça, on verra donc dans un second temps.

Bref, grâce au 3ème confinement qui ne dit pas son nom, je vais pouvoir m'y mettre.
:cool:


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Sep 2021, 16:17 
Hors ligne

Inscription: 23 Fév 2021, 18:39
Messages: 6
Bonjour :D

Afficher un pixel étant peut-être au-delà de mes compétences, je me suis dit que j'allais coder un simple "Hello World".
Du coup j'ai essayé de m'inspirer d'un exemple trouvé ici :
https://www.fxjavadevblog.fr/6809-thomson-mo5-assembly-linux/
Bon c'était bien marqué que ça ne fonctionnerait que sur MO5 et je confirme que ça ne fonctionne pas sur TO9+ :lol:

Voici dans les grandes lignes ce que j'ai fait :
1°) Création du fichier ASM sous Notepad++
2°) Assemblage avec c6809 pour obtenir le fichier BIN
3°) Création du fichier BAS pour lancer
4°) Formatage FD et importation BIN & BAS avec DCFDUTIL
5°) Tests (erreurs) avec l'émulateur DCMOTO

Est-ce que qqn pourrait m'aider transformer le code ASM prévu pour MO5 en un code équivalent pour TO9+ ?
Merci d'avance pour votre aide.

PS : je pourrai bien entendu envoyer un peu plus d'infos, je ne voulais pas faire trop long


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Sep 2021, 22:11 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ça serait pas le début d'implantation qui faut "déplacer" ?

par exemple genre faire
Code:
ORG $7300


je sais pas un TO9+ c'est pareil que TO8 pour les adresses mémoires non commutable ?

[EDIT] : ha non attends c'est dans ta ligne de commande de compilation !

- sur TO8 pour un BIN à implanter avec DCMOTO je fais ça :
Code:
c6809 -bd  prog.ASS  prog.bin


- et sur TO8 pour un BIN que je transfert sur un fichier .fd je fais :
Code:
c6809  prog.ASS PROG.BIN



j'imagine que ta pas mis -mMO dans ta ligne de commande, sinon ça compile pour MO !!

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Sep 2021, 08:00 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Le plus important sur la conversion MO->TO est que les appels à la ROM se font différemment. Sur MO on fait des SWI, sur TO des JSR. Ensuite vient l'emplacement de la RAM qui est différent. Voici le code à utiliser pour TO (7+16k, 7/70, 8, 9, 9+ c'est pareil):
Code:
(main)MAIN.ASM   * Marquage du programme principal

DEBUT
    ORG $A000    * etait $6000 sur MO
    LDX #MESSAGE
AFFICHE      
    LDB ,X+
    BEQ FIN
    JSR $E803    * etait  SWI + FCB $02 sur MO
    BRA AFFICHE

FIN
    RTS

MESSAGE
    FCS "HELLO LES THOMSONISTES !",0
    END

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Sep 2021, 09:25 
Hors ligne

Inscription: 23 Fév 2021, 18:39
Messages: 6
Wow ! Un grand merci.
:bien:
Je fais partie de ces gens qui ont besoin d'un petit exemple avant de mettre les mains dans le cambouis.
C'est un peu à l'inverse de la logique, je sais, mais j'ai toujours fonctionné comme ça.
Donc merci, j'ai une base de travail, je vais essayer d'avancer pas à pas, et de lire les docs (aka RTFM), oui, aussi.
:coolfuck:


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 12 Oct 2021, 11:04 
Hors ligne

Inscription: 23 Fév 2021, 18:39
Messages: 6
Finalement mon choix s'est porté sur :

- Compilateur MacroAssembleur c6809 de PULS pour compiler
-- http://www.pulsdemos.com/c6809.html
- Le bouquin "Passez Facilement du Basic au Langage Machine" pour apprendre
-- http://dcmoto.free.fr/documentation/passezfacilement/index.html

Voici mon nouveau mode opératoire, qui fonctionne nickel chrome :

1°) Création du code source ASM sous Notepad++
2°) Compilation avec c6809 pour obtenir le fichier BIN (via un fichier BAT pour simplifier)
3°) Importation du fichier BIN avec DCFDUTIL
4°) Création du code source BAS depuis émulateur DCMOTO

J'avance au fil des chapitres du bouquin donc pour l'instant toujours pas de pixel, mais déjà des caractères et de la couleur, wouhou !

:coolfuck:


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

Heures au format UTC + 1 heure


Qui est en ligne

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