Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

Debut en asm sur TO8
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=571
Page 4 sur 13

Auteur:  adnz [ 13 Jan 2020, 10:40 ]
Sujet du message:  Re: Debut en asm sur TO8

ok c'est bon

En faite même avec le message le "Binary Not Linear" à la compilation ça marche. (sur DCMOTO)

Auteur:  adnz [ 13 Jan 2020, 12:27 ]
Sujet du message:  Re: Debut en asm sur TO8

J'ai capté vers quel endroit ça plante sur un vrai TO8, car le programme se lance, execute le début des lignes puis plante .

Execution sur le vrai TO8 :

0 -ORG $8000
1 - une definition de toutes les palettes à un bleu. (ça je le vois car l'écran est bien le bleu que j'ai mis)
2 - JOYS EQU $E827
3 - ECRAN SET $0000
4 - Passage en mode 160x200x16c (#$7B -> $E7DC) jusque là ça marche car quant le bug apparait, je vois des pixels jaunes du bug en mode 160x200 !!!!

jusque là sûr ça marche je crois. puis après j'ai :

5 - Initialisation de la routine de commutation de page video (j'ai vu qu'on faisait comme cela !)
Code:
         LDB $6081
         ORB #$10
         STB $6081
         STB $E7E7
         CLR $616D

6 - init de la couleur de bordure (#$00 -> $E7DD)
7 - Definition de la palette de bonnes couleurs
etc...

donc ça dois planter vers 5 - 6 - 7 !

je vais faire plusieurs .bin en rajoutant chaque bloc de code pour voir !

Auteur:  Samuel Devulder [ 13 Jan 2020, 14:15 ]
Sujet du message:  Re: Debut en asm sur TO8

Un conseil: comme tu ne rends pas la main au basic, au tout début de ton programme, fais un "LDS #$8000", histoire d'être sur que la pile ne vient pas écraser ton programme.

Auteur:  adnz [ 13 Jan 2020, 14:19 ]
Sujet du message:  Re: Debut en asm sur TO8

YES HA HA !! vrai TO8

Bon en faite j'ai viré la partie routine de commutation de page video !
je pensais que c'été obligatoire

puis je fais même pas de CLEAR ! direct
loadm"pro.bin":exec&h8000

Image

Auteur:  adnz [ 13 Jan 2020, 14:35 ]
Sujet du message:  Re: Debut en asm sur TO8

Pour dire c'était des fous furieux avant ma parole, pour faire les jeux et les démos !

pas de kit de développement, juste avec la cartouche d'assembleur et aller hop ! :eek:

chapô moi j'dis. :jap:

Auteur:  Samuel Devulder [ 13 Jan 2020, 15:16 ]
Sujet du message:  Re: Debut en asm sur TO8

Pourquoi avant? On est toujours fous furieux de faire des trucs neufs sur ces machins complètements désuets que sont les Thomsons.

Bravo en tout cas pour le fonctionnement sur la vraie machine!

Auteur:  adnz [ 13 Jan 2020, 15:31 ]
Sujet du message:  Re: Debut en asm sur TO8

merci,

non mais moi dans mon style je suis déjà un furieux, mais si "vous" étiez pas là, j'aurais mis perpètre pour faire ça tout seul ;)

PS : En tous les cas, si y'a des choses qui bouge coté Thomson, j'offre mon savoir faire (graphisme 2d/3d ou music) pour y participer sans problème !
j'aimerais bien côtoyer des personnes qui ont le même kiff.

merci à tous... et je continu, aller hop à la suite.

Auteur:  adnz [ 15 Jan 2020, 04:19 ]
Sujet du message:  Re: Debut en asm sur TO8

j'ai besoin de faire varier le premier argument de LEAX

LEAX (-40*45),X

je fais comme ça pour que D soit une valeur negative ?

Code:
PSHS A,B,CC
LDA #40
LDB #45
MUL
PULS A,B,CC
LEAX  D,X-      ; ici c'est pareil que LEAX  (-40*45),X     ?? 

Auteur:  Samuel Devulder [ 15 Jan 2020, 08:39 ]
Sujet du message:  Re: Debut en asm sur TO8

Oulà non pas du tout. Déjà le PULS juste avant le LEAX restore D, ce qui veut dire que le calcul entre le PSHS et PULS est perdu dans la nature. Ensuite le mode d'adressage "D,X-" n'existe pas. Si tu veux une sorte de NEGD (D=-D), il faut faire:
Code:
  NEGA
  NEGB
  SBCA #0
Mais tout ca c'est compliqué. Pourquoi ne fais tu pas simplement "LEAX -40*45,X" ?

Auteur:  adnz [ 15 Jan 2020, 13:53 ]
Sujet du message:  Re: Debut en asm sur TO8

LEAX -40*45,X

car dans la partie remonte_decale je voulais faire varier le -40*45, le 45 est la hauteur du sprite
et en fonction du sprite bah, il varie

sinon je dois faire autant de routine que de different hauteur de sprite.

Auteur:  adnz [ 15 Jan 2020, 14:36 ]
Sujet du message:  Re: Debut en asm sur TO8

ou alors, je fais une MACRO de répétition, genre répète n fois LEAX 1,X

comme ça je fais répéter le nombre de fois que je veux

Auteur:  Samuel Devulder [ 15 Jan 2020, 14:41 ]
Sujet du message:  Re: Debut en asm sur TO8

Ben tu utilises le code que j'indiquais
Code:
   nega
   negb
   sbca #0
qui te permet de calculer "negD" (D=-D) juste avant le LEAX. Bref tu fait ton mul normalement, puis calcul D=(-D), puis LEAX D,X.
Code:
; supposons que B contienne la hauteur
   LDA  #40
   MUL
   NEGA
   NEGB
   SBCA  #0
   LEAX  D,X
Tu peux aussi utiliser la pile pour faire un SUBD à la valeur de X:
Code:
; supposons que B contienne la hauteur
   LDA  #40
   MUL
   STD ,--S
   TFR  X,D
   SUBD ,S++
   TFR  D,X

Après, comme tes sprites ont une hauteur propre spécifique à chacun, tu peux aussi stocker à coté des images pour chaque sprite, le décalage en mémoire vidéo associé sous forme d'une constante propre à chaque sprite. Ensuite ben quand tu dois remonter pour ce sprite, tu récupères cette constante, l'ajoute dans X, et bim! tu as remonté de la bonne quantité sans aucun calcul complexe.

Auteur:  adnz [ 15 Jan 2020, 14:46 ]
Sujet du message:  Re: Debut en asm sur TO8

ok je vois,

je peux utiliser D au lieu de A ou B ?

car A et B sont déja utilisé dans la routine, c'est pour ça que j'ai essayé d'utiliser PSHS A,B et PULS A,B
pour récupérer mon A et B pour que la routine continu

mais l'idée de mettre la valeur dans les datas du sprite me semble plus rapide pour l'execution.

ok je vais étudier ça.

meci

Auteur:  adnz [ 15 Jan 2020, 16:00 ]
Sujet du message:  Re: Debut en asm sur TO8

bon finalement j'ai fais comme ça :

Code:
            LDA #45                 * hauteur sprite
            STA sprite_height   * stock hauteur sprite

...

            PSHS A,B
            LDA  #40
            LDB  sprite_height
            MUL
            NEGA
            NEGB
            SBCA  #0
            LEAX  D,X
            PULS A,B



Auteur:  Samuel Devulder [ 15 Jan 2020, 16:12 ]
Sujet du message:  Re: Debut en asm sur TO8

adnz a écrit:
je peux utiliser D au lieu de A ou B ?

Heuu non. D n'est pas un registre indépendant, c'est la réunion des deux registres 8 bits A et B pour en faire un registre 16bits.

Page 4 sur 13 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/