Patron, Можно ли добавить опцию подключения карты знакогенератора (bitmap). Тогда в настройках Terminal.ini кроме оригинальных цветов терминалов, будут оригинальные символы.
Спасибо.
Patron, Можно ли добавить опцию подключения карты знакогенератора (bitmap). Тогда в настройках Terminal.ini кроме оригинальных цветов терминалов, будут оригинальные символы.
Спасибо.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Похоже, что с терминалом такое никогда не будет возможно. Когда дойдёт дело до графической подсистемы - появится объект "Монитор", выводящий поток графических кадров (битмапов размером с эмулируемый экран). Эмуляторы КСМ и КЦГД будут создавать эти кадры и отправлять через поток кадров в монитор для отрисовки. Такой подход позволит отдельно эмулировать графические адаптеры и отдельно - мониторы.
Как это не возможно когда любой терминал генерирует символы.
Речь идет о символьном терминале.
Зачем такие сложности? Лучше разделить графический режим и символьный, где в символьном режиме идет код символа, а терминал (и те же КСМ, КЦГД) печатает символ с соответствии с картой знакогенератора (выбранного терминала).
В графическом режиме (касается только КГД, КЦГД) идет поток битов где отображается в отдельной консоли с автоматическим переключением туда и обратно.
По сути эмуляция КСМ+КГД пускай будут в отдельных консолях, это облегчит эмуляцию. В КЦГД, там сложнее. Лучше КЦГД использовать только графический режим с эмуляцией символьного.
Но просьба была по терминалам, где терминал не использует шрифт, а создает символы из прошивки знакогенератора.
Как выяснилось - эта опция есть уже сейчас. Карта знакогенератора должна быть оформлена в виде растрового FON-шрифта Windows, поддерживающего набор символов RUSSIAN_CHARSET.
Сейчас разобрался с шрифтом 15IE_FONT.fon - у него две ( или три ) проблемы, не позволяющие этому шрифту нормально работать в эмуляторе терминала:
1. Отсутствует RUSSIAN_CHARSET
2. Порядок русских букв не совпадает со шрифтом Fixedsys
3. Размер символов не позволяет нормально выводить в окно.
Поэтому, если (в тестовой сборке) отключить в эмуляторе терминала задание набора символов RUSSIAN_CHARSET, то при выборе шрифта: Fixedsys - загрузка выглядит так:
а при выборе шрифта: 15IE_FONT - тот же самый экран выглядит так:
Если раздвинуть окно в ширину - можно увидеть весь экран:
Последний раз редактировалось Patron; 02.12.2017 в 17:19.
Я создавал файл в формате fon из карты знакогенератора программой 8х8 rom pixelfont editor.
- - - Добавлено - - -
Вот например как будет выглядеть шрифт от СМ7209
- - - Добавлено - - -
Ясно что не годится. Вот и была просьба чтоб сам эмулятор напрямую с прошивкой работал.
Терминал всегда будет выводить шрифты прошивок только из FON-шрифтов Windows. Надо просто научиться правильно их готовить. Возможно - написать правильную утилиту создания FON-шрифтов для эмулятора из шрифтов в прошивках. Кому интересно выводить на терминал шрифты из битовых карт прошивок - могут этим заняться.
Терминал никогда не сможет показать символы с кодами из диапазона 0-31, потому что они всегда распознаются как управляющие. Символы из диапазона 128-159, при перекодировании из набора символов КОИ-8 в набор символов Windows - в текущей версии преобразуются в пробелы. В принципе - их можно пропускать без перекодирования, тогда при наличии нормального FON-шрифта - эти символы будут выведены соответствующими значками ( только надо ещё изменить порог очистки старшего бита символа: Strip_8Bit_HighLimit = 0177 ).
Последний раз редактировалось Patron; 03.12.2017 в 00:03.
Для начала пусть кто-нибудь сделает нормальный конвертор шрифтов прошивок в FON-шрифты эмулятора. В следующем релизе - терминал сможет при помощи FON-шрифтов выводить псевдографику в диапазоне кодов символов 0200..0237 ( кроме символа с кодом 0230 ). Пока не появится первый нормальный FON-шрифт для тестов - символ с кодом 0230 будет выводиться пробелом.
- - - Добавлено - - -
С обычными шрифтами Windows выводится обычная "псевдографика" Windows:
- - - Добавлено - - -Код:.BASIC BASIC-11/RT-11 V02-03Y OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)? READY 10 FOR I=128 TO 159 20 PRINT CHR$(I); 30 NEXT I RUN NONAME 03-DEC-17 00:03:14 ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–— ™љ›њќћџ READY
Это после переделки терминала на прямой вывод кодов 0200..0237 и изменения настройки очистки старшего бита выводимого байта на: Strip_8Bit_HighLimit = 0177
Последний раз редактировалось Patron; 03.12.2017 в 00:03.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)