vak: (Daemon)
Serge Vakulenko ([personal profile] vak) wrote2025-12-16 02:48 am

Запускаем NetBSD на древнем 486

Чтобы влезть в 16 мегабайт памяти, пришлось откатиться до версии NetBSD 4.0.1 (2008 год).

Установщик удобный, но надо иметь навыки работы с таблицы разделов на диске. Пакеты ставятся по сети через HTTP.



Первый вход в систему после установки.



Подробности конфигурации периферии можно видеть из dmesg. Настроил SSH в обе стороны - есть некоторые устарелости, но в целом работает.
$ /sbin/dmesg
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 4.0.1 (GENERIC) #0: Tue Oct  7 22:58:48 PDT 2008
        builds@wb30:/home/builds/ab/netbsd-4-0-1-RELEASE/i386/200810080053Z-obj/home/builds/ab/netbsd-4-0-1-RELEASE/src/sys/arch/i386/compile/GENERIC
total memory = 15996 KB
rbus: rbus_min_start set to 0x20000000
avail memory = 5532 KB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
mainbus0 (root)
ACPI Error (tbxfroot-0775): No valid RSDP was found [20060217]
ACPI Exception (tbxfroot-0531): AE_NOT_FOUND, RSDP structure not found - Flags=8 [20060217]
ACPI Exception (tbxface-0162): AE_NO_ACPI_TABLES, Could not get the RSDP [20060217]
ACPI Exception (tbxface-0211): AE_NO_ACPI_TABLES, Could not load tables [20060217]
ACPI: unable to load tables: AE_NO_ACPI_TABLES
cpu0 at mainbus0: (uniprocessor)
cpu0: Cyrix 486DLC (486-class)
WARNING: CYRIX 486DLC CACHE UNCHANGED.
isa0 at mainbus0
lpt2 at isa0 port 0x3bc-0x3bf irq : polled
ne0 at isa0 port 0x280-0x29f irq 9
ne0: NE2000 Ethernet
ne0: Ethernet address 00:40:05:fa:24:77
com0 at isa0 port 0x3f8-0x3ff irq 4: ns8250 or ns16450, no fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns8250 or ns16450, no fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
attimer0 at isa0 port 0x40-0x43: AT Timer
wdc0 at isa0 port 0x1f0-0x1f7 irq 14
atabus0 at wdc0 channel 0
vga0 at isa0 port 0x3b0-0x3df iomem 0xa0000-0xbffff
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
wsmux1: connecting to wsdisplay0
pcppi0 at isa0 port 0x61
pcppi0: children must have an explicit unit
midi0 at pcppi0: PC speaker (CPU-intensive output)
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff
npx0: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
pcppi0: attached to attimer0
isapnp0: no ISA Plug 'n Play devices found
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
fd1 at fdc0 drive 1: 1.2MB, 80 cyl, 2 head, 15 sec
Kernelized RAIDframe activated
wd0 at atabus0 drive 0: <FC-1307 SD to CF Adapter V1.4>
wd0: drive supports 1-sector PIO transfers, LBA addressing
wd0: 1910 MB, 3880 cyl, 16 head, 63 sec, 512 bytes/sect x 3911680 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
boot device: <unknown>
root device: wd0a
dump device (default wd0b): 
file system (default generic): 
root on wd0a dumps on wd0b
root file system type: ffs
init path (default /sbin/init): 
init: trying /sbin/init
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
$ _
vak: (Украина)
Serge Vakulenko ([personal profile] vak) wrote2025-12-15 12:23 pm
Entry tags:

А теперь - горбатый! (зачёркнуто) подводный!

Украинцы начали уничтожать уже и подводные российские лодки. Правильно, чтобы нечем было ракеты пускать.
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-12-14 01:54 pm

Сравниваем тщательнее: i8088, i486sx-25 и cx486dx2-66

Предыдущее сравнение хромает: версия 6.0 утилиты Norton System Info вызывает сомнения. Перетестируем более древней версией 4.5.

Начнём с клона PC XT на процессоре NEC D8088D-2 (копия интеловского 8088) в режиме "турбо" (8 МГц). Скорость 1.7 относительно классической IBM PC XT. Сопроцессора 8087 нету.





Теперь родной интеловский i486sx-25. Я вынул второй процессор из материнской платы и снял соседние джамперы. Процессор определился как 386, ведь эта версия SysInfo (1988 года) ничего не знает про 486, который появился только в 1989-м. Сопроцессора 487 в модели 486sx нету. Скорость определяется как 51.5 попугаев.





Наконец Cyrix cx486dx2-66. Вставляем процессор и джамперы обратно. Здесь уже имеется сопроцессор 487. Скорость подпрыгнула почти в три раза, до 130.2 попугаев.



vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-14 12:10 am

MS-DOS без Микрософта

Разочаровался я в SvarDOS и DR-DOS. Работаешь так, работаешь, проверяешь иногда файловую систему, вдруг чего подпортилось, и неожиданно:



И чего дальше с этим делать? Переформатировать диск заново, до следующей оказии? Нет, такой операционкой пользоваться не годится. Надо искать альтернативу.

Основной способ обмена файлами между писишкой и внешним миром у меня - перетыкание SD карточки (которая диск C: и прочие) в линуксный лаптоп. Линукс поддерживает длинные имена в файловой системе FAT. При копировании файлов я стараюсь, чтобы имена были досовские, то есть 8.3 uppercase. Но мало ли где могу промахнуться. Одно неловкое движение - и CHKDSK сломается навсегда. Нужна версия MS-DOS с надёжной поддержкой длинных имён.

Оказывается, такая существует, и называется она... Windows 98. 😀 Нижний "досовский" уровень тех окошек представляет собой фактический старый добрый MS-DOS 7.1, но улучшенный длинными именами файлов. Проблема только в том, что Микрософт никогда не выпускал такой DOS в виде отдельного продукта.

Однако нашлись умельцы, которые разобрались в этом деле и выпустили неофициальный релиз MS-DOS 7.10. Скачать можно отсюда: winworldpc.com/download/40c395e2-8093-c2a9-18c3-9a11c3a4efbf

Ставится это дело с двух флопиков 3.5". Вот пример загрузки после установки на диск XTIDE:



+3 )

Буду теперь использовать этот ДОС как основной вместо родного микрософтовского на 486 машинке. Жаль только, на XT-шке он не грузится. Затыкается сразу где-то в бутсекторе.
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-12-13 11:31 pm

Сравниваем скорость компьютеров 8088 и 486dx2-66

Первый - классический клон PC XT на процессоре NEC V20, копия интеловского 8088, в режиме "турбо".

Второй - из поколения 486, на процессоре Cx486dx2-66, аналог (но не копия) интеловского 486DX2-66.

Для тестирования задействуем утилиту Norton System Info версии 6.0.



vak: (Путиномедвед)
Serge Vakulenko ([personal profile] vak) wrote2025-12-13 08:50 pm
Entry tags:

Кто это?

Человека, выдающего себя за Путина, видели в Индии.

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-12 05:39 pm

Пополнение коллекции: древний компьютер 486/DX2-66

Народ бает, в 1992 году это была наикрутейшая игровая машинка. Пришла с CD-ROM и внутренним модемом. Я заменил на 5-дюймовый флоповод, теперь есть чем читать-писать любые флопики высокой плотности, а не только 360к на XT-шке.



+9 )
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-12-12 04:23 pm

Metal-cpp

Оказывается, у Apple есть прозрачная библиотечка на Си++, дающая прямой доступ ко всем низкоуровневым графическим примитивам: называется Metal-cpp. Но они не спешат её популяризировать. Благо, она входит в состав их нового пакета MLX. Его нетрудно установить командой "brew install mlx", после чего появляется /opt/homebrew/opt/mlx/include/metal_cpp.

Вот пример простого приложения, рисующего цветастый треугольник: metal-cpp
vak: (Кризис так себе)
Serge Vakulenko ([personal profile] vak) wrote2025-12-12 02:06 am
Entry tags:

Куваев оплакивает кончину русского языка



They stole my language from me
My mind is dead like an old tree now
It’s a language of pain
Of mothers crying in the rain

Now Russian is the language of death
Now Russian is the language of war
Now it's the language of last breath
Ask Germans for the score

When I'm thinking in Russian
I always stumble on shame
Eyes of an ukrainian boy
Killed while playing the game

When I'm speaking in Russian
My voice is sinking and low
Cause every sound of those words
Turns to the noise of a drone

They stole our language from us
Now every word tastes of rust
The words of war, the words of blood
They drag us down to the mud

My language was charm and a dream
But now when I'm speaking I scream
For million lives, for stolen years
For mothers cries, for buried tears

Now Russian is the language of death
Now Russian is the language of war
Now it's the language of last breath
Ask Germans for the score

When I'm thinking in Russian
I always stumble on shame
Eyes of an ukrainian boy
Killed while playing the game

When I'm speaking in Russian
My voice is sinking and low
Cause every sound of those words
Turns to the noise of a drone...

People, people without a language
People, people without a language
People, people without a language
People
vak: (Кризис так себе)
Serge Vakulenko ([personal profile] vak) wrote2025-12-12 01:44 am
Entry tags:
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-12-11 11:21 pm

Сетевая карточка работает, но не в XT-шке

Сетевую карточку NE2000 удалось оживить. Понадобился другой компьютер, с 16-битной шиной ISA.

На одном из прилагавшихся флопиков есть утилита SETUP.EXE. Нею можно изменить параметры карточки и прописать в её NVRAM. Изначально карточка находится в режиме Plug-n-Play, то есть не имеет адреса и приписанного прерывания. Это дело следует отключить. Сначала ничего не получалось: утилита не находила карточку. Дело было в конфликте с дисковым контроллером XTIDE. У него тот же базовый адрес 300h, что и у карточки. Когда я догадался вынуть дисковый контроллер и загрузиться с флопика - дело сдвинулось с мёртвой точки.

Вот список допустимых базовых адресов на выбор. Поставим 280h, вроде ни с чем не пересекается.



+6 )
vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-11 02:04 pm

Израильская батарейка 33-летней давности

Смотрите какую уникальную штуку я обнаружил внутри древнего компьютера. Батарейка для часов RTC израильского производства 1992 года. Стал искать новую на замену, и нашёл... израильскую батарейку той же фирмы, на mouser.com. Удивительная стабильность бизнеса.

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-10 12:53 am

Real time clock на XT-шке

Пришла наконец заказанная две с лишним недели назад батарейка для чипа RTC, и стал я разбираться. Надыбанные по интернету getclock.exe и setclock.exe странно глючат. Время работает, а дата при перезагрузке слетает. Помучился я с ними, а решил рубить проблему на корню. Быстро на коленке сваял свою програмулину RTCLOCK.EXE.
Usage:
rtclock get YYYY
rtclock set
Options:
get YYYY - Read time from RTC and set DOS date/time
Here YYYY is the current year
(required, not stored in RTC)
set - Write current DOS date/time to RTC
Вставил вызов в AUTOEXEC.BAT:
rtclock get 2025
Теперь XT-шка всегда стартует с правильным временем и датой. Исходники здесь: rtclock.c

Прикольная фишка выяснилась. Номер года не хранится в чипе RTC. Хранится время, день месяца и месяц. И растёт по мере хода часов. А на годе решили сэкономить несколько битов. И то верно - зачем тратиться? Год меняется нечасто. Первого января сисадмин явится на работу и поправит год на всех компьютерах. 😀

Пришлось в вызове "rtclock get", когда время и дата из RTC пересылаются в DOS, добавить обязательный параметр YYYY - нынешний номер года.

Заодно освоил dosbox-x. Сконфигурил его так, что при вызове диском C: становится папка ~/.dos, а диском H: домашний каталог. Вполне комфортно получается на Турбо Си++ программировать, в том числе с помощью ИИ.
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-12-09 12:31 pm

Адаптер USB→UART с дисплейчиком

Транслирует USB в TTL сигналы RX/TX/GND, заодно показывая содержимое на экране.

Описание: termdriver2.pdf

Исходники: github.com/jamesbowman/termdriver2

Сайт проекта: termdriver.com

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-08 02:43 pm

Софт для NE2000

Я зачитал содержимое флопиков, прилагавшихся к карточке Ether16 от Linksys. Скачать можно здесь:

ether16-software.zip

Содержимое довольно любопытное. Драйверы для массы разных сетевых софтов. На первом диске DOS, OS/2, Windows.
disk1
├── MSLANMAN.DOS
│   └── DRIVERS
│       ├── ETHERNET
│       │   └── ETHER
│       └── NIF
├── MSLANMAN.OS2
│   └── DRIVERS
│       ├── ETHERNET
│       │   └── ETHER
│       └── NIF
├── NDIS
│   ├── DOS
│   └── OS2
├── NETWARE
│   ├── CLIENT32
│   ├── IPX
│   ├── ODI.DOS
│   ├── ODI.OS2
│   └── TURBO
│       ├── NW311
│       └── ODI.DOS
├── PKTDRV
├── README
├── UTILITY
├── WFW311
├── WIN95
├── WIN98
└── WINNT
На втором диске всякие юниксы.
disk2
├── AT&TUNIX
├── LANTASTI.DRV
├── NBIOS
├── NETWARE
│   ├── NW311
│   ├── NW312
│   └── NW4X
├── NT31
├── SCOUNIX
├── SOLARIS
└── UNIXWARE
В папке Utility находится утилита SETUP.EXE для конфигурирования и тестирования карточки. Увы, на XT-шке она не находит карточку, и вообще портит DOS. По всем признакам этот софт не предназначен для процессора 8088. Всё скомпилировано как минимум для 80186, что логично для 1997 года. Надо искать другой компьютер с шиной ISA, чтобы оживить эту карточку.
vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-07 07:51 pm

MKS Toolkit

Ещё одно необычное добавление в коллекцию: набор классических юниксных утилит для MS-DOS, под названием MKS Toolkit. Позже были и DJGPP, и Cygwin, и MinGW, но MKS стал первой весточкой, что юниксная жизнь возможна даже во враждебных средах. 😀 И даже на 8088 процессоре.
Имеются непривычные для DOS вещи. К примеру, dev показывает список установленных драйверов.



Команда df выдаёт список файловых систем. Для каждого логического диска показывает количество свободного места и полный размер.



Командой ps можно посмотреть все досовские "процессы".

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-07 06:08 pm

Компиляторы от A до Z

В буквальном смысле: от Aztec C до Zortech C++. Продолжаем устанавливать всяческие компиляторы на XT-шке. Большое разнообразие на этот раз.
  • AZ86 - Aztec C86 version 5.2a
  • LATTICEC - Lattice C compiler, version 3.30
  • LETSC - Let's C version 4.0.4
  • M2 - Logitech Modula-2 release 3.40
  • MIXC - Mix C version 2.5.1
  • POWERC - Power C version 2.2
  • ZORTECH - Zortech C++ compiler version 3.0
К концу 80-х многие программные пакеты обзавелись симпатичными утилитами установки.



Фирма Logitech, перед тем как заняться мышками, разработала солидный компилятор языка Modula-2. Не пригодился никому.



Zortech C++ народ хвалил: чуть ли не лучший компилятор того времени. Установщик симпатичный, но кошмарно тормознутый.

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-12-07 12:29 am

CP/M's open-source status clarified after 21 years

The company that still owns Digital Research's CP/M operating system has granted a new, more permissive license for the eight-bit OS, making it free for anyone to modify or redistribute.

Это произошло три года назад, и с тех пор деятельность вокруг DR-DOS-овских проектов явно активизировалась.
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-12-06 09:33 pm

SvarDOS: современный ДОС без Микрософта

Давайте исследуем альтернативную реальность. В которой контракт Микрософта с IBM не случился, и MS-DOS не родился на свет. Операционка CP/M эволюционным образом развилась в DR-DOS. Прошли десятилетия, и в 2022-м фирма DRDOS Inc открыла исходники и разрешила их опенсорсное применение. Это уже наша реальность, не альтернативная. Получился проект SvarDOS. Я установил его на XT-шке. Благо, смена "жёсткого диска" сводится к втыканию другой SD карточки. Система успешно встала на 128-мегабайтную карточку, разметив её как единый диск C. Добавим Волков Командер и Турбо Си. Вот так оно выглядит после загрузки.



Первое, что следует выяснить: сколько памяти остаётся доступно для пользовательских программ. Для этого есть стандартная утилита mem. Сравним с MS-DOS 3.30 (утилита chkdsk). Имеем 595 696 байт против 595 360 - очень неплохо. Волков Командер и Турбо Си работают устойчиво, не замечая подмены системы.


Как выглядит установка

Надо записать четыре флопика по 360к. На i286 можно было бы обойтись одним флопом 1.2M или 1.44M. Загружаемся с первого флопа.
+9 )

Репозиторий лежит на Гитхабе: sergev/pc-xt-svardos
vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-12-06 02:40 pm

Компиляторы IBM и Digital Research на XT-шке

Про древние компиляторы Borland и Microsoft уже было, а теперь очередь Digital Research и IBM. Ну и примкнувшие к ним Паскали от Stony Brook и Watcom.Здесь вам красивостей не будет, как в Турбо Паскале. Суровая командная строка.



Лого вообще только в режиме 40 символов в строке.



Пробовал я и IBM APL, но он сделан для слишком ранней версии MS-DOS, вероятно. Рисует сообщение и виснет.



Остальные компиляторы нормально запускаются и успешно транслируют свои примеры.