Войти
ФлеймФорумЖелезо

А если ли у нас ностальгирующие по MOS 6502? (3 стр)

Страницы: 1 2 3 4 511 Следующая »
#30
4:45, 30 ноя. 2017

monobogdan
> Значит short там все таки был?

https://ru.wikipedia.org/wiki/%D0%A4%D0%BB%D0%B0%D0%B3_%D0%BF%D0%… E%D1%81%D0%B0

Например в Z80 и 8086 есть 2 отдельные команды для сложения - ADD и ADC, то есть просто сложение и сложение с переносом.
В 6502 просто сложения не было - было только ADC, поэтому чтобы сложить два простых числа и не получить неправильный результат надо было сперва отдельной еще командой предварительно очистить флаг переноса, если не было уверенности в его состоянии без этого.


#31
9:49, 30 ноя. 2017

=A=L=X=
т.е получается оно какими то костылями реализовано?
Что препятствовало сделать полноценные 16 бит(не только цена) тогда?

#32
9:52, 30 ноя. 2017

innuendo
> ох уж эти индесные регистры, помню как страшную тайну узнал про
> недокументированные команды для z80 :)

Вот кстати да, очень странная фигня.
Если в своё время вглядываться внимательно в официальные таблицы опкодов для Z80, то прекрасно видно, что однобайтовые префиксы расширения системы команд до регистров IX и IY делали довольно простую вещь - в следующей после себя команде косвенную адресацию (HL) меняли на (IX+offset8) или (IY+offset8), а если там была просто регистровая пара HL, то она еще прямолинейнее заменялась на IX или IY соответственно.

ИЧСХ именно это происходило с однобайтовыми регистрами - H менялся на IXH, а L менялся на IXL, кроме случаев если в команде была адресация по (HL) опять таки - тогда модифицировалась только она. Но эту возможность не документировали ни тогда ни даже сейчас - проверил свежайший мануал по Z80 от самой Zilog на её сайте датированный прошлых годом - и нифига, нет упоминания про доступ к IXH или IXL в системе команд.
Такое ощущение, что есть выпуски или клоны без этого поведения или это еще как то им мешает где-то, ибо странновато за долгие годы такую фичу не впустить в правила.

#33
9:53, 30 ноя. 2017

monobogdan
> Что препятствовало сделать полноценные 16 бит(не только цена) тогда?

Цена и сложность схемы только, причем второе вызывало первое.

#34
10:16, 30 ноя. 2017

Я писал на C под Commodore 64(правда там 6510) недавно, там была прикольная фича что там был не совсем фреймбуффер а просто массив символов проецировался на экран.
Но видеорежимы вроде тоже должны были быть там.
NES не совсем понимаю.

#35
10:41, 30 ноя. 2017

monobogdan
> а просто массив символов проецировался на экран
> NES не совсем понимаю
Так это же одно и то же.
Текстовый видеорежим содержит в качестве видеоданных прямоугольный массив с кодами символов и (возможно) их цветовыми атрибутами. Код символа в прямоугольной матрице не рисуется сам по себе - в памяти где то еще есть таблица того как выглядит битмап символа с данным кодом, обычно коды представляют байты и меняются таким образом от 0 до 255, если всю эту таблицу картинками символов даже нетекстовых охватывать, то появляется возможности для псевдографики или вообще программируемых пользователем символов - может быть интересно.

В денди задний фон - это абсолютно то же самое, только символы названы тайлами. Всё остальное делается так же. Более того некоторая техническая документация самой Nintendo, которую я видел, такие тайловые видеорежимы называет текстовыми.

#36
10:50, 30 ноя. 2017

=A=L=X=
Хочешь сказать что в денди вся VRAM это последовательность индексов тайлов 8х8 типа:
111532355

Как тогда накладывались спрайты поверх? Еще одна область которая уже проецировала спрайты?

#37
10:58, 30 ноя. 2017

monobogdan
> Хочешь сказать что в денди вся VRAM это последоват

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

> Как тогда накладывались спрайты поверх?

Так же как и у коммодора видеочип умел выводить спрайты поверх фона/текста. Зачатки такого поведения в современных компах мы видим в качестве единственного спрайта мыши на мониторе - ему "пофигу" что под ним изображено, он не является частью фреймбуфера видеокарты. А у коммодора их вроде 8 было, в то время как у денди целых 64.

#38
11:00, 30 ноя. 2017

monobogdan
> Как тогда накладывались спрайты поверх? Еще одна область которая уже
> проецировала спрайты?

Да, есть отдельно область Backgroud для фона, есть OAM для спрайтов - http://wiki.nesdev.com/w/index.php/PPU
Но 6502 тут вообще не при чём, это заморочки PPU  (микросхема UA6538)

#39
11:00, 30 ноя. 2017

monobogdan
> Как тогда накладывались спрайты поверх?
Не скажу про Денди, знаю про Atari - там, можно сказать, уже был видеоадаптер, отдельный процессор ANTIC (были ещё для звука, для ввода-вывода). Этот процессор реализовывал 8 аппаратных спрайтов, совершенно независимых от бэкбуфера, и даже от видеорежима, эти спрайты можно было выводить даже поверх листинга программы во время программирования.

#40
11:09, 30 ноя. 2017

Mikle
В коммодоре тоже были аппаратные спрайты.
Получается до 8 спрайтов можно спокойно использовать?

#41
12:10, 30 ноя. 2017

monobogdan
> Получается до 8 спрайтов можно спокойно использовать?

Спокойно - да.
А если поднапрячься, можно было и больше с помощью HBlank-отсечения.
А вот на денди hblank-отсечение количество спрайтов на кадр увеличить не могло, потому что видеочип плотно блокировал на весь VDraw память спрайтов. Видимо поэтому их там сразу сделали ажно 64.

#42
13:14, 30 ноя. 2017

=A=L=X=
а что если это допустим какая нить космическая стрелялка где со временем выживания увеличивается сложность и появляется больше врагов? Когда их будет >64 в экране то будешь в невидимых врагов врезатся?

#43
13:37, 30 ноя. 2017

monobogdan
> Когда их будет >64 в экране то будешь в невидимых врагов врезатся?

Больше 64 их просто не может быть физически.
А вот если более 8 в одной строке - то да, NES перестанет показывать хвост кроме первых 8 спрайтов.
Там чтобы этот issue более-менее забарывать видеоконтроллер в таком случае поднимает флаг "переполнения" и игра как то может переставлять какие спрайты первые а какие последние - возникает весьма характерное перемигивание спрайтов, если ты много играл, наверняка его видел, это снижало критичность проблемы, так как через раз, но все спрайты таки было видно.

#44
16:54, 30 ноя. 2017

Кто производит клоны 6502 сейчас?
Может в основе лежит какой нибудь RISC который эмулирует 6502(потому что 6502 наверное сложно будет собрать сейчас)?

Страницы: 1 2 3 4 511 Следующая »
ФлеймФорумЖелезо