Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!zardoz.cpd.com!dhw68k!arcturus!berryc From: berryc@arcturus.uucp (Craig D. Berry (x1710)) Newsgroups: comp.lang.c Subject: Re: Direct memory addressing in TURBO C/C++ Message-ID: <1991Mar8.210732.20269@arcturus.uucp> Date: 8 Mar 91 21:07:32 GMT References: <1991Mar3.031653.26871@NCoast.ORG> Distribution: comp Organization: Rockwell International Lines: 24 catfood@NCoast.ORG (Mark W. Schumann) writes: >In article morgan@chaos.cs.brandeis.edu (Dylan Kaufman) writes: >>I have been trying to figure out how to do direct memory addressing in >>C++. The addressing I am thinking about in particular is done with >>the keyword absolute in TURBO Pascal. For example, to turn the Num >>Lock key off : >>var >> Key_Status_Bit : word absolute $0040:$0017; >>begin >> Key_Status_Bits := (Key_Status_Bits and $DF); >>end. >> >You can do this with-- > * (unsigned int *) MK_FP (0x0040, 0x0017); >MK_FP() is a macro that is defined in Turbo C (2.0 at least) and >Mix Power C. I think it is defined in MC. This is NOT considered >part of ANSI but it looks as if you are trying to do some very >machine-dependent stuff anyway. Note that for total safety, that should be (unsigned int far *). This would be the default in a large model program compilation, but it never hurts to be careful...