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

📄 change.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        tax
        lda     rate_set_in_per_tax_status+1,x
        pha
        lda     rate_set_in_per_tax_status,x
        pha
        rts
;====================================================
bound_set_in_per_tax_status0:
        lda     <KeyNo
        cmp     #DownKey
        bne     ?if_up_key_in
?up_or_down_in_personal_tax:
        lda     person_select
        eor     #0ffh
        sta     person_select
        jmp     __personal_tax_set_display

?if_up_key_in:
        cmp     #UpKey
        bne     ??ac_key_if
        jsr     dec_which_item
        bra     ?up_or_down_in_personal_tax
??ac_key_if:
        cmp     #ac_key
        beq     ?ac_key_in_in_per_tax_status0
        jmp     jmplmain
?ac_key_in_in_per_tax_status0:
ac_key_in_in_per_tax_status0:
        lda     which_item
        cmp     #08h
        bne     ?not_the_last_key_enable
        jmp     jmplmain
?not_the_last_key_enable:
        lda     #01h
        sta     input_status
        jsr     input_bit_to_dec_hexflag
        jmp     hs_disp_only_0

bound_set_in_per_tax_status1:
        lda     <KeyNo
        cmp     #EnterKey
        beq     ?if_new_bound_process
        cmp     #ac_key
        beq     ac_key_in_in_per_tax_status0
        jmp     data_input_in_length

?if_new_bound_process:
        stz     input_status
        jsr     jsr_fin
        jsr     push_fac_to_hs_data_stack
        jsr     copy_fac_to_arg

        lda     which_item
        sta     person_tax_n
        beq     only_compare_up_bound
        cmp     #07h
        beq     only_compare_down_bound
        sta     person_tax_n
        inc     person_tax_n
        jsr     look_for_class_tab1_to_fac
        jsr     jsr_sub
        jsr     fac_if_minus

        beq     bound_input_error_process
        lda     fac_exp
        beq     bound_input_error_process
        dec     person_tax_n
only_compare_down_bound:
        dec     person_tax_n

        jsr     pop_arg_from_hs_data_stack
        jsr     push_arg_to_hs_data_stack
        jsr     look_for_class_tab1_to_fac
        jsr     jsr_sub
        jsr     fac_if_minus
        bne     bound_input_error_process
        inc     person_tax_n
write_class_tab1:
        jsr     pop_fac_from_hs_data_stack
        jsr     write_fac_to_class_tab1
        lda     person_tax_n
        cmp     #07h
        bne     ?not_the_last_in_per_rate_tax_1
        inc     person_tax_n
        jsr     write_fac_to_class_tab1
?not_the_last_in_per_rate_tax_1:
        jmp     up_or_down_in_per_rate_tax_1

only_compare_up_bound:
        inc     person_tax_n
        jsr     look_for_class_tab1_to_fac
        jsr     jsr_sub
        jsr     fac_if_minus

        beq     bound_input_error_process
        lda     fac_exp
        beq     bound_input_error_process
        dec     person_tax_n
        bra     write_class_tab1

bound_input_error_process:
        jsr     pop_fac_from_hs_data_stack
;       lda     which_item
;       sta     person_tax_n
;       jsr     look_for_class_tab1_to_fac
        lda     #04h
        sta     <oy
        jsr     clear_textbuffor_sub_prog
        stz     CurX
        lda     #02h
        sta     Cury
        lprint  input_error_in_personal_tax_message
        jsr     delay_0d5s
        jmp     tload_0
;==========================================
rate_set_in_per_tax_status0:
        lda     <KeyNo
        cmp     #DownKey
        bne     if_up_key_in_per_rate_set
?up_or_down_in_per_rate_tax:
        jsr     add_which_item
?up_or_down_in_per_rate_tax_1:
up_or_down_in_per_rate_tax_1:
        lda     person_select
        eor     #0ffh
        sta     person_select
        jmp     __personal_tax_set_display

if_up_key_in_per_rate_set:
        cmp     #UpKey
        bne     ??if_ac_key_in_per_rate_tax
        bra     up_or_down_in_per_rate_tax_1
??if_ac_key_in_per_rate_tax:
        cmp     #ac_key
        beq     ?ac_key_in_in_per_tax_rate_status0
        jmp     jmplmain
?ac_key_in_in_per_tax_rate_status0:
ac_key_in_in_per_tax_rate_status0:
        lda     #01h
        sta     input_status
        jmp     hs_disp_only_0

rate_set_in_per_tax_status1:
        lda     <KeyNo
        cmp     #EnterKey
        beq     ?if_new_rate_process
        cmp     #ac_key
        beq     ac_key_in_in_per_tax_rate_status0
        jmp     data_input_in_length

?if_new_rate_process:
        stz     input_status
        jsr     jsr_fin

        lda     #>tab_0d01
        tay
        lda     #<tab_0d01
        jsr     copy_tab_to_arg
        jsr     ljsr_mul
        jsr     push_fac_to_hs_data_stack
        lda     fac_exp
        beq     rate_input_error_process

        lda     #>tab_1d0
        tay
        lda     #<tab_1d0
        jsr     copy_tab_to_arg
        jsr     jsr_sub
        jsr     fac_if_minus
        bne     rate_input_error_process
        lda     fac_exp
        beq     rate_input_error_process
        jsr     pop_arg_from_hs_data_stack
        jsr     push_arg_to_hs_data_stack
        lda     which_item
        sta     person_tax_n
        beq     only_compare_up_rate
        cmp     #08h
        beq     only_compare_down_rate
        sta     person_tax_n
        inc     person_tax_n
?he:
        jsr     look_for_class_tab2_to_fac
        jsr     jsr_sub
        jsr     fac_if_minus

        beq     rate_input_error_process
        lda     fac_exp
        beq     rate_input_error_process
        dec     person_tax_n
only_compare_down_rate:
        dec     person_tax_n

        jsr     pop_arg_from_hs_data_stack
        jsr     push_arg_to_hs_data_stack
        jsr     look_for_class_tab2_to_fac
        jsr     jsr_sub
        jsr     fac_if_minus
        bne     rate_input_error_process
        inc     person_tax_n
write_class_tab2:
        jsr     pop_fac_from_hs_data_stack
        jsr     write_fac_to_class_tab2
        jsr     add_which_item
        jmp     up_or_down_in_per_rate_tax_1

only_compare_up_rate:
        inc     person_tax_n
        jsr     look_for_class_tab2_to_fac
        jsr     jsr_sub
        jsr     fac_if_minus

        beq     rate_input_error_process
        lda     fac_exp
        beq     rate_input_error_process
        dec     person_tax_n
        bra     write_class_tab2

rate_input_error_process:
        jmp     bound_input_error_process
;       jsr     pop_fac_from_hs_data_stack
;       lda     which_item
;       sta     person_tax_n
;       jsr     look_for_class_tab2_to_fac
;       jmp     jmplmain
;====================================================
RetMenu_personal_tax:
        jmp     TLoad_0
personal_tax_cnt_process:
        jsr     if_personal_tax_key
        bpl     ?is_personal_tax_key
        jmp     jmplmain
?is_personal_tax_key:

        lda     <KeyNo
        cmp     #EscKey
        beq     RetMenu_personal_tax

        lda     input_status
        asl
        tax
        lda     personal_tax_input_status+1,x
        pha
        lda     personal_tax_input_status,x
        pha
        rts
;====================================================
personal_tax_input_status_0:
        lda     <KeyNo
        cmp     #EnterKey
        beq     ?11111
        cmp     #ac_key   ;即AC键
        beq     ?11112
        jmp     data_input_in_length
?11112:
        jmp     hs_disp_only_0
?11111:
        jsr     jsr_fin
        lda     #>person_tax_income
        tay
        lda     #<person_tax_income
        jsr     copy_fac_to_data
count_personal_tax_pay_basic:
        jsr     copy_fac_to_arg
        jsr     clear_fac
        lda     #>person_tax_month
        tay
        lda     #<person_tax_month
        jsr     copy_fac_to_data
        lda     #>person_tax_area
        tay
        lda     #<person_tax_area
        jsr     copy_fac_to_data
        stz     person_tax_n
;================================
        lda     #>personal_tax_sub
        tay
        lda     #<personal_tax_sub
        jsr     copy_data_to_fac
        jsr     jsr_sub

        bbr7    <fac_sgn,?count_continue_in_pay_personal
        jmp     personal_tax_disp_result
?count_continue_in_pay_personal:
        lda     #>person_tax_remain
        tay
        lda     #<person_tax_remain
        jsr     copy_fac_to_data

;================================
pay_personal_count_loop:
        lda     #>person_tax_remain
        tay
        lda     #<person_tax_remain
        jsr     copy_data_to_arg
        lda     #>person_tax_area
        tay
        lda     #<person_tax_area
        jsr     copy_data_to_fac
        jsr     ljsr
        dw      SciBank
        dw      FaddT_S-1
        jsr     copy_fac_to_arg
        jsr     look_for_class_tab1_to_fac
        jsr     jsr_sub

        bbs7    <fac_sgn,?the_last_cnt_in_pay_personal
;=====================================================
        jsr     look_for_class_tab1_to_arg
        lda     #>person_tax_area
        tay
        lda     #<person_tax_area
        jsr     copy_data_to_fac
        jsr     jsr_sub
        jsr     push_fac_to_hs_data_stack

;=====================================
        lda     #>person_tax_remain
        tay
        lda     #<person_tax_remain
        jsr     copy_data_to_arg
        jsr     jsr_sub
        lda     #>person_tax_remain
        tay
        lda     #<person_tax_remain
        jsr     copy_fac_to_data
;=====================================
        jsr     pop_fac_from_hs_data_stack
        jsr     look_for_class_tab2_to_arg

        jsr     ljsr_mul

        jsr     person_tax_month_add_fac

        jsr     look_for_class_tab1_to_fac
        lda     #>person_tax_area
        tay
        lda     #<person_tax_area
        jsr     copy_fac_to_data
        inc     person_tax_n
        lda     person_tax_n
        cmp     #08h
        bne     pay_personal_count_loop
        bra     large_data_do_in_pay_personal
;================================
?the_last_cnt_in_pay_personal:
        lda     #>person_tax_remain
        tay
        lda     #<person_tax_remain
        jsr     copy_data_to_fac
        jsr     look_for_class_tab2_to_arg
        jsr     ljsr_mul
        jsr     person_tax_month_add_fac

personal_tax_disp_result:
        lda     #01h
        sta     input_status
        jsr     jsrlcls
        LPrint  personal_tax_all
        LPrint  need_to_pay_tax
        lda     #>person_tax_month
        tay
        lda     #<person_tax_month

        jmp     copy_fac_to_display_and_ret

large_data_do_in_pay_personal:
        lda     #>person_tax_remain
        tay
        lda     #<person_tax_remain
        jsr     copy_data_to_fac
        jsr     look_for_class_tab2_to_arg
        jsr     ljsr_mul
        jsr     person_tax_month_add_fac
        bra     personal_tax_disp_result

personal_tax_input_status_1:
        lda     <KeyNo
        cmp     #EnterKey
        beq     ?21111
        cmp     #ac_key
        beq     ?21112
        jmp     jmplmain
?21112:
        stz     input_status
        jmp     personal_tax_cnt_init
?21111:
        lda     #02h
        sta     input_status

        jsr     jsrlcls
        LPrint  personal_tax_all
        LPrint  after_tax_income

        lda     #>person_tax_income
        tay
        lda     #<person_tax_income
        jsr     copy_data_to_arg

        lda     #>person_tax_month
        tay
        lda     #<person_tax_month
        jsr     copy_data_to_fac
        jsr     jsr_sub

        jmp     stat_disp_result

personal_tax_input_status_2:
        lda     <KeyNo
        cmp     #EnterKey
        beq     ?21111
        cmp     #ac_key
        beq     ?21112
        jmp     jmplmain
?21112:
        stz     input_status
        jmp     personal_tax_cnt_init
?21111:
        lda     #01h
        sta     input_status

        lda     #>person_tax_income
        tay
        lda     #<person_tax_income
        jsr     copy_data_to_fac
        jmp     count_personal_tax_pay_basic
;====================================================
RetMenu_personal_tax_month:
        jmp     TLoad_0
;==========================================================
personal_tax_month_process:
        jsr     if_personal_tax_key
        bpl     ?is_personal_tax_key
        jmp     jmplmain
?is_personal_tax_key:
        stz     float_bit
        stz     hs_flag

        lda     <KeyNo
        cmp     #EscKey
        beq     RetMenu_personal_tax_month
        cmp     #ac_key
        bne     not_ac_do_in_personal_tax_month
        jmp     hs_disp_only_0

not_ac_do_in_personal_tax_month:
        cmp     #EnterKey
        beq     enter_in_personal_tax_month
        jmp     if_digit_input_in_tax_new_rate

enter_in_personal_tax_month:
        lda     input_status
        beq     RetMenu_personal_tax_month

        jsr     jsr_fin
        lda     #>personal_tax_sub
        tay
        lda     #<personal_tax_sub
        jsr     copy_fac_to_data
        lsetscreen_to_ds0 1
        lprint  setting_string
        jsr    call_lupdatescreen
        stz     data_lengthh
        lda     #6  ;;6个数据
        sta     data_lengthl
        lda     #>personal_tax_sub
        sta     <flash_pointer_sh
        lda     #<personal_tax_sub
        sta     <flash_pointer_sl
        lda     #>personal_tax_data_default
        sta     <flash_pointer_dh
        lda     #<personal_tax_data_default
        sta     <flash_pointer_dl
        lda     #<change_ds0bank
        sta     <flash_object_drr
        jsr     ljsr
        dw      biosbank
        dw      copy_ram_data_to_flash-1

        jmp     RetMenu_personal_tax_month

;====================================================
RetMenu_personal_tax_recover_process:
        jmp     TLoad_0
;==========================================================
personal_tax_recover_process:
        lda     <KeyNo
        cmp     #EscKey
        beq     RetMenu_personal_tax_recover_process
        cmp     #YKey
        beq     recover_personal_default_value
        cmp     #NKey
        beq     RetMenu_personal_tax_recover_process
        cmp     #EnterKey
        beq     recover_personal_default_value
        jmp     jmplmain
recover_personal_default_value:
;;        lda     #96
;;        sta     data_lengthl
;;        stz     data_lengthh
;;
;;        lda     #<ds0bank
;;        sta     <flash_source_drr
;;        lda     #<change_ds0bank
;;        sta     <flash_object_drr
;;        lda     #>default_personal_tax_data
;;        sta     <flash_pointer_sh
;;        lda     #<default_personal_tax_data
;;        sta     <flash_pointer_sl
;;
;;        lda     #>personal_tax_data1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -