Infos.txt Auteur :Plissken Date :25/02/02

        Bonjour,voici des informations concernant cette petite demo:l'ondulation
en haut de l'ecran n'est pas de moi,j'avais essaye de le faire mais mes essais
ne me donnait pas satisfaction,alors j'ai repris cette routine que j'ai trouve
dans amstrad cent pour cent numero 39,je l'ai etudier,puis rajoute a mon code.

        Je souhaite expliquer cette routine pour montrer que j'ai compris le
fonctionnement de la routine et que je suis capable de la refaire.

        Le principe de l'ondulation,dit aussi "screen waggle",est de changer
les valeurs contenues dans le registre 2 du crtc.Le registre 2 du crtc permet
d'indiquer au crtc le moment de l'impulsion Hsync,c'est a dire la
 synchronisation horizontale.En modifiant la valeur du registre 2,on change 
l'instant ou l'ecran va commencer,ce qui se traduit visuelement par un decalage
de l'ecran.
        
        Explication de la routine :on va changer la valeur du registre 2 du
crtc suivant une table de valeur et a l'aide d'un decalage du pointeur,ce qui
se traduira visuellement par une ondulation

        ld b,5
synchro djnz synchro      ;la boucle synchro nous permet d'etre synchronise avec
                          ;la HBL
        ld hl,color       ;HL pointe vers la table des couleurs 
var     ld de,ondul       :DE lui,pointe vers la table d'ondulation
        ld b,40           ;Nous souhaitons un raster de 40 lignes,donc on 
                          ;charge b avec le nombre de lignes desire,il nous
                          ;servira de compteur  
mloop                     ;
        push bc           ;on sauvegarde le contenu de b,car bc va nous servir
                          ;pour le raster
        ld bc,&7f04       ;c'est le crayon 4 qui va accueillir le raster
        out (c),c         ;on valide
        outi              ;on va afficher le raster avec des outi
           
        ld bc,&bc02       ;on va s'occuper du registre 2 du crtc
        out (c),c         ;on valide
        inc b             ;b contient &bd au lieu de &bc
        ld a,(de)         ;on met dans A la valeur de l'octet pointe par DE
        inc de            ;on incremente de
        out (c),a         ;on valide
        ld b,6            ;on continue la boucle jusqu'a ce que b=0        
tempo   djnz tempo
        pop bc            ;on ressort b de la pile
        djnz mloop        ;on decremente le contenu du registre b et on 
                          ;reboucle s'il n'est pas egal a 0
        ld bc,&7f01       ;
        out (c),c
        ld a,&5c
        out (c),c
        out (c),a
        ld bc,&bc02       ;on remet dans le registre 2 sa valeur normale
        out (c),c
        ld bc,&bd00+46
        out (c),c
        ld hl,(var+1)     ;on se deplace d'un cran dans la table d'ondulation
        inc hl            ;
varcom  ld a,1            ;
        dec a             ;a=a-1
        jp nz,noreset     ;si le contenu de a est 0 alors on va a noreset
                          ;qui remetra la valeur d'origine dans a
        ld a,30
        ld hl,ondulecran
noreset ld (varcom+1),a   ;on met la valeur de a dans varcom+1 :automodif
        ld (var+1),hl     ;on met dans var+1,le contenu de HL

ondulecran ;variable pour le registre 2 du crtc
defb 46,47,47,48,48,48
defb 49,49,49,49,48,48,48
defb 47,47,46,45,45,44
defb 44,44,43,43,43,43
defb 44,44,44,45,45
defb 46,47,47,48,48,48
defb 49,49,49,49,48,48,48
defb 47,47,46,45,45,44
defb 44,44,43,43,43,43
defb 44,44,44,45,45
defb 46,47,47,48,48,48
defb 49,49,49,49,48,48,48
defb 47,47,46,45,45,44
defb 44,44,43,43,43,43
defb 44,44,44,45,45
color ;couleur pour le raster dans le logo plissken
defb &5c,&4c,&5c,&4c,&4c
defb &4e,&4c,&4e,&4e,&4a
defb &4e,&4a,&4a,&43,&43
defb &43,&43,&4b,&43,&4b
defb &43,&43,&4a,&4a,&4e
defb &4b,&43,&4b,&43,&43
defb &4a,&4e,&4e,&4c,&4e
defb &4c,&4c,&5c,&4c,&54

      