📄 secsys14.lst
字号:
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 ;------------------------------------------------------------------------------
00002 ; MICROCHIP KEELOQ SECURITY SYSTEM
00003 ;
00004 ;------------------------------------------------------------------------------
00005 ; LEGAL NOTICE
00006 ;
00007 ; The information contained in this document is proprietary and
00008 ; confidential information of Microchip Technology Inc. Therefore all
00009 ; parties are required to sign a non-disclosure agreement before
00010 ; receiving this document.
00011 ;------------------------------------------------------------------------------
00012
00013 ;**************************************************************************
00014 ; Program: SECSYS14.ASM
00015 ; Microchip EEPROM Alarm System
00016 ; Description: This program is an example of a KeeLoq decoder, based
00017 ; on the Microchip PIC platform. The code is intended for
00018 ; modification by users to implement their own security
00019 ; systems.
00020 ; Processor: Microchip PIC 16C57
00021 ; Assembler: Microchip MPASM v1.30
00022 ; Options: WDT=On; RC Oscillator (4 MHz); Code Protection=On
00023 ;**************************************************************************
00024 ; Revision record:
00025 ; 1.40 19 July 1996 Fanie Delport
00026 ; a. Included adapted receive routine that can handle a wider range
00027 ; of transmission speeds.
00028 ; 1.30 9 June 1996 Kobus Marneweck SECSYS13.ASM
00029 ; a. Added destination to remove warnings
00030 ; 1.10 26 October 1995 Fanie Delport SECSYS11.ASM
00031 ; a. Included adapted recieve routine to cater for
00032 ; all Keeloq encoders.
00033 ; b. Removed macros.
00034 ; c. Added comments.
00035 ; 1.00 02 October 1995 Kobus Marneweck SECSYS10.ASM
00036 ; Initial version, adapted from Microchip decoder v 1.0 by V N Delport
00037 ;**************************************************************************
00038
00039 LIST P=16C57,F=INHX8M,R=DEC
00040
00041 ; GENERAL PURPOSE REGISTERS
00042
00000000 00043 IND EQU 00H ; INDIRECT ADDRESS REGISTER
00000001 00044 RTCC EQU 01H ; REAL TIME COUNTER CLOCK
00000002 00045 PC EQU 02H ; PROGRAM COUNTER
00000003 00046 STATUS EQU 03H ; STATUS REGISTER
00000004 00047 FSR EQU 04H ; FILE SELECT REGISTER
00000005 00048 PORTA EQU 05H ; PORT A
00000006 00049 PORTB EQU 06H ; PORT B
00000007 00050 PORTC EQU 07H ; PORT C
00051
00052 ; USER DEFINED REGISTER
00053
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0000000C 00054 ADDRESS EQU 0CH ; ADDRESS REGISTER
0000000D 00055 TXNUM EQU 0DH ; CURRENT TX
0000000E 00056 OUTBYT EQU 0EH ; GENERAL DATA REGISTER
0000000E 00057 MASK EQU OUTBYT ; MASK REGISTER USED IN DECRYPTION
0000000E 00058 TMP_CNT EQU OUTBYT ; RECEIVE ROUTINE TEMPORARY COUNTER
0000000C 00059 CSR8 EQU ADDRESS ; MSB OF RX REGISTER
00060
00061
00062 ; COUNTER REGISTERS
00063
00000018 00064 CNT0 EQU 18H ; LOOP COUNTERS
00000019 00065 CNT1 EQU 19H
0000001A 00066 CNT2 EQU 1AH
00067
0000001B 00068 CNT_HI EQU 1BH ; 16 BIT CLOCK COUNTER
0000001C 00069 CNT_LW EQU 1CH
00070
00071 ; TEMP REGISTERS
00072
00000010 00073 TMP1 EQU 10H ; TEMP REGISTERS
00000011 00074 TMP2 EQU 11H
00000012 00075 TMP3 EQU 12H
00000013 00076 TMP4 EQU 13H
00077
00078 ; CIRCULAR BUFFER REGISTER
00079
00000014 00080 CSR4 EQU 14H ; 64 BIT RECEIVE SHIFT REGISTER
00000015 00081 CSR5 EQU 15H
00000016 00082 CSR6 EQU 16H
00000017 00083 CSR7 EQU 17H
00084
00000008 00085 CSR0 EQU 08H
00000009 00086 CSR1 EQU 09H
0000000A 00087 CSR2 EQU 0AH
0000000B 00088 CSR3 EQU 0BH
00089
00090 ; **** WORK REGISTERS ********
00091
0000001E 00092 STACK EQU 1EH ; EXTRA STACK LEVEL
0000001F 00093 FLAGS EQU 1FH ; USER FLAG REGISTER
0000000F 00094 FLAGS1 EQU 0FH ; USER FLAG REGISTER
0000001D 00095 RAMS EQU 1DH ; RAM STATE
00096
00097 ; ************** DECRYPTION REGISTER RE-MAPPINGS *******************
00098 ;
00099 ; NOTE : INDIRECT ADDRESSING USED, DO NOT CHANGE REGISTER ASSIGNMENT
00100 ;
00101 ; ******************************************************************
00102
00000011 00103 KEY0 EQU TMP2 ; 64 BIT SHIFT REGISTER WITH DECRYPTION KEY
00000010 00104 KEY1 EQU TMP1
00000012 00105 KEY2 EQU TMP3
00000013 00106 KEY3 EQU TMP4
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 3
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00000014 00107 KEY4 EQU CSR4
00000015 00108 KEY5 EQU CSR5
00000016 00109 KEY6 EQU CSR6
00000017 00110 KEY7 EQU CSR7
00111
00000008 00112 HOP1 EQU CSR0 ; 32 BIT HOPCODE REGISTER
00000009 00113 HOP2 EQU CSR1
0000000A 00114 HOP3 EQU CSR2
0000000B 00115 HOP4 EQU CSR3
00116
00117 ; ***** USER REGISTER RE-MAPPINGS ***************
00118
0000000B 00119 DAT1 EQU CSR3 ; 32 BIT DATA REGISTER
0000000A 00120 DAT2 EQU CSR2
00000009 00121 DAT3 EQU CSR1
00000008 00122 DAT4 EQU CSR0
00123
00124 ; NOTE : THESE REGISTERS ARE USED DURING KEYGEN AS A 32 BIT BUFFER
00125
00000030 00126 ETMP1 EQU 30H ; EXTENDED 32 BIT BUFFER IN RAM PAGE 1
00000031 00127 ETMP2 EQU 31H
00000032 00128 ETMP3 EQU 32H
00000033 00129 ETMP4 EQU 33H
00130
00131 ; SECOND SET OF COUNTERS
00000034 00132 CNT1_LW EQU 34H
00000035 00133 CNT1_HI EQU 35H
00000036 00134 CNT2_LW EQU 36H
00000037 00135 CNT2_HI EQU 37H
00136
00137 ; RECEIVED TRANSMISSION OPEN 32 BITS
00138
00000017 00139 SER_0 EQU CSR7 ; 24/28 BIT SERIAL NUMBER
00000016 00140 SER_1 EQU CSR6
00000015 00141 SER_2 EQU CSR5
00000014 00142 SER_3 EQU CSR4
00143
00144 ; RECEIVED TRANSMISSION ENCRYPTED 32 BITS
00145
0000000B 00146 FUNC EQU DAT1 ; BUTTON CODE & USER BIT FUNCTION BYTE
Error[149] : Directive only allowed when generating an object file
00147 CODE EQU DAT2 ; DISCRIMINATION VALUE
00000009 00148 CNTR_HI EQU DAT3 ; 16 BIT RX COUNTER
00000008 00149 CNTR_LW EQU DAT4
00150
00151 ; ********* EEPROM MEMORY ALLOCATION *******
00000001 00152 LRN_PTR EQU 1H ; LEARN POINTER
00000002 00153 SSTATUS EQU 2H ; SYSTEM STATUS
00000003 00154 BSTATUS EQU 3H ; BACKUP STATUS
00000004 00155 TMPCNT EQU 4H ; TEMPORARY COUNTER FOR RE-SYNC
00156
000000C7 00157 X1 EQU 0C7H ; VALUES FOR STATE RECOVER
0000008B 00158 X2 EQU 08BH
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 4
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00159
00160 ; ********* PORTA BIT DEFINITIONS *******
00161
00000000 00162 DIO EQU 0H ; 0/1 EEPROM DATA LINE
00000001 00163 CLK EQU 1H ; 0 EEPROM SERIAL CLOCK
00000002 00164 CS EQU 2H ; 0 EEPROM CHIP SELECT
00000003 00165 RFIN EQU 3H ; 1 RF INPUT
00166
00167 ; ********* PORTB BIT DEFINITIONS *******
00168
00000000 00169 IMMO EQU 0H ; 0 IMMOBILIZE OUTPUT
00000001 00170 SIREN EQU 1H ; 0 SIREN OUTPUT
00000002 00171 PLIGHT EQU 2H ; 0 PARKING LIGHT OUTPUT
00172
00000004 00173 LOCK EQU 4H ; 0 LOCK OUTPUT
00000005 00174 UNLOCK EQU 5H ; 0 UNLOCK OUTPUT
00000006 00175 TRUNK EQU 6H ; 0 TRUNK OUTPUT
00000007 00176 LED EQU 7H ; 0 LED INDICATOR
00177
00178 ; ********* PORTC BIT DEFINITIONS *******
00179
00000000 00180 IGN EQU 0H ; 1 IGNITION INPUT
00000001 00181 TRIG EQU 1H ; 1 TRIG INPUT
00000002 00182 DOOR EQU 2H ; 1 DOORS INPUT
00000003 00183 LEARN EQU 3H ; 1 LEARN INPUT
00184
00185 ; ********* COMPILER DEFINES ******************
00000042 00186 NBITS EQU 66 ; MAXIMUM TRANSMISSION BIT LENGTH
00000230 00187 MIN EQU 560 ; TRANSMISSION HEADER MINIMUM LENGTH [鍿]
00188 ;MAX EQU 10800 ; TRANSMISSION HEADER MAXIMUM LENGTH [鍿]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -