Rev 838 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 838 | Rev 1186 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 | 1 | ||
| 2 | ;LAST UPDATE: 20.08.2019 savelij |
2 | ; LAST UPDATE: 14.02.2025 savelij |
| 3 | 3 | ||
| 4 | ;ОПИСАТЕЛЬ ОКНА (АДРЕС В IX) |
4 | ; описатель окна (адрес в IX) |
| 5 | ;+00 X КООРДИНАТА |
5 | ; +00 X координата |
| 6 | ;+01 Y КООРДИНАТА |
6 | ; +01 Y координата |
| 7 | ;+02 V ВЫСОТА |
7 | ; +02 V высота |
| 8 | ;+03 H ШИРИНА |
8 | ; +03 H ширина |
| 9 | ;+04 C ЦВЕТ |
9 | ; +04 C цвет |
| 10 | ;+05 C ЦВЕТ КУРСОРА |
10 | ; +05 C цвет курсора |
| 11 | ;+06 F ФЛАГОВЫЙ |
11 | ; +06 F флаговый |
| 12 | ;+07 N НОМЕР ПУНКТА В ОКНЕ |
12 | ; +07 N номер пункта в окне |
| 13 | ; БИТ 7-0 => 8-9 ТЕКУЩИЙ ПУНКТ, |
13 | ; BIT 7-0 => 8-9 текущий пункт, |
| 14 | ; 1 => 8-9 АДРЕС ХРАНЕНИЯ |
14 | ; 1 => 8-9 адрес хранения |
| 15 | ; 6-0 => A-B КОЛИЧЕСТВО ПУНКТОВ |
15 | ; 6-0 => A-B количество пунктов |
| 16 | ; 1 => A-B АДРЕС ХРАНЕНИЯ |
16 | ; 1 => A-B адрес хранения |
| 17 | ;+08 | ТЕКУЩИЙ |
17 | ; +08 | текущий |
| 18 | ;+09 | ПУНКТ МЕНЮ |
18 | ; +09 | пункт меню |
| 19 | ;+0A : КОЛИЧЕСТВО |
19 | ; +0A : количество |
| 20 | ;+0B : ПУНКТОВ |
20 | ; +0B : пунктов |
| 21 | ;+0C | АДРЕС |
21 | ; +0C | адрес |
| 22 | ;+0D | ТЕКСТА |
22 | ; +0D | текста |
| 23 | ;+0E : СПИСОК АДРЕСОВ |
23 | ; +0E : список адресов |
| 24 | ;+0F : ПОДПРОГРАММ |
24 | ; +0F : подпрограмм |
| 25 | ;+10 | АДРЕС СПИСКА АКТИВНЫХ |
25 | ; +10 | адрес списка активных |
| 26 | ;+11 | ЗОН ДЛЯ МЫШИ |
26 | ; +11 | зон для мыши |
| 27 | ;+12 : АДРЕС СПИСКА |
27 | ; +12 : адрес списка |
| 28 | ;+13 : ГОРЯЧИХ КЛАВИШ |
28 | ; +13 : горячих клавиш |
| 29 | 29 | ||
| 30 | ;ФОРМАТ ФЛАГОВОГО БАЙТА ОКНА |
30 | ; формат флагового байта окна |
| 31 | ;IX+6 |
31 | ; IX+6 |
| 32 | ;7-0-НЕТ, 1-ЕСТЬ НИЖНИЙ ЗАГОЛОВОК |
32 | ; 7-0-нет, 1-есть нижний заголовок |
| 33 | ;6-0-С РАМКОЙ,1-БЕЗ РАМКИ |
33 | ; 6-0-с рамкой,1-без рамки |
| 34 | ;5-0-НЕТ, 1-ЕСТЬ ВЕРХНИЙ ЗАГОЛОВОК |
34 | ; 5-0-нет, 1-есть верхний заголовок |
| 35 | ;4-0-ЕСТЬ ТЕКСТ, 1-НЕТ |
35 | ; 4-0-есть текст, 1-нет |
| 36 | ;3 |
36 | ; 3 |
| 37 | ;2- |
37 | ; 2- |
| 38 | ;1- |
38 | ; 1- |
| 39 | ;0- |
39 | ; 0- |
| 40 | 40 | ||
| 41 | ;РАСКЛАДКА БАЙТ ВЫДЕЛЕНИЙ. НА ДАННЫЙ МОМЕНТ НЕ ВСЕ ПЕРЕНЕСЕНО ИЗ СТАРОЙ РЕАЛИЗАЦИИ |
41 | ; раскладка байт выделений. на данный момент не все перенесено из старой реализации |
| 42 | ;+0 ФЛАГОВЫЙ |
42 | ; +0 флаговый |
| 43 | ; 7 ПРИ АКТИВНОСТИ УСТАНОВЛЕН |
43 | ; 7 при активности установлен |
| 44 | ; 6 УСТАНОВЛЕН, НЕ ВЫДЕЛЯЕТСЯ |
44 | ; 6 установлен, не выделяется |
| 45 | ; 5 УСТАНОВЛЕН, ВЫЗОВ ВЕКТОРА |
45 | ; 5 установлен, вызов вектора |
| 46 | ; 4 |
46 | ; 4 |
| 47 | ; 3 \ |
47 | ; 3 \ |
| 48 | ; 2 } ФОРМА КУРСОРА |
48 | ; 2 } форма курсора |
| 49 | ; 1 } ПРИ ПОПАДАНИИ |
49 | ; 1 } при попадании |
| 50 | ; 0 / |
50 | ; 0 / |
| 51 | ;+1 X КООРДИНАТА |
51 | ; +1 x координата |
| 52 | ;+2 Y КООРДИНАТА |
52 | ; +2 y координата |
| 53 | ;+3 V ВЫСОТА |
53 | ; +3 v высота |
| 54 | ;+4 H ШИРИНА |
54 | ; +4 h ширина |
| 55 | ;+5 K КОД КЛАВИШИ |
55 | ; +5 k код клавиши |
| 56 | 56 | ||
| - | 57 | EXT_WINDOW LD A,(SYSFLAGS) |
|
| - | 58 | BIT SYSFLAGS.B_FB_INT_EXT,A |
|
| - | 59 | JR NZ,EXT_ZX_WINDOW |
|
| 57 | ;ВНУТРЕННИЙ ВЫЗОВ РИСОВАНИЯ ОКНА НА ZX ЭКРАНЕ |
60 | ; внутренний вызов рисования окна на ZX экране |
| 58 | IWINW LD A,NUM_ZXSCR |
61 | INT_ZX_WINDOW LD A,NUM_ZXSCR |
| 59 | JR IWINW0 |
62 | JR INT_TXT_WINDOW.L1 |
| 60 | 63 | ||
| 61 | ;ВНУТРЕННИЙ ВЫЗОВ ДЛЯ РИСОВАНИЯ ОКНА НА ТЕКСТОВОМ ЭКРАНЕ |
64 | ; внутренний вызов для рисования окна на текстовом экране |
| 62 | ITWINW LD A,NUM_TXTSCR |
65 | INT_TXT_WINDOW LD A,NUM_TXTSCR |
| 63 | ;ВНЕШНИЙ ВЫЗОВ ДЛЯ РИСОВАНИЯ ОКНА НА ТЕКСТОВОМ ЭКРАНЕ |
66 | ; внешний вызов для рисования окна на текстовом экране |
| 64 | IWINW0 EX AF,AF' |
67 | .L1 EX AF,AF' |
| 65 | XOR A |
68 | XOR A |
| 66 | LD (PAGE4READ),A |
69 | LD (PAGE4READ),A |
| 67 | EX AF,AF' |
70 | EX AF,AF' |
| 68 | LD HL,FLAGS |
71 | LD HL,SYSFLAGS |
| 69 | SET B_WIN_INT_EXT,(HL) |
72 | SET SYSFLAGS.B_WIN_INT_EXT,(HL) |
| 70 | JR WINW0 |
73 | JR EXT_ZX_WINDOW.L1 |
| 71 | 74 | ||
| 72 | ;ВНЕШНИЙ ВЫЗОВ ДЛЯ РИСОВАНИЯ ОКНА НА ZX ЭКРАНЕ |
75 | ; внешний вызов для рисования окна на ZX экране |
| 73 | WINW LD HL,FLAGS |
76 | EXT_ZX_WINDOW LD HL,SYSFLAGS |
| 74 | RES B_WIN_INT_EXT,(HL) |
77 | RES SYSFLAGS.B_WIN_INT_EXT,(HL) |
| 75 | LD IX,(RREG_IXL) |
78 | LD IX,(RREG_IXL) |
| 76 | LD A,(R_77) |
79 | LD A,(R_77) |
| 77 | AND 7 |
80 | AND 7 |
| 78 | WINW0 CP NUM_ZXSCR |
81 | .L1 CP NUM_ZXSCR |
| 79 | JP Z,WINW_ZX |
82 | JP Z,WINW_ZX |
| 80 | CP NUM_TXTSCR |
83 | CP NUM_TXTSCR |
| 81 | RET NZ |
84 | RET NZ |
| 82 | EXX |
85 | EXX |
| 83 | LD BC,WIN_P6 |
86 | LD BC,WIN_P2 |
| 84 | LD A,(PAGE4READ) |
87 | LD A,(PAGE4READ) |
| 85 | OUT (C),A |
88 | OUT (C),A |
| 86 | EXX |
89 | EXX |
| 87 | LD D,(IX+0) ;X |
90 | LD D,(IX+_X_COORD) ; X |
| 88 | LD E,(IX+1) ;Y |
91 | LD E,(IX+_Y_COORD) ; Y |
| 89 | LD C,(IX+4) ;ЦВЕТ ОКНА |
92 | LD C,(IX+_COLOR_WIN) ; цвет окна |
| 90 | EXX |
93 | EXX |
| 91 | LD H,(IX+2) ;V |
94 | LD H,(IX+_V_SIZE) ; V |
| 92 | LD L,(IX+3) ;H |
95 | LD L,(IX+_H_SIZE) ; H |
| 93 | LD D,(IX+6) ;FLAGS |
96 | LD D,(IX+_FLAGS) ; FLAGS |
| 94 | XOR A |
- | |
| 95 | OUT (C),A |
97 | EVOPORT WIN_P2,RAM_NMI |
| 96 | LD B,HIGH (WIN_P3) |
98 | LD B,HIGH (WIN_P3) |
| 97 | LD A,0XF7 |
99 | LD A,VMODE7_0 |
| 98 | OUT (C),A |
100 | OUT (C),A |
| 99 | EXX |
101 | EXX |
| 100 | PUSH DE |
102 | PUSH DE |
| 101 | LD B," " |
103 | LD B," " |
| 102 | EXX |
104 | EXX |
| Line 114... | Line 116... | ||
| 114 | INC E |
116 | INC E |
| 115 | EXX |
117 | EXX |
| 116 | DEC H |
118 | DEC H |
| 117 | JR NZ,WINT2 |
119 | JR NZ,WINT2 |
| 118 | POP HL |
120 | POP HL |
| 119 | BIT 7,D |
121 | BIT B_DOWN_HEADER,D |
| 120 | EXX |
122 | EXX |
| 121 | POP DE |
123 | POP DE |
| 122 | JR Z,TNIZ_RAMKA ;ОКНО БЕЗ НИЖНЕГО ЗАГОЛОВКА |
124 | JR Z,TNIZ_RAMKA ; окно без нижнего заголовка |
| 123 | ;РИСУЕМ НИЖНЮЮ ЦВЕТНУЮ ПОЛОСКУ |
125 | ; рисуем нижнюю цветную полоску |
| 124 | PUSH DE |
126 | PUSH DE |
| 125 | EXX |
127 | EXX |
| 126 | LD A,H |
128 | LD A,H |
| 127 | EXX |
129 | EXX |
| 128 | DEC A |
130 | DEC A |
| Line 130... | Line 132... | ||
| 130 | LD E,A |
132 | LD E,A |
| 131 | CALL COLOR_LINE |
133 | CALL COLOR_LINE |
| 132 | POP DE |
134 | POP DE |
| 133 | JR TCENTR_RAMK |
135 | JR TCENTR_RAMK |
| 134 | 136 | ||
| 135 | ;РИСУЕМ НИЖНЮЮ РАМКУ |
137 | ; рисуем нижнюю рамку |
| 136 | TNIZ_RAMKA EXX |
138 | TNIZ_RAMKA EXX |
| 137 | BIT 6,D |
139 | BIT B_WINFRAME,D |
| 138 | EXX |
140 | EXX |
| 139 | JR NZ,TCENTR_RAMK |
141 | JR NZ,TCENTR_RAMK |
| 140 | EXX |
142 | EXX |
| 141 | LD A,H |
143 | LD A,H |
| 142 | EXX |
144 | EXX |
| 143 | PUSH DE |
145 | PUSH DE |
| 144 | DEC A |
146 | DEC A |
| 145 | ADD A,E |
147 | ADD A,E |
| 146 | LD E,A |
148 | LD E,A |
| 147 | ; LD B,"└" |
149 | ; LD B,"└" |
| 148 | LD B,5+0XF2 ;ЛЕВЫЙ НИЖНИЙ УГОЛ |
150 | LD B,5+0xF2 ; левый нижний угол |
| 149 | CALL PRTSYMTXTMODE |
151 | CALL PRTSYMTXTMODE |
| 150 | ; LD B,"─" |
152 | ; LD B,"─" |
| 151 | LD B,6+0XF2 ;НИЖНИЙ КРАЙ |
153 | LD B,6+0xF2 ; нижний край |
| 152 | INC D |
154 | INC D |
| 153 | EXX |
155 | EXX |
| 154 | LD A,L |
156 | LD A,L |
| 155 | EXX |
157 | EXX |
| 156 | DEC A |
158 | DEC A |
| Line 160... | Line 162... | ||
| 160 | INC D |
162 | INC D |
| 161 | EX AF,AF' |
163 | EX AF,AF' |
| 162 | DEC A |
164 | DEC A |
| 163 | JR NZ,WINT04 |
165 | JR NZ,WINT04 |
| 164 | ; LD B,"┘" |
166 | ; LD B,"┘" |
| 165 | LD B,7+0XF2 ;ПРАВЫЙ НИЖНИЙ УГОЛ |
167 | LD B,7+0xF2 ; правый нижний угол |
| 166 | CALL PRTSYMTXTMODE |
168 | CALL PRTSYMTXTMODE |
| 167 | POP DE |
169 | POP DE |
| 168 | TCENTR_RAMK EXX |
170 | TCENTR_RAMK EXX |
| 169 | BIT 6,D |
171 | BIT B_WINFRAME,D |
| 170 | EXX |
172 | EXX |
| 171 | JR NZ,TWERH_COLOR ;ОКНО БЕЗ РАМКИ |
173 | JR NZ,TWERH_COLOR ; окно без рамки |
| 172 | ;РИСУЕМ БОКОВЫЕ РАМКИ |
174 | ; рисуем боковые рамки |
| 173 | EXX |
175 | EXX |
| 174 | LD A,H |
176 | LD A,H |
| 175 | EXX |
177 | EXX |
| 176 | DEC A |
178 | DEC A |
| 177 | DEC A |
179 | DEC A |
| 178 | ; LD B,"│" |
180 | ; LD B,"│" |
| 179 | LD B,3+0XF2 ;ЛЕВАЯ СТОРОНА |
181 | LD B,3+0xF2 ; левая сторона |
| 180 | INC E |
182 | INC E |
| 181 | PUSH DE |
183 | PUSH DE |
| 182 | WINT01 EX AF,AF' |
184 | WINT01 EX AF,AF' |
| 183 | CALL PRTSYMTXTMODE |
185 | CALL PRTSYMTXTMODE |
| 184 | INC E |
186 | INC E |
| Line 196... | Line 198... | ||
| 196 | EXX |
198 | EXX |
| 197 | LD A,H |
199 | LD A,H |
| 198 | EXX |
200 | EXX |
| 199 | DEC A |
201 | DEC A |
| 200 | DEC A |
202 | DEC A |
| 201 | LD B,4+0XF2 ;ПРАВАЯ СТОРОНА ОКНА |
203 | LD B,4+0xF2 ; правая сторона окна |
| 202 | WINT02 EX AF,AF' |
204 | WINT02 EX AF,AF' |
| 203 | CALL PRTSYMTXTMODE |
205 | CALL PRTSYMTXTMODE |
| 204 | INC E |
206 | INC E |
| 205 | EX AF,AF' |
207 | EX AF,AF' |
| 206 | DEC A |
208 | DEC A |
| 207 | JR NZ,WINT02 |
209 | JR NZ,WINT02 |
| 208 | POP DE |
210 | POP DE |
| 209 | DEC E |
211 | DEC E |
| 210 | TWERH_COLOR EXX |
212 | TWERH_COLOR EXX |
| 211 | BIT 5,D |
213 | BIT B_UPHEADER,D |
| 212 | EXX |
214 | EXX |
| 213 | JR Z,TWERH_RAMK |
215 | JR Z,TWERH_RAMK |
| 214 | ;РИСУЕМ ВЕРХНЮЮ ЦВЕТНУЮ ПОЛОСУ |
216 | ; рисуем верхнюю цветную полосу |
| 215 | PUSH DE |
217 | PUSH DE |
| 216 | CALL COLOR_LINE |
218 | CALL COLOR_LINE |
| 217 | POP DE |
219 | POP DE |
| 218 | JR TRASCH |
220 | JR TRASCH |
| 219 | 221 | ||
| 220 | TWERH_RAMK EXX |
222 | TWERH_RAMK EXX |
| 221 | BIT 6,D |
223 | BIT B_WINFRAME,D |
| 222 | EXX |
224 | EXX |
| 223 | JR NZ,TRASCH |
225 | JR NZ,TRASCH |
| 224 | ; LD B,"┌" |
226 | ; LD B,"┌" |
| 225 | LD B,0+0XF2 ;ЛЕВЫЙ ВЕРХНИЙ УГОЛ |
227 | LD B,0+0xF2 ; левый верхний угол |
| 226 | CALL PRTSYMTXTMODE |
228 | CALL PRTSYMTXTMODE |
| 227 | ; LD B,"─" |
229 | ; LD B,"─" |
| 228 | LD B,1+0XF2 ;ВЕРХНИЙ КРАЙ |
230 | LD B,1+0xF2 ; верхний край |
| 229 | EXX |
231 | EXX |
| 230 | LD A,L |
232 | LD A,L |
| 231 | EXX |
233 | EXX |
| 232 | DEC A |
234 | DEC A |
| 233 | DEC A |
235 | DEC A |
| Line 238... | Line 240... | ||
| 238 | INC D |
240 | INC D |
| 239 | EX AF,AF' |
241 | EX AF,AF' |
| 240 | DEC A |
242 | DEC A |
| 241 | JR NZ,WINT3 |
243 | JR NZ,WINT3 |
| 242 | ; LD B,"┐" |
244 | ; LD B,"┐" |
| 243 | LD B,2+0XF2 ;ПРАВЫЙ ВЕРХНИЙ УГОЛ |
245 | LD B,2+0xF2 ; правый верхний угол |
| 244 | CALL PRTSYMTXTMODE |
246 | CALL PRTSYMTXTMODE |
| 245 | POP DE |
247 | POP DE |
| 246 | TRASCH INC D |
248 | TRASCH INC D |
| 247 | LD (TADRSTR_Y),DE |
249 | LD (TADRSTR_Y),DE |
| 248 | LD A,D |
250 | LD A,D |
| 249 | LD (TXNEW),A |
251 | LD (TXNEW),A |
| 250 | LD A,(FLAGS) |
252 | LD A,(SYSFLAGS) |
| 251 | AND M_RUN_FAT_DSK |
253 | AND SYSFLAGS.M_RUN_FAT_DSK |
| 252 | JR NZ,TNOSET_MAIN |
254 | JR NZ,TNOSET_MAIN |
| 253 | ROMCALL MAIN_MEM13,ROM_RST83 |
255 | ROMCALL MAIN_MEM13,ROM_RST83 |
| 254 | TNOSET_MAIN LD BC,WIN_P6 |
256 | TNOSET_MAIN LD BC,WIN_P2 |
| 255 | LD A,(PAGE4READ) |
257 | LD A,(PAGE4READ) |
| 256 | OUT (C),A |
258 | OUT (C),A |
| 257 | LD L,(IX+0X0C) |
259 | LD L,(IX+_ADR_TXT_L) |
| 258 | LD H,(IX+0X0D) |
260 | LD H,(IX+_ADR_TXT_H) |
| 259 | XOR A |
- | |
| 260 | OUT (C),A |
261 | EVOPORT WIN_P2,RAM_NMI |
| 261 | EXX |
262 | EXX |
| 262 | BIT 4,D |
263 | BIT B_TEXT,D |
| 263 | EXX |
264 | EXX |
| 264 | RET NZ |
265 | RET NZ |
| 265 | ITPRINT_MESSAGE EXX |
266 | ITPRINT_MESSAGE EXX |
| 266 | LD HL,0 |
267 | LD HL,0 |
| 267 | LD (TEK_TEXT),HL |
268 | LD (TEK_TEXT),HL |
| 268 | LD BC,WIN_P6 |
269 | EVOPORT WIN_P2,RAM_NMI |
| 269 | XOR A |
- | |
| 270 | OUT (C),A |
- | |
| 271 | LD A,(PAGE4READ) |
270 | LD A,(PAGE4READ) |
| 272 | LD H,A |
271 | LD H,A |
| 273 | OUT (C),H |
272 | OUT (C),H |
| 274 | LD L,0 |
273 | LD L,0 |
| 275 | EXX |
274 | EXX |
| Line 278... | Line 277... | ||
| 278 | EXX |
277 | EXX |
| 279 | LD A,(HL) |
278 | LD A,(HL) |
| 280 | INC HL |
279 | INC HL |
| 281 | AND A |
280 | AND A |
| 282 | JP Z,STOP_TPRINTMSG |
281 | JP Z,STOP_TPRINTMSG |
| 283 | TPRINT CP 0X20 |
282 | TPRINT CP 0x20 |
| 284 | JP NC,TPRINTA |
283 | JP NC,TPRINTA |
| 285 | CP 3 |
284 | CP 3 |
| 286 | JR Z,TNEXT |
285 | JR Z,TNEXT |
| 287 | CP 9 |
286 | CP 9 |
| 288 | JR NZ,TCOD0D |
287 | JR NZ,TCOD0D |
| Line 294... | Line 293... | ||
| 294 | LD A,(TADRSTR_X) |
293 | LD A,(TADRSTR_X) |
| 295 | ADD A,B |
294 | ADD A,B |
| 296 | LD (TADRSTR_X),A |
295 | LD (TADRSTR_X),A |
| 297 | JP TNEXT |
296 | JP TNEXT |
| 298 | 297 | ||
| 299 | TCOD0D CP 0X0D |
298 | TCOD0D CP 0x0D |
| 300 | JR NZ,TCOD16 |
299 | JR NZ,TCOD16 |
| 301 | EXX |
300 | EXX |
| 302 | OUT (C),L |
301 | OUT (C),L |
| 303 | EXX |
302 | EXX |
| 304 | LD A,(TXNEW) |
303 | LD A,(TXNEW) |
| Line 308... | Line 307... | ||
| 308 | INC A |
307 | INC A |
| 309 | LD (TADRSTR_Y),A |
308 | LD (TADRSTR_Y),A |
| 310 | LD E,A |
309 | LD E,A |
| 311 | JP TNEXT |
310 | JP TNEXT |
| 312 | 311 | ||
| 313 | TCOD16 CP 0X16 |
312 | TCOD16 CP 0x16 |
| 314 | JR NZ,TCOD17 |
313 | JR NZ,TCOD17 |
| 315 | LD E,(HL) |
314 | LD E,(HL) |
| 316 | INC HL |
315 | INC HL |
| 317 | LD D,(HL) |
316 | LD D,(HL) |
| 318 | INC HL |
317 | INC HL |
| Line 320... | Line 319... | ||
| 320 | OUT (C),L |
319 | OUT (C),L |
| 321 | EXX |
320 | EXX |
| 322 | LD (TADRSTR_Y),DE |
321 | LD (TADRSTR_Y),DE |
| 323 | JP TNEXT |
322 | JP TNEXT |
| 324 | 323 | ||
| 325 | TCOD17 CP 0X17 |
324 | TCOD17 CP 0x17 |
| 326 | JR NZ,TCOD1 |
325 | JR NZ,TCOD1 |
| 327 | LD C,(HL) |
326 | LD C,(HL) |
| 328 | INC HL |
327 | INC HL |
| 329 | LD A,C |
328 | LD A,C |
| 330 | EXX |
329 | EXX |
| Line 333... | Line 332... | ||
| 333 | LD (COLOR4SYM),A |
332 | LD (COLOR4SYM),A |
| 334 | JP TNEXT |
333 | JP TNEXT |
| 335 | 334 | ||
| 336 | TCOD1 CP 1 |
335 | TCOD1 CP 1 |
| 337 | JR NZ,TCOD2 |
336 | JR NZ,TCOD2 |
| 338 | LD D,(IX+0) |
337 | LD D,(IX+_X_COORD) |
| 339 | LD E,(IX+1) |
338 | LD E,(IX+_Y_COORD) |
| 340 | INC D |
339 | INC D |
| 341 | EXX |
340 | EXX |
| 342 | OUT (C),L |
341 | OUT (C),L |
| 343 | EXX |
342 | EXX |
| 344 | LD (TADRSTR_Y),DE |
343 | LD (TADRSTR_Y),DE |
| Line 364... | Line 363... | ||
| 364 | JP TNEXT |
363 | JP TNEXT |
| 365 | 364 | ||
| 366 | TPRINT_A LD A,(RREG_A) |
365 | TPRINT_A LD A,(RREG_A) |
| 367 | ITPRINT_A EX AF,AF' |
366 | ITPRINT_A EX AF,AF' |
| 368 | ITPRINT_A1 EXX |
367 | ITPRINT_A1 EXX |
| 369 | LD BC,WIN_P6 |
368 | LD BC,WIN_P2 |
| 370 | LD A,(PAGE4READ) |
369 | LD A,(PAGE4READ) |
| 371 | LD H,A |
370 | LD H,A |
| 372 | LD L,0 |
371 | LD L,0 |
| 373 | EX AF,AF' |
372 | EX AF,AF' |
| 374 | EXX |
373 | EXX |
| Line 384... | Line 383... | ||
| 384 | LD D,(HL) |
383 | LD D,(HL) |
| 385 | INC (HL) |
384 | INC (HL) |
| 386 | LD A,(COLOR4SYM) |
385 | LD A,(COLOR4SYM) |
| 387 | LD C,A |
386 | LD C,A |
| 388 | EXX |
387 | EXX |
| 389 | LD A,0XF7 |
388 | LD A,VMODE7_0 |
| 390 | OUT (C),A |
389 | OUT (C),A |
| 391 | EXX |
390 | EXX |
| 392 | LD H,E |
391 | LD H,E |
| 393 | LD L,0 |
392 | LD L,0 |
| 394 | LD E,D |
393 | LD E,D |
| Line 399... | Line 398... | ||
| 399 | SRL H |
398 | SRL H |
| 400 | RR L |
399 | RR L |
| 401 | SRL E |
400 | SRL E |
| 402 | ADD HL,DE |
401 | ADD HL,DE |
| 403 | AND 1 |
402 | AND 1 |
| 404 | REPT 4 |
- | |
| 405 | RRCA |
403 | RRCA |
| - | 404 | RRCA |
|
| - | 405 | RRCA |
|
| 406 | ENDM |
406 | RRCA |
| 407 | ADD A,HIGH (CPU6+LSYM) |
407 | ADD A,HIGH (CPU2+LSYM) |
| 408 | LD D,A |
408 | LD D,A |
| 409 | LD E,LOW (CPU6+LSYM) |
409 | LD E,LOW (CPU2+LSYM) |
| 410 | ADD HL,DE |
410 | ADD HL,DE |
| 411 | EX AF,AF' |
411 | EX AF,AF' |
| 412 | LD (HL),A |
412 | LD (HL),A |
| 413 | LD A,C |
413 | LD A,C |
| 414 | INC A |
414 | INC A |
| 415 | JP Z,TRINTA0 |
415 | JP Z,TRINTA0 |
| 416 | LD A,H |
416 | LD A,H |
| 417 | XOR 0X30 |
417 | XOR 0x30 |
| 418 | LD H,A |
418 | LD H,A |
| 419 | LD A,D |
419 | LD A,D |
| 420 | AND 0X10 |
420 | AND 0x10 |
| 421 | REPT 4 |
421 | RRCA |
| - | 422 | RRCA |
|
| - | 423 | RRCA |
|
| 422 | RRCA |
424 | RRCA |
| 423 | ENDM |
- | |
| 424 | ADD A,L |
425 | ADD A,L |
| 425 | LD L,A |
426 | LD L,A |
| 426 | LD (HL),C |
427 | LD (HL),C |
| 427 | TRINTA0 EXX |
428 | TRINTA0 EXX |
| 428 | OUT (C),L |
429 | OUT (C),L |
| Line 433... | Line 434... | ||
| 433 | STOP_TPRINTMSG EXX |
434 | STOP_TPRINTMSG EXX |
| 434 | OUT (C),L |
435 | OUT (C),L |
| 435 | EXX |
436 | EXX |
| 436 | RET |
437 | RET |
| 437 | 438 | ||
| 438 | ;D-X E-Y B-SYMBOL C-COLOR |
439 | ; D-X E-Y B-символ C-цвет |
| 439 | COLOR_LINE LD A,C |
440 | COLOR_LINE LD A,C |
| 440 | PUSH AF |
441 | PUSH AF |
| 441 | AND 7 |
442 | AND 7 |
| 442 | RLCA |
443 | RLCA |
| 443 | RLCA |
444 | RLCA |
| Line 449... | Line 450... | ||
| 449 | RRCA |
450 | RRCA |
| 450 | AND 7 |
451 | AND 7 |
| 451 | OR H |
452 | OR H |
| 452 | LD H,A |
453 | LD H,A |
| 453 | LD A,C |
454 | LD A,C |
| 454 | AND 0XC0 |
455 | AND 0xC0 |
| 455 | OR H |
456 | OR H |
| 456 | LD C,A |
457 | LD C,A |
| 457 | LD B," " |
458 | LD B," " |
| 458 | EXX |
459 | EXX |
| 459 | LD A,L |
460 | LD A,L |
| Line 479... | Line 480... | ||
| 479 | SRL H |
480 | SRL H |
| 480 | RR L |
481 | RR L |
| 481 | SRL E |
482 | SRL E |
| 482 | ADD HL,DE |
483 | ADD HL,DE |
| 483 | AND 1 |
484 | AND 1 |
| 484 | REPT 4 |
- | |
| 485 | RRCA |
485 | RRCA |
| - | 486 | RRCA |
|
| - | 487 | RRCA |
|
| 486 | ENDM |
488 | RRCA |
| 487 | ADD A,HIGH (CPU3+LSYM) |
489 | ADD A,HIGH (CPU3+LSYM) |
| 488 | LD D,A |
490 | LD D,A |
| 489 | LD E,LOW (CPU3+LSYM) |
491 | LD E,LOW (CPU3+LSYM) |
| 490 | ADD HL,DE ;HL=АДРЕС СИМВОЛА НА ТЕКСТМОДНОМ ЭКРАНЕ |
492 | ADD HL,DE ; HL=Адрес символа на текстмодном экране |
| 491 | LD E,H |
493 | LD E,H |
| 492 | LD A,H |
494 | LD A,H |
| 493 | XOR 0X30 |
495 | XOR 0x30 |
| 494 | LD D,A |
496 | LD D,A |
| 495 | LD A,E |
497 | LD A,E |
| 496 | AND 0X10 |
498 | AND 0x10 |
| 497 | REPT 4 |
499 | RRCA |
| - | 500 | RRCA |
|
| - | 501 | RRCA |
|
| 498 | RRCA |
502 | RRCA |
| 499 | ENDM |
- | |
| 500 | ADD A,L |
503 | ADD A,L |
| 501 | LD E,A |
504 | LD E,A |
| 502 | RET |
505 | RET |
| 503 | 506 | ||
| 504 | ;ПЕЧАТЬ СИМВОЛА НА ТЕКСТМОДНОМ ЭКРАНЕ |
507 | ; печать символа на текстмодном экране |
| 505 | ;D-X E-Y B-SYMBOL C-COLOR |
508 | ; D-X E-Y B-символ C-цвет |
| 506 | PRTSYMTXTMODE PUSH DE |
509 | PRTSYMTXTMODE PUSH DE |
| 507 | PUSH HL |
510 | PUSH HL |
| 508 | CALL TDISP_ATTR |
511 | CALL TDISP_ATTR |
| 509 | LD (HL),B |
512 | LD (HL),B |
| 510 | LD A,C |
513 | LD A,C |
| 511 | INC A |
514 | INC A |
| 512 | JR Z,PRTSYMTXTMODE0 |
515 | JR Z,.L1 |
| 513 | EX DE,HL |
516 | EX DE,HL |
| 514 | LD (HL),C |
517 | LD (HL),C |
| 515 | PRTSYMTXTMODE0 POP HL |
518 | .L1 POP HL |
| 516 | POP DE |
519 | POP DE |
| 517 | RET |
520 | RET |
| 518 | 521 | ||
| 519 | WINW_ZX EXX |
522 | WINW_ZX EXX |
| 520 | ; LD BC,RD_7FFD |
- | |
| 521 | ; IN A,(C) |
- | |
| 522 | READ_7FFD |
523 | READ_7FFD |
| 523 | AND 8 |
524 | AND 8 |
| 524 | RRCA |
525 | RRCA |
| 525 | RRCA |
526 | RRCA |
| 526 | RRCA |
527 | RRCA |
| 527 | RRCA |
528 | RRCA |
| 528 | LD D,A |
529 | LD D,A |
| 529 | LD BC,WIN_P6 |
530 | LD BC,WIN_P2 |
| 530 | LD A,(PAGE4READ) |
531 | LD A,(PAGE4READ) |
| 531 | OUT (C),A |
532 | OUT (C),A |
| 532 | LD A,(IX+2) |
533 | LD A,(IX+_V_SIZE) |
| 533 | ADD A,A |
534 | ADD A,A |
| 534 | ADD A,A |
535 | ADD A,A |
| 535 | ADD A,A |
536 | ADD A,A |
| 536 | LD E,A |
537 | LD E,A |
| 537 | EXX |
538 | EXX |
| 538 | LD C,(IX+3) |
539 | LD C,(IX+_H_SIZE) |
| 539 | LD L,(IX+1) |
540 | LD L,(IX+_Y_COORD) |
| 540 | LD H,0 |
541 | LD H,0 |
| 541 | ADD HL,HL |
542 | ADD HL,HL |
| 542 | ADD HL,HL |
543 | ADD HL,HL |
| 543 | ADD HL,HL |
544 | ADD HL,HL |
| 544 | ADD HL,HL |
545 | ADD HL,HL |
| 545 | EX DE,HL |
546 | EX DE,HL |
| 546 | LD IY,BUFTSC |
547 | LD IY,BUFTSC |
| 547 | ADD IY,DE |
548 | ADD IY,DE |
| 548 | WINW3 LD A,(IX+0) |
549 | WINW3 LD A,(IX+_X_COORD) |
| 549 | ADD A,(IY+0) |
550 | ADD A,(IY+0) |
| 550 | LD E,A |
551 | LD E,A |
| 551 | - | ||
| 552 | LD A,(IY+1) |
552 | LD A,(IY+1) |
| 553 | EXX |
553 | EXX |
| 554 | ADD A,D |
554 | ADD A,D |
| 555 | EXX |
555 | EXX |
| 556 | LD D,A |
556 | LD D,A |
| 557 | - | ||
| 558 | AND 7 |
557 | AND 7 |
| 559 | JR NZ,WINW4 |
558 | JR NZ,WINW4 |
| 560 | LD B,C |
559 | LD B,C |
| 561 | LD A,D |
560 | LD A,D |
| 562 | RRCA |
561 | RRCA |
| 563 | RRCA |
562 | RRCA |
| 564 | RRCA |
563 | RRCA |
| 565 | AND 3 |
564 | AND 3 |
| 566 | ADD A,0X58 |
565 | ADD A,0x58 |
| 567 | - | ||
| 568 | EXX |
566 | EXX |
| 569 | ADD A,D |
567 | ADD A,D |
| 570 | EXX |
568 | EXX |
| 571 | - | ||
| 572 | LD H,A |
569 | LD H,A |
| 573 | LD L,E |
570 | LD L,E |
| 574 | LD A,(IX+4) |
571 | LD A,(IX+_COLOR_WIN) |
| 575 | WINW5 LD (HL),A |
572 | WINW5 LD (HL),A |
| 576 | INC L |
573 | INC L |
| 577 | DJNZ WINW5 |
574 | DJNZ WINW5 |
| 578 | WINW4 LD B,C |
575 | WINW4 LD B,C |
| 579 | XOR A |
576 | XOR A |
| Line 584... | Line 581... | ||
| 584 | INC IY |
581 | INC IY |
| 585 | EXX |
582 | EXX |
| 586 | DEC E |
583 | DEC E |
| 587 | EXX |
584 | EXX |
| 588 | JR NZ,WINW3 |
585 | JR NZ,WINW3 |
| 589 | BIT 7,(IX+6) |
586 | BIT B_ADR_PUNKT,(IX+_FLAGS) |
| 590 | JR Z,NIZ_RAMKA ;ОКНО БЕЗ НИЖНЕГО ЗАГОЛОВКА |
587 | JR Z,NIZ_RAMKA ; окно без нижнего заголовка |
| 591 | ;РИСУЕМ НИЖНЮЮ ЦВЕТНУЮ ПОЛОСКУ |
588 | ; рисуем нижнюю цветную полоску |
| 592 | LD DE,0XFFF0 |
589 | LD DE,0xFFF0 |
| 593 | ADD IY,DE |
590 | ADD IY,DE |
| 594 | LD A,(IX+0) |
591 | LD A,(IX+_X_COORD) |
| 595 | ADD A,(IY+0) |
592 | ADD A,(IY+0) |
| 596 | LD E,A |
593 | LD E,A |
| 597 | LD A,(IY+1) |
594 | LD A,(IY+1) |
| 598 | RRCA |
595 | RRCA |
| 599 | RRCA |
596 | RRCA |
| 600 | RRCA |
597 | RRCA |
| 601 | AND 3 |
598 | AND 3 |
| 602 | ADD A,0X58 |
599 | ADD A,0x58 |
| 603 | - | ||
| 604 | EXX |
600 | EXX |
| 605 | ADD A,D |
601 | ADD A,D |
| 606 | EXX |
602 | EXX |
| 607 | - | ||
| 608 | LD D,A |
603 | LD D,A |
| 609 | LD B,C |
604 | LD B,C |
| 610 | LD L,(IX+4) |
605 | LD L,(IX+_COLOR_WIN) |
| 611 | LD A,L |
606 | LD A,L |
| 612 | AND 7 |
607 | AND 7 |
| 613 | RLCA |
608 | RLCA |
| 614 | RLCA |
609 | RLCA |
| 615 | RLCA |
610 | RLCA |
| Line 621... | Line 616... | ||
| 621 | AND 7 |
616 | AND 7 |
| 622 | OR H |
617 | OR H |
| 623 | WINWN1 LD (DE),A |
618 | WINWN1 LD (DE),A |
| 624 | INC E |
619 | INC E |
| 625 | DJNZ WINWN1 |
620 | DJNZ WINWN1 |
| 626 | LD DE,0X0E |
621 | LD DE,0x0E |
| 627 | ADD IY,DE |
622 | ADD IY,DE |
| 628 | JR CENTR_RAMK |
623 | JR CENTR_RAMK |
| 629 | 624 | ||
| 630 | NIZ_RAMKA BIT 6,(IX+6) |
625 | NIZ_RAMKA BIT B_ADR_NUMS_PUNKT,(IX+_FLAGS) |
| 631 | JR NZ,CENTR_RAMK ;ОКНО БЕЗ РАМКИ |
626 | JR NZ,CENTR_RAMK ; окно без рамки |
| 632 | ;РИСУЕМ НИЖНЮЮ РАМКУ |
627 | ; рисуем нижнюю рамку |
| 633 | DEC IY |
628 | DEC IY |
| 634 | DEC IY |
629 | DEC IY |
| 635 | LD L,(IX+0) |
630 | LD L,(IX+_X_COORD) |
| 636 | LD A,(IY+0) |
631 | LD A,(IY+0) |
| 637 | ADD A,L |
632 | ADD A,L |
| 638 | LD E,A |
633 | LD E,A |
| 639 | LD H,A |
634 | LD H,A |
| 640 | - | ||
| 641 | LD A,(IY+1) |
635 | LD A,(IY+1) |
| 642 | EXX |
636 | EXX |
| 643 | ADD A,D |
637 | ADD A,D |
| 644 | EXX |
638 | EXX |
| 645 | LD D,A |
639 | LD D,A |
| 646 | - | ||
| 647 | LD B,C |
640 | LD B,C |
| 648 | LD A,0XFF |
641 | LD A,0xFF |
| 649 | NR1 LD (DE),A |
642 | NR1 LD (DE),A |
| 650 | INC E |
643 | INC E |
| 651 | DJNZ NR1 |
644 | DJNZ NR1 |
| 652 | DEC E |
645 | DEC E |
| 653 | DEC D |
646 | DEC D |
| 654 | LD L,H |
647 | LD L,H |
| 655 | LD H,D |
648 | LD H,D |
| 656 | LD A,0X80 |
649 | LD A,0x80 |
| 657 | LD B,7 |
650 | LD B,7 |
| 658 | NR2 LD (HL),A |
651 | NR2 LD (HL),A |
| 659 | RLCA |
652 | RLCA |
| 660 | LD (DE),A |
653 | LD (DE),A |
| 661 | RRCA |
654 | RRCA |
| 662 | DEC H |
655 | DEC H |
| 663 | DEC D |
656 | DEC D |
| 664 | DJNZ NR2 |
657 | DJNZ NR2 |
| 665 | CENTR_RAMK BIT 6,(IX+6) |
658 | CENTR_RAMK BIT B_ADR_NUMS_PUNKT,(IX+_FLAGS) |
| 666 | JR NZ,WERH_COLOR ;ОКНО БЕЗ РАМКИ |
659 | JR NZ,WERH_COLOR ; окно без рамки |
| 667 | ;РИСУЕМ БОКОВЫЕ РАМКИ |
660 | ; рисуем боковые рамки |
| 668 | EXX |
661 | EXX |
| 669 | LD A,(IX+2) |
662 | LD A,(IX+_V_SIZE) |
| 670 | SUB 2 |
663 | SUB 2 |
| 671 | LD E,A |
664 | LD E,A |
| 672 | EXX |
665 | EXX |
| 673 | NR4 LD DE,0XFFF0 |
666 | NR4 LD DE,0xFFF0 |
| 674 | ADD IY,DE |
667 | ADD IY,DE |
| 675 | LD L,(IX+0) |
668 | LD L,(IX+_X_COORD) |
| 676 | LD A,(IY+0) |
669 | LD A,(IY+0) |
| 677 | ADD A,L |
670 | ADD A,L |
| 678 | LD E,A |
671 | LD E,A |
| 679 | - | ||
| 680 | LD A,(IY+1) |
672 | LD A,(IY+1) |
| 681 | EXX |
673 | EXX |
| 682 | ADD A,D |
674 | ADD A,D |
| 683 | EXX |
675 | EXX |
| 684 | LD D,A |
676 | LD D,A |
| 685 | LD A,E |
677 | LD A,E |
| 686 | - | ||
| 687 | LD H,D |
678 | LD H,D |
| 688 | ADD A,(IX+3) |
679 | ADD A,(IX+_H_SIZE) |
| 689 | DEC A |
680 | DEC A |
| 690 | LD L,A |
681 | LD L,A |
| 691 | LD A,0X80 |
682 | LD A,0x80 |
| 692 | LD B,8 |
683 | LD B,8 |
| 693 | NR3 LD (DE),A |
684 | NR3 LD (DE),A |
| 694 | RLCA |
685 | RLCA |
| 695 | LD (HL),A |
686 | LD (HL),A |
| 696 | RRCA |
687 | RRCA |
| Line 699... | Line 690... | ||
| 699 | DJNZ NR3 |
690 | DJNZ NR3 |
| 700 | EXX |
691 | EXX |
| 701 | DEC E |
692 | DEC E |
| 702 | EXX |
693 | EXX |
| 703 | JR NZ,NR4 |
694 | JR NZ,NR4 |
| 704 | WERH_COLOR BIT 5,(IX+6) |
695 | WERH_COLOR BIT B_UPHEADER,(IX+_FLAGS) |
| 705 | JR Z,WERH_RAMK ;БЕЗ ВЕРХНЕГО ЗАГОЛОВКА |
696 | JR Z,WERH_RAMK ; без верхнего заголовка |
| 706 | ;РИСУЕМ ВЕРХНЮЮ ЦВЕТНУЮ ПОЛОСУ |
697 | ; рисуем верхнюю цветную полосу |
| 707 | LD L,(IX+1) |
698 | LD L,(IX+_Y_COORD) |
| 708 | LD H,0 |
699 | LD H,0 |
| 709 | ADD HL,HL |
700 | ADD HL,HL |
| 710 | ADD HL,HL |
701 | ADD HL,HL |
| 711 | ADD HL,HL |
702 | ADD HL,HL |
| 712 | ADD HL,HL |
703 | ADD HL,HL |
| 713 | EX DE,HL |
704 | EX DE,HL |
| 714 | LD IY,BUFTSC |
705 | LD IY,BUFTSC |
| 715 | ADD IY,DE |
706 | ADD IY,DE |
| 716 | LD A,(IX+0) |
707 | LD A,(IX+_X_COORD) |
| 717 | ADD A,(IY+0) |
708 | ADD A,(IY+0) |
| 718 | LD E,A |
709 | LD E,A |
| 719 | LD A,(IY+1) |
710 | LD A,(IY+1) |
| 720 | RRCA |
711 | RRCA |
| 721 | RRCA |
712 | RRCA |
| 722 | RRCA |
713 | RRCA |
| 723 | AND 3 |
714 | AND 3 |
| 724 | ADD A,0X58 |
715 | ADD A,0x58 |
| 725 | - | ||
| 726 | EXX |
716 | EXX |
| 727 | ADD A,D |
717 | ADD A,D |
| 728 | EXX |
718 | EXX |
| 729 | - | ||
| 730 | LD D,A |
719 | LD D,A |
| 731 | LD B,C |
720 | LD B,C |
| 732 | LD L,(IX+4) |
721 | LD L,(IX+_COLOR_WIN) |
| 733 | LD A,L |
722 | LD A,L |
| 734 | AND 7 |
723 | AND 7 |
| 735 | RLCA |
724 | RLCA |
| 736 | RLCA |
725 | RLCA |
| 737 | RLCA |
726 | RLCA |
| Line 745... | Line 734... | ||
| 745 | WINWW1 LD (DE),A |
734 | WINWW1 LD (DE),A |
| 746 | INC E |
735 | INC E |
| 747 | DJNZ WINWW1 |
736 | DJNZ WINWW1 |
| 748 | JP RADUGA |
737 | JP RADUGA |
| 749 | 738 | ||
| 750 | WERH_RAMK BIT 6,(IX+6) |
739 | WERH_RAMK BIT B_ADR_NUMS_PUNKT,(IX+_FLAGS) |
| 751 | JR NZ,RADUGA ;ОКНО БЕЗ РАМКИ |
740 | JR NZ,RADUGA ; окно без рамки |
| 752 | ;РИСУЕМ ВЕРХНЮЮ РАМКУ |
741 | ; рисуем верхнюю рамку |
| 753 | WR4 LD DE,0XFFF0 |
742 | WR4 LD DE,0xFFF0 |
| 754 | ADD IY,DE |
743 | ADD IY,DE |
| 755 | LD L,(IX+0) |
744 | LD L,(IX+_X_COORD) |
| 756 | LD A,(IY+0) |
745 | LD A,(IY+0) |
| 757 | ADD A,L |
746 | ADD A,L |
| 758 | LD E,A |
747 | LD E,A |
| 759 | - | ||
| 760 | LD A,(IY+1) |
748 | LD A,(IY+1) |
| 761 | EXX |
749 | EXX |
| 762 | ADD A,D |
750 | ADD A,D |
| 763 | EXX |
751 | EXX |
| 764 | LD D,A |
752 | LD D,A |
| 765 | LD A,E |
753 | LD A,E |
| 766 | - | ||
| 767 | LD H,D |
754 | LD H,D |
| 768 | ADD A,(IX+3) |
755 | ADD A,(IX+_H_SIZE) |
| 769 | DEC A |
756 | DEC A |
| 770 | LD L,A |
757 | LD L,A |
| 771 | LD A,0X80 |
758 | LD A,0x80 |
| 772 | LD B,7 |
759 | LD B,7 |
| 773 | WR3 LD (DE),A |
760 | WR3 LD (DE),A |
| 774 | RLCA |
761 | RLCA |
| 775 | LD (HL),A |
762 | LD (HL),A |
| 776 | RRCA |
763 | RRCA |
| Line 779... | Line 766... | ||
| 779 | DJNZ WR3 |
766 | DJNZ WR3 |
| 780 | LD A,L |
767 | LD A,L |
| 781 | SUB E |
768 | SUB E |
| 782 | LD B,A |
769 | LD B,A |
| 783 | INC B |
770 | INC B |
| 784 | LD A,0XFF |
771 | LD A,0xFF |
| 785 | WR5 LD (DE),A |
772 | WR5 LD (DE),A |
| 786 | INC E |
773 | INC E |
| 787 | DJNZ WR5 |
774 | DJNZ WR5 |
| 788 | RADUGA BIT 5,(IX+6) |
775 | RADUGA BIT B_UPHEADER,(IX+_FLAGS) |
| 789 | JR Z,RASCH |
776 | JR Z,RASCH |
| 790 | LD IY,BUFTSC |
777 | LD IY,BUFTSC |
| 791 | LD L,(IX+1) |
778 | LD L,(IX+_Y_COORD) |
| 792 | LD H,0 |
779 | LD H,0 |
| 793 | ADD HL,HL |
780 | ADD HL,HL |
| 794 | ADD HL,HL |
781 | ADD HL,HL |
| 795 | ADD HL,HL |
782 | ADD HL,HL |
| 796 | ADD HL,HL |
783 | ADD HL,HL |
| Line 801... | Line 788... | ||
| 801 | LD D,A |
788 | LD D,A |
| 802 | RRCA |
789 | RRCA |
| 803 | RRCA |
790 | RRCA |
| 804 | RRCA |
791 | RRCA |
| 805 | AND 3 |
792 | AND 3 |
| 806 | ADD A,0X58 |
793 | ADD A,0x58 |
| 807 | - | ||
| 808 | EXX |
794 | EXX |
| 809 | ADD A,D |
795 | ADD A,D |
| 810 | EXX |
796 | EXX |
| 811 | - | ||
| 812 | LD H,A |
797 | LD H,A |
| 813 | LD A,(IX+0) |
798 | LD A,(IX+_X_COORD) |
| 814 | ADD A,(IX+3) |
799 | ADD A,(IX+_H_SIZE) |
| 815 | ADD A,L |
800 | ADD A,L |
| 816 | LD L,A |
801 | LD L,A |
| 817 | LD E,A |
802 | LD E,A |
| 818 | LD A,(IX+4) |
803 | LD A,(IX+_COLOR_WIN) |
| 819 | AND 0X47 |
804 | AND 0x47 |
| 820 | LD C,A |
805 | LD C,A |
| 821 | AND 0X40 |
806 | AND 0x40 |
| 822 | LD B,A |
807 | LD B,A |
| 823 | DEC L |
808 | DEC L |
| 824 | LD A,C |
809 | LD A,C |
| 825 | ADD A,5*8 |
810 | ADD A,5*8 |
| 826 | LD (HL),A ;5*8+7 |
811 | LD (HL),A ; 5*8+7 |
| Line 862... | Line 847... | ||
| 862 | DEC L |
847 | DEC L |
| 863 | LD (HL),A |
848 | LD (HL),A |
| 864 | LD L,C |
849 | LD L,C |
| 865 | INC H |
850 | INC H |
| 866 | DJNZ RADUGA1 |
851 | DJNZ RADUGA1 |
| 867 | RASCH LD A,(IX+0) |
852 | RASCH LD A,(IX+_X_COORD) |
| 868 | LD L,(IX+1) |
853 | LD L,(IX+_Y_COORD) |
| 869 | ADD A,A |
854 | ADD A,A |
| 870 | ADD A,A |
855 | ADD A,A |
| 871 | ADD A,A |
856 | ADD A,A |
| 872 | LD H,A |
857 | LD H,A |
| 873 | INC H |
858 | INC H |
| 874 | EXX |
859 | EXX |
| 875 | XOR A |
- | |
| 876 | OUT (C),A |
860 | EVOPORT WIN_P2,RAM_NMI |
| 877 | EXX |
861 | EXX |
| 878 | LD A,H |
862 | LD A,H |
| 879 | LD (XNEW),A |
863 | LD (XNEW),A |
| 880 | LD (ADRSTR_Y),HL |
864 | LD (ADRSTR_Y),HL |
| 881 | EXX |
865 | EXX |
| 882 | LD A,(PAGE4READ) |
866 | LD A,(PAGE4READ) |
| 883 | OUT (C),A |
867 | OUT (C),A |
| 884 | EXX |
868 | EXX |
| 885 | LD L,(IX+0X0C) |
869 | LD L,(IX+_ADR_TXT_L) |
| 886 | LD H,(IX+0X0D) |
870 | LD H,(IX+_ADR_TXT_H) |
| 887 | EXX |
871 | EXX |
| 888 | XOR A |
- | |
| 889 | OUT (C),A |
872 | EVOPORT WIN_P2,RAM_NMI |
| 890 | EXX |
873 | EXX |
| 891 | BIT 4,(IX+6) |
874 | BIT B_TEXT,(IX+_FLAGS) |
| 892 | JP Z,IPRINT_MESSAGE |
875 | JP Z,IPRINT_MESSAGE |
| 893 | RET |
876 | RET |
| 894 | 877 | ||
| 895 | CLS LD HL,0 |
878 | CLS LD HL,0 |
| 896 | LD D,H |
879 | LD D,H |
| 897 | LD E,L |
880 | LD E,L |
| 898 | ADD HL,SP |
881 | ADD HL,SP |
| 899 | LD B,0X60 |
882 | LD B,0x60 |
| 900 | LD SP,0X5800 |
883 | LD SP,0x5800 |
| - | 884 | CLS1 |
|
| 901 | CLS1 REPT 0X20 |
885 | REPT 0x20 |
| 902 | PUSH DE |
886 | PUSH DE |
| 903 | ENDM |
887 | ENDM |
| 904 | DJNZ CLS1 |
888 | DJNZ CLS1 |
| 905 | LD SP,HL |
889 | LD SP,HL |
| 906 | CLSSCR LD HL,0 |
890 | CLSSCR LD HL,0 |
| 907 | LD D,A |
891 | LD D,A |
| 908 | LD E,A |
892 | LD E,A |
| 909 | ADD HL,SP |
893 | ADD HL,SP |
| 910 | LD SP,0X5B00 |
894 | LD SP,0x5B00 |
| 911 | LD B,12 |
895 | LD B,12 |
| - | 896 | CLS2 |
|
| 912 | CLS2 REPT 0X20 |
897 | REPT 0x20 |
| 913 | PUSH DE |
898 | PUSH DE |
| 914 | ENDM |
899 | ENDM |
| 915 | DJNZ CLS2 |
900 | DJNZ CLS2 |
| 916 | LD SP,HL |
901 | LD SP,HL |
| 917 | RRCA |
902 | RRCA |
| 918 | RRCA |
903 | RRCA |
| 919 | RRCA |
904 | RRCA |
| 920 | AND 7 |
905 | AND 7 |
| 921 | OUT (0XFE),A |
906 | OUT (0xFE),A |
| 922 | RET |
907 | RET |
| 923 | 908 | ||
| 924 | STOP_PRINTMSG LD BC,WIN_P6 |
909 | STOP_PRINTMSG |
| 925 | XOR A |
- | |
| 926 | OUT (C),A |
910 | EVOPORT WIN_P2,RAM_NMI |
| 927 | RET |
911 | RET |
| 928 | 912 | ||
| 929 | ;ПЕЧАТЬ ТЕКСТОВОЙ СТРОКИ С УПРАВЛЮЯЩИМИ КОДАМИ (ВНЕШНИЙ ВЫЗОВ) |
913 | ; печать текстовой строки с управляющими кодами (внешний вызов) |
| 930 | PRINT_MESSAGE LD HL,(RREG_L) |
914 | PRINT_MESSAGE LD HL,(RREG_L) |
| 931 | ;ПЕЧАТЬ ТЕКСТОВОЙ СТРОКИ С УПРАВЛЮЯЩИМИ КОДАМИ (ВНУТРЕННИЙ ВЫЗОВ) |
915 | ; печать текстовой строки с управляющими кодами (внутренний вызов) |
| 932 | IPRINT_MESSAGE LD A,(R_77) |
916 | IPRINT_MESSAGE LD A,(R_77) |
| 933 | AND 7 |
917 | AND 7 |
| 934 | CP 7 |
918 | CP 7 |
| 935 | JP Z,ITPRINT_MESSAGE |
919 | JP Z,ITPRINT_MESSAGE |
| 936 | CP 3 |
920 | CP 3 |
| 937 | RET NZ |
921 | RET NZ |
| 938 | ; LD BC,RD_7FFD |
- | |
| 939 | ; IN A,(C) |
- | |
| 940 | READ_7FFD |
922 | READ_7FFD |
| 941 | AND 8 |
923 | AND 8 |
| 942 | LD BC,BUFTSC |
924 | LD BC,BUFTSC |
| 943 | JR Z,IPM1 |
925 | JR Z,IPM1 |
| 944 | LD BC,BUFTSC1 |
926 | LD BC,BUFTSC1 |
| 945 | IPM1 LD (TEKBUFTSC),BC |
927 | IPM1 LD (TEKBUFTSC),BC |
| 946 | LD BC,WIN_P6 |
928 | LD BC,WIN_P2 |
| 947 | ;ПЕЧАТЬ ТЕКСТОВОЙ СТОРОКИ С УПРАВЛЯЮЩИМИ КОДАМИ (ВНУТРЕННИЙ ВЫЗОВ) |
929 | ; печать текстовой стороки с управляющими кодами (внутренний вызов) |
| 948 | NEXT LD A,(PAGE4READ) |
930 | NEXT LD A,(PAGE4READ) |
| 949 | OUT (C),A |
931 | OUT (C),A |
| 950 | LD A,(HL) |
932 | LD A,(HL) |
| 951 | INC HL |
933 | INC HL |
| 952 | AND A |
934 | AND A |
| 953 | JR Z,STOP_PRINTMSG |
935 | JR Z,STOP_PRINTMSG |
| 954 | PRINT CP 0X20 |
936 | PRINT CP 0x20 |
| 955 | JP NC,PRINTA |
937 | JP NC,PRINTA |
| 956 | COD03 CP 3 |
938 | COD03 CP 3 |
| 957 | JR NZ,COD9 |
939 | JR NZ,COD9 |
| 958 | LD D,0 ;ЦЕНТРОВКА СТРОКИ В ОКНЕ |
940 | LD D,0 ; центровка строки в окне |
| 959 | LD A,H |
941 | LD A,H |
| 960 | EX AF,AF' |
942 | EX AF,AF' |
| 961 | LD E,L |
943 | LD E,L |
| 962 | CEN2 LD A,(HL) |
944 | CEN2 LD A,(HL) |
| 963 | CP 0X20 |
945 | CP 0x20 |
| 964 | JR C,CEN3 |
946 | JR C,CEN3 |
| 965 | LD A,6 |
947 | LD A,6 |
| 966 | ADD A,D |
948 | ADD A,D |
| 967 | LD D,A |
949 | LD D,A |
| 968 | INC HL |
950 | INC HL |
| 969 | JR CEN2 |
951 | JR CEN2 |
| 970 | 952 | ||
| 971 | CEN3 XOR A |
953 | CEN3 |
| 972 | OUT (C),A |
954 | EVOPORT WIN_P2,RAM_NMI |
| 973 | LD A,(IX+3) |
955 | LD A,(IX+_H_SIZE) |
| 974 | ADD A,A |
956 | ADD A,A |
| 975 | ADD A,A |
957 | ADD A,A |
| 976 | ADD A,A |
958 | ADD A,A |
| 977 | SUB D |
959 | SUB D |
| 978 | SRL A |
960 | SRL A |
| Line 986... | Line 968... | ||
| 986 | LD L,E |
968 | LD L,E |
| 987 | JP NEXT |
969 | JP NEXT |
| 988 | 970 | ||
| 989 | COD9 CP 9 |
971 | COD9 CP 9 |
| 990 | JR NZ,COD0D |
972 | JR NZ,COD0D |
| 991 | LD D,(HL) ;ТАБУЛЯЦИЯ НА N ПОЗИЦИЙ |
973 | LD D,(HL) ; табуляция на N позиций |
| 992 | INC HL |
974 | INC HL |
| 993 | LD A,D |
975 | LD A,D |
| 994 | ADD A,A |
976 | ADD A,A |
| 995 | ADD A,D |
977 | ADD A,D |
| 996 | ADD A,A |
978 | ADD A,A |
| 997 | LD D,A |
979 | LD D,A |
| 998 | XOR A |
- | |
| 999 | OUT (C),A |
980 | EVOPORT WIN_P2,RAM_NMI |
| 1000 | LD A,(ADRSTR_X) |
981 | LD A,(ADRSTR_X) |
| 1001 | ADD A,D |
982 | ADD A,D |
| 1002 | LD (ADRSTR_X),A |
983 | LD (ADRSTR_X),A |
| 1003 | JR NEXT |
984 | JR NEXT |
| 1004 | 985 | ||
| 1005 | COD0D CP 0X0D |
986 | COD0D CP 0x0D |
| 1006 | JR NZ,COD16 |
987 | JR NZ,COD16 |
| 1007 | XOR A |
- | |
| 1008 | OUT (C),A |
988 | EVOPORT WIN_P2,RAM_NMI |
| 1009 | LD A,(XNEW) ;ПЕРЕВОД СТРОКИ |
989 | LD A,(XNEW) ; перевод строки |
| 1010 | LD (ADRSTR_X),A |
990 | LD (ADRSTR_X),A |
| 1011 | LD A,(ADRSTR_Y) |
991 | LD A,(ADRSTR_Y) |
| 1012 | INC A |
992 | INC A |
| 1013 | LD (ADRSTR_Y),A |
993 | LD (ADRSTR_Y),A |
| 1014 | JP NEXT |
994 | JP NEXT |
| 1015 | 995 | ||
| 1016 | COD16 CP 0X16 |
996 | COD16 CP 0x16 |
| 1017 | JR NZ,COD17 |
997 | JR NZ,COD17 |
| 1018 | LD E,(HL) ;ПЕЧАТЬ В УКАЗАННОЙ ПОЗИЦИИ |
998 | LD E,(HL) ; печать в указанной позиции |
| 1019 | INC HL |
999 | INC HL |
| 1020 | LD D,(HL) |
1000 | LD D,(HL) |
| 1021 | INC HL |
1001 | INC HL |
| 1022 | XOR A |
- | |
| 1023 | OUT (C),A |
1002 | EVOPORT WIN_P2,RAM_NMI |
| 1024 | LD (ADRSTR_Y),DE |
1003 | LD (ADRSTR_Y),DE |
| 1025 | JP NEXT |
1004 | JP NEXT |
| 1026 | 1005 | ||
| 1027 | COD17 CP 0X17 |
1006 | COD17 CP 0x17 |
| 1028 | JR NZ,COD1 |
1007 | JR NZ,COD1 |
| 1029 | LD D,(HL) |
1008 | LD D,(HL) |
| 1030 | INC HL |
1009 | INC HL |
| 1031 | XOR A |
- | |
| 1032 | OUT (C),A |
1010 | EVOPORT WIN_P2,RAM_NMI |
| 1033 | LD A,D |
1011 | LD A,D |
| 1034 | LD (COLOR4SYM),A |
1012 | LD (COLOR4SYM),A |
| 1035 | JP NEXT |
1013 | JP NEXT |
| 1036 | 1014 | ||
| 1037 | ;КООРДИНАТА ПЕЧАТИ В ИСХОДНУЮ ПОЗИЦИЮ ОКНА |
1015 | ; координата печати в исходную позицию окна |
| 1038 | COD1 CP 1 |
1016 | COD1 CP 1 |
| 1039 | JP NZ,NEXT |
1017 | JP NZ,NEXT |
| 1040 | XOR A |
- | |
| 1041 | OUT (C),A |
1018 | EVOPORT WIN_P2,RAM_NMI |
| 1042 | LD A,(IX+0) |
1019 | LD A,(IX+_X_COORD) |
| 1043 | LD E,(IX+1) |
1020 | LD E,(IX+_Y_COORD) |
| 1044 | ADD A,A |
1021 | ADD A,A |
| 1045 | ADD A,A |
1022 | ADD A,A |
| 1046 | ADD A,A |
1023 | ADD A,A |
| 1047 | INC A |
1024 | INC A |
| 1048 | LD D,A |
1025 | LD D,A |
| Line 1056... | Line 1033... | ||
| 1056 | CP 7 |
1033 | CP 7 |
| 1057 | JP Z,ITPRINT_A1 |
1034 | JP Z,ITPRINT_A1 |
| 1058 | CP 3 |
1035 | CP 3 |
| 1059 | RET NZ |
1036 | RET NZ |
| 1060 | EX AF,AF' |
1037 | EX AF,AF' |
| 1061 | LD BC,WIN_P6 |
1038 | LD BC,WIN_P2 |
| 1062 | LD HL,STOP_PRINTA |
1039 | LD HL,STOP_PRINTA |
| 1063 | ;ПЕЧАТЬ СИМВОЛА В "A" |
1040 | ; печать символа в "A" |
| 1064 | PRINTA EX AF,AF' |
1041 | PRINTA EX AF,AF' |
| 1065 | XOR A |
- | |
| 1066 | OUT (C),A |
1042 | EVOPORT WIN_P2,RAM_NMI |
| 1067 | PUSH HL |
1043 | PUSH HL |
| 1068 | LD H,A |
1044 | LD H,A |
| 1069 | EX AF,AF' |
1045 | EX AF,AF' |
| 1070 | LD L,A |
1046 | LD L,A |
| 1071 | ADD HL,HL |
1047 | ADD HL,HL |
| Line 1083... | Line 1059... | ||
| 1083 | AND 7 |
1059 | AND 7 |
| 1084 | LD C,A |
1060 | LD C,A |
| 1085 | LD IY,SDVIG |
1061 | LD IY,SDVIG |
| 1086 | ADD IY,BC |
1062 | ADD IY,BC |
| 1087 | LD A,H |
1063 | LD A,H |
| 1088 | AND 0XF8 |
1064 | AND 0xF8 |
| 1089 | RRCA |
1065 | RRCA |
| 1090 | RRCA |
1066 | RRCA |
| 1091 | RRCA |
1067 | RRCA |
| 1092 | EX AF,AF' |
1068 | EX AF,AF' |
| 1093 | LD A,6 |
1069 | LD A,6 |
| Line 1125... | Line 1101... | ||
| 1125 | EXX |
1101 | EXX |
| 1126 | LD L,A |
1102 | LD L,A |
| 1127 | LD H,0 |
1103 | LD H,0 |
| 1128 | JP (IY) |
1104 | JP (IY) |
| 1129 | 1105 | ||
| - | 1106 | SDVIG |
|
| 1130 | SDVIG REPT 8 |
1107 | REPT 8 |
| 1131 | ADD HL,HL |
1108 | ADD HL,HL |
| 1132 | ENDM |
1109 | ENDM |
| 1133 | LD A,(DE) |
1110 | LD A,(DE) |
| 1134 | AND B |
1111 | AND B |
| 1135 | OR H |
1112 | OR H |
| Line 1155... | Line 1132... | ||
| 1155 | LD A,H |
1132 | LD A,H |
| 1156 | RRCA |
1133 | RRCA |
| 1157 | RRCA |
1134 | RRCA |
| 1158 | RRCA |
1135 | RRCA |
| 1159 | AND 3 |
1136 | AND 3 |
| 1160 | OR 0X58 |
1137 | OR 0x58 |
| 1161 | LD H,A |
1138 | LD H,A |
| 1162 | LD (HL),E |
1139 | LD (HL),E |
| 1163 | PRINTA1 EXX |
1140 | PRINTA1 EXX |
| 1164 | XOR A |
- | |
| 1165 | OUT (C),A |
1141 | EVOPORT WIN_P2,RAM_NMI |
| 1166 | POP HL |
1142 | POP HL |
| 1167 | JP NEXT |
1143 | JP NEXT |
| 1168 | 1144 | ||
| 1169 | STOP_PRINTA DB 0 |
1145 | STOP_PRINTA DB 0 |
| 1170 | 1146 | ||
| Line 1175... | Line 1151... | ||
| 1175 | DB %11110000,%00111111 |
1151 | DB %11110000,%00111111 |
| 1176 | DB %11111000,%00011111 |
1152 | DB %11111000,%00011111 |
| 1177 | DB %11111100,%00001111 |
1153 | DB %11111100,%00001111 |
| 1178 | DB %11111110,%00000111 |
1154 | DB %11111110,%00000111 |
| 1179 | 1155 | ||
| 1180 | ;РИСОВАЛКА ЦВЕТНОЙ ПОЛОСКИ В МЕНЮ |
1156 | ; рисовалка цветной полоски в меню |
| 1181 | COLOR_CURSOR LD HL,FLAGS |
1157 | COLOR_CURSOR LD HL,SYSFLAGS |
| 1182 | BIT B_VIDEO_MODE,(HL) |
1158 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
| 1183 | JP Z,COLORCURS4 |
1159 | JP Z,COLORCURS4 |
| 1184 | EVOPORT WIN_P3,0XF7 |
1160 | EVOPORT WIN_P3,VMODE7_0 |
| 1185 | LD B,(IX+3) |
1161 | LD B,(IX+_H_SIZE) |
| 1186 | LD DE,(COL_CURSOR) |
1162 | LD DE,(COL_CURSOR) |
| 1187 | CALL TRESTORE_CLINE |
1163 | CALL TRESTORE_CLINE |
| 1188 | COLORCURS6 LD A,(IX+7) |
1164 | COLORCURS6 LD A,(IX+_NUM_PKT) |
| 1189 | BIT 7,A |
1165 | BIT B_ADR_PUNKT,A |
| 1190 | JR Z,COLORCURS5 |
1166 | JR Z,COLORCURS5 |
| 1191 | LD L,(IX+8) |
1167 | LD L,(IX+_TEK_PKT_L) |
| 1192 | LD H,(IX+9) |
1168 | LD H,(IX+_TEK_PKT_H) |
| 1193 | LD A,(HL) |
1169 | LD A,(HL) |
| 1194 | COLORCURS5 LD D,(IX+0) |
1170 | COLORCURS5 LD D,(IX+_X_COORD) |
| 1195 | ADD A,(IX+1) |
1171 | ADD A,(IX+_Y_COORD) |
| 1196 | LD E,A |
1172 | LD E,A |
| 1197 | INC E |
1173 | INC E |
| 1198 | LD (COL_CURSOR),DE |
1174 | LD (COL_CURSOR),DE |
| 1199 | EVOPORT WIN_P3,0XF7 |
1175 | EVOPORT WIN_P3,VMODE7_0 |
| 1200 | LD B,(IX+3) |
1176 | LD B,(IX+_H_SIZE) |
| 1201 | CALL TSTORE_CLINE |
1177 | CALL TSTORE_CLINE |
| 1202 | LD A,(IX+5) |
1178 | LD A,(IX+_COLOR_CUR) |
| 1203 | AND 0XF8 |
1179 | AND 0xF8 |
| 1204 | LD C,A |
1180 | LD C,A |
| 1205 | PUSH HL |
1181 | PUSH HL |
| 1206 | PUSH DE |
1182 | PUSH DE |
| 1207 | PUSH BC |
1183 | PUSH BC |
| 1208 | LD (COL_CURSOR),DE |
1184 | LD (COL_CURSOR),DE |
| 1209 | CALL TDISP_ATTR |
1185 | CALL TDISP_ATTR |
| 1210 | LD A,D |
1186 | LD A,D |
| 1211 | XOR 0X10 |
1187 | XOR 0x10 |
| 1212 | LD H,A |
1188 | LD H,A |
| 1213 | LD A,D |
1189 | LD A,D |
| 1214 | AND 0X10 |
1190 | AND 0x10 |
| 1215 | REPT 4 |
1191 | RRCA |
| - | 1192 | RRCA |
|
| - | 1193 | RRCA |
|
| 1216 | RRCA |
1194 | RRCA |
| 1217 | ENDM |
- | |
| 1218 | ADD A,E |
1195 | ADD A,E |
| 1219 | LD L,A |
1196 | LD L,A |
| 1220 | TCOLORLINE2 EX DE,HL |
1197 | TCOLORLINE2 EX DE,HL |
| 1221 | LD A,(HL) |
1198 | LD A,(HL) |
| 1222 | AND 0XC7 |
1199 | AND 0xC7 |
| 1223 | OR C |
1200 | OR C |
| 1224 | LD (HL),A |
1201 | LD (HL),A |
| 1225 | INC HL |
1202 | INC HL |
| 1226 | DJNZ TCOLORLINE2 |
1203 | DJNZ TCOLORLINE2 |
| 1227 | POP BC |
1204 | POP BC |
| 1228 | POP DE |
1205 | POP DE |
| 1229 | POP HL |
1206 | POP HL |
| 1230 | RET |
1207 | RET |
| 1231 | 1208 | ||
| 1232 | ;РИСОВАНИЕ ЦВЕТНОЙ ПОЛОСЫ |
1209 | ; рисование цветной полосы |
| 1233 | ;D-X E-Y B-ДЛИНА C-ЦВЕТ |
1210 | ; D-X E-Y B-длина C-цвет |
| 1234 | TCOLOR_LINE PUSH HL |
1211 | TCOLOR_LINE PUSH HL |
| 1235 | PUSH DE |
1212 | PUSH DE |
| 1236 | PUSH BC |
1213 | PUSH BC |
| 1237 | LD (COL_CURSOR),DE |
1214 | LD (COL_CURSOR),DE |
| 1238 | CALL TDISP_ATTR |
1215 | CALL TDISP_ATTR |
| 1239 | LD A,D |
1216 | LD A,D |
| 1240 | XOR 0X10 |
1217 | XOR 0x10 |
| 1241 | LD H,A |
1218 | LD H,A |
| 1242 | LD A,D |
1219 | LD A,D |
| 1243 | AND 0X10 |
1220 | AND 0x10 |
| 1244 | REPT 4 |
1221 | REPT 4 |
| 1245 | RRCA |
1222 | RRCA |
| 1246 | ENDM |
1223 | ENDM |
| 1247 | ADD A,E |
1224 | ADD A,E |
| 1248 | LD L,A |
1225 | LD L,A |
| Line 1255... | Line 1232... | ||
| 1255 | POP HL |
1232 | POP HL |
| 1256 | RET |
1233 | RET |
| 1257 | ; 00 01 02 03 04 05 06 |
1234 | ; 00 01 02 03 04 05 06 |
| 1258 | ;F1C0 E1C1 F1C1 E1C2 F1C2 E1C3 F1C3 |
1235 | ; F1C0 E1C1 F1C1 E1C2 F1C2 E1C3 F1C3 |
| 1259 | 1236 | ||
| 1260 | ;СОХРАНЕНИЕ ЧАСТИ ЭКРАНА ДЛЯ ВЫВОДА ЦВЕТНОЙ ЛИНИИ |
1237 | ; сохранение части экрана для вывода цветной линии |
| 1261 | ;D-X E-Y B-ДЛИНА |
1238 | ; D-X E-Y B-длина |
| 1262 | TSTORE_CLINE PUSH HL |
1239 | TSTORE_CLINE PUSH HL |
| 1263 | PUSH DE |
1240 | PUSH DE |
| 1264 | PUSH BC |
1241 | PUSH BC |
| 1265 | CALL TDISP_ATTR |
1242 | CALL TDISP_ATTR |
| 1266 | LD A,D |
1243 | LD A,D |
| 1267 | XOR 0X10 |
1244 | XOR 0x10 |
| 1268 | LD H,A |
1245 | LD H,A |
| 1269 | LD A,D |
1246 | LD A,D |
| 1270 | AND 0X10 |
1247 | AND 0x10 |
| 1271 | REPT 4 |
1248 | REPT 4 |
| 1272 | RRCA |
1249 | RRCA |
| 1273 | ENDM |
1250 | ENDM |
| 1274 | ADD A,E |
1251 | ADD A,E |
| 1275 | LD L,A |
1252 | LD L,A |
| Line 1287... | Line 1264... | ||
| 1287 | POP BC |
1264 | POP BC |
| 1288 | POP DE |
1265 | POP DE |
| 1289 | POP HL |
1266 | POP HL |
| 1290 | RET |
1267 | RET |
| 1291 | 1268 | ||
| 1292 | ;ВОССТАНОВЛЕНИЕ ЧАСТИ ЭКРАНА ПОД ЦВЕТНОЙ ЛИНИЕЙ |
1269 | ; восстановление части экрана под цветной линией |
| 1293 | ;D-X E-Y B-ДЛИНА |
1270 | ; D-X E-Y B-длина |
| 1294 | TRESTORE_CLINE PUSH HL |
1271 | TRESTORE_CLINE PUSH HL |
| 1295 | PUSH DE |
1272 | PUSH DE |
| 1296 | PUSH BC |
1273 | PUSH BC |
| 1297 | LD B,(IX+3) |
1274 | LD B,(IX+_H_SIZE) |
| 1298 | LD DE,(COL_CURSOR) |
1275 | LD DE,(COL_CURSOR) |
| 1299 | CALL TDISP_ATTR |
1276 | CALL TDISP_ATTR |
| 1300 | LD A,D |
1277 | LD A,D |
| 1301 | XOR 0X10 |
1278 | XOR 0x10 |
| 1302 | LD H,A |
1279 | LD H,A |
| 1303 | LD A,D |
1280 | LD A,D |
| 1304 | AND 0X10 |
1281 | AND 0x10 |
| 1305 | REPT 4 |
1282 | REPT 4 |
| 1306 | RRCA |
1283 | RRCA |
| 1307 | ENDM |
1284 | ENDM |
| 1308 | ADD A,E |
1285 | ADD A,E |
| 1309 | LD L,A |
1286 | LD L,A |
| Line 1321... | Line 1298... | ||
| 1321 | POP BC |
1298 | POP BC |
| 1322 | POP DE |
1299 | POP DE |
| 1323 | POP HL |
1300 | POP HL |
| 1324 | RET |
1301 | RET |
| 1325 | 1302 | ||
| 1326 | RESTORE_CLINE LD HL,FLAGS |
1303 | RESTORE_CLINE LD HL,SYSFLAGS |
| 1327 | BIT B_VIDEO_MODE,(HL) |
1304 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
| 1328 | JR NZ,TREST_CLINE |
1305 | JR NZ,TREST_CLINE |
| 1329 | LD DE,(COL_CURSOR) |
1306 | LD DE,(COL_CURSOR) |
| 1330 | LD HL,COLBUF |
1307 | LD HL,COLBUF |
| 1331 | LD C,(IX+3) |
1308 | LD C,(IX+_H_SIZE) |
| 1332 | LD B,0 |
1309 | LD B,0 |
| 1333 | LDIR |
1310 | LDIR |
| 1334 | RET |
1311 | RET |
| 1335 | 1312 | ||
| - | 1313 | TREST_CLINE |
|
| 1336 | TREST_CLINE EVOPORT WIN_P3,0XF7 |
1314 | EVOPORT WIN_P3,VMODE7_0 |
| 1337 | LD B,(IX+3) |
1315 | LD B,(IX+_H_SIZE) |
| 1338 | LD DE,(COL_CURSOR) |
1316 | LD DE,(COL_CURSOR) |
| 1339 | JP TRESTORE_CLINE |
1317 | JP TRESTORE_CLINE |
| 1340 | 1318 | ||
| 1341 | COLORCURS4 LD DE,(COL_CURSOR) |
1319 | COLORCURS4 LD DE,(COL_CURSOR) |
| 1342 | LD HL,COLBUF |
1320 | LD HL,COLBUF |
| 1343 | LD C,(IX+3) |
1321 | LD C,(IX+_H_SIZE) |
| 1344 | ; BIT 2,(IY+55) ;ФАЙЛОВ БОЛЬШЕ ВЫСОТЫ ОКНА? |
1322 | ; BIT 2,(IY+55) ; файлов больше высоты окна? |
| 1345 | ; JR Z,COLCURS1 |
1323 | ; JR Z,COLCURS1 |
| 1346 | ; DEC C ;ЦВЕТНАЯ ПОЛОСКА НА 1 КОРОЧЕ |
1324 | ; DEC C ; цветная полоска на 1 короче |
| 1347 | COLCURS1 LD B,0 |
1325 | COLCURS1 LD B,0 |
| 1348 | LDIR |
1326 | LDIR |
| 1349 | SET_ADR_ATR LD HL,FLAGS |
1327 | SET_ADR_ATR |
| - | 1328 | EVOPORT WIN_P3,VMODE7_0 |
|
| - | 1329 | LD HL,SYSFLAGS |
|
| 1350 | BIT B_VIDEO_MODE,(HL) |
1330 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
| 1351 | JP NZ,COLORCURS6 |
1331 | JP NZ,COLORCURS6 |
| 1352 | LD A,(IX+7) |
1332 | BIT B_ADR_PUNKT,(IX+_NUM_PKT) |
| 1353 | BIT 7,A |
- | |
| 1354 | JR Z,COLCURS3 |
1333 | JR Z,COLCURS3 |
| 1355 | LD L,(IX+8) |
1334 | LD L,(IX+_TEK_PKT_L) |
| 1356 | LD H,(IX+9) |
1335 | LD H,(IX+_TEK_PKT_H) |
| 1357 | LD A,(HL) |
1336 | LD A,(HL) |
| 1358 | COLCURS3 ;LD B,A |
1337 | COLCURS3 LD H,(IX+_X_COORD) |
| 1359 | LD H,(IX+0) |
- | |
| 1360 | LD L,(IX+1) |
1338 | LD L,(IX+_Y_COORD) |
| 1361 | ADD A,L |
1339 | ADD A,L |
| 1362 | LD L,A |
1340 | LD L,A |
| 1363 | INC L |
1341 | INC L |
| 1364 | CALL ADRDIS |
1342 | CALL ADRDIS |
| 1365 | EX DE,HL |
1343 | EX DE,HL |
| 1366 | LD (COL_CURSOR),HL ;ПОЛОЖИЛИ АДРЕС ДЛЯ ВОССТАНОВЛЕНИЯ ЦВЕТА |
1344 | LD (COL_CURSOR),HL ; положили адрес для восстановления цвета |
| 1367 | LD DE,COLBUF |
1345 | LD DE,COLBUF |
| 1368 | LD B,(IX+3) |
1346 | LD B,(IX+_H_SIZE) |
| 1369 | ; BIT 2,(IY+55) ;ФАЙЛОВ БОЛЬШЕ ВЫСОТЫ ОКНА? |
1347 | ; BIT 2,(IY+55) ; файлов больше высоты окна? |
| 1370 | ; JR Z,COLCURS2 |
1348 | ; JR Z,COLCURS2 |
| 1371 | ; DEC B ;ЦВЕТНАЯ ПОЛОСКА НА 1 КОРОЧЕ |
1349 | ; DEC B ; цветная полоска на 1 короче |
| 1372 | COLCURS2 LD C,(IX+5) |
1350 | COLCURS2 LD C,(IX+_COLOR_CUR) |
| 1373 | LD A,(HL) |
1351 | .L1 LD A,(HL) |
| 1374 | LD (DE),A |
1352 | LD (DE),A |
| 1375 | LD (HL),C |
1353 | LD (HL),C |
| 1376 | INC L |
1354 | INC L |
| 1377 | INC E |
1355 | INC E |
| 1378 | DJNZ $-5 |
1356 | DJNZ .L1 |
| 1379 | RET |
1357 | RET |
| 1380 | 1358 | ||
| 1381 | ;H-X, L-Y |
1359 | ; H-X, L-Y |
| 1382 | ADRDIS LD C,A |
1360 | ADRDIS LD C,A |
| 1383 | LD A,L |
1361 | LD A,L |
| 1384 | AND 0X18 |
1362 | AND 0x18 |
| 1385 | OR 0X40 |
1363 | OR 0x40 |
| 1386 | EX AF,AF' |
1364 | EX AF,AF' |
| 1387 | LD A,L |
1365 | LD A,L |
| 1388 | AND 7 |
1366 | AND 7 |
| 1389 | RRCA |
1367 | RRCA |
| 1390 | RRCA |
1368 | RRCA |
| Line 1397... | Line 1375... | ||
| 1397 | ADRATR LD A,H |
1375 | ADRATR LD A,H |
| 1398 | RRCA |
1376 | RRCA |
| 1399 | RRCA |
1377 | RRCA |
| 1400 | RRCA |
1378 | RRCA |
| 1401 | AND 3 |
1379 | AND 3 |
| 1402 | OR 0X58 |
1380 | OR 0x58 |
| 1403 | LD D,A |
1381 | LD D,A |
| 1404 | LD A,C |
1382 | LD A,C |
| 1405 | RET |
1383 | RET |
| 1406 | 1384 | ||
| 1407 | INC_H INC H |
1385 | INC_H INC H |
| 1408 | LD A,H |
1386 | LD A,H |
| 1409 | AND 7 |
1387 | AND 7 |
| 1410 | RET NZ |
1388 | RET NZ |
| 1411 | LD A,L |
1389 | LD A,L |
| 1412 | ADD A,0X20 |
1390 | ADD A,0x20 |
| 1413 | LD L,A |
1391 | LD L,A |
| 1414 | RET C |
1392 | RET C |
| 1415 | UMEHL1 LD A,H |
1393 | UMEHL1 LD A,H |
| 1416 | SUB 8 |
1394 | SUB 8 |
| 1417 | LD H,A |
1395 | LD H,A |
| 1418 | RET |
1396 | RET |
| 1419 | 1397 | ||
| 1420 | ;СДВИГ ОКНА ВВЕРХ |
1398 | ; сдвиг окна вверх |
| 1421 | SCRUP LD HL,FLAGS |
1399 | SCRUP LD HL,SYSFLAGS |
| 1422 | BIT B_VIDEO_MODE,(HL) |
1400 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
| 1423 | JP NZ,TSCRUP |
1401 | JP NZ,TSCRUP |
| 1424 | ;СДВИГ ОКНА ВВЕРХ (ZX) |
1402 | ; сдвиг окна вверх (ZX) |
| 1425 | PUSH IY |
1403 | PUSH IY |
| 1426 | PUSH IX |
1404 | PUSH IX |
| 1427 | EXX |
1405 | EXX |
| 1428 | LD A,(SCROLL_MODE) |
1406 | LD A,(SCROLL_MODE) |
| 1429 | LD E,A |
1407 | LD E,A |
| 1430 | EXX |
1408 | EXX |
| 1431 | LD L,(IX+1) |
1409 | LD L,(IX+_Y_COORD) |
| 1432 | INC L |
1410 | INC L |
| 1433 | CALL USTAN |
1411 | CALL USTAN |
| 1434 | ;СДВИГ ПИКСЕЛЕЙ ВВЕРХ |
1412 | ; сдвиг пикселей вверх |
| 1435 | SCRUP1 LD A,(IX+0X10) |
1413 | SCRUP1 LD A,(IX+0x10) |
| 1436 | ADD A,C |
1414 | ADD A,C |
| 1437 | LD L,A |
1415 | LD L,A |
| 1438 | LD H,(IX+0X11) |
1416 | LD H,(IX+0x11) |
| 1439 | LD A,(IX+0) |
1417 | LD A,(IX+0) |
| 1440 | ADD A,C |
1418 | ADD A,C |
| 1441 | LD E,A |
1419 | LD E,A |
| 1442 | LD D,(IX+1) |
1420 | LD D,(IX+1) |
| 1443 | PUSH BC |
1421 | PUSH BC |
| Line 1446... | Line 1424... | ||
| 1446 | EXX |
1424 | EXX |
| 1447 | LD A,E |
1425 | LD A,E |
| 1448 | EXX |
1426 | EXX |
| 1449 | AND 1;A |
1427 | AND 1;A |
| 1450 | JR Z,SCRUP2 |
1428 | JR Z,SCRUP2 |
| 1451 | LD A,(IX+0X11) |
1429 | LD A,(IX+0x11) |
| 1452 | LD H,A |
1430 | LD H,A |
| 1453 | AND 7 |
1431 | AND 7 |
| 1454 | CP 7 |
1432 | CP 7 |
| 1455 | JR NZ,SCRUP2 |
1433 | JR NZ,SCRUP2 |
| 1456 | ;СДВИГ ВВЕРХ ЦВЕТОВОЙ СТРОКИ ПОСЛЕ ПЕРЕНОСА 7 ЛИНИЙ ЗНАКОРЯДА |
1434 | ; сдвиг вверх цветовой строки после переноса 7 линий знакоряда |
| 1457 | LD A,H |
1435 | LD A,H |
| 1458 | RRCA |
1436 | RRCA |
| 1459 | RRCA |
1437 | RRCA |
| 1460 | RRCA |
1438 | RRCA |
| 1461 | AND 3 |
1439 | AND 3 |
| 1462 | OR 0X58 |
1440 | OR 0x58 |
| 1463 | LD H,A |
1441 | LD H,A |
| 1464 | LD L,(IX+0X10) |
1442 | LD L,(IX+0x10) |
| 1465 | LD A,(IX+1) |
1443 | LD A,(IX+1) |
| 1466 | RRCA |
1444 | RRCA |
| 1467 | RRCA |
1445 | RRCA |
| 1468 | RRCA |
1446 | RRCA |
| 1469 | AND 3 |
1447 | AND 3 |
| 1470 | OR 0X58 |
1448 | OR 0x58 |
| 1471 | LD D,A |
1449 | LD D,A |
| 1472 | LD E,(IX+0) |
1450 | LD E,(IX+0) |
| 1473 | PUSH BC |
1451 | PUSH BC |
| 1474 | CALL LDIST |
1452 | CALL LDIST |
| 1475 | POP BC |
1453 | POP BC |
| Line 1478... | Line 1456... | ||
| 1478 | DJNZ SCRUP1 |
1456 | DJNZ SCRUP1 |
| 1479 | SCRUP3 POP IX |
1457 | SCRUP3 POP IX |
| 1480 | POP IY |
1458 | POP IY |
| 1481 | RET |
1459 | RET |
| 1482 | 1460 | ||
| 1483 | ;СДВИГ ОКНА ВВЕРХ (TXT) |
1461 | ; сдвиг окна вверх (TXT) |
| 1484 | TSCRUP PUSH IY |
1462 | TSCRUP PUSH IY |
| 1485 | PUSH IX |
1463 | PUSH IX |
| 1486 | EVOPORT WIN_P3,0XF7 |
1464 | EVOPORT WIN_P3,VMODE7_0 |
| 1487 | LD A,(IX+2) |
1465 | LD A,(IX+_V_SIZE) |
| 1488 | SUB 3 |
1466 | SUB 3 |
| 1489 | LD B,A ;СКОЛЬКО СТРОК В ОКНЕ СКРОЛЛИРОВАТЬ |
1467 | LD B,A ; сколько строк в окне скроллировать |
| 1490 | LD C,(IX+3) ;ШИРИНА ОКНА |
1468 | LD C,(IX+_H_SIZE) ; ширина окна |
| 1491 | LD D,(IX+0) ;X КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1469 | LD D,(IX+_X_COORD) ; X координата левого верхнего угла для скроллера |
| 1492 | LD E,(IX+1) |
1470 | LD E,(IX+_Y_COORD) |
| 1493 | INC E ;Y КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1471 | INC E ; Y координата левого верхнего угла для скроллера |
| 1494 | LD A,E |
1472 | LD A,E |
| 1495 | ADD A,A |
1473 | ADD A,A |
| 1496 | ADD A,A |
1474 | ADD A,A |
| 1497 | EXX |
1475 | EXX |
| 1498 | LD C,A |
1476 | LD C,A |
| 1499 | LD B,0 |
1477 | LD B,0 |
| 1500 | LD IX,TBUFTSC |
1478 | LD IX,TBUFTSC |
| 1501 | ADD IX,BC ;IX=СПИСОК АДРЕСОВ НАЧАЛ СТРОК ДЛЯ СКРОЛЛЕРА |
1479 | ADD IX,BC ; IX=список адресов начал строк для скроллера |
| 1502 | EXX |
1480 | EXX |
| 1503 | LD A,C |
1481 | LD A,C |
| 1504 | AND 0XFE |
1482 | AND 0xFE |
| 1505 | NEG |
1483 | NEG |
| 1506 | LD H,A ;ШИРИНА ДЛЯ ЛЕВЫЙ СИМВОЛОВ |
1484 | LD H,A ; ширина для левый символов |
| 1507 | LD L,A ;ШИРИНА ДЛЯ ПРАВЫХ СИМВОЛОВ |
1485 | LD L,A ; ширина для правых символов |
| 1508 | BIT 0,C |
1486 | BIT 0,C |
| 1509 | JR Z,TSCRUP1 ;ЕСЛИ ШИРИНА ЧЕТНАЯ, НИЧЕГО НЕ ДЕЛАЕМ |
1487 | JR Z,TSCRUP1 ; если ширина четная, ничего не делаем |
| 1510 | DEC L |
1488 | DEC L |
| 1511 | DEC L |
1489 | DEC L |
| 1512 | BIT 0,D |
1490 | BIT 0,D |
| 1513 | JR NZ,TSCRUP1 |
1491 | JR NZ,TSCRUP1 |
| 1514 | LD A,H |
1492 | LD A,H |
| Line 1521... | Line 1499... | ||
| 1521 | LD E,A |
1499 | LD E,A |
| 1522 | TSCRUP2 LD A,H |
1500 | TSCRUP2 LD A,H |
| 1523 | EXX |
1501 | EXX |
| 1524 | LD IY,LDI_END |
1502 | LD IY,LDI_END |
| 1525 | LD E,A |
1503 | LD E,A |
| 1526 | LD D,0XFF |
1504 | LD D,0xFF |
| 1527 | ADD IY,DE |
1505 | ADD IY,DE |
| 1528 | EXX |
1506 | EXX |
| 1529 | LD A,E |
1507 | LD A,E |
| 1530 | EXX |
1508 | EXX |
| 1531 | LD E,A |
1509 | LD E,A |
| Line 1534... | Line 1512... | ||
| 1534 | LD H,(IX+5) |
1512 | LD H,(IX+5) |
| 1535 | LD A,E |
1513 | LD A,E |
| 1536 | ADD A,(IX+0) |
1514 | ADD A,(IX+0) |
| 1537 | LD E,A |
1515 | LD E,A |
| 1538 | LD D,(IX+1) |
1516 | LD D,(IX+1) |
| 1539 | CALL LDIST ;ПЕРЕНОС МОНОХРОМНОЙЙ СТРОКИ |
1517 | CALL LDIST ; перенос монохромнойй строки |
| 1540 | EXX |
1518 | EXX |
| 1541 | LD A,E |
1519 | LD A,E |
| 1542 | EXX |
1520 | EXX |
| 1543 | LD E,A |
1521 | LD E,A |
| 1544 | ADD A,(IX+4+100) |
1522 | ADD A,(IX+4+100) |
| Line 1546... | Line 1524... | ||
| 1546 | LD H,(IX+5+100) |
1524 | LD H,(IX+5+100) |
| 1547 | LD A,E |
1525 | LD A,E |
| 1548 | ADD A,(IX+0+100) |
1526 | ADD A,(IX+0+100) |
| 1549 | LD E,A |
1527 | LD E,A |
| 1550 | LD D,(IX+1+100) |
1528 | LD D,(IX+1+100) |
| 1551 | CALL LDIST ;ПЕРЕНОС ЦВЕТНОЙ СТРОКИ |
1529 | CALL LDIST ; перенос цветной строки |
| 1552 | EXX |
1530 | EXX |
| 1553 | LD A,L |
1531 | LD A,L |
| 1554 | EXX |
1532 | EXX |
| 1555 | LD IY,LDI_END |
1533 | LD IY,LDI_END |
| 1556 | LD E,A |
1534 | LD E,A |
| 1557 | LD D,0XFF |
1535 | LD D,0xFF |
| 1558 | ADD IY,DE |
1536 | ADD IY,DE |
| 1559 | EXX |
1537 | EXX |
| 1560 | LD A,D |
1538 | LD A,D |
| 1561 | EXX |
1539 | EXX |
| 1562 | LD E,A |
1540 | LD E,A |
| Line 1565... | Line 1543... | ||
| 1565 | LD H,(IX+7) |
1543 | LD H,(IX+7) |
| 1566 | LD A,E |
1544 | LD A,E |
| 1567 | ADD A,(IX+2) |
1545 | ADD A,(IX+2) |
| 1568 | LD E,A |
1546 | LD E,A |
| 1569 | LD D,(IX+3) |
1547 | LD D,(IX+3) |
| 1570 | CALL LDIST ;ПЕРЕНОС МОНОХРОМНОЙ СТРОКИ |
1548 | CALL LDIST ; перенос монохромной строки |
| 1571 | EXX |
1549 | EXX |
| 1572 | LD A,D |
1550 | LD A,D |
| 1573 | EXX |
1551 | EXX |
| 1574 | LD E,A |
1552 | LD E,A |
| 1575 | ADD A,(IX+6+100) |
1553 | ADD A,(IX+6+100) |
| Line 1577... | Line 1555... | ||
| 1577 | LD H,(IX+7+100) |
1555 | LD H,(IX+7+100) |
| 1578 | LD A,E |
1556 | LD A,E |
| 1579 | ADD A,(IX+2+100) |
1557 | ADD A,(IX+2+100) |
| 1580 | LD E,A |
1558 | LD E,A |
| 1581 | LD D,(IX+3+100) |
1559 | LD D,(IX+3+100) |
| 1582 | CALL LDIST ;ПЕРЕНОС СТРОКИ ЦВЕТА |
1560 | CALL LDIST ; перенос строки цвета |
| 1583 | REPT 4 |
1561 | REPT 4 |
| 1584 | INC IX |
1562 | INC IX |
| 1585 | ENDM |
1563 | ENDM |
| 1586 | EXX |
1564 | EXX |
| 1587 | DJNZ TSCRUP2 |
1565 | DJNZ TSCRUP2 |
| Line 1589... | Line 1567... | ||
| 1589 | POP IY |
1567 | POP IY |
| 1590 | RET |
1568 | RET |
| 1591 | 1569 | ||
| 1592 | ;0 2 4 6 8 |
1570 | ;0 2 4 6 8 |
| 1593 | ; 1 3 5 7 9 |
1571 | ; 1 3 5 7 9 |
| 1594 | ; ===== 3 НЕЧЕТ + 2 ЧЕТ |
1572 | ; ===== 3 нечет + 2 чет |
| 1595 | ;===== 2 НЕЧЕТ + 3 ЧЕТ |
1573 | ;===== 2 нечет + 3 чет |
| 1596 | ; ==== 2 НЕЧЕТ + 2 ЧЕТ |
1574 | ; ==== 2 нечет + 2 чет |
| 1597 | ;==== 2 НЕЧЕТ + 2 ЧЕТ |
1575 | ;==== 2 нечет + 2 чет |
| 1598 | ;0 2 4 6 8 |
1576 | ;0 2 4 6 8 |
| 1599 | ; 1 3 5 7 9 |
1577 | ; 1 3 5 7 9 |
| 1600 | 1578 | ||
| 1601 | ;C200 C201 C202 C203 C204 |
1579 | ;C200 C201 C202 C203 C204 |
| 1602 | ; D200 D201 D202 D203 D204 |
1580 | ; D200 D201 D202 D203 D204 |
| 1603 | ;---------------------------------------- |
1581 | ;---------------------------------------- |
| 1604 | ;C240 C241 C242 C243 C244 |
1582 | ;C240 C241 C242 C243 C244 |
| 1605 | ; D240 D241 D242 D243 D244 |
1583 | ; D240 D241 D242 D243 D244 |
| 1606 | 1584 | ||
| 1607 | ;СДВИГ ОКНА ВНИЗ |
1585 | ; сдвиг окна вниз |
| 1608 | TSCRDN DI |
1586 | TSCRDN DI |
| 1609 | PUSH IX |
1587 | PUSH IX |
| 1610 | PUSH IY |
1588 | PUSH IY |
| 1611 | EVOPORT WIN_P3,0XF7 |
1589 | EVOPORT WIN_P3,VMODE7_0 |
| 1612 | LD A,(IX+2) |
1590 | LD A,(IX+_V_SIZE) |
| 1613 | SUB 3 |
1591 | SUB 3 |
| 1614 | LD B,A ;СКОЛЬКО СТРОК В ОКНЕ СКРОЛЛИРОВАТЬ |
1592 | LD B,A ; сколько строк в окне скроллировать |
| 1615 | LD C,(IX+3) ;ШИРИНА ОКНА |
1593 | LD C,(IX+_H_SIZE) ; ширина окна |
| 1616 | LD D,(IX+0) ;X КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1594 | LD D,(IX+_X_COORD) ; X координата левого верхнего угла для скроллера |
| 1617 | LD A,(IX+1) |
1595 | LD A,(IX+_Y_COORD) |
| 1618 | ADD A,(IX+2) |
1596 | ADD A,(IX+_V_SIZE) |
| 1619 | SUB 2 |
1597 | SUB 2 |
| 1620 | LD E,A ;Y КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1598 | LD E,A ; Y координата левого верхнего угла для скроллера |
| 1621 | ADD A,A |
1599 | ADD A,A |
| 1622 | ADD A,A |
1600 | ADD A,A |
| 1623 | EXX |
1601 | EXX |
| 1624 | LD C,A |
1602 | LD C,A |
| 1625 | LD B,0 |
1603 | LD B,0 |
| 1626 | LD IX,TBUFTSC |
1604 | LD IX,TBUFTSC |
| 1627 | ADD IX,BC ;IX=СПИСОК АДРЕСОВ НАЧАЛ СТРОК ДЛЯ СКРОЛЛЕРА |
1605 | ADD IX,BC ; IX=список адресов начал строк для скроллера |
| 1628 | EXX |
1606 | EXX |
| 1629 | LD A,C |
1607 | LD A,C |
| 1630 | AND 0XFE |
1608 | AND 0xFE |
| 1631 | NEG |
1609 | NEG |
| 1632 | LD H,A ;ШИРИНА ДЛЯ ЛЕВЫЙ СИМВОЛОВ |
1610 | LD H,A ; ширина для левый символов |
| 1633 | LD L,A ;ШИРИНА ДЛЯ ПРАВЫХ СИМВОЛОВ |
1611 | LD L,A ; ширина для правых символов |
| 1634 | BIT 0,C |
1612 | BIT 0,C |
| 1635 | JR Z,TSCRDN1 |
1613 | JR Z,TSCRDN1 |
| 1636 | DEC L |
1614 | DEC L |
| 1637 | DEC L |
1615 | DEC L |
| 1638 | BIT 0,D |
1616 | BIT 0,D |
| Line 1643... | Line 1621... | ||
| 1643 | TSCRDN1 LD A,D |
1621 | TSCRDN1 LD A,D |
| 1644 | SRL A |
1622 | SRL A |
| 1645 | LD D,A |
1623 | LD D,A |
| 1646 | ADC A,0 |
1624 | ADC A,0 |
| 1647 | LD E,A |
1625 | LD E,A |
| - | 1626 | TSCRDN2 |
|
| 1648 | TSCRDN2 REPT 4 |
1627 | REPT 4 |
| 1649 | DEC IX |
1628 | DEC IX |
| 1650 | ENDM |
1629 | ENDM |
| 1651 | LD A,H |
1630 | LD A,H |
| 1652 | EXX |
1631 | EXX |
| 1653 | LD IY,LDI_END |
1632 | LD IY,LDI_END |
| 1654 | LD E,A |
1633 | LD E,A |
| 1655 | LD D,0XFF |
1634 | LD D,0xFF |
| 1656 | ADD IY,DE |
1635 | ADD IY,DE |
| 1657 | EXX |
1636 | EXX |
| 1658 | LD A,E |
1637 | LD A,E |
| 1659 | EXX |
1638 | EXX |
| 1660 | LD E,A |
1639 | LD E,A |
| Line 1663... | Line 1642... | ||
| 1663 | LD H,(IX+1) |
1642 | LD H,(IX+1) |
| 1664 | LD A,E |
1643 | LD A,E |
| 1665 | ADD A,(IX+4) |
1644 | ADD A,(IX+4) |
| 1666 | LD E,A |
1645 | LD E,A |
| 1667 | LD D,(IX+5) |
1646 | LD D,(IX+5) |
| 1668 | CALL LDIST ;ПЕРЕНОС МОХОРОМНОЙ СТРОКИ |
1647 | CALL LDIST ; перенос мохоромной строки |
| 1669 | EXX |
1648 | EXX |
| 1670 | LD A,E |
1649 | LD A,E |
| 1671 | EXX |
1650 | EXX |
| 1672 | LD E,A |
1651 | LD E,A |
| 1673 | ADD A,(IX+0+100) |
1652 | ADD A,(IX+0+100) |
| Line 1675... | Line 1654... | ||
| 1675 | LD H,(IX+1+100) |
1654 | LD H,(IX+1+100) |
| 1676 | LD A,E |
1655 | LD A,E |
| 1677 | ADD A,(IX+4+100) |
1656 | ADD A,(IX+4+100) |
| 1678 | LD E,A |
1657 | LD E,A |
| 1679 | LD D,(IX+5+100) |
1658 | LD D,(IX+5+100) |
| 1680 | CALL LDIST ;ПЕРЕНОС ЦВЕТНОЙ СТРОКИ |
1659 | CALL LDIST ; перенос цветной строки |
| 1681 | EXX |
1660 | EXX |
| 1682 | LD A,L |
1661 | LD A,L |
| 1683 | EXX |
1662 | EXX |
| 1684 | LD IY,LDI_END |
1663 | LD IY,LDI_END |
| 1685 | LD E,A |
1664 | LD E,A |
| 1686 | LD D,0XFF |
1665 | LD D,0xFF |
| 1687 | ADD IY,DE |
1666 | ADD IY,DE |
| 1688 | EXX |
1667 | EXX |
| 1689 | LD A,D |
1668 | LD A,D |
| 1690 | EXX |
1669 | EXX |
| 1691 | LD E,A |
1670 | LD E,A |
| Line 1694... | Line 1673... | ||
| 1694 | LD H,(IX+3) |
1673 | LD H,(IX+3) |
| 1695 | LD A,E |
1674 | LD A,E |
| 1696 | ADD A,(IX+6) |
1675 | ADD A,(IX+6) |
| 1697 | LD E,A |
1676 | LD E,A |
| 1698 | LD D,(IX+7) |
1677 | LD D,(IX+7) |
| 1699 | CALL LDIST ;ПЕРЕНОС МОНОХРОМНОЙ СТРОКИ |
1678 | CALL LDIST ; перенос монохромной строки |
| 1700 | EXX |
1679 | EXX |
| 1701 | LD A,D |
1680 | LD A,D |
| 1702 | EXX |
1681 | EXX |
| 1703 | LD E,A |
1682 | LD E,A |
| 1704 | ADD A,(IX+2+100) |
1683 | ADD A,(IX+2+100) |
| Line 1706... | Line 1685... | ||
| 1706 | LD H,(IX+3+100) |
1685 | LD H,(IX+3+100) |
| 1707 | LD A,E |
1686 | LD A,E |
| 1708 | ADD A,(IX+6+100) |
1687 | ADD A,(IX+6+100) |
| 1709 | LD E,A |
1688 | LD E,A |
| 1710 | LD D,(IX+7+100) |
1689 | LD D,(IX+7+100) |
| 1711 | CALL LDIST ;ПЕРЕНОС ЦВЕТНОЙ СТРОКИ |
1690 | CALL LDIST ; перенос цветной строки |
| 1712 | EXX |
1691 | EXX |
| 1713 | DJNZ TSCRDN2 |
1692 | DJNZ TSCRDN2 |
| 1714 | POP IY |
1693 | POP IY |
| 1715 | POP IX |
1694 | POP IX |
| 1716 | RET |
1695 | RET |
| 1717 | 1696 | ||
| 1718 | SCRDN LD HL,FLAGS |
1697 | SCRDN LD HL,SYSFLAGS |
| 1719 | BIT B_VIDEO_MODE,(HL) |
1698 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
| 1720 | JP NZ,TSCRDN |
1699 | JP NZ,TSCRDN |
| 1721 | ;СКРОЛЛ ОКНА ВВЕРХ (ZX) |
1700 | ; скролл окна вверх (ZX) |
| 1722 | PUSH IX |
1701 | PUSH IX |
| 1723 | PUSH IY |
1702 | PUSH IY |
| 1724 | EXX |
1703 | EXX |
| 1725 | LD A,(SCROLL_MODE) |
1704 | LD A,(SCROLL_MODE) |
| 1726 | LD E,A |
1705 | LD E,A |
| 1727 | EXX |
1706 | EXX |
| 1728 | LD A,(IX+2) |
1707 | LD A,(IX+_V_SIZE) |
| 1729 | ADD A,(IX+1) |
1708 | ADD A,(IX+_Y_COORD) |
| 1730 | SUB 2 |
1709 | SUB 2 |
| 1731 | LD L,A |
1710 | LD L,A |
| 1732 | CALL USTAN |
1711 | CALL USTAN |
| 1733 | DEC IX |
1712 | DEC IX |
| 1734 | DEC IX |
1713 | DEC IX |
| 1735 | SCRDN1 LD A,(IX+0) |
1714 | SCRDN1 LD A,(IX+0) |
| 1736 | ADD A,C |
1715 | ADD A,C |
| 1737 | LD L,A |
1716 | LD L,A |
| 1738 | LD H,(IX+1) |
1717 | LD H,(IX+1) |
| 1739 | LD A,(IX+0X10) |
1718 | LD A,(IX+0x10) |
| 1740 | ADD A,C |
1719 | ADD A,C |
| 1741 | LD E,A |
1720 | LD E,A |
| 1742 | LD D,(IX+0X11) |
1721 | LD D,(IX+0x11) |
| 1743 | PUSH BC |
1722 | PUSH BC |
| 1744 | CALL LDIST |
1723 | CALL LDIST |
| 1745 | POP BC |
1724 | POP BC |
| 1746 | EXX |
1725 | EXX |
| 1747 | LD A,E |
1726 | LD A,E |
| Line 1756... | Line 1735... | ||
| 1756 | LD A,H |
1735 | LD A,H |
| 1757 | RRCA |
1736 | RRCA |
| 1758 | RRCA |
1737 | RRCA |
| 1759 | RRCA |
1738 | RRCA |
| 1760 | AND 3 |
1739 | AND 3 |
| 1761 | OR 0X58 |
1740 | OR 0x58 |
| 1762 | LD H,A |
1741 | LD H,A |
| 1763 | LD L,(IX+0) |
1742 | LD L,(IX+0) |
| 1764 | LD A,(IX+0X11) |
1743 | LD A,(IX+0x11) |
| 1765 | RRCA |
1744 | RRCA |
| 1766 | RRCA |
1745 | RRCA |
| 1767 | RRCA |
1746 | RRCA |
| 1768 | AND 3 |
1747 | AND 3 |
| 1769 | OR 0X58 |
1748 | OR 0x58 |
| 1770 | LD D,A |
1749 | LD D,A |
| 1771 | LD E,(IX+0X10) |
1750 | LD E,(IX+0x10) |
| 1772 | PUSH BC |
1751 | PUSH BC |
| 1773 | CALL LDIST |
1752 | CALL LDIST |
| 1774 | POP BC |
1753 | POP BC |
| 1775 | SCRDN2 DEC IX |
1754 | SCRDN2 DEC IX |
| 1776 | DEC IX |
1755 | DEC IX |
| 1777 | DJNZ SCRDN1 |
1756 | DJNZ SCRDN1 |
| 1778 | POP IY |
1757 | POP IY |
| 1779 | POP IX |
1758 | POP IX |
| 1780 | RET |
1759 | RET |
| 1781 | 1760 | ||
| 1782 | ;УСТАНОВКИ ДЛЯ СКРОЛЛЕРА ОКНА |
1761 | ; установки для скроллера окна |
| 1783 | USTAN LD A,(IX+3) |
1762 | USTAN LD A,(IX+_H_SIZE) |
| 1784 | ADD A,A |
1763 | ADD A,A |
| 1785 | LD E,A |
1764 | LD E,A |
| 1786 | LD A,L |
1765 | LD A,L |
| 1787 | LD D,0 |
1766 | LD D,0 |
| 1788 | LD HL,LDI_END |
1767 | LD HL,LDI_END |
| 1789 | AND A |
1768 | AND A |
| 1790 | SBC HL,DE |
1769 | SBC HL,DE |
| 1791 | PUSH HL |
1770 | PUSH HL |
| 1792 | POP IY |
1771 | POP IY |
| 1793 | LD C,(IX+0) |
1772 | LD C,(IX+_X_COORD) |
| 1794 | LD L,A |
1773 | LD L,A |
| 1795 | LD A,(IX+2) |
1774 | LD A,(IX+_V_SIZE) |
| 1796 | SUB 3 |
1775 | SUB 3 |
| 1797 | ADD A,A |
1776 | ADD A,A |
| 1798 | ADD A,A |
1777 | ADD A,A |
| 1799 | ADD A,A |
1778 | ADD A,A |
| 1800 | LD B,A |
1779 | LD B,A |
| Line 1806... | Line 1785... | ||
| 1806 | EX DE,HL |
1785 | EX DE,HL |
| 1807 | ADD IX,DE |
1786 | ADD IX,DE |
| 1808 | ADD IX,DE |
1787 | ADD IX,DE |
| 1809 | RET |
1788 | RET |
| 1810 | 1789 | ||
| 1811 | LDIST DB 0XFD |
1790 | LDIST JP (IY) |
| 1812 | JP (HL) |
- | |
| 1813 | REPT 80 |
1791 | REPT 80 |
| 1814 | LDI |
1792 | LDI |
| 1815 | ENDM |
1793 | ENDM |
| 1816 | LDI_END RET |
1794 | LDI_END RET |
| 1817 | 1795 | ||