Board.KolibriOS.org
http://board.kolibrios.org/

Очень функциональный шелл
http://board.kolibrios.org/viewtopic.php?f=48&t=1111
Page 11 of 13

Author:  Albom [ Thu Jan 23, 2014 10:49 am ]
Post subject:  Re: Очень функциональный шелл

Shell 0.7.4

Добавил буфер обмена. Пока что тестовая версия.
Ctrl+C - копирует строку целиком.
Ctrl+V - вставляет строку целиком.

Между окнами Shell работает нормально.
Из tinypad копируется с дополнительными символами (перевод строки и возврат каретки), вставка в tinypad приводит к его падению.
Из t_edit не копируется, вставка происходит нормально.

Author:  IgorA [ Tue Jan 28, 2014 3:03 pm ]
Post subject:  Re: Очень функциональный шелл

Albom wrote:
Из t_edit не копируется, вставка происходит нормально.

После ревизии 4542 уже копируется. Не правильно определялся размер буфера в t_edit при копировании.

Author:  Mario_r4 [ Fri Jan 31, 2014 2:18 am ]
Post subject:  Re: Очень функциональный шелл

Albom wrote:
Из tinypad копируется с дополнительными символами (перевод строки и возврат каретки), вставка в tinypad приводит к его падению.

Исправлено в SVN r.4552.

Author:  Albom [ Fri Jan 31, 2014 2:36 am ]
Post subject:  Re: Очень функциональный шелл

IgorA, Mario_r4
Спасибо!

Author:  Mario_r4 [ Fri Jan 31, 2014 2:45 am ]
Post subject:  Re: Очень функциональный шелл

Albom
На всякий случай, вдруг у тебя не учтено, если встретился 0, до указанного в начале ожидаемого размера, то это безусловный конец текста. Думаю нужно учесть этот вариант в коде.

Author:  Mario_r4 [ Thu Feb 27, 2014 1:54 pm ]
Post subject:  Re: Очень функциональный шелл

Как я и предупреждал, ревизия 4588 сломала ввод в Shell. Вероятно не учтено что то описанное в документации ф.2. Например, проверка EAX или AX, вместо того чтобы проверять AH и AL, а может еще что-нибудь.

Author:  Albom [ Thu Feb 27, 2014 7:20 pm ]
Post subject:  Re: Очень функциональный шелл

Mario_r4 wrote:
Как я и предупреждал, ревизия 4588 сломала ввод в Shell. Вероятно не учтено что то описанное в документации ф.2. Например, проверка EAX или AX, вместо того чтобы проверять AH и AL, а может еще что-нибудь.

Буду починять.


UPDATED
* fixed in r4600

Author:  e-andrew [ Sat Mar 29, 2014 2:53 pm ]
Post subject:  Re: Очень функциональный шелл

Есть у меня пара идеи касательно Shell:
1) Переписать интерпретатор в библиотеку. Это позволит использовать его в других приложениях (например в job), не создавая файла, т.е. прямо в коде.
Пример реализации обмена информации между шелом и программой:
Есть структура:
Code:
struct ShellSession
   CurrentDir    dd ?
   InputBuffer    dd ?
   OutputBuffer dd ?
ends

В CurrentDir находится ссылка на строку с текущей папкой, в InputBuffer ссылка на строку с вводом, а в OutputBuffer ссылка на буфер, в которой будет результат команды.
К примеру
Code:
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


2) Новая команда: waitall. Она будет ждать, пока закроются все открытые приложения из текущей сессии. То есть строка "Уведомление закрыто" будет выведена только после того, как приложение закроется:
Code:
echo Открываю уведомление
notify Hello
waitall
echo Уведомление закрыто


Вот и все идеи.

Author:  Kopa [ Sat Mar 29, 2014 6:22 pm ]
Post subject:  Re: Очень функциональный шелл

Не знал где добавить данное предложение.
Запустил Demo Web шар-паутинку под VirtualBox на буке под Ubuntu и не смог закрыть (может нонсенс)
и предлагаю диспетчер задач добавить в меню "левой границы окна".

P.S. Запустил CPU-ID под вохом и процессор определился правильно и тактовые частоты, а размер кеш не определился :)
VirualBox под Ubuntu и ещё не понял как под Ubuntu добавить в Grub загрузку с флеш т.к. с Ubuntu плотно не "общался"

Author:  Wildwest [ Sat Mar 29, 2014 6:57 pm ]
Post subject:  Re: Очень функциональный шелл

Quote:
размер кеш не определился


В 2009 году инженеры Интела почесали левой пяткой грудь и решили ввести новые способы узнать информацию о кешах - вызовы cpuid c 04h и с 80000006h http://www.microbe.cz/docs/CPUID.pdf , что естественно пока не реализовано - я тогда уходил (последняя версия описания cpuid в списке всех функций тут http://www.intel.es/content/dam/www/pub ... manual.pdf )

Author:  Kopa [ Sat Mar 29, 2014 7:27 pm ]
Post subject:  Re: Очень функциональный шелл

Wildwest wrote:
то естественно пока не реализовано )

B Kolibri in Win CPU-ID тоже определяет процессор, но вроде есть какие то неувязки

Author:  Wildwest [ Sat Mar 29, 2014 8:25 pm ]
Post subject:  Re: Очень функциональный шелл

Если есть время, то в ту тему viewtopic.php?f=42&t=594&start=75 кинь скрины от CPU-Z и от моей cpuid

Author:  e-andrew [ Sun Mar 30, 2014 10:55 pm ]
Post subject:  Re: Очень функциональный шелл

Пока просто выложу, что получилось, потом опишу каждую процедуру/макрос подробно.

Attachments:
shell.inc [7.95 KiB]
Downloaded 94 times
examples.7z [695 Bytes]
Downloaded 92 times

Author:  punk_joker [ Thu Oct 30, 2014 1:24 am ]
Post subject:  Re: Очень функциональный шелл

Баги: некорректная работа команд ls и echo без параметров. ls без параметров просто выдает ошибку, а echo выводит на экран pecho (можно наблюдать в ночных сборках)

Author:  Serge [ Sat Nov 29, 2014 8:37 am ]
Post subject:  Re: Система сборки Tup

Переход на Tup поломал Shell.
Сборка #5095 работает, а #5100 нет

Attachments:
shell.png
shell.png [ 1.94 KiB | Viewed 1699 times ]

Page 11 of 13 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/