Результат работы КМД c МС1201-04 при ОЗУ A00
Код:.MEMKMD
TEST KMD MEMORY ver.1
MEMORY RANGE=020000-023777 USED BLOCK=023600-023777
022622 177777 173777 004000
022622 125252 121252 004000
Вид для печати
Результат работы КМД c МС1201-04 при ОЗУ A00
Код:.MEMKMD
TEST KMD MEMORY ver.1
MEMORY RANGE=020000-023777 USED BLOCK=023600-023777
022622 177777 173777 004000
022622 125252 121252 004000
Всем доброго времени суток!
Есть машина - ДВК-3М
В корзине стоит МС1201.03, КЦГД, КМД.
При попытке загрузится с дискеты, созданной с помощью UKDSKP, происходит следующее:
@17772140/000040 37 <BK>
@/000200 <ПС>
17772142/XXXXXX 0 <BK>
@^
17772140/100040 <ПС>
17772142/100003 <BK>
@
Дисковод моргает лампочкой , но загрузчик не грузит!
Если загрузится с HX-сервера, загрузить драйвер MY, в HX1 "вставить" системный образ MY80_SYSTEM.DSK
Выполнить:
COP/DEV/VER/NOQ HX1: MY0:
Затем сделать из полученной дискеты образ с помощью UKDSKP, то с него прекрасно загружается эмулятор ДВК.
Сломал всю голову! Что я делаю не так? Почему не получается загрузиться с дисковода?
Заранее благодарен.
P.S. Чтобы загрузиться через порт 176560 на МС1201.03, не вынимая из корзины КЦГД, нужно вручную набирать загрузчик HX-сервера?
образ MY80_System.DSK из комплекта эмулятора ДВК
- - - Добавлено - - -
dk_spb, я что-то не знаю? так можно? .... сейчас попробую....
- - - Добавлено - - -
Работает! :)
А в чем разница? Объясните, пожалуйста.
В пульте МС1201.03 и МС1201.04 в адресе 000000 болтается ПЗУ 134 с 0 до 013777 адреса - т.е. загрузка невозможна.
Однако, если набрать текст в адресе, например 011000 :
012737 000037 172140 032737 000200 172140 001774 012737
000000 172142 012701 000010 077001 077102 000000
И запустить его ( с адреса набора ) .
А потом набрать "0G"
Текст производит запись команды на загрузку в МУ и ожидание ~7 циклов пустой команды SOB ( ок. 2 сек ), пока не передастся ( по ПДП ) текст 0 блока с МУ в ДОЗУ МС1201.03
Собственно уже сказали. В пульте процессор 1801ВМ3 находится в режиме HALT, соответственно с него на 1801ВП1-119 поступает сигнал HALT, и она подрубает в адресное пространство системное ПЗУ 1801РЕ2-134 и статическое ОЗУ. Возможно при запросе шины по DMA процессор этот сигнал HALT не снимает.
Понятно, но смутил меня факт того, что в эмуляторе все работает, а не должно.
Вот теперь все понятно! :)
А какая тут должна быть совместимость? Вроде по аналогии с LSI-11 делали 1801ВМ1 и 1801ВМ2, а 1801ВМ3 к этому отношения не имеет.
Тут ещё надо узнать, как ведет себя 1801ВП1-119, т.к. с процессора идут два сигнала HLTM и SEL, HLTM показывает, что процессор находится в режиме останова, а SEL - что должен идти обмен с пультовой памятью.
И переводит ли процессор эти два вывода в Z-состояние при обмене по DMA, это не тестировалось.
- - - Добавлено - - -
Ну вот и код ошибки 100003 свидетельствует о том, что произошел TRAP4 во время записи в адресное пространство материнской платы, так что пробовало записать в ПЗУ пульта.
- - - Добавлено - - -
Хотя ещё может быть, что в режиме HALT процессор 1801ВМ3 не реагирует на запросы DMA. Тогда в КМД при запросе через "окно" тоже будет TRAP4.
Так, стойте! Люди, ИМХО, вы что-то путаете. Причем здесь вообще 119-я, ПЗУха и пр.? Это все фенечки процессора. Грубо говоря, у него не 22 адресных линии, а 23, линию SEL можно считать таковой. Всем этим рулит диспетчер памяти, позволяя процессору через его 16-разрядный виртуальный адрес обратиться куда угодно. Но DMA-то не знает ни 119-й, ни сигнала SEL, ни ПЗУхи. На корзине есть 22 адресных линии, и все! И по этим линиям обязана адресоваться основная память и страница ввода-вывода, и никаких ПЗУшек.
И это вряд ли. Какая на фиг разница процессору, в HALT-mode он, или нет? Получил сигнал К ПВ Н, отключился от шины и ждет, когда его снимут. То есть, конечно, если наши орлы заблокировали выдачу К ППД Н в ответ на К ТПД Н в то время, когда процессор находится в HALT-mode, то таки да, птица Обломинго прилетит. Только зачем? Как может помешать один или несколько циклов ДМА исполнению программы в HALT-mode? Не понимаю...
- - - Добавлено - - -
vwarlock, а может таймер виноват? Помню, при включенном таймере загрузка с КМД иногда лажала. Плз, попробуйте отключить его и еще раз сделать нач. загрузку командой 37 КМД.
По поводу SEL, AFZ не путайте с 1801ВМ2, там да, она де-факто является 17-й адресной линией и процессор может адресовать до 128 КБайт. В случае с 1801ВМ3 сигнал SEL устанавливается только в режиме HALT при обращении к нижним 32КБайт виртуальной памяти (через PARH0 и PARH1), да и то там обрезано всё до 8Кбайт. Для 1801ВП1-119 сигналы SEL, HLTM являются входящими, и по ним и адресным сигналам A11 и A12 1801ВП1-119 выбирает либо системное ПЗУ, либо статическое ОЗУ, либо основную память. Вот сигнал выбора страницы ввода-вывода вырабатывает сам процессор 1801ВМ3. Так что устройство по DMA получает доступ к памяти через 1801ВП1-119, если же надо страницу ввода-вывода, то оно должно вырабатывать и BS, вот у КМД с этим плохо.
- - - Добавлено - - -
Включенный таймер никак не влияет на исполнение команды 37 КМД. Он влияет только на исполнение первичного загрузчика. Если включен таймер и в ячейке 0100 содержится 0, то по сигналам таймера и разрешенных прерываниях первичный загрузчик всё время перезапускается по нулевому адресу. Надо в первичный загрузчик в ячейки 0100 и 0102 внести 0102 и 2 и проблема отпадёт. Так сделано в драйвере MZ для УКНЦ.
В случае ВМ2 - то же самое. Смысл этого деяния - скрыть холт-модовое ПЗУ (а для ВМ4 еще и ОЗУ) как от нормальных программ, так и от всех абонентов МПИ. То есть ни обычная программа, ни DMA не должны увидеть эти теневые объекты ни при каком раскладе, они должны быть доступны только процессору в холт-моде. И, если у ВМ3 они видны через DMA, то это конкретный косяк. Ошибка проектирования, которая осталась незамеченной.
Угу. А если там 177777 или что-то в том же духе, то оно вылетает. Не помню, что там у ДВК в памяти после включения. Про Э-60 помню, там идут блоки по 64 байта (oct 100) - блок нулей, блок единиц (177777), снова блок нулей, и т.д. Особую пикантность этому делу добавляли время от времени появляющиеся отдельные единичные биты в некоторых нулевых словах и, наоборот отдельные нулевые биты в словах единичных. Естественно, случайным образом. Скорее всего, это из-за того, что состояние запоминающих конденсаторов при включении всегда, разряженное, но для каких-то адресов это интерпретируется, как ноль, для других - как единица. Ну, и отдельные конденсаторы в процессе включения могут зарядиться, причем это зависит от экземпляра м/с, ну и платы, в которую эти м/с запаяны...
То что это конкретный косяк, это я согласен, но косяк 1801ВМ3 или 1801ВП1-119 пока не ясно, хотя всё показывает на 1801ВМ3, при цикле DMA он должен отключать сигналы SEL и HLTM, если конечно цикл DMA доступен в HALT-моде. Но может быть и косяк 1801ВП1-119, если она доступ у пультовой памяти предоставляет только на сигналу HLTM.
В принципе, это довольно просто вызвонить. Сочиняем несложную логическую схему, которая по нажатию кнопочки взведет триггер, который подаст К ТПД Н, а затем, дождавшись появления К ППД Н, снятия К СИА Н и К СИП Н, выдаст сигнал К ПВ Н и зависнет в этом состоянии. После этого можно будет общупать все ножки как ВМ3, так и ВП1-119, состояние будет статическим. (При этом, правда, накроется все содержимое ОЗУ, да и Бог с ним...)
Кстати, посмотрел схему МС1201.03, там на 1801ВП1-119 зачем-то ещё идет сигнал SACK (К ПВ Н). Да и то, что накроется память, то это вряд ли, регенерацию осуществляет 1801ВП1-119, это в "электронике-60" вроде если устройство хватало память по DMA на длительное время, то и оно было обязано осуществлять регенерацию ОЗУ.
Привет всем.
Кто знает, что за драйвер VX.SYS. С каким контроллером он работает?
Ругается в эмуляторе )
Код:.INS VX
?KMON-F-Conflicting SYSGEN options
.SE VX SYSGEN
<< SiBill VX handler Vs5.05 >>
VX-F-Invalid BIOS
.DS VX
File name: "DK:VX.SYS", size: 6. blocks.
Release = VS5, Version(s) = 5
*** Runable program
Transfer address 003574
Stack top 001000
High limit 005176 = 1343. words
Job status word 001000 = [ OVLY$ ]
*** Handler data structure
Handler size 216. bytes
Device size 1660. blocks
Device status word 102736 = [ FILST$ SPFUN$ VARSZ$ ]
Device code 336
Sysgen options 000004 = [ TIMIT$ ]
CSR address 177030
Vector 000
* Installation code for DATA SYSTEM
* Bootable device
H.BPTR=001330, H.BLEN=512.b, H.READ=000114
*** Set options table:
SYSGEN entry 572
LIST entry 572
FORMAT entry 572
MY entry 636
PC entry 604
RETRY = decimal entry 726
RATE = decimal entry 706
TRACK = decimal entry 734
COMP = decimal entry 742
SECT = decimal entry 720
[no] RSEL entry 656
[no] DEMP entry 656
[no] RARE entry 656
SS entry 656
DS entry 662
.HAND VX
Имя драйвера VX.SYS
Код устройства 336 (не идентифицирован)
В устройстве блоков 1660.
Регистр CSR=177030
Вектор 0
Обработка прерываний .+320
Приоритет 340
Размер драйвера 330 байт, 108. слов
Начальный загрузчик 1000 байт, 256. слов
Контроль установки Есть
Параметры генерации TIM$IT=1 (поддерживает тайм-аут)
MMG$T =0 (не поддерживает диспетчер памяти)
ERL$G =0 (не поддерживает регистратор ошибок)
Слово состояния FILST$=1 (прямой доступ)
RONLY$=0 (не только для чтения)
WONLY$=0 (не только для записи)
SPECL$=0 (стандартная файловая структура)
HNDLR$=0 (не выполняет простые завершающие операции)
SPFUN$=1 (выполняет специальные функции)
ABTIO$=0 (не выполняет завершающие операции)
VARSZ$=1 (поддерживает тома переменного размера)
SET VX SYSGEN
SET VX LIST
SET VX FORMAT
SET VX MY
SET VX PC
SET VX RETRY=<десятичное значение>
SET VX RATE=<десятичное значение>
SET VX TRACK=<десятичное значение>
SET VX COMP=<десятичное значение>
SET VX SECT=<десятичное значение>
SET VX [NO]RSEL
SET VX [NO]DEMP
SET VX [NO]RARE
SET VX SS
SET VX DS
.
может это какая-то модификация MX засекреченная )
Код:.DS MX
File name: "DK:MX.SYS", size: 9. blocks.
Release = V05, Version(s) = 0 2
*** Runable program
Transfer address 004742
Stack top 001000
High limit 010774 = 2302. words
Job status word 001100 = [ OVLY$ TCBIT$ ]
*** Handler data structure
Handler size 4066. bytes
Device size 880. blocks
Device status word 102770 = [ FILST$ SPFUN$ VARSZ$ ]
Device code 370
CSR address 177130
Vector 000
* Installation code for DATA SYSTEM
* Bootable device
H.BPTR=003352, H.BLEN=512.b, H.READ=000154
*** Set options table:
RETRY = decimal entry 636
WAIT = decimal entry 640
TRACKS = decimal entry 640
[no] SKIP entry 612
[no] WRITE entry 612
[no] VERIFY entry 612
[no] SIDEUP entry 612
[no] CHECK entry 612
DISK entry 644
MEMORY entry 644
INFORM entry 644
LIST entry 644
FORMAT entry 644
SYSGEN entry 644
QUIET entry 644
ACTIV entry 644
KNOW entry 644
.HAND MX
Имя драйвера MX.SYS
Код устройства 370 (дискета 5 дюймов НГМД-6022, СМ-5640, ЕС-5321)
В устройстве блоков 880.
Регистр CSR=177130
Вектор 0
Обработка прерываний .+574
Приоритет 340
Размер драйвера 7742 байт, 2033. слов
Начальный загрузчик 1000 байт, 256. слов
Контроль установки Есть
Параметры генерации TIM$IT=0 (не поддерживает тайм-аут)
MMG$T =0 (не поддерживает диспетчер памяти)
ERL$G =0 (не поддерживает регистратор ошибок)
Слово состояния FILST$=1 (прямой доступ)
RONLY$=0 (не только для чтения)
WONLY$=0 (не только для записи)
SPECL$=0 (стандартная файловая структура)
HNDLR$=0 (не выполняет простые завершающие операции)
SPFUN$=1 (выполняет специальные функции)
ABTIO$=0 (не выполняет завершающие операции)
VARSZ$=1 (поддерживает тома переменного размера)
SET MX RETRY=<десятичное значение>
SET MX WAIT=<десятичное значение>
SET MX TRACKS=<десятичное значение>
SET MX [NO]SKIP
SET MX [NO]WRITE
SET MX [NO]VERIFY
SET MX [NO]SIDEUP
SET MX [NO]CHECK
SET MX DISK
SET MX MEMORY
SET MX INFORM
SET MX LIST
SET MX FORMAT
SET MX SYSGEN
SET MX QUIET
SET MX ACTIV
SET MX KNOW
.
Пропатчить МХ - это любимое мероприятие ДВКашников конца 1980-х.
Особенно сократить резиновый буфет драйвера в драгоценном ОЗУ - т.е. осуществить посекторную запись.
Кстати, 097/128 1801ВП1 как раз и есть результат возни с МХ.
*
Был вариант патча МХ и под 2хМФМ -т.е. 1.44 плотность. Однако, возникла небольшая проблема - МС1201.02 не справлялась с потоком данных 1.44. Э3 - утеряна, софт - Икс Три где. Блок - схема софта - не сильно отличается от 326 ПЗУ, скорее косметически.
*
Скажу прямо - код не расковыривал. Можете сравнить начальный загрузчик МХ и исследуемого драйвера, т.к. в ВП1-128 управление не соответствует МХ.
- - - Добавлено - - -
Патч для 1801ВП1-128 - переводит БМК на адрес 177030 :
http://storage2.static.itmages.ru/i/...528b12b4a7.jpg
Уважаемые Знатоки КМД, помогите, pls., запустить плату КМД.
Проблема заключается в следующем: у платы нет готовности, т.е. по адресу 172140/000000.
На шине КМД можно увидеть, что процессор опрашивает РНП (Регистр Начального Пуска), а затем хочет обратиться к адресу 177676, но ответа не получает и процесс опроса РНП начинается заново.... (причем такая же ситуация наблюдается и на втором контроллере) :-(
Очень редко при включении питания готовность 172140/0000040 появляется (на обоих контроллерах), но при попытке прочесть "0" дорожку готовность исчезает и более не появляется.
Вопрос - что это за адрес 177676? И как можно побороть эту напасть?
Прошивки 091 и 128.
ЛА надо смотреть от подачи ACLO .
А в данном случае - это типовое зацикливание, это адрес ОЗУ ( в МС1201.01 ) , куда должен быть сохранен R7 и ССП при переходе в пульт.
На КМД - 177676 отсуствует, и опять повторяется трап то 4.
*
Если нет ЛА - придется сделать его на ИР23/37 и светиках, а так же счетчиках циклов SYNC, сбрасываемых по DCLO, например - что бы можно было переключателем настроить 1-й, 2-й и т.д. просмотр адреса цикла SYNC, куда ВМ1 лезет от старта.
*
Зацикливание может возникать от сбоя на МПИ ВМ1 - может, где какой вывод ИС/БМК малость неконтачит с кристаллом.
В цеху наладку КМД делали через стенд ( перевод ВМ1 в ДМА, и просмотр его шины ) - что бы ясно было видно, где какой регистр не работает.
Вообще, 1809РУ1 весьма капризные ИС...
rrp, а линии подтверждения прерываний и ПДП идут правильно? В смысле, без разрывов?
Вопрос по КМД.
Кто-нибудь измерял скорость пересылки данных по ПДП от памяти КМД в память ЦП и обратно???
Во первых, думаю, если интересует именно скорость пересылки из памяти КМД в память ЦП - то без тестового ПЗУ - только ЛА
Во вторых, я смотрел на сам цикл ПДП от КМД (если речь идёт о MY) (когда разбирался с циклом ПДП на .2018) - он ОЧЕНЬ растянутый
В третьих - учитывая, что скорость работы КМД определяется скоростью работы дисковода - смысл в измерении?
Но саму скорость не измеряли?
И обмен по ПДП КМД идёт пословно или блоками?
Нет, меня тогда интересовал в целом процесс обмена - когда какие сигналы и примерно сколько по времени.
Я сильно подозреваю, что ВСЁ созданное для семейства ДВК - обменивается пословно.
В доках (от DEC) упомянуты три режима:
- обычный - получили разрешение на обмен, адрес, SYNC, данные, сняли SYNC, сняли запрос, получили разрешение на обмен, адрес, SYNC, данные, сняли SYNC, сняли запрос
- burst mode - получили разрешение на обмен, адрес, SYNC, данные, сняли SYNC, адрес, SYNC, данные, сняли SYNC, сняли запрос
- block mode (на примере DIN) - получили разрешение на обмен, адрес, SYNC, данные, DIN, сняли DIN, данные, DIN, сняли DIN, сняли SYNC, сняли запрос
Второй реализовать проще (нужно только со стороны master)
Третий требует поддержки и со стороны slave, причём в доках упомянут некий сигнал, который вроде должен выставить slave, что бы сказать, что он поддерживает burst, ибо на нём лежит ответственность на апдейт адреса - но пока глубоко не вникал - я всё ещё воюю с обычным ПДП.
Для второго (насколько помню) и третьего DEC рекомендует ограничиваться 16-ю словами максимум, правда, (опять же, насколько помню) для третьего есть оговорка - master с поддержкой burst может следить за появлением DMR со стороны другого master-а и, если такого запроса нет, продолжить burst ещё на 16 слов, но - с целью повышения отзывчивости системы - не увлекаться burst-ом с более, чем 16-ю словами
А так же - по оф. документации на KDJ11-A (возможно, справедливо и для M8) - кэш отслеживает запросы ПДП, что бы аннулировать кэш для соответствующих ячеек памяти, но только на 16 адресов (хотя тут есть один пока не понятный момент - 16 или всё таки меньше) максимум
Насколько я в курсе, единственно, что было массово с ПДП под ДВК - это КМД.
Всё остальное - штучные поделки. Хотя тот же КМД был реализован с изрядными огрехами :(
Возможно что-то было на серии Электроника-60-1. Но я живьём таких компьютеров не видел :(
И то, что нашлась плата М8 и попала в достойные руки - весьма удивлён :v2_eek:
PDP-8 вот видел :)
СМ-1425 - там конструктив плат и корзины совсем иной, хотя, наверное переходник в корзину ДВК сделать можно, может быть даже и существовал штатный.
Но я СМ-1425 живьём тоже не видел :(
В некотором роде ещё можно рассматривать систему ПП/ЦП в УКНЦ, но это уж сильно отдельный случай.
Там стандартный вариант.
Ну как минимум ещё одна раньше продавалась :) И поскольку у меня на руках уже были J-11 - когда выставили и с блиц - я два раза перекрестился, что мог потянуть блиц :) Ну и отдельное спасибо Скороходу и за плату и за приемлемую цену :)
Свезло :) Лично я удивлён - что она таки рабочая оказалась - всего то кондеры впаять пришлось (я всё таки очень начинающий электронщик :) ). Проволочные перемычки на микрики - это уже моя инициатива - технически, можно и с перемычками жить - не каждый день их переключаешь :)
Я детали не помню, но вроде там тоже классический ПДП - всё таки он работает быстрее программной пересылки :)
Увы, КМД стали стандартным вариантом ближе к завершению :(
Впихивали до конца 80-х КНГМД, то бишь МХ. Да и не только "Квант" этим страдал.
Помню специально ездил в Зеленоград за МY. Пришла в институт на кафедру ДВК, вроде как всё более-менее, ВМ3, 256 кб памяти, винчестер на 10 мб, КЦГД...
И в издевательство на дискетки - МХ...
То есть вся корзина забита :(
А в это время IBM совместимое пошло в массы. Народ хотел обмена данными :)
Вот под этот соус КМД и выцыганил :)
Обмен идет словами. Со стороны шины КМД регистр 0177102 используется также в качестве адреса страницы, 8 бит, младший и старший байты должны быть одинаковы. Обмен идет через 16-Кбайтное окно 040000-077777. 16 Кбайт * 256 страниц = 4 МБайта. Т.е. адрес равен Страница[21:14].адрес_в_окне[13:0].
- - - Добавлено - - -
Ну нету в УКНЦ ПДП. На магистрали ПП через регистры 0177010/0177014 доступно только ОЗУ ЦП, к тому же доступ к нему идет через видеоконтроллер, он выступает посредником. А к шине ЦП из магистрали ПП доступа нет, т.к. нет ПДП.
ПДП у PDP-11 - это, по сути, только запрос со стороны некоего устройства на управление шиной. Кто управляет шиной - определяет диспетчер. В случае микропроцессоров диспетчер - в самом микропроцессоре. Устройство запрашивает доступ, диспетчер разруливает одновременные запросы и предоставляет доступ. Всё. Что дальше устройство делает на шине и сколько по времени (в соответствии со стандартным протоколом) - определяет только это устройство.
Поэтому ответить на вопрос - используют ли КМД и ПП при доступе к памяти ЦП прямой доступ или нет - просто. Смотрим, со со стороны КМД и ПП дергается сигнал DMR (приходящий на ЦП) или нет. Дергается - значит, с точки зрения QBus (или недоQBus - так как на 1801 на выходе микропроцессора считай QBus) - это запрос ПДП.