ZX-Forum №2 1993 г.

Приложение - дистрибутивный комплект текстового редактора Speccy Write Version 3.3.


SPECCY WRITE VERSION 3.3

Copyright © 1994 Борис Курицын, Черкассы, Украина

ДИСТРИБУТИВНЫЙ КОМПЛЕКТ ТЕКСТОВОГО РЕДАКТОРА Speccy Write Version 3.3

Внимание! Настоятельно рекомендуется изучить этот текст до какой-либо работы с программами!

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

Но: если загрузка идет с ленты, а дисковая система подключена, программы будут полагать, что загружаются с диска. Поэтому перед загрузкой программ с ленты при подключенной дисковой системе предварительно давайте команду NEW, чтобы дисковая система не былара спознана.

Состав дистрибутивного комплекта.

1) Файлы программы Speccy Write: SWRITE <B> - запускаемый файл; SW.EXE <C> - основной исполнимый модуль; SW.BАS <B> - вторичный загрузчик;

SW.DOC <C>, SWA1.DOC <C>, SWA2.DOC <C>, SWA3.DOC <C> - руководство пользователя по Speccy Write, в формате, удобном для просмотра на дисплее;

SW.PRN <C>, SWA1.PRN <C>, SWA2.PRN <C>, SWA3.PRN <C> - руководство пользователя, в формате, удобном для печати на принтере;

Примечание: здесь и далее файлы, имена которых заканчиваются на .DOC, .TXT, .PRN называются текстовыми - такие файлы могут быть загружены в текстовый редактор Speccy Write для просмотра.

2) Файлы программы TransFile:

TRANSF <B> - запускаемый файл программы TransFile; tf.exe <C> - основной исполнимый модуль;

TF.DOC <C> - руководство пользователя по TransFile;

3) Файлы программы Speccy Print 2:

SP2 <B> - запускаемый файл;

SP2.EXE <C> - основной исполнимый модуль;

SP2.CFG <C> - файл конфигурации (настройки);

SPCONFIG <B> - программа для создания файлов конфигурации;

SP2.DOC <C> - руководство пользователя по Speccy Print 2;

Создание рабочей копии для дисковой системы TR-DOS.

Для работы с редактором в дисковой системе необходимо переписать все файлы на рабочий диск любым способом, после чего запустить программу "SWRITE". После появления заставки программы нажмите любую клавишу - заставка исчезнет и появится панель открытия файла. Необходимо будет ввести имя дисковода, с которого считать инструкцию по пользованию редактором, а если будете загружать с магнитной ленты - в качестве имени устройства необходимо указать "t". После этого нажмите клавишу ENTER. Затем у Вас запросят имя файла - введите "SW.DOC" и опять нажмите ENTER. Файл будет считан. Вся дальнейшая информация - в этом файле. Кроме того, просмотрите все полученные файлы с псевдорасширением .DOC и .PRN.

SPECCY WRITE VERSION 3.3

Copyright © 1994 Борис Курицын, Черкассы, Украина ДИСТРИБУТИВНЫЙ КОМПЛЕКТ ТЕКСТОВОГО РЕДАКТОРА Speccy Write Version 3.3

Создание рабочей копии для магнитной ленты.

При создании рабочей копии редактора Speccy Write для загрузки с магнитной ленты необходимо записать файлы на ленту в следующем порядке:

1. Program: SWRITE;

2. Bytes: SW.EXE;

3. Program: SW.BAS;

Далее, при необходимости:

4. Bytes: SW.DOC и другие .DOC - файлы.

При создании рабочей копии Speccy Print 2 для загрузки с магнитной ленты необходимо записать файлы на ленту в следующем порядке:

1. Program: SP2;

2. Bytes: SP2.EXE;

3. Bytes: SP2.CFG;

Далее, при необходимости:

4. Program: SPCONFIG;

Настоятельно рекомендуется:

1. Сделать рабочие копии всех программ и пользоваться только ими.

2. Снять с дискеты полную копию и хранить отдельно от основной копии в различных надежных местах. Иначе Вы рискуете потерять единственную копию Speccy Write!

SPECCY WRITE Версия 3.3

ТЕКСТОВЫЙ РЕДАКТОР ДЛЯ SINCLAIR - СОВМЕСТИМЫХ ПЕРСОНАЛЬНЫХ

КОМПЬЮТЕРОВ

Требования к аппаратным средствам:

Sinclair ZX Spectrum 48K - совместимый компьютер, или Sinclair 128K в режиме 48K, возможна работа с учетом особенностей компьютера РОБИК версии 3;

S Kempston joystick (не обязательно);

S Beta Disk Interface (не обязательно).

Введение

Speccy Write является текстовым редактором общего назначения, поддерживающим альтернативную кодировку славянских символов, что позволяет использовать его для подготовки текстов с последующим использованием их на IBM PC - совместимых ПЭВМ. Редактор работает со стандартным форматом записи на магнитную ленту в компьютерах ZXSpectrum и дисковой системой TR-DOS. Рекомендуется также применять KEMPSTON-джойстик для более удобного перемещения курсора. Редактор содержит буферизированный драйвер клавиатуры, что существенно повышает комфортность ввода текста.

К редактору прилагается программа трансферирования TransFile, служащая для импорта файлов, записанных на дискетах системы MS-DOS формата 360 и 720 кб и преобразования их формат файлов редактора Speccy Write.

Драйвер клавиатуры редактора подчиняется системным переменным, определяющим временные и прочие параметры клавиатуры. Таким образом, пользователь может легко настроить клавиатуру "под себя". Драйвер клавиатуры буферизирован, объем буфера 16 символов. С версии 3.2c введен опциональный режим управления от Kempston-джойстика. Изначально он отключен. Джойстик подключается опцией Kempston js [y/n] в команде ext K.

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

Когда Вы вводите текст достаточно быстро, при обработке клавиш не перерисовывается экран, что позволяет обрабатывать Ваш ввод быстрее. Экран будет перерисован, как только Вы сделаете небольшую паузу в наборе.

Память

При загрузке редактор занимает всю доступную системе память, оставляя в области Бейсика ровно столько места, сколько необходимо для работы TR-DOS. В зависимости от версии редактора и загрузчика объем памяти, доступной для редактирования лежит в пределах 29..30 Кб. Объем памяти можно несколько увеличить, используя команду ext sh + H (см. раздел ПРОЧИЕ КОМАНДЫ). Если Вы используете интерфейс принтера, требующий загрузки драйвера, то последний следует поместить в буфере ZX-Printer'а (адреса #5B00 .. #5BFF).

Соглашения описания

В настоящем руководстве введены обозначения:

sh + <символ> обозначает нажатие комбинации клавиш Symbol Shift и <символ> для исполнения описываемой операции;

caps + <символ> обозначает нажатие комбинации клавиш Caps Shift и <символ> для исполнения описываемой операции;

ext <символ> обозначает нажатие клавиши Extend или комбинации Caps Shift + Symbol

Shift с последующим нажатием клавиши <символ>.

Соглашения редактора

Все вопросы редактора, требующие выбора "Да/Нет", заканчиваются знаком "?". Для положительного ответа на такой вопрос нажмите "y". Любая другая клавиша соответствует отрицательному ответу. Все запросы, связанные с полем ввода (курсор типа "инверсный прямоугольник"), можно прекратить, введя пустую строку (кроме команд ext K, ext sh + K и ext sh + Y), а, начиная с версии 2.9, нажав sh + Q. Действие кнопки KEMP STON-джойстика аналогично нажатию клавиши Extend, действие ручки - нажатию клавиш со стрелками. На все разрушающие операции с текстом редактор требует подтверждения, если текущая версия редактируемого файла не была сохранена на внешнем носителе. При невозможности выполнить требуемую операцию по какой-либо причине, редактор выдает непродолжительный звуковой сигнал.

Ответы на вопросы редактора в одних случаях представляют собой нажатие одной клавиши "Y" или "N", в других - нажатия тех клавиш, которые выделены в меню, например, для выбора опции "shell to Dos" необходимо нажать клавишу "D". Но в русском режиме это не сработает. Чтобы выбрать опцию в русском режиме вместо одной лишь клавиши "D", нажмите ext D, или, если Вам больше нравится, временно перейдите в латинский режим и ажмите "D".

На время выполнения команд гасится курсор. Его появление является признаком возможности продолжения работы.

Информация на экране

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

Информационная строка:

Флаговая строка показывает состояние флагов режимов:

•f Lck / Lock, обозначающий, что часть текста заблокирована (смотри главу "Блокировка текста");

S Ind / Indent (Смотри описание команды Caps Shift + 9);

•f Ins / Insert - показывает, что текст вводится в режиме вставки;

•f Nat / National - показывает, что вводятся символы русского, украинского и белорусского алфавита;

•f Cap / Capitals Lock - показывает, что текст вводится заглавными буквами;

S Ext / Extend mode - показывает, что редактор находится в РАСШИРЕННОМ режиме. С использованием этого режима активируется большинство команд редактора.

Если какой-либо из режимов включен, соответствующий флаг виден на экране.

С версии 2.7 в правой колонке экрана расположена ЛИНЕЙКА ПРОКРУТКИ. Она служит для наглядного изображения относительного положения курсора в файле. Вся линейка символизирует файл, бегунок на ней - текущее положение курсора в файле. Верхнее положение бегунка на линейке соответствует началу файла. Для повышения быстродействия расчет линейки ведется в усеченных числах, поэтому:

•S линейка активна только при длине файла, большей 256;

•S количество возможных положений бегунка растет с увеличением длины файла;

•S действительно эффективной линейка становится при длине файла, большей 5120.

Справедливости ради надо отметить, что и необходимость в линейке прокрутки появляется лишь при больших длинах файлов.

Работа на компьютере РОБИК версии 3

Компьютеры РОБИК версии 3 (Selto-ROTOR Computer V03) имеют отличия ПЗУ от стандартного, связанные с преимущественно программной реализацией русификации. В частности, они имеют полностью измененную таблицу скен-кодов клавиатуры. С версии 2.4 Speccy Write поддерживает компьютер РОБИК версии 3. Редактор распознает тип компьютера в процессе загрузки и автоматически заменяет таблицу используемых скен-кодов на специальную.

Команды редактора 7.1. Перемещение курсора.

caps + 5...8 Перемещение курсора на 1 символ в направлении стрелки.

ext caps + 5/8 Перемещение курсора в начало/конец строки.

ext caps +7/6 Перемещение курсора на страницу вверх/вниз.

Inverse Video (caps + 4) Перемещение курсора в начало следующего слова (разделитель слов -пробел).

True Video (caps + 3) Перемещение курсора в конец предыдущего слова. sh + Q Перемещение курсора в начало текста.

sh + W Перемещение курсора в конец текста.

7.2. Изменение состояния флагов.

sh + I Режим вставки/замены: при наборе очередной символ или вставляется в позиции курсора, или заменяет текущий. Если в данной позиции заменять нечего, символ вставляется.

Caps Lock (caps + 2) Флаг режима ввода заглавных букв.

Edit (caps + 1) Флаг режима ввода славянских символов.

Graphics (Caps + 9) Флаг режима Indent. В этом режиме при создании новой строки в нее переносятся все пробелы до первого печатного символа из текущей строки, что удобно при наборе текстов программ.

7.3. Простейшие операции редактирования.

Delete (caps + 0) Удалить символ слева от курсора, в режиме замены - смещает курсор влево.

ext Delete (ext caps + 0) Удалить символ в позиции курсора.

7.4. Деление текста на строки.

Все символы текста редактор рассматривает как отображаемые. И только один символ имеет специальное назначение - символ конца строки ASCII 13 (CR). Клавиша Enter служит для вставки этого символа в текст.

Таким образом, если Вам необходимо создать новую строку за текущей, поставьте курсор в конец строки и нажмите Enter. Если необходимо существующую строку разбить на две, поставьте курсор на первый переносимый символ и нажмите Enter. Если необходимо выполнить обратную операцию - слияние строк, поставьте курсор в начало нижней сливаемой строки и нажмите Delete.

7.5. Выход из программы и внешние операции.

ext Q Внешние операции и завершение работы. Предлагает на выбор:

shell to Dos - временный выход в TR-DOS; возврат в редактор по команде RETURN. Разумеется, из TR-DOS нельзя пытаться запустить другую программу.

User commands - исполнение программы, определенной пользователем. Эту программу Вы должны внести в файл редактора sw.bas <B>, в строках 300.7000. Это может быть программа инициализации клавиатуры, инсталляции драйвера принтера и т. п. Естественно, эта программа не может включать оператор CLEAR. Ваша программа должна оканчиваться оператором RUN. От размера программы зависит размер буфера редактирования. Если Вам нужен максимальный буфер, замените существующую программу на: 300 RUN.

В дистрибутивном комплекте опция User commands инициализирует интерфейс принтера ZX Lprint-III на неинтерпретирующую передачу данных, что необходимо для печати из редактора. После внесения изменений файл должен быть записан командой: SAVE "SW.BAS" LINE 8000 - на магнитную ленту, или командой: PRINT USR 15619: REM: SAVE "SW.BAS" LINE 8000 - на диск (предварительно исходную версию файла необходимо или удалить, или переименовать. Автор рекомендует переименовывать в SW.~BAS.

Quit editor - выход из редактора. В дисковой версии пытается запустить программу boot с текущего дисковода. В случае неудачи выходит в TR-DOS.

Для запуска опции нажмите соответственно D, U или Q. Любая другая клавиша возвращает к редактированию.

7.6. Загрузка и сохранение.

При операциях ввода/вывода появляется панель с названием операции. Вам предлагается ввести или отредактировать имя устройства, с которым будет выполняться операция, как-то: дисководы A, B, C, D и магнитная лента T. Затем необходимо ввести имя файла. Это может быть строка из любых 10-ти символов, но не русских, поскольку на имя, содержащее русские символы, будут "плохо" реагировать большинство программ. Кроме того, при работе с дисководом значимы лишь первые 8 символов имени. Чтобы отличать тексты от других файлов, рекомендуется оканчивать имя псевдорасширением ".txt", например, "HELP.TXT". Редактор проверяет, подключена ли дисковая система перед обращением к ней, что уменьшает возможность потери данных. Если система подключена, но к ней не было сделано ни одного обращения (и система не создала свой резидентный блок параметров), она считается неподключенной. При записи на диск, если файл с указанным именем существует, редактор предлагает или переписать файл заново, или отказаться от записи. ext sh + C Просмотр каталога диска; для возврата нажмите любую клавишу. ext X Открыть файл для редактирования; очищает буфер редактирования и загружает указанный файл.

ext L Догрузка текста в позицию курсора; существующий текст раздвигается. ext S Сохранение всего текста в файле. ext sh + S Сохранение блока как файла.

7.7. Ошибки внешних устройств.

Speccy Write перехватывает все ошибочные ситуации, которые могут вызвать выход в ДОС. Возможно, Вы имеете единственную копию файла, который хотите прочитать, но файл записан с ошибкой. В таком случае:

для диска - нажмите "I" в ответ на запрос TR-DOS: Disc error. Retry, Abort, Ignore? для ленты - нажмите "Y" в ответ за запрос редактора: Tape error. Ignore ?

7.8. Блочные операции.

Специально выделенная часть текста, именуемая блоком, рассматривается как одно целое и выделяется на экране красным фоном. Для выполнения операции копирования блока размером N символов, в буфере редактирования должно быть свободно N*2 байт минимум. Когда устанавливается маркер начала блока, текущий блок (если он существует) снимается, но когда маркер начала уже установлен и устанавливается маркер конца, то его (маркер) можно переставлять неоднократно. Если производится попытка выполнить какую-либо команду работы с блоком, в момент, когда блок не отмечен, выдается предупреждение в виде звукового сигнала.

ext B Установить маркер начала блока, в позиции курсора, если блок существует, он отменяется и переустанавливается в текущей позиции.

ext E Установить маркер конца блока, блок заканчивается на символе ПЕРЕД курсором; конец блока может быть отмечен только после отметки его начала и только ЗА его началом.

ext V Отметить часть текущей строки от курсора до ее конца как блок (НЕ включая символ конца строки).

ext sh + V Отметить часть текущей строки от курсора до ее конца как блок (включая символ конца строки).

ext M Отметить строки текста как блок. Блок начинается со строки, в которой находится курсор. Перемещением курсора (caps + 6,7 или Kempston joystick^) установите нижнюю границу блока и нажмите любую другую клавишу для завершения. ext D Удалить блок.

ext C Скопировать блок в позицию курсора; курсор может также находится в пределах самого

блока.

ext R Снять маркировку блока.

Две следующие операции служат для т.наз. индентирования. Суть процедуры в том, что каждая колонка индентируемого текста сдвигается вправо на количество позиций, равное ширине индентирования. Это выполняется посредством вставки в каждую строку индентируемого текста некоторого количества пробелов. Обратная операция удаляет эти пробелы. Для правильного выполнения операции отмечайте блок так, чтоб он начинался в первой позиции строки. Если строка лишь частично охвачена блоком, она также индентируется. Лучший метод отметить блок для индентирования - использовать команду ext M.

ext O Индентировать блок. Допустимые значения 0-999.

ext sh + O Деиндентировать блок. Допустимые значения 0-999.

Относительно вывода блока на печать - смотри раздел ПЕЧАТЬ.

Относительно сохранения блока в виде файла - смотри раздел ЗАГРУЗКА И СОХРАНЕНИЕ.

7.9. Поиск и замена.

ext F Поиск и замена по контексту. Предлагается ввести 2 строки: что искать и на что заменять. Если строка замены пустая, выполняется только поиск. Поиск ведется от положения курсора до конца текста. При обнаружении вхождения предлагается: Change - заменить и продолжить поиск; change All - заменить это и последующие вхождения; Next - искать следующее вхождение; Quit - прекратить поиск. Прерывается нажатием любой клавиши. Во время выполнения операции линейка прокрутки показывает позицию поиска.

ext G Продолжение или повторное исполнение команды 'поиск/замена' с параметрами, установленными в последний запуск команды ext F с текущего положения курсора.

7.10. Печать.

Может использоваться любой принтер, подключенный через любой интерфейс стандартным образом на поток #3. Из ранних версий редактора можно было печатать русскоязычные тексты, только если принтер поддерживает альтернативную кодировку символов IBM PC или если в принтер загружен шрифт кодовой страницы 866 (принтеры D100E/PC, Epson и т. п.). Начиная с версии 1.97, редактор поддерживает принтеры, способные печатать текст в кодировке КОИ 8. Поскольку нет общего метода включения кодировки КОИ 8, редактор не реализует это переключение. Выполняйте включение режима "КОИ 8" на принтере до запуска редактора методом, специфичным для Вашего принтера. Действия по включению КОИ 8 Вы можете встроить в редактор через опцию User Commands (см. команду ext Q).

ext W Печать всего текста на принтере.

ext sh+W Печать блока на принтере.

ext J Протяжка страницы на принтере.

ext K Установка параметров вывода на принтер; ответ на каждый вопрос может быть y("да") или n(" нет"); вопросы:

Send LF? определяет, нужно ли передавать на принтер код Line Feed вместе с кодом Carriage Return. Это зависит от драйвера и принтера. Данная установка по смыслу соответствует опции Line Feed в меню Print графического редактора Art Studio;

Eject page? нужно ли выбрасывать страницу из принтера после выполнения команды печати.

KOI 8 Recoding? нужно ли перекодировать текст в КОИ 8. В этом случае все символы, не имеющие отображения в кодировке КОИ 8, выводятся как "*".

Kempston js: "Y" указывает, что необходимо обрабатывать Kempston - джойстик как курсорные клавиши, а кнопку джойстика - как клавишу Extend.

7.11. Блокировка текста.

Нетрудно видеть, что редактор работает несколько замедленно. Этот недостаток является продолжением его достоинств. В редактор введено средство, имитирующее уменьшение длины текста, что позволяет ускорить обработку. Суть команды блокировки ext P в том, что часть текста от его начала до курсора "прячется" в специальном буфере блокировки и на это время перестаeт быть доступной для редактирования. Повторное введение команды разблокирует текст. Узнать длину заблокированного текста можно, используя команду ext U. При блокировке/разблокировке текста сбрасывается отметка блока. При многих операциях (например, операциях ввода/вывода), текст разблокируется (и, как следствие, сбрасывается отметка блока).

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

7.12. Форматирование текста.

Функции форматирования применяются при редактировании текстов для придания им эстетичного вида. Функции форматирования редактора Speccy Write позволяют представить текст в виде определенного количества колонок, с разрывом слов или без него, с выравниванием правого края или без него, с включением левого поля, с созданием абзацного отступа. Также возможно центрировать заголовки. Другими словами, в этой области редактор Speccy Write не уступает по возможностям наиболее развитому редактору The Last Word 2. Более того, с версии 3.1 Speccy Write способен разбить текст на страницы, вставить номера страниц, их заголовки. При этом он учитывает расположение страниц на двух сторонах листа. На эти действия не способен ни один из известных автору редакторов на ZX Spectrum.

Подробное описание команд форматирования вынесено (см. ниже) в ПРИЛОЖЕНИЕ 1 (или файлы SWA1.DOC, SWA1.PRN на дистрибутивном диске).

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

ext U Показывает объем свободной памяти, размер блокированного текста, размер блока. ext N Переход к строке по ее номеру. Допустимы значения 0-65535. ext H Выдает на экран список команд редактора в краткой форме.

ext sh + H Удаляет из памяти команду ext H, освобождая тем самым около 900 байт для буфера редактирования дополнительно.

ext I Просмотр таблицы кодировки символов или ввод символа, не имеющего отображения на клавиатуре. Для возврата к редактированию нажмите пробел, перемещение курсора - как обычно, для ввода выбранного символа в текст - Enter.

ext A Изменение регистра латинских символов от курсора до конца строки. ext P Блокировать текст от начала до курсора; если текст уже блокирован - он разблокируется; смотри раздел "Блокировка текста".

ext Z Удаляет из буфера весь текст.

Русификация

Выбранное расположение русских символов на клавиатуре (имеющее полуофициальное название "ЯВЕРТЫ") аналогично правилам транслитерации английских текстов и поэтому очень легко запоминается. Оно также соответствует русификации редактора The Last Word 2, редактора ZX WORD, встроенного редактора PROFESSIONAL HACKER'S TOOL. Кроме того, применяющийся набор символов позволяет редактировать тексты на украинском и белорусском языках. Те символы, которые встречаются в таблице один раз, подчиняются флагу CAPS LOCK. Остальные вводятся заглавными или прописными через отдельные комбинации клавиш.

Совместимость

Вообще говоря, редактор очень мало зависит от функций ПЗУ и несовместимость на этой почве маловероятна. Все же, ниже приводится полный список областей ПЗУ и системных областей, содержимое которых небезразлично для Speccy Write:

1. Весь драйвер клавиатуры; от KEY_SCAN (#28E) до (#3B4).

2. Модуль поддержки динамика; от BEEPER (#3B5) до (#3F7).

3. Драйвер магнитной ленты; от SA_BYTES (#4C2) до конца LD_BYTES (#604).

4. Подпрограмма BORDER_A (#2297).

5. Подпрограмма FREE_MEM (#1F1A).

6. Подпрограмма CLS (#D6B).

7. Подпрограмма CH_OPEN (#1601).

8. Прерывание RST #10.

9. Исполнитель системных функций TR-DOS (#3D13).

.и связанные с ними системные переменные. Версия TR-DOS должна быть не ниже 5.01. ПРИЛОЖЕНИЕ 1

Форматирование текста 1. Форматирование абзацев.

Единицей форматирования является ПАРАГРАФ (абзац) - последовательность строк, отделенная от нижележащей части текста пустой строкой. Обратите внимание, что эта пустая строка не может содержать не только видимые символы, но даже пробелы.

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

A

<->

B

 <->Комната была в три окна, у двери стоял голый

демонстрационный стол, у стены напротив - другой стол, покрытый зеленой суконной скатертью. В углу возвышался C чудовищный коричневый сейф; комендантский столик,

 <->заваленный канцелярскими папками, ютился у его подножия.

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

(А. и Б. Стругацкие, "Сказка о Тройке")

Здесь: A - ширина строки (line length)

B - левое поле для первой строки (1st margin) C - левое поле (left margin) Приведенный выше абзац был отформатирован в режимах ВЫРАВНИВАНИЕ, ПЕРЕНОС (Justify: Y, Word Wrap: Y). А вот как он выглядит с отключенным выравниванием (JustifyN):

Комната была в три окна, у двери стоял голый демонстрационный стол, у стены напротив - другой стол, покрытый зеленой суконной скатертью. В углу возвышался чудовищный коричневый сейф; комендантский столик, заваленный канцелярскими папками, ютился у его подножия. В комнате был еще один столик под табличкой "Научный консультант" и гигантский, на полторы стены, матерчатый лозунг: "Народу не нужны нездоровые сенсации. Народу нужны здоровые сенсации". Я покосился на Эдика, Эдик, не отрываясь, глядел на лозунг. Эдик был убит.

И с отключенным переносом:

Комната была в три окна, у двери стоял голый демонст рационный стол, у стены напротив - другой стол, покрытый зеленой суконной скатертью. В углу возвышался чудовищный коричневый сейф; комендантский столик, заваленный канцеля рскими папками, ютился у его подножия. В комнате был еще один столик под табличкой "Научный консультант" и гигантс кий, на полторы стены, матерчатый лозунг: "Народу не нужн ы нездоровые сенсации. Народу нужны здоровые сенсации". Я покосился на Эдика, Эдик, не отрываясь, глядел на лозунг. Эдик был убит.

Понятно, что если режим переноса не включен, вид текста не зависит от флага ВЫРАВНИВАНИЕ.

ТАКИМ ОБРАЗОМ: Режим выравнивания - состояние, когда после форматирования строки она равномерно дополняется пробелами, чтобы правая граница всех строк была на одном уровне,

165

определенном параметром <ширина строки>. Режим выравнивания эффективен только если включен режим переноса слов.

Режим переноса - состояние, когда слово, не вмещающееся на текущей строке, переносится на следующую строку ЦЕЛИКОМ. В другом случае на следующую строку переносится лишь часть слова. Режим не действует, если в тексте встречается слово, более длинное, чем ширина строки.

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

1. Знаки препинания набирайте за словом без пробела.

2. За знаками препинания всегда ставьте пробел.

3. Текст в скобках (или в кавычках) не должен быть отделен от скобок пробелами.

4. Абзацы разделяйте пустой строкой.

5. Если знак "-" обозначает тире - ставьте по пробелу с обоих сторон знака, если дефис -набирайте его слитно со словами.

ext sh + K Установка параметров форматирования. Последовательно запрашиваются все описанные параметры. Числовые параметры могут быть в пределах 0.255, логические вводятся так же, как в команде ext K (см. раздел ПЕЧАТЬ).

ext T Форматировать параграф. Курсор должен находиться на первом символе параграфа. Концом параграфа считается ближайшая пустая строка. Операция может занять некоторое время.

ext sh + T Форматировать текст от курсора до конца файла. Текст должен содержать ОДНУ пустую строку в конце каждого предполагаемого параграфа. Операция может занять значительное время. Прерывается нажатием клавиши. Реакция на нажатие может проявиться не сразу. В процессе форматирования линейка прокрутки показывает позицию обработки. Последний обработанный параграф выделяется как блок.

2. Центрирование заголовков.

ext Y Центрировать строку. Значимые символы текущей строки размещаются посередине строки. Расчет ведется, исходя из ширины строки и левого поля.

3. Форматирование страниц.

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

Схема форматирования страницы такова:

A —> Приложение 1. D—> 35

B —> -

C Здесь расположены абзацы <->страницы.

Заголовок в общем случае различен для четных и нечетных страниц разворота

Нумерацию страниц можно начать с любого значения.

Здесь:

A - Строка заголовка. Приведен пример для нечетной страницы.

B - Разделитель из табличных символов.

C - Упоминавшееся ранее ЛЕВОЕ ПОЛЕ (left margin).

D - Номер страницы.

Размещение заголовков, левое поле и ширина строки определяются уже знакомыми Вам параметрами из команды ext sh + K. Кроме того, определяются:

•S Заголовок для четных страниц (Even page header)

•S Заголовок для нечетных страниц (Odd page header)

S Номер первой страницы текста (1st page number)

•S Длина страницы в строках (Page length) - без учета трех строк заголовка

Итак, для форматирования страниц:

•S Убедитесь, что параметры команды ext sh + K соответствуют действительному формату текста

•S Дайте команду постраничного форматирования ext sh + Y; введите все вышеуказанные параметры и нажмите "Y" в ответ на последний запрос Start paging?

ОБРАТИТЕ ВНИМАНИЕ: страницы разделяются символом перевода формата FORMAT FEED (ASCII 12), и первая строка заголовка выглядит смещенной на один символ вправо на экране, но не на бумаге.

4. Рекомендации.

Если Вы набираете текст какого-либо издания и т.п., то Вам следует прислушаться к следующим рекомендациям:

1. Заглавную страницу, предисловие, каждую главу храните в отдельном файле.

2. При первоначальном наборе текст можно не форматировать.

3. По окончании редактирования форматируют абзацы, а затем - страницы.

4. Расположение глав в разных файлах позволяет делать информативные заголовки, например: для файла главы 2 заголовки "Раздел 1. Окружности, дуги и полигоны" и "Глава 2. Заполнение контура", а для главы 3 первый заголовок тот же, а второй "Глава 3. Линии любой толщины". Возможность указать начальный номер страницы позволяет делать сплошную нумерацию.

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

ПРИЛОЖЕНИЕ 2

Кое-что о подключении принтера и не только

Автор неоднократно встречался с полным непониманием или извращенным пониманием технологии подключения устройств к компьютерам ZX Spectrum; поэтому в настоящем приложении описано все, касающееся этой темы.

1. Интерфейс ПРОГРАММА - УСТРОЙСТВО.

ZX Spectrum использует UNIX-подобную концепцию каналов и потоков. В чем же она состоит?

Канал, обозначаемый буквой латинского алфавита, символизирует УСТРОЙСТВО. Например, ZX Spectrum поддерживает следующие стандартные устройства:

K - (Keyboard - клавиатура) нечто, соответствующее понятию "консоль", т.е. пульт управления; нижнее окно дисплея по выводу, клавиатура по вводу; является особенным для ZX Spectrum; S - (Screen - экран) верхнее окно дисплея по выводу; ввод невозможен; P - (Printer - принтер) принтер по выводу (именно ZX Printer); ввод невозможен; R - (RAM - ОЗУ) внутрисистемный канал, предназначенный для повышения эффективности программ; символы, выводимые в этот канал, попадают в БУФЕР РЕДАКТОРА КОМАНДНОЙ СТРОКИ И ВВОДА; т. е. если вывести в этот канал строку символов, а затем вызвать встроенный редактор (тот самый, который реализует оператор INPUT), то эта строка будет предложена пользователю для редактирования в нижнем окне экрана.

Подключение дополнительных устройств расширяет набор каналов.

Каждый канал имеет блок описания - ракорд канала (channel record), который содержит информацию о связывании функций ввода/вывода системы и канала. Все ракорды размещены последовательно в области памяти, адрес начала которой записан в системной переменной CHANS (адрес 23631, слово). За последним ракордом находится маркер конца - байт со значением 80h. Общий формат ракорда в нотации ассемблера таков: DEFW print_out DEFW input_in DEFB channel_name DEFW internal1, internal2 DEFW record_length DEFS record_length-11 Здесь:

PRINT_OUT - Адрес процедуры вывода символа в канал; символ в регистре A; теневой набор регистров не должен разрушаться. Процедура завершается командой RET. Если данный канал не поддерживает вывод информации, процедура вывода заключается в инициации ошибки: RST 8 ;прерывание ошибки DEFB 23 ; ошибка Invalid ; stream - неверно ; используется поток

INPUT_IN - Адрес процедуры ввода символа из канала; символ должен помещаться в регистр A, кроме того, должны быть установлены флаги:

CF=1 - Символ действительно получен с устройства и передан через регистр A. Иначе флаг CF должен быть сброшен в 0 и установлено:

ZF=1 - если устройство не готово дать следующий символ. Иначе

ZF=0 - будет означать, что в канале наступила ситуация КОНЕЦ ФАЙЛА, которая обычно индуцируется ошибкой End of file. При необходимости подпрограмма доступа к каналу сама инициирует эту ошибку.

Такая система оповещения предусмотрена для того, чтобы можно было реализовать не только операцию INPUT#, но и ввод без ожидания INKEY$# так, чтоб для канала эти операции никак не отличались.

Если канал на поддерживает ввод, он должен инициировать ошибку (как показано для print_out).

CHANNEL_NAME - Содержит символ имени канала. Естественно, они не должны повторяться.

INTERNAL - Использование этих двух слов в разных реализациях различно. Так, в Interface One они содержат истинные адреса print_out и input_in в дополнительном ПЗУ, а в канале виртуального диска Spectrum 128K первое слово содержит сигнатуру (обозначение) пользовательского канала (число 1234h), а второе - адрес процедуры закрытия канала close. Эти слова можно определить как внутренние.

RECORD_LENGTH - Слово содержит длину ракорда канала (минимум 11). Это позволяет хранить за ракордом буфер и/или любую дополнительную информацию, связанную с каналом. Например, в TR-DOS, в канале "D", связанном с файлом последовательного доступа, хранится буфер для собираемого из символов 256-байтного сектора, счетчик байтов в буфере, указатель места на диске для записи сектора. На приведенной выше схеме ракорда канала эта дополнительная область обозначена как DEFS.

Для указанных выше стандартных каналов ракорд сокращен - он содержит только 3 первые строки вышеприведенной схемы. Эти каналы первые в списке и вставлять свои ракорды можно только за ними, перед маркером конца.

Для создания места в области CHANS с целью помещения туда нового ракорда канала необходимо использовать подпрограмму ПЗУ MAKE_ROOM, для удаления ракорда - подпрограмму RECLAIM_2.

Второй элемент концепции - ПОТОК (stream). Он символизирует поток данных, направляющихся из программы в устройство через канал. Поток обозначается номером от 0 до 15. На самом деле есть еще потоки с номерами -3,-2,-1, но они являются потоками операционной системы и могут переопределяться только со специфическими целями.

Поток подключается к каналу оператором Бейсика: OPEN #stream,channel$

Здесь stream - номер потока, channel$ - символьная переменная с именем канала. Например: OPEN #6,"K"

подключит поток 6 к каналу "K". Это можно проверить:

PRINT #6,-"Hello, World!": PAUSE 0

выведет в нижнее окно экрана приветствие. То же самое со вводом:

INPUT #6;"Type line:";LINE a$: PRINT a$

- от Вас требуется ввести строку, которая будет напечатана на вернем поле экрана. Аналогично можете испробовать INKEY$ #6.

Точно также можно указать поток для LIST: LIST 200,#6

По окончании работы поток необходимо закрыть:

CLOSE #6

Идея всей этой технологии состоит в том, что программа становится независимой от устройств ввода/вывода - она просто пользуется потоками. А их можно переназначить на требуемые в данный момент устройства.

Со стандартными каналами связаны "стандартные" потоки: #0 и #1 с "K", #2 с "S" и #3 с "P". Несложно догадаться, что PRINT это тоже самое, что и PRINT #2, LPRINT - PRINT #3, LLIST - LIST #3, INPUT - INPUT #0 и INKEY$ - INKEY$#0.

Состояние потоков описано в системной области STRMS (начинается с 23568, длина 19 слов). Каждое слово этой области описывает один поток (-3,-2,-1,0,1,2 и т.д). Оно содержит 0 для закрытого потока или смещение от начала области CHANS до ракорда того канала, к которому подключен этот поток. Это значение увеличено на 1.

Например, описатель потока, подключенного к каналу S, будет содержать значение 6, т.к. канал S - второй в списке с сокращенным ракордом (длиной 5 байт), а 5+1=6.

Необходимо знать, что ошибка в ПЗУ приводит к тому, что нельзя пытаться закрыть зыкрытый

поток.

Также следует учесть, что из Бейсика Вы сможете открыть потоки только на стандартные каналы, поскольку их открытие может сопровождаться специфичными действиями в устройстве. Поэтому TR-DOS имеет свои команды для открытия/закрытия потоков, а ZX Interface One расширяет возможности оператора OPEN.

Для доступа к таблице потоков используется подпрограмма ПЗУ STR_DATA, для установки текущего потока - CH_OPEN, для вывода символа в поток - PRINT_A_1 (RST 16), для считывания символа из потока - WAIT_KEY.

Следует помнить, что подпрограмма CLS заносит адрес совмещенного драйвера каналов K,S,P в ракорд текущего используемого потока. Поэтому при ее вызове обязательно должен быть текущим поток 0,1 или 2.

Адреса и подробную информацию об упомянутых выше и ниже подпрограммах ПЗУ Вы найдете в "Полном дизассемблере ПЗУ Spectrum" Логана и О'Хары.

2. Конкретно о принтерах.

Вполне нормально в отношении принтера не создавать новый канал, переоткрывать на него поток и т. д.

Ведь есть стандартный канал P, в ракорде которого можно просто подменить адрес print_out. Саму процедуру в большинстве случаев можно разместить в бывшем теперь буфере ZX - принтера (256 байт с адреса 23296).

Нужно учесть, что в ZX Spectrum символ табуляции имеет код 6, а ее размер - 16, в то время как на "нормальных" принтерах код табуляции 9, а размер - 8. Поэтому процедура print_out, получив код 6, должна передать на принтер вместо него два кода 9. Далее, необходимо перекодировать символ "копирайт" в другой, например, в "@". Токены нужно передать посимвольно, взяв тексты токенов из таблицы в ПЗУ по адресу 95h, или использовав подпрограмму PO_MESSAGE с рекурсивным вызовом драйвера (поскольку сама подпрограмма использует RST 16).

Ещё одна проблема: символ CR (код 13). У принтеров есть режим, когда код CR возвращает каретку к началу строки, а LF (код 10) переводит строку. Большинство принтеров имеет DIP-переключатели, позволяющие установить режим, когда оба действия выполняются по коду CR, но некоторые такого режима не имеют. Поэтому лучше такой вариант предусмотреть в драйвере, а принтер оставить в режиме "раздельной реакции".

Наконец, для печати графики из программ необходим вариант драйвера, который не делает никаких перекодировок.

3. Совместимость.

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

Порты устройств компьютеров ZX Spectrum.

Адрес_Назначение_

xxFE по чтению - клавиатура, по записи - звук, магнитная лента, BORDER дисплея

1F Kempston Joystick Interface

3F Dk'Tronics Light Pen

FB ZX Printer

Порты ZX Interface 1 EF control status

E7 data

F7 RS-232 / Network

Порты ZX Interface 2 EFFE IF2 joystick 1

F7FE IF2 joystick 2

Порты Beta Disk Interface (доступ блокирован, несовместимости не вызывают)

FF control / state

1F command / status

3F track

5F sector

7F data

Специальный порт

FF этот порт специально не реализован; поскольку на его запрос не отвечает ни одно

устройство, он всегда содержит значение системной шины данных в высокоимпедансном состоянии, равное FF. Но в фирменном Sinclair среди значений FF иногда "проскальзывают" значения текущего выводимого на дисплей атрибута, что позволяет играм более точно синхронозироваться с обновлением видеопамяти -именно по этой причине некоторые игры не работают на Sinclair - совместимых моделях.

Порты музыкального процессора AY-3-8910, AY-8912, YM2149F. FFFD index

BFFD data

ПРИЛОЖЕНИЕ 3

Перевод сообщений, выдаваемых редактором Untitled - "Неименованный" текст в поле имени файла, пока оно не установлено. nn free, mmm locked, zzz marked as block - n байтов памяти свободно, m байтов текста блокировано, z байтов отмечено как блок.

Line number - Введите номер строки Delete block? - Удалить блок?

File not saved. Quit? - Файл не сохранен. Выйти из редактора?

Changes will be lost? - Изменения будут потеряны? (при открытии файла)

Zap text? - Стереть весь текст?

Find what - Что искать.

Change to - На что заменить.

Change | change All | Next | Quit - Заменить | заменить все | следующий | выход.

Save block... - Сохранить блок как файл.

Merge file. - Слить файл.

Save file. - Сохранить файл.

Open file. - Открыть файл.

Drive (a..d,t) - Выберите устройство (из a,b,c,d,t).

Filename - Имя файла.

Start tape. - Запустите ленту и нажмите клавишу. Overwrite file? - Переписать существующий файл на диске? I/O error! - Ошибка ввода/вывода!

Found:XXXXXXX loading - Найден файл XXXXXXX - загружается.

Found:XXXXXXX too big - Найден файл XXXXXXX - слишком большой.

File too big - Файл слишком большой.

No such file - Нет такого файла.

Print text? - Печатать текст?

Print block? - Печатать блок?

Send LF - Передавать символ перевода строки на принтер?

Eject page - Выбрасывать последнюю страницу ?

KOI 8 recoding - При выводе на принтер перекодировать в КОИ 8?

Printing. Press BREAK to cancel - Выполняется печать. Нажмите BREAK для прерывания.

No Beta Interface! - Интерфейс дисковода не подключен!

Indentation depth - Глубина индентирования.

Unindentation depth - Глубина деиндентирования.

Line length - Ширина строки.

1st margin - Левое поле первой строки абзаца.

Left margin - Левое поле.

Justify - Выравнивание.

Word wrap - Перенос слов.

Invalid parameters! - Несовместимые параметры форматирования!

Format from cursor? - Форматировать текст с позиции курсора ?

Remove HELP? - Удалить команду HELP (ПОМОЩЬ) из памяти?

Mark lines: Up, Down, Space - Выделите блок строк, используя стрелки и пробел.

Even/odd page header - Чётный/нечётный заголовок страницы.

1st page number - Номер первой страницы.

Page length - Длина страницы.

Start paging? - Начать деление на страницы?

Catalogue of (a.d) - Выберите имя дискового устройства для просмотра каталога.

МАЛЕНЬКИЕ ХИТРОСТИ В SPECCY WRITE. 1. Настройка клавиатуры.

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

Клавиатура в ZX Spectrum подчиняется трем системным переменным, называемым RepDel, RepPer и Pip. Переменная RepDel (адрес 23561, байт) устанавливает задержку до начала автоповтора кода, если клавиша удерживается нажатой длительное время. Автор рекомендует засылать в эту переменную значение 15.

Переменная RepPer (адрес 23562, байт) устанавливает задержку между последова- тельными опросами портов клавиатуры драйвером на прерывании. Собственно, она задает скорость автоповтора. Автор рекомендует значение 3.

Переменная Pip (адрес 23609, байт) устанавливает длительность звукового сигнала по нажатию клавиши. Автор предпочитает значение 4. Для тех, кто знает ассемблер и систему ZX Spectrum: значение этой переменной рассматривается как длительность, а значение #C8 как высота тона для вызова подпрограммы ПЗУ Beeper (адрес #3B5), когда необходимо отработать звук клавиатуры.

Итак, Вы можете создать маленькую программку на Бейсике: 10 REM моя любимая клавиатура 20 REM конкретные значения 30 REM указаны для примера 40 POKE 23561,15: REM RepDel 50 POKE 23562,3: REM RepPer 60 POKE 23609,4: REM Pip

Записав её на ленту командой: SAVE "kbdsetup" LINE 10 или на диск командой: PRINT USR 15619: REM: SAVE "kbdsetup" LINE 10 Вы можете каждый раз, когда включаете компьютер, запускать эту программу. Ее эффект сохраняется и после команды NEW, но, естественно, не сохраняется после нажатия RESET или команды PRINT USR 0. Учтите, что многие программы (как, скажем, CONVER 3.03) довольно бесцеремонно изменяют эти переменные. Тогда запускайте эту программу непосредственно перед запуском редактора.

2. Редактирование текстов программ для GENS 4.

Несмотря на то, что Speccy Write не имеет каких - либо специальных средств для редактирования текстов программ в формате ассемблера GENS 4, это всё же задача очень простая.

Необходимо просто набирать метки с первой позиции строки, мнемонику команд с позиции 8, а операнды - после мнемоники через один или несколько пробелов. Например: ; Self-destruction program... *L+ *C-*D+

*H Written by Genius. ORG 50000 ENT 50000

ENTRY LD A, 2

CALL #1601 ;stream open LD DE,MESSG LD BC,MESSGL CALL #203C ; string out RST 0 ; system reset

MESSG DEFM Oooo.. Ooo...

DEFM I wanna die!!! DEFB 13 MESSGL EQU $-MESSG

Теперь отметьте весь текст как блок (sh+Q, ext B, sh+W, ext E) и проиндентируйте на 2 символа (ext O 2 ENTER). На месте этих двух пробелов GENS поставил бы номер строки.

Собственно, файл можно записывать (ext S имя_устройства ENTER имя_файла ENTER) и переходить к работе в GENS^.

Загрузив файл в GENS^, первым делом дайте команду расстановки номеров строк (N 1,1 ENTER). Теперь Вы можете свободно работать с текстом.

Когда Вы вернетесь для продолжения редактирования файла в Speccy Write, включенный режим Indent (включается нажатием caps + 9) поможет Вам автоматически поддерживать те самые 2 пробела в начале каждой строки.

ПРОГРАММА ПЕЧАТИ ФАЙЛОВ SPECCY PRINT 2 Version 1.2

Speccy Print 2 предназначена для печати файлов в графическом режиме на EPSON-совместимых принтерах. Программа печатает символы в матрице 8x6 точек. Применяется, если принтер не поддерживает кодировку русских символов (КОИ-8 или MicroSoft 866), из-за чего невозможна печать непосредственно из редактора. При необходимости может применяться для печати файлов редактора The Last Word 2 с ограничениями: только латинские символы, неприменение Printer Control Tokens и тому подобных специальных средств. Кроме того, файл редактора The Last Word 2 не должен содержать "мягких" переводов строки; т. е. каждая строка текста должна быть отдельным абзацем. Без ограничений могут печататься файлы редактора ZX WORD.

Управляющие символы входного файла (ASCII 0 .. ASCII 31) печатаются по своему изображению в редакторе SPECCY WRITE, кроме символов:

ASCII 13 (CR), который обозначает переход на новую строку;

ASCII 10 (LF), который применяется в редакторе ZX WORD; этот символ игнорируется;

ASCII 12 (FF), который передается на принтер и вызывает протяжку бумаги к началу новой страницы.

Принтер может быть подключен через любой интерфейс, но перед запуском Speccy Print 2, если это необходимо, интерфейс должен быть переведен в неинтерпретирующий режим передачи данных. Например, для интерфейса ZX LPRINT III необходимо подать команду: LPRINT : LPRINT CHR$ 5

Если интерфейс требует загрузки драйвера принтера, то драйвер должен быть помещен в буфере ZX Printer^ (адреса #5B00..#5BFF) и установлен обычным образом как канал "P" на поток #3.

Программа в некоторых пределах способна настраиваться на принтер. Это предусмотрено в связи с тем, что, во-первых, не каждый принтер поддерживает все коды управления, и, во-вторых, каждый пользователь имеет свои требования к печати.

Настройка (конфигурация) программы хранится в виде файла SP2.CFG вместе с самой программой и загружается в процессе загрузки Speccy Print 2.

Для создания нового файла конфигурации с другими установками используется программа SPCONFIG.

Запуск программы.

И для ленты, и для диска программа запускается командой LOAD "SP2" из СОС или TR-DOS соответственно. После загрузки появляется заставка и меню команд.

Команды меню.

Для запуска любой команды необходимо нажать подсвеченную в этой команде букву, а затем ENTER.

Load file - Загрузить файл. Запрашивает устройство (дисководы A..D или лента T) и имя файла, после чего загружает его и сообщает длину файла.

disk Cat - Запрашивает имя дисковода и показывает каталог диска.

Print buffer - Печать загруженного файла. Можно прервать нажатием BREAK, если это предусмотрено в драйвере принтера.

print Options - Установка опций печати. В данной версии запрашивается лишь одно - нужно ли для перевода строки на принтере передавать код ASCII 10 (LINE FEED). Quit program - Осуществляет выход из программы.

SPCONFIG Version 1.2 ПРОГРАММА СОЗДАНИЯ ФАЙЛОВ КОНФИГУРАЦИИ ДЛЯ "SPECCY PRINT 2"

Для графической печати Вы должны выбрать по руководству принтера следующие коды:

1. Кодовая последовательность для включения устраивающего Вас по плотности графического режима; запомните, сколько точек в строке может напечатать выбранная команда (но это количество не может быть больше 1000). (рекомендуется ESC * <plotter_mode>, т.е. кодовая последовательность 27,42,5 - 576 точек в 10-дюймовой строке, получится 92 символа в строке)

2. Кодовая последовательность установки расстояния между строками. (рекомендуется ESC A <11>, т.е. 27,65,11)

Кроме того, убедитесь, что Ваш принтер: S переводит строку по коду LF (ASCII 10) S возвращает курсор по коду CR (ASCII 13)

•S по выбранной выше команде печатает графику 8-ю иголками, при этом младшему биту байта данных соответствует нижняя игла, а после команды графической печати должна быть передана длина образа как слово в формате INTEL (младший байт - первый) Если эти условия не выполняются, Speccy Write 2 не сможет работать с Вашим принтером. Программа запросит параметры в следующем порядке:

1. Количество точек в строке в выбранном графическом режиме (не более 1000).

2. Кодовая последовательность для включения этого режима (набор чисел, разделенных запятой; всего не более 8 чисел).

3. Кодовая последовательность установки величины расстояний между строками - аналогично. Указанные выше рекомендуемые параметры можно выбрать, просто нажимая ENTER в ответ

на вопросы.

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

При записи на ленту, убедитесь, что новая версия файла SP2.CFG помещена на место старой. При записи на диск, предварительно переименуйте старую версию SP2.CFG, например, в -SP2.CFG.

ПРОГРАММА КОНВЕРТИРОВАНИЯ ФАЙЛОВ TRANSFILE v2.6

Программа предназначена для конвертирования текстовых файлов системы MS-DOS в CODE-файлы системы TR-DOS v5.xx. При написании программы использовались общая идея и некоторые подпрограммы, почерпнутые из программы неизвестного автора под названием "IBM".

Краткая инструкция.

Предлагаемая Вашему вниманию программа способна прочитать текстовый файл с дискеты системы MS-DOS, преобразовать его, удалив присущие этим системам символы LF в конце каждой строки и записать его на дискету системы TR-DOS.

Программа ориентирована на преобразование файлов для редактора Speccy Write или другого, поддерживающего альтернативную кодировку символов системы MS-DOS.

Вообще говоря, дискета MS-DOS имеет довольно сложную структуру, которая отнюдь не тривиальна для поддержки. Поэтому TransFile выдвигает определенные требования к дискетам MS-DOS:

1. Дискета должна иметь формат 360 или 720 кб.

2. Таблица FAT должна показывать непрерывную структуру дискеты (этого легко добиться, обработав дискету программой Speed Disk из пакета Norton Utilities, или программой Compress из пакета PCTools, или еще проще - записав переносимые файлы на совершенно чистую дискету).

3. Файлы, которые Вы собираетесь конвертировать должны находиться в корневом (например, A:myfile.txt) каталоге диска MS-DOS.

4. Если необходимо, удалите из конвертируемых файлов символы табуляции (например, при помощи редактора Norton Editor).

Файл в системе MS-DOS может иметь любую длину. Если будет необходимо, программа TransFile запишет его на диск TR-DOS набором файлов, имена которых будут отличаться последней буквой. Максимально допустимая длина этих файлов определяется пользователем.

Работа с программой.

Если Вы используете 80-дорожечный дисковод и до запуска TransFile давали команду "40", то перед запуском программы дайте команду "80".

Запустите программу. Первым делом у Вас будет запрошена допустимая длина файлов в TR-DOS. Она зависит от того, какой редактор Вы будете использовать или от Ваших особых требований.

После этого программа догружает свой файл, появляется copyright-сообщение и предлагается выбрать команду из списка:_

Команда вводится нажатием единственной большой буквы в ее названии.

Программа всегда дает команду на установку дискеты TR-DOS или MS-DOS. Будьте осторожны и не спутайте дискеты, т. к. это может вызвать зависание программы или системы TR-DOS.

toggle Mode - Сменить режим. Устанавливает режим дисковода при чтении дискеты MS-DOS.

pc Directory - Просмотр каталога диска MS-DOS.

tr Catalogue - Просмотр каталога диска TR-DOS.

Copy file - Скопировать файл. Запрашивает имя файла на диске MS-DOS и копирует его на диск TR-DOS, преобразуя формат и разделяя на блоки, если нужно. При большой длине файла копирование будет происходить в несколько этапов с запросом на смену диска.

Имя файла вводится как в MS-DOS, например: в каталоге: Directory of B:*.* A . TXT

PN83 .TXT SUBWAY .

NORTON .INI вводите: "a.txt" или "subway".

Quit program - Выход из программы. Пытается запустить программу boot с текущего дисковода.

По вопросам улучшения программ, обмена опытом, получения справок и любым другим Вы можете связаться с автором, написав по адресу:

257010, Украина, Черкассы-10, а/я 1529, Курицыну Б.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Вступление - Привет всем читателям нашей газеты,вот уже и четвертый выпуск.
Об игрушках - Ikari warriors
Юмор - Почему ваш выбор-лучший (замуж за программиста).
Программирование - "цветные" точки и линии, градиентная заливка, конверсия в 256 цветов.
Аперативчик - Конкурс на самую глючную взломанную версию журнала.

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