+16.72
22 читателя, 70 топиков

Архитектура и программирование микрокалькулятора HP-41

"...Often you need to execute a synthetic two-byte instruction from the keyboard. This can occur during your day-to-day user of the HP-41..."
/ HP-41 Advanced Programming Tips /




Как многие знают, в конце 1980-х в СССР были весьма популярны программируемые микрокалькуляторы, совместимые с Б3-34: МК-54, МК-61, МК-52. Для них создавали программы, игры, исследовали недокументированные возможности, писали статьи. Я и сам через это прошёл в своё время. И вот недавно задумался: а ведь в США тоже должно было быть что-то подобное, близкое по духу именно ко всему тому, что происходило вокруг наших программируемых калькуляторов. И да — я оказался прав. Встречайте: HP-41.

Читать дальше →

Борьба с клешингом в С64

Сразу за релизом С= распишу, как реализован режим мультиколора для С64.

Смотреть/скачать демо

Это стандартный режим видеоконтроллера комодора, и один из любимых на демосцене.

Итак, задача — сконвертировать оригинальный формат экрана С64 в режиме мультиколор для вывода в видеопамять zx enhanced (ts config).
Напомню, что результатом должна быть линейная адресация с тетрадой бит на пиксел, указывающих на цвет точки.
Сразу скажу, что разбирал я стандартный формат, для которого нашлось приличное количество качественной графики в оригинальном формате.

Читать дальше →

Карта памяти NES

Одна из первых вещей, которую приходится изучать при освоении низкоуровневого программирования для новой платформы — её карта памяти, то есть где в адресном пространстве находятся ОЗУ, ПЗУ, регистры устройств и тому подобное. Если простота устройства ZX Spectrum, которое можно описать одним предложением — 'нижние 16 килобайт ПЗУ, остальное ОЗУ, экран в начале ОЗУ, весь ввод и вывод через один порт' — позволяет не особо задумываться о самом существовании этого вопроса, то у многих других современных ему платформ дела обстоят несколько сложнее. В особенности это справедливо для NES, карту памяти которой, а также причины именно такой её организации, мы и рассмотрим в этой статье.


Читать дальше →

TSconf: Ports

В данном разделе я хотел бы описать все группы портов, которые задействованы в управлении системой TSconf.
Данный раздел описывает общее назначение портов. Полная дока по портам лежит здесь.

Итак, порты системы можно разделить на следующие группы:
  • порты управления выполнения кода процессором. Сюда отнесём такие порты как: SysConfig, CacheConfig
  • порты управления памятью: MemConfig, Page0 — Page3, FMAddr
  • порты страниц графики TSU: VPage, T0GPage, T1GPage,TMPage, SGPage
  • порты управления графическими режимами / цветом: VConfig, PalSel, Border
  • порты управления отображением: TSConfig, GXOffs/GYOffs, T0XOffs/T0YOffs, T1XOffs/T1YOffs
  • порты управления DMA: DMASAddr, DMADAddr, DMALen, DMANum, DMACtrl
  • порты управления приходом INT: INTMask, HSINT, VSINT
  • порт управления виртуальным FDD: FDDVirt

Читать дальше →

Captain Drexx изнутри. Часть 5. User interface


В этой части я хочу рассказать о управлении игрой.
Содержание цикла «Captain Drexx изнутри»

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

Читать дальше →

Captain Drexx изнутри. Версии

Версии игры в процессе разработки.
покопался в почте, сложил по очереди версии игры по мере её роста :)

Содержание цикла «Captain Drexx изнутри»

По клику на картинку скачивается sna.

Гм, конкурс? а если...

Первое письмо к ААА, 18.09.13.
Первая версия, прототип. Крипы лазят по экрану, всё из Рекс-а :)


Читать дальше →

Немного лирики про то, как рождалось “No Heart Beats Forever” (NHBF)

Внимание! Будут спойлеры



После своих прошлогодних работ для Chaos Constructions "daybyday" и "Tooticki häst" (которые, кстати, были для меня дебютными), я решил, что на этом и всё. Идей больше нет и не будет, даже близко к этим работам я уже ничего не смогу и не напишу, да и вообще.


С другой стороны...

Ещё раз про тайлы и RET

Всем привет, недавно у меня возникла необходимость ускорить рендер тайлов для нашего мультиколорного долгостроя Dice Legends. В результате экспериментов удалось увеличить игровое поле с 26х15 до 30х18. Как водится по результатам приятного времяпрепровождения я решил сделать небольшую игру, чтобы обкатать всякие штуки с картой и прочим. Ведь игра это не только про то как быстро что-то нарисовать.


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

Читать дальше →

256 байт интро "Disequilibrium" для компьютера Vectrex

Пара слов насчёт моей 256-байтной работы DISEQUILIBRIUM для Vectrex (пятое место на Chaos Constructions'2025).
Хотя работа довольно примитивная — линия, по которой скользит точка — реализация не так проста, как кажется на первый взгляд. Нарисовать линию на Vectrex'е, разумеется, просто, как и точку — есть даже соответствующие подпрограммы в BIOS'е. Но вот с перемещением точки вдоль перемещающейся линии — есть нюансы.

Читать дальше →