BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Ср май 31, 2017 9:53 am

Скриншот текущей версии BSS.

Изображение

Все доступные окошки открыты, на панели задач кнопки:

- "Завершение работы" - выход из bss.

- "Сеанс DOS" а ля терминал.

- "Файлы" - файловый менеджер, можно лазить по папкам, ввести фильтр показа файлов в списке (например, *.exe), запускать (с указанными аргументами командной строки) проги внутри BSS (только нетребовательные к памяти) и вне ее (BSS закрывается и на прощание пишет какое имя надо ввести и нажать enter чтобы запустить выбранный в "Файлах" exe/com/bat-файл в чистом досе без занимания части памяти bss-ом), отображать в таблице доп.столбец и сортировать по нему файлы: по имени, дате, размеру, типу, разделять на две группы файлы и папки при сортировке, обратить порядок сортировки на обратный.

- "Клавиатура" - проверка работоспособности клавиатуры и показ кодов нажатых клавиш (для кодеров под дос).

- "Память ОЗУ" - оставшаяся от досовских 640 кбайт память. По ней видно, запустится игра или нет. И не осталось ли что в памяти (резиденты всякие) после запуска сторонних прог.

- "Экран" - выбор аспекта (для широкоэкранных мониторов разрешение 640х480 натягивается волшебным образом), темы (старая винда либо под плоский виндовс10), языки интерфейса и опция ускоренной отрисовки при перетаскивании окон.

И через разделитель - кнопки работы с окнами:
- "Свернуть все окна"
- "Развернуть текущее окно на весь экран"
- "Свернуть развернутое окно обратно в стартовый размер"

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Вт июн 27, 2017 1:44 am

Вышла первая версия оболочки BlackStrip Shell (сокращенно "BSS") для DOS.

Версия: 1.0

Размер: 86 Кб

Скачать: http://blackstrip.ru/bss.exe

Оболочка BlackStrip Shell для DOS позволяет лазить по файлам и папкам на дисках и запускать программы и игры:
- из BSS, при этом остается малое количество свободной оперативки, поэтому подходит данный способ для простых игр и программ, а также для игр, использующих расширенную память, которым количество свободной основной памяти не важно;
- из DOS, в этом случае BSS перенаправляет консоль доса в папку с программой/игрой, закрывается и пишет название исполняемого файла программы/игры, которое надо ввести чтобы запустить ее. При этом BSS место в оперативке не занимает вообще.

Можно вводить аргументы командной строки для запуска проги.
Можно сортировать список файлов, фильтровать по имени и типу файла (включая использование масок типа "*mid??.exe").

В перспективе в следующих версиях:
- функция создания ярлыков для папок и файлов и хранения этих ярлыков в специальном меню (привет, меню "Пуск").
- функции редактирования файловой системы (создания папок, копирования файлов, редактирования файлов).
- новые встроенные утилиты.

Скриншоты:

Русский интерфейс:
Изображение

Английский интерфейс:
Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Чт июн 29, 2017 7:06 am

Как запустить прогу из чистого DOS через BSS:

1) Доходим до нужного EXE/COM/BAT файла, ставим на него курсор и жмем справа внизу "Запуск из DOS"/"Run from DOS"

Изображение

2) BSS закрывается, оставляет вас в папке выбранного исполняемого файла с подсказкой "BBegume имяфайла"/"Type имяфайла"

Изображение

3) Вводим указанное имя файла и жмем Enter - мы запустили прогу из чистого дос без занимания какой либо дополнительной памяти оболочкой.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Пт июн 30, 2017 12:13 am

Вышла BlackStrip Shell 1.01

Скачать (100 кБайт): http://blackstrip.ru/bss.exe

Изображение

Изменения:
- добавлено автоматическое сохранение настроек в файл sets.cfg: последний каталог в файловом менеджере, аспект экрана, тема, язык интерфейса, флажок "Ускорить окна"
- файловый менеджер: добавлена кнопка для вызова функции "Выбор диска"
- файловый менеджер: перемещение выше корневого каталога диска теперь вызывает функцию "Выбор диска"
- файловый менеджер: исправлены ошибки отрисовки полосы прокрутки и списка файлов

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Пт сен 22, 2017 11:46 am

При активном написании проги в Qbasic и Visual Basic for DOS зачастую наступает грустный момент: запустить прогу в интерпретаторе по F5 можно, а exe-файл сделать нельзя. Компилятор bc.exe пытается скушать один из модулей и давится, выблевывая сообщение out of memory.

Изображение

Причина в слишком большом размере модуля.

Как это лечится? Делением модуля на несколько модулей. Общий порядок действий таков:
1) создаем отдельный include-файл (с расширением bi), у меня был модуль main.bas, и я сделал новый файл main.bi.

2) создаем отдельный второй модуль, я сделал main2.bas, туда будем класть половину кода из main.bas, чтоб вместо одного большого стало два маленьких модуля и bc.exe мог их скомпилировать по отдельности.

3) перетаскиваем из main.bas в main.bi все декларации процедур и функций.

4) вписываем на самый верх ОБОИХ bas метакоманду '$include: 'main.bi'.

5) перетаскиваем из main.bas в main.bi все команды DIM, а потом меняем их на COMMON SHARED. Причем если были среди них массивы с четким кол-вом элементов, то нужна отдельная команда REDIM, т.к. в COMMON SHARED кол-во элементов указать нельзя.

Пример:
было в main.bas
DIM a(5) AS INTEGER

станет в main bi
COMMON SHARED a() AS INTEGER

а в main.bas вместо DIM станет (вставлять обязательно НИЖЕ команды '$include: 'main.bi')
REDIM a(5) AS INTEGER

6) теперь все процедуры, функции, массивы, объявленные в main.bi файле, видны из обоих модулей одинаково. Создаем в main2.bas новую процедуру, и пихаем в эту процедуру часть кода из main.bas. А в main.bas заместо скопированной части кода ставим вызов свежесозданной в main2.bas процедуры.

В итоге часть кода уехала в модуль main2.bas, оба модуля main.bas и main2.bas стали небольшими по размеру файла, bc.exe теперь легко их компилирует в obj файлы, а link.exe из этих obj собирает exe без проблем.

В теории, когда забьется до упора main2.bas - можно сделать третий модуль main3.bas и так далее до бесконечности.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Чт окт 05, 2017 11:07 pm

Вышла BlackStrip Shell 1.1

Скачать (107 кБайт): http://blackstrip.ru/bss.exe

Изображение

Изменения:
- добавлена функция "Меню запуска", позволяющая создавать ссылки (ярлыки) на любимые программы и другие файлы по клику на кнопке с ракетой в файловом менеджере или вручную в окне самой функции. Для каждой ссылки указывается название ссылки, путь и имя файла, командная строка и значок. Можно сортировать ссылки по имени, выбирать (клавишами Вверх и Вниз), перемещать, удалять, дублировать ссылки, исправлять параметры ссылки, перейти по ссылке на расположение файла в файловом менеджере, запустить файл по ссылке из BSS (Enter) или из чистого DOS (Shift+Enter)
- теперь в файловом менеджере можно запустить с клавиатуры выбранный файл из BSS (Enter или Вправо) или из чистого DOS (Shift+Enter или Shift+Вправо)
- кнопки нижней панели упорядочены и сгруппированы в соответствии с назначенными клавишами их быстрого вызова F1-F12 (F6 пока что не используется)
- отключен вызов функции "Обновить" файлового менеджера по нажатию клавиши F5 (теперь F-клавиши управляют нижней панелью)
- ускорена прорисовка интерфейса
- добавлен переход "панель/активное окно" по нажатию Esc (см. полный список сочетаний клавиш в окне Инфо)
- убрана ошибочная возможность установки фокуса на разделитель на нижней панели
- перевернут значок на кнопке выхода
- исправлен ошибочный выбор соседнего файла при клике на список

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Вс ноя 05, 2017 11:19 am

При еще более активном написании проги в QBasic / VBDOS возникает еще один проблемный момент. Когда в программе накапливается много процедур и функций, то 3000 байт стека по умолчанию ей не хватает. Начинаются неожиданные вылеты программы посередине при активной ее работе.

Пишем в первых строках главного модуля размер стека больше 3000, например:

Код: Выделить всё

STACK 4000
И прога станет работать без сбоев как раньше, когда была маленькая.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Ср ноя 15, 2017 12:14 am

Вышла BlackStrip Shell 1.2

Скачать (115 кБайт): http://blackstrip.ru/bss.exe

Изображение

Изменения:
- добавлена функция "Редактор", позволяющая побайтово просматривать и редактировать файлы, а также просматривать их в виде текста или 16-ричных кодов
- добавлена кнопка окна редактора на нижнюю панель и соответствующая привязка на клавишу F6
- добавлена кнопка загрузки выбранного в файловом менеджере файла в редактор
- действие Enter/Вправо в списке файлового менеджера открывает выбранный файл в редакторе за исключением COM, EXE, BAT файлов (они как и раньше запускаются этим действием, а для их редактирования нажмите кнопку редактора в правом верхнем углу окна файлового менеджера)

Как пользоваться редактором
1) Выбираем в Файлах файл и жмем кнопку с колбой в правой верхней части окна. Откроется окно редактора.
Изображение

2) Кнопками Вверх-Вниз можно лазить по цепочке байт файла от первого до последнего. Они отображаются слева на кнопках. Текущий байт - кнопки с белым фоном.
Если указать 16-ричное смещение в поле "Смещение" и нажать Enter - то сразу перепрыгнете туда.
Если изменить 16-ричное значение в поле Код или символ в поле Символ и нажать Enter - то текущий выбранный байт в файле будет заменен на введенный (только если включен наверху флажок "Режим правки"), а также произойдет переход на следующий байт (если включен наверху флажок "Далее по ENTER").
В разделе "Переход" можно быстро менять смещение с указанным шагом в 16-ричном формате:
"0" - сбросить смещение на ноль;
"-" - отнять от текущего смещения указанный шаг;
"+" - прибавить к текущему смещению указанный шаг.

3) Ниже располагается поле предпросмотра.
Кнопкой "Х" можно его очистить чтобы окно не перерисовывалось долго с большим массивом текста.
Кнопкой "Текст" можно отобразить байты из файла в виде текста. При этом кнопкой "Ниже" можно перейти на следующую страницу текста.
Изображение

Кнопкой "Коды" можно отобразить байты из файла в виде таблицы из смещений, 16-ричных значений байтов и текстовой интерпретации байтов (как в любом 16-ричном редакторе).
Изображение

Кнопкой "Знаки" можно отобразить таблицу кодов и соответствующих им символов. Слева в столбце первая цифра кода, сверху в строке вторая цифра кода (пример 20 - пробел).
Изображение

Кнопкой F8 окно редактора можно развернуть на весь экран и после нажатия на "Текст" или "Коды" посмотреть файл в виде текста или кода на весь экран.
Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Вт ноя 21, 2017 12:15 pm

При дальнейшей разработке было обнаружено, что vbdos при сравнении long integer чисел творит чудеса. Лежит в одной переменной число a& = 32500, а в другой b& = 45000, обе переменные 4-байтовые Long, поэтому никаких порогов при переходе через 32767 быть не должно.

Пишем
if a& < b& - выдает ложь,
а если
if (a& - b&) < 0 - то выдает правду.

Отсюда обнаружены проблемы по сортировке файлов по размеру и по добавлению приставки "б/кб/мб/гб" к размеру.

А также проблемы по чтению/записи байт в редакторе если влезть в файл дальше чем (примерно) 10000 (0x2A00).

После сравнения с нулем все работает, вроде бы. Будет большой фикс в 1.21.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: BlackStrip Shell - графическая оболочка для DOS - журнал разработки

Сообщение blackstrip » Вт ноя 21, 2017 11:17 pm

Вышла BlackStrip Shell 1.21

Скачать (118 кБайт): http://blackstrip.ru/bss.exe

Изображение

Изменения:
- добавлена возможность выбора кодировки "DOS" или "WIN" в окно редактора для открытия, просмотра и редактирования файлов
- добавлена возможность выбора символа переноса 0D или 0A в окно редактора для просмотра файлов в виде текста
- исправлена некорректная возможность выбирать компоненты окна клавишей Tab после закрытия окна
- исправлено некорректное попадание в последний каталог файлового менеджера при следующем запуске
- исправлена некорректная сортировка по размеру файла для файлов больше 32767 байт в файловом менеджере
- исправлено некорректное назначение суффиксов "б/кб/мб/гб" по размеру файла в файловом менеджере
- исправлена невозможность чтения/записи байтов при смещениях от 8192 байт и более в редакторе

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя