Вроде 250. Я не знаю точно, т.к. у меня только 5'25.
Вид для печати
да. 250. и я почему-то считаю, что 5,25 флопы, для поддержки 80 циллиндров / двойная плотность подключают, указав в биосе как 3,5. Ну и, естественно, обороты должны быть выставлены на 300/мин. (как для спектрума).
по-ходу: есть ли на ПЦ тулза, позволяющая ресторить спековские диски, желательно, с поддержкой >80 циллиндров? Посмотрел даташит на контроллер ПЦ - вроде как грамотно сделан. ПЦ должен хорошо читать старые дискеты (форматированные нормальными форматтерами на спеке, с достаточным расстоянием между индексным отверстием и сектором), в отличие от современных клонов.
Так, народ!
Объясните таки про перемычки на скорость..
Вот у меня стоит в пц самый обычный 3.5 пц-дисковод.. То есть все перемычки там должны стоять как для пц-дисковода.
И при этом всё нормально читается/пишется..
Откуда тогда фразы, что перемычки должны стоять как для спека?
вообще-то непонятно, но я пользовался дисководами 3,5 на пц без каких-либо переделок :) в биосе установлено 3,5 1.44 дисковод и всё.
на 5,25 я пробовал очень давно. подключал teac 720kb к пц и выставлял в биосе 3,5 720кб - только так работало в SN или теледиске, форматилось под досом тоже, но глюки были всё равно. особенно в винде :).
а zx disk studio по идее должна работать на дисководах 5,25 1,2мб переделаных под 720кб так же, как и на 3,5 1.44мб, только с заклееным окошком на 720кб у 3,5. причем если с 3,5 дискетами глюков нет, то с переделаным дисководом 1,2мб под 720кб, или просто подключеным 5,25 720кб и выставленым в биосе объеме 3,5 720кб (т.к. другого почему-то нет для 5,25, кроме 1,2мб) возможно будут глюки.
На ZX используются в основном дискеты 720кб, а на PC стандартные
в основном 1.2мб и 1.44мб. 5.25" дисководы на 720 и 1.2 настраиваются
перемычками, а то что в BIOS стоит используется в основном в
операционной системе для настройки драйвера дисковода.
Отсюда и фраза про перемычки как на ZX.
А много ли на современном 3.5" дисководе перемычек?
Только изменение номера дисковода A<->B и выбор плотности (и
то на некоторых дисководах этот микрик не ставится для экономии)
Так что у 3.5" дисковода для чтения ZX дисков 720кб (не важно на PC
или ZX) нужно нажать микрик плотности, а для чтения PC дисков 1.44мб
разомкнуть этот микрик.
А 5.25" дисковод для чтения ZX дисков надо микриками настроить на
720кб, скорость 300 об/мин и еще у разных дисководов бывают разные
джампера для настройки различных режимов.
А интерфейсные сигналы на разъеме дисковода впринципе одинаковые
что у контроллера PC, что у контроллера ZX, только мотор и выбор
дисковода отличаются да на ZX не все сигналы используются.
С другой стороны предложите свои положения перемычек (как для PC
дисковода) и посмотрим будет ли работать.
Ну мой 3.5 пц-дисковод стандартный (как я уже писал), а дискеты 3.5 использую с заклеенным окошком (не помню название-HD вроде). В ревю писалось когда то об этом.
Вобщем суть я уловил) Спасибо за уточнения)
Пс: кста, в моём Профике старый дисковод сменил (с запаянной перемычкой) на.. Стандартный пц-дисковод! А дискеты использую «заклеенные» (как и раньше кста, видимо перестраховка))
Ппс: ещё раз всем спасибо)
---------- Post added at 22:40 ---------- Previous post was at 22:36 ----------
Пппс: а вот с дисководами 5.25 всегда игрался с «motor»-ом. Или перемычками (реже) или напрямую паяльником (чаще)
При установке fdrawcmd.sys, драйвер не видит мой usb-fdd. Что можно с этим сделать, подскажите?
Жаль.
А есть ли какой нибудь софт позволяющий писать trd на usb-fdd?
baxter, поддерживаю !!
Очень жаль что не работает с усб дисководом. У меня например на мамке нету разьёма не только для фдд , но и иде уже нет :(
А внешний дисковод был бы очень кстати !! Совсем нельзя переделать драйвера ? Вроде столько програмистов на форуме.. :)
У меня возникла другая проблема с 3.5" дискетами. Если дискету я форматирую в ZX Disk Studio, то всё отлично читается и записывается и в ZX Disk Studio, и на реале. Но стоит только произвести запись на дискету на реале, как дискета перестаёт читаться в ZX Disk Studio. Если я дискету отформатировал на реале, то в ZX Disk Studio упорно не читается 9-й сектор с 0-й дорожки. 3.5" дисковод TEAC, на ПЦ и Спектрум всего 1 шт (2-й собираюсь купить завтра), так что предположения о несовместимости дисководов сразу же отпадают.
5.25" дисковод на моём ПЦ под Windows XP SP3 не заработал вообще никак, и драйвер не помог. В BIOS-е в моей материнке вообще нет пунктов 5.25", материнка ASUS M3A (чипсет AMD-770).
на реале форматируеш командой формат?Нужно форматировать программой ФУТ.тогда будет читаться на реале и на писюке
Нет, дело оказалось абсолютно не в том, что я форматировал диски в голом TR-DOS-е, а в том, что в Пентагоне-1024 1.4i товарищем KOE допущена огромная, грубейшая оплошность при разработке схемы контроллера FDD, за что ему огромный камень в огород. Он допустил внедрение в своё детище варианта не правильного турбирования ВГ93, наступил на те же самые грабли, через которые уже все прошли ещё лет 15 назад, а именно тактовые частоты 1 и 2 МГц переключаются одним лишь сигналом строба записи, что повлекло 3 трагических последствия:
1. Дискеты форматированные на Пентагоне-1024 1.4i после попытки любой записи на не турбированных контроллерах FDD, моментально умирают.
2. Дискеты, форматированные на Пентагоне-1024 1.4i не читаются на ПЦ никакими средствами, в том числе и в ZX Disk Studio.
3. Дискеты, форматированные и записанные в ZX Disk Studio, на Пентагоне-1024 1.4i после любой попытки записи, моментально умирают.
Я внедрил исправление турбирования ВГ93 по примеру описанном в 12-м номере Спектрофона и о чудо! Дискеты отформатированные на моём Пентагоне-1024 стали отлично читаться и писаться в ZX Disk Studio. И пофиг, чем я форматировал дискету на реале, хоть даже в голом TR-DOS-е - всё стало работать.
Вопрос разработчику - возможно добавить работу с дисками CP/m Орион-128 формата?
драйвер используется тот-же и CPM Профи формата уже есть.
Есть надежда?
ps. Диски формата ODI - Orion Disk Image 800к посекторный образ
KDI появились в v1.11 http://www.zx.pk.ru/showpost.php?p=282481&postcount=13
Добавил еще в первый пост v1.14, хотел сначала переделать интерфейс,
чтобы при загрузке образа можно было по выбору открывать каталог
диска или карту диска, но пока времени нет этим заниматся.
Ну вот, разобрался вроде с USB.
Получается считать и передать на PC
в реальном времени дорожку в виде
8 битных значений времени, даже c HD диска.
Из микросхем только PIC. 3"5 дисководы работают
отлично питаясь от USB, а вот 5,25" иногда происходит
зависание, наверно придется для них буферные элементы ставить.
После некоторых экспериментов
научился вытаскивать из образа все заголовки
секторов и данные секторов с правильным CRC,
т.е. можно уже сделать USB читалку дисков.
Но не могу разобратся с маркером трека C2 C2 C2 FC,
если попасть в фазу, то определяется нормально, но если
в фазу не попасть, то 0xC2C2C2FC превращается в сдвинутый
0xA1A1A1FE. - 0x0A0A0A00 (или сдвинутый на бит 0x14141401)
Может кто знает алгоритм преобразования MFM?
Вобще там интересная картина, вроде межсекторные данные
представляют всякую ерунду, но стоит поменять фазу или сдвинуть
массив на несколько бит, то сразу становятся видны межсекторные
пробелы и поля синхронизации, с определенным алгоритмом я думаю
можно получить точную копию дорожки, за исключением потерянных бит.
Вот картинка распределения длительностей импульсов на HD треке:
1 столбик - 2 мкс
2 столбик - 4 мкс
3 столбик - 6 мкс
По этой функции наверно можно определять качество записи(чем тоньше всплески, тем качественнее запись) может и юстировку делать.
Вы даете мало информации о том, как и что вы читаете. Если вы читаете сырые данные, то есть до MFM преобразования, то это одно. Если уже после MFM, то другое. К слову замечу, что если вы читаете уже после MFM преобразования, и информация сдвинулась, то обратному восстановлению она уже не подлежит. Т.е. желательно считывать информацию именно до MFM преобразования, в сыром виде, а уже на компьютере ее преобразовывать на свой вкус.
Читаются 8-ми битные значения времени,
замеренные между импульсами.
Т.е. значения 2(4) мкс.
4(6) мкс.
6(8) мкс.
Эти значения преобразую
уже на PC в битовый поток.
Однако значение 2(4) мкс можно
трактовать как 0 или как 1, в зависимости, от того
что было перед ним 0 или 1, ну и другие значения так же.
Опять не понятно.
Импульсами чего? Откуда берутся импульсы? Для информации, на самой дискете имульсов нет, есть области, намагниченные по ходу вращения диска, и против. Т.е. '<--' и '-->'. Это считывается, потом проходит через дифференциатор, потом через компаратор, потом уже преобразуется через MFM, и получается поток бит со скоростью 300кбит для 5-дюймовой DD-дискеты, и 250кбит для 3.5-дюймовой. Поясните, на каком этапе вы берете импульсы и откуда. Учитываял, что одиночные импульсы есть до MFM, наверное вы их и берете.
Кстати, еще интересен вопрос, как вы гоните поток со скоростью 500*8=4мбита/сек через USB, и при этом его не буферизируете на своем устройстве? Или все же у вас есть буфер?
На DD дорожке порядка 6250 байт х 8 бит = 50000 бит или временных интервалов между импульсами, на самом деле где-то 38000 - 44000 интервалов (т.к. период в 6мкс и 8мкс дают 1,5-2 бита) Т.е. от индексного импульса до индексного импульса (200 мс) надо передать
максимум 50 000 Кбайт или 200кбайт/сек для HD получается 400кбайт/сек. А скорость USB примерно 1200 кбайт/сек, что вполне хватает.
Буфера два по 64 байта, те что в PICe, пока один заполняется другой отправляется. Самое трудное было замерять интервалы и отправлять буфер одновременно. Сначала заказал последовательную память, но пока ждал, выкрутился без нее
Имульсы берутся с вывода /RDATA дисковода.
Примерно такие:
Я сначала проверял, отправлял пронумерованные пустые пакеты, определенное количество, и смотрел сколько приходит. При использовании JEDI HID действительно пакеты терялись, хотя USB монитор все пакеты видел и принимал (видимо в Jedi так буфер устроен что если его вовремя не считать, то он затирается следующим пакетом) Поэтому пересел на WinLIB USB. Там все четко сколько ушло, столько и получишь, к тому же дорожки читаются нормально, нет потерянных секторов и CRC у них нормальный.
Ну это я с MFM разбирался:
Если период 4мкс, то это или 0 или 1(зависит от того что было перед ним)
Если период 6мкс, то это или 00 или 1(зависит от того что было перед ним)
Если период 8мкс, то это 01 (но после 0 это 00 и период встречается только в маркерах 0xA1)
Если при начале декодирования выбрать не ту фазу (0 или 1), то получается совсем другая последовательность, так же и в межсекторных данных видимо происходит выпадание бит и в течении дорожки фаза меняется несколько раз.
Вобщем или как-то надо синхронизироваться по 8мкс периодам, или как я делаю ищу прямое значение маркера и сдвинутое, если найден сдвинутый, то меняю фазу и дальше до следующего маркера.
Вот мне интересно как ВГ это делает (ведь сепаратор я думаю тоже фазу не сдвигает, он ее только чуть подстраивает)
Вообще-то это делается по специальной синхропоследовательности. Наизусть ее не помню, но где-то тут в теме про ВГ точно писал.
---------- Post added at 16:13 ---------- Previous post was at 16:11 ----------
А каким методом отправляешь информацию по USB? Там, на сколько я помню, 4 протокола есть - поточный (bulk), управляющий (control), изохронный (isoch) и прерывание (interrupt).
Синхропоследовательность - 0х00,0х00,0xA1,0xA1,0xA1,FB(FE,F8),
по этой и определяю. ВГ как-то на первой A1 синхронизируется и
вместо нее там разные байты читаются, то 14, то С2, то другие,
а у меня только по A1A1A1FE (или сдвинуто по фазе 14141401)
Быстрая точка bulk, для команд interrupt
Нет, это не синхропоследовательность. Синхропоследовательность нельзя выделить уже после преобразования MFM. Она до преобразования.
Из чего следует, что если протокол тормознет, информация не будет доставлена, а стало быть ее придется повторить либо из кеша, которого у вас нет, либо повторно прочитав трек, что тоже не гарантирует отсутствие сбоя. Получается, что надежен только кеш на... 512кб). Надежен в смысле, что если вы хотите сделать из этого серийное устройство, не только для себя. Поправьте, если я ошибаюсь на счет bulk-протокола.Цитата:
Передачи Bulk
Bulk-передачи можно использовать для большого объема быстропередаваемых данных. В качестве примера можно привести задание по выводу на печать, посланное в принтер, или изображение, сгенерированное от сканера. Bulk-передачи предоставляют коррекцию ошибок полезной нагрузки с помощью поля CRC16 и механизмы детектирования ошибок и повторной передачи, гарантирующие отсутствие ошибок в передаваемых или принятых данных.
Bulk-передачи будут использовать остаточную полосу пропускания шины после того, как все другие транзакции были распределены. Если шина занята данными isochronous и/или interrupt, то данные bulk могут прередаваться через шину медленно. Следовательно, передачи Bulk должны использоваться только для интенсивных коммуникаций с негарантированным временем доставки. Особенности передачи Bulk:
---------- Post added at 17:08 ---------- Previous post was at 17:02 ----------
А вот мой пост про синхропоследовательность: http://zx.pk.ru/showpost.php?p=373611&postcount=24
Ну если пакет не получилось отправить,
то у меня возникнет ошибка переполнения,
но потери пакетов быть не может. Конечно
через HUB с несколькими устройствами
может и не заработать, но с другими типами
передачи, то же надежнее и быстрее не будет.
Можно и буфер поставить, я даже бесплатно
заказал SPI RAM на 1024 ждать наверно еще
месяц и сколько она стоить будет и будет ли
доступна не известно. Можно PIC24 попробовать,
там и памяти около 42кб, но она 3V.
Не, мне этот пока способ нравится, вот переделаю
ZXDiskStudio на работу c USB адаптером (пока чтение)
и потестирую на нетбуке и нотебуке. Если не пойдет
тогда и буфер буду ставить.
Переделал ZXDiskStudio для чтения c USB адаптера.
Сегодня считал первый диск. Время чтения около 1,5 минуты.
Из трех раз 2 раза диск полностью считался без ошибок,
один раз на двух дорожках первые 2 сектора пропали, как
будто дорожки считались не сначала
Так, помаленьку. Попробовал работать с 5,25 дисководами
Mitsumi D509V3 и Epson SD600. сначала при перемещениях
контроллер подвисал или сбрасывался, пришлось ставить
буферные элементы на выхода/входа стало лучше, но все равно
при длинном перемещении головки иногда подвисает. Можно конечно
под каждый дисковод устанавливать свои задержки, или БП для
дисковода другой попробовать (3,5 вобще без сбоев работают полностью от USB).
Еще пробовал частоту вращения диска определять по сумме длин импульсов на дорожки, но как оказалось от дорожки к дорожке сумма получается разная, поэтому придется замерять время между индексными импульсами.
Еще все ни как не могу взяться за запись данных на диск, наверно придется использовать USART, но надо экспериментировать.
И еще вот думаю как сделать отдельные процедуры чтения секторов и заголовков и стоит ли их делать, ведь можно считать весь трэк и делать с ним все что угодно.
Думал в каникулы займусь, но что-то лень напала. Видимо пока в голове все не прояснится не продвинусь.
Anykey, было бы классно, если бы получилось под Windows XP заставить работать 5.25" дисковод, я тогда сразу свой Mitsumi (у меня их 3 шт) поставлю в ПЦ и буду переносить программы и с его помощью, а не только с помощью 3.5" дискет.
Кстати, есть одно пожелание:
Если например в ZXDisk Studio попытаться записать дискету (3.5"), которая не была заранее отформатирована, то отмену записи сделать крайне сложно - ZXDisk Studio перестаёт отвечать на запросы и упорно продолжает пытаться записывать каждый следующий сектор, каждую следующую дорожку. И чтобы всё-таки отменить запись, приходится быстро бесперерывно нажимать "Cancel" до тех пор, пока ZXDisk Studio не дойдёт до начала следующей дорожки, а при не правильно отформатированной дискете, это занимает около 2 минут, беспрерывного нажатия на Cancel. И если вдруг я проворонил переход на следующую дорожку, то снова приходится ждать, пока программа не дойдёт до следующей дорожки.
Не мог бы ты сделать проверку нажатия "Cancel" не только перед началом каждой следующей дорожки, но и сразу после каждой выдачи ошибки записи сектора ?
Ещё было бы не плохо процесс чтения / записи запускать в отдельном потоке, а не в главном потоке программы, для того чтобы при ошибках чтения или записи главное окно не уходило в "астральное состояние" с появлением заголовка "программа не отвечает на запросы".
Добавил в первый пост версию с более частым опросом кнопки Отмены.
В отдельном потоке я думаю не стоит делать, ведь при ошибке может драйвер подвиснуть, т.е. смысла программе работать без драйвера не вижу (кроме кнопки отмены).
Для 5.25 могу конечно выложить сейчас (сырое схемы прошивки и программу под USB) чтение дорожек работает, но лучше сначала запись отработать, чтобы схему уже не менять (если есть у кого желание собирать и экспериментировать).
Однако чуда не ждите если на обычном контроллере диск читается с ошибками, то
на моем адаптере те же сектора читаются с ошибками.
Вот если только алгоритм какой-то хитрый придумать, анализировать длительности импульсов и где возможное нарушение, можно попробовать подобрать вставку битов
или коррекцию чтобы CRC совпало.
Что-то не получилось прочитать диск CP/M на АТМ - турбо, решил записать для теста, налаживаю АТМ - турбо спек у меня отказывается их читать, образы CP/M в .TRD формате. Для профи вроде есть поддержка, для атм не понял есть или нет, в тр-дос формате читает..
Прошу прощения, пропустил сообщение.
У Профи и АТМ насколько я помню разный формат CP/M дисков, поддержку ATM CP/M дисков я еще не делал.
Ну вот, только что получилось записать через USBadapter дорожку
и считать то же самое. Теперь попробую записать весь диск, а потом считать его на реале.
Подскажите пожалуйста. Есть у меня 5,25" диск с игрушками для спека. Есть дисковод ЕС5323.01. На реальном спеке почти все игры с диска запускаются. Хотел создать образ диска на РС с помощью XZ Disk Studio, но ни один сектор не читается. Этот же дисковод прекрасно переносит на диски образы дисков Ориона утилитой Diskutil и читает их XZ Disk Studio. Подключал к спеку вторым 3,5" дисковод и пробовал копировать с диска на диск. Также ни один сектор не читается. Это может быть такая защита диска или в чем дело?