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,0HERMOL, 25 mai 2003 pour https://cpcrulez.fr ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 529 millisecondes et consultée 1811 foisL'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. |
|
|