Subversion Repositories zxusbnet

Rev

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