<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блоги: заметки с тегом dos</title>
<link>https://blogengine.ru/blogs/tags/dos/</link>
<description>Автоматически собираемая лента заметок, написанных в блогах на Эгее</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.0 (v4079e)</generator>

<itunes:subtitle>Автоматически собираемая лента заметок, написанных в блогах на Эгее</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit>no</itunes:explicit>

<item>
<title>Программа с именем 0xFF</title>
<guid isPermaLink="false">130929</guid>
<link>https://bolknote.ru/all/programma-s-imenem-0xff/</link>
<pubDate>Thu, 26 Sep 2024 10:59:20 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/programma-s-imenem-0xff/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;В ДОСе, как может кто-то ещё помнит, была своя, отличная от всего, кодировка русских букв, так называемая &lt;i&gt;CP866&lt;/i&gt;. Это однобайтовая кодировка, то есть в таблице символов всего 256 позиций.&lt;/p&gt;
&lt;p&gt;Поэтому странно, что пробельных символов в ней два, один из них — обычный пробел с кодом 32, именно его операционная система считает пробелом, второй — с кодом 255, он выводится как пробел, но считается обычным символом.&lt;/p&gt;
&lt;p&gt;Не помню, использовалось ли это свойство для чего-то полезного или интересного, но на днях &lt;a href="https://www.opennet.ru/openforum/vsluhforumID3/134899.html#50"&gt;прочитал&lt;/a&gt; как развлекались с его помощью в те времена:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;А 255 символ запретили? 30 лет назад, еще под &lt;i&gt;MSDOS&lt;/i&gt;, переименовали утилиту переворота экрана в 255 символ и вставили в &lt;i&gt;autoexec.bat&lt;/i&gt;. Хозяин компа уже психовать начал и монитор переворачивать :)) Показали ему прикол…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ну то есть переименовали программу так, чтобы её имя выглядело как пробельный символ и добавили её в скрипт автозагрузки. Хозяин компьютера, видимо, проверял скрипт, ничего не находил и не понимал что происходит.&lt;/p&gt;
&lt;p&gt;Мне стало интересно проверить — действительно ли это работает? Благо ДОС можно сейчас запустить &lt;a href="https://www.pcjs.org/software/pcx86/sys/dos/microsoft/6.22/"&gt;даже в браузере&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Тут надо пояснить, что «настоящий» пробел для этого не годится — ДОС просто не распознает его в автозагрузке как имя файла для запуска.&lt;/p&gt;
&lt;p&gt;Я не знаю как раньше вводили символ с кодом 255 в командную строку, поэтому просто набросал программу на ассемблере, которая переименовывает файл &lt;tt&gt;mem.exe&lt;/tt&gt; (которая обычно есть в составе ДОСа) в &lt;tt&gt; .com&lt;/tt&gt;:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="asm"&gt;org 100h

section .data
    oldName db &amp;#039;MEM.EXE&amp;#039;, 0
    newName db 255, &amp;#039;.COM&amp;#039;, 0

section .text
global _start

_start:
    mov ah, 56h
    lea dx, oldName
    lea di, newName
    int 21h

    mov ax, 4C00h
    int 21h&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Необходимое пояснение: расширение обязательно, иначе ДОС не поймёт, что файл запускаемый. При запуске его можно не указывать — операционка догадается сама что именно подставить.&lt;/p&gt;
&lt;p&gt;На следующем шаге я скомпилировал программу у себя прямо в «МакОСи» и вывел в шестнадцатеричном виде:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="plaintext"&gt;$ hexdump -C &amp;lt;(nasm -f bin rename.asm -o /dev/stdout)
00000000  b4 56 8d 16 14 01 8d 3e  1c 01 cd 21 b8 00 4c cd  |.V.....&amp;gt;...!..L.|
00000010  21 00 00 00 4d 45 4d 2e  45 58 45 00 ff 2e 43 4f  |!...MEM.EXE...CO|
00000020  4d 00                                             |M.|
00000022&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Далее набрал её в кодах при помощи команды &lt;tt&gt;DEBUG&lt;/tt&gt; и запустил. В текущей директории появилась программа с нужным именем:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2024.09.26.1@2x.webp" width="872" height="477" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Для последнего шага мне нужно было как-то снова получить символ 255 в командной строке. Для этого я перенаправил вывод команды &lt;tt&gt;DIR&lt;/tt&gt; в файл &lt;tt&gt;START.BAT&lt;/tt&gt; и отредактировал получившееся при помощи команды &lt;tt&gt;EDIT&lt;/tt&gt; — убрал всё лишнее, кроме символа с именем команды (кажется у меня в файл попали ещё и лишние переводы строки, но они роли не играют).&lt;/p&gt;
&lt;p&gt;Попробовал запустить, сработало!&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2024.09.26.2@2x.webp" width="872" height="477" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>86-DOS version 0.11</title>
<guid isPermaLink="false">125298</guid>
<link>https://bolknote.ru/all/86-dos-version-0-11/</link>
<pubDate>Wed, 03 Jan 2024 01:13:48 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/86-dos-version-0-11/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Мне интересно иногда посмотреть на старые операционные системы и программы, которые я не застал или пропустил в своё время. Предтечу &lt;i&gt;MS-DOS&lt;/i&gt;, которая называлась &lt;i&gt;86-DOS&lt;/i&gt;, я уже &lt;a href="https://bolknote.ru/all/4637/"&gt;как-то видел&lt;/a&gt;, но там речь шла о версии 1.0, а тут в доступе &lt;a href="https://web.archive.org/web/20240102193555/https://bitsavers.org/bits/SeattleComputerProducts/86-DOS/"&gt;появилась&lt;/a&gt; 0.11.&lt;/p&gt;
&lt;p&gt;Довольно долго разбирался как её запустить, опишу, чтобы не забыть, мало ли, вдруг когда-нибудь пригодится.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Первом делом скачиваем &lt;i&gt;IMD&lt;/i&gt;-образ операционной системы и распаковаем его из-под ДОСбокса &lt;a href="https://web.archive.org/web/20231129084550/http://dunfield.classiccmp.org//img/index.htm"&gt;набором утилит&lt;/a&gt; &lt;i&gt;ImageDisk 1.19&lt;/i&gt;. Получившийся после распаковки образ переименовываем в &lt;tt&gt;86dos.imd&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Качаем первый попавшийся эмулятор &lt;i&gt;Altairz80&lt;/i&gt; под требуемую операционную систему, компилируем, в папку эмулятора  кладём файлы &lt;tt&gt;scp86mon.txt&lt;/tt&gt;, &lt;tt&gt;scp86mon.rom&lt;/tt&gt; и образ операционной системы.&lt;/p&gt;
&lt;p&gt;Вводим команду &lt;tt&gt;./altairz80 scp86mon.txt&lt;/tt&gt;, потом уже там несколько раз «Ввод», латинскую &lt;tt&gt;B&lt;/tt&gt;, снова «Ввод» и, по идее, всё должно запуститься.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2024.01.02@2x.jpg" width="1000" height="550" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Версия &lt;i&gt;86-DOS&lt;/i&gt; версии 0.11, запущенная в эмуляторе &lt;i&gt;Altairz80&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Смотреть там, конечно, особо не на что, хотя есть редактор, ассемблер и шахматы, а так же работают кое-какие привычные со времён ДОСа команды — &lt;tt&gt;COPY&lt;/tt&gt;, &lt;tt&gt;DIR&lt;/tt&gt;, &lt;tt&gt;TYPE&lt;/tt&gt; и &lt;tt&gt;RENAME&lt;/tt&gt;. Из непривычных есть &lt;tt&gt;ERASE&lt;/tt&gt;, которая удаляет файл и &lt;tt&gt;CLEAR&lt;/tt&gt;, очищающая содержимое диска.&lt;/p&gt;
&lt;p&gt;Теперь могу говорить, что я своими собственными глазами видел самого раннего предка &lt;i&gt;MS-DOS&lt;/i&gt;, которого только можно найти в интернете.&lt;/p&gt;
</description>
</item>


</channel>
</rss>