ZX Spectrum в proteus

Старый спектрумистский форум

Moderator: Shaos

User avatar
Deus0451
Junior
Posts: 4
Joined: 12 Jun 2019 06:12
Location: Одесса

Re: ZX Spectrum в proteus

Post by Deus0451 »

PVV wrote:
Deus0451 wrote:А есть ли в протеусе действующие модели других процессоров (или в других системах проектирования)?
Из тех действующих моделей, что я в нем нашел - MCS-51 (мк), MCS-48 (мк), 8086, немного переферии для 8080 (8255a и т.д.). Знаю, что есть модель 8088 для него (на ютубе есть видео), но я ее не нашел в интернете. Мне бы m68k промоделировать, может у кого-то есть модель?
модель 8086 из Протеуса очень сырая, я с ней работать пытался в проекте РК-86 на 8086, но не смог. Есть желание написать ее самому, ну и 8088 за компанию. 8255 из Протеуса, так же, сырая, я работаю с самописной моделью, ее исходники на этом форуме есть. Равно как еще несколько периферийных БИС комплекта 8080 есть самописных с исходниками здесь же. Модели ПИКов в Протеусе пробовал 16f628 и 12f675, работают. Более ничего не встречал. Что такое m68k не знаю, от слова совсем, но если есть время и желание, то можно разбираться и писать самому, быстро не получится, зато можно во многих нюансах разобраться от и до.
Хух, значит дело не во мне — мне тоже показалось, что модель 8086 в протеусе ... странная. Например, работать с внешней ROM у меня не вышло его заставить (в протеусе бинарник нужно именно в модель процессора загружать, будто он не CPU а МК).
А m68k это Motorola 68000.
IDDQD
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: ZX Spectrum в proteus

Post by PVV »

Для Спектрума существует такая прошивка, и я ее модифицировал под SD карту. Хотел запустить все в Протеусе, но 'мои' схемы Ленинграда напрочь отказываются воспринимать клавиатуру, причем на столько, что если я ставлю break по уровню=0 на ножке /OE мультиплексоров клавиатуры, то там вообще нет останова! что за??? Ладно, в этой теме есть :kruto: схема cpldbob, в которой клавиатура работает, добавил свой SD интерфейс и частично все ожило, каталог с файлами выводится, можно запустить загрузку программ, они читаются, но ничего не запускается, Спектрум или виснет, или сбрасывается в начало... Чем это вызвано, ошибками в портировании или ошибками в x80.dll не разобрался. В x80.dll, вообще говоря есть ошибка, неправильно обрабатывается NMI прерывание, это актуально и z80 и i8085 модели, но это не должно же на запуск игровых программ влиять. А так хотелось игрушку Спектрумовскую в Протеусе увидеть ... :esad:
0iStalker
Junior
Posts: 8
Joined: 24 Mar 2018 04:11

Re: ZX Spectrum в proteus

Post by 0iStalker »

Может быть и в самом cpldbob есть ошибки, dll вообще писалась по мотивам и затачивалась строго поl Proteus, конечно, пытался придерживаться соглашений Verilog по возможности (не особо-то это пригодилось потом). Ещё в Proteus какая-то беда с моделями микросхем ОЗУ 62256, товарищи сознательно игнорируют datasheet по сигналам управления, не учитывают, что режим чтения данных это низкий уровень на /OE и /CE, а режим записи - это низкий на /CE и /WE, при этом у /WE приоритет над /OE. Ну и ещё почему-то данные записываются по снятию /WE, а не по установке.

Кому интересно, можно покопаться в исходниках cpldbob128k (правда я не помню какую я схему выкладывал ранее, в той которой защёлка только vram или ту в которой так вся ram работает, поэтому выложу ещё вариант cpldbob, со всей ram читаемой с защёлки), без копирайтов, гарантий и проч. Как есть.
You do not have the required permissions to view the files attached to this post.
0iStalker
Junior
Posts: 8
Joined: 24 Mar 2018 04:11

Re: ZX Spectrum в proteus

Post by 0iStalker »

Здрасссьте! Продолжаю виртуальное спектрумостроение. Попалась тут видяшка про шим на дискретных микросхемах (с компаратором на XOR функции) и меня озарило. Попробовал в протеусе, работает, но в рассыпной логике уж очень объемно получается. Поэтому пришлось освоить PLD и WinCUPL, это совсем-совсем не верилог (хотя и нашёл на форуме zx.pk как писать им под ATF16V8, но 8LE это не серьезно). В итоге получился очередной 128к спектрум, - добавил в него ещё одну защёлку на считывание байта пикселей из VRAM, по сравнению с SpeccyBob, - схема начала вести более стабильно и менее капризно ко времянке сигнала переключения доступа дисплея/CPU, - прям вообще по красоте, одним фронтом захватывается байт из VRAM, другим фронтом первый пиксель из этого байта уже на видеовыход уходит. Также поправил формировалку развёрток и сигнал INT, теперь одно выглядит более опрятно, а INT вроде бы совпадает с моделью 48К (с Арлекином точно совпадает). К сожалению работает гораздо медленнее чем схема на рассыпной логике или cpldbob.

Запустил тесты оперативки, вроде проходит. 128 менюшка тоже отображается. В железе пока не собирал (и есть ли смысл?)

Традиционная картинка

Image
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ZX Spectrum в proteus

Post by Lavr »

0iStalker wrote:Ещё в Proteus какая-то беда с моделями микросхем ОЗУ 62256, товарищи сознательно игнорируют datasheet по сигналам управления, не учитывают, что режим чтения данных это низкий уровень на /OE и /CE, а режим записи - это низкий на /CE и /WE, при этом у /WE приоритет над /OE. Ну и ещё почему-то данные записываются по снятию /WE, а не по установке.
Есть там глюки с моделями микросхем ОЗУ 62256, сталкивался... правда, я счёл их фичами... :wink:
Вот только насчёт /WE - у меня сомнение. На мой взгляд, данные и должны записываться
по снятию /WE, поскольку именно в этот момент данные максимально устойчивы после
возможных переходных процессов.

По крайней мере i8080, втаскивая данные в себя, именно так и поступает...
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ZX Spectrum в proteus

Post by Lavr »

Lavr wrote:
0iStalker wrote:Ну и ещё почему-то данные записываются по снятию /WE, а не по установке.
...данные и должны записываться
по снятию /WE, поскольку именно в этот момент данные максимально устойчивы после
возможных переходных процессов.
Я сегодня совершенно по другому поводу смотрел диаграммы записи в память, так данные записываются,
действительно, по снятию /WE, поскольку именно в этот момент данные максимально устойчивы.
WE.gif
DS2064-200_and_DS2064S-200.pdf
You do not have the required permissions to view the files attached to this post.
iLavr
Cyrix
Junior
Posts: 3
Joined: 29 Dec 2022 20:07

Re: ZX Spectrum в proteus

Post by Cyrix »

Помогите!!! а-а-а-а-а-а-а!!! Не открывается окно виртуального монитора! Как его вызвать принудительно? Компонент TVOUT из первого поста с проектами ZX Spectrum 48, проект загружается, всё вроде бы работает, а окошка виртуального телевизора нет! Проект не с RGBIOUT а именно с TVOUT!
Cyrix
Junior
Posts: 3
Joined: 29 Dec 2022 20:07

Re: ZX Spectrum в proteus

Post by Cyrix »

Почему изображение в RGBIOUT может ехать на верх?
You do not have the required permissions to view the files attached to this post.
Cyrix
Junior
Posts: 3
Joined: 29 Dec 2022 20:07

Re: ZX Spectrum в proteus

Post by Cyrix »

Зачем в модели TVOUT вертикальное и горизонтальное синхро? Там же видеовход, где всё на свете, включая синхросмесь!!! Почему синхросигнал SYNC_H RGBIOUT вообще не соответствует строчному синхроимпульсу?
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: ZX Spectrum в proteus

Post by Lavr »

Cyrix wrote:Почему синхросигнал SYNC_H RGBIOUT вообще не соответствует строчному синхроимпульсу?
Да, там в какой-то версии сигналы перепутаны, но в итоге вроде как всё работает... :-?

Про дисплей вот здесь вроде обсуждали:
viewtopic.php?p=140404#p140404

А все самые актуальные версии написанных на форуме *.dll обычно - здесь:
viewtopic.php?f=81&t=19632
iLavr