При выполнении операций записи и загрузки помните, что имя
файла для ленты не может превышать 10 символов, а для диска 8,
также не допускается использовать пустое имя.
Для того чтобы оценить, поместится ли текст при загрузке в
редактор, в служебном экране индицируется объем свободной памя-
ти в килобайтах (3, рис. 20). Если свободно менее 1 килобайта, то
объем выдается в восьмых долях килобайта и сопровождается зна-
ком
Используя команду CS/SS+I (взять текст в буфер/вставить текст
из буфера), можно загрузить текстовый файл в середину находя-
щегося в редакторе текста. Для этого подведите курсор в нужное
место и выполните команду CS/SS+I. При этом все символы, нахо-
дящиеся за курсором, спрячутся в буфер. После этого можно
подгрузить текст с магнитофона или диска, а затем снова выпол-
нить команду CS/SS+I — фрагмент из буфера «допишется» в конец
текста.
Любые ошибки, связанные с операциями ввода/вывода, переда-
ют управление в Бейсик. Для возврата в редактор используйте
оператор GO ТО 3000.
Полезный совет — не записывайте текст на переполненный
диск, а также чаще сохраняйте текст во время работы. Для напоми-
нания о необходимости «сбросить» текст на ленту или диск в
программу введен таймер.
Подгрузить текст с ленты/диска. На запрос меню
From Tape[0] or disk[1 —4]: введите 0 для ленты, либо
номер дисковода (1...4, что соответствует дисководам А, В, С
и D). На запрос Filename: введите имя файла. При работе с
магнитофоном на экран будут выводиться имена всех встретив-
шихся на ленте файлов, пока не будет найден искомый. Если
файл найден, то он будет подгружен к концу уже находящегося
в редакторе текста. Если файл не помещается в памяти компью-
тера, то будет выдано сообщение SPACE! (для диска не выдается).
В любом случае загрузится только поместившаяся часть текста.
Если вы ошиблись, то можете в любой момент прервать загрузку
или запись, нажав SS/Q.
Сохранить текст на ленте/диске. На запросы меню
From line и to line введите номера начальной и конечной
строк текста, который вы хотите сохранить, или 1 и 9999 для
записи всего файла. Затем на запрос Tape[0] or diskfl—4]: введите
О для ленты, или номер дисковода (1...4). На запрос Filename:
введите имя файла, для ленты оно может состоять из 10 симво-
лов, для диска только из 8, пустое имя не допускается. Для ленты
выведется сообщение Tape-on/key!, запись начнется по нажатию
любой клавиши. Если на дискете файл с таким именем сущест-
вует, то он будет удален.
Показать каталог дискеты. В появившемся меню на
запрос Using unit/disk[1-4]: необходимо ввести номер
дисковода. Для возврата к редактируемому тексту нажмите лю-
бую клавишу.
Стереть файл с диска. На запрос меню From unit/disk[1 —
4]: введите номер дисковода, а на запрос Filename: —
имя удаляемого файла.
Установить таймер. В командной строке выведется
сообщение Time ##,##, где ## — время в мину-
тах. Первое число показывает установку таймера, а второе —
текущее значение. Для изменения установки нажмите любую
клавишу, а затем введите новое время от 0 до 250 (в минутах),
либо SS/Q для отмены. Ввод нуля выключает таймер.
Через указанное время раздается звуковой сигнал, сопровожда-
емый мигающей надписью Time в командной строке. Выключить
сигнал можно, нажав клавишу Т, после чего таймер автоматиче-
ски запустится снова.
TLW2 предоставляет большие возможности для печати текстов
непосредственно из редактора. Перед печатью необходимо устано-
вить некоторые параметры принтера. Сделать это нужно только один
раз — при запуске редактора.
Установить параметры печати, печатать текст. В коман-
дной строке выводится запрос [Revise/Print/Quit] ?, а в
верхних строках основного экрана — параметры печати. На-
жмите: клавишу R для их модификации, клавишу Р для перехода
в меню печати (см. команду CS/SS+P) или SS/Q для отмены. Если
выбрана модификация, то курсор устанавливается перед изме-
няемым параметром, а новое значение вводится в командной
строке по запросу Revision:. Если вы не хотите изменять это
значение, то просто нажмите Enter. Первым изменяется тип
принтера. Делается это последовательным нажатием клавиш R и
Enter. Возможны два варианта: ZX-Printer, тогда другие парамет-
ры менять не нужно, либо какой-нибудь другой принтер, для
работы с которым адаптирован ваш редактор. При этом после-
довательно изменяются: адрес процедуры инициализации драй-
вера принтера (output call ##### — менять не рекомендуется),
код символа возврата каретки (С/ret) — обычно 13 и код символа
перевода строки (L/feed) — обычно 10. Диапазон возможных
кодов от 1 до 24. Значения кодов приводятся в инструкции по
эксплуатации принтера. Если, например, принтер автоматиче-
ски переводит строку при получении кода возврата каретки, то
код перевода строки необходимо выключить — задать значе-
ние 0.
Вывести текст на принтер. В командной строке появля-
ется запрос [Revise/Print/Quit] ?, а в верхних строках
основного экрана — параметры печати. Если параметры удов-
летворяют, можно перейти к печати текста, нажав клавишу Р,
при этом в командной строке выводится номер печатаемой
копии. Печать начинается сразу, если выключена пауза (см.
ниже), либо после нажатия на Enter. Для модификации парамет-
ров печати нажмите клавишу R, при этом последовательно вво-
дите новые значения параметров. Если вы не хотите изменять
какое-либо значение, то просто нажмите Enter.
From line — номер строки начала печати, по умолчанию — 1 ;
to line — номер строки окончания печати, по умолчанию — по-
следняя строка текста;
Spacing — интервал между строками — целое число от 1 до 9.
Если необходим дробный интервал, то для настройки принте-
ра воспользуйтесь операторами управления печатью;
Copies — количество копий от 1 до 254, копии распечатываются
последовательно, одна за другой;
pause — параметр определяет наличие (on) или отсутствие (off)
паузы между печатью копий, для изменения введите сим-
вол R;
PCT's — параметр разрешает (on) или запрещает (off) вывод
операторов управления печатью на принтер, для изменения
введите символ R.
По умолчанию параметры настраиваются на печать одной копии
всего текста.
После ввода параметров для начала печати нажмите любую
клавишу.
В процессе печати возможны сбои в работе как самого редакто-
ра*, так и принтера, например, останов печати клавишей Break.
При этом управление передается интерпретатору Бейсика. Вер-
нуться в редактор можно двумя путями: выполнив оператор Бейси-
ка GO ТО 3000, при этом печать нужно будет начать снова; либо
выполнив оператор GO ТО 9999, в большинстве случаев при этом
печать будет продолжена с прерванного места.
При печати текста редактор может подсчитывать строки и пре-
рывать печать по достижению какого-либо их числа**. Для этого вы
должны объявить в Бейсике две переменные — е и п. Выйти в
Бейсик можно, выполнив команду CS/SS+B, а возвратиться обрат-
но — оператором GO ТО 3000. Переменная п является счетчиком
строк, а в е должно быть записано максимальное число строк на
странице. Когда п станет больше е, печать текста прервется и
управление будет передано на строку бейсик-программы с номе-
ром 8900. Здесь вы можете разместить оператор PAUSE 0, печать
номеров страниц или что-либо другое. Более подробно о механизме
вызова подпрограмм будет рассказано в следующем разделе.
Редактор позволяет во время печати несколько модифицировать
выводимый текст***. Одним из средств для этого является трансля-
ция символов.
Трансляция заключается в том, что при печати может быть
задана замена отдельных кодов символов другими. Таких кодов
может быть до восьми. Например, можно сделать так, чтобы все
символы' заменялись буквой ъ. В самом тексте при этом ничего не
изменится.
Подробнее о том, как задать трансляцию символов, рассказыва-
ется в разделе, посвященном служебной программе TLW2mDAT.
При наборе или редактировании в текст можно вставлять так
называемые операторы управления печатью, составляющие, пожа-
луй, одно из главных достоинств TLW2. Они обрабатываются толь-
ко во время вывода на принтер и являются очень мощным средст-
вом оформления «твердой копии» текста.
На экране дисплея операторы управления печатью индициру-
ются следующим образом: символ, перед которым стоит оператор,
инвертируется. Если же выключено изображение маркеров (ко-
манда CS/SS+V), то операторы вообще не видны. Но когда курсор
становится на оператор, в командной строке выводятся его пара-
метры. Операторы управления печатью — такая же часть текста,
как и символы (и также занимают* один байт памяти), их можно
удалять, копировать и т. п.
Существуют три вида операторов управления печатью: операто-
ры непосредственного управления принтером, бейсик-подпрог-
раммы и стринги. Они вставляются в текст с помощью команды:
Вставить в текст оператор управления печатью. На запрос в
командной строке PC Token: задайте один из трех видов
операторов управления:
• число из диапазона 1...24 введет в редактируемый текст один
из операторов непосредственного управления принтером;
• число из диапазона 90...99 указывает компьютеру, что в этом
месте при печати необходимо выполнить одну из 10 бейсик-
подпрограмм, расположенных в бейсик-блоке TLW2 соответст-
венно в строках с 9000 по 9900 с шагом в 100;
• символ от А до Z с последующим символом $ введет в редакти-
руемый текст одно из 26 возможных имен стрингов (символь-
ных бейсик-переменных).
Практически любой принтер имеет набор специальных управля-
ющих символов, которые не выводятся на печать, но позволяют
изменять режимы печати: устанавливать различные шрифты, из-
менять расстояние между строками, задавать количество строк на
странице и т. п. При печати из TLW2 вы можете использовать
практически все возможности принтера, включая в текст операто-
ры непосредственного управления принтером. Редактор позволяет
использовать 24 оператора. Просмотреть и, если необходимо, изме-
нить их возможно с помощью команды:
Просмотреть/изменить операторы непосредственного
управления принтером. На экран будет выведена таб-
лица (см. рис. 24), содержащая информацию о 24 операторах, а
внизу экрана появится текущее значение префикса (Prefix) —
кода, который будет передан на принтер непосредственно перед
кодами оператора. Это удобно, когда в принтере все операторы
начинаются с одного и того же байта (например, для Ер son-со-
вместимых принтеров такой код равен 27). Префикс использу-
ется и некоторыми интерфейсами, например ZX Lprint III.
Таблица состоит из 3 колонок. В первой приводится номер
оператора (No), во второй — название оператора (Label), содер-
жащее не более 5 символов. Далее приводятся собственно 4
кода, соответствующие оператору (Control tokens). Возврат к ре-
дактируемому тексту происходит при нажатии SS/Q. Для редак-
тирования оператора необходимо ввести его номер — число от 1
до 24 (любой ввод заканчивайте нажатием Enter), при этом в
командной строке появится запрос Revision:, а курсор в меню
установится перед редактируемым параметром. Первым вводит-
ся новое имя оператора, затем, последовательно, вводятся все
четыре кода. Если вы не хотите изменять какое-либо значение,
то просто нажмите Enter. Код может быть любым числом от 0 до
254 согласно описанию вашего принтера. Значение 255 выклю-
чает код — на печать он не выдается. Если на запрос номера
оператора ввести 0, то можно задать новое значение префикса.
Другим типом операторов управления печатью являются бей-
сик-подпрограммы. Когда в процессе печати документа встречается
такой оператор, то управление передается одной из 10 бейсик-под-
программ, которые вы должны написать сами и вставить в бейсик-
блок TLW2 или подгрузить оператором MERGE. Подпрограммы
должны начинаться со строк 9000, 9100, 9200 и т. д. до 9900.
В подпрограммах можно выполнять любые операторы, в том
числе и печать. Можно даже загрузить в редактор новый текст, что
даст возможность подготавливать большие по объему тексты, пред-
варительно разбив их на части, а печатать целиком. Более подроб-
но это описано в разделе «Составление документов».
Возврат в редактор должен осуществляться оператором Бейсика
GO ТО 9999, при этом печать текста будет продолжена.
Еще один тип операторов управления печатью — стринги. Это
обычные символьные (строчные) переменные Бейсика, содержи-
мое которых будет вставлено в текст при его распечатке. Их удобно
применять, например, для составления «шаблонных» документов.
Вы можете задать в Бейсике до 26 стрингов с именами А$, В$, ...,
Z$. Определена или не определена переменная — проверяется
только при печати. Если переменная не найдена, то печать преры-
вается с сообщением CHECK #$, где #$ — имя ненайденной пере-
менной. Если вы задавали печать нескольких копий, то нажатие
любой клавиши вызовет печать очередной копии. Для возврата к
редактируемому тексту нажмите SS/Q.
Помните, что редактор не проверяет, какая длина получилась у
строки после вставления стринга.
Максимальный размер памяти, предоставляемый редактором
для одного текста, непосредственно находящегося в памяти — при-
мерно 20 килобайт. Это не очень-то много, однако есть возможность
подготавливать с помощью TLW2 большие объемные документы.
Слияние документа будет происходить при печати.
Для этого вы должны написать небольшую бейсик-подпрограм-
му, а в конце очередного куска текста вставить оператор управле-
ния печатью (см. выше), который ее вызывает. Вот примерный
текст подпрограммы для магнитной ленты:
9000 LET a=USR 64978: LOAD "NewFile" CODE a:
RANDOMIZE USR 65010: GO TO 9999
Для дисковой системы подпрограмма несколько сложнее:
9000 LET a»?USR 64978: RANDOMIZE USR 15619: REM:
LOAD "NewFile" CODE a
9010 RANDOMIZE USR 65010: GO TO 9999
Первый оператор (LET a=USR 64978) возвращает в переменную a
адрес начала текста в памяти, затем происходит загрузка в память
нужного файла (NewFile). Оператор RANDOMIZE USR 65010 находит
конец текста и настраивает редактор, ну а возврат в TLW2 с
продолжением печати уже нового файла делает оператор
GO ТО 9999.
Если файлов несколько, то можно организовать их последова-
тельную печать, подгружая каждый раз очередной кусок текста.