[Freemint-list] XaAES Russian fonts

Dima Sobolev avtandil33 at gmail.com
Tue May 9 15:18:31 MSD 2017


Dear Vincent,

Tuesday, May 9, 2017, 12:54:20 PM, you wrote:


>> But seems that we should do one more change that time - in the place
>> from which we have this double char Country code.
>>
>> /> static char countrycodes[] =
>>>
>>> "endefrukesitsefsgstrfinodksanlczhuplltrueebyuaskrobgslhrcscsmkgrlvilzaptbejpcnkpvninirmnnplakhidbd";
>>>
>>> As you can see, for some reason the index used isn't 19 but 32.
>>
>> This is now main issue. Somewhere 'ru' is still on the 31.

> We may have forgotten that place. In this case, we must fix it.

>> I tried to create and edit nvram-file (it was not exist in my
>> installation) and put relevant settings,

> Beware, you can't easily hack NVRAM files manually. You have to also fix
> the checksum, otherwise it will be considered as invalid. I'm not sure
> of how checksum may be handled with various emulators, though.

Actually it was your advice (see letter dated 05 Sep 2010):

-----------------

The 512k ROM is a multilanguage EmuTOS. It will start using the language
indicated in the NVRAM. It is usually changed using a desk accessory. ARAnyM 
has a nice feature: you can run it with the -k option on the command line to 
initialize the NVRAM with the specified language. For example:
aranym-jit -c myconfig -k fr
So EmuTOS starts in French.

For completeness: on Windows, ARAnyM stores the NVRAM in the file:
C:\Documents and Settings\<your login>\aranym\nvram
So if you don't specify the -k option, it will use the most recently used 
language.

Note also that ARAnyM does not understand "-k ru", it will have to be 
patched to allow that and use your new country code.
So in order to try the Russian EmuTOS with ARAnyM, I see 2 solutions:
- manually change the country code in the NVRAM file using a hex editor
- patch EmuTOS to always use Russian language, regardless to the NVRAM.

-----------------

So  I  investigate  and  found  that  while  Language  is changing, in
nvram-file  two bytes ( 06h and 07h) with the country code. Maybe byte
06h was the code itself and 07h - checksum.

>> but AFAIK it is related to EmuTOS only (and in fact - it doesn't work
>> for Russian EmuTOS, to get Russian version of EmuTOS, I should
>> compile it with an option UNIQUE=RU).

> In EmuTOS, there is no know bug related to NVRAM / AKP. If it doesn't 
> work, maybe there is a checksum problem as described above.

Or AranyM still doesn't recognize it.

> Note that a Russian-only EmuTOS (compiled with UNIQUE=ru) will always be
> displayed in Russian, even if the value of the AKP cookie (or NVRAM) is
> incorrect.

> Beware, Jo Even said something like FreeMiNT keyboard tables could also
> change the UI language in the AKP cookie. Even if this behaviour looks
> like a nonsese, it should be considered.

It should be the reason.

I  checked  all possible XaAES keyboard layouts and all except Russian behave
correctly.

But - look what I found in keyboard table source:
-------------------------------------------------

; The French keyboard translation table, AKP 2
;
; Unshifted

        dc.w    $2772
        dc.w    $0002
------------------------------------------------

So - for sure - there is country ID inside. Russian source is missing,
but maybe we can check in binary file what byte to change.


>> But - as I remember, EmuTOS could be on one Langiuage and then XaAES
>> on another... So it should not depend on nvram...

>  From my old messages, I see that XaAES language can be defined with 
> "lang =" in xaaes.cnf. If this line is commented out, then the NVRAM 
> country code (if valid) will be used by XaAES as UI language.

Actually Russian language is working OK in XaAES, just in About window
has wrong indication.


Best regards,
 Dima                            mailto:avtandil33 at gmail.com




More information about the Freemint-list mailing list