⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 change.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;;        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 + -