I have placed all my LCD text messages in a packed form at the end of my PBP Basic program.
I am using MPASM as it support the DA directive which packs ASCII chars 2 to a 14bit word.
This is a snippet from my code which is placed at the very end of my program….

Mssg:
ASM
DE 5
DA "Message 1",0
DA "Mess 2", 0
DA "Tank", 0
DA "Text", 0
DA "testing", 0
ENDASM

I need to establish the location of the start of these messages so I can pick them up in Basic.

With the help of Shawn Keller, and some delving into the help files of MPASM I have added this code early in my program….

ASM
movlw Low _Mssg
movwf _ProgAddr
movlw High _Mssg
movwf _ProgAddr+1
ENDASM

Here I am attempting to place the address of the label “Mssg” into a PICBasic declared variable ProgAddr.

Whilst this compiles and assembles OK it does not seem to pick up on the correct address.

I know the rest of my Basic code works as I can force the messages table into a specific location (ORG nnnn) and set ProgAddr in code to that value and everything works.

Can anyone help me on this one.