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

📄 change.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 5 页
字号:
; ***************************************************************************
; *     Project : Electronic Dictionary                                     *
; *        Date : 2003.9                                                    *
; *   File Name : CHANGE.ASM                                                *
; ***************************************************************************

        case    off
        externs on
        include ST2202.def      ; Include ST2100 I/O define.
        include ST2202.MAC      ; Include ST2100 I/O define.
        include Data.def        ; Data RAM define.
        include Bios.h
        include Graphics.h
        include Keydef.def
        include Graph.def

        public  ChangeEvent
        public  CutTail1
        public  change_start_data

        public  change_load
        public  itemno
        public  itemno_bak
        public  science_calflag
        public  unit_conversion
        public  turnexp_hex_to_dec1
        public  add_little_dot1
        public  dec_hexflag
        public  five_to_inc_1_1
        public  personal_tax_data1

;=====================================================

        include exchange.h
DS0     .SECTION
        include exchange.asm
;=====================================================
PS2   .SECTION
BANKNO        EQU      ChangeBank
;==========================================================
change_start_data:
        db      'change.asm',0
change_load:
;; lda  #10
;; sta  data_lengthl
;; stz  data_lengthh
;; lda  #<change_ds0bank
;; sta  <flash_object_drr
;; sta  <flash_source_drr
;; lda  #>personal_no_string+2
;; sta  <flash_pointer_sh
;; lda  #<personal_no_string+2
;; sta  <flash_pointer_sl
;;
;; lda  #>personal_no_string
;; sta  <flash_pointer_dh
;; lda  #<personal_no_string
;; sta  <flash_pointer_dl
;;
;; jsr  ljsr
;; dw   biosbank
;; dw   copy_flash_data_to_flash-1
;;
;; lsetscreen_to_ds0 1
;; lprint  personal_no_string
;; jsr    call_lupdatescreen
;; bra  $
;;=================================
        stz     MenuBufNO
        lda     #<unit_conversion  ;
        ;lda	#<MainMenu_56
        sta     StrAddrL
        lda     #>unit_conversion
        ;lda	#>MainMenu_56
;exchange_tload_4:
        sta     StrAddrH
;exchange_tload_2:
        stz     ItemOffset
;exchange_tload_1:
        stz     ItemStart
;exchange_tload_0:
TLoad_0:
     	;startuart

        ldx     <Mode
        stx     <ModeSave
        lda     #MenuMode
        sta     <Mode           ; Enter Menu Select Mode
        lda	#80h
        sta	<EFlag
change_hsec:
change_sec:
change_min:
change_timer:
change_keypress:
change_keyup:
jmp_lmainu:
        lmainu

change_keydown:
        lread_key_again
        lKeyTone
        jsr     set_to_ds0bank
        lda     menuflag
        and     #01h
        bne     EnterInitState
        lda     science_calflag
        beq     ?not_science
        jmp     science_cal_process
?not_science:
        lda     GameState
        asl
        tax
        lda     change_RealKeyPrc+1,x
        pha
        lda     change_RealKeyPrc,x
        pha
        rts

EnterInitState:
        lda     #01h
        trb     menuflag
        lda     ItemNo
        cmp     #21
        bne     ?1
        jmp     go_to_cal
?1:
        ;;yiadd end 2-9-3
        stz     science_calflag
        LSetScreen      1
        jsr     init_all_in_change
        lda     ItemNo
        dec     a
        sta     GameState
        asl
        tax
        lda     change_InitFunTbl+1,x
        pha
        lda     change_InitFunTbl,x
        pha
        rts
;==========================================
personal_tax_set_init:
        lda     #0
        jsr     help_process_in_change

        jsr     jsrlcls
        jsr     init_personal_tax_sub
        stz     person_select
        stz     which_item
        lda     #08h
        sta     max_item
__personal_tax_set_display:
        jsr     personal_tax_set_display
        jmp     jmplmain

personal_tax_set_display:
        jsr     jsrlcls
        lprint  tax_class_no
        jsr    call_lupdatescreen
        lda     which_item
        sta     person_tax_n
        inc
        ora     #30h
        sta     textbuffor+0ah
        lda     person_select
        bne     ?disp_tax_rate_in_personal
        lda     person_tax_n
        cmp     #8
        bne     ?67989
        lprint  tax_down_limit
        bra     ?69789
?67989:
        lprint  tax_up_limit
?69789:
        jsr     look_for_class_tab1_to_fac
        bra     ?67878
?disp_tax_rate_in_personal:
        lprint  tax_rate_percent
        jsr     look_for_class_tab2_to_arg
        lda     #>tab_100d0
        tay
        lda     #<tab_100d0
        jsr     copy_tab_to_fac

        jsr     ljsr_mul
?67878:
        jmp     display_data1

personal_tax_cnt_init:
        lda     #1
        jsr     help_process_in_change
        jsr     set_to_ds0bank
        jsr     jsrlcls
        jsr     init_personal_tax_sub
        lprint  personal_tax_all
        lprint  input_income
        jsr    call_lupdatescreen
        jmp     hs_disp_only_0

personal_tax_month_init:
        lda     #2
        jsr     help_process_in_change
        jsr     jsrlcls
        stz     input_status
        lprint  personal_tax_all
        lprint  sub_money_every
        jsr    call_lupdatescreen
        jsr     init_personal_tax_sub
        lda     #>personal_tax_sub
        tay
        lda     #<personal_tax_sub
        jmp     copy_fac_to_display_and_ret

personal_tax_recover_init:
        lda     #3
        jsr     help_process_in_change
        jsr     jsrlcls

        jsr     init_personal_tax_sub
        lprint  personal_tax_all
        lprint  if_recover_default_in_personal_tax
        jsr    call_lupdatescreen
        jmp     jmplmain

;==========================================
science_cal_init:
        lda     #01h
        sta     science_calflag

        lda     #4
        jsr     help_process_in_change
        lda     #>SciLoad-1
        pha
        lda     #<SciLoad-1
        pha
        lda     #>scibank
        pha
        lda     #<scibank
        jmp     longgo
science_cal_process:
        lda     itemno
        sta     itemno_bak
        lda     #>SciKeyDown-1
        pha
        lda     #<SciKeyDown-1
        pha
        lda     #>scibank
        pha
        lda     #<scibank
        jmp     longgo

stat_init:
        lda     #5
        jsr     help_process_in_change
        jsr     jsrlcls
        LPrint  stat_all
        LPrint  input_data_in_stat
	jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #08h
        sta     max_item
        jmp     hs_disp_only_0

clear_all_hs_ram:
        lda     #<which_item
        sta     inxmov
        lda     #>which_item
        sta     inxmov1
        ldy     #85
        lda     #00h
clear_all_hs_ram_loop:
        sta     (inxmov),y
        dey
        bpl     clear_all_hs_ram_loop
        lda     #dec_hex_input_bit
        sta     dec_hexflag
        lda     #>hs_data_stack
        sta     hs_stack_dptrh
        lda     #<hs_data_stack
        sta     hs_stack_dptrl
        rts

dec_hex_init:
        jsr     jsrlcls
        lda     #6
        jsr     help_process_in_change
        LPrint  exchange_all
	jsr    call_lupdatescreen
        LPrint  input_dec
        jsr     clear_all_hs_ram
        lda     #01h
        sta     max_item
        jmp     hs_disp_only_0

realty_conversion_init:
        lda     #7
        jsr     help_process_in_change
        jsr     jsrlcls
        LPrint  borrow_money
        LPrint  input_corpus
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #02h
        sta     max_item
        jmp     hs_disp_only_0

length_conversion_init:
        jsr     jsrlcls
        lda     #8
        jsr     help_process_in_change

        LPrint  exchange_all
        LPrint  kilometre_mile
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #16
        sta     max_item
        jmp     jmplmain
area_conversion_init:
        jsr     jsrlcls
        lda     #9
        jsr     help_process_in_change
        LPrint  exchange_all
        LPrint  metre_2_muo
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #4
        sta     max_item
        jmp     jmplmain

valume_conversion_init:
        jsr     jsrlcls
        lda     #10
        jsr     help_process_in_change

        LPrint  exchange_all
        LPrint  metre_3_sheng
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #8
        sta     max_item
        jmp     jmplmain

weight_conversion_init:
        jsr     jsrlcls
        lda     #11
        jsr     help_process_in_change
        LPrint  exchange_all
        LPrint  kilogram_pound
	jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #5
        sta     max_item
        jmp     jmplmain

temperature_conversion_init:
        jsr     jsrlcls
        lda     #12
        jsr     help_process_in_change
        LPrint  exchange_all
        LPrint  celsius_fahrenheit
	jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #1
        sta     max_item
        jmp     jmplmain

input_new_rate_init1:
        jsr     jsrlcls
        lda     #16
        jsr     help_process_in_change
        LPrint  exchange_all
        LPrint  input_new_rate
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        jsr     input_bit_to_dec_hexflag

        lda     #>rmb_rate
        tay
        lda     #<rmb_rate

        jmp     copy_fac_to_display_and_ret

input_new_rate_init2:
        jsr     jsrlcls
        lda     #18
        jsr     help_process_in_change
        LPrint  exchange_all
        LPrint  input_new_rate
	jsr    call_lupdatescreen
        jsr     clear_all_hs_ram

        lda     #>rmb_rate
        tay
        lda     #<rmb_rate
        jsr     copy_data_to_fac
        lda     fac_exp
        beq     ?skip_1_div_rmb_rate
        jsr     ljsr
        dw      SciBank
        dw      X_INV-1

?skip_1_div_rmb_rate:
        jsr     input_bit_to_dec_hexflag
        jmp     _display_and_ret

input_tax_rate_init:
        jsr     jsrlcls
        lda     #17
        jsr     help_process_in_change
        LPrint  tax_count
        LPrint  input_tax_rate
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        lda     #>tax_rate
        tay
        lda     #<tax_rate
        jsr     copy_data_to_fac

        lda     #>tab_100d0
        tay
        lda     #<tab_100d0
        jsr     copy_tab_to_arg
        jsr     ljsr_mul

        jsr     input_bit_to_dec_hexflag
;       jsr     display_data1
;       jmp     jmplmain
        jmp     _display_and_ret

input_after_tax_init:
        jsr     jsrlcls
        lda     #14
        jsr     help_process_in_change
        LPrint  tax_count
        LPrint  input_after_tax
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        jsr     input_bit_to_dec_hexflag
        jmp     hs_disp_only_0

input_before_tax_init:
        jsr     jsrlcls
        lda     #15
        jsr     help_process_in_change
        LPrint  tax_count
        LPrint  input_before_tax
        jsr    call_lupdatescreen
        jsr     clear_all_hs_ram
        jsr     input_bit_to_dec_hexflag
        jmp     hs_disp_only_0

input_exchange_init1:
        lda     #19
        jsr     help_process_in_change
        jsr     jsrlcls
        jsr     clear_all_hs_ram
        jsr     input_bit_to_dec_hexflag
        LPrint  exchange_all
        LPrint  input_rmb
	jsr    call_lupdatescreen
        jmp     hs_disp_only_0

input_exchange_init2:
        lda     #20
        jsr     help_process_in_change
        jsr     jsrlcls
        jsr     clear_all_hs_ram
        jsr     input_bit_to_dec_hexflag
        LPrint  exchange_all
        LPrint  input_exchange
        jsr    call_lupdatescreen
;;      jmp     hs_disp_only_0

hs_disp_only_0:
        jsr     ClearNum_hs
        lda     #04h
        sta     <oy
        jsr     List_input_digit
        jmp     jmplmain

;==========================================
RetMenu_personal_tax_set:
        jmp     TLoad_0
personal_tax_set_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_set

        lda     person_select
        bne     rate_set_in_personal_tax

bound_set_in_personal_tax:
        lda     input_status
        asl
        tax
        lda     bound_set_in_per_tax_status+1,x
        pha
        lda     bound_set_in_per_tax_status,x
        pha
        rts
rate_set_in_personal_tax:
        lda     input_status
        asl

⌨️ 快捷键说明

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