Search
Write a publication
Pull to refresh

Comments 5

И создатель этого удивительного проекта смог эмулировать обе этих машины, уложившись в 3636 байт исходного кода на С!

Автор этого удивительного проекта смог эмулировать одну эту машину PDP-7, уложившись в 3636 байт. Эмулятор PDP-11 написан на машкоде PDP-7 и лежит в дисковом образе.

1984_mullender/1984/mullender/mullender.alt.c компилируется и запускается на Фре.

Удивило то, что компилятор фактически не делает различий между процедурой main и переменной с таким же именем. Разница пожалуй только в том, в каком сегменте будет расположен этот символ. Код ниже прекрасно компилится и исполняется на FreeBSD и Linux:

__attribute__((section(".text"))) char main[] = { 0xc3 }; // retq

А это означает, что mullender.alt.c не сложно переписать в машинных кодах для современной x86 и аналогичным образом загнать его в main. Встает вопрос - зачем хакеру понадобился эмулятор PDP-11 для запуска этой демо ? ;)

компилируется и запускается на Фре.

Эта версия уже совсем никакого отношения к оригиналу не имеет:

main(i,v)char**v;{j:i=v[1]?atoi(v[1]):190000;i=i<5000?5000:i;do write(1,"  :-)\b\b\b\b",9),usleep(i);while(--i);write(1,"\n",1);goto j;}

Встает вопрос - зачем хакеру понадобился эмулятор PDP-11 для запуска этой демо ? ;)

Это IOCCC, тут вопрос "зачем" лучше не задавать )

Надо переписать её для x86 и еще раз подать на конкурс в категорию 128 байт. ;)

спасибо, интересно, можно и клангом собрать, для кланга(в pkg там 20 версия уже) тогда вообще ничего ставить не придётся, ну из интересного, можно переписать на java тоже новой версии какойнибудь 24, там вроде тоже интересно может быть

ps ой я пока не смог скомпилить)

Sign up to leave a comment.

Articles