📄 clk.lst
字号:
040D 00791 SK1
040D 02F1 00792 DECFSZ TEMP, F ;REDUCE TEMP
040E 0800 00793 RETLW 0 ;11 THEN RETURN
040F 0A2A 00794 GOTO DEMKS ;10, DATA ENTRY MODE
00795 ;
00796 ;REAL TIME MODE KEY SERVICE
0410 00797 RTMKS
0410 09BA 00798 CALL CHK_AL_KEYS ;CHK ALARM KEYS
0411 0D00 00799 IORLW 0 ;SEE IF NZ RET
0412 0643 00800 BTFSC STATUS,Z ;NZ THEN SKIP
0413 0800 00801 RETLW 0 ;ELSE RETURN
0414 0C0F 00802 MOVLW SET_KEY ;SEE IF SET KEY
0415 0193 00803 XORWF NEW_KEY,W ; /
0416 0643 00804 BTFSC STATUS,Z ;NO THEN SKIP
0417 0A91 00805 GOTO SERV_SET_RTM ;SERVICE SET KEY
0418 0C0A 00806 MOVLW ALARM_KEY ;ALARM KEY?
0419 0193 00807 XORWF NEW_KEY,W ; /
041A 0643 00808 BTFSC STATUS,Z ;NO THEN SKIP
041B 0AAB 00809 GOTO SERV_ALARM_RTM ;ELSE SERVICE ALARM
041C 00810 IGNORE_KEY
041C 0800 00811 RETLW 0 ;ELSE RETURN
00812 ;
00813 ;ALARM TIME MODE KEY SERVICE
041D 00814 ATMKS
041D 09BA 00815 CALL CHK_AL_KEYS ;CHECK ALRM KEYS
041E 0D00 00816 IORLW 0 ;CHECK IF 0
041F 0643 00817 BTFSC STATUS,Z ;NZ THEN SKIP
0420 0800 00818 RETLW 0 ;ELSE RETURN
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 22
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0421 0C0F 00819 MOVLW SET_KEY ;SEE IF SET KEY
0422 0193 00820 XORWF NEW_KEY,W ; /
0423 0643 00821 BTFSC STATUS,Z ;NO THEN SKIP
0424 0A9C 00822 GOTO SERV_SET_ATM
0425 0C0A 00823 MOVLW ALARM_KEY ;GET ALARM KEY
0426 0193 00824 XORWF NEW_KEY,W ;SEE IF HIT
0427 0643 00825 BTFSC STATUS,Z ;NO THEN SKIP
0428 0AA2 00826 GOTO SERV_ALARM_ATM ;ELSE SERVICE
0429 0A1C 00827 GOTO IGNORE_KEY
00828 ;
00829 ;DATA ENTRY MODE KEY SERVICE
042A 00830 DEMKS
042A 09BA 00831 CALL CHK_AL_KEYS ;CHECK ALARM KEYS
042B 0D00 00832 IORLW 0 ;CHK IF 0
042C 0643 00833 BTFSC STATUS,Z ;NZ THEN SKIP
042D 0800 00834 RETLW 0 ;ELSE RETURN
042E 0C0F 00835 MOVLW SET_KEY ;IF SET KEY THEN END
042F 0193 00836 XORWF NEW_KEY,W ; /
0430 0643 00837 BTFSC STATUS,Z ;NO THEN SKIP
0431 0A3F 00838 GOTO DEMKS_END ;GOTO END
0432 0C0B 00839 MOVLW CE_KEY ;IF CLEAR ENTRY
0433 0193 00840 XORWF NEW_KEY,W ; /
0434 0643 00841 BTFSC STATUS,Z ;SKIP IF NO
0435 0A48 00842 GOTO DEMKS_END_1 ;ABANDON ENTRY
0436 0737 00843 BTFSS ENTFLG,HR10 ;10'S HRS DONE?
0437 0A54 00844 GOTO ENT_HR_10 ;NO THEN GET
0438 0757 00845 BTFSS ENTFLG,HR ;HRS DONE?
0439 0A5F 00846 GOTO ENT_HRS ;NO THEN GET
043A 0777 00847 BTFSS ENTFLG,MIN10 ;10'S MIN. DONE?
043B 0A72 00848 GOTO ENT_MIN_10 ;NO THEN GET
043C 0797 00849 BTFSS ENTFLG,MIN ;MIN DONE?
043D 0A7F 00850 GOTO ENT_MIN ;NO THEN GET
043E 0A87 00851 GOTO ENT_AM_PM ;NO THEN GET
043F 00852 DEMKS_END
043F 0717 00853 BTFSS ENTFLG,RTATS ;GET OLD STATUS
0440 0A4D 00854 GOTO LD_RTM ;LOAD IN TIME
0441 020E 00855 MOVF MENTRY,W ;LD IN ALARM
0442 002C 00856 MOVWF MALARM ; /
0443 020F 00857 MOVF HENTRY,W ; /
0444 002D 00858 MOVWF HALARM ; /
0445 0450 00859 BCF FLAG,ALRMLED ;CLEAR FLAG
0446 0618 00860 BTFSC ALFLAG,ALONOF ;SEE IF ON-OFF
0447 0550 00861 BSF FLAG,ALRMLED ;ELSE SET
0448 00862 DEMKS_END_1
0448 0410 00863 BCF FLAG,0 ;RTM MODE
0449 0430 00864 BCF FLAG,1 ; /
044A 0490 00865 BCF FLAG,FLASH ;STOP FLASH
044B 00866 SERV_COM_RET
044B 05B0 00867 BSF FLAG,KEY_BEEP
044C 0800 00868 RETLW 0 ;RETURN
00869 ;
044D 00870 LD_RTM
044D 020E 00871 MOVF MENTRY,W ;LD IN RTM
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 23
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
044E 002A 00872 MOVWF MTMR ; /
044F 020F 00873 MOVF HENTRY,W ; /
0450 002B 00874 MOVWF HTMR ; /
0451 0068 00875 CLRF MSTMR ;CLR TIME
0452 0069 00876 CLRF STMR ; /
0453 0A48 00877 GOTO DEMKS_END_1 ;GO BACK
00878 ;
0454 00879 ENT_HR_10
0454 0213 00880 MOVF NEW_KEY,W ;SEE IF 0
0455 0643 00881 BTFSC STATUS,Z ;NZ THEN SKIP
0456 0A5C 00882 GOTO LD_HENTRY_0 ;LOAD 0
0457 02D3 00883 DECFSZ NEW_KEY,0 ;1 THE SKIP
0458 0A1C 00884 GOTO IGNORE_KEY ;ELSE IGNORE KEY
0459 058F 00885 BSF HENTRY,4 ;SET TO 1
045A 0537 00886 BSF ENTFLG,HR10 ;SET FLAG
045B 0A4B 00887 GOTO SERV_COM_RET ;GO GET NEXT
045C 00888 LD_HENTRY_0
045C 048F 00889 BCF HENTRY,4 ;SET TO 0
045D 0537 00890 BSF ENTFLG,HR10
045E 0A4B 00891 GOTO SERV_COM_RET ;
045F 00892 ENT_HRS
045F 0C0F 00893 MOVLW HENTRY ;USE INDIRECT ADDR.
0460 0024 00894 MOVWF FSR ; /
0461 068F 00895 BTFSC HENTRY,4 ;SEE IF 0
0462 0A6D 00896 GOTO ALLOW0_2 ;YES THEN 0,1&2
0463 0C0A 00897 MOVLW D'10' ;SEE IF 0 - 9
0464 0093 00898 SUBWF NEW_KEY,W ; /
0465 0603 00899 BTFSC STATUS,C ;IF C THEN SKIP
0466 0A1C 00900 GOTO IGNORE_KEY ;ELSE IGNORE
0467 00901 ENT_LO_COM1
0467 0557 00902 BSF ENTFLG,HR ;SET FLAG
0468 00903 ENT_LO_COM
0468 0200 00904 MOVF F0,W ;LD HRS
0469 0EF0 00905 ANDLW B'11110000' ;MASK LO NIBL
046A 0113 00906 IORWF NEW_KEY,W ;OR NEW KEY
046B 0020 00907 MOVWF F0 ;SAVE BACK
046C 0A4B 00908 GOTO SERV_COM_RET ;GET NEXT
046D 00909 ALLOW0_2
046D 0C03 00910 MOVLW D'3' ;SEE IF 0 - 2
046E 0093 00911 SUBWF NEW_KEY,W ; /
046F 0603 00912 BTFSC STATUS,C ;<3 THEN SKIP
0470 0A1C 00913 GOTO IGNORE_KEY
0471 0A67 00914 GOTO ENT_LO_COM1 ; /
00915 ;
0472 00916 ENT_MIN_10
0472 0C0E 00917 MOVLW MENTRY ;DO INDIRECT ADDR.
0473 0024 00918 MOVWF FSR ; /
0474 0C06 00919 MOVLW D'6' ;ALLOW 0 - 5
0475 0093 00920 SUBWF NEW_KEY,W ; /
0476 0603 00921 BTFSC STATUS,C ;IF C THEN SKIP
0477 0A1C 00922 GOTO IGNORE_KEY ;ELSE IGNORE
0478 0380 00923 SWAPF F0,W ;SWAP AND GET
0479 0EF0 00924 ANDLW B'11110000' ;MASK LO NIBL
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 24
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
047A 0113 00925 IORWF NEW_KEY,W ;OR NEW KEY
047B 0020 00926 MOVWF F0 ;SAVE BACK
047C 03A0 00927 SWAPF F0, F ;SWAP BACK
047D 0577 00928 BSF ENTFLG,MIN10
047E 0A4B 00929 GOTO SERV_COM_RET ;GET NEXT
00930 ;
047F 00931 ENT_MIN
047F 0C0E 00932 MOVLW MENTRY ;DO INDIRECT
0480 0024 00933 MOVWF FSR ; /
0481 0C0A 00934 MOVLW D'10' ;ALLOW 0 - 9
0482 0093 00935 SUBWF NEW_KEY,W ;SEE IF >
0483 0603 00936 BTFSC STATUS,C ;NO THEN SKIP
0484 0A1C 00937 GOTO IGNORE_KEY ;ELSE IGNORE
0485 0597 00938 BSF ENTFLG,MIN ;SET FLAG
0486 0A68 00939 GOTO ENT_LO_COM ; /
00940 ;
0487 00941 ENT_AM_PM
0487 0C0D 00942 MOVLW AM_PM_KEY ;AM/PM KEY?
0488 0193 00943 XORWF NEW_KEY,W ; /
0489 0743 00944 BTFSS STATUS,Z ;YES THEN SKIP
048A 0A1C 00945 GOTO IGNORE_KEY
048B 07EF 00946 BTFSS HENTRY,AM_PM ;TEST BIT
048C 0A8F 00947 GOTO SETAMPM ;ELSE SET
048D 04EF 00948 BCF HENTRY,AM_PM ;CLEAR FLAG
048E 0A4B 00949 GOTO SERV_COM_RET ;GOTO END
048F 00950 SETAMPM
048F 05EF 00951 BSF HENTRY,AM_PM ;SET FLAG
0490 0A4B 00952 GOTO SERV_COM_RET
00953 ;
MPASM 01.40 Released CLK.ASM 1-16-1997 13:07:37 PAGE 25
Alarm Clock
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00954 PAGE
00955 ;
0491 00956 SERV_SET_RTM
0491 020A 00957 MOVF MTMR,W ;TRANSFER TIME
0492 002E 00958 MOVWF MENTRY ;TO DATA ENTRY
0493 020B 00959 MOVF HTMR,W ; /
0494 002F 00960 MOVWF HENTRY ; /
0495 00961 SERV_COM
0495 0210 00962 MOVF FLAG,W ;SAVE IN W
0496 0E01 00963 ANDLW B'00000001' ;ATM OR RTM MODE?
0497 0037 00964 MOVWF ENTFLG ;SAVE IN ENTFLG
0498 0CF2 00965 MOVLW B'11110010' ;FORCE 1S
0499 0130 00966 IORWF FLAG, F ; /
049A 0410 00967 BCF FLAG,0 ; /
049B 0800 00968 RETLW 0
00969 ;
049C 00970 SERV_SET_ATM
049C 020C 00971 MOVF MALARM,W ;TRANSFER ALARM
049D 002E 00972 MOVWF MENTRY ;TO DATA ENTRY
049E 020D 00973 MOVF HALARM,W ; /
049F 002F 00974 MOVWF HENTRY ; /
04A0 0518 00975 BSF ALFLAG,ALONOF ;SET FLAG
04A1 0A95 00976 GOTO SERV_COM ;GOTO COMMON
00977 ;
04A2 00978 SERV_ALARM_ATM
04A2 0718 00979 BTFSS ALFLAG,ALONOF ;TEST ON/OFF
04A3 0AA6 00980 GOTO SET_ALONOF ;SET ON/OF FLG
04A4 0418 00981 BCF ALFLAG,ALONOF ;CLEAR FLAG
04A5 0AA7 00982 GOTO SERV_ATM_COM ;RET THRO COM
04A6 00983 SET_ALONOF
04A6 0518 00984 BSF ALFLAG,ALONOF ;SET FLAG
04A7 00985 SERV_ATM_COM
04A7 05B0 00986 BSF FLAG,KEY_BEEP ;BEEP
04A8 0CF0 00987 MOVLW B'11110000' ;CLEAR SEC COUNT
04A9 0176 00988 ANDWF MIN_SEC, F ; /
04AA 0800 00989 RETLW 0 ;RETURN
00990 ;
04AB 00991 SERV_ALARM_RTM
04AB 05B0 00992 BSF FLAG,KEY_BEEP ;SET BEEP FLAG
04AC 0510 00993 BSF FLAG,0 ;SET TO ALARM TIME
04AD 0430 00994 BCF FLAG,1 ; /
04AE 0C05 00995 MOVLW D'0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -