📄 basic_fn.lst
字号:
+0 832 832 ;V3.01 j eq,dp_key_09 ;V1.06
+0 833 833 ;V3.01 cmp (DT_DOT_CNT),4 ;V1.06
+0 834 834 ;V3.01 j ge,dp_key_09 ;V1.06
+0 835 835 ;V3.01 cmp (DT_CHR_CNT),2 ;V1.06
+0 836 836 ;V3.01 j ge,dp_key_08 ;V1.06
+0 837 837 ;V3.01 ld hl,DT_BUF ;V1.06
+0 838 838 ;V3.01 call stg_sfl49 ;V1.06
+0 839 839 ;V3.01 ld a,(DT_BUF_LSD) ;V1.06
+0 840 840 ;V3.01 swap a ;V1.06
+0 841 841 ;V3.01 cmp (DT_DOT_CNT),0 ;V1.06
+0 842 842 ;V3.01 j ne,dp_key_07 ;V1.06
+0 843 843 ;V3.01 or a,0xc0 ;V1.06 dot replace "0"
00000147 +0 844 844 dp_key_07: ;V1.24
+0 845 845 ;V3.01 or a,0xd0 ;V1.24 "D" replace "0", will be return to 0 when print
00000147 +0 846 846 dp_key_071: ;V1.24
+0 847 847 ;V3.01 ld (DT_BUF_LSD),a ;V1.06
+0 848 848 ;V3.01 inc (DT_CT) ;V1.06
00000147 +0 849 849 dp_key_08: ;V1.06
00000147 E10000F0 R +0 850 850 inc (DT_DOT_CNT) ;V1.06
0000014B +0 851 851 dp_key_080: ;V1.07
0000014B 190C +0 852 852 ld w,C_DP ;w <- DP character
0000014D FD0000 R +0 853 853 call dt_update ;DT_BUF update for #/D print
+0 854 854
00000150 +0 855 855 dp_key_09:
00000150 F10000F900 R +0 856 856 ld (DT_CHR_CNT),0 ;V1.06
00000155 FE0000 R +0 857 857 j tenkey_end
+0 858 858
+0 859 859 ;===============================================================================
+0 860 860 ; GT
+0 861 861 ;===============================================================================
00000158 +0 862 862 gt_key:
+0 863 863 ;V1.23
+0 864 864 ;V3.14 ld hl,IC_G
+0 865 865 ;V3.14 call ic_to_icbk ;V1.22
+0 866 866 ;V3.14 ld (SYM),S_SPC ;V1.26
+0 867 867 ;V3.14gt_ic_print: ;V1.24
+0 868 868 ;V3.14 call ic_print
+0 869 869 ;V3.14 call gt_to_w2
+0 870 870 ;V3.14 call w2_to_w4 ;V1.22 for average calc
+0 871 871 ;V3.14 call gt_clear ;yes -> GT function
+0 872 872 ;V3.14 @CLB (ICON_GT) ;V1.18
+0 873 873 ;V3.14 ld hl,W2
+0 874 874 ;V3.14 call wk_round ;W2(GT value) rounding
+0 875 875 ;V3.14 ld (SYM),S_GT
+0 876 876 ;V3.14 @BBS (SW_EUROS,gt_key_gt_to_stasta) ;V1.24
+0 877 877 ;V3.14 ld (SYM),S_STASTA ;V1.24
+0 878 878 ;V3.14gt_key_gt_to_stasta: ;V1.24
+0 879 879 ;V3.14 call wk_print ;W2 print
+0 880 880 ;V3.14 call feed_1 ;1 line feed
+0 881 881 ;V3.14 j gt_key_2
+0 882 882 ;V3.14gt_key_0:
+0 883 883 ;V3.14 ld hl,W2
+0 884 884 ;V3.14 ld (SYM),S_GS
+0 885 885 ;V3.14 call wk_print ;W2 print
+0 886 886 ;V3.14gt_key_2:
+0 887 887 ;V3.14 call w2_to_ten ;for display accumulator value(W2)
+0 888 888 ;V3.14 @SEB (F_FNEABL) ;V1.09
00000158 FE0000 R +0 889 889 j function_end
+0 890 890
+0 891 891 ;===============================================================================
+0 892 892 ; CE/C
+0 893 893 ;===============================================================================
0000015B +0 894 894 ce_key:
0000015B 480000 R +0 895 895 ld wa,F_COUNTRY
0000015E E10000FA R +0 896 896 clr (F_COUNTRY>>4).a
00000162 480000 R +0 897 897 ld wa,EURO_PROG
00000165 E10000FA R +0 898 898 clr (EURO_PROG>>4).a
00000169 480000 R +0 899 899 ld wa,RATE_PROG
0000016C E10000FA R +0 900 900 clr (RATE_PROG>>4).a
00000170 480000 R +0 901 901 ld wa,F_TNKEY
00000173 E10000FC R +0 902 902 test (F_TNKEY>>4).a ;bit -reverse-> jump status
00000177 DF1F +0 903 903 j f,ce_key_start ;if jump status is 0 -> branch
00000179 480000 R +0 904 904 ld wa,F_RATE
0000017C E10000FC R +0 905 905 test (F_RATE>>4).a ;bit -reverse-> jump status
00000180 DF16 +0 906 906 j f,ce_key_start ;if jump status is 0 -> branch
00000182 E100005A R +0 907 907 test (FLG_MODE).2
00000186 87 +0 908 908 j t,ce_key_x
00000187 FD0000 R +0 909 909 call ten_zerock ;V4.12
0000018A D903 +0 910 910 j nz,ce_key_x ;V4.12
0000018C 5800 R +0 911 911 test (TEN_S).0 ;V4.12
0000018E A8 +0 912 912 j f,ce_key_start ;V4.12
+0 913 913
0000018F +0 914 914 ce_key_x: ;V4.12
0000018F 0C00 R +0 915 915 ld a,(PRE_KEY) ;V1.30
00000191 F1000078 R +0 916 916 ld (KEYIN),a ;V1.30
00000195 FE0000 R +0 917 917 jp no_operation ;V1.30
00000198 +0 918 918 ce_key_start:
00000198 F10000F90D R +0 919 919 ld (KEYIN),K_CE ;V1.13
0000019D FE0000 R +0 920 920 jp cec_key_yyy ;V1.13
000001A0 +0 921 921 cec_key:
000001A0 480000 R +0 922 922 ld wa,F_COUNTRY
000001A3 E10000FA R +0 923 923 clr (F_COUNTRY>>4).a
000001A7 480000 R +0 924 924 ld wa,SW_AC
000001AA E10000FC R +0 925 925 test (SW_AC>>4).a ;bit -reverse-> jump status
000001AE DF15 +0 926 926 j f,cec_key_0 ;if jump status is 0 -> branch
000001B0 480000 R +0 927 927 ld wa,F_TNKEY
000001B3 E10000FC R +0 928 928 test (F_TNKEY>>4).a ;bit -reverse-> jump status
000001B7 8C +0 929 929 j t,cec_key_0 ;if jump status is 1 -> branch
000001B8 +0 930 930 cec_key_yyy: ;V1.13
000001B8 F10000F900 R +0 931 931 ld (DT_CHR_CNT),0 ;V1.31
000001BD FD0000 R +0 932 932 call ten_clear ;clear key entry only
000001C0 FD0000 R +0 933 933 call spc_dt ;clear #/D key buffer
000001C3 FC19 +0 934 934 j cec_key_2 ;-> function_end
+0 935 935 ;clear function.........
000001C5 +0 936 936 cec_key_0:
+0 937 937
000001C5 FD0000 R +0 938 938 call work_clear_acc ; no h/w initialize
000001C8 4B0000 R +0 939 939 ld hl,ACC
000001CB 0A000D R +0 940 940 ld (SYM),S_CLR
000001CE FD0000 R +0 941 941 call wk_print ;accumulator value(zero) print
000001D1 FD0000 R +0 942 942 call feed_1 ;1 line feed
000001D4 480000 R +0 943 943 ld wa,IC_PROG
000001D7 E10000FA R +0 944 944 clr (IC_PROG>>4).a
000001DB FE0000 R +0 945 945 jp function_end ;V1.10
000001DE +0 946 946 cec_key_2:
+0 947 947 ;V4.01 @CLB (IC_PROG) ;V1.23
000001DE FE0000 R +0 948 948 j function_end_0
+0 949 949
000001E1 +0 950 950 all_clear:
+0 951 951 ;h/w initialize...........
000001E1 480000 R +0 952 952 ld wa,IO_MT
000001E4 E10000FC R +0 953 953 test (IO_MT>>4).a ;bit -reverse-> jump status
000001E8 B7 +0 954 954 j f,all_clear ;if jump status is 0 -> branch
+0 955 955 ;V4.01 @CLB (IC_PROG) ;V1.23
000001E9 FD0000 R +0 956 956 call init_vft ;V2.01
000001EC C83A +0 957 957 di
000001EE FD0000 R +0 958 958 call init_io ;IO initialize
+0 959 959 ;V3.00 call init_pf ;initialize Timer3 for power failure detection
000001F1 FD0000 R +0 960 960 call init_scan ;initialize Timer4 for key scan
000001F4 C03A +0 961 961 ei ;interrupt enable
+0 962 962
+0 963 963 ;work area clear..........
000001F6 +0 964 964 work_clear_acc:
000001F6 FD0000 R +0 965 965 call acc_clear
000001F9 +0 966 966 work_clear:
000001F9 FD0000 R +0 967 967 call ten_clear
000001FC FD0000 R +0 968 968 call spc_dt ;clear #/D key buffer
+0 969 969 ;V3.00 call fn_register_clear ;V1.13
+0 970 970 ;V3.00 ld (FINANCE_0),0 ;V1.09
+0 971 971 ;V3.00 ld (FINANCE_1),0 ;V1.09
000001FF 0A0000 R +0 972 972 ld (FLG_E),0y00000000 ;clear calculate instruction flag
00000202 0A0000 R +0 973 973 ld (FLG_C),0y00000000 ;clear constant calculation flag
+0 974 974
00000205 FA +0 975 975 ret
+0 976 976
+0 977 977 ;===============================================================================
+0 978 978 ; -
+0 979 979 ;===============================================================================
00000206 +0 980 980 acc_minus:
+0 981 981 ;V4.01 @BBS (IC_PROG,set_ic_minus_key) ;V1.23 for V15 logic
+0 982 982 ;V4.01 cmp (PRE_KEY),K_M2CAL ;V1.22\
+0 983 983 ;V4.01 j ne,acc_minus_start ;V1.22|for [M2-]
+0 984 984 ;V4.01 ld (KEYIN),K_M2MI ;V1.22|
+0 985 985 ;V4.01 jp mem2_minus ;v1.22/
00000206 +0 986 986 acc_minus_start: ;V1.22
+0 987 987 ;V3.00 @BBC (SW_V15,acc_minus_x) ;V1.19\
+0 988 988 ;V3.00 cmp (PRE_KEY),K_TAX ;V1.19|
+0 989 989 ;V3.00 j ne,acc_minus_x ;V1.19|
+0 990 990 ;V3.00 @BBC (M_TX2,acc_minus_tx1) ;V1.19|for V15 tax[-]
+0 991 991 ;V3.00 @BBC (M_TX1,acc_minus_tx0) ;V2.07
+0 992 992 ;V3.00 ld (KEYIN),K_TX12M ;V2.07
+0 993 993 ;V3.00 jp tax12_minus ;V2.07
+0 994 994 ;V3.00acc_minus_tx0:
+0 995 995 ;V3.00 ld (KEYIN),K_TX2M ;V1.19|
+0 996 996 ;V3.00 jp tax_minus_a ;V2.18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -