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

📄 telecrd1.lst

📁 ic电话卡读写器程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
0043 1508            0096         bsf     EECON1,WREN     ; EEPROM Write Enable 
0044 138B            0097         bcf     INTCON,GIE      ; Disable all interupts 
0045 3055            0098         movlw   055             ; Magic Number #1 for EEPROM Write 
0046 0089            0099         movwf   EECON2          ; Store in EECON2 
0047 30AA            0100         movlw   0aa             ; Magic Number #2 for EEPROM Write 
0048 0089            0101         movwf   EECON2          ; Store in EECON2 
0049 1488            0102         bsf     EECON1,WR       ; Execute EEPROM Write 
004A 178B            0103         bsf     INTCON,GIE      ; Enable all interupts again! 
004B 1283            0104         bcf     STATUS,RP0      ; Access register bank 0 
004C 2835            0105         goto    MAIN            ; Program main loop! 
                     0106  
004D 188B            0107 INTMAIN btfsc   INTCON,INTF     ; Check for INT Interupt 
004E 2852            0108         goto    INTMAIN2        ; If set, jump to INTMAIN2 
004F 3010            0109         movlw   B'00010000'     ; Enable INT Interupt 
0050 008B            0110         movwf   INTCON          ; Store in INTCON 
0051 0008            0111         return 
                     0112  
0052                 0113 INTMAIN2 
0052 1283            0114         bcf     STATUS,RP0      ; Access register bank 0 
0053 1405            0115         bsf     PORTA,CRD_DTA   ; Set Data Output High 
0054 1886            0116         btfsc   PORTB,CRD_RST   ; Check if reset is low 
0055 2862            0117         goto    NO_RST          ; If not, skip reset sequence 
0056 0801            0118         movfw   RTCC            ; Get RTCC Value 
0057 009F            0119         movwf   TEMP4           ; Store in TEMP4 
0058 0181            0120         clrf    RTCC            ; Clear RTCC 
0059 3055            0121         movlw   055             ; Subtract $55 from TEMP4 
005A 021F            0122         subwf   TEMP4,0         ; Subtract with $55 to check for reset 
005B 1D03 2860       0123         bnz     NO_RST2         ; If not zero, jump to NO_RST 
005D 3002            0124         movlw   02              ; Unused one has $02 in FUSCNT 
005E 0098            0125         movwf   FUSCNT          ; Store full value in FUSCNT 
005F 141B            0126         bsf     EE_FLAG,LSB     ; Set EEPROM Write Flag 
0060 108B            0127 NO_RST2 bcf     INTCON,INTF     ; Clear INT Interupt Flag 
0061 0008            0128         return                  ; Mission Accomplished, return to sender 
                     0129  
0062 0801            0130 NO_RST  movfw   RTCC            ; Get RTCC Value 
0063 0099            0131         movwf   BITCNT          ; Copy it to BITCNT 
0064 009C            0132         movwf   TEMP1           ; Copy it to TEMP1 
MPASM 01.02 Released  TELECRD1.ASM   9-16-1994  10:19:21                 PAGE  6
ISO 7816 Synchronous Memory Card Emulator

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0065 009D            0133         movwf   TEMP2           ; Copy it to TEMP2 
0066 3060            0134         movlw   060             ; Load W with $60 
0067 021C            0135         subwf   TEMP1,0         ; Subtract $60 from TEMP1 
0068 1903 2881       0136         bz      CREDIT          ; If it is equal to $60 
006A 1803 2881       0137         bc      CREDIT          ; or greater, then skip to units area 
006C 0C9D            0138         rrf     TEMP2           ; Rotate TEMP2 one step right 
006D 0C9D            0139         rrf     TEMP2           ; Rotate TEMP2 one step right 
006E 0C9D            0140         rrf     TEMP2           ; Rotate TEMP2 one step right 
006F 300F            0141         movlw   0f              ; Load W with $f 
0070 059D            0142         andwf   TEMP2,1         ; And TEMP2 with W register 
0071 081D            0143         movfw   TEMP2           ; Load W with TEMP2 
0072 3E0C            0144         addlw   0c              ; Add W with $0c 
0073 0084            0145         movwf   FSR             ; Store data address in FSR 
0074 0800            0146         movfw   INDIR           ; Get databyte pointed at by FSR 
0075 009E            0147         movwf   TEMP3           ; Store it in TEMP3 
0076 3007            0148         movlw   07              ; Load W with $07 
0077 059C            0149         andwf   TEMP1,1         ; And TEMP1 with $07 
0078 1903 287D       0150         bz      NO_ROT          ; If result is zero, skip shift loop 
007A 0D9E            0151 ROTLOOP rlf     TEMP3           ; Shift TEMP3 one step left 
007B 0B9C            0152         decfsz  TEMP1,1         ; Decrement TEMP1 until zero 
007C 287A            0153         goto    ROTLOOP         ; If not zero, repeat until it is! 
007D 1F9E            0154 NO_ROT  btfss   TEMP3,MSB       ; Check if MSB of TEMP3 is set 
007E 1005            0155         bcf     PORTA,CRD_DTA   ; Clear Data Output 
007F 108B            0156         bcf     INTCON,INTF     ; Clear INT Interupt Flag 
0080 0008            0157         return                  ; Mission Accomplished, return to sender 
                     0158  
0081 1F86            0159 CREDIT  btfss   PORTB,CRD_WE    ; Check if Card Write Enable is High 
0082 2889            0160         goto    NO_WRT          ; Abort write operation if not... 
0083 1C86            0161         btfss   PORTB,CRD_RST   ; Check if Card Reset is High 
0084 2889            0162         goto    NO_WRT          ; Abort write operation if not... 
0085 0A98            0163         incf    FUSCNT          ; Increase used-up units counter 
0086 141B            0164         bsf     EE_FLAG,LSB     ; Set EEPROM Write-Flag 
0087 108B            0165         bcf     INTCON,INTF     ; Clear INT Interupt Flag 
0088 0008            0166         return                  ; Mission Accomplished, return to sender 
                     0167  
0089 3060            0168 NO_WRT  movlw   060             ; Load W with $60 
008A 0299            0169         subwf   BITCNT,1        ; Subtract $60 from BITCNT 
008B 0818            0170         movfw   FUSCNT          ; Load W with FUSCNT 
008C 0299            0171         subwf   BITCNT,1        ; Subtract FUSCNT from BITCNT 
008D 1C03 2890       0172         bnc     FUSED           ; If result is negative, unit is fused 
008F 1005            0173         bcf     PORTA,CRD_DTA   ; Clear Data Output 
0090 108B            0174 FUSED   bcf     INTCON,INTF     ; Clear INT Interupt Flag 
0091 0008            0175         return                  ; Mission Accomplished, return to sender 
                     0176 	 
0092 0782            0177 CARDID  addwf   PCL             ; Card ID Data!!! 
0093 3481            0178         retlw   0x081 
0094 3442            0179         retlw   0x042 
0095 3400            0180         retlw   0x000 
0096 3411            0181         retlw   0x011 
0097 3422            0182         retlw   0x022 
0098 3433            0183         retlw   0x033 
0099 3444            0184         retlw   0x044 
009A 3455            0185         retlw   0x055 
MPASM 01.02 Released  TELECRD1.ASM   9-16-1994  10:19:21                 PAGE  7
ISO 7816 Synchronous Memory Card Emulator

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

009B 3466            0186         retlw   0x066 
009C 3477            0187         retlw   0x077 
009D 3411            0188         retlw   0x011 
009E 3484            0189         retlw   0x084 
                     0190  
                     0191         END 
                     0192  
MPASM 01.02 Released  TELECRD1.ASM   9-16-1994  10:19:21                 PAGE  8
ISO 7816 Synchronous Memory Card Emulator

SYMBOL TABLE

LABEL                            VALUE

ADCON0                            0008 
ADCON1                            0008 
ADCS0                             0006 
ADCS1                             0007 
ADGO                              0002 
ADIE                              0006 
ADIF                              0001 
ADON                              0000 
ADRES                             0009 
BITCNT                            0019 
C                                 0000 
CARDID                            0092 
CARRY                             0000 
CHS0                              0003 
CHS1                              0004 
CRD_CLK                           0000 
CRD_DTA                           0000 
CRD_ID                            000C 
CRD_RST                           0001 
CRD_WE                            0007 
CREDIT                            0081 
DC                                0001 
DCARRY                            0001 
EEADR                             0009 
EECON1                            0008 
EECON2                            0009 
EECOPY                            0028 
EEDATA                            0008 
EEIE                              0006 
EEIF                              0004 
EE_FLAG                           001B 
FALSE                             0000 
FSR                               0004 
FUSCNT                            0018 
FUSED                             0090 
GIE                               0007 
INDIR                             0000 
INIT                              0010 
INTCON                            000B 
INTE                              0004 
INTEDG                            0006 
INTF                              0001 
INTMAIN                           004D 
INTMAIN2                          0052 
INTVEC                            0004 
IRP                               0007 
LOOPCNT                           001A 
LSB                               0000 
MAIN                              0035 
MSB                               0007 
NO                                0000 
NO_ROT                            007D MPASM 01.02 Released  TELECRD1.ASM   9-16-1994  10:19:21                 PAGE  9
ISO 7816 Synchronous Memory Card Emulator

SYMBOL TABLE - Continued

LABEL                            VALUE

NO_RST                            0062 
NO_RST2                           0060 
NO_WRT                            0089 
OPTION                            0001 
PCFG0                             0000 
PCFG1                             0001 
PCL                               0002 
PCLATH                            000A 
PD                                0003 
PIC54                             01FF 
PIC55                             01FF 
PIC56                             03FF 
PIC57                             07FF 
PIC71                             0000 
PIC84                             0000 
PORTA                             0005 
PORTB                             0006 
PORTC                             0007 
PS0                               0000 
PS1                               0001 
PS2                               0002 
PSA                               0003 
P_DOWN                            0003 
RBIE                              0003 
RBIF                              0000 
RBPU                              0007 
RD                                0000 
ROTLOOP                           007A 
RP0                               0005 
RP1                               0006 
RTCC                              0001 
RTE                               0004 
RTIE                              0005 
RTIF                              0002 
RTS                               0005 
STATUS                            0003 
TEMP1                             001C 
TEMP2                             001D 
TEMP3                             001E 
TEMP4                             001F 
TEMP_S                            002F 
TEMP_W                            002E 
TO                                0004 
TRISA                             0005 
TRISB                             0006 
TRISC                             0007 
TRUE                              0001 
T_OUT                             0004 
WR                                0001 
WREN                              0002 
WRERR                             0003 
YES                               0001 MPASM 01.02 Released  TELECRD1.ASM   9-16-1994  10:19:21                 PAGE 10
ISO 7816 Synchronous Memory Card Emulator

SYMBOL TABLE - Continued

LABEL                            VALUE

Z                                 0002 
Z_BIT                             0002 


MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : X---XXXXXXXXX--- XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX- ---------------- ----------------
00C0 : ---------------- ---------------- ---------------- ----------------

2000 : XXXX---X-------- ---------------- ---------------- ----------------
2040 : ---------------- ---------------- ---------------- ----------------

All other memory blocks unused.


Errors   :    0
Warnings :    5
Messages :    0



⌨️ 快捷键说明

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