There is one thing I did forget to mention (and I aplogize to all of you that have offered help). The mcu initialization is done in assembly. That code block is located immediately after all the variable declarations, etc.
-----------------------------------------------------------------
Mike,
I tried the dummy variable fix, it did not cure the problem. after putting the dummies in I checked the address of every word variable in the asm listing to make sure none crossed a page. Here is the asm listing of the page banks and the dummy declarations.
RAM_START EQU 00020h
RAM_END EQU 001EFh
RAM_BANKS EQU 00004h
BANK0_START EQU 00020h
BANK0_END EQU 0007Fh
BANK1_START EQU 000A0h
BANK1_END EQU 000EFh
BANK2_START EQU 00120h
BANK2_END EQU 0016Fh
BANK3_START EQU 00190h
BANK3_END EQU 001EFh
EEPROM_START EQU 02100h
EEPROM_END EQU 021FFh
'******************************************
' Dummy Variable Declarations *
'******************************************
bogus_0 VAR BYTE $07F
bogus_1 VAR BYTE $0EF
bogus_2 VAR BYTE $16F
bogus_3 VAR BYTE $1EF
----------------------------------------------------------------
Bruce,
The code that displays the splash screen is physically located early in the code and is the first code ran once the initializatin sequences are finished.
I doubled checked my routines, as you suggested, everything ok there.
I know it is hard to help when you can't see the code, and believe me if I could I would upload the entire project and let everyone have a field day with it.
The code blocks out like this:
fuse settings
defines
constant declarations
variable decalrations
GOTO Start
INI:
assembly block (with return) to setup the chip
Setup:
routine (with return) to set initial state of variables, etc
Start:
GOSUB INI
GOSUB Setup
Splash screen is displayed here.
Some initail instrument checks ( proper hookup, etc) are performed here
Switch polling routine here
rest of code body.




Bookmarks