tfv: split off gr_put_num

This commit is contained in:
Vince Weaver 2021-01-17 23:48:12 -05:00
parent 6a771b66bd
commit 386a719783
4 changed files with 100 additions and 97 deletions

View File

@ -75,7 +75,7 @@ TFV_WORLD: tfv_world.o
ld65 -o TFV_WORLD tfv_world.o -C ../../linker_scripts/apple2_2000.inc ld65 -o TFV_WORLD tfv_world.o -C ../../linker_scripts/apple2_2000.inc
tfv_world.o: tfv_world.s zp.inc \ tfv_world.o: tfv_world.s zp.inc \
long_wait.s \ long_wait.s gr_put_num.s \
tfv_overworld.s tfv_drawmap.s \ tfv_overworld.s tfv_drawmap.s \
tfv_battle.s tfv_battle_menu.s tfv_battle_limit.s tfv_battle_summons.s \ tfv_battle.s tfv_battle_menu.s tfv_battle_limit.s tfv_battle_summons.s \
tfv_battle_magic.s tfv_battle_enemy.s tfv_battle_draw_hero.s \ tfv_battle_magic.s tfv_battle_enemy.s tfv_battle_draw_hero.s \
@ -83,7 +83,7 @@ tfv_world.o: tfv_world.s zp.inc \
help_overworld.s rotate_intro.s \ help_overworld.s rotate_intro.s \
sound_effects.s speaker_tone.s \ sound_effects.s speaker_tone.s \
graphics_map/tfv_backgrounds.inc \ graphics_map/tfv_backgrounds.inc \
tfv_sprites.inc battle_sprites.inc number_sprites.inc tfv_sprites.inc battle_sprites.inc
ca65 -o tfv_world.o tfv_world.s -l tfv_world.lst ca65 -o tfv_world.o tfv_world.s -l tfv_world.lst
graphics_map/tfv_backgrounds.inc: graphics_map/tfv_backgrounds.inc:

View File

@ -1,3 +1,97 @@
;****** ** **** **** ** ** ****** **** ****** ****** ******
;** ** **** ** ** ** ** ** ** ** ** ** ** **
;** ** ** **** **** ****** **** ****** ** ****** ******
;** ** ** ** ** ** ** ** ** ** ** ** **
;****** ****** ****** **** ** **** ****** ** ****** **
;===========================
; gr put num
;===========================
; damage in DAMAGE_VAL_LO/HI (BCD)
; location in XPOS,YPOS
gr_put_num:
lda #1
sta gr_put_num_leading_zero
; put high digit first
lda DAMAGE_VAL_HI
beq gr_put_num_bottom_byte
jsr gr_put_num_byte
gr_put_num_bottom_byte:
lda DAMAGE_VAL_LO
; fallthrough
;=================================
; print two-digit BCD number in A
gr_put_num_byte:
pha ; store on stack
gr_put_num_tens:
and #$f0
bne gr_put_num_print_tens
; was zero, check if we should print
lda gr_put_num_leading_zero ; if 1, we skip
bne gr_put_num_ones
pla ; restore value
pha
gr_put_num_print_tens:
; we were non-zero, notify leading zero
ldy #0
sty gr_put_num_leading_zero
; print tens digit
lsr
lsr
lsr
lsr
asl
tay
lda number_sprites,Y
sta INL
lda number_sprites+1,Y
sta INH
jsr put_sprite_crop
; point to next
lda XPOS
clc
adc #4
sta XPOS
gr_put_num_ones:
; print ones digit
pla
and #$f
asl
tay
lda number_sprites,Y
sta INL
lda number_sprites+1,Y
sta INH
jsr put_sprite_crop
rts
gr_put_num_leading_zero: .byte $01
; Numbers ; Numbers

View File

@ -326,101 +326,7 @@ battle_game_over:
;****** ** **** **** ** ** ****** **** ****** ****** ******
;** ** **** ** ** ** ** ** ** ** ** ** ** **
;** ** ** **** **** ****** **** ****** ** ****** ******
;** ** ** ** ** ** ** ** ** ** ** ** **
;****** ****** ****** **** ** **** ****** ** ****** **
gr_put_num_leading_zero: .byte $00
;===========================
; gr put num
;===========================
; damage in DAMAGE_VAL_LO/HI (BCD)
; location in XPOS,YPOS
gr_put_num:
lda #1
sta gr_put_num_leading_zero
; put high digit first
lda DAMAGE_VAL_HI
beq gr_put_num_bottom_byte
jsr gr_put_num_byte
gr_put_num_bottom_byte:
lda DAMAGE_VAL_LO
; fallthrough
;=================================
; print two-digit BCD number in A
gr_put_num_byte:
pha ; store on stack
gr_put_num_tens:
and #$f0
bne gr_put_num_print_tens
; was zero, check if we should print
lda gr_put_num_leading_zero ; if 1, we skip
bne gr_put_num_ones
pla ; restore value
pha
gr_put_num_print_tens:
; we were non-zero, notify leading zero
ldy #0
sty gr_put_num_leading_zero
; print tens digit
lsr
lsr
lsr
lsr
asl
tay
lda number_sprites,Y
sta INL
lda number_sprites+1,Y
sta INH
jsr put_sprite_crop
; point to next
lda XPOS
clc
adc #4
sta XPOS
gr_put_num_ones:
; print ones digit
pla
and #$f
asl
tay
lda number_sprites,Y
sta INL
lda number_sprites+1,Y
sta INH
jsr put_sprite_crop
rts
victory_string:
.byte 13,21,"EXPERIENCE +2",0
.byte 16,22,"MONEY +1",0
;==================================== ;====================================
@ -485,3 +391,6 @@ victory_draw_done:
rts rts
victory_string:
.byte 13,21,"EXPERIENCE +2",0
.byte 16,22,"MONEY +1",0

View File

@ -43,6 +43,7 @@
.include "gr_hlin.s" .include "gr_hlin.s"
.include "gr_vlin.s" .include "gr_vlin.s"
.include "gr_pageflip.s" .include "gr_pageflip.s"
.include "gr_put_num.s"
.include "keyboard.s" .include "keyboard.s"
.include "joystick.s" .include "joystick.s"
.include "gr_putsprite_crop.s" .include "gr_putsprite_crop.s"
@ -75,7 +76,6 @@
.include "tfv_sprites.inc" .include "tfv_sprites.inc"
.include "battle_sprites.inc" .include "battle_sprites.inc"
.include "number_sprites.inc"
.include "graphics_map/tfv_backgrounds.inc" .include "graphics_map/tfv_backgrounds.inc"
;=============================================== ;===============================================