1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
/*
** For MSC which lacks these very basic (sic) functions
**
** public domain by Bob Stout
*/
#include <dos.h>
#ifndef MK_FP
#define MK_FP(seg,offset) \
((void _far *)(((unsigned long)(seg)<<16) | (unsigned)(offset)))
#endif
unsigned char peekb(unsigned seg, unsigned ofs)
{
unsigned char _far *ptr;
FP_SEG(ptr) = seg;
FP_OFF(ptr) = ofs;
return *ptr;
}
unsigned peek(unsigned seg, unsigned ofs)
{
unsigned _far *ptr;
FP_SEG(ptr) = seg;
FP_OFF(ptr) = ofs;
return *ptr;
}
void pokeb(unsigned seg, unsigned ofs, unsigned char ch)
{
unsigned char _far *ptr;
FP_SEG(ptr) = seg;
FP_OFF(ptr) = ofs;
*ptr = ch;
}
void poke(unsigned seg, unsigned ofs, unsigned num)
{
unsigned _far *ptr;
FP_SEG(ptr) = seg;
FP_OFF(ptr) = ofs;
*ptr = num;
}
|