Derniers sujets
» Oric Kong en C preview (coup de main demandé)
Mar 18 Sep 2018 - 17:01 par Ladywasky

» Interview de Vincent Baillet
Lun 17 Sep 2018 - 20:31 par didierv

» SCUBA DIVE
Lun 17 Sep 2018 - 1:15 par Symoon

» CEO MAG 338
Dim 16 Sep 2018 - 1:25 par Ladywasky

» Tyrann 2.0 sur Androïd (et facebook,...)
Jeu 6 Sep 2018 - 20:53 par Sheld67

» [PROBLEME] Commande input et générateur aléatoire
Mar 4 Sep 2018 - 4:20 par Ladywasky

» OricSpin : Télécharger et jouer
Lun 3 Sep 2018 - 9:32 par Oric1-Atmos

» fonctions supplémentaires pour OSDK
Jeu 30 Aoû 2018 - 15:46 par Ladywasky

» OricJoy : un frontend pour oricutron, avec support joystick/gamepad
Jeu 30 Aoû 2018 - 0:32 par Ladywasky

» Conversion de oric kong en C
Mer 29 Aoû 2018 - 23:47 par Ladywasky

» **NEW** EDGE for ORIC !!!!
Mer 29 Aoû 2018 - 9:31 par Davros

» Ensemble de Mandelbrot en C et en 10 lignes
Mar 28 Aoû 2018 - 17:18 par TotoShampoin

» Espace de stockage dans le forum
Mar 28 Aoû 2018 - 6:53 par maximus

» LCC65, la Compil pour ORIC
Lun 27 Aoû 2018 - 15:39 par Ladywasky

» defence-force.org ne réponds plus !
Lun 27 Aoû 2018 - 2:36 par Ladywasky

Qui est en ligne ?
Il y a en tout 2 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 2 Invités

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 152 membres enregistrés
L'utilisateur enregistré le plus récent est Legend of Myth

Nos membres ont posté un total de 7169 messages dans 537 sujets
Portail ORIC




Apprendre l'Assembleur ORIC

Aller en bas

Apprendre l'Assembleur ORIC

Message par maximus le Dim 12 Nov 2017 - 7:41

Impressionné par les beaux jeux comme Blake's, tout ça c'est grâce à l'assembleur

Mais c'est vraiment dur de s'y mettre, j'ai essayé mais bon Embarassed

Mode Rêve ON:

Arrow les Pros nous font un cours d'ASM ORIC pour les Noobs  Rolling Eyes

Mode Rêve OFF

clown


Dernière édition par maximus le Dim 12 Nov 2017 - 10:04, édité 1 fois
avatar
maximus

Messages : 1247
Date d'inscription : 02/12/2012
Age : 57
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par drpsy le Dim 12 Nov 2017 - 9:02

Je crois qu'il y en a plein les anciens mags ! et en plus en ce moment, une série d'articles passe en revue toutes les instructions du 6502.

Personnellement, j'ai le  petit livre, acheté à l'époque, et auquel à l'époque je n'ai rien compris; vu que personne ne m'avait dit ce qu'était une adresse :




L'assembleur de L'oric 1 et Atmos - Programmation en langage machine
Marcel Henrot

Il est en téléchargement ici :

http://www.defence-force.org/computing/oric/library/lib_coding_6502/index.htm

Et aujourd'hui, je n'ai pas vraiment besoin d'une autre référence.

Maximus, qu'est-ce qui te manquerait pour t'y mettre ?

_________________
>++++++++++[<++++++++>-]<.>++++++[<++++>-]<+.----.+++++++++++++..-------------.[-]
avatar
drpsy

Messages : 104
Date d'inscription : 20/07/2014
Age : 46
Localisation : Lagny sur Marne

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par maximus le Dim 12 Nov 2017 - 9:15

Oui j'ai commencé ce livre, pfiou c'est des pages et des pages sur le fonctionnement de l'ORIC avec 1 mot nouveau toutes les 3 lignes, c'est un livre pour informaticien et pas pour un noob qui n'a fait que du BASIC, je lis binaire, ULA, registres, etc... c'est du lourd quand même Very Happy

j'ai fait le tuto du siteduzero (devenu openclassroom) mais il n'y a que la base, c'est limpide mais hélas incomplet:

https://openclassrooms.com/courses/en-profondeur-avec-l-assembleur

de plus c'est l'assembleur Microsoft MASM

il me faut beaucoup de courage Embarassed Embarassed
avatar
maximus

Messages : 1247
Date d'inscription : 02/12/2012
Age : 57
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par kenneth le Dim 12 Nov 2017 - 10:10

Perso, j'essaie les instructions avec le moniteur d'Oricutron, on se rend mieux compte. Wink
avatar
kenneth
Modérateur

Messages : 487
Date d'inscription : 13/01/2013
Age : 51
Localisation : 972

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par drpsy le Dim 12 Nov 2017 - 10:32

Ah oui, je te comprends... La plupart des tutoriels sont faits par des gens qui savent déjà, et la difficulté pour eux est de se mettre à la place de ceux qui ne savent pas. Et quand la première barrière, c'est le vocabulaire, c'est compliqué.

On pourrait faire quelque chose : tu essaies, chaque fois que tu ne comprends pas un terme ou un concept, tu poses la question et on y répond !

Je prends les 3 mots que tu as cités :
- binaire : c'est le fameux 0 ou 1 ! écrire un nombre en binaire, c'est le traduire en une suite de 0 et de 1. Exemple :
1 (décimal) = 1 (binaire).
On utilise une "norme" de notation, qui est ensuite utilisée dans les compilateurs. Dans OSDK (mais pas que), un nombre en binaire s'écrit : %xxx. Exemples : 2 = %10. 5 = %101.
Comme on n'a que 2 chiffres, 0 et 1, chaque fois que j'additionne 1 et 1, je pose 0 et je reporte 1.
1+1 = 2
%1 + %1 = %10

Un ordinateur fonctionne sur des nombres binaires, au sens ou pour chaque "chiffre binaire" (O ou 1), il y a un fil qui entre dans le processeur (le cerveau de l'ordinateur). Lorsque le courant passe, on a 1 et lorsqu'il ne passe pas, on a 0.

Sur un ORIC, 8 fils de données entrent dans le processeurs : 8 bits !
Voilà pourquoi le binaire est si important.
Pour éviter de manipuler des séries de 0 et de 1, on travaille plutôt en hexadecimal (base 16, c'est à dire qu'on a 16 chiffres au lieu de 10 pour écrire des nombres), qui se traduit très bien en binaire, puisque chaque chiffre hexadécimal se code sur 4 chiffres binaires.
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
...
9 - 1001
A - 1010
B - 1011
C - 1100
D - 1101
E - 1110
F - 1111
Pour traduite un binaire en décimal, soit on compte avec ses doigts, mais c'est long, soit on fait une addition.
Exemple :
écrire 11100 en décimal.
11100 = 10000 + 01000 + 00100.
10000 = 32 = 2*2*2*2*2 = 2^5. La position du 1 dans le nombre binaire donne exactement le chiffre d'élévation à la puissance de 2.
01000 = 16 = 2^4.
00100 = 8 = 2^3.
11100 = 8+16+32 = 56.
En Hexa, on regroupe les chiffres par 4 : 11100 = 0001 1100 = 1C.
J'espère que c'est plus clair, et désolé si c'était déjà évident pour toi...

- ULA : c'est un composant de l'ORIC qui gère la video et tout un tas de trucs. Normalement, tu n'as pas besoin de ça pour programmer en LM. Ceux qui s'y intéressent sont à un niveau très avancé ! Et de toutes façons, on n'y a pas directement accès.

- Registres : ce sont les variables internes du processeur. Dans un programme BASIC, tu définis autant de variables que tu veux : A, I, B, C, TX$,... et même des tableaux. En langage machine ou assembleur, il est très important de comprendre que le processeur ne sait travailler qu'avec ses variables internes et un seul emplacement mémoire à la fois. D'une manière générale, le processeur prend de l'information d'une cellule mémoire (il fait comme un PEEK en BASIC), applique un traitement dessus (une addition, etc.), et écrit le résultat dans une cellule mémoire (POKE). Suivant les instructions machine, ça peut prendre une seule instruction ou plusieurs en fonction de ce qu'on a à faire. Certaines instructions ne travaillent que sur les registres internes, d'autres sont capables de combiner lecture / opération / écriture.
Les "registres" sont :
A : celui qui permet de faire des additions, soustractions, etc. Le plus utilisé dans les programmes
X et Y : compteurs mais qui permettent aussi de travailler avec A
P : chaque chiffre binaire (bit) de ce registre contient une information importante. Ca sert pour les retenues par exemple. Ou à détecter qu'un nombre est égal à 0. Très important et pas évident à comprendre au début. Tous les tests réalisés par le processeur (équivalent du IF en BASIC) se basent sur ce registre.
PC : adresse de l'instruction courante. Quand on fait un GOTO (JMP en assembleur), on change cette valeur. En basic de l'ORIC, c'est comme si on gardait en mémoire le numéro de ligne BASIC du programme en cours d'exécution. Il change tout le temps. Après chaque instruction, il augmente, à moins d'être modifié par un JMP ou autre instruction de saut.
SP : pointeur de pile. Là, ça nécessite d'autres explications.

_________________
>++++++++++[<++++++++>-]<.>++++++[<++++>-]<+.----.+++++++++++++..-------------.[-]
avatar
drpsy

Messages : 104
Date d'inscription : 20/07/2014
Age : 46
Localisation : Lagny sur Marne

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par maximus le Dim 12 Nov 2017 - 13:25

Merci drpsy, je dois tout simplement bosser pour p-e m'y mettre, c'est autre chose que le BASIC qui se désintéresse totalement de tout ça

avatar
maximus

Messages : 1247
Date d'inscription : 02/12/2012
Age : 57
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par Symoon le Dim 12 Nov 2017 - 14:34

Deux choses m'ont permis de me mettre à l'assembleur:
1- chercher à comprendre "mais comment ils ont fait ci ou ça ?" => lecture de Sedoric à Nu (très bien expliqué), l'Oric à Nu, ...
2- avoir envie de changer une bricole dans ce bazar => de tous petits projets en assembleur

Je te conseille éventuellement au début, de voir l'assembleur comme un sous-programme basic, appelé par un CALL au lieu de Gosub.
A partir de là, tente de faire de tous petits trucs simples (simples en assembleur ! Car un truc qui paraît "simple" peut être très compliqué à faire en assembleur Wink ).
Ca permet d'entrer dans le concret du sujet.

Par exemple tape
POKE#700,#60
CALL#700
Tu auras fait ton premier programme qui correspond à un GOSUB / RETURN

De mon côté en fait je ne me suis jamais vraiment mis à l'assembleur, mais au langage machine: je code en hexadécimal (avec un bouquin à côté hein Wink), je traduis ensuite en mnémoniques. Archaïque et lent, horrible quand on a oublié quelque chose, exemple à ne pas suivre...
avatar
Symoon

Messages : 461
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par drpsy le Sam 18 Nov 2017 - 14:32

L'intérêt du livre de Marcel Herriot, c'est qu'il y a pas pas mal de code décortiqué.
Ce qui m'a le plus aidé, c'est de comprendre ce que faisait chaque instruction dans le code.
Pour débuter, on a besoin de relativement peu d'instructions du processeur.
Beaucoup d'instructions permettent d'optimiser les programmes.

_________________
>++++++++++[<++++++++>-]<.>++++++[<++++>-]<+.----.+++++++++++++..-------------.[-]
avatar
drpsy

Messages : 104
Date d'inscription : 20/07/2014
Age : 46
Localisation : Lagny sur Marne

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par Dbug le Dim 29 Juil 2018 - 19:01

maximus a écrit:j'ai fait le tuto du siteduzero (devenu openclassroom) mais il n'y a que la base, c'est limpide mais hélas incomplet:
https://openclassrooms.com/courses/en-profondeur-avec-l-assembleur
de plus c'est l'assembleur Microsoft MASM
Fatalement, l'erreur.
La grosse erreur.

"assembleur" ca veut juste dire "langage du processeur", et chaque processeur a son propre dialecte, ses propres outils et des syntaxes qui diffèrent.

C'est comme si tu voulais apprendre l'anglais et que allais t'inscrire au premier cours de "langue vivante étrangère" que tu trouves, sauf que manque de bol c'était de l'Espagnol.

Le 6502, c'est le 6502.
Le 80x86, c'est le 80x86.

Il y a des similarités, mais c'est surtout essentiellement différents dans la facon dont ca marche. En gros les seules trucs communs c'est qu'il y a des instructions, des registres, des modes d'adressage, etc... mais c'est comme de dire que l'anglais c'est presque comme l'espagnol parce qu'il y a des verbes, des noms, des pronoms, et des signes de ponctuation.

En pratique l'assembleur 6502 c'est pas bien plus difficile que le BASIC, le problème c'est juste le niveau d'abstraction: Au lieu de dire "prépare a manger" tu dois a la place donner la liste des instructions une par une: Va au frigo, ouvre la porte du frigo, baisse ton bras vers l'étagère, prend le beurre, pose le beurre sur la table, prend le fromage, pose le fromage sur la table, etc...

Ton second gros problème, c'est que l'essentiel des informations intéressantes sont en anglais.

Je recommandais a l'époque le bouquin signalé plus haut, c'est celui que j'ai aussi utilisé pour apprendre, mais le gros problème est que ca utilise une syntaxe différente de ce qu'on utilise sur les assembleurs modernes... ce qui rend le bouquin quasiment inutilisable.

Aussi, sur tous ces bouquins la, ca ne se lit pas du debut a la fin, les parties sur les modes d'adressage, le binaire, etc... c'est surtout des references. Prend des notes au fur et a mesure, note les trucs louches, et recherche plus tard ou demande.

Pareil avec tout ce qui est programmes de chargement avec DATA, on oublie: On est en 2018, on fait comme tout le monde et on passe par un assembleur sur PC avec un bon editeur de texte, des commentaires et des labels, on assemble tout ca en un fichier executable que l'on charge sur l'oric.

Et pour debugger on passe pas par OricMon et cie... Fabrice et Xeron ont mis des débogueurs en natifs dans leurs émulateurs, c'est largement plus puissant que tout les outils natifs Oric (et ont l'aventage de pas prendre de mémoire ou de se faire écraser en cas de crash).

_________________

avatar
Dbug

Messages : 82
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par kenneth le Dim 29 Juil 2018 - 23:01

Tout à fait.
En plus, contrairement au Basic, on est intimement lié avec la mémoire de l Oric et de toutes ses entrées sorties. Donc, pour programmer en assembleur sur l Oric je pense qu il faut trouver des tutos uniquement sur le 6502 et uniquement sur l Oric. Cela évite de s encombrer de subtilités qu on trouve sur d autres processeurs plus fournis en instructions et sur d autres architectures vidéo qui pourrait empêcher la compréhension de l ula, qui est déjà spécial.
avatar
kenneth
Modérateur

Messages : 487
Date d'inscription : 13/01/2013
Age : 51
Localisation : 972

Revenir en haut Aller en bas

Re: Apprendre l'Assembleur ORIC

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum