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

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

<b>Лаборатория</b> - 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 по России и Украине


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

Похожие статьи:
Анекдот - пошлые анекдоты.
Аперативчик - Новогодний выпуск DEJA VU...
Эфир - Коля любит Машу, Оля любит Машу, Света любит Машу.
Мозаика - Wlodek Black о работе своей BBS.
Post Box - предыдущий номер вызвал бурную реакцию в массах.

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