<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[ПЭВМ "Агат" 7-9: Форум &mdash; Контроллер НГМД 840 - загадка с ПЗУ]]></title>
		<link>https://forum.agatcomp.ru//viewtopic.php?id=219</link>
		<atom:link href="https://forum.agatcomp.ru/extern.php?action=feed&amp;tid=219&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Контроллер НГМД 840 - загадка с ПЗУ».]]></description>
		<lastBuildDate>Sun, 27 Jan 2019 14:31:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Контроллер НГМД 840 - загадка с ПЗУ]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=2560#p2560</link>
			<description><![CDATA[<p>В точку!</p><p>Собственно, прозвонил-то я их сразу и разницу в 300 лишних Ом увидел, но вот кто кого шунтирует было непонятно. Надо было, конечно, резистор отпаять, но вчера времени не нашлось. Зато был применен ненаучный метод &quot;пошевелить резистор пальцем&quot; и оказалось, что он треснул и целым выглядел только из-за прочности лака :)</p><p>После замены сразу все заработало. Ну почти. Час бился, пытаясь понять, почему вообще ничего не читается с флопа, пока не догадался длительность сигнала Index померять. Оказалось, диск бодро крутился на 360 об/мин, хотя конфигурация перемычек не менялась. Пришлось сигнал выбора скорости посадить на землю через резистор 1 КОм (и держать этот резистор пальцем, пока ИКП грузился).</p><p>Потом вспомнил, что в прошлый раз замкнул перемычку выбора скорости &quot;крокодилом&quot; от щупа осциллографа. А поскольку осциллограф заземлен, перемычка заодно села на землю. А тут я нормальный джампер поставил, и оказалось, что на второй ноге перемычки вовсе не земля, а высокий уровень. В общем, еще надо понять, можно ли штатными средствами на этой перемычке низкий уровень получить.</p>]]></description>
			<author><![CDATA[null@example.com (avivanov76)]]></author>
			<pubDate>Sun, 27 Jan 2019 14:31:00 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=2560#p2560</guid>
		</item>
		<item>
			<title><![CDATA[Re: Контроллер НГМД 840 - загадка с ПЗУ]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=2558#p2558</link>
			<description><![CDATA[<p>Омметром прозвонить все 8 линий относительно шин питания на обесточенной схеме. Причем в оба направления, диодным тестом и обычным.<br />Наверняка где-то разница вылезет.</p>]]></description>
			<author><![CDATA[null@example.com (Voldemar0)]]></author>
			<pubDate>Sun, 27 Jan 2019 05:01:38 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=2558#p2558</guid>
		</item>
		<item>
			<title><![CDATA[Re: Контроллер НГМД 840 - загадка с ПЗУ]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=2557#p2557</link>
			<description><![CDATA[<p>ПЗУ, похоже, все-таки живая. Сначала у меня была мысль, что это какие-то проблемы с питанием (типа, кондеры разряжаются при частых обращениях, и лезут глюки), но посмотрел шины питания с осциллографом и ничего страшного не нашел.</p><p>Была еще мысль, что, может, одновременно на шину данных лезут ВВ55 и ПЗУ, но тоже мимо - выборка на ВВ55 одновременно с ПЗУ не приходит.</p><p>В конце концов, повесил 1-й канал на сигнал выбора ПЗУ,&nbsp; 2-й на вывод данных, настроил ждущий режим с запуском по спаду сигнала и проверил все 8 выходов ПЗУ.</p><p>На разрядах D0-D6 нормальные импульсы, с правильными уровнями, а вот на D7 обнаружилась такая фигня (см. картинку).</p><p>Во-первых, уровень кривой (около 1,8 В), во-вторых, после просадки на 0 этот уровень медленно восстанавливается. У ПЗУ открытый коллектор, так что она может только посадить уровень на землю. И получается это у нее хорошо :)<br />Резистор к питанию - в порядке. Так что остаются ВА86 и ВВ55. Мне кажется, что это ВАвка барахлит, но поскольку у меня ее нет, проверить пока не могу.</p><p>А что в результате получается: в начале ПЗУ идут байты A2 20 A0 00 A2. Первые два такта - это чтение инструкции LDX #$20, старший бит еще распознается как высокий уровень. К третьему такту уровень просел. Старший бит читается как 0 и LDY #$0 превращается… в JSR! Дальше читается младший байт адреса, потом идет пауза в 3 такта, пока в стек пишется адрес возврата, а потом читается байт A2. Но поскольку уровень на D7 все еще мал, он превращается в 22. Получается, что по факту процессор выполняет инструкцию JSR $2200. После чего все и валится в обработчик BRK, поскольку в памяти после включения мусор.</p>]]></description>
			<author><![CDATA[null@example.com (avivanov76)]]></author>
			<pubDate>Fri, 25 Jan 2019 20:46:36 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=2557#p2557</guid>
		</item>
		<item>
			<title><![CDATA[Re: Контроллер НГМД 840 - загадка с ПЗУ]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=2530#p2530</link>
			<description><![CDATA[<p>Скорее всего бздуха уже на пол пути к нирване... При выполнении из нее идет постоянное обращение к ней и её клинит, а при копировании обращение к ней через много-много тиков...</p>]]></description>
			<author><![CDATA[null@example.com (LeoN)]]></author>
			<pubDate>Tue, 08 Jan 2019 18:59:37 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=2530#p2530</guid>
		</item>
		<item>
			<title><![CDATA[Контроллер НГМД 840 - загадка с ПЗУ]]></title>
			<link>https://forum.agatcomp.ru//viewtopic.php?pid=2529#p2529</link>
			<description><![CDATA[<p>Есть контроллер 840К в 5 слоте. К нему подключен Panasonic JU 475-4.<br />При включении дисковод не выбирается (светодиод на морде не светится), загрузка падает в обработчик BRK по разным адресам в районе 22xx.</p><p>По команде C500G то же самое.</p><p>Если написать простую программку, которая пишет в C0D3 92, а потом по очереди 0F и 0E с небольшим интервалом, то светодиод на морде дисковода моргает.</p><p>Если переписать содержимое ПЗУ в память командой 2000&lt;C500.C5FFM, а потом подправить 2011:A9 50 (иначе номер слота неправильно определится, поскольку адрес не тот), то при запуске 2000G дисковод выбирается, мотор включается и читается первый сектор. Дальше загрузка падает в обработчик BRK, потому что загрузочный сектор передает управление обратно в ПЗУ.</p><p>Черная магия, блин. У кого есть идеи, почему чтение из ПЗУ нормальное, а выполнение - нет?</p>]]></description>
			<author><![CDATA[null@example.com (avivanov76)]]></author>
			<pubDate>Tue, 08 Jan 2019 18:23:38 +0000</pubDate>
			<guid>https://forum.agatcomp.ru//viewtopic.php?pid=2529#p2529</guid>
		</item>
	</channel>
</rss>
