![]() |
|
String Adress wrong (*solved*) - Printable Version +- Boriel Basic Forum (https://forum.boriel.com) +-- Forum: Compilers and Computer Languages (https://forum.boriel.com/forumdisplay.php?fid=12) +--- Forum: ZX Basic Compiler (https://forum.boriel.com/forumdisplay.php?fid=11) +---- Forum: Bug Reports (https://forum.boriel.com/forumdisplay.php?fid=15) +---- Thread: String Adress wrong (*solved*) (/showthread.php?tid=253) |
String Adress wrong (*solved*) - LCD - 2010-06-18 Strangely my proportional Print SUB from Tips section, with example, does not work anymore with the latest development version of ZXBC, because the address of text in b$ is returned incorrectly (in ROM). Code: DIM b$ AS STRINGCode: DIM b$ AS STRINGCode: adr=@b$Re: String Adress wrong - boriel - 2010-06-18 LCD Wrote:Strangely my proportional Print SUB from Tips section, with example, does not work anymore with the latest development version of ZXBC, because the address of text in b$ is returned incorrectly (in ROM). As expected this is due to the (@x + N) optimization. In fact, @b + 2 might be not constant since it's a mutable object (a string). This is something I have to study... Re: String Adress wrong - LCD - 2010-06-18 boriel Wrote:As expected this is due to the (@x + N) optimization. In fact, @b + 2 might be not constant since it's a mutable object (a string). This is something I have to study...So maybe if it is a mutable object, you can add a function like AddressOf(b$) or similar? It would be less tragic if only POKE STRING adress,String$ and PEEK (STRING,adress[,length]) would work. Re: String Adress wrong - boriel - 2010-06-19 I have a question about your 1st example: This code: Code: Print PEEK(Uinteger, @b)+2Please, download again the new version (1.2.6-r1603f) from the Archive and try... Re: String Adress wrong - LCD - 2010-06-19 boriel Wrote:I have a question about your 1st example: This should print the address of the memory where the b$ String is stored, without leading bytes. I suppose, the String is stored with size description in the front, and it is not zero-terminated. Proportional print needs the address of the string to be handed over. This is the only way it can be done as POKE STRING address,String does not work. *) I downloaded the f-version and it works now as it should be. Thank you! *) Okay, this is not exactly true: Code: propprint(0,0,3,1,@textaddress) |