Ce samedi, Shazz et moi sommes allés chez Herrv pour mater des démos, jouer, boire, manger et surtout codouiller. C'est pas forcément très productif, mais ça nous permet surtout de nous motiver mutuellement, plutôt que d'hiberner chacun dans son coin (et question température, je sens qu'on va être servis sur Grenoble cette année). Sur IRC et MSN c'était le calme plat. Mis à part l'intervention éclairée de notre demi-dieu Gloky, on dirait que tous les Meujijis sont partis hiberner comme des marmottes.
Dès le départ, Shazz s'est rué sur le chinois à grands coups de couteau (c'est un gateau). On a couché une bouteille de vin de Savoie, histoire de se réchauffer les doigts. Les idées étaient bien claires pour commencer à coder. Le Vever a continué à coder son effet sur ST. Shazz et moi nous avons persévéré dans notre quête : prendre une musique YM capturée sur un ST et la faire rejouer à un CPC. Le tout en assembleur Z80 et sans utiliser les vecteurs système sinon c'est pas drôle. Le pire c'est qu'on y est arrivé, j'en reparlerai dans un autre billet. J'avais déjà touché à la programmation en assembleur 68000 sur ST mais jamais sur un Amstrad. On avait le manuel du Z80 d'un côté, la doc système sur le CPC de l'autre, et on codait sur l'émulateur WinAPE. Très bon émulateur, d'ailleurs, son assembleur et son debugger intégrés sont très efficaces, même pour des manches en Z80 comme nous.
11 réactions
1 De Toufou - 24/11/2008, 10:43
Bah non les MJJ ils hibernent pas mais il travaillent à la domination mondiale même le WE. Bon ok, j'hiberne aussi un peu mais chuut ;)
PS : Vever tiébô
2 De Shazz - 24/11/2008, 11:35
le Z80 c'est coooool :)
je suis pas sur que ce qu'on a écrit est tres academique... si c'est comme ca que l'ont doit faire (genre utiliser les opérations 16bits sur les adresses pour faire des calculs sur 16 bits) mais bon ca marche :)
Par contre si on a pas mal utilisé le registre indexé IX, pas encore le IY... on a du louper quelque chose :)
bon faudrait lire un bouquin sur le Z80 aussi :)
3 De frost - 24/11/2008, 12:43
J'ai hâte d'écouter et de voir ce que vous avez fait ! :-D
4 De Strider - 25/11/2008, 00:47
Shazz : je poserai la question sur un forum CPC, au pire on fera bien rigoler les vrai codeurs Z80 !
Frost : pour l'instant, tu ne rates pas grand chose ;-)
5 De Grim - 01/12/2008, 00:08
Généralement, on utilise les registres d'indexes IX et IY que lorsque c'est vraiment nécéssaire car toutes les instructions avec ces registres combinent toutes les tares, elles sont grosse_et_lente.
Un bon bouquin sur le Z80, il y'en a un indétronable, celui de Rodnay Zaks. Y'en a une version numérique (PDF) là :
http://www.grimware.org/doku.php/do...
Sinon en moins massif, il y'a un trés bon guide qui couvre les bases là :
http://users.hszk.bme.hu/~pg429/z80...
Bon courage :)
6 De Strider - 01/12/2008, 22:25
Merci Grim pour l'info !
Sur le 2eme, il y a des passages intéressants... comme celui qui montre comment faire de la copie brutale en RAM en seulement 3 instructions ;-)
7 De Grim - 03/12/2008, 08:40
Ha!Ha! En effet, les LDIR & co c'est un poil plus pratique que faire une boucle pour bouger des octets un par un :)
Faut zieuter la doc de Zilog sur le Z80, y'a la liste de toutes les instructions et ce qu'elles font. Ca donne une bonne vue d'ensemble du machin pour éviter de re-inventer la roue quand y'a une instruction qui existe déjà :)
Si t'as fait un peu d'asm 68k ça sera pas bien difficile passé ces quelques détails déroutants au début (par rapport à l'asm 68k) :
- Toute la syntaxe des instructions suit la logique "destination<-source". Par exemple LD A,B on met la valeur de B dans A.
- Le Z80 est little-endian. Tous les nombres 16bits manipulés par le CPU sont stockés avec l'octet de poid faible d'abord, puis le poid fort.
Voila voila, bon, alors y'a la musique qui fonctionne, manque plus que le scroll, les raster et c'est bon :)
8 De Templeton - 04/12/2008, 23:36
Avé les mjj !
Marrant votre délire sur l'amstrad avec le ym, avez vous réussi à jouer une musique munie d'une batterie digit ?
Sinon petite question pour strider le touche à tout ! Avais tu réussi à jouer un snd avec la librairie des reservoir gods ? Mes connaissances en c ne sont pas encore assez solide pour que je puisse l'exploiter... :/
Merci :)
9 De Strider - 07/12/2008, 14:56
Salut Templeton, pour ta première question non on ne joue pas les digits, on ne fait qu'envoyer des données sur les 3 canaux du chip sonore.
Et pour la librairie des RG, je ne l'ai pas utilisé pour rejouer des SNDH. Par contre la version disponible sur leur site est buggée (par exemple les exécutables affichent 4 bombes sur STF/STE, il faut au moins le TOS 2.06). Mais je sais qu'il existe une version plus récente, celle utilisée par Dma Sc pour son jeu Manical Drop. Je te conseille de demander cette version à leurs auteurs, soit sur le site officiel, soit sur le forum de DHS ou celui d'Atari-forum : http://www.atari-forum.com/viewforu...
Et bon courage pour arriver à les joindre ;-)
10 De Shazz - 08/12/2008, 14:40
Il est en sommeil ce blog !!!!
"Le pire c'est qu'on y est arrivé, j'en reparlerai dans un autre billet. " =D
11 De Templeton - 08/12/2008, 18:03
Merci pour les infos Strider ! :)
Ahhh la lib des RG...J'avais essayé il y a fort longtemps cette librairie, mais je n'avais jamais réussi à compiler un projet qui fonctionne à l'exécution. J'ai découvert la semaine dernière ( par hasard), qu'il s'agissait d'un problème de TOS... :/
Bref, du coup je m'étais rabattu sur la GLCB. Cette librairie propose des options moins puissantes(mais une doc en français), et comme je m'en sert juste pour les inits systems, c'était largement suffisant. :)
Autrement, n'hésitez pas à donner un coup de pied dans la fourmilière Amstrad pour la réveiller ! :D