home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Amiga Demo Collection
/
TheAmigaDemoCollectionCDCUE.img
/
S
/
showtime05
/
Bonus
/
BScreen.lha
/
Blitterscreen
/
main.asm
< prev
next >
Wrap
Assembly Source File
|
1992-12-20
|
8KB
|
205 lines
opt d-,l-,c+ ;remove this if tou don't use Devpac
include 'general.i' ;my set of macros
include 'startup2.i' ;the startup code
START
lea.l $dff000,a6 ;I use this here ever
*---
* Do your personal modify to coplist BEFORE call BScreenInit,
* cause this is not the real coplist but just an header that will
* be copied in chip mem and modified.
lea.l Palette,a0 ;just set the palette in coplist
lea.l BScreenCoplist_color,a1
move.l #256,d0
bsr SetPalette
*---
*Remember to activate at least all this DMAs
move.w #$83e0,$096(a6) ;mast,bpl,cop,blit,spr
move.w #$7fff,$09a(a6) ;deactivate interrupts
move.w #$7fff,$09c(a6) ;kill survivors
*---
*Call to Inizialization Routine
bsr BScreenInit ;create coplist
*---
* VERY IMPORTANT Set the screen to be used by the interrupt lev 3 routine
* By changing this you can perform double buffering.
move.l #MyScreen,BScreenCurrentScreen
*---
* The coplist will be started by the Interrupt routine
* V.I. set Interrupt vector and activate bits
move.l BaseVBR,a0
move.l #BScreenInt3,$06c(a0) ;interrupt routine in 'BScreenInt3.i'
move.w #$c060,$09a(a6) ;activate Blitter e VB intreq
*---
*Convert my image
lea.l Chunky,a0 ;Chunky image to convert
lea.l MyScreen,a1 ;Destination screen
bsr BScreenConvert ;Conversion
*---
*Here we wait for BScreen to finish
bsr BScreenWait
*OK, now you can call BScreenReStart to convert again the same Chunky screen
*in the same planar screen, but isn't good for double buffering.
*Remember in any case to use BScreenWait first.
LMB ;just wait for LeftMouse Button
END
rts
*********End Main*********************
*********************************
* Some datas in fast mem
include 'BScreen.i' ;<----include these to use BScreen
include 'BScreenInt3.i' ;<---/
include 'SetPalette.i' ;my proc to set the palette in coplist
WaitLine_def ;macro to define WaitLine function
Palette include 'lakestar.pal' ;Palette of the picture
*******************************
SECTION BSSFast,BSS
BScreenList ds.b 40*1024 ;buffer for Blitter programmation
*******************************
SECTION BSSChip,BSS_C
cnop 0,8
MyScreen ds.b BScreenPlaneSize*4
BScreenBuffer ds.b BScreenChunkySize/2
BScreenScrambleBuffer ds.b BScreenChunkySize
BScreenSpriteBuffer0 ds.b (312*8*2)*8
BScreenSpriteBuffer1 ds.b (312*8*2)*8
BScreenCoplist0 ds.b 8096
BScreenCoplist1 ds.b 8096
*******************************
SECTION DatiChip,DATA_C
;IMAGE TO CONVERT
;MUST be in chip mem
Chunky incbin 'LakeStar160x128.raw' ;in 8 bit Chunky Mode
****** ;THE COPPERLIST
BScreenCoplist
dc.l $01fc400f ;fmode=3 ;SPRfmode=3 ; 2x2: SCANDOUBLE planes
dc.l $00968100 ;plane dma on line 0
dc.l $01000211,$01020000 ;LORES 8 planes, ECS on for bblank
dc.l $0104003f ;$104 sprite priority!
dc.l $01060020 ;$1060020: bblank
dc.l $010c00ff ;$10c:<--- SELECT HERE THE SPRITE COLORBANK!!!
dc.l $0108ffd8,$010a0000 ;2x2: modulo -40=$ffd8
dc.l $008e2881,$009028c1 ;display window
dc.l $00920038,$009400a0 ;ddfstrt/stp values for 320pix-width-plane
;*** Bpl pointers refreshed in VB-Int3
;*** Color Section
dc.w $106,$c00
BScreenCoplist_color
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$e00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$2C00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$2E00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$4C00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$4E00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$6C00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$6E00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$8C00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$8E00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$AC00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$AE00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$CC00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$CE00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$EC00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
DC.W $106,$EE00
DC.W $180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
DC.W $190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
DC.W $1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
DC.W $1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
dc.l $01060c20
BScreenCoplist_End ;$fffffffe will be added by BScreenInit
end