Я провел некоторое исследование, и, как я и ожидал, вы должны использовать графический режим или специальную аппаратную поддержку, потому что в текстовом режиме 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 в текстовом режиме. Использование Кандзи ПЗУ означало, что форма каждого символа была фиксированной, в то время как использование текстового режима 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 пикселей)
Я не знаю ситуацию для китайского и корейского, но я думаю, что используются те же методы. Я не уверен, есть ли другие способы достичь этого или нет