PDA

Просмотр полной версии : Замена ВГ93



homeness
22.12.2007, 11:06
Доброго времени суток!

Занялся, наконец, реализацией давней идеи. Опишу вкратце:

Устройство будет устанавливаться в панельку на место ВГ93, дополнительно на платку должны будут заводиться сигналы выбора дисковода и стороны с разъема дисковода. Устройство будет эмулировать нное количество дисководов, считывая и записывая образы оных с SD/MMC карт. Будут поддерживаться файловые системы FAT16/32. Дабы ничего не менять в целевой схеме Спектурмов, интерфейс с устройством реализован через спец. дорожку (255?), записывая и считывая данные с которой можно будет монтировать образы, демонтировать, работать с каталогом карточки, обновлять ПО МК и пр. В качестве перспективного бонуса, предполагаю реализовать простой TCP/IP стек там же. Через езернет и ppp/rs232. Устройство самостоятельно сможет принимать и передавать файлы с/на образов дискет. Ну и пр. В данный момент использую PIC18F4420 вместо планируемого PIC18F97J60 из-за ограниченного ресурса перепрошиваний последнего. Прошу уважаемых форумчан высказать свое мнение по поводу моей разработки :) Комментарии и пожелания приветсвуются.

AlexBel
22.12.2007, 11:59
Доброго времени суток!

Занялся, наконец, реализацией давней идеи. Опишу вкратце:

Устройство будет устанавливаться в панельку на место ВГ93, дополнительно на платку должны будут заводиться сигналы выбора дисковода и стороны с разъема дисковода. Устройство будет эмулировать нное количество дисководов, считывая и записывая образы оных с SD/MMC карт. Будут поддерживаться файловые системы FAT16/32. Дабы ничего не менять в целевой схеме Спектурмов, интерфейс с устройством реализован через спец. дорожку (255?), записывая и считывая данные с которой можно будет монтировать образы, демонтировать, работать с каталогом карточки, обновлять ПО МК и пр. В качестве перспективного бонуса, предполагаю реализовать простой TCP/IP стек там же. Через езернет и ppp/rs232. Устройство самостоятельно сможет принимать и передавать файлы с/на образов дискет. Ну и пр. В данный момент использую PIC18F4420 вместо планируемого PIC18F97J60 из-за ограниченного ресурса перепрошиваний последнего. Прошу уважаемых форумчан высказать свое мнение по поводу моей разработки :) Комментарии и пожелания приветсвуются.

Подобной разработкой сам занялся примерно год назад. В качестве контроллера был выбран PIC18F452, в последствии замененный на 4520. Использовалась библиотека MMCFAT (или как она называется, подзабыл) под компилятор CCS. Был задействован сигнал /WAIT Z80.
После того, как погибли исходники после неудачного бэкапа, проект начал заново переписываться на PIC24FJ64GA004 - фотографию платы нового эмулятора я даже выкладывал в форуме. Соответственно, стал использовать другой компилятор С30 от Микрочипа. Библиотека FAT также взята на сайте Микрочипа. Причин такой смене контроллера несколько:
1. Объем оперативной памяти 8 килобайт - позволяет кэшировать в памяти сразу всю дорожку, что очень удобно и ускоряет работу.
2. Наличие адресуемого PSP (у PIC18 PSP не адресуемый) позволило аппаратно эмулировать 4 регистра ВГ93 и отказаться от использования /WAIT.
3. Производительность при питании от 3.3в - 16МИПС (использование внутреннего генератора на 8МГц + PLL) - шустрее, чем 18F452 на 40МГц. Хотя это, скажем, не была причина замены контроллера, но все равно приятно.
4. Функция ремаппинга сигналов на выводы контроллера - существенно облегчает разводку печатной платы, у 24FJ64GA004 ремаппируется более 20 вывоодов. Ну прям CPLD :)
Недостаток (если это недостаток) - необходимость сопряжения PIC24 с 5-вольтовыми сингалами.

Кроме эмуляции контроллера дисковода не планировал никаких функций - изернет и RS232 мне кажутся просто смешными излишествами (особенно изернет), но это лично мое мнение, я его никому не навязываю.
Сейчас работа над эмулятором идет... как бы сказать... вяло, очень вяло - времени на все катастрофически не хватает. Над аналогичным девайсом, только на базе AVR работает и, насколько я знаю, успешно ILoveSpeccy.
В настоящее время накоплено довольно большое количество информации по ВГ93, более, чем достаточное для разработки его эмулятора. Были бы желание и время. Если серьезно решил заняться эмулятором дисковода, то вот:
1. Еще раз продумай, какой контроллер использовать. Взвесь все "за" и "против". Если тебя пугает "PIC24" то поверь - эти контроллеры можно без проблем приобрести в московском "Тритоне" (trt.ru) и стоят они едва ли дороже PIC18 - поверь, сам там отовариваюсь. Там же приобрел превосходны йи недорогой программатор PICkit2 - если у тебя его нет, то очень советую приобрести - программатор от Микрочипа и с многоми кристаллами может использоваться как дебагер.
2. Как будет происходить просмотр и выбор имеющихся на SD-карте образов дисков? На LCD или будешь использовать для этого сам спектрум?
3. Какой тип образов будет использоваться? Я, например, сперва использовал *.trd, потом, со сменой контроллера, перешел на более, на мой взгляд удобный, *.udi.

ZEK
22.12.2007, 13:51
А как на микроконтролере тайминги нужные организовывать?
К примеру время шага головки, начала следующего сектора, период индексной метки ??
Причем пока эти интервалы отсчитываются контролер дисковерта должен корректно отрабатывать обращения к его портам, к примеру некоректные таминги шагов на дорожку могут повлечь неработу некоторого софта

короче нюансов валом, стоит хотябы US изучить поподробней, там SMT очь много чего вылизал, да и то темные моменты остались. Допустим механизм сбоя снхронизации при длинном чтении дорожки и т.д.

AlexBel
22.12.2007, 14:05
А как на микроконтролере тайминги нужные организовывать?
К примеру время шага головки, начала следующего сектора, период индексной метки ??
Причем пока эти интервалы отсчитываются контролер дисковерта должен корректно отрабатывать обращения к его портам, к примеру некоректные таминги шагов на дорожку могут повлечь неработу некоторого софта

короче нюансов валом, стоит хотябы US изучить поподробней, там SMT очь много чего вылизал, да и то темные моменты остались. Допустим механизм сбоя снхронизации при длинном чтении дорожки и т.д.

Тайминги на микроконтроллерах организовываются с помощью задержек, прерываний по таймеру, RTOS и подобных средств. :)
Кому нужно - пусть эмулируют работу ВГ93 с точностью до пикосекунды, а мне, например, достаточно было сформировать тольки индексные импульсы, причем временные параметры я установил примерно. При этом меня совершенно не интересовали те очень немногие программы, которые жестко привязаны к временным характеристикам ВГ93, если на тысячу программ не пойдут одна-две - не страшно.
Так что не нужно людей пугать "таймингами", можно обойтись без их точного копирования, в зависимости от того, что требуется.

ZEK
22.12.2007, 15:36
Ну тогда это не замена, а просто примерная эмуляция ;)

Добавлено через 38 секунд
Достижимая более простыми методами (vTRDOS к примеру)

Добавлено через 3 минуты
Смысла не пойму замарачиваться с форматами которые позволяют чудить с межсекторными промежуткаи и прочими замаладями не выдерживая таймингов, если эмулить то trd с головой, если замена то все приколы прямого доступа и тайминги в том числе необходимы

AlexBel
22.12.2007, 16:03
Ну тогда это не замена, а просто примерная эмуляция ;)

Добавлено через 38 секунд
Достижимая более простыми методами (vTRDOS к примеру)

Добавлено через 3 минуты
Смысла не пойму замарачиваться с форматами которые позволяют чудить с межсекторными промежуткаи и прочими замаладями не выдерживая таймингов, если эмулить то trd с головой, если замена то все приколы прямого доступа и тайминги в том числе необходимы

Примерная эмуляция, замена... Человек собрался делать эмулятор контроллера ВГ93, я ему просто рассказал, что и почему делал я. Если его заинтересует - расскажу подробности. Вот и все.
Ты можешь что-то сказать по существу - "вот это я изучал, вот это я сделал, это сделал по этому, а это - поэтому"? Можешь? Расскажи.
мне, например, нужно было, чтобы эмулятор работал в TR-DOS и поэтому я не собирался эмулировать в нем команды, не используемые в TR-DOS. Мне это не нужно! Поэтому на теории о правильной эмуляции я ответил бы - так сделай!
И неплохо бы спросить homeness о том, что ему нужно получить в результате - точную копию ВГ93 или, как мне, просто возможность грузить игрушки?
И вопрос - ты изучал работу 1818ВГ93?

ZEK
22.12.2007, 16:36
Можешь? Расскажи.
мне, например, нужно было, чтобы эмулятор работал в TR-DOS и поэтому я не собирался эмулировать в нем команды, не используемые в TR-DOS.
Я не мешки ворочю а занимаюсь противоположностью. :)


Поэтому на теории о правильной эмуляции я ответил бы - так сделай!
Максимально что возможно было по эмуляции добиться уже давно сделанно, кури US, а не занимайся велосипедо-изысканиями. Есть базис формально описаный по самое немогу, вот его к примеру и можно переносить.


И неплохо бы спросить homeness о том, что ему нужно получить в результате - точную копию ВГ93 или, как мне, просто возможность грузить игрушки?
для просто грузить vTRDOS ???


И вопрос - ты изучал работу 1818ВГ93?
Самую малость, всего лиш до такого уровня что бы описать в hdl

Вердикт, пора бы уже не каждому с нуля заниматься изобритательством, а хотябы ознакомиться с уже накопленном опытом, и дотачивать существующее. Очь много времени и сил уходин на занятия архиологией, а нада всего лиш осмотреться по сторонам.

Если что не бейте сильно.

AlexBel
22.12.2007, 16:38
Я не мешки ворочю а занимаюсь противоположностью. :)

Максимально что возможно было по эмуляции добиться уже давно сделанно, кури US, а не занимайся велосипедо-изысканиями. Есть базис формально описаный по самое немогу, вот его к примеру и можно переносить.

для просто грузить vTRDOS ???

Самую малость, всего лиш до такого уровня что бы описать в hdl

Вердикт, пора бы уже не каждому с нуля заниматься изобритательством, а хотябы ознакомиться с уже накопленном опытом, и дотачивать существующее. Очь много времени и сил уходин на занятия архиологией, а нада всего лиш осмотреться по сторонам.

Если что не бейте сильно.

Все понятно, продолжать не вижу смысла.

homeness, чем смогу - помогу, если что - стучи в асю.

ZEK
22.12.2007, 16:40
Гы.
Просто не вьеду почему все в упор игнорируют существующее и работающее, а изобретают костыли??

homeness
22.12.2007, 17:38
Подобной разработкой сам занялся примерно год назад. В качестве контроллера был выбран PIC18F452, в последствии замененный на 4520. Использовалась библиотека MMCFAT (или как она называется, подзабыл) под компилятор CCS. Был задействован сигнал /WAIT Z80.
После того, как погибли исходники после неудачного бэкапа, проект начал заново переписываться на PIC24FJ64GA004 - фотографию платы нового эмулятора я даже выкладывал в форуме. Соответственно, стал использовать другой компилятор С30 от Микрочипа. Библиотека FAT также взята на сайте Микрочипа. Причин такой смене контроллера несколько:
1. Объем оперативной памяти 8 килобайт - позволяет кэшировать в памяти сразу всю дорожку, что очень удобно и ускоряет работу.
2. Наличие адресуемого PSP (у PIC18 PSP не адресуемый) позволило аппаратно эмулировать 4 регистра ВГ93 и отказаться от использования /WAIT.
3. Производительность при питании от 3.3в - 16МИПС (использование внутреннего генератора на 8МГц + PLL) - шустрее, чем 18F452 на 40МГц. Хотя это, скажем, не была причина замены контроллера, но все равно приятно.
4. Функция ремаппинга сигналов на выводы контроллера - существенно облегчает разводку печатной платы, у 24FJ64GA004 ремаппируется более 20 вывоодов. Ну прям CPLD :)
Недостаток (если это недостаток) - необходимость сопряжения PIC24 с 5-вольтовыми сингалами.

Кроме эмуляции контроллера дисковода не планировал никаких функций - изернет и RS232 мне кажутся просто смешными излишествами (особенно изернет), но это лично мое мнение, я его никому не навязываю.
Сейчас работа над эмулятором идет... как бы сказать... вяло, очень вяло - времени на все катастрофически не хватает. Над аналогичным девайсом, только на базе AVR работает и, насколько я знаю, успешно ILoveSpeccy.
В настоящее время накоплено довольно большое количество информации по ВГ93, более, чем достаточное для разработки его эмулятора. Были бы желание и время. Если серьезно решил заняться эмулятором дисковода, то вот:
1. Еще раз продумай, какой контроллер использовать. Взвесь все "за" и "против". Если тебя пугает "PIC24" то поверь - эти контроллеры можно без проблем приобрести в московском "Тритоне" (trt.ru) и стоят они едва ли дороже PIC18 - поверь, сам там отовариваюсь. Там же приобрел превосходны йи недорогой программатор PICkit2 - если у тебя его нет, то очень советую приобрести - программатор от Микрочипа и с многоми кристаллами может использоваться как дебагер.
2. Как будет происходить просмотр и выбор имеющихся на SD-карте образов дисков? На LCD или будешь использовать для этого сам спектрум?
3. Какой тип образов будет использоваться? Я, например, сперва использовал *.trd, потом, со сменой контроллера, перешел на более, на мой взгляд удобный, *.udi.

18F97J60 я выбрал из-за наличия Ethernet. Других у Микрочипа нет пока. А Микрочип выбрал из-за наличия ICD2 у меня :) Быстродействия хватает. С разводкой проблем нет, один чип на схеме :) Пишу на асме, никаких библиотек не использую. Вижу, если что, сразу где я успеваю, а где - нет. Что касается наличия или отсутсвия адресного PSP... ну, скажем, за 200 нс - 300 нс я успею прочитать и PSP, и A0/A1. Так что, WAIT не нужен. Или я ошибаюсь? :) Насчет цены МК, по барабану :) Покупаю для себя штучно. Не TI :) В Терраэлектронике. Через диллера в А-те. Насчет образов, да все равно, это дело 25-ое. Я формат имею в виду. Хотелось бы, достичь 100% совместимости с ВГ93. Мне не нравится vTR-DOS :( Не работает многое. И вообще, идея не очень. Видел в продаже "дискету" с MS слотом. Чего она мулит, одну дискету? Да, забыл. Интерфейс с девайсом планирую сделать черех спец. дорожку, никаких лсд. Не спортивно. Вижу уже что-то вроде коммандера/шела. :)

Добавлено через 5 минут

Ну тогда это не замена, а просто примерная эмуляция ;)

Добавлено через 38 секунд
Достижимая более простыми методами (vTRDOS к примеру)

Добавлено через 3 минуты
Смысла не пойму замарачиваться с форматами которые позволяют чудить с межсекторными промежуткаи и прочими замаладями не выдерживая таймингов, если эмулить то trd с головой, если замена то все приколы прямого доступа и тайминги в том числе необходимы

vTR-DOS меня не устраивает в принципе. Согласен с тем что нужно эмулить на 100%. Этого я буду добиваться. Мне это лично интересно :)

Добавлено через 13 минут

Гы.
Просто не вьеду почему все в упор игнорируют существующее и работающее, а изобретают костыли??

Что работающее? Еле нашел себе хард, который у меня заработал... ну ладно, перегнал дискеты на хард, какой-то статистики не собрал, но 2/3 того что я пробовал с vTR-DOS просто не запустилось. Мне не нужен жесткий диск! CF? пробовал, не нашел работающих экземпляров. TwinMOS 4GB, Kodak 20M, Transend разных калибров не заработали! Transend с IDE разъемом, купил такие, тоже не заработали :( Вместо шлейфа втыкаются в пц и работают, на ATM не заработали. Ну и ладно. Вот флопы работают! :)

Добавлено через 18 минут

Примерная эмуляция, замена... Человек собрался делать эмулятор контроллера ВГ93, я ему просто рассказал, что и почему делал я. Если его заинтересует - расскажу подробности. Вот и все.
Ты можешь что-то сказать по существу - "вот это я изучал, вот это я сделал, это сделал по этому, а это - поэтому"? Можешь? Расскажи.
мне, например, нужно было, чтобы эмулятор работал в TR-DOS и поэтому я не собирался эмулировать в нем команды, не используемые в TR-DOS. Мне это не нужно! Поэтому на теории о правильной эмуляции я ответил бы - так сделай!
И неплохо бы спросить homeness о том, что ему нужно получить в результате - точную копию ВГ93 или, как мне, просто возможность грузить игрушки?
И вопрос - ты изучал работу 1818ВГ93?


Я хочу сделать эмулятор ВГ93 со стороны компа как минимум, а как максимум и со стороны флопа... Странно делать эмулятор флопа ибо не обойти существующие ограничения ВГ93. Чисто програмно в Спекке тоже не сэмулируешь. И я хочу "ВГ93" использовать в качестве интерфейса с TCP/IP стэком! Хоть кому-то это кажеться смешным. ВГ93 изучал по докам WD.

AlexBel
22.12.2007, 18:03
Я хочу сделать эмулятор ВГ93 со стороны компа как минимум, а как максимум и со стороны флопа... Странно делать эмулятор флопа ибо не обойти существующие ограничения ВГ93. Чисто програмно в Спекке тоже не сэмулируешь. И я хочу "ВГ93" использовать в качестве интерфейса с TCP/IP стэком! Хоть кому-то это кажеться смешным.

О нет, я ни в коем случае не хочу высмеять идею IP-стеком. Наверное, я в этом плане неправильно выразился. Правильнее сказать - лично я не вижу в этом никакого практического смысла, разве что эксперимент "заработает/не заработает". Повторюсь - это исключительно мое мнение и, в общем-то, наверное даже не стоило его высказывать.
По самому эмулятору, получается, что у нас разные позиции: для меня спектрум - старый игровой компьютер, на котором мне нравятся некоторые старые игры. И при разработке эмулятора дисковода я ставил перед собой задачу тольько запускать игры. Даже функции записи не собирался делать...

ZEK
22.12.2007, 18:28
ВГ93 изучал по докам WD.
К сожалению дока отнють не исчерпывающая, и очень многого из неё не ясно, многие неясности можно из тоже US вытянуть, так как по максимуму для проца создает реальную ВГшку.

fan
23.12.2007, 01:09
Ктонить скажите плиз ху из WD & US ? %)

Black_Cat
23.12.2007, 01:17
ху из WD & US ? :) WD - производитель микросхемы контроллера флопа WD1793
US - unreal spectrum - эмуль :)

caro
23.12.2007, 09:31
:) WD - производитель микросхемы контроллера флопа WD1793Фирма называется Western Digital.

homeness
24.12.2007, 09:58
Увы, PIC18 без дополнительно буферизации не пригоден для этой цели, AlexBel был прав :) Прерывание от PSP приходит по положительному фронту ~WR/~RD и на чтение адреса остается 30-40 нс. Если не пользоваться PSP, а работать сразу по ~CS, то тоже не получается. Всю процедуру обработки шины за 200 нс не сделать :)

ZEK
24.12.2007, 10:10
По мне так самый реальный вариант

Патч тырдос + CPLD + внешная рама + микроконтролер

CPLD - для эмуляции из обычной рамы двухпортовки и эмуляцию регистра данных WD1793
RAM - для MFM образа дорожки
Мелкоконтролер для обработки команд ВГшки, работы с FAT32, MMC, и записью образа дорожки во внешную раму.

Патч тырдоса, хотябы для того что бы не резать машинки к примеру перехват записи чтения порта FF который опять же для исключения задержек может быть в CPLD, так же как и текищие номера дорожек, секторов и т.д. тобиш для безваитовости

AlexBel
24.12.2007, 17:06
По мне так самый реальный вариант

Патч тырдос + CPLD + внешная рама + микроконтролер

CPLD - для эмуляции из обычной рамы двухпортовки и эмуляцию регистра данных WD1793
RAM - для MFM образа дорожки
Мелкоконтролер для обработки команд ВГшки, работы с FAT32, MMC, и записью образа дорожки во внешную раму.

Патч тырдоса, хотябы для того что бы не резать машинки к примеру перехват записи чтения порта FF который опять же для исключения задержек может быть в CPLD, так же как и текищие номера дорожек, секторов и т.д. тобиш для безваитовости

Именно подобные мысли меня привели к использованию PIC24FJ64GA004. У него 8 килобайт на борту (хватит и для работы FAT и для кэширования всего трека), и адресуемый PSP (избавляет от необходимости софтверно эмулировать 4 регистра ВГ93) и производительность 16МИПС (совместно с адресуемым PSP избавляет от необходимости использовать WAIT и патчить тырдос). Я не говорю, что нужно использовать именно PIC24FJ64GA004 - пойдет любой контроллер с подходящими характеристиками и необходимой периферией на борту.
Зачем же патчить тырдос (теряется универсальность устройства - кроме обычной установки эмулятора в панельку нужно еще и ПЗУ перепрошивать. Всем ли это доступно?), зачем использовать CPLD и врешнюю раму (зачем лишние корпуса и лишняя работа, если можно обойтись одним контроллером?)???

Добавлено через 2 минуты

Увы, PIC18 без дополнительно буферизации не пригоден для этой цели, AlexBel был прав :) Прерывание от PSP приходит по положительному фронту ~WR/~RD и на чтение адреса остается 30-40 нс. Если не пользоваться PSP, а работать сразу по ~CS, то тоже не получается. Всю процедуру обработки шины за 200 нс не сделать :)

Во время экспериментов я пробовал переписать процедуру обмена на асме (используя команды PIC18, например MOVFF, существенно экономящие тики). В принципе уложиться можно, но "только-только". после этого решил использовать WAIT...
Спроси у ILoveSpeccy, он пошел по подобному пути - использует AVR и задействовал WAIT. Насколько я знаю, он уже добился определнного успеха :)
То ILoveSpeccy: Дим, ничего, что я тебя так сдаю? ;)

ZEK
24.12.2007, 18:00
Попробую конструктивно ;)


У него 8 килобайт на борту (хватит и для работы FAT и для кэширования всего трека)
Память внутрення и что бы к ней ломиться нада прерывать мелкоконтролер, а ваще по минимуму хватило бы 1Кб (512буфер скетора, 480 байт-номера класеров по которым размещены дорожки)
Для полного MFM образа дорожки нада 6 с гэком килобайт. В случае работы на уровне TRD файлов нужно только 256байт.


и производительность 16МИПС (совместно с адресуемым PSP избавляет от необходимости использовать WAIT и патчить тырдос).
Да не в мипсах дело а в латентности, потому как для многих относительно больших по коду кусков очтводиться оч. мало времени.


Зачем же патчить тырдос (теряется универсальность устройства - кроме обычной установки эмулятора в панельку нужно еще и ПЗУ перепрошивать. Всем ли это доступно?),
А каким образом ты будеш отлавливать к примкру выбраную сторону диска, номер дисковерта (сидеть с паяльником и напаивать,напаивать, напаивать соплей ?)
А как насчет опрашивать с достаточно часто сигнал индекса от флоповода, который тырдос дергает к примеру для того что бы остановить диск, и тому подобные нюансы


зачем использовать CPLD и врешнюю раму (зачем лишние корпуса и лишняя работа, если можно обойтись одним контроллером?)???
А затем что не нада тогда дергать и прерывать мелкоконтролер только ради того что бы он выдал байтик из внутреней памяти. К томуже на 99% уверен что мелкоконтролер без вайта жуткого просто напросто неуспеет, а еще во внешней раме можно несколько дорожек хранить.

AlexBel
24.12.2007, 19:17
heroy, я без цитирования отвечу, много места тратится.

1. Для того, чтобы удобно было работать с образами TRD, на SD-карте нужно использовать файловую систему FAT. В этом случае можно будет просто записывать образы на карту в виде файлов. Для работы с FAT контроллеру требуется ОЗУ. Ориентировочно - 1 килобайт и выше. Для работы с TR-DOS можно использовать и не 256 байт - во время первых экспериментов я использовал для кэширования дорожки всего 16 байт, постоянно подгружая данные сектора. Это неудобно. Гораздо удобнее закэшировать сразу всю дорожку. Да, вся дорожка, включая служебную информацию, занимает более 6 килобайт. Ну и что? В чем проблема? Как я уже писал - возьми контроллер, у которого достаточно памяти на борту. Есть современные контроллеры, которые ее имеют, зачем жадничать? Мы что, в каменном веке живем?
2. Вообще-то я писал про "МИПСы + адресуемый PSP". И раз уж я писал про это вместе, так и ты в ответе не разрывай. Лишняя производительность контроллера еще никому во вред не пошла. А насчет больших кусков... У меня один знакомый жаловался, что у него "прерывания тормозят". Я посмотрел его исходник - более килобайта тяжелого кода в прерывании! Так что при корректном построении программы проблем не возникнет.
3. Насчет "отлавливания выбранной стороны диска". Если для тебя подпаять один проводок к сигналу SIDE - это "напаивать, напаивать, напаивать соплей", то... даже не знаю, что сказать... Ну, не пишет тырдос номер стороны в индексное поле, что поделать... Насчет формирования индексного импульса не вижу никаких проблем. Уже делал, правда, без особого соблюдения периодичности. Какие еще есть нюансы?
4. А почему это не дергать и не прерывать процессор? Чем это ненормально? Ну и пусть дергается и прерывается - у него работа такая. Или изнашиваться будет быстрее от прерываний и дерганий? И позволь вопрос - ЧТО ИМЕННО не успеет контроллер без вайта жуткого? Ответь, пожалуйста, на этот вопрос, памятуя об АППАРАТНОМ АДРЕСУЕМОМ PSP.
5. Конечно, в внешней памяти можно хранить несколько дорожек. Даже не несколько, а все. Только зачем? Сколько времени требуется дисководу на перемещение головки на нужную дорожку? Сколько времени отводится на успокоение головки? И после успокоения когда фактически начнут читаться/писаться данные? Сложи все три временных промежутка и подумай, сколько времени потребуется контроллеру на чтение дорожки из образа на SD-карте и размещение ее в своей памяти? И тут, кстати, очень не лишними окажутся хорошие МИПСы.

И последний вопрос - разработка любого проекта на микроконтроллере должна начинаться с подбора самого контроллера. Для этого нужно хорошо представлять себе, какие ресурсы могут потребоваться для выполнения поставленной задачи. И с учетом этого выбирать контроллер, желательно с запасом по ресурсам. Так почему ты торгуешься "здесь 256 байт, там килобайт..." вместо того, чтобы просто выбрать контроллер, которому проблема будет "по зубам"?

homeness
25.12.2007, 08:08
Не надо про сопли говорить. SIDE и выбор флоповода можно брать с разъема самого флоповода. Где сопли? На плате Спека и паять-то ничего не нужно, вообще. Что касается быстродействия PIC18 (на частоте 40МГц) MOVFF выполняется за 200 нс.
Не успеть никак. С другой стороны, а почему бы не использовать WAIT? Во время загрузки/подзагрузки какая разница, есть WAIT или нет? Ничем он не помешает. А вот PSP PIC18 каким образом использовать я, вообще, не понимаю :) Чтобы успеть прочитать шину нужно сразу по приходу CS делать WAIT :) А если по PSPIF то на M3 уже актуальных данных на шине не останеться...

ZEK
25.12.2007, 09:14
Так почему ты торгуешься "здесь 256 байт, там килобайт..." вместо того, чтобы просто выбрать контроллер, которому проблема будет "по зубам"?
Яж гороворю - голову в песок и по сторонам не смотрим. Читаем хотя внимательно пост про ZXMC, там мелкоконтролер даже из предварительно расчитаной таблички не успевает читать без вайта, а ты мне зарежаеш что можно ВГшку так сбацать

Я конечно надеюсь что я не прав :)


И последний вопрос - разработка любого проекта на микроконтроллере должна начинаться с подбора самого контроллера.
А разработка железки ваще начинается в выбора наиболее подходящей нструментальной базы.

Добавлено через 2 минуты

Не надо про сопли говорить. SIDE и выбор флоповода можно брать с разъема самого флоповода.
Можно, тока не кошерно :) Так можно было вставить платко вместо ВГшки и фсё.



С другой стороны, а почему бы не использовать WAIT? Во время загрузки/подзагрузки какая разница, есть WAIT или нет?
А в чем тогда будет преимущества перед тем же самым vTR-DOS ??

ASDT
25.12.2007, 09:21
"Читаем хотя внимательно пост про ZXMC"
А мы понимаем, что pic24 несколько другой контроллер? ...

ZEK
25.12.2007, 09:27
А мы понимаем, что pic24 несколько другой контроллер?
PSP как бы не способен спасти всех отцов советской демократии. Да и 16 мипсов и в фрике 16

ASDT
25.12.2007, 10:22
"не способен спасти всех отцов "
Не факт ...

AlexBel
25.12.2007, 12:23
PSP как бы не способен спасти всех отцов советской демократии. Да и 16 мипсов и в фрике 16

Еще раз - АДРЕСУЕМЫЙ PSP. Знаешь отличие адресуемого PSP от неадресуемого? У него может быть несколько адресуемых регистров на чтение и запись. Т.е. - заводятся не только CS, WR и RD, но и адресные сигналы A0 и A1, которыми и выбирается регистр для записи-чтения. Аппаратно, понимаешь? Не нужно успевать при появлении /CS с пеной у рта читать сотояние адресных линий процессора, пока их состояние не изменилось - все за тебя сделает железка. А тебе остается только читать полученные данные или скармливать данные для чтения. И что ты прицепился к мипсам? Когда лишнее быстродействие было лишнее?
Честно говоря, не думал, что придется так все объяснять. Ты как будто не видишь, что я пишу именно про АДРЕСУЕМЫЙ PSP...

Добавлено через 9 минут

"Читаем хотя внимательно пост про ZXMC"
А мы понимаем, что pic24 несколько другой контроллер? ...

Это просто контроллер, характеристики которого, по моему скромному мнению, отвечают поставленной задаче :)

homeness
25.12.2007, 12:48
Если к PIC18 подключить WR/RD/A0/A1 так чтобы порт формировал адрес для перехода к 8 возможным участкам кода - обработчикам регистров, то теоретически в не турбо режиме можно успеть :)

INT: ; 100-200 нс

MOVF PORTD,W ; 100 нс
MOVWF PCL ; 100 нс

HANDLER1:
NEGF TRISD ; 100 нс
MOVFF REG,PORTD ; 200 нс

HANDLER2:
MOVFF PORTD,REG ; 200 нс

т.е. 600-700 нс на чтение из порта и 500-600 на запись.

т.е. в ~800 нс влезаем :)

У меня нет PIC24, закать можно, но ждать долго, да и наработки у меня для PIC18 уже есть. Жалко все бросать :)

Кто-нибудь может сказать сколько примерно времени уходит на формирование CS для ВГ93 в среднем Спекке?

ASDT
25.12.2007, 13:17
"Это просто контроллер, характеристики которого, по моему скромному мнению, отвечают поставленной задаче "
Просто некоторые документацию не читают ...
И различий между мегой и пик24 не знают ...

Добавлено через 1 минуту
Да ..., пик24 вполне нормальное решение!
Жаль другим занят ...

homeness
25.12.2007, 13:33
Что делает процессор во время команд ввода-вывода в M3 цикле? Чем заняты шины в это время?

Добавлено через 19 часов 29 минут
Сам отвечу на свой вопрос :) Почитал доки и разочаровался, почему-то думал что работа с портом происходит в M2, а в M3 процессор обсасывает послепортовую работу... оказалось, что с портом он работает как раз в M3, так что, если вовремя шину МК не отдаст, то зависнет все нафиг :( PIC18 отдыхает :( Или может кто подскажет как организовать 4 внешних регистра чтобы и Z80 и PIC18 могли с ними работать? Z80 всегда, когда ему надо, мог бы читать и писать в регистры, а PIC18 по "уведомлению".

ASDT
26.12.2007, 10:11
"как организовать 4 внешних регистра "
Так и организовать ... поставить регистры :)

homeness
26.12.2007, 10:51
4 АП17 плюс прочая логика, большая схема получается :(

ASDT
26.12.2007, 11:41
Так вроде были нужны регистры ...?
Две мс вроде хватит ...

ZEK
26.12.2007, 14:40
4 АП17 плюс прочая логика, большая схема получается
CPLD ?? Причем логику нормальную можно сделать и 1 микруха за 3-5$ если какую нить EPM3064. В ней 64 тригера то есть можно в принципе регистры секторой дорожек разместить в ней, и управлять ими как нить укорочено,
к примеру со стороны мелкоконтолера

000 - idle
001 - Запись номера дорожки из мелкоконтролера
010 - Запись номера сектора из мелкоконтолера
100 - Номер сектора ++
101 - Номер сектора --
110 - Номер дорожки ++
111 - Номер дорожки --

Или что то в этом духе, в том смылсе что не нада постоянно формировать стробирующие сигналы и данные для записи в эти замые регистры

Добавлено через 12 часов 32 минуты
Во еще немаловажно
логика DRQ красиво ложиться в CPLD и прозрачно и гармонично будет работать с МК

к прмеру CPLD отлавила что подана команда записи сектора, она по логике WD1793 сразу выставляет DRQ требуя данные, после того как проц запишет их в регистр данных, CPLD снимает DRQ и посылает IRQ мелконтролеру, как только он их прочитал из регистра DRQ опять ввзводиться. С чтением таже ситуация но в обратную сторону. Причем микроконтролеру ваще париться с этой траблой не нада, так же CPLD биты занятости, ошибки может показывать и ваще раскладку регистра статуса в зависимости от поданной команды, что опять же разгрузит МК, также стоит расмотреть возможность отсеивания от МК в случае занятости всех команд кроме прерывания.

А ваще адресуемый PSP помогает только при записи в порты, а со чтением от него толку мало всеравно на прерывания цепляться прийдется, да и при записи тож прерывания нада, хотя бы что бы DRQ логику отрабатывать, короче от него пользы мож на пару трешку команд МК экономии.

homeness
27.12.2007, 08:14
"А ваще адресуемый PSP помогает только при записи в порты, а со чтением от него толку мало всеравно на прерывания цепляться прийдется, да и при записи тож прерывания нада, хотя бы что бы DRQ логику отрабатывать, короче от него пользы мож на пару трешку команд МК экономии."

Ну во-первых, 16 мипсов вместо 10 у PIC18, это уже само по себе сильно помогает ;) Во-вторых мипсы 24-ого значительно мипсее 18-ого (чтобы сохранить регистр при записи нужно 62 нс вместо 200) и даже если применять подход, который я предложил выше для PIC18, то и без адресного PSP 24-ый справится и, возможно, даже в турбе.

AlexBel
27.12.2007, 09:00
Ну во-первых, 16 мипсов вместо 10 у PIC18, это уже само по себе сильно помогает ;) Во-вторых мипсы 24-ого значительно мипсее 18-ого (чтобы сохранить регистр при записи нужно 62 нс вместо 200) и даже если применять подход, который я предложил выше для PIC18, то и без адресного PSP 24-ый справится и, возможно, даже в турбе.

А если кому мало, то можно вместо PIC24FJ взять PIC24FH, которые работают на 80МГц и, соответственно, имеют производительность 40МИПС :)
А заодно между делом на этом же ПИКе заэмулить Z80 :D
А адресуемый PSP, думаю, лучше использовать - раз есть такая приятная железка, то почему бы ей не воспользоваться?
Единственное, на мой взгляд, неудобство использования PIC24 - питание оного от 3.3v. Но согласовать уровни легко, так что это не проблема.

homeness
27.12.2007, 09:46
А что там согласовывать, на вход он и 5 в съест, разрешено. А на выход шина и так подтянута к 5 в.

AlexBel
27.12.2007, 09:56
А что там согласовывать, на вход он и 5 в съест, разрешено. А на выход шина и так подтянута к 5 в.

Согласен, входы толерантны к 5в, выходы можно сделать вообще с ОК. Но если использовать (если использовать, конечно!) PSP, то как в этом режиме будут работать выходы - не знаю, нужно курить даташит. Впрочем, думать об этом нужно, только если использовать PIC24. Я-то не очень думаю о согласовании, поскольку буду цеплять не к "Пентагону" или чему-то подобному, а к DE1, с которой проблем согласования не будет :)

homeness
27.12.2007, 10:25
Согласен, входы толерантны к 5в, выходы можно сделать вообще с ОК. Но если использовать (если использовать, конечно!) PSP, то как в этом режиме будут работать выходы - не знаю, нужно курить даташит. Впрочем, думать об этом нужно, только если использовать PIC24. Я-то не очень думаю о согласовании, поскольку буду цеплять не к "Пентагону" или чему-то подобному, а к DE1, с которой проблем согласования не будет :)

Там более Vdd разрешено только для цифровых выходов онли..., а значительная часть PMP зашарена вместе с аналоговыми входами. Если не понос, так золотуха ;)

ZEK
27.12.2007, 12:02
Согласен, входы толерантны к 5в, выходы можно сделать вообще с ОК. Но если использовать (если использовать, конечно!) PSP, то как в этом режиме будут работать выходы - не знаю, нужно курить даташит.
Да, это наверное самые большие проблеммы....

А ваще про пипсологию что бы немного подзадумались.
Допустим PIC24 дает нам полные 40MIPS то на 1 такт процессора исполняется всего лиш 11 команд, а за 2 тата за которые нада обычно сообразить мы всего 22 команды успеваем.
А если учесть что это самые узкие места, забитые ветвлениями и проверками....

К тому же в общем мелкконтролер справляется со своими задачами но ему не зхатает место в той части, где мелкаконтролер, мягко говоря не совсем оптимален.
В то же самое время CPLD может оень многое на себя взять и чисто оринтироваться по данным и командам от проца и ответам от мелкоконтролера, без всяких вайтов.

homeness
27.12.2007, 12:39
Кто бы еще этот CPLD сделал... ;) Самое узкое место - это диалог с шиной, который PIC24 делает аппаратно. Не думаю что здесь могут быть какие-то проблемы. А вот согласование шин - это бяка, я нашел три микрухи, которые могли бы помочь, но их не вижу в наличии ни в Росиии, ни тем более в КЗ.

SN74ALVC164245 - 2 x 8 буферов шины с Z-состоянием и сигналом направления 5В/3.3В.
Такие же устройства производятся фирмами IDT, Philips и др. Классика жанра.
ADG3300 - 8-канальный TVC с расширенным диапазоном (от 1.15В до 5.5В)
в миниатюрном корпусе TSSOP. Его преимущества - в доступности.
SN74CBTD16211 - 24-канальный TVC 5В/3.3В

Добавлено через 1 час 33 минуты
Нашел 74ALVC164245 в TTSOP-48, мелкая зараза...

AlexBel
27.12.2007, 14:28
Да, это наверное самые большие проблеммы....

А ваще про пипсологию что бы немного подзадумались.
Допустим PIC24 дает нам полные 40MIPS то на 1 такт процессора исполняется всего лиш 11 команд, а за 2 тата за которые нада обычно сообразить мы всего 22 команды успеваем.
А если учесть что это самые узкие места, забитые ветвлениями и проверками....

К тому же в общем мелкконтролер справляется со своими задачами но ему не зхатает место в той части, где мелкаконтролер, мягко говоря не совсем оптимален.
В то же самое время CPLD может оень многое на себя взять и чисто оринтироваться по данным и командам от проца и ответам от мелкоконтролера, без всяких вайтов.

А почему бы тебе не использовать конкретные цифры? Например: "команда OUT Z80 выполняется за столько-то времени. По описанию) на команды ввода-вывода у Z80 добавляется еще такт. За это время PIC24 успеет выполнить столько-то команд. Таким количеством команд ну никак не успеть обработать обращение Z80 к контроллеру!"
А CPLD чем фактически сможет помочь? успевать защелкивать данные, чтобы контроллер успел их потом прочитать? Как раз для этого и существует аппаратный PSP. А данные что из PSP, что из CPLD все равно нужно успевать читать и писать.
И если для чтения/записи из адресуемого PSP нужно просто обратиться к одному из регистров, то для той же операции с CPLD нужно для нее выставить кроме данных еще какие-то сигналы, чтобы она знала, что ей делать с данными. И получится, что "за что боролись, на то и напоролись". Или CPLD будет как-то иначе догадываться, что от нее нужно контроллеру?
В общем-то, на мой взгляд, CPLD могла бы помочь аппаратным формированием сигналов INTRQ и DRQ и, может быть, бита индексного импульса. Но ради этого, думаю, ее использовать не стоит...

Добавлено через 5 минут

Там более Vdd разрешено только для цифровых выходов онли..., а значительная часть PMP зашарена вместе с аналоговыми входами. Если не понос, так золотуха ;)

Да, но выводы, где аналоговые входы, переводятся в цифровой режим.

ZEK
27.12.2007, 15:07
Ладно политика партии ясна - МК наше всё.

Яж просто немного здравой критики пролил, врдуг у меня получилось пробудить дисидентские мысли :)

Искренне надеюсь что ваши варианты окажутся реализуемыми и воплощаемыми. А то понимаеш больше года уже без ВГшки загораю.

AlexBel
27.12.2007, 15:37
Ладно политика партии ясна - МК наше всё.

Яж просто немного здравой критики пролил, врдуг у меня получилось пробудить дисидентские мысли :)

Искренне надеюсь что ваши варианты окажутся реализуемыми и воплощаемыми. А то понимаеш больше года уже без ВГшки загораю.

Несколько непонятно (и, если честно - несколько неприятно) то, что твои аргументы в пользу использования CPLD совместно с контроллером сводятся к "контроллер не справится, всю интерфейсную часть нужно вешать на CPLD!". Насколько я понимаю, мы здесь ведем спор... э-э-э... дискуссию не для того, чтобы ткнуть собеседника в грязь лицом, а для того, чтобы найти оптимальный путь достижения цели, т.е. - создания эмулятора ВГ93.
Наверное, лучше чтобы каждый шел своим путем - я буду использовать PIC24, homeness будет использовать PIC18+Wait, ты сделаешь на CPLD+какой-то_контроллер. Ну, а когда работа будет закончена, похвалимся результатами :)
Кстати, если не секрет, за год "загорания без ВГ-шки" ты, наверное, занимался разработкой эмулятора на CPLD, раз так отстаиваешь свой вариант? Не поделишься наработками? Спрашиваю просто из интереса, а не затем, чтобы украсть идею :)

ZEK
27.12.2007, 16:51
наверное, занимался разработкой эмулятора на CPLD
В CPLD я даж боюсь представить скоко ВГшек влезет, може 0,05 мож мож больше :)

AlexBel
27.12.2007, 18:48
В CPLD я даж боюсь представить скоко ВГшек влезет, може 0,05 мож мож больше :)

Видимо, мне стоило написать как выше - "CPLD+какой-то_контроллер"

ZEK
27.12.2007, 18:51
Видимо, мне стоило написать как выше - "CPLD+какой-то_контроллер"
Ага тока FPGA + TV80, самое удобное решение

fan
28.12.2007, 03:27
FPGA + TV80, самое удобное решение
А главное самое дешёвое , покрайней мере в одноматричных компах .

homeness
28.12.2007, 08:38
На данный момент к чему я пришел:

PIC24FJ64GA004 1 шт.
74ALVC164245 2 шт. для согласования шин. Направление DB придется переключать по ~CS/~RD на выход.
LDO на 3.3 вольта 1 шт.

Пошел рисовать схему. Как только будет готова, сразу покажу ;)

Mikka_A
28.12.2007, 09:27
На данный момент к чему я пришел:

PIC24FJ64GA004 1 шт.
74ALVC164245 2 шт. для согласования шин. Направление DB придется переключать по ~CS/~RD на выход.
LDO на 3.3 вольта 1 шт.

Пошел рисовать схему. Как только будет готова, сразу покажу ;)


Удачи!!!! :v2_yahoo::v2_thumb:

AlexBel
28.12.2007, 10:45
На данный момент к чему я пришел:

PIC24FJ64GA004 1 шт.
74ALVC164245 2 шт. для согласования шин. Направление DB придется переключать по ~CS/~RD на выход.
LDO на 3.3 вольта 1 шт.

Пошел рисовать схему. Как только будет готова, сразу покажу ;)

Мэнэ нравыста ващ план, таварищ Ракассовский! :)

Я PIC-и приобретаю в московском "Тритоне" (trt.ru) - низкие цены, высылают наложкой (желательно заказ не менее 1000р), оперативно отвечают на письма. Впрочем, я, кажется, уже писал об этом...
Кстати, я, когда делал первый вариант на PIC18F452, то тоже включал АП6 с управлением по CS и RD, правда, потом выкинул за ненадобностью, перестраховался. Схема-то все равно 5-вольтовая была... :)
Кстати, в новом варианте я отказался от кварца, использовав нутряной генератор на 8МГц + PLL - те же 32МГц. В результате на плате оказался сам ПИК, гнездо для SD-карты, светодиод и гребенки разъемов. Ну, еще блокировочные емкости...

homeness
28.12.2007, 11:34
Вот, набросал:

ftp://ftp.cafemax.kz/pub/VG93EMV3.pdf

Добавлено через 6 минут
HLT и RES не туда приделал...

Добавлено через 9 минут
Точнее, все правильно символ не тот поставил на буфере :)

ZEK
28.12.2007, 12:39
Нада бы еще IP завести, а по хорошему можно было бы и RDY

AlexBel
28.12.2007, 13:05
Вот, набросал:

ftp://ftp.cafemax.kz/pub/VG93EMV3.pdf

Добавлено через 6 минут
HLT и RES не туда приделал...

Добавлено через 9 минут
Точнее, все правильно символ не тот поставил на буфере :)

А зачем 245-е на входные сигналы ПИКа? Он же 5в держит по цифровым входам. И когда использовал АП6, то /CS вешал на /OE, а DIR на /RD.
А как ты ВГ93 отключать будешь, чтобы она с эмулятором не конфликтовала?

Mikka_A
28.12.2007, 13:18
......А как ты ВГ93 отключать будешь, чтобы она с эмулятором не конфликтовала?

я думаю речь про то, что это будет вставляццо в кроватку ВМЕСТО ВГшки.....

homeness
28.12.2007, 13:37
PMD не держит 5 вольт, т.е. местами только ;) Курил датащит. Зачем заводить IP и RDY? Переключаю трансивер D2/1A-1B на выход на шину Z80 по CS/RD. Можно проще что ли? ;)

Добавлено через 1 минуту
Да, за в схему добавлю pic1867j60 с потрахами для Ethernet'а и пр. Чтобы сразу плата была готовая на все. По одному из spi будут общаться пики. Кстати, еще идея возникла, монтировать образы удаленно, через сеть. Сделать сервер образов глобальный. :)

ZEK
28.12.2007, 13:45
Зачем заводить IP и RDY?
Достаточно одного из них, а нужно для того что ими тырдос рулит для остановки мотора дисковода (в данном случае виртуального, но просто означающего что необходима задержка типа на раскрутку), там еще танцы всяки с бубном (вроде :) склероз) юзаются что бы определять вставлена дискета или нет.

homeness
28.12.2007, 14:04
IP вроде на HLT заведен?

Mikka_A
28.12.2007, 14:05
......там еще танцы всяки с бубном (вроде :) склероз) юзаются что бы определять вставлена дискета или нет.


импульсы индеск-сектора...

ZEK
28.12.2007, 14:06
импульсы индеск-сектора...
Индекс датчика

Добавлено через 55 секунд

IP вроде на HLT заведен?
Не
IP заведен на IP + туда подмешивается сигнал от RDY который есть битик из порта FF

AlexBel
28.12.2007, 14:08
я думаю речь про то, что это будет вставляццо в кроватку ВМЕСТО ВГшки.....

Просто на схеме ВГ и ее сигналы. Или она просто условно показана? Ведь возможны два варианта - юзать эмулятор совместно с ВГ и без нее.

homeness
28.12.2007, 14:26
Просто на схеме ВГ и ее сигналы. Или она просто условно показана? Ведь возможны два варианта - юзать эмулятор совместно с ВГ и без нее.

Я так думал сделать. Но лучше мулить ВГ93 целиком и со стороны флопа в том числе.

Добавлено через 7 минут
Смотрю схему АТМ2Т+, не вижу IP через FF порт, ткните меня носом, плиз :) Какой бит-то у FF порта?

ZEK
28.12.2007, 14:37
Но лучше мулить ВГ93 целиком и со стороны флопа в том числе.
То есть на ходу формируя MFM импульсы, щитая CRC, генеря сигналы предкомпенсации записи? При чтении вылавливая синхроимпульсы из MFM потока ??

Круто!!

Добавлено через 3 минуты

Смотрю схему АТМ2Т+
Ткни где схему ATM2T+ смотреть.

А бит FF номер 3, который RDY

homeness
28.12.2007, 14:47
http://atmturbo.nedopc.com/atmshem.htm#atm2

ZEK
28.12.2007, 15:05
Выкинь ту схему в окно
по даташитам как на WD мелкосхему так и доки которые есть под рукой на ВГ93
нога 23 обзывается HRDY(Нead ready) а на схемах пишту RDY

homeness
28.12.2007, 15:22
Будем считать что IP я завел.

ZEK
03.01.2008, 19:35
В общем для нужд эмуляции ВГшки при помощи ММЦ карточек и мелконтролера нада выдумывать свой формат образа

Примерно в таком духе
-для 1 дорожки отводить 8кб на карточке (2 кластера FAT32 до 8гигов), наиболее удобно ешить и работать с кластерами и дорожками в образе
-Данные нада к примеру хранить так 6кб - данные трека (как они выглядат после детектора синхроимпульсов), потом примерно 1Кб битовая карта синхроимпульсов
на 1 байт данных дорошки отводиться 1 бит признака что байт был с синхроимпульсом.


Тогда нужные данные получаем так
Byte = Cache[number]
SyncFlag = (Chache[number >> 3+7168] & (1 << (number & 0x7)) !=0)

(1 << (number & 0x7))
эту байду можно щитать двигая в кольце битик паралельно со счеткиком байт, тобиш 1 командой

AlexBel
04.01.2008, 00:09
В общем для нужд эмуляции ВГшки при помощи ММЦ карточек и мелконтролера нада выдумывать свой формат образа

Видимо, плохи TRD и UDI. И плоха система FAT, под которой эти самые TRD и UDI можно запросто записывать на карточку, вставив ее в кардридер...

homeness
04.01.2008, 10:20
Не надо ничего выдумывать. FAT16/32 + стандартные образы. Кстати, тут у друга идея возникла. Использовать USB вместо SD/MMC, тогда можно будет использовать любой накопитель, в том числе кардридеры, харды и пр. Железячно нечего делать, а вот ПО :)

ZEK
04.01.2008, 12:19
Не надо ничего выдумывать. FAT16/32 + стандартные образы.
Не, вы не поняли. Про FAT32 это без вопросов. Просто FAT32 + UDI как бы не разрабатывались для эмуляции WD1793 малой кровью. Допустим триста лет при эмуляции нет необходимости в гиморое с частичным чтением секторов, и головняк с перегонянием на ходу из форматов ДЛЯ ЭМУЛЯТОРОВ НА МЕГОЧИСЛОДРОБИЛКАХ во внутрение форматы ДЛЯ БЫСТРОЙ ЭМУЛЯЦИИ.

В конце концов любому ламеру доступно для понимания что вынос повторяющегося кода за цикл и предварительные вычисления самый эфективный метод оптимизации.

К тому-же по секрету скажу то что я набредил одинаково красиво и шустро подходит как для программной эмуляции так и для аппаратной.

AlexBel
04.01.2008, 19:46
Не надо ничего выдумывать. FAT16/32 + стандартные образы. Кстати, тут у друга идея возникла. Использовать USB вместо SD/MMC, тогда можно будет использовать любой накопитель, в том числе кардридеры, харды и пр. Железячно нечего делать, а вот ПО :)

Т.е. - сделать USB-хост и еплять к нему любые USB-накопители (флэшки, винчестеры)? У меня давно лежит парочка SL811HS, все руки не доходят заняться...

homeness
05.01.2008, 07:49
Ладно, для начала надо сделать хотя бы с SD. В общем, плату я уже развел, точнее три платы :) Три маленькие: одна для пика, две для трансиверов. Плюс одна большая плата - мама для тех троих. В два этажа в общем. На днях начну портить фат и пр. с 18 в 24.

AlexBel
05.01.2008, 10:13
Ладно, для начала надо сделать хотя бы с SD. В общем, плату я уже развел, точнее три платы :) Три маленькие: одна для пика, две для трансиверов. Плюс одна большая плата - мама для тех троих. В два этажа в общем. На днях начну портить фат и пр. с 18 в 24.

Неужели на асме будешь писать поддержку FAT?

homeness
05.01.2008, 12:56
Неужели на асме будешь писать поддержку FAT?

А что, можно еще на чем-то писать? ;)

ram_scan
05.01.2008, 16:18
FAT не настолько сложная система чтобы ее поддержку нельзя было скодить на ассемблере. Она в принципе и на сях весьма компактно получается, но на асме намного изящнее.

Если бы у меня не стояло задачи писать с претензией на кросплатформенность, то лично я бы написал на асме.

AlexBel
05.01.2008, 19:34
FAT не настолько сложная система чтобы ее поддержку нельзя было скодить на ассемблере. Она в принципе и на сях весьма компактно получается, но на асме намного изящнее.

Если бы у меня не стояло задачи писать с претензией на кросплатформенность, то лично я бы написал на асме.

Обленился я, разбаловал меня Си. а ведь чуть более года назад я писал только на асме... :)

Mikka_A
09.01.2008, 13:10
Обленился я, разбаловал меня Си. а ведь чуть более года назад я писал только на асме... :)

причем надо писать не на асме, а на аласме....
и причем на реале....

вот....:v2_wink2:

spensor
09.01.2008, 13:46
причем надо писать не на асме, а на аласме....
и причем на реале....
Ну когда портируешь аласм под PIC тогда может и напишут;)

homeness
09.01.2008, 14:21
Угу, на аласме, причем с магнитофона груженого :) Надо же как-то будет отлаживать... плату развел. Если кому интересно, могу выложить pcb. Сейчас жду детальки когда приедут.

Mikka_A
09.01.2008, 16:15
Угу, на аласме, причем с магнитофона груженого :) Надо же как-то будет отлаживать... плату развел. Если кому интересно, могу выложить pcb. Сейчас жду детальки когда приедут.

выкладывай конечно!!!!
хоть так полюбопытствовать!

homeness
10.01.2008, 08:39
ftp://ftp.cafemax.kz/pub/vg93emv3_3_2.PCB

Добавлено через 3 минуты
pcad2006

ILoveSpeccy
17.01.2008, 15:01
В тему...
При записи в командный регистр вспомогательной команды бит 3 указывает
на загрузку головки (1=загрузить головку).
Выполняются ли команды при незагруженной головке???
Кстати, что имеется в виду "загрузить головку"??? Включить движок дисковода???

и ещё, как может повлиять на работу полное избавление от задержек???

svofski
17.01.2008, 18:33
Я практически уверен, что это трудности перевода. Нагрузить, прижать головку.

Полное избавление от задержек может повлиять. Некоторые программы, вот на Векторе как раз с этим столкнулся, могут захотеть чтобы контроллер обязательно побыл занят хотя бы один цикл опроса после инструкций, на которые эмулятору тратить время, в общем-то, ни к чему.

homeness
18.01.2008, 07:50
Все задержки будут настраиваемые. Для совместимости и для повышения быстродействия. Доступ к структуре SD будет реализован на логическом уровне и на низком. В последнем случае можно будет непосредственно из компа читать/писать сектора и пр. Будет реализован бутблок для обновления софта в контроллере через все тот же вгшный интерфейс. Пока поддерживается 4 виртуальных дисковода. Все настройки сохраняются в еепроме, в том числе и какой образ куда примонтирован. Т.е. один раз вставив "дискету" не нужно будет ее после отключения питания заного вставлять. Если останеться место в моске мк, там же будет находиться эталонный образ (в обрезаном виде) с коммандером, дабы его было невозможно потерять/затереть. Свободе второй SPI, его можно было бы задействовать под вторую SD, но я, все же, хочу туда подцепить езернет.

Добавлено через 3 минуты
Да, забыл сказать, плата большая потому как я ее делал на фрезе. Т.е. мельче я ее не мог сделать. В идеале она должны быть чуть больше DIP40. По хорошему ее нужно оптимизировать, убрать лишнее, переразвести и отдать в нормальное производство. Но это потом.

Mikka_A
18.01.2008, 09:15
.......

Добавлено через 3 минуты
Да, забыл сказать, плата большая потому как я ее делал на фрезе. Т.е. мельче я ее не мог сделать. В идеале она должны быть чуть больше DIP40. По хорошему ее нужно оптимизировать, убрать лишнее, переразвести и отдать в нормальное производство. Но это потом.


показал бы, штоль.... :v2_wink2:

Mirazh
11.08.2009, 12:21
Господа, чем дело то кончилось? :)

AlexBel
10.11.2009, 14:26
Господа, чем дело то кончилось? :)

Ну, лично у меня оно не кончилось, а, скорее, видоизменилось. Карта под ZXBUS с FPGA, SRAM и контроллером :)
Правда, плата не была предназначена для спектрума, но через переходник подключал к Ленинграду-2 и +2А. Стартовало ПЗУ тырдоса, для ленинграда подключал модель AY на FPGA. На этом дело остановилось, надо делать плату конкретно под спек, а со временем проблемы...

homeness
03.01.2010, 19:59
У меня тоже не кончилось :) Концепт прежний. Но со временем проблемы...