sheu@gitpyr.UUCP (04/11/87)
<< >> The EGA problem is very simple: EGA has 32K video RAM (instead of 16K). If you watch very carefully, you may find the problem will occur every 4+ screens. The reason? (1024 X 16) / (80 X 25 X 2) = 4.096. Below is an illustration of the process: (1) Before the cursor reaches 16K boundary, everything are OK. (2) When the cursor position reaches the 16K boundary, MINIX wraps the offset, and writes codes starting from 0 again (source code line 4313), while the EGA display window will go beyond the 16K boundary. The result: bottom part of the display is missing. (3) Finally, when the video RAM begin address reaches the boundary, it is wrapped to 0. The result: the missing part pops out suddenly. |..........| |xxxxxx....| ############ ############ display |..........| #xxxxxxxxxx# #..........# <- window |..........| #xx # #..... # 80 X 25 X 2 |..........| ############ ############ = 4000 bytes |..........| |..........| Video | ############ |..........| RAM| | #..........# |..........| -+----------+-------------------#----------#----------+----------+--- (32K) | ^ ############ | | | | 16K boundary | | | | | | | | | | | | | | | | | | | | | | | | | | | | |----------| |----------| |----------| (1) (2) (3) To solve the problem, the easiest way is change C_VID_MASK (source code line 4062) to 0x7fff, (but then the CGA won't work). I haven't tried this out yet, since I couldn't make my hard disk and printer work, and with an AT, it has just one diskette drive, and tty.c is too big for MINED, and... you know. If somebody got the patches, please, please rush me a copy! Der-Ru Sheu Georgia Insitute of Technology, Atlanta Georgia, 30332 ...!{akgua,allegra,amd,hplabs,ihnp4,seismo,ut-ngp}!gatech!gitpyr!sheu