Blame | Last modification | View Log | Download | RSS feed | ?url?
;SAMPLE.H Пример программы, использующей оболочку.
;(C) Vitamin/CAIG/2001
;Опции проекта. Нужное раскомментировать, программа изменится
NOLOADFIL
NOSAVEFIL
NOMEMDRV
;Цвета
ACTCOLOR=40
ACTPCOLR=6
WINCOLOR=5
HDRCOLOR=48
;Память
CPAGE1=66
DISKBUF=#C000
LIST=DISKBUF+#900
LISTLEN=#600
NUMLIST=LIST+LISTLEN
;Файл макросов. ПОСЛЕ всех настроек
INCLUDE "MACROS",67
ORG 24576
;Главное окно
LD A,WIN_HEADER|WIN_REFRESH|WIN_MOVABLE|WIN_NOMODAL
PROGR
LD IX,MAINWIN
LD (IX+4),A
CALL WAITKEY
CALL WINDOW
CP -1
RET Z
LD HL,MAINJP
JP TAB_JP
MAINWIN DB 10,8,16,14
DB 15
DB 0
DW MAINTXT
DW MAINLGT
DW MAINHOT
DW -1
MAINTXT DB "Пример работы",13,13
DB "[0] Просто окно",13
DB "[1] Спрайт-кнопка",13
DB "[2] Флажки",13
DB "[3] Переключатели",13
DB "[4] Скроллбары",13
DB "[5] Слайдеры",13
DB "[6] Список",13
DB "[7] Файлер",13
DB "[8] Комбобокс",13
DB "[9] Asker",0
MAINLGT
DB 0,2,16,1, 3 ;WIN
DB 0,3,16,1, 3 ;SPR-BUTTON
DB 0,4,16,1, 3 ;FLAG
DB 0,5,16,1, 3 ;SWITCH
DB 0,6,16,1, 3 ;SCROLLBAR
DB 0,7,16,1, 3 ;SLIDER
DB 0,8,16,1, 3 ;LIST
DB 0,9,16,1, 3 ;FILER
DB 0,10,16,1, 3 ;COMBO
DB 0,11,16,1, 3 ;ASKER
DB -1
MAINHOT DB "0
DW 0
DB "1
DW 1
DB "2
DW 2
DB "3
DW 3
DB "4
DW 4 ;"номер зоны"
DB "5" ;и
DW TEST5 ;прямой адрес перехода
DB "6" ;два способа
DW TEST6
DB "7
DW TEST7
DB "8
DW TEST8
DB "9
DW TEST9
DB -1
MAINJP DW TEST0
DW TEST1
DW TEST2
DW TEST3
DW TEST4
DW TEST5
DW TEST6
DW TEST7
DW TEST8
DW TEST9
;Просто окно--------------------------------
TEST0
LD IX,JUSTWIN
CALL MAKEWIND
CALL NOKEY ;ждем нажатия
CALL WAITKEY ;и отпускания
REWIN CALL CLOSE ;новое окно
;а старое не регистрируем
LD A,WIN_HEADER|WIN_MOVABLE|WIN_NOMODAL
JP PROGR
JUSTWIN DB 15,14,10,4,15
DB 0
DW JUSTTEXT
DW -1
JUSTTEXT DB "Просто окно",13,13,"Hello world!",0
;Кнопка-спрайт------------------------
TEST1 CALL WAITKEY
LD IX,SPRWIN
REMWIN CALL WINDOW
JR REWIN
SPRWIN DB 13,12,15,6,15
DB 0
DW SPRTXT
DW SPRACT
DW 0
DW SPRSPR
DW -1
SPRTXT DB "Кнопка-спрайт",13,13
DB " <- С атрибутами",13,13
DB "С подсветкой->",0
SPRACT DB 1,2,2,2, ACT_ENA|ACT_PSH
DB 12,3,2,2, ACT_ENA|ACT_LGT|ACT_PSH
DB -1
SPRSPR DB 1,2,2,2,3
DW SPR1
DB 12,3,2,2,1
DW SPR2
DB -1
SPR1 DD #FFFE8002800281828382878281828182
DD #8182818281828FF28FF28002FFFE0000
DB 1,2,3,4
SPR2 DD #FFFE8002800287E28C32803281E28302
DD #86028C028C028FF28FF28002FFFE0000
;Флажки---------------------------------
TEST2
LD IX,FLGWIN
JP REMWIN
FLGWIN DB 12,10,13,6,15
DB 0
DW FLGTXT
DW FLGLGT
DW 0
DW 0
DW FLGFLG
DW -1
FLGTXT DB "Флажки",13,13
DB " С подсветкой",13
DB " Просто флаг",13
DB " Неактивный",0
FLGLGT DB 1,2,11,1, ACT_ENA|ACT_LGT
DB 1,3,11,1, ACT_ENA
DB 1,4,11,1, 0
DB -1
FLGFLG DB 0,0
DW 0
DB 1,255
DW 0
DB 2,0
DW 0
DB -1
;Переключатели-----------------------
TEST3
LD IX,SWTWIN
JP REMWIN
SWTWIN DB 12,10,12,10,15
DB 0
DW SWTTXT
DW SWTLGT
DW 0,0,0
DW SWTSWT
DW -1
SWTTXT DB "Переключатели",13,13
DB " Флаг1.1",13
DB " Флаг1.2",13
DB " Флаг1.3",13,13
DB " Флаг2.1",13
DB " Флаг2.2",13
DB " Флаг2.3",0
SWTLGT DB 1,2,10,1, 3
DB 2,3,9,1, 3
DB 3,4,8,1, 3
DB 1,6,10,1, 3
DB 1,7,10,1, 3
DB 1,8,10,1, 3
DB -1
SWTSWT DB 0,3,0
DW 0
DB 3,3,1
DW 0
DB -1
;Скроллбар------------------------
TEST4
LD IX,SLBWIN
JP REMWIN
SLBWIN DB 10,10,11,11,15
DB 0
DW SLBTXT
DW SLBLGT
DW 0
DW SLBSPR
DW 0,0
DW SLBSLB
DW -1
SLBTXT DB "Скроллбары",0
SLBLGT DB 9,2,1,8, ACT_ENA
DB -1
SLBSPR DB 1,2,8,8,1
SPRADR DW 0
DB -1
SLBSLB DB 0,8,255
DW 0
POSY DB 0
DW UPDSPR
DB -1
UPDSPR LD A,(POSY)
LD L,A
LD H,0
ADD HL,HL,HL,HL,HL,HL
LD (SPRADR),HL
LD DE,#0102
EX DE,HL
LD BC,#0808
EXX
LD C,1
EXX
JP PUT_SPRT
;Слайдеры-------------
TEST5 LD IX,SLDWIN
JP REMWIN
SLDWIN DB 10,10,7,9,15
DB 0
DW SLDTXT
DW SLDLGT
DW 0,0,0,0,0
DW SLDSLD
DW -1
SLDTXT DB "Слайдеры",0
SLDLGT DB 1,2,1,4, ACT_ENA
DB 3,2,1,4, ACT_ENA|ACT_LGT
DB 5,2,1,4, ACT_ENA
DB 1,7,4,1, ACT_ENA
DB -1
SLDSLD DB 0,0,1
DW 0
DB 1,0,2
DW 0
DB 2,0,4
DW 0
DB 3,1,8
DW 0
DB -1
;Список-------------
TEST6
LD IX,LSTWIN
JP REMWIN
LSTWIN DB 10,10,11,11,15
DB 0
DW LSTTXT
DW LSTLGT
DW 0,0,0,0,0,0
DW LSTLST
DW -1
LSTTXT DB "Список",0
LSTLGT DB 1,2,8,8, ACT_ENA
DB -1
LSTLST DB 0,8,20
DW 0
DB 0
DW LSTDATA
DB 6
DB -1
LSTDATA DB "ITEM00"
DB "ITEM01"
DB "ITEM02"
DB "ITEM03"
DB "ITEM04"
DB "ITEM05"
DB "ITEM06"
DB "ITEM07"
DB "ITEM08"
DB "ITEM09"
DB "ITEM10"
DB "ITEM11"
DB "ITEM12"
DB "ITEM13"
DB "ITEM14"
DB "ITEM15"
DB "ITEM16"
DB "ITEM17"
DB "ITEM18"
DB "ITEM19"
;FILER------------------
TEST7 LD A,-1
LD (REREAD),A
LD HL,FLRTAB
CALL FILER
CP -1
JP Z,PROGR
LD HL,FILNAME
LD DE,STATTXT
LD BC,8
LDIR
INC DE
LDI
LD DE,STRTTXT
LD HL,(FILEXT+1)
LD C,1
CALL STR
LD DE,SIZTXT
LD A,(FILVOL)
LD C,0
CALL STR
LD DE,LENTXT
LD HL,(FILLENG)
LD C,1
CALL STR
CALL WAITKEY
LD IX,STATWIN
CALL MAKEWIND
CALL NOKEY
CALL WAITKEY
CALL CLOSE
JR TEST7
FLRTAB DB "???",0
STATWIN DB 12,12,10,7,15
DB 0
DW FILTXT
DW -1
FILTXT DB "Файл:",13,13
STATTXT DB "NONAME00.C",13
DB "Start:"
STRTTXT DB "00000",13
DB "Size:"
SIZTXT DB "000",13
DB "Len:"
LENTXT DB "00000",0
;COMBO--------------------
TEST8 LD A,15
TEST8_ LD IX,CMBWIN
LD (IX+4),A
CALL WINDOW
CP -1
JP Z,REWIN
;выбрали комбо
LD HL,LSTDATA
LD DE,#0103 ;оконные координаты
CALL CAL_ABS ;в экранные
EX DE,HL
LD BC,#0408 ;размер
EXX
LD DE,#1406 ;параметры
EXX
LD A,H
LD H,L
LD L,A
XOR A
CALL COMBOBOX
CP -1
JR Z,SKP
LD DE,6 ;А- номер
CALL MULT
LD DE,LSTDATA
ADD HL,DE ;адрес в списке
LD DE,CMBVAL
LD BC,6
LDIR ;копируем в текст
CALL WAITKEY
SKP LD A,13
JR TEST8_
CMBWIN DB 10,10,11,4,15
DB 0
DW CMBTXT
DW CMBLGT
DW -1
CMBTXT DB "Combobox",13,13,32
CMBVAL DB "COMBO!",0
CMBLGT DB 1,2,8,1, 3
DB -1
;ASKER------
TEST9 CALL WAITKEY
CALL ASKER
JP PROGR
SPEED DB 5
SHOWDEL DB 255
INCLUDE "COVER",65
FREERAM
ORG 24576