Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site tellab3.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!ihnp4!tellab1!tellab3!steve From: steve@tellab3.UUCP (Steve Harpster) Newsgroups: net.micro.pc,net.unix-wizards Subject: Xenix Device Drivers Message-ID: <267@tellab3.UUCP> Date: Thu, 13-Jun-85 12:28:30 EDT Article-I.D.: tellab3.267 Posted: Thu Jun 13 12:28:30 1985 Date-Received: Fri, 14-Jun-85 04:58:09 EDT Reply-To: steve@tellab3.UUCP (& Harpster) Organization: Tellabs, Inc., Lisle, IL Lines: 51 Xref: watmath net.micro.pc:4235 net.unix-wizards:13522 I'm running Xenix 286 and having problems writing a device driver (we have no source either). Basically, I'm trying to write to the enhanced color graphics adapter (EGA) directly. I know this starts at physical address 0xb8000 but I can't seem to get there. The special files /dev/mem and /dev/kmem look like this: ------------- <- 0 | mem | |------------ <- kmemstart | kmem | |------------ | more | mem ------------- ------------- <- ~0xa0000 | I/O devs | ------------- So obviously I can't use /dev/[k]mem. I haven't a clue as to what /dev/color or /dev/monochrome really do. The documentation doesn't say much and kinds of hints that these are worthless for what I'm trying to do. Next step was to write a driver where the xxwrite() routine just used cpass() to get a character from the user and stuff it into memory starting at 0xb8000. Sounds simple, right? When trying to write though, the kernel panics with a "General Protection Fault". What does this REALLY mean? I thought that once inside xxwrite(), I would be in kernel mode. Am I still in user mode? Do I have to write a "bottom half" to get to kernel mode (yeechy way because there are no interrupts, per se)? Or is there something else going on that I haven't thought of? Do I really want to use /dev/color instead? Any help would be GREATLY appreciated. Stephen Harpster Tellabs, Inc. ...ihnp4!tellab1!steve -- ...ihnp4!tellab1!steve Steve Harpster Tellabs, Inc.