(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
           *   *   *

