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 

*****Vecteur bc26

 
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
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Jeu 6 Aoû - 13:21 (2015)    Sujet du message: *****Vecteur bc26 Répondre en citant

Tout le monde, ou presque, connait ce vecteur, voire son utilisation.  Il est utilisé pour calculer l'adresse de la prochaine ligne, dans l'utilisation de l'affichage de sprites, de window...
Voilà donc une interprétation rapide de la routine.


Code:
; mon bc26 / routine pour une adresse ecran comprise entre #c000 et #ffff
; in : hl=adresse ecran
; out : hl=nouvelle adresse
;
mybc26
             Ld a,h ; on récupère le contenu de h dans a
             Add a,8 ; on ajoute 8 pour passer à la ligne suivante
             Ld h,a ; on mets la nouvelle valeur dans h
             Ret nc ; on arrete ici s'il n'y a pas de depassement
             Ld bc,#c050 ; pour un ecran de 80 caractères
             Add hl,bc ; s'il y a dépassement on additionne #c050 à l'adresse.
             Ret











Dans le cas d'optisation extrême, on peut aussi utiliser les instructions set et res, qui permettent comme vous le savez de mettre un bit à 1 (set x,h) ou à 0 (res x,a), x étant ici le numéro de bit (0 à 7)


Je serais curieux de connaitre aussi votre vision du bc26, alors n'hésitez pas à compléter cet article.
_________________
Ast/iMP4CT

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


Revenir en haut
Publicité






MessagePosté le: Jeu 6 Aoû - 13:21 (2015)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
snake_plissken


Hors ligne

Inscrit le: 03 Déc 2014
Messages: 281
Localisation: les pont de cé

MessagePosté le: Mar 26 Juil - 08:44 (2016)    Sujet du message: *****Vecteur bc26 Répondre en citant

Et le vecteur qui fait l'inverse,c'est lequel déja ? BC27 ?

Tiens quelle routine proposerais tu pour ce cas ?


Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Mar 26 Juil - 09:48 (2016)    Sujet du message: *****Vecteur bc26 Répondre en citant

Bc29, of course...
_________________
Ast/iMP4CT

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


Revenir en haut
snake_plissken


Hors ligne

Inscrit le: 03 Déc 2014
Messages: 281
Localisation: les pont de cé

MessagePosté le: Mar 26 Juil - 10:07 (2016)    Sujet du message: *****Vecteur bc26 Répondre en citant

J'étais pas loin  Mort de Rire .

Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Mar 26 Juil - 10:19 (2016)    Sujet du message: *****Vecteur bc26 Répondre en citant

Une petite mise à jour s'imposant, j'ai décidé de vous faire partager ma dernière routine BC26. Cela pourrait être utile pour certains d'entre vous, non ?

Code:
; mon bc26 / routine pour une adresse ecran comprise entre #c000 et #ffff
; in : hl=adresse ecran
; out : hl=nouvelle adresse
;
mybc26
             Ld a,h ; on récupère le contenu de h dans a
             Add a,8 ; on ajoute 8 pour passer à la ligne suivante
             Ld h,a ; on mets la nouvelle valeur dans h
             Ret nc ; on arrete ici s'il n'y a pas de depassement
             Ld bc,#c050 ; pour un ecran de 80 caractères
             Add hl,bc ; s'il y a dépassement on additionne #c050 à l'adresse.
             Res 3,h    ; pour eviter le dépassement de la zone et faire une Raz de l'adresse ecran
             Ret






Pas trop compliqué ?

_________________
Ast/iMP4CT

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


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 15:47 (2017)    Sujet du message: *****Vecteur bc26

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 + 1 Heure
Page 1 sur 1

 
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