ZX Time #04
17 ноября 2001

Дискуссия - "реализация многозадачности и ОС на спектруме".

<b>Дискуссия</b> -
Дискуссия. О многозадачности.
────────────────────────────────────────
                                DJ Blast

 Баталии развернулись с небывалой силой
 --------------------------------------

  DJ Blast^TNL InSys представляет Вашему
вниманию  очередную  партию своих мыслей
на  тему "Ось на ZX". Как говорится, хо-
тели  дискуссию - получите, кто не спря-
тался, я не виноват!

  К  сожалению,  диск  с  ZXT#3 посетили
инопланетяне, поэтому буду цитировать по
памяти, сорры, если где ошибусь...

  Во-первых,   очень  печально,  что для
многих  людей  слова  Windows и PC стали
практически   синонимами.  Мне  искренне
жаль  тех людей, которые неспособны про-
вести   различие   между   ПЛАТФОРМОЙ  и
ОПЕРАЦИОННОЙ     СИСТЕМОЙ    (просьба не
воспринимать  данную фразу как оскорбле-
ние)...  Предлагаю на этом закончить об-
суждение  этого вопроса как не относяще-
гося  к  тематике ZXTime (ключевое слово
все-таки ZX!).

  Что касается IS-DOS, то из своего опы-
та  работы  с ней (небольшого, к сожале-
нию... или может к счастью?) я могу сде-
лать вывод, что единственной заслуживав-
шей внимания вещью в ней был только тек-
стовый  редактор. К тому же, чтобы рабо-
тать в IS-Dos, требовались стальные нер-
вы  и  чугунный  дисковод, и даже в этом
случае работа напоминала сеанс садомазо-
хизма...  Хотя,  это было так давно, мо-
жет, с того времени что-то изменилось?

  Возвращаемся к Relocation Tables. Фра-
за  "А если программа имеет длину 100К?"
выглядит  весьма  забавно. Интересно,где
же это вы нашли такую программу? :) Даже
в  Черном Вороне обьем ИСПОЛНЯЕМОГО КОДА
значительно  меньше.  Но в любом случае,
даже  если и 100К, то одним блоком такую
программу  загрузить  не получится чисто
физически.  Нужно ведь страницы листать.
Отсюда  вывод:  держи  пиво  в холоде...
Ой!!!  что  это я??? Вот блин! Вывод та-
кой:  любая  программа  все  равно будет
грузиться  блоками.  И настраивать можно
каждый  блок в отдельности. И вообще, те
блоки,  которые будут находиться в стра-
ницах  верхней  памяти,  настраивать  не
нужно, все равно все страницы начинаются
с одного адреса.

  О  структуре  оси  можно спорить очень
долго. Например, есть мнение, что ось на
спеке  должна  представлять собой только
драйвер дисковых операций (в том числе и
с  винтом!)  и новую файловую систему. А
вот  компилятор языка, тем более динами-
ческий,  как  вы  предлагаете, имхо идея
вообще  весьма  и  весьма непродуманная.
Это  же  такой тормоз будет! Даже на ПЦ,
где  мощность  проца намного выше, такие
языки  не  применяются.  Любой  подобный
язык  потребует универсализации его опе-
раторов, а чем выше универсальность, тем
меньше   скорость.   В   доказательство:
посмотрите  на игрушку "The Double". Она
откомпилирована  с какого-то языка высо-
кого  уровня  (уж  не знаю с какого). Ну
как?  Голова не кружится от скорости? ;)
А  при динамической компиляции будет еще
хуже.  Насчет  "Подвышенного  уровня". Я
понимаю,  ZXASM_3.10  rulez 4eva (сам им
пользуюсь  :),  но там речь шла только о
системе  макросов,  да  и  то в качестве
шутки.  Вот  с одним я могу согласиться:
нужен набор стандартных процедур и стан-
дартный  интерфейс с ними, то есть стан-
дартные  точки входа, но и только! Вызы-
вать  их из асма будет гораздо удобнее и
нагляднее, чем из любого языка более вы-
сокого уровня.

  В  завершение данного раунда ;))) хочу
выдвинуть идею. Возможно, нечто подобное
уже  было,  но  я  не знаю. Выкинуть ПЗУ
Basic128  (что само по себе и не ново) и
заменить   его  комбинацией  ПЗУ  и ОЗУ.
Поясню: допустим, в адресах #0000..#03FF
будет  ПЗУшка с зашитым загрузчиком оси,
а остальные адреса (#0400..#3FFF) - ОЗУ,
в  которое будем грузить ядро оси с дис-
ка. Этого было бы достаточно, но к сожа-
лению  иногда встречается очистка экрана
примерно таким способом:

    ld hl,23297
    xor a
l1  dec hl
    ld (hl),a
    or (hl)
    jr z,l1
    ...

  Для  нашей оси это закончится весьма и
весьма  печально. Поэтому нужно добавить
порт  для защиты нижней памяти от подоб-
ных посягательств. Имеется в виду, что в
зависимости  от  состояния данного порта
будет  разрешаться/запрещаться  запись в
адреса #0000..#3FFF. Пример:

;Some example of OS loader:

    ld bc,port        ;адрес  порта  уп-
                      ;равления  защитой
                      ;памяти
    ld a,1            ;разрешить запись
    out (c),a         ;без комментариев

    ld hl,#0400       ;\
    ld de,adr_on_disk ; \
    ld b,sec_len      ;  } загрузка
    ld c,load         ; /
    call disk_driver  ;/
    ...
    ld bc,port
    xor a             ;запрет записи
    out (c),a
    ...

  Все это безобразие потребует доработки
железа, но "если ничего не дорабатывать,
то  что вообще можно получить?" (c)Steel
Drugon. Я не железячник, но знающие люди
говорят, что такая доработка реализуется
достаточно  просто.  А  если учесть, что
большАя  часть  спектрумистов  сидит  на
эмуляторах, то можно просто обратиться к
авторам эмуляторов с просьбой поддержать
данный вариант.

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

  На этом пока закончу. Интересно узнать
мнение  читателей о моём предложении. До
встречи в эфире :)

                 - - -

          Комментарии от DWT:

  Я  рад  как ребёнок:). Всё-таки много-
задчность,  ОС и даже язык под_вышенного
уровня  вызвали реакцию в массах. Значит
людЯм  небезразлична  судьба  Спектрума,
как  живого компьютера, где помимо высо-
ких  технологий программированния, кото-
рые   уже,   кажется,  достигают  своего
максимума,   развиваются   и  технологии
"стыковки 'человек-компьютер'".

  Спорить    о   структуре   ОС   можно,
действительно, очень долго. Для чего мы,
собственно, и заварили эту кашу...

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

  Очень  рад,  что программы в сто кило-
байт позабавили нашего читателя. А чтобы
он  вообще разорвал себе живот со смеху,
признаю,  что  я был в чём-то не прав. Я
просто  не вдумался в суть и не прикинул
объёмы relocation tables. Извиняюсь, по-
горячился.

  Идея  о  замене части ОЗУ ПЗУ'шкой уже
не  нова. Однако, при её реализации дей-
ствительно  развязываются  руки  и появ-
ляется  возможность  клепать разные ОС'ы
на  любой  вкус.  Идея весьма интересна,
ведь  тогда,  при  её реализации, каждая
игра (допустим) сможет иметь собственную
ОС,  подогнанную под её собственные тре-
бования.  Сразу  скажу DJ Blast'у - один
единомышленник  в плане идеи о ПЗУ+ОЗУ у
тебя есть:).

                 * * *



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

От редактора - о четвертом номере газеты, авторы выпуска.

Почта - письма читалей: Nuts, DJ Hooligan, Игорь Бутырлев.

Кодерам - "Сага о бордюре продолжается!" (программирование эффектов на бордюре).

Железяки - схема расширения графики обычного Спектрума до режима аппаратного мултиколора 1байт=1цвет.

Новости и старости - Adventurer 13, Deja Vu #0B, ZX Chart #3, "Черная Ворона 7" на подходе, Проект "Угадай Мелодию" продвигается, Power of Sound vs X Team продолжается война между этими группами, новый эмуляторы спектрума и т.д.

Обзор новья - Don News 15, Lamergy 1, ZX Rulem, New Puzzle, Trouble v0.2, ASM to PT, Real Audio Player, Mini Games Collection.

Дискуссия - "LZB о демосцене и о всём..."

Дискуссия - "реализация многозадачности и ОС на спектруме".

Дискуссия - "Multitask. Реалии и мифы..."

Мнение - "О спекки-прессе": Body, Target, Optron, IzhNews, Scream, Za Rulem, Don News, ZX Pilot, KrNews.

PC и Spectrum - обзор интернет ресурсов посвященных Спектруму.

PC и Spectrum - обзор и рейтинг Эмуляторов ZX Spectrum.

О всём про всё - "В поисках Несси".

И смех, и грех - анекдоты.

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


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

Похожие статьи:
Poke`s - Puzznic, Rive Raid, Draconus, Batty, Turtles, Elven warrior, Bagdad, Fast food, Motos, N.O.M.A.D., Zolix, Crosswize.
C-DOS модем - Описание сигналов C-DOS модема и процедру тестирующая на- личие модема.
Движок - реклама и обьявления.
Что-где-почем - Пpедставляю вам очеpедную поpцию пpогpамм от VEL'a/PXM.
SMP-сервер - SMP-сервер от "МДМ-сервис".

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