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

Wishlist for users

Postby deathsoft » 17 Apr 2014, 22:45

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

Не работает, т.к. пишет в порт 0x85 невалидную комбинацию выбора диска (00), хотя должен писать (01).
Порт управления дисководом:
CP/M-80
Адрес 85H (A4,A3,/IORQ = 0; A7,A2 = 1)
Назначение разрядов порта (только запись):
D1,D0 - Биты выборки FDD
01 - выборка устройства A:
10 - выборка устройства B:

TRDOS:
Адрес 0FFh (/IORQ = 0; A7,A0 = 1)
Запись:
D1,D0 - Адрес выбранного дисковода
00 - выборка устройства A:
01 - выборка устройства B:
10 - выборка устройства C:
11 - выборка устройства D:
User avatar
deathsoft
 
Posts: 4652
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby fk0 » 17 Apr 2014, 23:06

Ты мыслишь как программист. При записи 00 небось работают два дисковода впараллель. У не-программистов.
* Origin: зип файл! (2:5030/1559)
User avatar
fk0
 
Posts: 1532
Joined: 07 Apr 2007, 01:08
Group: Registered users

Postby deathsoft » 17 Apr 2014, 23:29

Похоже еще в унриале какаято проблема из за изменений со стартом/стопом мотора.
User avatar
deathsoft
 
Posts: 4652
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 17 Apr 2014, 23:33

Вот лог аутов в порт 85
Code: Select all
out85(85,0)
WD1793::out(FF, 13)
out85(85,21)
WD1793::out(FF, 30)
out85(85,0)
WD1793::out(FF, 13)


В кворуме используется "усовершенствованный" контроллер дисковода, не совместимый со стандартным betadisk контроллером (совершенно по другому сделана схема управления мотором дисковода). В кворуме бит D5 порта 85(FF) трдоса управляет включением/выключением мотора дисковода, при этом автоматическое включение/выключение мотора от ВГ93 не используется. Во всех командах ВГ93 где есть бит H - загрузка головки в биосе кворума стоит ноль, т.е. головка не загружена, в обычном трдос контроллере это означает, что мотор дисковода выключен, и в новых версиях унриала именно это поведение и реализовано. Далее, если мотор дисковода не крутится, то в порте 1F (регистр статуса ВГ93) выставлен старший бит, который означает, что дисковод не готов. Биос кворума этот бит опрашивает, предварительно включив мотор дисковода через бит D5 порта 85, но не подав ни одной команды на ВГ93. В новых версиях унриала при этом мотор дисковода не работает, т.к. реализован стандартный трдос контроллер.

В тестовой версии, я сделал костыль (запретил отключение мотора дисковода), если установлен бит D5 порта 85(FF). После этого cp/m для кворума, который давал мне caro стал грузится, а диск с бейсиком все равн оне работает, стартует частично (рисует картинку) а потом пишет can't read disk.
User avatar
deathsoft
 
Posts: 4652
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 07 Jun 2014, 13:17

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

Опробуй вот эту версию http://dlcorp.nedopc.com/download/file.php?id=2610
(в .ini файле обязательно в разделе [BETA128] выставить Traps=0 Fast=0).
User avatar
deathsoft
 
Posts: 4652
Joined: 07 Apr 2007, 00:58
Group: Registered users

Previous

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

Who is online

Users browsing this forum: No registered users and 2 guests

cron