11219
DEMO -> Other
© _Public_Domain_ (2014)
 
 
 
Reset 18 - Twisty
cpc
 
 

Last Update : Wednesday 19 November 2014 at 17 h 12

MANUAL n° 1

1.99 Ko
Manual in ZIP format
Source

Manual n° 2

org &8000 sinepos:incbin "sin2.bin" bits: db %10000000;;yellow db %01000000 db %00100000 db %00010000 ;write direct ;run start ; start: ld a,1 call #bc0e di ; ld hl,0 xor a ld h,a ld l,a cl ld (hl),a inc l jr nz,cl inc h bit 7,h jr z,cl call initplot ld a,#c9 ld (#A000),a ld (#B000),a ;------------------------------------------------------- dotw: ld b,#f5 l7003 in a,(c) rra jr nc,l7003 v2 ld a,1 xor 1 ld (v2+1),a ld l,a ld h,0 add hl,hl ld bc,port_l add hl,bc ld a,(hl) inc hl ld bc,&bc0c;R12/R13 out (c),c ;ld a,%00010000;xxDD00AA inc b out (c),a ld bc,&bc0d out (c),c xor a inc b out (c),a ld a,(hl) ld iyh,a exx v1: ld hl,#B000 ld a,h xor #10 ld h,a ld (callv1+1),hl ld (v1+2),a exx xor a callv1: call &A000 ld a,(counter+1) add a,3 ld(counter+1),a; COUNTER=COUNTER+1 ;For Y=0 To 479;255 ld ixh,0;y twister ld h,sinepos/256 counter ld c,0 ; sv=s((y-counter)&255)*2 ld a,ixh sub c ld l,a ld a,(hl) add a,a ld b,a;ixl,a ; xx.b=s(255&(cc+y))+s(255&(dd+y)) ld a,ixh ccv1 add a,0 ld l,a ld c,(hl) ld a,ixh ddv1 add a,0 ld l,a ld a,c add a,(hl) ; sra a ; add a,#10 ld iyl,a ; x1=s((sv+counter)&255)+lCenterX ld c,#40 ld a,(counter+1) add a,b;ixl ld l,a ; ld e,(hl);x1 ld a,(hl) add a,h ld e,a ; x2=s((sv+counter+64)&255)+lCenterX ld a,l add a,c ld l,a ; ld d,(hl);x2 ld a,(hl) add a,h ld d,a ; x3=s((sv+counter+128)&255)+lCenterX ld a,l add a,c ld l,a ; ld b,(hl);x3 ld a,(hl) add a,h ld b,a ; x4=s((sv+counter+192)&255)+lCenterX ld a,l add a,c ld l,a ; ld c,(hl);x4 ld a,(hl) add a,h ld c,a ; If X2>X1 ; LineXY(x1,y,x2,y,RGB(SLICE,SLICE*0.5,SLICE*0.2)) ; EndIf ; ld a,d:cp e ; jr nc,test2 ld a,e cp d jr c,test2 ;-----------------------------plot here ; push de;plot x1,y ; ld a,e exx add a,iyl;xdisp01 add a,#0 ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx ;--------------- ; push de;plot x2,y ld a,d exx add a,iyl;xdisp02 add a,#0 ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx ; If X3>X2 ; LineXY(x2,y,x3,y,RGB(SLICE*0.5,SLICE*0.2,SLICE)) ; EndIf test2 ld a,d;b cp b;d jr c,test3 ; ld a,d exx add a,iyl ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx ;plot x3,y ld a,b exx add a,iyl;xdisp04; add a,#0 ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx ; If X4>X3 ; LineXY(x3,y,x4,y,RGB(SLICE*0.2,SLICE,SLICE*0.5)) ; EndIf test3;b=x3,c=x4,e=x1,d=x2 ld a,b;c cp c;b jr c,test4 ; ld a,b;plot x3,y exx add a,iyl;xdisp05 add a,#0 ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx ld a,c;plot x4,y exx add a,iyl;xdisp06 add a,#0 ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx ; If X1>X4 ; LineXY(x4,y,x1,y,RGB(SLICE*0.2,SLICE*0.5,SLICE)) ; EndIf test4;b=x3,c=x4,e=x1,d=x2 ld a,e cp c jr nc,test5 ld a,e;plot x1,y exx add a,iyl;xdisp07 add a,#0 ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx ld a,c;plot x4,y exx add a,iyl;xdisp08 add a,#0 ;a=X,D=Y push hl; store cls ld e,a ld a,ixh ld l,a ld h,#C0 ld c,(hl) inc h ld a,(hl) xor iyh ld b,a inc h ld l,0 ld d,l add hl,de add hl,de ld a,(hl) inc hl ld h,(hl) ld l,a add hl,bc;hl=Address ld d,#C5;bits/256 ; ld a,e ; and 3 ; ld e,a ld a,(de) or (hl) ld (hl),a ex de,hl pop hl ld (hl),#32 inc hl ld (hl),e inc hl ld (hl),d inc hl exx test5: ; Next Y inc ixh inc ixh ld a,ixh cp 200 jp nz,twister ld a,(ccv1+1) add a,3 ld (ccv1+1),a ld a,(ddv1+1) add a,-1 ld (ddv1+1),a exx ld (hl),#c9 inc hl exx jp dotw ;------------------------------------------------------------------------ initplot: ;--------------prepare lookup ld hl,&C000;clear memory push hl clm: ld (hl),0 inc hl bit 7,h jr nz,clm ;&4000,&4100 - Y, adresses pop hl;ld hl,&4000 ld de,&C004 ld b,200 lut1: ld (hl),e inc h ld (hl),d dec h ex de,hl call nline ex de,hl inc l djnz lut1 ;X (0,0,0,0)...(1,1,1,1) ld hl,&C200;inc h? ld e,l ld d,l;ld de,0 ld c,80 lut3; push bc;? ld b,4 lut4; ld (hl),e inc hl ld (hl),d inc hl djnz lut4 inc de pop bc dec c jr nz,lut3 ;--------------------------for plot----------------------- ld de,&C500 ld hl,bits push de ld bc,4 ldir pop hl cop ld a,(hl) ld (de),a inc e inc l jr nz,cop ret nline: ld a,8 add a,h ld h,a and 64 ret nz push bc ld bc,16304 sbc hl,bc pop bc ret port_l: ;for R12,paging,for adres db %00000000,&80;0000 db %00010000,&c0;4000 ; xxppBB00=r12,0=r13, 00-0,01=#4000


Goto Top
CPC-POWER/CPCSOFTS, programming by Kukulcan © 2007-2021 all rights reserved.
Reproduction forbidden without any express authorization. All the game titles used belong to their respective owners.
Hébergement Web, Mail et serveurs de jeux haute performance