mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-31 18:31:48 +00:00
4215f84611
this is mostly just moving things around and trying not to break it
109 lines
1.0 KiB
ArmAsm
109 lines
1.0 KiB
ArmAsm
|
|
do_rotozoom:
|
|
|
|
;=================================
|
|
; main loop
|
|
|
|
lda #0
|
|
sta ANGLE
|
|
sta SCALE_F
|
|
sta FRAMEL
|
|
|
|
lda #1
|
|
sta SCALE_I
|
|
|
|
main_loop:
|
|
|
|
jsr rotozoom
|
|
|
|
jsr page_flip
|
|
|
|
;============================
|
|
; wait for end
|
|
;============================
|
|
|
|
lda #47
|
|
jsr wait_for_pattern
|
|
|
|
bcc no_keypress
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
|
|
no_keypress:
|
|
|
|
clc
|
|
lda FRAMEL
|
|
adc direction
|
|
sta FRAMEL
|
|
|
|
cmp #$f8
|
|
beq back_at_zero
|
|
cmp #33
|
|
beq at_far_end
|
|
bne done_reverse
|
|
|
|
back_at_zero:
|
|
|
|
at_far_end:
|
|
|
|
; change bg color
|
|
lda roto_color_even_smc+1
|
|
clc
|
|
adc #$01
|
|
and #$0f
|
|
sta roto_color_even_smc+1
|
|
|
|
lda roto_color_odd_smc+1
|
|
clc
|
|
adc #$10
|
|
and #$f0
|
|
sta roto_color_odd_smc+1
|
|
|
|
|
|
|
|
; reverse direction
|
|
lda direction
|
|
eor #$ff
|
|
clc
|
|
adc #1
|
|
sta direction
|
|
|
|
lda scaleaddl
|
|
eor #$ff
|
|
clc
|
|
adc #1
|
|
sta scaleaddl
|
|
|
|
lda scaleaddh
|
|
eor #$ff
|
|
adc #0
|
|
sta scaleaddh
|
|
|
|
done_reverse:
|
|
clc
|
|
lda ANGLE
|
|
adc direction
|
|
and #$1f
|
|
sta ANGLE
|
|
|
|
clc
|
|
lda SCALE_F
|
|
adc scaleaddl
|
|
sta SCALE_F
|
|
lda SCALE_I
|
|
adc scaleaddh
|
|
sta SCALE_I
|
|
|
|
jmp main_loop
|
|
|
|
|
|
direction: .byte $01
|
|
scaleaddl: .byte $10
|
|
scaleaddh: .byte $00
|
|
|
|
|