Sound Galaxy NX Pro 16 Extra

Dec. 23rd, 2025 09:50 am
vak: (Знайка)
[personal profile] vak
В составе компьютера Cx486 приехала вот такая звуковая карточка. Полное название Sound Galaxy NX Pro 16 Extra (MMSN812). Крутая считалась в начале 90-х. Был такой стартап Aztech в Сингапуре, клепал чипсеты для звуковых карт. Изначально IBM проигнорировала звук при разработке PC, и на этой теме развилась целая отрасль дополнительных карточек. На плате имеются порты для подключения CD-ROM разных производителей. В то время разные драйвы CD-ROM имели несовместимые интерфейсы, и не умели IDE/ATAPI.

Софт для DOS можно скачать по ссылке: dosdays.co.uk/topics/Manufacturers/aztech_downloads.php#NXPro16

Есть некий драйвер в Линуксе, не уверен, к этой ли модели: torvalds/linux/sound/isa/galaxy/galaxy.c



Centon 2Gb Industrial

Dec. 23rd, 2025 09:21 am
vak: (Знайка)
[personal profile] vak
Индустриальная SD карточка, на которую я поставил NetBSD 10.1 для компьютера Cx486. Сделано в Тайване.

Меньше 2 гигабайт нет смысла брать: юниксу тесновато будет. А больше 2 гиг индустриальные карточки заметно дороже обходятся.


vak: (Daemon)
[personal profile] vak
В ядре NetBSD есть хитрый параметр "options CYRIX_CACHE_WORKS". Если его поставить, ядро включит L1 кэш процессора Cyrix. И оно действительно помогло. Дуремарки заметно поднялись: 54 супротив прежних 31. Хотя до досовских 110 далеко.
DureMark 1.0 Results
=======================
Iterations      : 300
Execution Time  : 5.5 sec
List Workload   : 39.4%
Matrix Workload : 19.2%
State Workload  : 41.4%
-----------------------
Total Score     : 54.25 DureMark
Путь был непростым, однако. Чтобы изменить параметр, надо пересобрать ядро. Проделать это на самом компьютере не представляется возможным. Без кэша он настолько тормозной, что пересборка займёт месяц. Следовательно, надо ставить ровно такую же версию NetBSD на виртуальную машину.

До сих пор я возился с NetBSD версии 4.0.1, выпуска 2008 года. Более поздние не лезут в 16 мегабайт памяти. Но эта версия давно не поддерживается, и пакеты к ней я надыбал только на bitsavers.org. При отсутствии пакетов на официальном сайте установка полноценной системы, нужной для сборки ядра, превращается в головоломку с неизвестным исходом.

Нужна свежая версия NetBSD 10.1, а значит необходимо добавить памяти в компьютер. Четыре восьмибитных SIMM, если помните. В пятницу память пришла с Ебея, заодно пришла и 2-гигибайтная SD карточка industrial. Установка системы на неё заняла всю субботу.

Возиться с флопиками необязательно. Чтобы запустить установку, надо под ДОСом скачать два файла: dosboot.com и netbsd-INSTALL.gz. Второй файл распаковать под именем install и вызвать "dosboot install". Остальное будет подгружаться по сети, благо сетевая карточка NE2000 настроена и работает. Процесс установки подробно описан в главе №3 "Example installation" документа netbsd-en.pdf.

Установка шла медленно и печально, ведь кэш пока не работает. Параллельно я поставил эту же версию NetBSD на мак под симулятором UTM (обёртка над QEMU). Пришлось напрячься, изучить файл конфигурации ядра, чтобы убрать всё ненужное, но не зацепить чувствительное. Благо, можно начать с имеющейся конфигурации GENERIC_TINY. Вот такое получилось.
Я прямо как в молодость вернулся: те же самые ощущения, что 32 года назад, когда я возился с конфигурациями и исходниками ядра FreeBSD. 😀

Компилируем ядро под NetBSD 10.1 в виртуальной машине, после чего записываем на досовскую SD карточку, где в файлe AUTOEXEC.BAT командой dosboot оно и грузится. Дешёво и сердито.

Забавная вышла ситуёвина. Допотопный компьютер с 5-дюймовым флоповодом, отстойнейшим процессором Cyrix 486, и на нём распоследний юникс NetBSD.

Unix v4

Dec. 21st, 2025 12:08 pm
vak: (Default)
[personal profile] vak
Народ восстановил с древней ленточки юникс версии 4 для pdp11.


В частности, имеются исходники Снобола 1974 года.
$ cd /usr/sno
$ ls -l
total 1
-rw-r--r--  1 vak  staff   338 Jun 10  1974 sno.h
-rw-r--r--  1 vak  staff  6280 Jun 10  1974 sno1.c
-rw-r--r--  1 vak  staff  7723 Jun 10  1974 sno2.c
-rw-r--r--  1 vak  staff  3644 Jun 10  1974 sno3.c
-rw-r--r--  1 vak  staff  4176 Jun 10  1974 sno4.c
vak: (Житель планеты Узм)
[personal profile] vak
Появилась забавная утилитка для возни с юникодными символами. Ставится командой:
go install zgo.at/uni/v2@latest
К примеру, найдём все символы с котиками.
$ uni search 'cat '
             Dec    UTF8        HTML       Name
'🐱' U+1F431 128049 f0 9f 90 b1 🐱  CAT FACE
'😸' U+1F638 128568 f0 9f 98 b8 😸  GRINNING CAT FACE WITH SMILING EYES
'😹' U+1F639 128569 f0 9f 98 b9 😹  CAT FACE WITH TEARS OF JOY
'😺' U+1F63A 128570 f0 9f 98 ba 😺  SMILING CAT FACE WITH OPEN MOUTH
'😻' U+1F63B 128571 f0 9f 98 bb 😻  SMILING CAT FACE WITH HEART-SHAPED EYES
'😼' U+1F63C 128572 f0 9f 98 bc 😼  CAT FACE WITH WRY SMILE
'😽' U+1F63D 128573 f0 9f 98 bd 😽  KISSING CAT FACE WITH CLOSED EYES
'😾' U+1F63E 128574 f0 9f 98 be 😾  POUTING CAT FACE
'😿' U+1F63F 128575 f0 9f 98 bf 😿  CRYING CAT FACE
'🙀' U+1F640 128576 f0 9f 99 80 🙀  WEARY CAT FACE
А теперь эмодзи.
$ uni emoji ' cat'
	Name                             CLDR
😺	grinning cat                    [animal, face, mouth, open, smile, smiling]
😸	grinning cat with smiling eyes  [animal, face, smile]
😻	smiling cat with heart-eyes     [animal, face, love, smile]
😽	kissing cat                     [animal, closed, eye, eyes, face]
🙀	weary cat                       [animal, face, oh, surprised]
😿	crying cat                      [animal, face, sad, tear]
😾	pouting cat                     [animal, face]
🐈‍⬛	black cat                       [animal, feline, halloween, meow, unlucky]

$ uni emoji 'cat '
	Name                             CLDR
😸	grinning cat with smiling eyes  [animal, face, smile]
😹	cat with tears of joy           [animal, face, laugh, laughing, lol]
😻	smiling cat with heart-eyes     [animal, face, love, smile]
😼	cat with wry smile              [animal, face, ironic]
🐱	cat face                        [animal, kitten, kitty, pet]
vak: (Daemon)
[personal profile] vak
Пользуясь новым тулом, продуремарим процессор на старом 486-м компьютере. Напомню, что там запаян Intel 486sx и отдельно втыкается "ускоритель" Cyrix 486dx.



Запускаем MS-DOS на Cyrix 486dx2-66, и под ним DUREMARK.EXE.
DureMark 1.0 Results
=======================
Iterations      : 1000
Execution Time  : 9.1 sec
List Workload   : 44.0%
Matrix Workload : 30.1%
State Workload  : 25.9%
-----------------------
Total Score     : 109.64 DureMark
Меняем процессор на Intel 486sx-25.
DureMark 1.0 Results
=======================
Iterations      : 300
Execution Time  : 5.2 sec
List Workload   : 31.9%
Matrix Workload : 39.4%
State Workload  : 28.7%
-----------------------
Total Score     : 58.09 DureMark
Разница почти в два раза. Хорошо, вернём Cyrix на место и запустим на нём NetBSD.
DureMark 1.0 Results
=======================
Iterations      : 100
Execution Time  : 3.2 sec
List Workload   : 40.1%
Matrix Workload : 17.6%
State Workload  : 42.3%
-----------------------
Total Score     : 31.35 DureMark
Удивительное дело: скорость процессора упала в три раза. Подтверждается моя догадка, что NetBSD отключает кэш Сайрикса. Вероятно, во избежание каких-то глюков.

Ну ничего, я заказал на Ебее родной интеловский 486dx2-66, сравним под NetBSD.

Зимняя геометрия

Dec. 20th, 2025 03:19 pm
vak: (Бах)
[personal profile] vak
Нету снега в Калифорнии? Не беда! Давайте печатать снежинки на 3D принтере.

Генератор снежинок: github.com/drom/neghero

Онлайн можно поиграться здесь: observablehq.com/@drom/neghero




Дуремарк

Dec. 20th, 2025 12:28 am
vak: (Знайка)
[personal profile] vak
Чтобы иметь возможность сравнивать производительность 8-битных и 16-битных процессоров с большими, я сварганил на скорую руку простой бенчмарк. Он качественнее чем Dhrystone: не просто вычисляет некие формулы, а работает со списками, множит матрицы, парсит грамматику. Идея подсмотрена у CoreMark, но упрощена до предела. Допускается размер int 16 бит, так что можно компилировать с помощью Turbo C. Скорость я калибровал по PC XT, так что один DureMark примерно равен классической XT-шке 4.77 МГц. Вот пример запуска на такой XT-шке:
DureMark 1.0 Results
=======================
Iterations      : 10
Execution Time  : 9.3 sec
List Workload   : 37.1%
Matrix Workload : 34.1%
State Workload  : 28.8%
-----------------------
Total Score     : 1.07 DureMark
Кроме общей производительности, показывается, какой вклад вносит каждый из трёх задействованных алгоритмов: работа со списками, работа с матрицами и машина состояний.

Тестирование начинается с малого числа итераций, и оно экспоненциально растёт до достижения разумной длительности (несколько секунд). Вот запуск на iMac Intel Core i9 3.6 GHz.
$ duremark
Try 3 iterations...
Try 10 iterations...
Try 30 iterations...
Try 100 iterations...
Try 300 iterations...
Try 1000 iterations...
Try 3000 iterations...
Try 10000 iterations...
Try 30000 iterations...
Try 100000 iterations...
Try 300000 iterations...
Try 1000000 iterations...

DureMark 1.0 Results
=======================
Iterations      : 1000000
Execution Time  : 6.7 sec
List Workload   : 45.8%
Matrix Workload : 11.7%
State Workload  : 42.5%
-----------------------
Total Score     : 149349.25 DureMark
Исходники: github.com/sergev/duremark

Теперь предстоит перемерять всю мою коллекцию компьютеров.
vak: (Знайка)
[personal profile] vak
Про первую неудачную попытку я рассказывал: в тот раз сетевая карточка NE2000 не ожила. На этот раз я добыл ещё более древнюю Ethernet карточку, а именно WD8003EB. Классическая схема на трёх чипах DP8390 + DP8391 + DP8392.



У карточки два разъема: тонкий коаксиальный Ethernet и так называемый AUI для подключения произвольного внешнего трансивера.



Трансивер на витую пару нам и нужен. Маленькая коробочка пристёгивается снаружи и надёжно закрепляется подвижной защёлкой.




Софт для конфигурации карточки WD8003 имеется по ссылке: WD_SuperDisk_v17.zip. Там две утилиты: SETUP.EXE и DIAGNOSE.EXE. Setup даёт менять конфигурацию карточки (базовые адреса и прерывание) и записывает её в постоянную память NVRAM. Diagnose гоняет тесты и проверяет, всё ли в порядке. Конфигурацию она тоже может менять, но не сохраняет.



+4 )
Таким образом XT-шка из ржавой рухляди превращается в осмысленную сетевую машину. 😀
vak: (Аристипп)
[personal profile] vak
Я как-то упоминал родной микрокод от 8086, а вот нынче народ сварганил честную реализацию процессора на Верилоге, где работает тот микрокод.

"z8086: Rebuilding the 8086 from Original Microcode"

Если кому хочется выяснить всякие недокументированные фичи, можно гонять этот z8086 на FPGA или на Icarus Verilog и смотреть. Внутри у него неонка хитрый процессор с 21-битными инструкциями и программа из 512 микрокоманд.

Исходники: github.com/nand2mario/z8086

Фактически народ повторил то, что я сделал когда-то для микро-БЭСМ: восстановил микроархитектуру по имеющемуся микрокоду. С таким прогрессом недолго и всю PC XT на FPGA повторить. Софта-то к ней вагон.

Модем из 80-х

Dec. 18th, 2025 12:52 am
vak: (Знайка)
[personal profile] vak
Вот такой симпатичный модем образовался у меня в коллекции. Но куда нынче звонить? Зачем? Непонятно. Разве что в рамочке на стену повесить. 😀



Сделан модем на чипе SC11175CV/CBF. Узнать бы что это такое. Какой-то микроконтроллер, понятное дело, но интересны внутренности.

GateMate RISC-V

Dec. 17th, 2025 05:58 pm
vak: (Українець)
[personal profile] vak
Смотрите какая симпатичная штука: компьютер с процессором RISC-V и видеопортом VGA на немецком чипе FPGA. Плата GateMateA1-EVB от фирмы Olimex. Подробности спрашивайте у [personal profile] ymz5 .

vak: (Знайка)
[personal profile] vak
Я поставил Си компилятор под NetBSD на древнем компьютере PC 486 и скомпилил старый добрый Dhrystone.
$ ./dhrystone

Dhrystone Benchmark, Version 2.1 (Language: C)
...
Nanoseconds for one run through Dhrystone: 123707.4
Million Dhrystones per Second: 0.008
DMIPS: 4.6
Это в 1700 раз медленнее, чем Raspberry Pi 4, или в 800 раз медленнее Raspberry Pi 3B.
vak: (Daemon)
[personal profile] vak
Чтобы влезть в 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: (Украина)
[personal profile] vak
Украинцы начали уничтожать уже и подводные российские лодки. Правильно, чтобы нечем было ракеты пускать.
vak: (Default)
[personal profile] vak
Предыдущее сравнение хромает: версия 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 попугаев.



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

Dec. 14th, 2025 12:10 am
vak: (Знайка)
[personal profile] vak
Разочаровался я в 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)
[personal profile] vak
Первый - классический клон PC XT на процессоре NEC V20, копия интеловского 8088, в режиме "турбо".

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

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



Кто это?

Dec. 13th, 2025 08:50 pm
vak: (Путиномедвед)
[personal profile] vak
Человека, выдающего себя за Путина, видели в Индии.

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



+9 )
Page generated Dec. 23rd, 2025 07:09 pm
Powered by Dreamwidth Studios