Кaк-то я писал уже, что будучи школьником, исследуя дамп МОНИТОРа, дошёл до подпрограмм ввода/вывода данных порта магнитофона. И обнаружил там кучу «POP PSW»…
Углубляясь в логику кода я вскоре понял, что считывается ОЗУ линейно в циклах задержек. Зачем?
Я скопировал фрагменты в ОЗУ, подкорректировав адреса и все «POP PSW» заменил на «NOP». Запустил и попытался выбросить пару дампов на ленту.
После окончания я заметил несколько символов на экране и решил, что где-то не так что-то подкорректировал. А когда вывел дамп, обнаружил местами «FF» и прочий мусор…
Позднее, я решил поиграться «музыкой» посредством двух подпрограмм - «F81B» и «FD27». Но рваный звук раздражал. И я добавил код отключения ПДП. А когда наигрался, после сброса, обнаружил, что программа - испорчена, так как команды отключения ПДП заместились мусором…
Тогда я директивой «M»-МОНИТОРа отключил ПДП и через минуту восстановил всё через «O»…
Сперва, я просто ужаснулся бардаку на экране. А после прогона дампа увидел по всей протяжённости регулярно встречающийся хлам.
Вот тогда я и понял, для чего нужны те «POP PSW»!
После чего в моих программах стали появляться подобные трюки во всевозможных синтезаторах/говорилках.
Уже после перехода на Pentium и поверхностным увлечением «Торсионными Полями», я пытался отключать ПДП на PC для исследования. Но справочников по портам PC сильно не хватало и ничего у меня не вышло…
Тогда я уже в 2003 написал свой первый код, который синхронизировался по VGA-биту конца кадра, запускал таймер i8253, заполнял экран 320x200@256 ТВ-матрацем с восемью цветами и дожидался сигнала таймера. После чего весь экран обнулял. Клавишами изменял коэффициент деления таймера и добивался устойчивой цветной/тёмной картинки с единственным мерцающим пикселем с блуждающей позицией.
Код запрещал все прерывания и работал в чистом DOS с портами напрямую. И этот код я гонял часами, фиксируя перемещения пикселя. Но это было очень неудобно, так как нужно было беспрерывно дежурить у экрана.
И я написал новую версию программы уже в 2004.
Она подсчитывала длительность обратной кадровой развёртки, длительность строки и длительность обратной строчной развёртки. Тем самым, я использовал три параметра и сверял их с предыдущими значениями троичным способом (-1/0/+1).
Итого, я условно их назвал «маятниками» и составил таблицу из 27 постулатов (3 маятника на три события)…
Над программой очень долго работал и продумывал VGA-палитру, чтобы максимально быстро всё отрисовывать и скроллить, учитывая ещё и точки разметки на экранчике мнимого осциллографа. В общем, и «Змейка», и «Мячик», и «Лучи» цветные - всего лишь палитра с битами масок…
И как показали опыты, на моём Pentium 90 MHz на всю эту динамическую отрисовку код тратил время до 1/3 кадра, что визуально я отметил уже белой линией бордюра.
В 2008 весь диск я потерял (логически) и не восстановил, так как приобрёл побольше. В результате чего, вся документация и все мои работы оказались (логически) недоступны. А с новым компьютером руки до переходника SATA<->pATA ещё не дошли.
Но, тем не менее, на днях зашёл на один из форумов и в своём профиле в разделе вклада обнаружил архив 2008 года, который зачем-то кому-то вкачивал. И в этом архиве - тот самый детектор!
Ведь 11 лет я считал, что весь тот мой труд - утерян. А он хранился на одном из форумов все эти годы!
(К сожалению, без исходника. Только exe'шка.)
Итак, если Вы не равнодушны к всевозможным аномалиям, если у Вас есть компьютер/ноутбук с DOS-режимом - можете опробовать эту утилиту. Как Вы уже понимаете, никакой эмуляции она не любит и её надо запускать до загрузки любой операционки. Только DOS, без драйверов и прочего добра.
Вот демонстрация её работы в VMware, так как конкретно сейчас нету под рукой подходящих ПК.
Можно заметить, что синий луч практически хаотически себя ведёт, так как эмуляция - есть эмуляция!
Хочу предостеречь тех, кто решит погонять эту утилитку как надо - под DOS'ом.
Так как она запрещает все маскируемые прерывания на весь период своей работы, могут неверно работать часы и датчики. Тем самым, если сама BIOS следит за температурными сенсорами посредством прерываний, то весь период работы компьютера/ноутбука будет неконтролируемым.
Тем самым, если Вы не уверены - не запускайте (на продолжительный период) программу!
Или, как говорится, Вы используете её на свой страх и риск!
Вот ссылка на антивирусность, если кто-то не уверен, что я не увлекаюсь малварью.
P.S.: Как уже понятно, никакого «экстрасенсорного оборудования» в комплект купить я не предлагаю: В любом PC полно своих TCXO…
ПСИХ (Проверка Сыпучести, Индикация Хаотичности) ИМС-ДОЗУ
Moderator: Shaos
-
- Maniac
- Posts: 267
- Joined: 12 Apr 2011 20:43
- Location: Tashkent
ПСИХ (Проверка Сыпучести, Индикация Хаотичности) ИМС-ДОЗУ
You do not have the required permissions to view the files attached to this post.
Last edited by Paguo-86PK on 08 Mar 2020 13:04, edited 1 time in total.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Программный Детектор Флюидов
Подпрограммы ввода/вывода данных через порт магнитофона являются задачами реальногоPaguo-86PK wrote:Кaк-то я писал уже, что будучи школьником, исследуя дамп МОНИТОРа, дошёл до подпрограмм ввода/вывода данных порта магнитофона. И обнаружил там кучу «POP PSW»…
Углубляясь в логику кода я вскоре понял, что считывается ОЗУ линейно в циклах задержек. Зачем?
времени и должны точно выполняться по тактам.
В ПК "Paguo-86PK" и иже с ним точное выполнение невозможно, поскольку программа прерывается циклами ПДП, обслуживающими ВГ75. При этом контроллер ПДП осуществляет и регенерацию динамической памяти.
При вводе/выводе данных через порт магнитофона для соблюдения точных временнЫх интервалов ПДП отключают,
поэтому экран гаснет, а вот регенерацию динамической памяти приходится делать сугубо программным путём
в циклах задержки т.е. это банальный перебор адресов для регенерации динамического ОЗУ.
iLavr
-
- Maniac
- Posts: 267
- Joined: 12 Apr 2011 20:43
- Location: Tashkent
ПСИХ (Проверка Сыпучести, Индикация Хаотичности) ИМС-Д/ОЗУ
Рассказывaл я про опыт из жизни, когда мне было 14 лет!Lavr wrote:Paguo-86PK wrote:Кaк-то я писал уже, что будучи школьником, исследуя дамп МОНИТОРа, дошёл до подпрограмм ввода/вывода данных порта магнитофона. И обнаружил там кучу «POP PSW»…
Углубляясь в логику кода я вскоре понял, что считывается ОЗУ линейно в циклах задержек. Зачем?

Давным-давно я со всем этим разобрался!

Вот, кстати, руки дошли и дописал программу и на РК.
Если у кого-то под рукой имеется РАДИО-86РК, данной утилитой можно проверить микросхемы ОЗУ на вшивость…
Формат - стандартный *.rkr.
Версия 1.3 (32 Кб)
- Вверх/Вниз - прокрутка обозрения памяти. Изначально установлено на ячейки с инструкцией
- Домой/Стр - заполнение памяти кодом FF/00 соответственно
- Пробел/ВК - Запуск цикла без визуализации обратного отсчёта / с визуализацией
Максимальная выдержка может достигать 17 минут

При старте добавлена краткая инструкция и управление стало более удобным…
P.S.: Программирование ВТ57/ВГ75 отлаживал в Emu80 и не знаю, что и как будет отображаться на реальной машине…

You do not have the required permissions to view the files attached to this post.