CODINGSOURCES ★ Source &001 ★

FADEIN pour CPC+ (hERMOL)Coding Sources
Voilà la 1ere routine, ( premiere d'une longue serie ? ca c'est à vous de me le dire ...), un petit effet de "FADEIN" utilisant les couleurs du CPC+

;
; Source pour MAXAM ? et l'assembleur de WinAPE par hERMOL
;
;org 10000
call CPCplusUnlock ;
;
ld bc,&7fb8 ; l'ASIC -> &4000-&7fff
out (c),c ;
;
call fadein ; routine
;
ld bc,&7fa0 ; ferme l'axc a l'ASIC
out (c),c ;
ret ; FINISH !!!
fadein:
ld hl,&6400 ; copie les couleurs ->
ld de,paletteINIT ; le buffer de travail
ld bc,&20 ; 16 + le border
ldir ;
ld b,16 ; travail avec 16 teintes
okaich: push bc ;
;
ld b,16 ; travail avec les 15 couleurs + le border
ld hl,paletteINIT ;
loopall: xor a ; le bas
cp (hl) ; poids ford + poids faible
jr z,deja0 ; a 0 ?
ld a,(hl) ; non, alors isole
and %00001111 ; les 4 bits droit
cp 0 ;
jr z,deja01 ; a 0 ?
dec a ; -1
ld c,a ;
deja01: ld a,(hl) ; le haut (4 bits de gauche)
and %11110000 ;
cp 0 ; a 0 ?
jr z,deja02 ; oui ...
rra ; non,
rra ; rotation de 4 bits
rra ; vers la droite
rra ; (thx to Targhan & Offset)
dec a ; -1
rla ; rotation de 4 bits
rla ; vers la gauche
rla ;
rla ;
deja02: add a,c ; poids fort + poids faible
ld (hl),a ; pose la modif
xor a ; a = 0
deja0: inc hl ; 2 eme octet de couleur
cp (hl) ;
jr z,deja1 ; a 0 ?
;
ld a,(hl) ; non
dec a ; -1
ld (hl),a ; pose la modif
;
xor a ; a = 0
;
deja1: inc hl ; prochaine couleur
;
djnz loopall ; loop si b>0
;
push hl ;
push bc ;
;
ld hl,paletteINIT ; modif la palette
call FixPalette ;
;
pop bc ;
pop hl ;
;
frame: LD B,#F5 ; call &bd19
IN A,(C) ;
RRA ;
JR NC,frame ;
;
pop bc ;
;
djnz okaich ; loop si b>0
;
ret ; finish
;;;;; HL = palette datas
FixPalette:
di ;
push hl ;
ld de,&6420 ; le border = ink 0,x
ld bc,2 ;
ldir ;
;
pop hl ;
ld de,&6400 ; les 15 encres
ld bc,15*2 ;
ldir ;
ei ;
ret ; return
;;; CPC Plus - debloque l'ASIC
CPCplusUnlock:
di
ld b,&BC
ld hl,Sequence
ld e,17
SeqLoop: ld a,(hl)
out (c),a
inc hl
dec e
jr nz,SeqLoop
ei
ret
Sequence db &FF,&00,&FF,&77,&B3,&51,&A8,&D4,&62,&39,&9C,&46,&2B
db &15,&8A,&CD,&EE
;;; Datas
paletteINIT dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

HERMOL, 25 mai 2003 pour https://cpcrulez.fr

Page précédente : Equalisers horizontal et vertical
★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tools:
» HERMOL  fadeinDATE: 1970-01-01
DL: 62
TYPE: ASM
SiZE: 6Ko
NOTE:

» HERMOL  fadeinDATE: 2013-08-28
DL: 282
TYPE: text
SiZE: 5Ko
NOTE:

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » .PT3 Player
» Coding » Crazy Screen (CPC Magazin)
» Coding Src's » Virages et loopings
» Coding Src's » Sound - Sound Advice (Popular Computing Weekly)
» Coding Src's » Balls in the Air
» Coding Src's » Fast - Clear (CPC Amstrad International)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 278 millisecondes et consultée 1794 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.