Системные программы для ZX Spectrum 1993 г.

Текстовый редактор Tasword Two - форматирование текста. Бейсик-меню. Печать. Перечень команд редактора Tasword.


После редактирования обычно бывает необходимо отформати-
ровать текст.

Текст в строке можно разместить несколькими способами:

• растянуть от правой до левой границ за счет вставки дополни-
тельных пробелов между словами (CS/SS+J);

• отцентрировать, предварительно убрав все лишние пробелы
(SS/W);

• сжать строку, убрав лишние пробелы, за исключением пробе-
лов, стоящих в начале строки, которые рассматриваются как
абзацный отступ (CS/SS+H).

Форматирование по одной строке — довольно утомительное за-
нятие, и поэтому в любом мало-мальски приличном текстовом
редакторе существуют команды (или хотя бы одна команда) форма-
тирования абзацев. При форматировании Tasword считает абзацем
фрагмент текста, начинающийся со строки, в которой находится
курсор, и заканчивающийся строкой, после которой расположена
пустая строка или строка с абзацным отступом.

Форматирование абзаца запускается клавишами SS/D. Резуль-
тат зависит от текущего режима редактора. Естественно, что выпол-
нять эту команду имеет смысл лишь при включенных режимах
переноса и выравнивания.

До начала форматирования необходимо убедиться, что текст не
выходит за установленные левую и правую границы, иначе там он
и останется, то есть не будет вставлен в абзац.

Для каждого абзаца допустимо устанавливать собственные гра-
ницы, выделяя таким образом различные фрагменты текста или
освобождая место для рисунков.

Часть программы Tasword, относящаяся к интерфейсу вво-
да/вывода, написана на Бейсике, что позволяет легко адаптировать
ее к компьютерам с различной архитектурой. Внесение изменений
в бейсик-программу доступно даже неопытным программистам и,
как правило, редко приводит к непредсказуемым результатам.
Легкость модификации бейсик-программы сыграла и отрицатель-
ную роль, способствуя появлению бесчисленных версий с самыми
различными пользовательскими интерфейсами. Поэтому описы-
вать бейсик-меню достаточно сложно, и мы рассмотрим лишь
наиболее распространенный вариант его построения.

сохранение текста на ленте или диске.

загрузка текста в редактор с ленты или
диска. Текст, находящийся к этому мо-
менту в памяти, уничтожается.

подгрузка к тексту в памяти текста с
магнитного носителя. Текст с внешнего
носителя добавляется в конец текста, находящегося в памяти.

печать текста на принтере.

возврат в режим редактирования.

вход в интерпретатор Бейсика без стира-
ния программы.

Вызов функций меню производится нажатием клавиш, указан-
ных в начале каждого пункта. (В оригинальной версии Tasword для
подтверждения выбора функции нужно нажать клавишу Enter, а
для отмены — С).

Кроме этих основных функций, в зависимости от версии (лен-
точкая или дисковая) и применяемого метода русификации про-
граммы, в бейсик-меню могут быть и дополнительные пункты:

вывод каталога текущего диска.

вывод страницы помощи (для англо-рус-
ской версии).

В фирменной версии Tasword был предусмотрен вывод текста
на ZX-Printer. Поскольку в нашей стране ZX-Printer встречается
крайне редко, зарезервированные для вывода на это устройство
комбинации клавиш (CS/SS+P, CS/SS+L, CS/SS+K) не используются.
Для работы с более распространенными типами принтеров были
разработаны версии, где вывод текста на печать производился из
бейсик-меню редактора с помощью подгружаемых драйверов. По-
этому особое внимание при выборе версии Tasword нужно обра-
щать на соответствие параметров вашего компьютера и принтера
драйверу, «зашитому» в редактор.

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

• текст в редакторе должен храниться в виде массива строк с
фиксированной длиной в 64 байта (символа);

• в конце строки отсутствуют разделители (CR и LF), поэтому
для сохранения форматирования текста при печати раздели-
тели должны генерироваться драйвером после передачи каж-
дой из групп из 64 символов;

• кодировка русских букв в большинстве версий не совпадает с
принятой в принтерах, а следовательно, необходима перекоди-
ровка символов;

• разбиение текста на страницы в редакторе отсутствует. Эта
задача возлагается либо на принтер, либо на драйвер.

Одной из серьезных проблем, возникающих у пользователей на
начальном этапе работы с Tasword, является проблема определения
версии (а следовательно, и возможностей) программы. Как мы уже
отмечали, для большинства отечественных пользователей интерес
представляют три «базовые» версии Tasword.

Версия предназначена для работы с текстами с использованием
латинских символов.

При запуске выводит строку статуса на английском языке; при
нажатии клавиш CS/1 (Edit) появляется страница помощи (Help) на
английском языке.

В этой версии латинский знакогенератор частично или пол-
ностью заменен на русский, что позволяет работать с кириллицей.
В одном из вариантов строчные латинские символы заменены на
заглавные русские. Другой вариант позволяет использовать и
строчные и заглавные русские буквы (но без латинских).

Строка статуса выводится на русском языке, а при нажатии
клавиш CS/1 (Edit) появляется Help на русском языке. При перехо-
де из режима вывода 64 символов в режим вывода 32 символов,
русские буквы заменяются латинскими, что чрезвычайно не-
удобно.

Наиболее удачна русифицированная версия, позволяющая ра-
ботать одновременно с русским и латинским алфавитом в любом
регистре (заглавные и строчные). Эту версию можно узнать по
следующим признакам:

Поскольку изменение бейсик-части Tasword не вызывает особых
сложностей, в этом разделе мы обратим особое внимание на моди-
фикацию кодовой части программы. Модификация кодовой части
позволяет изменить цветовую палитру экрана редактора, знакоге-
нератор и страницу помощи, а также добавить некоторые полезные
функции.

Для модификации Tasword загрузите его и выйдите в Бейсик.
После внесения необходимых изменений запишите на ленту (диск)
полученную версию программы.

Знакогенератор для б4-символьного формата вывода находится
в кодовой части Tasword с адреса 61184 и занимает 768 байт. Для
модификации загрузите в память отдельно кодовую часть Tasword,
а затем сохраните знакогенератор на ленте командой

SAVE "UDG"CODE 61184,768

или на диске командой

RANDOMIZE USR 15619: REM: SAVE "UDG"CODE 61184,768.

Полученный таким образом файл можно модифицировать в
любой программе, позволяющей редактировать шрифты (напри-
мер, в The Artist II). Для использования модифицированного зна-
когенератора в редакторе вновь загрузите в память кодовую часть
Tasword и выполните для диска команду

LOAD "UDGmod"CODE 61184,768

или для ленты команду

RANDOMIZE USR 15619: REM: LOAD "UDGmod"CODE 61184,768

— где UDGmod — имя модифицированного знакогенератора. После
этого запишите полученную кодовую часть на диск или ленту.

Изменение знакогенератора в этом случае касается только 64-
символьного режима и не изменяет графические символы и сим-
волы 32-символьного режима (возможна модификация только 16
символов, расположенных по адресам 60926...61055). Полное из-
менение знакогенератора для 64-символьного и 32-символьного
режимов требует значительной модификации программы и в дан-
ном описании не рассматривается.

• страница подсказки (Help) либо отсутствует, либо вызывается
из бейсик-меню.

В режиме вывода 32 символов в строке установка необходимых
цветов может быть произведена из Бейсика с использованием
команд INK и PAPER. Допускается использование цветов фона с
кодами 1, 3, 5, 7, при этом бордюр будет иметь цвет с кодом на
единицу меньше. Для изменения цветов в режиме 64-символьного
вывода выполните операторы:

РОКЕ 58512,54
РОКЕ 58513,С
РОКЕ 58521,54
POKE 58522.С

- где C=8x+.

Например, для вывода белых символов на голубом фоне устано-
вите С=8х1+7=15. Для изменения цвета рамки выполните:

РОКЕ 58508,54
РОКЕ 58509,С

- где С рассчитывается по тому же правилу, что и для основного
экрана.

Цвет бордюра изменяется записью значений от 1 до 7 в ячейку
64516. Для изменения цвета бордюра в режиме 32 символа в
строке следует модифицировать содержимое ячейки 64516. При
этом не затрагивается цвет двух нижних строк. За его изменение
отвечают ячейка 64570 (для нижней строки) и ячейка 59993 (Для
второй строки снизу). Учтите, что старшая часть байта в этом
случае отвечает за INK, а младшая — за PAPER.

Изменения цвета, выполненные модификацией кодовой части
редактора, сохраняются при записи программы на диск (ленту).

Страница помощи редактора (Help) представляет собой тексто-
вый фрагмент в формате Tasword. Чтобы изменить Не1р-страницу,
нужно для начала скопировать ее в область памяти, в которой
размещается редактируемый текст. Для этого выполните следую-
щие операторы:

LET S=FN Р(64949): FOR N=0 ТО 1407:
POKE(S+N)fPEEK(54784+N): NEXT N

После запуска редактора на экран будет выведен текст страницы
помощи, и вы сможете его отредактировать. После внесения изме-
нений, для занесения исправленной версии Help, в программу
необходимо снова выйти в Бейсик и выполнить операторы:

LET S=FN Р(64949): FOR N=0 ТО 1407:
POKE(54784+N),PEEK(S+N): NEXT N

Для редактирования второй страницы помощи (клавиши в ре-
жиме Extend Mode) выполните те же операции, заменив адрес
54784 на 56320.

Одним из наиболее существенных факторов, влияющих на ра-
боту с текстовым редактором, является правильная настройка кла-
виатуры.

Характеристики клавиатуры меняются при помощи системных
переменных ZX Spectrum (см. [1]). Переменная REPDEL, располо-
женная по адресу 23561, определяет время, в течение которого
клавиша должна быть нажата для того, чтобы начался автоповтор,
то есть выдача непрерывной последовательности символов. Ее
нормальное значение — 35, но при использовании клавиатур низ-
кого качества для предотвращения дребезга (выдачи нескольких
символов при однократном нажатии клавиши) содержимое этой
ячейки стоит увеличить.

Другой полезной модификацией можно считать изменение зву-
ка, генерируемого программой при нажатии на клавиши. Для
изменения частоты и длительности звукового сигнала при нажатии
клавиш необходимо модифицировать ячейки с адресами 23609 и
59161/59162.

3. Программа перекодировки текстов_

Те, кто занимался обменом текстов в формате Tasword или
использовал различные вспомогательные программы, несомненно
встречался с ситуацией, когда на экране вместо осмысленной
информации появляется полная белиберда. Подобная ситуация
возникает, когда кодировки символов в тексте и в редакторе не
совпадают.

Для того чтобы прочитать текст с другой кодировкой, можно
попробовать изменить знакогенератор (о том, как это сделать,
читайте в Приложении 2). Однако в этом случае изменяется назна-
чение клавиш, что затрудняет работу.

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

что может быть быстро набрана и легко настроена на любую коди-
ровку.

10 CLEAR 29999

11 DIM С$(256)

12 RANDOMIZE USR 15619: REM: LOAD"DATA" DATA C$()
15 INPUT "Source file name: ",A$

20 RANDOMIZE USR 15619: REM: LOAD A$ CODE 30000
30 FOR 1=30000 TO 30000+LEN
40 POKE l,CHR(C$(PEEK I)); NEXT I
50 INPUT "Target file name",A$

60 RANDOMIZE USR 15619: REM: SAVE A$ CODE 30000.LEN

Перед использованием этой программы необходимо создать
файл перекодировки "DATA". В этом файле должна содержаться
таблица соответствия кодов определенным символам, причем сим-
волы расположены в порядке возрастания кодов в программе, в
которой создавался исходный текст. Создать файл "DATA" можно,
например, при помощи следующей программы:

10 DIM С$(256)
20 FOR 1=1 ТО 256
30 READ C$(l): NEXT I

40 RANDOMIZE USR 15619: REM: SAVE"DATA" DATA C$()
50 DATA ..., ,"A","B","C","D", ...

Вместо LEN в программу следует вставить максимальную длину
файла, которую воспринимает редактор. Эта программа может
быть использована для любых кодировок: в нее нужно подгружать
только различные файлы DATA.

Клавиши

Действие

Стр.

Переключение режимов

CS/1

переключение регистра РУС/ЛАТ

42

CS/2

переключение регистра заглавные/строчные буквы

42

CS/SS+E

переключение режима выравнивания

43

CS/SS+W

переключение режима переноса

43

CS/SS+I

переключение режима вставки

45

CS/SS+C

переключение режима отображения (32/64 символа)

47

Перемещение курсора

CS/3

перемещение курсора на слово влево

44

Клавиши

Действие

Стр.

CS/4

перемещение курсора на слово вправо

44

CS/5

перемещение курсора влево

44

CS/6

перемещение курсора вниз

44

CS/7

перемещение курсора вверх

44

CS/8

перемещение курсора вправо

44

SS/U

перемещение курсора в конец текста

44

SS/I

перемещение курсора в начало текста

44

SS/F

скроллинг текста вниз на строку

44

SS/G

скроллинг текста вверх на строку

44

CS/SS+F

скроллинг текста на страницу вперед

44

CS/SS+G

скроллинг текста на страницу назад

44

CS/O

удаление символа

45

Операции со строками

SS/S

удаление строки

45

SS/Y

вставка строки

44

CS/SS+H

сжатие строки

44

SS/Q

сдвиг текста в строке влево от курсора

44

SS/E

сдвиг текста в строке вправо от курсора

44

Операции форматирования

CS/SS+A

установка левой границы по курсору

43

CS/SS+D

установка правой границы по курсору

43

CS/SS+S

установка границ по умолчанию (0..63)

43

SS/W

центрирование строки

47

CS/SS+J

выравнивание строки

47

SS/D

форматирование абзаца

47

Операции с блоками текста

CS/SS+B

маркировка начала блока

46

CS/SS+V

маркировка конца № ока

46

CS/SS+M

перенос блока

46

CS/SS+N

копирование блока

46

Прочие команды

CS/SS+P

печать текста

49

CS/SS+X

удаление всего текста

45

SS/A

выход в бейсик-меню

48




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Info - Каталог системных, прикладных и обучающих программ фирмы "Kоmel".
Интервью - Интервью с Московским музыкантом и кодером - KSA.
Мысли о сцене - GAMERZ MUST DIE! Наезд на геймеров.
Открытые письма Nemo №5.6
Об авторах - Авторы журнала.

В этот день...   24 ноября