Odyssey paper #01
29 ноября 1998

IS-DOS - процедура экранной заставки для IS-DOS. Процедуры проявления экрана.

<b>IS-DOS</b> - процедура экранной заставки для IS-DOS. Процедуры проявления экрана.
IS-DOS
 ______

 (C)1998 M.M.A aka UnBELIEVER/XTM
  
         IS-DOS с картинками !!?



   В незапамятно давние времена, читывал я
какой-то журнал посвященный pC. Журнал был
направлен  на юзеров и из страницы в стра-
ницу,  красной  нитью  шла тема новогодних
подарков - купите это, купите то, best по-
дарок на Новый Год, и т.д. Среди продaвае-
мого хлама был какой то CD диск, купив ко-
торый,  "вы непременно освоите современные
технологии  мультимедиа,не вставая из теп-
лого кресла". В качестве примера "освоения
мультимедиа-технологий", предлагалось  ра-
зукрасить свой WINDOWS, используя картинки
записанные на диске, в соответствии с нас-
туающим  Новым Годом. Чуть ниже приводился
рабочий  экран wIN'95 где толпой резвились
снеговики,  Деды  Морозы  и  прочие зимние
аттрибуты.

   "Вот зажравшиеся капиталисты!", - поду-
мал  я  тогда. Это что же получаеться, они
могут разукрасить свой windows к празднику
всякими там картинками, а мы должны догни-
вать  на  фоне  синих панелей одообразного
IS-DOS'а???? Нет, непорядок!

   Именно  так  и зародился тот самый файл
start.com, который вы можете найти на дис-
ке с журналом. Скопировав его на загрузоч-
ный IS-DOS диск, назвав start.com и пропи-
сав  его  в  конце autoexec.bat, вы можете
смело  перегружать  систему и наслаждаться
rulez'ом.  Ну  а  тем, кому интересно, как
все это работает, посвящена излагаемая ни-
же информация.

   Не  имея никакого представления об вут-
реннем  устройстве is-dos'а и уж тем более
не  зная  всех  тонкостей программирования
под  него,  я действовал чисто интуитивно.
Адрес ассемблирования был взят по аналогии
с  первым попавшимся под руку .com файлом,
все  регистры  сохранялись  на стеке перед
стартом  и извлекались обратно при возвра-
щении.   Как   ни   странно,  но  вся  эта
конструкция заработала.

   Однако незнание is-dos'а дало свои пло-
ды:  если  при первом запуске все проходит
гладко,  то  при попытке запуска start.com
из  уже  загруженной is-dos приводят к не-
большим  глюкам.  Для самой системы это не
страшно  - могу дать гарантии, что сея на-
веска на is-dos не подпортит данные на ва-
шем диске.

   Ниже  приведен исходник start.com с ко-
ментариями по тексту. Исходник был написан
в ALASM'е и по сему используються спецефи-
ческие  для этого редактора команды DISP и
INCLUDE.  Три  эффекта гашения экрана были
взяты  мной из ZX-РЕВЮ (давно это было - с
трудом  вспоминаю).  Именно  по этому я не
стал приводить на них комментарии.Да и са-
ми  эффекты  очистки вы можете смело заме-
нить на свои.

     Разбирайтесь и наслаждайтесь....

        ORG     30000
        DISP    24000


        XOR     A
        OUT     (#FE),A
        PUSH    AF     ;Сохраняем
        PUSH    BC     ;  абсолютно все
        PUSH    DE     ;    регистры на
        PUSH    HL     ;     стеке
        EXX            ;   исключительно
        PUSH    HL     ;     на случай
        PUSH    DE     ;    атомной
        PUSH    BC     ;   войны!
        EX      AF,AF' ;
        PUSH    AF     ;
        PUSH    IX     ;
        PUSH    IY     ;


        CALL    EFFECT ; Вызываем САМУ
                       ; процедуру.....


        POP     IY     ; Ну а раз мы
        POP     IX     ;  сохранили на
        POP     AF     ;   стеке все
        EX      AF,AF' ;    регистры,
        POP     BC     ;    то не грех
        POP     DE     ;   их оттуда
        POP     HL     ;  и извлечь перед
        EXX            ; выходом!
        POP     HL     ;
        POP     DE     ;
        POP     BC     ;
        POP     AF     ;
        RET


EFFECT  DI               ;
        LD      HL,#5800 ;"Зачерняем"
        LD      DE,#5801 ;   экран
        LD      BC,767   ;
        LD      (HL),L   ;
        LDIR             ;


        LD      A,R      ;Пользуясь
        AND     #1       ; регистром R
        CP      0        ;  выбираем
        CALL    Z,PICTUR1 ; один из двух
        CP      1        ;упакованных
        CALL    Z,PICTUR2 ;экранов.



        LD      HL,0     ;Эта хитрая
        PUSH    HL       ;конструкция
        PUSH    HL       ;призвана
        POP     DE       ;обеспечить
        POP     BC       ;необходимую
        LDIR             ;задержку
        LDIR             ;для успешного
        LDIR             ;рассмотрения
        LDIR             ;появившейся
        LDIR             ;на экране
        LDIR             ;картинки....
        EI
NETO    LD      A,R      ;Снова пользуя
        AND     #03      ;R мы "случайно"
        CP      3        ;выбираем один
        JR      Z,NETO   ;из  вариантов
        CP      0        ;гашения экрана
        JP      Z,TERM1  ;и переходим к
        CP      1        ;выбранной
        JP      Z,POGAS  ;процедуре.
        JP      RADUGA   ;

POGAS   CALL    C4
        LD      DE,0
        LD      B,#14
C2      PUSH    BC
        LD      HL,#4000
C3      LD      A,(DE)
        AND     (HL)
        LD      (HL),A
        INC     DE
        INC     HL
        LD      A,H
        CP      #58
        JR      NZ,C3
        EX      DE,HL
        LD      BC,#1770
        AND     A
        SBC     HL,BC
        EX      DE,HL
        POP     BC
        DJNZ    C2
        LD      C,7
        CALL    C6
        RET
C4      LD      HL,#5800
C5      LD      (HL),6
        INC     HL
        LD      A,H
        CP      #5B
        JR      NZ,C5
        RET
C6      LD      HL,#5800
C7      LD      (HL),C
        INC     HL
        LD      A,H
        CP      #5B
        JR      NZ,C7
        RET


;-----------------------------------------
; CLS SCREEN LIKE RADUGA - RADUGA
;-----------------------------------------
RADUGA  LD      E,#F8
L6375   CALL    L6380
        HALT
        INC     E
        LD      A,E
        CP      #78
        JR      NZ,L6375
        RET
L6380   PUSH    DE
        PUSH    AF
        LD      D,#00
L6384   PUSH    DE
        LD      A,#47
L6387   CALL    L639C
        DEC     E
        DEC     A
        CP      #3F
        JP      NZ,L6387
        POP     DE
        DEC     E
        INC     D
        LD      A,D
        CP      24
        JR      NZ,L6384
        POP     AF
        POP     DE
        RET
L639C   EX      AF,AF'
        LD      A,E
        CP      32
        JR      NC,L63BD
        LD      A,D
        CP      #18
        JR      NC,L63BD
        PUSH    HL
        LD      HL,#5800
        SRL     D
        RR      L
        SRL     D
        RR      L
        SRL     D
        RR      L
        ADD     HL,DE
        LD      D,A
        EX      AF,AF'
        LD      (HL),A
        POP     HL
        RET
L63BD   EX      AF,AF'
        RET


;-----------------------------------------
; CLS SCREEN FROM TERMINATOR2
;-----------------------------------------
TERM1   LD      B,7
L4      HALT
        LD      HL,15000
L0      DEC     HL
        LD      A,L
        OR      H
        JR      NZ,L0
        LD      HL,22528
L3      LD      A,(HL)
        AND     56
        JR      Z,L1
        SUB     8
L1      LD      C,A
        LD      A,(HL)
        AND     7
        JR      Z,L2
        DEC     A
L2      OR      C
        LD      (HL),A
        INC     HL
        LD      A,H
        CP      91
        JR      NZ,L3
        DJNZ    L4
        RET
PICTUR1 INCBIN  "scr1"
PICTUR2 INCBIN  "scr2"


P.S.  Совсем забыл! В is-dos есть буфер на
насколько  десятков нажатий на клавиши. Во
время   наслаждения   цветной  картикой  и
процeссом  ее  исчезания, вы можете нажать
серию  клавиш,  которые  подействуют сразу
после  возвращения в систему. Так например
мне  удаеться  "в  слепую" вызвать пользо-
ватeльское   меню   (2),   выбрать   пункт
"Восстaновить  RAM ДИСК" (пять раз "курсор
вниз"  + ENTER) и после разворачивания RAM
ДИСКА  перейти  на  другую панель ("курсор
влево").  На  самом  же деле нажатий может
быть еще больше и все они запомняться!


 



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

От авторов - Прошел целый год с тех пор, как мы оставили сцену.

Новости - новые программы: "Временные войны", Micro Studio, Universal Sprite Studio, Pro Tracker 2.4 Decompiler. Новости от: Unit 5, Flash, Omega Hackers Group, Global Corp., Code Busters.

Презентация - Ваааау! Свершилось! Accept copr доделали карточную игру "Козел".

Интервью - интервью с main coder'ом города Оболенска: Steel Dragon.

IS-DOS - процедура экранной заставки для IS-DOS. Процедуры проявления экрана.

Ментура - описание малоизвестной адвентюры "Ментура".

Эпилог - авторы газеты.


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

Похожие статьи:
Ликбез - Аккумуляторы. История, типа преимущества и недостатки.
Обзор - обзор игрушек: Space Gun, World Championchip Soccer, Night Breed, Satan 2, Obliterator, Stun Runner, Side Arms, Salamnder, Dark Fusion, Moontorc, Blood Valley, Magicians Land, Magic Fields, Mountain Bike Simulator, Starfox, Heavy Metall Mover.
Год с Чапаем - цифры.
A Cure For Travel Sickness
Help for games - разбор игры THE BARDS TALE (часть 2).

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3