Amstrad Plus Index du Forum

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

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Re Débutant après 25 ans
Aller à la page: 1, 2  >
 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
zisquier


Hors ligne

Inscrit le: 18 Juin 2015
Messages: 42
Localisation: Caen

MessagePosté le: Ven 19 Juin - 18:22 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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
 


Revenir en haut
Publicité






MessagePosté le: Ven 19 Juin - 18:22 (2015)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 19 Juin - 18:39 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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...."


Revenir en haut
zisquier


Hors ligne

Inscrit le: 18 Juin 2015
Messages: 42
Localisation: Caen

MessagePosté le: Ven 19 Juin - 18:55 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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 ?


Revenir en haut
zisquier


Hors ligne

Inscrit le: 18 Juin 2015
Messages: 42
Localisation: Caen

MessagePosté le: Ven 19 Juin - 18:56 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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

Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 19 Juin - 19:46 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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...."


Revenir en haut
RaVe


Hors ligne

Inscrit le: 12 Fév 2015
Messages: 253

MessagePosté le: Ven 19 Juin - 20:31 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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


Revenir en haut
zisquier


Hors ligne

Inscrit le: 18 Juin 2015
Messages: 42
Localisation: Caen

MessagePosté le: Ven 19 Juin - 22:29 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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

Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 19 Juin - 22:34 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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...."


Revenir en haut
zisquier


Hors ligne

Inscrit le: 18 Juin 2015
Messages: 42
Localisation: Caen

MessagePosté le: Ven 19 Juin - 22:44 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 19 Juin - 22:48 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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...."


Revenir en haut
zisquier


Hors ligne

Inscrit le: 18 Juin 2015
Messages: 42
Localisation: Caen

MessagePosté le: Ven 19 Juin - 22:52 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 19 Juin - 22:56 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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

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


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 19 Juin - 23:00 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

zisquier a écrit:
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...."


Revenir en haut
zisquier


Hors ligne

Inscrit le: 18 Juin 2015
Messages: 42
Localisation: Caen

MessagePosté le: Ven 19 Juin - 23:34 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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

Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Sam 20 Juin - 00:00 (2015)    Sujet du message: Re Débutant après 25 ans Répondre en citant

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

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


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 05:38 (2017)    Sujet du message: Re Débutant après 25 ans

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Aller à la page: 1, 2  >
Page 1 sur 2

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com