home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.windows.x.i386unix
- Path: sparky!uunet!think.com!enterpoop.mit.edu!bloom-picayune.mit.edu!athena.mit.edu!dmatic
- From: dmatic@athena.mit.edu (Davor Matic)
- Subject: X386 on Hercules and X386 bugs and suggestions
- Message-ID: <1992Dec21.052259.24129@athena.mit.edu>
- Sender: news@athena.mit.edu (News system)
- Nntp-Posting-Host: e40-008-4.mit.edu
- Organization: Massachusetts Institute of Technology
- References: <1992Dec20.000426.21774@cbnewsj.cb.att.com> <TMH.92Dec20235423@keks.first.gmd.de> <1992Dec21.032715.14701@cbnewsj.cb.att.com>
- Date: Mon, 21 Dec 1992 05:22:59 GMT
- Lines: 44
-
-
- Almost everyone has a monochorme Hercules board laying around somewhere.
- They are quite obsolete offering only 720x348, but the nice thing about
- them is that you can get them to work simultaneously with a VGA board
- and have two monitor heads controlled by your favorite X386 server.
-
- So, as my classes ended last Wednesday, I decided to try out my luck and
- write an additional driver to X386 to handle Hercules boards. And it
- works! :-) Partly... Here are the problems and suggestions:
-
- [I was workong with X386 version supplied with mit X11R5 release]
-
- X386 handles VT (virtual terminal) switches quite poorly. Things work
- well if one is using only one monitor, but when using two monitors,
- the routine x386VTSwitch from x386Events.c refreshes only the first
- screen when entering/leaving VT, and releases only the current screen.
- This might have been fixed by now, but this behaviour is undesirable
- when people are using two displays. It seems to me that all screens
- would have to be released and refreshed when switching VT's.
-
- Another problem is that EnterLeaveVT driver functions for the vga
- drivers are not "reentrant", while they should be. If the server is
- running on two different boards, when releasing VT's or exiting
- (abnormally or normally) it has to call EnterLeaveFunc(LEAVE) on all
- of its active drivers. If one of the drivers disables IO, the server
- will crash when it attempts to call the next board's
- EnterLeaveFunc(LEAVE). I fixed it by explicitly calling
- EnterLeaveFunc(ENTER) before EnterLeaveFunc(LEAVE) in the generic vga
- EnterLeaveVT.
-
-
- But the biggest problem is tha mfb doesn't cut it for Hercules boards.
- Even though Hercules frame buffer is directly accesible, the lines are
- not mapped directly. HGA mapps lines in increments of 4, and then it
- wraps back. So my screen looks quite strange, having every line
- scrambeled around by a factor of 4. Are there any mfb (or cfb)
- implementations that could be given a list of line pointers rather
- than just a frame buffer pointer and do the right thing? I don't
- wanna rewrite mfb myself... :-(
-
-
- Thanks for any pointers,
- Davor
-
-