(C) Komandin Ilya (ZX-MANIACS),
Kaluga.
I would like to offer a program
display screen vertical
columns in a chaotic manner
(The picture should be placed
at BUFF).
1410.
; (C) ZX-MANIACS'1996
; SPECIAL FOR INFORCOM
ORG 40000
ENT
BUFF EQU 41000
LD HL, TABL
LD DE, TABL +1
LD BC, 255
LD (HL), 0
LDIR
XOR A
LD (COUNT), A
LD HL, BUFF
LD DE, # 4000
SBC HL, DE
LD (DIFF), HL
LD HL, 8000
NEXT PUSH HL
LD C, (HL)
LD A, R
AND 63
XOR C
LD C, A
LD H, 0
LD L, A
LD DE, TABL
ADD HL, DE
LD A, (HL)
OR A
JR NZ, CONT2
LD (HL), a
LD A. (COUNT)
INC A
LD (COUNT), A
XOR A
CALL 8880
ADD A, A
ADD A, A
ADD A, A
ADD A, 70
LD (BITP), A
ADD A, 64
LD (RESP), A
LD (SETP), A
LD B, 192
LOOP LD DE, (DIFF)
ADD HL, DE
DEFB # CB
BITP NOP
PUSH AF
SBC HL, DE
POP AF
JR Z, CONT
DEFB # CB
SETP NOP
JR CONT1
CONT DEFB # CB
RESP NOP
CONT1 CALL DOWN
DJNZ LOOP
CONT2 POP HL
DEC HL
LD A, (CONT)
CP # FF
JR NZ, NEXT
LD HL, BUFF
LD DE, # 4000
LD BC, 6912
LDIR
RET
DOWN INC H
LD A, H
AND 7
RET NZ
LD A, L
ADD A, 32
LD L, A
RET C
LD A, H
SUB 8
LD H, A
RET
DIFF DEFW 0
COUNT DEFB 0
TABL DEFS 256
2
At the same time offering and simplified
version of the same procedure. The visual effect of it is not so
pleasant, but the length is much
less (do not need the table).
1410.
; (C) ZX-MANIACS'1996
; SPECIAL FOR INFORCOM
ORG 40000
ENT
BUFF EQU 41000
LD HL, BUFF
LD DE, # 4000
SBC HL, DE
LD (DIFF), HL
LD HL, 800
NEXT PUSH HL
LD C, (HL)
LD A, R
AND 63
XOR C
LD C, A
XOR A
CALL 8880
ADD A, A
ADD A, A
ADD A, A
ADD A, 70
LD (BITP), A
ADD A, 64
LD (RESP), A
LD (SETP), A
LD B, 192
LOOP LD DE, (DIFF)
ADD HL, DE
DEFB # CB
BITP NOP
PUSH AF
SBC HL, DE
POP AF
JR Z, CONT
DEFB # CB
SETP NOP
JR CONT1
CONT DEFB # CB
RESP NOP
CONT1 CALL DOWN
DJNZ LOOP
CONT2 POP HL
DEC HL
LD A, H
OR L
JR NZ, NEXT
LD HL, BUFF
LD DE, # 4000
LD BC, 6912
LDIR
RET
DOWN INC H
LD A, H
AND 7
RET NZ
LD A, L
ADD A, 32
LD L, A
RET C
LD A, H
SUB 8
LD H, A
RET
DIFF DEFW 0
2
Both programs use the procedure DOWN Pavel Starkov
from Krasnoyarsk and Edward K., Andrey Vlasov from
Rostov-na-Donu (ZX-REVIEW 95 / 4, p. 46). I intentionally did
not disclose routine and made it a separate module, to show
that it belongs to other authors.