mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-15 08:27:41 +00:00
chiptune_player: move volume bars to own file
This commit is contained in:
@@ -8,6 +8,7 @@ all: chiptune_player.dsk
|
|||||||
chiptune_player.dsk: CHIPTUNE_PLAYER OUT.0
|
chiptune_player.dsk: CHIPTUNE_PLAYER OUT.0
|
||||||
$(DOS33) -y chiptune_player.dsk BSAVE -a 0x1000 CHIPTUNE_PLAYER
|
$(DOS33) -y chiptune_player.dsk BSAVE -a 0x1000 CHIPTUNE_PLAYER
|
||||||
$(DOS33) -y chiptune_player.dsk SAVE B OUT.0
|
$(DOS33) -y chiptune_player.dsk SAVE B OUT.0
|
||||||
|
$(DOS33) -y chiptune_player.dsk SAVE B OUT.LZ4
|
||||||
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x6000 OUT.0
|
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x6000 OUT.0
|
||||||
|
|
||||||
|
|
||||||
@@ -18,7 +19,7 @@ chiptune_player.o: chiptune_player.s \
|
|||||||
../asm_routines/mockingboard.s \
|
../asm_routines/mockingboard.s \
|
||||||
../asm_routines/dos33_routines.s \
|
../asm_routines/dos33_routines.s \
|
||||||
../asm_routines/lz4_decode.s \
|
../asm_routines/lz4_decode.s \
|
||||||
rasterbars.s \
|
rasterbars.s volume_bars.s \
|
||||||
chip_title.inc zp.inc
|
chip_title.inc zp.inc
|
||||||
ca65 -o chiptune_player.o chiptune_player.s -l chiptune_player.lst
|
ca65 -o chiptune_player.o chiptune_player.s -l chiptune_player.lst
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
|
|
||||||
|
LZ4_BUFFER EQU $4000
|
||||||
CHUNK_BUFFER EQU $6000
|
CHUNK_BUFFER EQU $6000
|
||||||
CHUNKSIZE EQU $3
|
CHUNKSIZE EQU $3
|
||||||
|
|
||||||
@@ -300,228 +301,6 @@ done_interrupt:
|
|||||||
rti
|
rti
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;==============================
|
|
||||||
;==============================
|
|
||||||
; Draw volume bars
|
|
||||||
;==============================
|
|
||||||
;==============================
|
|
||||||
|
|
||||||
volume_bars:
|
|
||||||
|
|
||||||
|
|
||||||
; hline Y,V2 at A
|
|
||||||
|
|
||||||
; top line
|
|
||||||
|
|
||||||
lda #COLOR_BOTH_GREY
|
|
||||||
sta COLOR ; remove for crazy effect
|
|
||||||
ldy #12
|
|
||||||
lda #26
|
|
||||||
sta V2
|
|
||||||
lda #6
|
|
||||||
jsr hlin_double
|
|
||||||
|
|
||||||
; middle
|
|
||||||
|
|
||||||
lda #8
|
|
||||||
middle_loop:
|
|
||||||
pha
|
|
||||||
|
|
||||||
cmp #8
|
|
||||||
beq middle_black
|
|
||||||
cmp #26
|
|
||||||
beq middle_black
|
|
||||||
|
|
||||||
cmp #10
|
|
||||||
bne not_top
|
|
||||||
|
|
||||||
ldx #$3B ; pink/purple
|
|
||||||
stx A_COLOR
|
|
||||||
ldx #$7E ; light-blue/aqua
|
|
||||||
stx B_COLOR
|
|
||||||
ldx #$CD ; light-green/yellow
|
|
||||||
stx C_COLOR
|
|
||||||
jmp calc_volume
|
|
||||||
|
|
||||||
not_top:
|
|
||||||
ldx #COLOR_BOTH_RED
|
|
||||||
stx A_COLOR
|
|
||||||
ldx #COLOR_BOTH_DARKBLUE
|
|
||||||
stx B_COLOR
|
|
||||||
ldx #COLOR_BOTH_DARKGREEN
|
|
||||||
stx C_COLOR
|
|
||||||
|
|
||||||
calc_volume:
|
|
||||||
|
|
||||||
; 10 14/15 24-x = 14 PLUS=none, zero=bottom, neg=all
|
|
||||||
; 12 12/13 12
|
|
||||||
; 14 10/11 10
|
|
||||||
; 16 8/9 8
|
|
||||||
; 18 6/7 6
|
|
||||||
; 20 4/5 4
|
|
||||||
; 22 2/3 2
|
|
||||||
; 24 0/1 0
|
|
||||||
|
|
||||||
; FIXME: there must be a way to make this faster
|
|
||||||
|
|
||||||
mod_a:
|
|
||||||
pha
|
|
||||||
sec
|
|
||||||
eor #$ff ; negate
|
|
||||||
adc #24 ; 24-A
|
|
||||||
sec
|
|
||||||
sbc A_VOLUME
|
|
||||||
bmi mod_b
|
|
||||||
beq mod_a_bottom
|
|
||||||
mod_a_zero:
|
|
||||||
lda #0
|
|
||||||
beq done_a
|
|
||||||
mod_a_bottom:
|
|
||||||
lda A_COLOR
|
|
||||||
and #$f0
|
|
||||||
done_a:
|
|
||||||
sta A_COLOR
|
|
||||||
|
|
||||||
mod_b:
|
|
||||||
pla
|
|
||||||
pha
|
|
||||||
sec
|
|
||||||
eor #$ff ; negate
|
|
||||||
adc #24 ; 24-A
|
|
||||||
sec
|
|
||||||
sbc B_VOLUME
|
|
||||||
bmi mod_c
|
|
||||||
beq mod_b_bottom
|
|
||||||
mod_b_zero:
|
|
||||||
lda #0
|
|
||||||
beq done_b
|
|
||||||
mod_b_bottom:
|
|
||||||
lda B_COLOR
|
|
||||||
and #$f0
|
|
||||||
done_b:
|
|
||||||
sta B_COLOR
|
|
||||||
|
|
||||||
mod_c:
|
|
||||||
pla
|
|
||||||
pha
|
|
||||||
sec
|
|
||||||
eor #$ff ; negate
|
|
||||||
adc #24 ; 24-A
|
|
||||||
sec
|
|
||||||
sbc C_VOLUME
|
|
||||||
bmi mod_d
|
|
||||||
beq mod_c_bottom
|
|
||||||
mod_c_zero:
|
|
||||||
lda #0
|
|
||||||
beq done_c
|
|
||||||
mod_c_bottom:
|
|
||||||
lda C_COLOR
|
|
||||||
and #$f0
|
|
||||||
done_c:
|
|
||||||
sta C_COLOR
|
|
||||||
|
|
||||||
mod_d:
|
|
||||||
pla
|
|
||||||
|
|
||||||
jmp middle_color_done
|
|
||||||
|
|
||||||
middle_black:
|
|
||||||
ldx #COLOR_BOTH_BLACK
|
|
||||||
stx A_COLOR
|
|
||||||
stx B_COLOR
|
|
||||||
stx C_COLOR
|
|
||||||
|
|
||||||
middle_color_done:
|
|
||||||
|
|
||||||
; left border
|
|
||||||
ldy #COLOR_BOTH_GREY
|
|
||||||
sty COLOR
|
|
||||||
|
|
||||||
ldy #12
|
|
||||||
sty V2
|
|
||||||
ldy #12
|
|
||||||
|
|
||||||
jsr hlin_double
|
|
||||||
|
|
||||||
; border space
|
|
||||||
lda #COLOR_BOTH_BLACK
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #1
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
; A volume
|
|
||||||
lda A_COLOR
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
; A space
|
|
||||||
lda #COLOR_BOTH_BLACK
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #1
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
; B volume
|
|
||||||
lda B_COLOR
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
; B space
|
|
||||||
lda #COLOR_BOTH_BLACK
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #1
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
; C volume
|
|
||||||
lda C_COLOR
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
; C space
|
|
||||||
lda #COLOR_BOTH_BLACK
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #1
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
; Right border
|
|
||||||
|
|
||||||
lda #COLOR_BOTH_GREY
|
|
||||||
sta COLOR
|
|
||||||
|
|
||||||
ldx #1
|
|
||||||
jsr hlin_double_continue
|
|
||||||
|
|
||||||
pla
|
|
||||||
clc
|
|
||||||
adc #2
|
|
||||||
cmp #28
|
|
||||||
beq bottom_line
|
|
||||||
jmp middle_loop
|
|
||||||
|
|
||||||
bottom_line:
|
|
||||||
; bottom line
|
|
||||||
|
|
||||||
lda #COLOR_BOTH_GREY
|
|
||||||
sta COLOR
|
|
||||||
ldy #12
|
|
||||||
lda #26
|
|
||||||
sta V2
|
|
||||||
lda #28
|
|
||||||
jsr hlin_double
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
;=================
|
;=================
|
||||||
; load a new song
|
; load a new song
|
||||||
;=================
|
;=================
|
||||||
@@ -635,7 +414,7 @@ bloop3:
|
|||||||
.include "../asm_routines/gr_hlin.s"
|
.include "../asm_routines/gr_hlin.s"
|
||||||
.include "../asm_routines/lz4_decode.s"
|
.include "../asm_routines/lz4_decode.s"
|
||||||
.include "rasterbars.s"
|
.include "rasterbars.s"
|
||||||
|
.include "volume_bars.s"
|
||||||
|
|
||||||
;===========
|
;===========
|
||||||
; File info
|
; File info
|
||||||
|
221
chiptune_player/volume_bars.s
Normal file
221
chiptune_player/volume_bars.s
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
;==============================
|
||||||
|
;==============================
|
||||||
|
; Draw volume bars
|
||||||
|
;==============================
|
||||||
|
;==============================
|
||||||
|
|
||||||
|
volume_bars:
|
||||||
|
|
||||||
|
|
||||||
|
; hline Y,V2 at A
|
||||||
|
|
||||||
|
; top line
|
||||||
|
|
||||||
|
lda #COLOR_BOTH_GREY
|
||||||
|
sta COLOR ; remove for crazy effect
|
||||||
|
ldy #12
|
||||||
|
lda #26
|
||||||
|
sta V2
|
||||||
|
lda #6
|
||||||
|
jsr hlin_double
|
||||||
|
|
||||||
|
; middle
|
||||||
|
|
||||||
|
lda #8
|
||||||
|
middle_loop:
|
||||||
|
pha
|
||||||
|
|
||||||
|
cmp #8
|
||||||
|
beq middle_black
|
||||||
|
cmp #26
|
||||||
|
beq middle_black
|
||||||
|
|
||||||
|
cmp #10
|
||||||
|
bne not_top
|
||||||
|
|
||||||
|
ldx #$3B ; pink/purple
|
||||||
|
stx A_COLOR
|
||||||
|
ldx #$7E ; light-blue/aqua
|
||||||
|
stx B_COLOR
|
||||||
|
ldx #$CD ; light-green/yellow
|
||||||
|
stx C_COLOR
|
||||||
|
jmp calc_volume
|
||||||
|
|
||||||
|
not_top:
|
||||||
|
ldx #COLOR_BOTH_RED
|
||||||
|
stx A_COLOR
|
||||||
|
ldx #COLOR_BOTH_DARKBLUE
|
||||||
|
stx B_COLOR
|
||||||
|
ldx #COLOR_BOTH_DARKGREEN
|
||||||
|
stx C_COLOR
|
||||||
|
|
||||||
|
calc_volume:
|
||||||
|
|
||||||
|
; 10 14/15 24-x = 14 PLUS=none, zero=bottom, neg=all
|
||||||
|
; 12 12/13 12
|
||||||
|
; 14 10/11 10
|
||||||
|
; 16 8/9 8
|
||||||
|
; 18 6/7 6
|
||||||
|
; 20 4/5 4
|
||||||
|
; 22 2/3 2
|
||||||
|
; 24 0/1 0
|
||||||
|
|
||||||
|
; FIXME: there must be a way to make this faster
|
||||||
|
|
||||||
|
mod_a:
|
||||||
|
pha
|
||||||
|
sec
|
||||||
|
eor #$ff ; negate
|
||||||
|
adc #24 ; 24-A
|
||||||
|
sec
|
||||||
|
sbc A_VOLUME
|
||||||
|
bmi mod_b
|
||||||
|
beq mod_a_bottom
|
||||||
|
mod_a_zero:
|
||||||
|
lda #0
|
||||||
|
beq done_a
|
||||||
|
mod_a_bottom:
|
||||||
|
lda A_COLOR
|
||||||
|
and #$f0
|
||||||
|
done_a:
|
||||||
|
sta A_COLOR
|
||||||
|
|
||||||
|
mod_b:
|
||||||
|
pla
|
||||||
|
pha
|
||||||
|
sec
|
||||||
|
eor #$ff ; negate
|
||||||
|
adc #24 ; 24-A
|
||||||
|
sec
|
||||||
|
sbc B_VOLUME
|
||||||
|
bmi mod_c
|
||||||
|
beq mod_b_bottom
|
||||||
|
mod_b_zero:
|
||||||
|
lda #0
|
||||||
|
beq done_b
|
||||||
|
mod_b_bottom:
|
||||||
|
lda B_COLOR
|
||||||
|
and #$f0
|
||||||
|
done_b:
|
||||||
|
sta B_COLOR
|
||||||
|
|
||||||
|
mod_c:
|
||||||
|
pla
|
||||||
|
pha
|
||||||
|
sec
|
||||||
|
eor #$ff ; negate
|
||||||
|
adc #24 ; 24-A
|
||||||
|
sec
|
||||||
|
sbc C_VOLUME
|
||||||
|
bmi mod_d
|
||||||
|
beq mod_c_bottom
|
||||||
|
mod_c_zero:
|
||||||
|
lda #0
|
||||||
|
beq done_c
|
||||||
|
mod_c_bottom:
|
||||||
|
lda C_COLOR
|
||||||
|
and #$f0
|
||||||
|
done_c:
|
||||||
|
sta C_COLOR
|
||||||
|
|
||||||
|
mod_d:
|
||||||
|
pla
|
||||||
|
|
||||||
|
jmp middle_color_done
|
||||||
|
|
||||||
|
middle_black:
|
||||||
|
ldx #COLOR_BOTH_BLACK
|
||||||
|
stx A_COLOR
|
||||||
|
stx B_COLOR
|
||||||
|
stx C_COLOR
|
||||||
|
|
||||||
|
middle_color_done:
|
||||||
|
|
||||||
|
; left border
|
||||||
|
ldy #COLOR_BOTH_GREY
|
||||||
|
sty COLOR
|
||||||
|
|
||||||
|
ldy #12
|
||||||
|
sty V2
|
||||||
|
ldy #12
|
||||||
|
|
||||||
|
jsr hlin_double
|
||||||
|
|
||||||
|
; border space
|
||||||
|
lda #COLOR_BOTH_BLACK
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #1
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
; A volume
|
||||||
|
lda A_COLOR
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
; A space
|
||||||
|
lda #COLOR_BOTH_BLACK
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #1
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
; B volume
|
||||||
|
lda B_COLOR
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
; B space
|
||||||
|
lda #COLOR_BOTH_BLACK
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #1
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
; C volume
|
||||||
|
lda C_COLOR
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
; C space
|
||||||
|
lda #COLOR_BOTH_BLACK
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #1
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
; Right border
|
||||||
|
|
||||||
|
lda #COLOR_BOTH_GREY
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #1
|
||||||
|
jsr hlin_double_continue
|
||||||
|
|
||||||
|
pla
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
cmp #28
|
||||||
|
beq bottom_line
|
||||||
|
jmp middle_loop
|
||||||
|
|
||||||
|
bottom_line:
|
||||||
|
; bottom line
|
||||||
|
|
||||||
|
lda #COLOR_BOTH_GREY
|
||||||
|
sta COLOR
|
||||||
|
ldy #12
|
||||||
|
lda #26
|
||||||
|
sta V2
|
||||||
|
lda #28
|
||||||
|
jsr hlin_double
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user