User Tag List

Показано с 1 по 8 из 8

Тема: Некорректная эмуляция ВГ93 в UNREAL SPECCY?

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    193
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Некорректная эмуляция ВГ93 в UNREAL SPECCY?

    Заметил что SMASH COMMANDER не способен установить вращение диска в UNREAL SPECCY. (такая же картина и в EmulZWin, а в Spectaculator это работает нормально. На реале тоже работало).

    Посмотрел код где всё это происходит.

    Вот процедура из SMASH COMMANDER определяющая наличие диска в дисководе:

    (с комментами)

    Код:
    Процедура вызова дос-подрограмм, она
    будет использоваться:
    
    #8dc5: push de
           jp #3d2f
    
    
    Процедура определения наличия диска
    в дисководе. 
    (На выходе флаг Z - диска нет).
    
           ld a,#08
           di
           ld de,#2fc3 ; адрес процедуры дос: out(1f),a:ret
           call #8dc5  ; даем команду ВГ93 с кодом 8.
                         не помню что это, по-моему 
                         это "восстановление"
                        (головка идет на нулевой трек).
           ld de,#3dba ; адрес процедуры дос: 
           ld b,#ff      in a,(1f): and 02: cp b: ret nz
           call #8dc5  ; считываем 1-й бит порта #1F.
           ld (#a293),a ;запоминаем его.
           ld de,0
           ld bc,#1770  устанавливаем счетчик цикла.
    a25e:  push de    ; начало цикла
           push bc
           ld a,#08
           ld de,#2fc3
           call #8dc5  ; даём команду ВГ93 с кодом 8
           ld de,#3dba
           ld b,#ff
           call #8dc5  ;  считываем бит 1 из порта #1F.
           and 02  ;дальше какие-то сравнения - это не важно
           pop bc       
           pop de
           ld h,a          
           ld a,(#a293)        
           xor h               
           and h               
           and #02
           rra
           ld l,a
           ld a,h
           ld (#a293),a
           ld h,0
           add hl,de
           ex de,hl
           ld a,d
           or e        ; если зафиксировали смену бита 1
           jr nz,#a28f ; то выходим.
           dec bc
           ld a,b
           or c
           jr nz,#a25e ; иначе переходим на начало цикла
    a28f:  ld a,d
           or e
           ei
           ret
    Вот такая вот процедурка. Есть там много лишних команд, но самое главное - там в каждом цикле проверки бита 1 дается команда 8 в порт 1F ВГ93. Команда эта нафиг не нужна, но похоже именно из-за неё SMASH коммандер не может определить наличие диска в UNREAL SPECCY. На реале она не мешала, а в эмуляторе мешает. Если удалить эту команду (забить call нулями), то SMASH коммандер начинает обнаруживать диск и работает нормально (вроде. По крайней мере определение диска работает).
    В общем, видимо посыл команды к ВГ93 влияет на эмулирование вращения диска в UNREAL SPECCY.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Порт Unreal Speccy под Linux!
    от ^m00h^ в разделе Эмуляторы
    Ответов: 63
    Последнее: 24.07.2025, 01:02
  2. Настройщик Unreal Speccy
    от Dr.Lion/RSM в разделе Эмуляторы
    Ответов: 97
    Последнее: 03.03.2008, 14:12
  3. Эмуляция Speccy на Nintendo DS
    от max_iwamoto в разделе Эмуляторы
    Ответов: 10
    Последнее: 23.02.2007, 21:27
  4. unreal speccy beakpoints
    от Raider в разделе Эмуляторы
    Ответов: 2
    Последнее: 10.07.2005, 23:13

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •