ГЛАВА 6
РЕДАКТОР "THE LAST WORD" (TLW, TLW+, TLW2, TLW2+, TLW2++)
6.1 ВВЕДЕНИЕ
TLW- это текстовый реллкюрдля компьютеров "SPECTRUM". Он обеспечивает
пользователю широкий круг возможностей но обработке текстов и позволяет
получить результаты, удовлетворяющие лучшим профессиональным стандартам.
Программа составлена в машинных кодах, кроме доступной пользователю области
бейсика и содержит оператор символов фирмы MYRMIDON SOFTWARE,
позволяющий производить разбивку экрана по строке в стандартах 80, 60, 48, и 40
знаков.
Программа содержит команды для обработки текстов и большое количество
команд для управления печатью принтера Она позволяет не только глубоко
использовать технические возможности принтера, но позволяет легко обращаться к
"внешнему" текстовому файлу и в нижележащую бейсик-программу во время работы
принтера, чтобы извлекать оттуда почти любые типы текстов или данных. "Внешний
файл" может быть считан с дискеты, с клавиатуры и т.п. Надлежащим образом
обработанный, этот текст может быть включен в текущий файл; в этом состоит
основополагающий принцип слияния повторяющихся данных при исполнении
конкретного документа.
Текст программы TLW разделен на две основные части. Это небольшой
бейсиковский раздел, предназначенный для снижения верхней границы операционной
системы компьютера с тем, чтобы основной блок, записанный в машинных кодах,
мог бы быть загружен в верхнюю часть памяти, а также 14.5К основной блок в кодах
Z-80, который непосредственно выполняет необходимые расчеты. Текст или
данные, расположенные в "собственной " бейсик-области компьютера, могут
вызываться из редактора разными способами. Пользователь может записать в
предназначенной для пользователя бейсик-области такие строки, чтобы часть
программы в машинных кодах обращалась к бейсику при исполнении печати по мере
необходимости. Это выполняется введением специальных операторов в текстовый
файл. Обе основные части редактора взаимодействуют для того, чтобы дать
возможность пользователю со слабым знанием бейсика достичь широкого применения
программ в разных ее режимах.
Перед началом работы с программой необходимо тщательно изучить это описание.
В основе своей программа чрезвычайно проста и при некоторой практике она
поможет в исполнении широкого диапазона документов.
■ ЭКРАН РЕДАКТОРА
Экран содержит 256 точек в ширину и 192 в высоту. В редакторе все строки имеют
по высоте 8 точек, так что экран имеет 24 строки. Генератор символов позволяет
печатать символы шириной 6, 5, 4, или 3 точки, что дает 42, 51, 64 или 85 символов
в строке.
Операционная система редактора выделяет верхние три строки экрана для
заголовка ("хэдера"), где отображается 18 единиц информации о текущем состоянии
программы, текстового файла и положении курсора. Нижние 20 строк предназначены
для изображения обрабатываемой страницы текстового файла. Запись начинается
слегка отступя от левой части страницы, что позволяет "оконтурить" текст, если
потребуется. Правое поле страницы используется для изображения некоторых
специальных пометок, дающих информацию о статусе каждой строки текста,
реальной длине строки, на которой текст может быть набран (40, 48, 60 или 80
символов), в зависимости от того, какой режим выбран. Рассматривайте эту
страницу просто как "необработанное" изображение куска текстового файла,
которое само по себе мало полезно, поскольку это просто список символов и цифр
и не соответствует реально видимому написанию страницы. Разбивка экрана,
которую вы выбрали, абсолютно не влияет на содержимое файла, это просто способ
отображения, не связанный с тем, как буквально сформирован текст. Как он
хранится в памяти, и как он печатается на бумаге.
■ КОНЕЦ СТРОКИ
Когда строка текста длиннее, чем строка на экране, текст будет продолжаться на
другой экранной строке без перерыва и гак далее до тех пор, пока не будет достигнут
управляющий маркер "конец строки" или конец файла. Например 84-х символьная
строка занимает одну экранную строку (в режиме 80) и еще 4 позиции следующей
видео строки или 1 строку + 24 позиции (в режиме 60) и т.п. Экранная строка, на
которой должна кончаться текстовая строка отмечается маркером на правом поле
страницы, если этот маркер не отключен.
■ КУРСОР
Место, в котором вы набираете текст называется позицией курсора. На нем
базируется практически все в программе Курсор всегда присутствует на экране или
на самой странице или в командной позиции, тогда он показывает, куда войдет
вводимый символ. Обычно курсор - это мигающий прямоугольник, но иногда он
превращается в четыре горизонтальные полосы (в тех случаях, когда текст дошел до
правого поля и ожидается очередной символ, который должен определить, что нужно
сделать с введенной строкой выровнять ее по правому полю, сделать перенос и т.д.).
Для перемещения курсора имеется 19 команд - от простого смещения на одну
позицию до перехода к избранной (номер вводится) строке.
■ ИЗОБРАЖЕНИЕ КОМАНД
Некоторые команды требуют серии последовательных вводов и, возможно,
наличия некоторых вспомогательных данных, которые надо иметь перед глазами. В
этом случае редактор "вытягивает" кусок чистой страницы, а текст сдвигает вниз.
Команда набирается на этой странице и вводится с нее, а текст возвращается на
прежнее место скроллингом 20 строк вверх, если он остался без изменений или
полным его переписыванием, если изменения внутри произошли. Таким образом,
здесь нет различных меню, все выполняется на одной странице.
■ "БЕЛЫМ ПО ЧЕРНОМУ"
Вы можете менять цвет бордюра или "хэдера", присваивая им номера одного из
спектрумовских цветов от I до 7, но можете также присвоить бордюру 0, что даст
белый цвет на черном фоне. Телевизионный экран - это не самый удобный дисплей
для работы с 80 знаками в строке. Качество настройки телевизора также очень сильно
влияет на разборчивость текста. Поэтому, оптимальным является импортный
монитор с хорошей трубкой.
■ ТЕКСТОВЫЙ ФАЙЛ
Редактор обслуживает текстовый файл, который первоначально имеет нулевой
размер (справедливо для нового файла). Его увеличение происходит только за счет
тех символов, которые вы в него вводите, плюс за счет некоторых управляющих
кодов, отмечающих конец строки и конец абзаца.
■ ФОРМАТ ТЕКСТОВОГО ФАЙЛА
Весь текст, который вы вводите в файл, и то, как он формируется, жестко
определяется правым и левым полями, а также включением и выключением режимов
W.WRAP/W.SPLIT и JUSTIFY/RAGGED.
■ УПРАВЛЯЮЩИЙ МАРКЕР "КОНЕЦ СТРОКИ"
Каждая строка, которую вы набираете, но достижении конца приобретет
специальный управляющий код, который информирует редактор о том, что надо
начинать новую строку при печати на экране или на принтере. При оформлении
текста работает флаг. Он может быть двух типов:
1. Код, изображаемый стрелкой, обращенной стрелкой влево и вниз. Она
расположена на правом иоле и указывает на то, что вы перешли на другую
строку. Код в системе ASCI 1-14. Этот маркер вводится в редактор
автоматически, когда при наборе нового текста он переходит границу
предварительно установленного правого поля. Вы сами напечатать его не
можете.
2. Код, изображаемый обращенной буквой "с" на полях действует как конец
параграфа (абзаца). Его код - 13 (ASCII), что соответствует возврату каретки.
Введен он може! быть только оператором ENTER при создании нового
текста. Строка может быть пустой и содержать только этот маркер, тогда
номер колонки будет равен нулю, а вы впоследствии сможете расширить эту
нулевую строку вставкой с помощью оператора INSERT.
■ РАЗРЕШЕННЫЕ ДВИЖЕНИЯ КУРСОРА
Представьте себе, что строки текста - это полоски бумаги, наклеенные на чистую
доску, другими словами - на видеостраницу. Вы можете свободно перемещать курсор
влево и вправо, вверх и вниз по этим полоскам, но пространство экрана вне этих
полосок "не существует" и вы никогда не сможете ввести курсор в эту запрещенную
область. Если вы запросите такое невозможное паремещение, то курсор перейдет к
о.шжайшей колонке экрана, которая разрешена.
■ ПОЛОЖЕНИЕ КУРСОРА В ФАЙЛЕ
Отсчет номера строки и колонки в левом прямоугольнике "хэдера" относится к
номеру строки и колонки в текстовом файле, а не к номеру строки видимой
видеостраницы, кроме случаев, когда они случайно совпадают.
■ РАЗМЕРЫ ТЕКСТОВОГО ФАЙЛА
Величина возможного пространства текстового файла на один байт ниже адреса
нижней границы машиннокодовой части, то есть 50999. Нижняя часть файла
находится в изначально установленном адресе в памяти машины - 30000 (таким
образом текстовый файл имеет размер 20,5К). Но нижняя граница может быть
переустановлена пользователем с помощью оператора CLEAR. Так, CLEAR 49975
дает размер файла IK, то есть 1024 байт, а область бейсика при этом составит
примерно 25,5К. Максимальный размер пространства, которое можно занять под
текстовый файл в 48К компьютере при предельном сжатии бейсика составляет 25К.
"Хэдер" изображает текущее свободное пространство текстового файла в целых
единицах килобайт. Когда пространство меньше IK, то оно выводится в восьмых
долях килобайта, так 3й означает, что свободны 3*128 байт.
■ ИЗМЕНЕНИЕ РАЗМЕРА ФАЙЛА
Когда вы выходите из редактора, в программе остается копия выходного адреса
из текстового файла. При последующем возвращении текущий адрес RAMTOP
сравнивается с последним выходным адресом и, если они отличаются на единицу,
как раньше, никакие действия не выполняются. Если, однако, происходило
изменение по команде CLEAR, текстовый файл будет вычищен и возврат в
программу произойдет в пустом состоянии. К такому маневру надо подходить с
осторожностью, так как он может быть очень нежелательным.
Такая подвижность нижней границы области текстового файла дает возможность
легкой установки размера пространства, занимаемого текстовым файлом для того,
чтобы адаптироваться к различным размерам бейсиковских программ или блоков
переменных, которые надо ввести и использовать совместно с самим текстовым
файлом.
6.2 ЗАГРУЗКА РЕДАКТОРА
Перед загрузкой необходимо выполнить следующие действия:
1. Из основного меню выйти в режим Бейсик-48
2. Набрать и ввести следующие команды:
LPRINT CHR$ 0
LPRINT CHRS 0; CHR$ 0 (после данной команды выбрать необходимый
принтер или текстовый режим - SPACE и ENTER)
LPRINT CHR$ 3 (перевод строки)
3. Далее перейти в TRDOS по RANDOMIZE USR 15616 и загрузить программу
с дисковода.
Вышесказанное справедливо при наличии ПЗУ с программой ZX LPRINT.
Сначала загрузится бейсиковский раздел, а затем раздел в машинных кодах.
Когда загрузка закончится, вы увидите данные программы и вопрос:
INITIALIZE PRINTER? (Y).
Это исходное положение редактора, записанное в строке 2030 применительно к
ZX-LPRINT III - интерфейсу. Если вы используете другой, то эту строку вам надо
переделать, так как все они требуют разных подходов. Далее компьютер переходит
к операционной странице редактора и изображает данные по версии, которой вы
пользуетесь. Дальнейшее нажатие клавиши очистит экран, и вы готовы к работе.
6.3 РАБОТА
■ РАЗБИВКА ТЕКСТА
Первоначально программа установлена на 40 (60) знаков в строке. Правое поле
тоже установлено на этот размер. Может быть, это не то, что вы хотите, но
преимущество редактора в легкости переключения на другие размеры. Попробуйте
набрать какую-либо строку текста и посмотрите, как она изображается на экране.
Когда вы дойдете до правого поля, продолжайте набор, и слова будут автоматически
выровнены по правому полю. Так будет на каждой строке. Теперь попробуйте
изменить разбивку экрана.
- Нажмите обе клавиши SHIFT (или одну EXTEND MODE) в хэдере
изменится режим WRITE на режим COMMAND;
- нажав CAPS SHIFT, нажмите "V" и в хэдере появится слово "VIDEO";
- теперь вы можете набрать 48, 60 или 80 для установки количества символов
в строке вместо первоначальных 40;
- в конце нажмите ENTER и ваш текст будет переписан в соответствии с
выбранным размером строки
Вы видите, что чем мельче шрифт, тем важнее качество телевизора (монитора).
60 знаков в строке читаются без особых проблем, а на хорошем экране можно
работать и с 80-ю знаками. Однако в этом режиме буквы набегают друг на друга,
поэтому может быть вам лучше работать на одном из более низких режимов, а в
режим 80 переходить только для окончательного взгляда на законченную работу,
перед выдачей текста на принтер. Переход от одного размера к другому никак не
влияет на содержание файла, а только па то, как эта информация представлена на
экране.
■ КЛАВИША [ENTER]
Хотя большинство клавиш при нажатии вызывают вполне очевидные результаты,
ENTER имеет специальное значение и пользоваться ею надо аккуратно. Так, когда
вы набираете новый текст, курсор идет впереди набираемой строки, нажатие
клавиши ENTER в этот момент приводит к вводу кода возврата каретки, т.е. "конец
абзаца", а курсор перемещается к левому полю следующей строки. Такой маркер
очень важен для последующей работы программы с файлом и не может быть устранен
обычным путем с помощью DELETE. Он будет там до тех пор. пока часть файла,
содержащая его не будет стерта более мощной командой.
Если вы находитесь внутри файла, то есть текст уже написан, то нажатие ENTER
приведет к простому перемещению курсора на одну строку вниз, но не изменит
никакого текста, который там уже есть.
■ ФУНКЦИЯ "TAB" (ТАБУЛЯЦИЯ)
Заметьте, что команда TAB (CAPS SHIFT + I) передвигает курсор сначала к
левому полю, если оно меньше, чем величина TAB, а затем вправо на величину TAB.
При вводе нового текста TAB образует пробелы, а в уже существующем тексте TAB
просто перемещает курсор на заданное число позиций вправо.
■ ЛЕВОЕ И ПРАВОЕ ПОЛЯ
Вы уже заметили, что то, что вы вводите формируется по 40 знаков в строке от
колонки I до колонки 40 Это результат работы полей. Величина их начальной
установки приведена в хэдере. Чтобы ее изменить, перейдите в командный режим,
как вы это делали при изменении ширины видеостроки и нажмите "М" для левого
поля или CAPS SHIFT +"М" для правого. Правое поле можно увеличить до 132 или
уменьшить до величины, на единицу большей, чем размер левого поля. Левое поле
- от единицы до величины правого поля минус один. На экране ничего не изменится,
кроме надписи в хэдере, но весь текст будет подчиняться этим новым полям.
■ МАРКЕРЫ КОНЦА СТРОКИ И АБЗАЦА
Вы видите, что правое поле содержит специальные отметки в тех местах, где
кончается строка. Это или наклонная стрелка, или обращенная буква "с". Они
являются визуальным отражением того, как редактор делит ваш текст, чтобы вписать
его в заданные поля. Они только служат для удобства компоновки и при печати на
бумаге не воспроизводятся.
■ ПЕРЕОФОРМЛЕНИЕ АБЗАЦА
С помощью курсора вверх (CAPS SHIFT + 7) перейдите к верхней строке вашей
страницы, войдите еще раз в командный режим и нажмите CAPS SHIFT + "R". Это
мощная команда REFORM. Она очистит экран от строки, на которой стоит курсор,
до ближайшего конца абзаца и перепишет текст в соответствии с новыми введенными
значениями полей. Измените поля еще раз, добавьте несколько пробелов, и еще раз
выполните команду REFORM. Вы увидите, как аккуратно запись будет переписана
для новых условий.
■ БУФЕР КЛАВИАТУРЫ
Если вы умеете печатать достаточно быстро, то скоро увидите, чтоесли программа
и успевает за ваму в пределах одной строки, то после перехода правого поля она
отстает, т.к. ей нужно время для организации строки в соответствии с введенными
параметрами. В этот момент необходимы специальные меры, чтобы сохранить
информацию, которую вы вводите в строку. Все, что вы вводите после каждого
нажатия клавиши, идет в буферную память компьютера, откуда затем извлекается в
удобное время.
В тех случаях, когда в буфере находится более, чем один символ или команда,
номер колонки в левом окне хэдера становится ярче. Буфер может принимать до 21
символа, но только одну команду. Когда вы превышаете 21 знак, программа ничего
не примет, пока содержимое не опустится ниже.
■ ПЕРВЫЕ ИТОГИ
В первую очередь поля определяют форму того текста, с которым вы работаете.
Вторым по значению является задание "JUSTIFY" или "RAGGED", которое
выполняется: режим Е +"J". В зависимости оттого, что вы примете, текст по правому
полю»будет выравниваться (JUSTIFY), как на той странице, на которой вы сейчас
читаете эти строки, или останется необработанным, как на обычной пишущей
машинке (RAGGED). В свое время поэкспериментируйте с другими командами,
чтобы посмотреть, как они Ьлияют на результат.
■ ПЕРСОНАЛИЗАЦИЯ ПРОГРАММЫ
Когда вы убедитесь в том, что редактор ведет себя на экране в соответствии с
вашими ожиданиями, потратьте некоторое время на изучение управляющих операторов
и указаний по подключению принтеров. После этого аккуратно настройте программу,
чтобы она работала так, как вам это нужно. Затем, следуя указаниям, сделайте для
себя личную копию программы.
■ ЗАПИСЬ И СЧИТЫВАНИЕ ТЕКСТА
Для сохранения и загрузки текста в редакторе имеются две команды. Они служат
для записи набранного текста на дискету, создания личной копии программы TLW2,
загрузки файлов в редактор. ЗАПИСЬ ТЕКСТА
Процедура вызывается: режим Е + "S". Далее необходимо задать номера первой
и последней строк (включительно) того куска, который вы хотите записать; выбрать
номер устройства; выбрать имя файла, под которым эта запись будет храниться. При
этом обратите внимание на следующее:
1. Вы можете записать любую группу строк из текстового файла или весь файл
целиком. Если вы делаете частичную запись, то вам надо знать номера
начальной и конечной строк до того, как вы дадите команду на запись, т.к.
эти данные вводятся раньше. Если номер последней строки целого файла вам
неизвестен, то подойдет любой, заведомо больший, программа сама решит,
что речь идет о последнем байте и сработает соответственно. После того, как
вы введете данные о первой и последней строке, редактор сообщит вам
количество килобайт, подлежащих выводу для того, чтобы вы могли
спланировать свое место на внешнем носителе
2. Номер дисковода может быть or I до 4
3. Выбор имени файла - ваше личное дело, подходит любая комбинация
длиной до 10 букв, но первый символ •• обязшельпо буква, а не пробел
Наберите буквы как обычно, если необходимо, пользуйтесь DELETE для
устранения ошибок. Если вы введете больше, чем К) букв, текст сдвинется и
первая буква пропадет.
Затем нажмите ENTER для^ того, чтобы привесш в дейспже процедуру записи.
Запись буцет сделана в обычном формате в кодах, которые могут быть впоследствии
загружены либо в редактор, либо в любую другую профамму, воспринимающую
коды
Если был выбран дисковод, то выбранное усфойаво включится и начнет поиск,
чтобы определить является ли для .нею этот файл новым или такое имя уже есть. В
последнем случае компьютер проинформирует вас сообщением FOUND! NEW? (Y)
и даст вам возможность выбора; делать запись или отменить команду "Y" -
подтверждение команды; ENTER отменяет команду и возвращает вас к текстовому
файлу. Выбор 'стереть" исполняется так: режим Е, затем клавиша "Е". Результат тот
же самый, но процесс длиннее, т.к. надо нажимать больше клавиш
■ СЧИТЫВАНИЕ ТЕКСТА
Вызывается: режим Е, затем "L". Процесс считывания очень похож на процедуру
записи, за исключением того, что не надо указывать объем. Необходимо только
указать номер устройства и имя файла.
То, что вы вводите в текстовый файл, добавляется к тому, что там уже есть, т.е.
новый материал записывается в память, начиная с адреса на единицу большего, чем
верхний адрес содержимого. При этом системная переменная редактора "конец
файла" соответствующим образом изменяется. Это означает, что вы можете
смешивать любые записанные на внешнем носителе файлы последовательной их
загрузкой. Вы можете также вставить новый блок в середину текстового файла. Это
делается оператором INSERT, при этом верхняя часть файла сохраняется компьютером,
затем выгружается середина, а затем возвращается верхний блок. Обратите внимание
на нижеприведенные пояснения:
L Для выбора дисковода вводится его номер от I до 4.
2. Вам необходимо знать точное имя файла, который вы собираетесь ввести,
и набирать его точно так, как оно было записано. Любые отклонения не дадут
результата. В конце нажмите ENTER и дисковод включится для поиска
указанного имени. Файл будет загружен сразу после того, как будет найден.
Если его нет на дискете, появится надпись ABSENT!
Вполне возможно загружать в редактор текстовые файлы или файлы данных
природы иной, чем TLW. Но они должны иметь ту же организацию маркеров конца
строки и конца абзаца, что и редактор. В противном случае они будут выглядеть как
бесконечный стринг, не разделяемый на строки как для экрана, так и для принтера.
Для переработки таких файлов имеется служебная программа TLW64BASIC -
сведения по ее применению даны в конце главы.
6.4 КОМАНДЫ
Для ввода команд в редактор существует два основных варианта. Для первой
группы наиболее широко используемых команд применяется одно нажатие SHIFT
для того, чтобы не прерывать процесс печаГания. Для шорой группы команд
характерна необходимость более глубокого осмысления желаемою результата, здесь
обычно нужно добавление каких-либо деталей к первоначально введенной команде
и для этой группы необходимо перевести хэдер в командный режим.
Оба варианта ввода команд будем называть далее прямым и непрямым вводом
Прямой ввод команды: CAPS SHIFT + клавиша.
Непрямой (требует перевода в командный режим - оба SHIFT вместе) - затем: -
нажать клавишу или CAPS SHIFT + клавишу.
Команды разделены на пять основных групп:
■ 1. Команды курсору.
■ 2. Команды обработки текста.
■ 3. Команды структурные и утилиты. Они устанавливают, каким образом
построить текстовый файл и экран.
■ 4. Команды принтеру.
■ 5. Команды ввода/вывода.
■ ПЕРЕМЕЩЕНИЕ КУРСОРА (первая группа)
- вправо на один символ ............................CS/8
- влево на один символ...............................CS/5
- вверх на одну строку .................................CS/7
- вниз на одну стоку.........................................CS/6
- табуляция вправо..........................................CS/1
Курсор смещается на величину TAB или до левого поля, если оно ближе.
Величина табуляции показана в служебном экране и может быть изменена командой
Е +SS/T
- вправо на одно слово......................................CS/4
- влево на одно слово........................................CS/3
- вправо на одно предложение.........................SS/W
Курсор двигается до ближайшей точки, а затем устанавливается около первого
после точки символа.
- вправо до конца строки...............режим Е + SS/8
- влево к началу строки..................режим Е + SS/5
- к началу первой строки................режим Е + SS/7
- в конец последней строки.............режим Е+ SS/6
- в начало следующего экрана........режим Е + "D"
Экран перепечатывается так, что последняя строка данной страницы
устанавливается первой строкой следующей.
- к началу предыдущего экрана......режим Е + "U"
- к началу текстового файла.............режим Е + "А"
- к концу текстового файла..............режим Е + "Z"
- к заданной строке..........................режим Е + "N"
Запрашивается и вводится номер требуемой строки. Строка становится верхней
на экране.
- экран вверх на одну строку........режим Е + SS/3
- экран вниз на одну строку..........режим Е + SS/4
■ КОМАНДЫ ОБРАБОТКИ ТЕКСТА (вторая группа)
- стирание символа.............................................CS/0
Стирается символ или оператор управления печатью. В режиме замены удаляется
символ под курсором, а в режиме вставки - символ слева от курсора.
- стереть текст до конца строки *......................CS/9
- стереть текст до конца файла * .. режим Е + SS/9.
- стереть весь текст *......................режим Е + SS/Z.
- удалить фрагмент текста...............режим Е + "К"
♦Эта команда требует "Y" для подтверждения или ENTER для отбоя.
На запросы вводятся номера первой (From line) и последней (to line) строк
удаляемого фрагмента. Команда удаляется сразу после ввода номера последней
строки.
- переключатель................... INSERT/OWERWRITE
(вставить/переписать)___режим Е +"1"
В режиме OWERWRITE, когда вводится новый текст, курсор находится на
верхней границе файла и файл постепенно расширяется. Если курсор находится
внутри файла, идет его "переписывание".
Если курсор находится внутри файла и включен режим INSERT, то весь текст,
находящийся между курсором и концом файла удаляется с экрана и сохраняется в
самой верхней части свободного пространства памяти.
Курсор устанавливается в начале освободившегося пространства и можно начать
ввод нового текста или вернуть курсор назад в оставшуюся часть файла для работы
с ним.
Файл ведет себя так, как будто оставшийся кусок является цельным и полным,
т.е. все вводимые команды распространяются только на него и не касаются
сохраненной части. Команды CLEAR и LOAD его не затрагивают. Можно сохранить
весь текст и работать с другим, введенным с клавиатуры, дискеты и т.п.
При повторном вызове этой команды включается режим OWERWRITE, и
сохраненный текст возвращается и добавляется к имеющемуся на экране. Курсор
может быть где угодно и полученный текст можно, конечно, перерабатывать. Можно
выполнить команду REFORM для изменения нестандартных строк, полученных в
результате вставки.
сдвинуть весь текст влево_ SS/Q.
Текст между началом строки и курсором сдвигается влево за счет уменьшения
ширины пробелов.
сдвинуть текст вправо_CS/E.
Текст между курсором и концом строки смещается вправо за счет уменьшения
пробелов. Эта команда не срабатывает, если промежутки между словами имеют
минимальный размер, равный единичному пробелу или, если будет достигнут конец
файла до того, как обнаружится пробел.
отцентрировать текст в строке _ режим Е + SS/H
выровнить (JUSTIFY) строку_ режим Е + SS/J.
Если справа нет маркера "конец строки", т.е. файл закончен, то эта команда не
срабатывает.
ограничить пробелы в строке_ режим Е + SS/L.
Пробелы уменьшаются до единичных. Если справа нет маркера "конец строки",
эта команда не срабатывает, как и выше.
переоформить (REFORM) текст от курсора до "конца абзаца" режим Е + SS/R.
Эта мощная команда обычно применяется для корректировки блоков текста
после его набора. Текст переоформляется, сжимается или наоборот, в соответствии
с тем, что установлено в правом окне хэдера. Переоформление выполняется в
пределах текущего значения левого и правого поля. Если команда не проходит, т.е.
встретилось слово такой длины, что не вмещается в рассматриваемую строку
полностью, работа команды прекращается, а курсор устанавливается на этом слове.
вставить оператор управления печатью_SS/I.
По этой команде у вас запрашивается ввод для определения требуемого оператора.
В результате байт, представляющий этот оператор, вставляется в текст слева от
позиции курсора, а метка, определяющая его, отображается в хэдере. Этот ввод может
быть:
1. Число от 1 до 24 введет в текст один из операторов непосредственного
управления принтером;
2. Число от 90 до 99, указывающее на строку в бейсике, к которой надо сделать
переход (строка определяется как 100, умноженное на это число, т.е. от 9000
до 9900).
3. Буква от А до Z со знаком $, когда требуется напечатать избранный
бейсиковский стринг. При этом переключатель РСТ должен быть включен
и, конечно, операторы управления принтером на печать не выводятся.
ввод символа "копирайт"_режим £ + CS/K.
Синклеровский знак "копирайт", CHRS 127 вводится по этой команде в файл.
Имейте в виду, что этот символ не стандартизирован и на принтере его может не быть.
повтор куска текста_ режим Е + "R".
Запрашивается ввод первой и последней строки требуемого куска.
удаление куска текста_ режим Е + "К".
Вводятся номера первой и последней строк удаляемого текста.
поиск или изменение некоторого блока текста_ режим Е + "X".
Вводятся номера первой и последней строк, внутри которых производится поиск.
Затем вводится стринг, подлежащий замене, а затем либо заменяющий стринг, либо
ENTER, если замена не нужна. Программа ищет и изображает номера строк и
колонок для найденных позиций. Каждый раз вы можете произвести замену
клавишей "S", a ENTER - оставить без замены. Продолжить поиск - "F". Прекратить
поиск - "С".
Данная процедура может быть полезна, если вам надо найти строку, номер
которой вы не знаете, но знаете что-либо, что в ней находится.
■ СТРУКТУРНЫЕ КОМАНДЫ И УТИЛИТЫ (третья группа)
переключатель "JUSTIFY/RAGGED" _режим Е + М".
Команда переключает два режима. В первом, концы строк по правому полю
автоматически выравниваются но окончанию текущей строки, когда появляется
"полосатый курсор", а также, конечно, после команды REFORM. При установке на
"RAGGED", текст уплошяется, правый край остается неровным.
пере-ль W WRAP/W SPLIT - (округление слов/перенос слов)_режим Е +"W".
Действие этой команды похоже на действие предыдущей. Работает при создании
текста или при выполнении команды REFORM. Когда включен режим WRAP, слова
не делятся и не переносятся в конце строки. В режиме SPLIT текст "режется" на
куски, определяемые заданными значениями полей. Этот процесс необратим. Когда
включен этот режим, в окне JUSTIFY/RAGGED загорается стрелка, указывающая
на то, что ни один из этих режимов не может быть задействован, но они будут
работать нормально после команды REFORM.
установка регистра букв на одну строку_режим CS/2.
Вся строка будет печататься заглавными буквами или строчными.
включение в текст бейсиковского стринга _режим Е + CS/I.
Запрашивается ввод значения стринга из области бейсика, т.е. имя от А$ до ZS.
Изображаются первые 8 символов стринга с последующим знаком $ и указанием
длины стринга.
Стринги должны быть "простыми" и должны браться целиком. В программу
можно вводить все коды между 22 и 151, т.е. весь спектр ASCII плюс 24 оператора
управления принтером, но не стринги, вызываемые поцедурой ввода операторов
управления принтеров (РСТ) от А$ до Z$ и не строки от 9000 до 9900. Результат можно
включить в файл - "U", сбросить и повторить - "N", отменить команду и выйти из
нее - "Q".
включение/выключение контурной линии_режим Б + йОи.
включение/вцключение видеомаркеров _ режим Б + МУ".
Когда режим включен, то в хэдере рядом со значением ширины страницы
"VIDEO" изображается маркер "конец абзаца".
переключатель регистров BP/HP_CS/2.
установка величины левого поля_режим Б + иМ".
Запрашивается ввод числа, которое может быть от I до величины правого поля
минус единица.
установка величины правого поля_ режим Е + CS/M.
Запрашивается ввод числа, которое может быть от величины левого поля плюс
1 до числа 132.
установка величины разбивки экрана_режим Е + CS/V.
Запрашивается ввод числа: 40, 48, 60, 80. Экран перестраивается.
установка величины табуляции_режим Е + CS/T.
Величина TAB может изменяться от I до величины правого поля минус I, но не
может быть более 80.
изменение цвета экрана_режим Е + CS/B.
Далее вводятся номера цветов бумаги, чернил, хэдера и бордюра.
счетчик слов_режим Е + CS/W.
По этой команде пересчитываются все группы символов, разделенные пробелами,
независимо от того, являются ли они словами. Результат изображается вместе с
"видимой" длиной файла в байтах.
работа калькулятора _режим Е + CS/C.
Страница текста убирается вниз, чтобы вы могли записать выражения длиной до
40 символов, после чего самый левый символ исчезает. Выражения должны быть
законченными математически, хотя знак "=" не требуется, так выражение 4*555
является законченным вводом. Пробелы не требуются. Стринговые выражения могут
быть "урезанными".
После нажатия ENTER автоматически будет выполнен расчет до получения
числового ответа, а если это невозможно, то загорится вопрос WHAT? и неправильное
выражение будет на экране для определения ошибки до тех пор, пока не будет нажата
какая-либо клавиша, после чего экран будет очищен.
Далее вы сможете сохранить этот результат в одном из регистров памяти, нажав
МО, Ml, ..... М9. Он запоминается как стандартная бейсиковская переменная и
доступен для калькулятора, когда это необходимо.
Нажатие любой другой клавиши приведет вас к следующей стадии. Здесь вы
можете использовать полученный результат - "U" (т.е. вставить его в текстовый
файл), отбросить его и повторить команду - "N" или вернуться в режим ввода текста
- SS/Q.
При написании математических выражений клавиатура модифицируется таким
образом, чтобы иметь возможность использовать большинство синклеровских
логических и математических функций.
Функция |
Клавиша |
Функция |
Клавиша |
+ |
SS/K |
LN |
cs/z |
- |
SS/J |
VAL |
CS/J |
* |
SS/B |
SGN |
CS/F |
/ |
ss/v |
ABS |
CS/G |
|
SS/N |
PI |
CS/M |
SIN |
CS/Q |
< |
SS/R |
COS |
CS/W |
= |
SS/L |
TAN |
CS/E |
<> |
SS/W |
ASN |
cs/s |
> |
SS/T |
ACS |
cs/c |
>= |
SS/E |
ATN |
CS/T |
OR |
cs/u |
EXP |
CS/X |
AND |
CS/Y |
SQR |
CS/H |
ASN |
CS/S |
INT |
CS/R |
|
|
установка времени_режим Е + CS/X.
В редакторе имеются часы со встроенным таймером (будильником). Таймер
может быть установлен на время от 0 до 250 минут (изначально - 30 мин.). Если на
0, то таймер выключен. Таймер предназначен для регулярности сброса введенного
текста на дискету. Отключается звуковой сигнал - "Т". Возврат к вводу текста - "Q".
отмена введенной команды _ SS/Q.
возврат к бейсику_ режим Е + "В".
■ КОМАНДЫ ПРИНТЕРУ (четвертая группа)
управление печатью_ режим Е + "G".
Это не столько команда, сколько программа для управления процессом печати.
Загорается меню, изображающее состояние канала принтера. Если требуется
пересмотреть какие-либо исходные данные - нажмите "R". В каждой позиции
нажатие ENTER приводит к перемещению курсора без внесения изменений.
1. LINE PRINTER - переключается на гХ-принтер.при нажатии "R". Когда
стоит LINE PRINTER, то запрашивается ввод адреса возврата. Введите 0,
если используется интерфейс без обратного обращения после инициализации
или обычный адрес для интерфейса, который имеет блок памяти и к которому
нужно также обычно из бейсика обращение RANDOMIZE USR для
задействования.
ZX-принтер всегда использует резидентный генератор шрифта из редактора
для печати 40,48,60,80 символов в строке, в соответствии с тем, какой режим
избран.
2. Байт, который использует принтер для возврата каретки. Обычно - 13, но
желательно уточнить по руководству к принтеру.
3. Байт, необходимый для перевода строки. Он может быть необходим
отдельно от В К. Если не нужен - введите 0.
4. Все 4 байта каждого оператора управления принтером. Они вводятся
автоматически вводом специального числа - префикса. Он сообщает
интерфейсу принтера, что за ним должна пойти группа управляющих кодов.
Далее можно перейти прямо к меню печати - "Р" или к пересмотру - "R" или к
тексту - SS/Q.
печать текста_режим Е + "Р".
Загорается меню, на котором изображены:
1) номера первой и последней строк файла;
2) установленное количество строк файла;
3) состояние операторов управления печатью (РСТ).
Для изменения чего-либо - "R", для выполнения печати "Р", для возврата к
тексту нажмите - SS/Q.
За вводом "Р" каждая копия печатается по команде ENTER. Нажатие SS/Q
позволяет выйти из этого меню и перейти к тексту, нажатие "Q" во время работы
принтера прерывает печать и переводит к началу новой копии.
Оператор BREAK пере водит, в бейсик.
файл РСТ (файл операторов управления принтером) _режим Е + "Т".
Все 24 оператора управления принтером полностью дисассемблированы вместе
со своими метками и копией стандартного префикса. Вы можете ввести любое число
от 1 до 24 для движения курсора по меткам и кодам или вернуться к текстовому файлу
- SS/Q. Все метки или коды можно переопределить. Все коды могут буть от 0 до 254.
Ввод 255 при печати игнорируется и обозначает пробел.
■ КОМАНДЫ ВВОДА/ВЫВОДА (пятая группа)
записать текст на внешний носитель _режим Е + "S".
Запрашиваются номера первой и' последней строк выводимого текста, а также
номер устройства. Ввод завышенного номера последней строки всегда приводит к
установлению действительного значения конца файла. Так, ввод 1 и 9999 приводит
к записи большинства файлов полностью. Если необходимо точно знать номер
последней строки файла, то можно воспользоваться первой частью команды вывода
на печать. Если такой файЛ уже есть на дискете, то появится сообщение FOUND!
NEW?(Y). Ответ (Y) приведет к стиранию старого файла и записи нового. Просто
ENTER - возврат к текстовому файлу.
загрузить текст _режим Е + "L".
Текст, загружаемый в редактор, не переписывает то, что уже есть там, а
"пристегивается" к концу файла. В пустой файл, соответственно, загрузка идет в
самую нижнюю часть памяти.
Если используется команда вставки INSERT и имеется некоторый "спрятанный"
текст, то весь материал, вводимый в файл, добавляется к видимой части файла, что
позволяет вам вставлять любой материал внутрь уже существующего файла. Это
позволяет выполнять большинство требуемых "сшиваний" текстов. Команда
включения бейсиковского стринга выполняет аналогичную функцию.
После команды LOAD вводится номер накопителя и имя, которое нужно
отыскать. При работе с дисководом, если искомое имя отсутствует, то выдается
сообщение ABSENT! Если файл испорчен , то появится обычное бейсиковское
сообщение FILE NOT FOUND, но при этом все "хорошие" 256-байтные секторы до
испорченного загрузятся в редактор. Если файл на дискете, который вы хотите
загрузить, слишком велик, загрузится сколько возможно, а потом появится сообщение
SPASE, то есть от дальнейшего ввода программа отказывается.
раскаталогизироватъ дискету_ режим Е + "С".
Вводится номер дисковода. В окне "TITLE" появится имя диска и на экране
распечатываются имена файлов и затем размер свободного пространства в килобайтах.
стереть файл на дискете _ режим Е + "Е".
Запрашивается номер дисковода и имя файла. Если этого файла нет, то выдается
сообщение - ABSENT!
выполнить форматирование диска - режим Е "F".
Вводится номер дисковода и новое имя картриджа.
6.5 ПЕЧАТЬ ТЕКСТА
Все рассмотренные программы служат для создания текста, но основной,
заключительной частью является печать. Вы выбираете что печатать и как печатать,
управляя принтером по программе.
Рассматривайте процедуру печати как управляющую программу. Ее материал -
это текстовый файл, включающий в себя операторы РСТ - операторы управления
печатью.
Процедура вызывается - режим Е + *'Р" и затем следуют ответы на следующие
вопросы:
1. Номера первой и последней строк выводимого текста. При этом программа
сама обеспечивает Бас следующими данными: номера первой и последней
строк существующего файла, интервал между строками, количество копий,
установка РСТ. Если эти данные вас устраивают, можно непосредственно
начинать печать без изменений. Если нет, то их можно изменить - "R". Как
и в операции SAVE, первый номер строки должен быть точным, а вместо
последнего (для выведения файла целиком) подойдетлюбое заведомо большее
число.
2. Интервал между строками - может быть любое число от 1 до 254.
3. Количество копий - от 1 до 254.
4. Статус ACTIVE/NON-ACTIVE шестидесяти операторов управления печатью.
Он может быть включен/выключен вводом "R", когда курсор находится на
РСТ.
Более специфическое управление процессом печати осуществляется посредством
вставленных в текст РСТ операторов, обращающихся к принтеру для изменения
формата печати, к области переменных бейсика для отыскания стринга или к области
бейсик-программы для отыскания и выполнения некоторых строк перед возвратом
в машиннокодовый блок. Если произойдет сбой (встретится неисполнимый
оператор РСТ и т.п.), печать прерывается и вы выбираете переходить к другой копии
(если она есть) или возвратить программу к текстовому файлу.
Имеет смысл хранить копию текста на дискете перед выводом ее на печать. В
случае непредвиденных сбоев, которые бывают, вам это поможет.
Количество переменных, которые "дрейфуют" между принтером и текстовым
файлом может быть немалым, при этом вовлекаются многочисленные РСТоператоры.
Связь между всеми элементами превращает редактор в довольно мощное средство,
но искусство работы зависит от вас.
6.5.1 ОПЕРАТОРЫ УПРАВЛЕНИЯ ПРИНТЕРОМ (РСТ)
Кодц, которые компьютер выдаст принтеру для печати, находятся в диапазоне
от 32 до 127. Кроме тою, принтеры используют специальные коды для исполнения
специальных функций при печати, для чего редактор имеет банк из 60 настраиваемых
операторов управления печатью, которые могут быть вставлены заранее в текстовый
файл для исполнения какой-либо процедуры при исполнении самой печати.
Операторы РСТ разбиваются на три группы:
■ непосредственное управление принтером (24 оператора);
■ для отыскания и печати именованных стрингов из бейсик области (26'
операторов);
■ для передачи управления из редактора в бейсик (10 операторов).
Именно последние две группы обеспечивают пользователю возможность создания
комплексных документов, где стандартные блоки текста искусно включают в себя
блоки данных из внешнего источника, т.е. из бейсик-программы или с дискеты и т.п.
Все операторы РСТ вставляются в текст с использованием SS/I. За этой"командой
требуется ввод числа от 1 до 24 для операторов непосредственного управления
принтером, ввод буквы от А до Z с последующим знаком доллара для одного из 26
стринговых операторов РСТ или ввод числа от 90 до 99 для обращения к строкам
бейсика от 9000 9900. Оператор РСТ всегда вставляется в текст слева от видимого на
экране символа. Эти операторы не занимают экранного пространства, строки
остаются правильной длины, отсчет колонок не нарушается.
Вы можете вставить операюр РСТ где угодно в тексте и он ничего не затрет.
Для того, чтобы указать где в тексте спрятан оператор РСТ, следующий за ним
символ отображается в инверсном виде. Если это невозможно, т.е. оператор стоит в
самом конце строки, то в этом случае маркер конца строки отображается подчеркнутым.
Инвертирование символов может быть включено или выключено. Для этого
применяется команда включения видео маркера -режим Е + "V", которая работает
как переключатель. Индикатором на экране при этом является наличие или
отсутствие маркера "конец абзаца" в хэдере рядом с величиной разбивки экрана.
Генерация маркеров "конец строки" также включается и выключается по этой
команде.
Если курсор ввести в середину текста и поместить его на РСТ операторе, то метка
оператора появится в хэдере. Это произойдет независимо от того, включено или
выключено изображение видеомаркеров.
Влияние всех операторов РСТ может быть включено или выключено командой
"R" при инициализации меню печати. При этом 24 оператора управления печатью
на печать не выводится, но остальные два типа - печать стрингов или обращение к
строкам бейсика выводятся, если переключатель РСТ включен.
■ ОПЕРАТОРЫ НЕПОСРЕДСТВЕННОГО УПРАВЛЕНИЯ ПРИНТЕРОМ
Редактор содержит файл из 24 управляющих операторов, цель которых -
обеспечить выдачу на принтер избранных групп по 4 кодовых байта для сообщения
принтеру о необходимости выполнения специальных действий и, тем самым, для
изменения формата печати.
Эти операторы, вставленные в файл, - одиночные байты из диапазона от 128 до
151, пронумерованные от 1 до 24. Команда режим Е "Т" отображает на экране
текущий формат операторов РСТ, все метки и соответствующие им значения кодов
в диапазоне от 0 до 254. Значение 255 изображается как Все метки и байты могут
быть пересмотрены.
Используя команду управления печатью, можно ввести стандартный префиксный
байт, который будет выдаваться перед группой байтов РСТ и выполнять роль
инициатора для интерфейса или принтера.
Файл операторов управления принтером выгляди! так:
N |
Метка |
Управляющие коды |
1 |
FRM.F |
1 12 - - |
2 |
ELIT++ |
2 27 77 - |
3 |
PICA+ + |
2 27 80 - |
4 |
ENLG++ |
3 27 87 49 |
5 |
ENLG- |
3 27 87 48 |
6 |
COND++ |
1 15 - - |
7 |
COND- |
1 18 - - |
8 |
UNDL++ |
3 27 45 49 |
9 |
UNDL- |
3 27 45 48 |
10 |
ЕМРН++ |
2 27 69 - |
11 |
ЕМРН- |
2 27 70 - |
12 |
D.ST.+ + |
2 27 71 - |
13 |
D.ST- |
2 27 72 - |
14 |
SUB++ |
2 27 83 48 |
15 |
SUB- |
3 27 83 49 |
16 |
SP/B- |
2 27 84 - |
17 |
ITAL++ |
2 27 52 - |
18 |
ITAL- |
2 27 53 - |
19 |
BELL! |
1 7 - - |
20 |
PPR- |
2 27 56 - |
21 |
PPR++ |
2 27 57 - |
22 |
INITL |
2 27 64 - |
23 |
А4/70 |
3 27 67 70 |
24 |
PRF.9 |
3 27 78 9 |
Стандартный префикс - 1
Как уже было сказано выше, метки и значения, приведенные здесь, относятся к
интерфейсу ZX LPRINT III и к принтерам системы EPSON-LX800. Все эти метци и
коды могут быть изменены. Файл операторов управления принтером может быть
вызван также и из бейсика.
Если вам необходимо иметь копию таблицы операторов управления принтером
на дискете, это можно сделать следующим образом:
SAVE **M^;TCT-TABLE*CODE 5103,217
LOAD **M*;l;"PCT-TABLE"CODE
■ ПЕЧАТЬ ИМЕНОВАННОГО СТРИНГА
Если после РСТ - Е + CS/I, набрать какую-либо букву и знак $, а затем ENTER,
то можно вставить управляющий оператор, который скомандует редактору найти и
вставить в это место при печати бейсиковский стринг, имя которого совпадает с
данными оператором управления печати. Другими словами, оператор А$ вызовет
печать бейсиковского стринга, который в этот момент имеет это имя. Стринг будет
напечатан точно так, как будто он является частью текста, хотя сам текстовый файл
останется без изменений. Если этот стринг не может быть найден, т.е. он не был
присвоен бейсиковской переменной или он многомерный, что недопустимо, то в
этом случае печать остановится и редактор выдаст сообщение: CHECK AS (проверьте
AS). Программа перейдет к исполнению следующей копии, если она нужна, можно
выйти отсюда - "Q" или вернуться в текстовый файл, если необходимости в копиях
нет.
■ ПЕРЕХОД К БЕЙСИК-СТРОКЕ
Командой SS/I и вводом числа от 90 до 99 осуществляется ввод оператора
управления печатью, который в процессе печати остановит принтер и обратится к
бейсик-строке, номер которой в сто раз больше введенного числа. Так, ввод 96
отправит компьютер к строке 9600.
Цель этого маневра - дать пользователю возможность записать некоторую
бейсик-программу для переделки одного или нескольких стрингов, находящихся в
памяти бейсика, чтобы иметь преимущества при дальнейшей печати.
Принтер можно, естественно, задействовать напрямую режимом LPRINT, что
может быть удобным для выдачи некоторых простых вещей - комментариев,
подчеркиваний слов и т.п. Вы можете делать PRINT и на экран этим способом, хотя
необходимо учитывать, что печать должна идти от 4-й строки до 21-й, т.к. если
страница и будет переписана после возврата из бейсика, то хэдер - нет. Если вы
запортите верхнюю часть экрана, то команда режим Е "А" исправит экран, но вы
окажетесь в начале текстового файла.
Когда программа в бейсике отработала полностью, заключительная команда
должна быть GO ТО 9999, чтобы совершить прыжок назад в редактор. Переход к
машинным кодам осуществляется оператором RANDOMIZE USR 65200,
расположенным в этой строке, хотя это можно сделать и из любого другого места
программы.
Если возврат в редактор невозможен по этому адресу, т.е. при вызове принтером
бейсика не был "оставлен" адрес возврата, программа начнется с начала текстового
файла, как будто по команде режим Е + "А", а принтер не будет работать до
следующего обращения к нему.
6.5.2 СОСТАВЛЕНИЕ И СЛИЯНИЕ КОМПЛЕКСНЫХ ДОКУМЕНТОВ
Существует два способа, с помощью которых вы можете включить "внешний"
текст в редактор там, где вам это надо. Первый выполняется при наборе, когда вам
надо вставить заранее подготовленную последовательность символов, например,
данных или часто используемую повторяющуюся последовательность символов или
букв. Второй способ применяется при печати на принтере и позволяет вставлять
практически неограниченное количество материала в виде бейсиковских стрингов,
взятых из области переменных бейсика. Вставляются они в те места, где были
помещены оператором РСТ. Можно также выполнять вычисления в бейсик-области,
поместив в выводимый файл оператор РСТ для перехода в бейсик-область.
6.5*3 ВКЛЮЧЕНИЕ СТРИНГА ПРИ НАБОРЕ ТЕКСТА
Если простой бейсиковский стринг сущесвует в области переменных бейсика, то
командой INCLUDE - Е + CS/I вы можете набрать имя этого стринга при вводе
текста, тогда на экране появятся первые 8 символов со знаком $ и указанием его
длины. Далее вы можете использовать его, т.е. вставить в текст - "U", перейти к
другому - "N", или отбросить совсем и вернуться к набору текста - SS/Q. Если вы
его использовали, то стринг впишется в ваш текстовый файл так, как будто вы его
впечатали и, конечно, все заданные режимы, например, выравнивание правого поля,
перенос слов и т.п. будут соблюдены.
6.5.4 ВКЛЮЧЕНИЕ СТРИНГА ПРИ ПЕЧАТИ ТЕКСТА НА ПРИНТЕРЕ
Если также предположить, что такор стринг существует, вы можете использовать
один из 26 операторов управления печатью, предназначенных для впечатывания
стрингов в качестве единицы печатного материала. Это должен быть простой стринг.
Операторы РСТ находятся в пределах от А$ до Z$. Пользователь должен обратить
внимание, что мы нигде не говорим о длине стрингов, поэтому внимательно
смотрите, чтобы их длина соответствовала размерам принятой вами страницы.
6.5.5 ВЫЗОВ БЕЙСИКА В ПРОЦЕССЕ ПЕЧАТИ
С помощью команды вставки кода управления принтера и вводом числа от 90 до
99 можно отправить компьютер в бейсик-область в процессе печати текста. Цель
этого маневра - выполнение каких-либо вычислений, в частности для того, чтобы
пересмотреть некоторые стринги и создать новые, которые можно использовать
соответствующей командой управления печатью для включения стрингов.
Пользователь для этого должен в бейсик-области написать соответствующую
программу. В то же время, из области бейсика пользователь может управлять печатью
в обычном режиме LPRINT, а для каких-либо действий может вызвать и экран
редактора. Если в процессе работы бейсика происходит ошибка, компьютер
останавливается обычным образом, это не влияет на продолжение процесса печати
при условии, что строка бейсика 9999 или оператор RANDOMIZE USR 65200 по
прежнему используется для возврата в редактор, что обычно и бывает в случае
появления ошибок.
Итак, когда компьютер отправляется в бейсик-область, его цель - строки 9000,
9010,....9900. На каждой из них можно организовать выполнение какой-либо
специфической задачи при условии, что предусмотрен возврат через строку 9999 или
через оператор RANDOMIZE USR 65200. Фактически любая ошибка, возникающая
при работе в бейсик-области не влияет на редактор, так что вы можете выполнять
любые действия и расчитывать на возврат в редактор через адрес 65200.
6.5.6 КАЛЬКУЛЯТОР
В любое время, когда программа находится в режиме ввода текста, вы можете ее
использовать и как калькулятор для вычислений, если вы запишите выражение,
соответствующее вашим требованиям. Результат вычислений может быть присвоен
одной из бейсиковских переменных от МО до М9; калькулятор как бы имеет десять
регистров памяти.
Когда калькулятор вызывается - режим Е + CS/C страница опускается на две
строки и высвечивается слово ASSES: в высвечиваемой зоне вы можете записать
какие-либо выражения, результат которых тоже число, например, 4*3+8*5, а может
быть набор чисел, функций, логических операций, имен переменных, операций над
стрингами. Если, например, вы запишете выражение в виде стринга: LET
С$="М I +125.5#(INT(M2/M3)*( 1+VAT)", то вы можете выполнить и VAL С$, если
все входящие переменные Ml, М2, МЗ VAT и т.п. существуют и определены. Если
результат не может быть получен по какой-либо причине, т.е. вычисления прерву!ся,
вы получите вопрос (WHAT?) и выражение, которое вы записали, будет на экране
до нажатия другой какой-либо клавиши.
Если результат будет выдан, перед вами есть выбор запомнить его в бейсиковской
переменной от МО до М9, для этого просто нажмите цифру от 0 до 9. Любая другая
клавиша приведет вас к другому тройному выбору - "U", чтобы использовать
результат, т.е. ввести его в текст, как будто он набран с клавиатуры; "N" - опустить
результат и повторить команду; SS/Q -отбой команды. Ваш текст не изменится, если
вы не нажимали клавишу "R".
Имейте ввиду, что не надо пытаться использовать результат, если курсор стоит
или приближается к строке нулевой длины. Напрямую вставить текст туда
невозможно, для этого надо использовать оператор INSERT.
Если в соответствии с какой-либо специфической ситуацией вам необходима
особенная последовательность выражений, вы можете иметь ее на дискете и
впоследствии перезагрузить в редактор, когда это необходимо. Однако предусмотрите,
чтобы при этом не выполнялись CLEAR и RUN, не то те переменные, которые у вас
существуют, могут быть потеряны.
6.5.7 ПРИЛОЖЕНИЕ
■ ТЕХНИЧЕСКИЕ ДАННЫЕ
Эти данные приводятся для возможности определения из бейсика некоторых
системных переменных редактора.
Таблица адресов некоторых системных переменных.
Блок в машинных кодах........................................................от 51000 до 65535
Адрес вызова..............................................................................................51000
Адрес возврата при печати........................................................................ 65200
Режим работы процессора.............................................с перываниями 2 рода
Размер текстового файла.............................0....25К в зависим, от RAMTOP
■ Файл операторов управления печатью
формат: 24 различных операторов,, каждый состоит из:
байты от I до 5 - байты операторов ASCII;
байты от 6 до 9 - байты кодов,, их значения от 0
до 254 (255 - пробел)............................................................от 51003 до 51218
Стандартный префикс - от 0 до 254.................................... 51219 (один байт)
Блок кодов интерфейса принтера.................................от 65176 до 65199 вкл
Память калькулятора.............................10 бейсик-переменных от МО до М9
Переменные калькулятора.........................................все бейсик-переменные
Длина включаемых стрингов.................................в соответствии с бейсиком
Имена включаемых стрингов переменных..................................от AS до ZS
■ Некоторые системные переменные.
Установка таймера......................................................................... 65203, 1 байт
Вершина пространства текст, файла.........................................65207, 2 байта
Начало текст, файла........................................ 65209, 2 байта (RAMTOP+1)
Байт "возврат каретки"................................................................ 65255, 1 байт
Байт "перевод строки"................................................................. 65256, 1 байт
Величина разбивки экрана........................................................ 65270, I байт
Адрес обращения к строчн. принтеру...................................65271, 2 байта
Число байт в буфере клавиатуры .............................................. 65277, I байт
Вершина текстового файла......................................................65285, 2 байта
Адрес курсора в файле...........................................................65286, 2 байта
Колонка курсора в тексте....................................................... 65288, 1 байт
Строка курсора в тексте.........................................................65290, 2 байта
Левое поле........................................................................... 65295, I байт
Правое поле............................................................................. 65296, 1 байт
Интервал между строк для печати ............................................. 65299, I байт
Количество печатаемых копий............................................... 65300, 1 байт
Значение табуляции..................................................... 65303, I байт
Буфер клавиатуры.................................................... ... .65514, 2 байта
Все вышеперечисленные данные могут быть вычислены через бейсик:
PRINT PEEK ADRESS - для однобайтных переменных
PRINT PEEK ADRESS +256"PEEK(ADRESS+I) - для двухбайтных.
■ КОПИРОВАНИЕ ФАЙЛА ОПЕРАТОРОВ УПРАВЛЕНИЯ ПРИНТЕРОМ
На дискете может быть записана программа, которая можег дать распечатку
операторов управления принтером. Ее имя - "TLW-TO KENS". Она может оказаться
полезной для пользователя. Сводка этих операторов не включена в кодовый блок
редактора из соображений экономии памяти, но в случае потребности в них,
прилагаемая программа вполне достаточна.
■ СВОДКА КОМАНД
■ Команды для перемещения курсора
Вправо на позицию..................................................................................CS/8
В начало текущего экрана ............................................................"Е" + SS/7
В конец текущего экрана ..........................................................."Е" + SS/6
Влево на позицию..................................................................................CS/5
Вверх на строку......................................................................................CS/7
Вниз на строку........................................................................................CS/6
Вправо на величину табуляции...............................................................CS/1
В начало следующего экрана ......................................................"Е" + "D"
Вправо на слово........................................................................................CS/4
Влево на слово...........................................................................................CS/3
В начало предыдущего экрана........................................................."Е" + "U"
Вправо на предложение........................................................................SS/W
К началу файла............................................................................."Е" + "А"
В конец файла............................................................................."Е" + "Z"
К концу строки........................................................................"Е" + SS/8
К заданной строке текста.............................................................*'Е" + "N"
К началу строки......................................................................"Е" + SS/5
Экран вверх на строку..............................................................."Е" + SS/3
Экран вниз на строку....................................................................*'Е" + SS/4
■ Команды обработки текста
Стереть символ......................................................................................CS/0
Стереть строку до конца от позиции курсора вправо.............................CS/9
Стереть до конца файла от позиции курсора................................."Е" + SS/9
Стереть весь текст......................................................................"Е" + SS/Z
Стереть фрагмент текста............................................................"Е" + "К"
Переключатель INSERT/OVERWRITE (Вставить/Переписать)....."Е" + "1"
Сдвинуть текст влево......................................................................SS/Q
Сдвинуть текст вправо.........................................................................SS/E
Отцентрировать текст в строке ...................................................."Е" + "Н"
Выравнять данную строку ..........................................................."Е" + SS/J
Сжать строку........................................................................ "Е" + CS/L
Переоформить текст до конца абзаца ........................................."Е" + CS/R
Вставить оператор управления печатью.....................................................CS/I
Вставить символ "копирайт"...................................................."Е" + CS/K
Повторить блок текста.............................................................."Е" + "R"
Уничтожить блок текста...................................................."Е" + "К"
Найти/Заменить текст........................................................"Е" + "X"
■ Утилиты н структурные команды
Вкл/Выкл. выравнивание строк...................................................;."Е" + "J"
Вкл/Выкл. переноса слов .............................................."Е" + "W"
Включить бейсик-стринг .................................................................SS/I
Вкл/Выкл. контурную линию ........................................................... "Е"/0
Вкл/Выкл. видеомаркеры..................................................................."E"/V
Верхний/Нижний регистр.............................................................CS/2
Изменение левого поля ......................................................"Е" + "М"
Изменения правого поля.........................................................."Е" + CS/M
Изменить разбивку экрана ......................................................."Еи + CS/V
Изменить величину табуляции..................................................."Е" + CS/T
Изменение цветов экрана ........................................................."Е" + CS/B
Подсчет слов/байт.........................................................................."Е" + CS/W
Калькулятор....................................................................................."Е" + CS/C
Установка таймера..........................................................................."Е" + CS/X
Отбой команды...........................................................................................CS/Q
Возврат в бейсик................................................................................."Е" + "В"
Завершить ввод абзаца............................................................................ENTER
■ Команды печати
Вызов меню печати..........................................................................."Е" + "G"
Вызов файла операторов упр-я принтером....................................."Е" + "Т"
Напечатать текст................................................................................."Е" + "Р"
■ Команды ввода/вывода
Подгрузить текст................................................................................."Е" + "L"
Записать текст....................................................................................."Е" + "S"
Отформатировать дискету.................................................................."Еи + "F"
Раскаталогизировать дискету.........................................................."Е" + "С"
Стереть файл с диска......................................................................."Е" + "Е"
■ ПОДКЛЮЧЕНИЕ ПРИНТЕРА
Принтер подключается к стандартному разъему (25 pin), расположенному на
корпусе компьютера. Шлейф должен иметь не менее 12 жил. Наиболее корректным
является вариант когда между двумя сигнальнами жилами идет жила "О".
■ ПОЛЕЗНЫЕ СОВЕТЫ И ПОЯСНЕНИЯ
1) Если вам надо, чтобы текст начинался с 1-ой колонки, тем не менее
установите поля пусть небольшим, но положительным числом, например 5.
Это позволит вам потом по команде сдвига текста влево расширить интервалы
между словами и вставить пропущенный символ или два, так как у вас всегда
будет запас в 5 пробелов. Если необходимо большее пространство, то
установите величину правого поля достаточно большую, затем выравняйте
текст по правому полю, в результате чего создадутся пробелы, затем сдвигом
текста влево/вправо подготовьте место для вставки, вставьте то, что надо,
восстановите поля и выполните команду REFORM для ликвидации беспорядка.
Конечно, вставку можно сделать и с помощью команды INSERT, но если вы
ее уже используете, то данный подход окажется очень полезным.
2) Если при разбивке экрана 60 или 80 знаков в строке включены видеомаркеры,
то иногда бывает трудно разобрать на экране символы, если они идут за
операторами управления печатью, вставленными втекст. Временно отключите
маркеры, затем после прохождения курсора по этому участку текста вновь
включите.
3) Если вы хотите приостановить принтер для смены бумаги и т.п., вы можете
сделать это где угодно установкой оператора управления печатью с обращением
к бейсиковской строке, например:
9200 INPUT 'PAUSING! ENTER CONTINUES"; Z$; GO TO 9999
Если вы имеете текстовый файл очень ценного материала, а при попытке
записать его на дискету пришло сообщение SPACE!, то это значит, что места
для создания соответствующего канала недостаточно. Чтобы освободить
место, спуститесь в бейсик и очистите все переменные, например: RUN 30000
и попытайтесь еще раз. Другой способ - переместить курсор в вачало
текстового файла и выполнить INSERT, чтобы спрятать его целиком,
пересмотреть вверх ненамного значение RAMTOP подачей более высокого
значения CLEAR, чем было до этого, затем нужно вернуться в редактор и
набрать первый символ "спрятанного" текстового файла, а затем верните
файл на прежнее место. Первый способ предпочтительнее, но с помощью
второго можно выйти из более серьезных неприятностей.
4) Все 60 команд могут быть вызваны на экран набором режим Е "Н", там же
изображаются комбинации клавиш, необходимых для выполнения этих
команд. Эту страницу можно выдать на принтер, используя для этой цели
программу TLW2.DATA, которая входит в прилагаемую дискету.
5) Ранее существовавшие команды для изменения цвета бордюра и хэдера
заменены одной, вызываемой режиме в режиме Е - CS/B, с помощью которой
обеспечивается доступ к установке цвета страницы, символов (для увеличения
их яркости прибавьте 64), бордюра и хэдера.
6) Команда TAB может быть расширена, так что за ней следует оператор
INSET и число от 0 до 8. Набранный текст хранится в файле обычным путем,
но если проходит команда REFORM то первая строка каждого абзаца
сдвигается вправо на величину INSET.
7) В некоторых версиях сделано дополнение, позволяющее отдельно
осуществлять трансляцию восьми символов между экраном и текстом, а
также между принтером и текстом. Обычно при нажатии данной клавиши на
клавиатуре всегда один и тот же символ появляется на экране, но до восьми
символов могут быть пересмотрены так, что, например, при нажатии "#" на
экране изобразится "&" и т.п. но это не влияет на результат, который пойдет
на принтер.
До восьми значений байтов символов могут быть пересмотрены для выдачи
на печать. Обе эти трансляции выполняются с помощью TLW2.DATA,
которая не входит в основную программу из соображений экономии памяти,
но легко сливается с ней оператором MERGE. Проведенная трансляция
записывается на дискету с кодовой частью программы и загружается всякий
раз, когда необходимо.
8) Вы можете печатать до 254 копий без необходимости нажимать ENTER
после каждой копии. Это выполняется путем переключения паузы на OFF
в хэдере. (В подпрограмме подготовки печати введите "R").
9) Для управления принтером во время печати используются специальные
операторы. В их число входят операторы "ВК" и "ПС". Обычно первый из
них установлен как 13, а второй - 10. В новой версии редактора вы можете
вводить их с помощью операторов управления печатью "вставить стринг" и
"GO ТО 9000" и т.п. Так, например, если А$ или какой-либо другой стринг,
которым вы пользуетесь, задан как CHRS13, а строка 9000 (или другая) -
LPRINT CHRS10 с последующим возвратом в редактор через строку 9999, то
результат будет тот же самый. Но зато теперь вы можете прерывать выдачу
текста на принтер в конце каждой строки, организовав один или два счетных
цикла для организации печати из бейсика заранее заготовленных данных, а
параметр цикла использовать, например, при подсчете номера страницы.
10) Системные переменные редактора, обозначающие начальный и конечный
адреса файла могут пересматриваться из бейсика. Так вы можете объединять
большое количество файлов и последовательно выдавать их на печать
целиком или частично.
Первый файл, подлежащий печати, должен содержать оператор "GO ТО
9900". Этот файл будет печататься нормально, пока не встретится
оператор,после чего управление будет передано избранной строке бейсика.
В этой строке должна быть, например, такая запись:
9900 LET A-USR 64978: LOAD *"M";l;"NEWFILE"CODE
A:RANDOMIZE USR 65010: GO TO 9999
Первый оператор полностью очищает пространство текстового файла,второй
осуществляет загрузку второго файла в программу, начиная с адреса,
установленного в "А". Третий устанавливаетсистемные переменные редактора,
отвечающие за начало и конец печати. И, наконец, возврат в кодовую часть
редактора. Теперь новый файл будет напечатан так, как это необходимо. Он
также может содержать определенный оператор управления печатью для
вызова последующего файла и т.д.
Замечание: если вы работаете с программой TLW64BASIC, вам надо убрать
все бейсиковские команды, связанные с лентой/диском, чтобы задействовать
дополнительные 2к памяти системных переменных WAFA.
После того, как вы выполнили все предписания и смогли задействовать
вашу дисковую или иную систему, запишите программу на внешний носитель
с внесенными в нее изменениями, для этого используйте команду RUN 70.
11) ПРИКЛАДНАЯ ПРОГРАММА "TLW2.DATA"
Эта программа включает в себя раздел для печати сводки команд - RUN
7000, а также сводку операторов управления печатью РСТ - RUN 7100 и имеет
подпрограмму, позволяющую вам выполнить трансляцию символов для
экрана и для печати - RUN 7400. Эта программа может быть слита с
программой с помощью команды MERGE. Предварительно надо выполнить
CLEAR 35000.
12) Функция DELETE в последних версиях была несколько расширена. Теперь,
когда курсор находится на строке нулевой длины, т.е. состоящей только из
маркера "конец строки", то действие команды DELETE приводит к полному
изьятию строки.
13) Длина строки в новых версиях увеличена до 148 символов. Изменение
можно внести изменением РОКЕ в строке 2050. Заметьте, что такая длина
строки не для всех интерфейсов доступна и может быть ими понижена, если
вы зададите значение выше 128.
Префикс операторов управления принтером выдается на сводке в качестве
оператора 0.
Внимание!
Во время работы принтера, когда по оператору управления печатью
призводится обращение к бейсик-строке, может быть ситуация, в которой
оператор INPUT работает неправильно. Для предотвращения этого, войдите
в бейсик и оттуда поменяйте значение в ячейке 58282 на 0. Больше ни на что
в программе это не повлияет.
14) Измененная сводка системных переменных
Блок в машинных кодах............................................от 50000 до 65535
Адрес вызова................................................................................... 52410
Адрес возврата при печати............................................................65154
Режим работы процессора...........................с перываниями 2-го типа
Размер текстового файла......................................................от 0 до 24к
Файл операторов РСТ формат: 24 оператора,
каждый из них включает в себя:
байты от 1 до 5 - коды ASCII
байты от 6 до 9 - коды от 0 до 254...........................от 52193 до 52408
Стандартный префикс - от 0 до 254................................52409, 1 байт
Операторы управления печатью 1...24...........значения от 128 до 151
Операторы управления печатью 90 - 99 ........значения от 152 до 161
Операторы управления печатью А - Z...........значения от 230 до 255
Блок кодов интерфейса принтера
(под интерфейс кемпстон)........................................от 64954 до 64977
Память калькулятора............................. 10 переменных от МО до М9
Переменные калькулятора..............................................как в бейсике
Длина включаемых стрингов........................................................до 4К
Имена включаемых стрингов.............................................от А$ до Z$
■ Некоторые системные переменные
Адрес очистки текстового файла..................................................64978
Установка таймера.........................................................................65189
Вершина пространства текстового файла..................... 65193, 2 байта
Начало текстового файла................................................ 65195, 2 байта
Список транслируемых символов экрана................от 65157 до 65165
Список транслируемых символов принтера............от 65173 до 65181
Код "ВК"......................................................................................... 65241
Код "ПС"....................................................................................... 65242
Строка бейсика для выхода............................................ 65244, 2 байта
Величина разбивки экрана............................................................65254
Адрес вызова принтера................................................................. 65257
Последний байт текстового файла............................................... 65268
Адрес курсора в файле................................................................... 65270
Колонка курсора в тексте..............................................................65272
Строка курсора в тексте................................................. 65272, 2 байта
Левое поле.................................................................................... 65281
Правое поле................................................................................... 65282
Интервал между строк................................................................... 65285
Количество печатных копий......................................................... 65286
Установка величины табуляции.................................................... 65289
15) Соответствие между латинскими и русскими символами
Код |
ASCII |
(KOH-7/HO)<D> |
|
|
|
|
|
|
|
|
(KOH-7/Hl)<D> |
|
|
|
|
|
|
-1- |
-2- |
-3- |
-1- |
-2- |
-3- |
-1- |
-2- |
-3- |
32 |
пробел |
|
64 |
@ |
ю |
96 ФУНТ СТ. |
Ю |
33 |
1 |
1 |
65 |
А |
А |
97 |
а |
a |
34 |
<( |
« |
66 |
В |
Б |
98 |
b |
6 |
35 |
# |
# |
67 |
С |
Ц |
99 |
с |
ц |
36 |
$ |
$ |
68 |
D |
Д |
100 |
d |
д |
37 |
% |
% |
69 |
Е |
Е |
101 |
е |
e |
38 |
& |
& |
70 |
F |
Ф |
102 |
f |
Ф |
39 |
|
|
71 |
G |
Г |
103 |
g |
г |
40 |
( |
( |
72 |
Н |
X |
104 |
h |
X |
41 |
> |
) |
73 |
1 |
И |
105 |
i |
и |
42 |
* |
* |
74 |
J |
Й |
106 |
j |
й |
43 |
+ |
+ |
75 |
К |
К |
107 |
k |
к |
44 |
> |
, |
76 |
L |
л |
108 |
1 |
л |
45 |
- |
- |
77 |
М |
м |
109 |
m |
м |
46 |
|
|
78 |
N |
н |
110 |
n |
н |
47 |
/ |
/ |
79 |
О |
о |
111 |
0 |
О |
48 |
0 |
0 |
80 |
Р |
п |
112 |
P |
п |
49 |
1 |
1 |
81 |
0 |
я |
ИЗ |
q |
я |
50 |
2 |
2 |
82 |
R |
р |
114 |
r |
р |
51 |
3 |
3 |
83 |
S |
с |
115 |
s |
с |
52 |
4 |
4 |
84 |
т |
т |
116 |
t |
т |
53 |
5 |
5 |
85 |
и |
У |
117 |
u |
У |
54 |
6 |
6 |
86 |
V |
ж |
118 |
V |
ж |
55 |
7 |
7 |
87 |
W |
В |
119 |
w |
в |
56 |
8 |
8 |
88 |
X |
ь |
120 |
X |
ь |
57 |
9 |
9 |
89 |
Y |
ы |
121 |
У |
м |
58 |
|
|
90 |
Z |
3 |
122 |
z |
3 |
59 |
; |
; |
91 |
1 |
ш |
123 |
|
ш |
60 |
|
|
92 |
N |
э |
124 |
|
э |
61 |
= |
= |
93 |
] |
щ |
125 |
|
щ |
62 |
|
|
94 |
л |
ч |
126 |
|
ч |
63 |
7 |
9 |
95 |
|
4 |
127 |
|
|
16) КРАТКОЕ ДОПОЛНЕНИЕ ПО TLW2+
Основным отличием этой версии программы от базовой является полная
русификация команд, сообщений и хэдера. Программа может работать с
несколькими шрифтами (как с латинскими, так и с русскими буквами).
Переход на другой шрифт осуществляется с помощью 'SYMBOL SHIFT+I
после чего программа выдает запрос номер шрифта. Необходимо выбрать
один из 10 шрифтов.