First of all, FANTASTIC!!! Thank you so much for your effort in creating this macro. I changed the buffer value to 2000 and it worked perfectly on my Nuvi200W.
Second, I got to poking around a bit in your macro. It occured to me that if you made a couple of small changes that it would be easier for each user to "adjust" it to his/her own Nuvi. So, with that in mind, I made a couple of small changes. You may incorporate them if you desire, as it is your creation.
Change 1: Added to the declaration subroutine
$Nuvi2XX = "2000"
$Nuvi3XX = "8000"
$Nuvi4XX = "8000"
$Nuvi5XX = "8000"
$Nuvi6XX = "8000"
$Nuvi7XX = "8000"
Declare Var=$GPSr Type=Numeric
I set a variable of each model to an appropriate buffer length.
Change 2: Added immediately after your declare sub
####################
#
# Replace value below with your Nuvi model type
#
####################
$GPSr = Val("$Nuvi2XX")
Setting the model number as the GPSr value allows for a quick and easy way to modify the macro to each person's GPSr. Effectively it creates a constant so you only have to make a change in one place near the top of the macro.
change 3: Made at the bottom of the macro where the buffer data is created
# Nuvi contact section only supports 3150 bytes using 2000 to provide a buffer for html formatting etc.
$HintLen = Len($hints)
$LogsLen = Len($logs)
if len($combdesc) + $HintLen + $LogsLen > $GPSr
#If total string too large, dump the logs.
$_special = left($_special, $GPSr - $HintLen) + $hints
else
$_special = $combdesc + $hints + $logs
endif
Substituting the variable $GPSr for the hardwired data makes the above a quick change.
Again, these are just suggestions for ease of use. You have done a great job of creating the macro and it is much appreciated!