dos33fsprogs/demos/lovebyte2023/blueflame_1k/letters.s

107 lines
1.6 KiB
ArmAsm
Raw Normal View History

2023-02-02 04:06:46 +00:00
2023-02-02 05:51:20 +00:00
do_letters:
2023-02-02 04:06:46 +00:00
;=========================================
; SETUP
;=========================================
jsr HGR2 ; set/clear HGR page2 to black
; Hi-res graphics, no text at bottom
; Y=0, A=$60 after this call
2023-02-03 16:56:50 +00:00
;==============================
; print deater
2023-02-02 04:06:46 +00:00
2023-02-03 20:45:12 +00:00
lda #28 ; y position
2023-02-03 16:56:50 +00:00
sta YPOS
2023-02-02 04:06:46 +00:00
2023-02-03 20:45:12 +00:00
; lda #$ff ; start on right hand side
; sta start_smc+1 ; default
2023-02-02 04:06:46 +00:00
2023-02-03 20:45:12 +00:00
; lda #$fc ; movement size to add
; sta add_smc+1 ;
; lda #<desire_ends+1 ; default
; sta type_smc+1
; lda #<deater_offsets ; default
; sta offsets_smc+1
2023-02-03 16:56:50 +00:00
jsr slide_in
;==============================
; print maze
2023-02-03 20:45:12 +00:00
lda #28 ; start on left hand side
2023-02-03 17:56:49 +00:00
sta start_smc+1
2023-02-03 20:45:12 +00:00
lda #4 ; movement size to add
2023-02-03 17:56:49 +00:00
sta add_smc+1
2023-02-03 20:45:12 +00:00
lda #128 ; Y location
2023-02-03 16:56:50 +00:00
sta YPOS
2023-02-03 20:45:12 +00:00
lda #<ma2e_ends ; point to the end table
2023-02-03 16:56:50 +00:00
sta type_smc+1
2023-02-03 20:45:12 +00:00
lda #<ma2e_offsets ; point to the shape offset
2023-02-03 16:56:50 +00:00
sta offsets_smc+1
2023-02-03 20:45:12 +00:00
jsr slide_in ; slide it
2023-02-02 04:06:46 +00:00
2023-02-03 20:45:12 +00:00
; jsr zoom_in ; just fall through
2023-02-02 04:06:46 +00:00
2023-02-03 22:09:33 +00:00
; A is $FF here
2023-02-02 04:06:46 +00:00
;=========================
; zoom in
;=========================
zoom_in:
2023-02-03 20:45:12 +00:00
lda #0 ; reset rotate and pointer
2023-02-03 16:56:50 +00:00
sta ROTATE
sta WHICH
2023-02-02 04:06:46 +00:00
outer_zoom_loop:
2023-02-03 16:56:50 +00:00
lda WHICH
tax ; update offset
lda desire_offsets,X ; get offsets in place
sta xdraw_offset_smc+1 ; setup xdraw
2023-02-03 22:09:33 +00:00
bmi done2 ; if negative, done
2023-02-03 16:56:50 +00:00
lda #36 ; start big
2023-02-02 04:06:46 +00:00
sta HGR_SCALE
2023-02-03 17:56:49 +00:00
lda desire_ends,X ; X Position
2023-02-02 04:06:46 +00:00
sta XPOS
2023-02-03 16:56:50 +00:00
lda #76 ; Y position
2023-02-02 04:06:46 +00:00
sta YPOS
2023-02-04 04:42:19 +00:00
2023-02-02 04:06:46 +00:00
inner_zoom_loop:
2023-02-03 17:56:49 +00:00
jsr draw_wait_erase
2023-02-03 16:56:50 +00:00
dec HGR_SCALE ; zoom in
2023-02-02 04:06:46 +00:00
dec HGR_SCALE
lda HGR_SCALE
2023-02-03 16:56:50 +00:00
cmp #10 ; stop if big enough
2023-02-02 04:06:46 +00:00
bcs inner_zoom_loop
2023-02-03 16:56:50 +00:00
jsr xdraw ; leave it on screen
2023-02-02 04:06:46 +00:00
2023-02-03 16:56:50 +00:00
inc WHICH ; move to next letter
2023-02-02 04:06:46 +00:00
2023-02-03 22:09:33 +00:00
bpl outer_zoom_loop ; bra
2023-02-02 04:06:46 +00:00
2023-02-03 22:09:33 +00:00
done2:
2023-02-04 04:42:19 +00:00