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 - longtosegoff() poke a long value into a segment/offset address http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 longtosegoff()      Poke a long value into a segment/offset address
------------------------------------------------------------------------------
 Declaration
   memory.hdr

 Syntax
   proc longtosegoff extern
   param value long gValue, ;
         value uint uSegment, ;
         value uint uOffset

 Arguments
   gValue 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 long 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_longtosegoff
   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
   longtosegoff( 980012, nSeg, nOff ) // write to memory via function call
   ? *pMem                    // prints 980012
   *pMem := 0                 // write a long to memory via pointer
   ? *pMem                    // prints 0
   free( pMem )               // free allocation
   endproc

   proc main
   Test_longtosegoff()
   endproc

See Also: longtoptr()

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