I've got a fairly large program that I'm downloading into a 20X2 using the command-line Linux compiler, version 3.1
If I download the program with a small amount of code commented out, I get the following:
DOWNLOADING R01.bas
PICAXE-20X2 Compiler
Version 3.1
Copyright (c) 1996-2014
Revolution Education Ltd
Compiled successfully.
Memory used = 3890 out of 4096 bytes.
This suggests I have 206 bytes free.
If I enable one line of code more, I get the following:
DOWNLOADING R01.bas
PICAXE-20X2 Compiler
Version 3.1
Copyright (c) 1996-2014
Revolution Education Ltd
^
line# 1877, col# 246
Error: Memory full - -255 bytes over. Remove the 'table' command to release 256 more bytes or reduce program length by -255 bytes.
The line I commented in is the one shown below in bold (b0-b0*10). With that line commented out, it compiles with 200+ free bytes. With that line in, I get the error above.
;
b47=222
; AMD
read 15,b0 ; get app lt config value
if b0 < 1 then nappl
b0=b0*10 ; app lt config value in 10s of seconds max 9
; b47=b0
;
The math here doesn't add up. If I really had 206 bytes free before, there's no way that one statement "b0=b0*10" used them all up.
Is this an issue with the compiler (suspected because of the negative number of bytes that would be "freed up" per the error message)?
If I download the program with a small amount of code commented out, I get the following:
DOWNLOADING R01.bas
PICAXE-20X2 Compiler
Version 3.1
Copyright (c) 1996-2014
Revolution Education Ltd
Compiled successfully.
Memory used = 3890 out of 4096 bytes.
This suggests I have 206 bytes free.
If I enable one line of code more, I get the following:
DOWNLOADING R01.bas
PICAXE-20X2 Compiler
Version 3.1
Copyright (c) 1996-2014
Revolution Education Ltd
^
line# 1877, col# 246
Error: Memory full - -255 bytes over. Remove the 'table' command to release 256 more bytes or reduce program length by -255 bytes.
The line I commented in is the one shown below in bold (b0-b0*10). With that line commented out, it compiles with 200+ free bytes. With that line in, I get the error above.
;
b47=222
; AMD
read 15,b0 ; get app lt config value
if b0 < 1 then nappl
b0=b0*10 ; app lt config value in 10s of seconds max 9
; b47=b0
;
The math here doesn't add up. If I really had 206 bytes free before, there's no way that one statement "b0=b0*10" used them all up.
Is this an issue with the compiler (suspected because of the negative number of bytes that would be "freed up" per the error message)?