Системные программы для «ZX-Spectrum» 1992 г.

TASWORD 2 - описание текстового редактора обеспечивающего два режима печати: 64 символа в строке и 32 символа в строке.


TASWORD 2

1. ВВЕДЕНИЕ

TASWORD II обеспечивает два режима печати: 64 символа в строке и 32
символа в строке. Режим печати заглавных букв устанавливается путем нажатия
CS + буква. Символы !@#$%&*() + ?-<>,.;:>< выводятся через SS, остальные
выводятся через SS в режиме.

При нажатии одного из SHIFT и соответствующей клавиши выполняются
определенные действия: EDIT — вывод HELP PAGE; CAPS LOCK — печать
заглавных букв и т.д.

Если вы работаете с HELP PAGE, то при нажатии CS + SS вы получите
возможность изучить функции управляющих клавиш расширенного режима.

Расширенный режим устанавливается нажатием CS + SS. При этом нижняя
часть экрана начинает мигать.

Если строка не умещается в установленные границы, TASWORD II переносит
последнее слово в следующую строку.

При выравнивании текста строка дополняется пробелами так, чтобы последняя
буква последнего слова строки находилась на правой границе. При этом курсор
увеличивается. При таком виде курсора TASWORD II воспринимает введенный
символ как часть последнего слова в предыдущей строке и, следовательно,
переносит это слово (см. "выравнивание"). Т.о. если слово в последней строке
закончено, при высоком курсоре вы должны напечатать пробел.

Всегда печатайте пробел в конце предложения после любого знака препинания.

Всегда печатайте новый абзац с "красной" строки или вставляйте между
абзацами пустые строки. Можно делать и то и другое.

TASWORD II TUTOR является текстовым файлом, предназначенным для
обучения работе с TASWORD II.

2. УПРАВЛЯЮЩИЕ КЛАВИШИ.

Ниже описаны управляющие клавиши, работающие в нормальном режиме, т.е.
тогда, когда командные строки не мигают.

EDIT (CS+1) —HELP PAGE.

При индикации HELP PAGE можно вывести информацию о режиме
расширения нажатием CS + SS.

ENTER — выход из HELP'A.

CAPS LOCK (CS +2) —режим больших букв вкл./ выкл.;

TRUE VIDEO (CS + 3) — курсор в конец предыдущего слова;

INV. VIDЕО (CS + 4) — курсор в начало следующего слова;

GRAPHICA (CS + 9) — режим печати графических символов;

DELETE(CS + 0) — удаление символа под которым находится курсор;

^ (SS + Q) — сдвиг текста под курсором влево;

^ (SS + Е) — сдвиг текста под курсором вправо;

< > (SS + W) — центровка строки;

AND (SS + Y) —вставка строки, слова, символа. Для вставки пустой строки
необходимо позиционировать курсор в начало строки, перед которой вставляется
строка, и нажать AND. Очевидно, что при вставке портится выравнивание.

OR (SS + U) —курсор в конец текста;

AT (SS + I) — курсор в начало текста;

STOP (SS + A) — выход в меню. При выходе в BASIC, в редактор можно
вернуться нажав RUN и ENTER;

NOT (SS + S) — удаление строки;

STEP (SS + D) —выравнивание текста от строки, содержащей курсор, до конца
абзаца.

Конец абзаца определяется в пределах границ. Текст выравнивается только
тогда, когда включен RIGHT JASTIFY и не выравнивается, когда R. JUSTIFY
выключено;

TO (SS+1) — сдвиг текста вниз на одну строку;

THEN (SS+1) — сдвиг текста вверх на одну строку;

ENTER — переход на новую строку или вставка пустой строки, если включен
режим "вставки".

УПРАВЛЯЮЩИЕ КЛАВИШИ РАСШИРЕННОГО РЕЖИМА

Расширенный режим вкл./выкл нажатием CS + SS. При включении
расширенного режима командные строки мигают.

EDIT (CS+1) —HELP PAGE.

ARROWS — управление курсором.

W — перенос слова вкл./выкл. в командной строке указывается состояние
"W/W" ON/OFF.

Е — выравнивание справа.

R — замена/поиск текста от курсора до конца текста (для поиска/замены от
начала текста следует использовать AT перед входом в расширенный режим). В
режиме "R" TASWORD II запрашивает слово для поиска или замены (пробелы при
наборе слова не допускаются). После этого нажимают "ENTER" и TASWORD II
находит в тексте набранное вами слово. Можно продолжить поиск, нажав еще раз
"ENTER". Для замены найденного слова необходимо набрать требуемый текст
(допускаются пробелы) и нажать "ENTER".TASWORD II будет переформатировать
текст в соответствии с режимом R. JUSTIFY.

I — режим вставки вкл./выкл.

P — печать текста на ZX-принтере. Для вывода — Q.

А — установка левой границы. По нажатию "А" левая граница устанавливается
равной позиции курсора минус 1. Граница обозначается другим цветом.

S — установка нормальных границ.

D — установка правой границы (см. "А").

F — прокрутка на 22 строки вниз.

G — прокрутка на 22 строки вверх.

J — выравнивание строки, содержащей курсор.

H —анти-выравнивание за счет удаления лишних пробелов.

L — маркер вкл. печати букв с удвоенной высотой. Маркер представляет собой
специальную строку, содержащую сообщение "PRINT AT DOUBLE HEIGHT ON",
которое печатается перед требуемой строкой. Для удаления маркера можно
использовать "NOT" в нормальном режиме. Перед включением этого режима
курсор должен находится в начале строки.

K - вставка сообщения "PRINT DOUBLE HEIGHT OFF". Курсор должен
находиться в начале строки.

C — изменение "окна". Служит для открытия/закрытия 32-х символьного

II II 1 V 1—г II II

окна в текстовом файле. При закрытом окне

длина текстовой строки равна 64 символа. Когда "окно" открыто изменяется
цвет BORDER, и на экране появляется часть текстового файла шириной 32 символа
в строке. "Окно" можно двигать с помощью ARROWS. Боковой сдвиг происходит
автоматически при вводе текста.

B — маркер начала блока. Блок текста может быть переслан или скопирован в
любую часть текста. Для удаления маркера можно использовать "NOT" в
нормальном режиме. Маркером начала блока является фигурная скобка (.

V — маркер конца блока.

M — пересылка блока. Блок вставляется перед строкой, содержащей курсор.

N — копирование блока.

3. ПЕЧАТЬ ТЕКСТА

Перед печатью текста необходимо передать в ZX-принтер управляющие коды.
Для этого необходимо выйти в меню по STOP в нормальном режиме и выбрать
"DEFINE GRAPHICS/PRINTER" нажатием "G".

Графические символы интерпретируются TASWORD II как последовательность
управляющих кодов для принтера. TASWORD II поставляется с набором
графических символов, указанных в HELP.

После входа в "DEFINE GRAPHICS/PRINTER" на экране появится список кодов
графических символов ZX-SPECTRUM и список назначенных им управляющих
кодов принтера. Для переназначения необходимо исправить соответствующий
графический код и нажать "ENTER".

Если вы нажали "ENTER" без набора кода, TASWORD II запросит у вас:

1. Управляющий код, который использует ваш интерфейс. Введите
соответствующее число (27 для HILDERBAY, 5 для EUROELECTRONICS).

2. Управляющий код, который использует ваш принтер для протяжки листа и
возврата каретки. Если принтер имеет одинаковые коды и для того, и для другого,
введите 0 вместо второго кода.

3. Левая граница.

Ответив на эти вопросы, вы получите собственную версию TASWORD II,
которую можно сохранить на ленте.

4. КОПИРОВАНИЕ TASWORDII

Для записи файла необходимо нажать STOP (SS + A) в нормальном режиме
работы. Далее выбрать в меню "SAVE TEXT FILE" нажатием "S". На запрос имени
файла вы должны набрать имя файла (не более 10 символов) и нажать "ENTER".
После записи вашего файла TASWORD II предоставляет возможность его
верификации. При появлении сообщения "ТAРЕ LOADING ERROR" необходимо
нажать R для RUN и ENTER.

При загрузке нового файла с ленты, файл, находящийся в данный момент в
TASWORD II стирается. Для загрузки файла необходимо в меню ( по STOP) выбрать
"LOAD TEXT FILE" нажатием "J", далее набрать имя файла и "ENTER".

В TASWORD II существует возможность догружать текст с ленты, который
располагается после уже существующего в TASWORD П. Для этого необходимо в
меню выбрать "М". При этом необходимо помнить, что максимальная длина текста
в TASWORD II 320 строк. Если это условие не соблюдено, вы окажетесь в BASIC.
Для повторного запуска TASWORD II наберите "TASWORD II" + "RUN" +
"ENTER".

5. ИЗМЕНЕНИЕ ЗНАКОГЕНЕРАТОРА

Таблица 64-х символьного знакогенератора находится в ОЗУ по адресам с 61184

DEC по 62079 DEC, а базовым адресом является 60928 DEC. Каждый символ
определяется 8-ю байтами обычным способом. Четыре старших бита каждого байта
должны быть равны 0.

За исключением графических символов, 32-х символьный знакогенератор не
может быть изменен. 16 символов 32-х символьного знакогенератора хранятся по
адресам 60926-61055 с базовым адресом 59904.

Для SINCLAIR ZX INTERFACE 1 необходимо дописать программу на BASIC'E:

27 9 FORMAT "B"; X: OPEN #3; "B"

281 CLOSE #3

где х-скорость в кодах.

Интерфейсные коды соответствуют TASMAN INTERFACE (CODE 1:0; CODE
2:0; CODE 3:0; CODE 4:64836). Для запуска — RUN 281.

6. ТАЙНИКИ TASWORDII

TASWORD II (далее "TW") — скорее всего популярный текстовой процессор
для SPECTRUM. Одно из его впечатляющих достоинств — легкость, с которой его
можно изменять. Приведенные ниже изменения относятся ко всем версиям
TASWORD, работают с программой TASPRINT, микродрайвом и дисководом.
В данном писании приняты следующие обозначения:

Режим интерпретации — обозначает работу в режиме интерпретатора
Бейсика, когда команды вводятся непосредственно с клавиатуры и вызывают ответ
"ОК";

Бейсик — часть TW, написанная на Бейсике, вызываемая нажатием "STOP";
TASWORD — кодовая часть TW, вызываемая нажатием "В" в меню бейсик-
части или командой RUN в режиме интерпретации.

6.1. ИЗМЕНЕНИЕ ЦВЕТОВ

Если вы уже экспериментировали с TW, Вы могли узнать, что цвета INK и
PAPER в режиме 32 символов можно изменить простыми командами в режиме
интерпретации. Есть ограничение: цвет PAPER может быть только 1,3,5 или 7, а
рамка будет иметь значение, меньшее на 1. Чтобы изменить цвета в режиме 64
символов, введите:
РОКЕ 58512, 54
РОКЕ 58513, С
РОКЕ 58521, 54
РОКЕ 58522, С
где C = 8 * PAPER + INK.

Например для голубого фона с белыми символами С=(8 *1) +7=15.
Чтобы изменить цвет рамки введите:

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

где С вычисляется по тому же правилу.
Чтобы изменить BORDER введите:
РОКЕ 64516, В
где В — число от 0 до 7.

Чтобы изменить BORDER в режиме 32 символов, надо ввести:

РОКЕ 60641, В.

Эти команды не изменят цвет двух нижних строк. Его меняют команды:

РОКЕ 64570, С

— для нижней строки

РОКЕ 59993, С

— для второй снизу строки (учтите, что для этой строки в старшей части байта
записывается INK, а в младшей — PAPER,^. для приведенных выше цветов
6 = 7*8+1=57).

При возврате в Бейсик INK и PAPER восстанавливаются на те, что были при
запуске TW, a BORDER — нет. Чтобы восстановить и его тоже добавьте команду
BORDER в строке 20 перед CLS.

Поскольку РОКЕ меняют ячейки внутри кодов TW, они сохраняются при
сохранении TW.

6.2. ПОДСЧЕТ СТРОК, СЛОВ И СИМВОЛОВ

При возврате из TW в STOP-меню программа выходит на строку 20. Для
возврата в TW из Бейсика существует 2 пути: со строки 10 — нормальный способ, и
со строки 3060 — в процессе поиска и замены. Это можно учесть при подсчете
количества строк или символов в тексте. Для подсчета строк введите:

79 PRINT 0; AT 1,0; А/64; "LINES USED - "; (PEEK 64150 +
2 5 6*PEEK 64151 + 22) - A/64; "LINES FREE "
A для подсчета символов:

7 9 PRINT 0; AT 1,0; CH; "CHARACTERS USED -";
((PEEK 64150 + 256 * PEEK 64151 + 22) *64) -CH; "FREE"
Измените оператор USR в строках 10 и 3060 на LET CH= USR... (далее остаток
строки) и добавьте LET A = CH в строке 20 после CLS.

Самый быстрый способ сосчитать слова в тексте — добавить короткую
программу в машинных кодах.

ЛИСТИНГ 1. КОДЫ ДЛЯ ПОДСЧЕТА СЛОВ

10 LET CLR=31940: LET T=0: FOR N=1 ТО 59:

READ A: POKE (CLR+N),A: LET T=T+A: NEXT N:

IF K>64 0 5 THEN PRINT "ERROR": STOP

2 0 SAVE "WORD" CODE CLR+1, 59

97 REM *****************

9 8 REM WORD DATA

97 REM *****************

100 DATA 42, 181, 253, 221, 42, 11, 92, 221, 94,

4, 221, 86, 5, 25, 235, 33, 0, 0, 1, 0, 64,
27, 26, 254, 32, 40, 24
110 DATA 254, 128, 48, 20

120 DATA 14, 1, 16, 242, 9, 58, 182, 253, 186,

32, 232, 58, 181, 253, 187, 32, 226, 229, 193,
201, 17, 185, 40, 234, 35, 13, 24, 230
Введите эту программу, запустите и сохраните полученный код на кассете.
Загрузите TW и добавьте следующие строки к его бейсик-части:

ЛИСТИНГ 2. ДОБАВКИ ДЛЯ ПОДСЧЕТА СЛОВ.

1 DEF FN W (X)=USR 31941
174 IF B=119 THEN GO TO 4500

4500 CLS: GOSUB 4000: PRINT AT 11,5; "NUMBER OF WORDS=";: PRINT
FN W(A)

4510 PRINT 0; "PRESS ANY KEY TO CONTINUE": PAUSE 1: PAUSE 0: GO
TO 20

ЛИСТИНГ 3. ТЕКСТ ПРОГРАММЫ, СООТВЕТСТВУЮЩИЙ ЛИСТИНГУ 1.

HL= счетчик слов

DE = позиция в файле

В = 64 (символов в строке)

C = FLAG (0 = про6ел, 1==не пробел)

ЕА6 0 10 0 ORG 60000

FDB5 110 FILEST EQU 64949

5SC0B 120 DEFADD EQU 23563

ЕА60 2AB5FD 130 INIT LD HL, (FILEST)

ЕА63 DD2A0B5C 140 LD IX, (DEFADD)

ЕА67 DD5E04 150 LD E,(IX+4)

EA6A DD5605 160 LD D, (IX+5)

EA6D 19 17 0 ADD HL,DE

EA6E EB 180 EX DE,HL

EA6F 210000 190 LD HL,0

EA72 010040 200 NXLINE LD ВС,64*256+0

EA7 5 1B 210 NXCHAR DEC DE

EA7 6 1A 22 0 LD A, (DE)

EA77 FE20 230 CP 32

EA79 2818 240 JR Z,FNDSPC

EA7B FE80 250 CP 128

EA7D 3 014 2 60 JR NC,FNDSPC

EA7F OE01 270 LD C,1

EA81 10F2 2 80 LINEND DJNZ NXCHAR

EA83 0 9 290 ADD HL,BC

EA84 3AB6FD 300 LD A, (FILEST+1)

EA87 BA 310 CP D

EA88 2 0E8 32 0 JR NZ, NXLINE

EA8A 3AB5FD 330 LD A, (FILEST)

EA8D BB 340 CP E

EA8E 2 0E2 3 50 JR NZ, NXLINE

EA9 0 E5 3 60 PUSH HL

EA91 C1 37 0 POP ВС

EA92 C9 380 RET

EA93 AF 390 FNDSPC XOR A

EA94 B9 400 CP С

EA9 5 2 8EA 410 JR Z,LINEND

EA97 23 42 0 INC HL

EA98 0D 430 DEC С

EA99 18E6 440 JR LINEND

Вам также придется заменить адрес в операторе CLEAR (строка 15) на 34940 и
добавить еще один оператор LOAD CODE"". Для 705 SAVE "WORD" CODE 31941,59
Если вы собираетесь загружать TW только с магнитофона, введите:
705 РОКЕ 23736,181: SAVE "WORD" CODE 31941,59: POKE 23736,181
Это подавит запросы 'PRESS ANY KEY' при сохранении трех частей TW, однако
приведет к ошибке с микродрайвом или диском.

Когда вы это сделаете, загрузите коды, полученные выполнением листинга 1 и
сохраните TW обычным способом.

Процедура получает адрес начала текста из специальной переменной TW и его
длину из служебной переменной Бейсика. Затем она просматривает текст,
подсчитывая слова, как последовательности символов, заканчивающихся
пробелом, а также слова в конце строки.

Считается, что пробелом является символ с кодом 32 или графический символ с
кодом 128 и более. Если вы не хотите включать эти графические символы, замените
четыре числа в строке 111 на нули. Если вы используете символ "ТИЛЬДА" (126) для
изменения шрифтов в программе TASPRINT, измените второе число в строке ПО
(это 128) на 126.

Метод вызова процедуры может оказаться новым для вас и базируется на
способе, которым SPECTRUM вызывает функции, определяемые пользователем и
передает им параметры. Когда вызывается функция, системная переменная
DEFADD содержит адрес блока определения этой функции. Если используется имя
параметра из одной буквы, байты 3..7 от начала блока содержат вещественный
параметр в форме пятибайтового числа. Если параметр целый (-32767..32767) — он
находится в байтах 4..5.

6.3. ИЗМЕНЕНИЕ СТРАНИЦ ПОМОЩИ.

Простейшим способом изменения страниц HELP является помещение их для
редактирования в текстовый файл. Введите в режиме директив:

LET S = FN P (64949) : FOR N=0 TO 1407: POKE (S+N), PEEK (54784):
NEXT N

Таким образом вы сможете их отредактировать (не меняя размера). Чтобы
переписать их на свое место, введите:

LET S = FN P( 64949): FOR N=0 TO 1407: POKE (54784+N), PEEK
(S+N): NEXT N

Чтобы проделать то же самое со страницей "EXTENDED MODE", замените
54784 на 56320 и проделайте те же действия.

6.4. КЛАВИАТУРА

Для обеспечения временных характеристик клавиатуры TW использует две
системные переменные. Переменная REPDEL по адресу 23561 содержит время, в
течение которого клавиша должна быть нажата, чтобы начался автоповтор.
Нормальное значение — 35, но его можно уменьшить примерно до 20 при
скоростной печати.

Полезной модификацией может оказаться изменение звука, генерируемого
при нажатии клавиши, поскольку шумно работающие клавиатуры часто заглушают
нормальный звук. Используется ПЗУ-процедура BEEPER, требующая параметры:
(частота*время) в регистре DE и длительность в регистре HL. TW заносит 0 в D,
значение переменной PIP (23069) — в Е (обычно 5, но устанавливается в 2 строкой
15). Значение HL хранится по адресу 59161...59162. Команда РОКЕ 59161,50 дает
более громкий звук.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Part 15 - Past, present and future.
AMIGA vs PC - О компьютере Амига 2000.
Вступление - содержание номера.
Marazm - Один день.
Сцена - Мультиматограф Х.

В этот день...   3 мая