PDA

Просмотр полной версии : Вспомним о NES (приложение к сказке о Texas Instruments)



vinxru
08.05.2011, 19:25
Nintendo Entertainment System

Многие читали статью о компьютере TI99/4. После отзывов к статье, я подумал, а обоснована ли моя критика? Вспомним характеристики TI99/4, а теперь взгляем на характеристики NES.

8 битный процессор MOS Technology 6502 1,66 МГц
ОЗУ 2 Кб (возможно расширение)
Видео ОЗУ 2 Кб (возможно расширение)

Они на порядок скромнее, но игры на денди на порядок красивее и интереснее. Вся суть именно в том, что
грамотный видеопроцессор позволил сэкономить память и центральный процессор. А они тогда были крайне дорогими.

Я согласен, что TI99/4 был первопроходцем, и ему многое простительно. Но все таки, это был хреновый компьютер :)

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

В отличии от процессора TI99/4, тут используется 8 битный процессор. Он даже еще восьмибитнее, чем Z80.
У него даже указатель стека восьмибитный. У него нет команд работающих с парами регистров, а регистров общего назначения всего 3.

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

NES не первый компьютер (и игровая приставка) в которой использовался этот процессор. Этот же процессор использовался, например в Atari 2600. А так же в роботе Бендере из Футурамы :)

Процессор имеет 6 регистров: 3 регистра общего назначения A,X,Y; регистр флагов; регистр стека и программный счетчик. (Первые 5 регистров 8-бит, а ПС 16-бит)

Процессор имеет 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,TS X,TXA,TXS,TYA. Команды перехода: BCC,BCS,BEQ,BMI,BNE,BPL,BVC,BVS,JMP,JSR,RTI,RTS,BR K. Побитовое изменение регистра флагов: CLC,CLD,CLI,CLV,SEC,SED,SEI.

Видеопроцессор 6538

Память видеопроцессора содержит 2 знакогенератора. Это 256 картинок 8x8 пикселей 4 цвета. При выводе на экран картинки для каждого из 4х цветов картинки назначается один из 64 цветов. То есть, одна и та же картинка знакогенератора в разных местах экрана может быть разного цвета. Можно выбрать один любой знакогенератор для фона, и один любой для спрайтов.

Видимая область экрана составляет 256x240 пикселей. Изображение формируется из фона и спрайтов.

Фон представляет собой мозаику из картинок знакогенератора, размером 64x60 картинок, из которых видимы только 32x30 картинок. Программист может устанавливать попиксельно смещение видимой области. То есть реализуется эффект "скроллинг". (Вот только объема встроенной в приставку памяти хватит лишь на 32x60 или 64x30 символов, для полноценной работы требуется дополнительные 2 Кб ОЗУ на картридже).

Поверх фона видеопроцессор позволяет отобразить 64 картинки из знакогенератора. Каждую картинку может отобразить в произвольном месте экрана. Эти картинки называются "спрайтами". Процессор может отобразить не более 8 картинок на линии. Отображение большего числа картинок осуществляется мерцанием. Один из 4х цветов картинок используется как прозрачный, поэтому спрайты могут быть только 3х цветные.

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

Ссылки

Интересное описание на русском: http://dendy.migera.ru/nes/g00.html

Atari
08.05.2011, 19:37
vinxru

1. хотелось бы уточнить, что 6502 в NES - весьма модифицированная версия проца, совсем как не эквивалентная оригиналу.

2. нафига было создавать еще одну ветку?

vinxru
08.05.2011, 19:46
1. хотелось бы уточнить, что 6502 в NES - весьма модифицированная версия проца, совсем как не эквивалентная оригиналу.


Можете рассказать об этих отличиях?



2. нафига было создавать еще одну ветку?

У этого сообщения есть собственная ценность. Многие ведь не знают об устройстве NES. А так же, это сообщение может породить офтопик. И все будут обсуждать NES, и мои косяки в описании NES.

Titus
08.05.2011, 20:38
Ой, запутал народ)
В NES стоял 6527, отличавшийся от 6502 наличием встроенного музыкального сопроцессора, а так же, сейчас точно не помню, но вроде, отсутствием десятичной арифметики.

---------- Post added at 22:29 ---------- Previous post was at 22:24 ----------



ОЗУ 2 Кб (возможно расширение)
Видео ОЗУ 2 Кб (возможно расширение)

Они на порядок скромнее, но игры на денди на порядок красивее и интереснее.
Никакого порядка тут нет. 2кб ОЗУ - это только то, что стоит штатно в приставке. Кроме него может быть очень много ОЗУ и еще больше ПЗУ на картридже, как, собственно, и было. ВидеоОЗУ 2кб - это только массив кодов тайлов, тогда ОЗУ или ПЗУ самих тайлов, т.е. собственно массив графики мог быть очень большим, находясь на картридже. Так же 64 спрайта и аппаратные скроллинги никак не вписываются в показатели скромности.

---------- Post added at 22:36 ---------- Previous post was at 22:29 ----------


В отличии от процессора TI99/4, тут используется 8 битный процессор. Он даже еще восьмибитнее, чем Z80.
У него даже указатель стека восьмибитный. У него нет команд работающих с парами регистров, а регистров общего назначения всего 3.

То, что 6502 не умеет производить операцию сложения между регистровыми парами, не делает его хуже. Все это реализуется легко парой-тройкой команд, и надо заметить за то же время. А вот наличе интересных методов адресации дает ему фору перед Z80. Например, адресация к ячейкам нулевой страницы происходит всего за 3 такта, а это фактически массив из 256 8-битных регистров. Да и команда типа регистр/регистр выполняется на 6502 за вдвое меньшее количество тактов, чем на Z80.

---------- Post added at 22:38 ---------- Previous post was at 22:36 ----------


NES не первый компьютер (и игровая приставка) в которой использовался этот процессор. Этот же процессор использовался, например в Atari 2600. А так же в роботе Бендере из Футурамы :)
А так же в Commodore и Терминаторе-1, как можно догадаться посмотрев бегущие строчки по внутренней поверхности глазиков Шварценеггера)

vinxru
08.05.2011, 21:27
В NES стоял 6527, отличавшийся от 6502 наличием встроенного музыкального сопроцессора

И контроллера DMA. Лично я считаю, что 6527 - это не процессор. Это несколько устройств выполненных на одном кристалле.


Никакого порядка тут нет. 2кб ОЗУ - это только то, что стоит штатно в приставке. Кроме него может быть очень много ОЗУ и еще больше ПЗУ на картридже, как, собственно, и было. ВидеоОЗУ 2кб - это только массив кодов тайлов, тогда ОЗУ или ПЗУ самих тайлов, т.е. собственно массив графики мог быть очень большим, находясь на картридже.

Напомню, что в TI99/4 тоже использовались картриджи. На картриджах тоже можно было встретить ОЗУ. И тайлы тоже хранились в ПЗУ картриджа, и их объем ничем не ограничен (при страничной адресации, которая тоже была).


Так же 64 спрайта и аппаратные скроллинги никак не вписываются в показатели скромности.

В сравнении характеристик я не говорил о видеопроцессоре. :) Вся суть именно в том, что грамотный видеопроцессор позволил сэкономить память и центральный процессор.

Black_Cat
08.05.2011, 21:36
И контроллера DMA. Лично я считаю, что 6527 - это не процессор. Это несколько устройств выполненных на одном кристалле.то, что позже назвали чипсет

DrPass
16.05.2011, 09:19
то, что позже назвали чипсет

То, что позже назвали интегрированный процессор или system-on-chip :)

rw6hrm
19.05.2011, 13:41
Относительно самой темы - пусть модератор её прилепит к уже существующей, http://zx.pk.ru/showthread.php?t=6479 . В последней уже столько инфы, что повторять её нет смысла. Хотя если тред будет только по самому процессору 6502/6527 и подобным - то пусть остается.
К стартовому топику я бы добавил, что, в дополнение к существующим трем регистрам общего назначения, из-за наличия команд короткого доступа к первой странице памяти, первые 256 байт ОЗУ также можно считать "регистрами", из-за чего поскорости работы 6502 сравнивается с 8080 и потомками. Эти "регистры" активно используются в программах для дендика.

Titus
19.05.2011, 16:05
Что называется, найди 10 отличий :v2_cool:


Например, адресация к ячейкам нулевой страницы происходит всего за 3 такта, а это фактически массив из 256 8-битных регистров. Да и команда типа регистр/регистр выполняется на 6502 за вдвое меньшее количество тактов, чем на Z80.



К стартовому топику я бы добавил, что, в дополнение к существующим трем регистрам общего назначения, из-за наличия команд короткого доступа к первой странице памяти, первые 256 байт ОЗУ также можно считать "регистрами", из-за чего поскорости работы 6502 сравнивается с 8080 и потомками. Эти "регистры" активно используются в программах для дендика.