mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 15:02:35 +00:00
78 lines
1.7 KiB
ArmAsm
78 lines
1.7 KiB
ArmAsm
include "includes.i"
|
|
|
|
xdef ShowSplash
|
|
|
|
SPLASH_COLOR_DEPTH equ 5
|
|
SPLASH_SCREEN_WIDTH_BYTES equ 40
|
|
|
|
ShowSplash:
|
|
lea CUSTOM,a6
|
|
|
|
;; set up playfield
|
|
move.w #(RASTER_Y_START<<8)|RASTER_X_START,DIWSTRT(a6)
|
|
move.w #((RASTER_Y_STOP-256)<<8)|(RASTER_X_STOP-256),DIWSTOP(a6)
|
|
|
|
move.w #(RASTER_X_START/2-SCREEN_RES),DDFSTRT(a6)
|
|
move.w #(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1)),DDFSTOP(a6)
|
|
|
|
move.w #(SPLASH_COLOR_DEPTH<<12)|$200,BPLCON0(a6)
|
|
move.w #SPLASH_SCREEN_WIDTH_BYTES*SPLASH_COLOR_DEPTH-SPLASH_SCREEN_WIDTH_BYTES,BPL1MOD(a6)
|
|
move.w #SPLASH_SCREEN_WIDTH_BYTES*SPLASH_COLOR_DEPTH-SPLASH_SCREEN_WIDTH_BYTES,BPL2MOD(a6)
|
|
|
|
;; poke bitplane pointers
|
|
if SPLASH_USE_FOREGROUND=1
|
|
lea foregroundBitplanes1,a1
|
|
else
|
|
lea splash(pc),a1
|
|
endif
|
|
lea splashCopperListBplPtr(pc),a2
|
|
moveq #SPLASH_COLOR_DEPTH-1,d0
|
|
.bitplaneloop:
|
|
move.l a1,d1
|
|
move.w d1,2(a2)
|
|
swap d1
|
|
move.w d1,6(a2)
|
|
lea SPLASH_SCREEN_WIDTH_BYTES(a1),a1 ; bit plane data is interleaved
|
|
addq #8,a2
|
|
dbra d0,.bitplaneloop
|
|
|
|
;; install copper list, then enable dma
|
|
lea splashCopperList(pc),a0
|
|
move.l a0,COP1LC(a6)
|
|
|
|
jsr WaitVerticalBlank
|
|
;; set up default palette
|
|
include "out/splash-palette.s"
|
|
|
|
jsr WaitVerticalBlank
|
|
move.w #(DMAF_BLITTER|DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a6)
|
|
move.w #(INTF_SETCLR|INTF_VERTB|INTF_INTEN),INTENA(a6)
|
|
|
|
.wait:
|
|
jsr WaitVerticalBlank
|
|
jsr ReadJoystick
|
|
btst.b #0,joystick
|
|
beq .wait
|
|
rts
|
|
|
|
|
|
splashCopperList:
|
|
splashCopperListBplPtr:
|
|
dc.w BPL1PTL,0
|
|
dc.w BPL1PTH,0
|
|
dc.w BPL2PTL,0
|
|
dc.w BPL2PTH,0
|
|
dc.w BPL3PTL,0
|
|
dc.w BPL3PTH,0
|
|
dc.w BPL4PTL,0
|
|
dc.w BPL4PTH,0
|
|
dc.w BPL5PTL,0
|
|
dc.w BPL5PTH,0
|
|
dc.w BPL6PTL,0
|
|
dc.w BPL6PTH,0
|
|
dc.l $fffffffe
|
|
|
|
if SPLASH_USE_FOREGROUND=0
|
|
splash:
|
|
incbin "out/splash.bin"
|
|
endif |