CPC-POWER :
CPC-SOFTS
(Base de données) -
CPCArchives
(Articles) -
NGServers
(Hébergement)
Accueil
19765 PROGRAMMES
PROTECTIONS
Dumpeurs
9856 commentaires
Liens
Contact
Donations
FORUM
Session end : 12h00m00s
Hide picture Sexe : OFF
Donations 2025 : 721.79 €
19758
© _Public_Domain_ (
2025
)
 
Krovir
NOTICE / MANUAL
TXT (1)
NOTICE TEXTE n° 1 (2.62 Ko)
nolist SINEDATA equ &5200 VRAMLINES_C000 equ &5400 org &4000 run &4000 AMP equ 14 main: ; mode 0 xor a:call &bc0e di ld h,a ld de,889 ; AMP*&3f + AMP/2 (but winape fails this so I typed manually the value) ld bc,-AMP ld ix,SINEDATA + &80 singen xor a sub h ld (ix+0),a ld (ix-&80),h add hl,de ex de,hl add hl,bc ex de,hl inc ixl jr nz,singen ld hl,SINEDATA ld d,h:inc d:ld e,l ld bc,256 ldir ;init_vram: ; might be zero already from above ;;ld e,c:ld l,e ld h,d ;//VRAMLINES_C000/256 ; d happens to be &54 ld d,&C0:ld a,d ld b,32 rows25: ld c,8 lines8: ld (hl),e:inc h:ld (hl),d:dec h:inc l add 8:ld d,a dec c jr nz,lines8 sub 64:ld d,a ld a,e:add 64:jr nc,no256 inc d no256: ld e,a ld a,d dec b jr nz,rows25 ;call change_width_64 ld bc,&bc01:out (c),c:ld bc,&bd20:out (c),c ld bc,&bc02:out(c),c:ld bc,&bd2a:out(c),c ld ix,SINEDATA frame: ;call wait4vsync ; ld b,&f5 ; vsync0: ; in a,(c) ; rra ; jr c,vsync0 ; vsync1: ; in a,(c) ; rra ; jr nc,vsync1 autoM_crazy: ld hl,&c000 ld d,h:ld e,l:inc e ld bc,2047 ld (hl),l ldir ld a,(autoM_crazy+2):add 8 jr nz,oofaman ld a,&c0 oofaman: ld (autoM_crazy+2),a ld a,8 sinusoid: ex af,af' ld b,(ix+32) ld c,(ix+16) autoM_hah1: ld d,(ix+48) autoM_hah2: ld e,(ix+0) push ix call drawLine pop ix inc ixl ex af,af' dec a jr nz,sinusoid ld hl,autoM_hah1+2:inc (hl) ld hl,autoM_hah2+2:inc (hl) jr frame ; Bad line routine just to fit for size ;b,c,d,e (x0,y0,x1,y1) drawLine: ld a,d:sub b:ld d,a ; d = x1 - x0 ld a,e:sub c:ld e,a ; e = y1 - y0 or d:ret z ; if dx==dy==0 return ;inc b ;04 ;dec b ;05 ld hl,autoM_1:ld (hl),&04 bit 7,d jr z,noNegDx ld a,d:neg:ld d,a inc (hl) noNegDx: ;inc c ;0C ;dec c ;0D ld hl,autoM_2:ld (hl),&0C bit 7,e jr z,noNegDy ld a,e:neg:ld e,a inc (hl) noNegDy: ld ixh,0 ; remainder = 0 ld a,e:cp d jr c,dyNotOverDx ld ixh,e ; remainder = dy dyNotOverDx: ld ixl,d ; ix ld iyl,e ; iy lineLoopDy: lineLoopDx: ld a,ixh cp d jr nc,afterLineLoopDx add e:ld ixh,a ; remainder += dy call putBlockyPixel autoM_1: inc b dec ixl ret z jr lineLoopDx afterLineLoopDx: autoM_2: inc c call putBlockyPixel ld a,ixh:sub d:ld ixh,a ; remainder -= dx dec iyl jr nz,lineLoopDy ret putBlockyPixel: ld h,VRAMLINES_C000/256:ld l,c ld a,b:srl a:srl a:add (hl) inc h:ld h,(hl):ld l,a ld (hl),h ret list theEnd: nolist
CPC-POWER/CPCSOFTS
, programmation par
Kukulcan
© 2007-2025 tous droits réservés.
Reproduction sans autorisation interdite. Tous les titres utilisés appartiennent à leurs propriétaires respectifs.
Hébergement Web, Mail et serveurs de jeux haute performance