nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 10:19



Reply to topic  [ 41 posts ]  Go to page Previous  1, 2, 3  Next
Эмуляторы и аналоги 6502 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Интересно - у количества ячеек таблицы есть принципиальное ограничение?
А то больно мне понравился принцип - плюхнул байт цвета по адресу, и он -
цветная точка на экране.

Расточительно несколько, но зато просто при программировании...

Я вот думаю - не расширить ли экранчик в формат 4х3 ? 8)
Но тогда и клеток в таблице поприбавится!!! :lol:

Один раз мне такую же вещь, правда, уже приходилось видеть...
Одни оригиналы строили фракталы Мадельброта в таблице Exel, также,
используя ячейки как пиксели, и программируя на встроенном VB... :lol:
Но у Exel-я есть ограничение на максимальное число ячеек...

_________________
iLavr


22 Feb 2013 14:03
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Post 
Ну в circuits.cc используется таблица 100x75 ячеек - думаю можно и больше, но будет тормозить ;)

Для нормальной растровой графики лучше юзать Canvas, правда оно только в новых браузерах поддерживается (и не поддерживается в IE)...

_________________
:dj: https://mastodon.social/@Shaos


22 Feb 2013 15:03
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Для нормальной растровой графики лучше юзать Canvas, правда оно только в новых браузерах поддерживается...

Canvas у меня странно работает... :( то есть, в одном проходе на нём отлично все его
функции работают.
Но вот когда начинается динамическая перерисовка Canvas-а он впадает в ступор и
может перерисовать что-то, если его закрыть другим окном и снова открыть...
Глюк какой-то... пока не разобрался в чем дело...

_________________
iLavr


22 Feb 2013 16:09
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Lavr wrote:
6502 compatible assembler and emulator in JavaScript

6502 - с компилятором ASM и эмулятором на JavaScript.
Quote:
6502asm.com is an online 6502 compiler and emulator written entirely in JavaScript. The 6502 CPU was fitted into several 8-bit computers and gaming consoles in the 1980's, such as the Apple ][, Nintendo NES and many more. If you have ever coded assembly on the C64 (which featured a 6510 CPU), then this should be a walk in the park for you. I also firmly believe that this can be an excellent platform for learning assembly code.

Забавно! Весьма забавно! И работает! :o

Image


И Шаос у нас JavaScript-ом увлёкся... :wink:


а дебиане теперь есть скринсейвер, написанный с этого эмулятора (он просто по кругу гоняет все приложения, написанные под него) - теперь только он у меня и крутится :)

P.S. почитал внимательно описание на www.6502asm.com и подумал - а почему бы не построить железяку на 6502 по этой спецификации? софта уже есть под него :roll:

_________________
:dj: https://mastodon.social/@Shaos


29 Mar 2013 11:15
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
почитал внимательно описание на www.6502asm.com и подумал - а почему бы не построить железяку
на 6502 по этой спецификации? софта уже есть под него :roll:

Ну я примерно этим сейчас и занимаюсь...
Но по твоей ссылке в начале этого топика доставка 6502 в Россию стОит дороже самогО 6502... :(

Потому пришлось связаться с Дендиками, в которых сейчас преимущественно интегрированный
чип-капелька или корпусной аналог 6561.
Он не даёт возможности свободно разбить карту памяти по своему усмотрению.

Так что я решил отталкиваться от конфигурации памяти картриджа Keyboard Transformer by
A.Golomedov and I.Nesterov
- это, как мне кажется, наиболее приемлемая конфигурация, с
учетом особенностей крупного разбиения памяти в приставке.

Всё это не так уж и увлекательно, нежели делать железяку с нуля, но надо же что-то сделать
из купленных дендиков. :-?

_________________
iLavr


29 Mar 2013 12:06
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Я приводил ранее ссылку на ТТЛ-вариант 6502: TTL6502.
Ruud wrote:
A projekt to build your own 6502 using only common available TTL-IC's.

Прочитал я историю создания и описание этого проекта более внимательно: TTL6502: Вuild Your own 6502

Нет, это всё же не ТТЛ-вариант 6502, это скорее уж EEPROM-вариант 6502 :(
Всё что можно было этот Ruud позашивал в ПЗУ, и никакой тебе схемотехники 6502. :-?

_________________
iLavr


22 Jul 2014 20:02
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Никогда я не увлекался игрой "Жизнь"(Life), считая её забавной бестолковицей...
Но поскольку под руками эмулятор с открытым кодом, который я немного допиливаю
под свои цели, решил я разок посмотреть, как будет протекать "жизнь на поляне" в
32х32 клетки, раз уж Life на ассемблере тут имеется...

И запустил я эмуляцию "Жизни" в отдельном окне надолго, а вот это её результат:

Image

Все белые фигуры статичны и не изменяются. Отрезок, помеченный голубым цветом, ложится
горизонтально относительно своего центра, и встает вертикально в следующем цикле.
Такая вот "Жизнь" в браузерном эмуляторе 6502. 8)

_________________
iLavr


18 Dec 2014 21:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Это я, кстати, вот этот код правлю: http://www.6502asm.com/
ошибок там имеется...

Ну и поскольку ошибки и невооруженным глазом видны были, я решил проверить это поделие
каким-либо не самым сложным тестом для оригинального 6502 CPU.
Если начать искать, то только вот здесь: http://www.6502.org/tools/emu/ тестов предлагают
довольно много...
Весь вопрос упирался в то, что у меня нет подобающих компиляторов, да и средство вывода не
поддерживается никакими стандартными программными ресурсами.
То есть, как выводить сообщения об ошибках - меня просто в ступпор вводило. :o

Но, повезло - нашел я неплохой тест, как мне кажется, TTL6502TST.rar , который ни в каких
средствах вывода не нуждается! :kruto:

Выбрал я его, потому как в пакете был асм-исходник, бинарник, и даже HEX-файл, ну и запихал
я его в исследуемый объект весьма своеобразно: скомпилировав в нем HEX-dump, сформированный
через Win-HEX:
Code:
;  TTL6502.TEST
    *= $0600
    jmp START
    *= $e000
START:
DCB $EA,$4C,$EC,$FF,$EA,$38,$B0,$FE,$EA,$4C,$6E,$F5,$EA,$18,$A9,$00
DCB $60,$EA,$A9,$01,$85,$03,$A2,$FF,$9A,$A9,$FF,$48,$28,$90,$FE,$D0
DCB $FE,$50,$FE,$10,$FE,$30,$03,$4C,$27,$E0,$F0,$03,$4C,$2C,$E0,$70
DCB $03,$4C,$31,$E0,$B0,$03,$4C,$36,$E0,$A9,$02,$85,$03,$A9,$00,$48
...
DCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$4C,$12,$E0,$EA
DCB $38,$B0,$FE,$EA,$EA,$A9,$FF,$48,$28,$40,$F4,$FF,$00,$E0,$F4,$FF

Заодно и поинтересовался на http://forum.6502.org/ - как они это делают, оказалось, что так же,
только, похоже, что скриптом через регулярные выражения они делают HEX-dump...

Ну а теперь - самое интересное, как же работает тест, который ничего не выводит - оказалось,
что очень логично!
После исполнения каждого примера он либо движется к следующему тесту, либо зависает в
бесконечном цикле по условию с флагом.
Примерно так:
Code:
$00EB19                 ;  SEC          ; $30 - $50 = $20, returns C = 0, returns V = 0
$00EB19                 ;  LDA #$30
$00EB19                 ;  SBC #$50
$00EB19     A9 74                       lda     #$74
$00EB1B     85 03                       sta     Test
$00EB1D     A9 50                       lda     #$50
$00EB1F     85 10                       sta     TmpZP0
$00EB21     8D 00 10                    sta     TmpAB0
$00EB24     38                          sec
$00EB25     A9 30                       lda     #$30
$00EB27     E9 50                       sbc     #$50
$00EB29                 L271
$00EB29     B0 FE                       bcs     L271            ; error, ->
$00EB2B                 L272
$00EB2B     70 FE                       bvs     L272            ; error, ->
$00EB2D                 L273
$00EB2D     F0 FE                       beq     L273            ; error, ->
$00EB2F                 L274
$00EB2F     10 FE                       bpl     L274            ; error, ->
$00EB31     C9 E0                       cmp     #$E0
$00EB33                 L275
$00EB33     D0 FE                       bne     L275            ; error, ->

То есть, если это происходит под отладчиком, то видно, что перестал меняться адрес.
По листингу - смотришь, на каком тесте зависли, и что не так.

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

Я раньше с тестами ЦПУ в принципе не сталкивался, поэтому пришлось почитать исходник...
Ну оооочень логично строится тест! Почему он мне так и понравился... :wink:

И, кстати, Easy 6502 этот тест четко проходит. А моё поделие 6502 assembler - ... теперь
уже тоже проходит! :D

_________________
iLavr


25 Dec 2014 10:44
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Ну вот эмулятор 6502, наконец, заработал практически верно...
Код прошел серьёзный тест Functional Test for the NMOS 6502

Image

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

Ну и некоторые шероховатости, думаю, есть ещё...


PS. Написал новый HELP-файл на английском и на русском. Всё подправил, всё вроде работает...
А тут и праздники кончились...

_________________
iLavr


04 Jan 2015 20:56
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post Re:
Shaos wrote:
Lavr wrote:
Интересно - у количества ячеек таблицы есть принципиальное ограничение?
Ну в circuits.cc используется таблица 100x75 ячеек - думаю можно и больше, но будет тормозить ;)

Что-то меня этот неразрешенный вопрос посетил снова... и к моему удивлению и удовольствию,
такие же любознательные люди, как я, нашлись!

Каково максимальное количество строк таблицы, которое может отобразить браузер?
st_st wrote:
Opera держит 100.000, попробовал в IE8, всё повисло, пришлось жать Reset.
Code:
<%for (var i=0; i<100000; i++) Response.Write(i+"<br>");%>

500.000 - Chrome повис, Opera 9 загрузила все, но при прокрутке сильно тормозит.
На 500.000 И FF 3.6 и Safari 5 дошли до 100.000 и застряли, далее очень медленно рывками по 20.000 прибавляют, короче недождался.
Opera 9.64, мильён пройден. При прокрутке сильно тормозит.

_________________
iLavr


14 Apr 2016 10:22
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Вот тут люди утверждают, что построили транзисторную реплику 6502 :o

http://www.evilmadscientist.com/2016/6502/


Attachments:
6502trans.jpg
6502trans.jpg [ 176.16 KiB | Viewed 15310 times ]

_________________
:dj: https://mastodon.social/@Shaos
16 May 2016 14:57
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Вот тут люди утверждают, что построили транзисторную реплику 6502 :o

Не удивлюсь. Его уже многократно делали на мелкой логике, и в онлайн его эмулировали, так что
до транзисторов оставался один шаг...

То, что такие выдающиеся люди, как Чак Педл и Тед Хофф запихивали в маааленький кристалл,
всех вдруг расперло повторить на больших транзисторах! :o

Необьяснимый вираж истории... 8)

_________________
iLavr


16 May 2016 16:15
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Аналоги 6502 на ТТЛ также обсуждаются здесь: 6502 from 74HC logic .

Хотя часть упомянутых в этом топике ссылок там повторяется.

_________________
iLavr


28 Jun 2018 04:26
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Нашел у себя Proteus-модель TTL-аналога 6502 - 6502.rar.
Там, собственно, сам 6502 и вроде как простые интерфейсные схемы УВВ с выводом
информации на LCD-дисплей.
Работает ли оно реально как 6502 - точно сказать не могу...

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

И дело тут, как мне представляется, в таймингах оригинального 6502.
Не секрет уже, что его оригинальная тактовая последовательность Ф0, Ф1, Ф2 формируется
на задержках элементов: http://wiki.breaknes.com/6502:clock
А это довольно неприятно эмулировать, поскольку нет привязки к опорному сигналу.
В модели 580ВМ80, которую здесь на форуме разработали, задержки не учитываются
совсем, но модель нормально работает, т.к. всё привязано к тактовым импульсам.

В FPGA-версиях 6502 с корректными таймингами их формируют из высокой частоты
тактирования самой FPGA, а для тактирования "FPGA-6502" используют отдельный
генератор.

Так что большинство авторов проектов 6502 из "мусора серии 74хх" лукаво не
мудрствуют, а придерживаются известных блок-схем этого микропроцессора (которые
все есть и
в этой ветке на нашем форуме), после чего применяют "длинное" ПЗУ
микрокоманд, чтобы заставить все регистры и вентили согласованно работать.

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

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

И оно - заработало! :kruto: Хотя я и потратил всё воскресенье... :-?
Кто хочет поиграться с 6502 на 74-й серии - вот проект:
Attachment:
6502_74.zip [98.85 KiB]
Downloaded 452 times
Я повыкидывал всё лишнее, что не сказывается на работоспособности, поскольку
автор рисовал схемы под разводку платы, но в 2007-м году ему это, видимо,
надоело - наигрался он в макропроцесоры... 8)

Здесь все схемы по которым я этот проект собирал:
Attachment:
6502_74_GIF.rar [211.73 KiB]
Downloaded 441 times
Автор придерживался карты памяти Commodore64, на котором игрался в детстве.
Поэтому у него там эмулируются и некоторые УВВ Commodore64, насколько это
позволяет Proteus.
По словам автора у него на всём этом хламье запускается ВАСИК Commodore64,
не могу сказать - патченный или нет. Я лишь посмотрел в сети карту памяти
этого реликта, чтобы понять дешифрацию ПЗУ, ОЗУ и УВВ.

При старте проекта он выводит текстовое сообщение о тесте памяти, при этом
на бОльший ЖК выводится какая-то информация...
После этого программа зацикливается и на алфавитном дисплее пишет:"Первая
строка
" и "Вторая строка" в этих самых строках.
Attachment:
6502_74.gif
6502_74.gif [ 16.65 KiB | Viewed 12680 times ]

_________________
iLavr


09 Jul 2018 06:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Два LCD-дисплея, один из которых графический, довольно-таки подтормаживают симуляцию,
тем более, что мне не интересен Commodore64, сэмулировать который стремился автор...

Но без графического LCD-дисплея симуляция зависает - программа явно ожидает готовности
LCD... Ну я подумал... и для ускорения её бессовестно обманул... :wink:
Attachment:
6502_74_1.gif
6502_74_1.gif [ 9.96 KiB | Viewed 12660 times ]

_________________
iLavr


09 Jul 2018 13:18
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 41 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.