📄 cm-941.lst
字号:
333 00333 009C 3A2B ANDI OptionR, 2
334 00334 009D A0A4 JNZ ShiftRight
0335
336 00336 009E 6C70 LDA Pendulum1
337 00337 009F 98A6 JB3 ShiftRight1
00338 ShiftLeft:
339 00339 00A0 3BDB ANDI* OptionR, 1101B
340 00340 00A1 5270 SL0 Pendulum1
341 00341 00A2 5271 SL0 Pendulum2
342 00342 00A3 D0A9 JMP Exit_PDRint
00343 ShiftRight:
344 00344 00A4 6C70 LDA Pendulum1
345 00345 00A5 80A0 JB0 ShiftLeft
00346 ShiftRight1:
347 00347 00A6 3F2B ORI* OptionR, 2
348 00348 00A7 5070 SR0 Pendulum1
349 00349 00A8 5071 SR0 Pendulum2
00350 Exit_PDRint:
00351 ;;;;;;;;;;;;;;;;;;;;
352 00352 00A9 E240 TMSX 001000000B ;8/32.768ms
353 00353 00AA 6C09 LDA P_SaveA
354 00354 00AB 6D0A MRA P_SaveFlgC_Z
355 00355 00AC F400 RTS
00356 ;--------------------------------
00357 Start:
358 00358 00AD 0000 NOP
359 00359 00AE 0000 NOP
360 00360 00AF F797 RF 10010111B
0361
362 00362 00B0 FC80 ALM 80H ;Enable alarm
363 00363 00B1 E802 SHE 02H
364 00364 00B2 EA02 PLC 02H
365 00365 00B3 E203 TMSX 000000011B ;(000)512 4*512/32.768 =62.5ms
366 00366 00B4 FF00 HALT
367 00367 00B5 FC00 ALM 0H
0368
369 00369 00B6 5FF2 LDS Dummy, 0FH ;All icon display
370 00370 00B7 0602 LCP 0, Dummy
371 00371 00B8 060A LCP 1, Dummy
372 00372 00B9 0612 LCP 2, Dummy
373 00373 00BA 061A LCP 3, Dummy
374 00374 00BB 0622 LCP 4, Dummy
375 00375 00BC 062A LCP 5, Dummy
376 00376 00BD 0632 LCP 6, Dummy
377 00377 00BE 063A LCP 7, Dummy
378 00378 00BF 0642 LCP 8, Dummy
379 00379 00C0 064A LCP 9, Dummy
380 00380 00C1 0652 LCP 0AH, Dummy
0381
00382 ;Initialize RAM
383 00383 00C2 5801 LDS TempR1, 0
384 00384 00C3 5C02 LDS TempR2, 8
385 00385 00C4 1E01 MVU TempR1
00386 Clear_Ram:
387 00387 00C5 5800 LDS TempR0, 0
388 00388 00C6 1D02 MVH TempR2
389 00389 00C7 1C01 MVL TempR1
390 00390 00C8 6880 STA @HL
391 00391 00C9 4101 DEC* TempR1
392 00392 00CA B8C5 JC Clear_Ram
393 00393 00CB 4102 DEC* TempR2
394 00394 00CC B8C5 JC Clear_Ram
00395 ;Set the porta all output
396 00396 00CD 5972 LDS Dummy, 2
397 00397 00CE 0A72 OPA Dummy
398 00398 00CF F597 SPA 10111B
399 00399 00D0 5872 LDS Dummy, 0
400 00400 00D1 0C72 OPB Dummy
401 00401 00D2 F5AF SPB 01111B
0402
403 00403 00D3 58A5 LDS Hr_H, 1
404 00404 00D4 5924 LDS Hr_L, 2
405 00405 00D5 58AD LDS AlmHr_H, 1
406 00406 00D6 592C LDS AlmHr_L, 2
407 00407 00D7 5A76 LDS FatModeFlg, 4 ;Fat parameter is default paremeter
408 00408 00D8 5991 LDS Age2, 3
409 00409 00D9 5895 LDS Height4, 1
410 00410 00DA 5B94 LDS Height3, 7
411 00411 00DB 5B18 LDS Weight3, 6
412 00412 00DC 5A97 LDS Weight2, 5
413 00413 00DD 5970 LDS Pendulum1, 0010B
414 00414 00DE 5971 LDS Pendulum2, 0010B
415 00415 00DF EA02 PLC 02H
416 00416 00E0 E281 TMSX 010000001B ;010(32768) 2*32768/32.768=2S
417 00417 00E1 FF00 HALT
418 00418 00E2 EA18 PLC 18H
419 00419 00E3 E908 SIE* 08H
00420 ;SCC 01011100B ;x6 = 1 (bclk) ,x4 = 1(ioc),x3 = 1(iod),x2,1,0 = (100)ph6 2MS
00421 ;==========================
00422 Main:
423 00423 00E4 C0F2 CALL Clock
424 00424 00E5 C135 CALL Timer
425 00425 00E6 C152 CALL KeyProcess
426 00426 00E7 C4DC CALL DisplayProcess
427 00427 00E8 C6D4 CALL MeasureFat
0428
429 00429 00E9 6C77 LDA M_FatFlg
430 00430 00EA A0E4 JNZ Main
0431
432 00432 00EB F518 SCA 18H
433 00433 00EC EA03 PLC 3
434 00434 00ED FF00 HALT
435 00435 00EE 0000 NOP
436 00436 00EF 0000 NOP
0437
438 00438 00F0 EE00 FAST
439 00439 00F1 D0E4 JMP Main
00440 ;============================
0441
00442 ;--------------------
00443 ;Adjust the clock
00444 ;---------------------
445 00445 00F2 5900 Clock: LDS TempR0, 2
446 00446 00F3 260B SUB R_2Hz
447 00447 00F4 A134 JNZ Exit_Clock
448 00448 00F5 580B LDS R_2Hz, 0
00449 ;;;;;;;Count 60S of Alm at mainmode 0
450 00450 00F6 6C74 LDA MainMode
451 00451 00F7 A0FE JNZ Count16s
452 00452 00F8 6C63 LDA Buzz60sCnt1
453 00453 00F9 2E64 OR Buzz60sCnt2
454 00454 00FA B0FE JZ Count16s
455 00455 00FB 4163 DEC* Buzz60sCnt1
456 00456 00FC B8FE JC Count16s
457 00457 00FD 4164 DEC* Buzz60sCnt2
00458 ;;;;;;Count 16S of Buzz at timer stop running
00459 Count16s:
460 00460 00FE 6C61 LDA Buzz16sCnt1
461 00461 00FF 2E62 OR Buzz16sCnt2
462 00462 0100 B104 JZ ReturnNormal
463 00463 0101 4161 DEC* Buzz16sCnt1
464 00464 0102 B904 JC ReturnNormal
465 00465 0103 4162 DEC* Buzz16sCnt2
00466 ;;;;;;;;;if no key pressed after 60s & not at mainmode0,sys. return mainmode0 automatically
00467 ReturnNormal:
468 00468 0104 6C74 LDA MainMode
469 00469 0105 B10F JZ CLKSec_L
470 00470 0106 3634 SUBI MainMode, 3
471 00471 0107 A10A JNZ $+3
472 00472 0108 3625 SUBI Mode1, 2
473 00473 0109 B10F JZ CLKSec_L
0474
475 00475 010A 4165 DEC* KeyS1
476 00476 010B B90F JC CLKSec_L
477 00477 010C 4166 DEC* KeyS2
478 00478 010D B90F JC CLKSec_L
479 00479 010E 5874 LDS MainMode, 0
00480 CLKSec_L:
00481 ;(20H)
482 00482 010F 5902 LDS TempR2, 2
483 00483 0110 5801 LDS TempR1, 0
484 00484 0111 1E01 MVU TempR1
485 00485 0112 1D02 MVH TempR2
486 00486 0113 1C01 MVL TempR1
487 00487 0114 C800 CALL AddSecMin
0488
489 00489 0115 6C20 LDA Sec_L
490 00490 0116 2E21 OR Sec_H
491 00491 0117 A134 JNZ Exit_Clock
492 00492 0118 5901 LDS TempR1, 2
493 00493 0119 1C01 MVL TempR1
494 00494 011A C800 CALL AddSecMin
0495
496 00496 011B 6C22 LDA Min_L
497 00497 011C 2E23 OR Min_H
498 00498 011D A121 JNZ CheckAlarm
0499
500 00500 011E 5A01 LDS TempR1, 4
501 00501 011F 1C01 MVL TempR1
502 00502 0120 C80C CALL AddHour
00503 CheckAlarm:
504 00504 0121 3A1C ANDI AlmFlg, 1
505 00505 0122 B134 JZ Exit_Clock
0506
507 00507 0123 6C2D LDA AlmHr_H
508 00508 0124 2C25 EOR Hr_H
509 00509 0125 A134 JNZ Exit_Clock
510 00510 0126 6C2C LDA AlmHr_L
511 00511 0127 2C24 EOR Hr_L
512 00512 0128 A134 JNZ Exit_Clock
513 00513 0129 6C2B LDA AlmMin_H
514 00514 012A 2C23 EOR Min_H
515 00515 012B A134 JNZ Exit_Clock
516 00516 012C 6C2A LDA AlmMin_L
517 00517 012D 2C22 EOR Min_L
518 00518 012E A134 JNZ Exit_Clock
0519
0520
521 00521 012F 3F2C ORI* AlmFlg, 2
522 00522 0130 5860 LDS BuzzCount, 0
523 00523 0131 5E63 LDS Buzz60sCnt1,0CH
524 00524 0132 59E4 LDS Buzz60sCnt2,3
525 00525 0133 D4CC JMP ActiveTMR2
00526 Exit_Clock:
527 00527 0134 F400 RTS
00528 ;------------------------
00529 Timer:
530 00530 0135 3A4B ANDI OptionR, 4
531 00531 0136 B151 JZ Exit_Timer
0532
533 00533 0137 5900 LDS TempR0, 2
534 00534 0138 260C SUB T_2Hz
535 00535 0139 A151 JNZ Exit_Timer
536 00536 013A 580C LDS T_2Hz, 0
0537
538 00538 013B 411A DEC* SData1
539 00539 013C 571A DAS* SData1
540 00540 013D B951 JC Exit_Timer
541 00541 013E 411B DEC* SData2
542 00542 013F B951 JC Exit_Timer
543 00543 0140 5A9B LDS SData2, 5
544 00544 0141 411C DEC* SData3
545 00545 0142 571C DAS* SData3
546 00546 0143 B951 JC Exit_Timer
547 00547 0144 411D DEC* SData4
548 00548 0145 571D DAS* SData4
549 00549 0146 B951 JC Exit_Timer
0550
551 00551 0147 581A LDS SData1, 0
552 00552 0148 581B LDS SData2, 0
553 00553 0149 581C LDS SData3, 0
554 00554 014A 581D LDS SData4, 0
555 00555 014B 3F4C ORI* AlmFlg, 4
556 00556 014C 5860 LDS BuzzCount, 0
557 00557 014D 5861 LDS Buzz16sCnt1,0
558 00558 014E 58E2 LDS Buzz16sCnt2,1
559 00559 014F 3BBB ANDI* OptionR, 1011B
560 00560 0150 D4CC JMP ActiveTMR2
00561 Exit_Timer:
562 00562 0151 F400 RTS
00563 ;===========================
00564 KeyProcess:
565 00565 0152 5A00 LDS TempR0, 4
566 00566 0153 265A SUB MaxM_FatTm
567 00567 0154 B4C6 JZ NoKey
00568 KeyProcess1:
569 00569 0155 586C LDS Count1, 0b
570 00570 0156 58ED LDS Count2, 1 ;Read portC & portD in 50 times
571 00571 0157 7C01 MWR TempR1, KeyValue1
572 00572 0158 7C82 MWR TempR2, KeyValue2
00573 KeyScan:
574 00574 0159 4778 IPC KeyValue1
575 00575 015A 2C01 EOR TempR1
576 00576 015B A155 JNZ KeyProcess1
577 00577 015C 4879 IPD KeyValue2
578 00578 015D 2C02 EOR TempR2
579 00579 015E A155 JNZ KeyProcess1
0580
581 00581 015F 416C DEC* Count1
582 00582 0160 B959 JC KeyScan
583 00583 0161 416D DEC* Count2
584 00584 0162 B959 JC KeyScan
0585
586 00586 0163 6C78 LDA KeyValue1
587 00587 0164 2E79 OR KeyValue2
588 00588 0165 B4C6 JZ NoKey ;HaveKey?
00589 ;HaveKey
0590
591 00591 0166 5E65 LDS KeyS1, 0CH
592 00592 0167 59E6 LDS KeyS2, 3 ;if not MainMode0 & keypressed,return MainMode0 after 60s
0593
594 00594 0168 3668 SUBI KeyValue1, 6
595 00595 0169 B424 JZ A_T_Key ;enter set unit Mode
596 00596 016A 36C8 SUBI KeyValue1, 0CH
597 00597 016B B42F JZ T_F_Key ;Set Fat Parameter to defalt parameter
0598
599 00599 016C 3A1A ANDI KeyDoneFlg, 1
600 00600 016D A464 JNZ LongKeyProcess
00601 ;ShortKeyProcess
0602
603 00603 016E 58FA LDS KeyDoneFlg, 1
604 00604 016F 5A67 LDS KeyS, 4 ;Long Key Count
0605
606 00606 0170 6C78 LDA KeyValue1
607 00607 0171 A174 JNZ $+3
608 00608 0172 3A19 ANDI KeyValue2, 1
609 00609 0173 A44C JNZ S_Key
0610
611 00611 0174 6C74 LDA MainMode
612 00612 0175 A178 JNZ $+3
613 00613 0176 5863 LDS Buzz60sCnt1, 0
614 00614 0177 5864 LDS Buzz60sCnt2, 0
0615
0616
617 00617 0178 3618 SUBI KeyValue1, 1
618 00618 0179 B181 JZ C_Key
619 00619 017A 3628 SUBI KeyValue1, 2
620 00620 017B B1AB JZ A_Key
621 00621 017C 3648 SUBI KeyValue1, 4
622 00622 017D B285 JZ T_Key
623 00623 017E 3688 SUBI KeyValue1, 8
624 00624 017F B344 JZ F_Key
0625
626 00626 0180 F400 RTS
00627 ;;;;;
00628 C_Key:
629 00629 0181 6C74 LDA MainMode
630 00630 0182 B1A9 JZ Clock_C_Key
631 00631 0183 3614 SUBI MainMode, 1
632 00632 0184 B19F JZ SetClK_C_Key
633 00633 0185 3624 SUBI MainMode, 2
634 00634 0186 B195 JZ Alm_C_Key
635 00635 0187 3634 SUBI MainMode, 3
636 00636 0188 B190 JZ Tmr_C_Key
00637 ;---
00638 ;Fat_C_Key
639 00639 0189 3BBB ANDI* OptionR, 1011B
640 00640 018A 5877 LDS M_FatFlg, 0
641 00641 018B 5849 LDS R_Error, 0
642 00642 018C 597D LDS PortA, 2
643 00643 018D 0A7D OPA PortA
644 00644 018E F704 RF 4
645 00645 018F D192 JMP $+3
00646 Tmr_C_Key:
647 00647 0190 5861 LDS Buzz16sCnt1,0
648 00648 0191 5862 LDS Buzz16sCnt2,0
649 00649 0192 5874 LDS MainMode, 0
650 00650 0193 3BBB ANDI* OptionR, 1011B
651 00651 0194 D4CA JMP SetKeySound
00652 Alm_C_Key:
653 00653 0195 5874 LDS MainMode, 0
654 00654 0196 6C1A LDA SData1
655 00655 0197 682A STA AlmMin_L
656 00656 0198 6C1B LDA SData2
657 00657 0199 682B STA AlmMin_H
658 00658 019A 6C1C LDA SData3
659 00659 019B 682C STA AlmHr_L
660 00660 019C 6C1D LDA SData4
661 00661 019D 682D STA AlmHr_H
662 00662 019E D4CA JMP SetKeySound
00663 SetClK_C_Key:
664 00664 019F 5874 LDS MainMode, 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -