📄 change.asm
字号:
; ***************************************************************************
; * 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 + -