davism@creatures.cs.vt.edu (Mat Davis) (06/07/90)
I'm trying to port some PC applications to ISC's 386/ix, and the programs need to directly access and control the I/O ports and video memory on a Hercules video card (as well as several others, but Hercules is the "current problem"). The man page for display(7) mentions several ioctls for doing just that, but to say the least the documentation is not extensive and I can't get the ioctls to work. The particular calls are KDMCAIO, KDADDIO, and KDMAPDISP. In trying to switch the Hercules into graphics mode, I can get to three of the four ports I need to, but the four one (0x3bf) is the one that allows the actual switch and I get errno 22 (EINVAL) when I try to access it. The CRT controller is obviously getting 90% set for graphics, but without that last port the screen's thoroughly scrambled. I also get errno 13 (Permission denied) when I try to use the KDMAPDISP ioctl to map the video memory into my process memory space. ISC's technical support hasn't helped in the last couple of days, and I need to get this stuff going fairly quickly; does anyone have any information that might help me? I'd appreciate anything you could tell me via e-mail. Mat Davis Virginia Tech Dept. of Computer Science davism@vtopus.cs.vt.edu