1

Тема: Знакогенератор Агат-9

Смотрел на знакогенератор девятки и задумался, вот регион $08-9F это копия региона $С0-DF, где содержаться заглавные буквы латинского алфавита.

Но мы знаем что в реальном софте используется именно регион $С0-DF для вывода этих самых заглавных букв латинского алфавита.

(Там же всё тянется от половинчатого генератора семёрки, 80 - 9F соответствует 00-1F в семёрке, а это - по любым таблицам (старым, современным - по всем) - регион управляющих символов).

И вот казалось бы, почему бы разработчикам не использовать регион $08-9F для каких-то полезных символов псевдографики, расширив этим разнообразие на 32 символа. Кстати, в расширенном ЗГ семёрки именно так и сделано - там всякие колокольчики и пляшущие человечки.

Так почему же? На этот вопрос тоже есть ответ: знакогенератор для режимов Apple у девятки, берет тайлы из основного. Первые три фрагмента полностью дублируют $80-$BF, а последний -- $C0-$FF. Первые $00-$7F вообще не используются.

Таким образом, получается что ради формирования ЗГ Apple, упрошен основной ЗГ Агат....

Неужели нельзя было как-то вывернуться, чтоб и ЗГ Агатовский был максимально полным и ЗГ Apple остался таким же???

Post's attachments

ЗГЗГ.png, 33.16 kb, 668 x 318
ЗГЗГ.png 33.16 kb, 4 downloads since 2025-01-20 

2

Re: Знакогенератор Агат-9

garnizon пишет:

Неужели нельзя было как-то вывернуться, чтоб и ЗГ Агатовский был максимально полным и ЗГ Apple остался таким же???

Какой-то неправильный вопрос :) Чтобы это сделать нужен преобразователь старших разрядов кода символа. Любой студент, прослушавший курс теоретических основ информатики, может разработать такой преобразователь за пару часов. А уж разработчики Агата и подавно. По моим прикидкам, тут понадобится один корпус К555ЛА3.

Другой вопрос, а кто бы мог захотеть, чтобы Агатовский знакогенератор был максимально полным, и включить такой пункт в ТЗ?

Ведь разработчики не с потолка берут очередную фичу. Это не их прихоть - делать максимально полный знакогенератор. Они следуют ТЗ. Все пожелания и требования в ТЗ исходят от заказчика.

И вот спрашивается, какому заказчику могли понадобиться колокольчики и пляшущие человечки? Для чего? Для написания игр?
Так у Агата для игр вон сколько графических режимов - на любой вкус.

Следующий вопрос - а как их выводить-то? Ведь все символы, которые попадают в регион управляющих символов, на экран не выводятся. То есть, софт, который пользуется штатными средствами вывода на экран (вектором $36), вывести эту псевдографику не может. Эти символы можно вывести только путем прямой записи в память. Что опять намекает на игры.

Можно, конечно, возразить, что у семерки-то сделаны колокольчики и пляшущие человечки в расширенном знакогенераторе. Что, неужели их потребовали в ТЗ?

Я думаю, что нет. Просто в семерке не требовалось никаких доработок схемы, чтобы перейти от 96 символьного ЗГ к 256 символьному. С точки зрения системного софта символов в диапазоне $80-$9F просто нет. Поэтому без разницы, что там будет в ПЗУ. Вот разработчики и воспользовались этим, и, скорее всего, добавили колокольчики и пляшущих человечков инициативно. Так сказать, в качестве эксперимента - вдруг кому понадобится.
А при разработке девятки более важно было уменьшить число микросхем, поэтому морочиться с более сложным преобразованием кодов не стали.

3 Отредактировано garnizon (Сегодня 01:00)

Re: Знакогенератор Агат-9

Ну почему неправильный... :)  Это вопрос  больше чувственный чем рациональный. 
В моём внутреннем пространстве схлестнулись "Фанат Агата" и "Здравый Смысл". Один говорит: ну, блин, что же они, как же они могли так потерять 32 знака впустую?.  А другой говорит: ну это так надо для дела, понимать надо.

Ну и вот ругались они, ругались, жарко было - огонь горел. В результате пожара, остался один пепел, который высыпался сюда в виде вопроса. Но тепло (ведь при горении выделяется тепло) осталось, и оно распространилось по внутреннему пространству, с приятной негой и мыслями - не будем обижаться на тех, кто рисовал ЗГ. Пусть будет 226 знаков а не 256.
Раздвоение личности? Нет, не думаю :)


Кстати, очень правильно указано что у сокращенного ЗГ Агат-7 всё таки не 128 а 96 различных знаков. Может быть и на этот вопрос есть ответ компетентный? Но прошу аккуратнее, а то боюсь новый пожар разгорится в внутреннем пространстве.
Я уже слышу знакомый возглас "Фаната Агата":  ну, блин, что же они, как же они могли так потерять 32 знака впустую?
Всё таки раздвоение личности? Да нет же, нет :)

4

Re: Знакогенератор Агат-9

Вспомните PC: там ведь знакогенератор мог 512 символов иметь в VGA и они ещё и налету перепрограммируемые были.
И что с того ? Много прог это всё использовали ?

Для текста хватало букв-цифр-пунктуации. Если не хватает тайлов для букв (разные алфавиты) - то не хватает много чего. Когда уникод вводили, сперва же всем должно было хватить 65 тысяч знаков, но не хватило и этого, перешли с двух байт на символ к 4 байта на символ. Аппетит пришел во время еды.

А для других целей:

1) Псевдографика для рисования окошек (одинарные линии и двойные) - широчайше использовалась на PC, некоторые проги и на Агате её использовали. Не много, но было.

2) Ну ещё на PC использовали прямоугольнички всяких полных и не полных затенений. В основном для всяких progress bar. На Агате тоже что-то подобное, кажется, встречалось, но тут память подводит. Возможно, в каком-то форматтере я это видел. А где бы ещё это пригодилось ?

3) Наверное, изредка, использовались знаки градуса. И так же изредка кружочки и точки, размещённые в середине знакоместа ("ненумерованный список").

Всё.

Потому что если мы пилим что-то вроде MathCad, где нужна куча математических символов, то там просто переходим в графику и там их рисуем. Сразу подстраивая размер символов вроде "интеграл", "корень", "сумма" и прочее, что должно растягиваться в зависимости от количества других знаков.

А если нам нужно просто что-то сообщить на родном языке - тогда зачем нам всякие крючочки и прочее ?
Тогда хватает и текстового режима.

IMHO, в тот момент когда делалась семёрка, никто вообще сильно не парился за это свободное место в ПЗУ.
Ну можно напихать чего нибудь - но зачем ? Если идея придёт - позднее напихаем.

Думая о применении в школе, кому-то сразу бы пришел на ум греческий алфавит или знаки степеней, но на самом деле - это только знаки из математики-алгербы-геометрии. К другим предметам, включая "информатику", они отношения уже не имеют.
И даже в математике крайне редко использоваться весь греческий алфавит. Альфа, бетта, гамма, фи, пси, пи, дельта. Кто больше ?
Ещё знаки множеств. И это тоже экзотика, на несколько уроков всего.

Но даже этих букв я не припомню в агатовских прогах. Несмотря на то, что в девятке ведь они были.
Т.е. это как бы прикольная фича, но не практичная.

==

Припоминая ДВК: там ведь переход между РУС и LAT у дисплейного контроллера был по спецсимволам 14 и 15. Технически можно было бы ввести ещё несколько спецсимволов и от души набить ещё несколько знакгенераторов чем угодно, тем более младшие ДВК граф. режимов вообще не имели. И однако же этого не было. Хотя ДВК были более высокого класса, чем Агат.

==

Вспоминая перепрограммируемые символы VGA, я помню только такие примеры её использования:
1) Norton Utilites очень любили под себя перекраивать символы псевдографики. Но в опциях прог это можно было отключить.
2) Мышиный курсор-стрелка в текстовом режиме - тоже основан на замене символов и применялся в тех же нортоновских утилитах и ещё в консоли операционки FreeBSD (в Линухе не помню - было или не было ?).
3) Симпатичная мелкая программка из 90-х, которая рисовала в углу текстового экрана какую-то неприличную картинку, возможно даже с анимацией.
4) Просто замена шрифтов (тонкие, жирные, стилизованные) - это когда стандартный знакогенератор надоедал.
5) Ну и загрузка национальных символов, конечно.

А, да, ещё мой эмулятор Агата в старшие 256 знаков заливал агатовский фонт, чтобы текстовые режимы Агата были.текстовыми же на PC.