Как стать автором
Обновить
-9
0

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

Отправить сообщение

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

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 7.1K
На видео выше я записал наглядную реализацию процесса, описанного в разделе «Сборка и установка».

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

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

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 13K

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

Читать далее
Всего голосов 67: ↑67 и ↓0 +67
Комментарии 43

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

Уровень сложности Средний
Время на прочтение 24 мин
Количество просмотров 6.8K

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

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

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 13K
image
Сколько логических микросхем понадобится для того, чтобы получить полноценный ИК пульт дистанционного управления? Наверняка вам даже в голову не приходил этот вопрос! А в моем воспаленном сознании однажды такой вопрос возник.

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

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

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

Уровень сложности Средний
Время на прочтение 48 мин
Количество просмотров 8.8K


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

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

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

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


Лопатить пиксели
Всего голосов 92: ↑92 и ↓0 +92
Комментарии 35

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

Время на прочтение 23 мин
Количество просмотров 17K

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

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

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

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 12

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

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 5.1K

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


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


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


Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Комментарии 8

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

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 20K

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

И снова про VGA

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 23K

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

Читать далее
Всего голосов 134: ↑133 и ↓1 +132
Комментарии 39

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

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 50K

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

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

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

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

Уровень сложности Средний
Время на прочтение 17 мин
Количество просмотров 44K

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

Что означает 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 существует проверка:

Читать далее
Всего голосов 81: ↑81 и ↓0 +81
Комментарии 9

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

Время на прочтение 11 мин
Количество просмотров 22K

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

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

Читать далее
Всего голосов 104: ↑103 и ↓1 +102
Комментарии 31

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

Время на прочтение 14 мин
Количество просмотров 59K

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

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

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

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

Читать далее
Всего голосов 152: ↑150 и ↓2 +148
Комментарии 157

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

Время на прочтение 3 мин
Количество просмотров 15K

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

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

Подробней...
Всего голосов 37: ↑31 и ↓6 +25
Комментарии 26

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

Время на прочтение 18 мин
Количество просмотров 42K


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

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


Читать дальше →
Всего голосов 115: ↑115 и ↓0 +115
Комментарии 180

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

Время на прочтение 21 мин
Количество просмотров 39K

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

Читать дальше →
Всего голосов 74: ↑71 и ↓3 +68
Комментарии 158

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

Время на прочтение 14 мин
Количество просмотров 15K

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

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

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

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

Читать далее
Всего голосов 58: ↑58 и ↓0 +58
Комментарии 26

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

Время на прочтение 5 мин
Количество просмотров 15K

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

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

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

Время на прочтение 8 мин
Количество просмотров 13K


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

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

Читать далее
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 25

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

Время на прочтение 6 мин
Количество просмотров 4.2K

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность