2025-11-04

vak: (Default)
В конце 90-х начале 2000-х народ в IBM придумал делать жёсткие диски крошечного размера. Так появились Microdrive, позже превратившиеся в CompactFlash. Мне от коллеги достался один экземпляр. В 2004 году продавался за $499 баксов. С такими дисками шаттлы в космос летали.



Меряю скорость под Линуксом.



Для сравнения возьмём CompactFlash примерно того же времени.



vak: (Daemon)
Оказывается, для 16-битной архитектуры Intel 8086 имеется компилятор GNU Си/Си++, и активно поддерживается. Раньше я слышал про bcc и OpenWatcom, но они имеют ограниченный функционал. С таким известием затея по восстановлению Юникса v7 (Venix) для писишки не выглядит безнадёжной.

Исходники: github.com/tkchia/gcc-ia16
Зеркало: gitlab.com/tkchia/build-ia16/-/releases

На интеловской Ubuntu компилятор ставится следующим образом:
sudo apt install software-properties-common
sudo add-apt-repository ppa:tkchia/build-ia16
sudo apt-get update
sudo apt-get install gcc-ia16-elf
На Ubuntu ARM64 аналогично, но из другого места:
sudo add-apt-repository ppa:catacombae/gcc-ia16-arm64
Глянем на сгенерённый код:
$ ia16-elf-gcc -S -O hello.c
$ cat hello.s 
	.arch i8086,jumps
	.code16
	.att_syntax prefix
#NO_APP
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Hello, World!"
	.text
	.global	main
	.type	main, @function
main:
	movw	$.LC0,	%ax
	pushw	%ax
	call	puts
	addw	$2,	%sp
	movw	$0,	%ax
	ret
	.size	main, .-main
	.ident	"GCC: (GNU) 6.3.0"
По умолчанию линкуется бинарник для MS-DOS:
$ ia16-elf-gcc hello.c 
$ file a.out
a.out: COM executable for DOS