Never done something like that, but as DT said there is no better manual than .mac and .lib files.
So here is what I found.
Compiler use this macro from pbppic18.mac file when LCDOUT STR is used
Code:
;****************************************************************
;* LCDOUTSTR?B : Macro - Lcdout string *
;* *
;* Input : B[] *
;* Output : None *
;* *
;* Notes : *
;****************************************************************
LCDOUTSTR?B macro Bin
MOVE?CW LCDOUTJ, R8 'dont know what this line do
MOVE?CB high (Bin), FSR2H 'load highbyte of adr, from pbppic18.lib Macro - Move BYTE Variable into WORD Variable
MOVE?CA low (Bin) 'load low byte of adr to w, from pbppic18.lib MOVE?CA : Macro - Move constant into W
L?CALL SEROUT2STR
endm
SEROUT2STR is in file pbppic18.
Code:
SEROUT2STR movwf FSR2L ; Set up for index
serout2strloop movf POSTINC2, W ; Get a character
bnz serout2str1 ; Not null char
So you could use in your program something like this:
Code:
TFTSTR?B macro Bin
MOVE?CB high (Bin), FSR2H ;load highbyte
MOVE?CB low (Bin), FSR2L ;load low byte
local tftstrloop
local tftStrDone
tftstrloop movf POSTINC2, W ; Get a character, then increment pointer
BZ tftStrDone ;All strings must end with 0
;Not Null char
L?CALL tftWoutput; CALL print char in W to TFT
BRA tftstrloop ;Get next chr
tftStrDone: ;Null char
endm ;end of macro
EDIT:
You could also use PBP's routine like LCDOUTSTR do, but you must see what this flags do
LCDOUTJ_USED = 1
SEROUT2STR_USED = 1
And how JUMPMAN is used.
Bookmarks