Hello,
Writing a small application to write to Nokia 5110 LCD. I am using code found in the wiki section with some small changes. I am not using the PrintStr macro.
It is the PrintVar macro i am using. I don't do much macro work and need some help.

I seem to be having trouble when i use a macro and i get cross page boundry warnings when compiling. That is to say, when i don't get the boundry
warnings, (i reduce my code size), everything is o.k. Otherwise screen gets full of characters. I suspects chip has lost its way.

PBP3
MPLab 8.83
PicKit 3 (programmer and powering circuit 3.3V)
PIC16F1825
Nokia 5110 LCD

thanks,
Mike

Code:
#CONFIG
	__config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
	__config _CONFIG2, _PLLEN_OFF & _LVP_OFF & _WRT_ALL & _STVREN_OFF & _BORV_19
#ENDCONFIG


DEFINE OSC 4
DEFINE NO_CLRWDT 1

'don't display page boundry error
'@ ERRORLEVEL -306



'--- Inputs ---



'--- Outputs ---
lcd_DC      var PORTA.2
lcd_RES     var PORTC.0
lcd_CLK     var PORTC.1
lcd_SDO     var PORTC.2
lcd_SCE     var PORTC.3



'--- Variables ---
posX        var byte
posY        var byte
FC          var byte[5]     '5 bytes = 1 character
lcd_Data    var byte        'LCD command or data
columnNum   var byte
charNum     var byte
temp		var word

'for PrintVar macro
varData     var word        'variable to print to lcd
n           var byte        'for/next variable
digits      var bit         'number of digits in varData




'=== Initialize Chip ==========================================================
InitChip:
	'set internal clock to 4MHz
	OSCCON = %01101000

	PORTA = 0
	LATA = 0
	PORTC = 0
	LATC = 0

	'setup port i/o
	TRISA = %001011
	TRISC = %000000

	'turn off all a/d inputs
	ANSELA = 0
	ANSELC = 0

	'power on delay
	pause 20

	gosub LcdInit
	gosub LcdClear
	goto Main




'===[ Subroutines ]================================================================
'PrintVar Macro
'Example: @ PrintVar x,y, _variableName
asm
PrintVar macro x, y, Variable
    local OverVar                
    goto OverVar                
OverVar
    MOVE?CB  x, _posX           ;move x from above statement to PosX
    MOVE?CB  y, _posY           ;move y from above statement to PosY
    MOVE?WW  Variable, _varData ;move variable to VarData
    L?CALL   _VariableOut
    endm
endasm
VariableOut:
    @ bcf _digits
    for n = 4 to 0 step -1        		'cycles through all possible digts of number
        gosub LcdGotoXY          		'place character at position PosX and PosY
        lcd_Data = (varData dig n) + 48 'digit number n to character str format
        if lcd_data = 48 and digits = 0 then SkipChar 'skip if first char is 0
        @ bsf _digits             		'show that one character has been printed
        gosub LcdSendChar        		'print char to screen
        posX = posX + 6           		'next x position for character
SkipChar:        
    next
	return



LcdInit:
    lcd_RES = 0      						'reset LCD (HW reset)
    pause 1
    lcd_RES = 1                         	'release reset
    lcd_SCE = 0                             'chip select
    lcd_DC = 0                              'command mode
     
  	lcd_Data = $21 : gosub LcdSendByte    	'LCD EXTENDED COMMANDS
  	lcd_Data = $c8 : gosub LcdSendByte      'SET LCD Vop (CONTRAST)
  	lcd_Data = $06 : gosub LcdSendByte      'SET TEMP COEFFICENT
  	lcd_Data = $13 : gosub LcdSendByte      'LCD BIAS MODE
  	lcd_Data = $20 : gosub LcdSendByte      'LCD STANDARD COMMANDS
  	lcd_data = $08 : gosub LcdSendByte      'LCD Blank
  	lcd_Data = $0c : gosub LcdSendByte      'LCD NORMAL MODE
	return



LcdSendByte:
    shiftout lcd_SDO,lcd_CLK,1,[lcd_Data]
    return



LcdClear:
    gosub LcdHome
    lcd_DC = 1
    for columnNum = 1 to 84                         'Send empty character
    	shiftout lcd_SDO,lcd_CLK,1,[0,0,0,0,0,0] 	'14 per page
    next                                   			'6 rows
    return											'14 * 6 = 84



LcdHome:
    posX = 0
    posY = 0
    gosub LcdGotoXY
    return



LcdGotoXY:
    lcd_DC = 0
    lcd_Data = %01000000 | posY : gosub LcdSendByte	
    lcd_Data = %10000000 | posX : gosub LcdSendByte	
    return



LcdContrast:
    lcd_DC = 0
    lcd_Data = %11010001
    gosub LcdSendByte
    return



ScrNormal:
    lcd_DC = 0
    lcd_Data = %00001100
    gosub LcdSendByte
    return



ScrInvert:
    lcd_DC = 0
    lcd_Data = %00001101
    gosub LcdSendByte
    return



LcdSendChar:
	lookdown lcd_data,[" !\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"],charNum

    lcd_data = charNum + 32
    
    select case lcd_data
    	case 32                   
    		FC(0)=$00 : FC(1)=$00 : FC(2)=$00 : FC(3)=$00 : FC(4)=$00 ' sp
	    case 33                   
	    	FC(0)=$00 : FC(1)=$00 : FC(2)=$2f : FC(3)=$00 : FC(4)=$00 ' !
	    case 34                   
	    	FC(0)=$00 : FC(1)=$07 : FC(2)=$00 : FC(3)=$07 : FC(4)=$00 ' " (use \ to display " )
	    case 35                   
	    	FC(0)=$14 : FC(1)=$7f : FC(2)=$14 : FC(3)=$7f : FC(4)=$14 ' #
	    case 36                   
	    	FC(0)=$24 : FC(1)=$2a : FC(2)=$7f : FC(3)=$2a : FC(4)=$12 ' $
	    case 37                   
	    	FC(0)=$c4 : FC(1)=$c8 : FC(2)=$10 : FC(3)=$26 : FC(4)=$46 ' %
	    case 38                   
	    	FC(0)=$36 : FC(1)=$49 : FC(2)=$55 : FC(3)=$22 : FC(4)=$50 ' &
	    case 39                   
	    	FC(0)=$00 : FC(1)=$05 : FC(2)=$03 : FC(3)=$00 : FC(4)=$00 ' '
	    case 40                   
	    	FC(0)=$00 : FC(1)=$1c : FC(2)=$22 : FC(3)=$41 : FC(4)=$00 ' (
	    case 41                   
	    	FC(0)=$00 : FC(1)=$41 : FC(2)=$22 : FC(3)=$1c : FC(4)=$00 ' )
	    case 42                   
	    	FC(0)=$14 : FC(1)=$08 : FC(2)=$3E : FC(3)=$08 : FC(4)=$14 ' *
	    case 43                   
	    	FC(0)=$08 : FC(1)=$08 : FC(2)=$3E : FC(3)=$08 : FC(4)=$08 ' +
	    case 44                   
	    	FC(0)=$00 : FC(1)=$00 : FC(2)=$50 : FC(3)=$30 : FC(4)=$00 ' ,
	    case 45                   
	    	FC(0)=$10 : FC(1)=$10 : FC(2)=$10 : FC(3)=$10 : FC(4)=$10 ' -
	    case 46                   
	    	FC(0)=$00 : FC(1)=$60 : FC(2)=$60 : FC(3)=$00 : FC(4)=$00 ' .
	    case 47                   
	    	FC(0)=$20 : FC(1)=$10 : FC(2)=$08 : FC(3)=$04 : FC(4)=$02 ' /
	    case 48                   
	    	FC(0)=$3E : FC(1)=$51 : FC(2)=$49 : FC(3)=$45 : FC(4)=$3E ' 0
	    case 49                   
	    	FC(0)=$00 : FC(1)=$42 : FC(2)=$7F : FC(3)=$40 : FC(4)=$00 ' 1
	    case 50                   
	    	FC(0)=$42 : FC(1)=$61 : FC(2)=$51 : FC(3)=$49 : FC(4)=$46 ' 2
	    case 51                   
	    	FC(0)=$21 : FC(1)=$41 : FC(2)=$45 : FC(3)=$4B : FC(4)=$31 ' 3
	    case 52                   
	    	FC(0)=$18 : FC(1)=$14 : FC(2)=$12 : FC(3)=$7F : FC(4)=$10 ' 4
	    case 53                   
	    	FC(0)=$27 : FC(1)=$45 : FC(2)=$45 : FC(3)=$45 : FC(4)=$39 ' 5
	    case 54                   
	    	FC(0)=$3C : FC(1)=$4A : FC(2)=$49 : FC(3)=$49 : FC(4)=$30 ' 6
	    case 55                   
	    	FC(0)=$01 : FC(1)=$71 : FC(2)=$09 : FC(3)=$05 : FC(4)=$03 ' 7
	    case 56                   
	    	FC(0)=$36 : FC(1)=$49 : FC(2)=$49 : FC(3)=$49 : FC(4)=$36 ' 8
	    case 57                   
	    	FC(0)=$06 : FC(1)=$49 : FC(2)=$49 : FC(3)=$29 : FC(4)=$1E ' 9
	    case 58                   
	    	FC(0)=$00 : FC(1)=$36 : FC(2)=$36 : FC(3)=$00 : FC(4)=$00 ' :
	    case 59                   
	    	FC(0)=$00 : FC(1)=$56 : FC(2)=$36 : FC(3)=$00 : FC(4)=$00 ' ;
	    case 60                   
	    	FC(0)=$08 : FC(1)=$14 : FC(2)=$22 : FC(3)=$41 : FC(4)=$00 ' <
	    case 61                   
	    	FC(0)=$14 : FC(1)=$14 : FC(2)=$14 : FC(3)=$14 : FC(4)=$14 ' =
	    case 62                   
	    	FC(0)=$00 : FC(1)=$41 : FC(2)=$22 : FC(3)=$14 : FC(4)=$08 ' >
	    case 63                   
	    	FC(0)=$02 : FC(1)=$01 : FC(2)=$51 : FC(3)=$09 : FC(4)=$06 ' ?
	    case 64                   
	    	FC(0)=$32 : FC(1)=$49 : FC(2)=$59 : FC(3)=$51 : FC(4)=$3E ' @
	    case 65                   
	    	FC(0)=$7E : FC(1)=$11 : FC(2)=$11 : FC(3)=$11 : FC(4)=$7E ' A
	    case 66                   
	    	FC(0)=$7F : FC(1)=$49 : FC(2)=$49 : FC(3)=$49 : FC(4)=$36 ' B
	    case 67                   
	    	FC(0)=$3E : FC(1)=$41 : FC(2)=$41 : FC(3)=$41 : FC(4)=$22 ' C
	    case 68                   
	    	FC(0)=$7F : FC(1)=$41 : FC(2)=$41 : FC(3)=$22 : FC(4)=$1C ' D
	    case 69                   
	    	FC(0)=$7F : FC(1)=$49 : FC(2)=$49 : FC(3)=$49 : FC(4)=$41 ' E
	    case 70                   
	    	FC(0)=$7F : FC(1)=$09 : FC(2)=$09 : FC(3)=$09 : FC(4)=$01 ' F
	    case 71                   
	    	FC(0)=$3E : FC(1)=$41 : FC(2)=$49 : FC(3)=$49 : FC(4)=$7A ' G
	    case 72                   
	    	FC(0)=$7F : FC(1)=$08 : FC(2)=$08 : FC(3)=$08 : FC(4)=$7F ' H
	    case 73                   
	    	FC(0)=$00 : FC(1)=$41 : FC(2)=$7F : FC(3)=$41 : FC(4)=$00 ' I
	    case 74                   
	    	FC(0)=$20 : FC(1)=$40 : FC(2)=$41 : FC(3)=$3F : FC(4)=$01 ' J
	    case 75                   
	    	FC(0)=$7F : FC(1)=$08 : FC(2)=$14 : FC(3)=$22 : FC(4)=$41 ' K
	    case 76                   
	    	FC(0)=$7F : FC(1)=$40 : FC(2)=$40 : FC(3)=$40 : FC(4)=$40 ' L
	    case 77                   
	    	FC(0)=$7F : FC(1)=$02 : FC(2)=$0C : FC(3)=$02 : FC(4)=$7F ' M
	    case 78                   
	    	FC(0)=$7F : FC(1)=$04 : FC(2)=$08 : FC(3)=$10 : FC(4)=$7F ' N
	    case 79                   
	    	FC(0)=$3E : FC(1)=$41 : FC(2)=$41 : FC(3)=$41 : FC(4)=$3E ' O
	    case 80                   
	    	FC(0)=$7F : FC(1)=$09 : FC(2)=$09 : FC(3)=$09 : FC(4)=$06 ' P
	    case 81                   
	    	FC(0)=$3E : FC(1)=$41 : FC(2)=$51 : FC(3)=$21 : FC(4)=$5E ' Q
	    case 82                   
	    	FC(0)=$7F : FC(1)=$09 : FC(2)=$19 : FC(3)=$29 : FC(4)=$46 ' R
	    case 83                   
	    	FC(0)=$46 : FC(1)=$49 : FC(2)=$49 : FC(3)=$49 : FC(4)=$31 ' S
	    case 84                   
	    	FC(0)=$01 : FC(1)=$01 : FC(2)=$7F : FC(3)=$01 : FC(4)=$01 ' T
	    case 85                   
	    	FC(0)=$3F : FC(1)=$40 : FC(2)=$40 : FC(3)=$40 : FC(4)=$3F ' U
	    case 86                   
	    	FC(0)=$1F : FC(1)=$20 : FC(2)=$40 : FC(3)=$20 : FC(4)=$1F ' V
	    case 87                   
	    	FC(0)=$3F : FC(1)=$40 : FC(2)=$38 : FC(3)=$40 : FC(4)=$3F ' W
	    case 88                   
	    	FC(0)=$63 : FC(1)=$14 : FC(2)=$08 : FC(3)=$14 : FC(4)=$63 ' X
	    case 89                   
	    	FC(0)=$07 : FC(1)=$08 : FC(2)=$70 : FC(3)=$08 : FC(4)=$07 ' Y
	    case 90                   
	    	FC(0)=$61 : FC(1)=$51 : FC(2)=$49 : FC(3)=$45 : FC(4)=$43 ' Z
	    case 91                   
	    	FC(0)=$00 : FC(1)=$7F : FC(2)=$41 : FC(3)=$41 : FC(4)=$00 ' [
	    case 92
	    	'to display this character, copy this line and then
	    	'follow with gosub WriteLCD
	        FC(0)=$02 : FC(1)=$04 : FC(2)=$08 : FC(3)=$10 : FC(4)=$20 ' \
	    case 93                   
	    	FC(0)=$00 : FC(1)=$41 : FC(2)=$41 : FC(3)=$7F : FC(4)=$00 ' ]
	    case 94                   
	    	FC(0)=$04 : FC(1)=$02 : FC(2)=$01 : FC(3)=$02 : FC(4)=$04 ' ^
	    case 95                   
	    	FC(0)=$40 : FC(1)=$40 : FC(2)=$40 : FC(3)=$40 : FC(4)=$40 ' _
	    case 96
	    	FC(0)=$00 : FC(1)=$01 : FC(2)=$02 : FC(3)=$04 : FC(4)=$00 ' '
	    case 97                   
	    	FC(0)=$20 : FC(1)=$54 : FC(2)=$54 : FC(3)=$54 : FC(4)=$78 ' a
	    case 98                   
	    	FC(0)=$7F : FC(1)=$48 : FC(2)=$44 : FC(3)=$44 : FC(4)=$38 ' b
	    case 99                   
	    	FC(0)=$38 : FC(1)=$44 : FC(2)=$44 : FC(3)=$44 : FC(4)=$20 ' c
	    case 100                   
	    	FC(0)=$38 : FC(1)=$44 : FC(2)=$44 : FC(3)=$48 : FC(4)=$7F ' d
	    case 101                   
	    	FC(0)=$38 : FC(1)=$54 : FC(2)=$54 : FC(3)=$54 : FC(4)=$18 ' e
	    case 102                   
	    	FC(0)=$08 : FC(1)=$7E : FC(2)=$09 : FC(3)=$01 : FC(4)=$02 ' f
	    case 103                   
	    	FC(0)=$0C : FC(1)=$52 : FC(2)=$52 : FC(3)=$52 : FC(4)=$3E ' g
	    case 104                   
	    	FC(0)=$7F : FC(1)=$08 : FC(2)=$04 : FC(3)=$04 : FC(4)=$78 ' h
	    case 105                   
	    	FC(0)=$00 : FC(1)=$44 : FC(2)=$7D : FC(3)=$40 : FC(4)=$00 ' i
	    case 106                   
	    	FC(0)=$20 : FC(1)=$40 : FC(2)=$44 : FC(3)=$3D : FC(4)=$00 ' j
	    case 107                   
	    	FC(0)=$7F : FC(1)=$10 : FC(2)=$28 : FC(3)=$44 : FC(4)=$00 ' k
	    case 108                   
	    	FC(0)=$00 : FC(1)=$41 : FC(2)=$7F : FC(3)=$40 : FC(4)=$00 ' l
	    case 109                   
	    	FC(0)=$7C : FC(1)=$04 : FC(2)=$18 : FC(3)=$04 : FC(4)=$78 ' m
	    case 110                   
	    	FC(0)=$7C : FC(1)=$08 : FC(2)=$04 : FC(3)=$04 : FC(4)=$78 ' n
	    case 111                   
	    	FC(0)=$38 : FC(1)=$44 : FC(2)=$44 : FC(3)=$44 : FC(4)=$38 ' o
	    case 112                   
	    	FC(0)=$7C : FC(1)=$14 : FC(2)=$14 : FC(3)=$14 : FC(4)=$08 ' p
	    case 113                   
	    	FC(0)=$08 : FC(1)=$14 : FC(2)=$14 : FC(3)=$18 : FC(4)=$7C ' q
	    case 114                   
	    	FC(0)=$7C : FC(1)=$08 : FC(2)=$04 : FC(3)=$04 : FC(4)=$08 ' r
	    case 115                   
	    	FC(0)=$48 : FC(1)=$54 : FC(2)=$54 : FC(3)=$54 : FC(4)=$20 ' s
	    case 116                   
	    	FC(0)=$04 : FC(1)=$3F : FC(2)=$44 : FC(3)=$40 : FC(4)=$20 ' t
	    case 117                   
	    	FC(0)=$3C : FC(1)=$40 : FC(2)=$40 : FC(3)=$20 : FC(4)=$7C ' u
	    case 118                   
	    	FC(0)=$1C : FC(1)=$20 : FC(2)=$40 : FC(3)=$20 : FC(4)=$1C ' v
	    case 119                   
	    	FC(0)=$3C : FC(1)=$40 : FC(2)=$30 : FC(3)=$40 : FC(4)=$3C ' w
	    case 120                    
	    	FC(0)=$44 : FC(1)=$28 : FC(2)=$10 : FC(3)=$28 : FC(4)=$44 ' x 
	    case 121                    
	    	FC(0)=$0C : FC(1)=$50 : FC(2)=$50 : FC(3)=$50 : FC(4)=$3C ' y 
	    case 122                    
	    	FC(0)=$44 : FC(1)=$64 : FC(2)=$54 : FC(3)=$4C : FC(4)=$44 ' z 
	    case 123
	        FC(0)=$00 : FC(1)=$08 : FC(2)=$36 : FC(3)=$41 : FC(4)=$00'  {
	    case 124
	        FC(0)=$00 : FC(1)=$00 : FC(2)=$7F : FC(3)=$00 : FC(4)=$00 ' |
	    case 125
	        FC(0)=$00 : FC(1)=$41 : FC(2)=$36 : FC(3)=$08 : FC(4)=$00'  }    
	    case 126
	        FC(0)=$10 : FC(1)=$08 : FC(2)=$08 : FC(3)=$10 : FC(4)=$08'  ~
	    case 127
	        FC(0)=$10 : FC(1)=$08 : FC(2)=$08 : FC(3)=$10 : FC(4)=$08'  DEL        
	    case 128
	    	FC(0)=$55 : FC(1)=$2A : FC(2)=$55 : FC(3)=$2A : FC(4)=$55 ' (shaded)
	end select
WriteLCD:
    lcd_DC = 1
    shiftout lcd_SDO,lcd_CLK,1,[ FC(0),FC(1),FC(2),FC(3),FC(4),$00 ]
    return

'=== End Subroutines ============================================================

Main:
	'Print some text on first line
	lcd_Data = "A"
	gosub LcdSendChar
	lcd_Data = "B"
	gosub LcdSendChar
	lcd_Data = "C"
	gosub LcdSendChar
	

	'print some variables
	temp = 24
	'@ PrintVar  0,4, _temp
	temp = 621
	'@ PrintVar  0,5, _temp

	'Print some text on second line
	posX = 0
	posY = 1
	gosub LcdGotoXY
	lcd_Data = "a"
	gosub LcdSendChar
	lcd_Data = "b"
	gosub LcdSendChar
	lcd_Data = "c"
	gosub LcdSendChar


	end