Эмулятор флопа от floppydrive.eu

Классические амиги и клоны. 1000, 2000, 3000, 4000, 500, 600, 1200, cdtv, cd32

Модераторы: striimii, Vinnny

Re: Эмулятор флопа от floppydrive.eu

Сообщение da-nie 15 фев 2014, 12:07

Задумал я тут сделать эмулятор дискеты чтобы разворачивать SD-карту как поверхность дискеты. И вот что вышло:
1) SD-карта пишет и читает блоками по 512 байт. После выдачи ей 512 байт на запись происходит пауза, пока контроллер карты запишет данные и ответит.
2) Импульсы перемагничивания имеют длительность 0.1-1.1 мкс. На частоте 40 МГц это будет от 4 до 40 тактов. Внешнее прерывание такое отловит, но всё равно, время мало...
3) Между импульсами перемагничивания 2 мкс.

Выходит следующее. Запускаем SD-карту на выдачу блока 512 байт, считываем его побайтно и выдаём данные. Одновременно ловим прерывание перемагничивание и заполняем буфер на 512 байт. По окончании (если была запись) забрасываем этот блок на SD-карту. При этом нужно постоянно анализировать смену дорожек и поверхности диска (если смена будет когда SD-карта ещё не дочитала блок, нам придётся завершать чтение и дозаписывать карту). Запись блока на SD-карту займёт 512 байт*8 бит в байте/20 000 000 бит в секунду по spi *1000000 микросекунд в секунде= 205 мкс без учёта задержки на ответ контроллера. Это значит, что мы гарантированно пропустим импульс перемагничивания на стыках блоков.
Интересно, как же сделан тогда этот эмулятор от floppydrive.eu безо всякого ОЗУ? :roll:
Мой репозиторий: https://github.com/da-nie
Мои статьи: https://habr.com/ru/users/da-nie/posts/
Моё видео: https://www.youtube.com/channel/UCUroi3D5Kf1WxDzg3ON852g/videos
Аватара пользователя
da-nie
Престарелый Амигодум
Престарелый Амигодум
 
Сообщения: 240
Зарегистрирован: 23 сен 2011, 17:25
Откуда: Ленинградская область

Re: Эмулятор флопа от floppydrive.eu

Сообщение tnt23 15 фев 2014, 15:29

Мне кажется, нет необходимости мгновенно сбрасывать 512-байтный сектор обратно на флешку. Лучше держать буфер на дорожку (12К) или на две, верхнюю и нижнюю, и сбрасывать их постепенно позже, как будет свободное время. Такой вариант (помечать сектора как грязные и сбрасывать по мере возможности) предлагал тут кто-то из амижников.
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Эмулятор флопа от floppydrive.eu

Сообщение da-nie 15 фев 2014, 17:14

Ну, с использованием ОЗУ вопросов нет - можно перед сигналом index замещать сектора на флэшке. Но вся штука в том, что у PIC16F1938 ОЗУ всего 1К. А схема этого эмулятора автором была опубликована на одном из сайтов:
схема
Возникает вопрос - как ему это удаётся?

Надо найти, где купить подешевле PIC24EP256MC202-I/SP - он и DIP и памяти 32К. :) Отлично подойдёт. :)
Мой репозиторий: https://github.com/da-nie
Мои статьи: https://habr.com/ru/users/da-nie/posts/
Моё видео: https://www.youtube.com/channel/UCUroi3D5Kf1WxDzg3ON852g/videos
Аватара пользователя
da-nie
Престарелый Амигодум
Престарелый Амигодум
 
Сообщения: 240
Зарегистрирован: 23 сен 2011, 17:25
Откуда: Ленинградская область

Re: Эмулятор флопа от floppydrive.eu

Сообщение tnt23 15 фев 2014, 19:28

Сигнал INDEX на амиге не сильно важен. Трек на дорожке может начинаться где угодно относительно индексного отверстия, поиск идет, как правило, по сигнатуре 0x4489.

А больше у меня идей нет - как это удается авторам с 1К и без нарушения времянок. Может, спросить у них напрямую?
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Эмулятор флопа от floppydrive.eu

Сообщение da-nie 15 фев 2014, 19:39

:) Для амиги у меня всё давно работает и так. :) Я имел в виду, что когда придёт время подавать сигнал index есть время помучать SD-карту.
Мне для PC хотелось. Сделал я несколько стендов, где компьютер в формате PC-104 уровня "эмулятор Pentium-75" (процессор эмулирует P-75) и MS-DOS - для упрощения разработки брались штатные блоки, которые уже применялись в одном из изделий. Конечно, там только дисковод можно подключить. Вот и была идея заменить дисковод на эмулятор. Хотя там дисковод только для обновления ПО нужен, так что это не критично. Просто интересно стало, на чём бы это сделать. :)

Авторы, боюсь, не скажут свои секреты. :) Да и не заходят они сюда. 8)
Мой репозиторий: https://github.com/da-nie
Мои статьи: https://habr.com/ru/users/da-nie/posts/
Моё видео: https://www.youtube.com/channel/UCUroi3D5Kf1WxDzg3ON852g/videos
Аватара пользователя
da-nie
Престарелый Амигодум
Престарелый Амигодум
 
Сообщения: 240
Зарегистрирован: 23 сен 2011, 17:25
Откуда: Ленинградская область

Re: Эмулятор флопа от floppydrive.eu

Сообщение tnt23 15 фев 2014, 20:56

Я все равно не понял, какая связь INDEX и доступа к карте :)

А сейчас если б делать, я бы посмотрел в сторону STM32. Тактовая 72МГц, RAM хватает на пару дорожек легко, куча периферии, удобней PIC (глубокое IMHO :))
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Эмулятор флопа от floppydrive.eu

Сообщение da-nie 15 фев 2014, 21:16

Да просто сигнал index занимает 5 мс. Вот в это время и можно записывать на SD-карту. :)

Я бы тоже с радостью взял бы STM32. Я их уже попробовал на отладочной плате и на работе на контроллерах Миландр'а (1986ВЕ92). Но корпус LQFP у них ужасен - я с таким на ЛУТ намучаюсь... У Миландра корпуса для меня лучше, но цена огромная...

Вообще, взял atmega16 с микросхемой динамической памяти на 256 Кбит. Может, успею в неё кидать данные хотя бы для дисковода на 360 К. :roll:
Мой репозиторий: https://github.com/da-nie
Мои статьи: https://habr.com/ru/users/da-nie/posts/
Моё видео: https://www.youtube.com/channel/UCUroi3D5Kf1WxDzg3ON852g/videos
Аватара пользователя
da-nie
Престарелый Амигодум
Престарелый Амигодум
 
Сообщения: 240
Зарегистрирован: 23 сен 2011, 17:25
Откуда: Ленинградская область

Re: Эмулятор флопа от floppydrive.eu

Сообщение tnt23 15 фев 2014, 21:57

5мс на индекс да, наверное здорово, но тогда теряется совместимость с амигой :)

QFP не страшные совсем, если освоить ЛУТ с ламинатором или фотоспособом. Шаг и дорожки 0.2 получаются стабильно и без проблем.

Мой эмулятор на меге 16МГц и с внешней динамической памятью успевает писать DD-поток на пределе, сплошные tight loops на ассемблере с кропотливым мониторингом сигналов. Так что только STM32, только хардкор!
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Эмулятор флопа от floppydrive.eu

Сообщение da-nie 15 фев 2014, 22:46

Не, я пока не могу на фотолитографию перейти. У нас кто пробовал дома, говорили, что получается классно, но возьни с ней так же много. Я, впрочем, 0.5 делал и обычным ЛУТ - только травить купоросом надо - он сильно медленнее и поэтому равномернее травит. Получалось. Но трудоёмко, конечно.
Кстати, никто не знает, какие в СПб есть магазины радиодеталей кроме бывшей Мегаэлектроники, Чип И Дип и Микроники? Я когда-то на Большой Пушкарской в какой-то магазин ходил, но за давностью лет всё нафиг вынесло из памяти. 8)
Мой репозиторий: https://github.com/da-nie
Мои статьи: https://habr.com/ru/users/da-nie/posts/
Моё видео: https://www.youtube.com/channel/UCUroi3D5Kf1WxDzg3ON852g/videos
Аватара пользователя
da-nie
Престарелый Амигодум
Престарелый Амигодум
 
Сообщения: 240
Зарегистрирован: 23 сен 2011, 17:25
Откуда: Ленинградская область

Re: Эмулятор флопа от floppydrive.eu

Сообщение tnt23 16 фев 2014, 11:44

На Пушкарской когда-то и была Мегаэлектроника, потом переехала на Васильевский, а сейчас их купила Терра.
Если время и удобство несущественны, то рекомендую интернет-магазин Элитан (Ижевск). В Питере еще есть некая База Электроники где-то в районе Лиговки, народ хвалит.
A500, A600, A1200, A3000
Аватара пользователя
tnt23
Беспардонный Амигофлуд
Беспардонный Амигофлуд
 
Сообщения: 1293
Зарегистрирован: 17 май 2005, 16:59
Откуда: Санкт-Петербург

Re: Эмулятор флопа от floppydrive.eu

Сообщение da-nie 16 фев 2014, 11:53

Спасибо. На Лиговском есть Промэлектроника, как мне сообщили: http://www.promelspb.ru/ Надо попробовать. :)
Мой репозиторий: https://github.com/da-nie
Мои статьи: https://habr.com/ru/users/da-nie/posts/
Моё видео: https://www.youtube.com/channel/UCUroi3D5Kf1WxDzg3ON852g/videos
Аватара пользователя
da-nie
Престарелый Амигодум
Престарелый Амигодум
 
Сообщения: 240
Зарегистрирован: 23 сен 2011, 17:25
Откуда: Ленинградская область

Re: Эмулятор флопа от floppydrive.eu

Сообщение da-nie 18 фев 2014, 21:34

Попытка сделать на атмега16 с внешним ОЗУ на 256 килобит пока не увенчалась успехом. Развёртка дорожки уложилась в 47 тактов, что чуть более, чем дофига. При попытке форматировать, компьютер уверят, что нулевую дорожку не может записать, при том, что работа идёт с внешним ОЗУ.
Почитал в инете про floppydrive.eu, описанный в этой теме - автор сообщает о том, что используются на SD-карте файлы формата WinImage. Есть у меня подозрение, что этот эмулятор всё-таки не умеет писать файлы на виртуальный диск. Скорее всего, просто SD-карта запускается в режиме непрерывной передачи блоков и напрямую выдаёт развёртку диска.
Мой репозиторий: https://github.com/da-nie
Мои статьи: https://habr.com/ru/users/da-nie/posts/
Моё видео: https://www.youtube.com/channel/UCUroi3D5Kf1WxDzg3ON852g/videos
Аватара пользователя
da-nie
Престарелый Амигодум
Престарелый Амигодум
 
Сообщения: 240
Зарегистрирован: 23 сен 2011, 17:25
Откуда: Ленинградская область

Re: Эмулятор флопа от floppydrive.eu

Сообщение ahelet 28 июл 2014, 14:02

Это полно ценный эмулятор, читает и пишет.
Во всех видео также сделана запись на дискету снова читать чтобы убедиться, что информация сохраняется.

расширения файлов поддерживаемые эмулятором:
IMA,VFD,DOS,BIN,CHS,CPM,DAT,D80,DSD,DSK,FLP,IMG,ISO,OUT,S50,SSD,TRD
ahelet
Юный Амигофренд
Юный Амигофренд
 
Сообщения: 9
Зарегистрирован: 30 авг 2013, 00:12

Пред.

Вернуться в Железо Classic Amiga

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

cron