📄 main.med
字号:
917 call check_mdsw ;check OFF,NP,RATE key movement
918 j cs,function_end9
919 ld a,(KEY_CT) ;Any key in?
920 j z,main_loop ; no-> loop
921
922 ;V4.04 ld wa,AUTOOFFTIME
923 ;V4.04 ld (AUTO_OFF_TIM),wa
924 call update_md ;MDFLG update from MDFLG_RT
925 ;V2.03main_loop_ignore_dp_update:
926 ;V4.11 @BBS (F_OFF,no_operation) ;if OFF mode? yes->ignore key entry
927 call key_get ;reg.a <- key code
928 j cc,no_operation ;illegal key code? yes-> ignore
930 +1 ld wa,P_ERR
931 +1 test (P_ERR>>4).a ;bit -reverse-> jump status
932 +1 j f,error_recov ;if jump status is 0 -> branch
933 call check_perexe_flag_clearornot
934 cmp (KEYIN),K_IC
935 j eq,not_ic_key
937 +1 ld wa,IC_PROG
938 +1 test (IC_PROG>>4).a ;bit -reverse-> jump status
939 +1 j t,relate_to_icx ;if jump status is 1 -> branch
940 cmp (KEYIN),K_PLS
941 j eq,relate_to_ic
942 cmp (KEYIN),K_MIN
943 j eq,relate_to_ic
944 cmp (KEYIN),K_CEC
945 j eq,relate_to_ic
946 cmp (KEYIN),K_CE
947 j eq,relate_to_ic
949 +1 ld wa,IC_PROG
950 +1 clr (IC_PROG>>4).a
951
952 relate_to_ic:
953 ld hl,TENKEY
954 call edit_disp
955 call disp_to_dbr
956 relate_to_icx:
958 +1 ld wa,F_ICPN
959 +1 clr (F_ICPN>>4).a
960 ;V4.13 @CLB (F_ICDSP)
961 not_ic_key:
962 main_loop_no_check_rt:
964 +1 ld wa,F_CALER
965 +1 test (F_CALER>>4).a ;bit -reverse-> jump status
966 +1 j f,error_recov ;if jump status is 0 -> branch
967 ;V3.00 @BBS (RTC_ON,rtc_key) ;RTC display mode? yes ->check entry key code and jump to each function
969 +1 ld wa,F_RATE
970 +1 test (F_RATE>>4).a ;bit -reverse-> jump status
971 +1 j t,main_kj0 ;if jump status is 1 -> branch
972 call obs_key_check
973 j cs,main_loop
974 ;calculate each key function routin jump address.....
975 main_kj0:
976 ld a,(KEYIN)
977 ld c,0
978 cmp a,K_TEN ;if key code is Tenkey,00 or 000?
979 j le,main_kj2 ;yes ->
980 sub a,K_TEN ;for get function routine jump address
981 shlc a
982 ld c,a ;reg.c <- table offset
983 main_kj2:
984 ld hl,tbl_function ;get jump address
985 j (hl+c) ;jump to each function routine
986
987 ;===============================================================================
988 ; Exit of function routine
989 ;===============================================================================
990 function_end:
991 cmp (KEYIN),K_RATE ;V1.04
992 j eq,function_end_0 ;V1.04
994 +1 ld wa,F_RATE
995 +1 clr (F_RATE>>4).a
997 +1 ld wa,RATE_PROG
998 +1 clr (RATE_PROG>>4).a
1000 +1 ld wa,EURO_PROG
1001 +1 clr (EURO_PROG>>4).a
1002 function_end_0: ;V1.04
1003 ld (TEN_CT),0 ;
1004 ld (DT_CT),0 ;#/D entry counter
1005 ld (DT_DOT_CNT),0 ;
1006 ld (DT_CHR_CNT),0 ;
1008 +1 ld wa,F_DPIN
1009 +1 clr (F_DPIN>>4).a
1011 +1 ld wa,F_MIN_TRA
1012 +1 clr (F_MIN_TRA>>4).a
1013
1014 ;entry point for tenkey.................................
1015 tenkey_end:
1016 ld a,(KEYIN)
1017 ld (PRE_KEY),a ;save current key code -> PRE_KEY
1018 cmp (KEYIN),K_RATE ;V1.13
1019 j eq,shp_sgn_end ;V1.13
1021 +1 ld wa,RATE_PROG
1022 +1 test (RATE_PROG>>4).a ;bit -reverse-> jump status
1023 +1 j f,shp_sgn_end ;if jump status is 0 -> branch
1025 +1 ld wa,F_RATE
1026 +1 clr (F_RATE>>4).a
1027 ;entry point for # key and +/- key......................
1028 shp_sgn_end:
1029 call kychk_clcsm ;check function key whether clear C-S-M flags
1030 cmp (KEYIN),K_DP ;V1.07
1031 j le,functionnoclearftenkey ;V1.07
1032 cmp (KEYIN),K_BS ;V1.24
1033 j eq,functionnoclearftenkey ;V1.24
1034 cmp (KEYIN),K_SGN ;V1.36
1035 j eq,functionnoclearftenkey ;V1.36
1037 +1 ld wa,F_TNKEY
1038 +1 clr (F_TNKEY>>4).a
1039 functionnoclearftenkey: ;V1.07
1040 ;/TEST call keychk_amortize ;V1.09
1042 +1 ld wa,EURO_DISPLY
1043 +1 clr (EURO_DISPLY>>4).a
1044 ;entry point for FEED key(just check printer error)......................
1045 feed_key_end:
1047 +1 ld wa,P_ERR
1048 +1 test (P_ERR>>4).a ;bit -reverse-> jump status
1049 +1 j f,sys_error ;if jump status is 0 -> branch
1051 +1 ld wa,F_CALER
1052 +1 test (F_CALER>>4).a ;bit -reverse-> jump status
1053 +1 j f,sys_error ;if jump status is 0 -> branch
1054 function_end9:
1056 +1 ld wa,F_TNKEY
1057 +1 test (F_TNKEY>>4).a ;bit -reverse-> jump status
1058 +1 j f,function_end91 ;if jump status is 0 -> branch
1059 ;V3.00 @BBS (RTC_ON,no_operation)
1060 function_end91: ;V1.23
1061 ld hl,TENKEY
1062 ;V4.13 @BBC (F_ICDSP,function_not_isdsp) ;V1.23
1063 ;V4.13 call ic_display ;V1.23
1064 ;V4.13 jp function_end99
1065 function_not_isdsp: ;V1.23
1066 call vft_disable ;V2.10
1067 call edit_disp
1068 function_end99:
1069 call disp_to_dbr ;DBR update (DISP -> DBR)
1070 cmp (KEYIN),K_TAX ;V2.07
1071 j eq,no_operation ;V2.07
1072 ;V4.13 @CLB (M_TX1) ;V2.07
1073 ;V4.13 @CLB (M_TX2) ;V2.07
1074 no_operation: ;V2.07
1075 ;V2.05 call vft_enable ;V2.01
1077 +1 ld wa,F_DOFF
1078 +1 clr (F_DOFF>>4).a
1080 +1 ld wa,F_REVCAN
1081 +1 clr (F_REVCAN>>4).a
1082 j main_loop
1083 ;==============================================================================
1084 ic_display: ;--------V1.23
1085 ;V4.13 call spc_disp
1086 ;V4.13 @CLB (ICON_MIN) ;V1.48
1087 ;V1.39c ld a,(IC_BK)
1088 ;V4.13 ld a,(IC_BK+1) ;V1.39c
1089 ;V4.13 and a,0x0f
1090 ;V4.13 ld (DISP_LSD),a
1091 ;V1.39c ld a,(IC_BK)
1092 ;V4.13 ld a,(IC_BK+1) ;V1.39c
1093 ;V4.03 shrc a
1094 ;V4.03 shrc a
1095 ;V4.03 shrc a
1096 ;V4.03 shrc a
1097 ;V4.13 swap a ;V4.03
1098 ;V4.13 and a,0x0f ;V4.03
1099 ;V4.13 ld (DISP_LSD-1),a
1100 ;V1.39c ld a,(IC_BK+1)
1101 ;V4.13 ld a,(IC_BK) ;V1.39c
1102 ;V4.13 and a,0x0f
1103 ;V4.13 ld (DISP_LSD-2),a
1104 ;V4.13 ld (DISP_LSD-3),D_Uo
1105 ;V4.13 @BBC (SW_ICPM_RT,icp_disp)
1106 ;V4.13 ld (DISP_LSD-3),D_Lo
1107 icp_disp:
1108 ret
1109 ;-------------------------------------------
1110 ;==========================================
1111 model_select:
1112 ld a,(P0DR)
1113 and a,0y00000011
1114 nop ;V4.02
1115 nop
1116 nop
1117 nop
1118 nop
1119 nop
1120 nop
1121 ld b,(P0DR)
1122 and b,0y00000011
1123 cmp a,b
1124 j ne,model_select
1125 ld (FLG_MODE),a
1126 model_select_1: ;V4.02
1127 ld a,(P3PRD) ;V4.02
1128 and a,0y00000010 ;V4.02
1129 nop ;V4.02
1130 nop ;V4.02
1131 nop ;V4.02
1132 nop ;V4.02
1133 nop ;V4.02
1134 ld b,(P3PRD) ;V4.02
1135 and b,0y00000010 ;V4.02
1136 cmp a,b ;V4.02
1137 j ne,model_select_1 ;V4.02
1138 shlc a ;V4.02
1139 or a,(FLG_MODE) ;V4.02
1140 ld (FLG_MODE),a ;V4.02
1141 test a.2
1142 j t,model_select_2
1144 +1 ld wa,M_FX_M14
1145 +1 set (M_FX_M14>>4).a
1146 model_select_2:
1148 +1 ld wa,M_FX_SGM
1149 +1 set (M_FX_SGM>>4).a
1151 +1 ld wa,M_FX_AC
1152 +1 set (M_FX_AC>>4).a
1153 ret
1154
1155 ;===============================================================================
1156 init_all_rate:
1157 call ee_to_tax
1158 call tax_to_w2
1159 call w2_to_ten
1160 call keep_ten_6dig
1161 call ten_to_w2
1162 call w2_to_tax
1163 call ee_to_tax2
1164 call tax2_to_w2
1165 call w2_to_ten
1166 call keep_ten_6dig
1167 call ten_to_w2
1168 call w2_to_tax2
1169 call ee_country_read
1170 ld a,(COUNTRY1)
1171 cmp a,12
1172 j lt,init_all_rate_1
1173 clr cf
1174 sub a,12
1175 call ee_to_euro1
1176 jp init_all_rate_10
1177 init_all_rate_1:
1178 ld (COUNTRY_TEN),a
1179 call fix_euro_to_ten
1180 call ten_to_euro1
1181 init_all_rate_10:
1182 ld a,(COUNTRY2)
1183 cmp a,12
1184 j lt,init_all_rate_2
1185 clr cf
1186 sub a,12
1187 call ee_to_euro2
1188 jp init_all_rate_20
1189 init_all_rate_2:
1190 ld (COUNTRY_TEN),a
1191 call fix_euro_to_ten
1192 call ten_to_euro2
1193 init_all_rate_20:
1194 call ten_clear
1195 ret
1196
1197 ;===============================================================================
1198 check_perexe_flag_clearornot:
1199 cmp (KEYIN),K_DP
1200 j le,check_perexe_flag_clearornot_end
1201 cmp (KEYIN),K_BS
1202 j eq,check_perexe_flag_clearornot_end
1203 cmp (KEYIN),K_SGN
1204 j eq,check_perexe_flag_clearornot_end
1205 cmp (KEYIN),K_TL
1206 j eq,check_perexe_flag_clearornot_end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -