📄 secsys14.lst
字号:
00000009 00189 TRISA EQU 1001B ; PORTA: TRI-STATE VALUE
00000008 00190 WRCFG EQU 1000B ; PORTA: EEPROM WRITE TRI-STATE VALUE
00000009 00191 RDCFG EQU 1001B ; PORTA: EEPROM READ TRI-STATE VALUE
00000000 00192 TRISB EQU 00000000B ; PORTB: TRI-STATE VALUE
000000FF 00193 TRISC EQU 11111111B ; PORTC: TRI-STATE VALUE
00000000 00194 E_OK EQU 000H ; 0 VALID RESPONSE
00195
00196 ;****** STATE DEFINITIONS **************
000000A5 00197 ARMEDS EQU 0A5H
0000005A 00198 DRIVES EQU 05AH
0000003C 00199 IMMOBS EQU 03CH
000000C3 00200 LEARNS EQU 0C3H
00000042 00201 ALARMS EQU 042H
00202
00203 ;****** FLAGS DEFINITIONS **************
00000000 00204 NORMAL EQU 0H ; NORMAL PROGRAM FLOW
00000001 00205 PASS1 EQU 1H ; LEARN FIRST PASS
00000002 00206 PASS2 EQU 2H ; LEARN SECOND PASS
00000003 00207 LFLASH EQU 3H ; FLASH LED
00000004 00208 PFLASH EQU 4H ; FLASH PLIGHT
00000005 00209 NTQ106 EQU 5H ; INDICATE NTQ106 TRANSMISSION RECEIVED
00000006 00210 RESYNC EQU 6H ; RESYNCH ACTIVE BIT
00000007 00211 RPT EQU 7H ; REPEATED CODE
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 5
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00212
00213 ;****** FLAGS1 DEFINITIONS **************
00000000 00214 BITIN EQU 0H ; RF DATA BIT
00000001 00215 S_RSTR EQU 1H ; FLAGS MUST BE RESTORED
00000002 00216 ENTRY EQU 2H ; ENTRY FLAG
00000003 00217 BAT_LOW EQU 3H ; ENCODER BATTERY LOW INDICATOR
00218
00219
00220 ;****** STATUS REGISTER BIT DEFINITIONS *****************
00000000 00221 CARRY EQU 0 ; CARRY
00000001 00222 DC EQU 1 ; DIGIT CARRY
00000002 00223 ZERO EQU 2 ; ZERO
00000003 00224 PD EQU 3 ; POWER DOWN
00000004 00225 TO EQU 4 ; TIMEOUT
00000005 00226 PA0 EQU 5 ; PAGE SELECT [0 OR 1]
00000006 00227 PA1 EQU 6 ; PAGE SELECT [0 OR 1]
00000007 00228 OVF EQU 7 ; RTCC OVERFLOW
00229
00230 ;**************************************************************************
00231 ; PAGE 0:
00232 ;**************************************************************************
0000 00233 ORG 00H
00234
00235 ;**************************************************************************
00236 ;
00237 ; FUNCTION : RESET ()
00238 ;
00239 ; DESCRIPTION : PROGRAM RESET ROUTINE
00240 ;
00241 ; PAGE : 0
00242 ;
00243 ;**************************************************************************
0000 00244 RESET
0000 0C07 00245 MOVLW 00000111B ; SETUP RTCC PRESCALER
0001 0002 00246 OPTION ; 1 : 256
00247
0002 05A3 00248 BSF STATUS,PA0 ; SELECT PAGE #1
0003 0AB4 00249 GOTO RESET_P1 ; GOTO MAIN PROGRAM LOOP
00250
00251 ;**************************************************************************
00252 ; UPPER PAGE CALLS
00253 ;**************************************************************************
00254
0004 0B71 00255 SENDC GOTO SENDC1 ; UPPER PAGE CALL TO SENDC
00256
0005 00257 TST_LEARN
0005 0B49 00258 GOTO TST_LEARN1 ; CALL LEARN BUTTON TEST ROUTINE
00259
0006 00260 TST_RTCC
0006 0B0B 00261 GOTO TST_RTCC1
00262
0007 00263 EE_WRITE0
0007 0B8A 00264 GOTO EEWRITE ; CALL EEPROM WRITE ROUTINE
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00265
0008 00266 M_LOOP0
0008 05A3 00267 BSF STATUS,PA0
0009 0B06 00268 GOTO M_LOOP
00269
00270 ;**************************************************************************
00271 ;
00272 ; FUNCTION : ROT_SHIFT()
00273 ;
00274 ; DESCRIPTION : RIGHT ROTATE 66 BIT RECEIVE SHIFT REGISTER
00275 ;
00276 ; PAGE : 0
00277 ;
00278 ;**************************************************************************
000A 00279 ROT_SHIFT
000A 032C 00280 RRF CSR8,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
000B 0337 00281 RRF CSR7,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
000C 0336 00282 RRF CSR6,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
000D 0335 00283 RRF CSR5,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
000E 0334 00284 RRF CSR4,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
000F 032B 00285 RRF CSR3,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
0010 032A 00286 RRF CSR2,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
0011 0329 00287 RRF CSR1,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
0012 0328 00288 RRF CSR0,1 ; [1] RIGHT ROTATE RECEIVE SHIFT REGISTER
0013 0800 00289 RETLW E_OK ; [2]
00290 ;**************************************************************************
00291 ;
00292 ; FUNCTION : ROTR()
00293 ;
00294 ; DESCRIPTION : ROTATE 16 BIT SHIFT REGISTER RIGHT
00295 ;
00296 ; PAGE : 0
00297 ;
00298 ;**************************************************************************
0014 00299 ROTR
0014 0330 00300 RRF TMP1,F
0015 0331 00301 RRF TMP2,F
0016 04F0 00302 BCF TMP1,7
0017 0603 00303 BTFSC STATUS,CARRY
0018 05F0 00304 BSF TMP1,7
0019 0800 00305 RETLW 0
00306 ;**************************************************************************
00307 ;
00308 ; FUNCTION : ROTL()
00309 ;
00310 ; DESCRIPTION : ROTATE 16 BIT SHIFT REGISTER LEFT
00311 ;
00312 ; PAGE : 0
00313 ;
00314 ;**************************************************************************
001A 00315 ROTL
001A 0371 00316 RLF TMP2,F
001B 0370 00317 RLF TMP1,F
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
001C 0411 00318 BCF TMP2,0
001D 0603 00319 BTFSC STATUS,CARRY
001E 0511 00320 BSF TMP2,0
001F 0800 00321 RETLW 0
00322
00323 ;**************************************************************************
00324 ;
00325 ; FUNCTION : EEREAD ()
00326 ;
00327 ; DESCRIPTION : READ 16 BIT VALUE FROM EEPROM AND DECRYPT
00328 ;
00329 ; PAGE : 0
00330 ;
00331 ;**************************************************************************
0020 00332 EEREAD
0020 020C 00333 MOVFW ADDRESS
0021 002E 00334 MOVWF OUTBYT
0022 05EE 00335 BSF OUTBYT,7 ; COMMAND = READ
0023 0904 00336 CALL SENDC ; SEND COMMAND
0024 0C09 00337 MOVLW RDCFG
0025 0005 00338 TRIS PORTA ; DIO = INPUT
0026 0C10 00339 MOVLW 16D ; 16 BITS TO READ
0027 0039 00340 MOVWF CNT1
00341
0028 0525 00342 READ0 BSF PORTA,CLK ; CLOCK HIGH
0029 0371 00343 RLF TMP2,F ; SHIFT LO BYTE
002A 0411 00344 BCF TMP2,0 ; ASSUME BIT WILL BE 0
002B 0605 00345 BTFSC PORTA,DIO ; READ DIO LINE
002C 0511 00346 BSF TMP2,0 ; COPY BIT TO REGISTER
002D 0425 00347 BCF PORTA,CLK ; CLOCK LOW
002E 0370 00348 RLF TMP1,F ; SHIFT HI BYTE
002F 02F9 00349 DECFSZ CNT1,F ; LOOP COUNTER
0030 0A28 00350 GOTO READ0
0031 0445 00351 BCF PORTA,CS ; END READ CYCLE
00352
00353 ; ******* DECRYPT 16-BIT WORD READ FROM EEPROM ***************
00354
0032 00355 IFNC
0032 0C10 00356 MOVLW 16D
0033 0039 00357 MOVWF CNT1
00358
0034 091A 00359 IFNC1 CALL ROTL
0035 0C07 00360 MOVLW 07H ; MASK ONLY LOWER 3 BITS
0036 0150 00361 ANDWF TMP1,W
0037 002E 00362 MOVWF OUTBYT ; TEMPORY STORE RESULT
0038 0C08 00363 MOVLW (EE_KEY-KEYBASE) ; GET BASE ADDRES OF EEPROM KEY
0039 01CE 00364 ADDWF OUTBYT,W ; ... AND ADD TO RESULT
003A 093F 00365 CALL KEY_LOOKUP ; KEY BYTE FROM KEY LOOKUP TABLE
003B 01B1 00366 XORWF TMP2,F
003C 02F9 00367 DECFSZ CNT1,F
003D 0A34 00368 GOTO IFNC1
00369
003E 0800 00370 RETLW 0H
MPASM 02.50 Released SECSYS14.ASM 1-11-2002 15:33:39 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00371
00372 ;**************************************************************************
00373 ; Memory Map ROM Keys
00374 ;**************************************************************************
003F 00375 ORG 3FH
003F 00376 KEY_LOOKUP
003F 01E2 00377 ADDWF PC,1 ; ADD OFFSET TO PROGRAM COUNTER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -