Hello,

To answer this mail, and Davi Ramos' question of "what a codepage is".

In classic text mode, your display adapter can only display up to 256
different characters (glyphs) simultaneously, which is obviously not enough
for having all alphabets for different languages (even less all of
Unicode). This is so because the graphic card uses ONE byte (0..255) for
each position of the screen (usually 80x25 positions if you do not change
the mode).

This is solved by using codepages. A code page is a set of 256 characters
(glyphs) that you can simultaneously display on a screen, similar to
today's encodings. One of the first and most widely used encoding/character
sets used even before DOS was ASCII, that is 7-bit (128 characters). All
the codepages (that I know of) are ASCII-compatible, which means that they
have the same characters for the first 128 positions (0..127). This
encoding of 127 characters is enough for English but not much more.

For most machines, there is a default 256-character set or codepage in your
graphic card firmware, which in most of the cases (all that I know of) is
437. Codepage 437 tries to complement the basic English ASCII with some
characters in order to enable some other western european languages, but it
does not do it in a perfect manner. For the case of Spanish, for example,
you get  ñÑ¿¡ and also  áéíóúÉ, but pitifully not ÁÍÓÚ, so it does not make
it suitable for Spanish.

Graphic cards usually allow the installation of new codepages. When you do:

DISPLAY CON=(EGA,437,1)

you are telling DISPLAY that your CON device is tied to an EGA card that
has codepage 437 as default. And that you want to be able to use an extra
software codepage.

There isn't a codepage per country, but mostly a codepage per alphabet.
Codepage 850 complements the English ASCII with some other characters
required to display most other western European alphabets, so 850 is
suitable for most western European countries. But it was defined before the
advent of the Euro, so it does not have the € sign. Codepage 858 is the
same as 850, but replaces the dotless Turkish i with the Euro sign €  (I
doubt that 850 is suitable for Turkish anyway). Thus, 858 is the best
option for western European countries.

When you do

MODE CON CP PREP=((858) C:\FREEDOS\cpi\EGA.CPX)

what you do is: tell your CON device (previously controlled by DISPLAY) to
fill the software codepage that you want with the information for codepage
858, that can be found inside EGA.CPX. But your CON device is still using
the default (BIOS) codepage.

If you want to change codepage, you can do either:

CHCP 858

(with NLSFUNC loaded) that tells DOS to change the codepage to 858
everywhere (kernel and ALL devices), or

MODE CON CP SEL=858

which tells DOS to change to codepage 858 ONLY in your CON device  (where
as DOS kernel and all other devices remain unchanged, and probably
inconsistent).

If you think this is not important, think that DOS does capitalise
filenames when storing in FAT, and that this capitalisation is
codepage-dependent.
Fortunately, you usually overcome this problem by using COUNTRY= in
CONFIG.SYS.

Aitor


On Fri, 26 Apr 2024 at 01:48, Joao Silva via Freedos-user <
freedos-user@lists.sourceforge.net> wrote:

> Hello.
>
> So, whats the code for Portugal Portuguese?
>
> Thank you.
>
> On Thu, Apr 25, 2024 at 6:43 PM Jim Hall via Freedos-user <
> freedos-user@lists.sourceforge.net> wrote:
>
>> Davi Ramos wrote:
>> >> > The "ã" is a very common character in Portuguese. It shows up in
>> words
>> >> > such as "não", "alçapão", and "órgão".
>> >> >
>> >> > The system's keyboard and layout are already configured to "br" (for
>> >> > Brazilian Portuguese) and working perfectly. Other accentuated
>> >> > characters display just fine. That is the case of "á", "à", "ô".
>> >> > However, "ã" shows as something else entirely. Image below:
>> >> > oIh6TW8.png
>> >> >
>> >> > How can I get FreeDOS to correctly display those characters?
>>
>>
>> Vacek Nules wrote:
>> >
>> > Hi Davi,
>> >
>> > Your codepage is probably set to CP437, which does not contain the
>> > "ã" character. Change your codepage to CP850 (or CP858 if you also
>> > need the Euro sign) and try again.
>>
>>
>> That's what I was going to suggest too. Looks like Brazilian
>> Portuguese is codepage 850? So I think Davi also needs to enter these
>> commands to set up the display for 850:
>>
>> display con=(ega,850,1)
>> mode con cp prep=((850) C:\freedos\cpi\ega.cpx)
>>
>>
>> _______________________________________________
>> Freedos-user mailing list
>> Freedos-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/freedos-user
>>
> _______________________________________________
> Freedos-user mailing list
> Freedos-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freedos-user
>
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to