ZX-Ревю 1995 №4 1995 г.

Новые программы - Magic Operational System.


НОВЫЕ ПРОГРАММЫ

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

Итак, "НОВЫЕ ПРОГРАММЫ". Сегодня эту рубрику открывает программист из Эстонии Владислав Валериевич Соболев. Он представляет новую операционную систему MagOS, разработанную специально для компьютера "Scorpion ZS-256". Эта "волшебная " программа пока что не имеет аналогов, а, по словам разработчика Scorpion'а Сергея Зонова "в полной мере позволяет использовать возможности компьютера, а по своей полезности стоит на втором месте после теневого сервис-монитора".

Magic Operational System © Владислав Соболев, Тапа, Эстония, 1995.

Философское вступление.

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

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

2. Появляется необходимость срочно, не отрываясь от программы, заглянуть в записанное где-то на дисках, её описание или при исследовании игрушки иметь "подрукой" (то есть в памяти компьютера) ассемблер с отладчиком ит.д.

Работающие на компьютерах IBM, SUN, VAX, имеют возможность решить вторую проблему с помощью многозадачности, реализуемой процессорами этих машин и поддержан ной программно, например, широко известной ОС Windows, которая позволяет одновременно выполнять несколько программ (задач).

Что же могут преподнести в этом отношении компьютеры семейства ZX-Spectrum? Не очень много, так как единственный механизм реализации механизма параллельного выполнения - обработка прерываний (INT) - уже занят ОС Basic и загружаемыми программами, к тому же прерывания относительно редко повторяются и могут быть запрещены программно. Все это ограничивает применение одновременного исполнения опросом клавиатуры, музыкой, мультипликацией, таймером - то есть не очень "глобальными" программами.

С другой стороны, зачем нужно параллельно выполнять две большие независимые программы? Ведь для того, чтобы заглянуть в книжку, описание игры, Вы же отрываетесь от клавиатуры на минуту, и целую минуту компьютер работает "вхолостую", ожидая завершения Вашей консультации с описанием!

Отсюда вывод: одновременное выполнение программ необходимо лишь для вышеперечисленных случаев и достаточно удобно реализуется по INT (IM 2), а в других ситуациях хотелось бы просто держать в памяти пару-тройку программ, обращаясь, по желанию, то к одной, то к другой, причем неиспользуемые программы должны нас "ожидать" в том же состоянии, в каком их покинули.

Основываясь на этих соображениях, была написана программа MagOS, в которой термин "многозадачность" претерпел естественные изменения.

Почему эта система реализована для компьютера Scorpion ZS-256? Дело все в том, что единственный разумный способ прерывать любые спектрумовские программы - это немаскируемое прерывание (NMI), а попросту -кнопка "Magic". Перехватить его программно возможно лишь на Scorpion (благодарить за это следует А. Ларченко, разработавшего теневой сервис-монитор). Теоретически эту программу можно адаптировать и для других Spectrum-совместимых компьютеров, имеющих возможность программного подключения страницы ОЗУ вместо ПЗУ, а также память, объемом, хотя бы 128К.

Несколько типичных способов применения MagOS.

В ZX-РЕВЮ и Spectralon^ обсуждалась проблема такого рода: при загрузке игрушки из iS-DOS сама iS-DOS стирается из памяти, вынуждая бедного пользователя перезагружать всю систему, что отнимает много времени. С MagOS нет проблем! перед загрузкой игры продублируйте память в MagOS и грузите спокойно свою игрушку. Когда она Вам надоест, выберите среди программ в памяти копию iS-DOS, запустите её, и, спустя секунду, Вы вернетесь в iS-DOS.

Практически все "прочувствовали" ужасное неудобство описаний на диске. Нельзя загрузить одновременно описание и саму программу (особенно это актуально в iS-DOS). Теперь выход есть! Из под MagOS Вы можете загрузить и описание, и саму программу, и даже ELITE, чтобы немножко погонять пиратов, когда временно надоест работать в iS-DOS.

Работая в какой-нибудь программе (например, в ассемблере), часто возникает необходимость прикинуть что-либо, немного посчитав. Можно загрузить в MagOS и ассемблер и Basic-128 в режиме "calculator".

Перед запуском отлаживаемой программы, только что откомпилированной в ассемблере, на всякий случай желательно продублировать её в памяти вместе с ассемблером на тот случай, если из-за ошибки программиста компьютер "сбросится" или намертво "повиснет". В этом случае после "Reset" нажмите кнопку "Magic" для восстановления программы.

А для владельцев принтеров большая экономия бумаги и времени - не требуется перед загрузкой незнакомой программы распечатывать (и даже читать!) её описание. Грузите описание вместе с программой (я активно этим пользовался, разбираясь с ASM, описание которого было помещено в Spec^fon^, а печать оттуда экранных файлов -дело очень утомительное).

Для любителей игр ныне не нужны вовсе "вечные жизни". пройдя очередной сложный этап, Вы можете зафиксировать в памяти свое состояние и играть дальше. Ну а если Вам не повезет и надпись на экране "GAME OVER" вызовет мучительное чувство досады и протеста, снова жмите "Magic" и повторите попытку с последнего зафиксированного момента игры (тем более, что обо всех "сюрпризах" игры Вы будете знать заранее). Это не совсем честный способ, хотя экономит уйму времени. С помощью MagOS я дошел в "The Sentinel" до 1280-го уровня! Кто больше!?

Немного истории.

Идея создания MagOS родилась в самом начале 1994-го года, с его февральскими морозами и покупкой Scorpion. Первые версии появлялись и сменяли друг друга довольно быстрыми темпами, но серьезно их использовать было бы затруднительно (для входа в MagOS требовалось запустить его из отладчика теневого монитора). В версии 3.0 был впервые применен механизм обработки NMI при подключенном в это время ОЗУ вместо ПЗУ; но при этом возникал целый "ворох" проблем: несовместимость с программами, переключающими банки ПЗУ и ОЗУ, проблема подзагрузки и выхода в TR-DOS, "дребезг" кнопки "Magic", порча MagOS при нажатии Reset и т.д.

Единственно возможным остался способ перехвата NMI у теневого монитора, способ не очень удобный, но вполне реализуемый, что и вылилось в версию 4.0. Она "по наследству" от предыдущих не работала со 128-ми программами и с Basic-128. В августе 94-го MagOS "переселился" на страницу 8, в область буфера видео-памяти сервис-монитора, освободив при этом две другие страницы. Это привело к появлению серий версий 5.х, возникающих чередой в сентябре-октябре. Они исправно работали с одной 128-й и 48-ми программами "по умолчанию", при особой последовательности расположения используемых MagOS страниц памяти.

Вскоре выяснилась несовместимость MagOS с новыми Turbo-версиями ПЗУ сервис-монитора, и, в ответ на эту проблему была создана MagOS v 5.4, практически полностью независимая от прошивки ПЗУ и великолепно работающая с любыми "Скорпионами". Поэтому первое коммерческое распространение получила именно эта версия (в чрезвычайно ограниченных количествах и исключительно в Эстонии).

В декабре 94-го - январе 95-го велась работа над принципиально новой MagOS (версии 6.х), в которой прежней осталась лишь идея, а вся структура была переписана заново. Программы в памяти теперь хранятся в виде сегментированных файлов переменной длины, каждый из которых может быть выстроен в непрерывный при запуске. Это новшество позволило реализовать следующие возможности:

S удаление любой программы;

S просмотр картинок;

S увеличение размера любой программы, если она затребовала больше памяти (например, iS-DOS использовал три банка ОЗУ, а при создании в нем RAM-диска потребовалось еще пять страниц. MagOS определит увеличение размера iS-DOS, и если при неизбежна порча каких-либо других программ, хранящихся в памяти, то они автоматически удалятся). Кстати, теоретически число программ в ОЗУ могло бы быть 253 штуки на 254 страницах, но объем памяти Scorpion весьма ограничен...

Итак, теперь о том, что же мы имеем на сегодняшний день.

ОС MagOS у 6.3с.

MagOS V6.3 ©STARSOFT 1994/95

Эта версия на сегодняшний день является самой новой версией. Она сочетает в себе все позитивные моменты предыдущих версий, а также имеет новые особенности. Что же может MagOS?

Вызывается в любой момент работы компьютера по кнопке "Magic".

Имеет удобный и красивый многооконный интерфейс.

Работа в MagOS и управление стрелкой-курсором выполняется пятью клавишами или Sinclairджойстиком с изменяемой (по желанию) скоростью. В последней версии управление расширено: Kempston-джойстик и Kempston-mouse.

Новая логическая структура MagOS отслеживает изменения на всех страницах, определяя размер и сохранность любой из программ, загруженных в ОЗУ.

Имеется режим перелистывания картинок программ, хранимых в памяти.

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

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

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

Реально в память может быть загружено 14 коротких (по 16К) программ.

Возможно удаление из памяти любой программы.

Предусмотрено продолжение выполнения (запуск) любой из программ в MagOS по её номеру (номер присваивается при загрузке программы или при дублировании). Возможен запуск текущей задачи, картинка которой в данный момент находится на экране. Задержка перед запуском: от 0.001 до 3 секунд (зависит от числа программ в ОЗУ, размера и расположения запускаемой программы).

Возможен выход в Shadow Service Monitor при сохранении полной работоспособности MagOS. Причем в момент загрузки MagOS происходит настройка на любое ПЗУ Scorpion^. Благодаря этому корректная работа обеспечивается не только в обычных Scorpion^, но и в оборудованных профессиональным ПЗУ.

Возможна смена режима Normal/Turbo (без выхода в теневой сервис-монитор). Эта функция имеет смысл для компьютеров с турбо-режимом.

Обеспечивается совместимость с любыми программами для Spectrum 16, 48, 128, 256К (при условии, что они не портят сервис-монитор, а значит и MagOS).

Обеспечивается корректная работа MagOS в Basic-128 (то есть в памяти может быть несколько копий Basic^ с различными программами).

По кнопке Reset MagOS не исчезает, только уничтожается часть программ, стертых по "сбросу", а их место займет "длинный" Basic-128 (его стоит сразу стереть из памяти с целью её экономии).

'10 LORD "HER" Е0 PRINT

1 start

IWlTI

ша

та

ГМ1ШЫ

■^ЕВ

шз

MagOS V6.3 ©STRRSOFT 1994/95

ЕЦРРРРРРРРРРРРП

Комментарий ИНФОРКОМа.

Получив копию программы для тестирования, и прочитав с нескрываемым интересом о её "волшебных" возможностях, загружаем MagOS в Scorpion. "Журчание" дисковода завершается возвратом в "boot". Вроде бы и ничего не изменилось. Однако, нажав кнопку "Magic", видим, что вместо привычного меню сервис-монитора, на экране появилось симпатичное окно с перечнем опций и курсор-стрелка, которым эти опции выбираются. Не будем сейчас останавливаться на технике управления, Вы её легко освоите за пять минут. Попробуем определить, что же реально может программа. Итак, для начала, грузим само описание MagOS. Теперь попробуем загрузить еще что-нибудь. Под рукой оказалась программа DCU. Загружаем её. Ну хорошо, а как насчет iS-DOS? Вставляем диск с этой системой, грузим (пока что без создания электронного диска). Замечательно! Одновременно в памяти и TR-DOS и iS-DOS!

Смотрим, сколько осталось свободной памяти: 3 банка. Если теперь попробовать в iS-DOS создать электронный диск размером, скажем, пять банков, то места не хватит, и какая-то программа будет уничтожена. Поэтому уничтожим лучше сами - описание на MagOS в нем сейчас нет необходимости. Теперь свободно 7 банков, так что спокойно создаем электронный диск и переписываем на него систему iS-DOS.

Ну ладно, загрузить-то мы это все загрузили, а как насчет корректности в работе? Побегали по каталогам в iS-DOS, почитали HELP'bi (благо, система на электронном диске и работа происходит достаточно быстро). Теперь переходим в загруженную ранее DCU. Оставив диск iS-DOS в дисководе "А:", вставляем в "В:" чистый TR-DOS диск и включаем режим "Check disk". Началась проверка. И тут приходит в голову идея проверить MagOS в "жестком" режиме: прямо во время чтения очередной дорожки нажимаем кнопку "Magic" и переходим снова в iS-DOS. Все вроде-бы нормально, но как насчет обратного перехода в DCU? Что же мы видим? Проверка диска как ни в чем ни бывало продолжается с того самого места, где мы её прервали! Конечно, такой неестественный режим мы выбрали умышленно, пытаясь "загнать" систему в тупик, однако этот случай убедил нас в том, что системой предусмотрены даже такие немыслимые ситуации, что, безусловно, делает честь её разработчику.

Итак, владельцы Scorpion^, Вам крупно повезло. Теперь только Вы имеете уникальную возможность,

которой лишены владельцы компьютеров других моделей!

* * *




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Обзор - обзор игрушек: НЛО2, Ментура, Dina Blaster, Super Cars, Darkman, Final Fight, Street Fighter 2, Pang 128, Time Cop, The Turn, Ice Climber, Приключение Винни Пуха, Prince of Persia.
Авторская программа - Описание авторской игры "Move'em All".
От автора - День рождения газеты !!!
Двиагтель торговли - Пpодам, куплю ,обменяю пpогpаммы для ZX Spectrum Каталог запишу бесплатно на ваши диски (5,25 или 3,5 дюйма).
Тема - Russian ZX: история создания Российского спектрума.

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