Subversion Repositories pentevo

Rev

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

Rev Author Line No. Line
507 savelij 1
 
1186 savelij 2
; LAST UPDATE: 14.02.2025 savelij
585 savelij 3
 
1186 savelij 4
; ࠭ ᪠ ࠭
5
SAVE2X2         LD HL,SYSFLAGS
6
                BIT SYSFLAGS.B_VIDEO_MODE,(HL)
585 savelij 7
                RET NZ
8
                LD HL,(ADR_REST)
507 savelij 9
                LD DE,MOUSE_BUFF
10
                LD B,8
1186 savelij 11
.L1             LD A,(HL)
507 savelij 12
                LD (DE),A
13
                INC DE
14
                INC L
15
                LD A,(HL)
16
                LD (DE),A
17
                INC DE
18
                DEC L
19
                CALL INC_H
1186 savelij 20
                DJNZ .L1
507 savelij 21
                RET
22
 
1186 savelij 23
; ⠭ ᪠ ࠭
24
REST2X2         LD HL,SYSFLAGS
25
                BIT SYSFLAGS.B_VIDEO_MODE,(HL)
585 savelij 26
                RET NZ
27
                LD HL,(ADR_REST)
507 savelij 28
                LD DE,MOUSE_BUFF
29
                LD B,8
1186 savelij 30
.L1             LD A,(DE)
507 savelij 31
                LD (HL),A
32
                INC DE
33
                INC L
34
                LD A,(DE)
35
                LD (HL),A
36
                INC DE
37
                DEC L
38
                CALL INC_H
1186 savelij 39
                DJNZ .L1
507 savelij 40
                RET
41
 
1186 savelij 42
DETECTMOUSE     LD HL,SYSFLAGS
43
                LD BC,0xFBDF
44
                LD E,0x20
507 savelij 45
                EI
46
                HALT
1186 savelij 47
                IN D,(C)                        ; 1.⠡쭮 X
48
.L1             IN A,(C)
507 savelij 49
                CP D
1186 savelij 50
                JR NZ,.L2
507 savelij 51
                DEC E
1186 savelij 52
                JR NZ,.L1                       ; 2.keys<>X
507 savelij 53
                DEC B
54
                IN A,(C)
55
                CP D
1186 savelij 56
                JR Z,.L2                        ; 3.keys&7=7(LION17)
507 savelij 57
                CPL
58
                AND 7
1186 savelij 59
                SET SYSFLAGS.B_MOUSE_PRESENT,(HL)
507 savelij 60
                RET Z
1186 savelij 61
.L2             RES SYSFLAGS.B_MOUSE_PRESENT,(HL)
507 savelij 62
                SCF
63
                RET
64
 
1186 savelij 65
MOUSE           LD HL,SYSFLAGS
66
                BIT SYSFLAGS.B_VIDEO_MODE,(HL)
585 savelij 67
                RET NZ
68
                LD HL,(ARXY)
1186 savelij 69
                LD DE,(MOUPOS)                  ; D=Y , E=X न
70
                LD BC,MOUSE_X
71
                IN A,(C)                        ; ⥭ न X
507 savelij 72
                LD (MOUPOS),A
73
                SUB E
74
                JR Z,MOUNX
75
                JP P,MOUPX
76
                ADD A,L
1186 savelij 77
                JR C,.L1
507 savelij 78
                XOR A
1186 savelij 79
.L1             LD L,A
507 savelij 80
                JR MOUNX
81
 
82
MOUPX           ADD A,L
1186 savelij 83
                JR C,.L1
84
                CP 0xF9
85
                JR C,.L2
86
.L1             LD A,0xF9
87
.L2             LD L,A
88
MOUNX           LD BC,MOUSE_Y
89
                IN A,(C)                        ; ⥭ न Y
507 savelij 90
                LD (MOUPOS+1),A
91
                SUB D
92
                JR Z,MOUNY
93
                NEG
94
                JP P,MOUPY
95
                ADD A,H
1186 savelij 96
                JR C,.L1
507 savelij 97
                XOR A
1186 savelij 98
.L1             LD H,A
507 savelij 99
                JR MOUNY
100
 
101
MOUPY           ADD A,H
1186 savelij 102
                JR C,.L1
103
                CP 0xB8
104
                JR C,.L2
105
.L1             LD A,0xB8
106
.L2             LD H,A
507 savelij 107
MOUNY           LD (ARXY),HL
108
                RET
109
 
1186 savelij 110
MOUOPT          LD H,(IX+_Y_COORD)
111
                LD L,(IX+_X_COORD)
507 savelij 112
                LD DE,(ARXY)
113
                LD B,3
1186 savelij 114
.L2             SRL D
507 savelij 115
                SRL E
1186 savelij 116
                DJNZ .L2
507 savelij 117
                LD A,E
118
                CP L
1186 savelij 119
                RET C                           ;   
507 savelij 120
                LD A,L
1186 savelij 121
                ADD A,(IX+_H_SIZE)
507 savelij 122
                DEC A
123
                CP E
1186 savelij 124
                RET C                           ;  ࠢ 
507 savelij 125
                LD A,D
126
                INC H
127
                CP H
1186 savelij 128
                RET C                           ;      孥 ᪥
507 savelij 129
                LD A,H
1186 savelij 130
                ADD A,(IX+_V_SIZE)
507 savelij 131
                SUB 3
132
                CP D
1186 savelij 133
                RET C                           ;      ᫥ ᪥
134
;   । ࠡ祩 
821 savelij 135
                LD A,(IX+_NUM_KOL_H)
136
                AND A
137
                JR NZ,.L1              
138
                OR (IX+_NUM_KOL_L)
139
                JR Z,.L1
1186 savelij 140
; ஢ઠ  ⢠ 㭪⮢    - 2
821 savelij 141
                PUSH HL
142
                LD L,A
143
                LD H,(IX+_NUM_KOL_H)
507 savelij 144
                LD A,D
821 savelij 145
                SUB (IX+_Y_COORD)
146
                LD C,A
147
                LD B,0
148
                AND A
149
                SBC HL,BC
150
                POP HL
151
                RET C
152
.L1             LD A,D
507 savelij 153
                SUB H
154
                LD C,A
1186 savelij 155
                LD L,(IX+_TEK_PKT_L)
156
                LD H,(IX+_TEK_PKT_H)
157
                BIT B_ADR_PUNKT,(IX+_NUM_PKT)
507 savelij 158
                JR Z,MOUOPT1
159
                LD B,0
160
                LD C,(HL)
161
                INC HL
162
                LD E,(HL)
163
                INC HL
164
                LD D,(HL)
165
                EX DE,HL
166
                SBC HL,BC
167
                LD C,A
168
                ADD HL,BC
169
                EX DE,HL
170
                LD (HL),D
171
                DEC HL
172
                LD (HL),E
173
                DEC HL
174
                LD (HL),A
175
                JP COLOR_CURSOR
176
 
177
MOUOPT1         LD B,0
178
                LD D,B
1186 savelij 179
                LD E,(IX+_NUM_PKT)
507 savelij 180
                SBC HL,DE
181
                ADD HL,BC
1186 savelij 182
                LD (IX+_NUM_PKT),C
183
                LD (IX+_TEK_PKT_L),L
184
                LD (IX+_TEK_PKT_H),H
507 savelij 185
                JP COLOR_CURSOR
186
 
187
DRAW_MOUSE      LD BC,(ARXY)
188
                LD L,B
189
                LD H,0
190
                ADD HL,HL
191
                LD DE,BUFTSC
192
                ADD HL,DE
193
                LD A,C
194
                RRCA
195
                RRCA
196
                RRCA
1186 savelij 197
                AND 0x1F
507 savelij 198
                ADD A,(HL)
199
                INC HL
200
                LD H,(HL)
201
                LD L,A
202
                LD (ADR_REST),HL
203
                PUSH HL
204
                CALL SAVE2X2
205
                LD A,(_MORG)
206
                INC A
1186 savelij 207
                LD HL,SYSFLAGS
208
                CP 0x0C
507 savelij 209
                JR NZ,_MORG3
1186 savelij 210
                LD A,SYSFLAGS.M_CURSOR_NUM
507 savelij 211
                XOR (HL)
212
                LD (HL),A
213
                XOR A
214
_MORG3          LD (_MORG),A
215
                LD A,(ARXY)
216
                AND 7
217
                CPL
218
                ADD A,9
219
                LD C,A
1186 savelij 220
                LD A,(SYSFLAGS)
221
                AND SYSFLAGS.M_CURSOR_NUM
507 savelij 222
                LD HL,SPRAR
223
                JR Z,_MORG2
224
                LD HL,SPRAR2
225
_MORG2          LD B,8
226
                POP DE
1186 savelij 227
.L2             PUSH BC
507 savelij 228
                LD B,C
229
                LD C,(HL)
230
                INC HL
231
                PUSH HL
232
                LD L,(HL)
233
                EX DE,HL
1186 savelij 234
                LD A,0xFF
507 savelij 235
                LD D,0
1186 savelij 236
.L1             SCF
507 savelij 237
                RL C
238
                RLA
239
                SLA E
240
                RL D
1186 savelij 241
                DJNZ .L1
507 savelij 242
                AND (HL)
243
                OR D
244
                LD (HL),A
245
                INC L
246
                LD A,(HL)
247
                AND C
248
                OR E
249
                LD (HL),A
250
                DEC L
251
                CALL INC_H
252
                EX DE,HL
253
                POP HL
254
                INC HL
255
                POP BC
1186 savelij 256
                DJNZ .L2
507 savelij 257
                RET
258
 
1186 savelij 259
; ⮯ 
260
OPMSPL          LD E,(IX+_ADR_MOUSE_L)
261
                LD D,(IX+_ADR_MOUSE_H)
507 savelij 262
                LD A,D
263
                OR E
1186 savelij 264
                RET Z                           ;  ⥫  
507 savelij 265
                PUSH IX
266
                PUSH DE
267
                POP IX
1186 savelij 268
                LD HL,(ARXY)                    ; H=Y, L=X
507 savelij 269
                SRL H
270
                SRL H
271
                SRL H
272
                SRL L
273
                SRL L
1186 savelij 274
                SRL L                           ; HL=HL/8
507 savelij 275
NXTPOS2         LD A,(IX+0)
276
                INC A
277
                JR Z,ENDWI
278
                LD A,L
279
                CP (IX+1)
1186 savelij 280
                JR C,NXTPOS1                    ;  
507 savelij 281
                LD A,(IX+1)
282
                ADD A,(IX+4)
283
                DEC A
284
                CP L
1186 savelij 285
                JR C,NXTPOS1                    ;  ࠢ
507 savelij 286
                LD A,H
287
                CP (IX+2)
1186 savelij 288
                JR C,NXTPOS1                    ;  
507 savelij 289
                LD A,(IX+2)
290
                ADD A,(IX+3)
291
                DEC A
292
                CP H
1186 savelij 293
                JR C,NXTPOS1                    ;  
294
                LD A,(IX+5)                     ; 稫    
295
ENDWI           POP IX                          ;    
296
                RET                             ; 室
507 savelij 297
 
1186 savelij 298
NXTPOS1         LD DE,6                         ;  㤠  
299
                ADD IX,DE                       ; 室  ஢થ ᫥饣
507 savelij 300
                JR NXTPOS2