1. For RDS: peeking and poking WORDs
- Posted by David Guy <dguy at MINDSPRING.COM> Feb 16, 1999
- 420 views
- Last edited Feb 17, 1999
Hi, Any chance of adding routines to poke & peek WORDs in additions to the ones to poke/peek BYTEs and DWORDs. I ask this because when using Euphoria to access 16bit DIBs or DirectDraw Surfaces, the ability to poke/peek single WORDs would be very nice/helpful. As it stands, I have to break my 16bit color into bytes and poke then into memory as a sequence. When reading colors, I either have to read two bytes and re-combine them or read four bytes and pull out/re-combine the bytes. In addition, some Windows structures, BMPINFOHEADER for instance, have WORD sized elements. Instead of being able to do something simple like this: poke2( pBIH + BIH_biBitCount, wordVal ) I have to do something like: poke( pBIH + BIH_biBitCount, {wordVal, floor(wordVal/256)}) -- being sure to poke the low byte first I think code would be simpler and clearer if there where WORD poke'ing/peek'ing routines available. Thanks for reading, David
2. Re: For RDS: peeking and poking WORDs
- Posted by Robert Craig <rds at ATTCANADA.NET> Feb 16, 1999
- 443 views
- Last edited Feb 17, 1999
David Guy writes: > Any chance of adding routines to poke & peek WORDs in > additions to the ones to poke/peek BYTEs and DWORDs. I'm not really inclined to add peek2()/poke2(), since reading/writing 2 bytes at a time isn't nearly as common on 32-bit machines, as reading/writing 1 or 4 bytes. You can easily make your own peek2/poke2, and you will only suffer if they are critical to performance. > In addition, some Windows structures, BMPINFOHEADER > for instance, have WORD sized elements. It would not be a performance problem, if you are just reading a few words from the header of a bitmap file. > poke( pBIH + BIH_biBitCount, {wordVal, floor(wordVal/256)}) floor(a/b) is pretty efficient - it just does a single integer divide at the machine level - the floor operation is optimized out. I'm not sure if it's faster to poke (or peek) a sequence of 2 elements, as you have done, or do two separate pokes. Regards, Rob Craig Rapid Deployment Software http://members.aol.com/FilesEu/