nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 07 Dec 2021 16:31



Reply to topic  [ 11 posts ] 
Шелл с историей (новый SYSTEM.EXE) и далее... 
Author Message
Doomed
User avatar

Joined: 11 Dec 2003 15:34
Posts: 413
Reply with quote
Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.

_________________
Vasil Ivanov
vasil-i@yandex.ru


24 Oct 2006 06:55
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20007
Location: Silicon Valley
Reply with quote
Vasil Ivanov wrote:
Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.


Давай

_________________
:eugeek: https://twitter.com/Shaos1973


24 Oct 2006 07:27
Profile WWW
Doomed
User avatar

Joined: 11 Dec 2003 15:34
Posts: 413
Reply with quote
Shaos wrote:
Vasil Ivanov wrote:
Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.


Давай


Кинул архив тебе на e-mail

Файл README:

Это стандартный шелл + история команд. Размер буфера истории 256 байт. Перемещение по истории:
Code:
   Esc        - очистить ком. строку
   Ins        - смена режима ввода (вставка/замена)
   курс. клавиши вверх/вниз  - прокрутка истории
   PageUp      - в начало истории
   PageDown    - в конец истории
   Ctrl+Del    - стереть историю

Фитчи:

- Из дополнительных bat-команд вставил только "ECHO.", для вставки пустой строки (на экране).

- Доработана команда "DIR". Теперь она выводит метки дисков и их серийные номера.

- В команде CLS (очистка экрана) можно задавать также и цвет очистки, например: CLS 2 (черный фон/зеленые символы).


Попутно пофиксил замеченные глюки стандартного шелла (от ПП):

1. Исправлен баг обработки команды "echo" в bat-файлах, при котором строка, длиннее ширины экрана, обрезалась по ширине экрана и остаток строки не выводился.

2. Исправлен баг, при котором по команде "dir" строка выводимого пути имела максимум 15 символов (при слишком длинном пути).

3. Пофиксено изменение текущего диска/пути после ошибок выполнения команд (например при неверном имени файла).



P.S. Данный шелл расчитан на обновленную функцию #32 ДОС (ожидание нажатия клавиатуры с эхом), которая выводит нормальный курсор. Поэтому прилагаю на всякий случай последнюю версию файла "system.dos".

_________________
Vasil Ivanov
vasil-i@yandex.ru


25 Oct 2006 12:14
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20007
Location: Silicon Valley
Reply with quote
Post 
В связи с возможным полным открытием проекта Sprinter для народа предлагаю таки организовать у нас архив софта для Спринтера. Вышли мне пожалуйста последнюю версию системы и дай ей какой-то отличный от официальной версии номер, также можешь своё имя вписать внутрь как соавтора петерсплюсов ;)

P.S. Кстати если появятся официальные исходники системы - сможешь туда теже изменения внести?

_________________
:eugeek: https://twitter.com/Shaos1973


04 Feb 2007 18:57
Profile WWW
Doomed
User avatar

Joined: 11 Dec 2003 15:34
Posts: 413
Reply with quote
Post 
Shaos wrote:
В связи с возможным полным открытием проекта Sprinter для народа предлагаю таки организовать у нас архив софта для Спринтера. Вышли мне пожалуйста последнюю версию системы и дай ей какой-то отличный от официальной версии номер, также можешь своё имя вписать внутрь как соавтора петерсплюсов ;)

P.S. Кстати если появятся официальные исходники системы - сможешь туда теже изменения внести?


Только сейчас, фактически случайно, на форуме ZX.PK.RU наткнулся на топик И.Мака по Опен-Сорц Спринтера. Это определенно радует, давно было пора это сделать!. Надо Рому агитировать, чтобы бросал свой АТМ ;) и переводил стрелки на проект Спринтера.

1. Последнюю версию ДОС-а вышлю на днях, я очень давно вообще не включал Спринтер.
2. Могу по-фиксить официальные сорцы.

_________________
Vasil Ivanov
vasil-i@yandex.ru


06 Feb 2007 09:29
Profile
God
User avatar

Joined: 29 Dec 2003 02:00
Posts: 1101
Location: Москва
Reply with quote
Post 
Vasil Ivanov wrote:
Надо Рому агитировать, чтобы бросал свой АТМ ;) и переводил стрелки на проект Спринтера.

Рома переводит стрелки на проект посильнее Спринтера. Спринтер хорош был три года назад. Сейчас он откровеннно технологически слабоват.
АТМ снят с производства в прошлом году.


06 Feb 2007 12:12
Profile ICQ WWW
Doomed
User avatar

Joined: 11 Dec 2003 15:34
Posts: 413
Reply with quote
Post 
CHRV wrote:
Vasil Ivanov wrote:
Надо Рому агитировать, чтобы бросал свой АТМ ;) и переводил стрелки на проект Спринтера.

Рома переводит стрелки на проект посильнее Спринтера. Спринтер хорош был три года назад. Сейчас он откровеннно технологически слабоват.
АТМ снят с производства в прошлом году.


Этот проект связан с производством компов ?. Давай колись ;)

_________________
Vasil Ivanov
vasil-i@yandex.ru


07 Feb 2007 02:27
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20007
Location: Silicon Valley
Reply with quote
Vasil Ivanov wrote:
Shaos wrote:
Vasil Ivanov wrote:
Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.


Давай


Кинул архив тебе на e-mail


Наконец-то дошли руки выложить это дело в составе обновлённого ДОС 1.61 (кстати почему новый system.dos имеет ту же версию, а размер имеет другой?):

http://nedopc.org/nedopc/sprinter/download/dos_1_61.zip (15K)

Code:
DSS v1.61 PATCH2 (Oct 2006)
===========================
Автор патча: Vasil Ivanov

Версию ДОС обозвал как 1.61 (обновление 2006 года назовем PATCH2).
Установка: заменить оригинальный файлы "system.dos" и "system.exe".

1. Исправлена фирменная ошибка, при которой происходило зависание
системы (непредсказуемое поведение) при превышении макс. числа
открытых дескрипторов. Однажды, во времена портирования M80.EXE,
из-за данного бага и конечно неудачного расположения звезд на небе,
был снесен весь логический диск "C".

2. Появилась новая функция:

 Функция #08 (DSS_RESCAN). Пересканировать девайсы системы.
 вход: нет
 выход: A - номер последнего лог. диска в системе

Предназначена для создателей RAM-дисков. Для доступа к созданному
RAM-диску не нужно перезагружать компьютер.

3. В отличии от оригинала, функции 0Ah/0Bh (Create file/New create file)
перед созданием файла проверяют на переполнение таблицу свободных
дескрипторов.

4. Обновленная функция ДОС 32h (ожидание нажатия клавиатуры с эхом),
которая выводит нормальный курсор.

5. В стандартный шелл добавлена история команд. Размер буфера
истории - 256 байт.

Перемещение по истории:

   Esc        - очистить ком. строку
   Ins        - смена режима ввода (вставка/замена)
   курс.клавиши вверх/вниз - прокрутка истории
   PageUp     - в начало истории
   PageDown   - в конец истории
   Ctrl+Del   - стереть историю

Фитчи:

 - Из дополнительных bat-команд вставил только "ECHO.", для вставки
   пустой строки (на экране).

 - Доработана команда "DIR". Теперь она выводит метки дисков и их
   серийные номера.

 - В команде CLS (очистка экрана) можно задавать также и цвет очистки,
   например: CLS 2 (черный фон/зеленые символы).

Попутно пофиксил замеченные глюки стандартного шелла (от ПП):

А. Исправлен баг обработки команды "echo" в bat-файлах, при котором строка,
   длиннее ширины экрана, обрезалась по ширине экрана и остаток строки не
   выводился.

Б. Исправлен баг, при котором по команде "dir" строка выводимого пути
   имела максимум 15 символов (при слишком длинном пути).

В. Пофиксено изменение текущего диска/пути после ошибок выполнения команд
   (например при неверном имени файла).

P.S. Данный шелл расчитан на обновленную функцию #32 ДОС (ожидание нажатия
клавиатуры с эхом), которая выводит нормальный курсор.


P.S. Уже когда запустил увидел что оно печатает версию 1.61.9

_________________
:eugeek: https://twitter.com/Shaos1973


30 Oct 2007 22:57
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20007
Location: Silicon Valley
Reply with quote
В версии DSS 1.62 от Саймана всё ещё содержится этот самый SYSTEM.EXE (я сверил MD5) и я планирую его расширить в соответствии с планом :mrgreen:

Вот какие команды поддерживаются на данный момент:

PAUSE (только в BAT)
REM (только в BAT)
CD и CHDIR - смена текущего каталога
CLS - очистка экрана (Василий Иванов добавил опциональный параметр - цвет)
DATE - получение и установка текущей даты (надо поддержать стандартный досовский формат mm-dd-yyyy наряду с теперешним dd.mm.yyyy)
DEL - удаление файла
DIR - вывод содержимого текущего каталога (расширена Василием)
ECHO - вывод текстового сообщения на экран, а также On/Off
ERASE - алиас DEL
EXIT - выход из командного процессора
HELP - вывод списка поддерживаемых команд (захардкодено - надо бы чтобы выводилось по факту что есть)
MD и MKDIR - создание директория
PATH - вывод содержимого переменной окружения PATH
REN и RENAME - переименование файла
RD и RMDIR - удаление директория
SET - вывод всех переменных окружения или установка нового значения переменной по имени
TIME - получение и установка текущего времени
VERSION и VER - вывод версии DSS

Я планирую добавить к этому COPY, которая на данный момент является внешней командой, и возможно даже с опциями, повторяющими MS-DOS:
/Y - всегда отвечать ДА если происходит копирование поверх существующего файла;
/V - произвести верификацию файла после копирования (это сейчас важно).

Также планирую добавить алиасы для некоторых существующих команд, чтобы сымитировать "unix experience" :)

LS для DIR
CP для COPY
RM для DEL

Далее надо будет подумать над добавлением MV и MOVE
Наверное TYPE (и его алиас CAT) нужна будет и может быть даже MORE :)
В будущем поддержку батников надо будет довести до приемлиемого уровня (CALL, FOR, GOTO, IF)

По ходу включения функционала динамических библиотек LIBMAN скорее всего придётся добавить команды специфические для либмана - например:
LL и LIBS - может выводить список загруженных библиотек с ID и reference-counter-ами
RL и RMLIB - может удалять библиотеку по ID (например приложение забыло удалить её при выходе)

Ну и так как версия SYSTEM.EXE может отличаться от версии SYSTEM.DOS можно добавить команду вывода версии шелла с датой сборки и списком авторов и назвать её скажем CREDITS

_________________
:eugeek: https://twitter.com/Shaos1973


15 Dec 2020 19:58
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20007
Location: Silicon Valley
Reply with quote
Кто-то помнит чем отличаются Primary Command Processor от Secondary?
Code:
; /P Primary command processor
; /S Secondary command processor
; /C Execute batch file

P.S. Ок, судя по исходникам, Primary сначала запускает батник system.bat, а потом уходит в консоль, а Secondary сразу уходит в консоль. Batch режим запускает батник и возвращается (без консоли). Будучи запущенным без параметров шелл работает как Secondary.

P.P.S. В новой версии при старте Primary Command Processor будет устанавливать хук в DSS v1.62 на точку входа RST #20 (которая в данный момент не используется, как и RST #28), чтобы через неё разрешать приложениям делать некоторые вещи, в частности работать с DLL-ками через встроенный в шелл LIBMAN. Secondary Command Processor этого делать небудет, т.к. он вызывается заведомо после Primary. Соответственно Batch режим тоже ничего не будет менять в DSS. Также очевидно, что Primary Command Processor не должен иметь логики по возврату DSS в первоначальное состояние, потому что выйти из него невозможно (как минимум по команде EXIT) - т.е. Primary Command Processor пускается бутом, хачит DSS и остаётся работать с хакнутым DSS до следующего ребута или выключения питания.

_________________
:eugeek: https://twitter.com/Shaos1973


15 Dec 2020 21:12
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20007
Location: Silicon Valley
Reply with quote
Когда подменял шрифт, то обратил внимание на то, что SYSTEM.EXE использует символ с кодом 0 вместо #20 (пробел) в строке приглашения на ввод (у меня там точка в правом-нижнем углу знакоместа):

Image

Надо будет исправить шелл...

_________________
:eugeek: https://twitter.com/Shaos1973


20 Dec 2020 17:36
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 11 posts ] 

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.