Экспериментальный ассемблер Z80 с синтаксисом Си.

Однажды я подумал. А почему бы не попробовать в ассемблер не добавить условия if (flag_z) {… } else {… }, не добавить циклы do {… } while(--b). Это бы сократило количество меток в программе, сделало бы программу более наглядной. Сделало бы для меня. Я для себя всё это затеял. Помимо этих if, while, так же можно заменить команды ADD на символ +, команду LD на символ =. Таким образом появился компилятор cmm, на котором я уже написал несколько программ.

Вот, например, кусочек кода из игры, который выводит звуковые эффекты:

alemorf.ru/pi/4/index.html

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

Очередная мелодия для игры ПИ 8 бит

Последнее Испытание 8 бит
Мелодия: Игра с огнем
Компьютер: ZX Spectrum 128K / AY8910
Музыкальный редактор: Vortex Tracker II

Автор музыки: Антон Круглов (не ищите, он к ZX сцене отношения не имеет, это композитор sarumanrecords.ru)
Автор текста: Елена Ханпира
8 битная версия: Алексей Морозов

Тут я не старался что то добавить от себя, например ударные, просто аккуратно переписывал ноты с партитуры.
Поэтому получилось менее интересно, чем прошлые мелодии.

Тетрис для Искры 1080 Тарту

Искра 1080 Тарту была моим первым компьютером. Её купили, когда мне было 6 лет или около того. В моей голове возникают обрывки воспоминаний, как я в магазине с друзьям смотрю демо программу запущенную на этом компьютере. Через какое то время такой компьютер появился у меня дома. Больше никаких подробностей его появления я не помню. Единственной играбельной игрой на этом компьютере был тетрис. Через два года Искру 1080 заменил Спектрум (Ленинград), а Искра бесследно пропала.

Уже в 2000-х годах я купил Искру на барахолке. На кассете идущей в комплекте с этим компьютером тетриса не было. Откуда он взялся? Нужен тетрис. Это и сподвигло меня написать тетрис для Искры. Искра имеет разрешение 384x256 и может одновременно отображать 4 цвета, цвет на точку. При разработке нового тетриса мне захотелось выжать максимум из этих возможностей, т.е. сделать красиво. Но большого опыта рисования у меня нет, как и времени, поэтому я поискал в интернете старые 4-х цветные тетрисы (т.е. CGA). Нашелся Spectrum Holobyte Tetris для IBM PC с картинками про достижения СССР. Вот оно. Компьютер как раз оттуда. Разрешение картинок у найденного тетриса было 320x200, меньше чем у Искры, поэтому картинки пришлось дорисовать.

Дисковода у Искры нет. (Есть только в теории, т.к. на плате есть место под ВГ93). Т.е. во время игры подгружать изображения неоткуда. Все изображения должны поместится в оперативную память, которой всего 40 Килобайт. Если сильно напрячь голову, то в такой объем можно было бы уместить всю графику. Например, разложив изображение на тайлы, а уже тайлы сжать. Что то отрисовывать программным кодом. Но мне было лень, поэтому я сжимал изображение целиком архиватором MegaLZ. Удалось засунуть в компьютер 2/3 всех изображений.




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

ЮТ-88 тоже платформа для демо.

Я закончил вещь, которая мне откровенно мешала делать игру. Это компьютер ЮТ-88 собранный по технологиям 1998 года. Макетная плата и лакированный лудящийся провод (ПЭТВЛ-2). Я не смог найти все нужные детали 1988 года в хорошем и исправном состоянии, например конденсаторы, некоторые разъемы, поэтому в конструкции можно заметить что то современное. ЮТ это Юный Техник, это компьютер из журнала Юный Техник.

Процессор: К580ВМ80А 1.7 МГц
ОЗУ: 64 Кб
ПЗУ: 2 Кб (и еще 62 Кб под сжатые программы или для CP/M)
Текст: 64x25x2
Псевдографика: 128x50x2




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

Виртуальная машина Koei

Недавно я обнаружил забавный фактик на форумах nesdev (англ.): forums.nesdev.com/viewtopic.php?f=2&t=15931
Есть такая японская игростроительная фирма — Koei.
Основана она была в 1978 году и разумеется в начале истории выпускала кучу игр для 8-биток.
И в этом смысле фирма была всеядной — одни и те же игры выпускала и на NES и на MSX и на Amiga и на DOS и PC-98 и каких то уже мало мне известных FM-7, Sharp X1, Sharp X68000 и WonderSwan.
В общем плодовитость и по числу игр и по платформам где они выходили даже в ранние 8/16-битные годы была существенной.

Так вот — некто AWJ с форумов nesdev обнаружил, что все игры этой компании на NES кроме Mahjong Taikai используют один и тот же байткод некой виртуальной машины которая по своему внутреннему устройству как будто бы создана для того чтобы интерпретировать код на Си.
Читать дальше →

Диалектика разрядности

На размышления по теме меня сподвигла статья aa-dav под заголовком 8/16-битный компьютер мечты (процессор Simpleton). Статья, без дураков, замечательная. Понравилась своим рассудительным изложением материала. Мой особенный интерес вызвали мысли автора, оказавшись близкими по духу. Множество раз размышляя на подобную тему “с карандашом в руках” очень похоже изводил себя вопросами озвученными автором. Процесс созидания чего бы то ни было итеративный, наблюдения и заключения меняются по времени, в силу приобретения дополнительного опыта и знаний. Иногда достаточно попробовать сложившуюся на бумаге архитектуру “на зуб” написав в ней десяток другой строк кода и, казалось бы, с железобетонных утверждений приходится слезать. Неизменным всегда остается то, что любой вопрос, касающийся архитектуры, содержит в себе массу противоречий. По большому счету выбор решения в итоге заключается в том какие же из них являются меньшим злом. Так и в случае разрядности появляется масса вопросов и проблем. Для меня в итоге, при решении вопросов разрядности в разработке архитектуры (архитектуры мечты), потеря байта как единицы оперативной информации, оказалась болезненной.
Читать дальше →