📄 testn8.lst
字号:
236 00 30 HexBuf .equ 030h ; Max 16-bit Hex
237 00 30 HexBuf0 .equ 030h ; most msb
238 00 31 HexBuf1 .equ 031h ;
239 00 32 HexBuf2 .equ 032h ;
240 00 33 HexBuf3 .equ 033h ; most lsb
241
242 00 40 DecBuf .equ 040h ; Max 5-digit BCD
243 00 40 DecBuf0 .equ 040h ; most msb
244 00 41 DecBuf1 .equ 041h ;
245 00 42 DecBuf2 .equ 042h ;
246 00 43 DecBuf3 .equ 043h ;
247 00 44 DecBuf4 .equ 044h ; most lsb
248
249 ; the followings variables need a fixed address
250 00 4C LDigit___1 .equ 4ch ; LCD Large Digit dsp for decimal place(2B)
251 00 4E LDigitxxx1 .equ 4eh ; LCD Large Digit dsp value(2B)
252 00 50 LDigitxx1x .equ 50h ; LCD Large Digit dsp value(2B)
253 00 52 LDigitx1xx .equ 52h ; LCD Large Digit dsp value(2B)
254 00 54 LDigit1xxx .equ 54h ; LCD Large Digit dsp value(2B)
255
256 ; for arithmetic calculation
257 00 60 YS_F_REG .equ 060h
258 00 60 YS_F_REG_0 .equ 060h ; most msb
259 00 61 YS_F_REG_1 .equ 061h ;
260 00 62 YS_F_REG_2 .equ 062h ;
261 00 63 YS_F_REG_3 .equ 063h ;
262 00 64 YS_F_REG_4 .equ 064h ; most lsb
263
264 00 70 YS_L_REG .equ 070h
265 00 70 YS_L_REG_0 .equ 070h ; most msb
266 00 71 YS_L_REG_1 .equ 071h ;
267 00 72 YS_L_REG_2 .equ 072h ;
268 00 73 YS_L_REG_3 .equ 073h ;
269 00 74 YS_L_REG_4 .equ 074h ; most lsb
270
271 00 80 YS_R_REG .equ 080h
272 00 80 YS_R_REG_0 .equ 080h ; most msb
273 00 81 YS_R_REG_1 .equ 081h ;
274 00 82 YS_R_REG_2 .equ 082h ;
275 00 83 YS_R_REG_3 .equ 083h ;
276 00 84 YS_R_REG_4 .equ 084h ; most lsb
277
278 ; the followings variables need a fixed address
279 00 90 NewWeightBCD .equ 090h ; New Weight obtained from AverageCount(2B)
280 00 90 NewWeightBCD0 .equ 090h ; most msb
281 00 91 NewWeightBCD1 .equ 091h ;
282 00 92 NewWeightBCD2 .equ 092h ;
283 00 93 NewWeightBCD3 .equ 093h ;
284 00 94 NewWeightBCD4 .equ 094h ; most lsb
285
286
287 ; the followings variables need a fixed address
288 00 96 Step1 .equ 096h ; 1st region dsp step(2B) - multipied by 10
289 00 9A Bound1 .equ 09Ah ; 1st Boundary of weighting display(2B)
290 00 9A MaxBound .equ 09Ah ; MaxBound
291 00 9E UnitCnt .equ 09Eh ; Unit count value(1B)
292 00 9E gRatio .equ 09Eh ; - 1g count ratio
293 00 9E oz1_8Ratio .equ 09Eh ; - 1/8oz count ratio
294 00 A0 ozRatio .equ 0A0h ; 1oz count ratio(2B)
295 00 A4 lbRatio .equ 0A4h ; 1lb count ratio(2B)
296
297 ;-----------------------------
298
299
300 .list on
301
302 ;-----------------
303 00 01 VerD1 .equ 1
304 00 08 VerD2 .equ 8
305
306 ;----------------------------------------------------------------------------
307
308 0000 .origin VectorTable
309 0000 ResetVector
310 0000 8B AD VENT0 1,0,Reset ; Reset Vector
311 0002 C0 8D VENT1 1,1,INTB_Int ;
312 0004 C1 2F VENT2 1,1,INT0_Int ;
313 0006 C0 80 VENT3 1,1,INT1_Int ;
314 000A ORG 00ah ;
315 000A C1 89 VENT5 1,1,INTT0_Int ;
316
317 ;----------------------------------------------------------------------------
318 ;
319 000C .origin Main1Loop
320
321 ;----------------------------------------------------------------------------
322 000C DD 66 IRETSB POP SB
323 000E D5 IRET
324 ;----------------------------------------------------------------------------
325 000F 2A RETHLEA POP HL
326 0010 28 POP EA
327 0011 C5 RET
328 ;----------------------------------------------------------------------------
329 0012 RETWXHLEA
330 0012 2C POP WX
331 0013 2A POP HL
332 0014 28 POP EA
333 0015 C5 RET
334 ;----------------------------------------------------------------------------
335 0016 RETYZWXHLEA
336 0016 2E POP YZ
337 0017 2C POP WX
338 0018 2A POP HL
339 0019 28 POP EA
340 001A C5 RET
341
342 ;***********************************************************
343 ; F: Copy Buf to Buf from xyH to x0H where x & y are any hex num
344 ; I: HL = Destination Buf(Buf end pointer)
345 ; WL = Source Buf(Buf end pointer)
346 ; O: HL = Duplicated Buf
347 ; D: A, HL
348 ;
349 001B 8F CpyBuf LD A,@WL ;
350 001C 7B XCHD A,@HL ;
351 001D 0D JR CpyBuf ;
352 001E C5 RET
353
354 ;----------------------------------------------------------------------------
355 ;
356 0020 .origin LookupTable
357
358 0020 DD 40 RSMB_Variable SMB VariableBank
359 0022 DD 4F RSMB_MemMapIO SMB MemMapIOBank
360 0024 DD 41 RSMB_LCD SMB LCDBank
361
362 0026 82 RINCS_2HL INCS HL ;
363 0027 82 INCS HL ;
364 0028 DC DA RDECS_HL DECS HL ;
365 002A DC F2 RLD_HLEA LD HL,EA ;
366 002C DC F4 RLD_WXEA LD WX,EA ;
367 002E 81 00 RLD_EA0 LD EA,#0 ;
368 0030 D9 09 RLD_E0 LD E,#0 ;
369 0032 D9 00 RCPSE_A0 CPSE A,#0 ;
370 0034 DC EA RCPSE_EAHL CPSE EA,HL ;
371 0036 DC AA RADC_EAHL ADC EA,HL ;
372
373
374 0038 CD 4E RLD_LDIGxxx1EA LD LDigitxxx1,EA
375 003A CD 50 RLD_LDIGxx1xEA LD LDigitxx1x,EA
376
377 003C 44 4B RDiv_YS TCALL Div_YS
378 003E 44 91 RRound_YS TCALL Round_YS
379 0040 49 8F RMul_10_FReg TCALL Mul_10_FReg
380 0042 49 98 RDiv_10_FReg TCALL Div_10_FReg
381 0044 44 3B RDouble_YS TCALL Double_YS
382
383 0046 49 9F RCmpHex TCALL CmpHex
384 0048 40 1B RCpyBuf TCALL CpyBuf
385 004A 49 43 RHex2BCD_16 TCALL Hex2BCD_16
386 004C 4A 00 RSubHex TCALL SubHex
387
388 004E 4A 29 RSkipSRC_YZ TCALL SkipSRC_YZ
389 0050 49 67 RByteAry TCALL ByteAry
390 0052 49 6F RWrd2Ary TCALL Wrd2Ary
391 0054 4C F8 RStoreWordCode TCALL StoreWordCode
392 0056 4C F2 RStoreByteCode TCALL StoreByteCode
393
394 0058 4D 74 RDspSDigit TCALL DspSDigit
395 005A 4D 9E RDsp4LDigit TCALL Dsp4LDigit
396 005C 4D AA RDspSymbol TCALL DspSymbol
397
398 005E 4A B6 RKScanDelay TCALL KScanDelay
399
400 0060 48 1E RCalWeightCnt TCALL CalWeightCount
401 0062 48 C8 RActCurStp2Ary TCALL ActlCurStep2Ary
402 0064 48 C1 RCurStep2Ary TCALL CurStep2Ary
403 0066 48 D7 RSetBnd TCALL SetBnd
404 0068 48 F7 RGetAverageCnt TCALL GetAverageCnt
405 006A 48 3B RAverageSample TCALL AverageSample
406
407 006C 49 29 RNWCnt2FReg TCALL NWCnt2FReg
408 006E 49 2F RHxFReg2Dec TCALL HxFReg2Dec
409 0070 49 38 RCpy_R2FReg TCALL Cpy_R2FReg
410 0072 49 3B RCpy_F2LReg TCALL Cpy_F2LReg
411 0074 4A 69 RPutDec TCALL PutDec
412
413 0076 DD 67 RPush_SB PUSH SB
414
415 0078 00 0F RRET_HLEA TJP RETHLEA
416 007A 00 12 RRET_WXHLEA TJP RETWXHLEA
417 007C 00 16 RRET_YZWXHLEA TJP RETYZWXHLEA
418 007E 00 0C RIRET_SB TJP IRETSB
419
420 ;----------------------------------------------------------------------------
421 ;
422 0080 .origin Main2Loop
423
424 ;----------------------------------------------------------------------------
425 ; F: On/Zero Button(MaB)
426 ; I: WeightTareNow
427 ; O: WeightTareNow
428 ; N: Rising edge when release key(MaB)
429 ; When enter INT1_Int, IS0, IS1 = 1, 0
430 ;
431 0080 INT1_Int
432 0080 FE AE BITR IRQ1 ;
433 0082 FE A0 BITR IS0 ;
434 0084 73 REF RPush_SB ;
435 0085 20 REF RSMB_Variable ;
436 0086 E2 22 BTSF CalibrateOn ;
437 0088 E0 21 BITR CntDspNow ;
438 ; REF RSMB_MemMapIO ;
439 ;INT1_Int1
440 ; BTST ONZERO_PIN
441 ; JR INT1_Int1
442 ; REF RSMB_Variable ;
443 008A F1 21 BITS WeightTareNow ; Set flag to weight tare
444 008C 77 REF RIRET_SB ;
445
446 ;----------------------------------------------------------------------------
447 ; F: INTB Interrupt for Basic Timer Overflow
448 ; N: Interrupt interval = 2.2886.ms
449 ; when enter into INTB_Int, IS0, IS1 = 1, 0
450 008D INTB_Int
451 008D FE 88 BITR IRQB ;
452 008F FE A0 BITR IS0 ;
453
454 0091 73 REF RPush_SB ;
455 0092 DD 53 SRB RegisterINTB ;
456 0094 20 REF RSMB_Variable ;
457
458 0095 E2 22 BTSF CalibrateOn ; If Calibrate On, skip sleep time
459 0097 90 D2 JPS INTB_Int0_2 ; & Timer counting
460
461 0099 CE 36 LD EA,BCNT_1s_M ;
462 009B C9 01 ADS EA,#1 ;
463 009D 90 D0 JPS INTB_Int0_1 ;
464 009F CA 35 INCS BCNT_1s_H ; never skip
465 00A1 C2 35 BTSF BCNT_1s_H.0 ;
466 00A3 90 D0 JPS INTB_Int0_1 ;
467 00A5 INTB_1000ms
468
469 00A5 D3 7F BTST HoldRd ; Check for hold reading in progress
470 00A7 1C JR INTB_IntA ;
471
472 00A8 CA 3F INCS HoldTimer ; Check hold reading timeout
473 00AA 19 JR INTB_IntA ;
474 00AB D0 7F BITR HoldRd ;
475 00AD C0 7F BITR HoldStableChk ;
476 00AF F1 7F BITS HoldNotAllow ; Hold is not allow unless reading change
477 00B1 BC LD A,#HoldChkTime ; Reset timer
478 00B2 89 3F LD HoldTimer,A ;
479 00B4 INTB_IntA
480 00B4 INTB_IntB
481 00B4 E2 25 BTSF AutoOffEn ; Chk Auto-power off enabled or not
482 00B6 90 CB JPS INTB_IntC ; if not, jump
483 00B8 C2 22 BTSF Chge4stepNow ; Chk 4 step changing
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -