88 lines
2.4 KiB
NASM
88 lines
2.4 KiB
NASM
; -----------------------------------------------------------
|
|
; slide3.asm - OUR SECOND GAME: IS COMING
|
|
; raster bars running on the border only, drop-shadowed
|
|
; big letters in the middle
|
|
; -----------------------------------------------------------
|
|
|
|
s3_init:
|
|
jsr clear_screen
|
|
+prtext 4, 12, WHITE, txt_secondgame, txt_secondgame_end - txt_secondgame
|
|
+prbig 8, 3, DGREY, big_iscoming, 9 ; drop shadow first (+1 row, +1 col)
|
|
+prbig 7, 2, YELLOW, big_iscoming, 9 ; then the letters on top of it
|
|
+prtext 15, 4, WHITE, txt_pointclick, txt_pointclick_end - txt_pointclick
|
|
+prtext 18, 7, LGREY, txt_steam, txt_steam_end - txt_steam
|
|
lda #0
|
|
sta s3phase
|
|
rts
|
|
|
|
s3_update:
|
|
inc framectr
|
|
lda framectr ; bars scroll one step every 2nd frame
|
|
and #1
|
|
bne s3_hold
|
|
inc s3phase
|
|
s3_hold:
|
|
|
|
; chase the beam: every 4th raster line from RAS_BARTOP down,
|
|
; set the BORDER color from the cyclic 64-entry bar table;
|
|
; the background stays black so the text remains readable
|
|
lda #RAS_BARTOP
|
|
sta s3line
|
|
ldx #0 ; bar step counter
|
|
s3_bar:
|
|
lda s3line
|
|
s3_wait:
|
|
cmp RASTER
|
|
bne s3_wait
|
|
txa
|
|
clc
|
|
adc s3phase
|
|
and #63
|
|
tay
|
|
lda rastbl,y
|
|
sta BORDER
|
|
lda s3line
|
|
clc
|
|
adc #4
|
|
sta s3line
|
|
inx
|
|
cpx #BAR_STEPS
|
|
bne s3_bar
|
|
|
|
lda #BLACK ; below the bar area: back to black
|
|
sta BORDER
|
|
|
|
s3_wbot: ; keep the one-call-per-frame contract
|
|
lda RASTER
|
|
cmp #RAS_BOTTOM
|
|
bne s3_wbot
|
|
rts
|
|
|
|
; ---- data ----
|
|
rastbl: ; raster bar colors (64 entries, cyclic):
|
|
; red, green, blue, grey ramps
|
|
!byte $00, $00, $02, $02, $08, $08, $0a, $01
|
|
!byte $0a, $08, $08, $02, $02, $00, $00, $00
|
|
!byte $00, $00, $05, $05, $0d, $0d, $07, $01
|
|
!byte $07, $0d, $0d, $05, $05, $00, $00, $00
|
|
!byte $00, $00, $06, $06, $0e, $0e, $03, $01
|
|
!byte $03, $0e, $0e, $06, $06, $00, $00, $00
|
|
!byte $00, $00, $0b, $0b, $0c, $0c, $0f, $01
|
|
!byte $0f, $0c, $0c, $0b, $0b, $00, $00, $00
|
|
|
|
txt_secondgame:
|
|
!scr "our second game"
|
|
txt_secondgame_end:
|
|
big_iscoming:
|
|
!scr "is coming"
|
|
txt_pointclick:
|
|
!scr "a new point and click adventure"
|
|
txt_pointclick_end:
|
|
txt_steam:
|
|
!scr "will be available on steam"
|
|
txt_steam_end:
|
|
|
|
; ---- variables ----
|
|
s3phase: !byte 0 ; raster bar scroll offset
|
|
s3line: !byte 0 ; current raster line while drawing bars
|