dos33fsprogs/demos/applebot_demo/credits.s

267 lines
3.4 KiB
ArmAsm
Raw Permalink Normal View History

2020-11-17 20:33:00 +00:00
switch_to_credits:
; clear bottom of page2 and set split
bit TEXTGR
ldx #39
lda #' '|$80
clear_bottom_loop:
sta $A50,X
sta $AD0,X
sta $B50,X
sta $BD0,X
dex
bpl clear_bottom_loop
; set "done"
lda #DONE
sta command
; clear time
lda #0
sta seconds
sta ticks
rts
;======================================
;======================================
; display credits
;======================================
;======================================
2020-11-17 18:11:41 +00:00
display_credits:
2020-11-17 20:33:00 +00:00
2020-11-17 18:11:41 +00:00
; display music bars
2020-11-17 20:33:00 +00:00
; a bar
2020-11-17 18:11:41 +00:00
lda A_VOLUME
2020-11-17 20:33:00 +00:00
lsr
lsr
sta draw_a_bar_left_loop+1
lda #3
sec
sbc draw_a_bar_left_loop+1
sta draw_a_bar_right_loop+1
2020-11-17 18:11:41 +00:00
ldx #4
2020-11-17 20:33:00 +00:00
lda #' '|$80
draw_a_bar_left_loop:
2020-11-17 18:11:41 +00:00
cpx #$4
bne skip_al_bar
2020-11-17 18:11:41 +00:00
eor #$80
skip_al_bar:
2020-11-17 20:33:00 +00:00
sta $A50,X
dex
bpl draw_a_bar_left_loop
2020-11-17 20:33:00 +00:00
ldx #4
lda #' '
draw_a_bar_right_loop:
cpx #$4
bne skip_ar_bar
eor #$80
skip_ar_bar:
sta $A50+35,X
2020-11-17 18:11:41 +00:00
dex
bpl draw_a_bar_right_loop
2020-11-17 18:11:41 +00:00
2020-11-17 20:33:00 +00:00
; b bar
2020-11-17 18:11:41 +00:00
lda B_VOLUME
2020-11-17 20:33:00 +00:00
lsr
lsr
sta draw_b_bar_left_loop+1
lda #3
sec
sbc draw_b_bar_left_loop+1
sta draw_b_bar_right_loop+1
2020-11-17 20:33:00 +00:00
ldx #4
lda #' '|$80
draw_b_bar_left_loop:
2020-11-17 20:33:00 +00:00
cpx #$4
bne skip_bl_bar
2020-11-17 20:33:00 +00:00
eor #$80
skip_bl_bar:
2020-11-17 20:33:00 +00:00
sta $AD0,X
2020-11-17 18:11:41 +00:00
dex
bpl draw_b_bar_left_loop
ldx #4
lda #' '
draw_b_bar_right_loop:
cpx #$4
bne skip_br_bar
eor #$80
skip_br_bar:
sta $AD0+35,X
dex
bpl draw_b_bar_right_loop
; c
2020-11-17 18:11:41 +00:00
lda C_VOLUME
2020-11-17 20:33:00 +00:00
lsr
lsr
sta draw_c_bar_left_loop+1
lda #3
sec
sbc draw_c_bar_left_loop+1
sta draw_c_bar_right_loop+1
2020-11-17 20:33:00 +00:00
ldx #4
lda #' '|$80
draw_c_bar_left_loop:
2020-11-17 20:33:00 +00:00
cpx #$4
bne skip_cl_bar
2020-11-17 20:33:00 +00:00
eor #$80
skip_cl_bar:
2020-11-17 18:11:41 +00:00
sta $B50,X
dex
bpl draw_c_bar_left_loop
ldx #4
lda #' '
draw_c_bar_right_loop:
cpx #$4
bne skip_cr_bar
eor #$80
skip_cr_bar:
sta $B50+35,X
dex
bpl draw_c_bar_right_loop
2020-11-17 18:11:41 +00:00
2020-11-17 20:33:00 +00:00
; write credits
actual_credits:
2020-11-17 18:11:41 +00:00
lda ticks
cmp #25
bne done_credits
lda seconds
2020-11-17 20:59:06 +00:00
; increment on multiples of 4 seconds
and #$3
2020-11-17 18:11:41 +00:00
beq next_credit
bne done_credits
next_credit:
2020-11-17 20:33:00 +00:00
;========================
; write the credits
2020-11-17 18:11:41 +00:00
write_credits:
2020-11-17 20:59:06 +00:00
lda which_credit
cmp #7
beq done_credits
2020-11-17 20:33:00 +00:00
ldx #4
outer_credit_loop:
; X is proper line
; point to start of proper output line
lda credits_address,X
sta credits_address_smc+1
lda credits_address+1,X
sta credits_address_smc+2
; load proper input location
2020-11-17 18:11:41 +00:00
lda which_credit
asl
tay
2020-11-17 20:33:00 +00:00
txa
asl
asl
asl ; *16 (already *2)
clc
adc credits_table,Y
sta write_credit_1_loop+1
lda credits_table+1,Y
adc #0
sta write_credit_1_loop+2
ldy #0
2020-11-17 18:11:41 +00:00
write_credit_1_loop:
lda $dede,Y
2020-11-17 20:33:00 +00:00
ora #$80
credits_address_smc:
sta $dede,Y
2020-11-17 18:11:41 +00:00
iny
2020-11-17 20:33:00 +00:00
cpy #16
bne write_credit_1_loop
2020-11-17 18:11:41 +00:00
done_credit1_loop:
2020-11-17 20:33:00 +00:00
dex
dex
bpl outer_credit_loop
2020-11-17 18:11:41 +00:00
inc which_credit
2020-11-17 20:33:00 +00:00
2020-11-17 18:11:41 +00:00
done_credits:
rts
2020-11-17 20:33:00 +00:00
credits_address:
2020-11-17 20:59:06 +00:00
.word $a50+12
2020-11-17 20:33:00 +00:00
.word $ad0+12
.word $b50+12
2020-11-17 18:11:41 +00:00
credits_table:
.word credits1
.word credits2
.word credits3
.word credits4
.word credits5
2020-11-17 20:59:06 +00:00
.word credits6
.word credits7
2020-11-17 18:11:41 +00:00
credits1:
2020-11-17 20:33:00 +00:00
.byte " Code: "
.byte " "
.byte " Deater "
2020-11-17 18:11:41 +00:00
credits2:
2020-11-17 20:33:00 +00:00
.byte " Music: "
.byte " "
.byte " mAZE "
2020-11-17 18:11:41 +00:00
credits3:
2020-11-17 20:33:00 +00:00
.byte " Algorithms: "
2020-11-17 20:59:06 +00:00
.byte " F. Sanglard "
2020-11-17 20:33:00 +00:00
.byte " Hellmood "
2020-11-17 18:11:41 +00:00
credits4:
2020-11-17 20:33:00 +00:00
.byte " Apple II bot "
.byte " "
.byte " Kay Savetz "
2020-11-17 18:11:41 +00:00
credits5:
2020-11-17 20:59:06 +00:00
.byte " Magic: "
.byte " "
.byte " qkumba "
credits6:
.byte " Greets: "
.byte " 4am "
.byte " French Touch "
credits7:
2020-11-17 20:33:00 +00:00
.byte " _ "
.byte " _|(_ _ "
.byte " (_| _) | "
2020-11-17 18:11:41 +00:00
which_credit:
.byte $0