Author |
Message |
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
А что там приводить то? Первое - это операции с ZP, когда задается только младший адрес, а старший всегда равен 0. Второе - это индексная адресация, когда младший адрес только в X или Y, старший же всегда равен 0. И вся соль в том, что помимо "короткого" (в плане длины опкода) обращения, байт из ZP можно использовать как второй операнд непосредственно (первый всегда [A], как у i8080). Отсюда и такое убеждение.
PS ZP - Zero Page.
PPS Чел на Эмураши разбирает кристал для низкоуровневой симуляции ядра 6502, который присутствует в процессоре NES в несколько усеченном виде. Фишка в том, что чел все объясняет открыто, а не тарит как у Visual6502.
|
22 Jun 2012 23:19 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Хардыч, ну в теории - это вроде как понятно, но я просил нехитрозадумчивый пример, чтобы поковыряться с ним в эмуляторе 6502 под отладчиком.
На мой взгляд - это самый полезный способ разобраться с процессором
без лишних словесных пересказов.
PS. Немного не понял я затею мужика по ссылке. Зачем ему по-новой делать реверс 6502? Ведь его схема на MOSFET-ах известна, да и на логических вентилях - я видел...
_________________ iLavr
|
23 Jun 2012 02:16 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Нуу, я не писал под 6502 столько. Но думаю, если ты возьмешь ИДу, плагин для NES и любую игру для NES то все поймешь и так. Тем более, что простых игр уже дизасмы есть дофига (марио, танчики) и с комментами.
Just for fun наверное.
|
23 Jun 2012 05:11 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
Nerdy nights или как-то так.
три глобальных вещи есть у 6502
1) короткая адресация через нулевую страницу. каждая команда занимает 2 байта и выполняется быстрее. STA #xx/LDA #xx
2) по иксу
3) по игреку
второй и третий случай работает, как ссылка(?) на указатель(?) 2 байта плюс смещение. вот тебе внезапно 128 16битных регистров.
черт, а мнемоники то я подзабыл.
|
23 Jun 2012 06:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
_________________ iLavr
|
21 Jul 2012 16:01 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А где бы посмотреть хотя бы программную модель Apple ][ ?
А то MC68k столько убеждал нас, что это чуть ли не прототип " Специалиста"...
А кроме исторического славословия, что-то мало полезного гуглится...
http://apple2history.org/history/ah03/
Меня интересует карта памяти и структура экрана...
У С64 экран, похоже что на БИС видеокотроллера организован - это не так интересно...
А вот как он устроен у Apple ][ ?
Так, судя по вот этой статье, Apple ][ был организован значительно сложнее,
нежели " Специалист".
Судя по тому, что в нижних 4К у Apple ][ мог быть текстовый "экран", похоже,
что также была заюзана БИС видеокотроллера...
В " Специалисте" так не поколбасишься - графический экран с прозрачным доступом.
В " Орионе" он хоть по памяти "запрыгал"...
PS. Авторы выпустили новую версию эмулятора, и ссылка вновь рабочая!
_________________ iLavr
|
18 Feb 2013 12:26 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
невероятно толстый вброс.
|
18 Feb 2013 17:09 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
невероятно полезный и содержательный пост!
пешы таких больше!
_________________ iLavr
|
19 Feb 2013 01:10 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Интересно, что в первых " Агатах" расширенный аналог 6502 также был выполнен
на этих самых " секционированных БИС" (как пишут).
Поэтому по системе команд он был расширен, а по скорости - проигрывал реальному 6502.
Я почему-то предполагал, что 6502 " на рассыпухе" делали с помощью БИС АЛУ и
мелкой логики, как это любители делают, оказалось, что нет...
_________________ iLavr
|
06 Mar 2013 02:52 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Странный несколько вопрос меня озадачил: у 6502 последние 6 байт (или 3 слова)
в старших адресах памяти - это три вектора прерывания по сути...
А как он поймёт эти 6 байт, если "наедет" на эти адреса, выполняя программу -
как коды операций?
_________________ iLavr
|
06 Mar 2013 09:42 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
А почему нет? Это обычная память же. Исполняет же он программу в ZP и SP (ZeroPage & StackPage).
|
06 Mar 2013 12:15 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну ZP и SP (ZeroPage & StackPage) - это никаких вопросов не вызывает...
Просто я не знаю его механизма - у i8080 по прерыванию должна поступить команда.
А 6502 - получается, просто берет адрес перехода из этих ячеек, вот я и задумался,
как он среагирует, если скушает JMP [ADDR NMI], к примеру.
_________________ iLavr
|
06 Mar 2013 12:46 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Ну, мы юзаем JMP ($FFFC) чтобы запустить игру в своем картридже, но эта команда логически не отличается от отработки ресета. А вот если подать JMP $FFFC, то он однозначно прыгнет в этот адрес. Ну а так как туда все равно нужно писать адрес обработки, то что-то полезное там хранить тяжело. Разве что подгадать адрес так, чтобы получилась полезная команда.
|
06 Mar 2013 19:44 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
среагирует прикольно, ибо в конце обработчика прерываний обычо используют команду RTI.
|
06 Mar 2013 23:46 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А вот такой вопрос у меня возник по ходу моих разборок с 6502:
популярные компьютеры, построенные на 6502, имели ну хоть как-то стандартизированные
подпрограммы своих системных ПЗУ?
Ну типа, как был негласный стандарт в наших популярных поделках на i8080:
- ввод символа с клавиатуры с ожиданием; - ввод символа с клавиатуры без ожидания; - вывод символа на экран; - вывод строки на экран.
Ну я имею в виду:
В книжке про ассемблер " Аппле" пара стандартных вызовов упоминается, но по имени,
а не по адресу функции...
( Морер У. Язык Ассемблера для персонального компьютера ЭПЛ: Пер. с англ. -М.: 1987, -430с.)
Или у них для компактности кода были только вызовы по внутренним адресам системной ПЗУ,
как у "Спецтрума"?
_________________ iLavr
|
07 Mar 2013 04:10 |
|
|