mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-28 09:30:41 +00:00
267 lines
3.4 KiB
ArmAsm
267 lines
3.4 KiB
ArmAsm
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
|
|
;======================================
|
|
;======================================
|
|
|
|
display_credits:
|
|
|
|
; display music bars
|
|
|
|
; a bar
|
|
|
|
lda A_VOLUME
|
|
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
|
|
|
|
ldx #4
|
|
lda #' '|$80
|
|
draw_a_bar_left_loop:
|
|
cpx #$4
|
|
bne skip_al_bar
|
|
eor #$80
|
|
skip_al_bar:
|
|
sta $A50,X
|
|
dex
|
|
bpl draw_a_bar_left_loop
|
|
|
|
ldx #4
|
|
lda #' '
|
|
draw_a_bar_right_loop:
|
|
cpx #$4
|
|
bne skip_ar_bar
|
|
eor #$80
|
|
skip_ar_bar:
|
|
sta $A50+35,X
|
|
dex
|
|
bpl draw_a_bar_right_loop
|
|
|
|
|
|
|
|
; b bar
|
|
|
|
lda B_VOLUME
|
|
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
|
|
|
|
ldx #4
|
|
lda #' '|$80
|
|
draw_b_bar_left_loop:
|
|
cpx #$4
|
|
bne skip_bl_bar
|
|
eor #$80
|
|
skip_bl_bar:
|
|
sta $AD0,X
|
|
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
|
|
|
|
lda C_VOLUME
|
|
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
|
|
ldx #4
|
|
lda #' '|$80
|
|
draw_c_bar_left_loop:
|
|
cpx #$4
|
|
bne skip_cl_bar
|
|
eor #$80
|
|
skip_cl_bar:
|
|
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
|
|
|
|
|
|
|
|
; write credits
|
|
actual_credits:
|
|
lda ticks
|
|
cmp #25
|
|
bne done_credits
|
|
|
|
lda seconds
|
|
|
|
; increment on multiples of 4 seconds
|
|
|
|
and #$3
|
|
beq next_credit
|
|
bne done_credits
|
|
|
|
next_credit:
|
|
|
|
;========================
|
|
; write the credits
|
|
|
|
write_credits:
|
|
lda which_credit
|
|
cmp #7
|
|
beq done_credits
|
|
|
|
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
|
|
|
|
lda which_credit
|
|
asl
|
|
tay
|
|
|
|
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
|
|
write_credit_1_loop:
|
|
lda $dede,Y
|
|
ora #$80
|
|
credits_address_smc:
|
|
sta $dede,Y
|
|
iny
|
|
cpy #16
|
|
bne write_credit_1_loop
|
|
|
|
done_credit1_loop:
|
|
dex
|
|
dex
|
|
bpl outer_credit_loop
|
|
|
|
|
|
inc which_credit
|
|
|
|
done_credits:
|
|
rts
|
|
|
|
credits_address:
|
|
.word $a50+12
|
|
.word $ad0+12
|
|
.word $b50+12
|
|
|
|
credits_table:
|
|
.word credits1
|
|
.word credits2
|
|
.word credits3
|
|
.word credits4
|
|
.word credits5
|
|
.word credits6
|
|
.word credits7
|
|
|
|
|
|
credits1:
|
|
.byte " Code: "
|
|
.byte " "
|
|
.byte " Deater "
|
|
|
|
credits2:
|
|
.byte " Music: "
|
|
.byte " "
|
|
.byte " mAZE "
|
|
|
|
credits3:
|
|
.byte " Algorithms: "
|
|
.byte " F. Sanglard "
|
|
.byte " Hellmood "
|
|
|
|
credits4:
|
|
.byte " Apple II bot "
|
|
.byte " "
|
|
.byte " Kay Savetz "
|
|
|
|
credits5:
|
|
.byte " Magic: "
|
|
.byte " "
|
|
.byte " qkumba "
|
|
|
|
credits6:
|
|
.byte " Greets: "
|
|
.byte " 4am "
|
|
.byte " French Touch "
|
|
|
|
credits7:
|
|
.byte " _ "
|
|
.byte " _|(_ _ "
|
|
.byte " (_| _) | "
|
|
|
|
which_credit:
|
|
.byte $0
|