/* last update: 20.08.2019 savelij */
 
 
 
#define HDD_MASTER                      0
 
#define HDD_SLAVE                       1
 
 
 
// нумерация устройств
 
#define _FDD_A                          0
 
#define _FDD_B                          1
 
#define _FDD_C                          2
 
#define _FDD_D                          3
 
#define _HDD_NEMO_MASTER                4
 
#define _HDD_NEMO_SLAVE                 5
 
#define _HDD_SMUC_MASTER                6
 
#define _HDD_SMUC_SLAVE                 7
 
#define _HDD_DIVIDE_MASTER              8
 
#define _HDD_DIVIDE_SLAVE               9
 
#define _HDD_PROFI_MASTER               0x0A
 
#define _HDD_PROFI_SLAVE                0x0B
 
#define _HDD_TURBO2_MASTER              0x0C
 
#define _HDD_TURBO2_SLAVE               0x0D
 
#define _SD_SDG                         0x0E
 
#define _SD_SDZ                         0x0F
 
#define _SL_USBF                        0x10
 
 
 
 
 
// номера функций RST 8
 
#define _AY_PRN_INIT                    0x40
 
#define _AY_PRN_A_                      0x41
 
#define _AY_PRN_TOKEN                   0x42
 
#define _AY_PRN_SCR                     0x43
 
#define _TAPE_INIT                      0x44
 
#define _TAPE_EMUL                      0x45
 
#define _WINW                           0x46
 
#define _PRINT_MESSAGE                  0x47
 
#define _PRINT_A                        0x48
 
#define _SCROLL_UP                      0x49
 
#define _SCROLL_DOWN                    0x4A
 
#define _SET_MODE                       0x4B
 
#define _MATH                           0x4C
 
#define _VERSION                        0x4D
 
 
 
#define _BIOS                           0x4F
 
#define _COM_DEV                        0x50
 
#define _COM_FAT                        0x51
 
#define _SORT_FINDFILES                 0x52
 
#define _MOUNTER                        0x53
 
#define _INST_FATBOOT                   0x54
 
#define _CMOS_RW                        0x55
 
#define _SETUP_PAL                      0x56
 
#define _SETUP_FONT                     0x57
 
 
 
// функции изменения режимов работы
 
#define _ZXSCR_MODE                     0x03    // %00000001    ;ZX SCREEN
 
#define _TXTSCR_MODE                    0x06    // %00000010    ;TXT SCREEN
 
#define _TURBO_LOW                      0x10    // %00010000    ;TURBO 3,5 MHZ
 
#define _TURBO_HIGH                     0x20    // %00100000    ;TURBO 7,0 MHZ
 
#define _TURBO_MAX                      0x30    // %00110000    ;TURBO 14,0 MHZ
 
#define _MEM_MODE_48                    0x40    // %01000000    ;MEMORY MODE 48 KB
 
#define _MEM_MODE_128                   0x80    // %10000000    ;MEMORY MODE 128 KB
 
#define _MEM_MODE_PENT                  0xC0    // %11000000    ;MEMORY MODE PENT 1024 KB
 
 
 
#define _SET_VIDEOMODE                  0x08    // для включения при установке видео режима
 
 
 
// функции деления, умножения, преобразования числа в текст
 
#define _DIVIDE16                       0x00
 
#define _MULTIPLY16                     0x01
 
#define _DIVIDE32                       0x02
 
#define _MULTIPLY32                     0x03
 
#define _HEX4DECTXT                     0x04
 
#define _HEX2DECTXT                     0x05
 
#define _HEX1DECTXT                     0x06
 
 
 
// функции работы с CMOS
 
#define _INIT_CMOS                      0x00
 
#define _READ_CMOS                      0x01
 
#define _WRITE_CMOS                     0x02
 
#define _CLEAR_CMOS                     0x03
 
 
 
// функции монтировщика образов
 
#define _OPEN_MOUNT                     0x00    // монтирование образа
 
#define _RDWR_MOUNT                     0x01    // чтение/запись примонтированных образов
 
#define _FIND_MOUNTED                   0x02    // поиск монтируемых образов прописанных в IMAGE.FNT
 
#define _GET_MOUNTED                    0x03    // получение буфера описателей примонтированных образов
 
#define _CLOSEMOUNT                     0x04    // демонтирование образа
 
#define _LOADIMAGE                      0x05    // загрузка образа в рамдиск
 
#define _REST_NAMELOAD                  0x06    // получение описателя файла загруженного в рамдиск
 
#define _CMP_DRIVE                      0x07    // проверка примонтированного образа на указанной букве
 
#define _GET_VIRT_BITS                  0x08    // получение битов смонтированных дисков
 
#define _MOUNT_RAMDISK                  0x09    // монтирование рамдиска
 
 
 
// номера функций менеджера устройств
 
#define _DEVFIND                        0x00    // поиск устройств
 
#define _SET_VOL                        0x01    // выбор раздела
 
#define _KOL_VOL                        0x02    // запрос найденого
 
#define _GET_FNDVOLUME                  0x03    // получить таблицу найденных разделов
 
#define _TO_DRV                         0x04    // вызов драйвера выбранного устройства
 
#define _SET_DEVICE                     0x05    // установка битов устройства и lba режима
 
#define _CONTROL_SD                     0x06    // контроль наличия sd карт
 
#define _COMHDDN                        0x07    // прямой вызов драйвера hdd nemo
 
#define _FREINIT_VOL                    0x08    // полная переинициализация раздела
 
 
 
// номера функций вызова драйвера устройства
 
#define _DEV_INIT                       0x00    // ПОИСК И ИНИЦИАЛИЗАЦИЯ УСТРОЙСТВА
 
#define _DEV_STATUS                     0x01    // запрос статуса устройства. пока заглушена
 
#define _DEV_READ                       0x02    // чтение секторов
 
#define _DEV_WRITE                      0x03    // запись секторов
 
#define _DEV_READID                     0x04    // чтение ID сектора
 
 
 
// номера вызываемых функций FAT драйвера
 
#define _INIT_FATVARS                   0x00    // инициализация переменных FAT
 
#define _READ_DIR                       0x01    // получение описателя файла
 
#define _ENTER_DIR                      0x02    // вход/выход в дириректорию
 
#define _GET_PATH                       0x03    // получение текущего пути
 
#define _GET_LONGNAME                   0x04    // получение длинного имени файла
 
#define _FIND_NAME                      0x05    // поиск по имени
 
#define _FIND_FILEITEM                  0x06    // поиск всех описателей с выдачей номеров найденного
 
#define _SET_MASK_EXT                   0x07    // установка маски расширений для поиска
 
#define _OPEN_FILE                      0x08    // открытие файла
 
#define _READ_FILE                      0x09    // последовательное чтение открытого файла
 
#define _INIT_TEKDIR                    0x0A    // создание таблицы кластеров текущей директории
 
#define _POS_FILES                      0x0B    // работа с текущей позицией
 
 
 
// подфункции функции _POS_FILES
 
#define _POSTF00                        0x00    // сохранение текущей позиции файла
 
#define _POSTF01                        0x01    // восстановление текущей позиции файла
 
#define _POSTF02                        0x02    // сброс текущей позиции в 0 и поиск первой "легальной" записи
 
#define _POSTF03                        0x03    // перемотать на "B" файлов назад
 
#define _POSTF04                        0x04    // перемотать на "B" файлов вперед
 
#define _POSTF05                        0x05    // подсчет количества "легальных" записей
 
#define _POSTF06                        0x06    // установить номер "легальной" записи из "BC"
 
#define _POSTF07                        0x07    // вернуть в "BC" текущий номер "легальной" записи
 
 
 
// номера поддерживаемых расширений для RST 8
 
// "TRDSCLFDITAPSPG$C FNTBMPROM"        ;RST 8
 
// "TRDSCLFDITAPSPG$C BMPSNA"           ;MAINMENU
 
#define _TRD                            0x01    // TRD
 
#define _SCL                            0x02    // SCL
 
#define _FDI                            0x03    // FDI
 
#define _TAP                            0x04    // TAP
 
#define _SPG                            0x05    // SPG
 
#define _HOB                            0x06    // $C
 
#define _FNT                            0x07    // FNT
 
#define _BMP                            0x08    // BMP
 
#define _ROM                            0x09    // ROM
 
//#define _HOB1                         0x0A    // $??
 
//#define _HOB2                         0x0B    // !??
 
 
 
// внутренние номера типов разделов
 
#define _NO_INIT                        0x00
 
#define _FAT12                          0x01    // 00 = 01              FAT12
 
#define _FAT16                          0x02    // 01 = 04,06,0E        FAT16
 
#define _FAT32                          0x03    // 02 = 0B,0C           FAT32
 
#define _TRDOS                          0x04    // TR-DOS диск
 
#define _UNKNOWN                        0x05    // файловая система еще не определена или неизвестна
 
 
 
// описатели для рисования окна
 
#define _X_COORD                        0x00
 
#define _Y_COORD                        0x01
 
#define _V_SIZE                         0x02
 
#define _H_SIZE                         0x03
 
#define _COLOR_WIN                      0x04
 
#define _COLOR_CUR                      0x05
 
#define _FLAGS                          0x06
 
#define _NUM_PKT                        0x07
 
#define _TEK_PKT_L                      0x08
 
#define _TEK_PKT_H                      0x09
 
#define _NUM_KOL_L                      0x0A
 
#define _NUM_KOL_H                      0x0B
 
#define _ADR_TXT_L                      0x0C
 
#define _ADR_TXT_H                      0x0D
 
#define _ADR_PRG_L                      0x0E
 
#define _ADR_PRG_H                      0x0F
 
#define _ADR_MOUSE_L                    0x10
 
#define _ADR_MOUSE_H                    0x11
 
#define _ADR_HOTKEY_L                   0x12
 
#define _ADR_HOTKEY_H                   0x13