ZX Time #06
09 января 2002

Форум - МНОГОЗАДАЧНОСТЬ И ОС.

<b>Форум</b> - МНОГОЗАДАЧНОСТЬ И ОС.
Форум
────────────────────────────────────────
                                Читатели

  От редактора: Помнится ещё в самом на-
чале  один из читателей газеты предлагал
организовать в рамках ZXTime некое подо-
бие  раздела "Форум" из ZX-Ревю. Сначала
я это предложение проигнорировал, оправ-
дывая себя фразой "А кто ж нам писать-то
будет!"... Но времена меняются и сегодня
мы  уже  имеем  довольно приличный багаж
писем  и тем для рассуждений. И теперь я
уверен, что читателями не будет проигно-
рирована эта инициатива... Да?

   А тема обсуждения у нас сегодня...

          МНОГОЗАДАЧНОСТЬ И ОС
         ──────────────────────

 Первое слово предоставляется cr0acker2:

  Вот  решил я написать на тему многоза-
дачная  ОС.  Вообще  многозадачных ос на
спеке пруд-пруди. Самая первая была, са-
мая  лучшая. Это была ДОМЕН ОС. Она была
очень хорошо раскручена. Посмотрите жур-
налы  96 годов. Там все только и говорят
о Спринтере  и  Домен  ос. Она всовывала
другие  процессы  в  уже  работающие, но
ждущие ввода с клавы. И торможение трдо-
совских  программ там не было больше 25-
50  процентов. Да к оси прилагалось уйма
адаптированных   ТР-ДОСОВСКИХ  программ.
Почему же она проиграла? Я может быть не
прав,  но  основная причина ЛЕНЬ автора.
Автор  бился об заклад выпустить свою ос
для Спринтера. Но вот ни ОС для Спринте-
ра,  ни  ОС  для спектрума. Понимаете ОС
распостранится  только в том случае если
она или её часть будут храниться в РОМЕ.
Современные   ромы  вмещают  в  себя  до
512Кб.  Только  схема  нужна  такой  ром
подключить!  Теперь вы вот говорите, что
ОС  должна каждый раз интерпитироваться.
Это  будет очень смешно. На счёт языка я
пришел к такому выводу. Язык должен быть
С.  С  прекрасный  язык  правда я его не
люблю.  И это блеф что у спека не хватит
мощи  работать  на С. У меня есть ХТ там
стоит  МИНИКС  и я каждый день пользуюсь
gcc. Причём у ХТ 640Кб памяти. А у спека
48-  4096. У нас в стране ходит три вер-
сии  С:  HiSoft  C, ещё версия мужика, и
вечно не выпускаемая версия RST7 (Дядька
RST7 ну и где твой С?). Самая нормальная
из них Hisoft C. Но она не получила рас-
постранения  из-за  своей 48сти. Я думаю
она  станет юзабильной если сделать сле-
дущие  изменения:  поддержку памяти 128-
256-512-1024-4096, интерфейс АЛАСМ-лайк,
редактор    позволляющий   редактировать
текст  на  весь  файл в ТРДОСЕ (ACEDIT),
поддержка  80  символов  по трём схемам,
Alco,  PENT,  8Profi,  возможно  сделать
поддержку  GMX.  Это  всё  нужно в самом
компиляторе.   В   принципе  имея  такой
компилятор  можно  ничего  своего не пи-
сать,  а  портировать тот же МИНИКС. Те-
перь  железо... Я думаю минимальной кон-
фигурацией ОС должно стать 7Mhz-256 при-
чем  ядро должно поностью, вместе с дра-
вами  и  АПИ  разместиться в 128 кб. При
512  она ешё что-нибудь размещает. А при
1-4  мб...  В  памяти  должен рамешаться
весь  диск, а будет ли он? Теперь на ка-
кую  машину  нужно  ориентироваться... Я
думаю,  что нужно ориентироваться на вы-
пускаемые  машины. Насколько я знаю сей-
час  выпускаются  две  машины: KAY1024 и
Спринтер.  Нужно делать две версии ОС на
кай и Спринтер. Причём чтоб они летали и
на  кайе,  и  Спринтере.  В Спринтере ос
должна  работать  в режиме Спринтер. Те-
перь  графическое  ядро. Оно должна опи-
раться на три графические примочки:

  1) основной  режим: NO  BORDER(Alco
scheme);
  2) Hardware Multicolor;

  Эти  две  примочки  может сделать себе
каждый. Их сделать очень легко.

  2)  расширенный  режим  -  это высокое
расширение  пента  и  ПРОФИ, а также GMX
скорпа. У Спринтера все должно крутиться
в 640x200. ОС должна прошиваться в биос.
И  это  аксиома. Иначе она провалится. И
последнее  -  ОС  должна иметь тулзу для
одаптации ТР-ДОСОВСКИХ програм к ОС.

  Ну вот и всё, что я хотел сказать...

                 - - -

  Следующее  мнение пришло от Sinus'а из
Savers Alliance...

  В  Zx Time 4 была статья о многозадач-
ности с примерно таким смыслом: есть две
проги в памяти, переключаем их по преры-
ванию.  Когда-то  я  так делал: тормозит
жутко.  imho  лучше  сделать по принципу
вытесняющей   многозадачности.   Если не
ставить  прогам  приоритеты,  то  вполне
можно  реализовать на Спеке. Итак: пред-
положим  есть  некая многозадачная ос (а
не    pIS-DOS)    оконного   типа   (ex.
WICROSOFT(R)  MINDOWS(TM),  Work  Bench,
OS/2, MacOS, ...). Далее для наглядности
приведу кусок кода:

   org #c000   ;старт программы с #c000,
               ;чтобы можно было держать
               ;много прог в банках

   ld ix,Wind  ;адрес дескриптора окна
   call wOpenWindow ;открываем окно
   jp wMain    ;и прыгаем в ОС

windowFunc    ;оконная функция ;)
   bit wPRESSED,C;нажал ли USER на кноп-
                 ;ку?
   jp z,wMain    ;если нет, то прыгаем в
                 ;ОС
   cp #ff    ;если нажата кнопка  "крес-
             ;тик" (типа "закрыть окно")
   jp z, wCloseProgramm
   cp 1     ;первая кнопка (CLOSE)
   jp z, wCloseProgramm
   cp 2
   jp z, #0000;вторая кнопка ('RST 0')
   cp 3
   call z, changeBorder ;кнопка (BORDER)
   jp wMain

cnangeBorder
   call rnd
   out (#fe),a
   ret

rnd ......

Wind   db 5,5,10,20       ; x,y,h,l
       db "Test window",0 ; window title
       dw windowFunc	  ;адрес программы-
                       ;обработки

       db 1,wBUTTON,0,0,"CLOSE",0 ;номер
                       ;элемента,    тип
                       ;элемента, x,  y,
                       ;name

       db 2,wBUTTON,0,2,"RST 0",0
       db 3,wBUTTON,0,4,"BORDER",0
       db #ff          ; the end

  Теперь  постараюсь  пояснить весь этот
бред.  Как  заметно  из проги, теперь не
прога  главное,  о наоборот, окно теперь
управляет  прогой. Теперь основная идея:
ОС по очереди вызывает windowFunc каждо-
го  окна.  Если  проге (как и в примере)
ничего  не  надо, то она просто передает
управление  ОС,  иначе быстренько делает
то,  что надо, и, опять же, передает уп-
равление  ОС. И так каждое приложение. В
результате,  если пользователь ничего не
делает,  то  и  прога  не тратит на него
своих  драгоценных тактов. А если он на-
жал  в  каком-нибудь окошке  кнопку,  то
только то приложение и среагирует. А ес-
ли надо, пока пользователь ничего не де-
лает  или  работает с другим приложением
что-то  посчитать,  то  немного  изменим
windowFunc:

windowFunc push af,bc,de,hl ;сохраним
                            ;регистры
           call myProgCalc  ;что-то  де-
                            ;лаем
           pop hl,de,bc,af  ;восстановим
                            ;регистры
           bit wPRESSED,C    ...
           ....

  Внимание!  Чтобы  не  было таких диких
тормозов,   как   в   винде,   процедура
myProgCalc   должна   быть   как   можно
быстрее.

                 - - -

  Ну  вот и весь "Форум" на сегодня. Те-
перь слово я передаю себе:) (DWT). Сразу
хочу  сказать  -  "Форум" - раздел чисто
читательский. Можете ставить на обсужде-
ние  АБСОЛЮТНО любые темы! Какие-то мыш-
ления на счёт того или иного также може-
те  высылать  в  "Форум". Вообщем, отдаю
раздел "ФОРУМ" в ваши руки, читатели.

  Единственная просьба: если ваше письмо
ориентированно  в  данный раздел, то так
его  (письмо)  и помечайте (допустим, "В
Форум").

                 * * *



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

От редакции - новогоднии поздравления.

Итоги года - обзор событий и выпущенных программ уходящего 2001 года.

Твоя игра - редакция газеты "Абзац" и Perspective gruop объявляют конкурс компьютерных игр на ZX-Spectrum.

Анкета от "Абзаца" - небольшая анкета, посвященная в большей мере игровой тематике.

Обзор почты - письма читателей: Gas13, Sinus, WarLord, SirX, Borman.

Дискуссия - разборки Максима Латыша и Дениса Токарчука на тему "ОС на ZX Spectrum".

Форум - МНОГОЗАДАЧНОСТЬ И ОС.

Обзор новья - KrNews#15, IzhNews'2002, ZX Guide 4, C-Net Week#23, Body #31, MSF#23, PC Navigator 1.0, Quick commander v2.62, Disk Trouble v0.244, Lamerz Windows, Stuck UN, ABE demo v2.0, Mashinki, ОВД против НАТО, Yard Story 2.

Перспектива - "Спринтер 2000. А перспектива ли он для Спектрума?".

Новые лица - "Exult и все, все, все" не очень известная группа из Петрозаводска.

Кодерам - как сделать "РОВНЫЙ" (по тактам) проигрыватель мелодий.

PC и Spectrum - о новых версия эмуляторов ZX Spectrum.

О всём про всё - НЛО на второй мировой.

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


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

Похожие статьи:
Экспертиза - прохождение игры Mercenary.
Реклама - Покупка/продажа/обмен progz 4 SPECCY.
Фак - FUCK TO FARAON'у
Железо - Данный FАQ пpизван пoмoчь непpoфессиoналам пpи pемoнте pазличнoгo poда бытoвoй теxники.
РЕМОНТ - Продолжаем ремонтировать Пентагоны...

В этот день...   19 апреля