ERRSND.EXE, OS ERROR SOUND

Еше одна забавная свистелка под DOS.

Садится резидентом в память, при критических ошибках системы матюгается человеческим голосом!

Программа речевой реакции на критические ошибки MS DOS

Эта программка подготовлена студентами механико-математического факультета
МГУ им. М.В. Ломоносова при помощи пакетов Dice Sound & Dice TSR,
разработанных в лаборатории DICE SOFT.

Москва 1990

Для получения справочной информации запустите с ключом /HELP

Опять же, состряпал видео внаютубе, где можно послушать без регистрации и СМС

Скачать программу

Отчет Virustotal (для дебилов и параноиков, которые серут в комменты про «трояны»).

ABC: A C compiler for printable x86, или в поисках свистелок под DOS

Дети нашли интересное. Компилятор C под DOS, который генерирует код в виде ASCII-символов, т.е. принтабельных, латинские символы, буквы, и знаки препинания. Как эксперимент, думаю, заслуживает внимания.

Привет! Для конференции SIGBOVIK 2017 я написал довольно необычную статью. Она может показаться немного сложной для понимания неспециалистам в области информатики. Если у вас есть время, я думаю, что лучший способ ознакомиться с ней — прочитать саму статью. Но я также создал видео, которое объясняет основные идеи, для заинтересованных неспециалистов или опытных специалистов. Оно длинное, около 25 минут, но вы всегда можете просто пропустить его и перейти к концу:

Ссылка на видео

Исходный код статьи доступен в виде PAPER.EXE или PAPER.TXT (один и тот же файл). Из-за нереалистичных сроков SIGBOVIK, он был немного обновлен по сравнению с версией, представленной на SIGBOVIK 2017 (bibtex). Исходный код (компилятора), который я использовал для создания статьи, находится здесь. Пожалуйста, оставьте комментарий в моем блоге или в Твиттере @tom7!

Можно послушать, как восьмибитно звучит научная статья

Если запустить экзешник со статьей в DOS, он сыграет вам восьмибитку.

Для тех, у кого нет под рукой реального железа, или же эмулятора, можете послушать сабж на Ютубе

В записи аудио, правда, могут встречаться артефакты, так что кому надо качество 666%, качайте эмулятор и запускайте экзешник.

Ссылки

На всякий случай, копия экзешника на Mega.NZ
Источник
Репозиторий с исходниками компилятора
Видеолекция от автора (на английском)

Дети тут вспомнили…

К прошлому посту.

Чому я вообще писал такую простую свистелку? Если честно, я и сам не помнил, просто искал всякие свистелки и перделки под DOS. Оказывается, именно на эту реагируют всякие датчики, например, свет в коридоре или комнате включают. Код свистелки очень простой

Не помню, правда, чому я ее потом дорабатывал, делая там еще и визуализацию из рандомных ASCII-символов, но видимо что-то курил.

У кого нет эмулятора DOS или живой машины, вот вам пример работы свистелки с котиком внаютубе:

Свистелка (и перделка)

Свистелка на Трупопаскале.

Типа по мотивам Арви Хэккера и его HypnoICE, но моя почему-то очень странно работает, т.е. на реальном железе работает картинка, а на эмуляторе только один звук. С чего так, хз.
Это исходник только со звуком, fuck-ир был пьян, когда выкладывал, и фокус не удался. С заполнением экрана, потом выложу.

Ссылка на свистелку

Аналог линуксовой команды cat в Windows

Внезапно, есть.

Это команда type.

Использование:

type <путь_и_имя_файла>

Справка по команде

Формат командной строки:

TYPE [диск:][путь]имя_файла

Примеры: type /? — отобразить подсказку по использованию.

type mytextfile.txt — вывести на экран содержимое текстового файла mytextfile.txt текущего каталога.

type mytextfile.txt | more — вывести на экран содержимое текстового файла mytextfile.txt в постраничном режиме.

type mytextfile.txt > D:\newfile.txt — перенаправление вывода команды type в файл, т.е. копирование текстового файла mytextfile.txt в текстовый файл D:\newfile.txt.

type bigfile.iso > nul — вывод файла на фиктивное устройство nul, что эквивалентно просто чтению заданного файла.

При выводе на экран нетекстовых файлов, байты, содержимое которых представлено неотображаемой частью таблицы ASCII (0x00 – 0x1F) интерпретируется как служебные символы, что выражается в непредсказуемом перемещении курсора, выводе звука, очистке окна и т.п.

Источник

Совместимость: DOS 6.x и выше.

Dyna Blaster for DOS (Бомбермен)

Родное demo игры:

По многочисленным просьбам зрителей, Werwolf сделал репак старой DOS-овской игры.

Под Windows XP и выше можно играть в DOSBOX последней версии (на момент написания заметки 0.74-3).

Добавлена возможность включения и отключения фоновой музыки:

Для включения надо запустить файл ONMUSIC.EXE, для выключения OFFMUSIC.BAT, по умолчанию фоновая музыка отключена.

Добавлен файл CHEATS.TXT с кодами для доступа к каждому уровню и кодом на бессмертие. Копия на PasteBin

Скачать

DYNA Blast for DOS с Mega.NZ(ZIP)

Краткая заметка о русификации DOS

Преамбула

Изначально DOS довольно хреново поддерживала русский язык и официального русификатора, ЕМНИС, не было аж до четвертой версии, соответственно, всевозможных самописных русификаторов было напложено на целый грузовой состав с дискетами, и все их рассмотреть возможности не будет, так что рассмотрю один неофициальный, который работает, как минимум с DOS 5.0, и официальный способ для DOS 7.1 (Windows 98 SE)

Если у кого есть что вспомнить, насчет примечательных русификаторов, пишите в комменты.

Ссылки на нужные файлы будут в конце заметки.

KEYRUS.COM

Наверное, самый популярный русификатор на территории СНГ, написан Дмитрием Гуртяком из Украины.

Плюсы:
+ Представляет собой маленькую утилиту из одного COM-файла (32 Кб)
+ Не требует внешних шрифтов и файлов конфигурации. Настройки сохраняются в самом исполняемом файле, да в DOS так было можно.
+ При желании можно подгружать внешние шрифты
+ Есть индикация раскладки клавиатуры изменением цвета рамки вокруг экрана, сигналом PC-Speaker’а, эмуляцией звука клавиш и включением лампочки Scroll Lock (все вместе или по отдельности).
+ Гибкая настройка клавиш изменения раскладки, предлагаются разные сочетания для русской, английской или альтернативной раскладки, впрочем на все три (или только две, если альтернативная не нужна) можно назначить одну и ту же клавишу.

У меня, например, назначены русская и английская раскладка на клавишу F12 и синяя рамка вокруг экрана, если включена русская раскладка.

Русский Norton Commander без русификации:

После запуска KEYRUS.COM:

Ввод русского текста (жаль, что не видна рамка вокруг экрана)

Минусы:
— Для установления своей комбинации клавиш надо знать SCAN-коды клавиатуры
— На некоторых старых машинах запуск KEYRUS сильно замедляет клавиатуру, т.е. она начинает медленно реагировать на нажатия.
Решение: Достаточно прописать в AUTOEXEC.BAT запуск утилиты SPEEDKEY:

C:\DOS\SPEEDKEY.COM

— На некоторых виртуальных машинах KEYRUS глючит, вместо одного нажатия на клавиши управления курсором, происходит два. Пока решение одно, поменять русификатор.

Краткая инструкция к KEYRUS.COM на MEGA.NZ (TXT, DOS, RUS)
Краткая инструкция к KEYRUS.COM на PasteBin

Официальный способ русификации

Примечание: проверялось на DOS 7.1 (Windows 98 SE), если есть официальный дистрибутив DOS 5.0 и выше, тоже должно сработать.

Понадобятся следующие файлы из дистрибутива DOS:

COUNTRY.SYS — драйвер, устанавливающий региональные настройки
DISPLAY.SYS — драйвер дисплея для текстового режима.

EGA.CPI
EGA2.CPI
EGA3.CPI
ISO.CPI
— шрифты, ISO.CPI можно не копировать, там шрифт в одной из кодировок ISO, которая редко используется в DOS

KEYB.COM — утилита, подгружающая драйвер клавиатуры.

KEYBOARD.SYS
KEYBRD2.SYS
KEYBRD3.SYS
KEYBRD4.SYS
— драйвера клавиатуры, отвечающие за переключение раскладки и поддержку ввода с клавиатуры, по факту, для русского языка используются только KEYBRD2.SYS и KEYBRD3.SYS.

MODE.COM — утилита, выбирающая кодовую страницу и соответствующий шрифт.

Примечание: в DOS поддерживается только однобайтная кодировка, соответственно, в DOS используются шрифты, поддерживающие только однобайтные кодировки, т.е. не совместимые с Unicode-шрифтами и их форматами, используемых в более современных операционных системах.

Примечание: Пусть все файлы находятся в каталоге C:\DOS\ (при необходимости, замените путь на свой).

Далее, прописываем в CONFIG.SYS следующие команды:

device=C:\DOS\display.sys con=(ega,,1)
Country=007,866,C:\DOS\country.sys

CONFIG.RUS на PasteBin

А в AUTOEXEC.BAT следующие:

C:\DOS\MODE.COM con codepage prepare=((866) C:\DOS\ega3.cpi)
C:\DOS\MODE.COM con codepage select=866
C:\DOS\KEYB.COM ru,,C:\DOS\keybrd3.sys

Переключение клавиатуры

Вовчик Воротов aka Bill Gates, так и не додумался (аж до самой «смерти» DOS’а) о том, что люди захотят как-то задать переключение раскладки клавиатуры, потому без правки HIEW или другим HEX-редактором (а еще надо знать, где поправить) просто так изменить ее не получится, но можно сделать это сменой драйвера клавиатуры.

Если вы хотите, чтоб переключение на английский осуществлялось Left ALT + Left SHIFT, а на русский Right ALT + Right SHIFT, то оставьте все как есть.

Другой вариант, это Left CTRL + Left SHIFT (английская раскладка) и Right CTRL + Right SHIFT (русская раскладка). Для второго способа, надо в AUTOEXEC.BAT заменить keybrd3.sys на keybrd2.sys

Ссылки на файлы

KEYRUS.COM (ZIP-архив с Mega.NZ)
Краткая инструкция к KEYRUS.COM на MEGA.NZ (TXT, DOS, RUS)
Краткая инструкция к KEYRUS.COM на PasteBin
SPEEDKEY.COM (ZIP, Mega.NZ)
Файлы для официальной русификации DOS (для DOS 7.1)

Подключение RAW образа диска в Windows

Преамбула

Захотел запилить еще пару образов DOS, как для себя, так и для дела, пока сижу на складе и ковыряю в носу, но линуксовый ноут оставил дома, так что встал вопрос, чем можно примонтировать RAW образ диска, т.е. тот, который создавался с помощью dd или fsutil в Windows.

Решение

Нашел программку OSFMount.

Плюсы:
+ Бесплатная
+ Поддерживает, кроме RAW-дисков, которые не поддерживает почти никто, еще и кучу других форматов (см. ниже).
+ Может смонтировать образ как RAM-диск
+ Можно создавать новые образы в RAM
+ Форматировать (некоторые форматы)
+ Увеличивать размер (некоторые форматы)
+ Подключать, как съемное устройство
+ Конвертировать одни форматы в другие (некоторые форматы)

Минусы
— Только Windows 7 и выше
— Если подмонтировать раздел диска из образа на ту же букву диска, где был ранее подмонтирован образ HDD из WMware, то откроется ранее подмонтированный диск WMware. Решение — монтировать на другую букву или перезагрузить винду.

Поддерживаемые форматы

Как смонтировать образ

1. Запускаем программу, заходим в меню File —> Mount new virtual disk… или жмем Alt+N.

2. Выбираем Image file [1]
3. Букву диска [3]
4. Drive type (тип диска) лучше оставить в Auto, он прекрасно определяет сам, но если вдруг перепутал (в редких случаях может спутать Floppy и HDD), то можно поменять
5. При необходимости снять галочку Read-only drive (только для чтения) [4] и поставить Mount as removable device… (смонтировать, как съемное устройство) [5]
6. Выбрать файл образа (нажать кнопку ) [2]
7. Если на образе есть разделы, программа их обнаружит, и предложит выбрать нужный:


Программа определит формат и нужные параметры, после нажатия ОК в предыдущем окне, диск будет смонтирован и появится в главном окне программы.

Открыть можно прямо отсюда, двойным кликом по строке в таблице, или нажатием клавиши Enter на соответствующей строке.

Вот мой минимальный образ DOS для загрузки по сети (PXE):

Размонтировать — кнопкой Dismount или клавишей DEL, выбрав в таблице подмонтированный образ.

Скачать

Официальная страничка программы, краткая инструкция (на буржуйском) и ссылки на скачивание
Версия x86
Версия x64
Версия x64 (последнее обновление) (я не тестировал)
Копия (все три инсталлятора) на Mega.NZ

Официальная родная загрузочная дискета от MS-DOS 7.1 (Windows 98 SE)

Нашел таки живую, физическую загрузочную дискету с DOS’ом от Windows 98 SE которая была в родном комплекте (диск+дискета), пришлось поковыряться, но слил оригинальный образ, благо все хранилось чуть ли не в вакуумной упаковке, так что снялось до последнего сектора без ошибок.

Часть конфигурационного файла SYSLINUX

Для загрузки образа по сети или с CD-диска.

LABEL winb98se
    menu label Boot floppy Win98se DOS image
    kernel modules/memdisk
    initrd distrib/dos/winb98se/winb98se.img
    append floppy

Скачать

Скачать образ дискеты с MEGA.NZ

Образ Windows 3.11 и Microsoft Office.

Некоторым образом готовимся к санкциям.
В интернеты пока не получилось выйти, но по локалке оно вроде соединяется. Хотя, конечно, для полного теста надо найти две 486-х машины, пока есть одна, и та 386-я, не нашел ISA-карты для нее, а второй — третий пень

Скачать образ с Mega.nz (IMG/GZip)

Запуск Windows 3.11 с Word и Excel

Преамбула

Один из юзеров lj.rossia.org намедни решил поностальгировать и поиграться с DOS’ом, и в это же время мне попался образ готовой системы с Windows 3.11, ну как образ — на самом деле это был бэкап установленной уже системы, но без, собственно DOS 6.22, зато в Windows уже был установлен Word, Excel и даже какая-то поддержка сети. Со всем этим, в свое время, ИРЛ я имел только шапочное знакомство, так что попытаюсь реанимировать старый бэкап.

Начальная настройка

Запустилось!

Дальнейшая настройка

Office работает!

Word:


Excel:


Остальное

Установка Windows XP из-под DOS, самый старый способ установки XP с жесткого диска вручную.

Преамбула

Вызвали тут к клиенту, у которого на станке с ЧПУ отвалилось рабочее место оператора, оказалось, накрылась винда. АРМ представляло из себя весьма древний комп с Windows XP и совтом для станка на борту. Именно, не софтом, а совтом, sovt’ом когда-то называли софт, разработанный в СССР, так и тут — второй раз за неделю сталкиваюсь с колхозом, написанным сумрачным российским гением под сумрачные российские разработки в лохматых годах.

Машина оказалась не раритетной, но уже винтажной.

Сетевая карта внешняя, PCI, без PXE-загрузчика, так что загрузка по сети отмелась сразу же. Слава Ктулху, с флэшек оно все-таки грузилось.

Везти машину ко мне домой или в офис смысла не было. На флешках, взятых с собой, была мультизагрузочная, подготовленная с помощью YUMI с Acronis Disk Director, Hiren’s Boot CD и виндой XP на борту, но оказалось, что для установки винды из образа в машине мало оперативной памяти, распаковывать его некуда.

Но Hiren’s Boot CD после некоторого шаманства, загрузился с WinPE, удалось слить совтину от станка.

Образ винды XP был с собой, чистый дистрибутив, перенесенный с помощью Rufus на флэшку, но это тоже не помогло, после копирования файлов в текстовом режиме установщика, на этой машине установщик винды, терял флэшку и сыпался с невнятными ошибками.

Но тут я вспомнил! XP можно установить из DOS-окружения! А почему бы и не попробовать! DOS-то мы раздобудем!

Подготовка флэшки для восстановления системы.

Сначала, с помощью Rufus я сделал флэшку с Hiren’s Boot CD (ссылки на софт см. в конце заметки), на нее записал в каталог DISTR распакованный из образа ISO дистирибутив Windows XP, драйвера (в данном случае, пришлось воспользоваться старой версией DriverPack Solution), необходимый софт от АРМ станка (был слит заранее, вам не надо).
Проверяем, чтоб в настройках Rufus была выставлена файловая система FAT32 и MBR для компьютеров с BIOS или UEFI-CSM.

Также может понадобиться какая-нибудь форматилка (утилита для разметки и форматирования) жесткого диска, у меня загрузилась старая версия Acronis Disk Director на отдельной флэшке.

Далее под катом

Файлы

Минимальные файлы DOS (HIMEM.SYS, SMARTDRV.EXE, AUTOEXEC.BAT, CONFIG.SYS):

Скачать с Mega.NZ
Скачать с Google.Drive
Hiren’s Boot CD 15.2

BAT/CMD. Задержка (тайм-аут), пауза, аналог команды sleep Linux в DOS/Windows

Преамбула

Почему-то Вовчик Воротов еще со времен DOS не мог в командный процессор добавить встроенную команду sleep <секунд>, которая обеспечивает паузу в скрипте BAT/CMD, как это делается в том же bash. Но есть насколько решений.

Использование утилиты CHOICE.

Совместимость: командные процессоры, начиная с DOS 6.00, включая все версии Windows.

Утилита CHOICE.EXE изначально предназначена для запроса ответа пользователя (Да/нет), например, вызов команды

choice /M "Request Text"

где,
"Request Text" — текст вопроса

отобразит в консоли следующее:

Request Text [Y,N]?

Пользователь должен будет нажать клавишу Y или N, код возврата можно будет отследить в BAT-скрипте в переменной %ERRORLEVEL%, Y1 N2.

Однако, можно сделать из команды CHOICE задержку в скрипте, используя следующий синтаксис:

choice /T [секунд] /D [любой_символ] >nul

где,
/T [секунд] — включить задержку на [секунд] секунд.
/D [любой_символ] — ответ по умолчанию (без него не будет работать параметр /T).
>nul — отправить вывод сообщения команды в >nul, дабы не загрязнять вывод скрипта.

Например:

choice /T 1 /D y >nul

установит задержку в одну секунду.

+ Максимально совместимая команда, начиная с DOS 6.00.
— Не является встроенной командой, может отсутствовать в сборках Windows/DOS или образах Windows PE/загрузочных образах DOS
— Команда может спровоцировать зависание скрипта на неопределенный срок, если скрипт был вызван в определенных условиях, когда командный процессор cmd.exe был вызван иным приложением Windows, выполняющим перехват STDOUT консоли.

Справка по команде

Команда TIMEOUT

Совместимость: Windows 7 и выше.

Синтаксис:

timeout /T [секунд]
или
timeout [секунд]

где,
[секунд] — время в секундах.

+ К Windows 7 Вовчик Воротов таки озаботился командой, позволяющей делать стандартную задержку в BAT-скриптах.
— Нет в более ранних версиях Windows и DOS
— Если BAT-файл запущен в приложении, перехватывающем STDOUT (консольный вывод), могут случиться необоснованные глюки.
— Не является встроенной командой, может отсутствовать в сборках Windows или образах Windows PE

Пример:

timeout /T 1 >nul

Справка по команде

Команда WAITFOR

Совместимость: Windows 7 Professional и выше.

Вообще эта команда предназначена для другого, она отправляет или ожидает системного сообщения. Примерно того же, чем являются системные сообщения в Linux, например SIGTERM и SIGKILL, хотя и весьма условно — в Windows они устроены несколько по-другому. Если программе указать заведомо несуществующее системное сообщение и время ожидания — программа сработает как пауза в BAT/CMD скрипте:

waitfor /T [время] [сообщение(строка)] 1>nul 2>nul

где,

/T [время][время] время ожидания, секунд.
[сообщение(строка)] — можно использовать любую случайную строку, не совпадающую с известными системными сообщениями.
1>nul — перенаправление стандартного потока вывода (STDOUT) в устройство nul.
2>nul — перенаправление стандартного потока ошибок (STDERR) в устройство nul.
Два последних переопределения используются для того, чтобы не замусоривать вывод скрипта.

Пример (скрипт будет ожидать 1 секунду):

waitfor /T 1 zhzhz 1>nul 2>nul

+ Не вызывает зависаний при перехвате консольного вывода скрипта внешним приложением
— Нет в более ранних версиях Windows/DOS
— Не является встроенной командой, может отсутствовать в сборках Windows или образах Windows PE

Справка по команде

Нестандартное использование команды ping

Совместимость: DOS, с установленными программами поддержки сети, все версии Windows

ping на locallhost можно использовать, как команду для задержки в BAT-файле. Хотя, этот способ не рекомендуется использовать, т.к. время задержки может отличаться в зависимости от количества отправленных пакетов, «железа» компьютера или версии ОС.

Пример:

ping -n 3 127.0.0.1 >nul

127.0.0.1 — IP-адрес localhost

-n 3, т.е. 3 пакета отправленные на localhost дают примерное время ожидания в 1 секунду на Windows 7, на ноутбуке HP Pavilion

+ Есть во всех версиях Windows/DOS где есть стандартная поддержка сети от MS
+ При перехвате STDOUT не глючит
— Время задержки определяется весьма приблизительно.

Внешние утилиты

Самостоятельных реализаций sleep/timeout написана вагон и маленькая тележка. Например, одну из них можно скачать на GitHub:

sleep (console application)

Запуск:

sleep <секунд>

Пример:

sleep 1 >nul

+ Сбоев не обнаружено
+ Совместимость: Все версии Windows x86/x64
+ Имеются исходники, можно пересобрать под DOS при наличии компилятора Freepascal.
— Внешняя нестандартная утилита, придется таскать вместе с BAT/CMD файлом.

Впрочем, таких утилит много, все имеют свои плюсы и минусы. Выбирайте под конкретную задачу нужный вам способ.

CMD/BAT Переопределение (redirect) STDERR (стандартного потока вывода ошибок) куда-нибудь.

Ну, например, в файл или в nul.

Не знал, что в Windows работает линуксовый синтаксис:

someprogramm.exe parameters 1>nul 2>nul

Или так:

someprogramm.exe parameters >nul 2>nul

1> или > — стандартный поток вывода (STDOUT)
2> — стандартный поток вывода ошибок (STDERR)

Причем, если бы в грозу не вырубило интернет, хрен бы узнал. Никогда не надо было, а тут понадобилось. Психанул и написал как в Линуксе, ВНЕЗАПНО, сработало.

Вовчик Воротов даже куски синтаксиса у никсоидов тырил?

Забавные утилиты под DOS

CALENDER.EXE — Универсальный календарь на любой год.
Я проверял с 0001 г. н.э до 6666 г. н.э.


Read more…

CLOCK.EXE — большие красивые часы на весь экран
(с будильником), есть защита от копирования
Но вроде она снята. Есличо, запустить с параметром
/Hide и ввести пароль polkol

HELP401.EXE — Небольшая утилита для помощи в Pascal
— Таблица предела переменных
— Цветовая палитра (подбор цвета текста на фоне)
— Работа с файлами баз данных (разрезать или
слить файл)
— Нумерация строк текстового файла
— Кодировка текстового файла
(сдвигает все символы в тексте на какое-то
число байт)
— Кодировка по заданному коду
(делает то же самое, только по заданному
коду)
-Таблица ASCII



Read more…

PEREVOD.EXE — Конвертер из WIN 1251 в DOS 866 и
обратно.

TIMER.EXE, TIMER401.EXE — предыдущая версия часов.
Как-то можно менять название организации
(сохраняется в экзешнике), но как — я не разобрался.
Имеется защита от копирования, по умолчанию неактивна.
Чтобы активировать надо запустить часы с параметром
install (без слэшей и строчными буквами) и ввести
любое слово
Чтобы деактивировать — то же самое, но ввести
пароль Кононов (фамилия разработчика).

Скачать архив с программами с Mega.NZ