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

 Syntax
   proc uinttosegoff extern
   param value uint uValue, ;
         value uint uSegment, ;
         value uint uOffset

 Arguments
   uValue 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 uint 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_uinttosegoff
   vardef
      ptr( uint ) 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
   uinttosegoff( 60001, nSeg, nOff ) // write a uint to memory via function call
   ? *pMem                    // prints 60001
   *pMem := 59999             // write a uint to memory via pointer
   ? *pMem                    // prints 59999
   free( pMem )               // free allocation
   endproc

   proc main
   Test_uinttosegoff()
   endproc

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