Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Work ID reader Track 2 problems with pic code. Need help!

Status
Not open for further replies.

egg0900

New Member
I am having problems with this program always giving me errors and i would like some help with this. It is written for a PIC[/b]

MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 1


LOC OBJECT CODE LINE SOURCE TEXT
VALUE

Warning[205]: Found directive in column 1. (TITLE)
00001 TITLE "Card Reader"
00002
00003 LIST C=120, b=4
00004 LIST P=12C509
00005
00006 ERRORLEVEL -305 ; Suppress "Using default
00007
Warning[207]: Found label after column 1. (INDF)
00000000 00008 INDF EQU 0x00
Warning[207]: Found label after column 1. (TMR0)
00000001 00009 TMR0 EQU 0x01
Warning[207]: Found label after column 1. (Pc)
00000002 00010 Pc EQU 0x02
Warning[207]: Found label after column 1. (STATUS)
00000003 00011 STATUS EQU 0x03
Warning[207]: Found label after column 1. (FSR)
00000004 00012 FSR EQU 0x04
Warning[207]: Found label after column 1. (OSCCAL)
00000005 00013 OSCCAL EQU 0x05
Warning[207]: Found label after column 1. (GPIO)
00000006 00014 GPIO EQU 0x06 ; lower 5 bits only
00015
00016
00017
00000000 00018 GP0 EQU 0x00
00000001 00019 GP1 EQU 0x01
00000002 00020 GP2 EQU 0x02 ; Shared with T0CKI
00000003 00021 GP3 EQU 0x03 ; Always input, shared with MCLR, Vpp
00000004 00022 GP4 EQU 0x04 ; Shared with OSC2
00000005 00023 GP5 EQU 0x05 ; Shared with OSC1, clkin
00024
00025
00026
Warning[207]: Found label after column 1. (C)
00000000 00027 C EQU 0x00 ; Carry flag
Warning[207]: Found label after column 1. (DC)
00000001 00028 DC EQU 0x01 ; Digit carry flag
Warning[207]: Found label after column 1. (Z)
00000002 00029 Z EQU 0x02 ; Zero flag
Warning[207]: Found label after column 1. (PD)
00000003 00030 PD EQU 0x03 ; Power down flag
Warning[207]: Found label after column 1. (TO)
00000004 00031 TO EQU 0x04 ; WDT timeout flag
Warning[207]: Found label after column 1. (PA0)
00000005 00032 PA0 EQU 0x05 ; Program page select
Warning[207]: Found label after column 1. (GPWUF)
00000007 00033 GPWUF EQU 0x07 ; GPIO reset bit
00034
00035
Warning[207]: Found label after column 1. (RP0)
00000005 00036 RP0 EQU 0x05 ; Register page select
00037
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 2
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00038
00039
Warning[207]: Found label after column 1. (LSB)
00000000 00040 LSB EQU 0x00
Warning[207]: Found label after column 1. (MSB)
00000007 00041 MSB EQU 0x07
00042
00043
00044 #DEFINE IFSET BTFSC
00045 #DEFINE IFCLR BTFSS
00046
00047 #DEFINE IFZ SKPNZ
00048 #DEFINE IFNZ SKPZ
00049 #DEFINE IFC SKPNC
00050 #DEFINE IFNC SKPC
00051
00052 #DEFINE SKPSET BTFSS
00053 #DEFINE SKPCLR BTFSC
00054
Warning[207]: Found label after column 1. (start_code)
Error[128] : Missing argument(s)
00055 start_code EQU ; Start Sentinel bit pattern,
00056
00057
Warning[207]: Found label after column 1. (end_code)
Error[128] : Missing argument(s)
00058 end_code EQU ; End Sentinel bit pattern,
00059
00060
00061
Warning[207]: Found label after column 1. (buf_ptr)
00000007 00062 buf_ptr EQU 0x07 ; card data buffer pointer (nibbles)
Warning[207]: Found label after column 1. (num_chr)
00000008 00063 num_chr EQU 0x08 ; Number of characters read from card
Warning[207]: Found label after column 1. (count)
00000009 00064 count EQU 0x09 ; General 8 bit counter
Warning[207]: Found label after column 1. (flag)
0000000A 00065 flag EQU 0x0A ; Control flags
Warning[207]: Found label after column 1. (char_buf)
0000000B 00066 char_buf EQU 0x0B ; Character buffer, input and serial output
Warning[207]: Found label after column 1. (parityLRC)
0000000C 00067 parityLRC EQU 0x0C ; Parity/LRC workspace
Warning[207]: Found label after column 1. (temp)
0000000D 00068 temp EQU 0x0D ; Temporary workspace
00069
00070
Warning[207]: Found label after column 1. (lo_mem)
00000010 00071 lo_mem EQU 0x10 ; Memory buffer start address:
00072
00073
Warning[207]: Found label after column 1. (hi_mem)
00000033 00074 hi_mem EQU 0x33 ; Memory buffer end
00075
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 3
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00076
00077
00078
00079 if lo_mem > 0x1F
00080
00081 ERROR "Buffer start address (lo_mem) must be in Bank 0"
00082
00083 endif
00084
00085 if hi_mem > 0x1F && hi_mem < 0x30
00086
00087 ERROR "Buffer end address (hi_mem) must be in upper half of Bank 1"
00088
00089 endif
00090
00091 if hi_mem <= 0x1F
00092
00093 buf_sz EQU ((hi_mem - lo_mem) + 1) * 2
00094
00095 else
00096
Warning[207]: Found label after column 1. (buf_sz)
00000028 00097 buf_sz EQU ((hi_mem - lo_mem) - .15) * 2
00098
00099 endif
00100
00101
Warning[207]: Found label after column 1. (found_start)
00000000 00102 found_start EQU 0
Warning[207]: Found label after column 1. (found_end)
00000001 00103 found_end EQU 1
Warning[207]: Found label after column 1. (bad_parity)
00000002 00104 bad_parity EQU 2
Warning[207]: Found label after column 1. (bad_LRC)
00000003 00105 bad_LRC EQU 3
Warning[207]: Found label after column 1. (buf_end)
00000004 00106 buf_end EQU 4
Warning[207]: Found label after column 1. (read_buf)
00000005 00107 read_buf EQU 5
00108
00109
00110
Warning[207]: Found label after column 1. (ser_out)
00000000 00111 ser_out EQU GP0 ; serial TxD pin to host
Warning[207]: Found label after column 1. (card)
00000001 00112 card EQU GP1 ; ^CLD signal (low when card present)
Warning[207]: Found label after column 1. (clock)
00000002 00113 clock EQU GP2 ; ^RCL signal (low when data valid)
Warning[207]: Found label after column 1. (signal)
00000003 00114 signal EQU GP3 ; ^RDT signal from magstripe
00115
Warning[207]: Found label after column 1. (invert_tx)
00000000 00116 invert_tx EQU 0 ; 0 = Idle (logical ’1’) is 0V
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 4
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00117
0000 00118 ORG 0x00
0000 0025 00119 MOVWF OSCCAL
00120
0001 0A31 00121 GOTO start
00122
Warning[207]: Found label after column 1. (send_char)
0002 00123 send_char
00124
00125
0002 002B 00126 MOVWF char_buf ; Store the character code (in W)
00127
00128
0003 0C0A 00129 MOVLW .10 ; Set the number of bits (including
0004 0029 00130 MOVWF count ; start and stop bits) in count
00131
0005 0403 00132 CLRC ; Clear carry because the start bit
00133
00134
Warning[207]: Found label after column 1. (bit_loop)
0006 00135 bit_loop
0006 0703 00136 IFNC ; serial pin logic ’0’
00137 if invert_tx
00138 BCF GPIO,ser_out
00139 else
0007 0506 00140 BSF GPIO,ser_out
00141 endif
00142
0008 0603 00143 IFC ; serial pin logic ’1’
00144 if invert_tx
00145 BSF GPIO,ser_out
00146 else
0009 0406 00147 BCF GPIO,ser_out
00148 endif
00149
000A 090F 00150 CALL bit_delay ; Make up the bit time to 833us
00151
000B 032B 00152 RRF char_buf ; Roll LSB of char_buf into carry,
00153
00154
00155
000C 02E9 00156 DECFSZ count ; Loop until all bits have been
000D 0A06 00157 GOTO bit_loop ; shifted out.
00158
000E 0800 00159 RETLW 0
00160
00161
Warning[207]: Found label after column 1. (bit_delay)
000F 00162 bit_delay
00163
00164
000F 0C34 00165 MOVLW .52 ; Initialise temp
0010 002D 00166 MOVWF temp
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 5
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00167
0011 0C01 00168 MOVLW .1 ; Put 1 in W for incrementing temp
00169
0012 0A13 00170 GOTO $+1 ; Waste 2 cycles
0013 0000 00171 NOP ; Waste 1 cycle
00172
00173
Warning[207]: Found label after column 1. (delay_loop)
0014 00174 delay_loop
0014 01ED 00175 ADDWF temp ; Increment temp 1
0015 0703 00176 IFNC ; Did it overflow? 1
0016 0A14 00177 GOTO delay_loop ; No: go round again 2
00178
00179
00180
0017 0800 00181 RETLW 0 ; Yes: return
00182
00183
00184
Warning[207]: Found label after column 1. (get_put_char)
0018 00185 get_put_char
00186
00187
0018 0307 00188 RRF buf_ptr,W ; load W with buf_ptr/2. Carry
00189
0019 0024 00190 MOVWF FSR ; and use the FSR to point to it
00191
00192
00193
001A 0C10 00194 MOVLW lo_mem ; add the buffer start address
001B 01E4 00195 ADDWF FSR ; to get the physical address to
00196
00197
001C 06A4 00198 IFSET FSR,RP0 ; Check for overflow into the
001D 0584 00199 BSF FSR ,4 ; second register page and set
00200
00201
00202
001E 06AA 00203 IFSET flag,read_buf ; check whether this is a read
001F 0A26 00204 GOTO get_char ; or write operation
00205
Warning[207]: Found label after column 1. (put_char)
0020 00206 put_char
0020 020B 00207 MOVF char_buf,W ; Move the character (in high
00208
00209
0021 0707 00210 IFCLR buf_ptr,LSB ; except if LSB of buf_ptr is ’0’
0022 038B 00211 SWAPF char_buf,W ; then the destination is an even
00212
00213
00214
0023 0120 00215 IORWF INDF ; since the buffer was cleared
00216
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 6
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00217
0024 0C29 00218 MOVLW buf_sz + 1 ; set limit for ’put’ operation
00219
00220
0025 0A2C 00221 GOTO get_put_done
00222
Warning[207]: Found label after column 1. (get_char)
0026 00223 get_char
0026 0200 00224 MOVF INDF,W ; Fetch data from buffer to W
00225
0027 0607 00226 IFSET buf_ptr,LSB ; if LSB of buf_ptr is set the
0028 0380 00227 SWAPF INDF,W ; desired character is an odd
00228
00229
0029 0E0F 00230 ANDLW 0x0F ; mask off upper nibble
00231
002A 002B 00232 MOVWF char_buf ; move it to the character buffer
00233
002B 0208 00234 MOVF num_chr,W ; set limit for ’get’ operation
00235
00236
00237
Warning[207]: Found label after column 1. (get_put_done)
002C 00238 get_put_done
002C 02A7 00239 INCF buf_ptr ; increment memory pointer.
00240
002D 0187 00241 XORWF buf_ptr,W ; check if this was the last
00242
00243
002E 0643 00244 IFZ ; if it was,
002F 058A 00245 BSF flag,buf_end ; then set a flag
00246
0030 0800 00247 RETLW 0
00248
00249
00250
00251
Warning[207]: Found label after column 1. (start)
0031 00252 start
0031 0063 00253 CLRF STATUS
00254
Error[113] : Symbol not previously defined (B’11000000’)
0032 0C00 00255 MOVLW B’11000000’ ; Disable GPIO pull-ups and wake
00256
0033 0002 00257 OPTION
00258
Error[113] : Symbol not previously defined (B’00001110’)
0034 0C00 00259 MOVLW B’00001110’ ; Set GPIO <1:3> as inputs...
0035 0006 00260 TRIS GPIO ; Note: GP3 is always input
00261
0036 0066 00262 CLRF GPIO ; GPIO outputs all 0
00263
00264 if invert_tx
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 7
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00265 BSF GPIO,ser_out ; except for invert_tx condition
00266 endif
00267
00268
00269
00270
0037 0C07 00271 MOVLW 0x07 ; Load start address (0x07) into
0038 0024 00272 MOVWF FSR ; the FSR
00273
Warning[207]: Found label after column 1. (clrloop)
0039 00274 clrloop
0039 0060 00275 CLRF INDF ; Clear the RAM location FSR is
00276
00277
003A 02A4 00278 INCF FSR ; Increment FSR to next location
00279
003B 0204 00280 MOVF FSR,W ; Check if FSR is pointing past
003C 0FD0 00281 XORLW 0x10 | 0xC0 ; its end point. Remember MSBs
00282
00283
003D 0743 00284 IFNZ ; If counter was not 0x10
003E 0A39 00285 GOTO clrloop ; then loop again
00286
Warning[207]: Found label after column 1. (main_loop)
003F 00287 main_loop
00288
00289
003F 0C10 00290 MOVLW lo_mem ; Fetch buffer start address
0040 0024 00291 MOVWF FSR
00292
Warning[207]: Found label after column 1. (clr_buf)
Error[122] : Illegal opcode (_loop)
00293 clr_buf _loop
0041 0060 00294 CLRF INDF
00295
0042 02A4 00296 INCF FSR
00297
0043 06A4 00298 IFSET FSR,RP0 ; If FSR points to register page 1
0044 0584 00299 BSF FSR,4 ; set bit 4 to move into 0x3n
00300
00301
0045 0204 00302 MOVF FSR,W ; Check for buffer end address.
0046 0FF4 00303 XORLW (hi_mem + 1) | 0xC0
00304
0047 0743 00305 IFNZ ; If not end then loop around
Error[113] : Symbol not previously defined (clr_buf_loop)
0048 0A00 00306 GOTO clr_buf_loop
00307
0049 0067 00308 CLRF buf_ptr ; Initialise buffer pointer to 0
00309
004A 0C28 00310 MOVLW buf_sz ; Initialise the number of
004B 0028 00311 MOVWF num_chr ; characters read to the maximum
00312
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 8
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00313
Error[113] : Symbol not previously defined (start_code)
004C 0C00 00314 MOVLW start_code ; Initialise the LRC to the start
004D 002C 00315 MOVWF parityLRC ; sentinel code.
00316
004E 006A 00317 CLRF flag ; Initialise control flags to
004F 056A 00318 BSF flag ,bad_LRC ; zero then set the bad_LRC
00319
00320
00321
Error[113] : Symbol not previously defined (’R’)
0050 0C00 00322 MOVLW ’R’ ; Send "Ready" from serial port
0051 0902 00323 CALL send_char
00324
Error[113] : Symbol not previously defined (’e’)
0052 0C00 00325 MOVLW ’e’
0053 0902 00326 CALL send_char
00327
Error[113] : Symbol not previously defined (’a’)
0054 0C00 00328 MOVLW ’a’
0055 0902 00329 CALL send_char
00330
Error[113] : Symbol not previously defined (’d’)
0056 0C00 00331 MOVLW ’d’
0057 0902 00332 CALL send_char
00333
Error[113] : Symbol not previously defined (’y’)
0058 0C00 00334 MOVLW ’y’
0059 0902 00335 CALL send_char
00336
00337
005A 0C0D 00338 MOVLW .13 ; Send CR LF from serial port
005B 0902 00339 CALL send_char
00340
005C 0C0A 00341 MOVLW .10
005D 0902 00342 CALL send_char
00343
005E 006B 00344 CLRF char_buf ; Clear character input buffer
00345
Warning[207]: Found label after column 1. (wait_card)
005F 00346 wait_card
005F 0626 00347 IFSET GPIO,card ; Check ^CARD line
0060 0A5F 00348 GOTO wait_card ; if it’s high then keep waiting
00349
00350
00351
00352
Warning[207]: Found label after column 1. (wt_clk_lo)
0061 00353 wt_clk_lo
0061 0646 00354 IFSET GPIO,clock ; Check ^CLK line
0062 0A61 00355 GOTO wt_clk_lo ; If it’s high then keep waiting
00356
00357
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 9
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

Warning[207]: Found label after column 1. (chk_data)
0063 00358 chk_data
0063 0666 00359 IFSET GPIO,signal ; Check ^DATA
0064 0A69 00360 GOTO data_0 ; If it’s high, data bit is ’0’
00361
Warning[207]: Found label after column 1. (data_1)
0065 00362 data_1
0065 0503 00363 BSF STATUS,C ; Otherwise it’s low so data bit
00364
00365
0066 0C80 00366 MOVLW 0x80 ; and toggle parity bit in
0067 01AC 00367 XORWF parityLRC ; parityLRC register
00368
0068 0703 00369 BTFSS STATUS,C ; Use that fact that carry is
00370
00371
Warning[207]: Found label after column 1. (data_0)
0069 00372 data_0
0069 0403 00373 BCF STATUS,C ; bit is ’0’, so clear carry
00374
Warning[207]: Found label after column 1. (store_bit)
006A 00375 store_bit
006A 032B 00376 RRF char_buf ; shift data bit in carry flag
00377
006B 0603 00378 IFC ; So, check the carry flag
006C 0A7C 00379 GOTO got_char
00380
006D 060A 00381 IFSET flag,found_start; Has the start code been seen?
006E 0A79 00382 GOTO wt_clk_hi ; Yes, so wait for ^CLK to go
00383
00384
00385
Error[113] : Symbol not previously defined (B’11111000’)
006F 0C00 00386 MOVLW B’11111000’ ; The start code is five bits
00387
0070 016B 00388 ANDWF char_buf ; bits in the buffer (which are
00389
Error[113] : Symbol not previously defined (start_code)
0071 0C00 00390 MOVLW start_code ; and compare start_code
0072 018B 00391 XORWF char_buf,W ; to the buffer
00392
0073 0743 00393 IFNZ ; Is it the start code?
0074 0A79 00394 GOTO wt_clk_hi ; No, so wait for ^CLK to go high
00395
0075 050A 00396 BSF flag,found_start; Yes, so set a flag
00397
00398
Warning[207]: Found label after column 1. (next_char)
0076 00399 next_char
0076 04EC 00400 BCF parityLRC,MSB ; clear the parity flag,
00401
0077 006B 00402 CLRF char_buf ; clear the input buffer,
00403
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 10
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

0078 058B 00404 BSF char_buf,4 ; and set a sentinel bit
00405
00406
00407
Warning[207]: Found label after column 1. (wt_clk_hi)
0079 00408 wt_clk_hi
0079 0746 00409 IFCLR GPIO,clock ; Check ^CLK line
007A 0A79 00410 GOTO wt_clk_hi ; Keep waiting whilst it’s low
00411
007B 0A61 00412 GOTO wt_clk_lo ; Then go and wait for it to be
00413
Warning[207]: Found label after column 1. (got_char)
007C 00414 got_char
00415
007C 07EC 00416 IFCLR parityLRC,MSB ; If parity bit is ’0’
007D 054A 00417 BSF flag,bad_parity ; set the parity error flag
00418
007E 020B 00419 MOVF char_buf,W ; Copy char_buf to W
007F 01AC 00420 XORWF parityLRC ; XOR with the parityLRC register
00421
0080 072A 00422 IFCLR flag,found_end ; yet been seen then this is
0081 0A89 00423 GOTO not_LRC ; not the LRC, so store it
00424
0082 020C 00425 MOVF parityLRC,W ; Otherwise it was the LRC, so
Error[113] : Symbol not previously defined (b’01111000’)
0083 0E00 00426 ANDLW b’01111000’ ; get the LRC check from the
00427
0084 0643 00428 IFZ ; If it is zero then the LRC was
0085 046A 00429 BCF flag,bad_LRC ; okay so clear the bad_LRC flag
00430
0086 0207 00431 MOVF buf_ptr,W ; Copy the value of buffer pointer
0087 0028 00432 MOVWF num_chr ; to num_chr
00433
0088 0A95 00434 GOTO dump_buffer ; and dump it out
00435
00436
Warning[207]: Found label after column 1. (not_LRC)
0089 00437 not_LRC
Error[113] : Symbol not previously defined (end_code)
0089 0C00 00438 MOVLW end_code ; Is this the end sentinel?
008A 018B 00439 XORWF char_buf,W
00440
008B 0643 00441 IFZ ; If so, the next character is
008C 052A 00442 BSF flag,found_end ; the LRC, so set a flag
00443
008D 0643 00444 IFZ
008E 0A76 00445 GOTO next_char ; and don’t bother storing it
00446
008F 036B 00447 RLF char_buf ; discard parity by shifting it
00448
0090 0CF0 00449 MOVLW 0xF0 ; mask off the lower nibble
0091 016B 00450 ANDWF char_buf
00451
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 11
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

0092 0918 00452 CALL get_put_char ; and store the character

0093 078A 00453 IFCLR flag,buf_end ; Is the buffer full?
0094 0A76 00454 GOTO next_char ; no, so get the next character
00455
00456
Warning[207]: Found label after column 1. (dump_buffer)
0095 00457 dump_buffer
0095 0067 00458 CLRF buf_ptr ; Load buffer pointer with 0
00459
0096 05AA 00460 BSF flag,read_buf ; Set the flag to read mode
0097 048A 00461 BCF flag,buf_end ; Clear the buf_end flag
00462
Warning[207]: Found label after column 1. (loop_buffer)
0098 00463 loop_buffer
0098 0918 00464 CALL get_put_char ; Get character from buffer
00465
0099 0C30 00466 MOVLW .48 ; convert to ASCII by adding 48
009A 01CB 00467 ADDWF char_buf, W ; and put the result in W
00468
009B 0902 00469 CALL send_char ; and send the character
00470
009C 078A 00471 IFCLR flag,buf_end ; have we emptied the buffer?
009D 0A98 00472 GOTO loop_buffer ; No, so loop around
Error[108] : Illegal character (")
009D 0A98 00473 "
00474
Error[113] : Symbol not previously defined (’.’)
009E 0C00 00475 MOVLW ’.’ ; Load ASCII "." into W
00476
009F 064A 00477 IFSET flag,bad_parity ; If parity was ever bad
Error[113] : Symbol not previously defined (’P’)
00A0 0C00 00478 MOVLW ’P’ ; load ASCII "P" into W instead
00479
00A1 0902 00480 CALL send_char ; then send the character
00481
Error[113] : Symbol not previously defined (’.’)
00A2 0C00 00482 MOVLW ’.’ ; Load ASCII "." into W again
00483
00A3 066A 00484 IFSET flag,bad_LRC ; If LRC was bad
Error[113] : Symbol not previously defined (’L’)
00A4 0C00 00485 MOVLW ’L’ ; load ASCII ’L’ into W instead
00486
00A5 0902 00487 CALL send_char ; and send the character
00488
00A6 0C0D 00489 MOVLW .13 ; Send CR LF from serial port
00A7 0902 00490 CALL send_char
00491
00A8 0C0A 00492 MOVLW .10
00A9 0902 00493 CALL send_char
00494
00AA 0A3F 00495 GOTO main_loop ; Back to the beginning and wait
00496
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 12
Card Reader

LOC OBJECT CODE LINE SOURCE TEXT
VALUE

00497
00498
00499 END
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 13
Card Reader

SYMBOL TABLE
LABEL VALUE

C 00000000
DC 00000001
FSR 00000004
GP0 00000000
GP1 00000001
GP2 00000002
GP3 00000003
GP4 00000004
GP5 00000005
GPIO 00000006
GPWUF 00000007
IFC SKPNC
IFCLR BTFSS
IFNC SKPC
IFNZ SKPZ
IFSET BTFSC
IFZ SKPNZ
INDF 00000000
LSB 00000000
MSB 00000007
OSCCAL 00000005
PA0 00000005
PD 00000003
Pc 00000002
RP0 00000005
SKPCLR BTFSC
SKPSET BTFSS
STATUS 00000003
TMR0 00000001
TO 00000004
Z 00000002
__12C509 00000001
bad_LRC 00000003
bad_parity 00000002
bit_delay 0000000F
bit_loop 00000006
buf_end 00000004
buf_ptr 00000007
buf_sz 00000028
card 00000001
char_buf 0000000B
chk_data 00000063
clock 00000002
clrloop 00000039
count 00000009
data_0 00000069
data_1 00000065
delay_loop 00000014
dump_buffer 00000095
flag 0000000A
found_end 00000001
found_start 00000000
get_char 00000026
MPASM 03.70 Released TK2.ASM 5-16-2004 3:28:02 PAGE 14
Card Reader

SYMBOL TABLE
LABEL VALUE

get_put_char 00000018
get_put_done 0000002C
got_char 0000007C
hi_mem 00000033
invert_tx 00000000
lo_mem 00000010
loop_buffer 00000098
main_loop 0000003F
next_char 00000076
not_LRC 00000089
num_chr 00000008
parityLRC 0000000C
put_char 00000020
read_buf 00000005
send_char 00000002
ser_out 00000000
signal 00000003
start 00000031
store_bit 0000006A
temp 0000000D
wait_card 0000005F
wt_clk_hi 00000079
wt_clk_lo 00000061


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

0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXX----- ----------------

All other memory blocks unused.

Program Memory Words Used: 171
Program Memory Words Free: 853


Errors : 21
Warnings : 65 reported, 0 suppressed
Messages : 0 reported, 14 suppressed
 
Most of the errors look to be in your formatting of your source file, simply read what they say!.

'Found label after column 1' is pretty obvious, labels should be in the first column (left hand side).

Again 'Found directive in column 1. (TITLE)' is obvious as well, directives shouldn't be in the first column.
 
Maybe you forgot to include the file "PIC12C509.INC".

Insert the ff. code after the line "LIST P=12C509"

Code:
          LIST P=12C509 
          include "PIC12C509.INC"

Make sure the file "PIC12C509.INC" is in the same directory as your source code. You may copy it from the MPLAB/MPASM install directory.

P.S. Make use of the "Code" button when inserting program source code in your posting. You may also attach the listing.
 
Status
Not open for further replies.

Latest threads

Back
Top