ZX Spectrum в proteus

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

Moderator: Shaos

User avatar
Deus0451
Junior
Posts: 4
Joined: 12 Jun 2019 13: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 20: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 11: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 читаемой с защёлки), без копирайтов, гарантий и проч. Как есть.
Attachments

cpldbob128k_uram.zip
(455.62 KiB) Downloaded 846 times

cpldbob_src.7z
(393.27 KiB) Downloaded 816 times

0iStalker
Junior
Posts: 8
Joined: 24 Mar 2018 11: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
Attachments

SpeccyIdle128.zip
(379.11 KiB) Downloaded 809 times

User avatar
Lavr
Supreme God
Posts: 17087
Joined: 21 Oct 2009 15: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: 17087
Joined: 21 Oct 2009 15:08
Location: Россия

Re: ZX Spectrum в proteus

Post by Lavr »

Lavr wrote:
0iStalker wrote:Ну и ещё почему-то данные записываются по снятию /WE, а не по установке.
...данные и должны записываться
по снятию /WE, поскольку именно в этот момент данные максимально устойчивы после
возможных переходных процессов.
Я сегодня совершенно по другому поводу смотрел диаграммы записи в память, так данные записываются,
действительно, по снятию /WE, поскольку именно в этот момент данные максимально устойчивы.

WE.gif
WE.gif (9.85 KiB) Viewed 13702 times

DS2064-200_and_DS2064S-200.pdf
(79.25 KiB) Downloaded 634 times

iLavr
Cyrix
Junior
Posts: 3
Joined: 30 Dec 2022 03:07

Re: ZX Spectrum в proteus

Post by Cyrix »

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

Re: ZX Spectrum в proteus

Post by Cyrix »

Почему изображение в RGBIOUT может ехать на верх?
Attachments

Setka.zip
(126.08 KiB) Downloaded 395 times

Cyrix
Junior
Posts: 3
Joined: 30 Dec 2022 03:07

Re: ZX Spectrum в proteus

Post by Cyrix »

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

Re: ZX Spectrum в proteus

Post by Lavr »

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

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

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