; http://www.cpcrulez.fr
; ; ; POUR LE SCROLL JE TE MET CELUI DE NDC 3 CAR IL EST TRES BIEN COMMENTE ; ET C'EST LE PLUS SIMPLE QUE TU PUISSES TROUVER ; ORG #a000 ; ; debut ; LD a,1 CALL #bc0e ;met ecran en mode 1 (facultatif) ; LD h,40 ;locate 40,1 (mode 1) ; ; pour mode 2 LD h,80 / pour mode 0 LD h,20 ; LD l,1 ; ; pour mettre le scrolling a un autre endroit sur l'ecran, changez le "LD l,1" ; ci-dessus par un "LD l,No de ligne", mais attention, ce n'est pas le seul ; truc a changer, tapez en BASIC PRINT HEX$(&C000+&50*No de ligne-1) ; exemple PRINT HEX$(&C000+&50*12) pour la 13eme ligne... ; le cpc va vous repondre une adresse qu'il faudra mettre plus loin dans ce ; listing, (8 lignes apres SCROLL), je vous y attend... ; CALL #bb75 ;locate ! LD hl,text1 ;hl pointe sur debut du texte ; prg LD a,(hl) ;prend lettre qu'il y a dans hl CP "#" JR nz,suite ;lettre prise = diese ? Si non, continu LD hl,text1 ;si oui, hl repointe sur le debut de la JR prg ;phrase (le message tourne en rond) ; suite CALL #bb5a ;affiche la lettre LD a,8 ;revient d'un chr en arriere (comme ca CALL #bb5a ;le suivant chr est a la meme place) ; CALL scroll ;decale le tout ! CALL scroll ;redecale (car mode 1= 2 pixels/lettre) ; ; pour le mode 1, faire 2 fois CALL scroll (c'est le cas ici), ; pour le mode 2, faire 1 fois CALL scroll, ; pour le mode 0, faire 4 fois CALL scroll. ; INC hl ;hl pointe sur lettre suivante ; CALL #bb1b ;touche presse ?? JR nc,prg ;sinon alors recommence ; RET ;si oui alors Byyye ! (retour basic) ; ; ; routine qui scroll les huit lignes (un chr$=8 lignes) ; scroll ; CALL #bd19 ;pause pour pas que le scroll LD bc,#105 ;ne bave et aille trop vite ; ; Attention suivant la ligne ou vous faites ce scrolling il se peut ; que le scroll bave, dans ce cas changez la ligne ci - dessus par soit ; LD bc,#005 ou LD bc,#205 ou LD bc,#305 etc...Si les symptomes persistent ; appellez votre revendeur Noix De Croco... ; tmp DJNZ tmp ;comme je disais donc, DEC c ;attend un peu JR nz,tmp ; PUSH hl ;sauve hl car on va le modifier ; LD b,8 ;huit lignes a scroller LD de,#c000 ;point de depart 1ere ligne ; ; VOILA ! C'est juste au-dessus que vous remplacez le "LD de,#C000" par ; l'adresse que vous avait donnee la ligne basic que j'ai cite. ; par exemple "LD de,#c050" ; bcl PUSH bc ;sauve compteur ; LD hl,#0001 ;hl = source = dest+1 ADD hl,de ;addition evite un Call #bc26 LD bc,79 ;79 octets a decaler PUSH de ;sauve destination LDIR ;scroll !! POP hl ;pop inverse evite un 'EX DE,HL' ; CALL #bc26 ;ligne suivante EX de,hl ;de=hl=dest POP bc ;reprend compteur de ligne DJNZ bcl ;si pas derniere ligne alors recomm ; POP hl ;reprend hl du debut RET ;fin scrolling ; text1 Db "Salut les copains,c" Db "a va ??? Moi, je suis l" Db "e scrolling de N.D.C, j" Db "e suis la pour raconter d" Db "es anneries.... Ba-bye..." Db "......" Db "#" |