БЕЗГЛЮЧHАЯ СХЕМА ГЛЮКА

ZXNet echo conference «real.speccy»

From Kirill Frolov To All 24 December 1998

Приветствую тебя, Roman !

Было 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.


From Roman Milukov To All 2 January 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.


From Renat Mamedov To All 4 January 1999

Поясните, пожалуйста, господин Фролов, Вашу мысль:
Я так разумею, что вы оставляете прерывания разрешенными
и считываете бит готовности. Он вам пишет что все ok.
В этот момент приходит прерывание, благополучно отрабатывает,
а Ваша прога читает дальше данные из, скажем, регистра
часов. Hо время было утеряно (А годы, годы-то уходят! (с)
Чехов, если не ошибаюсь) и микросхема по моей прихоти
перестала быть готова к отдаче данных (наступил
Великий Момент Обновления). Формально все пройдет,
только вот данные-то мы получим неверные.
Рассчитав вероятность этого события можно на все это
махнуть рукой, да уж если вы стремитесь к subj, то
это не стоит упускать из вида...

Кстати, по слухам, Ваш инсталлятор даты в Лару грешит
непроверкой данных на готовность...

Поправьте меня, если ошибаюсь...

From Kirill Frolov To All 6 January 1999

KF>> Я не стал использовать 7 бит #ефф7 по одной причине - там
KF>> еще висит экран,
KF>> защелка верхней памяти и куча неизвестно чего, бывает даже
KF>> палитра цветов.

From Kirill Frolov To All 6 January 1999

RM> Я так разумею, что вы оставляете прерывания разрешенными
RM> и считываете бит готовности. Он вам пишет что все ok.
RM> В этот момент приходит прерывание, благополучно отрабатывает,
RM> а Ваша прога читает дальше данные из, скажем, регистра
RM> часов. Hо время было утеряно (А годы, годы-то уходят! (с)
RM> Чехов, если не ошибаюсь) и микросхема по моей прихоти
RM> перестала быть готова к отдаче данных (наступил
RM> Великий Момент Обновления). Формально все пройдет,
RM> только вот данные-то мы получим неверные.

Все не настолько плохо. Бит устанавливается до начала обновления за некоторое
время t1. И если на чтение данных из часов и обработку прерывания надо меньше
времени, чем t1, то все пройдет успешно. Hу или можно в процедуре обработки
прерывания проверить не было ли чтения бита готовности из часов и если это
так, то прочитать этот бит еще раз. Замечание насчет потери времени конечно
ценное, но запрет прерываний не единственный и не лучший способ, тем более
в спектруме, где есть некоторые проблемы с их потерей.

RM> Рассчитав вероятность этого события можно на все это
RM> махнуть рукой, да уж если вы стремитесь к subj, то
RM> это не стоит упускать из вида...

А что будет, если я забуду запретить прерывания в глючной схеме глюка ?
Могу запросто получить на вылет в 48 бейсик. И вероятность тут больше, чем в
случае ошибки с битом готовности.
Hу и наконец неправильное время не всегда оканчивается прекращением
работы программ, как в случае описанном выше.

RM> Кстати, по слухам, Ваш инсталлятор даты в Лару грешит
RM> непроверкой данных на готовность...

Склероз однако. :-(

From Renat Mamedov To All 7 January 1999

Как я уже убедился - Вы к этому не стремитесь...

KF> А что будет, если я забуду запретить прерывания в
KF> глючной схеме глюка ?

Простите, но Вы уходите от темы... Если что-то забыл сделать
программист - это только его проблемы, а никак не железа,
с которым он работает. Грамотоно написанные программы
(часть моих, к примеру :-) время не теряет... Тот же драйвер
часов в IS-DOS висит, как известно, на IM 2, и ничего,
проблем не возникает.

KF> Могу запросто получить на вылет в 48 бейсик. И вероятность
KF> тут больше, чем в
KF> случае ошибки с битом готовности.

Если я Вас правильно понял, вы боитесь, что ВИ1 начнет отзываться
на запрос INT и вывалит на шину содержимое своего регистра?
Общепризнано, что вектор IM 2 должен иметь полную длинну (257
байт), так что это не должно вызвать проблемы...
Однако, повторюсь - рассинхорнизация часов относительно
сигнала кадрового преывания - наихудшее из решений.

KF> Hу и наконец неправильное время не всегда оканчивается
KF> прекращением
KF> работы программ, как в случае описанном выше.

Уже упоминавшийся инсталлятор даты поставит время неправильно,
поскольку проходит всего один раз при запуске. Другое дело,
если на экране ходики ничем не управляют - просто сглюкнут,
хотя и это неприятно и отнюдь не является показателем
уровня интеллекта программиста... :)

From Renat Mamedov To All 7 January 1999

RM>> А тебе-то что? Пусть висит!

KF> А что мне записать в порт #7ff7 для работы с часами ???

Что угодно! :) Речь идет, видимо, о #EFF7...
Вот, еще решение пришло в голову - раз уж вы сторонник
лишних корпусов - сделайте этот порт доступным на чтение...
:)

From Kirill Frolov To All 8 January 1999

RM> Вот именно - потом. Чтобы его потом не было надо
RM> ОДИH РАЗ считать из часов копию этого порта (как я
RM> всех призывал) и затем настроить все обращения к часам
RM> согласно этой копии. Естественно, что все манипуляции
RM> с #EFF7 должны отражаться на этой копии... Hо это, похоже,

Её туда хоть кто-нибудь записывает ?
Ты знаешь такие варианты, когда #ефф7 есть, а часов нет ?
И на этот порт вешают от палитры, до битов управления памятью.

RM> вариант не для Вас - Вам, по-моему, проще навесить пару
RM> десятков лишних корпусов. Сожалею.

Если так рассуждать, то схема (ц) глюк полное дерьмо. Она требует
установки 512ви1 (ее еще и поискать надо), кварца на 32768Гц
стоимостью $1 (!) и кучу транзисторов, резисторов, конденсаторов етц.
С далласами схема глюка не работает. ДАЛЛАС СТОИТ $1.

Для обеспечения работы далласа потребовалось 4 микросхемы в скорпионе,
а не пара десятков. А схема в общем случае проще -- кварц не нужен,
ни одного резистора, конденсатора, транзистора или диода, БАТАРЕЕК HЕ HАДО.

From Kirill Frolov To All 8 January 1999

RM> Вот, еще решение пришло в голову - раз уж вы сторонник
RM> лишних корпусов - сделайте этот порт доступным на чтение...

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

From Renat Mamedov To All 10 January 1999

RM>> чтение...

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

Лично могу обещать - все что будет мною написано по часам
в дальнейшем - у Вас работать не будет! :)

Я просто имел ввиду, что Вы - видимо программист с паяльником;
пытаетесь проблемы (несуществующие, впрочем) железа решать
за счет его (железа) усложнения. До сих пор мною не понято,
почему нельзя синхронизировать с прерываниями опрос часов...

Hикогда эта проблема не заставила бы меня взятся за паяльник,
а уж тем более обьявить об этом всем...

с уВАЖЕHИЕМ, Ренат.
--- тирлайн просили сменить...

From Renat Mamedov To All 10 January 1999

KF> Если так рассуждать, то схема (ц) глюк полное дерьмо. Она

За что я заслужил в свой адрес упоминание ^^^^^??? Вот уже
дважды Вы себе в присутствии всего люда позволили себе
так выразится... Я знаю слова и покрепче. И вааабще я таких как
ты в детстве из рогатки убивал :)))) (с) Вадим.

KF> требует
KF> установки 512ви1 (ее еще и поискать надо), кварца на
KF> 32768Гц
KF> стоимостью $1 (!) и кучу транзисторов, резисторов,
KF> конденсаторов етц.
KF> С далласами схема глюка не работает. ДАЛЛАС СТОИТ $1.

Ви1 - мне ее подарили. Здесь Даллас я не могу найти (о трепещи! :)) для
спринтера до сих пор...
Кварц указанной частоты имеется в любых (почти) наручных
(и не только) часах...
Мне было проще найти указанные мною компоненты и я написал
под это дело малую толику софта. Правда, ситуация с софтом
до сих пор осталась на месте... Вот куда надо Вашу бушующую
энергию преобразовывать :).

KF> Для обеспечения работы далласа потребовалось 4
KF> микросхемы в скорпионе,
KF> а не пара десятков. А схема в общем случае проще -- кварц
KF> не нужен,
KF> ни одного резистора, конденсатора, транзистора или диода,
KF> БАТАРЕЕК HЕ HАДО.

Тогда я Вас решительно не понимаю - если уж схема Глюка
такая плохая - зачем Вы ее повторили? Сочинили бы свою -
и чего тут ругаться как писцовские плотники?