Top secrets sources NedoPC pentevo

Rev

Rev 764 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE; 03.05.2019 savelij

;‘Ž•€…ˆ… Š“‘Š€ Š€€
SAVE2X2         LD HL,FLAGS
                BIT B_VIDEO_MODE,(HL)
                RET NZ
                LD HL,(ADR_REST)
                LD DE,MOUSE_BUFF
                LD B,8
SAVE2X21        LD A,(HL)
                LD (DE),A
                INC DE
                INC L
                LD A,(HL)
                LD (DE),A
                INC DE
                DEC L
                CALL INC_H
                DJNZ SAVE2X21
                RET

;‚Ž‘‘’€Ž‚‹…ˆ… Š“‘Š€ Š€€
REST2X2         LD HL,FLAGS
                BIT B_VIDEO_MODE,(HL)
                RET NZ
                LD HL,(ADR_REST)
                LD DE,MOUSE_BUFF
                LD B,8
REST2X21        LD A,(DE)
                LD (HL),A
                INC DE
                INC L
                LD A,(DE)
                LD (HL),A
                INC DE
                DEC L
                CALL INC_H
                DJNZ REST2X21
                RET

DETECTMOUSE     LD HL,FLAGS
                LD BC,0XFBDF
                LD E,0X20
                EI
                HALT
                IN D,(C)                        ;1.‘’€ˆ‹œŽ‘’œ X
SETMOU1         IN A,(C)
                CP D
                JR NZ,SETMOU2
                DEC E
                JR NZ,SETMOU1                   ;2.KEYS<>X
                DEC B
                IN A,(C)
                CP D
                JR Z,SETMOU2                    ;3.KEYS&7=7(LION17)
                CPL
                AND 7
                SET B_MOUSE_PRESENT,(HL)
                RET Z
SETMOU2         RES B_MOUSE_PRESENT,(HL)
                SCF
                RET

MOUSE           LD HL,FLAGS
                BIT B_VIDEO_MODE,(HL)
                RET NZ
                LD HL,(ARXY)
                LD DE,(MOUPOS)                  ;D=Y ŠŽŽ„ˆ€’€, E=X ŠŽŽ„ˆ€’€
                LD BC,0XFBDF
                IN A,(C)                        ;—’…ˆ… ŠŽŽ„ˆ€’› X
                LD (MOUPOS),A
                SUB E
                JR Z,MOUNX
                JP P,MOUPX
                ADD A,L
                JR C,$+3
                XOR A
                LD L,A
                JR MOUNX

MOUPX           ADD A,L
                JR C,$+6
                CP 0XF9
                JR C,$+4
                LD A,0XF9
                LD L,A
MOUNX           LD BC,0XFFDF                    ;—’…ˆ… ŠŽŽ„ˆ€’› Y
                IN A,(C)
                LD (MOUPOS+1),A
                SUB D
                JR Z,MOUNY
                NEG
                JP P,MOUPY
                ADD A,H
                JR C,$+3
                XOR A
                LD H,A
                JR MOUNY

MOUPY           ADD A,H
                JR C,$+6
                CP 0XB8
                JR C,$+4
                LD A,0XB8
                LD H,A
MOUNY           LD (ARXY),HL
                RET

MOUOPT          LD H,(IX+1)
                LD L,(IX+0)
                LD DE,(ARXY)
                LD B,3
                SRL D
                SRL E
                DJNZ $-4
                LD A,E
                CP L
                RET C                           ;Š“‘Ž ‹…‚…… ŽŠ€
                LD A,L
                ADD A,(IX+3)
                DEC A
                CP E
                RET C                           ;Š“‘Ž €‚…… ŽŠ€
                LD A,D
                INC H
                CP H
                RET C                           ;Š“‘Ž ‚›˜… ŽŠ€ ˆ‹ˆ € ‚…•…‰ Ž‹Ž‘Š…
                LD A,H
                ADD A,(IX+2)
                SUB 3
                CP D
                RET C                           ;Š“‘Ž ˆ†… ŽŠ€ ˆ‹ˆ € Ž‘‹…„…‰ Ž‹Ž‘Š…
;Š“‘Ž ‚ …„…‹€• €Ž—…‰ Ž‹€‘’ˆ
                LD A,(IX+_NUM_KOL_H)
                AND A
                JR NZ,.L1              
                OR (IX+_NUM_KOL_L)
                JR Z,.L1
;Ž‚…Š€ „‹Ÿ ŠŽ‹ˆ—…‘’‚€ “Š’Ž‚ Œ…œ˜… ‚›‘Ž’› ŽŠ€ - 2
                PUSH HL
                LD L,A
                LD H,(IX+_NUM_KOL_H)
                LD A,D
                SUB (IX+_Y_COORD)
                LD C,A
                LD B,0
                AND A
                SBC HL,BC
                POP HL
                RET C

.L1             LD A,D
                SUB H
                LD C,A
                LD L,(IX+8)
                LD H,(IX+9)
                BIT 7,(IX+7)
                JR Z,MOUOPT1
                LD B,0
                LD C,(HL)
                INC HL
                LD E,(HL)
                INC HL
                LD D,(HL)
                EX DE,HL
                SBC HL,BC
                LD C,A
                ADD HL,BC
                EX DE,HL
                LD (HL),D
                DEC HL
                LD (HL),E
                DEC HL
                LD (HL),A
                JP COLOR_CURSOR

MOUOPT1         LD B,0
                LD D,B
                LD E,(IX+7)
                SBC HL,DE
                ADD HL,BC
                LD (IX+7),C
                LD (IX+8),L
                LD (IX+9),H
                JP COLOR_CURSOR

DRAW_MOUSE      LD BC,(ARXY)
                LD L,B
                LD H,0
                ADD HL,HL
                LD DE,BUFTSC
                ADD HL,DE
                LD A,C
                RRCA
                RRCA
                RRCA
                AND 0X1F
                ADD A,(HL)
                INC HL
                LD H,(HL)
                LD L,A
                LD (ADR_REST),HL
                PUSH HL
                CALL SAVE2X2
                LD A,(_MORG)
                INC A
                LD HL,FLAGS
                CP 0X0C
                JR NZ,_MORG3
                LD A,M_CURSOR_NUM
                XOR (HL)
                LD (HL),A
                XOR A
_MORG3          LD (_MORG),A
                LD A,(ARXY)
                AND 7
                CPL
                ADD A,9
                LD C,A
                LD A,(FLAGS)
                AND M_CURSOR_NUM
                LD HL,SPRAR
                JR Z,_MORG2
                LD HL,SPRAR2
_MORG2          LD B,8
                POP DE
PRAR0           PUSH BC
                LD B,C
                LD C,(HL)
                INC HL
                PUSH HL
                LD L,(HL)
                EX DE,HL
                LD A,0XFF
                LD D,0
PRAR1           SCF
                RL C
                RLA
                SLA E
                RL D
                DJNZ PRAR1
                AND (HL)
                OR D
                LD (HL),A
                INC L
                LD A,(HL)
                AND C
                OR E
                LD (HL),A
                DEC L
                CALL INC_H
                EX DE,HL
                POP HL
                INC HL
                POP BC
                DJNZ PRAR0
                RET

;Œ…‘’ŽŽ‹Ž†…ˆ… Š“‘Ž€
OPMSPL          LD E,(IX+0X10)
                LD D,(IX+0X11)
                LD A,D
                OR E
                RET Z                           ;€„…‘ Žˆ‘€’…‹…‰ … ‡€„€
                PUSH IX
                PUSH DE
                POP IX
                LD HL,(ARXY)                    ;H=Y, L=X
                SRL H
                SRL H
                SRL H
                SRL L
                SRL L
                SRL L                           ;HL=HL/8
NXTPOS2         LD A,(IX+0)
                INC A
                JR Z,ENDWI
                LD A,L
                CP (IX+1)
                JR C,NXTPOS1                    ;Š“‘Ž ‹…‚……
                LD A,(IX+1)
                ADD A,(IX+4)
                DEC A
                CP L
                JR C,NXTPOS1                    ;Š“‘Ž €‚……
                LD A,H
                CP (IX+2)
                JR C,NXTPOS1                    ;Š“‘Ž ‚›˜…
                LD A,(IX+2)
                ADD A,(IX+3)
                DEC A
                CP H
                JR C,NXTPOS1                    ;Š“‘Ž ˆ†…
                LD A,(IX+5)                     ;Ž‹“—ˆ‹ˆ ŠŽ„ ŠŽŠˆ  
ENDWI           POP IX                          ;Ž€‹ˆ ‚ ‡€„€“ž ‡Ž“
                RET                             ;‚›•Ž„ˆŒ

NXTPOS1         LD DE,6                         ;ŽŠ€ ˆŠ“„€ … Ž€‹ˆ
                ADD IX,DE                       ;……•Ž„ˆŒ Š Ž‚…Š… ‘‹…„“™…ƒŽ
                JR NXTPOS2