Программы, которые мы выбираем - Предложения по доработке ZX Word v2.5.

ZX Review #7-8-9-10
(c)  Давыдов В.М., Нижегородская
обл., с.Запрудное

    Есть предложение ввести руб-
рику переписки с авторами  прог-
рамм, как с потенциальными авто-
рами принципиально  новых  прог-
рамм, так и  с  авторами  сущес-
твующих. Большинство программис-
тов в выходных  данных  программ
указывают только номер телефона,
да и то не  всегда.  А, учитывая
некоторые  особенности  телефон-
ной  связи, позвонить  в  другой
город для  обсуждения  техничес-
ких особенностей программы весь-
ма проблематично.  Дмитрий  Пар-
цырный в описании STS  дал  свой
домашний адрес. Но ему  вряд  ли
доставляет  удовольствие  терять
время на чтение писем с вопроса-
ми типа: "А как мне сделать...".
    Польза будет обоюдная. Прог-
раммисты смогут  узнать, что  не
удовлетворяет  пользователей,  и
учесть  пожелания  в   следующих
версиях. А  пользователи  смогут
сообщить  программистам  о  том,
какого  характера  программы  их
более всего интересуют в ближай-
шее время и  в  отдаленной  пер-
спективе.  Если  будет  обратная
связь между потребителями и про-
изводителями программного  обес-
печения, то,  по  крайней  мере,
программист  не  будет  мучиться
сомнениями о том, к чему бы при-
ложить свои способности.

    Кажется,  уже  давно  пришло
время для разработки  текстового
редактора, использующего  память
128К и выше. Идеал для  подража-
ния  -  LEXICON  от IBM-PC, хотя
повторить на Спектруме  все  его
возможности вряд ли кому  удаст-
ся.
    Поскольку  ZX-WORD   получил
достаточно широкое распростране-
ние, выскажу свои мысли  о  том,
что можно добавить к имеющимся в
версии 2.5 функциям.
    - Ввести переключаемый  зна-
когенератор с матрицами 4х8, 6х8
и,  может,  даже  8х8  пикселов.
Постоянно пользоваться  матрицей
4х8 не очень  удобно.  Некоторые
знаки сливаются и плохо различи-
мы, из-за чего возрастает  коли-
чество опечаток.
    - Ввести отключаемые  режимы
автопереноса и  автоформатирова-
ния. То есть, если  не  нажимать
"ENTER", то при выходе  вводимо-
го слова за правую границу  сло-
во переносится на начало следую-
щей строки, а предыдущая  форма-
тируется в соответствии с  уста-
новленными границами. При  нажа-
тии "ENTER" курсор переносится в
позицию красной строки.  Кстати,
в  первых  версиях  ZX-WORD  при
форматировании текста слова  до-
вольно точно делились на  слоги.
В последних версиях  этого  нет.
Не мешало бы возобновить.
    - Модифицировать   процедуру
экранной печати  таким  образом,
чтобы вместо отображения  после-
довательностей  управляющих  ко-
дов включения и выключения двой-
ной ширины знаков  EPSON-совмес-
тимого принтера  изменялась  ши-
рина символов, печатаемых на эк-
ране. Наглядность текста  значи-
тельно увеличится. Пользователи,
имеющие принтеры, не совместимые
с  EPSON, могут  преобразовывать
эти управляющие последовательно-
сти в своих драйверах.
    Естественно, процедура  фор-
матирования также должна  учиты-
вать ширину символов.
    Для того, чтобы меньше засо-
рять текст управляющими  кодами,
можно не печатать на экране ESC-
последовательности   жирного   и
курсивного шрифтов, а для их ин-
дикации  использовать  изменение
цвета фона. При  матрице  6х8  и
8х8 эти шрифты вполне можно сге-
нерировать.
    - Ввести команду  выравнива-
ния  строки  без  форматирования
последующего текста.
    - В  редакторе  "ZX/IBM EDI-
TOR" (Олег  Хохлов)  в  информа-
ционной  строке  выводится   код
символа, на котором  стоит  кур-
сор.  Довольно  удобно, особенно
для анализа  последовательностей
управляющих кодов.
    - Снять ограничения на  раз-
мер текста. Для этого ввод и ре-
дактирование текста осуществлять
в буфере объемом 16К для компью-
тера с объемом памяти  48К  и  5
страниц по 16К при памяти  128К.
Хотя реально его размер при заг-
рузке текста  будет  меньше, так
как  нужно  предусмотреть  место
для вставки текста при  редакти-
ровании.  При  этом  на  кодовый
блок редактора  остается  память
от #6000 до #BFFF. При  заполне-
нии буфера редактирования  выда-
вать  предупредительное  сообще-
ние, после которого пользователь
должен установить курсор в стро-
ку, начиная с которой текст дол-
жен остаться  в  памяти.  Текст,
от начала буфера  до  предыдущей
строки включительно, записывает-
ся во временный файл  на  диске,
оставшаяся часть текста  перено-
сится в начало буфера, и на  ос-
вободившееся место  подгружается
следующая порция  текста.  Таким
образом, на диске создается  се-
мейство файлов размером 255 сек-
торов (кроме последнего). Для их
идентификации  можно   использо-
вать два байта заголовка  файла,
в которых хранится адрес загруз-
ки, не имеющий смысла  в  данном
случае. Один байт  выделить  для
расширенной  спецификации   типа
файла:  временный  файл, исполь-
зуемый  для  записи;  постоянный
файл, созданный в предыдущем се-
ансе работы, с которого произво-
дится  чтение;  резервная  копия
текста (.BAK файлы  на  IBM-PC).
Второй байт использовать для но-
мера файла. При выполнении  опе-
рации  записи  файла   резервные
файлы удаляются, постоянные фай-
лы  переименовываются  в  резер-
вные, временные - в постоянные.
    - Ввести режим  автоматичес-
кой нумерации страниц при  печа-
ти на принтере  заданного  коли-
чества строк или после кода  пе-
ревода  формата,  который  имеет
смысл передавать принтеру.
    - Ввести режим  качественной
печати  в   графическом   режиме
принтера с использованием загру-
жаемого набора символов.
    - Для  увеличения   скорости
форматирования   можно  изменить
способ расположения текста в па-
мяти. Ввести фиксированную  дли-
ну строки, задавамую пользовате-
лем. В первым байте  записывает-
ся рассчитанная фактическая дли-
на, затем текст  строки.  Завер-
шающие строку  коды  #0D, #0A  в
памяти  не  хранятся.   Выделить
служебный  блок  длиной  в  один
сектор, в котором записывать за-
данную пользователем  максималь-
ную длину строки и все  изменяе-
мые параметры редактора  на  мо-
мент записи.
    Процедура форматирования  по
фактической длине строк выделен-
ного блока и параметрам формати-
рования должна  определять  ожи-
даемое уменьшение  или  увеличе-
ние количества строк. При умень-
шении  количества  строк  особых
проблем  не  возникнет.  В  про-
цессе  форматирования  возникнет
группа пустых строк нулевой дли-
ны, которые нужно будет удалить,
переместив  оставшийся  текст  к
концу отформатированного  блока.
При увеличении количества  строк
нужно будет предварительно  соз-
дать группу пустых  строк  перед
началом  форматируемого   блока,
переместив участок текста от на-
чала выделенного блока  до конца
загруженной части в конец буфера
радактирования.