Voyager #03
19 октября 1998
  Софт  

Лаборатория - ZX-SPECTRUM и операционные системы.

Лаборатория - ZX-SPECTRUM и операционные системы.
(C) 1998 Чертков В.Ю. 
Music: THE BEST ITALIAN-'VENICE' by KENOTRON 
───────────────────────────────────────────────────


  ╔════════════════════════════════════════════╗ 
  ║                                     ║ 
  ║ ZX-Spectrum и операционные системы (ОС)  ║ 
  ║                                     ║ 
  ╚════════════════════════════════════════════╝ 


     Еще совсем недавно, задав любому спектрум-
юзеру вопрос: "Что такое операционная система и для
чего же она нужна?", можно было получить ответ:
"Не знаю!" И это неудивительно, т.к. за всю историю
существования, на Спектруме никогда не было ОС в
полном понимании, потому как изначально компьютер
задумывался, как игровой. Как и на все подобные
ПЭВМ, на Спектрум вместо ОС был установлен Бей-
сик в ПЗУ, т.к. этот язык обладает основными фун-
кциями, свойственными операционным системам. Но
Бейсик Спектрума крайне примитивен, не поддержива-
ет диск, клавиши токенизированы (очень бедный син-
таксис), и развивать его дальше крайне сложно. ПЗУ
Спектрума построено по типу "монитора" - нет ника-
ких функций, доступных пользователю для обслужива-
ния устройств компьютера с единым интерфейсом (в
нормальных компьютерах это называется BIOS или
Kernal). Есть только одна стандартная точка входа
монитора (рестарт) - все остальное, описываемое в
различной литературе по Спектруму - это ПОДПРОГ-
РАММЫ монитора, и не более того. Т.е., ПЗУ предста-
вляет собой "черный ящик" в который лезть нельзя.
     Не в пример тому компьютер Yamaha. Модель
MSX-1 также, как и ZX-Spectrum имеет только Бей-
сик в ПЗУ, но этот Бейсик гораздо круче, чем на
Спектруме, и предполагал в будущем использование
дисковода. Кроме того, он подобен  Microsoft BASIC,
но значительно расширенный - поддерживает графику
(спрайты) и звук (AY). Кроме Бейсика, в ПЗУ содер-
жится система BIOS, а это дает возможность разви-
вать все базовое ПО без потери совместимости, т.к.
никто внутрь этих программ не лезет - существуют
стандартные точки входа. Вообще, свое собственное
ПЗУ имеет каждое устройство (RS-232, RTC & CMOS).
Программы, привязанные к каким-либо внешним собы-
тиям (ввод-вывод на ленту, ввод-вывод RS-232), син-
хронизируются не программными задержками CPU, а
опираются на таймер реального времени, т.е. от ско-
рости CPU корректность работы драйверов не зави-
сит (сравните со Спектрумом). Кроме того, функции
BIOS доступны программам пользователя - это прос-
то замечательно: во-первых, появляется независимость
от аппаратуры, а во-вторых, писать программы гораз-
до легче, т.к. весь низкоуровневый ввод-вывод уже
создан! 
     В модели MSX-2 была без особых проблем ус-
тановлена операционная система MSX-DOS, т.е. ком-
пьютер работал уже без Бейсика, хотя, при желании,
его можно запустить по команде ОС. После рестарта
компьютера, при отсутствии системного диска в дис-
ководе, также осуществлялся выход в Бейсик. Т.е. без
ОС компьютер выглядел, как обычный MSX-1. Но Бей-
сик уже был дисковый - все команды переадресовыва-
лись с кассеты на диск (безо всяких RANDOMIZE USR
15619:REM:....), хотя возможность работы с кассетой
осталась. Старые кассетные программы прекрасно ра-
ботали и с диска, их не надо было адаптировать с
огромным трудом, как на Спектруме в TR-DOS, их
нужно было просто скопировать с кассеты на диск -
и все! 
     А сказал я это все к тому, что если бы Спек-
трум был разработан по-человечески, то многих бы
проблем сейчас просто не существовало. Не надо се-
бя обманывать, ведь даже не в аппаратных возмож-
ностях дело, сама идеология компьютера устарела! В
том виде, в каком сейчас существует Спектрум, его
развивать бессмысленно - очередная доработка ниче-
го не изменит, наоборот - машина станет еще хуже.
Нужны качественные изменения. Ведь Спектрум разра-
батывался, как дешевый игровой комп, а мы сейчас
с него справляем, как с профессиональной машины.
Даже сам Клайв Синклер к 1984 году потерял к не-
му интерес, потому что он уже тогда морально ус-
тарел, а мы же все еще сидим и что-то пытаемся
из него сделать.... 
    Почти такими же примитивными, как ZX-Spectrum
48, были и его конкуренты - C64 и Atari. Но эти
фирмы вовремя одумались и выпустили совершенно но-
вые 32-х разрядные модели, не имеющие ничего об-
щего со старыми 8-и битными. 32-х битный Spectrum
QL провалился, конечно, очень жаль... За разработку
нового ZX взялась фирма Amstrad, выпустив опять
крайне неудачные модели Sp128+, +2 и +3. Они очень
недалеко ушли от Спектрум 48, а цена выросла зна-
чительно - объемы продаж говорят сами за себя. А
ведь была же возможность сделать хороший, хоть и
8-битный, новый Спектрум. Взяли бы CPU Z-180 или
Z-280, которые почти полностью совместимы с Z80,
при этом более производительные и памяти адресуют
1Мб и 16Мб соответственно. Некоторые программы на
этих процессорах не пошли бы, но не велика потеря.
На новый комп можно было установить нормальную ОС,
для поддержки старых программ можно было сделать
что-то типа эмулятора, хотя, если посмотреть, то
до 85 года хороших игр, можно сказать, и не было.
Да, много чего можно было сделать. Вместо этого
состряпали нечто под названием Spectrum 128K - яв-
но разрабатывалось это "после вчерашнего". То, что
было сделано в этой модели - сделано наспех и не
самым лучшим образом. В той же Ямахе и память ад-
ресуется удобней, и нет таких ограничений, как на
Спектруме... 
     В последнее время во многих электронных из-
даниях поднимались вопросы дальнейшего развития
Спектрума, сравнения разных моделей на предмет
"крутизны", и кое-где начали понимать, что ОС, в об-
щем-то, нужна. И, спросив кого-либо, слышал ли он об
операционных системах, можно получить ответ: "Слы-
шали, слышали" - имея в виду TR-DOS, iS-DOS, CP/M
или MS-DOS. Но, обо всем по порядку. 
     То, что TR-DOS вообще не является операци-
онной системой, написано даже в фирменном руковод-
стве (читать инструкции иногда оказывается полезно)
это просто дисковый интерфейс. Когда задумывался
этот интерфейс, то главной задачей было максималь-
но приблизить его к кассетному, т.е. чтобы все опе-
рации были как можно похожи на аналогичные "кас-
сетные". Смысл интерфейса - просто транслировать
кассетный ввод-вывод на диск. Но даже это получи-
лось довольно убого - абсолютно все программы нуж-
но переделывать, а относительно легко перегонялись
лишь самые простые программы с загрузчиками на
Бейсике. Забавно, но когда народные умельцы воссоз-
давали BETA-DISK на "наших" комплектующих, видимо
из соображений совместимости с ПЗУ 90 года, окно
входа в TR-DOS было передвинуто на 256 байт впе-
ред - на начало знакогенератора (с адреса 3C00H на
3D00H). Это легко заметить, просматривая програм-
мы, "скинутые" Multiface-128. В "старом" Бейсике
таких программ, бывает, остается загрузчик, где вид-
но, что TR-DOS вызывается командами типа: 


   RANDOMIZE USR 15363:REM:LOAD "file" CODE 


     Исходя из этого, становится понятно, почему
нет ни одной (!!!) программы в TR-DOS, пришедшей к
нам с Запада - они просто не стали работать. Ин-
тересно и то, что beta-disk - это самый плохой из
дисковых интерфейсов, когда-либо созданных для ZX-
Spectrum, и он у нас прижился! Да еще и в ошибоч-
ной реализации. То ли у нас страна такая, что при-
живается в ней только самое плохое???.... 
     И, в общем, TR-DOS напоминает монитор Спек-
трума, т.е. имеет те же самые недостатки. При этом
занимает целых 16К - хотя для такой "системы" и
2-х килобайт много. Вызовы по 3D13h - это не BIOS
(т.е. примитивно даже для BIOS) и уж, тем более не
DOS. Если вы не ламер, то со мной согласитесь. Как
и Бейсик, ПЗУ TR-DOS развивать практически невоз-
можно - опять начнутся проблемы (не)совместимости.


     Другое дело iS-DOS - идет на любом Спектру-
ме, работает довольно быстро, вот и кричат некото-
рые: "iS-DOS - бест оф зе бест!!!!" - не вполне пони-
мая смысл этих слов. Хотя она довольно быстро пе-
репечатывает файловые панели, работает с подката-
логами, имеет внешние команды и др. В общем, соз-
дает полную иллюзию, что на вашем компьютере ра-
ботает ОС, но стоит заглянуть в руководство прог-
раммиста - как все станет ясно - это просто фан-
тик, пустышка, вас нагло обманули! Никакой ОС и в
помине нет. А если вы, взяв это руководство, подой-
дете к более-менее подготовленному программисту на
Амиге или PC и начнете ему доказывать, что iS-DOS
это операционная система (я уж не говорю крутая),
то, в лучшем случае, он покрутит пальцем у виска
(или позвонит 03). Все что там есть - набор функ-
ций для рисования окошек, вывода текста и ввода
символов с клавиатуры. Файловая подсистема (часть
ОС, управляющая файлами) отсутствует напрочь. Так-
же, нет и системы управления памятью, то что сде-
лано - находится в зачаточном состоянии. И если это
сравнить, например, с MS-DOS, то это уровень BIOS,
т.е. просто драйверы устройств. Да и как драйверы
они неполноценные: нет четкой структуры, единообра-
зия входных и выходных параметров, возможности под-
ключения пользовательских драйверов (как на PC). В
нормальных системах все низкоуровневые процедуры
составляют систему BIOS, а для подключения расши-
рений (подключаемых драйверов) существует опреде-
ленный механизм, в iS-DOS же полный бардак. Нет
не то чтобы четкой, вообще нет никакой структуры,
а ведь именно со структуры и начинают писать сис-
темы.... Прежде чем писать ОС, нужно сначала потру-
диться узнать, что это такое и как работает. 
     Помню, как они меня с этой системой обломи-
ли. Прочитав в рекламе: "...Новейшая ОС! ...подкатало-
ги, ...просто не верится, это невероятно!" - я конеч-
но обрадовался и сразу же побежал на почту заказы-
вать базовый комплект (через Инфорком, разумеется).
Каково же было мое разочарование, когда я на все
это посмотрел - это просто неописуемо. Так обло-
мать! Еще и форматтера не было, но, кстати ска-
зать, этот базовый комплект я скопировал в первый
же день ихней же утилитой ARZT (или Doctor, не
помню уже, как она называлась), такие вот дела. 
     Я, конечно же, ничего не имею против авторов
этой программы - они проделали огромную работу, но,
к сожалению, все впустую.... 


     Теперь остановимся на системе CP/M. Многие,
(не все, конечно), кто видел CP/M на Профи, почему
то уверены, что CP/M - это собственно панели фай-
ловой оболочки CopyK, хотя это, конечно же, не так.
Интересно, но аналогично судят и о MS-DOS по обо-
лочке Norton Commander. Видя, как тормозит CopyK,
многие скажут: "CP/M - это говно!". Но дело все в
том, что CopyK - это просто программа, работающая
под CP/M - и то, что она коряво написанз, не озна-
чает, что CP/M плохая система. Это только означа-
ет, что CopyK - тормозная программа! Да и CopyK
надо отдать должное, в то время, когда он был на-
писан (92-93г), на Спектруме ничего (!!!) подобного
не наблюдалось, хотя, в общем то и сейчас ситуа-
ция не сильно изменилась. 
     ОС CP/M - это надстройка над аппаратурой
компьютера, посредник между программой и устройс-
твами. В распоряжении программиста оказывается на-
бор функций, значительно упрощающий написание про-
грамм. Те, кто дискетировал игры в TR-DOS, не по-
верят, насколько легко работать с файлами даже в
стандартной CP/M (о расширенных версиях я и не го-
ворю). Система предоставляет простоту и удобство
работы с файловыми структурами. Программа, работа-
ющая через CP/M, будет работать на дискете, вин-
те или электронном диске - для работы на другом
устройстве ее надо просто туда скопировать и ни-
чего не нужно переделывать. Сложные манипуляции с
секторами, дорожками, командами контроллеру - все
это берет на себя ОС. Вы же занимаетесь непосред-
ственно решением поставленной задачи, а не воссоз-
даете некоторые фрагменты ОС в каждой своей про-
грамме (а как известно, квалификация у всех прог-
раммеров разная...). 


          * ПРОДОЛЖЕНИЕ СЛЕДУЕТ * 


─────────────────────────────────────────────────└─
 фрагменты ОС в каждой своей про-
грамме (а как известно, квалификация у всех прог-
раммеров разная...). 


          * ПРОДОЛЖЕНИЕ СЛЕДУЕТ * 


─────────────────────────────────────────────────└─
 вободной от интры области 
    ;- Зачем ? 
    ;- Не знаю ! 




(C) 1998 Чертков В.Ю. 
Music: SPECIAL COMPOS' by KENOTRON'96
───────────────────────────────────────────────────


  ╔═════════════════════════════════════════════╗ 
  ║                                     ║ 
  ║  ZX-Spectrum и операционные системы (ОС) ║ 
  ║               (окончание)              ║ 
  ║                                     ║ 
  ╚═════════════════════════════════════════════╝ 


     Теперь о визуальном сравнении систем. Дело в
том, что "увидеть" операционную систему нельзя, т.
к. это просто набор функций - это не программа ти-
па музыкальной демонстрации - которая рисует что-
то на экране под музыку - это совсем не то... Сис-
темы можно оценивать только по их возможностям
(как уже существующим, так и возможным в будущем).
Хотя, вроде было такое! В журнале ZX-Format N4 Ne-
mo, размышляя о Спектруме, привел сравнение сущес-
твующих систем для ZX. Сравнивались CP/M, iS-DOS,
TR-DOS и MagOS (!). Nemo, не глупый вроде бы чело-
век, статьи хорошие пишет, но как он додумался сра-
внивать CP/M с MagOS? Это все равно что сравни-
вать самокат с "девяткой". Ведь человек, не очень
в этом разбирающийся, после прочтения той статьи
мог подумать, что программа MagOS на Скорпионе -
это система, сравнимая по уровню с CP/M. Это же
просто дико! Да и вообще, в этом ряду CP/M - это
единственная операционная система, поэтому мне во-
обще непонятно, как их можно сравнивать. 
     Несмотря на все это, в сравнении этих систем
победила, как вы думаете, какая? Да, все правильно,
iS-DOS! У CP/M, оказывается, и интерфейса нет (ин-
тересно, как же она тогда вообще работает?), и сег-
ментированных и "длинных" файлов. Ошибаетесь, все
это есть, потому-как не может не быть. Единствен-
ное, в чем прав Nemo - подкаталогов в обычной CP/M
действительно нет, но зато есть области пользова-
теля - USER'ы. Согласен, что работать в командной
строке не очень удобно, но никто же не заставляет
работать исключительно в ней (вы в MS-DOS тоже
так работаете?) - пишется файловая оболочка, и все
становится очень круто! Главное, что не учел Nemo:
CP/M - это настоящая ОС, а как следствие, способ-
на к развитию и совершенствованию (пример тому -
система DOS 4.0 (на Профи) совместима с CP/M и
подкаталоги поддерживает). Я конечно понимаю, что
iS-DOS создана в родном для Nemo городе, но все
же, нельзя же быть из-за этого таким предвзятым. 
     Читая разные электронные журналы и газеты,
я заметил интересную тенденцию: многие соглашают-
ся, что ОС Спектруму нужна, но при этом каждый хо-
чет создать свою собственную систему (естественно,
VERY BEST), не имеющую ничего общего с ранее су-
ществующими. Так как, по их мнению, все старые
системы - фуфло. Как правило, это люди, уже добив-
шиеся определенных успехов: создали несколько дем
(возможно, и очень крутых), интрух, дискетировали
множество программ и пр. Но, смею заметить, что
если вы написали хоть 50 суперкрутых демо, это не
означает, что вы создадите хоть одну операционную
систему (обратное, кстати, тоже верно). Все же про-
цесс написания демки и ОС немного отличаются. Мно-
гие просто не понимают, насколько сложно разрабо-
тать ОС с нуля. Ведь необходимо полностью проду-
мать структуру системы, например: 

 1 Как она будет взаимодействовать с программами,
   внешними устройствами и своими собственными
   компонентами; 


 2 Как будет организована внешняя память (в виде
   файлов или как-то иначе); 


 3 Как система будет распределять ОЗУ, в том чис-
   ле расширенное; т.е., как она будет управлять па-
   мятью; 


 4 Если система будет управлять файлами, то будет
   ли использоваться какая-либо из существующих
   файловых систем (экстентная CP/M, FAT, NTFS,
   HPFS или другая) или будет разработана совер-
   шенно новая файловая система. 


 5 Какой статус будут иметь запускаемые програм-
   мы: последовательные или параллельные процессы,
   замещаемые модули или что-то другое. 


 6 В какой форме будет вестись диалог с пользова-
   телем: в виде командной строки, меню или пикто-
   грамм. 


     В этом списке я привел первое, что пришло на
ум, в нем многое не учтено! Кроме того, программы
управления внешними устройствами (драйверы) должен
писать человек, хотя бы немного разбирающийся в
hardware (желательно - хорошо). Возьмем к примеру
драйвер клавиатуры. Некоторые могут сказать: "Нет
ничего проще", и будут, естественно, неправы. Сколь-
ко я насмотрелся в тех же самых демах и эл. жур-
налах, как криво опрашиваются клавиши! Тут и неус-
траненный дребезг, завивисимость скорости повтора
(repeat) и задержки перед первым повтором от так-
товой частоты CPU и другие недоработки. Когда у
автора программы клавиатура герконовая, он и знать
не знает, что существует такое понятие, как "дре-
безг" клавиш (надо понимать физику явления). Пишет
преспокойно программы, они у него нормально работа-
ют, но только у него. На других же компах - это
сплошной глюк. Или другой пример - процедура загруз-
ки блока с магнитофона (та самая 1366 или #0556),
многие ли понимают ee досконально? A ведь это бы-
ли самые простейшие примеры, а есть еще расширен-
ная память (тоже там не все так просто, как может
показаться), мышь, диски (это вообще очень сложно),
другие устройства... Драйвер устройства должен вы-
полнять функции абсолютно корректно независимо ни
от чего, т.к. это его прямая обязанность - для это-
го он и написан. Написать подпрограммки, абы-кабы
работающие, не составляет труда. Модули, работаю-
щие хорошо не только на машине автора, а вообще
в любых условиях, создать гораздо сложнее, да еще,
при этом они должны занимать как можно меньше па-
мяти и работать как можно быстрее. 


     На разработку и реализацию новой ОС может
уйти года 2-3, не считая времени, потраченного на
тестирование, исправление ошибок и пр. Кроме того,
в абсолютно новой системе не будет ни ассемблеров,
ни отладчиков, ни языков программирования высокого
уровня - вообще ничего. Спрашивается, кому и зачем
такая система нужна, будь она в 10 раз круче MS-
DOS, Windows NT или AmigaOS? 
     К примеру, при создании MS-DOS, авторы не
стали ломать голову, а просто взяли за основу CP/M
и улучшили ее. Почти все ПО от CP/M было легко пе-
ренесено в новую ОС (даже была специальная утили-
та, которая позволяла переводить исходные тексты
на ассемблере i8080 в тексты для процессора i8086).
Новые системы для 8-ми разрядных компьютеров, по-
явившиеся после создания CP/M, как правило, были с
ней совместимы. То есть, система представляет со-
бой CP/M + "кое-что еще" на усмотрение разработчи-
ка. Потому как, создавая совместимую систему, не
нужно заботиться о базовом ПО, так как оно уже
создано: есть и крутые ассемблеры, и отладчики, и
языки выского уровня. Таким образом, создавать аб-
солютно новую систему для 8-ми разрядного компью-
тера, не совместимую с CP/M, совершенно бессмыс-
ленно. 


     Есть и еще один очень важный момент. Дело
в том, что абсолютно все программы для ZX-Spectrum
были созданы с учетом того, что ОС на компьютере
нет. Из этого, в частности, следует, что, появись
любая ОС, в ней программы для Спектрума работать
не будут (вспоминаете iS-DOS). Все проги для ZX пи-
шутся на "голом" компьютере, используя всю доступ-
ную память. Программы же, работающие под управле-
нием любой ОС, определенным образом ограничены: они
испольуют только доступную память; для выполнения
определенных действий вызывают ОС; после заверше-
ния работы передают управление ОС, а не обнуляют
память и пр. Таким образом, сам собой напрашивает-
ся вывод: Спектрум и любая ОС несовместимы! Поло-
жение, казалось бы, безвыходное, но все же я вижу
решение проблемы. 
     Начнем, с того, что интерфейс TR-DOS - это
нестандартное устройство, его не поддерживает ни
один западный эмулятор Спектрума на PC, хотя под-
держивается практически вся периферия, когда-либо
существовавшая на ZX. Стандартом же является, как
это не странно - магнитофон, вернее, в эмуляторах
это образы ленты - tap-файлы. Эти файлы "понимает"
любой эмулятор, кроме того, его в любой момент мо-
жно записать на настоящую ленту и загрузить на
настоящем Спектруме... Это, так сказать, первый мо-
мент не в пользу TR-DOS. 
     Ни для кого не секрет, что программ, нормаль-
но переведенных с ленты в TR-DOS, практически нет,
в каждой можно найти хоть маленький, но глюк (то
блоки подпорчены, то картинка, то с другого диска
не хочет грузиться, то не "понимает" односторонне-
го дисковода, то выгрузка на диск не работает). А
программы на ленте вполне нормально работали, безо
всяких проблем... Мало того, что с Запада программы
приходят все поломанные, при переносе в TR-DOS они
еще раз калечатся. Редко бывает, что программа "чи-
сто" перенесена - то в одном проблемы, то в другом.
А это, уже второй момент. Таким образом, в перс-
пективе, можно вообще отказаться от интерфейса
TR-DOS, вернувшись "обратно на ленту" - но на но-
вом уровне! 



Другие статьи номера:

Информбюро - О планах редакции журнала.

Авторы - Авторы журнала и контакты редакции.

Информбюро - Путеводитель по журналу.

Лоцман - О игре SubSunk.

Лоцман - Описание игры DARK SIDE.

Лодырь - Полное прохождение игры ЗЕРКАЛО.

Калейдоскоп - О игре Пыль звездных дорог.

Калейдоскоп - О втором виртуальном фестивале компьютерного искусства Art Comp-99.

Калейдоскоп - Презентация текстовой утилиты - Text Utility V2.8i.

Скелет - Описание звуковой карты DMA SOUND.

Скелет - Недокументированная особенность процессора Z80.

История - Жизнь после Вилли. Софтография Мэтью Смита.

История - О фидошном слэнге.

Лаборатория - интро POORGUY! - изнутри (исходный текст с комментариями).

Лаборатория - ZX-SPECTRUM и операционные системы.

Лаборатория - Процедуры от MicroSoft.

Лаборатория - Алгоритм вывода десятичных чисел на экран монитора из регистра DE & HL.

Лаборатория - Алгоритм деления и умножения больших чисел.

PROFI CLUB - Изучаем CP/M (совместимость, процессоры, терминалы).

Юмор - Лесенка - советы грамотному юзеру.

Юмор - Стих "OA программистов".

Пишите письма - Письма читателей в журнал.

Реклама - Реклама и объявления ...

ZXTraders - Действyющие распространители программного обеспечения ZX Spectrum по России и Украине


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

Похожие статьи:
Marazm - стихи Werewolves'a
Система - Обзор новых системок: Sprite Maker v4.0, Turbo Copier v2.0, Sample Studio, Art Works 1, Burst Eyes v1.2, Excess Sample Editor v1.4.25, Excess Deluxe Paint v1.1, Graphic Station, BA v1.0, Global Commander v1.31, Quick Commander v2.3, Stall Spriter v0.1, AGA v1.0, Ultra Sonic v0.1, Universal Sprite Studio v1.0, HRUST v1.1, STORM v1.3.
NEOS - NEOS о глюках и не только.
Софт - описание музыкального редактора под "GS" RIFF ТRACKЕR'у v 2.9
Реклама - Редакция газеты POWER ждет ваших писем.

В этот день...   7 мая