Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Force 4.0 Reference - ulongtosegoff() poke a ulong value into a segment/offset address http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 ulongtosegoff()     Poke a ulong value into a segment/offset address
------------------------------------------------------------------------------
 Declaration
   memory.hdr

 Syntax
   proc ulongtosegoff extern
   param value ulong nValue, ;
         value uint  uSegment, ;
         value uint  uOffset

 Arguments
   nValue is the value to place in memory.
   uSegment is the target segment address.
   uOffset is the target offset address.

 Return
   None.

 Description
   This procedure copies a ulong value into the specified memory location.

   The procedure is included for compatibility with earlier Force versions.
   Use the ptr() data type in conjunction with the & and * operators for
   directly writing to explicit memory addresses.

 Example
   #define EXAMPLE_MEMORY
   #include example.hdr

   proc Test_ulongtosegoff
   vardef
      ptr( ulong ) pMem       // pointer
      uint        nSeg, nOff  // segment and offset
   enddef
   pMem := malloc( 1000 )     // allocate working space
   splitptr( nSeg, nOff, pMem ) // obtain segment and offset values
   ? *pMem                    // prints accidental value
   ulongtosegoff( 980012, nSeg, nOff ) // write a ulong to memory via function call
   ? *pMem                    // prints 980012
   *pMem := 0                 // write a ulong to memory via pointer
   ? *pMem                    // prints 0
   free( pMem )               // free allocation
   endproc

   proc main
   Test_ulongtosegoff()
   endproc

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson