steve@tove.UUCP (Steve D. Miller) (07/17/85)
I've been trying everything I can think of to get something (anything!) to my Professional Graphics Controller under Xenix, and I've been failing miserably. The kernel device driver I was writing was failing in strange ways (I'm not too up on device drivers, I admit), so I moved the entire implementation into a user program that uses lseek()s into /dev/mem to fake some of the kernel routines (i.e. replace inb() -- which the little device driver thing in ont of the Xenix manuals says will read the byte at its argument -- with a lseek() out that far in /dev/mem, followed by a read()). It looks like I can seek out to the region where the buffers live (they live above 0xc6000; when I do the lseek, I get only the low 16 bits back, but another test program that seeks to the same place in an empty file, writes one char, then closes the file shows that the lseek is going to the right place there at least, and I get no error when I lseek /dev/kmem), but when I try to read or write, I get "no such device or address". Has anyone done anything vaguely successful along these lines, am I doing something blatantly wrong, or what? Of course, if someone has a driver, I'd *love* to get a copy of it... Thanks in advance; if I don't figure this out soon, I'm going to buy an axe and chop the !@!$!#% thing into little tiny pieces. I'd bet that what we have here is the kernel saying, "there's no real memory there -- seterror(ENXIO)", but I hope that I'm wrong... -- Spoken: Steve Miller ARPA: steve@maryland Phone: +1-301-454-4251 CSNet: steve@umcp-cs UUCP: {seismo,allegra}!umcp-cs!steve USPS: Computer Science Dept., University of Maryland, College Park, MD 20742