Rev 151 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
151 | dimkam | 1 | ;SAMPLE.H Пример программы, использующей оболочку. |
2 | ;(C) Vitamin/CAIG/2001 |
||
3 | |||
4 | ;Опции проекта. Нужное раскомментировать, программа изменится |
||
5 | NOLOADFIL |
||
6 | NOSAVEFIL |
||
7 | NOMEMDRV |
||
8 | |||
9 | ;Цвета |
||
10 | ACTCOLOR=40 |
||
11 | ACTPCOLR=6 |
||
12 | WINCOLOR=5 |
||
13 | HDRCOLOR=48 |
||
14 | |||
15 | ;Память |
||
16 | CPAGE1=66 |
||
17 | |||
18 | DISKBUF=#C000 |
||
19 | LIST=DISKBUF+#900 |
||
20 | LISTLEN=#600 |
||
21 | NUMLIST=LIST+LISTLEN |
||
22 | |||
23 | ;Файл макросов. ПОСЛЕ всех настроек |
||
24 | INCLUDE "MACROS",67 |
||
25 | |||
26 | ORG 24576 |
||
27 | |||
28 | ;Главное окно |
||
29 | LD A,WIN_HEADER|WIN_REFRESH|WIN_MOVABLE|WIN_NOMODAL |
||
30 | PROGR |
||
31 | LD IX,MAINWIN |
||
32 | LD (IX+4),A |
||
33 | CALL WAITKEY |
||
34 | CALL WINDOW |
||
35 | CP -1 |
||
36 | RET Z |
||
37 | LD HL,MAINJP |
||
38 | JP TAB_JP |
||
39 | |||
40 | MAINWIN DB 10,8,16,14 |
||
41 | DB 15 |
||
42 | DB 0 |
||
43 | DW MAINTXT |
||
44 | DW MAINLGT |
||
45 | DW MAINHOT |
||
46 | DW -1 |
||
47 | |||
48 | MAINTXT DB "Пример работы",13,13 |
||
49 | DB "[0] Просто окно",13 |
||
50 | DB "[1] Спрайт-кнопка",13 |
||
51 | DB "[2] Флажки",13 |
||
52 | DB "[3] Переключатели",13 |
||
53 | DB "[4] Скроллбары",13 |
||
54 | DB "[5] Слайдеры",13 |
||
55 | DB "[6] Список",13 |
||
56 | DB "[7] Файлер",13 |
||
57 | DB "[8] Комбобокс",13 |
||
58 | DB "[9] Asker",0 |
||
59 | |||
60 | MAINLGT |
||
61 | DB 0,2,16,1, 3 ;WIN |
||
62 | DB 0,3,16,1, 3 ;SPR-BUTTON |
||
63 | DB 0,4,16,1, 3 ;FLAG |
||
64 | DB 0,5,16,1, 3 ;SWITCH |
||
65 | DB 0,6,16,1, 3 ;SCROLLBAR |
||
66 | DB 0,7,16,1, 3 ;SLIDER |
||
67 | DB 0,8,16,1, 3 ;LIST |
||
68 | DB 0,9,16,1, 3 ;FILER |
||
69 | DB 0,10,16,1, 3 ;COMBO |
||
70 | DB 0,11,16,1, 3 ;ASKER |
||
71 | DB -1 |
||
72 | |||
73 | MAINHOT DB "0 |
||
74 | DW 0 |
||
75 | DB "1 |
||
76 | DW 1 |
||
77 | DB "2 |
||
78 | DW 2 |
||
79 | DB "3 |
||
80 | DW 3 |
||
81 | DB "4 |
||
82 | DW 4 ;"номер зоны" |
||
83 | DB "5" ;и |
||
84 | DW TEST5 ;прямой адрес перехода |
||
85 | DB "6" ;два способа |
||
86 | DW TEST6 |
||
87 | DB "7 |
||
88 | DW TEST7 |
||
89 | DB "8 |
||
90 | DW TEST8 |
||
91 | DB "9 |
||
92 | DW TEST9 |
||
93 | DB -1 |
||
94 | |||
95 | MAINJP DW TEST0 |
||
96 | DW TEST1 |
||
97 | DW TEST2 |
||
98 | DW TEST3 |
||
99 | DW TEST4 |
||
100 | DW TEST5 |
||
101 | DW TEST6 |
||
102 | DW TEST7 |
||
103 | DW TEST8 |
||
104 | DW TEST9 |
||
105 | |||
106 | ;Просто окно-------------------------------- |
||
107 | TEST0 |
||
108 | LD IX,JUSTWIN |
||
109 | CALL MAKEWIND |
||
110 | CALL NOKEY ;ждем нажатия |
||
111 | CALL WAITKEY ;и отпускания |
||
112 | REWIN CALL CLOSE ;новое окно |
||
113 | ;а старое не регистрируем |
||
114 | LD A,WIN_HEADER|WIN_MOVABLE|WIN_NOMODAL |
||
115 | JP PROGR |
||
116 | |||
117 | JUSTWIN DB 15,14,10,4,15 |
||
118 | DB 0 |
||
119 | DW JUSTTEXT |
||
120 | DW -1 |
||
121 | |||
122 | JUSTTEXT DB "Просто окно",13,13,"Hello world!",0 |
||
123 | |||
124 | ;Кнопка-спрайт------------------------ |
||
125 | TEST1 CALL WAITKEY |
||
126 | LD IX,SPRWIN |
||
127 | REMWIN CALL WINDOW |
||
128 | JR REWIN |
||
129 | |||
130 | SPRWIN DB 13,12,15,6,15 |
||
131 | DB 0 |
||
132 | DW SPRTXT |
||
133 | DW SPRACT |
||
134 | DW 0 |
||
135 | DW SPRSPR |
||
136 | DW -1 |
||
137 | |||
138 | SPRTXT DB "Кнопка-спрайт",13,13 |
||
139 | DB " <- С атрибутами",13,13 |
||
140 | DB "С подсветкой->",0 |
||
141 | SPRACT DB 1,2,2,2, ACT_ENA|ACT_PSH |
||
142 | DB 12,3,2,2, ACT_ENA|ACT_LGT|ACT_PSH |
||
143 | DB -1 |
||
144 | |||
145 | SPRSPR DB 1,2,2,2,3 |
||
146 | DW SPR1 |
||
147 | DB 12,3,2,2,1 |
||
148 | DW SPR2 |
||
149 | DB -1 |
||
150 | |||
151 | SPR1 DD #FFFE8002800281828382878281828182 |
||
152 | DD #8182818281828FF28FF28002FFFE0000 |
||
153 | DB 1,2,3,4 |
||
154 | |||
155 | SPR2 DD #FFFE8002800287E28C32803281E28302 |
||
156 | DD #86028C028C028FF28FF28002FFFE0000 |
||
157 | |||
158 | ;Флажки--------------------------------- |
||
159 | TEST2 |
||
160 | LD IX,FLGWIN |
||
161 | JP REMWIN |
||
162 | |||
163 | FLGWIN DB 12,10,13,6,15 |
||
164 | DB 0 |
||
165 | DW FLGTXT |
||
166 | DW FLGLGT |
||
167 | DW 0 |
||
168 | DW 0 |
||
169 | DW FLGFLG |
||
170 | DW -1 |
||
171 | |||
172 | FLGTXT DB "Флажки",13,13 |
||
173 | DB " С подсветкой",13 |
||
174 | DB " Просто флаг",13 |
||
175 | DB " Неактивный",0 |
||
176 | |||
177 | FLGLGT DB 1,2,11,1, ACT_ENA|ACT_LGT |
||
178 | DB 1,3,11,1, ACT_ENA |
||
179 | DB 1,4,11,1, 0 |
||
180 | DB -1 |
||
181 | |||
182 | FLGFLG DB 0,0 |
||
183 | DW 0 |
||
184 | DB 1,255 |
||
185 | DW 0 |
||
186 | DB 2,0 |
||
187 | DW 0 |
||
188 | DB -1 |
||
189 | |||
190 | ;Переключатели----------------------- |
||
191 | TEST3 |
||
192 | LD IX,SWTWIN |
||
193 | JP REMWIN |
||
194 | |||
195 | SWTWIN DB 12,10,12,10,15 |
||
196 | DB 0 |
||
197 | DW SWTTXT |
||
198 | DW SWTLGT |
||
199 | DW 0,0,0 |
||
200 | DW SWTSWT |
||
201 | DW -1 |
||
202 | |||
203 | SWTTXT DB "Переключатели",13,13 |
||
204 | DB " Флаг1.1",13 |
||
205 | DB " Флаг1.2",13 |
||
206 | DB " Флаг1.3",13,13 |
||
207 | DB " Флаг2.1",13 |
||
208 | DB " Флаг2.2",13 |
||
209 | DB " Флаг2.3",0 |
||
210 | |||
211 | SWTLGT DB 1,2,10,1, 3 |
||
212 | DB 2,3,9,1, 3 |
||
213 | DB 3,4,8,1, 3 |
||
214 | DB 1,6,10,1, 3 |
||
215 | DB 1,7,10,1, 3 |
||
216 | DB 1,8,10,1, 3 |
||
217 | DB -1 |
||
218 | |||
219 | SWTSWT DB 0,3,0 |
||
220 | DW 0 |
||
221 | DB 3,3,1 |
||
222 | DW 0 |
||
223 | DB -1 |
||
224 | |||
225 | ;Скроллбар------------------------ |
||
226 | TEST4 |
||
227 | LD IX,SLBWIN |
||
228 | JP REMWIN |
||
229 | |||
230 | SLBWIN DB 10,10,11,11,15 |
||
231 | DB 0 |
||
232 | DW SLBTXT |
||
233 | DW SLBLGT |
||
234 | DW 0 |
||
235 | DW SLBSPR |
||
236 | DW 0,0 |
||
237 | DW SLBSLB |
||
238 | DW -1 |
||
239 | |||
240 | SLBTXT DB "Скроллбары",0 |
||
241 | SLBLGT DB 9,2,1,8, ACT_ENA |
||
242 | DB -1 |
||
243 | |||
244 | SLBSPR DB 1,2,8,8,1 |
||
245 | SPRADR DW 0 |
||
246 | DB -1 |
||
247 | |||
248 | SLBSLB DB 0,8,255 |
||
249 | DW 0 |
||
250 | POSY DB 0 |
||
251 | DW UPDSPR |
||
252 | DB -1 |
||
253 | |||
254 | UPDSPR LD A,(POSY) |
||
255 | LD L,A |
||
256 | LD H,0 |
||
257 | ADD HL,HL,HL,HL,HL,HL |
||
258 | LD (SPRADR),HL |
||
259 | LD DE,#0102 |
||
260 | EX DE,HL |
||
261 | LD BC,#0808 |
||
262 | EXX |
||
263 | LD C,1 |
||
264 | EXX |
||
265 | JP PUT_SPRT |
||
266 | |||
267 | ;Слайдеры------------- |
||
268 | TEST5 LD IX,SLDWIN |
||
269 | JP REMWIN |
||
270 | |||
271 | SLDWIN DB 10,10,7,9,15 |
||
272 | DB 0 |
||
273 | DW SLDTXT |
||
274 | DW SLDLGT |
||
275 | DW 0,0,0,0,0 |
||
276 | DW SLDSLD |
||
277 | DW -1 |
||
278 | |||
279 | SLDTXT DB "Слайдеры",0 |
||
280 | |||
281 | SLDLGT DB 1,2,1,4, ACT_ENA |
||
282 | DB 3,2,1,4, ACT_ENA|ACT_LGT |
||
283 | DB 5,2,1,4, ACT_ENA |
||
284 | DB 1,7,4,1, ACT_ENA |
||
285 | DB -1 |
||
286 | |||
287 | SLDSLD DB 0,0,1 |
||
288 | DW 0 |
||
289 | DB 1,0,2 |
||
290 | DW 0 |
||
291 | DB 2,0,4 |
||
292 | DW 0 |
||
293 | DB 3,1,8 |
||
294 | DW 0 |
||
295 | DB -1 |
||
296 | |||
297 | ;Список------------- |
||
298 | TEST6 |
||
299 | LD IX,LSTWIN |
||
300 | JP REMWIN |
||
301 | |||
302 | LSTWIN DB 10,10,11,11,15 |
||
303 | DB 0 |
||
304 | DW LSTTXT |
||
305 | DW LSTLGT |
||
306 | DW 0,0,0,0,0,0 |
||
307 | DW LSTLST |
||
308 | DW -1 |
||
309 | |||
310 | LSTTXT DB "Список",0 |
||
311 | |||
312 | LSTLGT DB 1,2,8,8, ACT_ENA |
||
313 | DB -1 |
||
314 | |||
315 | LSTLST DB 0,8,20 |
||
316 | DW 0 |
||
317 | DB 0 |
||
318 | DW LSTDATA |
||
319 | DB 6 |
||
320 | DB -1 |
||
321 | |||
322 | LSTDATA DB "ITEM00" |
||
323 | DB "ITEM01" |
||
324 | DB "ITEM02" |
||
325 | DB "ITEM03" |
||
326 | DB "ITEM04" |
||
327 | DB "ITEM05" |
||
328 | DB "ITEM06" |
||
329 | DB "ITEM07" |
||
330 | DB "ITEM08" |
||
331 | DB "ITEM09" |
||
332 | DB "ITEM10" |
||
333 | DB "ITEM11" |
||
334 | DB "ITEM12" |
||
335 | DB "ITEM13" |
||
336 | DB "ITEM14" |
||
337 | DB "ITEM15" |
||
338 | DB "ITEM16" |
||
339 | DB "ITEM17" |
||
340 | DB "ITEM18" |
||
341 | DB "ITEM19" |
||
342 | |||
343 | ;FILER------------------ |
||
344 | TEST7 LD A,-1 |
||
345 | LD (REREAD),A |
||
346 | LD HL,FLRTAB |
||
347 | CALL FILER |
||
348 | CP -1 |
||
349 | JP Z,PROGR |
||
350 | LD HL,FILNAME |
||
351 | LD DE,STATTXT |
||
352 | LD BC,8 |
||
353 | LDIR |
||
354 | INC DE |
||
355 | LDI |
||
356 | LD DE,STRTTXT |
||
357 | LD HL,(FILEXT+1) |
||
358 | LD C,1 |
||
359 | CALL STR |
||
360 | LD DE,SIZTXT |
||
361 | LD A,(FILVOL) |
||
362 | LD C,0 |
||
363 | CALL STR |
||
364 | LD DE,LENTXT |
||
365 | LD HL,(FILLENG) |
||
366 | LD C,1 |
||
367 | CALL STR |
||
368 | CALL WAITKEY |
||
369 | LD IX,STATWIN |
||
370 | CALL MAKEWIND |
||
371 | CALL NOKEY |
||
372 | CALL WAITKEY |
||
373 | CALL CLOSE |
||
374 | JR TEST7 |
||
375 | |||
376 | FLRTAB DB "???",0 |
||
377 | |||
378 | STATWIN DB 12,12,10,7,15 |
||
379 | DB 0 |
||
380 | DW FILTXT |
||
381 | DW -1 |
||
382 | |||
383 | FILTXT DB "Файл:",13,13 |
||
384 | STATTXT DB "NONAME00.C",13 |
||
385 | DB "Start:" |
||
386 | STRTTXT DB "00000",13 |
||
387 | DB "Size:" |
||
388 | SIZTXT DB "000",13 |
||
389 | DB "Len:" |
||
390 | LENTXT DB "00000",0 |
||
391 | |||
392 | |||
393 | |||
394 | |||
395 | ;COMBO-------------------- |
||
396 | TEST8 LD A,15 |
||
397 | TEST8_ LD IX,CMBWIN |
||
398 | LD (IX+4),A |
||
399 | CALL WINDOW |
||
400 | CP -1 |
||
401 | JP Z,REWIN |
||
402 | ;выбрали комбо |
||
403 | LD HL,LSTDATA |
||
404 | LD DE,#0103 ;оконные координаты |
||
405 | CALL CAL_ABS ;в экранные |
||
406 | EX DE,HL |
||
407 | LD BC,#0408 ;размер |
||
408 | EXX |
||
409 | LD DE,#1406 ;параметры |
||
410 | EXX |
||
411 | LD A,H |
||
412 | LD H,L |
||
413 | LD L,A |
||
414 | XOR A |
||
415 | CALL COMBOBOX |
||
416 | CP -1 |
||
417 | JR Z,SKP |
||
418 | |||
419 | LD DE,6 ;А- номер |
||
420 | CALL MULT |
||
421 | LD DE,LSTDATA |
||
422 | ADD HL,DE ;адрес в списке |
||
423 | LD DE,CMBVAL |
||
424 | LD BC,6 |
||
425 | LDIR ;копируем в текст |
||
426 | CALL WAITKEY |
||
427 | SKP LD A,13 |
||
428 | JR TEST8_ |
||
429 | |||
430 | CMBWIN DB 10,10,11,4,15 |
||
431 | DB 0 |
||
432 | DW CMBTXT |
||
433 | DW CMBLGT |
||
434 | DW -1 |
||
435 | |||
436 | CMBTXT DB "Combobox",13,13,32 |
||
437 | CMBVAL DB "COMBO!",0 |
||
438 | |||
439 | CMBLGT DB 1,2,8,1, 3 |
||
440 | DB -1 |
||
441 | |||
442 | ;ASKER------ |
||
443 | TEST9 CALL WAITKEY |
||
444 | CALL ASKER |
||
445 | JP PROGR |
||
446 | |||
447 | SPEED DB 5 |
||
448 | SHOWDEL DB 255 |
||
449 | INCLUDE "COVER",65 |
||
450 | FREERAM |
||
451 | ORG 24576 |