Обновить
55
0.1

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

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

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

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели8.6K

Вторая часть уже здесь.

В первой части мы:

посмотрим, как работать с памятью и регистрами 8086

узнаем, как написать простую программу на ассемблере прямо в отладчике

изучим работу механизма прерываний и сделаем демонстрационный пример

Статья рассчитана на тех, кто имеет начальный опыт программирования, но хочет понять основы низкоуровневого программирования и многозадачности.

Примеры в бинарном виде доступны по ссылке

Читать далее

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

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели7.1K

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

Читать далее

Введение в OpenCL

Время на прочтение11 мин
Охват и читатели65K
Эта статья посвящена основам программирования на OpenCl. OpenCl -это язык программирования на GPU/CPU, по своей структуре близкий к стандарту c99. Его развитием занимается Khronos Group, где на их сайте доступна полная документация. Во избежание полемики на тему «ну это же всё тривиально, достаточно покопаться в инете» сразу оговорюсь: в рунете информация на эту тематику практически полностью отсутствует, а в западном инете доступна весьма в разрозненном состоянии на десятке сайтов. Здесь будет приведена некоторая компиляция базовых принципов, максимально упрощающая начинающему программисту жизнь, а так же позволяющая с самого первого проекта максимально задействовать вычислительные мощности видеокарты. Людям написавшим 2-3 серьёзных программы на OpenCl это будет уже неинтересно. Статья в некотором смысле является продолжением моей прошлой статьи.
Читать дальше →

Как на самом деле хранятся изображения?

Время на прочтение29 мин
Охват и читатели8.1K

Этот пост — погружение в кроличью нору. Разработчик Монсеф Аббад задумался о изображениях — вероятно, после недавнего изучения им некоторых схем компрессии. Общеизвестно, что изображения бывают либо полутоновыми, либо RGB, когда новые цвета создаются на основе смешения красного, зелёного и синего. Но для хранения изображения требуется нечто большее, чем просто выравнивание трехбайтовых значений RGB.

Что-то в этой идее пробудило любопытство автора, поэтому в статье он попытался удовлетворить его и ответить на вопрос: как на самом деле хранятся изображения?

Читать далее

Game++. Patching patterns

Уровень сложностиПростой
Время на прочтение46 мин
Охват и читатели2.1K

Книга Design Patterns: Elements of Reusable Object-Oriented Software («Приёмы объектно-ориентированного проектирования. Паттерны проектирования»), также известная под названием "синей книги", по цвету обложки первого издания, или книги "банды четырех/GoF" издана почти тридцать лет назад.

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

Я всё еще считаю, что книга актуальна - как базовые знания вроде математики, алгоритмов и примитивов синхронизации, но за прошедшие годы люди создали и обнаружили множество новых, хоть и не таких известных. А некоторые паттерны, настолько стали, затасканными что ли, что превратились скорее в антипаттерны, как например, Singleton и совсем потерялся смысл его использования. И там где разумное применение не приносит больше вреда, но позволяет развязать зависимости, создание архитектуры на таких принципах - ведет только к разбуханию кода, и коду ради кода.

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

Заходите, великов и граблей хватит на всех.

Читать далее

Как оптимально проектировать печатные платы

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели11K

Привет, на связи Андрей Шведов, руководитель проектов ГРАН Груп!

Разработчики электроники стремятся сделать свой проект с минимальным количеством вопросов и доработок со стороны производителя. Служба качества всегда хочет получить минимальный уровень брака. Сотрудникам монтажного производства хотелось бы видеть оптимизацию под линию монтажа для достижения максимальной производительности. А вопросы минимизации стоимости печатных плат и сокращения сроков поставки всегда крайне важны для компании в целом. Но как возможно отвечать всем этим требованиям одновременно?

Всего этого можно добиться, соблюдая набор принципов концепции DFM (англ. design for manufacturing) – "проектирование с учетом производства". Она имеет довольно простой смысл: задуманные в проекте решения следует реализовывать, учитывая особенности технологических процессов и возможности производств.

Следуя принципам DFM, вы получаете надежные и соответствующие функциональным характеристикам печатные платы, поставленные в срок, с минимальным риском дефектов и по оптимальной стоимости.

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

Читать далее

Звуки музыки Super Nintendo

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели3K


В прошлый раз мы заглядывали под капот 16-битной игровой консоли Sega Mega Drive и смотрели на бобину устройство звуковой системы. Сегодня повернёмся к Сеге задом, к SNES’у передом, и проделаем то же самое: рассмотрим устройство звуковой системы в изделии конкурирующей организации, Super Nintendo.

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

Затолкаем, братцы!!! UART Lite через PCIe прямиком в Linux: драйвер за вечер (почти)

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

Что если можно было бы подключить своё AXI-устройство на FPGA к Linux через PCIe за вечер? В этой статье рассказываю, как написать драйвер для UARTLite через XDMA, собрать свою TTY и начать работать с GPS прямо из терминала!

Залетай, что смотришь....

Разрабатываем игру для Wii в 2025

Время на прочтение11 мин
Охват и читатели1.5K

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

Чтобы дать вам такой опыт, существуют онлайн фэнтезийные игровые консоли, такие как PICO-8 (небесплатная) и TIC80, которые делают очень доступным создание прототипов и получение минимальных навыков. Также есть аппаратные системы, такие как Playdate (пропиетарная), которые работают с методами ввода и форм-факторами еще больше ограничивая вашу площадку для игр. Наконец, есть процветающие сообщества энтузиастов-любителей вокруг таких консолей как SNES и N64 (посмотрите на этот потрясающий демейк Portal!).

Лично я всегда питал слабость к Wii. Отчасти потому, что я вырос на ее невероятных играх, таких как Super Mario Galaxy 2, но также потому, что моддинг игр для Wii дал мне возможность заглянуть в то, что позже станет моей карьерой: разработку игр. Хотя я и занимался разработкой для Wii в прошлом, я никогда не чувствовал что действительно понимаю что делаю. Пару месяцев назад я решил это исправить. Имея законченное задание по DirectX для университетского курса программирования графики и открытые возможности «вы можете добавлять дополнительные функции, чтобы повысить свои оценки, но они не являются обязательными», я подумал: что, если я приду на экзамены со своим Wii и сделаю презентацию на нем?

Читать далее

Создание видеокарты Бена Итера на FPGA чипе

Уровень сложностиПростой
Время на прочтение127 мин
Охват и читатели5.2K

Здравствуйте. Меня зовут Дмитрий. Данная статья является продолжением статьи Сборка компьютера sap-1 (компьютер Бена Итера) в игре Turing Complete (если вы её не читали то очень советую). Сегодня мы продолжим исследовать блог Бена Итера, но вместо компьютерной игры мы соберем простейшую видеокарту на FPGA чипе.

Итак почему я выбрал FPGA? Конечно в игре Turing Complete можно собрать видеокарту, но её нельзя подключить к монитору что-бы проверить работу, поэтому мне пришлось перейти на что-то более осязаемое. Поэтому сегодня мы изучим язык Verilog предназначенный для описания микросхем.

Читать далее

Бобер который смог: бекпорт Golang на Windows 7

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели1.3K

После того как нам удалось сделать это с Node.js, занялись поиском следующей жертвы, которой после недолгих раздумий стал компилятор Go.

Полгода жестоких экспериментов и удивительный результат.

Читать далее

Устройство «музыкалки» AY-3-8910 и эмулятор на Arduino

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

Астрологи объявили месяц статей про ZX Spectrum, звук и Arduino. Количество публикаций увеличилось вдвое!

В прошлый раз я показывал, как можно перенести однобитные, они же «биперные», музыкальные «движки» с ZX Spectrum на Arduino. Но всё-таки это была максимально нишевая тема внутри нишевой темы, весьма узкоспециализированный проект.

Сегодня сделаю шаг ближе к народу. Расскажу, как работает легендарный звуковой чип AY-3-8910, как написать его простой эмулятор полностью с нуля, и как проиграть им музыкальный файл формата PT3 на обычной Arduino Nano.
Читать дальше →

Как malloc() и free() управляют памятью в C

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели14K

Привет, Хабр!

Сегодня рассмотрим, почему free() не всегда освобождает память, как работает malloc(), когда glibc действительно возвращает память в ОС, и как избежать фрагментации хипа. А так же напишем кастомный аллокатор.

Читать далее

В чём причина высокой скорости fastDOOM

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели10K

Зимой 2024 года я восстанавливал IBM PS/1 486-DX2 66Mhz, «Mini-Tower», model 2168. В подростковом возрасте я мечтал о таком компьютере, но не мог себе его позволить. Не могу выразить словами, насколько меня радовала работа над этой машиной.

Как только мне удалось его запустить, я сразу же провёл бенчмарк одного ПО.

Читать далее

Syscall и cgo в Go

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели2.5K

Привет, Хабр!

В этой статье рассмотрим работу с системными утилитами в Go. Будем напрямую общаться с ядром, дергать системные вызовы и писать код на C, чтобы Go не чувствовал себя одиноким.

Читать далее

Скользящая средняя – полное руководство по использованию

Время на прочтение15 мин
Охват и читатели15K

Скользящая средняя (Moving Average или сокращенно MA) – это один из самых универсальных и популярных индикаторов на рынке, который может быть использован для торговли по тренду.

Скользящая средняя показывает среднюю цену за указанный период времени (это могут быть 15 дней или 15 минут) и является запаздывающим индикатором.

Существует два основных типа скользящих средних — простая скользящая средняя (SMA) и экспоненциальная скользящая средняя (EMA). Как следует из названия, простая скользящая средняя — это просто средняя цена торгового инструмента за определенный период времени. С другой стороны, экспоненциальная скользящая средняя придает больший вес более поздним значениям цены.

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

Простые и экспоненциальные скользящие выглядят в виде плавной линии. К примеру, скользящая средняя за 50 периодов на дневном графике использует последние 50 дней движения цены для формирования среднего значения:

Читать далее

Разработка и производство современных ASIC/SoC глазами тополога

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8.9K

Привет, Хабр! Меня зовут Илья, я работаю в команде физического дизайна в дивизионе полупроводников YADRO. Проектирую цифровые микросхемы, помогаю с образовательными программами и привлекаю студентов в наше дело. В этой статье я расскажу про разработку современных микросхем с фокусом на этап проектирования топологии, объясню, что такое SoC (System-on-Chip, cистема на кристалле) и как мы проектируем их в нашей команде. А напоследок покажу, где об этом всем можно узнать на собственном опыте.

Читать далее

Экспериментальный ретробрайт: отбеливаем в двух десятках вариантов

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели1.2K

Как известно, ABS пластик со временем желтеет, но его можно отбелить с помощью перекиси водорода — процесс отбеливания называется ретробрайтом. Если вас интересует химическая сторона вопроса, то можете прочитать её тут. А вот тут просто пример отбеливания.

Вкратце: моё мнение — отбеливайте в парах или растворе 40% перекиси водорода, лучше подогретой. И будет вам счастье.

Для эстетов: осторожно! Содержит кадры без евроремонта!

Читать далее

Scorched Earth — мама всех игр. Интервью с создателем

Время на прочтение10 мин
Охват и читатели12K

Привет, Хабр! Представляю вашему вниманию перевод статьи "An interview with the creator of Scorched Earth" автора Wendell T. Hicken.



Начальный экран «мамы всех игр». Пустынный пейзаж наводит на мысли о будущих войнах в Заполярье.


Привет, читатели Хабра! Меня зовут Игорь и мне нравятся олдскульные компьютерные игры. Помню, в середине 90-х, когда я учился в последних классах средней школы, мы с друзьями частенько засиживались после уроков в кабинете информатики, где на учительском IBM PC 486/DX2 с увлечением «рубились» в игрушку под названием «Scorched Earth» (в переводе на русский – «Выжженная земля»). Между собой мы её называли просто «скорч», или «танчики».


Недавно мне стало интересно больше разузнать об авторе и истории создания этой замечательной игры. Как это часто бывало с играми в 90-е, «Scorched Earth» разработал один человек — американский программист Венделл Т. Хикен (Wendell T. Hicken).


Предлагаю вниманию читателей Хабра перевод интервью с автором игры, опубликованный в 2005 году в интернет-издании «Ars Technica». Беседовал основатель и главный редактор ресурса Кен Фишер (Ken Fisher).

Ещё одна самодельная GPS антенна

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

Привет Хабр! Меня зовут Александр, я инженер-электроник. Около пяти лет назад я разрабатывал с нуля GPS приемник. Когда более-менее ожил первый макетный образец, оказалось, что в офисе на окне спутники почти не ловятся - ни телефоны ни контрольный приемник в виде модуля U-blox даже не захватывали хотя бы пару спутников в слежение.

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

Читать далее

Информация

В рейтинге
3 011-й
Дата рождения
Зарегистрирован
Активность