home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fujiology Archive
/
fujiology_archive_v1_0.iso
/
!FALCON
/
AGGRESSN
/
MOTION.ZIP
/
MOTION
/
DSP
/
ROMEO9.S56
< prev
next >
Wrap
Text File
|
1995-04-14
|
5KB
|
272 lines
;---------------------------------------------------------------
; Julia estimate-render by WizTom.. (could be faster the light ~3 vbl...)
;---------------------------------------------------------------
; 256*128 mirror, pix/w (x-y)
; faster calc..
PBC equ $ffe0
HSR equ $ffe9
HTX equ $ffeb
org p:$0
jmp start
; org p:$40
dc 0,0,0,0,0,0,0,0,0,0
dc 0,0,0,0,0,0,0,0,0,0
dc 0,0,0,0,0,0,0,0,0,0
dc 0,0,0,0,0,0,0,0,0,0
dc 0,0,0,0,0,0,0,0,0,0
dc 0,0,0,0,0,0,0,0,0,0
dc 0,0
start
; jmp burn_silicon
secure movep #1,X:PBC
jclr #0,x:HSR,secure
move x:HTX,a
lsl a
movep #0,x:$fffe ;port a (luku tahtoo tökkiä ilman..)
secure2 jclr #1,X:HSR,secure2
move a1,X:HTX
start2
move #$ffff,m0
move #$ffff,m1
move #$3fff,m2 ;rajaa x/y gfx blokit..
move #$ffff,m3
move #$ffff,m4
move #$ffff,m5
move #$ffff,m6
move #$ffff,m7
move #>128,x0
move x0,x:midtab
move #>256*128,x0
move x0,x:midtab+1
move #>$ffff00,x0
move x0,x:midtab+2
move #>120,x0
move x0,x:midtab+3
;---------------
jsr get_cords
jsr burn_silicon
jsr write_gfx
jmp start2
;---------------------------------------------------
get_cords
l1 movep #1,X:PBC ;feed x
jclr #0,x:HSR,l1
move x:HTX,x0
move x0,x:vakio
l2 movep #1,X:PBC ;feed x
jclr #0,x:HSR,l2
move x:HTX,x0
move x0,x:vakio+1
rts
;-------------------------------------------------
write_gfx
move #64*256,x0
move #0,x1
do x0,l4
l3 jclr #1,X:HSR,l3
move x:(r7),X:HTX
move x1,x:(r7)+
nop
l4
move #0,r7
do x0,l6
l5 jclr #1,X:HSR,l5
move y:(r7),X:HTX
move x1,y:(r7)+
nop
l6
rts
;---------------------------------------------------------
burn_silicon
move #>4,n6
move #vakio,r5
move #$000001,x0 ;+2
move x0,x:base_y
move #$800001,x0 ;-2
move x0,x:base_x
do #128,loopy
do #256,loopx
move #0,r0 ;iter count
move x:base_x,a ;load base
move x:base_y,b
move #cheat,r1
move #midtab,r6
do #120,iter
;------------
andi #$bf,ccr ;clear limit
move a,x0 ;old z
move b,y0
jls g_out
tst b x:(r6)+,x1
jpl no_mirror
neg a
neg b a,x0
move b,y0
no_mirror
move x1,a
mac x1,x0,a x:(r6)+,x1 ;x*128+128
mpy x1,y0,b x:(r6)+,x1 ;y*256*128
and x1,b a1,x1 ;mask y
add x1,b x:(r6)+,x1 ;120>x1
move b1,r2
move b1,x:(r1)+ ;write cords to cheat
jset #13,r2,ram_X
move x:(r2),a
ram_y
tst a (r0)+ ;inc iter
jeq not_ready
cmp x1,a ;fillataanko x0:lla kaikki?
jeq found_joukko
jmp found_color
ram_x move y:(r2),a
jmp ram_Y
not_ready
mpy x0,x0,b
mac y0,y0,b b,a ;x^2+y^2 > 4 ?
jec not_out
enddo
jmp exit
not_out
mac -y0,y0,a (r6)-n6
asl a
mpy x0,y0,b X:(r5)+,x0
add x0,a ;x*x-y*y+c
asl b
asl b x:(r5)-,x0
add x0,b ;x*y*2+ci (kertaa 2!!!)
iter
;--------------------
;joukossa
move #cheat,r7
move #>120,x1
move x:(r7)+,r2 ;alkulista, (vikat epävarmoja..)
do #120-60,fill_gfx ;fillaa max:illa
jset #13,r2,ram_x2
move x1,x:(r2)
ram_y2
move x:(r7)+,r2
nop
nop
fill_gfx
jmp nextpiste
ram_x2
move x1,y:(r2)
jmp ram_y2
;---------------
found_joukko
enddo
move x:-(r1),r2
do r0,fill_full
jset #13,r2,ram_x3
move x1,x:(r2)
ram_y3
move x:-(r1),r2
nop
nop
fill_full
jmp nextpiste
ram_x3
move x1,y:(r2)
jmp ram_y3
;---------------
found_color
enddo
move a1,r7
move x:-(r1),r2
do r0,fill_color
jset #13,r2,ram_x4
move r7,x:(r2)
ram_y4
move x:-(r1),r2
move (r7)+
nop
fill_color
jmp nextpiste
ram_x4
move r7,y:(r2)
jmp ram_y4
;---------------
g_out
enddo
move #2,r7 ;color
move x:-(r1),r2 ;skriivaa vikasta alkuun
do r0,slide2
jset #13,r2,ram_x5
move r7,x:(r2)
ram_y5
move x:-(r1),r2 ;skriivaa vikasta alkuun
move (r7)+
nop
slide2
jmp nextpiste
ram_x5
move r7,y:(r2)
jmp ram_y5
;-------------------
exit ;fillaa listasta slide
move #1,r7 ;color
move x:-(r1),r2 ;skriivaa vikasta alkuun
do r0,slide
jset #13,r2,ram_x6
move r7,x:(r2)
ram_y6
move x:-(r1),r2 ;skriivaa vikasta alkuun
move (r7)+
nop
slide
jmp nextpiste
ram_x6
move r7,y:(r2)
jmp ram_y6
;-------------
nextpiste
move #$00ffff,x0
move x:base_x,a
add x0,a
move a1,x:base_x
loopx
move #$800001,x0
move x0,x:base_x
move #$00ffff,x0
move x:base_y,a
add x0,a
move a1,x:base_y
loopy
rts
;---------------------------------------------------------
org x:$4000
spare ds 1
midtab ds 4
base_x ds 1
base_y ds 1
vakio ds 2 ;c,ci
cheat ds 128 ;mid-iter table (x,y1)
end