Нет, не отсылает. Турболоадер стандартный: использует команду позиционирования (поиска дорожки), после чего читает сектор ну и тд. Почему в эмуле "головка дисковода" срывается как бешенная (на 0 трек?) я не понимаю пока.
Вид для печати
при переходе в трдос у скорпиона несколько необычная процедура для вг93 выполняется, без задержек (nodelay) она зависает...
---------- Post added at 23:30 ---------- Previous post was at 23:26 ----------
скорей всего загрузчик расчитывает на приход прерывания индексного отверстия, т.к. после отключения мотора диск все-еще крутится по инерции. нужно проверить, но похоже в эмуляторе вг93 эта инерция при отключении двигателя не предусмотрена и получается что индексное прерывание после отключения двигателя уже никогда не приходит...
Ну это просто максимализм у вас. Или всё или ничего. Я не настолько амбициозен, чтобы охватить "всё", включая самопальный клон клона Балтика, выпиленный лобзиком из металлолома в Урюпинске. Меня вполне устроил бы охват, скажем, 70-80 процентов парка машин.
Насколько я знаю, в данный момент не существует ни одной программы с мультиколором, которая работала бы на всех официальных версиях спектрума (48, 128, +2/+3), плюс, работала бы на основных клонах (в моём представлении, это - пентагон, профи, атм и скорпион). Программа, которая сможет работать с этим набором, будет, в моём представлении, решать эту задачу.
---------- Post added at 22:20 ---------- Previous post was at 22:19 ----------
Ёлки-палки, до чего же здорово! :)
Нее, дело не в этом. Сейчас проверил работу загрузчика в разных вариантах:
т.е. убрал команду прерывания выполнения команды. Turboloader работает нормально, только с какого-то фига "головка дисковода" таки лезет на 0 трек (с чего бы?) при выполнении первой команды связанной с портом ВГ-шки, в данном случае out (#7f),track. Но далее командой "позиционирование" возвращается на нужный трек и все ок.Код:xor a
out (#1f),a
ret
Собственно, дальше turboloader также работает нормально, возвращая "головку дисковода" на нужное место командой "позиционирование".Код:Здесь я несколько изменил процедуру, добавив ожидание выполнения команды:
xor a
out (#1f),a
#3fe5 in a,(#ff) - происходит позиционирование на 0 трек (с чего бы?)
and #c0
jr z,#3fe5
ret m
В связи с этим возникает вопрос: каким образом происходит эмуляция команды "восстановление" при условии того, что bit 3 (загрузка головки) в 0? На реале, чтобы диск раскрутился этот бит всегда должен быть в 1, собственно этим нулевым битом и происходит торможение и гашение лампочки. Следующий вопрос: что происходит в эмуляции ВГ-шки, после выполнения команды "прерывание выполнения предыдущей команды"? Что там с сигналами intrq и drq? Почему после выполнения последовательности
приходит "капец"?Код:xor a
out (#1f),a
ld a,#d0
out (#1f),a
Чего же тут здорового? )) Это наоборот печаль.
Если под основными клонами вы имеете в виду то же самое, что и ранее в обсуждении ("тиражные машины") -- то я убежден, что это не пентагон, профи, атм и скорпион, к тому же в точности соответствующие некому эталону. Это машины на схемах второго поколения (скажем так) -- уже экономичные (40-50 корпусов), но еще без наворотов. Именно они разошлись по всей стране гигантским тиражом в виде самоделок и изделий разных кооперативов и МП (вполне возможно речь идет о миллионах экземпляров).
Просто от того, что вы по каким-то непонятным причинам не верите в существование машин с 216 или 256 тактами в строке (http://zx.pk.ru/showpost.php?p=589535&postcount=13) они не перестают существовать. Наверняка были/есть машины с хорошо реализованной кадровой 60 Гц -- там тактов в строке может быть еще больше.
Не должна! Т.к. bit 3 нулевой. На этом и построена процедура гашения лампочки дисковода/торможение диска.
Цитата:
Восстановление 0000hvxx - команда восстановления используется для инициализации микросхемы КР1818ВГ93, обеспечивая установку магнитной головки выбранного дисковода в исходное состояние (на нулевую дорожку). Команда имеет следующие параметры:
h - бит определяет положение магнитной головки дисковода во время выполнения команды. Если он обнулен, то головка поднята, если установлен - находится в рабочем положении (опущена на дискету). Следует учитывать, что при h=0, контроллер не выдает сигнал на включение двигателя дисковода.
Источник: А. Ларченко, Н. Родионов. "ZX-Spectrum & TR-DOS Для пользователей и программистов", с.203
Это дисковод не включается, а ВГ93 команду выполняет. Выдает 256 импульсов "шаг".
http://i230.photobucket.com/albums/e...x256screen.jpg
попробую объяснить словами.
жёлтая полоса идёт 8?пикс. до экрана и 104 дальше.
её высота сбоку экрана 6пикс.
квадраты получаются шириной 24, высотой 23
в ширину у меня экран целиком на монитор не влазит, но я могу его двигать.