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!

+
+ mail: 481
+

-----------------------------------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...
  
  Look how X does this! IMPORTANT <<<<<<<<<<----------------------!!!!!!!!!!!!!!!!!!!


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

- 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.


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

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.

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

Kenneth Albanowski:

I do think a palette changer for Linux _would_ be a nice idea. Consider
an X/Windows style "rgb.txt" and being able to say in TextConfig "Palette
0 navy blue" & "Palette 7 IvoryWhite".


This is bit more for the future: keep a list of valid horizontal and vertical
refresh rates, and the bandwidth of the monitor, like XFree 3.1 does, and use
them to throw out modes that aren't valid. Thus, with a bit of sorting,
saying "132x44" would automatically give you the highest refresh rate listed
that is valid for your monitor. Or something like that. Another obvious
extension is full Monitor/Card blocks, like in XFree 3.1.

>>> note the "automatic highest mode" part!

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

 add comment when clock is not found in clocks line, when using
 Cirrus/clockchip/clockprog that says you can add the dezired clock to clocks line

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

Build "sync" option into TextConfig. Sync disks before starting off. 
But sync returns immediately, and syncing could not have been finished.

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

include X11 include files for those not having the X tree.
Or include the library, so they don't have to recompile that.

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

MUST try using XFREE clock code, to avoid all those pesky problems.

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

let user enable "clockdiv2" feature in config file, disabled by default.

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

A utility to test the monitor capabilities by sweeping through the freq
ranges: first H, keeping V constant at 60 Hz (by decreasing H-size), then,
using the H limits, test V!

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

clock probing script (select all clocks, do clockprobe, ...)


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

grabmode: 320x200 is detected as 640x400!!!

setVGAreg: add "REG" regset, so reg 0x3c3 can be read (et4000)

ET4000: add script for solving SVGAlib problem. (see Kris Coryn)

"maxclock" line (like X): set max clock to default 50 MHZ!

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

!!!!!!!!!!!!!!!!!!!!!!!!!!
use X linkkit from 3.1.1! , at least for S3 cards! This may make SVGATextMode
bigger, but maybe it'll work...

also put in INSTALL file you need X installed for recompilation!

would there be a way of calling the X-server directly? for setting clocks,
that is...

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

Try finding out why free() des not always immediately free up the memory. 
VT_RESIZE gets into trouble in that case!

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

Gracefull exit when tty sizes cannot be set due to permissions. Instead of
taking the easy way out...

