Subversion Repositories pentevo

Rev

Rev 801 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
801 savelij 1
 
821 savelij 2
;LAST UPDATE: 03.05.2019 savelij
801 savelij 3
 
4
;[‘Ž•€…ˆ… Š“‘Š€ Š€€]
5
SAVE2X2         LD HL,(ADR_REST)
6
                LD DE,MOUSE_BUFF
7
                LD B,8
8
SAVE2X21        LD A,(HL)
9
                LD (DE),A
10
                INC DE
11
                INC L
12
                LD A,(HL)
13
                LD (DE),A
14
                INC DE
15
                DEC L
16
                CALL INC_H
17
                DJNZ SAVE2X21
18
                RET
19
 
20
;[‚Ž‘‘’€Ž‚‹…ˆ… Š“‘Š€ Š€€]
21
REST2X2         LD HL,0
22
ADR_REST        EQU $-2
23
                LD DE,MOUSE_BUFF
24
                LD B,8
25
REST2X21        LD A,(DE)
26
                LD (HL),A
27
                INC DE
28
                INC L
29
                LD A,(DE)
30
                LD (HL),A
31
                INC DE
32
                DEC L
33
                CALL INC_H
34
                DJNZ REST2X21
35
                RET
36
 
37
;[„…’…Š’ €‹ˆ—ˆŸ Œ›˜ˆ]
38
DETECTMOUSE     LD HL,ERS_FLAGS
39
                LD BC,MOUSE_X
40
                LD E,0X20
41
                EI
42
                HALT
43
                IN D,(C)                ;1.‘’€ˆ‹œŽ‘’œ X
44
SETMOU1         IN A,(C)
45
                CP D
46
                JR NZ,SETMOU2
47
                DEC E
48
                JR NZ,SETMOU1           ;2.KEYS<>X
49
                LD B,HIGH (MOUSE_KEYS);DEC B
50
                IN A,(C)
51
                CP D
52
                JR Z,SETMOU2            ;3.KEYS&7=7(LION17)
53
                CPL
54
                AND 7
55
                SET B_MOUSE_ON,(HL)
56
                RET Z
57
SETMOU2         RES B_MOUSE_ON,(HL)
58
                SCF
59
                RET
60
 
61
;[ŽŽ‘ ……Œ…™…ˆŸ Œ›˜ˆ]
62
MOUSE           LD HL,(ARXY)
63
                LD DE,0                 ;D=Y ŠŽŽ„ˆ€’€, E=X ŠŽŽ„ˆ€’€
64
MOUPOS          EQU $-2
65
                LD BC,MOUSE_X
66
                IN A,(C)                ;—’…ˆ… ŠŽŽ„ˆ€’› X
67
                LD (MOUPOS),A
68
                SUB E
69
                JR Z,MOUNX
70
                JP P,MOUPX
71
                ADD A,L
72
                JR C,$+3
73
                XOR A
74
                LD L,A
75
                JR MOUNX
76
 
77
MOUPX           ADD A,L
78
                JR C,$+6
79
                CP 0XF9
80
                JR C,$+4
81
                LD A,0XF9
82
                LD L,A
83
MOUNX           LD BC,MOUSE_Y           ;—’…ˆ… ŠŽŽ„ˆ€’› Y
84
                IN A,(C)
85
                LD (MOUPOS+1),A
86
                SUB D
87
                JR Z,MOUNY
88
                NEG
89
                JP P,MOUPY
90
                ADD A,H
91
                JR C,$+3
92
                XOR A
93
                LD H,A
94
                JR MOUNY
95
 
96
MOUPY           ADD A,H
97
                JR C,$+6
98
                CP 0XB8
99
                JR C,$+4
100
                LD A,0XB8
101
                LD H,A
102
MOUNY           LD (ARXY),HL
103
                RET
104
 
105
MOUOPT          LD H,(IX+_Y_COORD)
106
                LD L,(IX+_X_COORD)
107
                LD DE,(ARXY)
108
                LD B,3
109
                SRL D
110
                SRL E
111
                DJNZ $-4
112
                LD A,E
113
                CP L
821 savelij 114
                RET C                   ;Š“‘ސ ‹…‚…… ŽŠ€
801 savelij 115
                LD A,L
116
                ADD A,(IX+_H_SIZE)
117
                DEC A
118
                CP E
821 savelij 119
                RET C                   ;Š“‘ސ €‚…… ŽŠ€
801 savelij 120
                LD A,D
121
                INC H
122
                CP H
821 savelij 123
                RET C                   ;Š“‘ސ ‚›˜… ŽŠ€ ˆ‹ˆ € ‚…•…‰ Ž‹Ž‘Š…
801 savelij 124
                LD A,H
125
                ADD A,(IX+_V_SIZE)
126
                SUB 3
127
                CP D
821 savelij 128
                RET C                   ;Š“‘ސ ˆ†… ŽŠ€ ˆ‹ˆ € Ž‘‹…„…‰ Ž‹Ž‘Š…
129
;Š“‘ސ ‚ …„…‹€• €Ž—…‰ ށ‹€‘’ˆ
130
                LD A,(IX+_NUM_KOL_H)
131
                AND A
132
                JR NZ,.L1              
133
                OR (IX+_NUM_KOL_L)
134
                JR Z,.L1
135
;Ž‚…Š€ „‹Ÿ ŠŽ‹ˆ—…‘’‚€ “Š’Ž‚ Œ…œ˜… ‚›‘Ž’› ŽŠ€ - 2
136
                PUSH HL
137
                LD L,A
138
                LD H,(IX+_NUM_KOL_H)
801 savelij 139
                LD A,D
821 savelij 140
                SUB (IX+_Y_COORD)
141
                LD C,A
142
                LD B,0
143
                AND A
144
                SBC HL,BC
145
                POP HL
146
                RET C
147
 
148
.L1             LD A,D
801 savelij 149
                SUB H
150
                LD C,A
151
                LD L,(IX+_TEK_PKT_L)
152
                LD H,(IX+_TEK_PKT_H)
153
                LD B,0
154
                LD D,B
155
                LD E,(IX+_NUM_PKT)
156
                SBC HL,DE
157
                ADD HL,BC
158
                LD (IX+_TEK_PKT_L),L
159
                LD (IX+_TEK_PKT_H),H
160
                LD (IX+_NUM_PKT),C
161
                JP COLOR_CURSOR
162
 
163
;[ˆ‘Ž‚€ˆ… Š“‘ސ€ Œ›˜ˆ]
164
DRAW_MOUSE      LD BC,0
165
ARXY            EQU $-2
166
                LD A,B
167
                CALL 8881
168
                LD (REST2X2+1),HL
169
                PUSH HL
170
                CALL SAVE2X2
171
                LD A,6
172
_MORG           EQU $-1
173
                INC A
174
                LD HL,ERS_FLAGS
175
                CP 0X0C
176
                JR NZ,_MORG3
177
                LD A,M_NUM_CURSOR
178
                XOR (HL)
179
                LD (HL),A
180
                XOR A
181
_MORG3          LD (_MORG),A
182
                LD A,(ARXY)
183
                AND 7
184
                CPL
185
                ADD A,9
186
                LD C,A
187
                LD A,(ERS_FLAGS)
188
                AND M_NUM_CURSOR
189
                LD HL,SPRAR
190
                JR Z,_MORG2
191
                LD HL,SPRAR2
192
_MORG2          LD B,8
193
                POP DE
194
PRAR0           PUSH BC
195
                LD B,C
196
                LD C,(HL)
197
                INC HL
198
                PUSH HL
199
                LD L,(HL)
200
                EX DE,HL
201
                LD A,0XFF
202
                LD D,0
203
PRAR1           SCF
204
                RL C
205
                RLA
206
                SLA E
207
                RL D
208
                DJNZ PRAR1
209
                AND (HL)
210
                OR D
211
                LD (HL),A
212
                INC L
213
                LD A,(HL)
214
                AND C
215
                OR E
216
                LD (HL),A
217
                DEC L
218
                CALL INC_H
219
                EX DE,HL
220
                POP HL
221
                INC HL
222
                POP BC
223
                DJNZ PRAR0
224
                RET
225
 
226
;[Œ…‘’ŽŽ‹Ž†…ˆ… Š“‘ސ€]
227
OPMSPL          LD E,(IX+_ADR_MOUSE_L)
228
                LD D,(IX+_ADR_MOUSE_H)
229
                LD A,D
230
                OR E
231
                RET Z                   ;€„…‘ Žˆ‘€’…‹…‰ … ‡€„€
232
                PUSH IX
233
                PUSH DE
234
                POP IX
235
                LD HL,(ARXY)            ;H=Y, L=X
236
                SRL H
237
                SRL H
238
                SRL H
239
                SRL L
240
                SRL L
241
                SRL L                   ;HL=HL/8
821 savelij 242
.NXTPOS2        LD A,(IX+0)
801 savelij 243
                INC A
821 savelij 244
                JR Z,.ENDWI             ;ŠŽ…– ‘ˆ‘Š€
801 savelij 245
                LD A,L
246
                CP (IX+1)
821 savelij 247
                JR C,.NXTPOS1           ;Š“‘ސ ‹…‚……
801 savelij 248
                LD A,(IX+1)
249
                ADD A,(IX+4)
250
                DEC A
251
                CP L
821 savelij 252
                JR C,.NXTPOS1           ;Š“‘ސ €‚……
801 savelij 253
                LD A,H
254
                CP (IX+2)
821 savelij 255
                JR C,.NXTPOS1           ;Š“‘ސ ‚›˜…
801 savelij 256
                LD A,(IX+2)
257
                ADD A,(IX+3)
258
                DEC A
259
                CP H
821 savelij 260
                JR C,.NXTPOS1           ;Š“‘ސ ˆ†…
801 savelij 261
                LD A,(IX+5)             ;Ž‹“—ˆ‹ˆ ŠŽ„ ŠŽŠˆ  
821 savelij 262
.ENDWI          POP IX                  ;Ž€‹ˆ ‚ ‡€„€“ž ‡Ž“
801 savelij 263
                RET                     ;‚›•Ž„ˆŒ
264
 
821 savelij 265
.NXTPOS1        LD DE,6                 ;ŽŠ€ ˆŠ“„€ … Ž€‹ˆ
801 savelij 266
                ADD IX,DE               ;……•Ž„ˆŒ Š Ž‚…Š… ‘‹…„“™…ƒŽ
821 savelij 267
                JR .NXTPOS2