📄 cm-941.lst
字号:
00001 .chip TM8726
00002 .data
00003 ;00H
4 0000 TempR0 EQU 00H
5 0001 TempR1 EQU 01H
6 0002 TempR2 EQU 02H
7 0003 TempR3 EQU 03H
8 0004 TempR4 EQU 04H
9 0005 TempR5 EQU 05H
10 0006 TempR6 EQU 06H ;temporary registers
0011
12 0007 T_SaveA EQU 07H
13 0008 T_SaveFlgC_Z EQU 08H ;used for tmr2 int
0014
15 0009 P_SaveA EQU 09H ;used for pre_divider int
16 000A P_SaveFlgC_Z EQU 0AH
17 000B R_2Hz EQU 0BH
18 000C T_2Hz EQU 0CH
0019
20 000D s1 EQU 0DH
21 000E s2 EQU 0EH
22 000F s3 EQU 0FH
00023 ;-----------------------
24 0010 Age1 EQU 10H ;parameters of measure fat
25 0011 Age2 EQU 11H
26 0012 Height1 EQU 12H
27 0013 Height2 EQU 13H
28 0014 Height3 EQU 14H
29 0015 Height4 EQU 15H
0030
31 0016 Weight1 EQU 16H
32 0017 Weight2 EQU 17H
33 0018 Weight3 EQU 18H
34 0019 Weight4 EQU 19H
0035
36 001A SData1 EQU 1AH
37 001B SData2 EQU 1BH
38 001C SData3 EQU 1CH
39 001D SData4 EQU 1DH
40 001E SData5 EQU 1EH
0041
42 001F FatTest4_1 EQU 1FH
00043 ;-----------------------
44 0020 Sec_L EQU 20H ;clock
45 0021 Sec_H EQU 21H
46 0022 Min_L EQU 22H
47 0023 Min_H EQU 23H
48 0024 Hr_L EQU 24H
49 0025 Hr_H EQU 25H
0050
51 0026 TSec_L EQU 26H ;timer
52 0027 TSec_H EQU 27H
53 0028 TMin_L EQU 28H
54 0029 TMin_H EQU 29H
0055
56 002A AlmMin_L EQU 2AH ;alarm
57 002B AlmMin_H EQU 2BH
58 002C AlmHr_L EQU 2CH
59 002D AlmHr_H EQU 2DH
60 002E FatTest4 EQU 2EH
61 002F s8 EQU 2FH
0062
00063 ;-------------Operation Registers
64 0030 R_A0 EQU 30H
65 0031 R_A1 EQU 31H
66 0032 R_A2 EQU 32H
67 0033 R_A3 EQU 33h
68 0034 R_A4 EQU 34H
69 0035 R_A5 EQU 35H
70 0036 R_A6 EQU 36H
71 0037 R_AP EQU 37H
0072
73 0038 R_B0 EQU 38H
74 0039 R_B1 EQU 39H
75 003A R_B2 EQU 3AH
76 003B R_B3 EQU 3BH
77 003C R_B4 EQU 3CH
78 003D R_B5 EQU 3DH
79 003E R_B6 EQU 3EH
80 003F R_BP EQU 3FH
0081
82 0040 R_W0 EQU 40H
83 0041 R_W1 EQU 41H
84 0042 R_W2 EQU 42H
85 0043 R_W3 EQU 43H
86 0044 R_W4 EQU 44H
87 0045 R_W5 EQU 45H
88 0046 R_W6 EQU 46H
89 0047 R_W7 EQU 47H
90 0048 R_WP EQU 48H
91 0049 R_Error EQU 49H
00092 ;----
93 004A FatTest1 EQU 4AH
94 004B FatTest2 EQU 4BH
95 004C FatTest3 EQU 4CH
0096
97 004D FatTest1_1 EQU 4DH
98 004E FatTest2_1 EQU 4EH
99 004F FatTest3_1 EQU 4FH
0100
00101 ;-----------------------
102 0050 BMI1 EQU 50H
103 0051 BMI2 EQU 51H
104 0052 BMI3 EQU 52H
0105
106 0053 P_FAT1 EQU 53H
107 0054 P_FAT2 EQU 54H
108 0055 P_FAT3 EQU 55H
0109
110 0056 TestFatCnt EQU 56H ; Measure fat in 3 times
111 0057 FatLevel EQU 57H
0112
113 0058 M_Fat2hz EQU 58H
114 0059 Delay5s EQU 59H
115 005A MaxM_FatTm EQU 5AH
0116
117 005B Result1 EQU 5BH
118 005C Result2 EQU 5CH
119 005D Result3 EQU 5DH
0120
121 005E Result4 EQU 5EH
122 005F s5 EQU 5FH
00123 ;-----------------------------------
124 0060 BuzzCount EQU 60H
125 0061 Buzz16sCnt1 EQU 61H
126 0062 Buzz16sCnt2 EQU 62H
127 0063 Buzz60sCnt1 EQU 63H
128 0064 Buzz60sCnt2 EQU 64H
129 0065 KeyS1 EQU 65H
130 0066 KeyS2 EQU 66H ; time pass 60s after key isn't pressed and sys. return mainmode0
131 0067 KeyS EQU 67H ; long key count
132 0068 Keyms EQU 68H
133 0069 KeySound EQU 69H ; keytone 62.5ms
134 006A R180ms1 EQU 6AH
135 006B R180ms2 EQU 6BH
136 006C Count1 EQU 6CH
137 006D Count2 EQU 6DH
0138
139 006E s6 EQU 6EH
140 006F s7 EQU 6FH
00141 ;;;;;;;;;;;;;;;;
142 0070 Pendulum1 EQU 70H
143 0071 Pendulum2 EQU 71H
144 0072 Dummy EQU 72H
145 0073 DisplayR EQU 73H
146 0074 MainMode EQU 74H
147 0075 Mode1 EQU 75H
148 0076 FatModeFlg EQU 76H ;B0--SetUnitModeFlg ,B1--Unit Flg, B2--Fat test at Default status
149 0077 M_FatFlg EQU 77H
0150
151 0078 KeyValue1 EQU 78H
152 0079 KeyValue2 EQU 79H
153 007A KeyDoneFlg EQU 7AH
154 007B OptionR EQU 7BH ;B0--EnableTmr2Flg , B1-- left /rightFlg ,B2--Timer running B3--F/M Flg
155 007C AlmFlg EQU 7CH ;B0--Enable Alm Fuc. , B1--Alm arrive ,B2--Tmr arrive
0156
157 007D PortA EQU 7DH
158 007E FlgSet_12Hr EQU 7EH ;B0--12/24hr Flg, B1--A key /T key pressed Flg, B2--Keytone type Flg
159 007F IntDummy EQU 7FH
00160 .endd
0161
00162 .code
163 0000 **** NEW ADDR **** ORG 000H
164 00164 0000 D0AD JMP Start
0165
166 001C **** NEW ADDR **** ORG 01CH
167 00167 001C D06E JMP PDRint
0168
169 0020 **** NEW ADDR **** ORG 020H
00170 ;-----------------------------------------------------
00171 Timer2Int:
172 00172 0020 EE00 FAST
173 00173 0021 6807 STA T_SaveA
174 00174 0022 4A08 MAF T_SaveFlgC_Z
175 00175 0023 E603 TM2X 000000011B ;(000)512 4*512/32.768 =62.5ms
00176 ;;;;;;;;
00177 ;ProcessKeySound
178 00178 0024 3A4E ANDI FlgSet_12Hr, 4 ;Keytone type
179 00179 0025 A02C JNZ KeySoundType1
00180 ;Normal Keytone
181 00181 0026 6C69 LDA KeySound
182 00182 0027 B034 JZ HoldKeyCnt
183 00183 0028 4169 DEC* KeySound
184 00184 0029 A034 JNZ HoldKeyCnt
185 00185 002A FC00 ALM 0
186 00186 002B D034 JMP HoldKeyCnt
00187 KeySoundType1: ;keytone of timer start running
188 00188 002C 4169 DEC* KeySound
189 00189 002D 8031 JB0 $+4
190 00190 002E B033 JZ KeySoundType1_1
191 00191 002F FC80 ALM 80h
192 00192 0030 D034 JMP HoldKeyCnt
193 00193 0031 FC00 ALM 0
194 00194 0032 D034 JMP $+2
00195 KeySoundType1_1:
196 00196 0033 3BBE ANDI* FlgSet_12Hr, 1011B
00197 ;;;;;;;;;;
00198 HoldKeyCnt:
199 00199 0034 6C68 LDA Keyms ; Count at holdkey
200 00200 0035 B037 JZ $+2
201 00201 0036 4168 DEC* Keyms
00202 ;----
00203 MeasureHiTime:
204 00204 0037 6C77 LDA M_FatFlg
205 00205 0038 B04A JZ ProcessTimerBuzz
206 00206 0039 E643 TM2X 001000011B ;(001)8*4/32.768=0.9765625ms
00207 ;;;;;;;;;;;;;; ;portA.1 Output puls in 180ms
208 00208 003A 416A DEC* R180ms1
209 00209 003B B842 JC MeasureHiTime1
210 00210 003C 416B DEC* R180ms2
211 00211 003D B842 JC MeasureHiTime1
212 00212 003E 5BEA LDS R180ms1, 7
213 00213 003F 5DEB LDS R180ms2, 0BH
214 00214 0040 3D1D EORI* PortA, 1
215 00215 0041 0A7D OPA PortA
00216 MeasureHiTime1: ;Measure portA.4 hi level
217 00217 0042 3647 SUBI M_FatFlg, 4
218 00218 0043 A069 JNZ Exit_Timer2Int
219 00219 0044 404A INC* FatTest1
220 00220 0045 A069 JNZ Exit_Timer2Int
221 00221 0046 404B INC* FatTest2
222 00222 0047 A069 JNZ Exit_Timer2Int
223 00223 0048 404C INC* FatTest3
224 00224 0049 D069 JMP Exit_Timer2Int
00225 ;;;;;;;;;;;
00226 ProcessTimerBuzz:
227 00227 004A 3A4C ANDI AlmFlg, 4
228 00228 004B B052 JZ ProcessAlmBuzz
0229
230 00230 004C 6C60 LDA BuzzCount
231 00231 004D 2E61 OR Buzz16sCnt1
232 00232 004E 2E62 OR Buzz16sCnt2
233 00233 004F A05C JNZ Buzzing
234 00234 0050 3BBC ANDI* AlmFlg, 1011B
235 00235 0051 5874 LDS MainMode, 0
00236 ;;;;;;;;;;
00237 ProcessAlmBuzz:
238 00238 0052 6C74 LDA MainMode
239 00239 0053 A069 JNZ Exit_Timer2Int
240 00240 0054 3A2C ANDI AlmFlg, 2
241 00241 0055 B069 JZ Exit_Timer2Int
0242
243 00243 0056 6C60 LDA BuzzCount
244 00244 0057 2E63 OR Buzz60sCnt1
245 00245 0058 2E64 OR Buzz60sCnt2
246 00246 0059 A05C JNZ Buzzing
247 00247 005A 3BDC ANDI* AlmFlg, 1101B
248 00248 005B D069 JMP Exit_Timer2Int
0249
00250 Buzzing:
251 00251 005C 4160 DEC* BuzzCount ;125--hi,125--low,125--hi,625--low
252 00252 005D 77E0 MRW IntDummy, BuzzCount
0253
254 00254 005E 36AF SUBI IntDummy, 0AH
255 00255 005F B068 JZ ALMOn
256 00256 0060 36BF SUBI IntDummy, 0BH
257 00257 0061 B068 JZ ALMOn
258 00258 0062 36EF SUBI IntDummy, 0EH
259 00259 0063 B068 JZ ALMOn
260 00260 0064 36FF SUBI IntDummy, 0FH
261 00261 0065 B068 JZ ALMOn
00262 ALMOff:
263 00263 0066 FC00 ALM 0H
264 00264 0067 D069 JMP Exit_Timer2Int
00265 ALMOn:
266 00266 0068 FC80 ALM 80H ;(2K)
0267
00268 Exit_Timer2Int:
269 00269 0069 E240 TMSX 001000000B ; After 8/32.768 ms ,system is awake
270 00270 006A 6C07 LDA T_SaveA
271 00271 006B 6D08 MRA T_SaveFlgC_Z
272 00272 006C E918 SIE* 18H
273 00273 006D F400 RTS
00274 ;------------------------------
00275 PDRint:
276 00276 006E EE00 FAST
277 00277 006F 6809 STA P_SaveA
278 00278 0070 4A0A MAF P_SaveFlgC_Z
0279
280 00280 0071 E908 SIE* 08H
281 00281 0072 3A1B ANDI OptionR, 1
282 00282 0073 B075 JZ $+2
283 00283 0074 E918 SIE* 18H
0284
285 00285 0075 400B INC* R_2Hz
286 00286 0076 400C INC* T_2Hz
287 00287 0077 4167 DEC* KeyS
00288 ;;;;;;;;;;;;;;;;;;;;;
00289 ;Process display and sound at Measure Fat Mode
290 00290 0078 6C77 LDA M_FatFlg
291 00291 0079 B09A JZ PDP
292 00292 007A 4058 INC* M_Fat2hz
293 00293 007B 597F LDS IntDummy, 2
294 00294 007C 2658 SUB M_Fat2hz
295 00295 007D A08D JNZ M_FatBuzz
296 00296 007E 5858 LDS M_Fat2hz, 0
0297
298 00298 007F 4159 DEC* Delay5s
299 00299 0080 B88D JC M_FatBuzz
300 00300 0081 FC00 ALM 0
301 00301 0082 5A59 LDS Delay5s, 4
302 00302 0083 415A DEC* MaxM_FatTm
303 00303 0084 B89A JC PDP
304 00304 0085 F704 RF 4H
305 00305 0086 597D LDS PortA, 2
306 00306 0087 0A7D OPA PortA
307 00307 0088 58C9 LDS R_Error, 1
308 00308 0089 5877 LDS M_FatFlg, 0
309 00309 008A 5FE9 LDS KeySound, 0FH
310 00310 008B FC80 ALM 80H
311 00311 008C D0A9 JMP Exit_PDRint
00312 M_FatBuzz:
313 00313 008D 5A7F LDS IntDummy, 4
314 00314 008E 265A SUB MaxM_FatTm
315 00315 008F A09A JNZ PDP
0316
317 00317 0090 6C59 LDA Delay5s
318 00318 0091 A094 JNZ $+3
319 00319 0092 FC80 ALM 80H
320 00320 0093 D0A9 JMP Exit_PDRint
321 00321 0094 6C58 LDA M_Fat2hz
322 00322 0095 A098 JNZ $+3
323 00323 0096 FC50 ALM 80
324 00324 0097 D0A9 JMP Exit_PDRint
325 00325 0098 FC00 ALM 0
326 00326 0099 D0A9 JMP Exit_PDRint
0327
00328 PDP:
00329 ;;;;;;;;;;;;;;;;;Pendulum Display Process
330 00330 009A 6C74 LDA MainMode
331 00331 009B A0A9 JNZ Exit_PDRint
0332
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -