This file documents what should be changed to this program in the future. 
It is mainly for "internal use only", so don't worry if it's completely rubbish.



- !!! detect chip set, and report error when not correct!!! But only check
  for CORRECT chip set, no fancy auto-detection (leave that to the others).
  Just error out if specified chipset is NOT found. Allow "-f" option to
  FORCE programming (=bypass detection), without probing for correct chip.

- S3 : high-speed text font : see pg 3-2 DATAsheet

                                                    
- MAN files

- when error in the middle of hardware programming, try to recover... (how???)
  Use "save_regs" function before foind anything, and perform a "restore_regs"
  afterwards. 

  
- and, of course, MORE CHIPSETS!


-----------------------------------WDC------------------------------

- unlock chipset: blank screen on error! (PERROR exits...)

- WDC: div by 2 does NOT work... disable it ??? is register locking the
  culprit???


------------------------------------------------------------------------

- check MISC reg for VGA-IO-BASE!!!!   vgaIOBase = (inb(0x03CC) & 0x01) ? 0x03D0 : 0x03B0;


--------------------------------------------------------------------------

- div by 2: pass it on to the clock selector, IF NEEDED. Don't do it in SetClock any more!

- change vga_prg.c so that different clock-divisions are possible PER CHIPSET, like ATI has
  div 1,2,3 or 4, and TVGA has 1.5, 2 and 4.

--------------------------------------------------------------------------

- check V-freq of selected mode, and compare with calculated one (like X does).
  If too much difference, do something nice...
  
--------------------------------------------------------------------------

- have to avoid clamping problem on monitors! need more blanking (now just
  sync is blanked. must e.g. take 20 pixels AROUND active video not blanked,
  and the rest blanked. IF the sync is not in that area, otherwise reduce
  blanking...


--------------------------------------------------------------------------

- add an option that scans the TextConfig file for ALL modes, and prints a
  list of all of those output lines (font size, refresh...), so user can see
  in a glance what could work for HIS monitor.

--------------------------------------------------------------------------

- Should really consider moving SVGATextMode closer to the XFREE3.x code, so
  I can develop new chipset-support faster, and also use their code for some
  things (chipset detection, clock selection, register programming
  macro's...). Will they (The XFREE team) approve of that?
  
  check out xfree86/vga256/vga/vgaHW.c: contains register programming stuff
  
  This would allow me to use CLKREG_SAVE and RESTORE, so when smthing goes
  wrong, I can always restore registers. Much safer...

--------------------------------------------------------------------------

interlaced mode

Cirrus: console switching svgalib and DOSemu not OK. Use "standard" clocks
instead of freely programmable ones? (like svgalib)

--------------------------------------------------------------------------

Do some more tests with VGASET !

--------------------------------------------------------------------------

check out "resize" in kbd package. Might be usefull.


--------------------------------------------------------------------------

       ClockChip "clockchip-type"
               This  optional  entry is used to specify the clock
               chip type on graphics boards  which  have  a  pro-
               grammable  clock  generator.  Only a few X servers
               support programmable clock  chips.   For  details,
               see the appropriate X server manual page.

       ClockProg "command" [textclock]
               This  optional entry runs command to set the clock
               on the graphics board instead of using the  inter-
               nal  code.  The command string must consist of the
               full pathname (and no  flags).   When  using  this
               option,  a  Clocks  entry  is  required to specify
               which clock values are to be made available to the
               server  (up  to 128 clocks may be specified).  The
               optional textclock  value  is  used  to  tell  the
               server  that  command  must  be run to restore the
               textmode clock at server exit (or when VT  switch-
               ing).   textclock  must match one of the values in
               the Clocks entry.  This parameter is required when
               the  clock  used  for  text mode is a programmable
               clock.

               The command is run with the real  user's  id  with
               stdin  and  stdout  set  to  the  graphics console
               device.  Two arguments are passed to the  command.
               The  first  is  the  clock  frequency  in MHz as a
               floating point number and the second is the  index
               of  the  clock  in  the Clocks entry.  The command
               should return an exit status of 0 when successful,
               and something in the range 1-254 otherwise.

               The  command is run when the initial graphics mode
               is set and when changing  screen  resolution  with
               the  hot-key  sequences.   If the program fails at
               initialisation the server exits.  If it fails dur-
               ing  a mode switch, the mode switch is aborted but
               the server keeps running.  It is assumed  that  if
               the  command fails the clock has not been changed.

--------------------------------------------------------------------------

check out mkmf, mkmk!!

--------------------------------------------------------------------------

Clockprobe: how to check for interlacing WITHOUT using chipset-specific stuff


--------------------------------------------------------------------------

"clocks" prog: does same as X: looks into TextConfig for chipset & options, and
selects all clocks , probing them one by one. (Usefull for ET4000_altclocksel)


--------------------------------------------------------------------------

Add "Et4000_newclocksel" option, which uses the clock sel method described
in doc/README.ET4000.AltClockSelect. But then user needs to input OTHER
clocks line (with up to 96 clocks).

Need XFREE-like clock probe for that !

--------------------------------------------------------------------------


clock sel code: fonts screwing up: fix this!

several debug levels: -d = a little, -dd = a lot. add 1 to debug_level in arg parsing, and 
use debug_level to decide what to print. 


check and get more things/parameters "in real time": while they're needed.
E.g. the font, the reset program, etc.

