[ASM - 68000 - Z80] - MEGADRIVE
+5
Stef
majikeyric
vingazole
dub
tetsuro
9 participants
Page 1 sur 3
Page 1 sur 3 • 1, 2, 3
[ASM - 68000 - Z80] - MEGADRIVE
Bonjour à tous,
J'aimerais y voir un peu plus clair en ce qui concerne les langages Assembleurs 68000 (68k) et Z80 de la Megadrive.
Je suis totalement débutant dans ce domaine, mon expérience en programmation se limite au langage C que je maitrise moyennement et à la librairie SDL. Je suis conscient de la difficulté mais je me sent attiré par la programmation bas niveau sur Megadrive, j'aime comprendre ce que je fais, ce qu'il se passe dans la machine, et non juste appeler des fonctions déjà toutes faites.
C'est surtout des questions pour mettre un premier pas dans le plat, démystifier un peu tout ça, mais je compte bien sûr emprunter les chemins plus simple en parallèle afin de programmer en C avec SDGK, et en C avec SDL pour PC et Dreamcast.
J'ajouterais au fur et à mesure les réponses que j'aurais obtenues "en vert gras" comme ça, ça aidera d'autres personnes que moi, bien sur si vous estimez qu'une réponse est erronée il faudrait me le dire :)
Désolé pour toutes ces questions, désolé d'être trop noob , et merci d'avance pour votre aide qui me sera précieuse.
J'aimerais y voir un peu plus clair en ce qui concerne les langages Assembleurs 68000 (68k) et Z80 de la Megadrive.
Je suis totalement débutant dans ce domaine, mon expérience en programmation se limite au langage C que je maitrise moyennement et à la librairie SDL. Je suis conscient de la difficulté mais je me sent attiré par la programmation bas niveau sur Megadrive, j'aime comprendre ce que je fais, ce qu'il se passe dans la machine, et non juste appeler des fonctions déjà toutes faites.
C'est surtout des questions pour mettre un premier pas dans le plat, démystifier un peu tout ça, mais je compte bien sûr emprunter les chemins plus simple en parallèle afin de programmer en C avec SDGK, et en C avec SDL pour PC et Dreamcast.
J'ajouterais au fur et à mesure les réponses que j'aurais obtenues "en vert gras" comme ça, ça aidera d'autres personnes que moi, bien sur si vous estimez qu'une réponse est erronée il faudrait me le dire :)
- - Le langage 68k utilisé sur Megadrive est-il le même qu'un langage 68k standard ?
- Réponse (touko) : Oui, excepté l'instruction TAS qu'il ne faut pas utiliser sur Megadrive car elle teste et met à 1 les bits 7 et 0 d'un octet, tout le reste est pareil . - - Connaissez-vous un bon site (si possible en français, au pire en anglais), pour apprendre ce 68k ?
- Réponse (dub, tfdi, moi) : Un site français pour débutants, idéal pour survoler l'ASM : http://assembly68k.blogspot.fr/2014/06/quest-ce-que-lasm-fr.html
: Un autre site français pour débutants pour approfondir l'ASM : http://www.abricocotier.fr/wp-content/uploads/louisvolantcom/cours_asm_68000.pdf
: Un site anglais : http://darkdust.net/writings/megadrive - - Avec quel IDE puis-je écrire et compiler en un ASM 68K et/ou Z80 reconnus par la Megadrive ?
- Réponse (dub, moi) : esay68k, asm68k (Et pour le Z80 ?) - - Connaissez-vous un moyen d'avoir des sources d'un petit projet Megadrive en ASM ?
- Réponse (Hpman) : MrNutz MD traîne dans l'archive du code de turrican 3 amiga (en asm 68k également) : https://www.dropbox.com/s/7xikn7qpirj06fs/Turrican_III_Source_Code.rar?dl=0 - - J'ai mis à la suite les photos d'un livre que j'ai acheté "Mise en œuvre du 68000 de Catherine Vieillefond des éditions Sybex. Il date de 1991, très austère, 480 pages. J'ai mis des photos, qu'est ce que vous en pensez ? Le truc qui me turlupine c'est au dos de la couverture le : Matériel : Macintosh - SUN (Je ne vois même pas ce que ça représente) et le : Niveau : initié (Initié à quoi ? A la programmation ? A d'autres ASM ?)
- Réponse (les participants du sujet) : Apparemment j'ai pris un bon livre, une bible, mais à étudier lorsque j'aurais un meilleur niveau... - - Le code suivant est bien un ASM 68k c'est ça ?
- Réponse (touko) : Oui le code suivant est bien un code en langage Assembleur (ASM) 68000 (68k)
- Code:
moveq #0, d0
moveq #0, d1
move.b #0x40, (0xA10009) | Set direction
move.b #0x40, (0xA10003) | TH = 1
nop
nop
move.b (a0), d0 | d0.b = X | 1 | C | B | R | L | D | U |
andi.b #0x3F, d0 | d0.b = 0 | 0 | C | B | R | L | D | U |
move.b #0x0, (0xA10003) | TH = 0
nop
nop
move.b (0xA10003), d1 | d1.b = X | 0 | S | A | 0 | 0 | D | U |
andi.b #0x30, d1 | d1.b = 0 | 0 | S | A | 0 | 0 | 0 | 0 |
lsl.b #0x2, d1 | d1.b = S | A | 0 | 0 | D | U | 0 | 0 |
or.b d1, d0 | d0.b = S | A | C | B | R | L | D | U |
Désolé pour toutes ces questions, désolé d'être trop noob , et merci d'avance pour votre aide qui me sera précieuse.
Dernière édition par tetsuro le Lun 11 Jan 2016 - 4:30, édité 14 fois
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: [ASM - 68000 - Z80] - MEGADRIVE
Je pourrai juste répondre à la question 1, par un oui, excepté l'instruction TAS qu'il ne faut pas utiliser sur Md, tout le reste c'est pareil .
Donc tout ce que tu peux trouver comme astuce pour la prog 68K, est applicable sur MD sans soucis .
Et la 6 aussi, par un oui
Et la 5 aussi, tes bouquins peuvent te servir a comprendre le fonctionnement du 68k ,qu'il soit sur un mac un amiga ou un ST (et Md), il fonctionne exactement pareil, seul les accés au matériels ou à des fonctions internes à la machine (bios) ne fonctionneront pas .
Donc tout ce que tu peux trouver comme astuce pour la prog 68K, est applicable sur MD sans soucis .
Et la 6 aussi, par un oui
Et la 5 aussi, tes bouquins peuvent te servir a comprendre le fonctionnement du 68k ,qu'il soit sur un mac un amiga ou un ST (et Md), il fonctionne exactement pareil, seul les accés au matériels ou à des fonctions internes à la machine (bios) ne fonctionneront pas .
Dernière édition par TOUKO le Mer 30 Déc 2015 - 18:36, édité 2 fois
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
Merci je vais ajouter ta réponse, je vais au fur et à mesure compléter les réponses comme une FAQ, comme ça ça peut aider aussi les autres.
C'est quoi l'instruction TAS ?
C'est quoi l'instruction TAS ?
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: [ASM - 68000 - Z80] - MEGADRIVE
Si je dis pas de bêtises elle teste et met à 1 les bits 7 et 0 d'un octet .
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
Ils ont l'air bien tes bouquins.
Perso, j'utilise pas de IDE mais un compilateur simple en mode de commande avec un batch et Notepad.
Je connais pas de site en français, malheureusement, par contre j'ai regardé ce site qui est pas mal : http://darkdust.net/retrogaming/megadrive
Perso, j'utilise pas de IDE mais un compilateur simple en mode de commande avec un batch et Notepad.
Je connais pas de site en français, malheureusement, par contre j'ai regardé ce site qui est pas mal : http://darkdust.net/retrogaming/megadrive
Re: [ASM - 68000 - Z80] - MEGADRIVE
- Quel compilateur tu utilises ?
- Tu code sur MD ? Et si oui en quel langage ?
- C'est quoi un batch ?
merci pour le site je vais jeter un oeil
- Tu code sur MD ? Et si oui en quel langage ?
- C'est quoi un batch ?
merci pour le site je vais jeter un oeil
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: [ASM - 68000 - Z80] - MEGADRIVE
J'utilise asm68k, c'est surtout parce que c'est le premier que j'ai trouvé.
Je code sur Megadrive an C avec le sgdk mais je commence aussi en assembleur.
Un batch, c'est un fichier de commande "DOS" avec l'extension .bat . C'est un fichier qui exécute pour toi plusieurs lignes de commande directement. Tu peux les utiliser dans l'interface Windows comme en ligne de commande.
Quand j'utilise mon batch en double cliquant dessus, il me compile ma source hello.asm puis met en pause pour que je puisse lire le contenu de la compilation.
Je code sur Megadrive an C avec le sgdk mais je commence aussi en assembleur.
Un batch, c'est un fichier de commande "DOS" avec l'extension .bat . C'est un fichier qui exécute pour toi plusieurs lignes de commande directement. Tu peux les utiliser dans l'interface Windows comme en ligne de commande.
- Code:
..\ASM68K.EXE /p hello.asm,rom.bin
pause
Quand j'utilise mon batch en double cliquant dessus, il me compile ma source hello.asm puis met en pause pour que je puisse lire le contenu de la compilation.
Re: [ASM - 68000 - Z80] - MEGADRIVE
Vous pensez quoi de esay68k ? http://www.easy68k.com/
Je pourrais travailler avec ? Des retours expériences ?
Je pourrais travailler avec ? Des retours expériences ?
Dernière édition par tetsuro le Lun 11 Jan 2016 - 2:39, édité 1 fois
tetsuro- Patient contaminé
- Nombre de messages : 593
Age : 47
Localisation : Carcassonne
Date d'inscription : 27/12/2015
Re: [ASM - 68000 - Z80] - MEGADRIVE
Easy68k a l'air sympa pour apprendre le 68000, y a des tutos mais je sais pas si il gère les processeurs spécifiques. En gros, je pense pas que tu pourras afficher des graphs megadrive par exemple. Jamais testé.
Pour les sources des jeux, ça doit se trouver mais il vaudrait mieux que tu commences par comprendre la machine et faire ton propre code sinon tu vas vite être submergé.
Pour le z80, regardes du côté de la master system. J'ai fait des tests sur le z80 pour sms avec wla-dx (tu as un compilateur z80 et un linker).
Petite question en passant, c'est quoi les jeux dont tu as fait les graphismes (petit H.S.) ? J'aimerai connaître ton style.
Pour les sources des jeux, ça doit se trouver mais il vaudrait mieux que tu commences par comprendre la machine et faire ton propre code sinon tu vas vite être submergé.
Pour le z80, regardes du côté de la master system. J'ai fait des tests sur le z80 pour sms avec wla-dx (tu as un compilateur z80 et un linker).
Petite question en passant, c'est quoi les jeux dont tu as fait les graphismes (petit H.S.) ? J'aimerai connaître ton style.
Re: [ASM - 68000 - Z80] - MEGADRIVE
j'ai aussi trouvé ça, si ça peut servir :
http://physinfo.ulb.ac.be/cit_courseware/asm/mc68000.htm
http://physinfo.ulb.ac.be/cit_courseware/asm/mc68000.htm
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
Pour le z80, des tableaux résumant l'intégralité des opcodes ("non documentés" inclus) : http://clrhome.org/table/
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: [ASM - 68000 - Z80] - MEGADRIVE
Putain il est bourré d'instructions le Z80
PS:putain la fin d'année te réussit vinga, comme tu es devenuebonne mignonne
PS:putain la fin d'année te réussit vinga, comme tu es devenue
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
Ce qui est trompeur c'est que tu as toutes les variantes associées à chaque registre : pour un "ld REG8,REG8" on te met "ld a,b" "ld a,c" "ld a,d"... et "ld b,a" "ld c,a" "ld d,a" etc...
PS : c'est Silvia Saint en tenue de "mère noël" mon avatar, si tu fais une recherche avec Google Image tu verras à quel point elle est "mignonne"
PS : c'est Silvia Saint en tenue de "mère noël" mon avatar, si tu fais une recherche avec Google Image tu verras à quel point elle est "mignonne"
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: [ASM - 68000 - Z80] - MEGADRIVE
La sal....................!!!! oups je m'égare....
Mise en oeuvre du 68000 de Sybex c'est un peu la bible du 68000. Je l'ai même acheté en 2 exemplaires à 20 ans d'intervalle...
J'utilise VASM (de la suite VBCC) pour assembler du 68000 mais c'est pour pondre des EXE Amiga.
Le Z80 c'est juste une horreur (par rapport au 68000 et même au 6502!). j'utilise SJASMPlus pour coder sur CPC/MSX/ZX Spectrum.
Pour des outils dédiés à la Megadrive, je ne sais pas trop...
Mise en oeuvre du 68000 de Sybex c'est un peu la bible du 68000. Je l'ai même acheté en 2 exemplaires à 20 ans d'intervalle...
J'utilise VASM (de la suite VBCC) pour assembler du 68000 mais c'est pour pondre des EXE Amiga.
Le Z80 c'est juste une horreur (par rapport au 68000 et même au 6502!). j'utilise SJASMPlus pour coder sur CPC/MSX/ZX Spectrum.
Pour des outils dédiés à la Megadrive, je ne sais pas trop...
Re: [ASM - 68000 - Z80] - MEGADRIVE
TOUKO a écrit:raaah les noobsLe Z80 c'est juste une horreur
Noob? non je sais de quoi je parle.
C'est l'assembleur que je déteste le plus entre tous ceux que je pratique : 80x86 - 68000- 6502/65816 et Z80....
Re: [ASM - 68000 - Z80] - MEGADRIVE
Pourquoi ??
Là je te charriais .Noob? non je sais de quoi je parle.
Dernière édition par TOUKO le Jeu 31 Déc 2015 - 21:08, édité 1 fois
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
Déjà parce-que par rapport aux autres il est plus limité en modes d'adressages. Pas d'adressage en page 0 par exemple avec possibilité de faire de l'adressage indirect indexé avec n'importe quels pointeurs de la page 0.
Pas de vrai adressage indexé non plus...
Quelle galère d'effectuer des traitements en parcourant plusieurs tableaux simultanément. Il faut toujours bidouiller ou faire du code auto-modifié...
Pas de vrai adressage indexé non plus...
Quelle galère d'effectuer des traitements en parcourant plusieurs tableaux simultanément. Il faut toujours bidouiller ou faire du code auto-modifié...
Re: [ASM - 68000 - Z80] - MEGADRIVE
tu as commencé par le 6502 avant le Z80 je suppose ??
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
majikeyric a écrit:TOUKO a écrit:raaah les noobs[size=47]Le Z80 c'est juste une horreur [/size]
Noob? non je sais de quoi je parle.
C'est l'assembleur que je déteste le plus entre tous ceux que je pratique : 80x86 - 68000- 6502/65816 et Z80....
+1
J'aime vraiment pas le Z80, par contre étrangement le custom CPU de la GB qui est basé sur du Z80 je le trouve beaucoup plus sympa, l'instruction set bien que proche est plus interessant, vraiment le Z80 est wasteful, les mode d'adressage pas terrible... Je trouve que c'est vraiment compliqué de faire un code efficace avec ce CPU :-/
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007
Re: [ASM - 68000 - Z80] - MEGADRIVE
Entièrement d'accord, c'est d'ailleurs ça qui le rend passionnant :)Stef a écrit:Je trouve que c'est vraiment compliqué de faire un code efficace avec ce CPU :-/
Tout cela est très subjectif, je suis sûr que le 68000 est un processeur génial mais je n'ai jamais pu saquer la syntaxe de son ASM
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: [ASM - 68000 - Z80] - MEGADRIVE
Comme quoi, la perception d'un bon CPU est tout aussi subjective que la définition d'un bon jeu j'ai l'impression
Dernière édition par TOUKO le Sam 2 Jan 2016 - 12:48, édité 1 fois
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
ah le 68K, tout ma jeunesse. J'ai fait 10 ans de demomaking sur Amiga. J'en ai mangé du 68000. Et j'aime ça, c'est le pire!!
J'avais même écrit tout un jeu complet en 68000, un loderunner. Avec l’éditeur de niveau.
J'avais appris sur te tas, en regardant des exemples d'autres. Au final, c'est pas bien compliqué, juste long a écrire et debugger (sur Amiga, il y avait des supers outils pour debugger en temps réel, il faudrait que tu puisses faire pareil).
Les bouquins que tu mentionnent semblent très bien.
J'avais même écrit tout un jeu complet en 68000, un loderunner. Avec l’éditeur de niveau.
J'avais appris sur te tas, en regardant des exemples d'autres. Au final, c'est pas bien compliqué, juste long a écrire et debugger (sur Amiga, il y avait des supers outils pour debugger en temps réel, il faudrait que tu puisses faire pareil).
Les bouquins que tu mentionnent semblent très bien.
Re: [ASM - 68000 - Z80] - MEGADRIVE
@tetsuro: petit HS, mais je crois que ce topic pourrait t' intéresser : https://www.gamopat-forum.com/t63668-la-programmation-mega-drive-pour-les-nuls-expliquee-par-les-pros
(ça discute essentiellement de la partie graphique de la bête)
(ça discute essentiellement de la partie graphique de la bête)
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 05/01/2012
Re: [ASM - 68000 - Z80] - MEGADRIVE
L'asm est un bon exercice pour celui qui aime trouver des astuces,et se casser un peu la nenette .ah le 68K, tout ma jeunesse. J'ai fait 10 ans de demomaking sur Amiga. J'en ai mangé du 68000. Et j'aime ça, c'est le pire!!
Je pense que tous ici qui en font peut importe le CPU aime ça, on est un peu maso je pense .
Dernière édition par TOUKO le Sam 2 Jan 2016 - 14:26, édité 1 fois
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
@tetsuro : son pseudo est TOUKO et non toukou
Ce qui serait sympa c'est comme sur Ng , crée du code en c avec le compilo et voir le code en asm dans l'émulateur. Est ce possible sur megadrive ?
Ce qui serait sympa c'est comme sur Ng , crée du code en c avec le compilo et voir le code en asm dans l'émulateur. Est ce possible sur megadrive ?
pckid- Infirmier
- Nombre de messages : 3753
Age : 47
Localisation : ile de france (94)
Date d'inscription : 29/09/2011
Re: [ASM - 68000 - Z80] - MEGADRIVE
LOL, j'avais pas vu , merci pckid@tetsuro : son pseudo est TOUKO et non toukou
Si l'emulateur dispose d'un mode debug normalement oui, du moins sur PCE avec mednafen (qui fait md aussi) c'est le cas .Est ce possible sur megadrive ?
Sinon peut être aussi que le compilo génère un fichier asm avant de créer le fichier rom, et tu peux voir dedans tout le code C interprété en ASM.
Invité- Invité
Re: [ASM - 68000 - Z80] - MEGADRIVE
Arf, il faut souffrir pour être beauTOUKO a écrit:L'asm est un bon exercice pour celui qui aime trouver des astuces,et se casser un peu la nenette .ah le 68K, tout ma jeunesse. J'ai fait 10 ans de demomaking sur Amiga. J'en ai mangé du 68000. Et j'aime ça, c'est le pire!!
Je pense que tous ici qui en font peut importe le CPU aime ça, on est un peu maso je pense .
Il faut essayer de trouver le langage le mieux adapté pour chaque projet par machines et jeux. Pas choisir parce qu'on aime / connaît un langage mais parce que la machine doit l'utiliser.
Ah l'asm sur Amiga j'en ferais un jour ...
pckid a écrit:Ce qui serait sympa c'est comme sur Ng , crée du code en c avec le compilo et voir le code en asm dans l'émulateur. Est ce possible sur megadrive ?
Je crois que tu peux ajouter un -S dans la ligne du compilo au niveau du Flag. Mais faudrait que je vérifie.
P.S. J'avais lu jusqu'au bout, tu parles dans l'emulateur. Je sais qu'avec mess on peut voir le code du 68000 en cours d'exécution et avancer ligne par ligne. Assez sympa.
Il y a gens aussi mais je sais pas comment lire ligne par ligne.
Re: [ASM - 68000 - Z80] - MEGADRIVE
Ouai enfin, l'asm à aussi le revers de te faire perdre les cheveuxArf, il faut souffrir pour être beau
Oui bien sur mais sur des systèmes aussi limité qu'une console 16 bits, l'asm est toujours le meilleurs moyens d'en tirer pleinement partie .Il faut essayer de trouver le langage le mieux adapté pour chaque projet par machines et jeux. Pas choisir parce qu'on aime / connaît un langage mais parce que la machine doit l'utiliser.
Ah l'asm sur Amiga j'en ferais un jour ...
Ca aide aussi à comprendre comment ça marche, bien sur les langages de haut niveaux ça permet d'aller vite, mais aujourd'hui où plus rien n'est vraiment optimisé(surtout sur pc) est ce mieux ??
Invité- Invité
Page 1 sur 3 • 1, 2, 3
Sujets similaires
» Le 68000 et moi ...
» [Neogeo] Asm pour 68000
» Papi Commando fait de ... L'assembleur 68000 !
» [Estim] Megadrive complete pack Sonic & knucles + megadrive loose/jeux
» [VENDU] Megadrive : Jeux complets en boite, en loose : je me sépare de ma collection Sega Megadrive
» [Neogeo] Asm pour 68000
» Papi Commando fait de ... L'assembleur 68000 !
» [Estim] Megadrive complete pack Sonic & knucles + megadrive loose/jeux
» [VENDU] Megadrive : Jeux complets en boite, en loose : je me sépare de ma collection Sega Megadrive
Page 1 sur 3
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum