[comp.os.minix] Suggestion for EGA... Request for hard disk and printer patches

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