Shell 0.7.4
Добавил буфер обмена. Пока что тестовая версия.
Ctrl+C - копирует строку целиком.
Ctrl+V - вставляет строку целиком.
Между окнами Shell работает нормально.
Из tinypad копируется с дополнительными символами (перевод строки и возврат каретки), вставка в tinypad приводит к его падению.
Из t_edit не копируется, вставка происходит нормально.
Очень функциональный шелл
После ревизии 4542 уже копируется. Не правильно определялся размер буфера в t_edit при копировании.Albom wrote:Из t_edit не копируется, вставка происходит нормально.
Исправлено в SVN r.4552.Albom wrote:Из tinypad копируется с дополнительными символами (перевод строки и возврат каретки), вставка в tinypad приводит к его падению.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
IgorA, Mario_r4
Спасибо!
Спасибо!
Albom
На всякий случай, вдруг у тебя не учтено, если встретился 0, до указанного в начале ожидаемого размера, то это безусловный конец текста. Думаю нужно учесть этот вариант в коде.
На всякий случай, вдруг у тебя не учтено, если встретился 0, до указанного в начале ожидаемого размера, то это безусловный конец текста. Думаю нужно учесть этот вариант в коде.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Как я и предупреждал, ревизия 4588 сломала ввод в Shell. Вероятно не учтено что то описанное в документации ф.2. Например, проверка EAX или AX, вместо того чтобы проверять AH и AL, а может еще что-нибудь.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Буду починять.Mario_r4 wrote:Как я и предупреждал, ревизия 4588 сломала ввод в Shell. Вероятно не учтено что то описанное в документации ф.2. Например, проверка EAX или AX, вместо того чтобы проверять AH и AL, а может еще что-нибудь.
UPDATED
* fixed in r4600
Есть у меня пара идеи касательно Shell:
1) Переписать интерпретатор в библиотеку. Это позволит использовать его в других приложениях (например в job), не создавая файла, т.е. прямо в коде.
Пример реализации обмена информации между шелом и программой:
Есть структура:
В CurrentDir находится ссылка на строку с текущей папкой, в InputBuffer ссылка на строку с вводом, а в OutputBuffer ссылка на буфер, в которой будет результат команды.
К примеру
2) Новая команда: waitall. Она будет ждать, пока закроются все открытые приложения из текущей сессии. То есть строка "Уведомление закрыто" будет выведена только после того, как приложение закроется:
Вот и все идеи.
1) Переписать интерпретатор в библиотеку. Это позволит использовать его в других приложениях (например в job), не создавая файла, т.е. прямо в коде.
Пример реализации обмена информации между шелом и программой:
Есть структура:
Code: Select all
struct ShellSession
CurrentDir dd ?
InputBuffer dd ?
OutputBuffer dd ?
ends
К примеру
Code: Select all
command1:
db "mkdir test", 0
command2:
db "echo Hello", 0
output:
rb 1024
ShellSession term
; ...
mov [term.OutputBuffer], output
mov [term.InputBuffer], command1
invoke shell.do, term
mov [term.InputBuffer], command2
invoke shell.do, term
; в output находится "Hello", 0
Code: Select all
echo Открываю уведомление
notify Hello
waitall
echo Уведомление закрыто
Last edited by e-andrew on Mon Mar 31, 2014 6:42 pm, edited 1 time in total.
Не знал где добавить данное предложение.
Запустил Demo Web шар-паутинку под VirtualBox на буке под Ubuntu и не смог закрыть (может нонсенс)
и предлагаю диспетчер задач добавить в меню "левой границы окна".
P.S. Запустил CPU-ID под вохом и процессор определился правильно и тактовые частоты, а размер кеш не определился
VirualBox под Ubuntu и ещё не понял как под Ubuntu добавить в Grub загрузку с флеш т.к. с Ubuntu плотно не "общался"
Запустил Demo Web шар-паутинку под VirtualBox на буке под Ubuntu и не смог закрыть (может нонсенс)
и предлагаю диспетчер задач добавить в меню "левой границы окна".
P.S. Запустил CPU-ID под вохом и процессор определился правильно и тактовые частоты, а размер кеш не определился
VirualBox под Ubuntu и ещё не понял как под Ubuntu добавить в Grub загрузку с флеш т.к. с Ubuntu плотно не "общался"
В 2009 году инженеры Интела почесали левой пяткой грудь и решили ввести новые способы узнать информацию о кешах - вызовы cpuid c 04h и с 80000006h http://www.microbe.cz/docs/CPUID.pdf , что естественно пока не реализовано - я тогда уходил (последняя версия описания cpuid в списке всех функций тут http://www.intel.es/content/dam/www/pub ... manual.pdf )размер кеш не определился
Last edited by Wildwest on Sat Mar 29, 2014 8:22 pm, edited 1 time in total.
B Kolibri in Win CPU-ID тоже определяет процессор, но вроде есть какие то неувязкиWildwest wrote:то естественно пока не реализовано )
Если есть время, то в ту тему viewtopic.php?f=42&t=594&start=75 кинь скрины от CPU-Z и от моей cpuid
Пока просто выложу, что получилось, потом опишу каждую процедуру/макрос подробно.
- Attachments
-
-
shell.inc (7.95 KiB)Downloaded 301 times
-
examples.7z (695 Bytes)Downloaded 307 times
-
Баги: некорректная работа команд ls и echo без параметров. ls без параметров просто выдает ошибку, а echo выводит на экран pecho (можно наблюдать в ночных сборках)
to infinity and beyond
Переход на Tup поломал Shell.
Сборка #5095 работает, а #5100 нет
Сборка #5095 работает, а #5100 нет
- Attachments
-
-
shell.png (1.94 KiB)Viewed 10102 times
-
Who is online
Users browsing this forum: No registered users and 4 guests