Studies - attribute scrolling text. "Gasilka" screen. A simplified version of the procedure, "Curtain". Procedure is enriched with pictures. Procedure display images on the points.

ZX Review #7-8-9-10
(C) L. Smirnov, Yaroslavl


   You wrote your a regular reader of Leonid Smirnov. I'm 
reading your magazine since 1994. My favorite topic - Etudes. I 
want to suggest to her a few programs.


   The first - an attribute running
line. It has a fairly short length (only about 90
bytes), and works quite
quickly. Here is its listing:
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; background color

        EX DE, HL

        RLC (HL)

        EX DE, HL

        JR NC, L4

        LD (HL), 114; color of the letters
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; end of the text
2

   Procedure must be called
every interruption, before using it to initialize, for example:


        CALL INIT

        RES 5, (IY +1)
A1 HALT

        CALL LINE

        BIT 5, (IY +1)

        JR Z, A1

        RET


   The second program - it is
one "gasilka" screen. With each pass across the screen values
PAPER and INK decreased by 1,
BRIGHT and FLASH are not changed.
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

   The next program - simplified version of procedure ML
Pletnev's "Curtain" (N1, 1995).
140.

        LD HL, # 5800

        LD B, 24
L2 LD C, # 1920
L1 LD (HL), 100
The color blind

        INC HL

        DEC C

        JR NZ, L1

        HALT

        DJNZ L2

        LD HL, SCREEN
; URL for an image

        LD DE, # 4000
; Throw a picture under the shade

        LD BC, 6144

        LDIR

        LD HL, SCREEN +6911
; The last byte of attributes

        LD DE, # 5AFF

        LD B, 24
L3 PUSH BC

        LD BC, # 20

        LDDR

        POP BC

        HALT

        DJNZ L3

        RET
2

   The following two procedures, I pulled out of the game by P. 
Tennis c Shadow monitor my Scorpion. The first is for

quenching, and the second - for the manifestation of the 
picture on the points. 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

           *