If you don't care too much to optimize, it's not difficult to arrive above 64k. For example I use a lot of Hserout messages just for debug of what the program is doing.
Really, a PIC18 is much more powerful than what I need
If you don't care too much to optimize, it's not difficult to arrive above 64k. For example I use a lot of Hserout messages just for debug of what the program is doing.
Really, a PIC18 is much more powerful than what I need
From Charles: "I'm afraid this is a limitation of PBP that probably won't be changed. The library routines (assembly language for high-level commands like HSEROUT) were written with the assumption that they would be in memory below 64K. They are the first thing placed after the RESET_ORG address. When I tested a variant of your code, the maximum address that could be safely defined was 0FFE4h. That limit will move down every time you use a new high level command which triggers a library inclusion.
"
do you realise that hserout messages of a constant str type are the least efficient way to store and retrieve text ?it's not difficult to arrive above 64k. For example I use a lot of Hserout messages just for debug of what the program is doing.
ditto for arraywrite
Warning I'm not a teacher
uhm ... how do you send a message to the serial port with ArrayWrite ?
arraywrite to a buffer then hserout str buffer
Warning I'm not a teacher
I'll do some test, thank you![]()
These are my result:
1) simple program with some code and 1 line as below is 7099 bytes
2) same program with 11 line like that is 9319 bytes, so each Hserout2 eat 222 bytesCode:Hserout2["nel mezzo del cammin di nostra vita",13,10]
3) simple program with some code plus this as below is 7157 bytes
4) same program above but with 11 "arraywrite + send" is 9497 bytes, so each Hserout eat 234 bytesCode:buf VAR BYTE[200] arraywrite buf,["nel mezzo del cammin di nostra vita",13,10] gosub send send: Hserout2[str buf\200] return
Looks like it's not as you say. I did this test with PBP Long option enabled, maybe without the results are different ?
i think you misunderstand neither method is efficient
two hunted bytes to store a message 32 or so bytes long , not good
Warning I'm not a teacher
Bookmarks