
Сообщение от
litwr
Программка рассчитана на замер не более 6 минут.
Это при условии, что используется делитель на 64. Если использовать делители на 16, 4 или 1, то за эти 6 минут счётчик таймера успеет несколько раз перейти через 0 и результаты будут абстрактные. Некое число, непонятно что обозначающее.
Тут в регистр управления таймером записывается число &O164 - устанавливается режим делителя на 64 и биты 4 (запуск счётчика) и 2 (установка бита 7 при переходе через 0).
Нужно иметь в виду, что в таймере глюк - при первом (после включения ЭВМ или системного сброса) запуске таймера в данном режиме индикация срабатывает только после ВТОРОГО перехода счётчика через 0, причём независимо от того, работал ли таймер до этого в
других режимах. Этот глюк у меня в эмуляторе не реализован.
Код:
40 A$=INKEY$
50 IF A$="" THEN 40
Тут ждём нажатия на клавишу. Можно ждать любое количество времени, счётчик при этом будет циклически уменьшаться и если будет переход через 0, то будет выставлен бит 7, но при этом счётчик будет продолжать работать, он не остановится. И сколько таких переходов через 0 было при ожидании, тут никак не узнать. Разве что использовать процессор 1801ВМ1Г, там по биту 7 генерируются прерывания по вектору 0270, и там уже можно подсчитать количество переходов через 0.
А далее в коде предполагается что был возможен всего один переход через 0 (строка 90).

Сообщение от
litwr
Не понял про "набегающую разницу".
Из-за неправильных таймингов, некоторые команды выполняются быстрее, некоторые медленнее, в целом получается примерно как в реальности, но в определённых случаях, эта разница вылазит и начинает быть заметной.
Неоднократно уже писал, что у меня синхронизация с реальным временем делается по звуку. Звуковой буфер отправляется на звучание звуковой карте, и пока он не отзвучит, следующий буфер не отправляется, просто сама звуковая подсистема Виндовс так устроена. А эмулятор тоже ждёт, пока освободится хоть один звуковой буфер, чтобы махом его заполнить и снова ждать.
Можно всю эту фигню отменить, и заставить работать непрерывно без ожиданий, и без звука. Но эмулятор без звука никому не нужен. Да и начнутся конкретнейшие глюки с клавиатурой, дисководом и винчестером, в общем везде, где используется цикличный опрос какого-либо бита какого-либо регистра.