﻿[08.03.2016 21:00:03] Koshi: FAT engine errors:
1 - long name is not valid (mkfile, mkdir)
2 - short name index fatality (mkfile, mkdir)
3 - long name already exists  (mkfile, mkdir)
4 - short name already exists (mkfile, mkdir)

8 - not found

16 - no free space

255 - unknown error


Исходники плагинов:
wild_player     - полноценный плагин WildPlayer'a (поддерживает плей листы m3u/ayl)
rom_writer      - полноценный плагин-прошиватель ПЗУ/виртПЗУ (в данный момент только 64к файлы)
mounter         - полноценный плагин-манунтилка/дизмаунтилка vDOS дисков
                  (маунтит TRD образы напрямую с FAT, SCL образы как RAM диск, rs232)
file_cr         - полноценный плагин-креатор файлов (File Creator)
gsplayer        - полноценный GS плеер, проигрывает MP3, MOD, WAV
video_pl        - экспериментальный плагин, Video Player
                  (пока-что может проигрывать видео 256 x 2,4,6,...,192)
bmpview         - BMP Viewer & Sprite Cutter. Поддерживает 8bit BMP до 512x512. Режет 16/256c спрайты!
ilbmview        - IFF/ILBM Viewer. предназначен для просмотра файлов в формате IFF/ILBM
multigigascreen - просмотрщик ZX экранов. в том числе гигаскринов, мультиколоров и мультигигаскринов
tapsna          - TAP mounter and SNA launcher. запускает SNA файлы и монтирует TAP на RAM диск
txt_editor      - текстовый редактор, вешается на F4 (если загружен)

PLUG01.ASM - пример плагина (стартовый плагин)
PLUG02.ASM - ещё один пример
PLUG03.ASM - пример с заголовком скринсейвера


Plug-in System version #07:
------------------------------------------------------
#6000-#6003 - номер страницы в соотв. окне
#6004 - ABT (флаг выставляется, если был нажат ESC)
#6005 - ENT (флаг выставляется, если был нажат ENTER)
#6009-#600A - TMN (переменная-таймер, инкрементится по инту)


Common information:
#6006 - точка доступа к функциям.
в A записывается номер функции которую нужно вызвать.
все остальные регистры указываются в описании функции!

вызов плагина производится простым CALL #8000
на входе в плагин передаётся:
      A - тип вызова:
          #00 - по расширению
          #01 - при загрузке плагина
          #02 - по таймеру
          #03 - из меню запуска плагинов
          #14 - по F4
[DE,HL] - длина файла в байтах
     BC - адрес где лежит имя открытого файла (только для типов #00 и #14!)
          (формат: name(1-255), 0(1))
     IX - адрес где находится структура активной панели

!при запуске плагина надо вызывать GEDPL (если нужно, чтобы появился основной тхт экран)
!т.к. при входе в плагин может быть любой экран!
!вызывать GEDPL лучше всего после анализа контента файла
!(когда убедились, что файл действительно подходит)

По выходу из плагина:
A=0 - просто выход
A=1 - файл не опознан, пусть забирают вьюверы/другой плагин
A=2 - перейти на следующий файл в каталоге
A=3 - перечитать каталог (не доступно из плагинов запущенных по таймеру)

------------------------------------------------------
Plug-in Header (512b):
Offset¦Len.¦Description
------+----+---------------------------
    +0¦  16¦reserved
------+----+---------------------------
   +16¦  16¦"WildCommanderMDL"
------+----+---------------------------
   +32¦   1¦Версия формата (#07)
------+----+---------------------------
   +33¦   1¦reserved
------+----+---------------------------
   +34¦   1¦Количество страниц
      ¦    ¦(которое будет выделено
      ¦    ¦плагину, в этой области
      ¦    ¦хранится сам плагин.)
      ¦    ¦часть страниц может быть
      ¦    ¦задействована исключительно
      ¦    ¦под буфер, который не будет
      ¦    ¦никем трогаться, даже после
      ¦    ¦выхода из плагина!
      ¦    ¦соотв. тут можно хранить
      ¦    ¦данные, которые могут
      ¦    ¦потребоваться при следующем
      ¦    ¦запуске плагина...
------+----+---------------------------
   +35¦   1¦номер страницы, которая
      ¦    ¦будет включаться в #8000!
      ¦    ¦(из области заданной в +34)
      ¦    ¦нумерация начинается от 0!
------+----+---------------------------
   +36¦ 2*6¦+0 - Номер страницы [от 0]
      ¦    ¦     (из области заданной
      ¦    ¦      в +34(1))
      ¦    ¦+1 - Размер блока (x512b)
      ¦    ¦     (данные блоки лежат
      ¦    ¦      следом за заголовком
      ¦    ¦      плагина)
------+----+---------------------------
   +48¦ 2*8¦reserved
------+----+---------------------------
   +64¦3*32¦блок расширений
      ¦    ¦"TXT", "WRD" и т.д.
------+----+---------------------------
  +160¦   1¦#00
------+----+---------------------------
  +161¦   4¦максимальный размер файла
      ¦    ¦(определяет, какие файлы
      ¦    ¦не нужно передавать)
------+----+---------------------------
  +165¦  32¦Имя плагина
------+----+---------------------------
  +197¦   1¦Тип условий при которых
      ¦    ¦должен вызываться плагин
------+----+---------------------------
  +198¦   6¦при +197(1)=#14:
      ¦    ¦содержит текст, который
      ¦    ¦будет выведен напротив
      ¦    ¦подсказки F4 ("Edit  ")
------+----+---------------------------
  +204¦ 308¦reserved
------+----+---------------------------

Условия вызова плагина (+197(1)):
#00 - только по расширению
#01 - сразу после загрузки плагина (только при загрузке по ENTER!)
#02 - по таймеру скринсейвера и из меню
#03 - из меню запуска
#14 - по F4
так же все плагины вызываются по расширению, если таковые указаны!
блок расширений можно забить нулями, когда не нужна инициация по расширениям.
------------------------------------------------------
Structure of Window (SOW):
Offset¦Len.¦Description
------+----+-------------------------
    +0¦   1¦0 - стандартное окно
      ¦    ¦1 - окно с заголовками и
      ¦    ¦    текстом
      ¦    ¦    (но без курсора)
      ¦    ¦2 - с курсором
------+----+-------------------------
    +1¦   1¦маска цвета курсора
------+----+-------------------------
    +2¦   1¦позиция окна X
    +3¦   1¦позиция окна Y
------+----+-------------------------
    +4¦   1¦ширина окна (Width)
    +5¦   1¦высота окна (Height)
      ¦    ¦ 0 = во весь экран
      ¦    ¦(0 заменяется на актуальное значение!)
------+----+-------------------------
    +6¦   1¦цвет окна (Paper+Ink)
------+----+-------------------------
    +7¦   1¦reserved (always=0!)
------+----+-------------------------
    +8¦   2¦адрес буфера, где лежит
      ¦    ¦информация из под окна
      ¦    ¦ #FFFF=при выводе окна
      ¦    ¦ буфер не используется!
      ¦    ¦ #0000=окно не выведено
------+----+-------------------------
   +10¦   1¦линия разделитель 1
   +11¦   1¦линия разделитель 2
      ¦    ¦если !=0 то выводим оную.
      ¦    ¦значение задает смещение
      ¦    ¦по вертикали с низу!
------+----+-------------------------
-------------------------------------
   +12¦   1¦позиция курсора в окне (от 1)
   +13¦   1¦нижний ограничитель
------+----+-------------------------
   +14¦   1¦цвет курсора (накладывается по маске из +1(1))
   +15¦   1¦цвет окна под курсором
------+----+-------------------------
для +0(1)=1:
-------------------------------------
   +12¦   2¦адрес строки для верхнего заголовка окна
------+----+-------------------------
   +14¦   2¦адрес строки для нижнего заголовка окна
------+----+-------------------------
   +16¦   2¦адрес строки/абзаца для вывода в окно
------+----+-------------------------
для +0(1)=2:
-------------------------------------
   +16¦   2¦адрес строки для верхнего заголовка окна
------+----+-------------------------
   +18¦   2¦адрес строки для нижнего заголовка окна
------+----+-------------------------
   +20¦   2¦адрес строки/абзаца для вывода в окно
------+----+-------------------------



Структура текстовой разметки (для функций TXTPR, MEZZ, PRWOW):

#FE,XXXX - линковка на строку, абзацы линковать бесполезно

#00 - конец строки и абзаца
#00,#00 - разделитель между сообщениями (только для MEZZ)
так же может быть разделителем и концом строки/абзаца одновременно!

#0B,XX - сдвиг вправо на XX символов
#0C,YY - сдвиг вниз на YY строк (не трогает цвета и X)
#0D - перенос строки, изменяет цвет текста на фоновый
#0E - центрирование строки, текущая позиция X сбрасывается!
(не работает если строка >= ширины окна, либо если есть линковка)

#09 - инверсия цвета (меняет папер и инк местами)

#01-08 цветовые коды, задается цвет для чернил
(1 - синий, 7 - белый, 8 - черный)

#01-#08,#01-#08 задание цветов папер+инк
(1 -черный, 8 - белый)
в случае, когда цвет чернил и бумаги одинаковый, то
выставляется фоновый папер с ярким инком!
(при этом: 1,1 - ярко синий, 7,7 - ярко белый)



Initialisations:
------------------------------------------------------
86¦INT_PL
  ¦i:A'
  ¦  #00 - disable all INT functions, while plugin running
  ¦  #01 - отключить обновление времени на TXT-экране
  ¦  #02 - отключить опрос PS/2 клавиатуры на прерываниях
  ¦
  ¦  #FF - включение и инициализация обработчика INT от плагина
  ¦        i:HL - адрес обработчика в плагине (#8000-#BFFE)
  ¦
  ¦по выходу из плагина все параметры восстанавливаются!
--+---------------------------------------------------

Main Functions:
------------------------------------------------------
 0¦MNGC_PL
  ¦включение страницы на #C000 (из выделенного блока)
  ¦нумерация совпадает с использующейся в +36
  ¦i:A' - номер страницы (от 0)
  ¦  #FF - страница с фонтом (1го текстового экрана)
  ¦  #FE - первый текстовый экран (в нём панели)
--+---------------------------------------------------
78¦MNG0_PL
  ¦включение страницы на #0000 (из выделенного блока)
  ¦i:A' - номер страницы (от 0)
  ¦не влияет на работу FAT драйвера, НО все структуры
  ¦которые будут подаваться файловым функциям, должны
  ¦лежать в адресах #8000-#FFFF!
--+---------------------------------------------------
79¦MNG8_PL
  ¦включение страницы на #8000 (из выделенного блока)
  ¦i:A' - номер страницы (от 0)
--+---------------------------------------------------
 1¦PRWOW
  ¦вывод окна на экран
  ¦(включает основной ТХТ экран в #C000)
  ¦i:IX - адрес по которому лежит структура окна (SOW)
--+---------------------------------------------------
 2¦RRESB
  ¦стирание окна (восстановление информации)
  ¦(включает основной ТХТ экран в #C000)
  ¦i:IX - SOW
--+---------------------------------------------------
 3¦PRSRW
  ¦(включает основной ТХТ экран в #C000)
  ¦печать строки в окне
  ¦i:IX - SOW
  ¦  HL - Text addres (должен быть в #8000-#BFFF!)
  ¦   D - Y
  ¦   E - X
  ¦  BC - Lenght
--+---------------------------------------------------
 4¦PRIAT
  ¦выставление цвета (вызывается сразу после PRSRW)
  ¦i:PRSRW - выставленные координаты и длина
  ¦     A' - цвет
--+---------------------------------------------------
 5¦GADRW
  ¦получение адреса в окне
  ¦(включает основной ТХТ экран в #C000)
  ¦i:IX - SOW
  ¦   D - Y
  ¦   E - X
  ¦o:HL - Address
--+---------------------------------------------------
 6¦CURSOR
  ¦печать курсора
  ¦i:IX - SOW
--+---------------------------------------------------
 7¦CURSER
  ¦стирание курсора (восстановление цвета)
  ¦i:IX - SOW
--+---------------------------------------------------
 8¦YN
  ¦меню ok/cancel
  ¦i:A'  
  ¦  #01 - инициализация (вычисляет координаты)
  ¦  #00 - обработка нажатий (вызывать раз в фрейм)
  ¦  #FF - выход
  ¦        o:NZ - выбран CANCEL
  ¦           Z - выбран OK
--+---------------------------------------------------
 9¦ISTR
  ¦редактирование строки, вывод индикации, опрос состояний
  ¦i:A'
  ¦  #FF - инициализация, тип 0 (рисует курсор)
  ¦        i:HL - адрес строки (на экране)
  ¦          DE - CURMAX+CURNOW (длина строки
  ¦                 + начальная позиция курсора в ней)
  ¦  #00 - опрос клавиатуры
  ¦        [опрашивает LF,RG,BackSpace,Delete,Insert,]
  ¦        [ctrl+shift...                            ]
  ¦        [собственно редактируется строка,]
  ¦        [нужно вызывать каждый фрейм     ]
  ¦  #01 - выход (стирает курсор)
  ¦        o:HL - адрес строки
  ¦
  ¦  #FD - инициализация, тип 2 (рисует курсор)
  ¦        i:HL - адрес строки (буфер)
  ¦          HL'- размер буфера
  ¦           D - Y внутри окна
  ¦           E - X внутри окна
  ¦          BC - CURMAX+CURNOW
  ¦              (размер окна вывода + позиц. курсора)
  ¦  #02 - вывод на экран блока из буфера с курсором
  ¦        (вызывать каждый фрейм, вместе с #00 и #03)
  ¦
  ¦  #FE - инициализация индикации
  ¦        (INS/OVR + ENG/RUS + CAPS)
  ¦        i: H - 0:выводить в верхнем заголовке окна
  ¦               1:выводить в нижнем заголовке окна
  ¦           L - reserved (#FF)
  ¦  #03 - обновление индикаторов (вывод)
  ¦
  ¦  #FC - опрос CAPS, INS, CTRL+SHIFT
  ¦        изменяет соотв. состояния, вызывать каждое
  ¦        прерывание.
  ¦        i:none
  ¦        o: A - состояния
  ¦                 [7]: %0 - INS
  ¦                      %1 - OVR
  ¦                 [6]: %0 - CAPS off
  ¦                      %1 - CAPS on
  ¦               [5-2]:reserved
  ¦               [1-0]:%00 - ENG
  ¦                     %01 - RUS
  ¦                     %10 - reserved
  ¦                     %11 - reserved
  ¦
  ¦после инициализации тип 0:
  ¦можно вызывать только #00, #01, а так же #FE+#03!
  ¦
  ¦после инициализации тип 2:
  ¦нужно вызывать #00 и #02 каждый фрейм
  ¦в #00 идет редактирование буфера и вывод курсора, а
  ¦по #02 идет вывод на экран текста, в область задан-
  ¦ную координатами XY и шириной=CURMAX.
  ¦так же можно вызывать #FE+#03
  ¦
  ¦недопустимо одновременно вызывать #00 и #FC!!!
--+---------------------------------------------------
10¦NORK
  ¦перевод байта в HEX (текстовый формат)
  ¦i:HL - Text Address
  ¦   A - Value
--+---------------------------------------------------
11¦TXTPR
  ¦вывод текста в окне
  ¦i:IX - SOW
  ¦  HL - адрес текста (строки/абзаца)
  ¦   D - Y (внутри окна)
  ¦   E - X (внутри окна)
  ¦
  ¦o: D - Y (след строка)
  ¦   E - X (без изменений)
--+---------------------------------------------------
12¦MEZZ
  ¦вывод сообщения в окне
  ¦i:IX - SOW
  ¦   A - номер сообщения/абзаца
  ¦  HL - адрес текстового блока с сообщениями
  ¦   D - Y (внутри окна)
  ¦   E - X (внутри окна)
  ¦
  ¦o: D - Y (след строка)
  ¦   E - X (без изменений)
--+---------------------------------------------------
84¦SCRLWOW
  ¦сдвинуть содержимое области в окне
  ¦i: D - Y
  ¦   E - X
  ¦   B - Height
  ¦   C - Width
  ¦   A'- [7]:%1 - with attributes
  ¦           %0 - chars only
  ¦       [6]:%1 - clear source side (after scroll)
  ¦           %0 - don't clear
  ¦     [5-2]:%0000 - 1 char step
  ¦           %1111 - 16 chars step
  ¦     [1-0]:%00 - scroll down
  ¦           %01 - up
  ¦           %10 - right (disabled)
  ¦           %11 - left (disabled)
  ¦
  ¦если координаты области и её размер позволяют использовать
  ¦DMA, то пересылка будет идти через неё.
  ¦также биты [7-2] должны быть в нуле!!!
--+---------------------------------------------------
13¦DMAPL
  ¦работа с DMA
  ¦i: A' - тип операции
  ¦#00 - инит S и D (BHL - Source, CDE - Destination)
  ¦#01 - инит S (BHL)
  ¦#02 - инит D (CDE)
  ¦#03 - инит S с пагой из окна (HL, B - 0-3 [номер окна])
  ¦#04 - инит D с пагой из окна (HL, B - 0-3 [номер окна])
  ¦#05 - выставление DMA_T (B - кол-во бёрстов)
  ¦#06 - выставление DMA_N (B - размер бёрста)
  ¦
  ¦#07 - выставить DMA_T+DMA_N (B - кол-во бёрстов, C - размер)
  ¦#08 - выставить SourceAlign (C - 0/1 off/on)
  ¦#09 - выставить DestinationAlign (C - 0/1 off/on)
  ¦#0A - выставить AlignSize (C - 0/1 16c/256c)
  ¦#0B - выставить AlignSize+Source+Destination
  ¦      i:E=0/1 (16c/256c Align)
  ¦        H=0/1 (off/on SourceAlign)
  ¦        L=0/1 (off/on DestinationAlign)
  ¦
  ¦#FC - запуск DMA RAM->RAM
  ¦#FB - запуск DMA BLT->RAM
  ¦#FA - запуск DMA FILL
  ¦#F9 - запуск DMA RAM->CRAM
  ¦#F8 - запуск DMA RAM->SFILE
  ¦
  ¦#FD - запуск DMA RAM->RAM без ожидания завершения (Align=0!)
  ¦#FE - запуск DMA RAM->RAM с ожиданием завершения (Align=0!)
  ¦#FF - ожидание готовности дма
  ¦
  ¦в функциях #00-#02 формат B/C следующий:
  ¦         [7]:%1 - выбор страницы из блока выделенного плагину (0-5)
  ¦             %0 - выбор страницы из видео буферов (0-63)
  ¦       [6-0]:номер страницы
--+---------------------------------------------------
14¦TURBOPL
  ¦i:B - выбор Z80/AY
  ¦  #00 - меняется частота Z80
  ¦        i:C - %00 - 3.5 MHz
  ¦              %01 - 7 MHz
  ¦              %10 - 14 MHz
  ¦              %11 - 28 MHz (в данный момент 14MHz)
  ¦  #01 - меняется частота AY
  ¦        i:C - %00 - 1.75 MHz
  ¦              %01 - 1.7733 MHz
  ¦              %10 - 3.5 MHz
  ¦              %11 - 3.546 MHz
--+---------------------------------------------------
15¦GEDPL
  ¦восстановление паллитры, всех оффсетов и txt режима
  ¦         !обязательно вызывать при запуске плагина!
  ¦                      (включает основной txt экран)
  ¦i:none
--+---------------------------------------------------


Keyboard:
если возвращает NZ, то клавиша нажата.
------------------------------------------------------
16¦SPKE (SPACE)
--+---------------------------------------------------
17¦UPPP (UP Arrow)
--+---------------------------------------------------
18¦DWWW (Down Arrow)
--+---------------------------------------------------
19¦LFFF (Left Arrow)
--+---------------------------------------------------
20¦RGGG (Right Arrow)
--+---------------------------------------------------
21¦TABK (Tab)
--+---------------------------------------------------
22¦ENKE (Enter)
--+---------------------------------------------------
23¦ESC
--+---------------------------------------------------
24¦BSPC (Backspace)
--+---------------------------------------------------
25¦PGU (pgUP)
--+---------------------------------------------------
26¦PGD (pgDN)
--+---------------------------------------------------
27¦HOME
--+---------------------------------------------------
28¦END
--+---------------------------------------------------
29¦F1
--+---------------------------------------------------
30¦F2
--+---------------------------------------------------
31¦F3
--+---------------------------------------------------
32¦F4
--+---------------------------------------------------
33¦F5
--+---------------------------------------------------
34¦F6
--+---------------------------------------------------
35¦F7
--+---------------------------------------------------
36¦F8
--+---------------------------------------------------
37¦F9
--+---------------------------------------------------
38¦F10
--+---------------------------------------------------
39¦ALT (не трогает авторепиты)
--+---------------------------------------------------
40¦SHIFT (не трогает авторепиты)
--+---------------------------------------------------
41¦CTRL (не трогает авторепиты)
--+---------------------------------------------------
42¦KBSCN
  ¦опрос клавиш
  ¦i:A' - обработчик
  ¦       #00 - учитывает SHIFT, CL, а так же ENG/RUS
  ¦             (можно вызывать только 1 раз в фрейм)
  ¦       #01 - всегда выдает код из TAIE1
  ¦             (можно вызывать несколько раз за фрейм)
  ¦
  ¦!KBSCN нужно вызывать до вызова опроса SHIFT и CTRL
  ¦
  ¦o: NZ: A - TAIE1/TAIE2/TAIR1/TAIR2 (see PS2P.ASM)
  ¦    Z: A=#00 - unknown key (also no chars)
  ¦       A=#FF - buffer end (impossibru!)
--+---------------------------------------------------
43¦DEL (Delete)
--+---------------------------------------------------
85¦INS (Insert)
--+---------------------------------------------------
44¦CAPS (Caps Lock)
--+---------------------------------------------------
45¦ANYK (any key)
--+---------------------------------------------------
46¦USPO
--+---------------------------------------------------
47¦NUSP (waiting for any key)
--+---------------------------------------------------


File Operations:
------------------------------------------------------
48¦LOAD512
  ¦потоковая загрузка файла
  ¦i:HL - Address
  ¦   B - Blocks (512b)
  ¦o:HL - New Value
  ¦   A - EndOfChain (#0F)
--+---------------------------------------------------
49¦SAVE512
  ¦потоковая запись файла
  ¦i:HL - Address
  ¦   B - Blocks (512b)
  ¦o:HL - New Value
  ¦   A - EndOfChain (#0F)
--+---------------------------------------------------
50¦GIPAGPL
  ¦позиционировать на начало файла
  ¦(сразу после запуска плагина оная уже вызвана)
--+---------------------------------------------------
51¦TENTRY
  ¦получить ENTRY(32) из коммандера
  ¦(структура как в каталоге FAT32)
  ¦i:    DE - Address
  ¦o:DE(32) - ENTRY
--+---------------------------------------------------
52¦CHTOSEP
  ¦разложение цепочки активного файла в сектора
  ¦i:DE - BUFFER (куда кидать номера секторов)
  ¦  BC - BUFFER END (=BUFFER+BUFFERlenght)
--+---------------------------------------------------
53¦TENTRYN
--+---------------------------------------------------
54¦TMRKDFL
  ¦получить заголовок маркированного файла
  ¦i:IX - Active panel!!!
  ¦  HL - File number (1-2047)
  ¦  DE - Address [#8000-#BFFF!]
  ¦       (if HL=0; o:BC - count of marked files)
  ¦  
  ¦o:NZ - File not found or other error
  ¦   Z - File name received ("name.ext",0)
  ¦      [так же делается позиционирование на начало
  ¦      [этого файла, если bit 7,H не в 1!!!
  ¦      [соотв. функции LOAD512/SAVE512 будут читать/
  ¦      [писать этот файл от начала.
--+---------------------------------------------------
55¦TMRKNXT
--+---------------------------------------------------
56¦
--+---------------------------------------------------
57¦STREAM
  ¦работа с потоками
  ¦i:D -     #FF: сделать активным root dir
  ¦          (более никаких параметров не учитывает)
  ¦
  ¦          #FE: клонировать поток из активной панели
  ¦          в потоки #01 и #02.
  ¦          Автоматически делается активным поток #01
  ¦          (никаких других параметров не учитывает)
  ¦
  ¦      #00/#01: номер потока, требует BC.
  ¦               i:B - устройство
  ¦                (0-SD(ZC),1-NemoMaster,2-NemoSlave)
  ¦                         (4-SmucMaster,5-SmucSlave)
  ¦                 C - раздел (не учитывается)
  ¦ BC=#FFFF: включает поток из D (не возвращает флагов)
  ¦BC<>#FFFF: создает/пересоздает поток.
  ¦
  ¦o:NZ - устройство или раздел не найдены
  ¦   Z - можно начинать работать с потоком
--+---------------------------------------------------
58¦FindNext
  ¦получение очередного имени файла/каталога
  ¦(сбрасывается после GDIR)
  ¦i:DE - Address
  ¦   A - [7]:%1 - only short names
  ¦     [6-5]:reserved
  ¦       [4]:%1 - enable created time field
  ¦       [3]:%1 - enable created date field
  ¦       [2]:%1 - enable size field
  ¦     [1-0]:%00 find next Entry
  ¦           %01 find next File
  ¦           %10 find next DIR
  ¦           %11 reserved
  ¦
  ¦o: Z - End Of Dir
  ¦  NZ - Buffer updated
  ¦  DE - [size(4)],
  ¦       [date(2)],
  ¦       [time(2)],
  ¦       flag(1),Entry Name(1-255),0
--+---------------------------------------------------
59¦FENTRY
  ¦поиск файла/каталога в активной директории
  ¦(так же можно подавать путь к файлу/каталогу)
  ¦i:HL - flag(1),name/path(1-255/1-XXX),#00
  ¦flag:#00 - file
  ¦     #10 - dir
  ¦name:"name.txt","directory"...
  ¦
  ¦o: Z - entry not found
  ¦  NZ - [DE,HL] - file length
  ¦       CALL GFILE/GDIR for activating file/dir
--+---------------------------------------------------
60¦LOAD256
  ¦функция используется видео плеером
--+---------------------------------------------------
61¦LOADNONE
  ¦пропустить N секторов
  ¦(параметры те же, что и в LOAD512)
--+---------------------------------------------------
62¦GFILE
  ¦выставить указатель на начало найденного файла
  ¦(вызывается после FENTRY!)
--+---------------------------------------------------
63¦GDIR
  ¦сделать найденный каталог активным
  ¦(вызывается после FENTRY!)
--+---------------------------------------------------
72¦MKfile
  ¦создание файла в активном каталоге
  ¦i:HL - flag(1),length(4),name(1-255),#00
  ¦
  ¦o:NZ - Operation failed
  ¦   Z - File created
  ¦        o:ENTRY(32) [use TENTRY]
  ¦   
  ¦[после создания файла происходит позиционирование
  ¦[на его начало!!!
--+---------------------------------------------------
73¦MKdir
  ¦создание каталога в активной директории
  ¦i:HL - name(1-255),#00
  ¦
  ¦o:NZ - Operation failed
  ¦   Z - Directory created
--+---------------------------------------------------
74¦REName
  ¦переименование файла/каталога
  ¦i:HL - flag(1),oldname(1-255),0
  ¦  DE - newname(1-255),0
  ¦
  ¦o: Z - not found or new name already exists
  ¦  NZ - success
--+---------------------------------------------------
75¦DelFl
  ¦удаление файла/каталога
  ¦i: HL - flag(1),name(1-255),#00
  ¦
  ¦o:  Z - File/DIR Not Found
  ¦   NZ - File/DIR Deleted
--+---------------------------------------------------



Graphics:
------------------------------------------------------
64¦MNGV_PL
  ¦включение видео страницы
  ¦i:A' - номер видео страницы
  ¦       #00 - основной экран (тхт)
  ¦             [паллитра выставляется автоматом]
  ¦             [как и все режимы и смещения    ]
  ¦       #01 - 1й видео буфер (16 страниц)
  ¦       #02 - 2й видео буфер (16 страниц)
  ¦       #03 - 3й видео буфер (16 страниц)
  ¦       #04 - 4й видео буфер (16 страниц)
--+---------------------------------------------------
65¦MNGCVPL
  ¦включение страницы из видео буферов на #C000
  ¦i:A' - номер страницы
  ¦       #00-#0F - страницы из 1го видео буфера
  ¦       #10-#1F - страницы из 2го видео буфера
  ¦       #20-#2F - страницы из 3го видео буфера
  ¦       #30-#3F - страницы из 4го видео буфера
--+---------------------------------------------------
80¦MNG0VPL
  ¦включение страницы из видео буферов на #0000
  ¦i:A' - номер страницы
  ¦нужно учитывать, что в адресах #2000-#7FFF находится
  ¦fat драйвер и ядро системы!
  ¦на время вызова функций, страница переключается, затем
  ¦всё восстанавливается как было...
  ¦
  ¦НЕДОПУСТИМО передавать какие-либо параметры, из
  ¦области #0000-#7FFF fat драйверу!!!
--+---------------------------------------------------
81¦MNG8VPL
  ¦включение страницы из видео буферов на #8000
  ¦i:A' - номер страницы
--+---------------------------------------------------
66¦GVmod
  ¦включение видео режима (разрешение+тип)
  ¦i:A' - видео режим
  ¦       [7-6]:%00 - 256x192
  ¦             %01 - 320x200
  ¦             %10 - 320x240
  ¦             %11 - 360x288
  ¦         [5]:%x - nogfx
  ¦         [4]:%x - notsu
  ¦         [3]:%0 - reserved
  ¦         [2]:%0 - reserved
  ¦       [1-0]:%00 - ZX
  ¦             %01 - 16c
  ¦             %10 - 256c
  ¦             %11 - txt
--+---------------------------------------------------
67¦GYoff
  ¦выставление смещения экрана по Y
  ¦i:HL - Y (0-511)
--+---------------------------------------------------
68¦GXoff
  ¦выставление смещения экрана по X
  ¦i:HL - X (0-511)
--+---------------------------------------------------
69¦GVtm
  ¦выставление страницы для TileMap
  ¦i:C - номер страницы из видео буфера (0-63)
--+---------------------------------------------------
70¦GVtl
  ¦выставление страницы для TileGraphics
  ¦i:B - номер тайло-плоскости (0-1)
  ¦  C - номер страницы из видео буфера (0-63)
--+--------------------------------------------------
71¦GVsgp
  ¦выставление страницы для SpriteGraphics
  ¦i:C - номер страницы из видео буфера (0-63)
--+---------------------------------------------------
