Look! I remembered to post before December started this year!
Nov. 30th, 2025 02:42 amHello, friends! It's about to be December again, and you know what that means: the fact I am posting this actually before December 1 means
karzilla reminded me about the existence of linear time again. Wait, no -- well, yes, but also -- okay, look, let me back up and start again: it's almost December, and that means it's time for our annual December holiday points bonus.
The standard explanation: For the entire month of December, all orders made in the Shop of points and paid time, either for you or as a gift for a friend, will have 10% of your completed cart total sent to you in points when you finish the transaction. For instance, if you buy an order of 12 months of paid time for $35 (350 points), you'll get 35 points when the order is complete, to use on a future purchase.
( The fine print and much more behind this cut! )
Thank you, in short, for being the best possible users any social media site could possibly ever hope for. I'm probably in danger of crossing the Sappiness Line if I haven't already, but you all make everything worth it.
On behalf of Mark, Jen, Robby, and our team of awesome volunteers, and to each and every one of you, whether you've been with us on this wild ride since the beginning or just signed up last week, I'm wishing you all a very happy set of end-of-year holidays, whichever ones you celebrate, and hoping for all of you that your 2026 is full of kindness, determination, empathy, and a hell of a lot more luck than we've all had lately. Let's go.
The standard explanation: For the entire month of December, all orders made in the Shop of points and paid time, either for you or as a gift for a friend, will have 10% of your completed cart total sent to you in points when you finish the transaction. For instance, if you buy an order of 12 months of paid time for $35 (350 points), you'll get 35 points when the order is complete, to use on a future purchase.
( The fine print and much more behind this cut! )
Thank you, in short, for being the best possible users any social media site could possibly ever hope for. I'm probably in danger of crossing the Sappiness Line if I haven't already, but you all make everything worth it.
On behalf of Mark, Jen, Robby, and our team of awesome volunteers, and to each and every one of you, whether you've been with us on this wild ride since the beginning or just signed up last week, I'm wishing you all a very happy set of end-of-year holidays, whichever ones you celebrate, and hoping for all of you that your 2026 is full of kindness, determination, empathy, and a hell of a lot more luck than we've all had lately. Let's go.
Про память на i86
Nov. 29th, 2025 01:44 pmВ комментах возникло обсуждение способов расширения памяти на XT-шке. Вспомню исторические факты конспективно.
В незащищённом режиме 286 мог адресовать 64 килобайта сразу за первым мегабайтом. Эту область научились использовать, и назвали HMA. Но для совместимости приходилось жульничать с адресным сигналом A20. Драйвер HIMEM.SYS и иже с ним.
8088 и PC XT
Процессор 8088 имел 20 разрядов физического адреса. Поэтому адресовать мог только 2^20 = 1 мегабайт. Из них айбиэмовские инженеры отвели 640к для программ и 384к для хардвера (биосы, видеопамять). Позже придумали EMS, где в пространстве 384к создавалось окно, и через него можно было пролистывать несколько мегабайт дополнительной памяти. Драйвер EMM.SYS.286 и PC AT
У процессора 286 было уже 24 разряда физадреса. То есть уже 16 мегабайт памяти, но только в защищённом режиме. Что для MS-DOS не годилось.В незащищённом режиме 286 мог адресовать 64 килобайта сразу за первым мегабайтом. Эту область научились использовать, и назвали HMA. Но для совместимости приходилось жульничать с адресным сигналом A20. Драйвер HIMEM.SYS и иже с ним.
386
Тут уже 32-битный физадрес, и память хоть до 4 гигабайт. Драйвер EMM386.SYS.Может рашисты и хотят ядерной войны, но не получится
Nov. 29th, 2025 01:33 pmБорланд и его турбо компиляторы на XT-шке
Nov. 28th, 2025 04:13 pmОсвежим память про системы программирования на персональных компьютерах конца 80-х. Я накачал с сайта winworldpc.com разных компиляторов и устанавливаю их один за одним на XT-шке. Начал с Борланда как самого уважаемого. Складывать буду на Гитхабе:

- TASM201 - Turbo Assembler 2.01
- TASM40 - Turbo Assembler 4.0
- TBASIC - Turbo Basic
- TPAS - Turbo Pascal 3.0
- TC20 - Turbo C 2.0
- TC201 - Turbo C 2.01
- TCPP30 - Turbo C++ 3.0
- BCPP20 - Borland C++ 2.0

Компилируем Hello World на XT-шке
Nov. 28th, 2025 12:45 amДля ELKS есть и Си компилятор: проект 8086 Toolchain. Если собрать его по инструкции, он интегрируется в образ диска ELKS. Вот пример компиляции классического Hello World:

Смотрим получившийся ассемблерный код.


Смотрим получившийся ассемблерный код.

Open Watcom
Nov. 28th, 2025 12:10 amПомните Си компилятор Watcom из 90-х? Оказывается, он продолжает существовать в опенсорсном виде. Свежие бинарники можно скачать по ссылке:
github.com/open-watcom/open-watcom-v2/releases/download/Current-build/ow-snapshot.tar.xz
Поддерживаются языки Си, Си++ и Фортран, платформы DOS, OS/2, Win16, Win32, Win64, Linux i386, Linux x64.
github.com/open-watcom/open-watcom-v2/releases/download/Current-build/ow-snapshot.tar.xz
Поддерживаются языки Си, Си++ и Фортран, платформы DOS, OS/2, Win16, Win32, Win64, Linux i386, Linux x64.
Юникс на XT-шке
Nov. 27th, 2025 03:46 pmПроблема с делением на ноль в ядре ELKS неожиданно разрешилась сама собой. Только я примерился отладочную печать вставлять, собрал для начала ELKS из свежих исходников. Процесс несложный, только делать это надо в линуксе.

В процессе изучения сборки ELKS выяснилось, что вовсе необязательно возиться с флопиками. Можно построить сразу образ жёсткого диска и записать на SD карточку:

Грузимся с SD карточки:

Вот вам Линукс на XT-шке, а вы не верили. 😀
Если у вас есть PC XT или AT с адаптером XT-IDE, готовый образ диска с установленным Линуксом можно скачать здесь: elks-v0.9.0-hd64-c86.zip. Я обновил образ, теперь там Си компилятор в копмлекте.
Установку ELKS на чистый диск с загрузочного флопика я тоже проверил. Проще чем в MS-DOS: всего две команды mkfs и sys.

Это базовая юниксная система. Дальше будем выяснять, как установить Си компилятор. Задача собрать Демос Командер.
Получаем образ флопика:sudo apt-get install texinfo libncurses5-dev libelf-dev ncompress bison flex
git clone https://github.com/ghaerr/elks.git
cd elks
./build.sh
Только это 1.44 мегабайта, а надо 360 килобайт. Не вопрос.$ ls -l image/*.img
-rw-rw-r-- 1 vak vak 1474560 Nov 27 08:15 image/fd1440.img
Дай, думаю, загружусь для начала с этого флопика, вдруг упадёт как-то иначе. И ядро стартовало в лучшем виде! Видно, недавно починили проблему кривого CMOS.$ . ./env.sh
$ cd image
$ make fd360-minix
...
$ ls -l fd360-minix.img
-rw-rw-r-- 1 vak vak 368640 Nov 27 08:20 fd360-minix.img

В процессе изучения сборки ELKS выяснилось, что вовсе необязательно возиться с флопиками. Можно построить сразу образ жёсткого диска и записать на SD карточку:
Имеем вот такой "жёсткий диск":$ cd image $ make hd64-minix
...
$ ls -l hd64-minix.img
-rw-rw-r-- 1 vak vak 67107840 Nov 27 08:47 hd64-minix.img
$ dd if=hd64-minix.img of=/dev/sda

Грузимся с SD карточки:

Вот вам Линукс на XT-шке, а вы не верили. 😀
Если у вас есть PC XT или AT с адаптером XT-IDE, готовый образ диска с установленным Линуксом можно скачать здесь: elks-v0.9.0-hd64-c86.zip. Я обновил образ, теперь там Си компилятор в копмлекте.
Установку ELKS на чистый диск с загрузочного флопика я тоже проверил. Проще чем в MS-DOS: всего две команды mkfs и sys.

Это базовая юниксная система. Дальше будем выяснять, как установить Си компилятор. Задача собрать Демос Командер.
Мультипортовка
Nov. 27th, 2025 02:07 pmПомните забытое слово из 80-х? Мультипортовая плата означала последовательный интерфейс COM (для модема), параллельный интерфейс LPT (для принтера) и интерфейс к игровому джойстику. И ещё на ней стояла важная фишка конкретно для XT: часы реального времени RTC. Благодаря литиевой батарейке часы постоянно шли, даже когда компьютер выключен.


Поскольку родной биос XT-шки ничего не знает про RTC, для автоматической установки времени в MS-DOS требовались отдельные утилитки типа GETCLOCK.COM и SETCLOCK.COM. Каждый производитель мультипортовок поставлял свои версии этих утилит. Совместимость их с материнскими платами была тонким местом.
Начиная с PC AT часы реального времени встроили в материнскую плату, и проблема совместимости RTC/CMOS снялась.
Эта конкретно плата называется DIO-200, производитель DFI. Соответствующий софт ещё предстоит отыскать.
Нашлось описание от модели DIO-200X: diamond-flower-dio-200x-users-manual.pdf. Но там RTC сделан на чипе MM58167, а у меня UM82C8167.


Поскольку родной биос XT-шки ничего не знает про RTC, для автоматической установки времени в MS-DOS требовались отдельные утилитки типа GETCLOCK.COM и SETCLOCK.COM. Каждый производитель мультипортовок поставлял свои версии этих утилит. Совместимость их с материнскими платами была тонким местом.
Начиная с PC AT часы реального времени встроили в материнскую плату, и проблема совместимости RTC/CMOS снялась.
Эта конкретно плата называется DIO-200, производитель DFI. Соответствующий софт ещё предстоит отыскать.
Нашлось описание от модели DIO-200X: diamond-flower-dio-200x-users-manual.pdf. Но там RTC сделан на чипе MM58167, а у меня UM82C8167.
Что с юниксами для XT-шки?
Nov. 26th, 2025 01:16 pmПрикольно, конечно, играть в Диггера как в юности, и мы ещё наиграемся. Но есть и более весёлые занятия на XT-шке. Вчера я провёл насыщенный вечер, выясняя шансы установить юникс на имеющемся хардвере.
Из юниксов для IBM PC XT (model 5160) существовали:Всё это я вчера опробовал, одно за другим. Все образы флопиков доступны в сети, и известно, что каждый из них кому-нибудь да удалось оживить на каком-нибудь симуляторе.
Но мне ж надо на реальном имеющемся железе. Подобрал я симулятор, воспроизводящий конфигурацию, максимально близкую к моей. Есть такой проект 86Box. Народ собрал качественную коллекцию конфигураций и образов ПЗУ компьютеров и периферии от разных производителей. Нашлась там и конфигурация, близкая к моей Generic XT clone, и видеоадаптер TVGA8900, а главное - дисковый контроллер XT-IDE. Всё это я сконфигурил и принялся ставить вышеуказанные юниксы.

С юниксами вот какая проблема. Всё упирается в обмен с жёстким диском. Создателями было задумано, чтобы чтение-запись диска делалась через системный вызов int 13h. Выполняется этот вызов биосом, находящимся в контроллере диска, и всё идёт как надо. Но юниксу неудобно ходить в биос. Юникс задуман по другому: драйвер диска находится в ядре и напрямую ходит в аппаратные регистры контроллера диска.
Все четыре упомянутые юниксы (Xenix, Venix, PC/IX и Minix) так и устроены. Они понимают только родной дисковый контроллер от IBM. А у меня XT-IDE, и в нем аппаратные регистры совсем другие. Нет шансов. Я честно попробовал загрузить каждый юникс и убедился, что установщик падает ровно на попытке работать с диском.
Однако есть свет в окошке! И это ELKS. Так называется проект, где народ поставил задачу протащитьверблюда Линукс через игольное ушко. Он же Гога, он же Жора Linux-86. Я наблюдал эту странную затею с середины 90-х. Думал применить для какого-нибудь встроенного хардвера, но пользы не выходило. Однако здесь он сыграл в полный рост. Загрузился с флопика и честно встал на диск под XT-IDE. Никаких вопросов. Осталось проделать то же самое не под 86Box, а на реальном железе, и у нас будет приличный юникс, даже с подключением к интернету.
Вот пример загрузки ELKS на симуляторе Turbo XT.

Из юниксов для IBM PC XT (model 5160) существовали:Всё это я вчера опробовал, одно за другим. Все образы флопиков доступны в сети, и известно, что каждый из них кому-нибудь да удалось оживить на каком-нибудь симуляторе.
Но мне ж надо на реальном имеющемся железе. Подобрал я симулятор, воспроизводящий конфигурацию, максимально близкую к моей. Есть такой проект 86Box. Народ собрал качественную коллекцию конфигураций и образов ПЗУ компьютеров и периферии от разных производителей. Нашлась там и конфигурация, близкая к моей Generic XT clone, и видеоадаптер TVGA8900, а главное - дисковый контроллер XT-IDE. Всё это я сконфигурил и принялся ставить вышеуказанные юниксы.

С юниксами вот какая проблема. Всё упирается в обмен с жёстким диском. Создателями было задумано, чтобы чтение-запись диска делалась через системный вызов int 13h. Выполняется этот вызов биосом, находящимся в контроллере диска, и всё идёт как надо. Но юниксу неудобно ходить в биос. Юникс задуман по другому: драйвер диска находится в ядре и напрямую ходит в аппаратные регистры контроллера диска.
Все четыре упомянутые юниксы (Xenix, Venix, PC/IX и Minix) так и устроены. Они понимают только родной дисковый контроллер от IBM. А у меня XT-IDE, и в нем аппаратные регистры совсем другие. Нет шансов. Я честно попробовал загрузить каждый юникс и убедился, что установщик падает ровно на попытке работать с диском.
Однако есть свет в окошке! И это ELKS. Так называется проект, где народ поставил задачу протащить
Вот пример загрузки ELKS на симуляторе Turbo XT.

Клавиатура для XT-шки
Nov. 24th, 2025 09:22 pmПриехала клавиатура для коллекционной писишки: аутентичная Compaq в идеальном состоянии. Характерный признак древности: отсутствие клавиши Windows. 😀



Только клавиатурный интерфейс не родной XT, а более поздний IBM PS/2. У XT-шки не только разъём, но и протокол отличается. У всех писишек начиная с AT клавиатуры работали одинаково: 1 стартовый бит, 8 данных, 1 чётность и 1 стоп бит. У XT же всё по другому: 2 стартовых, 8 данных, 1 бит make/break, и 1 стоповый. Но ничего, новозеландцы придумали адаптер, транслирующий протокол на лету.




Только клавиатурный интерфейс не родной XT, а более поздний IBM PS/2. У XT-шки не только разъём, но и протокол отличается. У всех писишек начиная с AT клавиатуры работали одинаково: 1 стартовый бит, 8 данных, 1 чётность и 1 стоп бит. У XT же всё по другому: 2 стартовых, 8 данных, 1 бит make/break, и 1 стоповый. Но ничего, новозеландцы придумали адаптер, транслирующий протокол на лету.

Антисемитизм справа
Nov. 24th, 2025 09:27 pm( Groypers )
( Справа налево )
( Сколько их )
( Х Локация )
( Сухой остаток )
( Справа налево )
( Сколько их )
( Х Локация )
( Сухой остаток )
Crosspost: https://arbat.livejournal.com/1179332.html
Переводим XT-шку на видеоадаптер VGA
Nov. 23rd, 2025 02:07 pmСтандартом де-факто для PC XT был видеоадаптер CGA (1981 год разработки). Схемотехнически он красиво сделан, но разрешения и цветности недоставало. К 1984-му году появился EGA, а в 1987-м VGA. В наши дни всё ещё можно отыскать дисплеи с интерфейсом VGA. Есть и недорогие конвертеры VGA в современный интерфейс HDMI.
Существовали видеоадаптеры VGA для 8-битной шины ISA, но сейчас найти их крайне тяжело. К счастью, отыскался Trident TVGA8900C, который переключается в режим восьмибитности. Для этого надо на нём установить джампер J4. На моей плате джампер не был установлен, пришлось просто запаять перемычку.

Вынимаем из XT-шки плату CGA и вставляем VGA. На материнской плате надо изменить микропереключатели, чтобы биос не пытался искать видеопамять CGA.

Надо поставить SW 5 и 6 в положение "on", то есть "no display adapter". Фишка в том, что CGA (и MDA) обслуживаются основным биосом. А на платах EGA и VGA уже работает свой собственный биос.

Загружаемся - совсем другое дело! Сравните с CGA.


И даже тетрис повеселел. Для сравнения смотрите видео с CGA.

Теперь куча разных игрушек должна запускаться. Буду собирать коллекцию.
Существовали видеоадаптеры VGA для 8-битной шины ISA, но сейчас найти их крайне тяжело. К счастью, отыскался Trident TVGA8900C, который переключается в режим восьмибитности. Для этого надо на нём установить джампер J4. На моей плате джампер не был установлен, пришлось просто запаять перемычку.

Вынимаем из XT-шки плату CGA и вставляем VGA. На материнской плате надо изменить микропереключатели, чтобы биос не пытался искать видеопамять CGA.

Надо поставить SW 5 и 6 в положение "on", то есть "no display adapter". Фишка в том, что CGA (и MDA) обслуживаются основным биосом. А на платах EGA и VGA уже работает свой собственный биос.

Загружаемся - совсем другое дело! Сравните с CGA.


И даже тетрис повеселел. Для сравнения смотрите видео с CGA.

Теперь куча разных игрушек должна запускаться. Буду собирать коллекцию.
Грузим XT-шку с SD карточки
Nov. 22nd, 2025 07:09 pmНет предела совершенству. В развитие XT-IDE, фирма TexElec выпускает контроллер, позволяющий использовать стандартную SD карточку в качестве диска в компьютере PC XT.

Вот вид сбоку. Интересно, что "железку" (крепёжную скобу) к платам ISA теперь можно изготавливать на 3D принтере.

Самая маленькая SD карточка в моём запаснике имеет размер 250 мегабайт. Команда fdisk разбивает это дело на восемь разделов, с C: до J:. Вот так выглядит загрузка XT-шки. Можно видеть сообщения дискового биоса.


Вот вид сбоку. Интересно, что "железку" (крепёжную скобу) к платам ISA теперь можно изготавливать на 3D принтере.

Самая маленькая SD карточка в моём запаснике имеет размер 250 мегабайт. Команда fdisk разбивает это дело на восемь разделов, с C: до J:. Вот так выглядит загрузка XT-шки. Можно видеть сообщения дискового биоса.

XT-IDE
Nov. 22nd, 2025 05:06 pmК 2000-м годам ретро энтузиасты осознали, что древние компьютеры PC XT почти вымерли, по одной и той же причине: все жёсткие диски типа MFM заржавели и вышли из строя.
Возник опенсорсный проект по разработке нового дискового контроллера под названием XT-IDE. Контроллер для 8-битной шины ISA позволяет подключать стандартные IDE-накопители, в том числе CompactFlash. Также сделали качественный биос к дисковому контроллеру. Исходники: github.com/glitchwrks/xt_ide
Нынче фирма The Glitch Works продаёт контроллеры XT-IDE на Ebay как в виде конструктора для самостоятельной пайки, так и в собранном виде. Один такой контроллер я и приобрёл. А также переходник для CompactFlash к нему.

Установка джамперов:

Вот такой экран загрузки биоса. Стрелками можно выбрать, откуда грузиться: диск C, флопики A или B, или загрузчик в ПЗУ.

Чтобы карточка CompactFlash надёжно опозналась, её лучше сначала "стереть" на другом компьютере. То есть записать несколько килобайт нулей, к примеру Линуксной командой "dd bs=1k count=100 if=/dev/zero of=/dev/sdX", где sdX - имя флешки на вашем компьютере.
После чего грузим MS-DOS с флопика и командой fdisk создаём разделы. Двухгигибайтную флешку XT-IDE видит как диск с 997 цилиндрами и 63 головками. Раздел максимально разрешённого досовского размера (32 мегабайта) занимает 16 цилиндров. Для начала создаём раздел C.
Снова перезагружаемся с флопика и форматируем раздел С как системный (format c: /s). Переписываем туда файлы MS-DOS с флопика, и диск готов. Добавим Нортон Командер для удобства. Настроим config.sys и autoexec.bat.
Перезагружаемся с диска. Вот так теперь выглядит писишка:

Пробовал я и хитачевский микродрайв. XT-IDE опознаёт его без проблем, но поскольку он 4-гигабайтный, показывает как диск с 127 головками. От этого MS-DOS маленько дуреет. Создать раздел даёт, но читать его не может.
Возник опенсорсный проект по разработке нового дискового контроллера под названием XT-IDE. Контроллер для 8-битной шины ISA позволяет подключать стандартные IDE-накопители, в том числе CompactFlash. Также сделали качественный биос к дисковому контроллеру. Исходники: github.com/glitchwrks/xt_ide
Нынче фирма The Glitch Works продаёт контроллеры XT-IDE на Ebay как в виде конструктора для самостоятельной пайки, так и в собранном виде. Один такой контроллер я и приобрёл. А также переходник для CompactFlash к нему.

Установка джамперов:

Вот такой экран загрузки биоса. Стрелками можно выбрать, откуда грузиться: диск C, флопики A или B, или загрузчик в ПЗУ.

Чтобы карточка CompactFlash надёжно опозналась, её лучше сначала "стереть" на другом компьютере. То есть записать несколько килобайт нулей, к примеру Линуксной командой "dd bs=1k count=100 if=/dev/zero of=/dev/sdX", где sdX - имя флешки на вашем компьютере.
После чего грузим MS-DOS с флопика и командой fdisk создаём разделы. Двухгигибайтную флешку XT-IDE видит как диск с 997 цилиндрами и 63 головками. Раздел максимально разрешённого досовского размера (32 мегабайта) занимает 16 цилиндров. Для начала создаём раздел C.
Снова перезагружаемся с флопика и форматируем раздел С как системный (format c: /s). Переписываем туда файлы MS-DOS с флопика, и диск готов. Добавим Нортон Командер для удобства. Настроим config.sys и autoexec.bat.
Перезагружаемся с диска. Вот так теперь выглядит писишка:

Пробовал я и хитачевский микродрайв. XT-IDE опознаёт его без проблем, но поскольку он 4-гигабайтный, показывает как диск с 127 головками. От этого MS-DOS маленько дуреет. Создать раздел даёт, но читать его не может.
Родной жёсткий диск от PC XT
Nov. 22nd, 2025 01:45 pmУвы, диск не заработал. Не раскручивается чисто механически, похоже. За 38 лет подшипники приказали долго жить.
Полноразмерная плата в писишку, в задней части которой закреплён жёсткий диск.

Контроллер WD1002 в идеальном состоянии. Интересный может получиться проект для самоделкиных: заменить неработающий жёсткий диск репликой на основе Raspberry Pi Zero или типа того. Интерфейс ST506 должно быть нетрудно повторить.

Жесткий диск Miniscribe 8438 внешне прекрасно сохранился, но больше не жужжит.



При включении диск подмигивает красной лампочкой, показывая некий код ошибки.
Понятно, что с этим диском ловить нечего, и надо искать замену. К счастью, современная замена существует: так называемый контроллер XT IDE. Про него в следующем посте.
Полноразмерная плата в писишку, в задней части которой закреплён жёсткий диск.

Контроллер WD1002 в идеальном состоянии. Интересный может получиться проект для самоделкиных: заменить неработающий жёсткий диск репликой на основе Raspberry Pi Zero или типа того. Интерфейс ST506 должно быть нетрудно повторить.

Жесткий диск Miniscribe 8438 внешне прекрасно сохранился, но больше не жужжит.



При включении диск подмигивает красной лампочкой, показывая некий код ошибки.
Понятно, что с этим диском ловить нечего, и надо искать замену. К счастью, современная замена существует: так называемый контроллер XT IDE. Про него в следующем посте.
Читаем содержимое флопиков на маке
Nov. 20th, 2025 11:19 pmКак на маке, имея образ флопика, достучаться до его содержимого? Лайфхак:
Флопик будет подключен как файловая система, как если бы его воткнули в порт USB:hdiutil attach -imagekey diskimage-class=CRawDiskImage floppy.img
/dev/disk8 /Volumes/NO NAME
Взаимодействуйте разумом с материей
Nov. 20th, 2025 05:38 pmВсе мозги разбил на части, все извилины заплёл. Интересно, подтверждаются ли эксперименты этого чувака независимыми исследователями.



