05

**FREE
ctl-opt nomain;

//dcl-pr OffsetPtr pointer;
//       pePointer pointer Value;
//       peOffset integer Value;
//end-pr;

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Return a pointer at a specified offset value from another ptr
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dcl-proc OffsetPtr EXPORT;
dcl-pi OffsetPtr pointer;
       pePointer pointer Value;
       peOffset integer Value;

dcl-s p_NewPtr pointer;
dcl-s wkMove   char(1) DIM(4097) BASED(p_NewPtr);

p_NewPtr = pePointer;

if peOffset > 0;
   dow peOffset > 4096;
       p_NewPtr = %addr(wkMove(4097));
       peOffset = peOffset - 4096;
   enddo;
   p_NewPtr = %addr(wkMove(peOffset+1));
endif;

return p_NewPtr;
end-Proc OffsetPtr;

Comments

Popular posts from this blog

04

02

01