Рубрика «ассемблер»

КДПВ

Немножко истории

Начну с истории вопроса.

Очень давно, я написал Fresh IDE – навороченнoe IDE для программирования на ассемблере, а точнее на FlatAssembler.

Fresh IDE долгие годы меня полностью устраивал, поэтому я с перерывами выпустил 2 главные версии и начал просто его использовать, время от времени внося какие-то исправления и изредка новые функции.

Когда перешел полностью на Linux, оказалось, что Fresh IDE прекрасно работает под WINE и я продолжил им пользоваться без угрызения совести. В процессе даже удалось исправить несколько багов WINE (вот, вот и вот).

Как бы то ни было, но я начал писать библиотеку для переносимости ассемблерных программ между Linux и Windows (и KolibriOS). Одновременно с этим задумался и чтобы сделать Fresh IDE переносимым. Из за архитектуры библиотеки, огромная часть кода уже и так была переносимой. А точнее все что не касалось GUI. К сожалению GUI был полностью написан на Win32 API и его нельзя просто так перенести на другие платформы.

Поэтому и пришлось начинать все сначала. И третья версия Fresh IDE писалась почти с нуля.

Читать полностью »

Введение

Иногда, и чаще всего спонтанно, у меня появляется дикое желание реализовывать что-либо на языке ассемблера, а потом прикручивать это "что-либо" на уровни выше. Так например, ранее из-за такого желания я написал сначала стековую виртуальную машину, которая могла принимать в себя байт-код и непосредственно его исполнять, далее написал ассемблер, который мог бы транслировать язык ассемблера в этот самый байт-код, а после и написал высокоуровневый LISP-подобный язык, который компилировался в ассемблерный код ранее написанной виртуальной машины.

Читать полностью »

Как я писал свою первую игру для Dendy - 1

Что такое Dendy? Что так любит детвора? Это электронная игра! Ооо, дендиии...

Думаю, что у многих читателей хабра был один из многочисленных клонов Dendy (а точнее консоли Famicom). Я в этом плане не исключение, причем даже получилось сохранить мою приставку из детства (но картриджи были утеряны:().

Читать полностью »
image

В наше время большинство портативных устройств работает на базе достаточно мощных микроконтроллеров, которые способны запускать даже интерпретируемый код на Lua/Python. Чего уж там говорить — даже современная кофеварка или умный электрочайник может быть в разы мощнее оригинального IBM-PC, не говоря уже о автомобильных бортовых компьютерах, которые зачастую мощнее топовых ПК из начала нулевых. Но давайте вспомним конец 90-х и начало 2000-х, когда разработка собственной электроники была практически недоступна рядовому пользователю, а микроконтроллеры программировались в основном только на ассемблере. Недавно я нашёл некоторую информацию о том, какой процессор вероятно использовался в таких знакомых нам приставках Brick Game, которые мы называли «Тетрисами»! Более того, мне удалось найти полный даташит с описанием всех модулей этого процессора, который гордо можно назвать «система на кристалле». Какой была разработка микроэлектроники в 90-х? Читайте в статье!Читать полностью »

Да здравствует мыло душистое демосцена! И вам привет, дорогой читатель ;)

Начинаю цикл статей с разборами своих работ:

  1. 64b intro: radar (вы находитесь здесь)

  2. 64b nano game: snake64

С демосценой я познакомился примерно 25 лет назад (или чуть больше). Но тогда это выражалось лишь в просмотре 128–256-байтовых интро (и демок, конечно же) с изумлением а‑ля: «А что так можно было?» Думаю, у многих знакомство с этой киберкультурой начинается похожим образом :). Если вам эти слова мало о чём говорят, почитайте о демосцене Читать полностью »

Unirom запущенный на PSX (про 64K RAM - это шутка)

Unirom запущенный на PSX (про 64K RAM - это шутка)

По сравнению с другими, ранее описанными мной архитектурами, архитектура Sony Playstation 1 (PSX)Читать полностью »

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

Первым процессором архитектуры RISC стал разработанный в IBM во второй половине 70-х Джоном Коком процессор 801Читать полностью »

Ретроразработка драйвера для Windows 3.1 - 1

Word, запущенный в Windows 3.1 с удобным разрешением 1152х864

Много месяцев назад я попробовал свои силы в написании 256-цветного драйвера высокого разрешения для Windows 3.1. Попытка была успешной, но работа пока ещё не завершена. В процессе я заново открыл для себя множество забытых вещей и узнал ещё больше новых. Этот пост основан на заметках, которые я делал по ходу разработки.Читать полностью »

Пишем свой ROM BIOS - 1


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

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

В этой статье мы с вами разберём создание своего ROM BIOS, дальше я расскажу про тонкости и нюансы, напишу низкоуровневый «Hello world», сделаю настоящий интерпретатор BASIC ROM, который стартует при включении компьютера, как в первых IBM PC.Читать полностью »

Как оценить реальную производительность своего кода - 1


Код, который мы пишем, и который будет исполнен процессором, — две разные вещи. На уровне ассемблера существует миллион вариантов, в каком виде интерпретировать и запустить высокоуровневые команды. Более того, современные компиляторы сильно оптимизируют код, а результат этой оптимизации похож на магию.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js