Page 1 of 2

TheLink + PentEvo

PostPosted: 09 Sep 2010, 18:55
by breeze
Столкнулся с интересной проблемой, вещь конечно специфичная, но однако имеет место быть…

Как известно дема от AlCo - The Link использует все прелести NeoGS, в том числе и DMA. Так вот есть некоторый проблем, если во время эффекта (который использует DMA) нажать софт ресет, то PentEvo зависает в дупель. Видимо NeoGS толи подвешивает шину, то ли сам PentEvo что-то хочет от NeoGS, но в любом случае висяк 100% :wow2:
Помогает только HardReset с полной перезагрузкой :yes:

p.s. пробовал на разных частях в деме, эффект - всегда одинаков = матрасег и висим :crazy:

Re: TheLink + PentEvo

PostPosted: 09 Sep 2010, 20:09
by savelij
Баян однако. Это вешается не выключенный ДМА на нгсе.

Re: TheLink + PentEvo

PostPosted: 10 Sep 2010, 10:46
by breeze
Байан-то байян, но солющен-то где ?

Re: TheLink + PentEvo

PostPosted: 10 Sep 2010, 12:57
by lvd
Пусть алко пофиксит дему, чтобы по таймауту дма выключалось.

Re: TheLink + PentEvo

PostPosted: 10 Sep 2010, 14:43
by breeze
lvd wrote:Пусть алко пофиксит дему, чтобы по таймауту дма выключалось.


эээ… как мне кажется тут дело не в AlCo. Его деме ресет нажали и остановили как бы выполнение кода.

или же ты предлагаешь внутри NeoGS вешать какой-то watchdog, который бы следил — «опаньки, а родительский процесс сдох, рубанука я DMA от греха подальше.»

как мне кажется не самое лучшее решение, гораздо эффективнее было бы что бы сам PentEvo при ресете сбрасывал DMA у NeoGS если то вдруг было установлено.

p.s. так же реквестирую пунктег «Reset NeoGS» в HE GLUCK RESET SERVICE, причём уже давно >_<"

Re: TheLink + PentEvo

PostPosted: 10 Sep 2010, 16:56
by lvd
дма в нгсе управляется исключительно нгсом. При том включенное дма отнимает у спецтрума его ПЗУ, подсовывая своё дмачное гогно. Так что да, внутри кода нгса надо делать таймаут (ну или вочдог, кому как больше нравиццо).
Заводить ресет спецтрума на ресет нгса идеологически неверно, хотя вон ЧРВ в последней ревизии жамперов понаставил. А заводить просто сигнал ресета спецтрума в ногу нгса местов нету на распиновке альтеры.

Re: TheLink + PentEvo

PostPosted: 10 Sep 2010, 17:16
by breeze
lvd wrote:дма в нгсе управляется исключительно нгсом.


поскольку документации как бэ нет, спорить не стану. однако, меня терзают смутные сомнения:

разве нельзя выполнить в раме ZX-Spectrum (без ПЗУ) такой кодэ?

Code: Select all
DMA_CST EQU #1F
        XOR A ;TURN OFF DMA MODE
        OUT (DMA_CST),A
        ;после этого ZX можно сбрасывать


если верить коду AlCo это должно отключить DMA ? Нэ ?

Re: TheLink + PentEvo

PostPosted: 10 Sep 2010, 18:15
by lvd
Это в раме НГСа можно выполнить. В раме спецтрума выполнять уже нечего, коль усер жамкнул на ресет.

Re: TheLink + PentEvo

PostPosted: 10 Sep 2010, 19:59
by breeze
lvd wrote:В раме спецтрума выполнять уже нечего, коль усер жамкнул на ресет.


эээ… ну вообще-то, при SoftReset очищается рама только 48к, остальные банки остаются не тронутыми, ну это так к слову.
а второй вопрос это был чисто пример кода, что нужно пульнуть 0 в порт #1F :)

Давай по-шагово разберём, что происходит с момента отпускания кнопки Reset и до запуска He Gluck, может всё-таки есть возможность втиснуться на одном из шагов и сбосить DMA ? может это возможно хардварно ?

p.s. и кстати куда пропал CHRV ? :vodka:

Re: TheLink + PentEvo

PostPosted: 11 Sep 2010, 06:12
by lvd
К слову, при ресете проц начинает выполняться с адреса 0, т.е. из ромы. А там рома выключена ДМОй нгса (дма оно для памяти НГСа, для спецтрума это подстановка байтов на чтение вместо ромы). И исполняется полная хрень.