Проблемы при регистрации на сайте? НАЖМИТЕ СЮДА!                               Не проходите мимо весьма интересного раздела нашего сайта - проекты посетителей. Там вы всегда найдете свежие новости, анекдоты, прогноз погоды (в ADSL-газете), телепрограмму эфирных и ADSL-TV каналов, самые свежие и интересные новости из мира высоких технологий, самые оригинальные и удивительные картинки из интернета, большой архив журналов за последние годы, аппетитные рецепты в картинках, информативные Интересности из Интернета. Раздел обновляется ежедневно.                               Всегда свежие версии самых лучших бесплатных программ для повседневного использования в разделе Необходимые программы. Там практически все, что требуется для повседневной работы. Начните постепенно отказываться от пиратских версий в пользу более удобных и функциональных бесплатных аналогов.                               Если Вы все еще не пользуетесь нашим чатом, весьма советуем с ним познакомиться. Там Вы найдете много новых друзей. Кроме того, это наиболее быстрый и действенный способ связаться с администраторами проекта.                               Продолжает работать раздел Обновления антивирусов - всегда актуальные бесплатные обновления для Dr Web и NOD.                               Не успели что-то прочитать? Полное содержание бегущей строки можно найти по этой ссылке.                              

Atari 2600

Автор: vinxru

Процессор: MOS Technology 6507 (аналог 6502)

ОЗУ: 128 байт

Видео ОЗУ: 0 байт

Звук: 2 генератора с изменяемым тоном и громкостью, плюс шум

Разрешение: 160x192 128 цветов

Выпущена: рождество 1977 года.

Atari 2600 (или Atari Video Computer System) — это легенда. С этого игрового компьютера началась эпоха компьютерных игр и рынок программного обеспечения.

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

Главная причина того, что Атари 2600 стал самым популярным — это вложенные в него деньги. Только на разработку консоли было потрачено 100.000.000$, и денег еще оставалось столько, что два последующих убыточных года не погубили компанию.

Успех пришел только тогда, когда появились интересные игры. Самой удачной игрой была Space Invaiders, портированная с игровых автоматов. Она принесла фирме 100.000.000$. А всего за этот год, фирма заработала 2.000.000.000$.

Вместе с успехом Атари 2600 стали как грибы после дождя появляться программистские фирмы. А Вы попробуйте (!) разделить 100.000.000 долларов на 4 Килобайта (это размер игры Space Invaiders). Получается где то 25.000 долларов за байт. Каждые 10 байт — это новенький спорт-кар на стоянке у офиса.

Самой известной, из образовавшихся тогда фирм, была Activision. Её основали 4 программиста ушедшие из Атари. В составе Activision они написали большинство лучших игр для Атари 2600. А сейчас Activision это один из крупнейших издателей игр, уступающий по величине только Electronic Arts.

Фирма Атари стала крупнейшей фирмой в силиконовой долине, и с каждым годом всё богатела и богатела, пока на рынке не появилась приставка Famicom (FAMIly COMputer, она же Nintendo Entertaiment System или Dendy).

Внешний вид

По внешнему виду приставка напоминает древний абонентский громкоговоритель. Деревянная вставка — это в действительности крашенная пластмасса. В отличии от современных приставок, кнопки START и SELECT расположены на корпусе. Помимо джойстиков, в комплекте с приставкой продавались контроллеры Paddle. Это вращающаяся ручка, позволяющая плавно перемещать игрока по одной оси и кнопка огонь. Попытка играть на таком контроллере, уже развлечение.

Игры

Графика у Атари 2600 очень примитивна, но динамична. У Атари нет возможности зафиксировать изображение на экране, у неё нет видеопамяти, поэтому программист должен каждый кадр рисовать заново. И поэтому многие эффекты (например вертикальный скролл) реализовать не сложнее, чем реализовать статичный экран. Так же радует обилие оттенков (одновременно может быть отображено 128 цветов).

Вот скриншоты нескольких игр, что бы вы могли оценить уровень графики:

Если есть желание, так же взгляните на видео некоторых игр: Pitfall, Montezuma's Revenge, RiverRaid (моя любимая).

Поиграть в игры для Атари 2600 можно скачав эмулятор Stella и архив игр.

Внутри

[Увеличить]

Разберем Атари 2600 и посмотрим, что то же такого сделали разработчики за 2 года и 100.000.000$? Плата содержит всего 3 микросхемы: процессор MOS Technology 6507, микрсхемы TIA и RIOT. Желающие копнуть поглубже, могут взглянуть на принципиальную схему.

Процессор MOS Technology 6507 — это легендарный процессор 6502 в корпусе с меньшим количеством выводов. Пострадали линии адреса и он может адресовать лишь 8 Кб памяти. Об этом процессоре я расскажу подробнее ниже.

Микросхема RIOT, это аббревиатура Ram Input/Output Timer, а вообще она называется MOS Technology 6532. Эта микросхема содержит: 128 байт оперативной памяти, порты джойстиков и таймер.

Микросхема TIA, это аббревиатура Television Interface Adaptor. Эта микросхема формирует видео и аудио сигнал. Для формирования звука, эта микросхема содержит два генератора прямоугольных импульсов с управляемой частотой и амплитудой, а так же генератор шума. Эта микросхема — личная разработка фирмы Атари. Именно на разработку этой микросхемы ушло большее количество денег и времени.

Картридж

Программы для Атари 2600 продавались в виде картриджей содержащих в себе микросхемы ПЗУ. И иногда дополнительное ОЗУ. 128 байт хватало не всем.

Из доступных процессору 8 Кб адресного пространства, картридж может использовать лишь верхнюю половину. Программы объемом более 4 Кб используют технологию переключения банков. Обычно переключение банков осуществляется при чтении определенных адресов. Например в игре Mario Bros. банки переключаются при чтении адресов: 1FF8h, 1FF9h.

Если кто то хочет сам изготовить картридж для Атари 2600, то можете воспользоваться разработанной и проверенной мной схемой и печатной платой.

Процессор MOS Technology 6502

Именно с появлением процессора MOS Technology 6502 стало возможно появление домашних компьютеров. Это был первый дешевый и достаточно мощный процессор на рынке. Помимо Атари 2600 он использовался в компьютерах: Apple 1, Commodore 64, Dendy (оно же NES, Famicom).

В Терминаторе 1 и Бендере из Футурамы так же используется этот процессор. :)

Как и в случае с программистами из Атари, которые основали собственные фирмы, обиженные разработчики процессора Motorola 6800 ушли из Motorola и основали свою компанию. Рекордно быстрыми темпами они разработали новый революционный процессор 6501 (наш 6502 или 6507 отличается лишь корпусом) и новую революционную технологию производства микросхем. При той же производительности, что и у процессора Intel 8080, себестоимость этого процессора была в 6 раз меньше.

Процессор имеет 6 регистров: 3 регистра общего назначения A, X, Y; регистр флагов; регистр стека и программный счетчик. Программный счетчик 16-битный, а все остальные регистры 8 бит. Да-да, регистр стека тоже восьмибитный, стек находится всегда между 100h — 1FFh. Регистров конечно мало, но это компенсируется тем, что этот процессор очень быстро работает с первыми 256 байтами адресного пространства.

Процессор имеет 56 команд. Этот процессор вообще не поддерживает 16-битный арифметики (в отличии от Intel 8080). Арифметические команды: сложение ADC, INC, INX, INY; и AND; сдвиг ASL, LSR, ROL, ROR; сравнение CMP, CPX, CPY, BIT; вычитание SBC, DEC, DEX, DEY; исключающее или EOR; или ORA. Команды копирования значений: LDA, LDX, LDY, PHA, PHP, PLA, PLP, STA, STX, STY, TAX, TAY, TSX, TXA, TXS, TYA. Команды перехода: BCC, BCS, BEQ, BMI, BNE, BPL, BVC, BVS, JMP, JSR, RTI, RTS, BRK. Побитовое изменение регистра флагов: CLC, CLD, CLI, CLV, SEC, SED, SEI.

В интернете есть интересный сайт, изображающий кристалл процессора в работе.

Принцип формирования изображения

Микросхема TIA обеспечивает разрешение 160x192 и 128 цветов. Хотя разрешение и кол-во цветов зависит от программиста и используемой системы цветности.

Микросхему TIA можно назвать одномерным ускорителем графики, потому что без помощи центрального процессора, эта микросхема умеет формировать лишь изображение, в котором все строки идентичны. Без центрального процессора эта микросхема даже не формирует кадровые синхроимпульсы.

Для формирования двумерного изображения центральный процессор должен постоянно записывать в регистры TIA данные. Через регистры программист управляет 6-ю объектами: Игровое поле, которое занимает всю строку экрана; два игрока, две мишени, один мяч, которые могут находится в произвольном месте экрана.

Игровое поле — это двухцветное изображение 20x1, которое дублируется до 40x1 и растягивается на всю строку в 160 пикселей. Правая часть игрового поля может быть зеркально отражена.

Игрок — это одноцветное изображение 8x1 (второй цвет прозрачный). Программист определяет положение игрока, его цвет, а так же некоторые эффекты (игрока можно отразить, растянуть, дублировать...).

Мишень — это отрезок 1,2,4 или 8 пикселей. Цвет мишени всегда такой же, как цвет игрока.

Мяч — это отрезок 1,2,4 или 8 пикселей. Мяч может быть любого цвета.

Еще TIA выполняет проверку пересечений этих объектов, что сильно облегчает жизнь программисту.

Это почти все видео возможности микросхемы TIA. Желающие докопаться до сути могут тут почитать описание регистров TIA. Желающие копнуть поглубже, могут взглянуть на принципиальную схему TIA

Из TIA можно выжать гораздо больше, если изменять нужные регистры в нужное мгновение. Под нужными регистрами, я подразумеваю не очевидные сочетания значений. Используя эту возможность программисты реализовали текстовый режим, спрайты 64 пикселя в ширину, 15 цветов на строку и многое другое.

Программа

Теперь подкрепим теорию практикой и напишем простую программу для Атари 2600. Наша программа будет выводить на экране слово «HABRAHABR». Ради простоты программы, расположим надпись вертикально.

Перед рисованием каждой строки, мы будем записывать в регистр цвета игрока (ColuP0) номер строки. То есть N-ная строка будет N-ного цвета. В битмеп игрока (Grp0) будем последовательно записывать массив заранее подготовленных значений. В битмеп игрового поля (Pf1) будет записывать то же, что и в битмеп игрока.

Массив данных рассчитывается очень просто. Каждый байт — это новая строка. Каждый бит байта соответствует пикселю изображения. То есть последовательность:

10000001b

10000001b

10000001b

11111111b

10000001b

10000001b

10000001b

кодирует букву H. Двоичное число 10000001b это десятичное число 129, либо шестнадцатеричное число 81h. Двоичное число 11111111b это десятичное число 255, либо шестнадцатеричное число FFh.

Переведем написанное на язык процессора 6502. Для удобства людей не знакомых с ассемблером процессора 6502, в комментариях справа я разместил аналогичную программу на языке C.

	LDY #0 		; unsigned char y = 0;
Loop4:			; do {
  	  STY	ColuP0	;   цвет_игрока_1 = y; 
	  LDA	Data, Y	;   a = data[y];
	  STA	Grp0	;   битмэп_игрока_1 = a;
	  STA	Pf1	;   битмэп_игрового_поля = a;
	  STA	Wsync 	;   ждем_конец_строки();
	  STA	Wsync 	;   ждем_конец_строки();
	  INY		;   y++;
	  CPY	#72	;   bool flag = y<72;
	BNE	Loop4	; } while(flag);

Data:	.DB $81,$81,$81,$FF,$81,$81,$81,0 ; H
	.DB $7E,$81,$81,$FF,$81,$81,$81,0 ; A
	.DB $FE,$81,$81,$FE,$81,$81,$FE,0 ; B
	.DB $FE,$81,$81,$FE,$84,$82,$81,0 ; R
	.DB $7E,$81,$81,$FF,$81,$81,$81,0 ; A
	.DB $81,$81,$81,$FF,$81,$81,$81,0 ; H
	.DB $7E,$81,$81,$FF,$81,$81,$81,0 ; A
	.DB $FE,$81,$81,$FE,$81,$81,$FE,0 ; B
	.DB $FE,$81,$81,$FE,$84,$82,$81,0 ; R

Скачать полную версию программы

Скачать прошивку

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

Включаем

В комментариях к моей прошлой статье про Spectrum +3, читатели жаловались на отсутствие фотографии телевизора. Я исправлюсь:

.:: Статистика ::.
Пользователи
HTTP: 5
IRC: 6
Jabber: 1
( состояние на 15:40 )
ADSL-газета: Ежедневно свежие анекдоты, гороскоп, погода, новости, ТВ-программа, курс валют

Интересности из Интернета: Интересные статьи на разнообразные темы, найденные на просторах интернета

Компьютерная консультация

Единый личный кабинет