Экранные эффекты - гашения экрана из Zynaps.

ZX Forum #04
             ZYNAPS

   В этой программе  применяется
оригинальный прием гашения экра-
на: он  гаснет  не  мгновенно, а
плавно. Это происходит при помо-
щи манипулирования атрибутами.
   Процедура, реализующая  такой
эффект, выглядит так.
1423.
   85AD  1E04     LD   E,#04
   85AF  0E07     LD   C,#07
   85B1  FB       EI
   85B2  0603     LD   B,#03
   85B4  210058   LD   HL,#5800
   85B7  76       HALT
   85B8  76       HALT
   85B9  76       HALT
   85BA  76       HALT
   85BB  7E       LD   A,(HL)
   85BC  A1       AND  C
   85BD  77       LD   (HL),A
   85BE  2C       INC  L
   85BF  20FA     JR   NZ,#85BB

1423.   85C1  24       INC  H
   85C2  10F7     DJNZ #85BB
   85C4  CB39     SRL  C
   85C6  1D       DEC  E
   85C7  20E9     JR   NZ,#85B2
   85C9  C9       RET
2
   Алгоритм   работы   процедуры
следующий. Побитно  выключаются,
начиная  со  старшего  и  кончая
младшим, все биты области  атри-
бутов. Вы можете замедленно про-
смотреть, как все  это  происхо-
дит, если сделаете такую замену:
1423.
   85BF  20F9     JR   NZ,#85BA
2
то есть включите одну  последнюю
команду HALT во внутренний цикл.
Вы увидите, что вначале построч-
но гаснут знакоместа, изображен-
ные с  повышенной  яркостью, за-
тем пропадает  зеленый цвет, за-
тем - красный, затем - оставший-
ся синий. При этом  надо  учиты-
вать,  что  само  изображение  -
дисплейный файл  -  не  затраги-
вается,  изображение   остается,
только становится INK  0:  PAPER
0: BRIGHT 0. Вы можете убедиться
в этом, если  подадите,  скажем,
такую команду:

PRINT AT 0,0;OVER 1;"32 пробела"

   Несколько замедлить  скорость
затухания можно такой заменой:
1423.
   85C2  10F6     DJNZ #85BA
2
   Для  получения  блока   кодов
плавного  затухания  можно  вос-
пользоваться Бейсик-программой:

   1 READ ram: CLEAR ram: READ f
$: READ st: READ len: FOR a=st T
O st+len-1: READ b: POKE a,b: NE
XT a: SAVE f$CODE st,len
  10 DATA 34220,"zyn",34221,29
 100 DATA
030,004,014,007,251,006,003,033,
000,088,118,118,118,118,126,161,
119,044,032,250,036,016,247,203,
057,029,032,233,201

   Следующая  программа   демон-
стрирует плавное затухание экра-
на. Здесь в строке  30  происхо-
дит загрузка экрана из  програм-
мы ZYNAPS (но это может быть лю-
бая другая картинка).

  10 BORDER 0: PAPER 0: INK 7: C
LEAR 24999
  20 LOAD "zyn"CODE
  30 LOAD "zynaps $"CODE 16384
  40 BEEP .1,26: BEEP .1,20: PAU
SE 0
  50 RANDOMIZE USR 34221