594 Subj : Re: An order or linking bug To : borland.public.cpp.borlandcpp From : Bob Gonder Date : Thu Dec 09 2004 08:08 pm "David Morris" wrote: >I am using TASM. I am pushing the DS, and reloading loading it (to be sure, to >be sure), so I am pretty sure that the ISR has the correct segment. What I am suggesting is that the pointers be stored as far pointers: char far * InPointer; char far * OutPointer; asm{ push es; push ds; lds si,InPointer; les di,OutPointer; movsb; mov word ptr InPointer,si; mov word ptr OutPointer,di; pop ds; pop es; }; > The ES >register is not used by the ISR as far as I can tell (unless its use is masked >by IDEAL mode?). It's not "masked". Instructions such as movsb and stosb always use es:di >The buffer is only 8K. I placed some maker characters around the pointers >(both behind and ahead), and they were never touched. When you were having this problem, did you check what the actual buffer address was? > I thought the whole >DGROUP can only be 64k in the large memory model. Do the hardware 64k >boundaries count? Large model allows very much data. In large model, all pointers should be far. You never posted your ISR code. If you want to post it over in borland.public.tasm, I'll take a look at it and see what can go wrong. . 0