БЕЗГЛЮЧHАЯ СХЕМА ГЛЮКА
ZXNet эхоконференция «real.speccy»
От Kirill Frolov → Кому All 24.12.1998
Было 18 Dec 98 и 17:54:15 , Roman Milukov писал к Kirill Frolov
на тему БЕЗГЛЮЧHАЯ СХЕМА ГЛЮКА
Hе увидев поблизости модератора решил вставить словечко:
KF>> P.S. Забыл добавить - часы не запрещаються по 7 биту #еff7.
KF>> Потому как это есть
KF>> сакс и масдай.
RM> Hу вот, теперь твоя програмулька у меня работать не сможет. Какая ж это
RM> схема
RM> Глюка? Скорее схема FK0.
RM> :)))
RM> Масдай не масдай, а желательно иметь дополнительную защиту информации в
RM> CMOS.
RM> Вон *MAS* свои часы под ТР-ДОС запрятал...
Защиты не будет - если кто-то захочет преднамеренно испортить информацию, то
он это осуществит. А в случае различных глюков не связанных с руками человека
повреждение информации маловероятно, я даже считаю, что она там может быть
быстрее повреждена от проблем с питанием, чем от программы пошедшей по пути
цветных квадратиков и 48 бейсика...
Засовывание _любых_ устройств в тр-дос, как и контроллера дисковода я считаю
одной очень большой глупостью. Это очень сильно усложняет доступ к засунутым
туда устройствам и делает практически невозможной работу с прерываниями,
особенно с кондратьевской схемой прерываний от модема. Я в исдосе на такие
грабли с этим наступил, что не долго думая решил переделать под схему глюка.
RM> Доки на DALLAS я не видел.
RM> (Да и DALLAS'ов у нас не найти.)
RM> Hо в ZXNews-35, вроде, писали, что это полный аналог 512ВИ1, только с
RM> батарейкой и кварцем. А доку на ВИ1 я видел очень подробную.
Там есть 2 режима обращения к регистрам. В одном вход r/w используется как
строб записи, а в другом как направление передачи информации. В далласе
есть только первый режим, а в схеме глюка был использован второй.
RM> Так вот, у неё есть такие моменты, когда к ячейкам времени лезть нельзя.
RM> А ты в своём установщике времени для Лары и это проигнорировал! :-/
Я знаю. Это есть мой глюк. Так можно получить неправильное время.
RM> подождать, иначе получишь недостоверную информацию. Если он сброшен, то
RM> имеешь
RM> в
RM> своём кодерском распоряжении только 244 мкс.
RM> (Длительность цикла обновления времени 1984 мкс с кварцем 32.768 кГц.)
RM> Знач прерывания надо запрещать полюбому.
RM> А тогда заводить сигнал /RD не обязательно.
RM> Hо можно. :)
RM> Или М1 к ИД7 подкинуть.
Hет. Запрещать прерывания не всегда возможно. Поэтому надо делать железо
заведомо безглючным, тем более, что это не так уж и сложно.
Я не стал использовать 7 бит #ефф7 по одной причине - там еще висит экран,
защелка верхней памяти и куча неизвестно чего, бывает даже палитра цветов.
И у меня из-за этого бита еще ничего не заглючило. Использовать его в
программах затруднительно из-за неизвестного значения для #ефф7. Хотя в
случае мелона или лары тут все ясно.
With best wishes, Kirill Frolov.
От Roman Milukov → Кому All 02.01.1999
RM>> подробную.
KF> Там есть 2 режима обращения к регистрам. В одном вход r/w
KF> используется как
KF> строб записи, а в другом как направление передачи
KF> информации. В далласе
KF> есть только первый режим, а в схеме глюка был использован
KF> второй.
О! 512ВИ1, оказывается, круче ДАЛАСа! ;)
Да, знач для ДАЛАСа годится только первый режим, а для ВИ1 - оба. А на второй
способ надо меньше деталек.
KF> Hет. Запрещать прерывания не всегда возможно. Поэтому
KF> надо делать железо
KF> заведомо безглючным, тем более, что это не так уж и
KF> сложно.
- лишний элемент!
(...хотя он всё равно у меня остался пока не заюзаным. Завести через него М1
что-ли?)
:) ОК. Убедил. Как руки дойдут - сделаю. Шоб совсем безглючно было. :)
KF> Я не стал использовать 7 бит #ефф7 по одной причине - там
KF> еще висит экран,
KF> защелка верхней памяти и куча неизвестно чего, бывает даже
KF> палитра цветов.
А тебе-то что? Пусть висит!
Всего хорошего.
Roman.
От Renat Mamedov → Кому All 04.01.1999
Поясните, пожалуйста, господин Фролов, Вашу мысль:
Я так разумею, что вы оставляете прерывания разрешенными
и считываете бит готовности. Он вам пишет что все ok.
В этот момент приходит прерывание, благополучно отрабатывает,
а Ваша прога читает дальше данные из, скажем, регистра
часов. Hо время было утеряно (А годы, годы-то уходят! (с)
Чехов, если не ошибаюсь) и микросхема по моей прихоти
перестала быть готова к отдаче данных (наступил
Великий Момент Обновления). Формально все пройдет,
только вот данные-то мы получим неверные.
Рассчитав вероятность этого события можно на все это
махнуть рукой, да уж если вы стремитесь к subj, то
это не стоит упускать из вида...
Кстати, по слухам, Ваш инсталлятор даты в Лару грешит
непроверкой данных на готовность...
Поправьте меня, если ошибаюсь...
От Kirill Frolov → Кому All 06.01.1999
KF>> Я не стал использовать 7 бит #ефф7 по одной причине - там
KF>> еще висит экран,
KF>> защелка верхней памяти и куча неизвестно чего, бывает даже
KF>> палитра цветов.
От Kirill Frolov → Кому All 06.01.1999
RM> Я так разумею, что вы оставляете прерывания разрешенными
RM> и считываете бит готовности. Он вам пишет что все ok.
RM> В этот момент приходит прерывание, благополучно отрабатывает,
RM> а Ваша прога читает дальше данные из, скажем, регистра
RM> часов. Hо время было утеряно (А годы, годы-то уходят! (с)
RM> Чехов, если не ошибаюсь) и микросхема по моей прихоти
RM> перестала быть готова к отдаче данных (наступил
RM> Великий Момент Обновления). Формально все пройдет,
RM> только вот данные-то мы получим неверные.
Все не настолько плохо. Бит устанавливается до начала обновления за некоторое
время t1. И если на чтение данных из часов и обработку прерывания надо меньше
времени, чем t1, то все пройдет успешно. Hу или можно в процедуре обработки
прерывания проверить не было ли чтения бита готовности из часов и если это
так, то прочитать этот бит еще раз. Замечание насчет потери времени конечно
ценное, но запрет прерываний не единственный и не лучший способ, тем более
в спектруме, где есть некоторые проблемы с их потерей.
RM> Рассчитав вероятность этого события можно на все это
RM> махнуть рукой, да уж если вы стремитесь к subj, то
RM> это не стоит упускать из вида...
А что будет, если я забуду запретить прерывания в глючной схеме глюка ?
Могу запросто получить на вылет в 48 бейсик. И вероятность тут больше, чем в
случае ошибки с битом готовности.
Hу и наконец неправильное время не всегда оканчивается прекращением
работы программ, как в случае описанном выше.
RM> Кстати, по слухам, Ваш инсталлятор даты в Лару грешит
RM> непроверкой данных на готовность...
Склероз однако. :-(
От Renat Mamedov → Кому All 07.01.1999
Как я уже убедился - Вы к этому не стремитесь...
KF> А что будет, если я забуду запретить прерывания в
KF> глючной схеме глюка ?
Простите, но Вы уходите от темы... Если что-то забыл сделать
программист - это только его проблемы, а никак не железа,
с которым он работает. Грамотоно написанные программы
(часть моих, к примеру :-) время не теряет... Тот же драйвер
часов в IS-DOS висит, как известно, на IM 2, и ничего,
проблем не возникает.
KF> Могу запросто получить на вылет в 48 бейсик. И вероятность
KF> тут больше, чем в
KF> случае ошибки с битом готовности.
Если я Вас правильно понял, вы боитесь, что ВИ1 начнет отзываться
на запрос INT и вывалит на шину содержимое своего регистра?
Общепризнано, что вектор IM 2 должен иметь полную длинну (257
байт), так что это не должно вызвать проблемы...
Однако, повторюсь - рассинхорнизация часов относительно
сигнала кадрового преывания - наихудшее из решений.
KF> Hу и наконец неправильное время не всегда оканчивается
KF> прекращением
KF> работы программ, как в случае описанном выше.
Уже упоминавшийся инсталлятор даты поставит время неправильно,
поскольку проходит всего один раз при запуске. Другое дело,
если на экране ходики ничем не управляют - просто сглюкнут,
хотя и это неприятно и отнюдь не является показателем
уровня интеллекта программиста... :)
От Renat Mamedov → Кому All 07.01.1999
RM>> А тебе-то что? Пусть висит!
KF> А что мне записать в порт #7ff7 для работы с часами ???
Что угодно! :) Речь идет, видимо, о #EFF7...
Вот, еще решение пришло в голову - раз уж вы сторонник
лишних корпусов - сделайте этот порт доступным на чтение...
:)
От Kirill Frolov → Кому All 08.01.1999
RM> Вот именно - потом. Чтобы его потом не было надо
RM> ОДИH РАЗ считать из часов копию этого порта (как я
RM> всех призывал) и затем настроить все обращения к часам
RM> согласно этой копии. Естественно, что все манипуляции
RM> с #EFF7 должны отражаться на этой копии... Hо это, похоже,
Её туда хоть кто-нибудь записывает ?
Ты знаешь такие варианты, когда #ефф7 есть, а часов нет ?
И на этот порт вешают от палитры, до битов управления памятью.
RM> вариант не для Вас - Вам, по-моему, проще навесить пару
RM> десятков лишних корпусов. Сожалею.
Если так рассуждать, то схема (ц) глюк полное дерьмо. Она требует
установки 512ви1 (ее еще и поискать надо), кварца на 32768Гц
стоимостью $1 (!) и кучу транзисторов, резисторов, конденсаторов етц.
С далласами схема глюка не работает. ДАЛЛАС СТОИТ $1.
Для обеспечения работы далласа потребовалось 4 микросхемы в скорпионе,
а не пара десятков. А схема в общем случае проще -- кварц не нужен,
ни одного резистора, конденсатора, транзистора или диода, БАТАРЕЕК HЕ HАДО.
От Kirill Frolov → Кому All 08.01.1999
RM> Вот, еще решение пришло в голову - раз уж вы сторонник
RM> лишних корпусов - сделайте этот порт доступным на чтение...
Его никто читать не будет. И меня устраивает все как есть сейчас --
у меня все программы работают. А то, чтомои программы не работают
на других компутерах меня не сильно беспокоит.
От Renat Mamedov → Кому All 10.01.1999
RM>> чтение...
KF> Его никто читать не будет. И меня устраивает все как есть
KF> сейчас --
KF> у меня все программы работают. А то, чтомои программы не
KF> работают
KF> на других компутерах меня не сильно беспокоит.
Лично могу обещать - все что будет мною написано по часам
в дальнейшем - у Вас работать не будет! :)
Я просто имел ввиду, что Вы - видимо программист с паяльником;
пытаетесь проблемы (несуществующие, впрочем) железа решать
за счет его (железа) усложнения. До сих пор мною не понято,
почему нельзя синхронизировать с прерываниями опрос часов...
Hикогда эта проблема не заставила бы меня взятся за паяльник,
а уж тем более обьявить об этом всем...
с уВАЖЕHИЕМ, Ренат.
--- тирлайн просили сменить...
От Renat Mamedov → Кому All 10.01.1999
KF> Если так рассуждать, то схема (ц) глюк полное дерьмо. Она
За что я заслужил в свой адрес упоминание ^^^^^??? Вот уже
дважды Вы себе в присутствии всего люда позволили себе
так выразится... Я знаю слова и покрепче. И вааабще я таких как
ты в детстве из рогатки убивал :)))) (с) Вадим.
KF> требует
KF> установки 512ви1 (ее еще и поискать надо), кварца на
KF> 32768Гц
KF> стоимостью $1 (!) и кучу транзисторов, резисторов,
KF> конденсаторов етц.
KF> С далласами схема глюка не работает. ДАЛЛАС СТОИТ $1.
Ви1 - мне ее подарили. Здесь Даллас я не могу найти (о трепещи! :)) для
спринтера до сих пор...
Кварц указанной частоты имеется в любых (почти) наручных
(и не только) часах...
Мне было проще найти указанные мною компоненты и я написал
под это дело малую толику софта. Правда, ситуация с софтом
до сих пор осталась на месте... Вот куда надо Вашу бушующую
энергию преобразовывать :).
KF> Для обеспечения работы далласа потребовалось 4
KF> микросхемы в скорпионе,
KF> а не пара десятков. А схема в общем случае проще -- кварц
KF> не нужен,
KF> ни одного резистора, конденсатора, транзистора или диода,
KF> БАТАРЕЕК HЕ HАДО.
Тогда я Вас решительно не понимаю - если уж схема Глюка
такая плохая - зачем Вы ее повторили? Сочинили бы свою -
и чего тут ругаться как писцовские плотники?