Очень функциональный шелл

...
  • Albom wrote:Из t_edit не копируется, вставка происходит нормально.
    После ревизии 4542 уже копируется. Не правильно определялся размер буфера в t_edit при копировании.
  • Albom wrote:Из tinypad копируется с дополнительными символами (перевод строки и возврат каретки), вставка в tinypad приводит к его падению.
    Исправлено в SVN r.4552.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • IgorA, Mario_r4
    Спасибо!
  • Albom
    На всякий случай, вдруг у тебя не учтено, если встретился 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), не создавая файла, т.е. прямо в коде.
    Пример реализации обмена информации между шелом и программой:
    Есть структура:

    Code: Select all

    struct ShellSession
    	CurrentDir	 dd ?
    	InputBuffer	 dd ?
    	OutputBuffer dd ?
    ends
    
    В CurrentDir находится ссылка на строку с текущей папкой, в InputBuffer ссылка на строку с вводом, а в OutputBuffer ссылка на буфер, в которой будет результат команды.
    К примеру

    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
    
    2) Новая команда: waitall. Она будет ждать, пока закроются все открытые приложения из текущей сессии. То есть строка "Уведомление закрыто" будет выведена только после того, как приложение закроется:

    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 плотно не "общался"
  • размер кеш не определился
    В 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.
  • Wildwest wrote:то естественно пока не реализовано )
    B Kolibri in Win CPU-ID тоже определяет процессор, но вроде есть какие то неувязки
  • Если есть время, то в ту тему viewtopic.php?f=42&t=594&start=75 кинь скрины от CPU-Z и от моей cpuid
  • Пока просто выложу, что получилось, потом опишу каждую процедуру/макрос подробно.
    Attachments
    shell.inc (7.95 KiB)
    Downloaded 290 times
    examples.7z (695 Bytes)
    Downloaded 289 times
  • Баги: некорректная работа команд ls и echo без параметров. ls без параметров просто выдает ошибку, а echo выводит на экран pecho (можно наблюдать в ночных сборках)
    to infinity and beyond
  • Переход на Tup поломал Shell.
    Сборка #5095 работает, а #5100 нет
    Attachments
    shell.png
    shell.png (1.94 KiB)
    Viewed 9734 times
  • Who is online

    Users browsing this forum: No registered users and 3 guests