Важная информация

User Tag List

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 97

Тема: Точное описание задержек Скорпиона

  1. #41
    Member Аватар для Faster
    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Faster, а команду восстановление Турболоадер отсылает?
    Нет, не отсылает. Турболоадер стандартный: использует команду позиционирования (поиска дорожки), после чего читает сектор ну и тд. Почему в эмуле "головка дисковода" срывается как бешенная (на 0 трек?) я не понимаю пока.
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  2. #42
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,405
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    это я понимаю. Тут важен сам факт, что эмуль висит при переходе в ТРДОС, даже без образа диЦкеты. Или мы разные эмуули запускаем, вот в чОм вопрос....
    при переходе в трдос у скорпиона несколько необычная процедура для вг93 выполняется, без задержек (nodelay) она зависает...

    ---------- Post added at 23:30 ---------- Previous post was at 23:26 ----------

    Цитата Сообщение от Faster Посмотреть сообщение
    Сейчас более досконально проанализировал работу загрузчика. В общем, в процедуре гашения лампочки дисковода (торможение диска) используется вот такой вот алгоритм:
    Код:
    xor a - гасим лампочку, bit 3 загрузки головки выставляем в 0
    out (#1f),a
    ld a,#d0 - принудительно прерываем выполнение команды
    out (#1f),a
    ret
    Далее, когда загрузчик пытается загрузить новую часть демо, то turbo loader виснет на процедуре #3fe5 при чтении порта #ff в ожидании сигнала intrq, судя по всему. Вроде бы так. Это актуально для эмулятора Unreal, но, судя по всему и для ZXMAK2 тоже.
    скорей всего загрузчик расчитывает на приход прерывания индексного отверстия, т.к. после отключения мотора диск все-еще крутится по инерции. нужно проверить, но похоже в эмуляторе вг93 эта инерция при отключении двигателя не предусмотрена и получается что индексное прерывание после отключения двигателя уже никогда не приходит...
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  3. #43
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AM Посмотреть сообщение
    Автору темы -- небольшое дополнение относительно кол-ва тактов в строке. Нисколько не удивлюсь, если есть или были машины и с 256 тактами на строку, о чем тут вроде никто не говорил.
    Ну это просто максимализм у вас. Или всё или ничего. Я не настолько амбициозен, чтобы охватить "всё", включая самопальный клон клона Балтика, выпиленный лобзиком из металлолома в Урюпинске. Меня вполне устроил бы охват, скажем, 70-80 процентов парка машин.

    Насколько я знаю, в данный момент не существует ни одной программы с мультиколором, которая работала бы на всех официальных версиях спектрума (48, 128, +2/+3), плюс, работала бы на основных клонах (в моём представлении, это - пентагон, профи, атм и скорпион). Программа, которая сможет работать с этим набором, будет, в моём представлении, решать эту задачу.

    ---------- Post added at 22:20 ---------- Previous post was at 22:19 ----------

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    скорей всего загрузчик расчитывает на приход прерывания индексного отверстия, т.к. после отключения мотора диск все-еще крутится по инерции. нужно проверить, но похоже в эмуляторе вг93 эта инерция при отключении двигателя не предусмотрена и получается что индексное прерывание после отключения двигателя уже никогда не приходит...
    Ёлки-палки, до чего же здорово!

  4. #44
    Member Аватар для Faster
    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    скорей всего загрузчик расчитывает на приход прерывания индексного отверстия, т.к. после отключения мотора диск все-еще крутится по инерции. нужно проверить, но похоже в эмуляторе вг93 эта инерция при отключении двигателя не предусмотрена и получается что индексное прерывание после отключения двигателя уже никогда не приходит...
    Нее, дело не в этом. Сейчас проверил работу загрузчика в разных вариантах:
    Код:
    xor a
    out (#1f),a
    ret
    т.е. убрал команду прерывания выполнения команды. Turboloader работает нормально, только с какого-то фига "головка дисковода" таки лезет на 0 трек (с чего бы?) при выполнении первой команды связанной с портом ВГ-шки, в данном случае out (#7f),track. Но далее командой "позиционирование" возвращается на нужный трек и все ок.
    Код:
    Здесь я несколько изменил процедуру, добавив ожидание выполнения команды:
    
    	xor a
    	out (#1f),a
    #3fe5	in a,(#ff) - происходит позиционирование на 0 трек (с чего бы?)
    	and #c0
    	jr z,#3fe5
    	ret m
    Собственно, дальше turboloader также работает нормально, возвращая "головку дисковода" на нужное место командой "позиционирование".

    В связи с этим возникает вопрос: каким образом происходит эмуляция команды "восстановление" при условии того, что bit 3 (загрузка головки) в 0? На реале, чтобы диск раскрутился этот бит всегда должен быть в 1, собственно этим нулевым битом и происходит торможение и гашение лампочки. Следующий вопрос: что происходит в эмуляции ВГ-шки, после выполнения команды "прерывание выполнения предыдущей команды"? Что там с сигналами intrq и drq? Почему после выполнения последовательности
    Код:
    xor a
    out (#1f),a
    ld a,#d0
    out (#1f),a
    приходит "капец"?

    Цитата Сообщение от introspec Посмотреть сообщение
    Ёлки-палки, до чего же здорово!
    Чего же тут здорового? )) Это наоборот печаль.
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  5. #45
    Activist
    Регистрация
    16.03.2008
    Адрес
    Izhevsk
    Сообщений
    206
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от introspec Посмотреть сообщение
    Ну это просто максимализм у вас. Или всё или ничего. Я не настолько амбициозен, чтобы охватить "всё", включая самопальный клон клона Балтика, выпиленный лобзиком из металлолома в Урюпинске. Меня вполне устроил бы охват, скажем, 70-80 процентов парка машин.

    Насколько я знаю, в данный момент не существует ни одной программы с мультиколором, которая работала бы на всех официальных версиях спектрума (48, 128, +2/+3), плюс, работала бы на основных клонах (в моём представлении, это - пентагон, профи, атм и скорпион). Программа, которая сможет работать с этим набором, будет, в моём представлении, решать эту задачу.
    Если под основными клонами вы имеете в виду то же самое, что и ранее в обсуждении ("тиражные машины") -- то я убежден, что это не пентагон, профи, атм и скорпион, к тому же в точности соответствующие некому эталону. Это машины на схемах второго поколения (скажем так) -- уже экономичные (40-50 корпусов), но еще без наворотов. Именно они разошлись по всей стране гигантским тиражом в виде самоделок и изделий разных кооперативов и МП (вполне возможно речь идет о миллионах экземпляров).

    Просто от того, что вы по каким-то непонятным причинам не верите в существование машин с 216 или 256 тактами в строке (http://zx.pk.ru/showpost.php?p=589535&postcount=13) они не перестают существовать. Наверняка были/есть машины с хорошо реализованной кадровой 60 Гц -- там тактов в строке может быть еще больше.

  6. #46
    Master
    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Faster Посмотреть сообщение
    Turboloader работает нормально, только с какого-то фига "головка дисковода" таки лезет на 0 трек (с чего бы?)
    А разве не должна?
    Команда "восстановление" осуществляет позиционирование на дорожку 0. Если через 256 шагов сигнал TR00 не появится, то команда перкращает работу.

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

  8. #47
    Member Аватар для Faster
    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Blade Посмотреть сообщение
    А разве не должна?
    Не должна! Т.к. bit 3 нулевой. На этом и построена процедура гашения лампочки дисковода/торможение диска.

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

    Источник: А. Ларченко, Н. Родионов. "ZX-Spectrum & TR-DOS Для пользователей и программистов", с.203
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  9. #48
    Master
    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это дисковод не включается, а ВГ93 команду выполняет. Выдает 256 импульсов "шаг".

  10. #49
    Master
    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AM Посмотреть сообщение
    Если под основными клонами вы имеете в виду то же самое, что и ранее в обсуждении ("тиражные машины") -- то я убежден, что это не пентагон, профи, атм и скорпион, к тому же в точности соответствующие некому эталону.
    Возражение очень серьёзное, я сам много лет сидел на Дельте-С.

    К сожалению, наш разговор, в целом, беспредметный. Если у меня получится доделать мой софт - будем говорить предметно. Если не получится - ну, тоже всё понятно будет. Так, наверное, проще и честнее.

  11. #50
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,767
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    1,173
    Поблагодарили
    770 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию mctest2 на `зелёном` скорпе



    попробую объяснить словами.

    жёлтая полоса идёт 8?пикс. до экрана и 104 дальше.
    её высота сбоку экрана 6пикс.
    квадраты получаются шириной 24, высотой 23

    в ширину у меня экран целиком на монитор не влазит, но я могу его двигать.

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 30
    Последнее: 16.08.2011, 21:13

Ваши права

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