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