📄 self_test.med
字号:
662 wait_35us:
663 cmp wa,(pc+a) ;7 machine cycle(1.75us under 16MHz clock)
664 cmp wa,(pc+a)
665 cmp wa,(pc+a)
666 cmp wa,(pc+a)
667 cmp wa,(pc+a)
668 cmp wa,(pc+a)
669 cmp wa,(pc+a)
670 cmp wa,(pc+a)
671 cmp wa,(pc+a)
672 cmp wa,(pc+a)
673 cmp wa,(pc+a)
674 cmp wa,(pc+a)
675 cmp wa,(pc+a)
676 cmp wa,(pc+a)
677 cmp wa,(pc+a)
678 cmp wa,(pc+a)
679 cmp wa,(pc+a)
680 cmp wa,(pc+a)
681 cmp wa,(pc+a)
682 cmp wa,(pc+a)
683 ret
684
685 check_slftst:
686 ei
687 call wait_100ms
688 call wait_100ms
689 call update_md
690 cmp (MDFLG_0),0y01000000
691 j ne,check_stst9
692 cmp (MDFLG_1),0y01000010
693 j ne,check_stst9
694 cmp (MDFLG_2),0y00100100
695 j ne,check_stst9
696 cmp (MDFLG_3),0y00000000
697 j ne,check_stst9
698 di
699 ld (P9DR),0y00100000 ;
700 call wait_35us
701 ld a,(P1PRD) ;
702 and a,0y00111111 ;
703 cmp a,0y00000100 ;press '7'?
704 j ne,check_stst9
705
706 ld (P9DR),0y00010000 ;
707 call wait_35us
708 ld a,(P1PRD) ;
709 and a,0y00111111 ;
710 cmp a,0y00000001 ;press '2'
711 j ne,check_stst9 ;yes -> exit
712
713 ld (P9DR),0y00001000 ;
714 call wait_35us
715 ld a,(P1PRD) ;load key matrix return0~3 (P17~P14)
716 and a,0y0011111 ;press any key?
717 cmp a,0y0000010 ;press '6'
718 j ne,check_stst9
719 ei
720 call self_test
721
722 check_stst9:
723 ei
724 ret
725
726 self_test:
727 call temp_vprn
728 call vfd_test
729 call mode_prn
730 call key_test
731 call ee_test
732
733 call chara_prn
734 call spc_prnbuf
735 call print
736 call spc_prnbuf
737 call print
738 j start
739
740
741 M_TEMP db "TEMPERATURE C"
742 M_VPRN db "VOLTAGE V"
743 DISP_FINISH db "DISPLAY FINISH "
744 MD_OK db "MOD SWITCH OK"
745 MD_NG db "MOD SWITCH NG"
746 M_EEOK db "EEPROM OK"
747 M_EENG db "EEPROM NG"
748 KEY_OK db "KEY NET OK"
749 KEY_NG db "KEY NET NG"
750
751 ;input: HL <- string address
752 set_1line:
753 ld c,0
754 ld ix,PRN_BUF_MSD
755 set_1ln0:
756 ld a,(hl)
757 ld (ix),a
758 inc hl
759 inc ix
760 inc c
761 cmp c,18
762 j lt,set_1ln0
763 ret
764
765 ;--------------------------------------------------------------------------
766
767
768
769 ;--------------------------------------------------------------------------
770 slid_position_tbl:
771 db 2,0y10100100 ;
772 db 0,0y10000000 ;
773 db 0,0y00000000 ;
774 db 0,0y00000001 ;
775 db 0,0y00000100 ;
776 db 0,0y00001000 ;
777 db 0,0y00010000 ;
778 db 0,0y01000000 ;
779 slid_position_tbl_mid:
780 db 1,0y00000010 ;
781 db 1,0y10000010 ;
782 db 1,0y01000010 ;
783 db 2,0y00101000 ;
784 db 2,0y00100000 ;
785 db 2,0y00100100 ;
786 db 3,0y00000100 ;
787 db 3,0y000000000 ;
788 slid_position_tbl_end:
789
790 mode_prn:
791 call spc_prnbuf
792 ld a,0x29
793 ld c,7
794 call set_disp_test_1
795 call disp_to_dbr
796 ld ix,slid_position_tbl
797 ld (BLK_CT),0
798 mode_prn_1:
799 call wait_100ms
800 call wait_100ms
801 push ix
802 call update_md
803 pop ix
804 ld c,(ix)
805 inc ix
806 ld b,(ix)
807 ld hl,MDFLG_0
808 ld a,(hl+c)
809 cmp a,b
810 j ne,mode_prn_2
811 ld hl,DISP+2
812 ld c,(BLK_CT)
813 ld a,0x2a
814 ld (hl+c),a
815 inc (BLK_CT)
816 push ix
817 call disp_to_dbr
818 call wait_100ms
819 call wait_100ms
820 pop ix
821 inc ix
822 cmp ix,slid_position_tbl_mid
823 j ne,mode_prn_10
824 ld a,0x29
825 ld c,7
826 call set_disp_test_1
827 call disp_to_dbr
828 ld ix,slid_position_tbl_mid
829 ld (BLK_CT),0
830 jp mode_prn_1
831 mode_prn_10:
832 cmp ix,slid_position_tbl_end
833 j ge,mode_prn_ok
834 jp mode_prn_1
835 mode_prn_2:
836 push ix
837 ld a,(KEY_CT)
838 j eq,mode_prn_3
839 call key_get
840 cmp (KEYIN),K_CEC
841 j ne,mode_prn_3
842 pop ix
843 jp mode_prn_error
844
845 mode_prn_3:
846 pop ix
847 dec ix
848 jp mode_prn_1
849
850 mode_prn_error:
851 ld hl,MD_NG
852 jp mode_prn_exit
853 mode_prn_ok:
854 ld hl,MD_OK
855 jp mode_prn_exit
856 mode_prn_exit:
857 call set_1line
858 call print
859 call wait_100ms
860 call wait_100ms
861 ret
862 ;----------------------------------------------------------
863 key_test:
864 call spc_disp
865 ld (DISP_LSD-1),D_0
866 ld (DISP_LSD-0),D_F
867 call disp_to_dbr
868 ld ix,key_test_tbl
869
870 key_test_0:
871 ld a,(KEY_CT)
872 j eq,key_test_0
873 call key_get
874 ld a,(ix)
875 cmp a,(KEYIN)
876 j eq,key_test_1
877 cmp (KEYIN),K_CEC
878 j ne,key_test_0
879 ld hl,KEY_NG
880 jp key_test_exit
881 key_test_1:
882 inc ix
883 ld a,(ix)
884 ld (DISP_LSD-0),a
885 push ix
886 call disp_to_dbr
887 pop ix
888 inc ix
889 cmp ix,key_test_tbl_end
890 j lt,key_test_0
891 ld hl,KEY_OK
892 key_test_exit:
893 call set_1line
894 call print
895 call wait_100ms
896 call wait_100ms
897 ret
898
899 key_test_tbl:
900 db 0x0d,1
901 db 0x2b,2
902 db 0x07,3
903 db 0x05,4
904 db 0x03,5
905 db 0x0c,6
906 db 0x11,7
907 db 0x17,8
908 db 0x16,9
909 key_test_tbl_end:
910 ;--------------------------------------------------------------------------
911 chara_prn:
912 ld b,0
913 chara_prn0:
914 ld hl,chara
915 ld a,b
916 ld w,18
917 mul w,a
918 add hl,wa
919 push b
920 call set_1line
921 call print
923 +1 ld wa,P_RED
924 +1 clr (P_RED>>4).a
925 pop b
926 test b.0
927 j f,chara_prn1
929 +1 ld wa,P_RED
930 +1 set (P_RED>>4).a
931 chara_prn1:
932 inc b
933 cmp b,24
934 j lt,chara_prn0
935 ret
936
937 chara:
938 db "1234567890+-x!#$%^" ;1
939 db "&*()" ;2
940 db 0x40,0x83,0x84,0x85,0x86
941 db "ABCDEFGHI"
942 db "JKLMNOPQRSTUVWXYZa" ;3
943 db "bcdefghijklmnopqrs" ;4
944 db "tuvwxyz09876543210" ;5
945 db "111111111111111111" ;6
946 db "222222222222222222" ;7
947 db "333333333333333333" ;8
948 db "444444444444444444" ;9
949 db "555555555555555555" ;10
950 db "666666666666666666" ;11
951 db "777777777777777777" ;12
952 db "888888888888888888" ;13
953 db "999999999999999999" ;14
954 db "000000000000000000" ;15
955 db "123456789123456789" ;16
956 db "12345678 12345678" ;17
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -