Sorry about all the messages included, but they are relevant - you can PGDN now. At 12:11 PM 11/30/96 -0800, you wrote: >Hi: > >In the following snipit how can I tell what address the CBLOCK >directive assigned to the "month". Currently I compile, look at >the listing, assign a value at label add_mo. Surley there is a >better way. Any ideas? > >Thanks, >Brooke > >lblm > cblock > month > day > yrmsb, yrlsb > hour > min > sec > endc >add_mo equ 0x16 > movlw add_mo ; set up FSR with starting RAM address > movwf FSR ; >storedata > call uartrx ; Get a char from GPS > movf CHARBUF,W ; place into W reg > movwf INDF ; move data to RAM @ FSR address > incf FSR,F ; increment FSR to point to next address > movf FSR,W ; move FSR into W for done test > sublw add_mo+7 ; last ram location > btfss STATUS,Z ; done? > goto storedata ; loop untill 7 bytes read > >You have two choices here: > > 1. Don't use the "add_mo" symbol AT ALL; you can just as easily > use "month". > > or > > 2. Define "add_mo" as follows: > > add_mo equ month > >-Andy > >=== Andrew Warren - fastfwd@ix.netcom.com === >=== Fast Forward Engineering - Vista, California === (snip) I snipped four paragrpahs of lecturing and replaced it with this (snip) : If you're going to use symbolic constants then USE THEM. Instead of using 'add_mo+7', use 'sec+1'. It is just much clearer (although not entirely) when your loop is going to terminate. (It also means that if you get another GPS that doesn't give yrmsb/lsb for some reason, you can just drop them and the code will read the CORRECT number of bytes anyway.) Finally, you can add a parameter to CLOCK to tell it where to start assigning labels - if you must. E.g. CBLOCK 0x10 will start with month=0x10, day=0x11 etc. Jan van der Watt [Free BUNGEE JUMP lessons : No strings attached]