Pull to refresh
-9
0

Пользователь

Send message

Реверс-инжиниринг программ DOS как в старом добром 1990-м

Level of difficultyMedium
Reading time5 min
Views7.1K
На видео выше я записал наглядную реализацию процесса, описанного в разделе «Сборка и установка».

Эта статья посвящена запуску SoftICE, популярного отладчика для DOS и Windows, в эмулированной среде MS-DOS, а также обходу недостатка Bochs, эмулятора IA-32 (x86) PC.
Весь процесс выполнялся из-под Linux. Не знаю, получится ли проделать то же самое в MacOS, не говоря уже о Windows.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments11

IMSProg — программатор для CH341a в Linux

Level of difficultyMedium
Reading time4 min
Views13K

Несколько лет назад я полностью перешел на Linux, и все меня устраивало за исключением отсутствия некоторых просто необходимых программ.

Читать далее
Total votes 67: ↑67 and ↓0+67
Comments43

Мапперы на Famicom, NES, Денди: откуда взялись и зачем нужны (часть 2/2)

Level of difficultyMedium
Reading time24 min
Views6.8K

Продолжаем обстоятельный разговор про «мапперы» — устройства управления расширенной памятью на игровых консолях Famicom, NES и Денди. Во второй части статьи рассмотрим особенности нескольких основных видов мапперов и их влияние на содержание игр, сложности программирования, а также ситуацию с мапперами на других платформах.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments20

IR remote control, а без микроконтроллеров можно? Да не вопрос

Level of difficultyMedium
Reading time7 min
Views13K
image
Сколько логических микросхем понадобится для того, чтобы получить полноценный ИК пульт дистанционного управления? Наверняка вам даже в голову не приходил этот вопрос! А в моем воспаленном сознании однажды такой вопрос возник.

Если вам приходилось сталкиваться с моими предыдущими статьями на Хабре, то вы уже имеете представление о моем специфическом увлечении схемотехникой. Но далеко не все мои идеи находят воплощение в железе, многое так и остается в виде черновиков на виртуальных моделях. Так случилось и с этой схемой, но она кажется мне достаточно интересной, чтобы поделиться ей с вами.

Если вы тоже считаете, что немного схемотехники после новогодних праздников вам не повредит, тогда добро пожаловать под кат.
Читать дальше →
Total votes 83: ↑83 and ↓0+83
Comments99

«Галоп пикселя — часть шестая» — Анимация персонажей. Бег

Level of difficultyMedium
Reading time48 min
Views8.8K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)
«Галоп пикселя», часть VI — Анимация персонажей. Бег (линк)

Доброго времени суток, Хабр. Мы продолжаем цикл «Галоп Пикселя». И хотя паузы между главами этой саги достигли практически четырехлетнего перерыва — я рад (надеюсь и вы тоже) продолжить двигаться вперёд. Миля за милей, дорога за дорогой, в этой вечной былине о пиксель-арте. Пространном повествовании о пикселях, их жизни, способе их создания, приёмах и уловках в работе с ними.

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

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


Лопатить пиксели
Total votes 92: ↑92 and ↓0+92
Comments35

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

Reading time23 min
Views17K

Преуведомление

Вся нотация, используемая в этой статье, не является общепринятой для представления математических выражений. Возможно, вы ранее изучали эту тему либо продолжаете изучать, поэтому заранее прошу прощения, если допустил какие-либо фактические ошибки или некорректно использовал термины.   

Выпуск Java 21 состоялся 19 сентября 2023 года. В этой версии поддерживаются паттерны записи в switch-блоках и выражениях. Такой синтаксис выглядит монументально (как минимум, по меркам Java). Это водораздел, после которого мы вправе говорить, что в Java полноценно поддерживаются паттерны функционального программирования, подобно тому, как это сделано в Kotlin, Rust или C#. Вот и первый пункт, который пробуждает во мне зависть (я Kotlin-разработчик).

Читать далее
Total votes 29: ↑29 and ↓0+29
Comments12

Битва за производительность: SparseMap vs GenerationsMap

Level of difficultyMedium
Reading time7 min
Views5.1K

Есть такая занимательная структура данных, описанная в статье Russ Cox — sparse map.


Она используется, например, в недрах компилятора Go. А ещё в некоторых пакетах его стандартной библиотеки.


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


Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments8

SectorC: компилятор Си в пределах 512 байт

Level of difficultyMedium
Reading time9 min
Views20K

SectorC (github) – это компилятор Си, написанный на ассемблере x86-16 и умещающийся в загрузочный сектор 512 байт машины x86. Он поддерживает достаточно обширную функциональность Си для создания реальных и интересных программ, являясь при этом, пожалуй, самым миниатюрным компилятором Си из когда-либо написанных.
Читать дальше →
Total votes 152: ↑150 and ↓2+148
Comments45

И снова про VGA

Level of difficultyMedium
Reading time9 min
Views23K

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

Читать далее
Total votes 134: ↑133 and ↓1+132
Comments39

Достаточно одной К155ЛА3

Level of difficultyMedium
Reading time6 min
Views50K

Продолжая тему легендарных микросхем, нельзя обойти вниманием замечательнейшую микросхему 7400, также известную на постсоветском пространстве, как К155ЛА3.

Давным-давно, когда деревья были большими, а я ещё учился в старших классах, на меня снизошло откровение от старших товарищей, что практически любое цифровое устройство можно собрать только на микросхемах К155ЛА3. Утверждение может показаться спорным, но ничто не мешает нам его проверить.

И поможет нам в этой проверке другое откровение: «Инверсия конъюнкции есть дизъюнкция инверсий». Заодно и разберёмся, что есть «конъюнкция», что есть «дизъюнкция», и причём здесь «инверсия».
И это совсем несложно
Total votes 201: ↑196 and ↓5+191
Comments156

KVM: Что такое Kernel-based Virtual Machine?

Level of difficultyMedium
Reading time17 min
Views44K

Начнем с простого вопроса:

Что означает QEMU/KVM или QEMU-KVM?

Можно ответить - это QEMU + KVM или qemu-system, запущенный с kvm в качестве ускорителя. Но в какой-то степени это еще и анахронизм, так как с появлением KVM его разработчики для интеграции с QEMU поддерживали отдельный форк qemu-kvm, но начиная с QEMU версии 1.3 (декабрь 2012) все основные изменения из qemu-kvm были перенесены в главную ветку QEMU, а qemu-kvm объявлен устаревшим.

В разных дистрибутивах до сих пор еще можно встретить исполняемый файл qemu-kvm или просто kvm, но это лишь обертки над qemu-system:

exec qemu-system-x86_64 -enable-kvm "$@"

или симлинки:

/usr/bin/kvm -> qemu-system-x86_64

А в самом qemu существует проверка:

Читать далее
Total votes 81: ↑81 and ↓0+81
Comments9

Происхождение и эволюция аллокатора памяти в С

Reading time11 min
Views22K

Развитие технических конструкций или же программных систем зачастую напоминает эволюцию живых организмов. С тем отличием, что происходит быстрее и гораздо лучше задокументировано. Можно наблюдать постепенное усложнение, появление новых механизмов/алгоритмов по мере появления новых технических возможностей, комбинирование разных механизмов, исчезновение тупиковых ветвей ... В конце концов это приводит к балансу на пределе физических возможностей и, глядя на результат, уже непонятно, как вообще такое могло появиться на свет, сколько пядей во лбу требуется для общего понимания конструкции.

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

Читать далее
Total votes 104: ↑103 and ↓1+102
Comments31

Домашняя приточная вентиляция малыми средствами

Reading time14 min
Views59K

Последнюю пару лет я живу с приточной вентиляцией в городской квартире — и очень рад этому факту.

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

Коротко о главном:
• наружное расположение компонентов ради минимального уровня шума;
• минимум ручного труда в изготовлении и монтаже;
• общий ценник существенно ниже 50 тысяч рублей (ниже 30 тысяч — на момент изготовления два года назад).

И важное. Если вы — адепт систем рекуперации, долгих инженерных расчётов и полугода проектирования, эта статья не для вас. Я — адепт золотой середины между «я сделяль» и «я задолбался».

Читать далее
Total votes 152: ↑150 and ↓2+148
Comments157

Сумачечая производительность LINQ в .Net7

Reading time3 min
Views15K

Исторически так сложилось, что LINQ взыскал "сомнительную" репутацию за его скромную производительность. LINQ медленный, аллоцирует память, сложно читается, поэтому обычно его используют как инструмент запросов к БД и то, зачастую сложные запросы легче написать на SQL. Даже на собеседованиях джунов просят не использовать LINQ в алгоритмах.

Однако в .NET 7 всё будет по-другому...

Подробней...
Total votes 37: ↑31 and ↓6+25
Comments26

Внедрение в архитектуру советских программируемых калькуляторов «Электроника МК-52»

Reading time18 min
Views42K


В этой статье я хочу рассказать об архитектуре советских программируемых микрокалькуляторов на примере калькулятора «Электроника МК-52» и как можно внедриться в его архитектуру.

Советские калькуляторы семейства "Электроника Б3-34" («Электроника МК-56», «Электроника МК-61» и «Электроника МК-52») были особенно популярны в СССР. Причиной этому была не только доступная цена в 65 рублей за МК-54, 85 рублей за МК-61 или 115 рублей за МК-52, но и развитой язык программирования. Это семейство калькуляторов стало де-факто стандартным для многочисленных пользователей. Огромное количество книг было посвящено программированию на этих машинках и публикацией готовых алгоритмов. Электроника МК-52 даже летала в космос на корабле Союз ТМ-7, где предполагалось его использование в качестве резервного на случай неисправности спускаемого навигационного оборудования. Даже в военно-морском флоте СССР калькулятор «Электроника МК-52» с блоком расширения памяти БРП «Астро» какое-то время был стандартным средством для навигационных расчетов.


Читать дальше →
Total votes 115: ↑115 and ↓0+115
Comments180

МК-61: история, эмуляция, устройство

Reading time21 min
Views39K

Расцвет эпохи программируемых калькуляторов в нашей стране пришёлся на середину 80-х годов. Потом на смену относительно сытым и благополучным временам пришла эпоха бандитского капитализма, когда стране стало не до выпуска своей высокотехнологичной продукции бытового назначения, вот уже сменились поколения, но ностальгия по тем временам, когда мы бессонными ночами пытались сократить код программы хотя бы на пару байтов, чтобы уместить задуманную функцию, выискивали всё новые и новые недокументированные возможности, придумывая способы, как их можно использовать на практике, сочиняли целые циклы рассказов в качестве фона для наших игровых программ, не даёт забыть свой МК-61 со 105 байтами программной памяти. Поэтому хочу написать заметку о том, что собой представляли и как работали эти самые программируемые калькуляторы. Даже если эта тема сегодня периодически и поднимается, то не настолько часто, чтобы приесться уважаемому читателю, так что надеюсь поведать что-то новое.

Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments158

Самодельная клавиатура PS/2 – это просто

Reading time14 min
Views15K

Снова здравствуйте, дамы и господа. Наш Отдел Перспективных Разработок обещал вас порадовать очередной странной вещью, и потому продолжает свой цикл статей о старых, но иногда полезных устройствах.

Суть сегодняшнего предмета для изучения опять сугубо академическая.

Лично я взялся за подобную разработку по одной простой причине: Потребовалась клавиатура для самодельного компьютера Z80-MBC2.

Однако, устройство вполне работоспособно с любым PC.

Читать далее
Total votes 58: ↑58 and ↓0+58
Comments26

Подключаем алфавитно-цифровой экран к VGA

Reading time5 min
Views15K

Нет, это не шутка. В действительности к VGA, DVI, HDMI можно подключать различные устройства, и даже питать их. И это очень удобный способ работы с различными устройствами и нестандартное использование обычного интерфейса.

Ларчик просто открывается, всё дело в том, что в интерфейсе VGA (а также в других видеоинтерфейсах) присутствует ещё одна шина данных I²C, которая доступна для использования и её легко можно применить в своих самоделках.
Читать дальше →
Total votes 129: ↑127 and ↓2+125
Comments46

Едем на солнечной энергии. Превращаем повышающий DC-DC преобразователь в солнечный контроллер. Часть 2 (Редакт. 9.04.23)

Reading time8 min
Views13K


И снова здравствуйте, уважаемые читатели!

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

Читать далее
Total votes 30: ↑30 and ↓0+30
Comments25

KeybJr – универсальное подключение клавиатуры к PCjr

Reading time6 min
Views4.2K

В качестве продолжения своей предыдущей статьи об IBM PC и его особенностях я решил реализовать KeybJr – небольшой открытый проект, позволяющий подключать к PCjr клавиатуру через проводное соединение или ИК-порт. Натолкнуло меня на это отсутствие в системе возможности для подключения нормальной клавиатуры за исключением редких и дорогостоящих сторонних решений.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments3

Information

Rating
Does not participate
Registered
Activity