в унриле не слышу музыки почему?
в унриле не слышу музыки почему?
С уважением,
Jerri / Red Triangle.
С самого начала? Странно, только что прокрутил - всё отлично. В unrealfix.
Пак приложил. Только включи режим "Slow all" и для полного эффекта реального спека сними галочку быстрой загрузки. Хотя и быстрой загрузкой будет работать. Дема делалась на реальном Пентагон 1024.
вероятность попадания в мёртвую зону снижает (например начали играть музыку, а в это время пошли данные), сырые данные - это около 10-12 байт дорожки, стандартное проигрывания - от 30 до 100 байт дорожки; первое легко укладывается в межсекторный промежуток; второе - с большим трудом (если укладывается вообще).
вот я буквально неделю назад, кстати, проверял на реале турболоадер с им2, прерывание состояло только из jp #3d2f (в озу), анализировал я потом разрешенные ли прерывания и была ли ошибка. так вот, ошибка чтения гарантированно проявлялась! в среднем где-то 0.5-1 раз в секунду, не успевал прочитать байт, даже при таком сверхкоротком прерывании. нанотехнологии не прокатили
работает это, конечно, быстрее, чем когда музыка на прерываниях висит, но загрузку все же подтормаживает.
имхо, здесь играет вероятность, можешь попасть в промежуток, а можешь не попасть... текущий сектор так и так мимо. пытайся следующий читать, или через один. итог-то будет такой, что на 0.1% станет быстрее
Либо ты чего то не знаешь, либо у тебя глюки с ПЗУ.
У меня не было никаких ошибок, я там таймеры запускал и ещё чего то... около 70-80 тактов легко проходило в безошибочное чтение. Может ты криво регистр состояния опрашивал? Может быть ты где то основные регистры процессора терял?
---------- Post added at 11:16 ---------- Previous post was at 11:05 ----------
Фишка в том, что прерывания приходят 50 раз в секунду (может не 50, каждые раз одинаково так), а вот диск вращается чуть медленнее чем 5 раз в секунду или чуть быстрее - прерывание и вращение диска происходят несинхронно; однозначно придётся ждать следующего оборота диска если прерывание пришло на чтение сектора; но если смещение чтения дорожки на диске относительно прерывания составляет например 10 байт на прерывание, то через 1, максимум через 2 прерывания, используя быстрое проигрывание аука ты прочитаешь всю дорожку в 3 оборота (1й fault, 2й fault, 3й ok), а если у тебя процедура проигрывания занимает эквивалент процессорного времени в 60 байт чтения с диска, то ждать ты будешь минимум 6 оборотов на этот сектор, т.е. как хотя бы в 2 раза дольше, а то и больше. А есть ещё фактор попадания в центр сектора, с длинным прерывание придётся ждать долго пока сектор "вылезет" из мёртвой зоны; и редкая, но возможная ситуация, когда чтение сектора прервалось на последних байтах и длинная процедура проигрывания закрыла в т.ч. начало следующего сектора, а программа то задала его чтения и придётся ждать целый оборот, пока оно отработает.
Тут в соседней ветке TmK скрутил музон в 1000 тактов... вот ему респект и уважуха, думаю теперь как к себе прикрутить это...
---------- Post added at 11:53 ---------- Previous post was at 11:16 ----------
0,5-1 раз в секунду - это раз в 5 или 10 логических дорожек для турболоадера... В View у меня есть режим отключение музона... ха... смотрю код, там почему то Im1 стоит... видимо решил перестраховаться.... жаль что реал далеко... хочется проверить... Пока мне крыть нечем :-(
давай так. ты напишешь лоадер, который будет грузить дорожку за один оборот и при этом юзать им2. т.е. никаких ошибок быть не должно (при ошибке, например, мигай бордером). а я проверю это у себя на реале и тогда я признаю, что я чего-то не знал и не прав
ты описываешь один случай лоадера, а логика у них может быть очень даже разная: либо последовательно читает сектора, либо читает те, которые успеет, вразнобой. и время будет разное для разных случаев (где-то и получится тот самый 0.1%). а еще учти, на тех компах, где инт 50 гц, прерывание будет долгое время попадать на один и тот же сектор (ибо 300 об/м и 50 гц кратны). именно поэтому в среднем на пентагоне грузятся быстрее лоадеры с музыкой.
мне кажется или кто-то наврал?
Давайте вспомним Refresh. Там порядок следования секторов был свой, чтобы нормально получалась схема (прочитал-проиграл).
Также форматилки предлагают вроде порядок следования секторов 1-2-3-4..15-16 или 1-9-2-10-3-11..-8-16, а также смещение следующей дорожки на какоето число (если на 2, то 3-4-5-6..16-1-2 и для интерлива 3-11-4-12...1-9-2-10)
Интерлив как раз помогал читать сектора без пропуска оборота на "тормозных дисководах"(вроде), без интерлива ускоряло загрузку на "нормальных дисководах", а смещение помогало читать начинать следующую дорожку без пропуска оборота (подборка смещения обеспечивало необходимое время на перемещение головки)
честно говоря не помню что было принято за основу в trdos и что предлагали форматтеры (про интерлив).
Но если вы хотите чтобы ваша процедура точно грузила, реформат диска делать придется как ни крути.
2psb как раз в твоем случае сектора идут 1-2-3-4 и видимо не всегда успевают прочитаться и даже прерывания тут не при чем, а скорее завышенная скорость вращения диска (при чтении все норм, а вот подготовительные процедуры не всегда успевают).
Либо вариант2
Где то видел идею, что сначала определяем тип того как отформатирован диск, потом при чтении читаем сектора не подряд а так чтобы успевала схема читаем-играем музу. Вот только где не припомню...
И очень интересно - на эмуле я так понимаю все это нереально тестить?
Pentagon1024sl2.2/TSFM/Z-Controller/GS128Kb/HDD/CDROM/Palcoder
жыл был кот... дискуссия не получилась...
Еще раз прочитай что ты написал и что я, я уточнил что многого не помню, и попытался факты сказать которые более менее в памяти остались.
Сказки это не факты, это народное творчество...
Если ты какую то аксиому высказал а я ее не понял, извини, тока я так и не понял что ты хотел сказать/спросить?
Pentagon1024sl2.2/TSFM/Z-Controller/GS128Kb/HDD/CDROM/Palcoder
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)