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: 93
TYPE: ASM
SiZE: 6Ko
NOTE:

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

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

Lien(s):
» Coding Src's » Intro Musicale
» Coding Src's » Musithèque (Amstrad Magazine 13)
» Coding Src's » Amstrad's Folies
» Coding Src's » Sternenbrunnen (CPC Amstrad International)
» Coding Src's » Serpent
» Coding Src's » Donut multicolor (Amstrad Personal)
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.73-desktop
Page créée en 236 millisecondes et consultée 1904 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.