FreeDOS DISPLAY v0.07  (8-Mar-2003)
=====================
    Ilya V. Vasilyev  (hscool@netclub.ru)
        2000
    Aitor SANTAMARIA_MERINO  (aitor.sm@wanadoo.es)
        2002-2003


DISPLAY device driver for FreeDOS


     This  program  is  free  software;  you can redis-
     tribute it and/or modify it under the terms of the
     GNU  General  Public  License  as published by the
     Free Software Foundation; either version 2 of  the
     License, or (at your option) any later version.

     This  program  is  distributed in the hope that it
     will be useful, but WITHOUT ANY WARRANTY;  without
     even  the  implied  warranty of MERCHANTABILITY or
     FITNESS FOR A PARTICULAR  PURPOSE.   See  the  GNU
     General Public License for more details.

     You should have received a copy of the GNU General
     Public License along with this  program;  if  not,
     write  to  the  Free Software Foundation, Inc., 59
     Temple Place - Suite 330, Boston, MA   02111-1307,
     USA.

------

   1.- About DISPLAY
   2.- How to use the program
   3.- Using MODECON.EXE
   4.- Codepages pack
   4.- Known Issues and Limitations
   5.- Future wishes


1.- About DISPLAY
=================

DISPLAY is a component that appeared in Ilya V. Vasilyev's CHCP05b
package.

Development was restarted on October2002, with the aim to turn it
into a proper device driver capable of handling display codepages
with a similar functionality to DISPLAY.SYS from MS-DOS.

In this version, DISPLAY can handle other codepages than 866, but
to be operated (thought int2Fh) it requires a nonstandard program
called MODECON.EXE. In the future, it will be turned into a proper
device driver, so that the usual MODE commands can be issued on
it.

Version 0.07 improves over 0.06 in the fact that PREPARE and SELECT
now are untied and work on independent manner. Prepared pools are
managed in an array whose entries are updated (PREPARED) following
a LRU (Least Recently Used) scheme (where use=prepare or select).
The program is entirely ready to admit the parameter parsing, just
lacking the text scanning procedure. You can change these options
at compile time easily.


2.- How to use the program
==========================

Simply run it, being sure that no other DISPLAY program (identified
though int2Fh, MUX=ADh, fn=00) has been previously loaded.

From the very moment you install it, you can communicate with it by
using the accompaining MODECON.EXE program.

DISPLAY does not offer the possibility to unload once loaded.


3.- Using MODECON.EXE
=====================

Use the accompaining MODECON.EXE utility to communicate with the
program. It is self-explanatory (issue MODECON /? to see the options).
There are three main commands that allow you to interface with DISPLAY.

The first one is to know the currently active codepage:

MODECON CODEPAGE

Will tell you which is currently active codepage. Hardware BIOS codepage
is allways supposed to be 437 (for the moment), which corresponds to the
state of inactivity of the driver. DISPLAY always starts inactive.

A second command allows you to PREPARE a codepage, i.e., to load the
codepage information that DISPLAY needs to operate. The information is
loaded from a one of the .RAW files provided. For example, if you want to
prepare DISPLAY to use codepage 860, you have to issue

MODECON CODEPAGE PREPARE 860 CP860.RAW

The precompiled version in this package has only one pool, so only one codepage
can be prepared. If you need more, update the source accordingly (it's really
easy and partially documented), and recompile.

The last command is to make active certain codepage. Codepage 437 can always
be selected. Any other codepage needs to be prepared beforehand. If we
have prepared codepage 860 with the previous command, then make it active
by

MODECON CODEPAGE SELECT 860

The only exception to the rules stated above is that codepage 858 (Latin+EURO)
is hardcoded in DISPLAY's codepage data pool, and doesn't need to be prepared
when using for the first time. Of course, it can be replaced by any other
codepage that you may prepare.

At compile time, you may easily decide which codepages will be automatically
pre-prepared, provided that you have the appropriate .RAW files.

To sum up, if you want to load other codepage than 437 or 858, you can issue
the following commands (for example, for 860):

DISPLAY
MODECON CODEPAGE PREPARE 860 CP860.RAW
MODECON CODEPAGE SELECT  860

You can automatise the process by adding these lines to your AUTOEXEC.BAT file.

As it was explained above, DISPLAY 0.07 is prepared to admit the commandline
parsing, lacking only the string scanning routine. Precompiled version has the
configuration below, but you can easily change it and recompile it:

DISPLAY   xxx=(EGA,437,1)

(name of driver is missing, not yet used)


4.- Codepages pack
==================

FD DISPLAY comes with some raw files you can use to prepare new codepages.
In particular, DISPLAY is packed with the latest Reduced Pack of codepages by
Henrique Peron, which is version 1.12 in this package. Please read the 
accompaining documentation. 

The full pack of codepages has many more codepages that you may use with FD
DISPLAY, but that are not included here. 

Please check the FreeDOS site for latest codepage pack versions, making sure
that you have read the documentation accompaining each pack (both DISPLAY and
packs documentation) to check compatibility.

DISPLAY 0.07 can be used with these packs:
- Reduced: 1.00 - 1.12 (latest known)
- Full:    1.10        (latest known)


5.- Known issues and limitations
================================


Issues: NONE

Limitations:
- works only for EGA and VGA monitor (LCD and MONO not yet)
- it doesn't work with other MODE commands (including Microsoft's)
- parses RAW files (and no CPI files)
- it will NOT query KEYB before selecting a new codepage
- does not admit parameters


6.- Future wishes
=================

In a nearby future, these can be expected:
- Ability to load CPI files
- Ability to communicate with KEYB
- MS-DISPLAY.SYS commandline compatibility
- it should become a CON device driver (and admit IOCTL calls)


<<<EOF>>>
