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 doing anything, and perform a "restore_regs"
  afterwards. The XFREE code could do this for me...

  
- and, of course, MORE CHIPSETS!

+
+ mail: 770
+
+ 
+

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

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

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

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

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

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

check out mkmf, mkmk!!

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

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

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

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.


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

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!

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

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

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

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!

Dangerous...

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

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

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

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

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

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

H-timings CAN be given with PIXEL precision instead of 8-pixel. Use pixel
panning for both screen and cursor.

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

set80: more robust (just program for ALL chipsets that are tricky: ATI,
ET4000, ... Wrong registers will get ingnored ayway, I hope)

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


VT_RESIZE problem: when previous attempt via 1x1 failed, next attempt will
not even TRY, since it believes the screen doesn't need to be resized
(intelligent software always "sucks pond slime"...).

Need to re-think use of VT_RESIZE completely. It sucks!

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

"color" mode? when STM is run from mono, some chars have  a line through them
(=underline at wrong position?)

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

"browse" option for STMmenu

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

WHY does new Cirrus code create wrong 58 MHz clock, and old code is OK? This
is a bug in the "ClockChip CIrrus" code from XFREE...

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

ET4000/ics5431: DOSEMU re-programs original values in clock regs!


