[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) --+---------------------------------------------------