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

📄 telecrd2.lst

📁 ic电话卡读写器程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
0033 1208            0085         bcf     EECON1,EEIF     ; Reset Write Completion Flag 
0034 1108            0086         bcf     EECON1,WREN     ; EEPROM Write Disable 
0035 1283            0087         bcf     STATUS,RP0      ; Access register bank 0 
0036 1C1B            0088         btfss   EE_FLAG,LSB     ; Check for EEPROM Write Flag 
0037 2830            0089         goto    MAIN            ; If not set, jump back and wait some more 
0038 019B            0090         clrf    EE_FLAG         ; Clear EEPROM Write Flag 
0039 300C            0091         movlw   0c              ; Units is stored in byte $0c 
003A 0089            0092         movwf   EEADR           ; Store in EEPROM Address Counter 
003B 0818            0093         movfw   FUSCNT          ; Get fused units counter 
003C 0088            0094         movwf   EEDATA          ; Store in EEDATA 
003D 1683            0095         bsf     STATUS,RP0      ; Access register bank 1 
003E 1508            0096         bsf     EECON1,WREN     ; EEPROM Write Enable 
003F 138B            0097         bcf     INTCON,GIE      ; Disable all interupts 
0040 3055            0098         movlw   055             ; Magic Number #1 for EEPROM Write 
0041 0089            0099         movwf   EECON2          ; Store in EECON2 
0042 30AA            0100         movlw   0aa             ; Magic Number #2 for EEPROM Write 
0043 0089            0101         movwf   EECON2          ; Store in EECON2 
0044 1488            0102         bsf     EECON1,WR       ; Execute EEPROM Write 
0045 178B            0103         bsf     INTCON,GIE      ; Enable all interupts again! 
0046 1283            0104         bcf     STATUS,RP0      ; Access register bank 0 
0047 2830            0105         goto    MAIN            ; Program main loop! 
                     0106  
0048 188B            0107 INTMAIN btfsc   INTCON,INTF     ; Check for INT Interupt 
0049 284D            0108         goto    INTMAIN2        ; If set, jump to INTMAIN2 
004A 3010            0109         movlw   B'00010000'     ; Enable INT Interupt 
004B 008B            0110         movwf   INTCON          ; Store in INTCON 
004C 0008            0111         return 
                     0112  
004D                 0113 INTMAIN2 
004D 1283            0114         bcf     STATUS,RP0      ; Access register bank 0 
004E 1405            0115         bsf     PORTA,CRD_DTA   ; Set Data Output High 
004F 1886            0116         btfsc   PORTB,CRD_RST   ; Check if reset is low 
0050 285D            0117         goto    NO_RST          ; If not, skip reset sequence 
0051 0801            0118         movfw   RTCC            ; Get RTCC Value 
0052 009F            0119         movwf   TEMP4           ; Store in TEMP4 
0053 0181            0120         clrf    RTCC            ; Clear RTCC 
0054 3055            0121         movlw   055             ; Subtract $55 from TEMP4 
0055 021F            0122         subwf   TEMP4,0         ; to check for card reset.... 
0056 1D03 285B       0123         bnz     NO_RST2         ; If not zero, jump to NO_RST 
MPASM 01.02 Released  TELECRD2.ASM   9-16-1994  10:19:25                 PAGE  6
ISO 7816 Synchronous Memory Card Emulator

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0058 3002            0124         movlw   02              ; Unused one has $02 in FUSCNT 
0059 0098            0125         movwf   FUSCNT          ; Store full value in FUSCNT 
005A 141B            0126         bsf     EE_FLAG,LSB     ; Set EEPROM Write Flag 
005B 108B            0127 NO_RST2 bcf     INTCON,INTF     ; Clear INT Interupt Flag 
005C 0008            0128         return                  ; Mission Accomplished, return to sender 
                     0129  
005D 0801            0130 NO_RST  movfw   RTCC            ; Get RTCC Value 
005E 0099            0131         movwf   BITCNT          ; Copy it to BITCNT 
005F 009C            0132         movwf   TEMP1           ; Copy it to TEMP1 
0060 009D            0133         movwf   TEMP2           ; Copy it to TEMP2 
0061 3060            0134         movlw   060             ; Load W with $60 
0062 021C            0135         subwf   TEMP1,0         ; Subtract $60 from TEMP1 
0063 1903 287C       0136         bz      CREDIT          ; If it is equal to $60 
0065 1803 287C       0137         bc      CREDIT          ; or greater, then skip to units area 
0067 0C9D            0138         rrf     TEMP2           ; Rotate TEMP2 one step right 
0068 0C9D            0139         rrf     TEMP2           ; Rotate TEMP2 one step right 
0069 0C9D            0140         rrf     TEMP2           ; Rotate TEMP2 one step right 
006A 300F            0141         movlw   0f              ; Load W with $f 
006B 059D            0142         andwf   TEMP2,1         ; And TEMP2 with W register 
006C 081D            0143         movfw   TEMP2           ; Load W with TEMP2 
006D 3E0C            0144         addlw   0c              ; Add W with $0c 
006E 0084            0145         movwf   FSR             ; Store data address in FSR 
006F 0800            0146         movfw   INDIR           ; Get databyte pointed at by FSR 
0070 009E            0147         movwf   TEMP3           ; Store it in TEMP3 
0071 3007            0148         movlw   07              ; Load W with $07 
0072 059C            0149         andwf   TEMP1,1         ; And TEMP1 with $07 
0073 1903 2878       0150         bz      NO_ROT          ; If result is zero, skip shift loop 
0075 0D9E            0151 ROTLOOP rlf     TEMP3           ; Shift TEMP3 one step left 
0076 0B9C            0152         decfsz  TEMP1,1         ; Decrement TEMP1 until zero 
0077 2875            0153         goto    ROTLOOP         ; If not zero, repeat until it is! 
0078 1F9E            0154 NO_ROT  btfss   TEMP3,MSB       ; Check if MSB of TEMP3 is set 
0079 1005            0155         bcf     PORTA,CRD_DTA   ; Clear Data Output 
007A 108B            0156         bcf     INTCON,INTF     ; Clear INT Interupt Flag 
007B 0008            0157         return                  ; Mission Accomplished, return to sender 
                     0158  
007C 1F86            0159 CREDIT  btfss   PORTB,CRD_WE    ; Check if Card Write Enable is High 
007D 2884            0160         goto    NO_WRT          ; Abort write operation if not... 
007E 1C86            0161         btfss   PORTB,CRD_RST   ; Check if Card Reset is High 
007F 2884            0162         goto    NO_WRT          ; Abort write operation if not... 
0080 0A98            0163         incf    FUSCNT          ; Increase used-up units counter 
0081 141B            0164         bsf     EE_FLAG,LSB     ; Set EEPROM Write-Flag 
0082 108B            0165         bcf     INTCON,INTF     ; Clear INT Interupt Flag 
0083 0008            0166         return                  ; Mission Accomplished, return to sender 
                     0167  
0084 3060            0168 NO_WRT  movlw   060             ; Load W with $60 
0085 0299            0169         subwf   BITCNT,1        ; Subtract $60 from BITCNT 
0086 0818            0170         movfw   FUSCNT          ; Load W with FUSCNT 
0087 0299            0171         subwf   BITCNT,1        ; Subtract FUSCNT from BITCNT 
0088 1C03 288B       0172         bnc     FUSED           ; If result is negative, unit is fused 
008A 1005            0173         bcf     PORTA,CRD_DTA   ; Clear Data Output 
008B 108B            0174 FUSED   bcf     INTCON,INTF     ; Clear INT Interupt Flag 
008C 0008            0175         return                  ; Mission Accomplished, return to sender 
                     0176 	 
MPASM 01.02 Released  TELECRD2.ASM   9-16-1994  10:19:25                 PAGE  7
ISO 7816 Synchronous Memory Card Emulator

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                     0177         END 
                     0178  
MPASM 01.02 Released  TELECRD2.ASM   9-16-1994  10:19:25                 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 
CARRY                             0000 
CHS0                              0003 
CHS1                              0004 
CRD_CLK                           0000 
CRD_DTA                           0000 
CRD_ID                            000C 
CRD_RST                           0001 
CRD_WE                            0007 
CREDIT                            007C 
DC                                0001 
DCARRY                            0001 
EEADR                             0009 
EECON1                            0008 
EECON2                            0009 
EECOPY                            0021 
EEDATA                            0008 
EEIE                              0006 
EEIF                              0004 
EE_FLAG                           001B 
FALSE                             0000 
FSR                               0004 
FUSCNT                            0018 
FUSED                             008B 
GIE                               0007 
INDIR                             0000 
INIT                              0010 
INTCON                            000B 
INTE                              0004 
INTEDG                            0006 
INTF                              0001 
INTMAIN                           0048 
INTMAIN2                          004D 
INTVEC                            0004 
IRP                               0007 
LOOPCNT                           001A 
LSB                               0000 
MAIN                              0030 
MSB                               0007 
NO                                0000 
NO_ROT                            0078 
NO_RST                            005D MPASM 01.02 Released  TELECRD2.ASM   9-16-1994  10:19:25                 PAGE  9
ISO 7816 Synchronous Memory Card Emulator

SYMBOL TABLE - Continued

LABEL                            VALUE

NO_RST2                           005B 
NO_WRT                            0084 
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                           0075 
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 
Z                                 0002 MPASM 01.02 Released  TELECRD2.ASM   9-16-1994  10:19:25                 PAGE 10
ISO 7816 Synchronous Memory Card Emulator

SYMBOL TABLE - Continued

LABEL                            VALUE

Z_BIT                             0002 


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

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

0080 : XXXXXXXXXXXXX--- ---------------- ---------------- ----------------
00C0 : ---------------- ---------------- ---------------- ----------------

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

2100 : XXXXXXX--------- ---------------- ---------------- ----------------
2140 : ---------------- ---------------- ---------------- ----------------

All other memory blocks unused.


Errors   :    0
Warnings :   12
Messages :    0



⌨️ 快捷键说明

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