|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Мар 20, 2004 10:48:30 Я писал программку для записи CD-RW дисков. Для передачи данных я не использовал DMA, а пересылал их через процессор: ... rep outsw ... (этот режим вроде как называют PIO). Так у меня возникла проблема: выше 4-ой скорости писать диски не получается. Вот не знаю ограничение ли это режима PIO? Компьютер новый: Celeron 2.5 ГГц, поэтому как то странно. То есть у меня вопрос: Могу ли я в режиме PIO писать диски например на 24 скорости если я например что то поменяю. Или мне придется использовать DMA. В случае если потребуется DMA, подкиньте мне пожалуйста документацию, а то я что то ничего достаточно исчерпывающего для написания программы не нашел. Встречал какие то упоминания о PCI IDE, может надо использовать его, а то как я понял обычный контроллер DMA здесь использовать не получится. Кто в этом разбирается, расскажите пожалуйста, а то я уже похоже запутался с этим вопросом. |
|
|
Дата: Мар 20, 2004 11:02:36 Если я правильно помню, 4SPEED CD=150*4=600Mb/S, а PIO MODE4 = 16,7Mb/s. Наверное дело в другом, может медленный режим PIO используется. Кстати далеко не все резаки DMA поддерживают. |
|
|
Дата: Мар 20, 2004 21:11:52 · Поправил: HeDiN > 4SPEED CD=150*4=600Mb/S < Наверное,правильно 4х=150кб/с*4=600кб/с. |
|
|
Дата: Мар 20, 2004 21:57:41 Icebp Поделитесь ссылкой как производить запись на болванки. Если возможно на русском. |
|
|
Дата: Мар 21, 2004 22:14:32 У меня сейчас под рукой только свой старый исходник для записи CD-RW (последняя версия на домашнем компьютере), поэтому я пока здесь выкладываю старую версию. В ней есть некоторые недочеты, например в процедуре send_ATAPI для посылки ATAPI-пакетов следует посылать данные по-другому: mov cx,num_of_bytes; rep outsw. Ну а смысл работы с CD-RW следующий: посылается ATAPI-пакет процедурой send_ATAPI, длина его 12 байт. Примеры пакетов: write_sec - запись секторов, clean - очистить диск CD-RW, close_track/session - закрыть трек/сессию, tray_in/out - задвинуть/извлечь трей и.т.д. При этом рекомендуется после посылки каждого управляющего пакета посылать пакет из 12 нулей (пакет blank) чтобы не было ошибок. Кстати посмотрите еще мой ответ в теме "Где найти спецификацию для работы с CD-ROM" (кажется так она называлась). Ну и наконец просьба: помогите мне кто-нибудь с DMA пожалуйста. 238394520__cdr_da.asm |
|
|
Дата: Мар 21, 2004 22:30:12 IcebpНу и наконец просьба: помогите мне кто-нибудь с DMA пожалуйста Я с DMA не занимался, но точно знаю одно - устройство должно работать через PIO на все скорости - может быть надо "rep movsd". А, и у некоторых CD-RW дисках есть лимит на скорость записи - может устройство определяет етот лимит автоматично. |
|
|
Дата: Мар 24, 2004 18:28:20 Johnfound, с outsd у меня не работает, а когда пытаюсь писать с outsw например на 8-ой скорости, то он пишет с перерывами, то есть так как будто скорость поступления на него данных меньше 8-ой и ему приходится останавливаться, при этом скорость записи получается примерно 5-ой -- 6-ой. Вот у меня и возник вопрос: в чем же тут дело? Как мне победить эту проблему? |
|
|
Дата: Мар 24, 2004 19:06:26 Может быть дело в том, что сидюк переключается из режима с постоянной линейной скоростью в режим с постоянной угловой скоростью. Тогда реальная скорость будет разная, в зависимости от расстояния от центра. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.094 |