Page 1 of 2
TS-Bios FAT driver
Posted:
Sat, 15.12.2012 23:24:32
by Koshi
Доступ к функционалу осуществляется через
RST16. Номер функции задается в регистре A.
Основные функции:.потоковая запись/чтение
.поиск и открытие файла/каталога (игнорирует регистр, понимает имена типа: "a.txt")
.создание файла/каталога
.удаление файла/каталога (каталог должен быть пустым!)
.работа с потоками (пока-что только один поток)
Документация:TS-Bios FAT EngineПример использования:example1.asmBIOS под конфиг от TS-Labs:TS-Bios -
64кб ROM файл. шить в 0й блок из
ROM_PROG или как
Custom ROM из
ERSTS-Bios-gluk -
версия с GLUK'ом вместо Basic128TS-Bios-qc311 -
версия с Quick Commander вместо Basic128TS-Bios-rc196 -
версия с Real Commander вместо Basic128P.S. задаём вопросы, если что-то не понятно. баг-репорты и пожелания тоже приветствуются.
Re: TS-Bios FAT driver
Posted:
Sat, 15.12.2012 23:31:21
by TS-Labs
Во всех функциях драйвера используется ДМА, ибо скорость и ниибёт, но в связи с этим небольшое ограничение: все адреса должны быть чётные. Алсо, вся работа происходит по физическим адресам (в формате ДМА), т.е. никакие #4000 не канают. Чтоб загрузить ебанутэ синклероадрес 0х4000 надо указать значение 0х050000, т.е. 5-я пага, 0-й оффсет. Take it or leave it.
Сделано так, чтоб не раздувать код сотнями чекеров и не проебывать скорость.
Re: TS-Bios FAT driver
Posted:
Sat, 15.12.2012 23:41:07
by amixgris
TS-Labs wrote:все адреса должны быть чётные
Правильное решеееение...
Нечентые адреса нафиг не нужны для загрузки с внешних носителей.
Кто скорбит по ним, тот ламер, пусть пойдёт и убьётся головой об стену!
Re: TS-Bios FAT driver
Posted:
Sun, 16.12.2012 22:06:02
by Koshi
апдейт FAT драйвера:
.добавлены защиты в функции чения/записи (от неправильных оффсетов)
.доработана функция удаления файла/каталога (увеличена скорость работы и исправлены статусы на выходе)
.уменьшен размер драйвера до 4033 байт
P.S. все ссылки в первом посте
Re: TS-Bios FAT driver
Posted:
Mon, 17.12.2012 00:03:31
by N_S
сырцыдровзасекреченыесть?
Re: TS-Bios FAT driver
Posted:
Fri, 01.03.2013 17:27:51
by shurik-ua
в MKDIR и MKFILE hl должен по идее указывать на структуру FES+1, потому как сама функция указывает что это будет файл или каталог.
из пожеланий: из MKFILE убрать длину создаваемого файла, и добавить функции:
1. дописать к файлу стока-то байт оттуда-то ) и
2. прочитать из файла стока-то байт туда-то
P.S. кстати есть уже проги которые его (драйвер) юзают?, WC смотрел вроде не эзает )
Re: TS-Bios FAT driver
Posted:
Tue, 27.08.2013 18:17:54
by Koshi
небольшой багфикс: на выходе из функций выживали только флаги ТТ
P.S. ссылки на ROMы в первом посте!
Re: TS-Bios FAT driver
Posted:
Tue, 27.08.2013 18:26:56
by Koshi
rrurrer wrote:в MKDIR и MKFILE hl должен по идее указывать на структуру FES+1, потому как сама функция указывает что это будет файл или каталог.
про
MKdir очепятко, там указывается тупо dirname без флага.
а вот в
MKfile таки флаг учитывается - тупо прописывается в ентри.
Re: TS-Bios FAT driver
Posted:
Fri, 20.09.2013 13:43:07
by shurik-ua
как должен выглядеть FES и что должно быть в регистре А перед вызовом драйвера чтобы выйти на директорию вверх ?
пробовал разные комбинации:
FES:
db 0x10,"..",0
или
db 0x10,".. ",0
с первым байтом и без, с регистром А = 0x10 или 0x11
везде выдаёт ошибку "1" - entry not found
ЧЯДНТ ?
P.S. из корневой папки в любую выбранную директорию входит нормально, а вот назад не получается )
Re: TS-Bios FAT driver
Posted:
Fri, 20.09.2013 14:15:01
by LessNick
Боюсь, что и не получится. Я лично сохраняю путь, где мы находимся "/dir1/dir2/dir3/dir4" и когда надо вернутся, сбрасываю на root, и прохожу ещё раз, на уже на директорию меньше "/dir1/dir2/dir3/"Нет, стрындел :) Всё работает. Но я работаю с API WC, так что в драйвере может косяк?
Дядьку, а может стоит попробовать вот так (8+3)?
- Code: Select all
;0123456789AB
db 0x10,".. ",0
Re: TS-Bios FAT driver
Posted:
Fri, 20.09.2013 17:47:12
by Koshi
структура FES не должна попадать в область #8000-#BFFF, как вариант (косяк оный вскоре поправлю).
плюс не уверен, что фильтр пропустит "..", надо проверить ТТ
Re: TS-Bios FAT driver
Posted:
Fri, 20.09.2013 20:08:50
by shurik-ua
Разобрался )
я не делал вызов функции SETDIR - после того как добавил вызов этой функции всё заработало как надо.
кстати имхо логичнее чтобы она вызывалась автоматически, после вызова функции FENTRY при FES описывающем dir ))
Koshi wrote:структура FES не должна попадать в область #8000-#BFFF
у меня не пентева, поэтому я выпилил из драйвера всё что касается аппаратных примочек пентевы - кстати размер:
> Size of FAT is: 0x0ACA, 2762
> Size of FAT BUFFERS is: 0x1611, 5649
пользуюсь версией полугодовой давности, судя по дате поста №5, возможно сейчас уже не актуально.
P.S.
breeze wrote:Дядьку, а может стоит попробовать вот так (8+3)?
как выяснилось оно работает с любым количеством пробелов )
Re: TS-Bios FAT driver
Posted:
Fri, 20.09.2013 21:42:41
by LessNick
rrurrer wrote:кстати имхо логичнее чтобы она вызывалась автоматически,…
Не логично! мне например нужно прочитать содержимое каталога, я его «ищу», а зачем читаю как файл!
Re: TS-Bios FAT driver
Posted:
Fri, 20.09.2013 21:59:07
by shurik-ua
так ведь "прочитать содержимое каталога" это и есть "читать как файл", не знаю как там в WC API, но здесь это именно так.
Хотя возможно у меня просто устаревшая версия.
Re: TS-Bios FAT driver
Posted:
Thu, 26.09.2013 17:29:35
by amixgris
breeze wrote:Но я работаю с API WC, так что в драйвере может косяк?
Воооот.
Драйвер для wc и драйвер в ПЗУ - две большие разницы.
ПЗУшный не-ра-бо-та-ет, так что не питайте надежд. Сам жду - не дождусь, когда Коши всё исправит.
Re: TS-Bios FAT driver
Posted:
Sat, 28.09.2013 21:08:42
by shurik-ua
Нет ну ПЗУ'шный работает кое-как, запись не проверял - но файлы читает. Единственное что не совсем понятно назначение функции SETDIR, может автор просветит нас ))
Koshi wrote:.работа с потоками (пока-что только один поток)
В принципе драйвер и сейчас можно юзать, но если сделать хотя-бы 2 потока (а лучше чтоб в опциях компиляции можно было указать), то больше ничего и не нужно для полного счастья (разве что LFN ).
Re: TS-Bios FAT driver
Posted:
Sun, 12.03.2017 19:48:11
by Grey
Koshi wrote:Документация:
TS-Bios FAT Engine
Дико извиняюсь, может я по ошибке не туда попал? 4 года тему ни кто не трогал и тут вот он я. Но где, собственно, документация по функциям BIOS ? Как то не хочется черз порты самому SD карту читать и тем более писать.
И что такое WC API, а то может я вообще не с той стороны копаю и есть уже, что то более функциональное и стандартизированное ?
Re: TS-Bios FAT driver
Posted:
Sun, 12.03.2017 19:59:15
by Koshi
Grey wrote:Дико извиняюсь, может я по ошибке не туда попал? 4 года тему ни кто не трогал и тут вот он я. Но где, собственно, документация по функциям BIOS ? Как то не хочется черз порты самому SD карту читать и тем более писать.
поправил ссылки, с гуглокода остались старые...
Grey wrote:И что такое WC API, а то может я вообще не с той стороны копаю и есть уже, что то более функциональное и стандартизированное ?
апи доступное для плагинов из вц, полный функционал тока там.
в роме апи давно не менялось, плюс есть ряд ограничений...
Re: TS-Bios FAT driver
Posted:
Sun, 12.03.2017 20:19:40
by Grey
Спасибо.
А в будущем не планируется в WC доступ к API из приложений? Чем в принципе плагин от приложения отличается - пусть WC будет в качестве OS
Re: TS-Bios FAT driver
Posted:
Mon, 13.03.2017 05:51:18
by SfS
По-хорошему, от WC надо отделить работу с файлами в виде отдельного ФАТ-драйвера, чтобы можно было использовать этот фат-драйвер как самостоятельную сущность.
Это было бы самое оно. Тогда, заменив драйвера устройств на не-DMAшные можно было бы работать с фат хоть на спеке128, хоть на фениксе, а не только на Pentevo. Так сказать, кросс-плотформенность:)
Re: TS-Bios FAT driver
Posted:
Mon, 13.03.2017 10:36:23
by VBI
SfS, does WC needs to be subdivided?
всё это замечательно, в теории
Re: TS-Bios FAT driver
Posted:
Mon, 13.03.2017 13:16:01
by WBC
SfS wrote:По-хорошему, от WC надо отделить работу с файлами в виде отдельного ФАТ-драйвера, чтобы можно было использовать этот фат-драйвер как самостоятельную сущность.
Категорически плюсую!
все же 4мб для SPG - не так уж и много, если делать достаточно серьезный прод с кучей ресурсов, то логичнее организовать подгрузки стандартным интерфейсом, а не возить за собой кучу драйверов.
Re: TS-Bios FAT driver
Posted:
Mon, 13.03.2017 15:56:30
by psb
SfS wrote:Это было бы самое оно. Тогда, заменив драйвера устройств на не-DMAшные можно было бы работать с фат хоть на спеке128
а чем fatfs не устраивает? работает даже на тостере, всё поддерживает, апи прямее некуда. единственный аргумент за драйвер коши - скорость и дма (хотя цифр я так и не увидел).
Re: TS-Bios FAT driver
Posted:
Mon, 13.03.2017 17:40:14
by SfS
это ?
http://elm-chan.org/fsw/ff/00index_e.htmlя пробовал FATFS компилить на SDCC. результат не впечатлил)
Re: TS-Bios FAT driver
Posted:
Mon, 13.03.2017 17:42:05
by SfS
VBI wrote:SfS, does WC needs to be subdivided?
всё это замечательно, в теории
А почему бы нет? Фактически есть три сущности: драйвер устройства (DMA-неDMA, NEMO, ZConrtoller etc), драйвер файловой системы и все остальное, что к нему обращается.
Люблю когда мухи отдельно, котлеты отдельно:)
К сожалению, практики по расчленению драйвера ФАТ не имею) Я не единственный любитель высказывать идеи)