Поделитесь, как обращаться к диску во время работы 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
примерно так - точно сейчас не вспомню
доберусь до исходников скажу точнее
главное чтобы обработчик прерывания был минимальным
Пример работы в режиме IM2 из TR-DOS описывается на стр. 196, в книжке Ларченко-Родионова: "ZX Spectrum & TR-DOS для пользователей и программистов". Там описана программа часов. Вместо обработчика часов подставляется плейер, и вуаля! ;)
читать плохо будет
http://zxdn.narod.ru/coding/dv01im2t.txt
Все что я видел пока ковырял тыр-дос работает одинаково:
1. Обработчик IM2 заканчивается кодом EI:JP #3D2F
2. Турбо загрузчик перечитывает сектор если из-за проигрывания музыки сектор считать не удалось. (чтение/контроль регистра #1F)
Да
иначе могут быть проблемы когда ДОС полезет в Басик 48
вот начинает читаться сектор
---- а потом раз и прерывание
если оно короткое
типа EI:RET то проблем нет
продолжаем читать
-----------------------------
если вдруг проиграешь музыку - а это от 1000 тактов
то будешь ошибка чтения - начинаем читать сектор снова
на моем желтом скорпионе с 3.5 дисководом не читалась FOREVER
как раз изза этого
Сondommed читался на ура
jerri: ниасилил. это что за хитрый алгоритм в первом твоем посте?
Там не все :)
ищи На ВОС
смотри загрузчик
там сначала поиск нужных подпрограмм в ROM TR DOS
потом собственно подгрузка с диска с музыкой
Доберусь до дома скину исходник если найду :)