Hello evreybody at ucapps,
I’m trying to program a software based on “midimon” for helping me to read parameters of an Evolver synth on a display.
For this I read the sysex message from the midi output that the instrument sends when an encoder is turned.
When I get the parameter value, I look in an indexed table to print a corresponding string. The problem is that I use
large tables and it seems that I get overflow message when compiling the prog.
One of my tables is made of 75 entries of 16 bytes strings:
mullw 16
TABLE_ADDR DEST_NAME_TABLE
movf PRODL, W
addwf TBLPTRL, F
movf PRODH, W
addwfc TBLPTRH, F
movlw 16 ; (16 chars)
goto MIOS_LCD_PrintPreconfString
DEST_NAME_TABLE
db "No destination "
db “OSC 1 Frequency”
db “OSC 2 Frequency”
db “OSC 3 Frequency”
db “OSC 4 Frequency”… and so on 75x
and when I compile I get this message:
./include/asm/macros.h:172:Error [126] Argument out of range (1133 not between -1024 and 1023)
Thinking this table was too long I splitted it into two tables of 38 entries each, but as I compile the program with only one table
I have not errors, and when I add the second one I get the same errors, it seems to me that I reached a memory limitation
of the PIC. Am I right?
I’m really a newbee in programming PIC in assembler, could someone give me a hint for overcoming this problem?
Is there a specifical allocation possible for this tables?
PS I use a PIC 18F452 and I don’t use the Tracememory block of the original midimon.
thank you for your help,
Best Regards,
Alain