CODINGSOURCES ★ Source &001 ★

FADEIN pour CPC+|hERMOL)Coding Sources

Voila 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 http://cpcrulez.fr

[next=coding_src]

★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tool:
» HERMOL  fadeinDATE: 2013-08-28
DL: 99 fois
TYPE: text
SIZE: 5Ko

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » RAMTEST and MACHINE TYPE routine (CPC Attack)
» Coding Src's » Graphic - Rainbow - Scape (Amstrad Computer User)
» Coding Src's » Turbodos (CPC Amstrad International)
» Coding Src's » Kursiv
» Coding Src's » Din A4 - Hardcopy Fuer Nlq 401 (CPC Amstrad International)
» Coding Src's » Graphic - Fractual Nebulae (Computing With the Amstrad)

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 058 millisecondes et consultée 740 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.