Subroutine Not in Lower Half of Page
Jim C
Posts: 76
I need some help from the brain trust.
In trying to get a program working with SXB I'm getting stuck with the following error message:
Line 610, Error 44, Pass 2: Address 279 is not within lower half of memory page
In looking through the Help files, in the explanation of GOSUB it states: "allows subroutine code to be placed anywhere in memory without concern of code page boundaries (now handled automatically)."
For reference, the SX-Key states the version number as v3.10. In the program, I am following instructions on how to define subroutines. Also, for more reference, I am using an interrupt routine at the beginning of the program.
This may not be enough information to get an answer, but let me know what else is needed. My main source of confusion is about whether position in the memory page is important or not. If it is, and an ISR has to be first and the ISR is fairly 'wordy', how can I get an additional subroutine into the lower half??
Thanks,
JimC
In trying to get a program working with SXB I'm getting stuck with the following error message:
Line 610, Error 44, Pass 2: Address 279 is not within lower half of memory page
In looking through the Help files, in the explanation of GOSUB it states: "allows subroutine code to be placed anywhere in memory without concern of code page boundaries (now handled automatically)."
For reference, the SX-Key states the version number as v3.10. In the program, I am following instructions on how to define subroutines. Also, for more reference, I am using an interrupt routine at the beginning of the program.
This may not be enough information to get an answer, but let me know what else is needed. My main source of confusion is about whether position in the memory page is important or not. If it is, and an ISR has to be first and the ISR is fairly 'wordy', how can I get an additional subroutine into the lower half??
Thanks,
JimC
Comments
This error usually happens when you have not defined your subroutines. Make sure that you define your subroutines, a good example is here:
http://www.parallax.com/dl/src/prod/SERIAL_LCD_DEMO.SXB
Also make sure that your SX/B is current, it can be found here:
http://forums.parallax.com/showthread.php?p=517621
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Mike
"OEM NMEA GPS Module" Now available on ebay for only $17.49
http://www.allsurplus.net/Axiom/
Please post your code.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module"·available from Parallax for only $28.95 http://www.parallax.com/detail.asp?product_id=30012
"SX-Video OSD module"·available from Parallax for only·$49.95 http://www.parallax.com/detail.asp?product_id=30015
Product web site: www.sxvm.com
Coming soon... Cheap 4-digit LED display with driver IC·www.hc4led.com
"Sometimes it is better to remain silent and be thought a fool, than to speak and remove all doubt."
·
After a bit of trial and error, and searching on this forum, I found the answer. Turns out that although an ISR has be first, it doesn't have to be continuous. So it can be declared, and any additional subroutine declarations can be placed up top next to it. Here's an example I found from 2/7/06, posted by Bean:
Thanks
'
(Location at top of program)
INTERRUPT
GOTO HandleInt
CRICKET SUB
HandleInt:
(ISR Code)
RETURNINT
'