home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fujiology Archive
/
fujiology_archive_v1_0.iso
/
!FALCON
/
LINEOUT
/
DELTA.ZIP
/
DELTASRC.ZIP
/
DELTA.SRC
/
MINIBLBS.SO
< prev
next >
Wrap
Text File
|
2003-01-01
|
20KB
|
1,156 lines
; Miniblobs in a 'starfield'.
; A screen for delta.
******** OBJECT EQUATES ********
PARTICLECOUNT: = 64
RSRESET
MiniBlobs.blob: RS.W 32*32
MiniBlobs.palette: RS.W 65536
MiniBlobs.buffer: RS.W 320*200
MiniBlobs.BLOCK_SIZE: RS.B 0
******** OBJECT TABLE ********
* Must be first in object!!
MiniBlobs.table:
DC.L MiniBlobs.mainLoop
DC.L MiniBlobs.init
DC.L rts
DC.L MiniBlobs.triggerBlobs
DC.L MiniBlobs.setFadeIn1
DC.L MiniBlobs.setFadeIn2
DC.L MiniBlobs.setFadeIn3
DC.L MiniBlobs.setAccelRot
DC.L MiniBlobs.setFade1
DC.L MiniBlobs.setFade2
DC.L MiniBlobs.setFade3
DC.L MiniBlobs.setFade4
* Add more addresses here..
DC.L 0
******** INIT SUBROUTINE ********
* OUTPUT: d0.l: 0 = All clear.
* neg = Error! Not initialized!
MiniBlobs.init:
move.l #MiniBlobs.BLOCK_SIZE,d0
bsr.l Mem.register
bsr.w MiniBlobs.initParticles
.success:
moveq #0,d0
rts
.error: moveq #-1,d0
rts
******** REALTIME INIT SUBROUTINE ********
MiniBlobs.realtimeInit:
bsr.l Mem.getBlock
move.l d0,MiniBlobs.baseAdr
lea MiniBlobs.flowTable,a1
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.palette,a0
bsr.l Pal.makeGradientHc
bsr.w MiniBlobs.setIntensity3
clr.w MiniBlobs.rotScalar
bsr.w MiniBlobs.setFade1
move.l #rts,MiniBlobs.fadeRout
move.w monitormode,d0
tst.w detail
beq.s .low
cmpi.w #vga60,d0
beq.s .setvga60hi
cmpi.w #vga100,d0
beq.s .setvga100hi
cmpi.w #rgb50,d0
beq.s .setrgb50hi
; Unknown monitormode..
rts
.low: cmpi.w #vga60,d0
beq.s .setvga60lo
cmpi.w #vga100,d0
beq.s .setvga100lo
cmpi.w #rgb50,d0
beq.s .setrgb50lo
rts
.setvga60hi:
move.l #vga60_16bit_320_200,MiniBlobs.resRout
rts
.setvga100hi:
move.l #vga100_16bit_320_200,MiniBlobs.resRout
rts
.setrgb50hi:
move.l #rgb50_16bit_320_200,MiniBlobs.resRout
rts
.setvga60lo:
move.l #vga60_16bit_160_200,MiniBlobs.resRout
rts
.setvga100lo:
move.l #vga100_16bit_160_100,MiniBlobs.resRout
rts
.setrgb50lo:
move.l #rgb50_16bit_320_100,MiniBlobs.resRout
rts
******** SCREENINIT SUBROUTINE ********
MiniBlobs.initScreen:
bsr.w MiniBlobs.clearBuffer
rts
******** MAINLOOP SUBROUTINE ********
MiniBlobs.mainLoop:
move.l frmcnt,d0
sub.l lastframecount,d0
bne.s .end_realtime_init
move.l d0,-(sp)
bsr.w MiniBlobs.realtimeInit
move.l (sp)+,d0
.end_realtime_init:
cmpi.l #3,d0
bhs.s .end_screeninit
bsr.w MiniBlobs.initScreen
.end_screeninit:
movea.l MiniBlobs.fadeRout,a0
jsr (a0)
bsr.w MiniBlobs.fadeBuffer
tst.w MiniBlobs.active
beq.s .end_add_blobs
bsr.w MiniBlobs.addBlobCircle
.end_add_blobs:
bsr.w MiniBlobs.paint
lea scr,a0
move.l (a0)+,d0
move.l (a0)+,d1
move.l (a0),-4(a0)
move.l d0,(a0)
move.l d1,-8(a0)
movea.l MiniBlobs.resRout,a0
suba.l a1,a1
movea.l d0,a2
.again: bsr.l Screen.requestUpdate
tst.l d0
bmi.s .again
clr.l MiniBlobs.resRout
rts
******** OBJECT SUBROUTINES ********
MiniBlobs.triggerBlobs:
not.w MiniBlobs.active
rts
MiniBlobs.setFadeIn1:
move.w $04BC.w,MiniBlobs.fadeStart
move.w MiniBlobs.intensity,MiniBlobs.oldIntensity
move.w #$100,MiniBlobs.fadeTime
move.w #8,MiniBlobs.endIntensity
move.l #MiniBlobs.fadeToIn,MiniBlobs.fadeRout
rts
MiniBlobs.setFadeIn2:
move.w $04BC.w,MiniBlobs.fadeStart
move.w MiniBlobs.intensity,MiniBlobs.oldIntensity
move.w #$100,MiniBlobs.fadeTime
move.w #64,MiniBlobs.endIntensity
move.l #MiniBlobs.fadeToIn,MiniBlobs.fadeRout
rts
MiniBlobs.setFadeIn3:
move.w $04BC.w,MiniBlobs.fadeStart
move.w MiniBlobs.intensity,MiniBlobs.oldIntensity
move.w #$800,MiniBlobs.fadeTime
move.w #4096,MiniBlobs.endIntensity
move.l #MiniBlobs.fadeToIn,MiniBlobs.fadeRout
rts
MiniBlobs.setIntensity1:
move.w #8,MiniBlobs.intensity
bsr.w MiniBlobs.calcBlob
rts
MiniBlobs.setIntensity2:
move.w #64,MiniBlobs.intensity
bsr.w MiniBlobs.calcBlob
rts
MiniBlobs.setIntensity3:
move.w #512,MiniBlobs.intensity
bsr.w MiniBlobs.calcBlob
rts
MiniBlobs.setAccelRot:
move.w $04BC.w,MiniBlobs.rotStart
move.w #1,MiniBlobs.rotScalar
rts
MiniBlobs.setFade1:
move.w #4,MiniBlobs.fadingSpeed
rts
MiniBlobs.setFade2:
move.w #3,MiniBlobs.fadingSpeed
rts
MiniBlobs.setFade3:
move.w #2,MiniBlobs.fadingSpeed
rts
MiniBlobs.setFade4:
move.w #1,MiniBlobs.fadingSpeed
rts
MiniBlobs.fadeToIn:
move.w $04BC.w,d0
sub.w MiniBlobs.fadeStart,d0
move.w MiniBlobs.endIntensity,d1
sub.w MiniBlobs.oldIntensity,d1
cmp.w MiniBlobs.fadeTime,d0
blt.s .continue
move.w MiniBlobs.fadeTime,d0
move.l #rts,MiniBlobs.fadeRout
.continue:
muls.w d0,d1
divs.w MiniBlobs.fadeTime,d1
move.w MiniBlobs.oldIntensity,d2
add.w d1,d2
move.w d2,MiniBlobs.intensity
bsr.w MiniBlobs.calcBlob
rts
MiniBlobs.initParticles:
lea MiniBlobs.particleTable,a0
move.l #$278e26fb,random
move.w #PARTICLECOUNT-1,d7
bmi.s .particles_done
.loop: move.l random,d0
move.w d0,(a0)+
swap d0
lsr.w #2,d0
addi.w #$4000,d0
move.w d0,(a0)+
Calc_NextRandom
dbf d7,.loop
.particles_done:
move.w #PARTICLECOUNT,MiniBlobs.particleCount
rts
MiniBlobs.calcBlob:
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.blob,a0
move.w MiniBlobs.intensity,d5
tst.w detail
bne.s MiniBlob.calcBlob32
MiniBlob.calcBlob16:
lea 16*16*2(a0),a2
move.l #2*8*8,d2
moveq #-8,d7
.yloop: moveq #-8,d6
.xloop: move.w d6,d0
muls.w d0,d0
move.w d7,d1
muls.w d1,d1
add.l d0,d1
move.l d2,d0
sub.l d1,d0
mulu.w d0,d0
lsr.l #8,d0
mulu.w d0,d0
divu.w d5,d0
move.w d0,(a0)+
addq.w #1,d6
blt.s .xloop
movea.l a0,a1
moveq #8-1,d6
.copyloop:
move.w -(a1),(a0)+
dbra d6,.copyloop
moveq #16-1,d6
.y_copyloop:
move.w (a1)+,-(a2)
dbra d6,.y_copyloop
addq.w #1,d7
blt.s .yloop
rts
MiniBlob.calcBlob32:
lea 32*32*2(a0),a2
move.l #2*16*16,d2
moveq #-16,d7
.yloop: moveq #-16,d6
.xloop: move.w d6,d0
muls.w d0,d0
move.w d7,d1
muls.w d1,d1
add.l d0,d1
move.l d2,d0
sub.l d1,d0
mulu.w d0,d0
lsr.l #8,d0
lsr.l #4,d0
mulu.w d0,d0
divu.w d5,d0
move.w d0,(a0)+
addq.w #1,d6
blt.s .xloop
movea.l a0,a1
moveq #16-1,d6
.copyloop:
move.w -(a1),(a0)+
dbra d6,.copyloop
moveq #32-1,d6
.y_copyloop:
move.w (a1)+,-(a2)
dbra d6,.y_copyloop
addq.w #1,d7
blt.s .yloop
rts
MiniBlobs.clearBuffer:
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.buffer,a0
move.w #320*200/32-1,d7
moveq #0,d0
.loop:
REPT 16
move.l d0,(a0)+
ENDR
dbra d7,.loop
rts
MiniBlobs.fadeBuffer:
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.buffer,a0
moveq #0,d0
move.w MiniBlobs.fadingSpeed,d2
move.w #$ffff,d3
lsr.w d2,d3
move.w d3,d4
swap d3
move.w d4,d3
tst.w detail
beq.s MiniBlobs.fadeLo
move.w #320*200/16-1,d7
.loop:
REPT 8
move.l (a0),d0
move.l d0,d1
lsr.l d2,d0
and.l d3,d0
sub.l d0,d1
move.l d1,(a0)+
ENDR
dbf d7,.loop
rts
MiniBlobs.fadeLo:
move.w #160*100/16-1,d7
.loop:
REPT 8
move.l (a0),d0
move.l d0,d1
lsr.l d2,d0
and.l d3,d0
sub.l d0,d1
move.l d1,(a0)+
ENDR
dbf d7,.loop
rts
MiniBlobs.addBlobCircle:
move.w MiniBlobs.particleCount,d7
ble .end
subq.w #1,d7
lea sine_tbl,a6
lea MiniBlobs.particleTable,a5
move.w $4bc.w,d5
; Calculate middle.
move.w d5,d0
move.w d0,d1
mulu.w #3,d1
lsr.l #2,d1
Do_SinModulo d0
Do_SinModulo d1
Get_Sin a6,d0,d0
Get_Sin a6,d1,d1
asr.w #8,d0
asr.w #1,d0
asr.w #8,d1
asr.w #2,d1
tst.w detail
bne MiniBlobs.addHi
; Low detail..
addi.w #80-8,d0
addi.w #50-8,d1
movem.w d0/d1,.xmid
.loop: move.w (a5)+,d0
move.w d5,d1
sub.w MiniBlobs.rotStart,d1
mulu.w MiniBlobs.rotScalar,d1
mulu.w d1,d1
lsr.l #8,d1
add.w d1,d0
move.w (a5)+,d2
Do_SinModulo d0
Get_SinCos a6,d0,d0,d1
mulu.w d5,d2
lsr.l #8,d2
andi.w #$7fff,d2
muls.w d2,d0
muls.w d2,d1
swap d0
swap d1
moveq #50,d4
muls.w d4,d0
muls.w d4,d1
moveq #13,d4
asr.l d4,d0
asr.l d4,d1
add.w .xmid(pc),d0
add.w .ymid(pc),d1
move.w d7,-(sp)
bsr.w MiniBlobs.addBlob16
move.w (sp)+,d7
dbra d7,.loop
.end: rts
.xmid: DC.W 0
.ymid: DC.W 0
; High detail..
MiniBlobs.addHi:
addi.w #160-16,d0
addi.w #100-16,d1
movem.w d0/d1,.xmid
.loop: move.w (a5)+,d0
move.w d5,d1
sub.w MiniBlobs.rotStart,d1
mulu.w MiniBlobs.rotScalar,d1
mulu.w d1,d1
lsr.l #8,d1
add.w d1,d0
move.w (a5)+,d2
Do_SinModulo d0
Get_SinCos a6,d0,d0,d1
mulu.w d5,d2
lsr.l #8,d2
andi.w #$7fff,d2
muls.w d2,d0
muls.w d2,d1
swap d0
swap d1
moveq #50,d4
muls.w d4,d0
muls.w d4,d1
moveq #12,d4
asr.l d4,d0
asr.l d4,d1
add.w .xmid(pc),d0
add.w .ymid(pc),d1
move.w d7,-(sp)
bsr.s MiniBlobs.addBlob32
move.w (sp)+,d7
dbf d7,.loop
.end: rts
.xmid: DC.W 0
.ymid: DC.W 0
; INPUT:
; d0.w: x
; d1.w: y
MiniBlobs.addBlob32:
movea.l MiniBlobs.baseAdr,a1
adda.l #MiniBlobs.blob,a1
cmpi.w #320-32+1,d0
bhs.s MiniBlobs.addClippedBlob
cmpi.w #200-32+1,d1
bhs.s MiniBlobs.addClippedBlob
mulu.w #320,d1
add.w d0,d1
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.buffer,a0
lea (a0,d1.l*2),a0
lea 31*320*2(a0),a2
lea 32*2(a0),a3
lea 32*2(a2),a4
moveq #16-1,d7
.yloop: moveq #16/2-1,d6
.xloop: move.l (a1)+,d0
add.l d0,(a0)+
add.l d0,(a2)+
swap d0
add.l d0,-(a3)
add.l d0,-(a4)
dbra d6,.xloop
lea 16*2(a1),a1
lea (320-16)*2(a0),a0
lea (320+16)*2(a3),a3
lea -(320+16)*2(a2),a2
lea (16-320)*2(a4),a4
dbra d7,.yloop
rts
MiniBlobs.addClippedBlob:
; Check and possibly clip the x stuff.
moveq #32-1,d4
suba.l a4,a4
cmpi.w #-32,d0
ble .end
tst.w d0
bpl.s .test_x_right
move.w d0,d2
add.w d2,d4
neg.w d2
adda.w d2,a1
adda.w d2,a1
movea.w d2,a4
moveq #0,d0
bra.s .end_test_x
.test_x_right:
cmpi.w #320-32,d0
ble.s .end_test_x
cmpi.w #320,d0
bge.s .end
move.w d0,d2
subi.w #320-32,d2
sub.w d2,d4
movea.w d2,a4
.end_test_x:
; Check and possibly clip the y stuff.
moveq #32-1,d7
cmpi.w #-32,d1
ble.s .end
tst.w d1
bpl.s .test_y_bottom
move.w d1,d2
lsl.w #6,d2
suba.w d2,a1
add.w d1,d7
moveq #0,d1
bra.s .end_test_y
.test_y_bottom:
cmpi.w #200,d1
bge.s .end
cmpi.w #200-32,d1
ble.s .end_test_y
move.w d1,d2
subi.w #200-32,d2
sub.w d2,d7
.end_test_y:
IFNE 0
cmpi.w #320,d0
bhs.s .end
cmpi.w #200,d1
bhs.s .end
cmpi.w #32,d7
bhs.s .end
cmpi.w #32,d4
bhs.s .end
cmpa.w #31,a4
bhs.s .end
ENDC
; d0.w = x [0..319]
; d1.w = y [0..199]
; d4.w = width-1 [0..31]
; d7.w = height-1 [0..31]
; a1 = blob data
; a4 = blob x offset [0..31]
adda.l a4,a4
movea.w #(320-32)*2,a3
adda.l a4,a3
mulu.w #320,d1
add.w d0,d1
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.buffer,a0
lea (a0,d1.l*2),a0
; d4.w = width-1
; d7.w = heigth-1
; a0 = buffer + position
; a1 = blob data
; a3 = line increment [320-32..319]*2
; a4 = blob x offset [0..31]*2
.yloop: move.w d4,d6
.xloop: move.w (a1)+,d0
add.w d0,(a0)+
dbra d6,.xloop
adda.l a3,a0
adda.l a4,a1
dbra d7,.yloop
.end: rts
; INPUT:
; d0.w: x
; d1.w: y
MiniBlobs.addBlob16:
movea.l MiniBlobs.baseAdr,a1
adda.l #MiniBlobs.blob,a1
cmpi.w #160-16+1,d0
bhs.s MiniBlobs.addClippedBlob16
cmpi.w #100-16+1,d1
bhs.s MiniBlobs.addClippedBlob16
mulu.w #160,d1
add.w d0,d1
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.buffer,a0
lea (a0,d1.l*2),a0
lea 15*160*2(a0),a2
lea 16*2(a0),a3
lea 16*2(a2),a4
moveq #8-1,d7
.yloop: moveq #8/2-1,d6
.xloop: move.l (a1)+,d0
add.l d0,(a0)+
add.l d0,(a2)+
swap d0
add.l d0,-(a3)
add.l d0,-(a4)
dbf d6,.xloop
lea 8*2(a1),a1
lea (160-8)*2(a0),a0
lea (160+8)*2(a3),a3
lea -(160+8)*2(a2),a2
lea (8-160)*2(a4),a4
dbf d7,.yloop
rts
MiniBlobs.addClippedBlob16:
; Check and possibly clip the x stuff.
moveq #16-1,d4
suba.l a4,a4
cmpi.w #-16,d0
ble .end
tst.w d0
bpl.s .test_x_right
move.w d0,d2
add.w d2,d4
neg.w d2
adda.w d2,a1
adda.w d2,a1
movea.w d2,a4
moveq #0,d0
bra.s .end_test_x
.test_x_right:
cmpi.w #160-16,d0
ble.s .end_test_x
cmpi.w #160,d0
bge.s .end
move.w d0,d2
subi.w #160-16,d2
sub.w d2,d4
movea.w d2,a4
.end_test_x:
; Check and possibly clip the y stuff.
moveq #16-1,d7
cmpi.w #-16,d1
ble.s .end
tst.w d1
bpl.s .test_y_bottom
move.w d1,d2
lsl.w #5,d2 ; *16*2
suba.w d2,a1
add.w d1,d7
moveq #0,d1
bra.s .end_test_y
.test_y_bottom:
cmpi.w #100,d1
bge.s .end
cmpi.w #100-16,d1
ble.s .end_test_y
move.w d1,d2
subi.w #100-16,d2
sub.w d2,d7
.end_test_y:
IFNE 0
cmpi.w #160,d0
bhs.s .end
cmpi.w #100,d1
bhs.s .end
cmpi.w #16,d7
bhs.s .end
cmpi.w #16,d4
bhs.s .end
cmpa.w #15,a4
bhs.s .end
ENDC
; d0.w = x [0..159]
; d1.w = y [0..99]
; d4.w = width-1 [0..15]
; d7.w = height-1 [0..15]
; a1 = blob data
; a4 = blob x offset [0..15]
adda.l a4,a4
movea.w #(160-16)*2,a3
adda.l a4,a3
mulu.w #160,d1
add.w d0,d1
movea.l MiniBlobs.baseAdr,a0
adda.l #MiniBlobs.buffer,a0
lea (a0,d1.l*2),a0
; d4.w = width-1
; d7.w = heigth-1
; a0 = buffer + position
; a1 = blob data
; a3 = line increment [160-16..159]*2
; a4 = blob x offset [0..15]*2
.yloop: move.w d4,d6
.xloop: move.w (a1)+,d0
add.w d0,(a0)+
dbf d6,.xloop
adda.l a3,a0
adda.l a4,a1
dbf d7,.yloop
.end: rts
MiniBlobs.paint:
movea.l scr,a0
movea.l MiniBlobs.baseAdr,a1
adda.l #MiniBlobs.buffer,a1
movea.l MiniBlobs.baseAdr,a2
adda.l #MiniBlobs.palette,a2
clr.l d0
tst.w detail
bne.w MiniBlobs.paintHiRes
move.w monitormode,d1
cmpi.w #vga60,d1
beq.s MiniBlobs.paintVga60
cmpi.w #vga100,d1
beq.s MiniBlobs.paintVga100
cmpi.w #rgb50,d1
beq.w MiniBlobs.paintRgb50
rts
MiniBlobs.paintVga100:
move.w #160*100/16-1,d7
.loop:
REPT 16
move.w (a1)+,d0
move.w (a2,d0.l*2),(a0)+
ENDR
dbf d7,.loop
rts
MiniBlobs.paintVga60:
movea.w #160*2,a6
lea (a0,a6.l),a3
moveq #100-1,d7
.yloop: moveq #160/16-1,d6
.xloop:
REPT 16
move.w (a1)+,d0
move.w (a2,d0.l*2),(a0)+
move.w (a2,d0.l*2),(a3)+
ENDR
dbf d6,.xloop
adda.l a6,a0
adda.l a6,a3
dbf d7,.yloop
rts
MiniBlobs.paintRgb50:
move.w #160*100/16-1,d7
.loop:
REPT 16
move.w (a1)+,d0
move.w (a2,d0.l*2),(a0)
move.w (a0)+,(a0)+
ENDR
dbf d7,.loop
rts
MiniBlobs.paintHiRes:
move.w #320*200/16-1,d7
.loop:
REPT 16
move.w (a1)+,d0
move.w (a2,d0.l*2),(a0)+
ENDR
dbf d7,.loop
rts
******** OBJECT DATA ********
DATA
MiniBlobs.flowTable:
DC.W 256 (.end-.start)/4
DC.W 7
.start: DC.L $00000000
DC.L $3f000000
DC.L $7f000000
DC.L $bf000000
DC.L $ff000000
DC.L $ff000000
DC.L $ff000000
DC.L $ff000000
DC.L $ff3f0000
DC.L $ff7f0000
DC.L $ffbf0000
DC.L $ffff003f
DC.L $ffff007f
DC.L $ffff00bf
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $ffff00ff
DC.L $efef00ef
DC.L $dfdf00df
DC.L $cfcf00cf
DC.L $bfbf00bf
DC.L $afaf00af
DC.L $9f9f009f
DC.L $8f8f008f
DC.L $7f7f007f
DC.L $6f6f006f
DC.L $5f5f005f
DC.L $4f4f004f
DC.L $3f3f003f
DC.L $2f2f002f
DC.L $1f1f001f
DC.L $0f0f000f
DC.L $00000000
DC.L $00000000
DC.L $00000000
DC.L $00000000
.end:
MiniBlobs.active:
DC.W $ffff
******** OBJECT RESERVES ********
BSS
MiniBlobs.baseAdr:
DS.L 1
MiniBlobs.resRout:
DS.L 1
MiniBlobs.particleCount:
DS.L 1
MiniBlobs.particleTable:
DS.W 2*PARTICLECOUNT
MiniBlobs.oldIntensity:
DS.W 1
MiniBlobs.fadeStart:
DS.W 1
MiniBlobs.endIntensity:
DS.W 1
MiniBlobs.rotStart:
DS.W 1
MiniBlobs.fadeTime:
DS.W 1
MiniBlobs.fadingSpeed:
DS.W 1
MiniBlobs.intensity:
DS.W 1
MiniBlobs.rotScalar:
DS.W 1
MiniBlobs.fadeRout:
DS.L 1
******** END OF DEMO-EFFECT OBJECT ********