📄 change.asm
字号:
;; sta <flash_pointer_dh
;; lda #<personal_tax_data1
;; sta <flash_pointer_dl
;;
;; jsr ljsr
;; dw write_flash_bank
;; dw copy_flash_data_to_flash_yh-1
lcopy_flash_data_to_flash 96,ds0bank,default_personal_tax_data,change_ds0bank,personal_tax_data1
jsr init_personal_tax_sub
bra RetMenu_personal_tax_recover_process
;====================================================
RetMenu_dec_hex:
jmp TLoad_0
dec_hex_process:
stz float_bit
lda <KeyNo
cmp #EscKey
beq RetMenu_dec_hex
cmp #ac_key
bne ?dec_hex_process
jmp ?dec_hex_process_ac_key
?dec_hex_process:
cmp #PointKey
bne ?little_can_not_in
jmp jmplmain
?little_can_not_in:
lda dec_hexflag
and #dec_hex_error_bit
beq ?can_process_dec_hex_in
jmp jmplmain
?can_process_dec_hex_in:
lda input_status
asl
tax
lda dec_hex_input_status+1,x
pha
lda dec_hex_input_status,x
pha
rts
?dec_hex_process_ac_key:
lda dec_hexflag
and #_not_dec_hex_error_bit
ora #dec_hex_input_bit
sta dec_hexflag
jsr jsrlcls
LPrint exchange_all
jsr clear_shiftflag
lda input_status
bne hex_mode_ac_key
lprint input_dec
jmp hs_disp_only_0
hex_mode_ac_key:
lprint input_hex
jmp hs_disp_only_0
;===================================================
dec_hex_input_status_0:
jsr if_dec_key
bpl ?dsfrhdsjf
jmp jmplmain
?dsfrhdsjf:
lda <KeyNo
cmp #EnterKey
beq ?11113
jmp data_input_in_length
?11113:
lda textbuf
bne ?dec_hex_not_zero_do
jsr jsrlcls
jsr clearnum_hs
bra ?dec_hex_last_disp
?dec_hex_not_zero_do:
ldx #0
?test_little_dot:
lda textbuf,x
cmp #DotK
bne ?not_little_dot
?lear_float_data:
lda #0ffh
sta textbuf,x
inx
cpx #13
bcc ?lear_float_data
bra ?not_little_dot_data
?not_little_dot:
inx
cpx #13
bcc ?test_little_dot
?not_little_dot_data:
stz decexp
jsr jsr_fin
lda fac_exp
cmp #0a1h
bcs ?data_is_to_large
jsr jsrlcls
lda fac_exp
bne ?dec_data_is_0
jsr clearnum_hs
?dec_data_is_0:
jsr turn_normal_data_to_disp_data
?dec_hex_last_disp:
lprint exchange_all
lprint input_hex
lda dec_hexflag
ora #dec_hex_disp_bit
sta dec_hexflag
lda #04h
sta <oy
jsr List_input_digit
jsr input_bit_to_dec_hexflag
lda #01h
sta input_status
jmp jmplmain
?data_is_to_large:
jsr jsrlcls
LPrint exchange_all
lprint data_is_to_large
lda dec_hexflag
ora #dec_hex_error_bit
sta dec_hexflag
jmp jmplmain
;====================================================
dec_hex_input_status_1:
jsr if_hex_key
bpl ?is_hex_key
jmp jmplmain
?is_hex_key:
lda <KeyNo
cmp #EnterKey
beq ?11114
jmp data_input_in_hex_mode
?11114:
jsr turn_disp_data_to_normal_data
jsr jsrlcls
lprint exchange_all
lprint input_dec
jsr input_bit_to_dec_hexflag
jsr display_data1
stz input_status
jsr clear_shiftflag
lda dec_hexflag
and #_not_dec_hex_disp_bit
ora #dec_hex_input_bit
sta dec_hexflag
jmp jmplmain
;====================================================
data_input_in_hex_mode:
ldx #33
?0: lda change_KeyNum,x
cmp <KeyNo
beq ?1
dex
bpl ?0
?01: jmp jmplmain
?1:
bbr5 <ShiftFlag,?K1
lda change_KeyParity2,x
bra ?K2
?K1: lda change_KeyParity1,x
?K2:
cmp #ShiftK
bne ?K3
jsr xor_shiftflag
jmp jmplmain
?K3:
pha
lda dec_hexflag
and #dec_hex_input_bit
beq ?not_new_data_input
lda dec_hexflag
and #_not_dec_hex_input_bit
sta dec_hexflag
jsr clearnum_hs
?not_new_data_input:
pla
cmp #0ah
bcc ??_digit_input
cmp #41h
bcs ??_digit_input
jmp jmplmain
??_digit_input:
ldx CharNum
cpx #8
bcs ?22
cpx #1
bcs ?11
cmp #0
beq ?12
?11:
inc CharNum
?12:
sta TextBuf,x
lda #04h
sta <oy
jsr List_input_digit
?22:
jsr clear_shiftflag
jmp jmplmain
;====================================================
RetMenu_realty:
jmp TLoad_0
realty_conversion_process:
jsr if_realty_key
bpl ?is_realty_key
jmp jmplmain
?is_realty_key:
lda <KeyNo
cmp #EscKey
beq RetMenu_realty
lda input_status
asl
tax
lda realty_input_status+1,x
pha
lda realty_input_status,x
pha
rts
;====================================================
realty_input_status_0:
lda <KeyNo
cmp #EnterKey
beq ?11111
cmp #ac_key
beq ?11112
jmp data_input_in_length
?11112:
jmp hs_disp_only_0
?11111:
jsr jsr_fin
jsr push_fac_to_hs_data_stack
jsr copy_fac_to_arg
lda #>tab_1d0
tay
lda #<tab_1d0
jsr copy_tab_to_fac
jsr jsr_sub
jsr fac_if_minus
beq ?new_value_ok
jsr pop_fac_from_hs_data_stack
jmp realty_conversion_init
?new_value_ok:
jsr pop_fac_from_hs_data_stack
lda #>realty_benjin
tay
lda #<realty_benjin
jsr copy_fac_to_data
repeat_input_return_month:
lda #01h
sta input_status
jsr jsrlcls
LPrint borrow_money
LPrint return_time
jmp hs_disp_only_0
realty_input_status_1:
lda <KeyNo
cmp #EnterKey
beq ?21111
cmp #ac_key
beq ?21112
cmp #PointKey
bne ?digit_in_realty_input_month
jmp jmplmain
?digit_in_realty_input_month:
jmp data_input_in_length
?21112:
jmp hs_disp_only_0
?21111:
jsr jsr_fin
lda fac_exp
cmp #8bh
bcc ?can_valuable
?new_input_invalue:
jmp repeat_input_return_month
?can_valuable:
lda fac_exp
beq ?new_input_invalue
lda #>realty_month
tay
lda #<realty_month
jsr copy_fac_to_data
repeat_realty_rate:
lda #02h
sta input_status
jsr jsrlcls
LPrint borrow_money
LPrint rate_every_year
jmp hs_disp_only_0
;====================================================
realty_input_status_2:
lda <KeyNo
cmp #EnterKey
beq ?31111
cmp #ac_key
beq ?31112
jmp data_input_in_length
?31112:
jmp hs_disp_only_0
?31111:
jsr jsr_fin
jsr push_fac_to_hs_data_stack
jsr copy_fac_to_arg
lda #>tab_0d01
tay
lda #<tab_0d01
jsr copy_tab_to_fac
jsr jsr_sub
lda fac_sgn
pha
jsr pop_fac_from_hs_data_stack
pla
and #80h
bne repeat_realty_rate
jsr push_fac_to_hs_data_stack
lda #>tab_100d0
tay
lda #<tab_100d0
jsr copy_tab_to_arg
jsr jsr_sub
jsr fac_if_minus
bne ?over_to_100
lda fac_exp
bne ?less_than_100
?over_to_100:
jsr pop_fac_from_hs_data_stack
jmp repeat_realty_rate
?less_than_100:
jsr pop_fac_from_hs_data_stack
jsr count_k_in_realty
lda #03h
sta input_status
lda #02h
sta which_item
jsr jsrlcls
;LPrint borrow_money
;lprint now_counting
;jsr call_lupdatescreen
jsr return_every_month
lda #>month_every
tay
lda #<month_every
jsr copy_fac_to_data
bra common_display_in_realty
realty_input_status_3:
lda <KeyNo
cmp #EnterKey
beq common_display_in_realty
cmp #ac_key
bne ?41112
jmp realty_conversion_init
?41112:
jmp jmplmain
common_display_in_realty:
jsr jsrlcls
LPrint borrow_money
;jsr call_lupdatescreen
lda which_item
cmp #02h
bne ?skip_which_item_to_0ff
lda #0ffh
sta which_item
?skip_which_item_to_0ff:
jsr add_which_item
jsr disp_the_last_sub_menu_in_realty
lda which_item
asl
tax
lda realty_which_item+1,x
pha
lda realty_which_item,x
pha
rts
;====================================================
count_return_every_month:
lda #>month_every
tay
lda #<month_every
jsr copy_data_to_fac
jmp judge_realty_and_disp
;====================================================
count_return_all_to_bank:
lda #>month_every
tay
lda #<month_every
jsr copy_data_to_fac
lda #>realty_month
tay
lda #<realty_month
jsr copy_data_to_arg
jsr ljsr_mul
jmp judge_realty_and_disp
;====================================================
count_return_all_accrual:
lda #>month_every
tay
lda #<month_every
jsr copy_data_to_fac
lda #>realty_month
tay
lda #<realty_month
jsr copy_data_to_arg
jsr ljsr_mul
jsr copy_fac_to_arg
lda #>realty_benjin
tay
lda #<realty_benjin
jsr copy_data_to_fac
jsr jsr_sub
judge_realty_and_disp:
lda fac_sgn
and #80h
beq ?not_clear_fac
jsr clear_fac
?not_clear_fac:
; lda #02h ;jrd2002-01-23
lda #01h
sta float_bit
jsr display_data1
stz float_bit
jmp jmplmain
;====================================================
return_every_month:
jsr count_sum_realty
jsr push_fac_to_hs_data_stack
jsr count_y_mul_k_add_1
jsr pop_arg_from_hs_data_stack
lda #00h
jsr ljsr
dw SciBank
dw FDIVT_S-1
lda #>realty_benjin
tay
lda #<realty_benjin
jsr copy_data_to_arg
jsr ljsr_mul
rts
count_sum_realty:
lda #>realty_month
tay
lda #<realty_month
jsr copy_data_to_fac
lda #>realty_n_1
tay
lda #<realty_n_1
jsr copy_fac_to_data
jsr i_equ_i_1
lda #>realty_k
tay
lda #<realty_k
jsr copy_data_to_fac
?fpln_loop:
lda realty_n_1
beq ?fpln_loop_exit
lda #>realty_k
tay
lda #<realty_k
jsr copy_data_to_arg
jsr ljsr
dw SciBank
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -