+15.35
19 читателей, 42 топика

Digger. Становление. часть 3

Давай раскомментим немножко и глянем чо и как.
Опа! Всё падает, и падает жестоко. Переменные – где угодно, но не по своим адресам… Да что ж такое… как? Почему??!
Дикая копанина, ступор. Blade, ну как так – держи пример, вериейблы хз где!
Но где-то на краю сознания крутится, что кроме самого большого блока есть ещё мелкие.

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

Разработка игры Frogger для компьютера Vectrex

Какое-то время назад я переводил рассказ Chris Salomon о его разработке игры Frogger для компьютера Vectrex. Тот рассказ, написанный им в 1998 году, является, на мой взгляд, очень интересным документом, позволяющим проникнуться как духом этой необычной платформы, так и спецификой разработки на ассемблере вообще.

Chris не забросил Vectrex и, сравнительно недавно, довёл до релиза собственный эмулятор Vectrex для Windows (лучший, на данный момент) под названием «Vide». Мне, к слову, приятно, что мои исходники Electric Force помогли ему реализовать приличную поддержку отображения векторных кривых в этом эмуляторе.

И вот, получив в руки такой мощный инструмент, Chris не смог отказать себе в удовольствии вернуться к своему старому Frogger'у, чтобы доработать и улучшить его. Об этом он рассказал в своём блоге.

Таким образом, здесь я публикую две части моего перевода — первую, об оригинальной разработке 1998 года (из файла progger.txt, бродившего вместе с исходниками игры) и вторую — о её продолжении (из блога автора).

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

Digger. Бег по граблям. часть 2


4 дня правок и компиляций. 4 дня постоянных error.
Меня начинает это всё уже выносить.
И вот — ошибок уже как бы и вродь нет. Ну, как-бы.

Но всё в жопу. Полная задница, ничего не компилит, понятной причины в логе ошибок нет, что я делал всё это время? к чёрту этот бред! зачем это всё вообще! нахер эта возня?

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

Digger: Изучение. часть 1

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

«Digger (рус. Ди́ггер — «землекоп») — компьютерная игра, выпущенная канадской компанией Windmill Software в 1983 году для компьютеров IBM PC. Игра была весьма популярна во времена широкого использования мониторов и видеокарт стандарта CGA.
Игра создана основным разработчиком компании Windmill games Робом Слетом в 1983 году. В 1984 году программа была переписана для IBM PCjr. Последняя оригинальная версия была выпущена для канадского компьютера Hyperion, работающего на 6 МГц.
Во время игры в качестве фоновой музыки используется тема Гершона Кингсли «Воздушная кукуруза».


… Как оказалось, 8-ми битной версии этой игры под спектрум нет. Есть вариации на тему, местами довольно неплохие, но – «Это не Диггер!» ;)

Копнувши сеть, я обнаружил… The original source code to Digger.

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

Архитектура и программирование Philips Videopac (Magnavox Odyssey 2)

«Hardware is just software crystallized early»
— Alan Kay




Компьютер Magnavox Odyssey 2 (Videopac) появился в 1978 году и позиционировался как игровой, однако с возможностью более серьёзного применения (для чего у него имелась встроенная плёночная клавиатура). Серьёзных приложений, учитывая назначительный объём памяти, было очень мало, так что, по факту, правильнее считать Videopac игровой приставкой.

Что касается названий, Magnavox Odyssey 2 продавался в США и выдавал NTSC видеосигнал (через RF выход). Philips Videopac G7000 (он же C52) продавался в Европе, соответственно, с PAL видео. Кроме этого различия (которое, разумеется, влияло на работоспособность части игр) компьютеры совершенно одинаковые.

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


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

Архитектура и программирование Vectrex

— А видеовыход у него есть?
— И как ты себе это представляешь?
(из разговора о Vectrex)


Vectrex выпускался GCE в 1982 — 1983 гг. и представляет собой игровой компьютер (приставку) ключевая особенность которой, векторный дисплей, делает его одним из самых необычных и интересных 8-разрядных компьютеров. С некоторой натяжкой можно сказать, что он является упрощённой версией векторных игровых автоматов Cinematronics, технически более совершенных.

В качестве процессора в Vectrex используется Motorola 6809 — он похож на MOS 6502/6510, но добавлены 16-битные регистры, дополнительные режимы адресации, умножение.
Тактовая частота — 1.5MHz.

Поскольку компьютер был выпущен как игровая приставка и игры для него продавались на картриджах, программа размещается в ПЗУ картриджа (32 кб), а ОЗУ — совсем крохотное (1 кб — две штуки 2114) и предназначено больше для данных.
Также есть встроенное ПЗУ с BIOS'ом (8 кб — одна 2363), который включает набор подпрограмм для рисования векторов и вывода текста, несколько примитивных мелодий и даже одну игру — Minestorm (многим известную как Asteroids).

Звук реализован на чипе AY8912 (также используется в MSX2 и поздних ZX Spectrum) однако, кроме этого существует штатная возможность проигрывания 8-битного звука через ЦАП (практическое применение этого способа, впрочем, ограничено).

Vectrex выполнен в виде моноблока (включающего ЭЛТ экран), но клавиатура не предусмотрена в принципе. Управление осуществляется двумя джойстиками (в т.ч. аналоговыми). Кроме того, может быть подключено световое перо и очки 3D Imager.

С 1982 г. по нынешнее время для Vectrex написали примерно полторы сотни игр, несколько серьёзных программ (типа редакторов графики, музыки, анимации), а также около десятка демо и интро. Интересно, что более половины игр (и все демо) выпущены после 1995 года, т.е. через десятилетие после прекращения производства и поддержки Vectrex. Возрождение платформы связано, в первую очередь, с появлением хороших эмуляторов, которые сделали разработку доступной любому желающему. Сами компьютеры пока также вполне доступны на eBay.

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

Архитектура и программирование компьютера Texas Instruments TI-99/4a

Компьютер Texas Instruments TI-99/4a почти неизвестен за пределами США, однако он был там весьма популярен (выпущено более двух миллионов машин). Хотя этот компьютер создавался как домашний, существенной особенностью (во многом определившей его архитектуру, а затем и судьбу) было то, что за основу был взяли уже существовавший серьёзный мини-компьютер TI-990, собранный на обычной ТТЛ логике. Фактически, микропроцессор TMS9900 в компьютере TI99/4A является реализацией TI-990, но в виде чипа. TI-990 был выпущен в 1975 году, а TMS9900 в 1976 году.



Таким образом, TI99/4a (в 1979 был выпущен чуть более простой TI-99/4, а в 1981 уже TI-99/4a) получил в наследство крайне странную, для домашних компьютеров, архитектуру. Во-первых, микропроцессор TMS9900 в нём 16-разрядный — с честной 16-разрядной шиной данных (это в конце 1970-х!). Во-вторых, на чипе нет регистров (кроме PC, флагов и указателя «регистров» WP). То, что можно назвать регистрами, находится в отдельной микросхеме 16-разрядного статического ОЗУ размером 256 байт и может адресоваться одновременно как память и (первые 16 слов) как регистры R0..R15. Называется это «scratchpad».
Аппаратного стека нет, вместо этого сохранение значений при вызове подпрограмм осуществляется изменением указателя начала регистров WP в этом самом ОЗУ (напоминает регистровые окна в Sparc'ах). В предке (TI-990) это также использовалось для переключения контекста при реализации многозадачности.

Хотя тактовая частота TMS9900 — 3 МГц, инструкции занимают довольно много тактов — не менее 8. При этом реализовано даже умножение и деление (124 такта).

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

Как стартовать первую программу на ассемблере.

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


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

ZiFi is released!

Итак, случилось. Версия 0.61, с автообновлением из сети.

Что нового?
+ скорость кабельной версии приросла в два… нет, в ДЖВА РАЗА, КАРЛ!. 11,5 кбпс онлайн, без СМС. (From mighty DDp!)
+ куча новостей с разных наших сайтов
+ IRC Logs. Вы знаете что здесь делать ;)
Новенькие разделы разработаны и поддерживаются DMlog!

Что сейчас нужно для использования?
Для версии с esp8266 — ускорилась и устабилилась прошивка, здесь можно обновить прошивку ZX Evolution от DDp.
А вообще — мы уже полностью самостоятельны и независимы, МЫ — СПЕКТРУМ ОНЛАЙН.
Для версии RS 232 — ускорился сервер, ускорилась прошивка, необходимо скачать socket-сервер от PSB и обновить прошивку ZX Evolution от DDp с ускоренным до 115200 UART.

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

ZiFi или интернет для Z80


Сетевые разработки ведутся уже давно.
Давно существует прототип ethernet плата от nedopc, в U16 встроен ethernet контроллер, есть и зарубежные разработки в этой области.
Но почему же мы до сих пор их не используем?

Сейчас я вижу одну главную проблему. Существующее железо для сети лежит как прототип.
Для этого железа нет никакой программной поддержки.
Как вы думаете, почему?

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

Но я вижу, что пришло время.
У меня есть видение, как реализовать такого рода вещь.

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