[comp.binaries.ibm.pc.d] ALED goes to ....

mbb@cbnewsb.cb.att.com (martin.brilliant) (06/16/91)

From article <19965@csli.Stanford.EDU>, by ceb@csli.Stanford.EDU (Charles Buckley):
> In article <1991Jun15.124052.17827@cbfsb.att.com>,
> mbb@cbnewsb.cb.att.com (martin.brilliant) writes:
>    ...  If we all
>    knew how Icelandic characters are normally entered ....
> 
> One shouldn't have to know, any more than one should have to know
> about the other national keyboard conventions in use around the world.
> MSDOS has a facility in it to deal with that, and it need simply be
> respected.

My wife and I use Microsoft Word 4.0, and we use ALT-<numeric keypad> to
enter extended ASCII (8th-bit) characters.  I mention my wife because
in the teaching of the history of the English language she needs such
characters as barred-d and thorn; I mapped them to extended ASCII
characters and programmed Word to draw them on our daisy-wheel printer.

ALED supports the same method of entering extended ASCII.  The original
complaint was that that method was awkward.

I looked at support for character sets in other languages in my DOS 3.3
manual, and there is support for some languages, but not Icelandic.
I would believe that if that support comes from DOS, ALED would respect
it, because it respects the ALT-<numeric keypad> method.

From: wirzeniu@klaava.Helsinki.FI (Lars Wirzenius) we have:

> I don't know how Icelandic characters are entered, but if they're
> entered the same way as Finnish characters, there are keys dedicated to
> them on the keyboard, just as for the letters A through Z, e.g. 
> o-with-dots is by the L key, and a-with-a-circle-on-top is by the P key. 

I would welcome some explanation of how you tell MSDOS (or the editor)
that P is to be mapped into a-with-circle-on-top, and how you can get
a P (if Finnish uses P, as I think it does).

My main question is this - do word processors newer than MS Word
provide a form of 8th-bit support that Word 4.0 does not have?  Or do
versions of MSDOS newer than 3.3 provide a new form of support?  If so,
what is it?

							Marty
marty@hoqax.att.com		hoqax!marty
Martin B. Brilliant		(Winnertech Corporation)	

wirzeniu@klaava.Helsinki.FI (Lars Wirzenius) (06/16/91)

In article <1991Jun16.122436.12392@cbfsb.att.com> mbb@cbnewsb.cb.att.com (martin.brilliant) writes:
>From: wirzeniu@klaava.Helsinki.FI (Lars Wirzenius) we have:
>> o-with-dots is by the L key, and a-with-a-circle-on-top is by the P key. 
>
>I would welcome some explanation of how you tell MSDOS (or the editor)
>that P is to be mapped into a-with-circle-on-top, and how you can get
>a P (if Finnish uses P, as I think it does).

I'm sorry if I didn't make myself clear enough. I meant that the
a-with-circle-on-top is next to the P key, I think the US keyboard has a
left bracket, in case it shows up as something else on that key.

The way that key is mapped is with the keybsu or keyb commands
(depending on version of MS-DOS). These commands cause the key to
generate the character code for the a-w-a-c-o-t. There are versions of
this program for several countries.
-- 
Lars Wirzenius     wirzeniu@cc.helsinki.fi

frisk@rhi.hi.is (Fridrik Skulason) (06/17/91)

In article <1991Jun16.122436.12392@cbfsb.att.com> mbb@cbnewsb.cb.att.com (martin.brilliant) writes:
>My main question is this - do word processors newer than MS Word
>provide a form of 8th-bit support that Word 4.0 does not have?  Or do
>versions of MSDOS newer than 3.3 provide a new form of support?  If so,
>what is it?

Huh ?  What do you mean ?

Word provides full 8-bit support and has always done so. Version 2.x,
version 3.x and version 4.x - no problems.  As I said in an earlier posting,
the folks at Mikrosoft know what they are doing (at least in this respect).

Even though you might have to use ALT-sequences to enter 8-bit characters,
we don't - those characters are present on the main keyboard, and the
keyboard driver which grabs INT 9 just converts the scan codes to the correct
8-bit code and puts it in the keyboard buffer.

Any program which uses INT 16 to get a characeter from the keyboard and does
not mask the 8th bit away will work.  Any program which replaces the INT 9
handler with its own driver (almost certainly) will not.

-frisk

fisher@sc2a.unige.ch (06/17/91)

In article <1991Jun16.122436.12392@cbfsb.att.com>, mbb@cbnewsb.cb.att.com (martin.brilliant) writes:
> My wife and I use Microsoft Word 4.0, and we use ALT-<numeric keypad> to
> enter extended ASCII (8th-bit) characters.  I mention my wife because
> in the teaching of the history of the English language she needs such
> characters as barred-d and thorn; I mapped them to extended ASCII
> characters and programmed Word to draw them on our daisy-wheel printer.
> 
> ALED supports the same method of entering extended ASCII.  The original
> complaint was that that method was awkward.

Not Fully.  Some charcters are ignored, some other returen a "Macro not
defined".  Try chars 128-130, for example.  You were lucky to choose some
that ALED does support.  Anyway, the ALT-<num pad> is *not* the preferred
method.

Further:
> I would welcome some explanation of how you tell MSDOS (or the editor)
> that P is to be mapped into a-with-circle-on-top, and how you can get
> a P (if Finnish uses P, as I think it does).

Basically, you tell that MS-DOS.  It used to be a stand-alone TSR, called
KBXX.COM, where XX is the code for your country.  Now (DOS 3.3, I don't
remember since what version), it's a TSR linked in memory, the loader
being KEYB.COM, with it's keyboard map KEYBOARD.SYS.  Even standard US
versions (which I prefer for other reasons) have this fully explained in
the manual.  For some languages, characters not in the US-IBM-PC-extended-
ASCII-char-set (wheew!) must be implemeted through the code-page feature.

It's really no big deal, as the keyboards come with the correct engravings (?)
on the keys. Internally, the keyboard send scan-codes for every key that
is pressed or released (limiting the number of keys to 127 for that system,
as you use a 7-bit integer to designate the key, with the 8th bit set to
high for key release).
 
> My main question is this - do word processors newer than MS Word
> provide a form of 8th-bit support that Word 4.0 does not have?  Or do
> versions of MSDOS newer than 3.3 provide a new form of support?  If so,
> what is it?

The limitation factor is the 8-bit set.  I know at least one product in the
PC world that dropped that limitation - WordPerfect since 5.0.  The coding
is a little heavy (4 chars for every extended character...), but it allows
you work with some 1500 chars.  It's also the only word processor that
implements full support for these characters (more about the standard half-
support later...).

In <NELSON.91Jun16163116@sun.clarkson.edu> nelson@sun.soe.clarkson.edu
(Russ Nelson) write:
> How about it, you non-English speakers?  Give us English-speaking programmers
> a break and tell us what we need to do to get our programs to work on your
> computers...

Ok, this is what I'm doing... (languages used in desktop publishing on the
PC: french, german, italian and english).


The main problem with ALED is that it wants to improve on DOS's keyboard
driver.  That means that the keyboard interrupt is trapped and the active
shift state is checked.  Before doing that, you should really look at the
keyboard mappins supported by DOS first.  This is a common problem, you
can check is with the following:

	C:\DOS> KEYB SF 437 (path\)KEYBOARD.SYS

This loads the swiss-french keyboard driver into memory.  No fear, it is
_almost_ the same as the standard BIOS US driver.  The main difference is
that the Z and Y are inverted, and that you'll have troubles finding the
punctuation.  No fear though, as the sequence ALT-CTRL-F1 switches back
to good ol' US key mappings, and ALT-CTRL-F2 let's you try the swiss
pecularities again...

Please note that there is an additional key: the AltGr (replacing the
Right-Alt?), and that there are so-called "dead keys", allowing to type
first the diaresis (e.g. ~) and then the letter (e.g. n) to get the
accented character.  This is done entierely by the keyboard driver.

Now load (to pick two) any version of XTREE or derivatives or the program
FONTED (a shareware E/VGA font editor) and try to answer a (Y/N) question.
You will notice the you must type the "Y" of the US-map, that is my "Z".
This is because the scan-code of the key is checked, not the resulting
character...

Now take Word 4.0 (this has been corrected, I think, in ver. 5.0).  Try
to enter a backslash at the prompt "enter filename".  Word used to think
that you don't need to format the filename (the main usage of ALT-keys in
Word), thus disabling the alt-key during the entry...  You had to type
ALT-<num pad 9-2> to get it.  How's that for clean programming?  Plese
note that this problem was also with the *french* version of MS-Word.

Now load ALED.  You will remember that a swiss-french user expects to find
('e) and (`a) on the keys next to the "P" (american ; and '), with ("o)
and ("a) in shifted state (american : and ").  Try them!  If ALED simply
crippeled the Alt-<num pad>, it would be a mere disfeature.  As it stands,
it doesn't respect DOS's key translations.  That's a *bad* thing, diserving
complaint by european users, if not a public flame war on Usenet.

FOR PROGRAMMERS:
If you want to intercept the keyboard interrupt, please call the real
driver as a sub-function, and check whether the resulting character in the
buffer is (1) a control character, (2) a "normal" character, including
those from the higher table, or (3) an extended key.  Then decide if you
really want to override the user's expected behavior.

The reason for the virulent attacks is probably a case of "ras le bol" -
the bowl is full (what is the english equivalent?).  It is true that
european users often need more technical knowlege to get started (remember
it was impossible to work with Word 4.0 without knowing the ALT-<num pad>
method, often ignored by US users...).  The common problem of the Y/Z
switch in Yes/No ansers needs also a bit of explanations.

Of course, we are used to that.  How many programs insist that the month
comes before the day (exept in "the fourth of July" that would have been
the way to go!), that the day had only 12 hours when we wish it had at
least 36, that the decimal point is always a "period", or that an accented
"e" is sorted alphabetically after the "z"...  (even my user name is
misspelled on our system... sigh!).

IMPORTANT NOTE FOR PROGRAMMERS:  The above misfunctions are due to a lack
of knowlege of MS-DOS.  After selecting a "country" code in config.sys,
DOS offers full information about format of dates, time display, decimal
character, case conversion and even (I think) sorting order.
   Another big source for misbehavior is the usage of the standard c
functions/macros islower, toupper, etc.  They are defined only in 7-bit mode.
(I should clean-up my replacment macros and drop them on Simtel20, I
know... :-)

The problem is alas that the support for international characters is very
far from being perfect:  convert a lowercase (`e) to uppercase, and you'll
get either no change or an uppercase E, without the accent (it was forgotten
when creating the IBM-extended-ASCII-(etc.) :-).  Converting it back yields,
of course, a lowercase e...  If you want to know what full support of
international characters might mean, take a look at WordPerfect (and I'm
only a *very* pleased user!).

Enough for today, it seems this *is* a sensible matter for europeans (UK
possibliy excepted due to relative US-compatibility :-)

Markus G. Fischer                              fisher@sc2a.unige.ch

einari@rhi.hi.is (Einar Indridason) (06/19/91)

In article <1991Jun17.183352.480@sc2a.unige.ch> fisher@sc2a.unige.ch writes:
>> ALED supports the same method of entering extended ASCII.  The original
>> complaint was that that method was awkward.
>
>Not Fully.  Some charcters are ignored, some other returen a "Macro not
>defined".  Try chars 128-130, for example.  You were lucky to choose some
>that ALED does support.  Anyway, the ALT-<num pad> is *not* the preferred
>method.

RIGHT!

>The main problem with ALED is that it wants to improve on DOS's keyboard
>driver.  That means that the keyboard interrupt is trapped and the active
>shift state is checked.  Before doing that, you should really look at the

I have not checked it out, but do you meen that ALED takes over INT 9?
If so, then more reason to throw it away.  Int 9 is generally a NO NO if
you want your program to work in other countries.

>FOR PROGRAMMERS:
>If you want to intercept the keyboard interrupt, please call the real
>driver as a sub-function, and check whether the resulting character in the
>buffer is (1) a control character, (2) a "normal" character, including
>those from the higher table, or (3) an extended key.  Then decide if you
>really want to override the user's expected behavior.

And may I add:  Don't Mask the 8th bit.    (I need to get a
'card-of-common-sayings'  :-)

>
>The reason for the virulent attacks is probably a case of "ras le bol" -
>the bowl is full (what is the english equivalent?).  It is true that

Yes, the bowl is full.  It is more than full.  It exploded some time ago
:-)

>   Another big source for misbehavior is the usage of the standard c
>functions/macros islower, toupper, etc.  They are defined only in 7-bit mode.
>(I should clean-up my replacment macros and drop them on Simtel20, I
>know... :-)

I have written my own versions of those macroes.  I call them NLSislower,
NLSisupper, ... etc.  They are only for Icelandic, but the code behind them
is not complicated and if anyone is interested, feel free to email me and
ask for them.

>Enough for today, it seems this *is* a sensible matter for europeans (UK
>possibliy excepted due to relative US-compatibility :-)


(the 'pound' sign is in the upper half in the 'british' alphabeth)


Thank you.  Indeed thank you.  Great.

--
Internet:    einari@rhi.hi.is        |   "Just give me my command line and drag
UUCP:    ..!mcsun!isgate!rhi!einari  |   the GUIs to the waste basket!!!!"

Surgeon Generals warning:  Masking the 8th bit can seriously damage your brain!!