dos33fsprogs/mist/viewer_controls.s

261 lines
3.4 KiB
ArmAsm
Raw Normal View History

2020-03-27 19:43:24 +00:00
;
enter_control_panel:
lda #VIEWER_CONTROL_PANEL
sta LOCATION
lda #(DIRECTION_E|DIRECTION_ONLY_POINT|DIRECTION_SPLIT)
sta DIRECTION
jsr change_location
rts
control_panel_pressed:
lda CURSOR_Y
cmp #26 ; blt
bcc panel_inc
cmp #30 ; blt
bcc panel_dec
panel_latch:
lda VIEWER_CHANNEL
sta VIEWER_LATCHED ; latch value into pool state
2020-03-27 20:43:54 +00:00
lda #VIEWER_POOL
sta LOCATION
2020-03-27 19:43:24 +00:00
lda #DIRECTION_W
sta DIRECTION
jmp change_location
panel_inc:
lda CURSOR_X
cmp #18
bcs right_arrow_pressed
; 19-23 left arrow
lda VIEWER_CHANNEL
and #$f0
cmp #$90
bcs done_panel_press ; bge
lda VIEWER_CHANNEL
clc
adc #$10
sta VIEWER_CHANNEL
rts
right_arrow_pressed:
; 13-17 right arrow
lda VIEWER_CHANNEL
and #$f
cmp #9
bcs done_panel_press ; bge
inc VIEWER_CHANNEL
rts
panel_dec:
lda CURSOR_X
cmp #18
bcs right_arrow_pressed_dec
; 19-23 left arrow
lda VIEWER_CHANNEL
and #$f0
beq done_panel_press
lda VIEWER_CHANNEL
sec
sbc #$10
sta VIEWER_CHANNEL
rts
right_arrow_pressed_dec:
; 13-17 right arrow
lda VIEWER_CHANNEL
and #$f
beq done_panel_press
dec VIEWER_CHANNEL
done_panel_press:
rts
display_panel_code:
; ones digit
lda VIEWER_CHANNEL
and #$f
asl
tay
lda number_sprites,Y
sta INL
lda number_sprites+1,Y
sta INH
lda #21
sta XPOS
lda #8
sta YPOS
jsr put_sprite_crop
; tens digit
lda VIEWER_CHANNEL
and #$f0
lsr
lsr
lsr
tay
lda number_sprites,Y
sta INL
lda number_sprites+1,Y
sta INH
lda #15
sta XPOS
lda #8
sta YPOS
jsr put_sprite_crop
rts
number_sprites:
.word sprite_0,sprite_1,sprite_2,sprite_3,sprite_4
.word sprite_5,sprite_6,sprite_7,sprite_8,sprite_9
; . . . . . .
; O O ^O ^ O ^ O O O
; O O O O ^O ^^O
; ^.^ .O. O.. ..^ O
sprite_0:
.byte 3,4
.byte $AA,$0A,$AA ;
.byte $00,$AA,$00 ;
.byte $00,$AA,$00 ;
.byte $A0,$0A,$A0 ;
; . . . . . .
; O O ^O ^ O ^ O O O
; O O O O ^O ^^O
; ^.^ .O. O.. ..^ O
sprite_1:
.byte 3,4
.byte $AA,$0A,$AA
.byte $A0,$00,$AA
.byte $AA,$00,$AA
.byte $0A,$00,$0A
; . . . . . .
; O O ^O ^ O ^ O O O
; O O O O ^O ^^O
; ^.^ .O. O.. ..^ O
sprite_2:
.byte 3,4
.byte $AA,$0A,$AA
.byte $A0,$AA,$00
.byte $AA,$00,$AA
.byte $00,$0A,$0A
; . . . . . .
; O O ^O ^ O ^ O O O
; O O O O ^O ^^O
; ^.^ .O. O.. ..^ O
sprite_3:
.byte 3,4
.byte $AA,$0A,$AA
.byte $A0,$AA,$00
.byte $AA,$A0,$00
.byte $0A,$0A,$A0
; . . . . . .
; O O ^O ^ O ^ O O O
; O O O O ^O ^^O
; ^.^ .O. O.. ..^ O
sprite_4:
.byte 3,4
.byte $0A,$AA,$0A
.byte $00,$AA,$00
.byte $A0,$A0,$00
.byte $AA,$AA,$00
; ... .. ... . .
; O O O O O O O
; ^^. O^. O .^. ^O
; ..^ ^.^ O ^.^ ..O
sprite_5:
.byte 3,4
.byte $0A,$0A,$0A
.byte $00,$AA,$AA
.byte $A0,$A0,$0A
.byte $0A,$0A,$A0
; ... .. ... . .
; O O O O O O O
; ^^. O^. O .^. ^O
; ..^ ^.^ O ^.^ ..O
sprite_6:
.byte 3,4
.byte $AA,$0A,$0A
.byte $00,$AA,$AA
.byte $00,$A0,$0A
.byte $A0,$0A,$A0
; ... .. ... . .
; O O O O O O O
; ^^. O^. O .^. ^O
; ..^ ^.^ O ^.^ ..O
sprite_7:
.byte 3,4
.byte $0A,$0A,$0A
.byte $AA,$AA,$00
.byte $AA,$00,$AA
.byte $00,$AA,$AA
; ... .. ... . .
; O O O O O O O
; ^^. O^. O .^. ^O
; ..^ ^.^ O ^.^ ..O
sprite_8:
.byte 3,4
.byte $AA,$0A,$AA
.byte $00,$AA,$00
.byte $0A,$A0,$0A
.byte $A0,$0A,$A0
; ... .. ... . .
; O O O O O O O
; ^^. O^. O .^. ^O
; ..^ ^.^ O ^.^ ..^
sprite_9:
.byte 3,4
.byte $AA,$0A,$AA
.byte $00,$AA,$00
.byte $AA,$A0,$00
.byte $0A,$0A,$A0