Эмуляция дисковода

Wishlist for users

Postby Faster » 03 Apr 2014, 15:39

Deathsoft, мы с тобой эту тему обсуждали в свое время, поэтому в новой версии Unreal'а прошу реализовать следующее:

Согласно документации:
Восстановление 0000hvxx - команда восстановления используется для инициализации микросхемы КР1818ВГ93, обеспечивая установку магнитной головки выбранного дисковода в исходное состояние (на нулевую дорожку). Команда имеет следующие параметры:
h - бит определяет положение магнитной головки дисковода во время выполнения команды. Если он обнулен, то головка поднята, если установлен - находится в рабочем положении (опущена на дискету). Следует учитывать, что при h=0, контроллер не выдает сигнал на включение двигателя дисковода.

Во всех эмуляторах ВГ-шка так и эмулируется, но:
Сообщение от Blade
Это дисковод не включается, а ВГ93 команду выполняет. Выдает 256 импульсов "шаг"

Так вот, прошу в эмуляторе учесть этот момент и сделать эмуляцию физического дисковода, т.е. при выполнении команд с h=0 "мотор дисковода" не включать (тормозить), как это и происходило на физическом дисководе. После этого фикса заработают программы, в которых используется, как пример, процедура гашения лампочки дисковода (торможение диска), которые на данный момент работают только с включенной опцией No delays, например мой крек Satisfaction.
User avatar
Faster
 
Posts: 8
Joined: 23 Jun 2010, 10:17
Group: Registered users

Postby deathsoft » 05 Apr 2014, 22:14

Вот исправил, тестируй.

Проблема была совершенно не в эмуляции мотора дисковода (ноего я тоже проэмулировал). Суть проблемы я раскрывать не буду, а то авторы других эмулей тутже ее пофиксят. Ну и таки правильное отключение мотора дисковода - это 15 импульсов HTL через порт FF (этот сигнал подключен через диод ко входу индекса ВГ93), когда ВГ93 находится в состоянии ожидания команды, то мотор отключается через 15 оборотов диска, чтобы не зависеть от того вставлена дискета или нет индексные импульсы можно подавать вручную через сигнал HLT в порте FF (бит D3). При этом такой код абсолютно надежен в отличие от говнокода примененного в "турбо лоадере" сатисфэкшена.
Attachments
emul.rar
(491.82 KB) Downloaded 203 times
User avatar
deathsoft
 
Posts: 4666
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby fk0 » 05 Apr 2014, 23:19

А не моментальное выполнение команд ВГшкой хоть кто-то уже пофиксил? Ведь когда команду записываешь -- регистры обновляются (у ВГ) и оно исполняется не с первого такта.
* Origin: зип файл! (2:5030/1559)
User avatar
fk0
 
Posts: 1533
Joined: 07 Apr 2007, 01:08
Group: Registered users

Postby deathsoft » 05 Apr 2014, 23:41

fk0 wrote:А не моментальное выполнение команд ВГшкой хоть кто-то уже пофиксил? Ведь когда команду записываешь -- регистры обновляются (у ВГ) и оно исполняется не с первого такта.

Так когда не стоит галка "No Delays" в унриале, задержки эмулируются (но далеко не во всех местах, эмулируются только там, где были лоадеры который используют эти задержки).
User avatar
deathsoft
 
Posts: 4666
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby Faster » 06 Apr 2014, 10:08

deathsoft wrote:Вот исправил, тестируй.

Спасибо! Теперь Satisfaction грузится без проблем. Попутно погонял еще Refresh, Insult, Eye Ache 2, Unreal. Почему-то Unreal стал зависать после надписи "Are you not sleep???". В паблик версии 0.38.1 такого не происходит.

deathsoft wrote:Проблема была совершенно не в эмуляции мотора дисковода (ноего я тоже проэмулировал). Суть проблемы я раскрывать не буду, а то авторы других эмулей тутже ее пофиксят. Ну и таки правильное отключение мотора дисковода - это 15 импульсов HTL через порт FF (этот сигнал подключен через диод ко входу индекса ВГ93), когда ВГ93 находится в состоянии ожидания команды, то мотор отключается через 15 оборотов диска, чтобы не зависеть от того вставлена дискета или нет индексные импульсы можно подавать вручную через сигнал HLT в порте FF (бит D3). При этом такой код абсолютно надежен в отличие от говнокода примененного в "турбо лоадере" сатисфэкшена.

Ну, насчет говнокода я бы поспорил, конечно. )) На реале алгоритм работает четко! А то, что он не работает на эмуляторах, так это косяк эмуляторов! ИМХО.
User avatar
Faster
 
Posts: 8
Joined: 23 Jun 2010, 10:17
Group: Registered users

Postby lvd » 06 Apr 2014, 10:57

deathsoft wrote:Суть проблемы я раскрывать не буду, а то авторы других эмулей тутже ее пофиксят.

Faster wrote:Почему-то Unreal стал зависать после надписи "Are you not sleep???".

Бугага.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7227
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby deathsoft » 06 Apr 2014, 22:16

Faster wrote:На реале алгоритм работает четко!

Будет ВГшка хоть чуть с другими таймингами и ничего работать не будет, алгоритм завязан на конкретную nmos ВГшку чуть менее чем совсем (потактово). Тот алгоритм, который описал я, работает с любыми таймингами, хоть в режиме ноделэйс.
User avatar
deathsoft
 
Posts: 4666
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby Александр Бухаров » 08 Apr 2014, 02:21

deathsoft wrote:Так когда не стоит галка "No Delays" в унриале, задержки эмулируются (но далеко не во всех местах, эмулируются только там, где были лоадеры который используют эти задержки).

У Кворума CP/M отвалился.

Еще такую фишку заметил:
Есть старый эмуль версии 0.2 у того норм диск загружается.
а есть современный 38.ххх у него появляется кант реад диск...
хотя там и там диск один и тот же...

образ цепанул к сообщению
Attachments
basi_2014-04-08_05-32-21.zip
образ васика с CP/M Кворума, сдернутый самолично с дискеты.
(172.39 KB) Downloaded 211 times
Александр Бухаров
 
Posts: 16
Joined: 29 Jul 2010, 05:28
Group: Registered users

Postby deathsoft » 15 Apr 2014, 21:07

Faster wrote:Почему-то Unreal стал зависать после надписи "Are you not sleep???". В паблик версии 0.38.1 такого не происходит.

Исправил, проверяй.
Attachments
emul.rar
(491.49 KB) Downloaded 205 times
User avatar
deathsoft
 
Posts: 4666
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby Faster » 17 Apr 2014, 11:53

Проверил, все работает! Респект! )
User avatar
Faster
 
Posts: 8
Joined: 23 Jun 2010, 10:17
Group: Registered users

Next

Return to Предложения

Who is online

Users browsing this forum: No registered users and 0 guests