(c)  騭, ᪢

ZXNet : 500:95/462.53
E-mail: bestview@mtu-net.ru
WWW   : http://www.ivr.da.ru

                     ᪨ 䥪
                    

("ZX-" 3-4/1997)
( ᫥ ।஢: 4.10.2002)

    ।  襬     楤    ᥬ,
ॠ騥  ᨢ   䥪 ( ࠩ , 
⠪   室).
    ।  ᪮  ࢮ  楤    ࠭   
-  ⨭.  㢨,   ⨭ ⥯
.  室 筮   .
       䥪       ਬ    ᢮  ணࠬ,
ਬ,  ⠪:  ᫨  짮⥫  த⥫쭮  ६  
  , ࠭塞  ᮤন  ࠭   
᪠  楤.    ⮫쪮  -   㤥
,  ⠭  ⨭    ࠭  (,  ⮬
   楤).
    , 楤 㤭 . ஡  㪠
 ⠢  CALL SET_0  CALL SET_1, ᬮ,
 .

EFFECT  LD      HL,0         ;  ROM
        LD      (ADR_ROM),HL

;砥  DE 砩 न
;। 窨  ࠭塞  :

NEXT_X  LD      HL,(ADR_ROM)
        LD      B,(HL)  ;न x
        INC     HL
        LD      A,R
        XOR     B
        LD      R,A
        LD      D,A

NEXT_Y  LD      B,(HL)  ;न y
        INC     HL
        LD      A,R
        XOR     B
        CP      191
        JR      NC,NEXT_Y
        LD      E,A
        LD      (KRDS),DE
        LD      (ADR_ROM),HL
        LD      A,(HL)
        PUSH    AF

        CALL    GET_P    ;㧭 梥 ⮩ 窨 (0..1)
        LD      (COL),A

;롨ࠥ ࠢ,  ஬
;室  窠,  㧭 
;न:

        POP     AF
        AND     3        ;᫮ 0..3 -  ࠢ
        LD      HL,TABLE
        LD      B,0
        LD      C,A
        ADD     HL,BC
        LD      A,(HL)   ; ᪮쪮  y
        PUSH    AF
        LD      BC,4
        ADD     HL,BC
        LD      A,(HL)   ; ᪮쪮 x

        ADD     A,D
        LD      D,A
        POP     AF       ; ᪮쪮 y
        ADD     A,E
        LD      E,A
        CP      192
        JR      NZ,NE_192
        LD      E,190
NE_192  CP      #FF
        JR      NZ,X_OK
        LD      E,1

X_OK    CALL    GET_P  ; 梥 ன 窨.
        LD      IX,COL ;ࠢ   梥⮬ ࢮ 窨.
        CP      (IX)   ;᫨  ,
        JR      Z,H_OK ; 窨 ⠬  .

        PUSH    DE        ;. . ன 窨
        LD      DE,(KRDS) ;㥬 ⨬ 梥⮬  .

        CP      0        ; 5    
        PUSH    AF       ; CALL SET_0 
        CALL    Z,SET_0  ;CALL SET_1,  ⮬ 
        POP     AF       ;䥪 .
        CALL    NZ,SET_1

        POP     DE     ;. न ன 窨.

        LD      A,(COL)  ; 6    
        CP      0        ; CALL SET_0 
        PUSH    AF       ;CALL SET_1,  ⮬ 
        CALL    Z,SET_0  ;䥪 .
        POP     AF
        CALL    NZ,SET_1

        LD      A,(ADR_ROM+1) ;஢塞,  ⨣ 
        AND     #1F           ;। ⨬ 
        LD      (ADR_ROM+1),A ; ROM 㬠.

H_OK    XOR     A          ;஢塞,   
        IN      A,(#FE)    ;-  .
        CPL
        AND     %00011111
        JP      Z,NEXT_X
        RET                ;᫨ , 室.

SET_1   CALL    BYTE
        LD      B,(HL)
        OR      B
        LD      (HL),A
        RET

SET_0   CALL    BYTE
        CPL
        LD      B,(HL)
        AND     B
        LD      (HL),A
        RET

GET_P   CALL    BYTE
        LD      B,(HL)
        AND     B
        RET     Z
        LD      A,1
        RET

BYTE    PUSH    DE
        LD      A,E
        AND     A
        RRA
        SCF
        RRA
        AND     A
        RRA
        XOR     E
        AND     #F8
        XOR     E
        LD      H,A
        LD      A,D
        RLCA
        RLCA
        RLCA
        XOR     E
        AND     #C7
        XOR     E
        RLCA
        RLCA
        LD      L,A
        LD      A,D
        AND     7
        LD      B,A
        INC     B
        LD      A,1
LOOP    RRCA
        DJNZ    LOOP
        POP     DE
        RET

KRDS    DW      0  ;न 窨
COL     DB      0  ;梥 窨
TABLE   DB      0,#FF,0,1
        DB      1,0,#FF,0
ADR_ROM DW      0

    楤 ।祭  뢮 ⨭  ࠭.
।  ᪮  ॣ஢   HL  㦭  㪠  
⨭.

DEMO    LD      HL,#C000    ; 뢮 ⨭
        CALL    EFFECT
        RET

;***************************************
;楤 EFFECT ⢫ 뢮
;⨭  ࠭.
;室: HL -  뢮 ⨭.
; 맮 뢠  
;ࠧ襭!

Q       EQU     7       ;Q   
Q_2     EQU     Q*Q     ;। [1..8],  
                        ;祭  䥪.

EFFECT  LD      DE,#C000     ;ன 
        ADD     HL,DE        ; 楤.
        LD      (ADR1+1),HL
        LD      D,#58        ;७ᨬ 䠩
        ADD     HL,DE        ;ਡ⮢.
        LD      BC,#300
        LDIR            ;᫥ ⮣ E=0.
        LD      D,-Q_2  ;D -  ⥪饩 ப.

; ॣ E - ᪮쪮 ப ࠡ⠭ ( 0).

LOOP1   HALT                    ;প
        LD      BC,Q+1*256+Q_2  ;B - 稪, C - ᬥ饭

LOOP2   LD      A,D     ; ⥪饩 ப.
        ADD     A,C     ;ਡ塞 ᬥ饭.
        CP      192     ;᫨  ப  192,
        JR      NC,NEXT ;ய᪠ .

        EXX
        CALL    ADR_STR ; 㧭  ப.
ADR1    LD      BC,0
        ADD     HL,BC   ; HL -   .
        LD      BC,#20  ;  ப.
        LDIR            ;뢥  ࠭.
        EXX             ;稢 ⢮
        INC     E       ;ࠡ⠭ ப.

NEXT    LD      A,C     ;訫 ᬥ饭.
        SUB     Q
        LD      C,A
        DJNZ    LOOP2   ;塞 横.

        INC     D       ;稫  ⥪. ப.

;᫨    (Q+1), 㢥稢   Q.

        LD      B,0       ;稪 (256 ७).
        LD      A,D       ;஢塞 ᫮.
LOOP3   SUB     Q+1       ;⠥ ⥫.
        JR      Z,DEL     ;᫨ 稫 0, ..  楫.
        DJNZ    LOOP3     ;த...
        JR      M12       ;᫨ ᫮   楫.

DEL     LD      A,D       ;稢 
        ADD     A,Q       ;⥪饩 ப
        LD      D,A       ; Q.

M12     LD      A,E       ;쪮 ப 뢥?
        CP      192       ; 192 ப?
        JR      NZ,LOOP1  ;᫨ , த 뢮.
        RET

;***************************************
;楤 ADR_STR
;室:  A -  ப (0..191)
;室: HL,DE -   ᯫ 䠩.

ADR_STR LD      E,A
        AND     A
        RRA
        SCF
        RRA
        AND     A
        RRA
        XOR     E
        AND     #F8
        XOR     E
        LD      H,A
        XOR     A
        XOR     E
        AND     #C7
        XOR     E
        RLCA
        RLCA
        LD      L,A
        LD      E,A
        LD      D,H
        RET



    㣨    ணࠬ஢ ᪨ 䥪⮢:

1. "ࠩ ࠭   '⠣-128'". "ZX-"
   3-4/1997.

2. "᪨ 䥪 '梥 '". "ZX-" 7-10/1997.

3. "᪮쪮 ᪨ 䥪⮢". "ZX-" 11-12/1997.

4. "᪨ 䥪 'iris'". ZX Format #8, Adventurer #8.

5. "襭 䥪  demo 'Art Vision'". Adventurer #8.

6. "⨬  ਬ intro 'Start'". ". 
   " 7-10/2001.
