Просмотр полной версии : Контроллер дисковода для УКНЦ, работающий с образами на micro-SD карте.
Jarik65535
04.09.2015, 23:06
Здравствуйте.
Устройство описано здесь. (http://y-salnikov.github.io/uknc_sd_fdd/) Хотелось бы узнать ваши мнения, предложения, пожелания. :v2_dizzy_coder:
http://y-salnikov.github.io/uknc_sd_fdd/images/scheme.png
Помимо разработки и заказа у китайцев платы, у меня есть несколько идей. Например сделать эмуляцию т.н. контроллера WD. Есть ли у кого нибудь описание протокола взаимодействия драйвера WD под RT-11 с ПП? Также устройство уже поддерживает образы дисков до 63Мб на низком уровне, стоит ли писать свой RT-11 драйвер для них, или же лучше обеспечить эмуляцию WD?
Без модификации схемы можно запрограммировать устройство как любое устройство на шину МПИ с ОЗУ не более 1К, ПЗУ не более ~30К и последовательным интерфейсом, например кассета ПЗУ, эмулятор ПЗУ, дополнительное ОЗУ, сетевые/последовательные интерфейсы и пр.
Сколько будет стоить готовое к эксплуатации устройство?
Jarik65535
05.09.2015, 23:47
Микросхема стоит $2, рассыпуха и того меньше, так что самое дорогое - это будет сама плата. Например, на seeedstudio берут $19 за 10 плат 50x100 +доставка в районе $10-15 уже не помню. Т.е. все зависит от кол-ва. Про корпус я пока даже и не думаю.
сделать эмуляцию т.н. контроллера WDЛучше ( наверное ) сделать эмуляцию контроллера RK - самого ( вероятно ) популярного дековского накопителя на жёстких дисках. Загрузка с RK поддерживается даже в ДВК-2.
Jarik65535
06.09.2015, 02:15
Лучше ( наверное ) сделать эмуляцию контроллера RK
Есть описание? Тут проблема в том, что контроллер подключается к ПП, а драйвер RK будет искать регистры в ЦП.
Есть ли у кого нибудь описание протокола взаимодействия драйвера WD под RT-11 с ПП?
Его легко увидеть в исходниках драйвера - я выкладывал в теме софта для УК-НЦ. Там программа в ПП напрямую работает с элементом очереди драйвера RT-11 (причем не совсем корректно [так как делалось все это во времена когда драйвер RT-11 не умел работать с номерами устройств больше 7], но это можно обойти).
---------- Post added at 13:15 ---------- Previous post was at 13:14 ----------
Есть описание?
RK описание есть на bitsavers, там все довольно просто.
Jarik65535
06.09.2015, 13:38
Не знаю, то ли я нашел : http://zx-pk.ru/attachment.php?attachmentid=31429&d=1323177800
Но чтобы это понять, нужно быть знакомым с внутренностями RT-11. Еще мне непонятно откуда берется символ WD$VECT и что это за регистр 176670, который в документации обозначен как резерв?
Не знаю, то ли я нашел : http://zx-pk.ru/attachment.php?attachmentid=31429&d=1323177800
Но чтобы это понять, нужно быть знакомым с внутренностями RT-11. Еще мне непонятно откуда берется символ WD$VECT и что это за регистр 176670, который в документации обозначен как резерв?
Да, оно. Коментариев я там не писал видимо. WD$VECT устанавливается в 144 макрокомандой .DRDEF, 176670 - какой-то из УКНЦшных регистров, участия в работе не принимает, прописан только чтобы отсечь установку драйвера если его нету. Все действия выполняются работой с "вектором".
Jarik65535
06.09.2015, 13:54
А как программе в ПП, которая читает этот вектор передается управление?
А как программе в ПП, которая читает этот вектор передается управление?
Насколько я понимаю - она просто в цикле крутится и опрашивает его содержимое. А уж чего она там делает с той стороны я даже не разбирался особо. Как минимум насколько я помню подменяет значения вектора 24 и вызывает "сбой питания" чтоб произошло прерывание :)
Jarik65535
06.09.2015, 14:14
Я смотрю драйвер не особо сложный, осталось только разобраться, как программа в ПП узнает адрес блока параметров SBREAD и что эти параметры значат. А нет исходников остальных частей?
А нет исходников остальных частей?
Где-то есть, наверняка на archive.pdp-11.org.ru есть. И драйвер там есть попроще (без совместимости с последними RT-11).
Jarik65535
06.09.2015, 14:34
Вообще не понятен смысл прерывания, вектор ведет на команду RTI, а готовность проверяется по содержимому ячейки памяти. Возможно, изначально задумывалась работа по прерыванию, но сейчас оно не нужно. Или я чего-то сильно не понимаю.
Вообще не понятен смысл прерывания, вектор ведет на команду RTI, а готовность проверяется по содержимому ячейки памяти. Возможно, изначально задумывалась работа по прерыванию, но сейчас оно не нужно. Или я чего-то сильно не понимаю.
Это код проверки что со стороны ПП работает программа обслуживания WD. Код обработки "пререрывания" идет после .DRAST...
Jarik65535
06.09.2015, 16:01
А исходники стандартного или не очень драйвера MZ можно достать. Мне кажется проще будет в него добавить поддержку дискетки большого объема? В драйвере WD номер блока передается одним словом, т.е. образ м.б. не более 32М это ограничение RT-11.
А исходники стандартного или не очень драйвера MZ можно достать. Мне кажется проще будет в него добавить поддержку дискетки большого объема? В драйвере WD номер блока передается одним словом, т.е. образ м.б. не более 32М это ограничение RT-11.
Исходники простого MZ (поддерживает только максимальный вариант 80 дорожек, 2 стороны) тоже выкладывал в теме софта и в архиве должен быть. Там будут свои ограничения в случае расширения с сохранением совместимости.
32Mb - предел RT-11. Для DU существует понятие разделов (разделы по 65535 блоков, последний - сколько осталось) и позволяет через SPFUN работать с полными номерами блоков. В WD деление на разделы внутреннее.
Jarik65535
06.09.2015, 16:15
А вообще MZ может быть 32Мб? Самый простой вариант это с помощью SET переключить тип диска. При этом в блоке параметров тип диска должен быть 3 и кол-во секторов и дорожек по 256. Возможно сделать такое?
А вообще MZ может быть 32Мб? Самый простой вариант это с помощью SET переключить тип диска. При этом в блоке параметров тип диска должен быть 3 и кол-во секторов и дорожек по 256. Возможно сделать такое?
Уже не помню формат блока параметров, скорее всего 32 мега в него не впишется при полной совместимости, смотреть надо...
Jarik65535
06.09.2015, 16:23
Там 2 стороны х 256 дорожек х 255 секторов = ~63Мб. Со стороны RT-11 есть какие ограничения именно для дискет, или она просто номер блока передает? Еще интересует вопрос по поводу зависания при слишком быстрой загрузке системы, это тоже проблема MZ?
Еще интересует вопрос по поводу зависания при слишком быстрой загрузке системы, это тоже проблема MZ?
Со стороны RT-11 всю работу выполняет драйвер, соответственно что в нем реализовать то и будет. Насчет проблемы зависания - мне она не встречалась.
Jarik65535
08.10.2015, 23:42
Пришли платы. Готовое устройство выглядит вот так:[br] http://y-salnikov.github.io/uknc_sd_fdd/images/board_complete_small.jpg
Jarik65535, а что там за колдоство выглядывает с видеокабелем?
Плата выглядит красиво, правда низкая она - нужен корпус иначе вставлять вынимать наверное из слота не слишком удобно будет.
---------- Post added at 00:19 ---------- Previous post was at 00:19 ----------
чем больше подробностей тем лучше )
Jarik65535
09.10.2015, 00:30
Вместо видеокабеля подключено вот это: http://y-salnikov.github.io/vcaptfx2/ На разъем выведены ТТЛ RGB, яркость, синхронизация и 12.5 МГц. Надо будет здесь тоже тему создать об этом.
На счет платы, вытаскивается достаточно удобно, она выпирает над корпусом на сантиметр. А вот с печатным разъемом я немного накосячил, он входит не до конца и как бы висит на перегородке и его можно наклонить влево-вправо, но пользоваться можно.
Был бы 3D-принтер, попробовал бы сделать корпус, я сомневаюсь, что смогу нормально синженерить с первого раза.
кстати капнул а архиве : WD,WE - драйвера и старые и новый без исходников.
вот MZ драйвер от form'a, есть исходник. Остальные что то не видно.
Возможно у Арсения могут быть - исходники самого первого WD от Oleg H.
---------- Post added at 00:42 ---------- Previous post was at 00:38 ----------
Надо будет здесь тоже тему создать об этом.
обязательно!!!
Jarik65535
09.10.2015, 00:46
Как раз MZ и нужен, я думаю сделать возможность переключить тип диска с помощью SET, тогда можно будет работать с образами по 32Мб.
Как раз MZ и нужен
http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Other/mz_newdriver_ot_forma/mz.txt
---------- Post added at 00:51 ---------- Previous post was at 00:50 ----------
как интересно мне про видео стало, а куда эта картинка выведена то? Там где по ссылке скрин стартового меню УК-НЦ?
---------- Post added at 01:01 ---------- Previous post was at 00:51 ----------
он входит не до конца
в идеале надо до упора, хотя если будет корпус и проблем не будет,
корпус можно взять размеры со стандартного КМД УК-НЦ в нижней части, а высоту
срезать до необходимой. Такие низкие картриджы как с бейсиком.
На счет платы, вытаскивается достаточно удобно, она выпирает над корпусом на сантиметр. А вот с печатным разъемом я немного накосячил, он входит не до конца и как бы висит на перегородке и его можно наклонить влево-вправо, но пользоваться можно.
Я бы ниже сделал, если возможно, чтобы ставить внутрь корпуса.
Я бы ниже сделал, если возможно, чтобы ставить внутрь корпуса.
надо иметь возможность смены sd-карты комфортный, получается надо что бы торчало.
надо иметь возможность смены sd-карты комфортный, получается надо что бы торчало.
Там Micro-SD.
У кого старый корпус - могут вывести на зад, вместо заглушки.
Jarik65535
09.10.2015, 11:53
как интересно мне про видео стало, а куда эта картинка выведена то? Там где по ссылке скрин стартового меню УК-НЦ?
Картинка передается через USB на "обычный" ПК. Изначально делалось под Linux, но сейчас есть версия под Windows. Там ниже скриншоты стартового меню УКНЦ, его же меню установки цветов, экран БК0010-01 цветной и чб, ну и zx-spectrum клон КР-05.
Картинка передается через USB на "обычный" ПК. Изначально делалось под Linux, но сейчас есть версия под Windows. Там ниже скриншоты стартового меню УКНЦ, его же меню установки цветов, экран БК0010-01 цветной и чб, ну и zx-spectrum клон КР-05.
Напомнило проект http://svo.2.staticpublic.s3-website-us-east-1.amazonaws.com/bkvideo/
Jarik65535
09.10.2015, 12:33
Напомнило проект http://svo.2.staticpublic.s3-website-us-east-1.amazonaws.com/bkvideo/
Да, у меня первая версия тоже на ПЛИС была. Текущая проще, надежнее и дешевле, плата стоит в районе $10 у китайцев, а кроме нее ничего и не нужно, только провода подвести.
Хочу еще прицепить схему на компараторах, и сделать ввод асинхронным. Может удастся подключать к компьютерам не разбирая корпус.
Jarik65535, насколько принципиально для Вашей конструкции видеоперехватчика:
1. использование CY7C68013A;
2. частота кварца 24МГц;
3. использование именно указанных в схеме/описании выводов МК.
И еще - сильно ли она нагружена в плане быстродействия?
Просто у меня есть сделанная на заказ разработка - переходник клавиатуры PS/2-УКНЦ, а в ней есть свободные ноги у МК - 7/9 шт. МК используется ATMEGA162 с кварцем 14,7МГц. Сам я в МК не очень разбираюсь, поэтому решил спросить у специалиста - а нельзя ли совместить девайсы, повесив на Атмегу и клаву, и экран ;-)
Jarik65535
09.10.2015, 20:25
Нет, атмеги точно не хватит. Во-первых в CY7C68013A стоит PLL, который удваивает частоту до 48МГц, во-вторых CY7C68013A не просто микроконтроллер, а специализированная микросхема для интерфейса USB. Да она содержит ядро контроллера 8051, но оно используется только для настройки и инициализации передачи, а всю работу делает специальное программируемое FIFO. Однако как раз ядро контроллера можно использовать для клавиатуры, если ног хватит. Для приема данных можно использовать только порт B.
Нет, атмеги точно не хватит. Во-первых в CY7C68013A стоит PLL, который удваивает частоту до 48МГц, во-вторых CY7C68013A не просто микроконтроллер, а специализированная микросхема для интерфейса USB.
Понятно, не судьба.
Однако как раз ядро контроллера можно использовать для клавиатуры, если ног хватит. Для приема данных можно использовать только порт B.
Так в количестве свободных ног как раз и будет главная загвоздка. Их нужно 20 шт.
https://img-fotki.yandex.ru/get/5815/14319580.2/0_7c362_30786c0d_S (https://fotki.yandex.ru/users/uknc/view/508770?page=1)
Jarik65535
09.10.2015, 20:50
В принципе есть микросхемы этой же серии (FX2LP), но с большим кол-вом портов, правда тогда свою плату нужно будет делать.
Jarik65535
14.10.2015, 21:34
Чтобы не создавать новую тему, спрошу здесь.
Допустим, я напишу простой драйвер по примеру приведенного выше MZ. Как будут видеться тома, то есть если я назову драйвер SD, то тома будут доступны как SD0,SD1... ? И сколько их может быть всего?
то тома будут доступны как SD0,SD1...
примерно так. Только не надо использовать такое название, SD.SYS в RT-11
уже перегружен !!! )
sd.sys - пожалуйста не спутайте и не затрите родным sd.sys от DEC !!!
------ - это наш отечественный драйвер "квазидиска" для УК-НЦ, использует
часть видеоОЗУ для "логического диска" - объём 130 блоков.
Для установки драйвера скопируйте SD.SYS на ваш системный диск,
запустите команду
SE SD SYSGEN - установить драйвер в системе или INS SD
После установки используйте команду SE SD INFORM
И сколько их может быть всего?
я могу ошибаться, но зависит от опций при сборке системы, возможно form
меня поправит - уточнит этот момент. Я вот вижу что WD драйвер он писал в двух
вариантах, просто WD и WD64 и ещё WE какой-то к ним, причём судя по шпоре,
WE - вроде как не бутабельный (опять же могу ошибаться).
Jarik65535
14.10.2015, 23:14
Правильно ли я понимаю, при загрузке драйвер не проверяет доступность всех томов, а обращается к ним только по мере необходимости?
Jarik65535, я кстати выше неправильно написал, там я имел в виду количество слотов под разнотипные устройства в памяти, а номера в рамках
одного драйвера от 0 до 7 (по классике "смайл") и снова повторюсь, лучше
дождаться комментария от системщиков, Patron к примеру, усовершенствовал
насколько я понимаю и использует в эмуляторе ДВК драйвер HD.SYS - там также
максимальное значение 7, но сами устройства могут быть "сильно разношёрстными" и это создаёт очень удобную возможность работы на уровне эмулятора с файлами и программами под RT-11.
обращается к ним только по мере необходимости?
По умолчанию LD.SYS при загрузке проверяет - и тут я снова могу ошибаться.
Jarik65535, у меня к вам вопрос как от потенциального пользователся,
расскажите о проекте с драйвером как это в идеале должно будет работать на
УК-НЦ под RT-11, а именно:
1. Будет ли возможна загрузка из стартового меню УК-НЦ
Если да то через обращение к кассете ПЗУ видимо? Если и это так - зачем выдумывать паровоз, если есть готовые драйвера и прошивка WD для УК-НЦ и\или альтернативная более ранняя и что то там "не совсем то делающая" HD?
2. Как планируется установка системы если на носителе для вашего контроллера
потребуется с нуля разместить разделы и систему.
Старый проверенный тезис - флопик всё равно нужен - похоже так и остаётся
старым проверенным временем тезисом )
Спасибо.
Очень прошу профи по системам и авторов систем и драйверов поправить меня
если я грубо заблуждаюсь в своих ответах.
Jarik65535
15.10.2015, 12:07
1. Будет ли возможна загрузка из стартового меню УК-НЦ
Если да то через обращение к кассете ПЗУ видимо? Если и это так - зачем выдумывать паровоз, если есть готовые драйвера и прошивка WD для УК-НЦ и\или альтернативная более ранняя и что то там "не совсем то делающая" HD?
2. Как планируется установка системы если на носителе для вашего контроллера
потребуется с нуля разместить разделы и систему.
Старый проверенный тезис - флопик всё равно нужен - похоже так и остаётся
старым проверенным временем тезисом )
Спасибо.
Очень прошу профи по системам и авторов систем и драйверов поправить меня
если я грубо заблуждаюсь в своих ответах.
Флопик не нужен! Так как данный контроллер это прежде всего эмулятор контроллера дисковода. После загрузки с кассеты ПЗУ в озу ПП устанавливается драйвер, который перехватывает все команды ЦП для работы с флопиком. Таким образом с точки зрения ЦП он ни чем не отличается от нормального флопика и не требует специальных драйверов. Это уже реализовано и позволяет не только загружаться с образов RT-11, но и с чего угодно, например LSX unix.
В микроконтроллере осталось 50% свободного ROM, поэтому я решил реализовать эмулятор жесткого диска прежде чем начать собирать устройства на заказ. :)
В принципе там уже реализована поддержка дискетки 255 секторов Х 256 дорожек и 2 стороны, но я думаю лучше сделать более простой доступ к виртуальному HDD без сторон и дорожек - просто номер сектора и номер тома.
в озу ПП устанавливается драйвер
этого я и боялся ) я конечно понимаю, что этого не избежать, но это сразу
намекает, что часть ПО работать не будет! Если только не предусмотреть как
сделал Oleg H. возможность тонкой настройки расположения драйвера в области
ПП озу. Флопик таки нужен! С обычного харда часть софта не работает по причине
того, что просто затирает драйвер в памяти ПП, но там при первичной заливке можно сделать отступ и создать некий "буфер" повесив драйвер ниже, но даже
при таком раскладе, идеальный размер этого "буфера-пузырька" вычислить можно путём долгих и нудных переустановок - проб и ошибок. Мне терпения
не хватает, я просто смирился с тем, что некоторые программы идут только с реальной дискеты. Второй момент - надо бы проверить и установить факт
возможности запуска при таком раскладе игровых пакетов из образов с флешки,
сейчас опять же, они работают на реале только с реальных же дискет!
Флопик не нужен!
А для начальной разметки ЖД? А для заливки ПО? Для переноса программ из архива на реал? На случай сбоя в конце концов! Флопик нужен ) И дискеты нужны. Это ретро компьютер и никуда не денешься - локальный дисковод реальный как и контроллер к нему нужен. Будет работать устройство с подключенным параллельно контроллером флопа (новодел или заводской без разницы) ?
---------- Post added at 22:35 ---------- Previous post was at 22:31 ----------
form, был прав абсолютно, просто у меня "немного замылился глаз",
исходники WD драйвера давным давно к архиву в разделе УК-НЦ прилеплены
http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Other/OlegH_WD/wd_superbak/
---------- Post added at 22:43 ---------- Previous post was at 22:35 ----------
не только загружаться с образов RT-11, но и с чего угодно
ничего угодно кроме RT-11 на УК-НЦ нет и практического применения (по делу, а не ради факта запуска) кроме RT-11 не имеет. А вот специфичный УК-НЦшный софт, который
считает себя единственным и неповторимым и без всяких проверок кладёт себя в
память ПП есть. ) Школьники же писали или хуже того студенты )
Как из стартового меню при однозначном выборе номера слота с ПЗУ выбрать загрузку с флопа или с вирт.ЖД?
Подробности, подробности !
---------- Post added at 22:50 ---------- Previous post was at 22:43 ----------
все эти "виртуальные" костыли с флопами для УК-НЦ всегда мне напоминают
бородатый анекдот про "нюансик" http://smayls.ru/data/smiles/animashki-cherti-49.gif
Jarik65535
15.10.2015, 23:13
А вот специфичный УК-НЦшный софт, который
считает себя единственным и неповторимым и без всяких проверок кладёт себя в
память ПП есть. ) Школьники же писали или хуже того студенты )
Как из стартового меню при однозначном выборе номера слота с ПЗУ выбрать загрузку с флопа или с вирт.ЖД?
Мой код в памяти ПП абсолютно перемещаем и кладет себя в конец доступного объема памяти, а затем освобождает память в начале. Большая часть программ и игрушек работают.
Когда я в первый раз это запустил, я тоже заметил, что программы работающие с ПП в наглую пишут себя по дефолтному адресу.
На счет выбора загрузки я еще сильно не думал, я хотел сделать еще один конфигурационный файлик на SD-карте, где будет указано с чего грузиться.
У меня в первом сообщении есть ссылка на сайт проекта на github-pages, там описан и процесс выделения памяти в ПП.
На счет флопиков, на сколько я знаю образы дискет можно снять и на ПК.
---------- Post added at 23:13 ---------- Previous post was at 23:04 ----------
Второй момент - надо бы проверить и установить факт
возможности запуска при таком раскладе игровых пакетов из образов с флешки,
сейчас опять же, они работают на реале только с реальных же дискет!
Без проблем проверю, давайте ссылки на образы дискет. :)
Без проблем проверю, давайте ссылки на образы дискет.
http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/ITO90ITO91/
---------- Post added at 23:23 ---------- Previous post was at 23:19 ----------
еще один конфигурационный файлик на SD-карте,
Лучше если это будет в виде бутового меню с пунктами организовано.
По взрослому как бы. И если нету скажем бутабельных разделов на харде, то и
меню не видно (???) Нюансы... нюансы... )))
Jarik65535
15.10.2015, 23:46
Запустились только arkanoid и roadfighter. :(
В принципе можно попробовать сделать эмулятор на уровне регистров, но нужно подробное описание работы КМД, меня напрягает то, что там таймер используется.
Запустились только arkanoid и roadfighter.
то есть с "игрушки-1" вообще ничего не пошло? А стартовое меню хоть доходит?
Jarik65535
16.10.2015, 00:52
Меню грузится, заставки тоже, а потом зависают.
Без проблем проверю,
http://zx-pk.ru/showpost.php?p=527941&postcount=111
вот этот сборник хорошо бы ещё проверить ) В целом надо бы всё всё проверить
в плане эмуляции флопа, ну и параллельно с хардом придумывать ходы )
---------- Post added at 00:54 ---------- Previous post was at 00:52 ----------
а потом зависают.
а может вы мало время им дали подумать, там инициализация ресурсов после заставок не такауж шустрая. Там нюанс такой - только часть игр из игропакетов после заставок снова обращается к дискете, не все.
---------- Post added at 00:56 ---------- Previous post was at 00:54 ----------
LODE RUNNER - во время заставки только "пробел" нужно жать вроде бы.
"Knight" уже после заставки к диску не обращается, но что то там (2-5 сек) рисует
в памяти и потом уже выдаёт первый уровень игры.
---------- Post added at 00:59 ---------- Previous post was at 00:56 ----------
да всё равно флопик классический нужен.
сейчас реально надвигается проблема с расходниками (затариваемся дискетами товарищи PDPпишники - точнее скупаем складские остатки вербатима!!! )
http://smayls.ru/data/smiles/animashki-cherti-49.gif
Jarik65535
16.10.2015, 01:00
Там дело не в обращении к диску, а скорее всего из-за рам-диска.
а скорее всего из-за рам-диска.
Да! Принцип работы с ним (его) не очень то известен, хотя автор его Oleg H. редко-редко, но читает форум и даже пишет ответы, в том числе и персональные на почту.
Этот рам видимо нужен был, что бы защиту от копирования победить ИТОшную.
---------- Post added at 01:05 ---------- Previous post was at 01:03 ----------
но Knight есть и отдельный вот тут 400кб образ с ним в автозапуске, попробуйте его
может? http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Other/6022/
Jarik65535
16.10.2015, 01:38
Тоже самое, виснет после заставки. Зато проверил работу контроллера с дискетами 400к.
Тоже самое, виснет после заставки
а вот это уже тревожно - поскольку такая версия игры прекрасно работает с любого устройства и в эмуляторе и
на реале ! Ответственно утверждаю )
---------- Post added at 01:43 ---------- Previous post was at 01:42 ----------
Причём вырванный из пакета Рыкарь - он там честный - не бессмертный какой-нибудь ) И прекрасно запускается, на заставке надо жать ШИФТ или ПРОБЕЛ, а
загрузчик помомему ждёт <ВК>.
Запустились только arkanoid и roadfighter. :(
В принципе можно попробовать сделать эмулятор на уровне регистров, но нужно подробное описание работы КМД, меня напрягает то, что там таймер используется.
Да, безусловно эмулятор дисковода должен быть на уровне регистров. В любом другом случае его совместимость с софтом будет далека от 100%.
о нужно подробное описание работы КМД,
http://www.felixl.com/UKNC_FDD_passport + читайте форум, здесь знатоки
УК-НЦ и авторы эмулятора и этот вопрос обсуждали, возможно так же полезная
информация по КМД УК в темах про эмуляторы (другой раздел форума).
Jarik65535
16.10.2015, 13:02
http://zx-pk.ru/showpost.php?p=527941&postcount=111
вот этот сборник хорошо бы ещё проверить
Проверил, запускается всё кроме тетриса, причем обычного, не mustet. Пишет, что RT-11 не хватает памяти.
Порадовал клад, прямо оригинальный БКшечный look-and-feel.
---------- Post added at 13:02 ---------- Previous post was at 11:34 ----------
Да, безусловно эмулятор дисковода должен быть на уровне регистров. В любом другом случае его совместимость с софтом будет далека от 100%.
Оно, конечно, понятно. Тут работает соотношение Парето, сделать это на порядок сложнее, если вообще возможно на данном железе, о встроенном эмуляторе HDD вообще стоит забыть, и все это ради пары игрушек, которые даже не лучше чем на БК0010!
Попробую, конечно, чисто ради интереса.
все это ради пары игрушек, которые даже не лучше чем на БК0010!
Попробую, конечно, чисто ради интереса.
Не уверен, что их пара. Наверняка еще наберется. Еще есть эмулятор БК, который тоже стоит проверить, вряд ли он заработает на вашем устройстве. Есть системные программы, которые тоже могут не заработать. Всякие турбо-бейсики и т.д.
сделать это на порядок сложнее, если вообще возможно на данном железе, о встроенном эмуляторе HDD вообще стоит забыть, и все это ради пары игрушек, которые даже не лучше чем на БК0010!
Попробую, конечно, чисто ради интереса.
Надо стараться :). Может и железо другое подобрать, но разговоры о таком устройстве давно, а тут уже почти готово. И да, нужен и HDD в этом же устройстве, спрос будет даже при удорожании.
---------- Post added at 17:04 ---------- Previous post was at 16:57 ----------
Вместо видеокабеля подключено вот это: http://y-salnikov.github.io/vcaptfx2/ На разъем выведены ТТЛ RGB, яркость, синхронизация и 12.5 МГц. Надо будет здесь тоже тему создать об этом.
Пока темы нет, это уже доступно для заказа?
Jarik65535
16.10.2015, 17:07
И да, нужен и HDD в этом же устройстве, спрос будет даже при удорожании.
Проблема в том, что платы я уже сделал, ну да ладно, я и не рассчитывал их продать.
А вот сделать контроллер HDD и не влезая в память ПП можно только подключив его к шине ЦП, и тогда мы получим нежданчик от программ, которые не рассчитывали что в памяти кроме них и ОС будут какие-то драйверы. Еще можно сменить системное ПЗУ, но это еще сложнее.
---------- Post added at 17:07 ---------- Previous post was at 17:04 ----------
Пока темы нет, это уже доступно для заказа?
А что там заказывать? Плата покупается на aliexpress, к ней припаивается 8 проводков и с github'а качается софт, и все. :)
А вот сделать контроллер HDD и не влезая в память ПП можно только подключив его к шине ЦП, и тогда мы получим нежданчик от программ, которые не рассчитывали что в памяти кроме них и ОС будут какие-то драйверы. Еще можно сменить системное ПЗУ, но это еще сложнее.
Не, зачем так, уже есть контроллер HDD и драйвер (работает как я понимаю через регистры кассеты ПЗУ). Т.е. сделать эмулятор FDD и HDD через стандартные регистры под имеющийся софт (RT-11). Наверно это не сложнее, чем текущая реализация, она же ведь тоже регистры использует.
Jarik65535
16.10.2015, 17:24
Он работает не только через "регистры" кассеты ПЗУ, как и мое текущее устройство он размещает в ОЗУ ПП часть драйвера. Некоторые программы считают, что ОЗУ ПП полностью принадлежит им и без всяких проверок устанавливают туда свои куски, затирают установленные по правилам туда драйверы. Именно в этом основная проблема.
Для устранения этой проблемы и нужно чтобы текущее устройство использовало для работы с FDD стандартные подпрограммы из ПЗУ, а HDD уж как есть, это вторично. Логика здесь в том, чтобы использовать стандартные образы дискет (400-800 Кб) и не писать новых драйверов, а для хранения больших объемов использовать образ HDD.
Он работает не только через "регистры" кассеты ПЗУ, как и мое текущее устройство он размещает в ОЗУ ПП часть драйвера. Некоторые программы считают, что ОЗУ ПП полностью принадлежит им и без всяких проверок устанавливают туда свои куски, затирают установленные по правилам туда драйверы. Именно в этом основная проблема. Мое мнение - надо подключать это изделие не к ПП, а к ЦП. Тем более, что в УКНЦ есть место, где это можно сделать - УКНЦ-шная сеть, на мой взгляд, не нужна ни разу, вот, вместо сетевого адаптера и воткнуть новое изделие. Для загрузки использовать пункт меню "Сеть", а дальше можно делать все, что угодно. Хоть RK эмулировать, хоть сочинить что-то свое - особой разницы нет. Да, ОЗУ ПП многие программы пользуют "не глядя", поскольку изначально не было никакого стандарта, устанавливающего порядок использования этого ОЗУ. С ОЗУ ЦП такого разгильдяйства быть не должно - использование ОЗУ в RT-11 четко оговорено, были разные варианты ОС с разными размерами, разные версии драйверов, в общем, никакого простора для творчества. :)
Так, что делаем адаптер для ЦП, хотелось бы поддержку HDD, но и SD вполне пойдет. А на тему оперативной ее замены, ИМХО, это совсем необязательно, одной микро-SD на 16Г хватит навсегда. Кроме того, у сетевого адаптера, если не врет мой склероз, есть разъем, выглядывающий из корпуса. Вот, в ту самую дырку ее и высунуть...
Засада здесь только одна: два варианта разъемов, один, на УКНЦ первых выпусков - краевой (по типу ISA или PCI), второй, на более поздних - отечественная версия IDC (как на IDE-винчестерах).
А еще желательно бы предусмотреть несколько дополнительных сигналов для управления мощными шинными драйверами, чтобы это же изделие можно было подключить к ДВК.
Jarik65535
05.12.2015, 13:13
Да, ОЗУ ПП многие программы пользуют "не глядя", поскольку изначально не было никакого стандарта, устанавливающего порядок использования этого ОЗУ.
Вот тут не согласен, в системном ПЗУ предусмотрен определенный порядок обращения к ОЗУ ПП, Выделить -> проверить -> записать -> запустить -> освободить.
Также не исключена ситуация, когда какая-нибудь очень важной программа не поместится в ОЗУ ЦП из-за драйвера для RT-11. Я пока попытаюсь доделать совместимый по регистрам контроллер на том же железе, если не получится - можно и о контроллере для ЦП подумать.
Также не исключена ситуация, когда какая-нибудь очень важной программа не поместится в ОЗУ ЦП из-за драйвера для RT-11. Крайне маловероятно. Кроме того, чаще всего встречающаяся на УКНЦ RT11CD кушает довольно много памяти, если какой-то задаче не хватит памяти ЦП, для нее можно сгенерить минимально возможный вариант RT11SJ, который наверняка, даже с драйвером дополнительного устройства, оставит для задачи больше памяти, чем RT11CD без этого драйвера. Кроме того, как вариант, если какой-то задаче не хватит памяти, можно не загружать драйвер MZ
Jarik65535, а нет ли у китайцев пробной мини-платы на этом же чипе? Или на сильно похожем, чтобы с АРМ и такой же лог. матрицей. Я сейчас, как раз, осваиваю АРМ (STM32), с софтом мог бы поковыряться (меня интересует вариант для ДВК на системной шине), а вот паять и, тем более, клепать плату с нормами 0.5-0.8 мм ни времени, ни желания.
Jarik65535
09.12.2015, 11:41
Jarik65535, а нет ли у китайцев пробной мини-платы на этом же чипе? Или на сильно похожем, чтобы с АРМ и такой же лог. матрицей. Я сейчас, как раз, осваиваю АРМ (STM32), с софтом мог бы поковыряться (меня интересует вариант для ДВК на системной шине), а вот паять и, тем более, клепать плату с нормами 0.5-0.8 мм ни времени, ни желания.
Вообще есть, только пока не у китайцев, а у самого cypress и по $10.
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-043-psoc-4-m-series-prototyping-kit
Или более мощный с cortex m3:
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-and
Вообще, я думаю можно обойтись и без цифровых блоков, быстродействия STM32 должно хватить и для чисто программной работы с шиной. На форуме были схемы эмуляторов ПЗУ и т.п. на STM32. Правда они не совместимы с 5в ТТЛ сигналами напрямую.
Вообще есть, только пока не у китайцев, а у самого cypress и по $10. Угу, только нет доставки в Казахстан. Поискал на Али эту платку - одно предложение, $14 с копейками, да еще за доставку $10 с копейками. Почти 25 убитых енотов - для развлечения несколько крутовато. Ладно, подождем, может через полгода-год появятся более адекватные предложения.
Вообще, я думаю можно обойтись и без цифровых блоков, быстродействия STM32 должно хватить и для чисто программной работы с шиной. Тогда надо писать синхронную программу - в цикле отрабатываем приём команды по Q-Bus, получили ее и пошли выполнять, забыв про Q-Bus. Причем все равно нужен хотя бы один аппаратный регистр, который будет сигнализировать, готово устройство пообщаться по Q-Bus, или занято своими делами и по Q-Bus не ответит. Как у того же DW.
- - - Добавлено - - -
Правда они не совместимы с 5в ТТЛ сигналами напрямую.
Так для полноценной Q-Bus один черт нужны шинные драйверы, с током не менее 50 мА, лучше 80.
Jarik65535
10.12.2015, 11:19
Угу, только нет доставки в Казахстан. Поискал на Али эту платку - одно предложение, $14 с копейками, да еще за доставку $10 с копейками. Почти 25 убитых енотов - для развлечения несколько крутовато. Ладно, подождем, может через полгода-год появятся более адекватные предложения.
На elitan.ru есть по 1200, хотя не знаю как у них с Казахстаном. На ebay наверняка есть.
На elitan.ru есть по 1200, хотя не знаю как у них с Казахстаном. На ebay наверняка есть. На eltan.ru с Казахстаном никак. На ebay есть, но опять же очень дорогая доставка. А вот на Али, не прошло и двух лет [(с) Гекльберри Финн], и даже двух месяцев, как появилось вполне адекватное предложение за $15, вскорости закажу. А посему, откуда бы накачать материалов для изучения? На Cypress глянул, там требуют регистрацию. Без регистрации нигде нет?
Jarik65535
22.01.2016, 12:39
А там в любом случае регистрироваться надо, чтобы psoc creator скачать, на сколько я помню.
MacBuster
30.01.2016, 10:27
Удаление в знак протеста против действий MM
Jarik65535
30.01.2016, 11:58
Сейчас используется только один банк кассеты ПЗУ и как начальный загрузчик и как буфер. Небольшое изменение прошивки и можно использовать все банки. 30КБ это ограничение flash памяти данного микроконтроллера. Образы ПЗУ должны быть вшиты в микроконтроллер, т.к. ОЗУ там только 2КБ. Если есть готовые образы кассет - высылайте, поэкспериментирую. На счет джойстиков и геймпадов все сложно, на сколько я знаю нет стандартных способов их подключения, а значит и нет ни драйверов ни программ их поддерживающих. Инженеры в СССР считали, что "НЕ ВРЕМЯ ВЕСЕЛИТЬСЯ"http://vasya-lozhkin.ru/media/paintings/gimage_869.jpg
Проще уж к параллельному порту их подключать.
MacBuster
30.01.2016, 20:29
Удаление в знак протеста против действий MM
Если есть готовые образы кассет - высылайте
Ну Бейсик-Вильнюс (http://archive.pdp-11.org.ru/EMULATORS/UKNCBTL_HDD/rom_basic/romctr_basic.rar) же или уже пробовали?
Jarik65535
31.01.2016, 01:43
Нет еще, попробую.
- - - Добавлено - - -
Все это меня все устраивает. А сколько образов ПЗУ может быть в микроконтроллере? Можно ли загрузив код из одного образа затем считать код или данные из другого образа?
Есть только образ вильнюсского бейсика. Я собственно сам хочу что-нибудь написать, если уж есть такая замечательная возможность избавиться от системы и захапать себе все ресурсы машины.
Стоит ли огород городить, если программа все равно будет написана исходя из возможностей платы и будет работать с периферией удобным ей способом. Так можно и до функционально ограниченного USB-адаптера дойти (подключив преобразователь RS232<>USB).
Конкретно в данном микроконтроллере всего 32КБ flash, и в этот объем должен быть умещен и образ и управляющая программа. Тут особо не разгуляешься, лучше взять контроллер с достаточным кол-вом ОЗУ, тогда образы кассеты можно будет подгружать с SD-карты.
Прошил образ вильнюсовского бейсика, вроде работает.
http://y-salnikov.github.io/uknc_sd_fdd/images/basic.png
ух ты какая картинка! это какая плата так хорошо захватывает видео от ук-нц?
Jarik65535
31.01.2016, 12:03
Да, правда пока только под линукс, с виндовс-версией пока есть некоторые проблемы. Тут ничего удивительного - захват синхронный, используется тактовый сигнал.
Прошил образ вильнюсовского бейсика, вроде работает
Бейсик - УРА!
http://zx-pk.ru/showthread.php?t=20251&p=549517&viewfull=1#post549517
http://zx-pk.ru/showthread.php?t=20251&p=549839&viewfull=1#post549839
http://zx-pk.ru/showthread.php?t=20251&p=582717&viewfull=1#post582717
Да, правда пока только под линукс, с виндовс-версией пока есть некоторые проблемы. Наш коллега anasana успешно "спортил" линюховый Xhomer под винды. Может попросить его?
Jarik65535
02.02.2016, 18:00
Он уже в курсе, причем до смены материнской платы оно у меня работало, может это только у меня проблемы. В любом случае буду переделывать с bulk-эндпоинтов на isochronous, должно помочь.
В любом случае буду переделывать с bulk-эндпоинтов на isochronous, должно помочь. Оба эти термина для меня - китайская грамота, мои познания в программировании для писюка остались на уровне Турбо-Си 2.0, с приплюснутым Си не дружу вообще. Тем не менее, как мне кажется, писюшная часть проекта должна быть несложной. То есть ее можно заново переписать под винду, используя, допустим, тот же MFC и при этом не особенно напрячься...
Jarik65535
02.02.2016, 22:27
Во-порвых: плюсы не нужны, только нормальный чистый Ц. :)
Все решения кроссплатформенные, там для вывода графики используется OpenGL, проблема в USB части. Я использовал "режим" работы USB - bulk, который не гарантирует отсутствие задержек между пакетами, а устройство очень чувствительно к этому, потому что его небольшой буфер быстро переполняется. Видимо в винде эти задержки чуть больше.
MacBuster
12.02.2016, 09:07
Удаление в знак протеста против действий MM
MacBuster
22.03.2016, 01:51
Удаление в знак протеста против действий MM
На днях, наконец-то, опробовал адаптер эмулирующий дисковод,
Я пока попытаюсь доделать совместимый по регистрам контроллер на том же железе,
так он уже совместимый ?
Jarik65535
22.03.2016, 22:24
так он уже совместимый ?
Нет, это всё тот же.
опробовал адаптер эмулирующий дисковод
очень сомневаюсь что опробовали.
Просто запуска не достаточно.
Надо уже известный список образов не работающих со всем прочили флопо-эмуляторами
прогнать проверить на рабочесть. Почитайте форум всё это уже обсуждалось много раз,
в теме софта, в теме глюков игр, в теме игр, это не первый и возможно не последний эмулятор чего-то там,
но пока всё равно без реального флопа не обойтись )
MacBuster
23.03.2016, 10:57
Удаление в знак протеста против действий MM
Jarik65535, можно всё таки какие то новости по проекту узнать? Что там у вас получалось - есть полноценная эмуляция флоповода или пока не выходит? В каком состоянии сейчас проект (в плане функционала - МакБастер пишет что то невнятное - то у него там в режиме ПЗУ только БЕЙСИК то у него там флопиков образы - не поймешь его (как обычно впрочем). Будет ли проект как-то реализовываться для желающих приобрести?
Спасибо.
СТАТУС ПРОЕКТА?
Остальные вопросы зависят от развёрнутого ответа на первый вопрос )
Jarik65535
02.02.2017, 21:51
Так, на счет МакБастера, я ему выслал 2 платы, одна прошита как контроллер дисковода, другая - как кассета ПЗУ с бейсиком. Полноценной эмуляции пока нет, я временно подзабросил это дело, сложно. В плане функционала все вроде нормально, можно даже линукс загрузить. Единственное, что не работает - программы (игрушки) нестандартно работающие с ПП, коих немного, а так, со стороны ЦП его не отличить от дисковода. На счет реализации, я их паяю, и реализую по себестоимости - 500р плюс доставка почтой России , так как заработать на этом вряд ли получится. Деталей хватит еще на 2-3 шт., если надо будет еще - дозакуплюсь. Еще макбастер прислал мне контроллер сети, можно попробовать сделать эмулятор дисковода вообще не залезая в ПП, но там тоже проблем хватает и наверняка он не у всех есть.
Jarik65535, я бы взял один с прошивкой контроллера, проверенный и с инструкцией как гонять для тестов на живом железе, естественно все необходимые оплаты готов произвести. Благодарю за информацию.
- - - Добавлено - - -
а так, со стороны ЦП его не отличить от дисковода.
но по объёму рабочего пространства мы проигрываем, то есть я хочу вот что понять - он занимает 1 слот, но при этом эмулирует 800кб или 2Х800кб ? И очень конечно нужна подробная инструкция как пользоваться ?
- - - Добавлено - - -
Jarik65535, ещё (наверное уже не один раз и не я один спрашивали) вы не рассматриваете возможность размещения
такого контроллера с SD картой вместо СА как постоянное внутреннее устройство для УК-НЦ (ну или как опция для современной УК-НЦ).
Jarik65535
02.02.2017, 23:09
Он занимает один слот, грузиться с него нужно как с кассету ПЗУ, затем драйвер из кассеты подменит собой стандартный драйвер в ПП. Он эмулирует 4x800кб. При этом можно использовать и образы 400кб. Также есть нереализованная в RT11 возможность использовать образ 64МБ, но нужно писать драйвер для RT11 и я такое особо не тестировал. Кроме того, есть возможность менять образы "на лету", т.е. на SD-карту может быть записано гораздо больше 4х образов.
Как спаяю еще один сообщу в ЛС.
vwarlock
02.02.2017, 23:58
Я тоже взял бы одну платку - пустую - микроконтроллер и мелочёвка у меня имеется
С уважением,
VWarlock
MacBuster
03.02.2017, 00:11
Удаление в знак протеста против действий MM
Как спаяю еще один сообщу в ЛС.
Лады!
А какие то нюансы и танцы с бубном при подготовке SD карты ?
- - - Добавлено - - -
Еще макбастер прислал мне контроллер сети,
это который СА? Если вам нужен для экспериментов и\или для разработки чего то нового готов выслать вам такую железяку )
- - - Добавлено - - -
менять образы "на лету" меня только немного смущает что он такой "низкий" как им
управлять когда он установлен в слот, удобно или не очень? Ладно буду ждать вашего сообщения в ЛС. )
Jarik65535
03.02.2017, 15:57
Я тоже взял бы одну платку - пустую - микроконтроллер и мелочёвка у меня имеется
Без проблем, могу даже по цене доставки отправить, т.е. 200р ±
Но платы не очень получились.
Лады!
А какие то нюансы и танцы с бубном при подготовке SD карты ?
FAT32, все образы должны лежать в каталоге disks, все имена должны быть в формате 8.3. В корне должен быть файл map.txt, где указывается, к какому номеру диска какой образ привязан.
Конечно, все это написано на странице проекта на гитхабе: http://y-salnikov.github.io/uknc_sd_fdd/ (http://y-salnikov.github.io/uknc_sd_fdd/) :)
это который СА? Если вам нужен для экспериментов и\или для разработки чего то нового готов выслать вам такую железяку )
Да, СА и он уже у меня есть, а вот информации по протоколу его работы очень мало.
меня только немного смущает что он такой "низкий" как им
управлять когда он установлен в слот, удобно или не очень? Ладно буду ждать вашего сообщения в ЛС. )
Он управляется прямо с УКНЦ, я для этого даже программку написал. А еще все возможности по горячей замене образов описаны тамже (http://y-salnikov.github.io/uknc_sd_fdd/).
Всё забываю спросить - что надо сделать чтобы поменять прошивку, имитирующую кассету ПЗУ?
Для этого нужно перекомпилировать прошивку. Если что, могу сам это сделать.
P.S. Извините за такие ссылки, но я уже неоднократно отвечал на эти вопросы, даже в этой теме. :)
MacBuster
03.02.2017, 21:22
Удаление в знак протеста против действий MM
Да, СА и он уже у меня есть, а вот информации по протоколу его работы очень мало. А зачем? Сама по себе сеть УКНЦ бесполезна. Если же использовать гнездо СА для установки своей платы на PSoC, как я предлагал в прошлом году, то этот СА (соответственно, и самопальное изделие на PSoC) подключается к системной шине ЦП, и туда можно затолкать все что угодно, лишь бы влезло в PSoC, с любыми адресами на странице в/в, кроме занятых штатной периферией ЦП. Единственный момент, для чего может потребоваться кусочек протокола СА - начальная загрузка. После включения, кроме всего прочего, PSoC должен эмулировать и регистры СА. Выбираем "загрузку из сети", PSoC через эмулируемый компорт СА высылает туда программу начальной загрузки с любого диска, эмулируемого PSoC на шине ЦП и все, компорт СА больше не нужен.
А эмулируемый диск может быть любым. Хоть какой-то из стандартных, хоть любой самопал, например, что-то по мотивам HD от Патрона - стандартные загрузчики УКНЦ нас не устраивают, пользуя же сетевой загрузчик, можно наворотить всё, что захочется.
Сама по себе сеть УКНЦ бесполезна
это потому что нет ПО и скорость и особенности ОС и вообще малый ресурс памяти и прочего не позволяет
полноценные сетевые программные решения создавать и применять, кроме как "загрузили бейсик", "загрузили лабораторную", "сохранили лабораторную". В школах польза от сети не обсуждается (а вот практически сейчас у кого
больше 1-й машинки в одной комнате - сеть по сути ничего не даёт - это верно). (HX протокол - это отдельная тема).
Jarik65535
04.02.2017, 09:51
Это, конечно, понятно. Тут больше конструктивная проблема, где взять разъем на плату или шлейф, как в контроллере СА. У меня, например его нет.
Тут больше конструктивная проблема, где взять разъем на плату или шлейф, как в контроллере СА. Тут именно конструктивная проблема, но она шире чем вы думаете ) Арсений, Alex_K и все
знатоки УК-НЦ не дадут соврать, что физически (если имеется в виду соединение платы вычислителя (материнки) с СА)
есть несколько "несовместимых" интерфейсов. А часть УК-НЦ имеет самый надёжный СА на проводках жёстко запаяных
на контакты мамы )
- - - Добавлено - - -
Jarik65535, да и у внутреннего шлейфа был "плавающий глюк" от терял контактность местами иногда и его приходилось
тупо поджимать - наверное самым верным надо ориентироваться на проводки сразу к маме (но паять старые коллекционные платы - дело хитрое и безжалостное конечно). Ничего не посоветую, могу только один из вариантов такого шлейфа вам выслать (сделаю фото, что бы убедиться, что мы об один и тот же интерфейс обсуждаем?)
- - - Добавлено - - -
Переходим в соотв. тему с обсуждениями СА УК-НЦ?
http://zx-pk.ru/threads/15236-set-v-kuvtakh.html
Это, конечно, понятно. Тут больше конструктивная проблема, где взять разъем на плату или шлейф, как в контроллере СА. У меня, например его нет.
А зачем их брать, если они есть в каждой УК-НЦ с СА.
Да и полно их по 150-200р. за каждый.
Это, конечно, понятно. Тут больше конструктивная проблема, где взять разъем на плату или шлейф, как в контроллере СА. У меня, например его нет. А это достаточно сложный вопрос. Во-первых, их два варианта - были УКНЦ с краевыми разъемами на маме и на СА (те же, что и на КМД-УК и на кассетах ПЗУ) и были с отечественной версией разъемов IDC (как на IDE-винчестерах, но с шагом 2.50 вместо 2.54). Соединялись они между собой коротеньким отрезком ленточного кабеля, на который были прорезаны мамы этих разъемов. Так вот, к IDC никаких вопросов не было, а вот с краевыми разъемами (по крайней мере с теми, что мне попадались) все было совсем плохо - у них отваливались задние крышки, которые должны удерживать эту ленточку, регулярно терялись контакты от малейших сотрясений, в общем, ничего хорошего.
MacBuster
04.02.2017, 16:16
Удаление в знак протеста против действий MM
Jarik65535
04.02.2017, 18:25
Пока не надо, прототип я и так припаяю, если сделаю когда.
да и у внутреннего шлейфа был "плавающий глюк" от терял контактность местами иногда и его приходилось
тупо поджимать Да, эти ОНП-НГ-57-60 - гадость полная, их только выбросить. ИМХО надо подобрать какие-то отечественные корзиночные краевые разъемы с шагом 2.50 мм и запаять этот шлейфик из них. Например, отпилить по 60-контактному куску от двух ОНП-НГ-1-108, из которых собраны корзины СМ-4.
На пробу воткнул этот СА в 62-контактную секцию ISA. Да, конечно, контакты разъезжаются довольно сильно, тем не менее, если аккуратно подобрать положение СА в ISA-шном разъеме, все контакты звонятся нормально. Сдвиг в стороны на ~0.2 мм контакты не нарушает. То есть, в крайнем случае, можно выдернуть пару ISA-шных разъемов из дохлой древней мамани и запаять их проводами. Контакты по-любому будут надежнее, чем с этой гадостью ОНП-НГ-57-60.
ОНП-НГ-57-60.
а как быть с платами Ук-НЦ у которых "зубастые IDE там стоят?" или у которых СА проводками для надёжности прямо к плате приварены? Снова нет единства, есть неравномерное распределение. Что если??? Тупо взять за ориентир промышленный стандарт (разъём на плате - ???) и тупо работать с ним, проблемные платы решать индивидуально.
Это ещё в том случае, если будет ради чего решать.
Это ещё в том случае, если будет ради чего решать. То есть если Ярик таки решится сделать сабжевый контроллер на шину ЦП? ИМХО, тогда надо сначала созвать консилиум, который решит состав будущего изделия. В него войдут сам Ярик, Патрон, form и я (может и еще кто-нибудь). Определяемся с набором эмулируемых устройств, их адресами и пр. Далее Ярик сочиняет новую прошивку для PSoC, причем для отладки он вполне может пользоваться одной из тех плат, которые у него есть сейчас (может со шлейфом помудрить придется, в качестве разъемов для системной шины можно будет выдрать ISA-шные из старой дохлой писюшной мамы), form сочиняет драйвер, Ярик все тестит и т.д.
При удачном окончании работ, Ярик выбирает доступные сейчас разъемы для системной шины под провод с другой стороны (что-нибудь с Али, скорее всего, какой-нибудь IDC-60) и разрабатывает плату нового контроллера, по возможности, из расчета, чтобы шнурок на маму УКНЦ шел один в один. Готовая плата, за мзду, определенную Яриком, рассылается всем желающим, вместе с комплектным разъемом для системной шины.
а как быть с платами Ук-НЦ у которых "зубастые IDE там стоят?" Если есть ответные части разъемов, то все без вопросов, эти разъемы ни разу не вызывали нареканий.
Но, в общем, по-любому, получив готовое изделие, каждый юзер самостоятельно решает проблему подключения. Если в его УКНЦ разъем краевой, то придется искать для него ответную часть под пайку, прорезать кусок шлейфа на разъем контроллера, второй конец распаять на найденный разъем. Если разъем найти не получится, в крайнем случае, запаять его напрямую на контакты мамы УКНЦ. Если разъем - отечественный IDC, то оставляем в нем отечественный же кусок шлейфа (у него шаг 1.25, а не 1.27), второй конец разделяем по ширине на несколько узких ленточек, проводков по 10, и с матюгами прорезаем его в буржуазный разъем контроллера. Как-то так...
MacBuster
05.02.2017, 08:12
Удаление в знак протеста против действий MM
Если в его УКНЦ разъем краевой,
у меня все платы таковы ) только на некоторых СА припаяна к краевому проводками - это заводское такое решение )
Буду с интересом следить за проектом )
Определяемся с набором эмулируемых устройств
А какое устройство самое универсальное из поддерживаемых всеми всеми PDP-машинами и всеми всеми версиями систем. Возможно RK-? Или HD-?
- - - Добавлено - - -
В принципе, первую часть - созыв консилиума и обсуждение уже можно начинать.
А вы уверены, что стартовое обсуждение должно быть публичным, ведь комментарии несдержанные будут только
мешаться! ) Публичным должен быть агрессивный маркетинг, меню и внешний вид блюд, а не кухня )
В принципе, первую часть - созыв консилиума и обсуждение уже можно начинать. Создадим новую тему чтобы в этой не отходить от вопроса? Это вопрос к Ярику. Если он берётся за эту тему, то мы готовы. Я готов, form, скорее всего, тоже, а там и Патрон подтянется. Если же Ярик не возьмётся за это дело, то все обсуждения не имеют смысла.
- - - Добавлено - - -
только на некоторых СА припаяна к краевому проводками - это заводское такое решение ) А не предыдущих хозяев?
А не предыдущих хозяев?
не похоже, хотя всё возможно, но хозяева то кто? Хранились они в подвале школы, школьный учитель?
Улучшал ситуацию ? Но почти в ноль спаяная на проводках совсем из другого региона пробегала )
- - - Добавлено - - -
Да и один из участников производства (ветеран, пенсионер) упоминал о таком варианте крепления СА уже в пределах производства. Штука в том, что сеть с головной ПЦ-машиной одно время считалась очень перспективным решением для
бухгалтерий и статитстики, возможно ещё где-то - как бы не так дорого как ПЦ на каждом раб. месте, а слабенький ПЦ сервер стоил не намного дороже ДВК (а может и дешевле - смотря о каком времени и какой конфиг. речь).
Там Micro-SD
Просьба к модераторам - измените пожалуйста
тип карты в названии темы, что бы не вводить в
заблуждение и создавать почву для лишних
вопрос и уточнений. Реально там micro-SD (!!!)
vwarlock
18.03.2017, 00:07
Всем доброго времени суток!
Я перевел прошивку Jarik65535'a в "человеческий" вид, прошивка компилируется Macro-11 без ошибок.
Теперь надо объектный файл конвертировать в BIN (точнее в .h, но это чуть позже).
И, собственно, вопрос:
Может, дабы не изобретать велосипед, уже есть готовое решение для такой конвертации?
(читать документацию я, конечно, люблю, но вдруг)
Ассемблерный файл могу выложить, но сначала хотел убедится, что все верно конвертировал из формата "недоассемблера" Jarik'a, прошив скомпилированную прошивку в контроллер.
Буду очень признателен за помощь.
P.S. После хочу занятая контроллером жесткого диска, ТС не против параллельной работы :-)
Может, дабы не изобретать велосипед, уже есть готовое решение для такой конвертации?
(читать документацию я, конечно, люблю, но вдруг)
Возможно один из вариантов линковки родным линкёром?
.HELP LINK
LINK Produces an executable program
SYNTAX
LINK[/options] filespecs
SEMANTICS
Filespecs are the object files to be linked; separate them
with commas (,). Default file types are .OBJ for input files,
.MAP for map output files, and .SAV for memory image output
files.
OPTIONS
ALLOCATE:size
Reserves space for an output file
ALPHABETIZE
Lists global symbols on the link map in alphabetical order
BITMAP (default)
Outputs the program bit map
BOTTOM:n
Specifies the lowest address to be used by the linked program
BOUNDARY:value
Starts a specific program section on a particular address
boundary
Press <RETURN> for more...
DEBUG[:filespec]
Links ODT or the debugging program you specify with your program
DUPLICATE
Allows multiple copies of library/user routines in overlays
EXECUTE[:filespec]
Specifies the name of the memory image file
EXTEND:n
Extends a program section to the size you specify
FILL:n
Initializes unused locations in the memory image file to the
value you specify
FOREGROUND[:stacksize]
Links the program for foreground execution
GLOBAL
Includes crossreference listing of global symbols in link map
INCLUDE
Accepts specific global symbols by name for inclusion in the
memory image file
LDA
Produces a file in absolute binary loader format
LINKLIBRARY[:filespec]
Includes the file you specify as a library in the link operation
MAP[:filespec]
Press <RETURN> for more...
Generates a load map
NOBITMAP
Does not output the program bit map if there is code below
location 400
NOEXECUTE
Suppresses creation of the memory image file
PROMPT
Indicates that there is more than one line of input to the
linker
ROUND:n
Rounds up a specific program section so that the root
is a multiple of the value you specify
RUN
Initiates execution of the linked program
SLOWLY
Uses the largest possible area for the symbol table during
the link operation
STACK[:n]
Specifies the stack address for the linked program
SYMBOLTABLE[:filespec]
Generates a symbol table file
TOP:n
Specifies the highest address to be used by the linked program
Press <RETURN> for more...
TRANSFER[:n]
Specifies the starting address of the linked program
WIDE
Produces a load map that is 132 columns wide
XM
Specifies that a job to be run under the XM monitor requires the
special SETTOP features
EXAMPLES
LINK MYPROG
LINK RTN1,RTN2,MYPROG/EXECUTE
LINK/MAP:MAPFIL PROG1,PROG2
.
vwarlock
18.03.2017, 13:59
Hobot, спасибо!
Будем попробовать.......
А вот и не вышло!
Ну или я что-то не так делаю.
после выполнения команды:
RT11 LINK/LDA FILE.OBJ
На выходе файл, которы не похож на образ памяти :(
vwarlock, там ещё есть какой-то
NOEXECUTE
Suppresses creation of the memory image file
впрочем я же не утверждал, почитайте полный список ключей.
- - - Добавлено - - -
там есть для определеления стартового адреса если не ошибаюсь ключ
TRANSFER[:n]
Specifies the starting address of the linked program
может по умолчанию линкануть в обычный SAV и просто переименовать7
есть ещё утилита Н.Зимина SAV2BIN )
vwarlock
18.03.2017, 19:00
Я уже почитал документацию "по диагонали" - любой выходной файл линковщика это не образ памяти а файл состоящий из определенных блоков.
Я потому и спрашивал про готовое решение.
есть ещё утилита Н.Зимина SAV2BIN )
Можно ссылочку на эту утилиту?
это не образ памяти а файл состоящий из определенных блоков.
не вижу разницы - но я не программист - вам виднее )))
Можно ссылочку на эту утилиту?
http://archive.pdp-11.org.ru/EMULATORS/UKNCBTL_HDD/Sav2Cart/
vwarlock
18.03.2017, 20:04
Так это у меня есть, но это не SAV2BIN :)
Так это у меня есть, но это не SAV2BIN
на выходе .BIN файл для картриджа получается
- - - Добавлено - - -
при соблюдении всех необходимых условий
MacBuster
19.03.2017, 12:21
Удаление в знак протеста против действий MM
MacBuster
22.03.2017, 23:34
Удаление в знак протеста против действий MM
(с шагом 2,54мм). Контакты немного «разъезжаются» к краями, но терпимо - можно паять. Я же уже писал, что СА надежно втыкается в широкую половинку ISA-шного разъема. Да, контакты разъезжаются, крайние отъезжают на 0.04 * 15 = 0.6, но это меньше половины ширины контакта. И, если воткнуть правильно, то все контакты соединяются вполне надежно. То есть для экспериментов вполне пойдет, а вот для изделия на продажу - нет, поскольку вместо простого "напялил и забыл" требует внимательного разглядывания и точного втыкания - сдвинешь в сторону на 0.2 мм, и какой-то контакт может потеряться.
А дохлые мамани от простого 8088 до П-3 еще кое-где валяются, выдрал ISA-шный разъем, и экспериментируй...
Еще у меня сохранился кусок корзинки от СМ-4. Там стоят разъемы ОНп-1-108/157.5х10.6-Р21, так в этот разъем СА втыкается идеально.
- - - Добавлено - - -
Так что можно спокойно паять и делать кабель с парой FDC на концах. А оно влезет? УКНЦ у меня нет, но зрительно помнится, что там довольно тесно. Оптимальным было бы напялить на УКНЦ какой-то краевой разъем под пайку, припаять к нему отрезок шлейфа, а на второй конец прорезать IDC-60, они есть в продаже.
MacBuster
23.03.2017, 22:36
Удаление в знак протеста против действий MM
vwarlock
24.03.2017, 11:49
Я перевел прошивку Jarik65535'a в "человеческий" вид, прошивка компилируется Macro-11 без ошибок.
Сегодня протестировал "человеческую" прошивку на железе - все отлично работает.
Ассемблерный файл прилагаю:
60233
Jarik65535
24.03.2017, 19:19
А компилировать ее чем? Есть ли какие отличия, кроме человеческого вида? Я не заметил, когда пробежался по тексту.
MacBuster
24.03.2017, 20:28
Удаление в знак протеста против действий MM
vwarlock
24.03.2017, 21:39
А компилировать ее чем? Есть ли какие отличия, кроме человеческого вида?
Все верно, отличий нет :) при компиляции macro11.exe или rt11.exe до байтика совпадает с оригиналом.
В ближайшее время наведу красоту и выложу утилиту для преобразования .OBJ в .h для дальнейшего использования в проекте.
Jarik65535, а нет ли в наличии собранного контроллера на продажу? Сначала думал подождать более отлаженной версии, а сейчас решил - пусть будет.
Jarik65535
17.04.2017, 15:53
Закончились микроконтроллеры, пара плат осталась. Если очень надо, могу заказать микроконтроллеров, но когда они придут.
Закончились микроконтроллеры, пара плат осталась. Если очень надо, могу заказать микроконтроллеров, но когда они придут.
Закажи, пожалуйста. Мне не горит - сейчас все равно нет времени после работы. Кстати, а сколько собранный контроллер стоит?
Jarik65535
17.04.2017, 17:53
Только сразу учтите, что контроллер работает с microSD-картами, причем он нормально работает с картами типа SDHC и очень хреново (по отзывам Хобота) с обычными, старыми microSD-картами. Работоспособность с новыми SDXC не проверялась.
Только сразу учтите, что контроллер работает с microSD-картами, причем он нормально работает с картами типа SDHC и очень хреново (по отзывам Хобота) с обычными, старыми microSD-картами. Работоспособность с новыми SDXC не проверялась.
Дык, затем и покупаю - попробовать что и как.
Сегодня получил девайс.
Загрузиться не получилось. Ни с SD (2Gb), ни с SDHC (4Gb).
Создал файл и папку:
\disks
log.txt
map.txt
В disks накидал образов. В мар записал:
1:sys1002.dsk
2:ASPcorp.dsk
3:cat.dsk
4:CHUKEGG.dsk
Тут сразу вопрос: в MAP.TXT номер диска начинается с 1 (по инструкции). А программа CHDISK показывает и выбирает от 0. Это чисто оформительное рассогласование?
После выбора ПЗУ экран очищается и мигает курсор. Все. На СТОП реагирует.
Кстати, как девайс выбирает с какого из подключенных образов грузиться?
Из хотелок на будущее: крайне не хватает индикатора обращений к "дискам" как на дисководах. Т.е. индикатор обращения к контроллеру это здорово, но нужен именно индикатор обращения к КАЖДОМУ "дисководу". Думаю это можно реализовать программно и в текущем варианте, а диоды подвесить на МК проводками. Однако, прошивка другая требуется ...
Создал файл и папку: - это как?
в корне у тебя должны лежать два указанных .txt и папка disks
все образы в папке, с номерами - путаница да, это автор сам себе гол.боль устроил )
загрузка первый раз всегда с 0 (первого в списке !!!), зато гляди какая Вещь
(именно с большой буквы) автору удалась. После первой загрузки через ПЗУ, потом можно
нажать стоп и М и в стартовом меню уже выбрать дисковод - и УК-НЦ скушает и будет грузить
по номеру нужную дискету (давно со времён 90-х я не видел как 0511 прогибается под программистом - красиво!).
правда со старшими номерами у меня это не прокатило.
Но на этом сказка закончилась, для меня ПКМ, а началась самая, что ни на есть правда )))
- - - Добавлено - - -
sys1002.dsk - проверь нужен 800кб, и вообще 400кб пока не подсовывай ему,
там и так глюков хватит )))
- это как?
в корне у тебя должны лежать два указанных .txt и папка disks
Они и лежат - я же это и "нарисовал".
все образы в папке,
Строго по инструкции.
с номерами - путаница да, это автор сам себе гол.боль устроил )
Ну, не так что бы боль ... главное что оно именно так, а не напутали в инструкции.
загрузка первый раз всегда с 0 (первого в списке !!!),
Понятно. Буду учитывать.
зато гляди какая Вещь
(именно с большой буквы) автору удалась. После первой загрузки через ПЗУ, потом можно
нажать стоп и М и в стартовом меню уже выбрать дисковод - и УК-НЦ скушает и будет грузить
по номеру нужную дискету
Попробовал и так сделать - тоже не прокатило. Значит загрузчик не прошел. Надо бы с обычного дисковода попробовать загрузиться. С обычной ПЗУ грузится - проверил.
- проверь нужен 800кб, и вообще 400кб пока не подсовывай ему,
там и так глюков хватит )))
Из тестовых образов, предполагаемых к загрузке, был всего 1 на 400 кб и то - до него очередь не дошла.
Arseny, поведение индикатора (диода) опиши! Плату корректнее в слоту опробуй установи. Менять карту памяти можно только когда контроллер не вставлен в слот (!). Ты номер ПЗУ точно правильно указываешь (да мало ли "смайл").
- - - Добавлено - - -
У меня получался успешный запуск вместе с контроллером ЖД (ради этого и рисковал здоровьем).
Хм ... Чёт как-то странно. Загрузился с "винта". Вижу все диски. Попробовал перезагрузиться с "дискеты" - загрузилось. Т.е. - не получается только первый старт? Тогда почему получается потом?
- - - Добавлено - - -
Блин! Я - дятел и это прискорбно :( Реально перепутал номера ПЗУ.
- - - Добавлено - - -
Ладно, не считается ;) Я просто не помню какой из "карманов" какой номер имеет, а система сейчас без корпуса лежит - ибо делаю из нее "франкенштейна". ZXKit-001 - на очереди ...
Я просто не помню какой из "карманов" какой номер имеет,
а слабо на сайте Арсения фотки подглядеть )))
а слабо на сайте Арсения фотки подглядеть )))
Да там сайт какой-то стремный - нихрена непонятно ... И нет там фото корпуса сверху. Это на Вики надо смотреть. Надо бы сайт свой переделать, наконец :( вот только где свободное время взять?
Пытался запустить контролер SDcard. При включении светодиод на контроле начинает моргать примерно раз в секунду. После нескольких установки-извлечения контролёра из слота и включения отключения УКНЦ. Светодиод вроде моргнул и перестал гореть. После чего даже удалось один раз загрузится с него. Потом ситуация повторилась опять могла постоянно светодиод. с 25 попытки вроде еще раз дал загрузится. RT11 запустилась, но при попытки запустить программу УКНЦ повисла. Сброс не помог. На экране разноцветный мусор. В общем теперь УКНЦ не запускает при вставленном контролёре SD ( на экране разноцветный мусор).
Без него включится И даже проходит внутренний тест. Правильно ли я понимаю, что что-то сгорело на плате УКНЦ (например D22 КР1801ВП1-055). И как это проверить?
Jarik65535
13.06.2017, 13:46
Если моргает светодиод - проблема с sd-картой, подобные проблемы были у Хобота, Что за карта? Попробуйте другую. Мусор на экране, зависания или что-то подобное означает плохой контакт в разъеме, нужно следить чтобы верхний край платы был строго горизонтален (параллелен корпусу). Можно пропаять площадки на плате для улучшения контакта. Вряд-ли там что-то сгорело.
Карты пробовал разные SDHC 32Gb и 4Gb (производителя не знаю). удалил все разделы с карты создал раздел меньше 2Gb форматнул обычным FAT. (НЕ FAT32).
Jarik65535
13.06.2017, 14:21
FAT32 не должна быть проблемой. Резисторы на "тыльной" стороне платы на месте? Может разъем микросд отпаялся при транспортировке?
Резисторы R1,R3-R5 на месте. С разъем SD визуально все нормально.
А точно карты SDHC работают? Может ему строго SD надо?
MacBuster
13.06.2017, 22:13
Удаление в знак протеста против действий MM
проблема с sd-картой, нет Ярослав! В том то и дело, что мой экземпляр может несколько часов работать и при тех же самых условиях вести себя как описывает "холод". Проще говоря - надо с нуля
вылизывать переделывать проект, устранять смещение в нумерации, добивать стабильности запуска - идея то шикарная
и почти почти взлетело. + прибавьте наладить нормальную работу программы которая каталог DSK не может полностью показать в RT-11 и замена образов прямо на УК-НЦ (а не в блокнотном файле на ПЦ) чаще приводит к "миганию",
ещё раз повторяю - любой манёвр на УК-НЦ приводит к краху и это бесит, стабильность -1, работать с контроллером не возможно, загрузка с приводов старше №1 так же полный крах. Такие вот дела.
- - - Добавлено - - -
ребята не надо постороннего читателя в заблуждение вводить,
там микроSDHC, а не SD (!)
Jarik65535
14.06.2017, 10:44
Господа, у кого есть данный контроллер, отпишитесь есть ли у вас проблемы с миганием и стабильностью работы. Даже если их нет, напишите модель УКНЦ и microSD карты. Может вместе удастся локализовать проблему.
Давайте я попробую сделать, что смогу. Наверное проблемы все две: не стабильно определяется SDcard и плата плохо сидит в слоте УКНЦ.
Прошу некого не обижаться просто хочу понять. Почему на плате короткие дорожки на краевом разъёме и не глубокий пропил для ключа?
Попробую сегодня прозвонить соединение разъёма. А вот с SD картой сложней. Можно ли подключится в контролеру чтобы понять что ему не нравится?
У меня версия УКНЦ Квант.
Jarik65535
14.06.2017, 11:56
Там сбоку SWD выведен, можно отладчиком подключиться.
Это просто UART TTL 5v (последовательный порт с ТТЛ уровнями) или это что другое, если да то какая скорость порта?
Jarik65535
14.06.2017, 12:23
Нет, это сокращенная версия JTAG. Для отладки нужен программатор типа Cypress Miniprog.
Правильно ли я понимаю. Что мне может помочь https://www.chipdip.ru/product/cy8ckit-049-42xx-2
Или еще вот вроде есть вариант https://www.youtube.com/watch?v=eRoKOYKFLAw
У меня есть Logic Analyzer на CY7C68013A.
Jarik65535
14.06.2017, 12:46
Нет, там обычный UART и bootloader. Нужен CY8CKIT-059.
Мда быстро этот CY8CKIT-059 я достать не смогу, доставка 2-3 недели (потом я уеду еще на 3 недели).
Можно попробовать перепрошить свой Logic Analyzer, как здесь http://dangerousprototypes.com/forum/viewtopic.php?f=56&t=3105&start=30#p58738. Там вроде народ как раз из него сделал программатор. Но не факт, что получится быстро разобраться во всем этом..
Jarik65535
14.06.2017, 14:10
В принципе можно, но в некоторых анализаторах буффер есть. Надо еще как-то подружить PSoC creator с таким программатором.
Jarik65535
14.06.2017, 19:01
Сейчас попробовал другую microSD карту - sandisk ultra 8GB HC1. Все стабильно работает, также как и с TransFlash 2GB. УКНЦ от кванта с выдранным блоком питания, вместо него БП от роутера 5В, 2А.
MacBuster
14.06.2017, 22:09
Удаление в знак протеста против действий MM
Сегодня вставил контроллер в укнц. ничего не менял та же SD карточка. все тоже.
Включаю и ВУАЛЯ, карта определятся с первого раза запускается RT11, загружаются игры, все ОК. включаю выключаю тоже все ок.
Пытаюсь повторить вчерашнее поведение, не получается.
Не знаю, что и думать!!!!
Пытаюсь повторить вчерашнее поведение, не получается.
Не знаю, что и думать!!!! Почитал я последних 2-3 страницы, очень похоже на дисконтакты. То один контакт отвалится, то другой... Учитывая отвратительное качество большинства УКНЦ-шных разъемов, неудивительно. Кстати, у кого есть готовый девайс, измерьте микрометром толщину платы, может она на 0.1 мм меньше оригинала? Отчего разъемы и валяют дурака...
Jarik65535
16.06.2017, 17:41
Если где и нет контакта - это разъем микроSD. Эти карты вообще капризные, им еще питание может не нравиться.
это разъем микроSD
так и есть разъём теряет карту регулярно (впадает в мигание), лечиться обесточиванием и вынь\вставь карту запусти неизвестно сколько раз пока не перестанет мигать. Но это не изменяет то, что и сама плата в слоте УК-НЦ сидит "двусмысленно" и повисает от любого чиха, добавлю, что ошибки в ПО так или иначе есть (!) во первых глюк с выводом
полного перечня содержимого папки DSK (1), практически гарантированный повисон при замене образов в списке на УК-НЦ, а не в окошках на ПК, попытка загрузки с устройств старших (хотя оно особо и не надо, но ведь заявлено).
может она на 0.1 мм меньше оригинала? Отчего разъемы и валяют дурака...
Там без замеров понятно - под слот УК-НЦ нужна мощная карта, которая конкретно садиться в слот до упора (характерного щелчка). См. любую плату расширения )
Если где и нет контакта - это разъем микроSDСтранно, разъем с виду (на фото) приличный. Впрочем, именно с такими я дела не имел - у него ведь, судя по фото пустой платы, контакты под "брюхом" разъема, я имел дело с такими, у которых контакты выглядывают сзади, со стороны, противоположной вставляемой карточке, с ними никаких проблем не было.
Но это не изменяет то, что и сама плата в слоте УК-НЦ сидит "двусмысленно" Тут кто-то жаловался, что недостаточна глубина пропила для ключа разъема. А взять подходящее ножовочное полотно или лобзик и пропилить глубже не ку? Или там дорожки не дают?
Jarik65535
17.06.2017, 22:27
Пропиливать пробовал, становится только хуже, так как недостаточная высота контактных площадок. Еще дело осложнено требованиями изготовителя печатных плат, которые не допускают размещение контактных площадок близко к краю. Делал на глазок.
Тут кто-то жаловался, что недостаточна глубина пропила для ключа разъема. А взять подходящее ножовочное полотно или лобзик и пропилить глубже не ку? Или там дорожки не дают?
Пилил на своем. Помогает не сильно - 1.5-2 мм, там действительно близко дорожка проходит.
- - - Добавлено - - -
Кстати, чтобы избежать перекосов при вставке в гнездо, можно выпилить планку шире платы из чего нибудь твердого и на болтах прикрутить к задней стороне платы.
Пропиливать пробовал, становится только хуже,
и пропилить глубже не ку?
плата очень уж миниатюрная и поэтому не слишком удобная в эксплуатации, с ней
даже без верхней крышки УК-НЦ корпуса намучаешься или у меня такие пальцы толстые??? )))
http://y-salnikov.github.io/uknc_sd_fdd/images/w_boards_only_.jpg
отверстия для сооружения упора действительно присутствуют - Арсений годный вариант предложил.
Это не оправдывает авторов проекта которые(ый) официально не тестирование объявил, а распродажу по
себестоимости "рабочего устройства". --- вместо того, что бы всем активным УК-НЦшникам на тестирование
предложить (возможно это где как то между текстом подразумевалось - я всё принял за чистую монету когда
приобретал (претензий у меня не осталось, осадок остался и печаль что хорошая идея пока в загибе-нагнутии страшном
плата очень уж миниатюрная и поэтому не слишком удобная в эксплуатации, с ней
даже без верхней крышки УК-НЦ корпуса намучаешься или у меня такие пальцы толстые??? )))
отверстия для сооружения упора действительно присутствуют - Арсений годный вариант предложил.
hobot, тебе можно не планку, а пластину прикрутить (там как раз 4 отверстия). Увеличив, тем самым, геометрические размеры платы - она и вставляться будет без перекосов, и из корпуса будет торчать на нужную тебе величину.
Jarik65535
18.06.2017, 01:27
Это не оправдывает авторов проекта которые(ый) официально не тестирование объявил, а распродажу по
себестоимости "рабочего устройства". --- вместо того, что бы всем активным УК-НЦшникам на тестирование
предложить (возможно это где как то между текстом подразумевалось - я всё принял за чистую монету когда
приобретал (претензий у меня не осталось, осадок остался и печаль что хорошая идея пока в загибе-нагнутии страшном
Странно что жалобы поступают только от вас. Кто нибудь еще может подтвердить наличие проблем как у Хобота? (помимо неполного вывода имен файлов-образов)
У меня они не проявляются, следовательно я не могу их устранить.
Странно что жалобы поступают только от вас. Кто нибудь еще может подтвердить наличие проблем как у Хобота? (помимо неполного вывода имен файлов-образов)
У меня они не проявляются, следовательно я не могу их устранить.
Хотелось бы увидеть понятное описание проблем, годное к повторению. Разбираться в писанине hobot'а нет желания.
Пропиливать пробовал, становится только хуже, так как недостаточная высота контактных площадок. Еще дело осложнено требованиями изготовителя печатных плат, которые не допускают размещение контактных площадок близко к краю. Делал на глазок. У меня из всего УКНЦового оборудования остался только СА, но разъем этого СА и плат расширения вроде бы, такой же, не считая ширины. Так вот, на СА контактные площадки длиннее твоих в 2.5 раза. Ну, может быть, в 2.3... И следы от контактов мамы на них только до середины, хотя в корпус разъема оно заходит полностью. То есть, хрен с ним, с изготовителем, пусть делает контактные площадки не до края, но, если они будут заканчиваться в 10 мм от края платы, часть, шириной в разъем не менее 11 мм (у тебя вся плата шириной в разъем, так, что это требование только на случай, если ты захочешь ее уширить), а пропил глубиной 12 мм, то никаких проблем с разъемом быть не должно. Да, еще измерил микрометром толщину, ровно 1.50 мм.
Кстати, может попробуем, ближе к осени, все-таки, прицепить это чудо вместо СА? Первично можно будет поиграть с этой же платой, меняя фирмварь, а потом склепать новую, уже для СА конкретно. Я пробовал, ISA-шный разъем от древних писюшных мамаш, если надевать аккуратно, вполне контачит со всей гребенкой СА, на имеющийся твой контроллер тем более оденется. Запаять проводами переходник с шины ПП на шину ЦП, залить новую фирмварь, и вперед!
Берусь сочинить необходимый софт для УКНЦ. То есть, окончательный драйвер диска сочинит, конечно, form, но первично, без 64-х устройств и всяких красивостей сделаю и я.
Jarik65535
18.06.2017, 09:18
Можно попробовать, но ведь такое устройство будет не подключить без паяльника.
Можно попробовать, но ведь такое устройство будет не подключить без паяльника.
Значит будет отладочный вариант - только для тех, кто очень захочет. А остальные ждут "коммерческой" версии.
MacBuster
18.06.2017, 10:20
Удаление в знак протеста против действий MM
Jarik65535
18.06.2017, 10:50
Вот и я про то, есть с разъемом, есть без.
Кстати, у меня есть платы СА с запаянным разъемом ОНП-КГ-56-40. А УКНЦовины с таким разъемом для СА нет? И, главное, есть ли дока, в смысле цоколевка этого разъема?
Вот и я про то, есть с разъемом, есть без. Мне кажется, что большинство машинок, все-таки, с ОНП-КГ-57-60 (который краевой). В общем-то,главная беда этих разъемов, ИМХО, это то, что задняя пластина (давлением на которую и прорезают ленту в разъем) у них никак не крепится. То, что на заводе их пытались заплавить паяльником, не в счет. Если бы их прикручивали на металлическую панель, они бы держались и нормально работали, а так получилась ерунда. Надо бы (у кого есть такое) попробовать правильно его обжать (в тисках) и прикрутить к нему сзади П-образный профиль (типа швеллера) шириной порядка 10 мм и с полочками 5 мм, подложив под пластину картонку, чтобы зажималось плотно. Скорее всего после такой доработки оно будет контачить нормально.
А что касается конечной боевой платы (если я не ошибся с количеством машинок), то ее стоит делать с разъемом IDC-60. Те, у кого машинка с ОНП-КГ-57-60, спокойно прорежут ленточку от него в IDC-60, а у кого ОНП-КГ-56-40 (которых меньшинство), прорежут в него 40-проводную ленточку, распустят ее на отдельные провода и прорежут эти провода в IDC-60, по одному, в нужном порядке .
Ну, и осталось решить, будем мы связываться с DMA или нет. С одной стороны очень хочется - теоретически, доступна очень высокая скорость обмена, если захватить шину на все время передачи блока, то блок прилетит за 128-256 мкс, с другой - это заметное усложнение всего, особенно в перспективе переноса этого дела на ДВК - с PIO добавить к УКНЦ-шной схеме шинные драйверы, и все, а с DMA придется воевать с дополнительными шестью разрядами адреса, то есть для ДВК это будет совсем отдельный проект, а не хочется...
В принципе, учитывая, что быстродействие этого Cypress существенно выше, чем у наших ВМ1-ВМ2-ВМ3, можно первоначально убедиться, что все в порядке, затем считать данные циклом из двух команд, вроде
1$: mov @R5,(R4)+
bct R3,1$ и уже потом проконтролировать не было ли ошибки, то есть не прочитала ли наша УКНЦ регистр данных в то время, когда их туда еще не выставили.
Аналогично и для записи.
Так вот, не знаю точных времянок исполнения команд на УКНЦ, но уверен, что такая передача тоже будет достаточно быстрой. Так, что, ИМХО, можно обойтись и без DMA. При этом вполне хватит регистров СА. Первоначально, для имитации загрузки из сети, надо будет разобрать сетевой загрузчик УКНЦ и отработать необходимую передачу начального загрузчика, работающего с новым адаптером, имитируя регистры СА, затем можно переключиться в нормальный рабочий режим и вперед!
Jarik65535
21.06.2017, 21:44
Не уверен, что быстродействия PSoC4 хватит, ведь ЦП побыстрее ПП будет. Надо экспериментировать.
Не уверен, что быстродействия PSoC4 хватит, ведь ЦП побыстрее ПП будет. Так ведь по-любому не более 1 млн регистровых команд в секунду. И команда пересылки из регистра контроллера в память требует трех циклов шины: достать саму команду, достать данные из регистра контроллера, поместить данные в память. Плюс bct, итого 4 цикла шины.
Тут некоторые опасения вызывает "добыча" данных из u-SD, ну и запись в нее. Эти действия "на лету" могут и не прокатить, а буфер, как я понимаю, можно выделить, разве что, на блок...
Jarik65535
21.06.2017, 22:07
Самый рациональный вариант это работать с шиной МПИ по прерываниям (прерывания внутри PSoC, если что), а общение с u-SD в основном потоке, и вот тут я не уверен что хватит 64 мкС, или сколько там нужно, чтобы отреагировать и выставить СИП. На шине ПП едва справляется. Повторюсь, нужно экспериментировать.
Самый рациональный вариант это работать с шиной МПИ по прерываниям (прерывания внутри PSoC, если что), Скорее всего, именно так.
и вот тут я не уверен что хватит 64 мкС, или сколько там нужно, чтобы отреагировать и выставить СИП. Так ты генеришь его из программы? ИМХО, его надо генерить аппаратно, ПЛИСкой.
Я, конечно, ничего не знаю про ПЛИС, кроме общетеоретических представлений, типа того, что в нее можно "прошить" какую-то логическую схему. Поэтому я изложу свое вИдение решения, а ты посмотри, реализуемо это средствами PSoC, или нет.
Для блока из четырех слов в адресном пространстве ВМ2 нужно иметь 3 аппаратных D-триггера, на вход первому из них надо отдать результат сравнения ВУ Н и АД 12-АД03 со старшими разрядами адреса этого блока (176560, триггер выборки), а второму и третьему - АД02 и АД01. Данные в них следует защелкнуть низким уровнем на СИА. Если триггер выборки включился, а на СИА низкий уровень, можно считать, что к нам обратились. Далее следует приготовиться к подключению какого-то набора портов ввода-вывода встроенного Кортекса к линиям АД15-00, в зависимости от адреса во втором и третьем триггерах, в идеале - 4 шт, причем по сигналу ВВОД, выдать содержимое порта на шину, а по сигналу ВЫВОД, защелкнуть состояние шины АД в этом порту. И, по любому из них (естественно, при активном триггере выборки и низком уровне на СИА), что по ВВОДу, что по ВЫВОДу, выдать сигнал СИП. Все это надо делать аппаратно, ПЛИСкой, и все это займет 0.5-1.5 мкс.
Если это можно сделать, то это будет идеальным решением, далее надо будет только манипулировать битами в портах Кортекса, если нет, то надо думать и экспериментировать...
Jarik65535
22.06.2017, 10:48
В PSoC я аппаратно сделал так, что при поступлении СИА и ВВОД/ВЫВОД происходит сравнение адреса (на лог. элементах) и если адрес принадлежит нужному диапозону - генерируется прерывание. Параллельно с этим происходит запоминание адреса в регистре. В обработчике прерывания происходит чтение или вывод данных и установка СИП. Все-таки PSoC не ПЛИС.
Кстати, в контроллере дисковода я не использовал прерывания, там поллингом проверялось состояние регистра.
А может быть можно выделить регистр аппаратных триггеров? Чтобы туда что-то записалось (или прочиталось) самой ПЛИСкой, без процессора? И сразу же ответить СИПом, тоже ПЛИСкой. А потом прочитать или записать этот регистр Кортексом. Нужно два таких регистра, один - 8 или (лучше) 16 бит, по адресу 176562, второй - несколько бит (3-5), с раздельным управлением, по адресу 176560 - один бит (Д7) устанавливаем процессором, а сбрасываем аппаратно, при чтении со стороны УКНЦ 8-/16-битного регистра или по сигналу сброса, второй (Д6) пишем/читаем со стороны УКНЦ, по сигналу сброса тоже сбрасываем. Может и еще потребуется пара-тройка битов.
Тогда все просто (со стороны Кортекса). Получили команду чтения, пока неважно, каким образом. Выставляем в наш 8/16-битный регистр очередное слово (или байт) данных и взводим триггер Д7. УКНЦовина, обнаружив там единицу, читает 177562, ПЛИСка аппаратно сбрасывает триггер Д7, мы это видим и толкаем новое слово данных, и снова взводим Д7.
В принципе, для чтения данных с псевдодиска, аппаратный регистр триггеров даже и не нужен, можно просто воспользоваться портом Кортекса. А вот для записи на псевдодиск аппаратный регистр необходим, ПЛИСка должна быстро принять в него очередное слово/байт данных, а наш Кортекс прочитает его, когда сможет.
Так как, реализуема подобная схема на PSoc?
Jarik65535
23.06.2017, 17:04
А можно выставлять СИП до завершения операции? Тогда нужен будет промежуточные регистры, а у псока очень мало UDB(универсальных цифровых блоков). Можно взять PSoC5, у него и памяти больше и блоков и быстродействие.
Я плохо представляю потроха этой радости, поэтому и спрашиваю. В этих UDB триггеры есть? Может есть 16-битовый регистр? Если найдется один такой, а также насколько отдельных триггеров с раздельным управлением (хотя бы два), то все должно быть ОК. У Кортекса ведь есть простые порты ввода-вывода? Чтобы в режиме ввода высокий уровень на нем показал единицу в соответствующем бите прочитанного порта, а низкий - ноль, как это выглядит у обычны контроллеров. И, соответственно, "подрыгать ножкой"? Это с одной стороны. С другой стороны есть массив ножек, который, в общем-то как-то отделен от этих портов. Так вот, хотелось бы порулить этим делом со стороны ПЛИС. Это возможно?
Ты не переводил доки от PSoC?
- - - Добавлено - - -
Качнул документ PSoC® 4: PSoC 4200M Family Datasheet и поразглядывал в нем PSoC 4200M Block Diagram (Page 4 of 42). Массив выводов подключен к потрохам как Кортекса, так и UDB через High Speed I/O Matrix. Вопрос: кто рулит этой матрицей? Есть ли возможность порулить ей из UDB, или только с ЦП Кортекса? Если с UDB не порулишь, то, скорее всего, облом, и так просто наша задача не решается...
Jarik65535
23.06.2017, 20:30
Матраца рулится из кортекса, но программируется на этапе компиляции. Скорее всего какими-то хаками можно ее динамически перестраивать напрямую, но нужно ли?. Кортексу доступны программно все выводы, и все регистры и триггеры, возможно это и делается с помощью этой матрицы. Т.е каких-то портов нет, просто добавляю регистр и читаю/пишу его напрямую из программы. Вся магия скрыта под капотом, они очень все упростили, чтобы создать схему не нужно практически ни каких навыков работы с ПЛИС. ПЛИС там, кстати, неполноценная, очень маленькая, ее едва хватит на пару 16-битных регистров. В принципе есть возможность создавать свои модули на верилоге или вхдл, но я не пробовал. Документацию не переводил, т.к. научился понимать английский напрямую.
- - - Добавлено - - -
Я пока не совсем понимаю твою задумку, можешь схемку нарисовать?
Матраца рулится из кортекса, но программируется на этапе компиляции. Скорее всего какими-то хаками можно ее динамически перестраивать напрямую, но нужно ли?Вряд ли. Скорее всего, оно пишется во флешь, причем, вероятно, в отдельную секцию, которая ни разу не обязана писаться прямо из Кортекса. Но, даже если Кортекс может туда записать, то это все равно запись во флешь, то есть долго (милисекунды) и недолговечно (порядка 100 тыс. циклов).
Т.е каких-то портов нет, просто добавляю регистр и читаю/пишу его напрямую из программы. Говоря о портах, я имел в виду GPIO.
В принципе, похоже есть вариант, который может сойтись и на таком железе...
В общем так. Нужен аппаратный регистр на ПЛИСке, 5-6 битов, который будет со стороны УКНЦ виден по адресу 176560, СИПом на него отввечает сама ПЛИСка. Биты этого регистра должны быть доступны и Кортексу. Остальные регистры делаем программно, через GPIO Кортекса, в коротком цикле прополки (20-40 команд при 48 МГц - это, по-любому, меньше микросекунды), а если надо выполнить длительную операцию (прочитать "сектор" с SD-шки в буфер ОЗУ, или записать содержимое этого буфера на SD), то взводим или гасим какой-то бит в аппаратном регистре, он будет сигнализировать ЦП УКНЦ "Думаю, прошу не мешать" (с), при этом отработка остальных регистров отключена и попытка обращения к ним вызовет Trap to 4. По окончании этой длительной операции гасим или взводим назад этот самый бит аппаратного регистра, просигналив тем самым УКНЦовине, что мы готовы общаться не только через аппаратный регистр, но и через программные, после чего снова уходим в короткий цикл программного обмена с регистрами.
Я пока не совсем понимаю твою задумку, можешь схемку нарисовать? А в какой программе сейчас принято рисовать блок-схемы? Принципиальные схемы я рисую в Оркаде, но тут не тот случай...
Jarik65535
27.06.2017, 12:51
Т.е. аппаратно СИП будет формироваться только для регистра "готовности". И если в нем использовать только 1 бит (0200 например, как принято в УКНЦ) то возможно он и не займет много блоков. Рисовать сейчас модно в облачном draw.io, но оно не специализированное. Я уже понял и без схемы, можно не рисовать. :) Осталось только припаять контроллер.
И если в нем использовать только 1 бит (0200 например, как принято в УКНЦ) то возможно он и не займет много блоков.Хотелось бы несколько битов, впрочем необязательно. И еще вызывает сомнения бит 0200. Нам ведь надо перехватить загрузку из сети, а там он участвует. Впрочем, над вариантами можно думать, да и все это - софтовые решения, паять здесь не надо.
Осталось только припаять контроллер. Это как? К УКНЦ? Я бы, все-таки, попробовал найти старую писюшную мамашу с шиной ISA - они шли до третьего Пентиума, скорее всего, у кого-нибудь валяется. Выдрать пару ISA-шных разъемов, отпилить, сколько надо и запаять переходник. (То есть, я бы не пробовал, у меня оно в дальней кладовке и так лежит, в смысле "ёлка" от каких-то 486-х брендов.)
Jarik65535
28.06.2017, 10:41
Я тут пытался подключить контроллер к шине ЦП и столкнулся с проблемами описанными Хоботом: не видит микроСД, но изредка работает. Несколько раз перепаивал микроконтроллер, разъем - бесполезно. Очень похоже на микротрещину в плате. Видимо и Хоботу досталась дефектная плата. Больше не буду заказывать на dirtypcb. В качестве прототипа попробую подключить cy8ckit-049.
Видимо и Хоботу досталась дефектная плата.
могу сделать очень крупную фотку своего экземпляра
какая сторона интересует?
Jarik65535
29.06.2017, 13:28
Микротрещина на то и микро, что ее так просто не видно. Да и она вполне под маской может быть. Так что, не нужно.
В качестве прототипа попробую подключить cy8ckit-049 А ног хватит?
Микротрещина на то и микро, что ее так просто не видно. Да и она вполне под маской может быть. Так что, не нужно.Скорее гонит кто-то из Via. Металлизация отверстий где-то подвела.
2All: напомните, плз, где-то был дизасм системных программ ПП, меня интересует загрузка из сети.
Jarik65535
29.06.2017, 18:04
Вот тут есть. (http://y-salnikov.github.io/uknc_sd_fdd/pdf/rom_disasm.pdf) Они там зачем-то через EMT и TRAP сделали.
Поразглядывал я эту программулю (искать по комментарию "загрузчик из сети"). Что-то странное. Сначала они пересылают в сеть какую-то странную строку:
164554$:.BYTE 377,0,0,204,0,0,0,0,0,0,0,0,0,374,173,60,377,376,0 ,0 затем читают байт, должен быть номером станции, потом сверяют без знака каждый полученный байт с кодом 0373, если меньше, пересылают его в память загрузчика (начиная с 050000), если он равен 0374, то получают и проверяют КС, иначе - ошибка (перезапуск загрузчика).
Это что, получается, в загрузчике не должно быть байтов с кодами 0373, 0375, 0376 и 0377 ? Но это же бред!..
Да, пересылка нуля по адресу 176560 - команда включения режима загрузки, отсюда, логично было бы сделать и прием остальных команд по этому же адресу, можно WO. А еще, получив программу загрузчика, перед уходом на нее, этот, так сказать, БИОС, пересылает туда код 004, не знаю, пригодится нам, или нет. Но, если вдруг не пригодится, то эту команду придется отработать, как NOP.
Jarik65535
02.07.2017, 14:38
Короче, ничего не выходит. Я сделал очень кощунственную вещь (слабонервным не смотреть):
http://i.imgur.com/Pa8Cl5w.jpg
Даже если отключить питание и просто подключить плату УКНЦ пишет об ошибках в ОЗУ ЦП и не стартует. Все выводы проверил, прозвонил. Оригинальный контроллер СА подключается к этому же разъему шлейфом и работает. Как это? Превышена допустимая емкость?
Я сделал очень кощунственную вещь (слабонервным не смотреть):
Не парься ;) - такой фигней занимались почти все кто ремонтировал учебные классы УКНЦ. Очень часто встречаются СА припаянные к основной плате проводками. Или варианты - к системной плате припаян шлейф, а на другой стороне обжат разъем.
Даже если отключить питание и просто подключить плату УКНЦ пишет об ошибках в ОЗУ ЦП и не стартует. Все выводы проверил, прозвонил. Оригинальный контроллер СА подключается к этому же разъему шлейфом и работает. Как это? Превышена допустимая емкость? Не думаю, что емкость. Скорее, софтовые дела в PSoC - кто-то из проводков в неподходящий момент не "в воздухе", в итоге PSoC перебивает инфу на шине, вот тест и сходит с ума.
Я сделал очень кощунственную вещь А ISA-шного разъема не нашел? И разъемчик ты выбрал не очень удачно, вообще-то туда надо было паять папу, эти мамы при жестко зафиксированном лепестке служат очень недолго, да и при переходе к "боевому" варианту будут сложности - там ведь надо шлейфик ставить.
- - - Добавлено - - -
Даже если отключить питание и просто подключить плату Сразу не обратил внимания. Так вот, оно же CMOS? Так фантомное питание через сигнальные (не питательные) выводы никто не отменял.
Jarik65535
03.07.2017, 11:53
Все выводы кроме СИП настроены на вход. СИП я отпаивал, тоже самое. Текущий вариант прошивки формирует СИП только программно, и я отключал вообще все действия, оставив только пустой цикл. Про питание через защитные диоды я не подумал.
Начни с нулевой тестовой прошивки - все выводы на ввод, на свободном выводе помигай светодиодом.
Начни с нулевой тестовой прошивки - все выводы на ввод, на свободном выводе помигай светодиодом.
Если не заработает - сменить ОЭВМ ( микроконтроллер ) на др. экз. этого типономинала.
Если и др. не заработает - сменить типономинал ОЭВМ, т.к. китаёза тоже не "белая и пушистая".
Небольшой оффтоп: у меня крайне огорчительный опыт замены PAL на GAL (точнее серии 1556 на GAL) в машинке на 1806ВМ2.
Не работает. Осциллограф показывает что все входные сигналы в норме (по размаху). Но не наботает.
И варианта всего два: либо из-за того что GALки более быстрые, либо из-за того что они CMOS....
А серия 1556 огорчает тем что греется хуже 531 серии. Буду пробовать 1556 менять на импортные "одноразовые" PAL.....
Не работает. Осциллограф показывает что все входные сигналы в норме (по размаху). Но не наботает.
И варианта всего два: либо из-за того что GALки более быстрые, либо из-за того что они CMOS.... А может попробовать что-то 3-вольтовое?
Jarik65535
19.07.2017, 16:42
Тогда уж ПЛИС сразу.
И варианта всего два: либо из-за того что GALки более быстрые, либо из-за того что они CMOS....
У меня были проблемы, когда я в TTL-схему запхнул КМОП-логику (дело было на Амиге), пришлось, если не изменяет память, дополнительные резисторы навешивать, но я не помню уже совсем, по входу или по выходу и к чему притягивалось... Но проблема была очень похожая - сигналы есть, а нифига не работает...
Jarik65535
19.07.2017, 19:03
Дабы убедиться, что дело не в закороченных сигналах, кривой схемотехнике или прошивке, я подключил ту же плату к шине ПП. Все работает, я даже прошил ее кассетным бейсиком. Похоже реально звенит.
- - - Добавлено - - -
Сейчас просто зашунтировал одну линию (АД15) конденсатором 30пФ на общий, и получил те же самые проблемы на шине ЦП. При этом больше ничего не припаяно.
Пробовал подтянуть резистором в 1к, как к плюсу так и к минусу — не помогает. А в конце вообще заметил, что если даже просто воткнуть разьем, к которому НИЧЕГО НЕ ПРИПАЯНО, тоже самое. При этом контроллер СА подключается таким же разъемом и при этом болтается на шлейфе 15см! Может тоже на шлейф посадить?
Прошу прощения за оффтоп.
Я почитал все это про УКНЦ. И мне стало понятно почему вроде бы крутая машина PDP-11 Два CPU настоящие 16bit на 8мгц, прилично памяти, не плохие видео разрешения.
А софта приличного практически нет. И то, что она не стала конкурентом не то, что IBM XT, а даже Spectrumу. И дело не в том, что после развала ссср ее перестали производить. А исполнение железа, 5000 часов на отказ и то притянутые за уши. А Советский КМОП, беспощадный и ...
xolod, изыди!
- - - Добавлено - - -
А софта приличного практически нет.
проспаться бы вам да
не стала конкурентом не то, что IBM XT, а даже Spectrumу.
ухахаха, что же за бред вы несёте?
xolod, изыди!
Знаю, сейчас меня полетит все, что можно и что нельзя..
xolod, а зачем оффтопить да к тому же полным бредом.
DECовские ОС и компиляторы по вашему "неприличны", чем же?
А это промышленный стандарт вообще то, к конкретно УК-НЦ по всякому можно относиться,
но не выпадая за рамки здравого смысла ) Без обид!
xolod, а зачем оффтопить да к тому же полным бредом.
DECовские ОС и компиляторы по вашему "неприличны", чем же?
А это промышленный стандарт вообще то, к конкретно УК-НЦ по всякому можно относиться,
но не выпадая за рамки здравого смысла ) Без обид!
Признаю, я не уточнил что. про софт не имел ввиду родной DEC PDP-11 софт.
Я говорил о софте который сделан конкретно для УКНЦ и который бы использовал ее возможности, графические например.
Тоже не хотел кого либо обидеть!
Я говорил о софте который сделан конкретно для УКНЦ
а вот это можно конкретно по позициям обсудить в любой другой подходящей для этого теме.
И кстати, если рабочую машинку не "ковырять" - она работает, верите мне? )
а вот это можно конкретно по позициям обсудить в любой другой подходящей для этого теме.
И кстати, если рабочую машинку не "ковырять" - она работает, верите мне? )
ТО что она работает, я верю =) (Вам на слово!) Вопрос, как оно работает?
Вопрос, как оно работает?
замечательно, не тормозит, не виснет, справляется со всеми поставленными задачами,
в 90-х практически не выключалась из сети целыми днями, в процессе отладки программ и игр перезагрузка
системы требуется часто - но это специфика, я предлагаю, если вам интересно на эту тему пообщаться где-нибудь
тут > http://zx-pk.ru/threads/21994-voprosy-po-uknts.html
А софта приличного практически нет. И то, что она не стала конкурентом не то, что IBM XT, а даже Spectrumу.Все дело в том, что она опоздала. Появись она в начале 80-х, стань тогда же массовой (читай "дешевой") и все могло бы быть по-другому. А в конце 80-х уже были 286-е с существенно большим быстродействием, в начале 90-х массовыми стали именно они...
- - - Добавлено - - -
А в конце вообще заметил, что если даже просто воткнуть разьем, к которому НИЧЕГО НЕ ПРИПАЯНО, тоже самое. Конкретные чудеса! Я в свое время клепал пару контроллеров в гнездо СА, один в УКНЦ с краевым разъемом, другой - с ОНП-КГ-56-40, и оба весело работали, не считая того, что краевые разъемы регулярно теряли какой-нибудь из контактов. Оба были со шлейфами, теми самыми, которыми был подключен СА. Причем я, по-простому, все ДА буферизовал двумя КР580ВА87 (еще обратил внимание, что эти драйверы сильно греются, а 555/1533АП6 у меня тогда не было), остальные, которые входные - в 1533ЛН1, а СИП и ТПР выдавал какими-то открытыми коллекторами в 8-ногом корпусе, вроде 155ЛА18.
Что я об этом думаю. Возможно, в какой-то из БИСок один из шинных драйверов полудохлый, что называется "на грани" и дополнительная емкость, подключаемая к этой линии приводит к перешагиванию этой грани. Можно попробовать взять выводный конденсатор 10-15 пФ, припаять его проводком к земле, а затем, поочередно толкая вторым концом во все сигнальные гнезда разъема на маме, делать перезапуск. Так можно будет выявить эту полудохлую линию. Затем можно будет попробовать подтянуть ее к +5В, ну, или как-то пошаманить еще...
- - - Добавлено - - -
Кстати, а СА на твоей машинке работает? Или его у тебя нет?
SuperMax
20.07.2017, 06:44
Следует отметить, что xolod прав. Не смотря на то, УКНЦ хорошая и быстрая PDP-11 машинка, приятная в работе, ее погубили несколько недостатков:
1. реально низкое качество исполнения: и печатных плат и корпуса, который не может защитить плату от изгиба. я работал в СЦ в начале 90х и могу сказать что УКНЦ приходили в ремонт десятками и это не смотря на то, что их физически было меньше чем БК-шек и спектрумов.
основная проблема как уже было сказано AFZ - СА. Чаще всего тупо припаивали шлейф. Остальные неисправности делились на сдохшие XM и повреждение дорожек на плате (обрыв).
Да, УКНЦ стояли в учебных классах и эксплуатировались в не очень комфортных условиях, но теже БК-0010 или 503 ямахи (в закос которой и делали УКНЦ по компоновке) были практически неубиваемыми в сравнении.
2. Отсутствие хорошей документации по программированию ПП. Результат - очень малое количество софта именно под УКНЦ способного использовать возможности ПП эффективно.
те БК-0010/11/11М значительно удобнее в программировании тк имеет существенно более простую архитектуру.
Да, и это сказано не в обиду кого-либо это просто констатация факта.
А так - УКНЦ экплуатировались даже как оффисные машины в различных ЧП в начале 90х.
Jarik65535
20.07.2017, 10:24
Можно попробовать взять выводный конденсатор 10-15 пФ, припаять его проводком к земле, а затем, поочередно толкая вторым концом во все сигнальные гнезда разъема на маме, делать перезапуск. Так можно будет выявить эту полудохлую линию. Затем можно будет попробовать подтянуть ее к +5В, ну, или как-то пошаманить еще...
Можно попробовать, но это долго и не удобно.
Кстати, а СА на твоей машинке работает? Или его у тебя нет?
Да, как я писал несколькими постами выше, подключается через такой же разъем, к которому припаян шлейф 15 см. Работоспособность самой сети не проверял, но регистры со стороны ЦП читаются.
Jarik65535, Простите, а банально в другую УКНЦ воткнуть Вашу платку не пробовали. Может у Вас УКНЦ "особенная"?
Jarik65535
20.07.2017, 11:41
Может и особенная, но она у меня одна.
но она у меня одна.
а сделайте фото вашей платы, если не трудно, или делали уже?
Для меня, чистое любопыство-любознательность, желательно в макс. возм. качестве.
Допустим в разделе портрет ещё одной машинки будет, никому хуже не станет )
Jarik65535
20.07.2017, 18:21
Заработало!
Припаял на шлейф и все заработало, даже проект с аппаратным формированием СИП и бита готовности заработал.
Не знаю, что это за магия, может волновое сопротивление шлейфа подошло, или задержки распространения по нему сигнала уменьшило частоту звона, или просто предыдущий разъем где-нибудь коротил при установке.
Теперь буду реализовывать загрузку по сети, а потом можно начинать думать над основным "функционалом".
Высококачественную фотку платы делать не на что, а та что есть на гитхабе (http://y-salnikov.github.io/vcaptfx2/imgs/UKNC_BOARD_RGB_small.jpg) многим не нравиться, наверное рука дрогнула.
Может это оно http://easyelectronics.ru/dzhonson-g-grexem-m-konstruirovanie-vysokoskorostnyx-cifrovyx-ustrojstv-nachalnyj-kurs-chernoj-magii.html
а та что есть нормальная фотка - если просто посмотреть на плату как в моём случае хотелось.
Заработало!
Не знаю, что это за магия,
Теперь буду реализовывать загрузку по сети, а потом можно начинать думать над основным "функционалом".
Ура, три раза. Только успехов, имейте в виду меня как тестера на моих платах в будущем.
Спасибо.
MacBuster
20.07.2017, 20:47
Удаление в знак протеста против действий MM
Jarik65535
23.07.2017, 19:17
Удалось реализовать загрузку "из сети", причем без ограничения на содержимое. Пришло время решить несколько важных вопросов.
1. Загрузчик. Его можно вшить в контроллер, либо грузить с карты? При начале работы с сетью, запускается таймер на 10 секунд и перезапускает загрузку по их зевершении, в принципе должно с головой хватить на инициализацию карты и загрузку.
2. Регистры, есть 4 регистра, причем 2 из них: 176560 и 176564 при чтении аппаратно возвращают флаг готовности (который можно переключать программно). После завершения загрузки из сети, УКНЦ производит запись в регистр 176560 слова 4, что можно использовать как команду перехода в рабочий режим. Нужно придумать максимально простой для RT-11 протокол работы, чтобы уменьшить объем драйвера.
3. Ограничения и хранение томов. Каковы максимальные размеры томов RT-11, какое их максимальное кол-во и в каком виде их хранить на карте? Как отдельные файлы, единым массивом?
4. Нужен ли какой дополнительный "функционал"? Можно зарезервировать пару томов для спец.нужд, как-нибудь организовать доступ к файлам на карте (не томам) или даже предусмотреть возможность подключения к локальной сети (современной) или сетевому диску на ПК .
Jarik65535, листайте на таблицу "Ограничения" тут (https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D 0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D1%8B%D1 %85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC)
- - - Добавлено - - -
Удалось реализовать загрузку "из сети", причем без ограничения на содержимое.
можно это немного раскрыть, конкретнее описать что вы называете "реализацией рагрузки из сети", без ограничения
на содержимое = ????? )
- - - Добавлено - - -
я "наученный предыдущим полностью рабочим проектом" не спешу пока ставить спасибо.
Давайте всё спокойно действительно отладим и сделаем как надо в рамках УК-НЦ, а не просто
у меня тетрис заработал значит всё ОК.
Jarik65535
24.07.2017, 18:02
Поразглядывал я эту программулю (искать по комментарию "загрузчик из сети"). Что-то странное. Сначала они пересылают в сеть какую-то странную строку:
164554$:.BYTE 377,0,0,204,0,0,0,0,0,0,0,0,0,374,173,60,377,376,0 ,0 затем читают байт, должен быть номером станции, потом сверяют без знака каждый полученный байт с кодом 0373, если меньше, пересылают его в память загрузчика (начиная с 050000), если он равен 0374, то получают и проверяют КС, иначе - ошибка (перезапуск загрузчика).
Это что, получается, в загрузчике не должно быть байтов с кодами 0373, 0375, 0376 и 0377 ? Но это же бред!..
Да, пересылка нуля по адресу 176560 - команда включения режима загрузки, отсюда, логично было бы сделать и прием остальных команд по этому же адресу, можно WO. А еще, получив программу загрузчика, перед уходом на нее, этот, так сказать, БИОС, пересылает туда код 004, не знаю, пригодится нам, или нет. Но, если вдруг не пригодится, то эту команду придется отработать, как NOP.
Так вот, после внимательного изучения листинга выяснилось, что для передачи байта 0373, 0375, 0376 или 0377 нужно передать 0373 затем инвертированный байт. Т.е. разработчики УКНЦ все предусмотрели. 0374 - конец передачи.
- - - Добавлено - - -
у меня тетрис заработал значит всё ОК.
У меня, и у всех кроме Хобота.
Мое мнение.
1. Загрузчик, который с эмуляцией сети надо вшить в контроллер намертво. Далее переключаемся в рабочий режим, и уж там можно делать что угодно. Можно, допустим, загрузить сразу операционку. Можно загрузить с карты вторичный загрузчик, который побеседует с юзером, позволит смонтировать нужные образы дисков и т.п., и в конце концов загрузиться с выбранного образа, в общем полная свобода.
2. Имеет смысл глянуть на устройство и драйвер HD в эмуляторе Патрона, и сделать что-то "по мотивам", ИМХО, оно достаточно простое.
3. ИМХО, диск (том) УКНЦ должен быть файлом на карте. С тем, чтобы пихнуть эту SD-шку в кардридер компьютера, залить туда любые образы, добытые из Сети, или еще откуда, потом сунуть ее в контроллер, смонтировать выбранные образы на эмулируемые диски (тома) и вперед! Или наоборот. Собрали что-то на одном таком "диске", сунули карточку в комп и отправили файл-образ куда угодно. Размер диска разумных ограничений иметь не должен - RT-11 не единственная операционка. Та же RSX-11, у нее как бы не 48 бит под номер блока. Но нам, я думаю, хватит и 32-х бит.
4. Дополнительный функционал, конечно, интересен, но вопрос, влезет ли оно? Ведь для того же сетевого диска Винды нужна будет, как минимум, Самба. Или я неправ? Впрочем, по-любому это можно будет отложить на потом - аппаратных изменений это не потребует, а софтовые - это просто смена прошивки...
Размер диска разумных ограничений иметь не должен - RT-11 не единственная операционка. не совсем вот это понял? RT-11 единственная ОС на УК-НЦ.
1. Загрузчик, который с эмуляцией сети надо вшить в контроллер намертво. Далее переключаемся в рабочий режим, и уж там можно делать что угодно. Можно, допустим, загрузить сразу операционку. Можно загрузить с карты вторичный загрузчик, который побеседует с юзером, позволит смонтировать нужные образы дисков и т.п., и в конце концов загрузиться с выбранного образа, в общем полная свобода.
2. Имеет смысл глянуть на устройство и драйвер HD в эмуляторе Патрона, и сделать что-то "по мотивам", ИМХО, оно достаточно простое. Очень согласен с этими 2-мя пунктами.
У меня, и у всех кроме Хобота.
Это объясняется просто - я действительно пользуюсь УК-НЦ и мне нужно надёжное не глючное устройство которое
будет работать раз я его в плату воткнул, а не мигать 15 раз из 20 и виснуть 3 раза из 5 и только 2 из 20 работать. - такое поведение железяки раздражает, верите?
Другие - это кто? Я просил (могу ссылку на ответ дать прямую) в частности МакБастера потестить и ваш контроллер
на старт определённого ПО и его там эксперименты с видео подробнее описать, он мне ответил фактически так
"кому это нужно? всё что грузиться меня лично устраивает", так может ему кроме тетриса и не нужно ничего.
AFZ, вот та самая "полная свобода" в первом пункте - это и есть весь доп.функционал, хорошо, если уже это будет
"без микротрещин" )))
- - - Добавлено - - -
Меню грузится, заставки тоже, а потом зависают.
это Же вы признаёте? Так зачем же "троллить" меня в очередной раз и писать "чушь", когда я как раз
своими постами ситуацию ВСЕГДА хочу только улучшить как активный пользователь.
не совсем вот это понял? RT-11 единственная ОС на УК-НЦ.
Т.е. UNIX - уже не ОС?
И RSX, пусть с тормозами и глюками, вроде же запускали.
Jarik65535, посмотри вот здесь (http://zx-pk.ru/threads/18351-emulyator-dvk.html?p=921134&viewfull=1#post921134).
Ранее уже обсуждали возможный интерфейс контроллера на шине ДВК, но недавно пришла ещё пара мыслей.
Прерывания весьма полезны, но первую версию контроллера можно сделать без них. Чтобы легко отличать версию без прерываний - можно сразу предусмотреть в CSR бит разрешения прерываний 0100, который невозможно установить у версии без прерываний.
Работу с регистрами можно сделать довольно оригинально - задавать номер одного из 8 регистров в битах 010..002 CSR, после чего читать/писать этот регистр через регистр данных, а младший бит CSR использовать для запуска выполнения. Регистр с номером 00 может одновременно содержать слово состояния контроллера и работать, как регистр для приёма команды, которая будет выполнена при записи 1 в CSR. Поэтому для выполнения новой команды надо просто записать код команды в регистр данных и затем установить бит 01 в CSR для её выполнения. Поскольку этот бит всегда читается нулём - его установка может производиться командой INC.
После сброса контроллера и с момента завершения команды - регистр 00 показывает код состояния контроллера, а с момента записи в этот регистр и с момента начала выполнения команды - регистр 00 показывает номер выполняемой команды.
Обмен данными можно организовать в стиле DW - после начала выполнения команды ЗАПОЛНИТЬ БУФЕР или ОПОРОЖНИТЬ БУФЕР - снимается бит READY в CSR и следующие 256 обращений к регистру данных попадают в 256 последовательных 16-битных ячеек буфера контроллера, причём при заполнении учитываются только циклы записи, а при опорожнении - только циклы чтения. Таким образом можно будет (например) подать команду ЗАПОЛНИТЬ и затем инвертировать содержимое буфера, подав 256 команд COM @#DATA. После 256 учтённых обращений команда завершается и устанавливается бит READY в CSR.
Завершение любой команды приводит к установке бита READY в CSR, очистке в CSR битов номера регистра 010..002 ( т.е. выбору регистра 00 для проекции в регистре данных ) и показу в регистре 00 кода завершения команды. Ошибочное завершение команды вызывает установку старшего бита CSR.
Запись в CSR при сброшенном бите READY завершает выполнение любой команды на любом этапе. Записанное слово проверяется только на бит 040000, если он установлен - производится обычный сброс контроллера, а если нет - сброс контроллера дополняется записью кода ошибки в регистр 00 и установкой старшего бита CSR. Ошибки при выполнении команд отражаются кодом ошибки в регистре 00. Включение питания, INIT шины и установка бита 040000 в CSR - сбрасывают контроллер в начальное состояние с запрещением прерываний, установкой проекции регистра 00 в регистре данных и очисткой кода ошибки.
Если область регистров не ограничена двумя адресами - можно не заморачиваться с доступом к дополнительным регистрам через регистр данных, а просто показывать дополнительные регистры в последовательных адресах, следом за регистром данных.
Jarik65535
27.07.2017, 13:20
С этим контроллером простор для творчества очень ограничен (в данном случае), его едва хватает на реализацию одного регистра, доступного для чтения всегда и нескольких доступных только когда не происходит обращения к карте. Что-то слишком сложно все, контроллер вполне может содержать конечный автомат любой сложности, т.е. можно реализовать просто последовательную запись в регистр данных без установки номера регистра в CSR. Я считаю, что нужно абстрагироваться от управления буферами и быть как можно ближе к ОС, например, записываем в CSR код операции, затем в регистр данных пишем последовательно номер тома, номер блока, кол-во блоков, затем собственно пишем или читаем данные, причем постоянно проверяем бит готовности в CSR перед каждым обращением к регистру. Может кто знает, что приходит на вход драйвера в RT-11? А такие вещи, как прерывание любой операции вообще вряд ли реализуемы в текущей конфигурации.
записываем в CSR код операции, затем в регистр данных пишем последовательно номер тома, номер блока, кол-во блоков, затем собственно пишем или читаем данные, причем постоянно проверяем бит готовности в CSR перед каждым обращением к регистру.Да, драйвер HX так и работает, только при чтении система может запросить не целый блок, а только одно слово, поэтому в операции сообщается не количество блоков для передачи, а количество байтов.
Mov #"CW, R0 ; Packet type = COMMAND ; Command = Cmd_WRITE_RAW
Call WOs
Mov R3, R0 ; Unit
Call ChOs
Mov R2, R0 ; Block
Call WOs
Clr R0
Call WOs ; 16bit Block -> 32bit Block
Mov R1, R0 ; ByteCount
Add (SP), R0 ; R0 = ByteCount + fill count
Call WOs
1$:
.IF EQ MMG$T
MovB (R5)+, R0
.IFF
Call @$GTBYT
Mov (SP)+, R0
.EndC
Call ChOs
SOB R1, 1$
Mov (SP)+, R1 ; R1 = Bytes to fill
BEq SkipFill ; Skip fill on full blocks
Clr R0
4$:
Call ChOs
SOB R1, 4$
SkipFill:
Может кто знает, что приходит на вход драйвера в RT-11?
Mov HXCQE, R4 ; R4 -> Queue element
Mov (R4)+, R2 ; R2 = Block number
MovB (R4)+, R1 ; R1 = SpFun code
MovB (R4)+, R3 ; R3 = Unit number
BiC #^c7, R3 ; Force it to be 0..7
Tst R1
BNE SPFUN ; Is it SpFun call?
Mov (R4)+, R5 ; R5 = buf addr
Mov (R4), R1 ; R1 = word count
Tst R1
BEq DONE ; R1 = 0 - Nothing to do
BPl HXREAD ; > 0 - Read
; < 0 - Write
Call HX.Write ; Make Write to HX
Br CHECK ; OK?
HXREAD: ; Make Read from HX
Call HX.Read
CHECK: ; Error?
BCC DONE ; No - OK
; Else - abort
HXINT:
HXERR:
Mov HXCQE, R4 ;
BiS #HDERR$, @-(R4) ; Set ERROR bit in CSW.
Jarik65535
27.07.2017, 14:20
Т.е кол-во томов ограничено одним байтом? И что за SpFun? И как происходит инициализация тома со стороны ОС? А то, что передается кол-во слов, а не блоков - не проблема, в библиотеке FATFS elmchan'а все это предусмотрено.
что за SpFun?Запрос размера подключенного образа.
И как происходит инициализация тома со стороны ОС?Через обычные запросы чтения и записи.
- - - Добавлено - - -
Т.е кол-во томов ограничено одним байтом?В обычной RT-11 максимальное количество томов 8 ( с номерами 0..7 ).
- - - Добавлено - - -
В принципе - можно реализовать упрощённый 16-битный вариант протокола HX (http://zx-pk.ru/threads/20683-protokol-hx-imitatsiya-blochnogo-ustrojstva-s-posledovatelnym-interfejsom.html?p=569574&viewfull=1#post569574), где в фазе передачи команды передаваемые байты расширяются до слов, а в фазе передачи данных - передаются не байты, а слова. В протоколе HX пакеты имеют контрольную сумму, возможно её использование также будет не лишним. Когда пользователь что-то криво установит - он благодаря контрольной сумме будет иметь возможность определить, получает ли драйвер правильные пакеты из регистра данных.
Jarik65535
27.07.2017, 16:04
Можно и даже нужно передавать слова и туда и обратно, HX заточен под байтовые операции. Вопрос по размеру, можно сделать возможность создавать любые тома (до 4 Гб или 2Гб, сколько там у FAT32 на файл) и передавать реальный размер файла, правда тогда не понятно, что делать с еще не инициализированными томами-файлами. Можно ввести в протокол команду "задать размер", например. Не уверен на счет необходимости контрольной суммы, у нас все-таки не последовательный интерфейс и ошибка на шине скорее приведет к прерыванию.
Суть протокола HX не в байтовых или словных операциях, а в том, что команда контроллера задаётся не через CSR, а через регистр данных. Работа контроллера выглядит так - контроллер ждёт запись слова в регистр данных. Если слово пришло - это команда и контроллер принимает и интерпретирует следующие слова, как аргументы этой команды. Когда все аргументы получены - контроллер при выполнении команды чтения переходит в режим передачи и выдаёт через регистр данных запрошенные данные или устанавливает бит ошибки, если аргументы команды ошибочны ( например задан номер тома, к которому не подключен образ ). При выполнении команды записи контроллер после приёма последнего аргумента начинает принимать слова данных или устанавливает бит ошибки, если аргументы команды были ошибочны.
Управлять подключением образов к приводам контроллера со стороны ДВК практически нереально. Гораздо реальнее иметь соглашение, что контроллер подключает к приводам только те образы на карте, которые имеют числовое расширение ( номер привода для подключения в формате 000..255 ). Тогда пользователь может вставить карту в ридер, добавить номера 000, 001, 002, 003, 004, 005, 006, 007 к тем образам, которые хочет иметь на приводах 0..7 и всего делов. При инициализации тома операционка ДВК не заказывает подключение образа - она запрашивает у контроллера размер уже подключенного к приводу образа и создаёт в подключенном образе файловую структуру на основе полученного ответа.
Суть протокола HX
Я только хочу напомнить (прямую ссылку можно конечно накопать с помощью поиска), что HX протокол при эксперименте с реальной УК-НЦ и загрузки через модифиц. СТЫК-С2 с т.н. HX-сервера адапт. под СТЫК-С2 УК-НЦ (напомню, что есть вариант "заточенности под СА УК-НЦ", показал, что некоторые программы через протокол не работают. Это те же ИГРОПАКЕТЫ от ИТО, вариант игры про рыцаря, после запуска загрузчика он не повисает не загружая файл .OVL, возможно какие-то ещё программы - точной и полной проверки никто не делал.
Люди, я бы все-таки обратил внимание не на HX, а на HD.
Управлять подключением образов к приводам контроллера со стороны ДВК практически нереально. Почему? Передаем через .spfun (другой, не 373) строчку с именем файла, и вперед. Перед этим, пользуя в цикле третий .spfun со значением "получить очередную строку списка файлов на карте", можно будет получить оглавление этой CF-ки. А потом спокойно пишите программу СFMO[unt], хоть простую утилиту командной строки, хоть нечто, подобное Командиру Нортону. :) Единственное, что не выйдет - перемонтировать системный диск, система такого, естественно, не переживет.
что делать с еще не инициализированными томами-файлами Ничего делать не надо. Если файл есть и его подключили, то надо определить его размер и возвращать этот размер системе, причем следует учитывать, что RT-11 не понимает дисков более, чем с 65535 блоками, но, в то же время, кроме RT-11 есть и другие операционки, которым доступно больше, чем 32М дискового пространства. Впрочем, это легко решается в обработчике .SPFUN 373 драйвера RT-11: если размер файла более 32М, возвращаем 65535, и вперед. Разбивать большие файлы на несколько томов RT-11, ИМХО, не имеет смысла - никто не мешает сделать файлы CF требуемого размера и не морочить голову.
Единственное, что может понадобиться, если вдруг решим дополнить программу CFMO дополнительным функционалом в виде создания нового файл-образа, типа "вставить новый пустой диск" - вот здесь придется давать, кроме имени для нового файла, еще и его размер (в блоках), причем в версии для RT-11 не более 65535 блоков, для других ОС ограничение снимается, но это будет (если будет) делаться средствами тех самых "других" ОС.
Люди, я бы все-таки обратил внимание не на HX, а на HD.
Существенное отличие HD и HX в том, что в HD передача параметров команды и кода команды выглядит так:
UNIT NUMBER -> DATA
Команда SET UNIT NUMBER -> CSR
BLOCK NUMBER -> DATA
Команда SET BLOCK NUMBER -> CSR
WORD COUNT -> DATA
Команда SET WORD COUNT -> CSR
Команда READ -> CSR
а в HX передача команды и её параметров выглядит так:
Команда READ -> DATA
UNIT NUMBER -> DATA
BLOCK NUMBER -> DATA
WORD COUNT -> DATA
Так вот, пока все хорошо, вариант HX без вопросов. Однако, при каких-либо нарушениях, вариант HX становится уязвимым к разным косякам, которые должны исправляться на уровне протокола, в то время, как вариант HD к этому нечувствителен. Элементарно: идет обмен с "диском", что-то сбойнуло, машинка вылетела в останов. Я в таких случаях давил на ДВК букву G, которая без предшествующей цифры интерпретируется, как 0G, RT-11SJ благополучно перезапускалась, и вперед. И не поймешь, что там дальше будет... А так - все четко: команду толкаем в одно место, данные в другое. И выданная команда обязана отменить всю предыдущую незавершенку и привести контроллер в правильное состояние.
Jarik65535 чётко сказал, что отмена незавершёнки не предусмотрена. Программно сбросить контроллер в начальное состояние невозможно. Сигнал INIT на шине также его не сбросит. Уж если контроллер начал приём или передачу пакета, то не вернётся в начальное состояние до завершения работы. Поэтому полезно иметь в CSR не только бит READY ( 0200 ), но и бит DONE ( 0400 ), устанавливаемый контроллером в фазе ожидания кода команды.
- - - Добавлено - - -
Я понимаю ситуацию так. Допустим, у контроллера есть команда "СООБЩИТЬ КОЛИЧЕСТВО ОБРАЗОВ НА КАРТЕ", в ответ на которую он помещает в регистр DATA соответствующее число. После записи кода этой команды в регистр данных - контроллер снимает биты READY и DONE, пересчитывает образы на карте, устанавливает бит READY и ожидает чтения регистра данных, чтобы передать количество образов. Если в этот момент попытаться записать в регистр данных код новой команды, то контроллер никак не отреагирует, потому что для завершения цикла выполнения команды ему надо передать клиенту все слова пакета. И хотя пакет в данном случае состоит всего из одного слова - контроллер не перейдёт в начальное состояние, пока это слово не передаст.
Jarik65535 чётко сказал, что отмена незавершёнки не предусмотрена. Программно сбросить контроллер в начальное состояние невозможно. Не думаю, что все так категорично. Если средствами той ПЛИС можно сделать хотя бы один триггер, устанавливаемый в произвольное время со стороны ЦП с возможностью чтения и сброса его через GPIO контроллера, то вопрос решается. То есть, возможно, в текущей реализации это и не предусмотрено, но оно нужно. И, как я понял Ярослава, вроде-бы реализуемо.
- - - Добавлено - - -
Более того, я тут прикинул, похоже и триггер этот не нужен - достаточно в тот самый "короткий" цикл обмена с ЦП добавить проверку адреса - с РД общается ЦП, или с РС и по записи в РС сбрасывать "незавершёнку". То есть достаточно незначительного усложнения программы контроллера.
Jarik65535
28.07.2017, 22:15
А в чем проблема подождать пару миллисекунд? У нас объем данных не превышает 64К. Кроме того старший байт CSR используется в контроллере СА для получения номера станции, так что можно использовать другой бит. Еще всегда, (когда готов) контроллер можно перевести в исходное состояние, записав 4 в CSR, что делает штатный УКНЦшный загрузчик из сети.
А в чем проблема подождать пару миллисекунд? У нас объем данных не превышает 64К.Имеется в виду, что если сбой произошёл в драйвере во время обмена с контроллером и синхронизация с контроллером потеряна - восстановить её без сброса контроллера невозможно. Во всех остальных случаях бит DONE решает все проблемы. Например, драйвер заказал запись 1024 слов, начиная с последнего блока диска - тогда после загрузки в контроллер количества слов - тот выставляет бит ERROR, но не выставляет бит DONE, что означает ситуацию: "частичное выполнение команды". Затем контроллер принимает от драйвера 256 слов и выставляет бит DONE, хотя драйвер заказывал запись 1024 слов. Теперь в CSR установлены биты ERROR и DONE, что означает: "досрочное завершение выполнения". Если перед каждым обращением к регистру данных драйвер проверяет биты READY и DONE в CSR - он никогда не потеряет синхронизацию.
Еще всегда, (когда готов) контроллер можно перевести в исходное состояние, записав 4 в CSR, что делает штатный УКНЦшный загрузчик из сети. А когда неготов? По-хорошему, нужно принимать этот бит всегда, выставили его, дождались готовности, и начинаем работу сначала. То есть, после какого-либо сбоя (а может и вообще, первым действием) приводим контроллер этой командой в начальное состояние.
Jarik65535
31.07.2017, 10:39
А когда неготов? По-хорошему, нужно принимать этот бит всегда, выставили его, дождались готовности, и начинаем работу сначала. То есть, после какого-либо сбоя (а может и вообще, первым действием) приводим контроллер этой командой в начальное состояние.
А когда не готов - получим зависание. И если кортекс зависнет, то вывести можно будет только выключением питания. Просторы для фантазии не ограничены, в отличии от ресурсов и возможностей PSoC4, всегда приходится чем-то жертвовать, ну нельзя сделать аппаратный сброс контроллера через запись в его же регистр, здесь все-таки софтварная эмуляция работы с шиной.
А когда не готов - получим зависание. Ладно, это не особенно важно. А нельзя добавить сигнал управления шинными драйверами, чтобы прикрутить это дело к ДВК? Этот самый CY8CKIT-049 у меня есть, возьму четверку 589АП16, и вперед! Как я понимаю, драйверы должны будут всегда включены на передачу от шины к контроллеру, а в момент, когда контроллер соберется переключить свои GPIO на вывод, т.е. на выдачу данных в шину, надо будет перед этим выдать этот самый сигнал переключения.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot