Subversion Repositories zxusbnet

Rev

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