home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / utils / console / svgatext.3 / svgatext / SVGATextMode-1.3 / TODO < prev    next >
Encoding:
Text File  |  1996-04-21  |  7.7 KB  |  188 lines

  1. This file documents what should be changed to this program in the future. 
  2. It is mainly for "internal use only", so don't worry if it's completely rubbish.
  3.  
  4.  
  5. 1) Ideas and suggestions for enhancements
  6. -----------------------------------------
  7.  
  8. - More "man" files for _all_ tools would be nice...
  9.  
  10. - when an error occurs in the middle of hardware programming, recovering
  11.   from it would be nice instead of just bailing out, and leaving all
  12.   registers in an undefined state (= a bad state) ...
  13.   How to to this? 
  14.  
  15.   Maybe use the "save_regs" function from the XFREE code before doing
  16.   anything, and perform a "restore_regs" afterwards. This is only realistic
  17.   when using more of the XFREE code.
  18.  
  19. - Of course, even MORE CHIPSETS!
  20.  
  21. - Should really consider moving SVGATextMode closer to the XFREE3.x code, so
  22.   developing new chipset-support is faster. Also use their code for some
  23.   things (chipset detection, clock selection, register programming
  24.   macro's...).
  25.   
  26.   check out xfree86/vga256/vga/vgaHW.c: contains register programming stuff
  27.   
  28.   This would allow me to use CLKREG_SAVE and RESTORE, so when something goes
  29.   wrong, I can always restore registers. Much safer...
  30.  
  31. - setVGAreg: add "REG" regset, so reg 0x3c3 can be read (et4000).
  32.   This needs a generic syntax for index/data sets and for single registers!
  33.  
  34.   It must then also get VGA perms for _all_ regs asked for, avoiding
  35.   addresses >0x400 (the system call doesn't work for >0x400), and give
  36.   warning when non-standard address (or out of normal VGA range) is used.
  37.  
  38. - set80 MUST get a lot more robust before it will be useful to most people.
  39.   The extended clock selection registers are the biggest problem. Maybe just
  40.   programming ALL special clock selection registers for ALL chipsets that
  41.   are tricky (ATI, ET4000, ...) would work. Wrong registers will (?) get
  42.   ingnored ayway. 
  43.  
  44. - A new program: "Xclockprobe": probes for the ENTIRE clocks line (like X):
  45.   do one clockprobe for the 25 (or 28 MHZ) clock, warn if 25 and/or 28 are
  46.   not there (=non-VGA), do other clocks like X (or not?) Could thsi be
  47.   combined with grabmode?
  48.  
  49. - Try to parse text mode label, and see if the X x Y values match the real
  50.   ones, and give warning if not! (useful for people who don't understand the
  51.   non-relationship between the label and the actual text mode size.)
  52.  
  53. - some people (correctly) argue that the lex/yacc parser does too much in
  54.   lex that could be done in yacc. Most of them agree this is not a big issue...
  55.   This is not a high-priority issue.
  56.  
  57. - Chips&Tech chipsets are still lacking.
  58.  
  59. - translate output from "X -probeonly" to a piece of TextConfig file that can be
  60.   appended to the default one.
  61.  
  62. - make STM programs print out in which kernel they were compiled, next to the
  63.   the version number
  64.  
  65. - Must include Harald's patches to compile grabmode for Windows. This would
  66.   make for a highly useful tool...
  67.     
  68.  
  69. 2) Really wild or less useful ideas
  70. -------------------------------------
  71.  
  72. - Measure the V-freq of the mode that was programmed in the chips, and
  73.   compare it with the calculated one. If there's too much difference, do
  74.   something nice (like restoring the old state)... (a "paranoia" switch ?)
  75.   
  76. - check out mkmf, mkmk!!
  77.  
  78. - Add "Et4000_newclocksel" option, which uses the clock selection method
  79.   described in doc/README.ET4000.AltClockSelect. But then the user needs to
  80.   input a different clocks line (with up to 96 clocks).
  81.   
  82. - But then we need a clocks line probe (like the one in XFree86)...
  83.  
  84. - Consider an X/Windows style "rgb.txt" and being able to say in TextConfig
  85.   "Palette 0 navy blue" & "Palette 7 IvoryWhite". (K. Albanowski again ;-)
  86.  
  87. - Extend the monitor range checking to allow the user to ask for the "best
  88.   fitting (refresh, font size, ...) "X*Y" mode for his setup. Maybe call the
  89.   the "-b" option ("best"). (suggested by Mr Albanowski)
  90.     
  91. - Another obvious extension is full Monitor/Card blocks, like in XFree.
  92.   3.1. (suggested by the same one...)
  93.  
  94. - A utility to test the monitor capabilities by sweeping through the freq
  95.   ranges: first H, keeping V constant at 60 Hz (by decreasing H-size), then,
  96.   using the H limits, test V!
  97.  
  98.   Dangerous... (?)
  99.  
  100. - In theory, H-timings CAN be given with PIXEL precision instead of 8-pixel,
  101.   using the "pixel panning" registers for both screen and cursor.
  102.  
  103. - Allow the user to select color or monochrome mode from the config file.
  104.  
  105. - grabmode/clockprobe: let them scan for config file, and if there is one,
  106.   use device-dependent extensions.
  107.   
  108.   Of course, this breaks the entire "chipset-independance" idea behind the
  109.   mode grabber. 
  110.  
  111. - try to create a better 32-high font, and maybe even some fonts between the
  112.   16 and 32 pixel boundaries. Let someone else do this :-)
  113.  
  114. - sorting the default TextConfig per Hor refresh frequency instead of the
  115.   hodgepodge it is now.
  116.  
  117. - see Ferraro (I) pg 363: DES could be used to allow VGA more time to access
  118.   font/char data. e.g. start using this when pixclock > (DEFAULT_MAXCLK - 10).
  119.  
  120. - See if DOSEMU can be compiled with SVGALIB support, so it can restore
  121.   chipset regs for more chipsets/clockchips. This way they don't have to do
  122.   it themselves (again).
  123.  
  124. - for V2.0: maybe use svgalib interfaces for hardware instead of custom
  125.   routines. Could be compile-time switch?
  126.  
  127. - try making this into MODULE that can be loaded VERY early on (for seeing
  128.   error msg)  
  129.  
  130.  
  131. 3) BUGS and other "features" that should be improved.
  132. -----------------------------------------------------
  133.  
  134. - VT_RESIZE problem: when a previous attempt via 1x1 failed, then the next
  135.   user attempt at restoring the screen back from 1x1 to something a little
  136.   more useful will not even TRY, since it believes the screen doesn't need
  137.   to be resized (intelligent software "sucks pond slime"...).
  138.  
  139.   In fact, I need to re-think use of VT_RESIZE and the out-of-memory problem
  140.   completely. It sucks (pond slime).
  141.   
  142.   Maybe we should check on the amount of free memory BEFORE doing the
  143.   VT_RESIZE call (/proc/meminfo?)
  144.   
  145.   Maybe even wait until memory is there (with proper warning, as fron the
  146.   NFS-server when it loses connection: "Not enough memory... waiting until
  147.   we get some")
  148.   
  149.   using shrink_buffers() could help : do it with priorities going up on each
  150.   attempt (start with 4, then 3...0). 
  151.  
  152. - LOTS of DOSEMU compatibility problems...:
  153.  
  154.   * ET4000W32p/ics5431: DOSEMU re-programs original values in clock regs! So
  155.     when you switch back to linux console, your text mode clock is wrong.
  156.  
  157.   * Maybe even use ClockProg as in X to restore textmode clock when
  158.     returning to text mode. This is especially useful for clockchip owners
  159.     where clock is not restored in programmable clock regs)
  160.  
  161. - For some reason, ClockPrg is VERY flaky in X! On some et4000's, the SEQ
  162.   regs cannot be programmed from the ClockProg...
  163.  
  164. - dependencies: if a file in XFREE/common_hw has changed, "make" doesn't
  165.   re-make anything! Should we use a Makefile in that directory?
  166.  
  167. - clear all chipset-specific H/V size extended regs (they are not used, and
  168.   not even programmed in STM, so they could cause mayhem. They also reduce
  169.   the chance for succes when trying to restore a broken textmode with STM).
  170.  
  171. - grabmode: interlace detection: maybe check vga address each V retrace (how?), if +-
  172.   equal, non-interlace.
  173.  
  174. - mode 7 in svgalib's vgatest program still detects as 640x400 instead of
  175.   320x400 (on S3 805)
  176.  
  177. - S3 + ti3026
  178.  
  179. - grabmode: - first attempt with 50 measurements, second with 100, 3rd with 200!
  180.             - make it also remember the tv_sec field of the gettimeofday() call,
  181.               so it can determine (and fold back!) wrapped measurements.
  182.             - bug with debug mode: center detection is wrong (always last one time
  183.               band taken). This looks like a compiler bug... (making some vars "volatile"
  184.               fixes the problem).
  185.  
  186. - detect multiple chipset/clockchip/... entries in config file, and flag them
  187.  
  188.