Initial commit

This commit is contained in:
2026-08-31 21:04:48 +03:00
commit c0d5110ea7
347 changed files with 57952 additions and 0 deletions
+787
View File
@@ -0,0 +1,787 @@
[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)
--+---------------------------------------------------