6502

MOS Technology / Commodore / Apple II / NES etc.

Moderator: Lavr

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

Я тут несколько озадачился одним вопросом и нигде ответа не нахожу... :-?

Подавляющее большинство программ для NES начинаются вот так:

Code: Select all

        SEI          ; disable IRQs
        CLD          ; disable decimal mode
или

Code: Select all

        SEI                     ; Запрет маск. прерываний INT
        CLD                     ; Сброс десятичного режима
А что, у 65хх по сбросу прерывания не запрещаются аппаратно, как у i8080 ?
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re:

Post by Lavr »

Lavr wrote:
MC68k wrote:в аппле процедура ввода с клавиатуры равна одной команде

Code: Select all

LDA $C000
Но я задал совершенно другой вопрос: популярные ПК построенные на 6502,
имели ну хоть как-то стандартизированные подпрограммы своих системных ПЗУ
?

Ну типа, как был негласный стандарт в наших популярных поделках на i8080:

Code: Select all

0F803H 
... 
Оказывается "негласный стандарт" и для Apple I был. Да и ввод с клавиатуры НЕ равен одной команде...
apple_subs.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

Shaos wrote:Mежду тем легендарный MOS 6502 до сих пор продаётся :)
Image
MPU R6500 CISC 8-Bit 1MHz 40-Pin CDIP

На http://www.jameco.com его можно приобресть за:
6502 1x$5.95 10x$5.49
Упорядочивая топик, решил проверить, а продаётся ли легендарный MOS 6502 до сих пор
по ссылке топикстартера? Всё же 9 лет почти прошло... :wink:

Так ведь продаётся всё ещё этот 1-мегагерцовый 6502 от Rockwell ! :o
https://www.jameco.com/z/6502-Major-Bra ... 43191.html

И на 28 июня 2018 был куплен 65 раз, цена всё та же: $5.95
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 6502

Post by Shaos »

Ну там скорее осталось 65 штук (in stock)

А вообще Jameco до сих пор торгует всяким старьём типа 8080, 8085, 8086, 8088, 6800, 6809

Но почему то "новые" 6502 от WDC у них больше не продаются...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

Shaos wrote:почему то "новые" 6502 от WDC у них больше не продаются...
Я когда покупал себе 65С02, то от WDC на Ali - тоже не нашел.
Похоже, что WDC продает их сам.
Shaos wrote:Ну там скорее осталось 65 штук (in stock)
Я там прочитал буквально:
65 ship on Jun. 28

P.S. Да, видимо, здесь "ship" в значении "к поставке". За прошедшие сутки парочку поставили:
63 ship on Jun. 29
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: 6502

Post by Shaos »

Это значит, что готовы отправить 65 прям щас - если закажешь больше, то они сколько-то недель будут ждать доставки извне и только потом отправят

P.S. Уже 63 - кто-то купил парочку ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

Что-то меня тут по мере углубления в дебри микропроцессора 6502 одна мысль огорошила
просто как "пустым мешком по голове"... :o

Микропроцессоры типа i8080 и Z80 имеют раздельные выводы чтения и записи:
RD и WR (могут называться иначе, не в этом суть).
То есть, i8080 и Z80 могут читать, могут писать, а могут заниматься и внутренними
делами, при этом НЕ читать и НЕ писать.

У микропроцессора 6502 интерфейс несколько иной - есть сигнал R/W - тип операции, и
по активному сигналу Ф2 эта операция выполняется.
Для микропроцессора 6502 есть свой набор микросхем с таким интерфейсом R/W и Е(Ф2).

Но когда мы подключаем к 6502 микросхемы, ориентированные на RD и WR, рекомендуют
вот такое включение:

Image

Оно меня и озадачило... :-?

Значит если 6502 занят внутренними делами, он НЕ пишет, значит R/W = "1", но поскольку
Ф2 - задается генератором, то он "молотит" всегда, и получается, что эта схема всегда посылает
активный сигнал /READ, даже когда он не нужен?
:roll:

Ну да - можно вспомнить, что для включения внешних ИС нужен еще и активный сигнал выборки - /CS.
Но его обычно формирует дешифратор на шине адреса, и как бы не менялось состояние шины адреса,
этот дешифратор что-то да выберет, а постоянно активный сигнал /READ заставит выдать
что-то на шину данных? :roll:

Вот я смотрю на эту простейшую схему:

Image

Получается, что мои рассуждения верны?
Или я что-то не совсем так понимаю в интерфейсе 6502 с устройствами на шинах?
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 6502

Post by shoorick »

Подавляющее большинство программ для NES начинаются вот так:
Иногда неплохо делать на старте то, что делается по сбросу, для ситуаций вроде "сброса изнутри": jmp 0 или т.п.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

shoorick wrote:Иногда неплохо делать на старте то, что делается по сбросу, для ситуаций вроде "сброса изнутри": jmp 0 или т.п.
А есть уверенность, что это делается по сбросу?

Code: Select all

        SEI          ; disable IRQs
        CLD          ; disable decimal mode
Я спросил об этом ранее: viewtopic.php?p=137994#p137994
Но что-то никто однозначно не ответил, делает ли 6502 хотя бы SEI (disable IRQs) аппаратно на старте?
Складывается впечатление, что - нет. :-?
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 6502

Post by shoorick »

а че вы не читаете доки? я только что впервые в жизни вник в 6502, открыл док и наблюдаю на стр.8, что рэсэт ставит маску для прерываний. это же делает обычное прерывание, а также, видимо, и необычное (NMI), которое, как написано, делает то же, что и обычное.
не могу вставить цитату, т.к. там изобр.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

shoorick wrote:а че вы не читаете доки?
А кто сказал, что я их не читаю? :roll:
Вы открыли один док, а я их открыл очень много, ибо 6502 не такой однозначный проц, как i8080...
Куча вариантов его: и в одних доках одно написано, в других - другое...
Но чисто из практики программы очень часто начинают с этих строк:

Code: Select all

        SEI          ; disable IRQs
        CLD          ; disable decimal mode
Вот мне и стало интересно - зачем дублируют SEI ?
Вот, к примеру, один человек пишет:

Code: Select all

;	The next bit of code is pretty standard. When the Atari
;	starts up, all its memory is random scrambled. So the first
;	thing we run is "SEI" "CLD" and "TXS".
;	Look these up if you want,
;	for now know that they're just good things to cleanse
;	the palette...

	sei	 ;Disable Any Interrupts (hey! comments can go on the side!)
	cld  	 ; Clear BCD math bit.
	ldx #$FF ; set X to the top of the memory we have,
	txs	 ; ...and set the stack pointer to what X is...i.e. #$FF aka 255
Но что-то объяснение про "memory is random scrambled" меня ни в чем не убеждает... :lol:
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 6502

Post by shoorick »

Ну, я пока не видел других доков, а люди мало того, что часто находятся в плену предрассудков, да еще и имеют свойство навязывать их другим.
это из области анекдота:
- а ты зачем подряд два джампа поставил?
- а вдруг первый не сработает!
(таблица переходов не в счет)
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

shoorick wrote:Ну, я пока не видел других доков,
Ну а я - видел... и если я чего-то не знаю, я люблю, чтобы "правда" в разных доках проявилась
хотя бы в соотношении 3:1. :wink:
shoorick wrote:из области анекдота:
- а ты зачем подряд два джампа поставил?
- а вдруг первый не сработает!
(таблица переходов не в счет)
А может он конвеер "обманул" при обращении к УВВ? :mrgreen:
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: 6502

Post by shoorick »

Lavr wrote:Ну а я - видел... и если я чего-то не знаю, я люблю, чтобы "правда" в разных доках проявилась хотя бы в соотношении 3:1.
Правды может и не быть, т.к. есть еще Errata и клоны со своими багами, у которых поведение может зависить от даты выпуска ;)
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 6502

Post by Lavr »

shoorick wrote:
Lavr wrote:Ну а я - видел... и если я чего-то не знаю, я люблю, чтобы "правда" в разных доках проявилась хотя бы в соотношении 3:1.
Правды может и не быть, ...
Я всегда лелею надежду, что в соотношении 3:1 некая "правда" должна быть... :wink:

i8080 тоже делали разные производители, и есть известные мелкие разночтения,
но я не видел, чтобы программы для i8080 массово начинали с CLI.
iLavr