Этого треда уже нет.
Это копия, сохраненная 15 июня 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
32 Кб, 342x400
Страх и ужас быдлокодеров! #416689 В конец треда | Веб
Решил на досуге заебенить что-то наподобие декомпилятора кода ПЗУ МК-61. Казалось бы, вещь не особо сложная: всего-то 256 команд, которые суть по 3 синхропрограммы, имеющихся в количестве 128 штук, содержащих по 9 микрокоманд, коих в общем числе есть 68, которые и есть операции над памятью. И таких экземпляров 3 штуки, что, впрочем, вторично (код можно взять тут: http://mk-61.moy.su/ ). Но на практике это оказался вырвиглазный пиздец. Покажу на примере.

Первая задача - найти программу, образующую легендарное "ЕГГОГ". В общем, удалось обнаружить, что производят сие слово команды под номерами D2 и
30 (причём D2, видимо, отвечает только за первый символ).

Немного поебавшись с кодом, получил такое описание команды №30:

Σ = R[0]; R[0] = R[3]; S = Σ
R[3] = R[6]
R[6] = R[9]
R[9] = R[12]
R[12] = R[15]
R[15] = R[18]
R[18] = R[21]
R[21] = R[24]
R[24] = R[27]

R[27] = R[30]
R[30] = R[33]
Σ = R[33]; R[33] = S; S = Σ
Σ = S1 + 1; П = (Σ > 0xF); L = П; S1 = Σ

Σ = R[36] + L; S = Σ
Σ = S; R[36] = Σ
Σ = 1 + 1; S = Σ
Σ = S + 1; S = Σ
Σ = ~S; S = Σ
Σ = R[41] + S; П = (Σ > 0xF); L = П; S = Σ

(разбиение по синхропрограммам).

В читаемом виде это выглядит примерно так:

\tS := R[0];
\tОТ сч := 0 ДО 30 ПО 3 ВЫП
\t\tR[сч] := R[сч+3]
\tКОН;
\tпам := R[33]; R[33] := S; S := пам;
\tЕСЛИ S1 = 0xf ТО
\t\tL := 1; S1 := 0
\tИНАЧЕ
\t\tL := 0; S1 := S1 + 1
\tКОН;
\tR[36] := R[36] + L;
\tL := 0;
\tS := R[41];

Само сообщение содержится в регистре R (42-х разрядный массив 4-битовых элементов) в элементах 24, 21, 18, ..., 0, последние три - в 33, 30 и 27.

Предлагаю всем уважающим себя программистам, не желающим шкварить себя стоянием в одном ряду с быдлокодерами, студентами и прочей премерзкой блядвой, присоединиться к историческому проекту обретения понимания работы внутренностей МК-61 - знания, о котором так мечтали ещё 20 - 25 лет назад многие тысячи русских людей!
#2 #416693
Ты что, сохранил самый первый пост МК-дауна и запостил его через год?
17 Кб, 200x230
#3 #416705
>>416689
` Высеры эти
` Читать
` отвратительно!
`
` Так получи же
` Ответ
` Решительный!
`
` Если зеленый
` Говна
` Наплодил,
`
` Выход единственный:
` Сажа!
` Скрыл!
#4 #416752
>>416693
Может это он и есть. Перебросили с хохлофронта обратно к нам. Там вроде чуть тише стает, личный состав можно на другие проэкты бросать.
sage #7 #416764
sega
sage #8 #416858
лол, скройся
#9 #417028
>>416705

> зеленый


Умылся мочой, и в глазах позеленело? Моча же жёлтая... И да, хуёвый из тебя Маяковский.

>>416755
Открой ссылку в первом сообщении, то и есть эмулятор.
#10 #417031
>>416753
Собственно, по этим фотографиям код и восстановили. Сделали эмулятор. А вот разобраться в содержании кода никто пока не смог.
261 Кб, 884x892
#11 #417116
Итак, разберём для начала, какой памятью оперирует процессор:

три массива из 42-х 4-битовых слов M, R и ST;
регистры S и S1 размером 1 слово;
биты L, T и П.

А также:

1-словные переменные "вход" и "выход" для соединения с другими процессорами (всего их три, вместе с двумя регистрами памяти (по 252 слова) соединены в кольцо, по которому гоняются данные);
координаты нажатой кнопки x и y;
состояние переключателя меры угла;
переменные, указывающие на место запятой, необходимость его обновления, счётчик тактов, указатели на элементы программы.
223 Кб, 1148x1655
#12 #417121
Думаю, хули быдлятине так припекает...
148 Кб, 1148x1134
#13 #417123
А оно вот что.
#14 #417156
>>417123
J:
fib =: (-&2 +&$: <:) ^: (1&<)
#15 #417217
>>417156
Ну и нах J когда на божественном так же коротко, но ещё и читаемо?
fib = 0 : 1 : zipWith (+) fib (tail fib)
#16 #417238
ИТТ борщехлебы меряются фибоначами
самые быстрые фибоначи 2014 #17 #417244
#18 #417245
>>417244
Как фибонач он, конечно, лучше, но рекурсивное определение легко обобщить на что угодно (простые числа, треугольные, что угодно).
sage #19 #417246
>>417245
отмечу в ретроспективе
312 Кб, 960x1280
sage #20 #417249
хочется блевать
8 Кб, 340x882
#21 #417260
25 Кб, 480x360
#22 #417266
>>417249
А-тя-тя!
#23 #417288
#24 #417340
Mathematica:
Fibonacci[100000]
86 Кб, 1024x768
#25 #417358
Ньюфаг врывается в тред.

1. Вот эти вот фоточки >>417116 >>416753 - это что такое? Неужели это прямо в открытом виде? Прямо на текстолите? Или фоточки сделаны под микроскопом? Какое увеличение? Что это?

2. Есть ли у нас эмулятор процессора + ром? Если есть, то мы же можем сделать поддержку GDB и прихуярить пошаговое выполнение, например, работу с памятью и вообще что угодно.

3. Как насчет сайд-эффектов? Где-то видел хуйню, которая подсовывала процессору все возможные варианты опкодов (и в регистры тоже) и вела километровые логи что и как оно отработало, таким макаром тестировали совместимость реального процессора и эмуля, искали недокументированные возможности и всю хуйню вроде сайд-эффектов.

4. Есть ли какая-то нормальная инфа по процессору/его регистрам, опкодам и прочему? Например, мне нихуя не понятно что такое "слово" - это 2 байта (word на языке спермоблядей)? А не много? Или что-то своё? Что за биты, где лежат? В каком-то Z-регистре кучкой? Кнопки чем обрабатываются, как прерывания сделаны и сделаны ли вообще?

5. А что хотим получить в итоге? Исходники прошивки на сишечке? Фреймверк для написания заставок на калькуляторе? Заменить ЕГГОГ на ГОГГЕ? Порт калькулятора на MTK и массовую продажу?
#26 #417384
>>417358

> Исходники прошивки на сишечке


почему на сишечке, а не на Х-Фокале?
#27 #417391
>>417384
А разве бывают языки кроме сишечки?
#28 #417402
>>417358

> Вот эти вот фоточки


Это фото вскрытой микросхемы по микроскопом. По этим фоточкам считали микропрограммы зашитые в ПЗУ БИС калькулятора.
Когда я прочитал про этого чувака мой пукан прожег стул. Какие всё-таки есть люди уличенные своим хобби с не хилым багажом знаний и в микроэлектроника и в программирование и при этом их возможности совпадают с желаниями.
#29 #417485
>>417402
Ты не ответил на мои вопросы. Какой микроскоп, какое увеличение? Можно ли где-то получить эту матрицу, чтобы нормально переснять? Ну хоть не на текстолите, уже хорошо.

Или, если у нас есть эмулятор, то были ли какие-то тесты на полноту эмуляции?

Размер этой прошивки какой? Что там за единица хранения информации?

Я тут просто реверсилку игорей для спектрума делаю еще.
#30 #417505
>>417485
Здесь оригиналы фоточек.
http://code.google.com/p/emu145/downloads/list
#31 #417507
>>417485
Они сделали полную эмуляцию, доступны даже не документированные функции.
#32 #417508
>>417485
Зайди сюда
http://www.emulator3000.org/rus-contacts.htm
И напиши Феликсу Лазареву
985 Кб, 634x621
#33 #417510
>>417358
1. Это кристалл одного из трёх процессоров МК-61. Разумеется, под микроскопом. Сам кристалл примерно 5x5 мм размером.

2. Да, например: http://mk-61.moy.su/emulator.html . Он выводит содержимое памяти, позволяет сохранять состояние, вводить программу в память и т. п. А вот как GDB прихуярить, это я уже не представляю.

3. В своё время были тонны статей и книг на эту тему. Но, правда, изучали реакцию калькулятора на высокоуровневые команды. Теперь есть возможность поебать мозги самому процессору.

4. Та дохуя. Открой тот же код эмулятора, там всё предельно ясно. Более общее описание, например, тут: http://vak.ru/doku.php/proj/calculator/b3-34 (точность не гарантирую, статья ещё "доэмуляторная").

5. Ну это уже в идеале. Для начала хотя б расписать, какие команды или участки кода за что отвечают, как взаимодействуют между собой (структурная схема) и т. п., а уже из этого исходить.
#34 #417511
>>417508
А что он нового скажет? Вся его работа выложена на сайте. К пониманию работы программ калькулятора приблизились не более, чем 25 лет назад благодаря книгам Я. К. Трохименка.
#36 #417534
>>417505
Спасибо, качаю.

>>417508
И что ему написать?

>>417511
Возникает вопрос - а калькулятор материализовался из воздуха, что никто не знает как оно работает? Или это таки клон HP, как и многие другие чудеса отечественной электроники?
#37 #417542
>>417510
1. хм, получается зум всего где-то 100х? У меня на столе более продвинутый микроскоп.
Вот на пикрелейтеде моем, я так понимаю, и есть сама прошивка? А диагональные царапины - это мудак-микроскопист, или для точной сшивки сканов нанесены? В одном месте непонятно что стало с 1 битом.

2. Ну на самом деле это просто. Есть такая штука как https://sourceware.org/gdb/onlinedocs/gdb/Overview.html#Overview - тут нам русским языком пишут, что достаточно просто:
At a minimum, a stub is required to support the ‘g’ and ‘G’ commands for register access, and the ‘m’ and ‘M’ commands for memory access. Stubs that only control single-threaded targets can implement run control with the ‘c’ (continue), and ‘s’ (step) commands. Stubs that support multi-threading targets should support the ‘vCont’ command. All other commands are optional.
Фактически, нам надо этот самый stub и написать. Слушать порт и рулить эмулем, выставлять доступ к регистрам и памяти. Проблема тут только в том, что я не знаю ни списка регистров, ни модели памяти, ни даже что там в эту память можно писать (тут вспоминается троичная логика от советских инженеров).

Далее можно выполнять код по шагам и смотреть на регистры/память, если есть что-то вроде IP-регистра, то можно писать лог что где исполнилось и чем закончилось, а иначе полные дампы делать каждый такт.

3. Ну если у нас есть уже годный эмуль, что мешает написать простейшую брутфорсилку, которая будет заполнять память/регистры рандомом и тикать процессором? Терабайты интересного выхлопа гарантированы, но что в итоге то? Обычно это юзается для тестирования совместимости с железом.

4. Мне не очень понятен термин "синхропрограмма", упомянутый по ссылке и тут в треде. Конечно, я нашел словарик вида
Программа = последовательность Команд.
Команда = последовательность Синхропрограмм.
Синхропрограмма = последовательность Микрокоманд.
Микрокоманда = набор микроприказов
Но понятнее от этого не стало. И да, двачи как раз по этому слову отлично гуглятся.

5. Для этого нам надо найти аналог call/jmp и смотреть что куда идет, записывая подробный лог. Далее, пишем простенький ассемблер/дизассемблер (или даже сразу сишный компилятор) с возможностью вставлять сгенерированный байткод в произвольное место. Это нам даст возможность переписывать код "на лету" в сишный (руками), ничего не теряя в оригинале, при необходимости проверяя себя тестами хоть после каждой строки. Кстате, только что пришла в голову безумная затея: сделать машину Тьюринга в миниатюре и в нее оттранслировать байткод, а уже в ней проводить дебаг без привязки к железу, но с кучей отладочной инфы и референсам к оригиналу. Можно даже рисовать сканы ПЗУ и подсвечивать что где в данный момент читается.
#37 #417542
>>417510
1. хм, получается зум всего где-то 100х? У меня на столе более продвинутый микроскоп.
Вот на пикрелейтеде моем, я так понимаю, и есть сама прошивка? А диагональные царапины - это мудак-микроскопист, или для точной сшивки сканов нанесены? В одном месте непонятно что стало с 1 битом.

2. Ну на самом деле это просто. Есть такая штука как https://sourceware.org/gdb/onlinedocs/gdb/Overview.html#Overview - тут нам русским языком пишут, что достаточно просто:
At a minimum, a stub is required to support the ‘g’ and ‘G’ commands for register access, and the ‘m’ and ‘M’ commands for memory access. Stubs that only control single-threaded targets can implement run control with the ‘c’ (continue), and ‘s’ (step) commands. Stubs that support multi-threading targets should support the ‘vCont’ command. All other commands are optional.
Фактически, нам надо этот самый stub и написать. Слушать порт и рулить эмулем, выставлять доступ к регистрам и памяти. Проблема тут только в том, что я не знаю ни списка регистров, ни модели памяти, ни даже что там в эту память можно писать (тут вспоминается троичная логика от советских инженеров).

Далее можно выполнять код по шагам и смотреть на регистры/память, если есть что-то вроде IP-регистра, то можно писать лог что где исполнилось и чем закончилось, а иначе полные дампы делать каждый такт.

3. Ну если у нас есть уже годный эмуль, что мешает написать простейшую брутфорсилку, которая будет заполнять память/регистры рандомом и тикать процессором? Терабайты интересного выхлопа гарантированы, но что в итоге то? Обычно это юзается для тестирования совместимости с железом.

4. Мне не очень понятен термин "синхропрограмма", упомянутый по ссылке и тут в треде. Конечно, я нашел словарик вида
Программа = последовательность Команд.
Команда = последовательность Синхропрограмм.
Синхропрограмма = последовательность Микрокоманд.
Микрокоманда = набор микроприказов
Но понятнее от этого не стало. И да, двачи как раз по этому слову отлично гуглятся.

5. Для этого нам надо найти аналог call/jmp и смотреть что куда идет, записывая подробный лог. Далее, пишем простенький ассемблер/дизассемблер (или даже сразу сишный компилятор) с возможностью вставлять сгенерированный байткод в произвольное место. Это нам даст возможность переписывать код "на лету" в сишный (руками), ничего не теряя в оригинале, при необходимости проверяя себя тестами хоть после каждой строки. Кстате, только что пришла в голову безумная затея: сделать машину Тьюринга в миниатюре и в нее оттранслировать байткод, а уже в ней проводить дебаг без привязки к железу, но с кучей отладочной инфы и референсам к оригиналу. Можно даже рисовать сканы ПЗУ и подсвечивать что где в данный момент читается.
3787 Кб, 2000x2000
#38 #417543
кортинку забыл с царапинами
#39 #417558
>>417534
Нет, не клон, это оригинальный процессор. Иначе бы не пришлось ебаться с восстановлением кода, поиском документации и т. п. Про уничтожение СССР не слышал? Как вся промышленность пиздой накрылась. Очевидно, все документы там же. Если программные коды самого Бурана проебали, то что говорить о несчастном калькуляторе? Впрочем, в Пиндосии дела не лучше: тогда просто ещё не осознавали исторической ценности программного обеспечения.
#40 #417563
>>417558
А кто сказал, что прораммные коды Бурана проебали? Сто процентов распечатанные лежат на полке в архиве. Просто они никому не всарались и их толком не искали.
В крайнем случае также можно вскрыть БИС и считать ПЗУ.
#41 #417564
>>417558
А весь прикол в том, что код программ в этой впиздец низкоуровневой хуйне и писался. Только древним задротам, которые уже почти все поумирали, было известно, как составлялся этот код. Дед Трохименко (и иже с ним: Захаров, Ромашко, Жижко, Польский, Дьяконов) попытался пролить нам свет на это безобразие в виде книги "ПМК: устройство и пользование", и всё равно нихуя не ясно.
#42 #417565
>>417563
А ничего, что они на магнитной ленте записаны были? Ну давай, почитаем, ежели не пиздишь.
#43 #417569
>>417565
А как же бумажная документация ЕСКД по любому где-то лежит. Сейчас это никому не надо по этому и не ставили цель восстановить.
#44 #417571
>>417558
Если не пиздят, то все есть в открытом доступе
http://mywebs.su/blog/soft/4346.html
#45 #417572
>>417569
Учитывая распиздяйство 90-х, лежала она где-то в топке буржуйки бомжа, охранявшего склад с плитками от Бурана, которые продавали по доллару за штуку на Запад для Шаттлов.

>>417571
1 апреля, ничего? С днём долбоёба, долбоёб.
#46 #417575
>>417572

> 1 апреля


Да обосрался.
#47 #417599
>>417564
Почитал Трохименко программируемые микрокалькуляторы устройство и пользование. Это натуральный трэш, нихера непонятно. Дедуля на своей волне был.
5 Кб, 666x278
#48 #417620
Посолены, реквестирую:

1. Годный эмулятор.
На худой конец http://mk-61.moy.su/emulator.html конечно сойдет, но я посмотрел сорсы и у меня ТРИЕДИНСТВО от него началось. Хотелось бы на чем-то более вменяемом и байтоебском (сишка, кресты, да хоть жаба), я конечно могу и портировать, но пока лень.

2. Набор демок / тестов
Помню даже игори делали с ним, но книжка у меня куда-то проебалась.
Мне нужно будет построить набор тестов для проверки корректности, поэтому желательно задействовать все-все-все возможные опкоды калькулятора. Ну и входные/выходные данные.

3. Рассказать мне как это все вводить/выводить, с чем сравнивать, мануал короч как всё это запускать.

4. Пока я не изобрел свои мнемоники вместе со своим ассемблером, дайте уже готовые начинания на эту тему, если у кого-то есть что-то такое на примете.

5. В эмуляторе по ссылке, к примеру, дисплей "захардкожен" прямо в коде, железячный не эмулируется, как быть с этим? Стоит ли изображать 7-сегментные индикаторы или не ворошить это? Я просто пока до конца не разобрался с эмулем, возможно этого там даже нету, а может быть вполне и есть.
#49 #417775
>>417620
1. Ну тот же эмулятор Феликса Лазарева на C++ возьми ( https://code.google.com/p/emu145/downloads/list ). Он там к нему ещё что-то типа дизассемблера прикрутил, но толку с этого нихуя.

2. Тут, например, дохуя программ: http://rosettacode.org/wiki/Category:%D0%9C%D0%9A-61/52 . Специальный тест можно заебенить, но, полагаю, хватит любой программы, занимающей большую часть памяти.

3. Ну вот здесь уже без жабаскриптового эмулятора не обойтись - только он умеет хавать программы в текстовом виде. Вручную вводить заебёшься. Ну или пихать ему программу прямо в память в виде опкодов.

4. Тут надо тебе подробнее вникнуть в логику работы сей машины. Всего ассемблерных команд наберётся столько, сколько битов в микрокоманде. Дизассемблер сделать можно (хотя тоже нюансы есть). На что похож дизассемблированный код, смотри в первом сообщении.

5. Да, Феликса, по ходу, схарило разбираться с остальными элементами К745ИК13, в итоге имеем только код ПЗУ команд, синхропрограмм и микрокоманд. Так что, пожалуй, придётся обойтись тем, что имеем.
#50 #417787
>>417542

> 100x


Нет, 640x. Не знаю, откуда взялись царапины на схеме, но, вроде как, все биты можно различить.

> Программа = последовательность Команд.


> Команда = последовательность Синхропрограмм.


Первое заблуждение, с которым сталкивается изучающий потроха МК-61, - это то, что программа, вводимая человеком, состоит из машинных кодов. Да хуй там, это высокоуровневые инструкции, исполняемые программой, прошитой в ПЗУ. И все элементы памяти, доступной человеку (регистры, стек, программная), - виртуальны.

Сама программа ПЗУ состоит из трёх уровней:
1. 256 команд (не тех, блядь, что человек вводит, бацая по кнопкам; других), состоящих из трёх адресов синхропрограмм;
2. 128 синхропрограмм, состоящих из девяти адресов микрокоманд;
3. 68 микрокоманд.

Микрокоманда - массив битов, каждый из которых обозначает определённое действие (микроприказ).

Основные элементы памяти:
- три массива из 42-х 4-битовых слов M, R и ST;
- регистры S и S1 размером 1 слово;
- биты L, T и П.

Выполнение этой программы происходит следующим образом. Адрес команды, которая подаётся на исполнение, определяется состоянием памяти (R[36] и R[39]). За каждые 42 такта выполняется одна команда, т. е. 42 микрокоманды. Каждый такт происходит передача слова по кольцу из трёх процессоров (которые одинаковы, только программы разные) и двух регистров памяти. За один шаг выполняется 560 команд или 23520 микрокоманд. Шаг примерно соответствует, если не ошибаюсь, элементарной операции (или команде программы, вводимой калькуляторщиком).
47 Кб, 734x441
#51 #417799
А что это быдлокодерское кудахтанье умолкло?
sage #52 #417865
>>417799
как умолкло?
вот же - >>417787 >>417799 >>417510 >>417116
5 Кб, 342x287
#53 #417878
>>417775

>Ну тот же эмулятор Феликса Лазарева на C++ возьми


Ну уже лучше, хоть и всякие pretick-и встречаются. Хотя крестопетушение тоже не идеал.

>3. Ну вот здесь уже без жабаскриптового эмулятора не обойтись - только он умеет хавать программы в текстовом виде. Вручную вводить заебёшься


ТЫЖПОГРОМИЗД, написать эмулятор для эмулятора же можно. Ты только скажи, куда кнопки тыкать, а то я чувствую себя гуманитарием, когда не могу найти даже "=" на клавиатуре. Мне надо объяснение "вот видим такую программу и значит жмем следующие кнопки".

>Феликса, по ходу, схарило разбираться с остальными элементами К745ИК13


Ну это вообще пушка, это как взять и вырезать половину проги и пытаться заставить работать остальное.

>Нет, 640x. Не знаю, откуда взялись царапины на схеме, но, вроде как, все биты можно различить.


Лол, я бы тоже не хуже сделал значит.
Посмотри на большую и толстую царапину, 1 бит под ней скрывается полностью

>(регистры, стек, программная), - виртуальны


Тогда надо разобраться во что реальное оно транслируется и где/как хранится

>Сама программа ПЗУ состоит из трёх уровней


Я правильно понимаю, что это можно представить примерно так:
256 элементов-указателей на структуры по 3 указателя (синхропрограммы), а сами синхропрограммы - это 9 указателей на микрокоманды? Т.е. в итоге мы имеем дерево cmd->synchro->opcode->action? Вместо IP-регистра у нас только указатель в ((R[36]<<4) | R[39]) (или как их складывать? кто старший?)... на что? Где у нас пользовательская команда, которую надо интерпретировать? А дальше просто шароебим по массиву указателей на команды и быстро-быстро шароебим по дереву, исполняя код?
#54 #417981
>>417878

> Ты только скажи, куда кнопки тыкать, а то я чувствую себя гуманитарием, когда не могу найти даже "=" на клавиатуре.


Да это хуйня, 10-летние школьники под него программы писали (правда, советские; ЕГЭ-бакалаврам-быдлокодерам это не под силу). Вся суть в том, что калькулятор работает в бесскобочной нотации. Т. е., чтобы посчитать, напр., "3 4", надо нажать "3", поднять 3 вверх в стеке кнопкой "В^", потом "4", и тогда "", результат на экране (регистр X). Отображение стека в эмуляторе очень хорошо помогает разобраться в логике работы этой машины. Насчёт программ тоже просто: F->ПРГ, дальше вводишь программу, каждая команда вводится так же, как если бы считал вручную, обратно - F-АВТ; запускать - В/О (сбросить счётчик команд) и С/П (стоп/пуск).

> Ну уже лучше, хоть и всякие pretick-и встречаются. Хотя крестопетушение тоже не идеал.


А чем тебя жидокрипт не устраивает? Всё по-русски написано, без всякой мудотени, на мой взгляд, всё предельно ясно и легко модифицируется.

> Ну это вообще пушка, это как взять и вырезать половину проги и пытаться заставить работать остальное.


Видеодрайвер, драйвер клавиатуры и т. п. живут своей отдельной жизнью, будто это самостоятельные устройства (см. книгу деда Трохименка). Так что потеря, по-моему, не очень значительная (хотя хотелось бы, конечно, иметь и их). Тут надо сперва поинтересоваться, собственно, какого хуя Феликс забил на них хуй, м. б., действительно, оно того не стоило?

> Тогда надо разобраться во что реальное оно транслируется и где/как хранится


Где и как хранится - это понятно (смотри в эмуляторе функцию "Заполнить_поля", перестановки верны для определённого такта, а так все данные вращаются в кольце). А вот как и какими командами транслируются, управляются и т. п. - это уже сложнее.

> 256 элементов-указателей на структуры по 3 указателя


Каких, нахуй, указателей на указатели? Они и есть структуры по три указателя (плюс один бит, использующийся исполнителем). Ну а так, да: команды->синхропрограммы->микрокоманды->микроприказы.

> или как их складывать? кто старший?


39-й старше, смотри эмулятор.

> на что?


Ну на команду, а что у нас ещё-то есть?

> Где у нас пользовательская команда


В смысле?

> А дальше просто шароебим по массиву указателей на команды


Где ты увидел массив указателей на команды? Дерево (для каждой команды) строить, полагаю, нахуй не сдалось. Команда выбирается по результату отработки предыдущей команды. Каждой команде соответствуют одни и те же микрокоманды (хотя содержание микроприказов 4-х из них зависит от состояния регистров). В первом сообщении показана попытка преобразования команды в последовательность микрокоманд. Хуёво вышло с точки зрения человека, пытающегося понять, как это работает.

Попробую довести до ума и выложить свою версию дизассемблера на базе жс-эмулятора.
#54 #417981
>>417878

> Ты только скажи, куда кнопки тыкать, а то я чувствую себя гуманитарием, когда не могу найти даже "=" на клавиатуре.


Да это хуйня, 10-летние школьники под него программы писали (правда, советские; ЕГЭ-бакалаврам-быдлокодерам это не под силу). Вся суть в том, что калькулятор работает в бесскобочной нотации. Т. е., чтобы посчитать, напр., "3 4", надо нажать "3", поднять 3 вверх в стеке кнопкой "В^", потом "4", и тогда "", результат на экране (регистр X). Отображение стека в эмуляторе очень хорошо помогает разобраться в логике работы этой машины. Насчёт программ тоже просто: F->ПРГ, дальше вводишь программу, каждая команда вводится так же, как если бы считал вручную, обратно - F-АВТ; запускать - В/О (сбросить счётчик команд) и С/П (стоп/пуск).

> Ну уже лучше, хоть и всякие pretick-и встречаются. Хотя крестопетушение тоже не идеал.


А чем тебя жидокрипт не устраивает? Всё по-русски написано, без всякой мудотени, на мой взгляд, всё предельно ясно и легко модифицируется.

> Ну это вообще пушка, это как взять и вырезать половину проги и пытаться заставить работать остальное.


Видеодрайвер, драйвер клавиатуры и т. п. живут своей отдельной жизнью, будто это самостоятельные устройства (см. книгу деда Трохименка). Так что потеря, по-моему, не очень значительная (хотя хотелось бы, конечно, иметь и их). Тут надо сперва поинтересоваться, собственно, какого хуя Феликс забил на них хуй, м. б., действительно, оно того не стоило?

> Тогда надо разобраться во что реальное оно транслируется и где/как хранится


Где и как хранится - это понятно (смотри в эмуляторе функцию "Заполнить_поля", перестановки верны для определённого такта, а так все данные вращаются в кольце). А вот как и какими командами транслируются, управляются и т. п. - это уже сложнее.

> 256 элементов-указателей на структуры по 3 указателя


Каких, нахуй, указателей на указатели? Они и есть структуры по три указателя (плюс один бит, использующийся исполнителем). Ну а так, да: команды->синхропрограммы->микрокоманды->микроприказы.

> или как их складывать? кто старший?


39-й старше, смотри эмулятор.

> на что?


Ну на команду, а что у нас ещё-то есть?

> Где у нас пользовательская команда


В смысле?

> А дальше просто шароебим по массиву указателей на команды


Где ты увидел массив указателей на команды? Дерево (для каждой команды) строить, полагаю, нахуй не сдалось. Команда выбирается по результату отработки предыдущей команды. Каждой команде соответствуют одни и те же микрокоманды (хотя содержание микроприказов 4-х из них зависит от состояния регистров). В первом сообщении показана попытка преобразования команды в последовательность микрокоманд. Хуёво вышло с точки зрения человека, пытающегося понять, как это работает.

Попробую довести до ума и выложить свою версию дизассемблера на базе жс-эмулятора.
#55 #417995
>>417878

> Посмотри на большую и толстую царапину, 1 бит под ней скрывается полностью


Там, где она начинается, чётко видно, что никакого бита там нету.
#56 #419088
Итак, имеется программа демонстрации потрохов процессора МК-61: http://mk-61.moy.su/potroha.html

Вместо трёх процессоров и двух памятей, образующих кольцо (частью которого является регистр M (магистраль)), он замкнут на себя. Чтобы получить ЕГГОГ, после стабилизации состояния разрядов индикатора достаточно нажать клавишу запятой (нижний ряд, вторая слева).
5 Кб, 250x192
#58 #419171
>>419101

> Пост не был найден. Удалён или что-то сломалось.


Кто такую красавицу пидорнул? Это, небось, автопортрет петушка-автора в период анального расцвета был. Прям неловко.
217 Кб, 1920x1080
Аноним #59 #419220
>>419171
это злобный модератор удалил все мои посты
но он уже понял свою ошибку, и как видишь, бан снят
эх, жаль то сообщение
#60 #419469
>>419220
Ну так если ты уёбок, кудахтающий в сторону МК-61, то это вполне закономерно.
40 Кб, 483x411
264 Кб, 668x515
27 Кб, 420x350
sage #61 #419577
калкулятор то у тебя зафаршмачен
#62 #420134
Выявлена причина ненависти быдлятины к МК-61. Это не сложность программирования, не невозможность освоения примитивными быдлокодерскими умишками даже основ этого занятного искусства, не несоответствие быдлокодерским критериям понятия о языках программирования, в силу зависти к гораздо более талантливым представителям профессии (если это можно считать одной профессией) - тут всё гораздо проще и прозаичнее. Всё упирается в понятие русскости. МК-61 сделали русские. Код МК-61 пишется русскими буквами. Что может бесить космополитичную блядину - блядокодера больше, нежели русские слова в коде? Это напоминает ему о том, что когда-то не только такие уёбки, как он сам, но и нормальные люди писали программы, разрабатывали компьютерные системы и т. п. Это для него страшно, ибо тем самым он в полной мере осознаёт свою ублюдочность, полнейшую ущербность перед лицом действительно достойных профессионалов, которые ссали бы сверху на ебала таким хуесосам, живя и работая с ними в одно время.
#63 #420150
>>420134

>МК-61 сделали русские


Хохлы же. МК-61 - хохлятский калькулятор, например.
#64 #420164
>>420134
ЕГГОГ
мимо 1Сник
7 Кб, 225x225
#65 #420165
>>420150
Ну так а я о чём? Или хохлы, по-твоему, не русские?
sage #66 #420168
>>419577
underrated post

промоушен олимпиадки >>420156
#67 #420187
>>420168
По-русски, мудила.
90 Кб, 604x604
#68 #422787
>>420134
Тема, между тем, серьёзная, зря замолкли, петушки.

Зацените, к примеру:

[code]ВИД
Дробь- = НАБОР числитель, знаменатель: ШИРЦЕЛ КОН;

ЗАДАЧА НОД(a, b: ШИРЦЕЛ): ШИРЦЕЛ;
УКАЗ
ПОКА (a # 0) И (b # 0) ВЫП
ЕСЛИ a >= b ТО
a := a ОСТАТОК b
ИНАЧЕ
b := b ОСТАТОК a
КОН
КОН;
ВОЗВРАТ a + b
КОН НОД;

ЗАДАЧА НОК(a, b: ШИРЦЕЛ): ШИРЦЕЛ;
УКАЗ
ВОЗВРАТ a b ДЕЛИТЬ НОД(a, b)
КОН НОК; [/code]

Это ж просто охуенно! Почему быдлятина так не любит русский язык?
sage #69 #422788
Блядский скрипт, с отступами красивее было.
#70 #422829
>>422787
Ты считаешь Аду охенной?
#71 #422830
>>422829
охуенной
self-fix
#72 #423007
>>422829
При чём тут Ада? Речь не про синтаксис-то шла, а про лексическую базу.
#73 #423024
>>423007
На лексическую базу при уёбищном синтаксисе глубоко посрать. А вот если синтаксис хорош, то хуёвая лексическая база может скатить его в говно. Например, из-за СКЛОНЕНИЙ.
#74 #429333
Бамп великому треду!
#75 #429385
>>422787

>КОН НОК


Мазафака
#76 #429398
>>417510
Не знаю почему, но после просмотра этой фотографии испытал ужас, ведь это невероятно - есть железяка, есть тонны документов по ней, но никто не знает как она работает.
#77 #430103
>>429398
У меня был знакомый, заканчивал ВУЗик по спецiальности "микроэлектроника", он знал.

Вообще, погугли верилог и пикад.
#78 #432098
>>429398
К сожалению, примерно так оно и есть, хотя документов не так уж и много сохранилось - несколько книжек и статей. Попытался вникнуть в эту поебень, пошагово изучая работу процессора, чуть перелом мозга не получил, потом пару дней отходил.

>>430103
Вряд ли. Т. е. он, может, и знал бы, как процессор исполняет команды (это и мы знаем), как устроен, на какой базе и по каким технологиям работает и т. п., но как работает программа ПЗУ, хуй бы он понял.
#79 #432236
>>417391
Как насичёт Васика?
#80 #433700
>>416689
R[15] = R[18]
a := a ОСТАТОК b
ИНАЧЕ
b := b ОСТАТОК a
sdfd 3454
КОН
КОН;
ВОЗВРАТ a + b
R[18] = R[21]
R[21] = R[24]
a := a ОСТАТОК b
ИНАЧЕ
b := b ОСТАТОК a
КОН
КОН;
ВОЗВРАТ a + b
34534 sfsf
R[24] = R[27]
24 dfgfd
#81 #433728
>>433700

>R[18] = R[21]


>R[21] = R[24]



Так правильнее будет:
R[18] := R[23]
R[23] := R[24]
#82 #434838
Оп - картавый сыч
инфа 100
#83 #435437
>>433700
Что за a и b, что за sdsf и т. п., блядь?
34 Кб, 250x171
#84 #435457
Иначе говоря, имеется некий абстрактный исполнитель ИК13, который обрабатывает инструкции, представленные тремя уровнями: команды, синхропрограммы и микрокоманды.

Каждые 42 такта работы исполнителя выбирается на основании текущего состояния команда, которая содержит три адреса синхропрограмм, по очереди использующиеся в течение этих 42-х тактов. У каждой синхропрограммы своё назначение.

Синхропрограмма представляет собой 9 адресов 28-битных микрокоманд, каждый бит которой определяет некоторое элементарное действие, исполняющиеся над памятью исполнителя в зависимости от номера такта и текущего состояния регистров.

Память исполнителя представлена тремя основными регистрами M, R и ST, состоящими из 42-х 4-битный слов, регистрами S и S1 по 1-му слову, а также 1-битными флагами L, T и П.

Также предусмотрена возможность обмена с другими исполнителями через 1-словные регистры входа и выхода, вывода числа на индикатор через регистр R и ввода с клавиатуры, кнопки которой представляются двумя переменными X и Y.

Полную схему работы см. тут: http://pastebin.com/TxAJa8hU
6 Кб, 438x342
#85 #441862
Охуеть, уже французы пишут компиляторы под МК-61: http://gtello.pagesperso-orange.fr/elektronika_e.htm
sage #86 #441887
>>441862
расия отсоссала у франции в 1856
#87 #442034
>>441887
Да неужели? После того, как Франции порвали жопу до ушей в 1812-14, такое высказывание звучит нелепо.
#88 #442599
Посмотрел на фоточки калькулятора, на эти зеленые цифирьки и почему-то стал думать про совок иначе, может вся эта хуйня со школы это промывка, Солженицын ГУЛАГ это все, может Сталин не убивал?
#89 #442605
>>442599

>Солженицын ГУЛАГ


Да так и есть, количество жертв завышено на порядки.
http://www.youtube.com/watch?v=M_JYbSql3Lw
#90 #442611
>>442599
>>442605
Солженицын - обычный обиженник. Съебался с фронта на зону, там его, видимо, опустили, потому и начал загонять про 100 млн расстрелянных и прочую хуйню, желая отомстить "обидчикам". Но, с другой стороны, интересный источник по теме, если рассматривать его писанину как в основе своей художественную.
#91 #443206
#92 #445417
Меня всегда забавляло, как быдло, мнящее себя элитой от программирования, пишущее на всякой экзотической хуйне, вплоть до Брэйнфака и машины Тьюринга, завидев на горизонте МК-61, в ужасе обсиралось и начинало визжать и кукарекать что-то на тему ватников, совков и т. п.

В ходе сих рассуждений удалось выявить несколько факторов, влияющих на это стадо дебилов:

1) русскость языка, калькулятора, его разработчиков и пользователей;
2) ограниченность ресурсов, вынуждающее шевелить мозгами, которых у быдла нету;
3) язык, напоминающий низкоуровневый автокод, хотя по сути он нихуя не низкоуровневый.

Кто что ещё вспомнит, пишите, это очень интересное и занятное явление.
#93 #445419
Чем этот ваш МК-61 лучше HP-шных калькуляторов того времени?
sage #94 #445420
>>445417
1) славшит не нужен и их недоязык тоже
2) анальное трюкачество вместо свободного выражения мысли в коде; вместо описания того что нужно сделать, описываешь шаги как это сделать, детсад блять, развлечение типа кубика-рубика
3) вырвиглазныйй пиздец, не удивительно, в совке всё было уёбищным, такая традиция, не для людей же делали, для совков.
#95 #445444
>>445419
Ни чем не лучше, НР-11, 41 круче, даже принтер для них был. МК-61 такой какой он есть, каким мы его узнали в 1987 году, это первая конча стекающая с конца, это замусоленный до дыр Техника молодежи, это понос от турнепса и многое другое
#96 #445447
>>445420
Да блядь совки не люди, а вот анимедрочеры люди - всё для них и сисярп и хуй в жопу
#97 #445453
У меня был МК-52, я играл на нем в игры "Пещера", "Посадка на Марс" (или Луну, хуйзнает), "Ездьба под парусом", и подобные, такой-то графон был, воображение развивало. Сейчас даже БРП от него где-то валяется.
Но вот эти упоротые люди, который пилят микросхемы и насилуют мертвые процессоры, зачем им это надо? Лучше бы свое что-то создавали.
#98 #445497
>>445453
это у них из-за еггога. Большинство из этих уродов виртуозно с паяльником обращаются и таки создают своё, но в большинстве случаев за жрат
204 Кб, 1204x537
#99 #445614
Еггог - это вообще отдельная тема. В журналах "Техника - молодёжи" и "Наука и жизнь" регулярно в рубриках, посвящённых ПМК, публиковались новости "еггогологии" - открытия новых недокументированных особенностей калькуляторов и возможности их использования в программах.

Молодёжь, может, не поймёт весь кайф от существования эмулятора, потому рекомендую ознакомиться с журналами тех лет ( http://www.emulator3000.org/rus-c3.htm , внизу страницы, или тут - http://arbinada.com/pmk/node/1049 ), весьма душевное чтиво.
#100 #445650
Я так понял, кольцо (магистраль) в пределах одного процессора вращает программа ПЗУ? Тогда понятно, как всякая хуйня вылазит за пределы регистров и программной памяти.
#101 #445774
>>445650
Это ты хорошо понял, только тебя не понимаю.
>>445614
Видел продается ТМ, не раз рука тянулась взять посмотреть, так и не взял. Последний раз читал его в 1992 году, тогда началась еще хуйня с объединением журнала за 2 месяца в один и журналы в 2 раза тоньше были, и реклама непонятной хуйни на полжурнала. Журнал с 1985 выписывали.
8 Кб, 500x244
#102 #445844
>>445774

> только тебя не понимаю

#103 #445849
>>445844
Это Б3-34, в МК-61 ещё один процессор добавлен, но суть та же - ебучее сине-зелёное кольцо, по которому они гоняют поток информации, по 1 биту за такт. А прикол в том, что если регистры памяти на аппаратном уровне толкают эту струю, то процессоры, судя по всему, - программно (42-словный регистр M, см. http://mk-61.moy.su/potroha.html ).
#104 #446451
Я даже знаю, какая любимая игра была бы у нынешних быдлокодеров, родись они лет на 25 раньше.

Симулятор шлюхи:

4\tхП1\tПхД\t8\tС/П\tКППА\tПх6\tх\tВ↑\tКсч
х\tхП0\tПхЕ\t–\tFx≥o\t19\tFL1\t12\tКПх1\t5
Пх1\t–\tПхЕ\t+\tКинв\tхП2\tПх3\tхП1\tПх2\tС/П
В↑\tПх0\t–\tFx≥o\t38\tFL1\t28\tКБП8\t↔\t/–/
КППА\tПх4\tхП1\tFL1\t43\tКсч\t3\tF1/x\t–\tFx<o
60\tКсч\tПх6\tх\tK[х]\tПх6\t+\tКППА\tПхВ\tС/П
Ксч\t9\tF1/x\t–\tKx<oE\tПхС\tС/П\tКППА\t+\tКсч
Пх0\tх\t–\tKx≥oE\tПх9\tКППА\tПх7\tхП0\tПхС\tС/П
FL0\t78\t6\tС/П\tКППА\tПх6\t–\tF√\tКБПЕ\tхП2
ПхД\tПх2\t–\tхПД\tF√\tПх2\tВ/О

__Регистры__:
терпеливость клиента (2-7) хП3; продолжительность акта, цикл (4-8) хП4; коэффициент доброты клиента (25-27) хП6; срок наказания (4-6) хП7; штраф (100) хП9; 200 (деньги) хПД; 88008 В↑ 22032 KV K{x} ВП 4 хПВ ↔ 22022 KV K{x} ВП 4 хПС; 89 хПА; 82 хП8; 100 хПЕ.

__Начало__: В/О С/П...

RX="8" - сутенёр (RY="твои деньги"). Вводишь деньги сутенёру, С/П.

RX="8.N" - сутенёр привёл N - клиента. Вводишь свою цену, С/П. Если клиент не согласен, он остаётся R3 раз, а если не договорились - RX="6" - разговор продолжает мафия. Вводишь откуп, С/П. Если мало - RX="ЕГГОГ" - ты погибла, иначе RX="8" и т.д.

Если договорились - обслуживаешь клиента (в динамическом режиме мерцает "70000000" - пол/акт), получаешь деньги и проходишь проверки на вензаболевания и в ментовке.

Если заразилась, RX="–03–" - Скорая Сволочь. RY="уже заплаченные деньги за лечение". С/П.

Если RX="–02–" - попалась в ментовку. Вводишь взятку, С/П. Если менты согласны, то попадаешь к сутенёру, а если нет - то сидишь, а затем оказываешься в лапах мафии...
#104 #446451
Я даже знаю, какая любимая игра была бы у нынешних быдлокодеров, родись они лет на 25 раньше.

Симулятор шлюхи:

4\tхП1\tПхД\t8\tС/П\tКППА\tПх6\tх\tВ↑\tКсч
х\tхП0\tПхЕ\t–\tFx≥o\t19\tFL1\t12\tКПх1\t5
Пх1\t–\tПхЕ\t+\tКинв\tхП2\tПх3\tхП1\tПх2\tС/П
В↑\tПх0\t–\tFx≥o\t38\tFL1\t28\tКБП8\t↔\t/–/
КППА\tПх4\tхП1\tFL1\t43\tКсч\t3\tF1/x\t–\tFx<o
60\tКсч\tПх6\tх\tK[х]\tПх6\t+\tКППА\tПхВ\tС/П
Ксч\t9\tF1/x\t–\tKx<oE\tПхС\tС/П\tКППА\t+\tКсч
Пх0\tх\t–\tKx≥oE\tПх9\tКППА\tПх7\tхП0\tПхС\tС/П
FL0\t78\t6\tС/П\tКППА\tПх6\t–\tF√\tКБПЕ\tхП2
ПхД\tПх2\t–\tхПД\tF√\tПх2\tВ/О

__Регистры__:
терпеливость клиента (2-7) хП3; продолжительность акта, цикл (4-8) хП4; коэффициент доброты клиента (25-27) хП6; срок наказания (4-6) хП7; штраф (100) хП9; 200 (деньги) хПД; 88008 В↑ 22032 KV K{x} ВП 4 хПВ ↔ 22022 KV K{x} ВП 4 хПС; 89 хПА; 82 хП8; 100 хПЕ.

__Начало__: В/О С/П...

RX="8" - сутенёр (RY="твои деньги"). Вводишь деньги сутенёру, С/П.

RX="8.N" - сутенёр привёл N - клиента. Вводишь свою цену, С/П. Если клиент не согласен, он остаётся R3 раз, а если не договорились - RX="6" - разговор продолжает мафия. Вводишь откуп, С/П. Если мало - RX="ЕГГОГ" - ты погибла, иначе RX="8" и т.д.

Если договорились - обслуживаешь клиента (в динамическом режиме мерцает "70000000" - пол/акт), получаешь деньги и проходишь проверки на вензаболевания и в ментовке.

Если заразилась, RX="–03–" - Скорая Сволочь. RY="уже заплаченные деньги за лечение". С/П.

Если RX="–02–" - попалась в ментовку. Вводишь взятку, С/П. Если менты согласны, то попадаешь к сутенёру, а если нет - то сидишь, а затем оказываешься в лапах мафии...
#105 #446459
Или:

Симулятор проститутки:

Пх2\tхП1\tКППС\tKx=oA\tКсч\tПх5\tх\tКБПС\t5\tх
Flg\tПх5\t+\tхП5\tКППС\tKx=oB\tПх4\tF√\t/–/\tБП
25\t9\tх\tF√\tFln\tПх4\t+\tхП4\tКППС\t7
÷\tFlg\tFex\tПх3\t+\tхП3\tВ↑\tПх4\tх\tВ↑
Ксч\t1\t+\t÷\tK[х]\tхП6\tF√\t–\tхП3\tF√
Ксч\t5\t1\tх\tПх6\tх\tПхД\t+\tхПД\tКсч
ПхД\tх\tПхД\tС/П\tFx≥o\t69\t–\tхПД\tКБП8\tКсч
ПхВ\tх\tПх5\t–\t/–/\tхП5\tKx<o8\tПх4\tF√\tхП4
Пх3\tF√\tхП3\tПхД\tF√\tхПД\tКБП8\tПхД\tПх1\tС/П
хП9\tПхД\t↔\t–\tхПД\tКПх1\tПх9\tВ/О

__Регистры__:
1 K– ВП хП2; Сх хП8; 8 хПА; 21 хПВ; 87 хПС; 13 хПЕ;
100 (деньги) хПД.

__Начало__: В/О С/П...

RX="Е" (блок карате), RY="деньги". Чтобы отбиваться от рэкетиров, надо ходить в секцию карате. Ввод: деньги на обучение, С/П.

RX="Г" (блок одежды), RY="деньги". Для привлечения клиентов надо получше одеться. Ввод денег на одежду, С/П.

RX="С" (блок лечения), RY="деньги". Для профилактики и лечения профессиональных заболеваний необходимо выделить деньги. Ввод: деньги на лечение, С/П.

RX="деньги, которые у Вас есть после этой ночи". RY="требования рэкетиров". Если силёнок маловато, можно отдать: /-/ С/П. Если Ваших сил будет больше, то всё нормально, только R5 уменьшится на кол-во силы рэкетиров. Если победят рэкетиры - они отнимут часть денег и порвут одежду, естественно, здоровье тоже ухудшится от побоев, а R5 будет даже отрицательным.

Кол-во клиентов зависит от качества одежды и от здоровья, но чем больше клиентов, тем хуже здоровье. Если не давать денег на одежду и карате, то одежда изнашивается, а выучка ухудшается.
Вводить 0 руб. на лечение нельзя. Если здоровье станет отрицательным, героиня умирает (RX="ЕГГОГ").

Обе игры 1991-го года. Точно про матерей ваших. Ещё симулятор публичного дома есть, но в него, скорее, ваши анальные манагеры-надзиратели играли.
#105 #446459
Или:

Симулятор проститутки:

Пх2\tхП1\tКППС\tKx=oA\tКсч\tПх5\tх\tКБПС\t5\tх
Flg\tПх5\t+\tхП5\tКППС\tKx=oB\tПх4\tF√\t/–/\tБП
25\t9\tх\tF√\tFln\tПх4\t+\tхП4\tКППС\t7
÷\tFlg\tFex\tПх3\t+\tхП3\tВ↑\tПх4\tх\tВ↑
Ксч\t1\t+\t÷\tK[х]\tхП6\tF√\t–\tхП3\tF√
Ксч\t5\t1\tх\tПх6\tх\tПхД\t+\tхПД\tКсч
ПхД\tх\tПхД\tС/П\tFx≥o\t69\t–\tхПД\tКБП8\tКсч
ПхВ\tх\tПх5\t–\t/–/\tхП5\tKx<o8\tПх4\tF√\tхП4
Пх3\tF√\tхП3\tПхД\tF√\tхПД\tКБП8\tПхД\tПх1\tС/П
хП9\tПхД\t↔\t–\tхПД\tКПх1\tПх9\tВ/О

__Регистры__:
1 K– ВП хП2; Сх хП8; 8 хПА; 21 хПВ; 87 хПС; 13 хПЕ;
100 (деньги) хПД.

__Начало__: В/О С/П...

RX="Е" (блок карате), RY="деньги". Чтобы отбиваться от рэкетиров, надо ходить в секцию карате. Ввод: деньги на обучение, С/П.

RX="Г" (блок одежды), RY="деньги". Для привлечения клиентов надо получше одеться. Ввод денег на одежду, С/П.

RX="С" (блок лечения), RY="деньги". Для профилактики и лечения профессиональных заболеваний необходимо выделить деньги. Ввод: деньги на лечение, С/П.

RX="деньги, которые у Вас есть после этой ночи". RY="требования рэкетиров". Если силёнок маловато, можно отдать: /-/ С/П. Если Ваших сил будет больше, то всё нормально, только R5 уменьшится на кол-во силы рэкетиров. Если победят рэкетиры - они отнимут часть денег и порвут одежду, естественно, здоровье тоже ухудшится от побоев, а R5 будет даже отрицательным.

Кол-во клиентов зависит от качества одежды и от здоровья, но чем больше клиентов, тем хуже здоровье. Если не давать денег на одежду и карате, то одежда изнашивается, а выучка ухудшается.
Вводить 0 руб. на лечение нельзя. Если здоровье станет отрицательным, героиня умирает (RX="ЕГГОГ").

Обе игры 1991-го года. Точно про матерей ваших. Ещё симулятор публичного дома есть, но в него, скорее, ваши анальные манагеры-надзиратели играли.
#106 #447541
Хорошая новость: ебулятор теперь поддерживает кроме схематического ещё визуальное отображение МК-61, теперь как настоящий - http://mk-61.moy.su/emulator.html#МК-61_картинка

Теперь играть в шлюх и проституток будет ещё веселее!
1588 Кб, 1002x978
#107 #450026
Разобрал свой калькулятор, решил посмотреть, почему он не хотел работать от блока питания. Блядь, такое ощущение, что кто-то подрочил на плату и высушил феном в процессе сборки (см. картинку). Что за хуйня?
#108 #450028
>>450026
под лаком окисление пошло, за многие годы влага прошла через верхнюю поверхность платы, текстолит протек(
#109 #450066
>>450026
На такой ЖЪОЛТИЙ НОЖЬКА я бы тоже подрочил.
#110 #450419
>>450028
Ага, и ровно на микросхемы попал. Скорее уж, студенты-практиканты перевозбудились от избытка эмоций. Те самые, которые теперь за еду быдлокодят.
#111 #451722
Обратил внимание. Код 8 , 0 ИНВ {x} С/П по идее должен положить в регистр X значение 0,f. Но калькулятор пихает его ещё и в регистр T, самый конец стека. Вообще калькулятор с особым чувством относится к цифре f, которая отрисовывается пустым знакоместом. При запуске программы в таком состоянии программный код перепидорашивает к хуям. Т. е. в теории можно писать самомодифицирующийся код.
#112 #451777
Особенно интересно было писать игры под МК-61, порой даже интереснее, чем играть в них. Например:

Игра "Хач-трюкач":

Сx П5 5 П0 СЧ 5 [x] 1 +
KП0 ИП5 2 10^x
+ П5 ИП0 1 -
x=0 04 ИП5 ВП /-/ 7 ^ 8 + ИПC
\/ {x} ^ ВП 7 С/П /-/ ^ 5 +
П7 KИП7 6 1/x ^ СЧ - x<0 55
БП 81 СЧ ИП8 - x<0 64 ИП9 2 /
[x] П9 БП 82 ИП8 / [x] x=0 75 ИП9
5 - П9 БП 81 ИП9 3
+ БП
81 KИП6 ИП9 /-/ x>=0 88 ИПD С/П ИП6 1
0 - x=0 96 ИПE С/П ИП9 ИП6 С/П БП
00

Сюжет. Хач Ослан узнал, что из аула Чурбанпиздыевка сбежал ишак, которого следует искать на вершине близлежащей сопки.
К вершине есть четыре пути, которые на каждом ярусе холма пересекаются, и можно выбрать любой путь.
Однако осла также ищет его прежний хозяин Гусен. При встрече с ним здоровье героя уменьшается на 5 единиц, однако, одолев Гусена, он продолжает движение наверх.
Также он может столкнуться с призраком русского солдата, при этом здоровье уменьшается вдвое, а ход не засчитывается.
По пути можно найти шаурму (+6 здоровья) и ослиную мочу (+3 здоровья).
Ослан способен определить вероятность нахождения вверху некого объекта (от 1 до 5), но не может знать, что именно находится на этом пути.

Ход: С/П, на экране 4 значения вероятности, соответветствующие путям в гору; выбрать один из них (1 - 4), С/П.
После на индикаторе (РX) - уровень (ярус), в РY - здоровье.

Цель игры - достигнуть вершины (10-й уровень) и отъебать осла, при этом на экране появится сообщение: "-0CL0EB".
Если хач повержен, появляется сообщение "90L60E6".

Предварительный ввод:

8 8 0 8 8 0 8 8 ^ 8 2 0 4 3 0 6 0 \/ {x} ^ ВП 7 ПE
8 9 0 8 6 0 8 6 ^ 8 0 0 3 0 0 6 0 \/ {x} ^ ВП 7 ПD
8 0 8 0 8 0 8 ^ 8 0 2 0 2 0 2 \/ ПC
1 П6
1 0 П9
4 1/x П8
С/П
#112 #451777
Особенно интересно было писать игры под МК-61, порой даже интереснее, чем играть в них. Например:

Игра "Хач-трюкач":

Сx П5 5 П0 СЧ 5 [x] 1 +
KП0 ИП5 2 10^x
+ П5 ИП0 1 -
x=0 04 ИП5 ВП /-/ 7 ^ 8 + ИПC
\/ {x} ^ ВП 7 С/П /-/ ^ 5 +
П7 KИП7 6 1/x ^ СЧ - x<0 55
БП 81 СЧ ИП8 - x<0 64 ИП9 2 /
[x] П9 БП 82 ИП8 / [x] x=0 75 ИП9
5 - П9 БП 81 ИП9 3
+ БП
81 KИП6 ИП9 /-/ x>=0 88 ИПD С/П ИП6 1
0 - x=0 96 ИПE С/П ИП9 ИП6 С/П БП
00

Сюжет. Хач Ослан узнал, что из аула Чурбанпиздыевка сбежал ишак, которого следует искать на вершине близлежащей сопки.
К вершине есть четыре пути, которые на каждом ярусе холма пересекаются, и можно выбрать любой путь.
Однако осла также ищет его прежний хозяин Гусен. При встрече с ним здоровье героя уменьшается на 5 единиц, однако, одолев Гусена, он продолжает движение наверх.
Также он может столкнуться с призраком русского солдата, при этом здоровье уменьшается вдвое, а ход не засчитывается.
По пути можно найти шаурму (+6 здоровья) и ослиную мочу (+3 здоровья).
Ослан способен определить вероятность нахождения вверху некого объекта (от 1 до 5), но не может знать, что именно находится на этом пути.

Ход: С/П, на экране 4 значения вероятности, соответветствующие путям в гору; выбрать один из них (1 - 4), С/П.
После на индикаторе (РX) - уровень (ярус), в РY - здоровье.

Цель игры - достигнуть вершины (10-й уровень) и отъебать осла, при этом на экране появится сообщение: "-0CL0EB".
Если хач повержен, появляется сообщение "90L60E6".

Предварительный ввод:

8 8 0 8 8 0 8 8 ^ 8 2 0 4 3 0 6 0 \/ {x} ^ ВП 7 ПE
8 9 0 8 6 0 8 6 ^ 8 0 0 3 0 0 6 0 \/ {x} ^ ВП 7 ПD
8 0 8 0 8 0 8 ^ 8 0 2 0 2 0 2 \/ ПC
1 П6
1 0 П9
4 1/x П8
С/П
#113 #451819
try {
MK61();
} catch (ЕГГОГ) {
} finally {
bump();
}
627 Кб, 1600x896
#114 #452354
Программирование МК-61 имеет глубокий философский подтекст. Сама ограниченность ресурсов и доступного инструментария, добровольно принимаемая программистом, отражает собой многовековой опыт аскетических духовных практик. Сложнейшая многоуровневая иерархия программ управления калькулятором - от кода, вводимого человеком, до микрокоманд и микроприказов, отражает собой необычайную сложность божественного мироздания, все глубины и уровни материи - от крупномасштабных структур вселенной до элементарных частиц, от сознания до неживой материи, от социума до первозданного хаоса и небытия. Сам микрокод, прошитый в ПЗУ калькулятора, предстаёт объектом благоговейного созерцания, ибо никто не может в полной мере постичь принципы его работы, структуру или как-либо повлиять на его работу, склоняя нас к агностицизму и мыслям об иллюзорности свободы воли. Тройственность структуры микрокода - команды, синхропрограммы и микрокоманды, и три процессора калькулятора отсылают нас к вытекающей из христианского представления о Боге как о Троице троичности бытия, к естественной (троичной) аристотелевой логике и к концепции триединой русской нации. Сама программа, подаваемая человеком калькулятору, с одной стороны представляет собой низкоуровневый автокод, составленный из элементарных команд, с другой же - высокоуровневые инструкции, исполняемые прошивкой ПЗУ, демонстрирует нам диалектический закон единства и борьбы противоположностей. Исполнение же программы, когда, пройдя 105 шагов программной памяти, калькулятор возвращается в начало и продолжает исполнение кода, есть образ колеса сансары, а получение решения задачи становится подобием нирваны, достигнутой в результате правильно написанной и выполненной программы.
37 Кб, 510x398
#115 #452716
Многие, наверное, подумают о том, что у быдлокодеров не может быть никакой философии, что их деятельность чисто механическая, не несущая никакого глубокого смысла. Но это не совсем так, в чём можно убедиться, пересмотрев "Зелёный слоник", в котором эта тема очень подробно раскрывается в образах главных героев.

- Я тебе принес покодить-то!
- Чё ты мне покодить принёс, чё ты, мудак, что ль, бля?! Хули ты вызвал… хули ты говном-то вымазался, мудак, блядь?!
- Я уж покодил, я тебе...
- Пидорас, блядь! Сука, блядь!
- Братишка, ты что!
- Убери это говно отсюда, блядь!
- Я покодил уже!..
- Ёб твою мать, блядь, и весь пол засрал, блядь!
- Хотел тебе покодить-то!..
- Мудак, блядь, ну ты мудак, блядь, я тебя сейчас убью, нахуй! Я тебя, блядь, сейчас убью нахуй, блядь!
...
- Сладкий код!
- Уйди, я сказал, поставь клавиатуру, блядь, иди мойся, пидорас, блядь, убью нахуй. Сука, блядь! Как ты доебал меня!
- Код!.. Я код сру, блядь!
- Фу-у, блядь! Всё засрал, блядь, а! Уф, блядь, какой вонизм, а!
...
- Эх! Эх, вот в деревнях-то было всё! Ты в дерев...
- Начальник, бля, уберите от меня этого мудака!!!
- В деревнях писали всё, это самое, не тока!
- Чё писали? Ты чё, мудак что ль, кто писал-то, блядь?
- Мой код писали!
- Код писали, но говно-то не писали! Ты чё, с ума сошёл, ёпта? Совсем дошёл, бля! Мойся, я сказал!
#116 #452890
В конечном итоге всё быдлокодерское кудахтанье сводится к рассуждениям на тему "Зачем глисту крылья" и т. п. На практике же видим результаты такого миропонимания.

Так, чтобы перевезти несколько мешков с дерьмом быдлокодер возьмёт не доску, чтобы приделать к ней колёса, прибить ручку (ведь тут надо хотя бы знать, с какой стороны молоток взять) и спокойно возить, а реактивный двигатель, который засунет в жопу ишаку и будет удивляться, хули оно не летает.

Аналогию видим и в высказываниях о ненужности математики для кодеров-программеров. Конечно, не нужна, иначе это уже будут не совсем быдлокодеры. Возьмём классический пример. Как эти ебланушки вычислят количество 10-ных разрядов в натуральном числе?

Типичным решением будет нечто вроде:

\t ЕСЛИ число < 10 ТО
\t \tдлина = 1
\t АЕСЛИ число < 100 ТО
\t \tдлина = 2
\t АЕСЛИ число < 1000 ТО
\t \tдлина = 3
\t ...
\t ИНАЧЕ длина = 8 КОН;
\t Ко_ко_ко()

Но более продвинутых деятелей, своеобразных представителей "среднего класса" от быдлокодерства, такая нерациональная трата ресурсов клавиатуры смутит, и они напишут короче:

\t строка = ВСтроку(число);
\t длина = ДЛИНА(строка);
\t Куд_кудах()

Не удивлюсь, что, дочитав до этого момента, многие из вас даже и не поймут, что в этом хуёвого. А вот быдлокодер-задрот, помня анальные кары школьных лет в виде ЕГЭ и порванное за диплом бакалавра дупло, решит проблему в духе школьных задачек ("так нас учили"):

\t длина = 0;
\t ПОКА число > 0 ВЫП
\t \tчисло = число ДЕЛИТЬ 10;
\t \tУВЕЛИЧИТЬ(длина)
\t КОН;
\t Ку_ка_ре_ку()

Наиболее упоротые будут комбинировать и усложнять эти методы, но это уже индусская элита быдлокодинга. Как же сделает, например, программист МК-61? Такая нужда, например, была при написании машины Маркова под сей калькулятор...

\t ИП9\tlg\t[x]\t1\t+

Десятичный логарифм, взятие целой части, инкремент - три команды. Но откуда жертвам образовательных реформ, анального самообучения и оральной дрессировки знать про какие-то там лохарифмы и т. п.? Ведь чтобы писать говнокод, знать даже элементарную математику не просто не нужно, а вредно!
#116 #452890
В конечном итоге всё быдлокодерское кудахтанье сводится к рассуждениям на тему "Зачем глисту крылья" и т. п. На практике же видим результаты такого миропонимания.

Так, чтобы перевезти несколько мешков с дерьмом быдлокодер возьмёт не доску, чтобы приделать к ней колёса, прибить ручку (ведь тут надо хотя бы знать, с какой стороны молоток взять) и спокойно возить, а реактивный двигатель, который засунет в жопу ишаку и будет удивляться, хули оно не летает.

Аналогию видим и в высказываниях о ненужности математики для кодеров-программеров. Конечно, не нужна, иначе это уже будут не совсем быдлокодеры. Возьмём классический пример. Как эти ебланушки вычислят количество 10-ных разрядов в натуральном числе?

Типичным решением будет нечто вроде:

\t ЕСЛИ число < 10 ТО
\t \tдлина = 1
\t АЕСЛИ число < 100 ТО
\t \tдлина = 2
\t АЕСЛИ число < 1000 ТО
\t \tдлина = 3
\t ...
\t ИНАЧЕ длина = 8 КОН;
\t Ко_ко_ко()

Но более продвинутых деятелей, своеобразных представителей "среднего класса" от быдлокодерства, такая нерациональная трата ресурсов клавиатуры смутит, и они напишут короче:

\t строка = ВСтроку(число);
\t длина = ДЛИНА(строка);
\t Куд_кудах()

Не удивлюсь, что, дочитав до этого момента, многие из вас даже и не поймут, что в этом хуёвого. А вот быдлокодер-задрот, помня анальные кары школьных лет в виде ЕГЭ и порванное за диплом бакалавра дупло, решит проблему в духе школьных задачек ("так нас учили"):

\t длина = 0;
\t ПОКА число > 0 ВЫП
\t \tчисло = число ДЕЛИТЬ 10;
\t \tУВЕЛИЧИТЬ(длина)
\t КОН;
\t Ку_ка_ре_ку()

Наиболее упоротые будут комбинировать и усложнять эти методы, но это уже индусская элита быдлокодинга. Как же сделает, например, программист МК-61? Такая нужда, например, была при написании машины Маркова под сей калькулятор...

\t ИП9\tlg\t[x]\t1\t+

Десятичный логарифм, взятие целой части, инкремент - три команды. Но откуда жертвам образовательных реформ, анального самообучения и оральной дрессировки знать про какие-то там лохарифмы и т. п.? Ведь чтобы писать говнокод, знать даже элементарную математику не просто не нужно, а вредно!
#117 #453017
Вот только log10 со всей обвязкой медленнее, чем if и деления.
#118 #453023
>>453017
Ну так реализуй свой логарифм с помощью рядов, даун.
#119 #453028
>>452354

>Программирование МК-61


>философский подтекст


>опыт аскетических духовных практик


>калькулятор


>глубины и уровни материи


>икрокод, прошитый в ПЗУ


>агностицизм


>иллюзорность свободы воли


>синхропрограммы и микрокоманды


>христианского представления о Боге


>триединой русской нации


>низкоуровневый автокод


>высокоуровневые инструкции


>единства и борьбы противоположностей


>образ колеса сансары


>программирование


Вы прослушали монолог шизоидного дауна.
#120 #453029
>>453017
В случае с if там хардкод что не приемлемо, тем более на калькуляторе. А насчет того что деление быстрее то это достаточно спорно. Хотя калькулятор использует двоично-десятичные числа, возможно там можно соптимизировать деление на 10 - оно должо быть очень быстрым (если возможно), но скорее всего на больших количествах разрядов скорость все равно будет ниже, ну и команд чуть побольше нужно (так как цикл с условием), что тоже может быть важно.
#121 #453088
>>453029
Ну я про x86 говорил в основном. Или у вас на калькуляторе есть вот эти:

> ВСтроку


> ДЛИНА


??? А на обычном компе решение в лоб будет быстрее. Ну или вариант с битоеблей из всем известной статьи.
#122 #453179
>>453023
Дебил, а математический сопроцессор нахуя?

>>453017
Неужели аппаратное решение медленнее программного (пусть и более простого)?
#123 #453183
>>453179

>аппаратное решение


Смотря как там логарифм реализован, там же ограниченые ресурсы, однобитный сумматор и т.д. может там просто ряды сумируют без особых апаратных изысков - место-то на схеме ограничено.
#124 #453187
Припоминаю, что на МК61 синус очень долго и с большой погрешностью считался. Наверное с логарифмом та же параша.
#125 #453192
Ну давайте рассмотрим, что лучше (компактнее, быстрее): деление или логарифм. Чтобы быть ближе к теме, рассмотрим сразу на примере МК-61 (кому не лень, можете привести сравнение для своего процессора).

Алгоритм с делением:

П0 Сx П4
ИП0 1 0 - /-/ x<0 17
ИП0 1 0 / [x] П0 КИП4
ИП4 С/П

Не особо изощрялся в оптимизации, но так больше на быдлокодерский стиль похоже. Немного оптимизировать можно, например, так:

П0 Сx П4
КИП4 ИП0 1 0 / [x] П0 x=0 03
ИП4 С/П

Итак, 19 команд в первом случае и 14 во втором. Выполним на эмуляторе код 10 раз для числа 123:

1 0 П3 1 2 3
...
L3 03 С/П

Первый код - 20 секунд. Второй - 31 секунда.

Теперь возьмём логарифм.

1 0 П3 1 2 3
П0 lg [x] 1 +
L3 03 С/П

12 секунд. 5 команд. Не использует дополнительные регистры и переходы. Есть разница?
#125 #453192
Ну давайте рассмотрим, что лучше (компактнее, быстрее): деление или логарифм. Чтобы быть ближе к теме, рассмотрим сразу на примере МК-61 (кому не лень, можете привести сравнение для своего процессора).

Алгоритм с делением:

П0 Сx П4
ИП0 1 0 - /-/ x<0 17
ИП0 1 0 / [x] П0 КИП4
ИП4 С/П

Не особо изощрялся в оптимизации, но так больше на быдлокодерский стиль похоже. Немного оптимизировать можно, например, так:

П0 Сx П4
КИП4 ИП0 1 0 / [x] П0 x=0 03
ИП4 С/П

Итак, 19 команд в первом случае и 14 во втором. Выполним на эмуляторе код 10 раз для числа 123:

1 0 П3 1 2 3
...
L3 03 С/П

Первый код - 20 секунд. Второй - 31 секунда.

Теперь возьмём логарифм.

1 0 П3 1 2 3
П0 lg [x] 1 +
L3 03 С/П

12 секунд. 5 команд. Не использует дополнительные регистры и переходы. Есть разница?
#126 #453196
>>453192
Прошу прощения, проебал при записи команду БП 03 в первом случае:

П0 Сx П4
ИП0 1 0 - /-/ x<0 19
ИП0 1 0 / [x] П0 КИП4 БП 03
ИП4 С/П

Без С/П получается:

1) 20 команд, 40 секунд;
2) 13 команд, 31 секунда;
3) 5 команд, 12 секунд.
#127 #453207
>>453192
>>453196
На эмуляторе не корректно сравнивать, все упирается в особености апаратной реализации.
#128 #453226
>>453207
Это не симулятор, это именно эмулятор (ссылка в первом сообщении, можешь посмотреть код). Некорректно будет лишь сравнивать его скорость с чем-нибудь, но тактовая частота калькулятора известна, так что можно посчитать.
#129 #453269
>>453187
Чё ты пиздишь? По тем временам очень хорошая точность. Тригонометрия и логарифмы считались в пределах долей секунды, так что и скорость приемлемая (ну да, не космическая, конечно, но для калькулятора той поры - норма).

Примеры точности:

lg 321 = 2,5065050324...
МК-61: 2,5065050.

lg 456 = 2,6589648426...
МК-61: 2,6589648.

ln 33 = 3,4965075614...
МК-61: 3,4965076.

sin 60º = 0,8660254037...
МК-61: 0,86602544.

tg 30º = 0,5773502691...
МК-61: 0,57735027.
#130 #453277
>>453269
sin 1 даёт два последних знака неправильно в эмуляторе.
Да, точность приемлемая.
153 Кб, 400x595
#131 #453310
>>453277
Ну а, например, последовательность "3 lg 10^x" даёт все(!) знаки неправильно, при этом погрешность составляет 0,0000006.

Для случая с синусом:
0,84147103 - 0,8414709848 = 0,0000000451.
98 Кб, 689x457
#132 #453421
>>453183
Здесь ты прав. Но в любом случае аппаратное решение быстрее.
#133 #453459
Что примечательно, на моём камне от AMD лохорифм всё равно быстрее цикла с делением, в среднем в 1,6 раза, несмотря на вызов через библиотеку, преобразования типов и прочую хуйню. Если на ассемблере делать, то разница будет ещё более существенной.
sage #134 #453481
Деление - это ведь все равно подсчет целой части логарифма.
Можно попробовать сделать на логарифме по основанию два, тогда деление будет просто >> 1, а потом переводить в десятичный делением на известную lg 2. Ясно, что будет НЕТОЧНО, но было бы прикольно, если бы кто написал.
#135 #453527
>>453459
Да ладно. Специально померял: самый быстрый вариант - if. Медленнее его в полтора раза - цикл с умножением. В 4.5 раза медленнее цикл с делением , в котором gcc хоть и заменил div на mul, но lea в цикле с умножением все равно быстрее (если бы деление не соптимизировалось, было бы еще медленнее). log10, написанный без "лишних" проверок на асме (FPU, не SSE) в 9 раз медленнее if. И, наконец, библиотечный log10 медленнее if в 15 раз.
#136 #453535
>>453481
А чем не четвёртый вариант?

битов = 0;
ПОКА число > 0 ВЫП
СдвигП(число, 1);
УВЕЛИЧИТЬ(битов)
КОН;
длина = ЦЕЛЧАСТЬ(битов / log2(10)) + 1;
Пок_пок_пок_кудах()

Подумаешь, погрешность в один знак. Одним знаком больше, одним меньше... Быдлокодерам простительно.
#137 #453545
>>453527
Так сразу очевидно, что вариант на переходах самый быстрый, только какой вменяемый человек его будет применять? На калькуляторе это просто нереально, хуй с ним, но, блядь, для 64-разрядного числа надо будет 20 проверок.
#138 #453556
>>453545
Очевидно, что вменяемый человек сделает цепочку ?: для 32 бит или цикл сравнений по табличке для 64 бит и выше.
#139 #453660
>>453556
длина = число < 10 ? 1 : число < 100 ? 2 : число < 1000 ? 3 : число < 10000 ? 4 : число < 100000 ? 5 : число < 1000000 ? 6 : число < 10000000 ? 7 : число < 100000000 ? 8 : число < 1000000000 ? 9 : 10;

Просто охуенно.
sage #140 #453672
на мк-61 есть какие нибудь веб-фреймворки?
есть идея запилить один сервис с бекендом из нескольких калькуляторов
#141 #453678
>>453527
Хуй его знает, как ты считал. При вычислении логарифма при компиляции у меня сводится к ln(2) * log2(x) / ln(10) , где натуральные логарифмы - постоянные (константы). Если руки не из плеч растут, то пиши хоть на сосемблере, хоть на залупе мелом, будет хуёво работать.
#142 #453679
>>453672
Это как?
#143 #453686
>>453678
Т. е. всё сводится к тому, чтобы взять двоичный логарифм и умножить его на 0,30103. Неужели это медленное ебучих циклов?
#144 #453870
>>453678
У меня при компиляции вариант на асме сводится к считанным инструкциям: загрузка числа, fldlg2 (загрузка константы log10(2)), fyl2x (log2(число) * log10(2)), выгрузка числа. Можешь придумать быстрее?

> взять двоичный логарифм и умножить его на 0,30103


> Неужели это медленное ебучих циклов?


Если честно на FPU считать - медленнее. Если по табличкам с хуевой точностью... ну хуй знает, будет побыстрее, но цикла по табличке типа 9, 99, 999... будет еще быстрее.
#145 #453909
Очевидно же, что цикл быстрее, потому что считает только целую часть логарифма.
Если ряд логарифма обрубить в положенном месте получится что-то похожее по производительности
197 Кб, 939x1002
#146 #453999
Ну, граждане быдлокодеры, студенты, бакалавры, предлагаю спецолимпиадку. Предлагаю помериться процессорами/исполнителями.

Задача: наговнокодить/спиздить программку "8 ферзей", которая вычисляет такие восемь координат на шахматной доске, что ферзи, расставленные на них, не будут находиться под ударом друг друга. Писать можно хоть в битах, хоть хуем по воде, важен результат.

Критерии:
1) объём программы (байты);
2) объёб использованной памяти (байты);
3) количество исполненных инструкций (время * тактовая частота).
1 Кб, 145x119
#147 #454030
>>453999
Итак, первый пошёл. МК-61.

Сx П0 П1 П2 П3 П4 П5 П6 П7 П8
ПB ПC 8 ПA ИПC 1 + ПC ИПA KПC
ИПB 1 + ПB ИПC ПD ИПD 1 - x#0
64 x>=0 64 ПD KИПC KИПD - П9 x#0 47
|x| ИПC ИПD - - x=0 26 0 ПB KИПC
1 - KПC x=0 26 ИПC 1 - ПC KИПC
1 - БП 52 ИПB 1 - x=0 20 ИПC
ИПA - x=0 14 С/П

1) 74 команды = 74 байта.
2) 14 регистров + 4 регистра стёка = 12 слов (14 + 4) = 108 байтов.
3) 39285 с
4 ком/с = 157140 инструкций.

Полученное решение на картинке.
#148 #454146
>>454030
Итак, второй пошёл. C.
#include <stdio.h>
main:
puts("8 &.......\n7 ......&.\n6 ....&...\n5 .......&\n4 .&......\n3 ...&....\n2 .....&..\n1 ..&.....\n abcdefgh");
Считай.
#149 #454152
>>454146
О, а вот и элита быдлокодинга подтянулась.
#150 #454154
>>453999
>>454030
>>454146
Давайте уж параметризовать кольичеством клеток/ферзей чтоль.
#151 #454187
>>454154
Нахуя? Стандартная доска, 8 ферзёв - самое то.
#152 #454225
>>454154
Думаешь, в интернете есть решение для любого количества клеток/ферзей на мк61?
>>454152
Сосни-ка хуйца. Это решение простое, быстрое, читаемое и очевидно корректное. Продакшен квалити код. При виде его Дейкстра кончает радугой, а МакКонелл просится стать моей анальной сучкой.
#153 #454235
>>454225
Решение чего? В задании чётко написано: "вычислить". Не написано "вывести решение", "нарисовать доску", "пососать хуй" или что-нибудь ещё. Впрочем, последнее задание тебе всё ж стоит решить.
#154 #454271
>>454235

>В задании чётко написано: "вычислить"


Я и вычислил. Ты вообще счастлив должен быть, что бог кодинга удостоил тебя своим вниманием; снизошёл с вершин своего величия и окропил плебс своим гениальным кодом.

>или что-нибудь ещё


>последнее задание тебе всё ж стоит решить


Наверное, ты прав. Пойду займусь - не всё же мне освещать этот убогий раздел своим величественным присутствием, надо и дела делать.
#155 #454309
>>454271

> наговнокодить/спиздить программку "8 ферзей", которая вычисляет


> Я и вычислил.


Ну давай тогда параметры своего быдлокодерского мозжечка, сравним.

> В задании чётко написано: ... "пососать хуй" ... последнее задание тебе всё ж стоит решить.


> Наверное, ты прав. Пойду займусь


Вперёд и с песней.
8 Кб, 130x150
#156 #454445
>>454309
О! Ты не только обосрался, но и сделал вид, что не пахнет, и продолжил обсираться. Меньшего и не ожидалось от сосачера.
#157 #454451
>>454445
Вот это мужик! Ему щеку порезали, а он стоит серьёзный, как ни в чём не бывало.
#158 #454452
>>454451
А ворот! Ворот-то как расправил.
#159 #454474
>>454445
Какой изящный куд-кудах. Напоминает дебилов, которые обмазываются говном, лепят из него статуи, рисуют картины и называют это современным искусством.

>>454451
>>454452
Сопротивлялся при изнасиловании, очевидно.
920 Кб, 647x680
#160 #454485
А что, собственно, остаётся бедным студентам и задротам, возомнившим, что есть такая специальность - "программист"? Да, есть, не в таком виде, как эти личинки недочеловека себе её представляют. Одни видят себя в этой роли чуть ли не гениями мироздания, творящими будущее, другие видят в этом хороший способ устроить свою жизнь, обеспечить своё будущее, стабильный заработок и карьерный рост.

Невдомёк убогой пародии на человека, что мало иметь петушиный диплом бакалавра или надрочить пару страниц кода на школьной олимпиаде, чтобы стать программистом. В итоге сей нелепый выкидыш эволюции постепенно начинает осознавать, что мир далеко не такой, каким он его представлял.

Начинается осознание своей неполноценности, бесполезности существования, принципиальной невозможности удовлетворения идиотских амбиций. Но выбор есть всегда. Если довлеет первый вариант, то он будет напирать на саморазвитие, освоение действительно достойных технологий, на которых зиждутся основы и производится лучшее. И понимает, что здесь он нахуй никому не нужен такой умный. Тогда остаётся лишь второй вариант: нырнуть в общий поток канализации, ухватиться за проплывающий кусок дерьма и питаться с него всю свою никчёмную жизнь. Кого-то это устраивает, как многих устраивает и профессия проститутки, уборщика параши, официанта в Макдаке и т. п. Но у более или менее нормального человека начинается ломка системы ценностей, мировоззрения, возникают мысли о бессмысленно прожитой жизни и безысходности, обостряются старые комплексы, перерастая в глубокий психологический кризис...

Да, когда-то "программист" был серьёзной инженерной профессией с оттенком элитарности. В те годы от программиста требовалось действительно мастерское овладение соответствующими технологиями, а это давалось далеко не каждому. Сейчас же любой даун-аутист может себя назвать программистом, потому что освоил азы быдлокодинга и работает за еду. А реальные профессионалы, как и во многих других смежных областях, сегодня практически не востребованы. Так что выбор невелик: кукарекать у параши за банку сгущёнки или молча догнивать в осознании своей полной несостоятельности и бессмысленности существования.
920 Кб, 647x680
#160 #454485
А что, собственно, остаётся бедным студентам и задротам, возомнившим, что есть такая специальность - "программист"? Да, есть, не в таком виде, как эти личинки недочеловека себе её представляют. Одни видят себя в этой роли чуть ли не гениями мироздания, творящими будущее, другие видят в этом хороший способ устроить свою жизнь, обеспечить своё будущее, стабильный заработок и карьерный рост.

Невдомёк убогой пародии на человека, что мало иметь петушиный диплом бакалавра или надрочить пару страниц кода на школьной олимпиаде, чтобы стать программистом. В итоге сей нелепый выкидыш эволюции постепенно начинает осознавать, что мир далеко не такой, каким он его представлял.

Начинается осознание своей неполноценности, бесполезности существования, принципиальной невозможности удовлетворения идиотских амбиций. Но выбор есть всегда. Если довлеет первый вариант, то он будет напирать на саморазвитие, освоение действительно достойных технологий, на которых зиждутся основы и производится лучшее. И понимает, что здесь он нахуй никому не нужен такой умный. Тогда остаётся лишь второй вариант: нырнуть в общий поток канализации, ухватиться за проплывающий кусок дерьма и питаться с него всю свою никчёмную жизнь. Кого-то это устраивает, как многих устраивает и профессия проститутки, уборщика параши, официанта в Макдаке и т. п. Но у более или менее нормального человека начинается ломка системы ценностей, мировоззрения, возникают мысли о бессмысленно прожитой жизни и безысходности, обостряются старые комплексы, перерастая в глубокий психологический кризис...

Да, когда-то "программист" был серьёзной инженерной профессией с оттенком элитарности. В те годы от программиста требовалось действительно мастерское овладение соответствующими технологиями, а это давалось далеко не каждому. Сейчас же любой даун-аутист может себя назвать программистом, потому что освоил азы быдлокодинга и работает за еду. А реальные профессионалы, как и во многих других смежных областях, сегодня практически не востребованы. Так что выбор невелик: кукарекать у параши за банку сгущёнки или молча догнивать в осознании своей полной несостоятельности и бессмысленности существования.
#161 #454816
>>420134
Более того, его сделали в ненавистном хипстерами-креаклами Совке.
#162 #454818
>>442611

> там его, видимо, опустили


Нет. Там он был стукачом-осведомителем (козлом). Оперативный псевдоним Ветров. В "Архипелаге" кстати это упоминается.
#163 #454973
>>454816
Эта ненависть, кстати, отлично перекликается со сказанным >>454485 . Быдлокодерство возможно только при рынке, причём в колониальных его вариантах.

>>454818
А что ж он тогда обиженный такой был?
sage #164 #454974
>>454816
ну это конечно же основная причина
#165 #455925
>>454974
Ещё скажи, что не так, петушок. Вы ж ненавидите всё русское.
sage #166 #455931
>>455925
Что «вы», кто вы-то, ёпта, кто «вы»? Здесь мы вдвоём, блядь, я один и ты, ёпта. Какие, нахуй, шашки, чё ты несёшь, ёпта?! На чём ты в шашки собрался играть? Нахуя ты отжимаешься, блядь? Ты понимаешь, что ты поехавший уже, всё? Не я, блядь, поехавший, не он, блядь, а ты!
11 Кб, 480x360
#167 #456031
>>455931
Ничего не понимаю... И это программисты? Говно какое-то... Пидоры, блядь. Родина им дала МК-61! Пиши, пиши под МК-61, блядь, не хочу, хочу жрать говно!
#168 #456070
>>420134
Бог дал человечеству Си. У меня один только вопрос: НАХУЯ ВОТ ЭТО ЧЕЛОВЕЧЕСТВУ??? За что мы должны ВОТ ЭТО любить?
12 Кб, 800x1368
#169 #456242
>>452890

> ИП9 lg [x] 1 +



Ну и не правильно.
ИП9 - вообще не нужно. (выдаёт кстати тот самый стиль. Кукарекающий).
Во-вторых чревато EГГОГ .

Кому-то захочется 0 исключить, но оснований к этому нет.
Ещё отрицательные числа интересно... :-)

Кстати, FPU тоже не у всех.

В общем, вариант такой:
unsigned mylog(unsigned x) {
unsigned n=10, r=1;
for(;;) { if(x<n) return r; ++r; if(n > UINT_MAX/10) return r; n = 10; }
}
/
Да, это не логарифм и не его целая часть /
/
Оптимизатор может быть преобразует в сравнения, как в первом варианте. */

Вот кстати. Однажды обнаружилось, что инноваторы разработали очередную инновацию. Со строками. И это оказалось в инноваионной замене... Логера. Ага. Логи оно вело и в самом деле инновационно. :-)
#170 #456243
>>456242
В положенном месте заменить. n = 10 на n *= 10 .
:-)
#171 #456255
>>456242
(и в самом деле, заменил... Оптимизатор...) :-)
#172 #456256
>>456242
ИП9 - это просто цитата из программы http://rosettacode.org/wiki/Execute_a_Markov_algorithm#.D0.9C.D0.9A-61.2F52 , там ещё команда подъёма в стеке была, доска сожрала значок. Так-то понятно, что обычно поступающее в программу значение будет в регистре X, а не хуй знает где.

Про ЕГГОГ - ну изначально речь шла про натуральные числа (1, 2, 3...). Если нужно подставить любое число, то алгоритм немного усложнится, но всё равно обойдётся без всяких циклов с проверками внутри.
#173 #456257
>>456255
Нихуя себе оптимизатор. Прям мысли читает.
#174 #456268
Да, стоит признать, что вариант с умножением самый быстрый на обычном процессоре (не считая нелепой цепи условий, которую вменяемый человек вручную никогда составлять не будет). У меня разница в 2,5 раза, но логарифм тут через хуеву тучу оболочек, библиотек и подпрограмм вытаскивается, вычисляется целым набором инструкций, так что на сосемблере разница составила б около 1,5 раз, если не меньше.

Тем не менее, такой вариант для МК-61 крайне расточителен (и медленнее, соответственно), и без знания элементарной математики быдлан-кодер соснул бы хуйцов, даже если бы освоил азы искусства составления программ для сего калькулятора.
#175 #456289
>>456070
При чём тут Си?
#176 #456598
Здравствуйте, мои маленькие друзья. Разрешите представить вам подготовленные специально для вас, многоуважаемая аудитория, выдержки из сборника лекций "МК-61 для дебилов". Данный материал составлялся с учётом последних достижений коррекционной педагогики и дефектологии, потому должен идеально подойти для образовательных целей потенциальных слушателей.

Лекция №1. Общее знакомство

Впервые добравшись до калькулятора МК-61, человек, знакомый с традиционными арифметическими и инженерными калькуляторами, обычно задаётся вопросом: где здесь кнопка "="? То же касается и дебила, который тоже в школе обычно вынужден поверхностно ознакомиться с калькулятором. Но последний, попытавшись сложить два числа и получив после нажатия кнопки "+" ноль, придёт к выводу о дефектности калькулятора, хотя таковая относится лишь к его мозгу. Потому попробуем помочь дебилам найти кнопку "=".

Итак, для начала калькулятор нужно включить. В верхней его части находится индикатор. На нём отображается число, с которым в данный момент работает калькулятор. Он также работает и с другими числами, расположенными в ячейках памяти, называемых регистрами, но обычно результат вводится и выводится на индикатор, значение которого также находится в регистре, обозначаемом X.

Слева под индикатором находится переключатель, подписанный справа "Вкл". С его помощью и включается калькулятор. На индикаторе загорится "0". Число вводится при помощи кнопок, на которые нанесены цифры. Можно также ввести дробное число посредством кнопки десятичной запятой (справа от кнопки "0"), поменять его знак ("/-/") и ввести порядок ("ВП"). Например, нужно ввести число -0,00000123. Для этого последовательно нажимаем: [1] [2] [3] /-/ ВП [8] /-/.
#177 #456650
Лекция №2. Элементарные операции

"А как же нам, например, сложить два числа?" - спросят дебилы. Чтобы понять это, необходимо ознакомиться с таким понятием, как стек. Стек нашего калькулятора - это просто четыре регистра, связанные между собой порядком помещения и извлечения из них чисел. Он подобен стопке, колоде карт: верхняя карта (в нашем случае число) лежит в регистре X и отображается на индикаторе. Когда мы кладём число в эту стопку, остальные числа оказываются глубже (под ним), а оно перед нами, на индикаторе.

В нашем распоряжении находятся четыре регистра стека (и один дополнительный, в него помещается результат предыдущей операции), обозначаемые буквами X, Y, Z, T (и X1). Мы можем производить с ним определённые операции. Вводимое с клавиатуры число оказывается в регистре X. Его можно поднять (скопировать) в следующий за ним регистр Y, при этом содержимое Y переместится в Z, содержимое Z - в T (предыдущее значение T сотрётся). Стек можно вращать, при этом X перемещается в T, T - в Z и т. д. Подъём или спуск значений происходит и при выполнении некоторых действий.

Зачем же нужен этот стек? Дело в том, что калькулятор принимает выражения в бесскобочной постфиксной нотации, т. е. не в традиционной форме "a + b =", а в форме "a b +", т. е. сначала вводятся числа, после производится операция. А вводятся числа как раз в этот самый стек. Как это делается? Введя число в регистр X, его нужно поднять в Y. Для этого используется кнопка [В↑]. После этого можно начинать вводить следующее число, предыдущее значение X при этом сотрётся.

Операции над числами делятся на одноместные (над одним числом, например сложение, вычитание, возведение в степень и т. д.) и двухместные (корень, тригонометрия, логарифмы и т. д.). Двухместные операции производятся над регистрами X и Y.

Для примера сложим два числа: [1] [В↑] [2] +. Здесь в X вводится число 1, поднимается в Y, в X вводится число 2, после чего Y и X складываются, результат на индикаторе (в X). При этом значения стека спускаются (T обнуляется, предыдущее значение T перемещается в Z, Z - в Y, в X1 - предыдущее значение X, т. е. 2). В случае с вычитанием выполняется операция Y - X (аналогично с делением).
#177 #456650
Лекция №2. Элементарные операции

"А как же нам, например, сложить два числа?" - спросят дебилы. Чтобы понять это, необходимо ознакомиться с таким понятием, как стек. Стек нашего калькулятора - это просто четыре регистра, связанные между собой порядком помещения и извлечения из них чисел. Он подобен стопке, колоде карт: верхняя карта (в нашем случае число) лежит в регистре X и отображается на индикаторе. Когда мы кладём число в эту стопку, остальные числа оказываются глубже (под ним), а оно перед нами, на индикаторе.

В нашем распоряжении находятся четыре регистра стека (и один дополнительный, в него помещается результат предыдущей операции), обозначаемые буквами X, Y, Z, T (и X1). Мы можем производить с ним определённые операции. Вводимое с клавиатуры число оказывается в регистре X. Его можно поднять (скопировать) в следующий за ним регистр Y, при этом содержимое Y переместится в Z, содержимое Z - в T (предыдущее значение T сотрётся). Стек можно вращать, при этом X перемещается в T, T - в Z и т. д. Подъём или спуск значений происходит и при выполнении некоторых действий.

Зачем же нужен этот стек? Дело в том, что калькулятор принимает выражения в бесскобочной постфиксной нотации, т. е. не в традиционной форме "a + b =", а в форме "a b +", т. е. сначала вводятся числа, после производится операция. А вводятся числа как раз в этот самый стек. Как это делается? Введя число в регистр X, его нужно поднять в Y. Для этого используется кнопка [В↑]. После этого можно начинать вводить следующее число, предыдущее значение X при этом сотрётся.

Операции над числами делятся на одноместные (над одним числом, например сложение, вычитание, возведение в степень и т. д.) и двухместные (корень, тригонометрия, логарифмы и т. д.). Двухместные операции производятся над регистрами X и Y.

Для примера сложим два числа: [1] [В↑] [2] +. Здесь в X вводится число 1, поднимается в Y, в X вводится число 2, после чего Y и X складываются, результат на индикаторе (в X). При этом значения стека спускаются (T обнуляется, предыдущее значение T перемещается в Z, Z - в Y, в X1 - предыдущее значение X, т. е. 2). В случае с вычитанием выполняется операция Y - X (аналогично с делением).
343 Кб, 459x600
#178 #456732
Для доступа к функциям, обозначения которых нанесены над кнопками, используются кнопки [F] и [K] соответственно цвету, которым написано обозначение функции. Например, для вычисления натурального логарифма числа нужно нажать [F] [2] (над кнопкой "2" находится обозначение "ln").

Лекция №3. Работа с памятью

В качестве основной памяти в МК-61 используется 15 регистров общего назначения. Они обозначаются цифрами от 0 до 9 и буквами от A до E (10 - 15). Для помещения числа в один из регистров используется кнопка "X→П", после нажатия которой нужно нажать соответствующую номеру регистра кнопку на цифровой клавиатуре или кнопку, подписанную нужной буквой снизу/справа от неё. Аналогичным образом число извлекается из регистра посредством кнопки "П→X".

При работе на калькуляторе для хранения промежуточных данных зачастую используется стек. При этом необходимо следить, чтобы сохранённое значение не было стёрто в процессе вычислений.

В МК-61 существует также косвенная адресация регистров. Так, например, если поместить в регистр №7 число 8, то при помощи последовательного нажатия [K] [П→X] [7] на индикаторе появится содержимое регистра №8. Здесь необходимо отметить, что при косвенном обращении через регистры 0 - 3 их значение предварительно уменьшается на единицу, а через 4 - 6 - увеличивается. Т. е. если в Р4 было 5, то [K] [П→X] [4] выдаст число из Р6.
sage #179 #456742
Хватит трахать труп обратной польской нотации.
#180 #456773
>>456742
Польской? В Курвляндии, что ли, говорят, типа "курвы хуи жопы подставляют сосут"?
#181 #456839
Ну, блядь, 4-ю лекцию проебали.
#182 #456840
Лекция №4. Пишем первую программу

Но пытливый ум дебила непременно задастся вопросом: "Что за хуйня? Калькулятор ведь программируемый. Где программы?". Потому покажем, как же всё-таки вводятся и исполняются программы на МК-61.

Для запуска режима ввода программы необходимо нажать последовательность кнопок [F] ВП ("ПРГ"). Далее вводится программа, аналогично тому, как производятся вычисления в ручном режиме. В правой части индикатора отображается счётчик команд, текущее его значение показывает адрес, по которому будет размещена вводимая инструкция (шаг программы). Максимальная длина программы - 105 шагов. При вводе программы на индикаторе отображаются три последних (предшествующих указываемому адресу) кода инструкции.

Напишем для примера программу, которая умножит вводимое число на 3, прибавит к нему 4 и возведёт полученное значение в квадрат. Для этого последовательно нажимаем: [В↑] [3] × [4] + [F] × [С/П]. В результате в программной памяти окажется программа: ↑ 3 × 4 + x^2 С/П. При оформлении кода программы в текстовом виде указывается не непосредственно клавиша, которую необходимо нажать, а инструкция, которая будет выполнена: в нашем случае - не "F ×", а "x^2". Команда "С/П" (стоп/пуск) останавливает выполнение программы.

Теперь выходим из режима программирования нажатием [F] /-/ ("АВТ"). Для запуска программы обнуляем счётчик шагов кнопкой "В/О" (возврат/очистка), вводим начальные данные, например, 5. Запускаем программу - "С/П". После выполнения на индикаторе 361.
#184 #458281
Русофобствующие быдлокодеры, как всегда, соснули хуйцов.
Можно сказать, МК-61 не так давно пережил второе рождение. Заключается оно в довольно неожиданном подъёме интереса к этой машинке спустя 20 лет. Началось всё с первого качественного симулятора:
http://www.emulator3000.org/rus-c3.htm
Но истинные ценители понимали, что это хуйня, нужен эмулятор. Тут и начались работы по восстановлению микрокода калькулятора. В 2012 году эта работа была завершена и написан первый эмулятор (впоследствии реализован и в упомянутой программе-симуляторе):
http://code.google.com/p/emu145/ (обсуждение: www.leningrad.su/calc/cforum.php?topicid=571 )
С тех пор написано ещё несколько качественных эмуляторов:
https://code.google.com/p/mk52/
https://play.google.com/store/apps/details?id=com.cax.pmk (под Андроид)
http://mk-61.moy.su/ (обсуждение: http://arbinada.com/pmk/node/963 )
Эмуляторы дополнены различными вспомогательными средствами, упрощающими работу с калькулятором и понимание принципов его действия.
Пишутся новые статьи и программы, изучается накопленный за прежние годы материал (а это десятки книг и сотни статей). Что интересно, интерес к калькулятору проявляется не только в нашей стране, например:
http://www.alfredklomp.com/technology/mk-61/ (статья про эксперименты с недокументированными возможностями)
http://gtello.pagesperso-orange.fr/elektronika_e.htm (компилятор высокоуровневого языка под МК-61, описание, тесты скорости)
Составляются сборники старых игр:
http://lordbss.narod.ru/pmk.html
Разнообразные программы:
http://rosettacode.org/wiki/%D0%9C%D0%9A-61/52
Переводится документация, составляются инструкции и многое другое.
#185 #458331
>>457845
Просто охуенно. Почему так мало просмотров? Надо зафорсить.
#186 #458434
>>458331
Быдлокодинг и самокритика - понятия несовместимые.
#188 #459151
>>458281
Ок. Сколько платят программисту на МК-61?
sage #189 #459152
>>459151
пол-литра водовки в день
sage #190 #459155
премия - фотокарточка с бураном
зимой могут дают поспать возле тёплого канализационного люка
124 Кб, 700x416
#191 #459187
>>459151
Смотря кем работает.
387 Кб, 1600x1071
#193 #459547
С Днём Русской Нации, друзья!
sage #194 #459554
>>459547
накатим!
#195 #460857
>>459152
Ещё скажи, что ты больше зарабатываешь, быдлан. Водка, вроде как, подорожала в Пидарашке, так что тебе и на дрожжи для самогона придётся бутылки собирать, потому что вряд ли за твой говнокод платят больше, чем ты заработаешь подобным образом.
sage #196 #461014
>>460857

> Ещё скажи, что ты больше зарабатываешь,


да

> дрожжи для самогона


ниразу небыл в росии, поэтому не в курсе

> Пидарашке


разве не об этом тред?
#197 #461038
>>461014
В России не был? А русский язык откуда знаешь? Высерок беженцев, что ли?
sage #198 #461046
>>461038
сначала поясни за свой зашкваренный кал-кулятор >>419577
#199 #461050
>>461046
А где там зашквар, петушко?
sage #200 #461053
>>461050
ну не зашквар а фаршмак
говорю же, не из расии я
#201 #461251
>>461053
Так а я о чём? Не из России (России, не пидаРФашки) по-русски кудахтают только беглые припадочные обиженники по жизни, у которых между приступами ностальгии и русофобии случается когнитивный диссонанс, ведущий в конечном итоге к таким психическим расстройствам, как педерастия, копрофагия, некро- и зоофилия, склонность к инцесту и т. п. Что мы и видим на твоём примере.
#202 #461254
Кстати, как вам уроки по МК-61? Кто-то смог хоть два числа сложить, или слишком сложно написано?
sage #203 #461258
>>461251
я не настолько хорошо знаю русский что бы разобрать твоё предлежение
излагайся лаконичней, няша

>>461254
надо больше картинок и примеров (желательно скринкастов)
#204 #461493
>>461258

> излагайся лаконичней, няша


Легко: соси хуй, быдло.
623 Кб, 300x450
#205 #461988
>>461258

> надо больше картинок и примеров (желательно скринкастов)


Ну держи, 4-й урок.
#206 #463913
Посоны, не знаю где спросить, в крестотреде одни лабы, в остальных высокоуровнево слишком.

Вот поясните про современные процессоры, вот всяким ARM и x86 понимают разницу между операторами и операндами? Помню на первом курсе поясняли что есть Code Segment, Data Segment, и по идее процессор не должен исполнять код который находится в сегменте данных. Но как тогда до сих пор можно эксплуатировать Buffer Overflow атаки? Ведь мы можем на стеке расположить свой код который мы можем исполнить подменив return адрес на том же стеке?
#207 #463924
>>463913
Код на стеке распологать не обязательно, ты его можешь расположить где угодно, а потом просто подменить код возрата на адрес твоего зловредного кода. Если в програме есть ошибки которые позволяют переполнить буфер то подменить коды возврата не так-то и сложно, из-за того как современные языки работают с call stack (там располагают аргументы функций и автоматические переменные в перемешку с кодами возврата). Против такой атаки деление памяти на только читаемую и только выполняемую никак не помогает, так как зловредный код расположен как библиотека в исполняемой памяти, а подменяется только код возврата. Конкретно процессор никак не следит что он выполняет, естественно если у него не отдельная память под код (гарвардская архитектура). За этим следит ОС, напрмиер страницы памяти разделяются только на записываемые или только исполняемые - но это далеко не от всего помогает.
#208 #463930
>>463924
Благодарю. Тогда в чём смысл всех этих разделений на CS, DS, SS. Если любой из них можно читать как инструкции? Условности?
sage #209 #464143
>>463930
На любой сегмент можно повесить ограничения на уровне менеджера страниц в процессоре. GDT там и все такое. Более того, в интелах(и amd) всегда было не два режима - ядро и юзерланд, а четыре. Другое дело, что самый популярный софт - читай, винда с линуксами, это использовать не умели.
55 Кб, 260x491
#210 #464534
>>463924

> на первом курсе поясняли


> Code Segment


> Data Segment


> Buffer Overflow атаки


> return адрес


2-й курс бакалавра подзалупоочного отделения кафедры петушиных наук, что ли?
10 Кб, 247x204
#211 #467742
bump
#212 #467764
>>464534
Не понимаю твоего негодования.
#213 #467803
>>467764
А в чём негодование, собственно?
#214 #467906
>>467803

>2-й курс бакалавра подзалупоочного отделения кафедры петушиных наук, что ли?

#215 #467918
>>467906
Так это просто вопрос о правильности вполне логичного вывода. Негодование тут совсем не обязательно, может, наоборот - веселье по поводу столь неординарного случая.
#216 #467986
>>416689
Эпичный калькулятор, анон с него начинал.
#217 #468185
>>467918
Ну про всякие буфер оверфлоу атаки я с корсерки узнал, там курс Hardware Software Interface, лабы в нём с дебаггером, ну там хекать надо подобия крякми, всё такое.
#218 #468426
>>468185
Господин балаклавр, до Вас доебались лишь по одной причине: использование импортной терминологии на иностранном языке, которое свидетельствует о полном невладении собственно терминологией и, как следствие, предметом. Не более того, уважаемые знатоки. При всём уважении, данный уровень неприемлем для нашей весёлой ветки калькуляторщиков для масти выше петуха.
sage #219 #468472
>>468426

>пидарашка подгорела



найс индид)
#220 #468716
>>468472
Где ты такое увидел, ебланушка?
sage #221 #468735
>>468716

> пидорашка маневрирует

#222 #469071
>>468735
Не, серьёзно, не надо "кукареку", ты объясни, где тут пидарашку ты узрел?
#223 #469080
>>467986
Местные петухи не способны это понять. Дело тут не в возрасте даже. Многие и в те годы не имели на руках МК-61. Дело в ненависти к тому, что не поддаётся их познанию, что как-нибудь связано с русской нацией и не вписывается в основной поток канализации, по которому местная быдлятина плывёт.
sage #224 #469200
оп пора тебе уже свою фотку вбросить штоле
#225 #472576
bump
#226 #481871
Загадка внутреннего кода МК-61 так и остаётся неразрешённой. И не потому что она нахуй никому не нужна, а потому что никто не способен её разгадать, хотя за последние 2,5 года это пытались сделать многие, в т. ч. те, кто разработал основы эмуляции МК-61. Многое описано в реликтовых книгах 80-х, но это ничто для понимания всего алгоритма работы кода микросхем (причём алгоритм работы самих микросхем довольно прост и понятен).

Хотя и тут встаёт вопрос: хоть кто-то прочитал и понял целиком книгу деда Трохименка "Устройство и пользование..."? Я, к примеру, так до конца и не осилил: тут надо чуть ли не с микроскопом и тысячестраничным конспектом напротив калькулятора с книгой сидеть, чтобы вникнуть, а потом свой конспект раскладывать на тома и писать к ним конспекты, пояснения, схемы, коды, инструкции и т. д.
Тред утонул или удален.
Это копия, сохраненная 15 июня 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски