Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
DreamShell 4.0 - Module dev
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 133
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #1
DreamShell 4.0 - Module dev
Coming soon...
18.03.2009 13:02
Вебсайт Найти все сообщения Цитировать это сообщение
Jirohn Не на форуме
Новичок
*

Сообщений: 14
Зарегистрирован: 14.06.2011
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #2
RE: DreamShell 4.0 - Module dev
The module dev, it will be posted one day? XD XD
(Последний раз сообщение было отредактировано 18.06.2011 в 13:05, отредактировал пользователь Jirohn.)
18.06.2011 13:04
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 133
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #3
RE: DreamShell 4.0 - Module dev
Sorry no time for now. But I'll try to write at least an example.

[Изображение: barbers.png]
18.06.2011 15:48
Вебсайт Найти все сообщения Цитировать это сообщение
Jirohn Не на форуме
Новичок
*

Сообщений: 14
Зарегистрирован: 14.06.2011
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #4
RE: DreamShell 4.0 - Module dev
thanks SWAT youre the best!!, i hope it
19.06.2011 14:59
Найти все сообщения Цитировать это сообщение
megavolt85 На форуме
Супермодератор
******

Сообщений: 3072
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 179
Поблагодарили 1522 раз(а) в 895 сообщ.
Сообщение: #5
RE: DreamShell 4.0 - Module dev
SWAT в sdk есть функция
Код:
/* Return the status of the drive as two integers (see constants) */
int cdrom_get_status(int *status, int *disc_type);
не мог бы ты написать пример консольного приложения на си, чтоб вызывалась эта функция и выдавала в консоль полученный результат

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
(Последний раз сообщение было отредактировано 23.12.2013 в 04:20, отредактировал пользователь megavolt85.)
23.12.2013 04:19
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 133
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #6
RE: DreamShell 4.0 - Module dev
А чего тут писать то? Если тебе просто внешняя команда для консоли нужна (не модуль с командой, а просто команда), то выглядит это точно так же как и на любой другой платформе:

Код:
#include "ds.h"

int main(int argc, char *argv[]) {
    
    int status, disc_type;

    if(cdrom_get_status(&status, &disc_type) < 0) {
        return CMD_ERROR;
    }
    
    ds_printf("CDROM: status=%d disc=%02x\n", status, disc_type);
    return CMD_OK;
}

Расшифровку статусов можешь посмотреть здесь (ну и добавить в код по желанию):
http://gamedev.allusion.net/docs/kos-cur...om_8h.html

Если нужен именно модуль с командой, то тут конечно немного по другому, если надо, напишу как.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 23.12.2013 в 08:03, отредактировал пользователь SWAT.)
23.12.2013 08:02
Вебсайт Найти все сообщения Цитировать это сообщение
 Сказали спасибо: megavolt85
megavolt85 На форуме
Супермодератор
******

Сообщений: 3072
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 179
Поблагодарили 1522 раз(а) в 895 сообщ.
Сообщение: #7
RE: DreamShell 4.0 - Module dev
огромное спасибо. для начала изучений этого более чем достаточно, если дойдет дело до модуля и не будет получаться, то обязательно спрошу.

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
(Последний раз сообщение было отредактировано 23.12.2013 в 08:09, отредактировал пользователь megavolt85.)
23.12.2013 08:04
Найти все сообщения Цитировать это сообщение
cybdyn Не на форуме
Ветеран
*****

Сообщений: 1368
Зарегистрирован: 20.12.2011
Рейтинг: 8
Сказал спасибо: 4
Поблагодарили 98 раз(а) в 75 сообщ.
Сообщение: #8
RE: DreamShell 4.0 - Module dev
А в чём разница между модулем и командой? приведённый пример это какаято подпрограмка? как потом компилиться и вызывается? я думал команда это типа в строке набираешь, и исполняется заведомо встроенный код в дримшелл? а тут типа экзешник или ? потом вызывается в консоли типа испольнить (такаоето имя файла) и дримшел грузит с карты этот файл и испоняет?
(Последний раз сообщение было отредактировано 23.12.2013 в 11:34, отредактировал пользователь cybdyn.)
23.12.2013 11:33
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7126
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 133
Поблагодарили 1169 раз(а) в 727 сообщ.
Сообщение: #9
RE: DreamShell 4.0 - Module dev
В целом ты сам ответил на свой вопрос Smile Я лишь разверну этот ответ.
Есть команды встроенные, они находятся в самом ядре и доступны всегда. А есть команды внешние, это как у любой другой ОС скомпилированный, исполняемый файл или скрипт. Так как система *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 окружение всякими функциями.
Вот как то так Smile

[Изображение: barbers.png]
23.12.2013 13:20
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  DreamShell dev environment setup on macOS VeraBecker 17 5718 19.09.2023 06:25
Посл. сообщение: SWAT
  Приложение для DreamShell SuperClaw 170 393618 01.05.2016 08:12
Посл. сообщение: SWAT
  DreamShell 4.0 - XML Doc SWAT 6 34028 06.04.2015 13:41
Посл. сообщение: SWAT
  Dreamshell BETA3/BETA4 Direct Swap atreyu187 3 19348 09.09.2011 14:27
Посл. сообщение: SWAT
  DreamShell 4.0 - App dev SWAT 3 21407 22.06.2011 23:09
Посл. сообщение: Jirohn
  DreamShell 4.0 - Bug Report SWAT 54 163343 28.03.2011 07:24
Посл. сообщение: SWAT
  Разработка блокнота для DreamShell zaero 28 86138 31.01.2011 16:02
Посл. сообщение: SWAT
  DreamShell 4.0 - Beta Testing SWAT 76 227950 14.07.2010 20:58
Посл. сообщение: SWAT
  DreamShell 4.0 SWAT 43 135691 05.02.2010 07:10
Посл. сообщение: SWAT
  DreamShell 4.0 - API Doc SWAT 1 18616 18.03.2009 13:04
Посл. сообщение: SWAT

Переход:


Пользователи просматривают эту тему: 1 Гость(ей)