Learn Multiplatform Z80 Assembly Programming with Vampires
Представлен уникальный курс обучения программированию на ассемблере Z80 с тематикой вампиров. Сайт предлагает четыре серии уроков: для абсолютных новичков, основы Z80, примеры "Hello World" и практические примеры. Каждому уроку соответствует видео на YouTube с комментариями и практическими демонстрациями.
Курс охватывает множество ретро-платформ: от Amstrad CPC и ZX Spectrum до Game Boy и Sega Master System. Уроки включают работу с CPU, представление данных, графику, звук, операции с битами и прерывания. Автор предоставляет обновленную серию уроков 2021 года и подчеркивает мультиплатформенный подход, позволяя изучать один и тот же код на разных системах.
Комментарии (7)
- Сайт и туториалы по ассемблеру для множества платформ, включая FM-7, SAM Coupé и PDP-11, выросли из скриптов для сборки ChibiAkumas V1.666.
- Сообщество отмечает, что ресурс остаётся актуальным и полезным, несмотря на его «древность», и что он всё ещё служит цели «сделать низкоуровневое программирование доступным».
- Обсуждение подчеркнуло, что хотя архитектура RISC-V может быть ещё более дружелюбна к новичкам, чем Z80 или 6502, сама идея изучать ассемблер остаётся такой же пугающей для новичков, как и в 80-е.
- Участники согласились, что не смотря на это, сайт остаётся ценным и уникальным ресурсом, и что его трудно заменить.
Forth: The programming language that writes itself 🔥 Горячее
Forth — язык программирования, созданный Чаком Муром, который легендарен своей необычайной гибкостью и способностью изменять даже базовые элементы вроде целых чисел. Автор статьи рассказывает о своем пути познания Forth, начатом с легенд на Usenet в 1990-х, где Мур описывался как "волшебник", пишущий программы всего за несколько экранов кода. Несмотря на популярность Perl и других языков того времени, Forth оставался загадкой для многих разработчиков.
Хотя Forth часто ассоциируется с обратной польской нотацией (RPN), где операторы следуют за операндами (например, "3 4 +"), это лишь поверхностная особенность языка. Истинная мощь Forth заключается в его экстремальной гибкости и минимализме, что позволило автору подтвердить легенду о возможности изменения значений целых чисел. Язык продолжает вызывать интерес благодаря своей уникальной философии и эффективности.
Комментарии (121)
- Обсуждение показало, что Forth и подобные языки привлекают внимание своей элегантностью и универсальностью, но страдают от отсутствия стандартизации и сложности в чтении кода, что мешает коллаборации и масштабированию.
- Участники подчеркнули, что такие языки требуют высокой квалификации разработчика, что может ограничивать их использование в больших командах и коммерческих проектах.
- Были упомянуты примеры, где Forth использовался в критически важных системах, но это требовало больших усилий для поддержания и передачи знаний.
- Некоторые участники выразили ностальгию по временам, когда они сталкивались с такими языками в детстве или ранней карьере.
- В конце концов, обсуждение подошло к выводу, что хотя такие языки могут быть мощными и выразительными, их практическая применимость ограничена их сложностью и отсутствием стандартизации.
How to create an OS from scratch
Этот репозиторий содержит пошаговое руководство по созданию операционной системы с нуля на языке C и ассемблере. Он охватывает основы загрузки, управления памятью, прерываний и файловых систем, предлагая практический опыт низкоуровневого программирования.
Проект структурирован как серия уроков, каждый из которых добавляет новую функциональность, начиная с простого загрузчика и заканчивая многозадачностью. Это отличный ресурс для понимания внутреннего устройства ОС и работы с аппаратным обеспечением напрямую.
Комментарии (69)
- Создание ОС с нуля на базе устаревшего BIOS и x86 рассматривается как учебный, но непрактичный путь, погружающий в исторические детали архитектуры вместо современных концепций.
- Многие проекты ОС остаются незавершенными из-за сложности поддержки железа и драйверов, что является рутинной и нетривиальной задачей.
- В качестве более актуальных альтернатив предлагаются подходы с использованием микрокернелов, современных архитектур (RISC-V, ARM) или существующих педагогических ОС (xv6).
- Рекомендуется начинать с изучения авторитетных источников (например, wiki.osdev.org) и современных туториалов, избегая устаревших материалов с пробелами и ошибками.
- Разработка ОС углубляет понимание распределенных систем, планирования и кэширования, что полезно для инженеров, даже если они не планируют писать ядро.
Optimizing a 6502 image decoder, from 70 minutes to 1 minute
Изначальный алгоритм декодирования изображений с камеры Quicktake 150 на процессоре 6502 работал 70 минут. Основная проблема — сложный формат сжатия на основе кодирования Хаффмана и 16-битной математикой, что крайне неэффективно для 8-битного процессора.
Оптимизация началась с отказа от декодирования цвета, поскольку итоговое изображение было монохромным. Это сократило обработку только до зелёных пикселей матрицы Байера. Далее удалили ненужные буферы и промежуточные шаги, включая интерполяцию, что уменьшило размер вывода до 320×240. В итоге остался лишь один используемый буфер из трёх. Эти изменения сократили количество инструкций с 301 млн до 25 млн, а время декодирования — до минуты. Ключевой вывод: алгоритмическая оптимизация даёт больший выигрыш, чем низкоуровневая оптимизация кода.
Комментарии (28)
- Обсуждение визуального парадокса: изображение с чередующимися черными пикселями кажется более четким, чем изображение без них, несмотря на одинаковый объем информации.
- Ностальгия по низкоуровневому программированию и работе с аппаратными ограничениями (память, скорость) как к refreshing практике для инженеров.
- Технические гипотезы о причинах визуальных артефактов (масштабирование браузером, адаптивная подсветка, HDR-режим).
- Критика современного ПО: несмотря на миллионократный рост мощности hardware, воспринимаемая скорость и отзывчивость интерфейсов часто снизились.
- Идея о необходимости целенаправленной оптимизации кода для повышения эффективности, возможно, с использованием ИИ.