svofski - а exolon нормально работает?
Вид для печати
svofski - а exolon нормально работает?
Конечно, как можно без Эхолона =) Но я не знаю, гарантирует ли это что бы то ни было, кроме исправности Эхолона. Таймер имеет ожидаемый период в режиме <x> и из него получается считывать значения каждый раз одинаковые.. В каком, кстати, режиме, кто-нибудь помнит?
Мне кажется, что команда разработчиков 8253 испытывала какой-то комплекс перед всеми остальными.. Типа, вот, люди процессоры делают, контроллеры шыыыннные, к памяти напрямую доступаются! А нам счетчик какой-то дали убогий. И, подогреваемые эмоциями, сделали его сложнее процессора. Документаторы, соответственно, не смогли описать его поведение, поэтому в даташитах везде какие-то недомолвки. С другой стороны, забавно. Ведь это единственный чип того времени, который до сих пор есть в каждом писюке. Правда, интегрированный в южный мост.
Для отсчетов интервала ехелон использует канал 1 в режиме 2
---------- Post added at 17:51 ---------- Previous post was at 17:43 ----------
Кстати игры использующие таймер нестандартно: colorwar.rom, набор карточных игр card.fdd, само собой exelon.rom. в других прогах незамечал. В картах вообще непонятно зачем, походу SES неособо задавался этим вопросом когда передирал его :)
---------- Post added at 18:01 ---------- Previous post was at 17:51 ----------
Вот например в даташитах написано минимально допустимое число которое можно записывать в счетчик в разных режимах, но нигде ненаписано, что будет если всеже его туда записать, и что счетчик по окончанию счета должен остаться в нуле или переполнится и будет считать с $FFFF, и таких вопросов у меня была целая куча, к томуже нет программ, которые это могут выявить, тесты все подводные камни всеравно невыявят
Colorwar вроде запускал не так давно. Вроде ничего из ряда вон не заметил.
Сейчас вспомнил, на диске с SSTV у меня есть не помню откуда взявшийся файл TEST8253.COM, который с виду не делает ничего, кроме как рисует снизу какую-то черточку и зависает. Никто не знает, что это такое и, если черточка -- это индикатор (не)исправности, как она должна выглядеть?
---------- Post added at 16:12 ---------- Previous post was at 16:04 ----------
Да, это одно из кидалов. В даташите OKI как-то очень косно написано, что число $0000 прочитать из счетчика нельзя. Что они хотели этим сказать я не очень понял. Из Intel-овского даташита следует, что все "однократные" режимы 0 и 4 на самом однократны только с точки зрения выходов. А счетчик продолжает считать, переваливаясь через 0. Экспериментально вроде получилось, что переваливается он без перезагрузки (хотя это трудно установить теми тестами, что есть).
Еще интересный момент, который не выкопаешь ни в какой доке. После первого теста в режиме "0" счетчик продолжает считать. Дальше тест программирует его на режим "1" и загружает в него значение $FFFF. Но, поскольку сигнал GATE в Векторе всегда "1", это число не переписывается во внутренний счетчик и счет продолжается как будто бы записи не было. Самое занятное в том, что операция установки режима в "1" все же останавливает счетчик, а загрузка значения, которое в него так никогда и не попадает, продолжает счет.
короче сделали какой то глючный таймер, а нам теперь все глюки клонируй :)
Хмм.. а у меня вроде получалось 12 таймерных, то есть 24 процессорных =)
Не, вообще-то счётчик должен останавливаться на 32 такта:
Если не учитывать смещение сигнала на пару тактов в последнем цикле команды OUT, то будет 8+12+12=32 такта.Код:OUT 08H ; тут в последнем цикле останавливается
MVI A,0FFH ; 8 тактов
OUT 0BH ; 12 тактов
OUT 0BH ; 12 тактов, в последнем цикле включается
Откуда же у меня ещё 4 лишних такта? :v2_conf2:
---------- Post added at 18:22 ---------- Previous post was at 18:16 ----------
Надо посмотреть выход из режима HALT, наверное у меня делается мгновенно, а не через 4 такта после прерывания...
---------- Post added at 18:24 ---------- Previous post was at 18:22 ----------
Нет, тогда бы наоборот - счётчик меньше "уменьшился" ...
Я балда стоеросовая, или какая она там бывает, дубовая, еловая мякинная.. 12 хекс, 18 таймерных, то есть 36 процессорных тактов у меня разница была пока я не стал останавливать счетчик после записи управляющего слова. Правда, это никак не проливает пока свет на твои 4 такта, но меня немножко успокаивает.
---------- Post added at 17:33 ---------- Previous post was at 17:32 ----------
А ты учел, что счетчик там переваливает через край? Начальный отсчет в итоге получается меньше конечного.Цитата:
Нет, тогда бы наоборот - счётчик меньше "уменьшился" ...
В принципе, если принять за аксиому, что после установки режима счётчики простаивают 2 таймерных такта, то всё сходится. Т.е. нужно не просто приостановить счётчик, а ещё и задержать его возобновление на 2 таймерных такта.