Chuck Guzis wrote:
You know this
already, so I'm confused why you asked the question...?
Ever tried to work with an array that was much larger than 64K in 16 bit mode?
No, because it was a PITA. You tried to? :-) I string accesses
together in contiguous 64K chunks.
Segment overrides made things slightly less painful... Also, if you
really need three 64K sources you can use es:di, ds:si, and ss:sp (just
turn off interrupts to (ab)use the stack). You can even use cs:bp if
you are completely strapped and need a 4th; just include a giant block
of NOP in the code to use as a data space. I'm not saying it's elegant,
but it's quicker than recomputing segment:offset all the time.
The huge-mode address computation to get from a byte
offset to a
segment+offset representation is miserable--and a loop that does something
like a[i] = b[j]+c[k] where all three arrays are larger than 64K is
ridiculous.
Right -- don't do this :-)
--
Jim Leonard (trixter at
oldskool.org)
http://www.oldskool.org/
Help our electronic games project:
http://www.mobygames.com/
Or check out some trippy MindCandy at
http://www.mindcandydvd.com/
A child borne of the home computer wars:
http://trixter.wordpress.com/