Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.
Шелл с историей (новый SYSTEM.EXE) и далее...
Moderator: Shaos
-
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
-
- Admin
- Posts: 24008
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Шелл (system.exe) с историей
ДавайVasil Ivanov wrote:Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
Re: Шелл (system.exe) с историей
Кинул архив тебе на e-mailShaos wrote:ДавайVasil Ivanov wrote:Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.
Файл README:
Это стандартный шелл + история команд. Размер буфера истории 256 байт. Перемещение по истории:
Code: Select all
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
vasil-i@yandex.ru
-
- Admin
- Posts: 24008
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
В связи с возможным полным открытием проекта Sprinter для народа предлагаю таки организовать у нас архив софта для Спринтера. Вышли мне пожалуйста последнюю версию системы и дай ей какой-то отличный от официальной версии номер, также можешь своё имя вписать внутрь как соавтора петерсплюсов
P.S. Кстати если появятся официальные исходники системы - сможешь туда теже изменения внести?

P.S. Кстати если появятся официальные исходники системы - сможешь туда теже изменения внести?
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
Только сейчас, фактически случайно, на форуме ZX.PK.RU наткнулся на топик И.Мака по Опен-Сорц Спринтера. Это определенно радует, давно было пора это сделать!. Надо Рому агитировать, чтобы бросал свой АТМShaos wrote:В связи с возможным полным открытием проекта Sprinter для народа предлагаю таки организовать у нас архив софта для Спринтера. Вышли мне пожалуйста последнюю версию системы и дай ей какой-то отличный от официальной версии номер, также можешь своё имя вписать внутрь как соавтора петерсплюсов![]()
P.S. Кстати если появятся официальные исходники системы - сможешь туда теже изменения внести?

1. Последнюю версию ДОС-а вышлю на днях, я очень давно вообще не включал Спринтер.
2. Могу по-фиксить официальные сорцы.
Vasil Ivanov
vasil-i@yandex.ru
vasil-i@yandex.ru
-
- God
- Posts: 1101
- Joined: 29 Dec 2003 01:00
- Location: Москва
-
- Doomed
- Posts: 413
- Joined: 11 Dec 2003 14:34
Этот проект связан с производством компов ?. Давай колисьCHRV wrote:Рома переводит стрелки на проект посильнее Спринтера. Спринтер хорош был три года назад. Сейчас он откровеннно технологически слабоват.Vasil Ivanov wrote:Надо Рому агитировать, чтобы бросал свой АТМи переводил стрелки на проект Спринтера.
АТМ снят с производства в прошлом году.

Vasil Ivanov
vasil-i@yandex.ru
vasil-i@yandex.ru
-
- Admin
- Posts: 24008
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Шелл (system.exe) с историей
Наконец-то дошли руки выложить это дело в составе обновлённого ДОС 1.61 (кстати почему новый system.dos имеет ту же версию, а размер имеет другой?):Vasil Ivanov wrote:Кинул архив тебе на e-mailShaos wrote:ДавайVasil Ivanov wrote:Нужен кому-нить шелл, имеющий историю введенных команд ?.
Могу кинуть (Шаосу). Лично мне всегда не хватало данной фитчи у system.exe от ПП.
http://nedopc.org/nedopc/sprinter/download/dos_1_61.zip (15K)
Code: Select all
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 ДОС (ожидание нажатия
клавиатуры с эхом), которая выводит нормальный курсор.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24008
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Шелл (SYSTEM.EXE) с историей
В версии DSS 1.62 от Саймана всё ещё содержится этот самый SYSTEM.EXE (я сверил MD5) и я планирую его расширить в соответствии с планом
Вот какие команды поддерживаются на данный момент:
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

Вот какие команды поддерживаются на данный момент:
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
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24008
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Шелл с историей
Кто-то помнит чем отличаются Primary Command Processor от Secondary?
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 до следующего ребута или выключения питания.
Code: Select all
; /P Primary command processor
; /S Secondary command processor
; /C Execute batch file
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 до следующего ребута или выключения питания.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24008
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Шелл с историей (новый SYSTEM.EXE)
Когда подменял шрифт, то обратил внимание на то, что SYSTEM.EXE использует символ с кодом 0 вместо #20 (пробел) в строке приглашения на ввод (у меня там точка в правом-нижнем углу знакоместа):

Надо будет исправить шелл...
Надо будет исправить шелл...
Я тут за главного - если что шлите мыло на me собака shaos точка net