DreamShell 4.0 - Module dev - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: DreamShell (/forum-3.html) +--- Форум: Programming (/forum-28.html) +--- Тема: DreamShell 4.0 - Module dev (/thread-77.html) |
DreamShell 4.0 - Module dev - SWAT - 18.03.2009 13:02 Coming soon... RE: DreamShell 4.0 - Module dev - Jirohn - 18.06.2011 13:04 The module dev, it will be posted one day? XD XD RE: DreamShell 4.0 - Module dev - SWAT - 18.06.2011 15:48 Sorry no time for now. But I'll try to write at least an example. RE: DreamShell 4.0 - Module dev - Jirohn - 19.06.2011 14:59 thanks SWAT youre the best!!, i hope it RE: DreamShell 4.0 - Module dev - megavolt85 - 23.12.2013 04:19 SWAT в sdk есть функция Код: /* Return the status of the drive as two integers (see constants) */ RE: DreamShell 4.0 - Module dev - SWAT - 23.12.2013 08:02 А чего тут писать то? Если тебе просто внешняя команда для консоли нужна (не модуль с командой, а просто команда), то выглядит это точно так же как и на любой другой платформе: Код: #include "ds.h" Расшифровку статусов можешь посмотреть здесь (ну и добавить в код по желанию): http://gamedev.allusion.net/docs/kos-current/cdrom_8h.html Если нужен именно модуль с командой, то тут конечно немного по другому, если надо, напишу как. RE: DreamShell 4.0 - Module dev - megavolt85 - 23.12.2013 08:04 огромное спасибо. для начала изучений этого более чем достаточно, если дойдет дело до модуля и не будет получаться, то обязательно спрошу. RE: DreamShell 4.0 - Module dev - cybdyn - 23.12.2013 11:33 А в чём разница между модулем и командой? приведённый пример это какаято подпрограмка? как потом компилиться и вызывается? я думал команда это типа в строке набираешь, и исполняется заведомо встроенный код в дримшелл? а тут типа экзешник или ? потом вызывается в консоли типа испольнить (такаоето имя файла) и дримшел грузит с карты этот файл и испоняет? RE: DreamShell 4.0 - Module dev - SWAT - 23.12.2013 13:20 В целом ты сам ответил на свой вопрос Я лишь разверну этот ответ. Есть команды встроенные, они находятся в самом ядре и доступны всегда. А есть команды внешние, это как у любой другой ОС скомпилированный, исполняемый файл или скрипт. Так как система *nix style, то исполняемые файлы в этом случае являются elf файлами, а скрипты в случае с DS - это lua. С точки зрения сборки, между модулем и командой разницы нет. Разница только в некотором содержимом и в их использовании. Модуль загружается один раз и весит в памяти пока его не выгрузить. Он может добавить в консоль команду по необходимости. И у него есть 4 спец. функции для работы с ним: lib_get_name lib_get_version lib_open lib_close Думаю пояснять о каждой смысла нет и так понятно. В командах же нет этих спец. функций, там используется только одна - main. Собираются внешние команды точно так же как и модули, просто загружаются и выполняются в консоли только при вызове. После окончания работы, они выгружаются из памяти. Это работает конечно несколько медленней, чем если загрузить модуль один раз и потом дергать эту команду, но в некоторых случаях эта скорость и не так важна, лучше пусть будет больше свободной памяти, особенно если команда не часто используемая. Ну а модуль с командой, делается в следующем случае. Если в модуле содержится какая-то библиотека, API которой будет доступно при его загрузке. И вместе с этим идет и команда для ее использования из консоли. Как пример модуля с командой, можно взять bzip2, это и API самой библиотеки и команда для работы с архивами. А как пример модуля только с API, можно взять допустим модуль tolua. Он не содержит в себе никаких команд, так как это вспомогательный модуль для luaDS, luaKOS и т.п., которые к слову тоже не содержат в себе никаких команд, они просто дополняют lua окружение всякими функциями. Вот как то так |