        MAIN "",134

CS      EQU #E3
SS      EQU #0E

; Буфер, адрес, сектор/дорожка, страница
; B = кол-во секторов

        MACRO EXLOAD
        LD HL,:0
        LD DE,:1
        LD IX,(:2)
        LD C,#05
        LD A,:3
        EX AF,AF'
        LD A,SL_BANK
        CALL GUI
        ENDM 

; Буфер, адрес, длина в байтах, страница
; B = кол-во секторов
; Запись файла

        MACRO EXSAVEF
        LD HL,:0
        LD DE,:1
        LD IX,:2
        LD C,11
        LD A,:3
        EX AF,AF'
        LD A,SL_BANK
        CALL GUI
        ENDM 

        MACRO RestSpp
        DI 
        LD SP,(Spp)
        EI 
        ENDM 

        MACRO HLFHL
        LD A,(HL)
        INC HL
        LD H,(HL)
        LD L,A
        ENDM 

        MACRO DEFHL ;МАКРОС LD DE,(HL)
        LD E,(HL)
        INC HL
        LD D,(HL)
        ENDM 

        MACRO DEFHL1 ;LD DE,(HL):INC HL
        LD E,(HL)
        INC HL
        LD D,(HL)
        INC HL
        ENDM 

        MACRO Amul8
        ADD A,A
        ADD A,A
        ADD A,A
        ENDM 

        MACRO CPHL0
        LD A,H
        OR L
        ENDM 

        MACRO DHL_
        INC H
        LD A,H
        AND #07
        JR NZ,$+12
        LD A,L
        SUB #E0
        LD L,A
        JR NC,$+6
        LD A,H
        SUB #08
        LD H,A
        ENDM 

        MACRO HL0
        AND A
        SBC HL,HL
        ENDM 

; Constants of GUI

RadioOn  EQU 1              ; радио-кнопка вкл.
RadioOff EQU 2              ; радио-кнопка вык.
SwchOn   EQU 3              ; флажок вкл.
SwchOff  EQU 4              ; флажок вык.
Nil      EQU 0              ; отсутстивие значения (ноль)
NEWCAT   EQU #FFFF-#0800    ; полный каталог
CAT      EQU NEWCAT-#0900   ; сортированный список каталога

; Main variable of GUI

Numb    DEFB 0    ; Номер выбранной подсветки
But     DEFB 0    ; Номер выбранной кнопки
DIRECT  DEFB 0
MDIRECT DEFB 0
ARW_X   DEFB 127  ;нач.
ARW_Y   DEFB 95   ;  коорд. стр.
ARW_XC  DEFB 0    ;а здеся в знакомствах
ARW_YC  DEFB 0    ;
ARWXMN  DEFB 0    ;x мин.
ARWXMX  DEFB 255  ;x макс.
ARWYMN  DEFB 0    ;y мин.
ARWYMX  DEFB 191  ;y макс.
XPLACE  DEFW 22528
ARW_ADR DEFW ARWSPR
STEP    DEFB 6
LEVEL   DEFB 10
SPEED   DEFB 1
ARWSPR  DB 63,0,15,64,131,48,129,44
        DB 193,16,193,20,224,2,252,0
        DB 255,0,255,0
KJOY    DB 0 ; KEMPSTON JOY

; Main variable of ListBox

SpAdr    DW 0    ; адрес начала списка
SpAdrT   DW 0    ; адрес начала видиммого списка
SpLen    DW 0    ; длина полного заголовка списка
SpLenW   DW 0    ; длина заголовка визуального списка
SpLenD   DW 0    ; длина заголовка вместе с доп. текстом
SpDop    DW 0    ; адрес процедуры дополнения списка
SpBar    DB 0    ; длина подсветки
SpFiler  DB 0    ; это файлер?
SpXY     DW 0    ; X,Y списка в окне
SelSp    DB 0    ; номер элемента из списка
SpDop2   DW 0    ; дополнение текста уже после списка
TAB_SORT DW 0    ; таблица сортировки


; Main Constants of TRDOS

LAST_KEY   EQU 23560
FILE_PARAM EQU #5CDD
FILE_NAME  EQU #5CDD
FILE_TYPE  EQU #5CE5
START_ADR  EQU #5CE6
BYTES_LEN  EQU #5CE8
SEC_LEN    EQU #5CEA
START_SEC  EQU #5CEB
START_TRK  EQU #5CEC
TEK_SEC    EQU #5CF4
TEK_TRK    EQU #5CF5

; Main variable of FDOS

Spp       DW 0         ; адрес стека, для выхода при ошибке
MODE      DB #00       ; Флаг турбо драйвера
RECAT     DB 0         ; Перечитывать ли каталог после записи
RAMDR     DB 2         ; Диск для #3D13
OVERF     DB 0
ResAdr    DW 0         ; адрес резидента
END_DISK  DW 0         ; последние трек/сектор диска

; Disk constants

All_File EQU 228
Free_Sec EQU 229
End_Disk EQU 225

; ReadKey variable

KEYS
KEY1    DB 0
KEY2    DB 0

; Mouse variable
FIRE    DB 0
CANCEL  DB 0

SPACE   DEFS 51
BRK     DB 0          ; %001 - огонь
                      ; %010 - отмена
                      ; %100 - мыша
                      ; %000 - halt

FREE_SEC        DW 0  ; свободно секторов на диске
ALL_FILE        DW 0  ; всего файлов на диске

; Эти переменные настраиваются после вызова LOAD_CAT, который,
; в свою очередь, вызывают дисковые функции GUI (файлер,
; запись файла, четение файла с чтением заголоквка...)
; END_DISK      последний трек/сектор диска
; FREE_SEC      свободно секторов на диске
; ALL_FILE      всего файлов на диске

MICE            DB 0      ; мыша
MB              DB 0      ; реверс

