|
У нас в программаторе AutoProg интерфейс индикатора двуязычный. Там реализовано, примерно как у Вас во втором варианте, только на ассемблере:
я придумал свой формат сообщений: первый байт - длина английского текста, далее - сам англ. текст, затем - русский. Выглядит это примерно так:
TXT_Bad_chip: MESSAGE `Bad\R`chip , `Микросхема\R`неисправна
` - это у меня приказ подпрограмме вывода в индикатор центрировать текст,
\R - перевод строки,
_ - пробел (иначе макрос в RIDE не понимает)
Макрос MESSAGE делает из этого:
0B 0F 42 61 64 0D 0F 63 68 69 70 00 0F 4D B8 BA
70 6F 63 78 65 BC 61 0D 0F BD 65 B8 63 BE 70 61
B3 BD 61 00
Русские буквы здесь уже в кодировке индикатора на HD44780.
А подпрограмма вывода сообщения PRINT, в зависимости от состояния бита RUS, выводит то или другое, отрабатывает центровку и пр. функции:
MOV DPTR,#TXT_Bad_chip
CALL PRINT
E-mail: info@telesys.ru