Форматы файлов Инфо о DScript Команда lua Работа с архиватором gzip Работа с архиватором bzip2 Работа с romdisk Переход по директориям Запуск программ с помощью DS Команда scramble Команда modem Модули new! Процессы new! Инсталляторы new! Список команд
Небольшое описание DreamShell NG v3.0.0
Небольшая помощь по командам:
Чтобы увидеть список команд, введите в качестве команды слово help и вам высветится список с командами. Чтобы узнать о назначении команды введите help имя_команды и вам высветится небольшая информация о команде которую вы напишете после слова help. Если вы хотите узнать как использовать команду, то просто напишите ее, без какого либо флага.
В данной версии DreamShell (сокращенно DS) есть виртуальная клавиатура, которая дает возможность пользоваться DS пользователям без клавиатуры. Управление виртуальной клавиатурой:
START - Показать/скрыть клавиатуру DPAD - Выбор символа A - Напечатать выбранный символ B - Стереть символ X - Использовать введенные данные Y - Очистить экран
Переход наверх.
Кое что о форматах файлов DS:
.gz - Архив gzip, распаковывается и запаковывается командой - gz
.bz2 - Архив bzip2, распаковывается и запаковывается командой - bz2
.zip - Архив zip, распаковывается командой - zip, и запаковывается командой - unzip
.dsr - Ромдиск, это пакетный файл, который подключается в DS как папка командой - romdisk
.vm - Это чистый VMU файл(RAW), конвертируется командой - vmcp
.vmd - Это дамп VMU, то есть все что было на карте(128 кб или можно сказать 256 блоков) записывается в один файл, потом можно восстановить этот дамп назад, это делается для сохранения резервной копии или для объединения файлов в один пакет, все это можно потом заархивировать и хранить где нибудь на почте или VMU. Создается и восстанавливается командой - dumpvmu
.bin - Программа для Dreamcast, запускается командой - exec
.klf - Дополнительный модуль(программа или просто библиотека) для DS, используется командой - module
.dsi - Это файл инсталлятора, используется командой - install
.dsc - Скрипт, запускается командой - dscript
.lua - LUA скрипт, запускается командой - lua
.ogg - Медиа файл oggvorbis, проигрывается командой - ogg
.mp3 - Медиа файл mp3, проигрывается командой - mp3
.jpg,png,pcx,tga,bmp,xpm,pnm,gif,tif,xcf,lbm - Картинки, используются скинами и возможен просмотр с помощью команды - image
Я могу написать название файла в таком виде:
file.dsr.gz.vm - Это значит что это romdisk, который запакован в gz архив и конвертирован в VMU файл. Вот еще пример:
file.bin.gz - Это означает что это .bin файл(программа), запакованный в gz архив.
Я советую придерживаться вам такой же техники, чтобы людям было понятно, с чем они имеют дело. В названии VMU файла конечно все может не уместится, поэтому это можно написать в пояснении VMU файла(пишется когда вы конвертируете какой либо файл в VMU файл).
Переход наверх.
Информация о скрипте(DScript):
Это текстовый файл, в котором прописаны команды, при его запуске все команды которые там написаны исполняются. Каждая команда должна начинаться с новой строки, коментарий обозначается знаком решетка - #, если перед надписью поставить этот знак, то все что идет после этого знака не будет считаться командой, программа обойдет эту строку и начнет исполнять следующую.
Оформление:
#DScript #Небольшое пояснение о назначении скрипта #Автор скрипта команды... #end
Запускается DScript с помощью команды dscript
dscript /ram/script.dsc
Изначально при запуске DS, DS ищет на вашей VMU romdisk(типа патч) со скриптами, если DS не находит его, то загружает свой romdisk и запускает из него главный скрипт, romdisk лежит здесь - /rd/path/dsc_path.dsr.bz2
Вы можете сделать свой скрипт, прямо в почте браузера, потом сохранить его на VMU как письмо. В DS вам надо конвертитовать это письмо в простой текстовый файл, вот как это делается:
vmcp -tf /vmu/a1/DREAMKEY.W00 /ram/script.dsc
Теперь у вас почти готовый скрипт, но есть одна проблемка, браузер записывает в первые 64 байта файла, информацию о этом файле и когда скрипт будет исполнятся, DS вам пару раз скажет типа error, такой команды нет и все такое. Поэтому вам нужно выкинуть эти 64 байта из верхушки вашего скрипта, это делается так:
readf /ram/script.dsc /ram/script1.dsc размер_скрипта(файла)-64_байта 65
Размер вашего файла вы можете узнать командой ls с флагом -l, команда ls показывает какие файлы есть в той директории, в которой вы находитесь, а если к этой команде добавить флаг -ls, то вместе с именами файлов, DS покажет и их размер(в байтах). Переход по директориям осуществляется командой cd а чтобы узнать в какой директории вы находитесь введите команду pwd.
Премер:
cd /ram ls -l
Мы узнали размер нашего файла(например 1024 байт), нужно выкинуть из размера файла 64 байта которые мы пропускаем и теперь вписываем его в в команду readf:
readf /ram/script.dsc /ram/script1.dsc 960 65
Теперь у вас есть готовый скрипт, он лежит здесь /ram/script1.dsc
Вы можете назначить свой скрипт на кнопки F1-F12, для этого вам нужно ввести команду:
syscfg -F1 адрес_скрипта syscfg -F2 адрес_скрипта и т. д. до F12 Это можно прописать в главном скрипте.
Переход наверх.
Команда lua
Эта команда используется для запуска lua скриптов, эти скрипты довольно хорошо распространены в мире программирования, вот и я решил их использовать в своем проекте. Использовать команду очень легко:
lua scriptname argvЕсть и дополнительные функции в скриптах Lua внедренные мной :), это возможность использования SDL функций в с скриптах, этим самым вы можете создавать что угодно на них с графическим оформлением SDL! Например игры или GUI для ваших приложений. Описание библиотеки SDL вы можете найти на сайте разработчика, а если с английским туго, то в инете есть и русские учебники. Так же были внедрены дополнительные библиотеки для SDL: SDL_ttf, SDL_mixer, SDL_image, SDL_prim, SDL_gui.
Но это еще не все :) В DS lua внедрены еще функции KOS(fs, g2bus, modem, bzip2, gzip, libc, lwip и другие) и некоторые функции самой DS. Полный список внедренных SDL функций можно посмотреть здесь
Полный список внедренных KOS функций можно посмотреть здесь.
Полный список внедренных DS функций можно посмотреть здесь.
Все это превращает DS в полностью программируемую платформу, причем сами программы можно писать и на DC!
Еще на lua можно делать дополнительные команды(они лежат в cmd_path, в DS это директория cmd).
Пример использования в lua внедренных мной функций(на примере SDL): В C это выглядит так:
int ticks; ticks = SDL_GetTicks();А в lua так:
local ticks ticks = SDL.SDL_GetTicks()Как вы поняли из этого примера, все функции SDL внедренные мной в DS lua нужно использовать с префиксом - SDL.
Все KOS функции используются точно так же, только с префиксом - KOS.
А DS функции используются с префиксом - DS.
Пример использования KOS функций:
KOS.strlen("hello")
Пример использования DS функций:
DS.ds_exec_one("help")
Этот пример вызовет команду help из lua скрипта с помощью внедренной функции DS в lua.
В DS использована lua v5.0, так что не перепутайте стандартные ее функции с v4,
они отличаются.У меня есть русский учебник по v4 и английский по v5, вы можете почитать о синтаксисе в русской, ну а стандартные функции придется смотреть в английской. Так же вы можете посмотреть примеры скриптов на форуме, которые пишу я и другие пользователи.
Переход наверх.
Работа с архиватором gzip.
Пример запаковки:
gz -c /ram/file.ds /ram/file.ds.gz
gz - Это сама команда
-с Это флаг для команды, обозначающий - запаковать(compress)
/ram/file.ds - Это выдуманный мной адрес файла, вам нужно написать на этом месте адрес файла, который вы хотите запаковать.
/ram/file.ds.gz - Это адрес куда сохранится запакованный файл.
Пример распаковки:
gz -d /ram/file.ds.gz /ram/f.ds
gz - Команда
-d - Флаг для команды, обозначающий - распаковать(decompress)
/ram/file.ds.gz - Адрес файла который вы хотите распаковать.
/ram/f.ds - Адрес куда будет сохранен распакованный файл.
Переход наверх.
Работа с ромдиском(romdisk):
Ромдиск(romdisk) - это пакетный файл, который включает в себя несколько файлов, он имеет расширение .dsr и с ним работают командой - romdisk.
У этой команды всего 2 флага, это -m и -u.
-m Значит mount romdisk image, то есть прикрепить ромдиск(прикрепляется как директория).
-u Это unmount romdisk image, то есть отцепить и удалить ромдиск из памяти.
Пример прикрепления:
romdisk -m /ram/rd.dsr /DS
/DS - Это название директории, в которой будут находится файлы из ромдиска - /ram/rd.dsr
Пример удаления ромдиска:
romdisk -u /DSТа же, система, только естественно название файла ромдиска не нужно...
Переход наверх.
Работа с архиватором bzip2.
В принципе в управлении этот архиватор точно такой же как и gzip, просто у него есть больше дополнительных опций, если вы не знаете что они обозначают, можете не указывать их, им изначально присвоено значение, думаю вам не понадобятся они. Кстати у этого архиватора более лучший метод сжатия, но для маленьких файлов мне кажется лучше использовать архиватор gzip.
Переход наверх.
Переход по директориям:
Переход по директориям, осуществляется командой cd
Изначально как только DS запустилась, вы находитесь в главной директории, в этой директории есть директории:
/dsc /rd /ram /vmu /cmd /cd /ptyДиректория dsc - это автоматически прикрепляемый ромдиск со скриптами, его можно обновлять.. Директория /rd это встроеный ромдиск, в котором находятся разные файлы используемые DS. Директория /ram это оперативная память, в этой директории вы будете производить разные действия, это вообщем ваша рабочая директория. Директория /vmu это директория в которой находятся ваши карты памяти, например если карта вставлена в слот А, то это будет выглядеть так: /vmu/a1 Директория /cd это диск, вставленный в GD-ROM Dreamcast. Директория /cmd это cmd path, патч с командами, его можно обновлять. Директория /pty это системная директория, она вам не нужна. Пример перехода по директориям:
cd /vmuТеперь вы находитесь в директории /vmu если вы хотите пройти дальше например в /a1 то вам нужно написать cd a1 то есть не нужно ставить слеш в начале названия директории, если вы хотите перейти из директории /vmu в директорию ram то вам нужно написать cd /ram(если стоит впереди слеш, то программа ищет директорию в главной директории) или cd ../ram
Две точки и слеш ../ означает вернутся на одну директорию назад, если вы например хотите вернуться на 2 директории назад то вам нужно написать ../../
Переход наверх.
Команда exec
Команда exec осуществляет запуск Dreamcast программ, они имеют расширение .bin
У этой команды 2 первостепенных флага это -bin для запуска .bin файлов и флаг -elf для запуска elf файлов(пока не работает) и 2 второстепенных(не обязательных) флага, это -addr и -return, первый позволяет запускать вашу программу в указанном вами адресе в памяти, а второй должен вернуть вас назад в DS после завершения запущенной программы. Эта команда запускает unscrambled .bin файлы, 1st_read.bin который вы найдете на любом диске Dreamcast это scrambled файл, то есть самобутящийся, для DS такой не нужен, его можно конвертировать командой scramble. Примеры запуска программ:
exec -bin /ram/programma.bin exec -bin /ram/programma.bin -addr 0xac010000 exec -bin /ram/programma.bin -return
Переход наверх.
Команда scramble
Команда scramble служит для конвертирования .bin файлов из самобутящегося(1st_read.bin) в простой и наоборот, у этой команды 2 флага это -s обозначает scramble и -d descramble. В DS вообщем нужен только флаг -d то есть конвертирование в простой файл. Пример:
scramble -d /cd/1ST_READ.BIN /ram/prog.binТеперь в этой команде добавлен еще один метод конвертации, чтобы его использовать нужно добавить в конце 1, для старого метода 2 или ничего не ставить.
Переход наверх.
Команда modem
С помощью этой команды вы сможете подключать два дрима друг с другом и подключатся к интернету. Поддерживаемые соединения:
Remote Mode c номером - Звонок модему через телефонную линию. Remote Mode - Подключение модем к модему напрямую, без телефонной линии. Answer Mode - Ожидание звонка с телефонной линии. PPP Mode - Подключение к интернету(провайдеру).После подключения вы можете писать друг другу сообщения и отсылать файлы. Все это к сожалению не проверено, так как у меня нет двух DC. У этой команды есть еще флаги:
-speed -Назначение скорости соединения. -mode -Выбрать пульсовый или тоновый набор. -terminal -Открыть или закрыть терминал. -send -Послать сообщение или файл. -dis -Отключить модем.
И не забывайте что использование каждой команды вы можете посмотреть в самой DS, набрав команду без флага.
Переход наверх.
Модули DreamShell
В DreamShell нового поколения были введены модули и процессы, о процессах позже, а о модулях немного поподробнее.
Модуль имеет расширение .klf
В принципе это обычный elf файл, но в нашем случае он не несет дополнительных библиотек, все они уже есть в самой DS.
В DreamShell Service вы найдете SDK для разработки таких модулей, в SDK включены заголовки библиотек которых нет в KOS, это zip, tolua, SDL(by chui), SDL_ttf, SDL_mixer, SDL_image, SDL_prim, SDL_gui - GUI API на SDL и еще разные DS функции. Все остальные заголовки стандартных функций, вы можете взять из KOS.
Так же в SDK есть специальные библиотеки "обманки" для правильной линковки elf файла.
За счет того что в DS уже есть эти билиотеки, скомпилированные модули получаются очень маленького размера и могут умещаться даже на VMU.
Для примера использования SDK для разработки модулей, я переделал Region Changer v1.5 под модули DS, причем это далось мне очень легко, изменения были буквально в одной функции и адресов подгружаемых ресурсов.
Модули гораздо больше дают возможностей для разработки приложений для DreamShell чем lua script.
Используются модули командой "module", с помощью нее вы можете их загружать, выгружать, смотреть список модулей и проверять на его наличие. Чтобы посмотреть подробнее наберите в консоли DS команду module без флагов.
Переход наверх.
Процессы DreamShell
Так же в DreamShell нового поколения началась разработка процессов.
В данный момент это сложно назвать действующей версией, но все же есть кое что.
С помощью команды process вы можете создавать, уничтожать, смотреть список процессов. Процессы могут быть нескольких типов, это dsc, lua и elf
Думаю и так уже понятно что это значит, кроме elf, а elf это DreamShell модуль (.klf). Так же еще предусмотрен запуск других немного elf файлов - any.
Чтобы посмотреть подробнее о команде "process", наберите ее в консоли DS без флагов.
Переход наверх.
Инсталляторы(install file) в DreamShell.
Продолжаем тему NG :)
Команда "install" управляет инсталляторами в DS.
Инсталлятор(install file) в DreamShell имеет расширение .dsi
По сути это обычный zip архив под управлением lua script, который извлекается отдельно самой командой для обработки.
После того как вы дали команду исталлировать что либо, команда "install" извлекает из архива файл ds_install.lua и запускает его отдельным lua процессом.
Все остальные действия с файлами архива, делает уже запущенный скрипт, возможностей у него даже на много больше чем нужно для скрипта инсталлятора :)
Пример создания файла инсталлятора(.dsi) вы можете найти в DreamShell Service.
Так же команда сама распознает в каком виде ей дали файл инсталлятора, он может быть как обычным, так и конвертированный в VMU файл. За счет этого не приходится конвертировать файл инсталлятора перед установкой из VMU файла если он был скачан через Dreamcast DK/DP/PW браузеры.
Чтобы посмотреть подробнее о команде "install", наберите ее в консоли DS без флагов.
To be continue... :)))
Свои файлы для DreamShell, вы можете выгрузить на сайт с помощью аплоадера, там же вы можете взять файлы выгруженные другими пользователями.
Переход наверх.
Доступные команды в DreamShell XT v3.0.0.800
У многих команд есть еще много флагов, так что все что тут написано это только для ознакомления с новой версией. В этом списке нет дополнительных команд, которые беруться из CMD Path или cmd модуля.
"help" - Команда помощи. "about" - Разработчики. "ls" - Просмотр содержания директории и размера файлов. "cd" - Переход по директориям. "pwd" - Узнать в какой директории вы находитесь в данный момент. "clear" - Очистить консоль от текста. "echo" - Вывод сообщения на экран консоли. "cat" - Прочесть текстовый файл и показать его в консоли. "hd" - Открывает файлы в режиме шестнадцатиричного кода(Hex). "cp" - Копировать файл. "rm" - Удалить файл. "rename" - Переименовать файл. "mkdir" - Создать директорию. "rmdir" - Удалить директорию. "romdisk" - Прикрепить или удалить ромдиск. "exec" - Запуск Dreamcast программ. "periphs" - Просмотр информации о периферии подключенной к DC. "md" - Открыть часть памяти в режиме шестнадцатитеричного кода(Hex). "ogg" - Проигрыватель OggVorbis. "mp3" - Проигрыватель Mp3. "wav" - Проигрыватель Wav. "vplay" - Проигрыватель видео. "cdda" - Проигрыватель музыкальных дисков. "sleep" - Задержка в консоли. "dumpvmu" - Сделать backup вашей VMU или восстановить существующий дамп. "load_prog" - Загрузка одной из интернальных программ. "vmuload" - Быстрый загрузчик программ DC с VMU, скачаных с сайта (распаковка,конвертация и запуск одной командой). "dscript" - Запустить DScript(DreamShell script). "lua" - Запустить LUA скрипт. "image" - Просотреть картинки в форматах jpg,png,pcx,tga,bmp,xpm,pnm,gif,tif,xcf,lbm. "anim" - Показать файл DS анимации. "vmcp" - Конвертор простого файла в VMU файл и наоборот. "dkp" - Конвертор простого файла в файл браузера DK/DP и наоборот. "netcfg" - Настройки сети. "scramble" - Scramble и unscramble DC программ. "screenshot" - Сделать скриншет экрана. "mstats" - Посмотреть статистику использования ресурсов памяти. "vmuicon" - Поставить иконку на экран VMU. "cdr" - Менеджер GD-ROM'a. "flashrom" - Менеджер флеш чипа. "hdd" - Менеджер жесткого диска. "readf" - Прочитать нужную вам часть файла. "plusf" - Соединить два файла в один. "statf" - Посмотреть свойства файла или директории. "checkf" - Узнать формат файла. "if" - Условный оператор. "gz" - Архиватор gzip. "bz2" - Архиватор bzip2. "zip" - Архиватор zip. "unzip" - Распаковщик zip архивов. "untgz" - Распаковщик tgz архивов. "modem" - Менеджер модемных соединений. "client" - Клиент TCP/IP. "server" - Сервер TCP/IP. "mserver" - Мульти сервер TCP/IP для подключения нескольких пользователей. "http_server" - http сервер. "http_client" - http клиент, для скачки файлов по http. "gethostbyname" - Узнать адрес хоста по адресу сайта. "cmd" - Менеджер команд. "vid" - Настройки и управление видео эффектами. "lib" - Инитиализация или отключение одной из библиотек. "module" - Менеджер модулей. "syscfg" - Системные настройки. "dc" - Системные команды DC. "addr" - Менеджер адресов памяти. "process" - Менеджер процессов "install" - Команда для инсталлирования DS инсталляторов.