«ВОЛШЕБНАЯ» КНОПКА MAGSC
Видимо, отдавая себе отчет в большой сложности переноса программ
с ленты на дискеты (а особенно это касается защищенных коммерческих
программ), авторы TR-DOS предприняли меры кардинально решить этот
вопрос. За основу была взята простая идея — создание на дискете копии
конфигурации компьютера (содержимого оперативной памяти, регистров и
состояний микропроцессора) в некоторый момент X, и последующее восста-
новление этой конфигурации в момент Y.
Сохранение конфигурации компьютера происходит при нажатии на
специальную кнопку, которой должен быть оснащен интерфейс Beta Disk —
аппаратная поддержка ОС TR-DOS. Авторы ОС назвали эту кнопку MAGIC —
«Волшебная» — однако программная реализация алгоритма действительно
внесла в созданные копий программ некоторые «волшебные» свойства.
Зачастую «сброшенные» «Волшебной» кнопкой программы отказываются в
последующем работать. Происходит это по ряду причин: программа сохра-
нения конфигурации использует для своей работы некоторые ячейки опе-
ративной памяти в своих целях, это может оказаться недопустимым для
сохраняемой программы. Также не все режимы работы микропроцессора
могут быть определены правильно. Такие дефекты могут проявится не сразу,
а через некоторое время работы «сброшенной» программы.
Существенным недостатком использования MAGIC заключается еще
и в том, что на диске сохраняется установившееся к моменту сохранения
состояние программы. Некоторые программы в начале своей работы опре-
деляют конфигурацию компьютера и в зависимости от этого так или иначе
продолжают свою работу. Например, определив, что в компьютере только
48К оперативной памяти, многие игры отключают программы сопровожде-
ния музыкального сопроцессора (который установлен в компьютерах, име-
ющих 128К памяти). Такие «волшебные» копии будучи впоследствии запу-
щены на 128К компьютерах также откажутся воспроизводить музыку — ведь
конфигурация уже была определена. Это же касается и выбора органов
управления игрой. Неправильно сохраняются на 48К машинах игры с
подгружаемыми уровнями — следующий уровень, как и в кассетной версии,
может быть подгружен только с магнитофона. Не украшает программу и
отсутствие фирменных заставок — обычно они не сохраняются.
Однако если других способов адаптировать программу для диска нет,
то MAGIC это все же единственный шанс сделать копию. Копию иногда
полезно делать и для сохранения текущего состояния игры, для того, чтобы
потом не проходить уже весь путь от начала.
Для того чтобы сделать копию программы, нужно вставить в дисковод
А дискету с достаточным количеством свободного места*. После этого доста-
точно просто нажать на кнопку MAGIC. Выполнение программы ненадолго
прервется, в верхней части экрана будут видны следы «жизнедеятельности»
программы сохранения копии. После окончания создания копии (для 48К
компьютера — около 30 секунд, для 128К компьютера время зависит от
заполненности банков памяти) изображение на экране и ход выполнения
программы восстановятся. Если этого не произошло, то такую программу
скорее всего «Волшебной» кнопкой «не взять».
На дискете создается один (для 48К компьютера) или несколько (для
128К) файлов. Имена создаваемых файлов фиксированы. Один из файлов
(первый) имеет имя ® и объем 48К (192 сектора) — это главный MAGIC-
файл. Остальные файлы (только для ZX Spectrum 128) представляют собой
копии заполненных банков. Имена этих файлов состоят из символа Ф и
номера банка. Таких файлов может быть несколько. Имена файлов значения
не имеют, важно лишь, чтобы не менялось их расположение на диске.
Желательно сразу же переименовать файлы, так как повторное нажатие на
MAGIC приведет к созданию файлов с теми же именами.
Восстановить конфигурацию компьютера можно командой TR-DOS
GOTO:
GO ТО '[Onv«:]FiSe_name"CODE
где [Drive :}File_name — спецификация главного MAGIC-файла.
Мы уже упоминали, что восстановить все режимы работы микропро-
цессора затруднительно. Это относится к режиму обработки прерывания.
Если «скинутая» программа не работает после восстановления, то можно
попробовать установить другой режим прерывания. Для этого первым сим-
волом имени главного MAG 1С-файла должен быть символ $.
Напомним, что переименовать файлы можно командой TR-DOS NEW.
СООБЩЕНИЯ ОБ ОШИБКАХ
При работе ОС TR-DOS могут возникать различнее непредвиденные
ситуации, такие как ввод неправильных команд или сбой аппаратуры. В этих
случаях система выдает на экран монитора соответствующие сообщения.
Одни сообщения выдаются только при работе из системы, другие же —
всегда.
Как мы уже писали, при выполнении коман TR-DOS из Бейсика
функция USR возвращает код ошибки. Этот код сохраняется и в системных
переменных TR-DOS (по адресу 23823) и может быть использован при
*) При записи MAG 1С-файла TR-DOS не делает проверок на количество
свободного места! И для полной безопасности лучше всего использовать
чистый диск.
программировании в кодах. Ниже приведены как текст выдаваемых сообще-
ний, так и соответствующие им коды (в скобках).
O.K. (0)
выполняемая команда «прошла» без ошибок;
♦ERROR* (12)
при выполнении команды возникли ошибки, это сообщение обычно
сопровождается конкретизирующим ошибку текстом;
♦BREAK* (20)
во время дисковой операции была нажата клавиша Break. Результат
выполняемой команды в этом случае непредсказуем;
No space (3)
для записи файла не хватает свободного месга на дискете;
Directory full (4)
переполнена область каталога дискеты;
No File(s) (1)
на дискете нет затребованного в команде файла;
Array not found (14)
в файле не найдет затребованный массив;
Rec O/F (5)
переполнение размера записи при работе с файлами прямого и последо-
вательного доступа;
Verify Error (13)
сравниваемые командой VERIFY файлы оказались различными;
File exists (2)
файл с заданным в команде именем уже существует на дискете, сообще-
ние выдается командами SAVE, NEW;
Over write? (Y/N)
файл с заданным в команде COPY выходным именем уже существует на
дискете, требуется решить, что делать — если нажать на клавишу Y, то
копируемый файл затрет существующий, если нажать на N, то команда
будет отменена;
Stream opened (10)
попытка открыть второй раз ранее используемый поток;
Not disk file (И)
попытка закрыть поток, не связанный с файлом прямого или последова-
тельного доступа;
Read Only (байт спецификации дискеты)
дискета защищена от записи, ошибка возникает при попытке записи;
No disk (6)
в дисковод не вставлена дискета;
Disk Error
дискета не TR-DOS, сообщение выдается, если дискета была отформати-
рована для другого компьютера и только с размером сектора 128 или 256
байтов (см. раздел «Служебный сектор»). Если, к примеру, попытаться
прочитать дискету от IBM PC, то компьютер «сбросится»;
Retry, Abort, Ignore?
физическая ошибка чтения или записи на дискету, в сообщении указы-
вается местоположение сбойного сектора (номер физической дорожки и
сектора; к сожалению, не указывается номер стороны дискеты). В этой
ситуации на выбор предлагается три варианта действий: если нажать
клавишу R, выполняемая операция будет повторена; клавиша А вызовет
немедленное завершение выполняемой команды с возвратом в ОС, либо
с остановкой программы и выходом в строчный редактор Бейсика; при
нажатии клавиши I сбойный сектор будет пропущен, а операция продол-
жена, но информация при этом будет утеряна!;
Out of RAM (3)
При загрузке программы не хватило места в оперативной памяти.
При работе из Бейсика (через префикс USR 15619) большая часть
сообщений на экран не выдается, но программист может получить код
ошибки, так как TR-DOS возвращает его в качестве результата функции USR.
Надо сказать, что обработка ошибок в системе сделана не вполне корректно,
поэтому можно с уверенностью сказать только, что ненулевое значение
означает ошибку, а нулевое — успешное выполнение команды. К неприят-
ным особенностям работы TR-DOS следует отнести тот факт, что физические
ошибки чтения/записи не могут обрабатываться Бейсиком. При возникно-
вении таких ошибок либо прерывается программа (клавиша А), либо «ничего
не происходит», т. е. код, возвращаемый TR-DOS, даст «успешное» заверше-
ние программы.
СЕРВИСНЫЕ ПРОГРАММЫ
Как видно из предыдущего описания, командный язык операционной
системы TR-DOS предоставляет далеко не полный перечень возможностей
для работы с диском. Да и имеющиеся команды не всегда удобны в исполь-
зовании. Отчасти это можно объяснить сравнительно малым объемом памя-
ти, который, кстати, использован далеко не полностью, а отчасти, видимо,
незаконченностью проекта.
Авторы этой книги попытались заполнить брешь в программном
обеспечении TR-DOS и разработали ряд системных сервисных программ.
Описание некоторых из них приведено в этом разделе. Это — оболочка
системы МОА Service, позволяющая копировать и запускать программы
более удобным, нежели в TR-DOS, способом; программа поддержки дисков
DCU, служащая для быстрого форматирования и проверки дискет; редактор
дисков DISK DOCTOR, облегчающий восстановление испорченных дискет и
программы-копировщики AM Copier и PCOPIER PLUS, служащие для копи-
рования программ между кассетами и дисками.
МОА Service
Эта программа относится к классу «программных оболочек», назна-
чение которых состоит во взаимодействии с операционной системой. Такие
программы предоставляют пользователю более удобный «дружественный»
интерфейс с системой.
Пользуясь программой МОА Service, Вы сможете:
— в короткое время (нажатием двух клавиш) получить полную информа-
цию о дискете в удобной форме;
— быстро выбирать рабочий дисковод;
— находил» и выбирать интересующие файлы в каталоге;
— запускать программы, написанные на Бейсике, сброшенные «Волшеб-
ной кнопкой», а также программы, написанные в кодах;
— производить групповые операции с файлами: поиск, удаление, пере-
именование и копирование;
— восстанавливать удаленные файлы;
— просматривать «дампинг» файлов;
— выполнять любые команды системы TR-DOS;
— выбирать текст ранее выполненных команд системы для повторного
использования.
Начало работы
Программа запускается обычным образом:
RANDOMIZE USR 15616
RUN "service"
После загрузки перед Вами появится панель выбора диска (рис. 18)
Вставьте рабочий диск в дисковод А и
нажмите Enter. Если Вы хотите сменить диско-
вод, нажмите букву В, С или D и затем Enter.
После этого перед Вами появится рабочий эк-
ран программы (рис. 19).
Каждое окно предназначено для опреде-
ленных целей, рассмотрим их.
Поле, расположенное слева, предназна-
чено для ^ыбора интересующих Вас файлов. Текущим считается файл,
который отмечен курсором (строка повышенной яркости). Курсор можно
перемещать по экрану клавишами Up и Down, либо использовать комби-
нацию Caps Shift/6 ft Caps
Shift/7.
В случае, если каталог
диска содержит много фай-
лов, воспользуйтесь быст-
рым перемещением курсора.
Для этого нажмите на кла-
вишу Extend Mode (Caps
Shift/Symbol Shift), а затем на
в или 7. Курсор при этом
переместится сразу на 16
файлов вниз или вверх.
Справа сверху выво-
дится сводная информация
о диске. Под ней находится
окно, предназначенное для
информационных сообще-
ний, подсказок и сообщений
об ошибках.
Следующее окно показывает параметры текущего файла. Внизу эк-
рана находится поле, в котором работает строчный текстовый редактор. Это
окно предназначено для ввода команд TR-DOS, поэтому будем называть его
командным.
Смена дискоаода {отмена команды!
В любой момент Вы можете отменить выполняющуюся команду,
Нажав клавишу Edit, либо Caps Shift/1 (см. рис. 18).
Нажмите клавишу Enter, если хотите перечитать каталог или еще раз
на клавишу Edit — если Вы решили отменить операцию.
Запуск программ
Если командное окно чисто, то для запуска программы необходимо
сделать ее текущей (параметры запускаемого файла должны отображаться в
третьем сверху окне) и нажать
клавишу Enter. Командное ок-
но можно очистить, для этого
нажмите на Symbol Shift/U.
Файлы с типом <В>
или «сброшенные» кнопкой
MAGIC начнут загружаться
сразу же. Загрузка и выполне-
ние файлов, содержащих ко-
ды (имеющих тип <С>), в об-
щем аналогична команде TR-
DOS RUN "name"CODE address,
однако, в отличие от TR-DOS,
программа МОА Service после
загрузки файла передает ему
управление в соответствии с
соглашениями Бейсика. TR-
DOS же этого не делает (желающие могут убедится в этом лично, выполнив
команду RUN "gens4b"CODE 30000).
Для файлов с типом <С> (но не MAGIC) Вы можете изменить адрес
загрузки. Для этого отредактируйте его в появившемся экране (рис. 20).
Вы можете набрать десятичное или шестнадцатеричное число. Для
последнего нужно, чтобы перед числом стоял знак #, например, #7с30.
Строчный редактор
Строчный редактор используется для редактирования команд TR-
DOS, а также при вводе имен файлов в некоторых режимах программы.
Ниже в таблице приведены все команды редактора.
При описании приняты следующие обозначения:
[CS] — клавиша Caps Shift;
[SS] — клавиша Symbol Shift;
/ — одновременное нажатие двух клавиш;
+ — последовательное нажатие.
[Е] — обозначает клавишу Extend Mode.