oh, Yoi! I'm pulling my hair out here! I will try to explain my problem.
With my main-game display list, I am using Antic E. I of course have a loop to read each byte and store it at location $1000,x.
;************* Setup Main Game Display list ***
ldx #$80 ; 128 bytes = 117 Antic E lines + the other instructions
dlloop ;Copy display list to RAM
lda dlist,x ;Get byte
sta $1000,x ;Copy to RAM
dex ;next byte
bpl dlloop
As seen above, it works. I have 128 bytes (#$80 in hex) in the display list. 117 of these bytes are Antic E lines, the rest are other instructions such as the LMS's and jumps, etc. Like I said, it works fine.
However, if I add one more $0E to my display list, and up my counter to store the display list to read 129 bytes (#$81 in hex) .. it totally screws up my screen, like it changes it to another mode or something with the graphics split and spaced out across the screen!!
Now, I know that your Display List needs a Jump if it crosses a 1K boundary, but I don't have THAT many bytes in the display list! Also, I have an ORG B000 before my title screen dlist, and immediately after is this main screen dlist. The bytes in these 2 combined lists do NOT add up to 1024 decimal bytes (IE, it crossing a 1K boundary), and as I figure it, my display list is stored from $1000 to $1081 when it goes awry -- again, not a 1K boundary.
As I understand it, $1400 is the next 1K boundary and I'm nowhere close to it.
Umm... HELP! Any suggestions as to what could be the problem?