⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 secsys14.lst

📁 keeloq滚动码解码大全
💻 LST
📖 第 1 页 / 共 5 页
字号:
                      00573 
00A7                  00574 DL3
00A7   0AA8           00575         GOTO    $+1                     ; [2] WAISTE TIME
00A8   0AA9           00576         GOTO    $+1                     ; [2] WAISTE TIME
00A9   0004           00577         CLRWDT                          ; [1] RESET WATCHDOG TIMER
00AA   02FA           00578         DECFSZ  CNT2,1                  ; [1]
00AB   0AA7           00579         GOTO    DL3                     ; [2] CNT0 X 8 us [ CNT0 X Te ]
                      00580 
00AC                  00581 SAMPLE3
00AC   0665           00582         BTFSC   PORTA,RFIN              ; [2] INPUT LOW?  THIRD SAMPLE
MPASM 02.50 Released         SECSYS14.ASM   1-11-2002  15:33:39         PAGE 12


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00AD   0AB3           00583         GOTO    RMT0                    ; [0] NO--RECEIVE ERROR
                      00584 
00AE   0906           00585         CALL    TST_RTCC                ; [11] CHECK RTCC
                      00586 
00AF   02F9           00587         DECFSZ  CNT1,1                  ; [1] LAST BIT?
00B0   0A7B           00588         GOTO    RCV8                    ; [2] ... NO, GET NEXT BIT
                      00589                                         ; TOTAL = 14 CYCLES
                      00590 
00B1   0ABA           00591         GOTO    RMT21                   ; [2] ... YES, ALL BITS RECEIVED
                      00592 
00B2                  00593 RMT_0
00B2   0599           00594         BSF     CNT1,4                  ; [1] HEADER ERROR--FORCE COUNTER > 11
                      00595 
00B3                  00596 RMT0                                    ; [1] HERE IF NOT ALL BITS RECEIVED OK
00B3   00F9           00597         DECF    CNT1,1                  ; [1] COMPENSATE FOR ROTATE BEFORE DL3
                      00598 
                      00599 ; ***** JUMP TO HERE IF NOT ALL 66 BITS RECEIVED OK *****
                      00600 
00B4                  00601 RMT01                                   
00B4   0906           00602         CALL    TST_RTCC                ; [11] CHECK RTCC
                      00603 
00B5   0C0B           00604         MOVLW   11D                     ; TEST FOR NTQ106 TRANSMISSION
00B6   0099           00605         SUBWF   CNT1,W                  ; IF CARRY FLAG SET (RX NOT OK)
                      00606 
00B7   0603           00607         BTFSC   STATUS,CARRY            ; CARRY SET IF FORMAT INVALID
00B8   0800           00608         RETLW   0                       ; HERE IF NOT ALL BITS RECEIVED OK
00B9   05BF           00609         BSF     FLAGS,NTQ106            ; INDICATE NTQ106 TX RECEIVED
                      00610 
                      00611 ; ***** ROTATE FOR ANOTHER 6 TIME TO LINE-UP CSR *****
                      00612 
00BA                  00613 RMT21
00BA   0C06           00614         MOVLW   6H                      ; ADDITIONAL 6 BIT ROTATION REQUIRED
00BB   01F9           00615         ADDWF   CNT1,1                  ; ADD TO WHAT LEFT IN COUNTER
                      00616 
00BC                  00617 RMT22
00BC   0403           00618         CLRC
00BD   090A           00619         CALL    ROT_SHIFT               ; COMPLETE 64-BIT SHIFT
00BE   02F9           00620         DECFSZ  CNT1,1                  ; COMPLETE 64-BIT SHIFT
00BF   0ABC           00621         GOTO    RMT22
                      00622 
00C0   07BF           00623         BTFSS   FLAGS,NTQ106            ; TEST FOR NTQ106 TRANSMISSION
00C1   0AC4           00624         GOTO    RMT1
00C2   0077           00625         CLRF    SER_0                   ; ... YES, THEN CLEAR UPPER BYTE OF SN
00C3   006C           00626         CLRF    CSR8
                      00627 
00C4                  00628 RMT1    
00C4   046F           00629         BCF     FLAGS1,BAT_LOW          ; CLEAR VLOW BIT
00C5   060C           00630         BTFSC   CSR8,0                  ; TEST VLOW BIT IN TRANSMISSION
00C6   056F           00631         BSF     FLAGS1,BAT_LOW          ; INDICATE TX BATERY LOW BIT SET
00C7                  00632 RMT11
                      00633 ;       BSF     PORTA,LED               ; VALID TRANSMISSION FORMAT, LED ON
00C7   0000           00634         NOP
                      00635           
MPASM 02.50 Released         SECSYS14.ASM   1-11-2002  15:33:39         PAGE 13


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00C8                  00636 RMT3
00C8   0C0F           00637         MOVLW   0FH                     ; FORCE OPEN BUTTON CODES TO ZERO
00C9   0177           00638         ANDWF   SER_0,1
                      00639 
00CA   0403           00640 RMT4    CLRC                            ; VALID SERIAL NUMBER => VALID TX
00CB   0800           00641         RETLW   E_OK                    ; RETURN WITH 1
                      00642 
                      00643 ;**************************************************************************
                      00644 ;
                      00645 ; FUNCTION      : DECRYPT ()                            
                      00646 ;
                      00647 ; DESCRIPTION   : DECRYPTS 32 BIT [HOP1:HOP4] USING [CSR0:CSR7]
                      00648 ;
                      00649 ; PAGE          : 0 ( NOTE : MUST BE LOWER HALF OF PAGE )
                      00650 ;
                      00651 ;**************************************************************************
00CC                  00652 DECRYPT
00CC   0C0C           00653         MOVLW   11+1            ; OUTER LOOP 11+1 TIMES 
00CD   0039           00654         MOVWF   CNT1            ; OUTER LOOP 11+1 TIMES 
                      00655 
00CE                  00656 DECRYPT_OUTER
                      00657 
00CE   0C30           00658         MOVLW   48              ; INNER LOOP 48 TIMES
00CF   0038           00659         MOVWF   CNT0            ; INNER LOOP 48 TIMES
                      00660 
00D0                  00661 DECRYPT_INNER
00D0   0004           00662         CLRWDT                  ; RESET WATCHDOG TIMER
00D1   0219           00663         MOVFW   CNT1            ; LAST 48 LOOPS RESTORE THE KEY
00D2   0F01           00664         XORLW   1               ; LAST 48 LOOPS RESTORE THE KEY
00D3   0643           00665         BTFSC   STATUS,ZERO     ; LAST 48 LOOPS RESTORE THE KEY
00D4   0AFA           00666         GOTO    ROTATE_KEY      ; LAST 48 LOOPS RESTORE THE KEY
                      00667 
                      00668         ; THE LOOKUP TABLE IS COMPRESSED INTO IN 4 BYTES TO SAVE SPACE
                      00669         ; USE THE 3 LOW INDEX BITS TO MAKE UP AN 8-BIT BIT MASK
                      00670         ; USE THE 2 HIGH INDEX BITS TO LOOK UP THE VALUE IN THE TABLE
                      00671         ; USE THE BIT MASK TO ISOLATE THE CORRECT BIT IN THE BYTE
                      00672         ; PART OF THE REASON FOR THIS SCHEME IS BECAUSE NORMAL TABLE LOOKUP
                      00673         ; REQUIRES AN ADDITIONAL STACK LEVEL
                      00674 
00D5   0403           00675         CLRC                    ; CLEAR CARRY (FOR THE LEFT SHIFT)
                      00676        
00D6   0C01           00677         MOVLW   1               ; INITIALISE MASK = 1
00D7   066A           00678         BTFSC   HOP3,3          ; SHIFT MASK 4X IF BIT 2 SET
00D8   0C10           00679         MOVLW   10000B          ; SHIFT MASK 4X IF BIT 2 SET
00D9   002E           00680         MOVWF   MASK            ; INITIALISE MASK = 1
                      00681 
00DA   0709           00682         BTFSS   HOP2,0          ; SHIFT MASK ANOTHER 2X IF BIT 1 SET
00DB   0ADE           00683         GOTO    $+3
00DC   036E           00684         RLF     MASK,F
00DD   036E           00685         RLF     MASK,F            
                      00686 
00DE   0608           00687         BTFSC   HOP1,0          ; SHIFT MASK ANOTHER 1X IF BIT 0 SET
00DF   036E           00688         RLF     MASK,F
MPASM 02.50 Released         SECSYS14.ASM   1-11-2002  15:33:39         PAGE 14


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00689 
                      00690         ; MASK HAS NOW BEEN SHIFTED 0-7 TIMES ACCORDING TO BITS 2:1:0
                      00691 
00E0   0C00           00692         MOVLW   0               ; TABLE INDEX = 0
00E1   062B           00693         BTFSC   HOP4,1
00E2   0D02           00694         IORLW   2               ; IF BIT 3 SET ADD 2 TO THE TABLE INDEX
00E3   06CB           00695         BTFSC   HOP4,6
00E4   0D04           00696         IORLW   4               ; IF BIT 4 SET ADD 4 TO THE TABLE INDEX
                      00697 
00E5   01E2           00698         ADDWF   PC,F            ; ADD THE INDEX TO THE PROGRAM COUNTER
                      00699                                 ;  [ MUST BE IN LOWER HALF OF PAGE ]
                      00700                                
00E6                  00701 TABLE
00E6   0C2E           00702         MOVLW   02EH            ; BITS 4:3 WERE 00
00E7   0AED           00703         GOTO    TABLE_END       ; END OF LOOKUP
                      00704 
00E8   0C74           00705         MOVLW   074H            ; BITS 4:3 WERE 01
00E9   0AED           00706         GOTO    TABLE_END       ; END OF LOOKUP
                      00707 
00EA   0C5C           00708         MOVLW   05CH            ; BITS 4:3 WERE 10
00EB   0AED           00709         GOTO    TABLE_END       ; END OF LOOKUP
                      00710 
00EC   0C3A           00711         MOVLW   03AH            ; BITS 4:3 WERE 11
                      00712                                  
00ED                  00713 TABLE_END
                      00714 
00ED   016E           00715         ANDWF   MASK,F          ; ISOLATE THE CORRECT BIT BY ANDING WITH MASK
00EE   0C00           00716         MOVLW   0               ; COPY THE BIT TO BIT 7
00EF   0743           00717         BTFSS   STATUS,ZERO     ; COPY THE BIT TO BIT 7
00F0   0C80           00718         MOVLW   10000000B       ; COPY THE BIT TO BIT 7
                      00719 
00F1   0189           00720         XORWF   HOP2,W          ; ONLY INTERESTED IN BIT HOP2,7
00F2   018B           00721         XORWF   HOP4,W          ; ONLY INTERESTED IN BIT HOP4,7
00F3   0190           00722         XORWF   KEY1,W          ; ONLY INTERESTED IN BIT KEYREG1,7
                      00723 
00F4   002E           00724         MOVWF   MASK            ; STORE W TEMPORARILY (WE NEED BIT 7)
00F5   036E           00725         RLF     MASK,F          ; LEFT ROTATE MASK TO GET BIT 7 INTO THE CARRY
                      00726 
00F6   0368           00727         RLF     HOP1,F          ; SHIFT IN THE NEW BIT
00F7   0369           00728         RLF     HOP2,F
00F8   036A           00729         RLF     HOP3,F
00F9   036B           00730         RLF     HOP4,F
                      00731 
00FA                  00732 ROTATE_KEY
                      00733 
00FA   0403           00734         CLRC                    ; CLEAR CARRY
00FB   06F7           00735         BTFSC   KEY7,7          ; SET CARRY IF LEFTMOST BIT SET
00FC   0503           00736         SETC                    ; SET CARRY IF LEFTMOST BIT SET
                      00737 
00FD   0371           00738         RLF     KEY0,F          ; LEFT-ROTATE THE 64-BIT KEY 
00FE   0370           00739         RLF     KEY1,F
00FF   0372           00740         RLF     KEY2,F
0100   0373           00741         RLF     KEY3,F
MPASM 02.50 Released         SECSYS14.ASM   1-11-2002  15:33:39         PAGE 15


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0101   0374           00742         RLF     KEY4,F
0102   0375           00743         RLF     KEY5,F
0103   0376           00744         RLF     KEY6,F
0104   0377           00745         RLF     KEY7,F         
                      00746 
0105   02F8           00747         DECFSZ  CNT0,F          ; INNER LOOP 48 TIMES
0106   0AD0           00748         GOTO    DECRYPT_INNER   ; INNER LOOP 48 TIMES
                      00749 
0107   0906           00750         CALL    TST_RTCC
0108   02F9           00751         DECFSZ  CNT1,F          ; OUTER LOOP 12 TIMES (11 + 1 TO RESTORE KEY)
0109   0ACE           00752         GOTO    DECRYPT_OUTER   ; OUTER LOOP 12 TIMES (11 + 1 TO RESTORE KEY)
                      00753 
010A   0800           00754         RETLW   0               ; RETURN 
                      00755 
                      00756 ;**************************************************************************
                      00757 ;
                      00758 ; FUNCTION      : TST_RTCC ()                           
                      00759 ;
                      00760 ; DESCRIPTION   : TEST RTCC COUNTER AND UPDATE OUTPUT IF REQUIRED
                      00761 ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -