RE: Poking and peeking C_USHORT

new topic     » topic index » view thread      » older message » newer message

What's wrong with this?

sequence temp_val
atom val

val = bytes_to_int(peek({addr,2})&{0,0})

temp_val = int_to_bytes(val)
poke(addr,temp_val[1..2])


Chris


Derek Parnell wrote:
> Try this 
> 
> --(for intel machines)...
> 
> atom addr -- Pointer to memory
> atom  val
> 
> -- peeking
>   val = 256 *peek(addr) + peek(addr+1)
> --poking
>   poke(addr, {floor(val / 256), and_bits(val, 256)})
> 
> --(for non-intel machines)...
> -- peeking
>   val = 256 *peek(addr+1) + peek(addr)
> --poking
>   poke(addr, {and_bits(val, 256),floor(val / 256) })
> 
>   
> ----- Original Message ----- 
> From: "Jonas Temple" <jktemple at yhti.net>
> To: "EUforum" <EUforum at topica.com>
> Sent: Saturday, October 13, 2001 1:24 PM
> Subject: Poking and peeking C_USHORT
> 
> 
> > Okay...here's the question....
> > 
> > When a dll function calls for a pointer to an short (signed or unsigned) 
> > 
> > what is the preferred method of poking and peeking the data? I am 
> > working on wrapping several dlls and it calls for short data type.
> > 
> > I used peek() and then bytes_to_int() but bytes_to_int expects a 
> > sequence with a length of 4.  Since the data is only two bytes, what is 
> > the easiest way to translate back to an atom?
> > 
> > Any help would be greatly appreciated.
> > 
> > Jonas
> > 
> >

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu