Studies - I. Komandin. The program display screen.

ZX Review #3-4
(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.