PDA

Просмотр полной версии : T80 и DIVMMM, я в тупике :(



ILoveSpeccy
09.12.2013, 16:25
Появилось на работе немного времени и решил прицепить к спеку на VHDL хвалёный VELESOFTом девайс DIVMMC. Пишу как всегда в ActiveHDL.
Короче, для тестов подрубил к DIVMMC ROM от FATWare0.12. Всё работает как надо. При включении появляется картинка и попытка найти IDE девайсы не удаётся (ещё бы, на портах пока заглушка). Но пока всё ок. Меняю прошивку на ESXMMC (ESXDOS for DIVMMC) и вот тут начинаются проблемы. Чтобы понять, где клинит, сравнил трассировку спека на VHDL с тассировкой в эмуле ZXSpin. Короче выяснилось следующее:
Обработка косячной последовательности кода в ZXSpin выглядит так:

... Flags = 00010000
FD CB 01 4E BIT1,(IY+$01) Flags = 01011100
20 14 JR NZ, $0B1D
прыжка нет, идём дальше
....
А вот T80 делает вот что:

... Flags = 00010000
FD CB 01 4E BIT1,(IY+$01) Flags = 00010000
20 14 JR NZ, $0B1D
и конечно же прыгает на 0B1D
....
Что за фигня такая? Почему флаги не выставляются?
Я в программировании Z80 полный ноль, поэтому выручайте ;)

---------- Post added at 13:25 ---------- Previous post was at 13:13 ----------

Откопал кой чего...

There are the following prefixes: CBh, EDh. DDh. FDh. DDCBh and FDCBh.
Prefixes change the way the following opcodes are interpreted.

All instructions without a prefix (without anything like the above before it) are documented in the official documentation.
Получается это недокументированая инструкция и T80 её не обрабатывает? Как проверить?

ILoveSpeccy
09.12.2013, 16:57
ILoveSpeccy, мало конкретики. Ссылки на исходники (листинг) ПО, Soft-Core, схемы, описание можно?
Исходников никаких нет. Только официальные бинарника. Схемы тоже как таковой нет. Пользуюсь только инфой и помощью VELESOFTа.

Не посоветуешь простой CPU для периферии? Есть идея, сделать портируемый модуль для встраивания в разные конфигурации. Задача модуля - эмуляция и работа с образами TRD, UDI, FDI, SCL, TAP... виртуальной периферии FDD, HDD...
Могу прислать исходники своего SoC на MIPS. + GCC (c,c++ и newlib) под винду. Всё пашет как часы, и скорость хорошая. Около 2000LE's нужно только.

Какая версия ядра Т80?
303

---------- Post added at 13:57 ---------- Previous post was at 13:35 ----------


Mike's в своем проекте ZX Spectrum on FPGA (http://www.mike-stirling.com/retro-fpga/zx-spectrum-on-an-fpga/) использовал ZXMMC+ (http://www.zxbada.bbk.org/zxmmcp/). Ссылки на исходники есть.
ZXMMC мне не нужен. Он мне не нравится, пробовал. DIVMMC это другое дело, но и работает он по-другому. Это как-бы смесь DIVIDE с ZXMMC. Я нашел только один проект где DIVMMC реализован. Это проект Alessandros Spectrum Emulator для V6Z80P, но сырки он зажимает (на Email не отвечает). Так что придется самому добить.

ILoveSpeccy
09.12.2013, 16:58
з.Ы. Vlad, чего ты пишешь посты и удалаешь их сразу? :)

ILoveSpeccy
09.12.2013, 17:06
Вот тут немного есть по DIVMMC [1 (http://aticatac.altervista.org/portale/?q=node/3)].
Не, тут нифига нет. Первым делом смотрел тут. Да дело вроде не в железе. Я 50 раз перепроверил точки входа, порты и т.д. Да и трассировка первые 50000 тактов 1 в 1 с ZXSpin, а траблы именно на этой команде (FDCBxx4E).

VELESOFT
09.12.2013, 20:18
May be here: (not tested)
http://retrolandia.net/foro/showthread.php?tid=75

VHDL code (source of ZXMMC) exist, but old slow version. ZXMMC and DIVMMC use identical access to SD card. Only numbers of both I/O ports are different on DIVMMC. I plan implement DIVMMC in my new MULTIINTERFACE, but this is now in development, need time.

ILoveSpeccy
09.12.2013, 22:54
Спасибо всем за советы, разобрался. Не знаю в чём конкретно дело. Короче в железе всё работает а в ActiveHDL нифига хотя обычно как раз наоборот :D

---------- Post added at 19:54 ---------- Previous post was at 18:16 ----------

Заработало!!!
TRDOS пока не проверял, но тапы уже грузятся.

Отдельное спасибо VELESOFT за помощь и информативный сайт!

shurik-ua
10.12.2013, 00:43
А какую версию Т80 ты использовал ?
Мы с Владом как-то тестировали корки Т80 тестом Zexall, так вот поначалу у нас была какая-то старая версия, потом Влад откопал самую последнюю 247 версию то ли на сайте Caro, то ли на msx.org - которая полностью проходит тест.

p.s. на всякий случай прикрепил.

ILoveSpeccy
22.03.2014, 09:52
ILoveSpeccy,
Выложи пожалуйста для de2-115.
Спасибо.
Исходники приложил.
Как я уже писал, это черновик и как следствие, слабое подобие спека: 48К, кастрированный видеоконтроллер, нез звука. Но DivMMC работает. Я его перенесу в проект полноценного спека на Aeon.