Получаем дамп управляющей программы вундервафли в двоичном виде и сохраняем его в файл.
Затем нужно найти управляющие сигналы. Вопрос ридер перфоленты при загрузке программы в вундервафлю стартует сам или нужно нажимать на нем кнопку? Если стартует сам, нужно среди оставшихся линий найти управляющий сигнал, который в этот момент меняет свое состояние.
А если вундервафля умеет находить начало программы (т.е если ленту поставить на средину, то она сама отмотает к началу), то еще стоит найти остальные сигналы (перемотка вправо/влево).
Сам не стартует, нужно нажимать кнопку на пульте управления оператора.
При установки ленты, видит начало только после того как произведена перемотка в обратном направлении. Т.Е. сначала нужно перемотать в одну сторону и назад.
У меня ленты были без катушек. Просто мотки или полоски, если короткие прикольно выстреливались из ридера после прокрутки. Но считывались ко команде с монитора. Типа писал load с ленты , если заправлена - сразу вжи-и-и-к... и готово. У Вас надо на ЦВМ давать команду до нажатия кнопки на пульте? Или ЦВМ при нажатии кнопки на пульте сама переходит в режим считывания с ленты. Как обозначается что ЦВМ ждет или читает или прочитала? Есть экран или лампочки ?
ЦВМ при нажатии кнопки на пульте сама переходит в режим считывания с ленты.
На пульте есть индикация что ЦВМ в исходном состоянии. После загрузки программы на индикаторах пульта отображается цифра 100, что означает что ЦВМ записало на себя программу.
Получаем дамп управляющей программы вундервафли в двоичном виде и сохраняем его в файл.
Затем нужно найти управляющие сигналы. Вопрос ридер перфоленты при загрузке программы в вундервафлю стартует сам или нужно нажимать на нем кнопку? Если стартует сам, нужно среди оставшихся линий найти управляющий сигнал, который в этот момент меняет свое состояние.
А если вундервафля умеет находить начало программы (т.е если ленту поставить на средину, то она сама отмотает к началу), то еще стоит найти остальные сигналы (перемотка вправо/влево).
Да. Это то что надо. Только спрячьте под спойлер - выделить текст, нажать кнопку code, вкладка дополнительно, сворачивать по умолчанию. Ноли в начале отрезали или так удачно лента встала? FD первые дырки?
Да, отлично! Начал писать программу и понял что не хватает информации по началу работы. Нужно осциллограммы сигнала Нгп и всех управляющих сигналов с развёрткой 50мс на клетку в виде где Нгп в самом конце осциллограммы. Так что бы видеть какие управляющие сигналы что есть до Нгп. Настройка осциллографа - развёртка по Х - 50мс, по Y-1 Вольт, синхронизация канал Нгп, предыстория 500 мс, режим запуска однократный. Подключить осциллограф, нажать запуск, нажать на пульте старт считывания.
Управление скорее всего на втором шлейфе от пульта до магнитофона. Сигнал "Упр" срабатывает в начале и конце загрузки, так же и перемотки. Снимал сигнал см. #19
to nik182. В табличке приведены коды в двоичном и шестнадцатиричном виде для перфоленты и вероятно соответствующие им коды из дампа (в щестнадцатиричном и двоичном) сравнивая двоичные представления по строкам, сразу видно, что получить из одного другое при помощи сдвига можно не для всех значений. Т.е. дело не в перепутанных проводах (или по меньшей мере не только в них).
я не знаю как в ардуино, а на I8086 XLAT проблему решает
Ну куда ты опять влез? Знаток ассемблера высоких процессоров. По теме можешь что нибудь сказать? Где хлат у уны найти? Опять недержание? Боишься что про тебя забывать начали?
to nik182. В табличке приведены коды в двоичном и шестнадцатиричном виде для перфоленты и вероятно соответствующие им коды из дампа (в щестнадцатиричном и двоичном) сравнивая двоичные представления по строкам, сразу видно, что получить из одного другое при помощи сдвига можно не для всех значений. Т.е. дело не в перепутанных проводах (или по меньшей мере не только в них).
я не знаю как в ардуино, а на I8086 XLAT проблему решает
Вот скажи, наш не угомонный друг, что конкретно здесь может решить XLAT если есть данные полученные с перфоленты и дырочки на перфоленте, которые им не соответствуют? Просто не правильно припаянные провода. Не проще перепаять провода? Кстати что и было сделано и всё встало на место. Если бы ты дочитал тему до конца, а не вылазил бы с первой ворвавшейся в твою голову мыслью, не выглядел бы так глупо.
Нам нужно в определённый момент времени выдать НГП НДП и данные на линии ЦВМ. Каким сигналом этот момент определяется после нажатия кнопки на пульте надо найти. На #10 есть сигналы ОИ, ДУ, УПР, КнПУ ИД, СД, НГП, НДП. На #6 ЗО. Если все эти сигналы нарисовать на одном листе и определить, какие идут от ЦВМ, а какие от считывателя, то можно написать программу полностью заменяющую считыватель. И призываю обойтись в будущем без УНЫ. Соединять ЦВМ прямо с компьютером через LPT порт.
что конкретно здесь может решить XLAT если есть данные полученные с перфоленты и дырочки на перфоленте, которые им не соответствуют? Просто не правильно припаянные провода.
Т.е. ты предлагаешь создать таблицу соответствия неправильных данных и правильных дырочек и с помощью ХLAT из этой таблицы делать перекодировку? А как же обратно? Надо ж будет опять перекодировать. Ещё раз ХLAT? Не проще провода сразу правильно перепаять? Да ещё XLAT легко заменяется разными косвенными адресациями. Почти без потери производительности.
Но меня всё ж больше больше волнует твоя бесцеремонность впрыгивания в темы не по делу, после чего в теме появляется куча спама.
Нам нужно в определённый момент времени выдать НГП НДП и данные на линии ЦВМ. Каким сигналом этот момент определяется после нажатия кнопки на пульте надо найти. На #10 есть сигналы ОИ, ДУ, УПР, КнПУ ИД, СД, НГП, НДП. На #6 ЗО. Если все эти сигналы нарисовать на одном листе и определить, какие идут от ЦВМ, а какие от считывателя, то можно написать программу полностью заменяющую считыватель. И призываю обойтись в будущем без УНЫ. Соединять ЦВМ прямо с компьютером через LPT порт.
На осциллографе видно однократное срабатывание только сигналов в начале и конце это УПР, КнПУ, ОИ.
ДУ и ЗО не вижу. Откуда идут сигналы пока не понимаю, как определить ввиду того, шлейф отключать нельзя выдаст ошибку. Может пробовать методом исключения пока не знаю. То, что вы говорите, подключение производить через компьютер с Вами полностью согласен.
Один из них опять же должен иметь сигнал, что магнитофон готов к работе, как типа в печаталке был сигнал ГТВ который пропускали через резистор.
Направление можно попробовать получить через большой резистор. Вставить его в разрыв провода и осциллографом посмотреть с какого конца резистора напряжение больше. При этом резистор ставить с максимально большим сопротивлением, но ещё не вызывающим ошибку.
Если анализировать два выхода из магнитофона: один который идет на ЦВМ другой на пульт. Видно, что у них распиновка одинаковая. Все сигналы на обоих шлейфах совпадают. Возможно, что ДУ и ЗО - это сигналы из ЦВМ, а все остальные это из магнитофона или пульта. Сам пульт тоже подключен к ЦВМ, на нем имеется цифровая индикация проверки и световая об ошибке.
Прочитал всё. Информация интересно представлена - совершенно не понятно как всё это работает. Из последней диаграммы стало понятно, как передавать. Выставляем байт данных, проверяем НГП, если 0, то выставляем СД, ждём чуть чуть, проверяем НПД, как стала единицей - посылаем следующий байт. После посылки последнего байта выставляем КнП. В какой момент начинать передавать первый байт до сих пор не понятно. Написано что контроллер должен дать команду. Вопрос как? Что ждать с линий? Сигнал по какой то или реально команду по шине данных?
Кроме того из описания стало ясно, что подавать сигнал прямо с ног УНЫ нельзя. Шина собрана по схеме с открытым коллектором. Надо сделать переходник. Например на буфере из 561ЛН3 или транзисторах. Читать можно.
Нет. Можно поставить кнопку и после нажатия на пульте, жать для запуска программы. Но мне больше нравиться вариант найти условия запуска автоматически. Ваши бумаги ограничили круг сигналов. Остались УПР, КиП, ЗО, ОИ, ДУ. Как я уже писал, осциллографом снять пять осциллограмм для этих сигналов относительно любого из данных, СД, НГП, НДП. Осциллограмма должна начинаться с момента нажатия кнопки и заканчиваться на первых импульсах линий данных. Потом нарисуем всё это на одном графике и увидим что надо делать. Посмотрите, может быть где то в документации уже есть подобная диаграмма. Возможно даже не к считывателю, а к другой периферии.
В осциллографе есть параметр настройки - предыстория. На #80 это всё, что до момента срабатывания триггера - синий треугольник сверху. Его можно передвинуть в конец картинки, в право, тогда вся картинка будет предыстория. Триггер нужно настроить однократный на канал шины данных, например НГП. Всё подключить, нажать кнопку на пульте и посмотреть, через сколько секунд или миллисекунд сработает осциллограф. Проделать это несколько раз устанавливая ленту в считыватель как можно ближе к началу. Постараться найти режим с минимальной задержкой между нажатием кнопки и стартом ленты = срабатывание осциллографа. У Вас на развёртке 14 делений. Например, если получилось 2 секунды, то развертку нужно поставить 200 мс - мы будем видеть 2с 400мс сигналы до начала движения ленты.
Да так можно. Но последние наши изыскания дали величину тока для уверенного срабатывания при подтягивания шины к нулю 20мА на линию. Боюсь если будет 8 линий данных и пара линий управления УНА не выдержит такой нагрузки.
С эмуляцией проблема в том, что используется некая "универсальная шина" имеющая собственный (пусть и примитивный) протокол т.е. отдельный проводок, включающий передачу найти не удастся.
to 61732 постарайся найти остальную часть этой документации. Интересно как происходит обработка "запроса обслуживания" и работа команды "ДУ" (с виду, это возможность загрузки "на прямую").
Вообще, судя по всему, первые две строки в дампе #67 как раз взаимодействие пульта с шиной.
Поправил программу с целью показать правильное подключение и сделать читаемый дамп.
Дамп тестового вывода от 0 до 63 будет выглядеть так:
Завтра прогоню с указанной распиновкой и выложу.
Вот что получилось.
Ну вот. Точное соответствие. Приятно глазу. Какие ещё вопросы по устройству? Этот листинг можно хранить вместо ленты :-)
С этим теперь все понятно. Теперь вопрос как это загонять в ЦВМ ? Без учета магнитофона.
Так же как загоняли в принтер. Разницы почти нет. С управляющими сигналами разобраться только.
Теперь шаг номер следующий...
Изменяем скетч что-бы он передавал на компьюттер данные без изменений:
Получаем дамп управляющей программы вундервафли в двоичном виде и сохраняем его в файл.
Затем нужно найти управляющие сигналы. Вопрос ридер перфоленты при загрузке программы в вундервафлю стартует сам или нужно нажимать на нем кнопку? Если стартует сам, нужно среди оставшихся линий найти управляющий сигнал, который в этот момент меняет свое состояние.
А если вундервафля умеет находить начало программы (т.е если ленту поставить на средину, то она сама отмотает к началу), то еще стоит найти остальные сигналы (перемотка вправо/влево).
На моём лентаридере только вставлять надо было руками в любом месте до дырочек. Запуск прокрутки автоматически, назад не крутил.
Сам не стартует, нужно нажимать кнопку на пульте управления оператора.
При установки ленты, видит начало только после того как произведена перемотка в обратном направлении. Т.Е. сначала нужно перемотать в одну сторону и назад.
#19
У меня ленты были без катушек. Просто мотки или полоски, если короткие прикольно выстреливались из ридера после прокрутки. Но считывались ко команде с монитора. Типа писал load с ленты , если заправлена - сразу вжи-и-и-к... и готово. У Вас надо на ЦВМ давать команду до нажатия кнопки на пульте? Или ЦВМ при нажатии кнопки на пульте сама переходит в режим считывания с ленты. Как обозначается что ЦВМ ждет или читает или прочитала? Есть экран или лампочки ?
ЦВМ при нажатии кнопки на пульте сама переходит в режим считывания с ленты.
На пульте есть индикация что ЦВМ в исходном состоянии. После загрузки программы на индикаторах пульта отображается цифра 100, что означает что ЦВМ записало на себя программу.
Ну тогда надо просто попробовать отправить в ЦВМ считанный с ленты дамп. Вы можете весь дамп в цифровой форме загнать сюда? Какая у Вас ардуина?
Дамп залью завтра с утра. UNO.
Вот же ж есть ещё ягоды в ягодицах. Я уж забыл совсем за 30 лет как там что кодировалось. Респект.
Теперь шаг номер следующий...
Изменяем скетч что-бы он передавал на компьюттер данные без изменений:
Получаем дамп управляющей программы вундервафли в двоичном виде и сохраняем его в файл.
Затем нужно найти управляющие сигналы. Вопрос ридер перфоленты при загрузке программы в вундервафлю стартует сам или нужно нажимать на нем кнопку? Если стартует сам, нужно среди оставшихся линий найти управляющий сигнал, который в этот момент меняет свое состояние.
А если вундервафля умеет находить начало программы (т.е если ленту поставить на средину, то она сама отмотает к началу), то еще стоит найти остальные сигналы (перемотка вправо/влево).
Да. Это то что надо. Только спрячьте под спойлер - выделить текст, нажать кнопку code, вкладка дополнительно, сворачивать по умолчанию. Ноли в начале отрезали или так удачно лента встала? FD первые дырки?
Принял к сведению, сейчас спрячу. Нули не отрезал, FD 01 01 01 00 00 01 01 01 01 FB FB 00 00 00 01
00 00 00 00 FB , это реакция на включение кнопки на пульте оператора. Программа начинается с 0F 50 88 FF 40 50 00 ..............
Под спойлером ничего не вижу.
Все исправил #67 все есть.
Да, отлично! Начал писать программу и понял что не хватает информации по началу работы. Нужно осциллограммы сигнала Нгп и всех управляющих сигналов с развёрткой 50мс на клетку в виде где Нгп в самом конце осциллограммы. Так что бы видеть какие управляющие сигналы что есть до Нгп. Настройка осциллографа - развёртка по Х - 50мс, по Y-1 Вольт, синхронизация канал Нгп, предыстория 500 мс, режим запуска однократный. Подключить осциллограф, нажать запуск, нажать на пульте старт считывания.
Управление скорее всего на втором шлейфе от пульта до магнитофона. Сигнал "Упр" срабатывает в начале и конце загрузки, так же и перемотки. Снимал сигнал см. #19
Вот я и хочу понять в какой момент и по какому сигналу запускать выдачу данных.
Завтра перепроверю доложу.
Сравнение с каким сигналом сделать?
#74
НГП розовый
НГП НПД
НГП УПР
НГП КНП
НГП ОИ
Сигналов на ДУ и ЗО нет.
to nik182. В табличке приведены коды в двоичном и шестнадцатиричном виде для перфоленты и вероятно соответствующие им коды из дампа (в щестнадцатиричном и двоичном) сравнивая двоичные представления по строкам, сразу видно, что получить из одного другое при помощи сдвига можно не для всех значений. Т.е. дело не в перепутанных проводах (или по меньшей мере не только в них).
я не знаю как в ардуино, а на I8086 XLAT проблему решает
Ну куда ты опять влез? Знаток ассемблера высоких процессоров. По теме можешь что нибудь сказать? Где хлат у уны найти? Опять недержание? Боишься что про тебя забывать начали?
uint8_t table[256] решит проблему
to nik182. В табличке приведены коды в двоичном и шестнадцатиричном виде для перфоленты и вероятно соответствующие им коды из дампа (в щестнадцатиричном и двоичном) сравнивая двоичные представления по строкам, сразу видно, что получить из одного другое при помощи сдвига можно не для всех значений. Т.е. дело не в перепутанных проводах (или по меньшей мере не только в них).
я не знаю как в ардуино, а на I8086 XLAT проблему решает
Вот скажи, наш не угомонный друг, что конкретно здесь может решить XLAT если есть данные полученные с перфоленты и дырочки на перфоленте, которые им не соответствуют? Просто не правильно припаянные провода. Не проще перепаять провода? Кстати что и было сделано и всё встало на место. Если бы ты дочитал тему до конца, а не вылазил бы с первой ворвавшейся в твою голову мыслью, не выглядел бы так глупо.
Сигналов на ДУ и ЗО нет.
Нам нужно в определённый момент времени выдать НГП НДП и данные на линии ЦВМ. Каким сигналом этот момент определяется после нажатия кнопки на пульте надо найти. На #10 есть сигналы ОИ, ДУ, УПР, КнПУ ИД, СД, НГП, НДП. На #6 ЗО. Если все эти сигналы нарисовать на одном листе и определить, какие идут от ЦВМ, а какие от считывателя, то можно написать программу полностью заменяющую считыватель. И призываю обойтись в будущем без УНЫ. Соединять ЦВМ прямо с компьютером через LPT порт.
что конкретно здесь может решить XLAT если есть данные полученные с перфоленты и дырочки на перфоленте, которые им не соответствуют? Просто не правильно припаянные провода.
ты действительно не понимаешь или дурака включил?
Т.е. ты предлагаешь создать таблицу соответствия неправильных данных и правильных дырочек и с помощью ХLAT из этой таблицы делать перекодировку? А как же обратно? Надо ж будет опять перекодировать. Ещё раз ХLAT? Не проще провода сразу правильно перепаять? Да ещё XLAT легко заменяется разными косвенными адресациями. Почти без потери производительности.
Но меня всё ж больше больше волнует твоя бесцеремонность впрыгивания в темы не по делу, после чего в теме появляется куча спама.
Нам нужно в определённый момент времени выдать НГП НДП и данные на линии ЦВМ. Каким сигналом этот момент определяется после нажатия кнопки на пульте надо найти. На #10 есть сигналы ОИ, ДУ, УПР, КнПУ ИД, СД, НГП, НДП. На #6 ЗО. Если все эти сигналы нарисовать на одном листе и определить, какие идут от ЦВМ, а какие от считывателя, то можно написать программу полностью заменяющую считыватель. И призываю обойтись в будущем без УНЫ. Соединять ЦВМ прямо с компьютером через LPT порт.
На осциллографе видно однократное срабатывание только сигналов в начале и конце это УПР, КнПУ, ОИ.
ДУ и ЗО не вижу. Откуда идут сигналы пока не понимаю, как определить ввиду того, шлейф отключать нельзя выдаст ошибку. Может пробовать методом исключения пока не знаю. То, что вы говорите, подключение производить через компьютер с Вами полностью согласен.
Один из них опять же должен иметь сигнал, что магнитофон готов к работе, как типа в печаталке был сигнал ГТВ который пропускали через резистор.
Направление можно попробовать получить через большой резистор. Вставить его в разрыв провода и осциллографом посмотреть с какого конца резистора напряжение больше. При этом резистор ставить с максимально большим сопротивлением, но ещё не вызывающим ошибку.
Если анализировать два выхода из магнитофона: один который идет на ЦВМ другой на пульт. Видно, что у них распиновка одинаковая. Все сигналы на обоих шлейфах совпадают. Возможно, что ДУ и ЗО - это сигналы из ЦВМ, а все остальные это из магнитофона или пульта. Сам пульт тоже подключен к ЦВМ, на нем имеется цифровая индикация проверки и световая об ошибке.
Во что нашёл в архиве
Прочитал всё. Информация интересно представлена - совершенно не понятно как всё это работает. Из последней диаграммы стало понятно, как передавать. Выставляем байт данных, проверяем НГП, если 0, то выставляем СД, ждём чуть чуть, проверяем НПД, как стала единицей - посылаем следующий байт. После посылки последнего байта выставляем КнП. В какой момент начинать передавать первый байт до сих пор не понятно. Написано что контроллер должен дать команду. Вопрос как? Что ждать с линий? Сигнал по какой то или реально команду по шине данных?
Кроме того из описания стало ясно, что подавать сигнал прямо с ног УНЫ нельзя. Шина собрана по схеме с открытым коллектором. Надо сделать переходник. Например на буфере из 561ЛН3 или транзисторах. Читать можно.
В итоге что тупик?
Кроме того из описания стало ясно, что подавать сигнал прямо с ног УНЫ нельзя. Шина собрана по схеме с открытым коллектором.
сначала: digitalWrite(pin, 0);
потом:
0: pinMode(pin, OUTPUT);
1: pinMode(pin, INPUT);
В итоге что тупик?
Нет. Можно поставить кнопку и после нажатия на пульте, жать для запуска программы. Но мне больше нравиться вариант найти условия запуска автоматически. Ваши бумаги ограничили круг сигналов. Остались УПР, КиП, ЗО, ОИ, ДУ. Как я уже писал, осциллографом снять пять осциллограмм для этих сигналов относительно любого из данных, СД, НГП, НДП. Осциллограмма должна начинаться с момента нажатия кнопки и заканчиваться на первых импульсах линий данных. Потом нарисуем всё это на одном графике и увидим что надо делать. Посмотрите, может быть где то в документации уже есть подобная диаграмма. Возможно даже не к считывателю, а к другой периферии.
#80 конец осцилограммы, так сделать начало или я не так понял
В осциллографе есть параметр настройки - предыстория. На #80 это всё, что до момента срабатывания триггера - синий треугольник сверху. Его можно передвинуть в конец картинки, в право, тогда вся картинка будет предыстория. Триггер нужно настроить однократный на канал шины данных, например НГП. Всё подключить, нажать кнопку на пульте и посмотреть, через сколько секунд или миллисекунд сработает осциллограф. Проделать это несколько раз устанавливая ленту в считыватель как можно ближе к началу. Постараться найти режим с минимальной задержкой между нажатием кнопки и стартом ленты = срабатывание осциллографа. У Вас на развёртке 14 делений. Например, если получилось 2 секунды, то развертку нужно поставить 200 мс - мы будем видеть 2с 400мс сигналы до начала движения ленты.
Отчего же?
сначала: digitalWrite(pin, 0);
потом:
0: pinMode(pin, OUTPUT);
1: pinMode(pin, INPUT);
Да так можно. Но последние наши изыскания дали величину тока для уверенного срабатывания при подтягивания шины к нулю 20мА на линию. Боюсь если будет 8 линий данных и пара линий управления УНА не выдержит такой нагрузки.
С эмуляцией проблема в том, что используется некая "универсальная шина" имеющая собственный (пусть и примитивный) протокол т.е. отдельный проводок, включающий передачу найти не удастся.
to 61732 постарайся найти остальную часть этой документации. Интересно как происходит обработка "запроса обслуживания" и работа команды "ДУ" (с виду, это возможность загрузки "на прямую").
Вообще, судя по всему, первые две строки в дампе #67 как раз взаимодействие пульта с шиной.