[comp.os.minix] NEW MINIX USER WITH TYPICAL PROBLEMS AND QUESTION

ugcuddih@sunybcs.uucp (Elisabeth Cuddihy) (06/28/89)

I am in the process of installing minix 1.1 on my PC clone at
home.  I asssume that the minix disks that I am using are 
standard 1.1 with out any bizarre changes.

One odd problem that I am having is that any output to the screen
will not be shown until I hit return enough times to get the last
typed line to the top of the screen.   Has anyone else had this
problem?

Finally, here is the hardware that I am working with:
	IBM-XT clone ==> Leading Edge D w/built-in Hercules card
		and one 360K floppy drive
	Seagate ST225 (20 meg) hard drive
	Western Digital WX2(?) hard disk controller card
	TeleMidas TM-24 modem (2400/1200/300bps)
	Commodore 1901 monochrome monitor

If anyone has experienced interesting problems that are related
to the above hardware, please let me know.


thanks!
E Cuddihy ++ "You can't  achieve the impossible w/out attempting the absurd" 
 UUCP: ..!{rutgers,ames,boulder,decvax}!sunybcs!ugcuddih
 APRA: ugcuddih@cs.buffalo.edu      |
 BITNET: ugcuddih@sunybcs.bitnet    |

gaia@portia.Stanford.EDU (fai to leung) (06/28/89)

In article <7408@cs.Buffalo.EDU> ugcuddih@sunybcs.UUCP (Elisabeth Cuddihy) writes:
>
>I am in the process of installing minix 1.1 on my PC clone at
>home.  I asssume that the minix disks that I am using are 
>standard 1.1 with out any bizarre changes.
>
>One odd problem that I am having is that any output to the screen
>will not be shown until I hit return enough times to get the last
>typed line to the top of the screen.   Has anyone else had this
>problem?

The problem:
  The original tty.c code uses hardware paging of the 6845 Chip.
  The problem is when the hardware pages through the last page
  of the 16K (color) or 4K (mono) video memory, the lower lines are
  actually lying outside the video memory not updated by tty routines--
  and therefore the blank lines.  At the same time the first page of
  the video ram is updated!

Quick fix (assuming there is memory outside the assumed video ram):
  Include in your tty.c the following:

/*  for mono cards replace
        0x3060  with 0x60 	total video memory - 1 page
	0xb8000 with 0xb0000	base of 1st page
	0xbc000 with 0xb1000	base of last+1 page
	vid_port for color = 0x3D4
	vid_port for mono = 0x3B4
*/
	
  s_update(tp)
  register struct tty_struct *tp;
  {
    int select;

    if (tp->tty_org > 0x3060) {
	lock();
	port_in(vid_port+8,&select);
	port_out(vid_port+8,select & 0xf7);
	phys_copy((long)0xb8000,(long)0xbc000,(long)0xfa0); 
        /* 80 column * 25 rows * 2 bytes/per video char = 0xfa0 */
	port_out(vid_port+8,select | 8);
	unlock();
    }
}

call this routine at the end of 
	console(...)
	{.......
	s_update(tp);
	}
	
	do_charint(..)
	{ ......
	s_update(tp);
	}

	and before any calls to scroll_screen(..) in tty.c

REBUILD THE BOOT DISK!!!


Short coming of fix:
  to many calls of s_update() in the 'fifth' (color) or '2nd' (mono)
  page, and thus very slow operation on that page.

EGA, VGA:
  Since the machine routine looks at retrace which is not needed for
  EGA, VGA, fake as Mono card with 'wrong' video port address.

  in tty_init:

  color=0;
  vid_base=COLOR_BASE;
  vid_mask=C_VID_MASK;
  vid_port=C_6845;
  vid_retrace=M_RETRACE;	

  instead of the origin if else designation.


Apology:
  Due to hardware problem the above is typed in instead of giving 
  encoded codes