ZX Review #7-8-9-10
08 ноября 1997

Этюды - Атрибутная бегущая строка. "Гасилка" экрана. Упрощенный вариант процедуры "Занавес". Процедура гащения картинки. Процедура проявления картинки по точкам.

(c) Смирнов Л., г.Ярославль

   Вам пишет ваш постоянный  чи-
татель Смирнов Леонид.  Я  читаю
ваш журнал с 1994 года. Моя  са-
мая любимая рубрика - Этюды. Хо-
чу предложить для нее  несколько
программ.
   Первая - атрибутная   бегущая
строка. Она имеет  довольно  не-
большую длину  (всего  около  90
байтов),  и  работает   довольно
быстро. Вот ее листинг:
140.
LINE    LD   HL,#5A01
        LD   DE,#5A00
        LD   BC,255
        LDIR
        LD   HL,FLAG
        RLC  (HL)
        JR   NC,L1
        LD   HL,(TEXT)
        INC  HL
        LD   (TEXT),HL
        LD   A,(HL)
        OR   A
        JR   NZ,L3
INIT    LD   A,1
        LD   (FLAG),A
        LD   HL,TXT
        LD   (TEXT),HL
        LD   A,(HL)
L3      LD   L,A
        LD   H,0
        ADD  HL,HL
        ADD  HL,HL
        ADD  HL,HL
        LD   DE,(#5C36)
        ADD  HL,DE
        LD   DE,BUFF
        LD   BC,8
        LDIR
L1      LD   HL,#5A1F
        LD   DE,BUFF
        LD   C,32
        LD   A,8
L2      LD   (HL),66  ;цвет фона
        EX   DE,HL
        RLC  (HL)
        EX   DE,HL
        JR   NC,L4
        LD   (HL),114 ;цвет букв
L4      INC  DE
        ADD  HL,BC
        DEC  A
        JR   NZ,L2
        RET

BUFF    DEFS 8
FLAG    DEFB 1
TEXT    DEFW TXT

TXT DEFB "Atribute scroller, "
    DEFB "Written by Smirnov "
3    DEFB "Leonid 02.11.1996... "
    DEFB 0         ;конец текста
2
   Процедуру необходимо вызывать
раз в прерывание, перед  исполь-
зованием ее необходимо инициали-
зировать, например:

        CALL INIT
        RES  5,(IY+1)
A1      HALT
        CALL LINE
        BIT  5,(IY+1)
        JR   Z,A1
        RET

   Вторая  программа - это   еще
одна "гасилка" экрана. При  каж-
дом проходе по  экрану  значения
PAPER и INK  уменьшаются  на  1,
BRIGHT и FLASH не изменяются.
140.
3;CLS, (C) Smirnov L.N. 1996
        LD   B,7
L1      LD   HL,#5800
L2      LD   A,(HL)
        AND  7
        JR   Z,L3
        DEC  (HL)
L3      LD   A,(HL)
        AND  #38
        JR   Z,L4
        LD   A,(HL)
        SUB  8
        LD   (HL),A
L4      INC  HL
        LD   A,H
        CP   #5B
        JR   NZ,L2
        HALT
        HALT
        DJNZ L1
        RET
2
   Следующая   программа - упро-
щенный  вариант  процедуры  М.Л.
Плетнева "Занавес" (N1, 1995).
140.
        LD   HL,#5800
        LD   B,24
L2      LD   C,#20
L1      LD   (HL),100
;цвет шторы
        INC  HL
        DEC  C
        JR   NZ,L1
        HALT
        DJNZ L2
        LD   HL,SCREEN
;адрес картинки
        LD   DE,#4000
;кидаем картинку под штору
        LD   BC,6144
        LDIR
        LD   HL,SCREEN+6911
;последний байт атрибутов
        LD   DE,#5AFF
        LD   B,24
L3      PUSH BC
        LD   BC,#20
        LDDR
        POP  BC
        HALT
        DJNZ L3
        RET
2
   Следующие две процедуры я вы-
тащил из игры P.Tennis c помощью
теневого монитора моего  Scorpi-
on'а. Первая  предназначена  для
гашения, а вторая - для проявле-
ния картинки по точкам.
140.
        LD   B,#FA
        LD   C,#FE
        LD   HL,#4000
        LD   DE,#1D
L1      LD   A,(HL)
        AND  C
        LD   (HL),A
        ADD  HL,DE
        LD   A,H
        CP   #58
        JR   C,L1
        SUB  #18
        LD   H,A
        RLC  C
        DJNZ L1
        RET

        LD   HL,SCREEN
        PUSH HL
        LD   B,#FA
        LD   C,1
        LD   HL,#4000
        LD   DE,#1D
        PUSH DE
        EXX
        POP  DE
        POP  HL
        EXX
L2      EXX
        LD   A,(HL)
        ADD  HL,DE
        EXX
        AND  C
        RLC  C
        OR   (HL)
        LD   (HL),A
        ADD  HL,DE
        LD   A,H
        CP   #58
        JR   C,L2
        SUB  #18
        LD   H,A
        EXX
        LD   A,H
        SUB  #18
        LD   H,A
        EXX
        RLC  C
        DJNZ L2
        RET
2
           *   *   *




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

TR-DOS для начинающих - Окончание.

Компьютерная новелла - Prince of Persia.

Компьютерная новелла - Лазерная бригада (по игре Laser Squad).

Перекресток драконов - Игра Rapscallion.

Перекресток драконов - Игра The Runes of Zendos.

Перекресток драконов - Игра The Saga.

Перекресток драконов - Игра Witch's Cauldron.

Перекресток драконов - Создаём Адвентюру. Обзор редакторов.

Перекресток драконов - Создаём словарь к Адвентюрной игре.

Программы, которые мы выбираем - Возможные последствия использования недокументированных команд.

Программы, которые мы выбираем - О замеченных шероховатостях в работе некоторых программ и пожелания к следующим версиям.

Программы, которые мы выбираем - Предложение ко всем авторам программ, печатающих дамп памяти. Программистам, использующим защиту дисков от копирования.

Программы, которые мы выбираем - Несколько предложений по усовершенствованию ассемблера.

Программы, которые мы выбираем - Предложения по доработке ZX Word v2.5.

Программы, которые мы выбираем - Программа "Эмулятор Спектрума" v1.2.

Программы, которые мы выбираем - Что хотелось бы иметь в идеальном ассемблере.

Ретро - 40 лучших процедур: Копирование данных в памяти.

Ретро - 40 лучших процедур: Обмен токена.

Ретро - 40 лучших процедур: Определение адреса БЕЙСИК-строки.

Ретро - 40 лучших процедур: Определение длины БЕЙСИК-программы.

Ретро - 40 лучших процедур: Определение размера свободной памяти.

Ретро - 40 лучших процедур: Поиск и замещение строки.

Ретро - 40 лучших процедур: Поиск подстроки.

Ретро - 40 лучших процедур: Поиск строки.

Ретро - 40 лучших процедур: Составление списка переменных.

Ретро - 40 лучших процедур: увеличение и копирование экрана.

Ретро - 40 лучших процедур: Удаление REM-строк.

Ретро - 40 лучших процедур: Удаление блока программы.

Советы экспертов - Игра Fredloader.

Советы экспертов - Игра Robin of Sherwood: The Touchstones of Rhianon.

Советы экспертов - Игра Scorpions: Die Machines.

Советы экспертов - Игра Terropods.

Страничка iS-DOS - Описание рестартов системы IS DOS.

Форум - Алгоритм распознавания символов.

Форум - Время выполнения недокументированных команд процессора Z80.

Форум - Концепция экрана высокого цветового разрешения.

Форум - Несколько Pokes к играм. Программа Hacman96.

Форум - По поводу новых DOS и BIOS для Спектрума.

Форум - Программа Multicolor на любой модели компьютера. Использование 2-го экрана для Multicolor'а. Демонстрация текста. Электронные журналы.

Форум - Проект ZX Config.

Форум - Усовершенствование Art Studio. Идеи относительно компрессии файлов.

Форум - Эмулятор ZX Spectrum на IBM. По поводу шестнадцатеричной системы счисления. Программа ZX-Stars. Странности в Elita

Форум - Эффекты на бордюре и Multicolor.

Читатель-читателю - ZX Spectrum 128 - новые возможности, новые проблемы.

Читатель-читателю - Группа 'Light'. Спектрум и экспертная система.

Читатель-читателю - Драйвер принтера для Scorpion'а.

Читатель-читателю - Печать чисел в различных системах счисления.

Читатель-читателю - Программирование аркадной игры со скроллингом экрана.

Читатель-читателю - Процедура печати меток ассемблера XAS для монитора-отладчика STS 4.3.

Этюды - Атрибутная бегущая строка. "Гасилка" экрана. Упрощенный вариант процедуры "Занавес". Процедура гащения картинки. Процедура проявления картинки по точкам.

Этюды - Графический эффект "цветные полосы".

Этюды - Драйвер экрана для печати по 64 символа в строке.

Этюды - Комплект защит загрузчиков.

Этюды - Обращение к диску в режиме IM 2. Работа с диском нестандартного формата.

Этюды - Печать символа, увеличенного в 8 раз. Программа "наливания" экрана. Процедура гашения экрана по точкам. Очистка экрана как в Terminator'е. Поиск последовательности символов в памяти. Система перекодировки символьного набора.

Этюды - Программа - каталогизатор дисков.

Этюды - Программа вывода значений амплитуды каналов муз. сопроцессора на бордюр.

Этюды - Программа вывода картинки.

Этюды - Программа зажигания спрайта.

Этюды - Программа очистки заданного окна экрана.

Этюды - Программа сортировки массива по возрастанию. Процедура заполнения экрана заданным атрибутом. Процедура проявления картинки. Эффект летящих навстречу звезд. "Душ", идущий из верхнего левого угла экрана. Процедура "осыпания" картинки по пиксельным линиям. Программа "вытягивания" картинки под углом в 45 градусов. Три процедуры "Scroll".

Этюды - Процедура печати чисел.

Этюды - Процедура прорисовки символа с помощью атрибутов.

Этюды - Процедура проявления картинки. Fade-OUT эффект (картинка уходит за края экрана). Графический эффект "Фонтан". Fade-OUT эффект, имитирующий выключение телевизора. Процедура "зажигания" картинки. Программа плавной прорисовки картинки.

Этюды - Процедура рисования линии.

Этюды - Процедура составления оптимальной таблицы символов.

Этюды - Скроллинг строк текста в заданном окне. Атрибутный скроллер. Диагональный скроллинг.

Этюды - Спрайтовый скроллер. Процедуры проявления экрана.

Этюды - Укороченная процедура индикации амплитуды каналов муз. сопроцессора. Способ вычитания константы из регистровой пары HL.

Этюды - Формула для вычисления дня недели.


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

Похожие статьи:
Вопрос - один из простейших методов вставления спрайтов в текст.
Вступление - стихи и содержание номера.
Реклама - Реклама и объявления.

В этот день...   26 июня