Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!think.com!mintaka!mit-eddie!uw-beaver!ubc-cs!alberta!alberta!cpsc.ucalgary.ca!yogi.fhhosp.ab.ca!yogi.fhhosp.ab.ca!news From: edstrom@elmer.hsc.ucalgary.ca (John Edstrom) Newsgroups: comp.os.os9 Subject: linking to absolute addresses Message-ID: <1991Jan24.162635.1742@yogi.fhhosp.ab.ca> Date: 24 Jan 91 22:26:34 GMT Organization: Dept. Clinical Neurosciences, U of Calgary, Alberta, Canada Lines: 33 Nntp-Posting-Host: elmer.hsc.ucalgary.ca Is there anyway to link a module to an absolute address? The reason I ask is that the device I am writing a driver for (Data Translation's 1492 AD/DA & etc board) has 1/2 Meg of dual ported memory on board. Idealy the user program would be able to read/write from the DT1492 memory while the device is acquiring data. My problem is accessing the memory from a program without going to system mode. I tried using colored memory but the os dumps about 12 bytes of important stuff at the bottom of the memory section when I request it from the system. Since there lots of bytes around the loss of data space doesn't bother me much. However, the ADC will writes data over these magic numbers and all attempts to access that segment of memory fail with a buss error. The easiest way I can think of is to create a non-relocatable data psect and then link my program to it. But I can't see how that is possible. An alternative would be to jump into system mode, copying the data I wanted into a user-space buffer, returning to user mode and continuing with the data manipulations. Although my real-time application will probably not suffer from this it seems like a barbaric thing to do. Is there any way around this impasse? John Edstrom | edstrom@elmer.hsc.ucalgary.ca -- RM 2104, HSc Building, Div. Neuroscience U. Calgary School of Medicine, 3330 Hospital Drive NW Calgary, Alberta T2N 3Y4 (403) 220 4493 (wk)