About AE's new Greek language support.

(Use AE to view this file...)

I have added direct support for the Greek language to AE.  I did this to
help support my studies of the Greek language (therefore, no documentation
in Greek this time, maybe next, sorry.).

There are several things you need to know before using AE to write Greek,
either as a normal text editor, or in an assembly language setting.

1) AE attempts to support the ELOT 928 Greek character font standard, as
found on the internet.  There are a couple of other Greek character mappings
"out there" but the best I can tell ELOT 928 is the up-and-coming standard.
I use the phrase "attempts to support", as I'm not sure I have the complete
font.  I had to reverse engineer the font in order to get all the Greek
characters, this seems to work well, but other greater-than-128 characters
that have nothing to do with Greek may be missing, different, destroyed,
or otherwise not the same as ELOT 928.  For our purposes, it probably
doesn't matter, but if someone thinks otherwise, please contact me.

2) The keyboard driver may be less than optimum.  I have, to the best of
my ability, emulated the "WINGreek" keyboard driver (Detailed in the
table below).  The only deviations from this are the toggle (AE uses
^F1, WINGreek uses CTRL-ALT-SPACE), and the implementation of the Greek
questionmark (;), and the Greek semicolon ().
Not only does AE produce the Greek questionmark when the 'Q' key is pressed
(as in WINGreek), but it will also substitute the Greek questionmark when
the "regular" questionmark (?) is pressed.

3) The assumption is, if using Greek in assembly language, that the
Greek will be used primarily for commenting.  I have made the assumption
that there are no assemblers that can eat mneumonics in Greek, although
some may be OK with Greek labels.  Therefore, when AE is in it's normal
assembly language editing mode, the language is automaticly toggled
in a manner similar to the caps lock state.  Greek language is turned on
to the right of the (English) semi-colon, and off to the left.  ^F1 may
be used to toggle back to the other state.

4) Printing is a problem.  Most printers don't understand ELOT 928, and
there are far too many printers out there for me to even think about
writing printer drivers for them all.

However, AE now includes an optional printer driver (turned on when
configuring the program) to allow printing ELOT 928 to most HP 
laserjets.  See below.

5) You need appropiate hardware.  Mono, CGA, and Hercules users are left in
the cold here.  You need at least an EGA display.  EGA-mono and VGA-mono
are fine.  If your hardware cannot support Greek, AE automaticly turns
it off before it runs, and reverts to latin character mode.

The font used is an EGA compatable font, it may look slightly odd
on a VGA system.  You will notice that many of the "normal" characters
have a different appearance than the normal IBM-PC characters.  This is
from personal preferance of the programmer.  The Greek characters are my
own implementation.  Most look pretty good, although the one I'm most
dis-satsified with is upper case Delta.

6) Find and Search and replace act differently.  You can use these as
normal, except AE will *not* ask about case sensitivity if it thinks
Greek is present in the search string.  If Greek is present in the search
string, the search is *always* case sensitive.  This is largely due to
technical problems in dealing with various permutations of case, accents,
the oddball structure of the ELOT 928 font; the necessary code would be
a plate of spaghetti.

It *is* possible to enter a latin-character search string, and a Greek
replacement string in search and replace (^QA).  Since AE is searching
on the latin string, the search can be case in-sensitive.


The Keyboard Driver:

The keyboard driver is simple to use.  Pressing ^F1 will toggle between
Latin and Greek character sets.  This discussion relates to behavior of
the keyboard when in Greek mode.

AE makes a rudimentary check of the target file (if any) when the program
is first started.  If the first non-whitespace character is Greek, it will
automaticly select Greek mode, otherwise it starts in Latin character mode.
This isn't perfect, if the first non-whitespace character happens to be
a puncuation symbol, it will assume Latin mode.  Then there's the
question of what to do with a mixed language document.  I usually put
'' (without quotes) at the top of my mixed language files...

Either the 'q' (lower case) key or the '?' key will generate a Greek
questionmark (;)  As this character is a Latin semi-colon, the keyboard's
semi-colon key is reserved for toggling accents.  If you press the
keyboard's semi-colon key (;), nothing will be displayed.  However, *if*
the next keystroke is a vowel, it will be an accented vowel.  If the next
key is a constonant, nothing different happens and the constonant is
stored as usual.

The Greek semi-colon () has been a bit of a headache.  Apparently there is
no standard keystroke to generate this character.  I have it mapped to
upper case 'Q'.  If anyone has any better ideas, I'd appreciate knowing
about them!

Otherwise, the keyboard is mapped as follows:

(Hex displayed for informational purposes.  You may use this information
to write a printer filter or a printer font loader.)

Normal upper case

Hex       Keyboard Key      Greek Generated.
C1          A                  
C2          B                  
D8          C                  
C4          D                  
C5          E                  
D6          F                  
C3          G                  
C7          H                  
C9          I                  
CE          J                  
CA          K                  
CB          L                  
CC          M                  
CD          N                  
CF          O                  
D0          P                  
B0          Q                   
D1          R                  
D3          S                  
D4          T                  
C8          U                  
D9          V                  
D3          W                  
D7          X                  
D5          Y                  
C6          Z                  
           
Normal lower case
           
Hex       Keyboard Key      Greek Generated.
E1          a                  
E2          b                  
F8          c                  
E4          d                  
E5          e                  
F6          f                  
E3          g                  
E7          h                  
E9          i                  
EE          j                  
EA          k                  
EB          l                  
EC          m                  
ED          n                  
EF          o                   
F0          p                  
3B          q                  ;
F1          r                  
F3          s                  
F4          t                  
E8          u                  
F9          v                  
F2          w                  
F7          x                  
F5          y                  
E6          z                  
           
Accented upper case.  (Each keystroke preceded by the <;> key!)
           
Hex       Keyboard Key      Greek Generated.
A2          A                  
B8          E                  
B9          H                  
BA          I                  
BC          O                  
BF          V                  
BE          Y                  
           
Accented lower case.  (Each keystroke preceded by the <;> key!)
           
Hex       Keyboard Key      Greek Generated.
DC          a                  
DD          e                  
DE          h                  
DF          i                  
FC          o                  
FE          v                  
FD          y                  


Using the HP printer driver:

AE now includes an optional printer driver that allows printing
ELOT 928 to most HP laserjets.  It may or may not work with your
HP printer, and it may or may not work with a non-HP printer.
It is useful ONLY for printing Greek, if Greek isn't configured,
the printer driver is automaticly disabled by the program.
It seems to work with every laserjet I've been able to throw it at,
but there are no guarantees!

There are two caveats:

A) The Greek font the HP laserjets have built into them is a
proportional font.  I DO NOT share the current love affair with
proportional fonts.  I don't see the point, and proportional fonts
screw up any kind of text formatting that may be present in the document.

For "normal" use, i.e. a Greek text document, or an assembly language
file with Greek comments, this is transparent.  Where proportional fonts
get you in trouble is when you make tables.  I have, for instance,
several tables with verb conjugations, noun conjugations, etc. that I
use in my studies.  The collums don't line up when printing.  Sigh....

B) Upper case accented characters are not exactly pretty.  There is 
little I can do about this, but as upper case accented characters are 
not normally used in modern Greek, it shouldn't be a huge problem.
ELOT 928 supports them, so they are there, and recognizable, but
not pretty.

The printer driver also has a "feature" that turns it off when changing
printers with the ^KN command.  If you use the HP driver, you MUST configure
the LPT # of the HP printer to be the default printer (Using the setup program).
When you change the LPT # with the ^KN command, the HP driver is turned off.
The HP driver is turned back on when the ^KN command changes back to whatever
the default was configured to be.  This is so the program can print to
a non-HP printer on a different port without having the HP driver in
the way.  If you have compatable HP printers on more than one port (and
need to print Greek to both), or you just can't live with having the HP
as the configured default; this "feature" will be a problem.  If it is,
contact me and I'll "do something" about it.  I'm going to leave it this
way unless I hear from someone that is having a problem with it...

