PDA

Просмотр полной версии : [PentEvo] CLi for WildCommander



breeze
13.10.2012, 23:05
Command Line Interface for WildCommander v0.06 alpha
(Для работоспособности плагина требуется WildCommander (http://tslabs.info/forum/viewtopic.php?f=26&t=143) не ниже версии 0.39)

Данный плагин представляет из себя интерфейс командной строки (CLi) или в простонародье консоль/shell.
Плагин частично использует api WildCommander'а и пока используется только работа SD-картой (Z-Controller).

На данный момент реализовано несколько команд(встроенных):
about - информация о текущей версии плагина
cd name - change directory - сменить рабочую (текущую) директорию, где name - имя новой директории.
cls - clear screen - очистить экран.
dir - выводит на экран содержимое текущей директории (аналог windwos/dos)
echo text - выводит на экран текстовую строку, где text - текстовая строка (поддерживаются управляющие коды)
exit - выйти из CLi и вернутся в WildCommander
help - выводит на экран список доступных команд.
ls - выводит на экран содержимое текущей директории (аналог unix)
pwd - path work dir - выводит на экран путь рабочей (текущей) директории
sh filename.sh - shell - вызов командного интерпретатора, где filename.sh - имя исполняемого скрипта sh
sleep n - задержка на указанное время n в секундах (если задать значение 0 - будет ожидать нажатие любой клавиши)

http://img13.imageshost.ru/img/2012/10/13/image_50799ec783cbf_small.png (http://imageshost.ru/photo/9550/id2434583.html) http://img13.imageshost.ru/img/2012/10/13/image_50799ef132fbe_small.png (http://imageshost.ru/photo/5952/id2434584.html) http://img13.imageshost.ru/img/2012/10/13/image_50799f01baf6d_small.png (http://imageshost.ru/photo/4762/id2434596.html)

Плагин можно вызвать из меню WildCommander (F10), а так же нажав ENTER на файлах с расширением *.SH
CLi поддерживает историю, ранее введённых команд (пока ограничено 10ю), которую можно пролистать с помощью клавиш курсора (вверх/вниз). Так же имеется буфер ранее выведенной информации (на данный момент ограниченный ~320 строками). Просмотреть содержимое буфера можно удерживая клавишу ALT и стрелками вверх/вниз.

Длина вводимой строки ограничена(пока) 77 символами. Для внесения изменений используются клавиши влево/вправо в режиме замены.

Для установки плагина необходимо его скопировать в стандартную директорию для всех плагинов(WC) и прописать для автозагрузки в файле wc.ini

Downloads:
Свежая версия WildCommander всегда доступна здесь (http://tslabs.info/forum/viewtopic.php?f=26&t=143).

Current версии и исходники доступны на gutHub'е - http://bit.ly/Cli4WC
Для просмотра необходим PentEvo c прошивкой TS-Labs или UnrealSpeccy TS-Labs Edition (http://tslabs.info/forum/viewtopic.php?f=29&t=142).

Без этих людей, плагин не увидел бы свет:
- robat(Wizard^DT) - благодаря твоему скринсейверу я разобрался как работать с текстовым режимом и как писать плагины к WC
- Budder^MGN за огромнейшую помощь со скроллером экрана, кодом и всяким плюшками в API WildCommander'а.
- TS-Labs за замечательную прошивку для PentEvo и за не менее замечательную версию Unreal Speccy
- CHRV и всей команде NedoPC за отличную платформу PentEvo

Ну и для тех, кому лениво разбираться с прошивками, эмуляторами итд, видео на youtube (http://www.youtube.com/watch?v=Duo4MfBhUQA).

breeze
17.10.2012, 16:21
Обновилась версия до v0.08 (17.10.2012):

fix скролла, теперь для истории доступно 512 строк, которые не будут грохаться при выходе из плагина и запуска других плагинов (например видеоплеера)
fix команды echo для корректной обработки текста в кавычках
fix команды cd и обработки путей (теперь для команд ls, sh и других можно задать полный путь, например «../dir1/dir2/» итд
добавлена экспериментальная команда exec для запуска «бинарных» файлов


Немного подробнее о команде exec:
Это пробная конструкция для запуска файлов, которые могут воспользоваться API командой строки (CLi). В дальнейшем (возможно) данная команда будет упразднена, если будет найден более оптимальный вариант, ну а пока исполняемый файл (application) представляет собой скомпилированный код с адреса #c000 и добавленным заголовком:

db #7f,"CLA" ; Command Line Application

при загрузке файла проверяется данная сигнатура и если её нет выводится сообщение об ошибке.
в архиве пример «hello world», который выводит текстовую строку через API командой строки.

Сам архив в первом сообщении здесь (http://tslabs.info/forum/viewtopic.php?f=26&t=151).

breeze
19.10.2012, 19:30
v0.10 (19.10.2012):

fix команды cd если был не найден путь
fix буфера который использовался при поиске файла
теперь при старте плагина, происходит поиск директории «/bin» и сканирование её на предмет исполняемых файлов. Найденные там файлы будут использованы как внешние команды (своеобразная альтернатива с вариантом exec). Список обнаруженных команд доступен через команду help (Available commands(external)). Теперь когда пользователь вводит команду, происходит поиск по списку встроенных (embedded), а затем по списку внешних (external), в противном случае выводится сообщение об ошибке.
Поскольку в fat32 нет такого понятия как атрибут «исполняемый файл», было решено сделать запуск по аналогии с unix, но со спецификой fat32. Если набираемый текст начинается с «./» то подразумевается, что это попытка запуска исполняемого файла, путь к файлу передаётся на исполнение команде exec и если файл действительно имеет структуру «CLA», он запускается, в противном случае выдаётся сообщение об ошибке.
Для принудительного обновления списка внешних команд (external) из /bin, добавлена команда rehash.
Для загрузки и установки своей палитры, добавлена команда loadpal filename.pal. Файл в формате подставляет собой 512 байт палитры, по 2 байта на каждый цвет и имеет в начале файла 4 байта сигнатуры - #7f,"PAL". Если сигнатура не указана или указана не верно, выводится сообщение об ошибке.
Добавлен новый режим — графический экран (по умолчанию это 320x240 256c). Переключатся между режимами можно в реальном времени с помощью комбинации ALT+F1 и ALT+F2 (unix way). ALT+F1 - включает текстовый экран консоли, ALT+F2 - включает графический экран. При активном графическом экране так же возможен вывод текста в консоль. Например в графическом экране строиться какой-то график, а в консоль в реальном времени выводятся значения построения.
Для переключения между режимами в скриптах (*.sh) добавлена команда screen. значение 0 - включает текстовый экран консоли, 1 - графический. Другие значение вызывают сообщение об ошибке - «неверный параметр».
Добавлена команда gfxcls (здесь и далее все команды для графического режима будут начинаться с gfx) - которая очищает графический экран заливая #00
Команда gfxborder N устанавливает цвет бордера, когда активен графический режим. N - может принимать значения от 0 до 255.

Все новые stable версии теперь будут доступны так же на gitHub в разделе downloads (https://github.com/acidrave/CLi-for-WildCommander/downloads).

breeze
22.10.2012, 03:47
http://img13.imageshost.ru/img/2012/10/22/image_5084897a44cfd_small.png (http://imageshost.ru/photo/5756/id2456804.html) http://img13.imageshost.ru/img/2012/10/22/image_50848987affe3_small.png (http://imageshost.ru/photo/3542/id2456805.html)

v0.12 (22.10.2012):

обновилась команда gfxcls. Теперь она очищает графический экран с помощью DMA и делает это мгновенно ;)
fix команды help. Не корректно отображалась информация, если не была найдена директория "/bin"
Добавилась команда gfxloadpal, которая загружает 512байт палитры для графического режима. Теперь отдельно сосуществуют палитра для текстового режима и графического, переключающиеся с помощь ALT+F1/ALT+F2
Несколько расширился функционал для приложений:
появилась функция loadResoure, которая позволяет загружать ресурсы из внешнего файла (на данный момент реализована загрузка палитры и спрайтов в виде дампа памяти)
появились первые функции библиотеки GLi(Graphics Library interface), которые позволяют работать со спрайтами (создать, загрузить данные, переместить). Так же для спрайта можно задать анимацию, которая будет автоматически сменяться)
В качестве демонстрации нового функционала добавлена демка amiga boing. (Запускать лучше из CLi с помощью "./demo/boing". С помощью ALT+F1/ALT+F2 можно протестировать. ESC - выход)

p.s. Отдельное спасибо за помощь с некоторыми процедурами Koshi(Budder) и информацию по спрайтам TS-Labs.

Все новые stable версии теперь будут доступны так же на gitHub в разделе downloads (https://github.com/acidrave/CLi-for-WildCommander/downloads).

breeze
02.08.2013, 01:17
http://i.imgur.com/UvGGFEb.png

http://i.imgur.com/UNEhbac.png

v0.14с (01.08.2013):

Итак, после продолжительной и бурной паузы меня вновь пробило немного пописать, результатом чего наконец-таки стала новая версия плагина Сommand Line Interface. Большая часть работы была проделана ещё осенью, и не менее большая была проделана сейчас. Поэтому здесь как бы два апдейта 0.14 и 0.14с. Доработок производилось достаточно много и возможно что-то было упущено, но тем не менее


Исправлен запуск *.sh скриптов (о чём писал TS-Labs)
Переписан вызов функций api. Теперь все заголовки вынесены в начало файла и при последующих изменениях нет необходимости пересобирать приложения
Добавлен драйвер работы с NeoGS (пока только загрузка mod-файлов)
Добавлен драйвер Kempston Mouse
Добавлена внешняя команда loadmod для загрузки файлов NeoGS
Добавлена внешняя команда type для отображения текстовых файлов
Добавлена внешняя команда micetest для тестирования кемпстон мыши (при переключении между txt/gfx режимами [alt+f1/f2] меняется разрешение как экрана, так и границы для мыши)
Доработана очистка полного (360x288) графического экрана с помощью DMA
Добавлена функция callback для приложений при переключении между txt/gfx режимами (alt+f1/f2)
Добавлена функция переключений разрешений для граф.экрана (256x192/320x200/320x240/360x288)
Исправлена ошибка в парсере, из-за чего были недоступны внешние команды с длинной имени в 8 символов
Немного изменена палитра для текстового режима
Добавлена проверка на целостность системы при первом запуске (проверяется наличие системных директорий bin, fonts, libs, locale, system
Добавлена поддержка кода таб (\t) при выводе в консоль.
Удалена команда about
Добавлено игнорирование регистра (верхний/нижний) при вызове встроенных команд
Исправлена ошибка при вторичном вызове функции exec.
Добавлено описание функций api cli в заголовок (cli.h.asm)
Полностью реструктуризирована иерархия /BIN
Добавлена внутренняя команда loadfont
Исправлена ошибка при загрузке ресурсов
Добавлена функция получения статуса (ok/error) при загрузке ресурсов
Добавлена поддержка кода delete(#0c) при печати
Добавлена функция индикатора ожидания
Исправлена ошибка восстановления исходного пути, при вызове команд из /bin
Исправлена ошибка при создании списка внешних команд из /bin (Теперь в список добавляются только исполняемые файлы (с пустым расширением))

Хочется особо отметить, что теперь появилось возможность писать собственные («независимые») приложения, которые могут используя ресурсы Cli выводить данные, как в консоль (в текстовом режиме) так и в графическом. Примером такой работы была небольшая демка «Boing», ну а теперь коллекция ещё пополнилась примером в виде «micetest». Более подробно о написании приложений я расскажу несколько позже.

Поскольку GitHub убрал Downloads, файлы будут размещаться на форуме TS-Labs (http://tslabs.info/forum/viewtopic.php?f=9&t=151&p=4354#p4354) и копия на моём DropBox (https://dl.dropboxusercontent.com/u/15579554/Cli4wc/cli_0.14c.zip)

p.s. Отдельное спасибо psndCJ/triebkraft & pcb за помощь с написанием драйвера Kempston мышки и очередное спасибо Koshi(Budder) за неоценимую помощь с драйвером NeoGS

breeze
10.09.2014, 01:57
http://tslabs.info/forum/download/file.php?id=980

После небольшой «заморозки» проекта — долгожданное обновление 0.16, которое вылилось в целый небольшой рассказ — «CLi² (Command Line Interface 2) (http://tslabs.info/forum/viewtopic.php?f=26&t=456)»