     Each page starts with six box size and color description numbers 
preceded by an asterix '*' on the first column.  This is ignored because 
there is no asterix yet.

     The format is top row, left column, bottom row, right column, character 
color, background color.

top row..................................
left column				.
.					.
.					bottom row
........................................right column

     The top row must be 1 or greater and the bottom row must be 25 or less.
     The left column must be 1 or greater and the right column must be 80 or 
less.  It may be obvious but the difference between the two rows and the two 
columns should be two or more.  In other words, if the top row is 1, the 
bottom row must be 3 or more.  If the left column is 5, then the right column 
must be 7 or more.  Otherwise, how can you have any text?

     You must be in an 80 by 25 text mode on a non-flicker video adaptor such 
as the monochrome adaptor, EGA and VGA.

     Until all six numbers are obtained, all letters are ignored.  Right 
after the numbers are obtained, there should be a carriage return since this 
will skip one character (the CR) after the sixth number and everything 
afterwards till another asterix '*' on the first column becomes the help/menu 
page to be displayed.

     In actual use, all this above is not used and should be deleted since 
this still uses TSR memory space but is not used.

*top row 2
left column 1
bottom row 5
right column 30
foreground character color is white 7
background behind the character color is blue 1

This is the text to be displayed.  This part is ignored since it is outside.
as page 0 of 256 allowed

*all six parameters can be on same line like this 1 1 20 80 2 7

     The screen on page 1 is 20 row high, of which 18 are used since the line
edge will use 2 of them up.
     The screen is the maximum 80 characters wide, of which 78 are useable
since the line edge will use 2 of them.
     The foreground color is # 2 (green) and background is 7 (white).
     As long as the asterix '*' star is not on the first left column, it is
not used as the parameter for the screen size.

     If a line goes past 78 characters wide, then the extra lines are cut off from
the screen.  If the number of rows exceed the 20 rows, then the extra is
not displayed.  If there is not enough rows of text to cover the 20 rows,
then the rest of the screen will be blank.
*10 1 20 60
parts can be on a different line since the program will keep looking until
it can find all six parameters needed.  This is not recommended since you 
might forget to have all six but allowed.
     Here, the fore/back-ground colors are set for black on black, which is 
black letter on black background and invisible, but this special case is used 
to mean the default white characters on black background.0 0

(blank)


*top row 1 left column 2 bottom row 23 right column 70 colors 2 5
     For the color codes,
                          0 is for black
                          1 is for blue
                          2 is for green
                          3 is for cyan (blue-green)
                          4 is for red
                          5 is for magenta (purple)
                          6 is for brown (sort of yellow)
                          7 is for grey
so this is green characters on a purple background.  8 - 15 makes 
it brighter.

     To have a reverse cursor, just use BASIC with the COLOR 
statement to write the words in appropriate colors and INKEY$ to 
get the cursor movements.

     If you like, you can use the MSIMPLE.EXE in CompuServe GO 
IBMSW to MakeinkeySIMPLE and various LCShort programs exist to 
change the screen from graphic modes to text modes.  Plus one 
which forces graphic mode to go to text mode without destroying 
the graphic image, then back again (needs EGA, VGA etc).


     This is still grouped under the page above but cannot be seen since the 
setting for the screen size excludes this section.


**top row 1 left column 2 bottom row 23 right column 70 colors 7 0   
     This overwrites the one above in plain white characters on
black and is visible in monochrome mode.

     When switching between writing to monochrome area and CGA 
area, register AL = 4 and AL = 5 should be used along with the 
setting as recommended in the BASIC manual to switch displays 
under Appendix I, heading 'Switching Displays'.

     To switch to monochrome adapter,
DEF SEG = 0:POKE &H410,(PEEK(&H410) OR &H30)

     To switch to color adapter,
DEF SEG = 0:POKE &H410,(PEEK(&H410) AND &HCF) OR &H10

     See the BASIC manual for details.

     To do so with an assembler or LCS, this is the equipment flag 
word at location 0:410H or 0:1040 decimal, with bit 5 and 4 set to 
binary 10 (32 decimal) for color card and 11 (48 decimal) for 
monochrome.

     Both the equipment flags and MSHELP must be set because 
MSHELP uses the BIOS to first clear the part of the screen where 
the text is to be written, and BIOS relies on the proper setting 
of the equipment flags.

WARNING:

===================================================================
|     This switching of displays is not recommended because of an |
|insidious and infamous design in the IBM PC which can burn out   |
|either/both the video boards and/or the monitors.                |
|     Many newer well known brand name video boards and monitors  |
|may be able to take it, others may suffer catastrophic failures  |
|instantly or with repeated/intermittent switching of monitors.   |
|     Results may also vary widely with the PC/compatible/clone   |
|used.  In general, older machines/components have more trouble.  |
===================================================================


*1 1 25 80 7 0
     Multiple screens may be written one after the other as in here, but
since there is no multiple screen saves performed, one page of help/menu 
simply write over the next.  To reverse the writing of page two over page 
one, you must restore the screen and then store it again, followed by 
writing of page one again.

     There is nothing to prevent you from displaying all 254 characters 
(chr$(0) is not allowed) in the character set, but in case someone wants 
more features built in here, try to avoid chr$(1) through chr$(31) control 
codes and the bar character '|'.  If you have to include them, prepare to 
do a slight addition to your pop up texts.  Of course, if you didn't think 
this was good enough to contribute anything, then I won't make any additions 
and you can use the entire 254 character set without worrying about future 
compatibility.  If you do use this but your word processor cannot place any 
control codes in your text, you should contact me so that I can make sure 
the special codes use the bar character '|' as the escape sequencer, and no 
control codes are used.




     There is also additional information provided if you run MSHELP with 
the parameter 'h' as in MSHELP H

     You'll have to use the control-NumLock to pause once or twice to read 
the entire listing or send the output to a printer to read it.

All products and names mentionned are Trademarks or Registered 
Trademarks of their respective companies.
*2 1 9 75 7 1
(c) Copy Right 1987,88 All Rights Reserved.
Dr. Masaaki Sawada, University of Waterloo, Faculty of Science, 
Waterloo Ontario, Canada   N2L 3G1










