Re: A92: Line 1111 Emulator and 32k limit?
[Prev][Next][Index][Thread]
Re: A92: Line 1111 Emulator and 32k limit?
>l was getting an error as a result of 32768 bytes being between a library
>call and the end of a program (is this right?).
Sounds like you've hit the nail on the head. Relative jumps (i.e. jump
back this far, jump forward that far) are limited in scope. I didn't
remember it being a 32K limit on the 68000, but this is definitely a
possibility (I know MIPS machines are limited to 32K in either direction
for indirect RAM references, so it's not unheard of).
You're coding in C, I believe, so you don't really have control over what
jump instruction you're using (correct me if I'm wrong of course). What
I'd try is going into the assembler code (get GCC to just compile, not
assemble or link) and changing it from a relative jump to an absolute jump,
which takes an absolute 32-bit memory address and overcomes the limitations
you're facing.
Unfortunately, I can't tell you off the top of my head what a 68K absolute
jump mnemonic looks like. *grin*
--Cliff Biffle
Optimist: This glass is half full.
Pessimist: This glass is half empty.
Cynic: They drank my water. Figures.
Engineer: The glass should be -half- this size!
Psychoanalyst: The glass is affected by feelings of inadequacy.
References: