📄 key.lst
字号:
00000008 +0 623 623 RET_IC equ 0y00001000 ;V1.23return for IC key
00000007 +0 624 624 SCAN_IC equ 0x07 ;V1.23 scan for IC key
00000001 +0 625 625 RET_RATE equ 0y00000001 ;return for RATE key
00000004 +0 626 626 RETV1205_RATE equ 0y00000100 ;V1.28
0000000A +0 627 627 SCAN_RATE equ 0x0a ;scan for RATE key
00000005 +0 628 628 SCANV1205_RATE equ 0x05 ;V1.28
00000001 +0 629 629 RET_FEED equ 0y00000001 ;return for FEED key
0000000B +0 630 630 SCAN_FEED equ 0x0b ;scan for FEED key
00000008 +0 631 631 RET_SET equ 0y00001000 ;return for set(time) key
0000000A +0 632 632 SCAN_SET equ 0x0a ;scan for set(time) key
00000003 +0 633 633 COLOR equ 3
+0 634 634 ;==============================================================================
+0 635 635 ; Key scan interrupt (set 800us interval for TC4)
+0 636 636 ;==============================================================================
00000000 +0 637 637 init_scan:
00000000 0A0000 R +0 638 638 ld (P9DR),0y00000000 ;data latch to 0 (for initial value)
00000003 E000663F R +0 639 639 or (P1DR),0y00111111 ;
00000007 0A0000 R +0 640 640 ld (P5CR),0y00000000 ;
0000000A 0A0000 R +0 641 641 ld (P5DR),0y00000000 ;set P50-P53 as input port
+0 642 642 ;T4CR: bit7(TFF4) bit654(TC4CK) bit3(TC4S) bit210(TC4M)
0000000D CA00 R +0 643 643 clr (ILH).IL10 ;clear TC4 interrupt flag
0000000F 0A0064 R +0 644 644 ld (TC4DR),100 ;16MHz/2^7/100 = 125Hz(800us)
00000012 C83A +0 645 645 di ;V2.05
00000014 C200 R +0 646 646 set (EIRH).EF10 ;TC4 interrupt enable
00000016 C03A +0 647 647 ei ;V2.05
00000018 0A0004 R +0 648 648 ld (TC4CR),0y00000100
0000001B 0A0024 R +0 649 649 ld (TC4CR),0y00100100 ;TC4S=1(count start) TC4CK=001(select fc/2^7) TC4M=000(select 8bittimer mode)
0000001E FA +0 650 650 ret
+0 651 651
+0 652 652 ;==============================================================================
+0 653 653 ; Initialize key buffer pointer, counter
+0 654 654 ;==============================================================================
0000001F +0 655 655 init_keybuf:
0000001F C83A +0 656 656 di
00000021 F10000F900 R +0 657 657 ld (KEY_CT),0 ;key counter clear
00000026 F10000F900 R +0 658 658 ld (KEY_WPTR),0 ;key bufeer write pointer clear
0000002B F10000F900 R +0 659 659 ld (KEY_RPTR),0 ;key buffer read pointer clear
00000030 C03A +0 660 660 ei
00000032 FA +0 661 661 ret
+0 662 662
+0 663 663 ;==============================================================================
+0 664 664 ; Get key code from key buffer
+0 665 665 ; out: reg.a <- key code
+0 666 666 ; KEYIN <- key code
+0 667 667 ; c clear: illegal key
+0 668 668 ; use register: c,hl
+0 669 669 ;==============================================================================
00000033 +0 670 670 key_get:
00000033 E1000042 R +0 671 671 ld c,(KEY_RPTR) ;key buffer read pointer-->c
00000037 4B0000 R +0 672 672 ld hl,KEY_BUF ;key buffer start address-->hl
0000003A E740 +0 673 673 ld a,(hl+c) ;key code wanted-->a
0000003C F1000078 R +0 674 674 ld (KEYIN),a ;key code in a-->register KEYIN
00000040 22 +0 675 675 inc c ;prepared for next key code
00000041 EA643F +0 676 676 and c,0x3f ;\recycle KEY_RPTR in key buffer(3fh)
00000044 F100007A R +0 677 677 ld (KEY_RPTR),c ;/
00000048 E10000F8 R +0 678 678 dec (KEY_CT) ;key counter decrease one
0000004C 6730 +0 679 679 cmp a,K_MAX ;over the max key code? no, set c is OK
0000004E FA +0 680 680 ret
+0 681 681
+0 682 682 ;==============================================================================
+0 683 683 ; and update MDFLG,DP_POS from MDFLG_RT,DP_POS_RT
+0 684 684 ;==============================================================================
+0 685 685 ;MDFLG_0:
+0 686 686 ;SW_DP0 ;SW_DP1;SW_DP2;SW_DP3;SW_DP4;SW_DP5;SW_DP6;SW_ADM
+0 687 687 ;MDFLG_1:
+0 688 688 ;SW_SGT,SW_SGM,SW_SGG,SW_SGK,SW_GT,SW_MGT,SW_RNDUP,SW_RND54
+0 689 689 ;MDFLG_2:
+0 690 690 ;SW_SG,SW_ICPM,SW_IC,SW_NP,SW_OFF,SW_AC,SW_V15,SW_FEED,SW_A,SW_M2,SW_AMZ
+0 691 691 ;MDFLG_3:
+0 692 692 ;SW_DTST,SW_ADM12,SW_EUTX,SW_D14,SW_D10,SW_TA,SW_M2,SW_FIN
+0 693 693 ;MDFLG_01:no use
+0 694 694 ;MDFLG_11:no use
+0 695 695 ;MDFLG_21:no use
+0 696 696 ;------------------------------------------
+0 697 697 ;===========================================================
0000004F +0 698 698 update_md:
0000004F E1000040 R +0 699 699 ld a,(MDFLG_RT0) ;
00000053 0E00 R +0 700 700 ld (MDFLG_0),a
00000055 E1000040 R +0 701 701 ld a,(MDFLG_RT1) ;
00000059 0E00 R +0 702 702 ld (MDFLG_1),a
0000005B E1000040 R +0 703 703 ld a,(MDFLG_RT2) ;
0000005F 0E00 R +0 704 704 ld (MDFLG_2),a
00000061 E1000040 R +0 705 705 ld a,(MDFLG_RT3) ;
00000065 0E00 R +0 706 706 ld (MDFLG_3),a
00000067 0C00 R +0 707 707 ld a,(DP_POS_RT) ;
00000069 0E00 R +0 708 708 ld (DP_POS),a
0000006B 480000 R +0 709 709 ld wa,M_FX_SGM
0000006E E10000FC R +0 710 710 test (M_FX_SGM>>4).a ;bit -reverse-> jump status
00000072 86 +0 711 711 j t,to_fix_ac ;if jump status is 1 -> branch
00000073 +0 712 712 to_fix_sgm: ;V2.06
00000073 480000 R +0 713 713 ld wa,SW_SGM
00000076 E10000F2 R +0 714 714 set (SW_SGM>>4).a
+0 715 715
0000007A +0 716 716 to_fix_ac:
0000007A 480000 R +0 717 717 ld wa,M_FX_AC
0000007D E10000FC R +0 718 718 test (M_FX_AC>>4).a ;bit -reverse-> jump status
00000081 86 +0 719 719 j t,to_fix_m14 ;if jump status is 1 -> branch
00000082 480000 R +0 720 720 ld wa,SW_AC
00000085 E10000F2 R +0 721 721 set (SW_AC>>4).a
00000089 +0 722 722 to_fix_m14:
00000089 480000 R +0 723 723 ld wa,M_FX_M14
0000008C E10000FC R +0 724 724 test (M_FX_M14>>4).a ;bit -reverse-> jump status
00000090 86 +0 725 725 j t,to_fix_54 ;if jump status is 1 -> branch
00000091 480000 R +0 726 726 ld wa,M14
00000094 E10000F2 R +0 727 727 set (M14>>4).a
00000098 +0 728 728 to_fix_54: ;V2.06
+0 729 729 ;V3.00 @BBC (M_FX_54,to_fix_sd) ;V2.06
+0 730 730 ;V3.00 @SEB (SW_RND54) ;V2.06
+0 731 731 ;V3.00to_fix_sd: ;V2.06
+0 732 732 ;V3.00 @BBC (M_FX_SD,to_set_icpm) ;V2.06
+0 733 733 ;V3.00 @SEB (SW_DTST) ;V2.06
+0 734 734 ;V3.00to_set_icpm:
+0 735 735 ;V3.00 @BBC (SW_V15,to_fix_end) ;V2.07
+0 736 736 ;V3.00 @BBC (F_ICPM,to_set_icpm_1) ;V2.07 to set IC_PM
+0 737 737 ;V3.00 @SEB (SW_ICPM_RT) ;V2.07
+0 738 738 ;V3.00 @SEB (SW_ICPM) ;V2.07
+0 739 739 ;V3.00 jp to_fix_end ;V2.07
+0 740 740 ;V3.00to_set_icpm_1:
+0 741 741 ;V3.00 @CLB (SW_ICPM_RT) ;V2.07
+0 742 742 ;V3.00 @CLB (SW_ICPM) ;V2.07
+0 743 743 ;V3.00to_fix_end:
00000098 FA +0 744 744 ret
+0 745 745
+0 746 746 ;V2.00disp_rate_blink:
+0 747 747
+0 748 748 ;V2.00 ret
+0 749 749 ;==============================================================================
+0 750 750 ;auto switch off time check, 5 minutes=300000us. (AUTO_OFF_TIME)=300000/400=750
+0 751 751 ;==============================================================================
+0 752 752 ;V2.03auto_off_check: ;V1.08
+0 753 753 ;V2.03 @BBC (M_HAND,auto_off_check_end) ;V1.18
+0 754 754 ;V2.03 ld wa,(AUTO_OFF_TIM)
+0 755 755 ;V2.03 cmp wa,0
+0 756 756 ;V2.03 jr eq,auto_off_check_end
+0 757 757 ;V2.03 dec wa
+0 758 758 ;V2.03 ld (AUTO_OFF_TIM),wa
+0 759 759 ;V2.03 cmp wa,0
+0 760 760 ;V2.03 jr ne,auto_off_check_end
+0 761 761 ;V2.03 ld wa,AUTOOFFTIME ;750 x 400=300000us=5 minutes
+0 762 762 ;V2.03 ld (AUTO_OFF_TIM),wa
+0 763 763 ;V2.03 @SEB (F_WAKE)
+0 764 764 ;V2.03auto_off_check_end:
+0 765 765 ;V2.03 ret
+0 766 766 ;==============================================================================
+0 767 767 ;display backlight color control green, green+red=salmon pink
+0 768 768 ;==============================================================================
00000099 +0 769 769 blink_vfd:
+0 770 770 ;V4.11 @BBS (F_OFF,blink_vfd_off) ;V2.06
+0 771 771 ;V4.11 @BBS (IO_MT,blink_vfd_off) ;V2.07
+0 772 772 ;V3.00 @BBS (RATE_PROG,blink_vfd_start)
+0 773 773 ;V3.00 @BBS (EURO_PROG,blink_vfd_start)
+0 774 774 ;V4.11 @BBS (IC_PROG,blink_vfd_start)
+0 775 775 ;V3.00 @BBS (RTC_SET,blink_vfd_start)
+0 776 776 ;V4.11 @CLB (F_BLINK) ;V2.10
+0 777 777 ;V4.11 ret
00000099 +0 778 778 blink_vfd_start:
+0 779 779 ;V4.11 inc (BLK_CT)
+0 780 780 ;V4.11 inc (BLK_CT)
+0 781 781 ;V4.11 ld a,(BLK_CT)
+0 782 782 ;V4.11 and a,0x7f
+0 783 783 ;V4.11 cmp a,0x40
+0 784 784 ;V4.11 j ge,blink_vfd_on
+0 785 785 ;V4.11 @CLB (F_BLINK) ;V2.10
+0 786 786 ;V4.11 jp blink_vfd_end ;V2.10
00000099 +0 787 787 blink_vfd_on:
+0 788 788 ;V4.11 @SEB (F_BLINK) ;V2.10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -