Amstrad Plus Forum Index

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Re Débutant après 25 ans
Goto page: 1, 2, 3  >
 
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Gate Array
Previous topic :: Next topic  
Author Message
zisquier


Offline

Joined: 18 Jun 2015
Posts: 52
Localisation: Caen
Masculin
Point(s): 10
Moyenne de points: 0.19

PostPosted: Fri 19 Jun - 18:22 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Hello à tous Smile

Alors voilà, j'aurai aimé si c'est possible avoir quelque éclaircissement concernant la programmation sur CPC ?
Je m'explique, j'ai eu mon premier CPC à 10 ans et 3 ou 4 ans après je faisait des petits programmes moi même uniquement en Basic, genre
des répertoires, des petit jeu genre casse brique avec des caractère ASCII ou que je fabriquait avec "SYMBOLE" etc...
Je n'ai jamais touché à l'assembleur, car à l'époque les conseil prodigué par le Magazine amstrad 100% n'était pas compréhensible pour moi.

Aujourd'hui je ne suis pas sur de bien comprendre le rôle de l'assembleur face au rôle du programme en basic. Pour le Basic j'ai une petite idée de ce que l'on peut faire avec et de la logique qu'il demande, ça c'est comprit et aujourd'hui à 38 ans je me rappelle de cette logique.

Le truc c'est que j'ai du mal à éclaircir 2 points :

- Quel est le rôle de l'assembleur face au Basic ?
- Je me rappelle les centaines de ligne de code de DATA utiles à taper pour créer un jeu, mais avec le recul ces chiffre et lettre qui suivait DATA ont il un lien avec l'assembleur ? si oui lequel ?

J'utilise D.A.M.S depuis quelques heurs en essayant les exemples de code du manuel PDF, mais je n'y comprends absoluement rien, je trouve pas de logique, ni dedans ni d'équivalent au Basic pour faire le lien, et pire DIAM est très flou pour moi :/

Voilà merci pour votre aide
 


Back to top
Publicité






PostPosted: Fri 19 Jun - 18:22 (2015)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Fri 19 Jun - 18:39 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Attention, ne confonds pas Diams, la chanteuse avec Dams, l'assembleur/dessassembleur/debugguer/moniteur z80.
Avant toute chose, peux tu nous exposer ton idée/projet pour que nous puissions t'aider un peu?
Lancer Dams est une chose, comprendre ce que tu veux faire en est une autre.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
zisquier


Offline

Joined: 18 Jun 2015
Posts: 52
Localisation: Caen
Masculin
Point(s): 10
Moyenne de points: 0.19

PostPosted: Fri 19 Jun - 18:55 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Ce serai un peu trop tôt pour moi de parler réellement de projet, en fait je ne comprends que par la pratique d'exemple de ligne de code. "AH si on tape ça, ok, ça donne ça", à partir de là je pense pouvoir essayer de comprendre le "comment ça marche", sans sombrer dans quelque chose de flou ou trop théorique.

par exemple en Basic border 0 et hop le bord de l'écran sera noir, mais l'assembleur sert il aussi à cela ? y'a t'il un equivalent de code a taper dans DAMS ? Et est ce que cela sert à ça ou est ce que ce n'est pas le rôle de l'assembleur ?


Back to top
zisquier


Offline

Joined: 18 Jun 2015
Posts: 52
Localisation: Caen
Masculin
Point(s): 10
Moyenne de points: 0.19

PostPosted: Fri 19 Jun - 18:56 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

De plus j'arrive pas à utiliser DAMS, la notice est mal foutu ou c'est moi qui suis trop bête pour comprendre lol

Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Fri 19 Jun - 19:46 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Pour border 0, tu as 2 possibilitées en assembleur sur Cpc, une methode utilisant les vecteurs systèmes, et une autre utilisant directement le hard, le Gate Array. Voyons un peu les 2 :


Code:
         Org #a000 ; defini l'adresse de départ
                          
         ld bc,#0000 ; b=0 et c=0
         Call #bc38   ; appel du vecteur border (border b,c -> border 0,0)
;
         Ld a,1          ; definition Pen a
         Ld bc,#0300 ; b=3 et c=0
         Call #bc32    ; appel du vecteur ink (ink a,b,c -> ink 1,3,0)
         Ret







Voilà pour l'exemple utilisant les vecteurs systèmes.


Pour Dams (Ca devrait servir à Rave également), on charge. Ensuite, on appuie sur L comme listing, puis sur la fleche gauche.
Tu entres le programme plus haut. Tu valides chaque lignes avec entrée.
Une fois le listing entré, tu appuie 2x sur entrée pour revenir au moniteur.
Tu appuies sur A (pour assembler)
Puis B comme basic, et call &a000 pour executer ta routine.


Voilà.


J'ai aussi parlé du hard pour changer les couleurs en utilisant le Gate Array. Cela se fait via le port #7f...
Pour utiliser le gate array directement, il faut couper les interruptions du cpc via un DI. (Disable Interrupt)
La couleure noire a pour valeur #54.


En gros, cela donne :


Code:
          Di ; interdit les interruptions pour eviter le refresh des couleurs
          Ld bc,#7f10 ; b=#7f gate array, c=#10 border
          Ld a,#54     ; a=#54 -> couleur hard 0
          Out (c),c     ; selectionne border 
          Out (c),a.    ; envoie la valeur de a au border
....





Comme tu peux le voir dans cet exemple b pointe sur le gate array (#7f) et c varie de 0 a #f (15) sélection d'encre ou #10 (16) sélection du border.


C'est déjà un bon début pour commencer, non? A mon avis utilise les vecteurs systèmes pour commencer, c'est bien plus facile.


Ce que je pourrais te conseiller, c'est d'abord d'étudier les registres. Ils correspondent en quelque sorte à des variables.


On peut distinguer 2 sortes les registres 8 bits et les 16 bits.


Les registres 8 bits sont : a, b, c, d, e, h, l, ixh, ixl, iyh, iyl, i et r.
Les registres 16 bits sont : bc, de, hl, sp, ix et iy.


Pour résumer tout cela, si tu fais :


Code:
Ld hl,#1234





Le double registre HL est égal à #1234. On peut aussi dire que H=#12 et L=#34.




Allez zou.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
RaVe


Offline

Joined: 12 Feb 2015
Posts: 253
Masculin
Point(s): 0
Moyenne de points: 0.00

PostPosted: Fri 19 Jun - 20:31 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Salut 


Avant de vouloir utiliser Dams il te faut déjà comprendre le language machine et tu n'a pas d'autre solution que de bouquiner un peu.
Savoir comment la mémoire fonctionne la structure de l’écran  ect.... 
je ne te dis pas ceci pour te décourager car je suis comme toi aussi en pleine apprentissage .
Disons que de nos jours ont apprends pplus facilement car si ont a un soucis au peut se tourner vers une ame charitable sur le net 






Voici pour toi quelques livres pour débuter en assembleur.


https://mega.co.nz/#!rlQiCCIR!eXGExC2GfE-gXY7nMXl_m45Ex9KJEkiLgpSCs1fwCcQ


Back to top
zisquier


Offline

Joined: 18 Jun 2015
Posts: 52
Localisation: Caen
Masculin
Point(s): 10
Moyenne de points: 0.19

PostPosted: Fri 19 Jun - 22:29 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Whouaou ça servait à ça les Call ... je comprends mieux en fait ce que tu code en assembleur sert de sous-programme que tu apelle quand tu le souhaite par la fonction call ... je comprends mieux. En revanche DAMS ne fonctionne pas comme il le faudrait, des la saisie de la première ligne j'appuie sur Entrée, et Bam il me met le curseur entre le # et le a ..... incompréhensible

Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Fri 19 Jun - 22:34 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

J'espère qu'on aura le temps de se voir à la Reset, je passerais volontier un moment à te montrer.
Pour dams quand tu es en mode listing (L et ensuite fleche gauche), fais un espace quand tu tapes par ex :


Lancer dams.
L
Fleche gauche (tu es en mode listing)
Espace
Org #a000 (entree)
Espace
Ld bc,0
Espace
Etc...
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
zisquier


Offline

Joined: 18 Jun 2015
Posts: 52
Localisation: Caen
Masculin
Point(s): 10
Moyenne de points: 0.19

PostPosted: Fri 19 Jun - 22:44 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

oh purée ! fallait vraiment le savoir pour l'espace ! ça fonctionne ! merci Ast!!
Et Oui Rave je vais m'y interessé, je veut juste dégrossir un peu tout ça et voir où ça va, mais la nébuleuse s'estompe petit à petit avec votre aide merci! Smile


Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Fri 19 Jun - 22:48 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

L'espace, c'est le même problème que devait avoir Rave.... Bonne chance pour votre code...
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
zisquier


Offline

Joined: 18 Jun 2015
Posts: 52
Localisation: Caen
Masculin
Point(s): 10
Moyenne de points: 0.19

PostPosted: Fri 19 Jun - 22:52 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Ben oui tu m'étonne, c'est impossible à deviner, d'autant plus que c'ets pas marqué dans le manuel du soft :/
en tout cas je comprends mieux. merci Smile


Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Fri 19 Jun - 22:56 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

As-tu compris l'exemple du border ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Fri 19 Jun - 23:00 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

zisquier wrote:
Whouaou ça servait à ça les Call ... je comprends mieux en fait ce que tu code en assembleur sert de sous-programme que tu apelle quand tu le souhaite par la fonction call ... je comprends mieux. En revanche DAMS ne fonctionne pas comme il le faudrait, des la saisie de la première ligne j'appuie sur Entrée, et Bam il me met le curseur entre le # et le a ..... incompréhensible




Les call sont en fait les gosub du basic. Comme leur nom l'indique, ils appellent une routine (sous programme en langage machine) qui se termine à chaque fois par un Ret (return en basic)
....
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
zisquier


Offline

Joined: 18 Jun 2015
Posts: 52
Localisation: Caen
Masculin
Point(s): 10
Moyenne de points: 0.19

PostPosted: Fri 19 Jun - 23:34 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

oui oui tout a fait  la boucle Gosub -> return du basic ... Smile))  je vais regarder mes magazine amstrad 100% d'un autre oeil, je me souvient qui filait plein de routine en langague machine, c'est plus claire maintenant Smile

Back to top
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Sat 20 Jun - 00:00 (2015)    Post subject: Re Débutant après 25 ans Reply with quote

Si tu as d'autres questions.. Tu sais où me trouver.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
Display posts from previous:   
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Gate Array All times are GMT + 2 Hours
Goto page: 1, 2, 3  >
Page 1 of 3

 
Jump to:  

Index | Administration Panel | Create a forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group