9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] Fixing the Older Millennium-1 Cursor
@ 2000-07-02  1:15 Stephen Wynne
  2000-07-05  8:32 ` Bruce G. Stewart
  2000-07-05  8:32 ` Bruce G. Stewart
  0 siblings, 2 replies; 4+ messages in thread
From: Stephen Wynne @ 2000-07-02  1:15 UTC (permalink / raw)
  To: 9fans

RAMDAC docs: http://www.ti.com/sc/docs/products/analog/tvp3025.html 
Where to get started: /src/9/pc/vgamga2164w.c
What v3 does support: http://www.ti.com/sc/docs/products/analog/tvp3026.html 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] Fixing the Older Millennium-1 Cursor
  2000-07-02  1:15 [9fans] Fixing the Older Millennium-1 Cursor Stephen Wynne
@ 2000-07-05  8:32 ` Bruce G. Stewart
  2000-07-05  8:32 ` Bruce G. Stewart
  1 sibling, 0 replies; 4+ messages in thread
From: Bruce G. Stewart @ 2000-07-05  8:32 UTC (permalink / raw)
  To: 9fans

I have fixed the Millenium I cursor on my machine; I'll dig it out and forward
it to you. The problem is that aux/vga sets the vertical blanking interval way
too short, and the cursor is triggered off the end of the vertical blanking
pulse.

The end-vertical-retrace register should have something like total vertical - 2
or total vertical - 1. I amended /src/cmd/aux/vga/mga2164w.c to do this and the
cursor works fine.

As an added bonus, a few scanlines worth of cruft at the top of the screen went
away.

This probably should be changed in the generic vga file - I can't think of any
reason it should ever be set to anything else, since plan9 has no overscan
border.

I will get the specifics for you next time I have 9 booted.

Stephen Wynne wrote:

> RAMDAC docs: http://www.ti.com/sc/docs/products/analog/tvp3025.html
> Where to get started: /src/9/pc/vgamga2164w.c
> What v3 does support: http://www.ti.com/sc/docs/products/analog/tvp3026.html


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] Fixing the Older Millennium-1 Cursor
  2000-07-02  1:15 [9fans] Fixing the Older Millennium-1 Cursor Stephen Wynne
  2000-07-05  8:32 ` Bruce G. Stewart
@ 2000-07-05  8:32 ` Bruce G. Stewart
  2000-07-06  8:48   ` Bruce G. Stewart
  1 sibling, 1 reply; 4+ messages in thread
From: Bruce G. Stewart @ 2000-07-05  8:32 UTC (permalink / raw)
  To: 9fans

I missed the first part of this thread, so I don't know if the problem it
refers to has been solved. Here's the fix I put in for the cursor on a
Millennium I card (this particular card was V2.3.)

The change adjusts the end-vertical-blanking parameter to be 2 less than the
number of lines, visible and not, per scan. It has NOT been tested with
interlaced
modes; in fact, it has not been tested with anything other than -m p815
1600x1200x8.

You will want to save the file /386/bin/aux/vga somewhere in case you need to go
back.

Add the line numbered 357 here to the function init() in file
/sys/src/cmd/aux/vga/mga2164w.c:

353
354          offset = (mode->x*mode->z) >> ((pixbuswidth==32)? 6 : 7);
355          vga->crt[0x13] = offset;
356          vga->crt[0x14] = 0;
357          vga->crt[0x16] = mode->vt - 2; // bgs 30-Jun-00
358          vga->crt[0x17] = 0xE3;
359

Then build and reboot:

cd /sys/src/cmd/aux/vga
disk/kfscmd allow
mk install
disk/kfscmd halt
Ctrl-Alt-Delete


Stephen Wynne wrote:

> RAMDAC docs: http://www.ti.com/sc/docs/products/analog/tvp3025.html
> Where to get started: /src/9/pc/vgamga2164w.c
> What v3 does support: http://www.ti.com/sc/docs/products/analog/tvp3026.html


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] Fixing the Older Millennium-1 Cursor
  2000-07-05  8:32 ` Bruce G. Stewart
@ 2000-07-06  8:48   ` Bruce G. Stewart
  0 siblings, 0 replies; 4+ messages in thread
From: Bruce G. Stewart @ 2000-07-06  8:48 UTC (permalink / raw)
  To: 9fans

Here's a more comprehensive fix for the Millennium I Cursor problem.

Instead of adding the line I showed in a previous message,
insert lines 408 through 428 from the following near the
end of the init function in /sys/src/cmd/aux/vga/mga2164w.c:

   405          mga->tvp[0x3A] = 0;
   406          mga->tvp[0x06] = 0;
   407
   408          {
   409                  // bgs 05-Jul-00 - Fix vertical blanking setup
   410                  // This should probably be corrected in vga.c too.
   411
   412                  int svb = mode->y;              // Start vertical blanking
after the last displayed line
   413                  int evb = mode->vt;             // End vertical blanking
after the total line count
   414
   415                  if(mode->interlace == 'v'){     // A field is 1/2 of the
lines in interlaced mode
   416                          svb /= 2;
   417                          evb /= 2;
   418                  }
   419                  --svb;
   420                  --evb;                          // line counter counts from
0
   421
   422                  vga->crt[0x15]     = svb;
   423                  vga->crt[0x07]     = (vga->crt[0x07]     & ~0x08) | ((svb &
0x100) >> 5);
   424                  vga->crt[0x09]     = (vga->crt[0x09]     & ~0x20) | ((svb &
0x200) >> 4);
   425                  mga->crtcext[0x02] = (mga->crtcext[0x02] & ~0x18) | ((svb &
0xC00) >> 7);
   426                                                  // MGA specific: bits 10 and
11
   427                  vga->crt[0x16]     = evb;
   428          }
   429
   430          clockcalc(vga, ctlr, mode->z);
   431
   432
   433          mga->option = mga->option & ~0x3000;
   434          if(vga->vmz > 2*Meg)
   435                  mga->option |= 0x1000;

Then build and reboot:

cd /sys/src/cmd/aux/vga
disk/kfscmd allow
mk install
disk/kfscmd halt
Ctrl-Alt-Delete

This fixes problems with both the start and end of the vertical blanking interval,
and should work for interlaced and non-interlaced modes alike.



"Bruce G. Stewart" wrote:

> I missed the first part of this thread, so I don't know if the problem it
> refers to has been solved. Here's the fix I put in for the cursor on a
> Millennium I card (this particular card was V2.3.)
>
> The change adjusts the end-vertical-blanking parameter to be 2 less than the
> number of lines, visible and not, per scan. It has NOT been tested with
> interlaced
> modes; in fact, it has not been tested with anything other than -m p815
> 1600x1200x8.
>
> You will want to save the file /386/bin/aux/vga somewhere in case you need to go
> back.
>
> Add the line numbered 357 here to the function init() in file
> /sys/src/cmd/aux/vga/mga2164w.c:
>
> 353
> 354          offset = (mode->x*mode->z) >> ((pixbuswidth==32)? 6 : 7);
> 355          vga->crt[0x13] = offset;
> 356          vga->crt[0x14] = 0;
> 357          vga->crt[0x16] = mode->vt - 2; // bgs 30-Jun-00
> 358          vga->crt[0x17] = 0xE3;
> 359
>
> Stephen Wynne wrote:
>
> > RAMDAC docs: http://www.ti.com/sc/docs/products/analog/tvp3025.html
> > Where to get started: /src/9/pc/vgamga2164w.c
> > What v3 does support: http://www.ti.com/sc/docs/products/analog/tvp3026.html


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2000-07-06  8:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-07-02  1:15 [9fans] Fixing the Older Millennium-1 Cursor Stephen Wynne
2000-07-05  8:32 ` Bruce G. Stewart
2000-07-05  8:32 ` Bruce G. Stewart
2000-07-06  8:48   ` Bruce G. Stewart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).