Я провел некоторое исследование, и, как я и ожидал, вы должны использовать графический режим или вам нужна специальная аппаратная поддержка, потому что в текстовом режиме VGA невозможно использовать более 512 символов.
Что ж, сама DOS не может печатать в кодировках, превышающих 1 байт на символ, потому что она использует функции BIOS, которые, в свою очередь, используют аппаратное обеспечение VGA, которое не может иметь шрифты размером более 2 x 256 символов. Так что это снова звучит как работа для ДРАЙВЕРА, который использует графический режим для рендеринга обширных шрифтов. У нас уже есть поддержка шрифтов Unicode в нескольких графических текстовых редакторах DOS и аналогичных (спасибо :-)), и независимо от того, используются ли DBCS или UTF-8, оба имеют общий «размер символа может составлять один или несколько байтов», обрабатывая «аномалию» ,
Будет ли когда-нибудь официальная поддержка японского языка во FreeDOS?
Японская версия DOS (DOS / V) использует первый подход и имитирует текстовый режим с помощью визуализации символов в графическом режиме , используя специальный драйвер. Драйвер следует стандарту IBM V-Text, который является механизмом расширения возможностей отображения текста в DOS. Вы можете выбрать один из 16/24/32/48-точечных шрифтов, как этот
Некоторые другие системы текстового режима также используют ту же технику. В FreeDOS вы можете загрузить специальный драйвер для поддержки японского языка.
Рендерер будет перехватывать вызовы int 10h и int 21h и рисовать текст вручную, поэтому он будет работать даже для обычных программ на английском языке. Но это не будет работать для программ, которые записывают в память VGA напрямую. Для печати японские символы int 5h и int 17h также подключены.
В соответствии с руководством по DOS / V позднее IBM BIOS также добавил поддержку V-Text через int 15h с помощью 4 новых функций, указанных ниже.
5010H Video extension information acquisition
5011H Video extension function registration
5012H Video extension driver release
5013H Video extension driver lock setting
Я полагаю, что это также причина, по которой я увидел поддержку японского в BIOS моих старых ПК
Тем не менее, медленный графический режим может вызвать сбои при прокрутке, что требует особой обработки
DOS / V на самом деле является первым программным решением для японского текстового режима
Между тем, с начала 1980-х годов в IBM Japan проводились серьезные исследования, направленные на разработку программного решения проблемы отображения японских символов. С появлением VGA-мониторов с высоким разрешением, более быстрых процессоров, больших объемов памяти и жестких дисков дизайнеры исследовательских лабораторий IBM Fujisawa и Yamato поняли, что информация о форме и размере символов кандзи может храниться на диске и загружаться в расширенную память. и отображается через графический режим VRAM. (Кстати, буква «V» в DOS / V исходит от монитора VGA, необходимого для отображения японских символов с помощью программного обеспечения.)
DOS / V: Мягкое (изделие) решение для аппаратных проблем
Согласно той же статье, до изобретения DOS / V для всех других систем требовалось ПЗУ Кандзи в аппаратном обеспечении.
Все бренды компьютеров использовали аппаратные решения для обработки отображения японских символов, сохраняя данные для всех символов на специальных чипах, известных как ПЗУ кандзи. Этот метод требовал отправки двухбайтового кода для каждого символа ввода с клавиатуры в ЦП, который, в свою очередь, извлек соответствующий символ из ПЗУ кандзи и отправил его на экран через VRAM в текстовом режиме. Использование кандзи ROM означало, что форма каждого символа была фиксированной, в то время как использование текстового режима VRAM устанавливало стандартный размер точки 16x16 для каждого символа.
Например, IBM Personal System / 55, которая использует специальный графический адаптер с японским шрифтом, чтобы они получали реальный текстовый режим
В начале 1980-х годов IBM Japan выпустила две линейки персональных компьютеров на базе x86 для азиатско-тихоокеанского региона: IBM 5550 и IBM JX. 5550 считывал шрифты кандзи с диска и рисовал текст в виде графических символов на мониторе высокого разрешения 1024 x 768.
https://en.wikipedia.org/wiki/DOS/V#History
Как и в IBM 5550, текстовый режим был 1040x725 пикселей (шрифт 12x24 и 24x24 пикселей, 80x25 символов) в 8 цветах, может отображать японские символы, считанные из ROM-шрифта
Архитектура AX использует специальный адаптер JEGA вместо стандартного EGA
AX (Architecture eXtended) - это японская компьютерная инициатива, начавшаяся примерно в 1986 году, чтобы позволить ПК обрабатывать двухбайтовый (DBCS) японский текст через специальные аппаратные микросхемы, обеспечивая совместимость с программным обеспечением, написанным для иностранных компьютеров IBM.
...
Чтобы отображать символы кандзи с достаточной четкостью, машины AX имели экраны JEGA (ja) с разрешением 640x480, а не стандартным разрешением EGA 640x350, распространенным в то время в других местах. Пользователи обычно могут переключаться между японским и английским режимами, набирая «JP» и «US», что также вызывает AX-BIOS и IME, позволяющие вводить японские символы.
Более поздние версии также добавляют специальное оборудование AX-VGA / H и AX-VGA / S для программной эмуляции на VGA.
Однако вскоре после выпуска AX IBM выпустила стандарт VGA, с которым AX явно не был совместим (они были не единственными, кто продвигал нестандартные расширения «super EGA»). Следовательно, консорциум AX должен был разработать совместимую AX-VGA (ja). AX-VGA / H был аппаратной реализацией с AX-BIOS, тогда как AX-VGA / S был программной эмуляцией.
Из-за менее доступного программного обеспечения и других проблем AX не удалось и не смог сломить доминирование PC-9801 в Японии. В 1990 году IBM Japan представила DOS / V, которая позволила IBM PC / AT и его клонам отображать японский текст без какого-либо дополнительного оборудования с использованием стандартной карты VGA. Вскоре после этого AX исчез, и начался упадок NEC PC-9801.
Серия NEC PC-98 также имеет символьное ПЗУ в контроллере дисплея
Стандартный PC-98 имеет два контроллера дисплея µPD7220 (главный и подчиненный) с 12 КБ основной памяти и 256 КБ видеопамяти соответственно. Главный контроллер дисплея обрабатывает ПЗУ шрифтов, отображая символы JIS X 0201 (7x13 пикселей) и JIS X 0208 (15x16 пикселей)
Я не знаю ситуацию для китайского и корейского, но я думаю, что используются те же методы. Я не уверен, есть ли другие способы достичь этого или нет