Просмотр полной версии : Загрузка с диска с включеным IM 2
Поделитесь, как обращаться к диску во время работы IM 2, и сколько фрейма остается после обращения.
Либо как играть музыку и грузить с диска (желательно пример)
Наиболее правильный драйвер диска + им2 - смотри демку Condommed
еще в GunMan я делал на его основе свой драйвер - можно поковырять
принцип работы следующий
на прерываниях висит следующего вида обработчик
ex af,af'
or b
jr z,play
ex af,af'
ei
jp #3d2f
play
ex af,af'
call old_im_proc
ei
jp #3d2f
и соответственно свой турбозагрузчик с диска
где после каждого считывания сектора
происходит что-то вроде
ex af,af'
or a
call nz,play
примерно так - точно сейчас не вспомню
доберусь до исходников скажу точнее
главное чтобы обработчик прерывания был минимальным
null_device
02.09.2010, 10:09
Пример работы в режиме IM2 из TR-DOS описывается на стр. 196, в книжке Ларченко-Родионова: "ZX Spectrum & TR-DOS для пользователей и программистов". Там описана программа часов. Вместо обработчика часов подставляется плейер, и вуаля! ;)
http://zxdn.narod.ru/coding/dv01im2t.txt
Все что я видел пока ковырял тыр-дос работает одинаково:
1. Обработчик IM2 заканчивается кодом EI:JP #3D2F
2. Турбо загрузчик перечитывает сектор если из-за проигрывания музыки сектор считать не удалось. (чтение/контроль регистра #1F)
Обязательно использовать свой турбозагрузчик?
---------- Post added at 12:00 ---------- Previous post was at 11:59 ----------
читать плохо будет
Почему плохо?
Обязательно использовать свой турбозагрузчик?
да, код в тыр-досе не умеет работать с IM2
Обязательно использовать свой турбозагрузчик?
Да
иначе могут быть проблемы когда ДОС полезет в Басик 48
Почему плохо?
вот начинает читаться сектор
---- а потом раз и прерывание
если оно короткое
типа EI:RET то проблем нет
продолжаем читать
-----------------------------
если вдруг проиграешь музыку - а это от 1000 тактов
то будешь ошибка чтения - начинаем читать сектор снова
на моем желтом скорпионе с 3.5 дисководом не читалась FOREVER
как раз изза этого
Сondommed читался на ура
jerri: ниасилил. это что за хитрый алгоритм в первом твоем посте?
Там не все :)
ищи На ВОС (ftp://ftp.worldofspectrum.org/pub/sinclair/trdos/games/Gunman.trd.zip)
смотри загрузчик
там сначала поиск нужных подпрограмм в ROM TR DOS
потом собственно подгрузка с диска с музыкой
Доберусь до дома скину исходник если найду :)
Во вложении имеется загрузчик из моей игры GunMan
загрузка с ProgressBar ом, под музыку, с возможностью быстро отключить все навороты.
к сожалению исходников сего действа найти не могу
так что только загрузчик в бинарнике и мои комментарии в текстовике рядом
Музыка в #c000
код загрузчика на #f800
соответственно грузим ниже #c000 :)
перед загрузкой происходит поиск подпрограмм в ПЗУ DOS
смотрим спрашиваем
Не пойму, чего вы тут мучаетесь. Вот, в исходниках.
http://opensourcezx.untergrund.net/e_misc-drbars_misc.html
jerri, я правильно понимаю, что твоим методом при загрузке темп музыки будет плавать? примерно в полпрерывания?
метод не мой :) Метод дернут из Condommed
да плавать будет - но это не критично и на слух незаметно
повторюсь - работает везде и всегда в отличие от метода использованного в Forever
повторюсь - работает везде и всегда
не работает на Байтах :) В свое время много пинков от RealSoft-a за турболоадеры получал :)
Да и сейчас, при отсутствии нормальных дискет и наличии винтов - думаю тема уже не актуальна, разве что для общего ознакомления.
Condommed (http://zxaaa.untergrund.net/get.php?f=DEMO/condomed.zip) на "байтах" тоже не работает?
кстати почему не работают?
---------- Post added at 21:56 ---------- Previous post was at 21:55 ----------
Condommed (http://zxaaa.untergrund.net/get.php?f=DEMO/condomed.zip) на "байтах" тоже не работает?
кстати почему не работают?
SoftLight
07.09.2010, 11:11
Еще в Outrun Europa (http://trd.speccy.cz/gamez/o/OUTRUN_3.ZIP) Олдман писал загрузчик, который долго пилил бедный диск под музыку :)
Еще в Outrun Europa (http://trd.speccy.cz/gamez/o/OUTRUN_3.ZIP) Олдман писал загрузчик, который долго пилил бедный диск под музыку :)
Если дисковод крутил медленно диск, то да, загрузка происходила очень медленно. Если крутил нормально, то он и грузил быстро. Такая штука была ещё в демах Insult и Unreal.
Вот именно что большинство ТАКИХ загрузчиков рассчитано на то чтобы играть музыку
потому и тормозят
Кондоммед рассчитан чтобы грузить и пофиг на плавающюю иногда музыку
не работает на Байтах :)
Откуда дровишки ? :eek:
p.s. Первая сборка Condommed тестировалась на моём байте лично Scratcher, RUM & Жорик (не помню точно как его ник пишется :rolleyes:)
в SE#2 хитрый лоадер тоже играл плавающе. но там была замута еще с 2мя заголовками сектора (думаю, что для синхры) и сектор в 512 байт (почти прерывание). грузилось быстро.
Condommed (http://zxaaa.untergrund.net/get.php?f=DEMO/condomed.zip) на "байтах" тоже не работает?
Ответил выше…
кстати почему не работают?
оно-то работает, но тормозит сама дема местами, по избитой до одури теме, вектор im2 кладётся в медленную память. Плюс конечно некоторые эффекты требовали максимум прерываний >71
Если дисковод крутил медленно диск, то да, загрузка происходила очень медленно. Если крутил нормально, то он и грузил быстро.
Ну да, а я то думал что он крутит с постоянной скоростью в 300 об/мин. Как же я ошибался...
Ну да, а я то думал что он крутит с постоянной скоростью в 300 об/мин. Как же я ошибался...
Возьми наш и настраивай как тебе угодно обороты.
Возьми наш и настраивай как тебе угодно обороты.
Это же шутка, да?
Это же шутка, да?
Попробуй. На буржуйских я такой приблуды не видел, а на наших пожалуйста. Это-же наши. Они как продукция АвтоВаза, требуют дополнительной настройки. :)
Keeper, есть подозрение, что Rindex отчасти прав (смена скорости позволит быстрее загружать).
Keeper, есть подозрение, что Rindex отчасти прав (смена скорости позволит быстрее загружать).
Блин, я говорю, что у меня было и как я это вылечил. Увеличил скорость вращения диска. Тик этого не умел, по-этому был продан (обороты были меньше и мне не улыбалось сидеть минут по 20-ть и ждать пока часть Инсульта загрузится). Сейчас другой Тик нормально всё читает.
Keeper, есть подозрение, что Rindex отчасти прав (смена скорости позволит быстрее загружать)
Тогда могу предложить использовать болгарку вместо мотора фдд для увеличения скорости загрузки, все таки 10К оборотов в минуту...
Тогда могу предложить использовать болгарку вместо мотора фдд для увеличения скорости загрузки, все таки 10К оборотов в минуту...
Ну когда сделаешь, фотку не забудь сделать этого девайса. :)
в SE#2 хитрый лоадер
SE #2 - Spectrum Expert? Надо будет глянуть что там и как...
Тогда могу предложить использовать болгарку вместо мотора фдд
смех смехом, но подумай, почему же на пентагоне с 71000 тактов загружалось быстро, а на скорпе с 69000 очень медленно? даю на водку: скорость вращения можно и уменьшать, для быстрой загрузки.
SE #2 - Spectrum Expert?
да
а мне понравился SE#4 :)
там ваще заморочено было
а мне понравился SE#4
а это кто??
там формат диска хитрый
там на треке 4 сектора по 1к и 1 512 байт и все они нулевые
ааааа!!! где такой есть? дайте!!! я думал 2й - последний.
Разрешите вернуться к топику, насчет загрузчиков в режиме im2. Ведь не на всех компах работает сабж? В одном из журналов было описано, что когда приходит сигнал прерывания, происходит переход на обработчег, сидящий в указанных адресах, а если сигнал пришел тогда, когда тырдосина успела "подключить" свое ПЗУ, то данные по этому адресу были совершенно другими, ну и значения соотв-но были не те, что надо. Спецы рекомендовали выбирать адрес таким образом, чтобы и в адресном пространстве тырдоса в этот момент были по крайней мере "безопасные команды". Мне этими хитростями заниматься не пришлось, но, бывало, если забуду, какой режим включен, то при активном im2, обращение к диску вырубало машину ;(
зы:
я к тому, что о "подводных камнях" тоже бы надо рассказать.
при прямых руках байки про "данные по этому адресу были совершенно другими", "безопасные команды" - и есть байки.
#3d13 НЕ ДРУЖИТ с im2, и никто и никогда так не делает! свои же загрузчики, которые не юзают пзу бейсика, ВЕЗДЕ работают с im2, на любых компах. с разным успехом, но работают.
люди, расскажите как Weed (demo) на разных реальных машинах работает? У нас в Перми на пентагоне, профи, скорпионе все норм было. В финальную версию правда вкрался небольшой баг (из-за него рушилась табличка прерываний, и на всяких краснодарах рушилось) - но потом JtN//4d его запатчил...
ааааа!!! где такой есть? дайте!!! я думал 2й - последний.
Поддерживаю!
Я тоже полагал (и пока не разубедился) что 2-й = последний!
Если есть другие номера - в студию плз!
Правда тут может иметь место некоторое недоразумение: Было такое издание как Sublimitiona Extasy (как-то так вроде). Оно тоже порой звалось SE... Само по себе ничего не представляло, но в заблуждение вводит...
---------- Post added at 22:52 ---------- Previous post was at 22:46 ----------
я к тому, что о "подводных камнях" тоже бы надо рассказать.
Суть: TR-DOS = такой убогий интерфейс что про IM2 (и многое другое) можно смело забыть...
Т.е. реализовать можно многое, но работать это будет только на определённых моделях, остальным останется посасывать петушки...
Конечно, можно писать в самом начале проги что, мол, ONLY 216Kb+Covox+TR-DOSv6.2257/235...
Но это = "варка в собственном соку"...
Грустно...
Суть: TR-DOS = такой убогий интерфейс что про IM2 (и многое другое) можно смело забыть...
Т.е. реализовать можно многое, но работать это будет только на определённых моделях, остальным останется посасывать петушки...
Что за бред?! Да TR-DOS рулит как никакая другая система однозначно! Именно под эту дисковую систему написаны все крутые лоадеры: будь то на IM2, track-лоадеры (типа как в Refresh), да и просто обычные turbo-лоадеры... Имхо, для работы именно с дискетой вообще самое оно. Просто надо писать хороший код и везде всё работать будет!
п.с. У кого не работает лоадер на IM2 в BornDead#10?
Что за бред?! Да TR-DOS рулит как никакая другая система однозначно!
Готов признать свои слова бредом, когда Вы предоставите драйвер дисковых операций одинаково хорошо работающий на ВСЕХ версиях тырдоса и на ВСЕХ клонах спека...
При IM2, включительно...
Вот тогда я сниму шляпу и признаю себя дешевым флудером при всех!
P.S. Были недо(умки) которые и #FD юзали - теперь по большей части стали легендой...
P.S.S. Про то что руль из тр-доса - пиши клону например, он вроде волокёт в различиях, 3+ это ведь не хруй ослиный, разницу погляди ;)
null_device
09.09.2010, 07:18
Интересно, а как выглядит загрузчик из Batte Command (http://trd.speccy.cz/gamez/b/BATC_MOU.ZIP)?! ;) Там вроде не заметно, что при загрузке музыка "плывет", и диск вполне себе резво читается..
Готов признать свои слова бредом...
Бредом я назвал вот это вот высказывание:
Суть: TR-DOS = такой убогий интерфейс что про IM2 (и многое другое) можно смело забыть...
и это после того, как было написано куча всяких-разных лоадеров!
когда Вы предоставите драйвер дисковых операций одинаково хорошо работающий на ВСЕХ версиях тырдоса и на ВСЕХ клонах спека...
Все версии TR-DOSа никого не интересуют. Дефакто это 5.03 (5.04T), на прочих доработках, которые "плясали" от этих версий тоже все должно работать. Про все клоны спектрума с TR-DOS ничего сказать не могу, все я не видел, но на основных типа Scorpion, Pentagon, Profi, ATM и еже с ними лоадеры работают. Тем не менее повторю вопрос: у кого не работает мультилоадер в BornDead#10?? (там мой лоадер юзается). Или как было озвучено выше лоадеры из WEED и Battle Command?
Вот тогда я сниму шляпу и признаю себя дешевым флудером при всех!
улыбнуло
P.S. Были недо(умки) которые и #FD юзали - теперь по большей части стали легендой...
это другая история, хотя по большей части соглашусь, вопрос решился доработкой моего зеленого скорпа.
P.S.S. Про то что руль из тр-доса - пиши клону например, он вроде волокёт в различиях, 3+ это ведь не хруй ослиный, разницу погляди ;)
Я изучал доки на +3DOS и представляю как она работает. По большей части мне не понравилось как там сделало. Не буду в этой ветке разводить демагогию про её "крутизну". Да, определенные плюсы есть, не спорю. Но в данном контексте разговора речь идет о дисковой системе, которая дает возможность писать всяческие лоадеры расчитанные на скорость загрузки и/или демо-лоадеры (обзову это так)! И преимущество в данном случае именно в монолитности файла. Повторяю еще раз, имхо, для работы именно с дискетой вообще самое оно! А вот когда речь идет о более скоростных дивайсах (hdd), нежели fdd, то да, преимущество за системами а-ля +3DOS (Spectrum +3e в частности)...
Интересно, а как выглядит загрузчик из Batte Command (http://trd.speccy.cz/gamez/b/BATC_MOU.ZIP)?! ;) Там вроде не заметно, что при загрузке музыка "плывет", и диск вполне себе резво читается..
Обычно он выглядит, ничего особо примечательного, просто там приоритет за теми процедурами, что обрабатываются в прерывании, а именно за плеером музыки.
Q-Master
09.09.2010, 09:48
при прямых руках байки про "данные по этому адресу были совершенно другими", "безопасные команды" - и есть байки.
#3d13 НЕ ДРУЖИТ с im2, и никто и никогда так не делает! свои же загрузчики, которые не юзают пзу бейсика, ВЕЗДЕ работают с im2, на любых компах. с разным успехом, но работают.
Ты будешь посмеяться, но я из принципа проверил как-то этот тезис и могу тебя уверить что все дружит. ААА даже где-то выкладывал мою демку на эту тему. Там гигаскрин-галерея грузится с диска и играет музыка. На эмуляторах нереально посмотреть, ибо загрузка слишком быстрая. 8) На пентагоне, АТМ турбо, Профи+ и Профи 2+ все работало одинаково.
Ты будешь посмеяться, но я из принципа проверил как-то этот тезис и могу тебя уверить что все дружит.
что именно дружит? #3d13 c включенными im2? ну, наверное, можно извратиться, чтобы оно не убилось, через перехват по #5cc2 (или где там RET), но музыка плавно играть не будет. ну или объясни, а то я не верю.
Там гигаскрин-галерея грузится с диска и играет музыка.
можно сорцы в студию? :rolleyes:
Q-Master
10.09.2010, 09:21
что именно дружит? #3d13 c включенными im2? ну, наверное, можно извратиться, чтобы оно не убилось, через перехват по #5cc2 (или где там RET), но музыка плавно играть не будет. ну или объясни, а то я не верю.
Ну блин. Ну качни дискеты от Кано. Там есть оно. Я в соответствующей теме уракал по этому поводу. 8)
---------- Post added at 09:21 ---------- Previous post was at 09:20 ----------
можно сорцы в студию? :rolleyes:
8( А нету. Все дискеты кончились еще лет 7 назад... Отдал товарищу и с концами... 8(
Ну блин. Ну качни дискеты от Кано.
гугл на запрос "дискеты от кано" выдал: Кано учавствует в турнире ради одной цели - он надеется победить Шэн-Цунга.
нельзя конкретнее указать где чо каво? как называется твоя демка? щас клещи достану и начну пытать. а лучше сразу признайся, что ты там и как сделал, ибо демка не интересна, а вот метод - чуток.
гугл на запрос "дискеты от кано" выдал: Кано учавствует в турнире ради одной цели - он надеется победить Шэн-Цунга.
нельзя конкретнее указать где чо каво?
Я так подозреваю, что речь идет об этом (http://zx.pk.ru/showthread.php?t=10700)?
как называется твоя демка? щас клещи достану и начну пытать. а лучше сразу признайся, что ты там и как сделал, ибо демка не интересна, а вот метод - чуток.
думаю, что плавно музыка не играла, Q-Master скажи сразу так это или нет? :) Если да, то вопросов не будет.
Я так подозреваю, что речь идет об этом?
ну, я догадывался как бы, но... надо все дискеты пересмотреть что ли? ни названия, ни чего...
---------- Post added at 13:53 ---------- Previous post was at 13:51 ----------
думаю, что плавно музыка не играла
угу, она просто не могла играть плавно при любом раскладе, там DI.
угу, она просто не могла играть плавно при любом раскладе, там DI.
В ПЗУ трдоса?
В ПЗУ трдоса?
да. иначе быть не могёт. в завывания еще поверю (как факт работы im2 при обращении через #3d13), но это никуда не годится и рассматриваться как вариант загрузчика с музыкой - не может.
Собственно ... Увидел, вот, насчёт что возможно, него нельзя ... И решил "наваять" ... Проверил на своём Original 128+3, но не уверен, что моя доработка на TR-DOS'е не влияет на эффект скорости ... У меня доработка аппаратная турбо-загрузки !!! Точнее турбо-то всё заключено в скорости перемещения головки ... Отключить не могу ... Поэтому если есть возможность, проверьте на своих машинах !!! В принципе можно доработать чуток загрузчик, но, если честно нет времени на это ...
Смысл работы очень прост ...
1. Вначале позиционируем головку, если за это время произошло прерывание, позиционируем снова, и так пока головка не долетит до нужного места.
2. Далее читаем сектор ... Если пришло прерывание, всё бросаем и читаем снова ... Так до посинения !!!
У меня получается считывание около двух секторов за прерывание ... Иногда прерывания попадают по среди загрузки из-за чего пропускается один оборот диска ... Вообщем, если постараться то можно добиться результата ...
Не судите строго, я писал на скорую руку и мог многое не доработать ... Пока что выкладываю пример без исходников ... Как проверим пример на реальных машинах, выложу исходники ... Не люблю, когда не корректный код мусолит глаза ...
Пример читает первые две картинки по очереди ... Я тупо забил трек+сектор ... Запускать RUN "1" CODE ... Играет музыка и грузятся две картиночки вечно !!! BREAK не нажимать, а то в позиционировании головки он опрашивается, и портит данные по адресу регистра IY ... Можно подправить и сделать так, что бы системные переменные вообще не нужны были ...
Да, не забудьте вырубить всякие ускорители в Unreal'е ... В Speculator'е и EmuZWin'е вообще не пашет, там позиционирование просто всегда около 1000000 тактов, даже если переводить с 5-ого трека на 6-отй, то-есть от времени вообще не зависит, тупо считаются такты процессора ... Вообщем глючит по чёрному ...
Да ... И ещё ... Я пока отлаживался попортил около трёх дисков !!! Так что аккуратно !!! Не рискуйте !!! Лучше проверять на новой диске где нет важной информации ...
Robus, я извиняюсь, но что ты хотел проверить-то? загрузчиков с музыкой полно, чаще именно таких, как у тебя (кстати, зачем загоняться по поводу прерывания при позиционировании?).
Q-Master
14.09.2010, 08:59
Я так подозреваю, что речь идет об этом (http://zx.pk.ru/showthread.php?t=10700)?
думаю, что плавно музыка не играла, Q-Master скажи сразу так это или нет? :) Если да, то вопросов не будет.
Играет плавно. Во вложении то что надо.
кстати как насчёт загрузчика в Tryptomine Dream и Stellar Contour?
На пентагоне работал, на кае работал, вроде даже на байте что-то работало (хотя точно вспомнить не могу).
Грузит мгновенно, на слух завываний нет.
единственный, наверное, вариант ускоренной загрузки при плавной музыке - загрузка следующего сектора при ошибке, а не долбежка того же самого. кто еще какие знает?
а не долбежка того же самого. кто еще какие знает
В принципе можно на много проще всё сделать ... Если ты, даже, пропустил считывание сектора, и укажешь контроллеру считывать следующий, то никаких проблем не будет, главное успеть задать следующий сектор. Вот если бы можно было получить номер сектора над которым сейчас висит головка, то было бы ШИК ! Однако я с этим не разбирался ...
Ты будешь посмеяться, но я из принципа проверил как-то этот тезис и могу тебя уверить что все дружит.
буду!
Играет плавно. Во вложении то что надо.
плавно, только #3d13 там не пахнет;) самый обычный турбо лоадер, самый стандартный. а чтобы вас разуверить в его какой-либо необычности/скорости предложу запустить в унреале в режиме пентагона, и в реж. скорпа: как оно и было всегда - на скорпе тормоза, на пенте более-менее.
Q-Master
16.09.2010, 11:20
буду!
плавно, только #3d13 там не пахнет;) самый обычный турбо лоадер, самый стандартный. а чтобы вас разуверить в его какой-либо необычности/скорости предложу запустить в унреале в режиме пентагона, и в реж. скорпа: как оно и было всегда - на скорпе тормоза, на пенте более-менее.
Ну нету там труполоадера. Не умел я их делать и не умею.
да? а кто же там рулит ВГхой напрямую?
да? а кто же там рулит ВГхой напрямую?
+1 к вопросу :v2_smile:
Ну нету там труполоадера. Не умел я их делать и не умею.
А что же у тебя по адресу #6283 находится? :v2_cool: Самый натуральный турбо-лоадер!
Q-Master
17.09.2010, 09:18
+1 к вопросу :v2_smile:
А что же у тебя по адресу #6283 находится? :v2_cool: Самый натуральный турбо-лоадер!
Мда. А я думал что не умею их писать... Да и ща так думаю. 8)
бывает же такое:)))
чаще-то наоборот:)
Странно, боян, но так много вопросов.
Итак:
1. Работать с TRDOS на IM2 - нет проблем. Для этого надо учитывать что возвращаться в TRDOS надо через #3d2f (либо в программе делайте регистры указывающие что идёт работа с TRDOS, либо используется вектор прерывания, указывающий на адрес в ПЗУ - у SOS будет один адрес, у TRDOS - другой)
2. Играть музыку и грузить с диска - возможно. Загрузка с диска - это тоже программа, если контроллер TR-DOS не успел передать данные (из-за отработки прерывания), то он просто выставит ошибку чтения сектора; ничто не мешает грузить этот сектор позже, на следующем обороте диска
3. Грузить сектора лучше всего оптом: т.е. если не прочитался 1й сектор, не ждать его, а сразу грузить 2ой, потом 3й и т.д. Дождавшись конца дорожки можно начать грузить пропущенные сектора диска
Указанный грузильщик из battle command не грузит сектора оптом, грузит поштучно, иногда завывает, вероятно там приоритет отдан загрузке, а не проигрыванию. Есть ещё Enlight'96 пак с грузильщиком на прерываниях, там, вероятно, используется оптовая загрузка (т.к. грузится достаточно быстро), при этом приоритет отдан именно музыке, т.к. не завывает.
Если нужна именно музыка на прерываниях, то лучше всего делать перед загрузкой дорожки (я думаю понятно что именно таким образом будет отрабатываться загрузка - дорожками) сырые данные для вывода в AYк, которые потом будут быстро пуляться (около 700-800 тактов, приблизительно 7-8 байт информации чтения с диска; 1 байт поступает в течении около 100 тактов); если затачиваться под точный вывод данных в АУк, то приоритет при прерывании отдавать музыке, если нужна быстрая загрузка - отдавать приоритет загрузчику (например, выставить флаг пришедшего прерывания, дождаться окончания чтения сектора, проверить флаг пришедшего прерывания и если он есть, то выдать в АУк очередную порцию), в последнем случае музыка будет завывать. Последнее реализуемо достаточно просто, при этом отрабатывающая на прерывании часть будет очень шустрой - порядка 60-70 тактов, т.е. прерывания основной читающей процедуры ТРДОСа не будет критичной - загрузка будет продолжена.
У меня в подписи есть view, оно тоже использует загрузку на прерываниях, работает на реале.
в чем преимущество вывода сырых данных в АУ, если мы так и так не успеваем прочитать текущий сектор?
Как юзеру СМУКа, при всём уважении, мне хотелось бы чтоб это всё осталось в интереснейшей теории... А то сами знаете, 3D13, запуск с нужного мне а не кодеру диска и т.д....
а я против! в топку смук! мертвый проект это. имхо.
в топку смук! мертвый проект это.
Ф топку архаичный дисковвод. Тормоззз прогресса :) У меня на компах дисководов нет совсем.
А "мертвый" СМУК - весьма себе живой, даже развивается. "В топку" обычно орут те, кто мало представляет себе что такое СМУК. Т.е. теоретики.
---------- Post added at 08:18 ---------- Previous post was at 08:13 ----------
Ладно, извиняйте что я нафлудил тут...
Просто я "тихо вякнул из под шкафа" и тут же скрылся :)
а я против! в топку смук! мертвый проект это. имхо.
а так же рам-диски и иже с ними, т.к. они так же не работают с #3d2f
правильно, такие рамдиски туда же! :)
а вот рамдиски, эмулящие вг, на которых работают любые лоадеры - это гуд.
"В топку" обычно орут те, кто мало представляет себе что такое СМУК. Т.е. теоретики.
я теоретик. НО я опираюсь на то, что софт должен быть продвинутый, если это возможно. и это было возможно всегда, пока не появилось УГ под названием смук. теперь ради 10 юзеров этого УГ не делать веселые турболоадеры?
НО я опираюсь на то, что софт должен быть продвинутый, если это возможно. и это было возможно всегда, пока не появилось УГ под названием смук. теперь ради 10 юзеров этого УГ не делать веселые турболоадеры?
Полностью согласен! Я считаю, что это проблема неполноценного железа, а не тех "веселых турболоадеров", которые появились задолго, до появления этого самого железа!
Полностью согласен! Я считаю, что это проблема неполноценного железа, а не тех "веселых турболоадеров", которые появились задолго, до появления этого самого железа!
я тоже так считаю, но по идее процесс загрузки для любой софтины не есть критичным моментом ( если она в принципе не является только "веселым" загрузчиком ). Поэтому лучшее для ендюзверя, когда прога идет с сетупчегом ( который загружается без извратов ), в котором задается каким образом загружать главный модуль. Либо, накрайняк, поставлять альтернативный загрузчик на васике.
вот тебе пример - демка, которая должна выглядеть цельно/монолитно, как раз подгрузка идет когда на экране картинка и играет музыка.
критично?
для когото нет, а кто то скажет я не хочу чтоб моя демка состояла из огрызков.
Да ладно, не шумите. Я же не призываю всех садиться за смуки/рамдиски и забивать болт на интересное творчество.
Я просто лишний раз напоминаю - если есть выбор - делайте для нас, убогих, 3D13 :)
Error404
19.10.2010, 17:15
Дисковод нужно обрабатывать только с выключенными прерываниями (если конечно интересно прочитать данные, а не черти что, про запись уже вообще речь молчит). ВГ93 буфера не имеет, перерывание не генерирует (по крайней мере в реализации на Орионе, в спеке, думаю, - тоже), а диск то вращается, и надо вычитывать регистр данных. Соответственно, сидя в обработчике левых прерываний, зевнуть пару байт с диска - нефиг делать.
В этом смысле все что угодно другое - электронный диск, IDE/SF, SD (а соотвественно и смук, видимо?) - что умеет само синхронизировать процесс обмена с носителем, на порядок удобнее для работы с параллельными левыми прерываниями.
ИМХО.
Error404, насчет чтения с диска зевнуть то да можно но некритично - тебе ВГ укажет что ты не все считал, кроме того - загрузка с музыкой не так уж и часто используется
Error404, насчет чтения с диска зевнуть то да можно но некритично - тебе ВГ укажет что ты не все считал, кроме того - загрузка с музыкой не так уж и часто используется
Поддерживаю. Сам не раз использовал такие лоадеры. Грузил почти по 2 диска за раз. Ни единого сбоя. Грузится конечно медленно, но чётко. В архиве пример использования. Требуется Пентагон-1024. При использовании на реале, стоит обратиь внимание на то, что диск несколько больше(по обьёму), чем стандартный.
в унриле не слышу музыки почему?
С самого начала? Странно, только что прокрутил - всё отлично. В unrealfix.
Пак приложил. Только включи режим "Slow all" и для полного эффекта реального спека сними галочку быстрой загрузки. Хотя и быстрой загрузкой будет работать. Дема делалась на реальном Пентагон 1024.
в чем преимущество вывода сырых данных в АУ, если мы так и так не успеваем прочитать текущий сектор?
вероятность попадания в мёртвую зону снижает (например начали играть музыку, а в это время пошли данные), сырые данные - это около 10-12 байт дорожки, стандартное проигрывания - от 30 до 100 байт дорожки; первое легко укладывается в межсекторный промежуток; второе - с большим трудом (если укладывается вообще).
вот я буквально неделю назад, кстати, проверял на реале турболоадер с им2, прерывание состояло только из jp #3d2f (в озу), анализировал я потом разрешенные ли прерывания и была ли ошибка. так вот, ошибка чтения гарантированно проявлялась! в среднем где-то 0.5-1 раз в секунду, не успевал прочитать байт, даже при таком сверхкоротком прерывании. нанотехнологии не прокатили:)
работает это, конечно, быстрее, чем когда музыка на прерываниях висит, но загрузку все же подтормаживает.
первое легко укладывается в межсекторный промежуток; второе - с большим трудом (если укладывается вообще).
имхо, здесь играет вероятность, можешь попасть в промежуток, а можешь не попасть... текущий сектор так и так мимо. пытайся следующий читать, или через один. итог-то будет такой, что на 0.1% станет быстрее:)
вот я буквально неделю назад, кстати, проверял на реале турболоадер с им2, прерывание состояло только из jp #3d2f (в озу), анализировал я потом разрешенные ли прерывания и была ли ошибка. так вот, ошибка чтения гарантированно проявлялась! в среднем где-то 0.5-1 раз в секунду, не успевал прочитать байт, даже при таком сверхкоротком прерывании. нанотехнологии не прокатили
работает это, конечно, быстрее, чем когда музыка на прерываниях висит, но загрузку все же подтормаживает.
Либо ты чего то не знаешь, либо у тебя глюки с ПЗУ.
У меня не было никаких ошибок, я там таймеры запускал и ещё чего то... около 70-80 тактов легко проходило в безошибочное чтение. Может ты криво регистр состояния опрашивал? Может быть ты где то основные регистры процессора терял?
---------- Post added at 11:16 ---------- Previous post was at 11:05 ----------
имхо, здесь играет вероятность, можешь попасть в промежуток, а можешь не попасть... текущий сектор так и так мимо. пытайся следующий читать, или через один. итог-то будет такой, что на 0.1% станет быстрее
Фишка в том, что прерывания приходят 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 раз в секунду, не успевал прочитать байт
0,5-1 раз в секунду - это раз в 5 или 10 логических дорожек для турболоадера... В View у меня есть режим отключение музона... ха... смотрю код, там почему то Im1 стоит... видимо решил перестраховаться.... жаль что реал далеко... хочется проверить... Пока мне крыть нечем :-(
Либо ты чего то не знаешь, либо у тебя глюки с ПЗУ.
давай так. ты напишешь лоадер, который будет грузить дорожку за один оборот и при этом юзать им2. т.е. никаких ошибок быть не должно (при ошибке, например, мигай бордером). а я проверю это у себя на реале:) и тогда я признаю, что я чего-то не знал и не прав:)
Фишка в том, что
ты описываешь один случай лоадера, а логика у них может быть очень даже разная: либо последовательно читает сектора, либо читает те, которые успеет, вразнобой. и время будет разное для разных случаев (где-то и получится тот самый 0.1%). а еще учти, на тех компах, где инт 50 гц, прерывание будет долгое время попадать на один и тот же сектор (ибо 300 об/м и 50 гц кратны). именно поэтому в среднем на пентагоне грузятся быстрее лоадеры с музыкой.
0,5-1 раз в секунду - это раз в 5 или 10 логических дорожек для турболоадера...
мне кажется или кто-то наврал?;)
Давайте вспомним 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
Где то видел идею, что сначала определяем тип того как отформатирован диск, потом при чтении читаем сектора не подряд а так чтобы успевала схема читаем-играем музу. Вот только где не припомню...
И очень интересно - на эмуле я так понимаю все это нереально тестить?
И очень интересно - на эмуле я так понимаю все это нереально тестить
вполне реально. особенно если добавить в эмуль небольшую неравномерность кручения диска и иногда возникающие ошибки чтения :)
2psb как раз в твоем случае сектора идут 1-2-3-4 и видимо не всегда успевают прочитаться и даже прерывания тут не при чем, а скорее завышенная скорость вращения диска (при чтении все норм, а вот подготовительные процедуры не всегда успевают).
ага, я за спектрум вчера тока засел 1й раз;) не надо мне сказок...
жыл был кот... дискуссия не получилась...
Еще раз прочитай что ты написал и что я, я уточнил что многого не помню, и попытался факты сказать которые более менее в памяти остались.
Сказки это не факты, это народное творчество...
Если ты какую то аксиому высказал а я ее не понял, извини, тока я так и не понял что ты хотел сказать/спросить?
Еще раз прочитай что ты написал и что я
я прочитал твою догадку, адресованную мне, и на нее ответил.
Сказки это не факты, это народное творчество...
да, вот пока что у тебя и у Griv - народное творчество в плане догадок, почему не успевает у меня лоадер:)
тока я так и не понял что ты хотел сказать/спросить?
пока что я утверждаю, что нельзя на нетурбо пентагоне сделать читалку дисков с разрешенными им2 (наикороткими) без потерь данных. и дело тут не в подготовительных процедурах - это и есть сказки.
кто хочет доказать обратное - милости просим - выложите лоадер, я проверю на реале.
давай так. ты напишешь лоадер, который будет грузить дорожку за один оборот и при этом юзать им2. т.е. никаких ошибок быть не должно (при ошибке, например, мигай бордером). а я проверю это у себя на реале и тогда я признаю, что я чего-то не знал и не прав
Хорошо. Попробую.
ты описываешь один случай лоадера, а логика у них может быть очень даже разная: либо последовательно читает сектора, либо читает те, которые успеет, вразнобой. и время будет разное для разных случаев (где-то и получится тот самый 0.1%). а еще учти, на тех компах, где инт 50 гц, прерывание будет долгое время попадать на один и тот же сектор (ибо 300 об/м и 50 гц кратны). именно поэтому в среднем на пентагоне грузятся быстрее лоадеры с музыкой.
Я говорю про ситуацию "музыка приоритетнее", и скорость вращение вовсе не 300 об/мин (+-1% на самом деле), а вот прерывания приходят стабильно.
мне кажется или кто-то наврал?
Кажется конеч :-)
пока что я утверждаю, что нельзя на нетурбо пентагоне сделать читалку дисков с разрешенными им2 (наикороткими) без потерь данных. и дело тут не в подготовительных процедурах - это и есть сказки.
кто хочет доказать обратное - милости просим - выложите лоадер, я проверю на реале.
Если дело не в них то в чём??? Давай уже все карты на стол :-) из рукава тоже ;-)
Давайте вспомним 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)
Интерлив как раз помогал читать сектора без пропуска оборота на "тормозных дисководах"(вроде), без интерлива ускоряло загрузку на "нормальных дисководах", а смещение помогало читать начинать следующую дорожку без пропуска оборота (подборка смещения обеспечивало необходимое время на перемещение головки)
Такой вариант возможен, но если писать свой форматтер который будет увеличивать межсекторные промежутки догоняя расстояние в тактах процессора до 69998 (70998) тактов. Тогда сразу после чтения сектора можно смело играть музон (один сектор около 40000-50000 тактов), а дальше ждать прихода нового сектора. Ещё и время для эффектов на экране останется :-) Правда количество секторов придётся урезать, будет нестандартный формат... :-) зато какая крутая защита :-) - если нарушена - музыка подвывает, да и при копировании будет на отсуствие секторов ругаться :-)
Сотоварищи и я (в своё время... грешный... каюсь...) посчитали что в дорожке около 7кб сырых данных, из которых можно около 5,5-6 кб выжать, если использовать большие (1024 байта и 512байт) секторы; можно посчитать что мегаформатом недосчитаемся 2-3 секторов 256байт... зато какой крутой код :-)
---------- Post added at 22:09 ---------- Previous post was at 22:02 ----------
Ага понял про что ты... так вот отвечу тебе - обычно дорожка размечена так, что при перемещении головки (физическом, с трека на трек) у неё хватает времени чтобы потом начать считывать сектор, находящийся в начале дорожки. Турболоадеры собственно это и демонстрируют - 300 об/мин, 5 об/сек - 2,5 тырканья головки за секунду. Первый раз когда услышал... удивился насколько быстрее. А вот тырдос не успевает так грузить, он сектора вначале в буфер копирует (а зачем???), а только потом переносит в область загрузки. Может вот про это шла речь? Чтобы тырдос чуть быстрее был?
Если дело не в них то в чём??? Давай уже все карты на стол :-) из рукава тоже ;-)
я же сказал: существует ситуация, когда даже с обычным (и единственным!) JP #3d2f из прерывания не укладывается в 100+ тактов между ini. посему я заключаю: никак. сделайте и убедитесь (или убедите меня), а то подготовительные процедуры, то, се...
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot