Да ладно, я почти год просидел рядом с СМ-4, пока ее в гермозону не упрятали. Правда, мне 16 лет было всего :)
И новая 1420 уже потише была :)
Вид для печати
Сканы не обещаю, но фотографии описания регистров и команд сделаю.
А шо ж это за контроллер? И подходят ли к нему стандартные дрова от DEC систем? Может сворганить "по быстрому" эмуль DX-a? http://www.chdickman.com/rx02/ ?
Еще писалось на забугорных сайтах что проц sm1420 сделан на AMD2900, это правда или не?
В сети фотка проца 11/24 для unibus тут: http://ummr.altervista.org/DSCN6695.JPG как видно те же микросборки что M6
Кроме того уже анализировали многократно и выяснили что процы ВМ1\ВМ2\ВМ3 никакого отношения к DEC-овским оригиналам lsi-11,kdf-11,kdj-11 не имеют (драловом которых занимался главный конкурент в Воронеже).
Стандартный контроллер от DEC. Соответственно драйвер DY подходит.
К оригиналам они разумеется отношения не имеют. Чего стоит только 22-битный ВМ3 во многом 1:1 копирующий поведение 18-битного 11/34, при том повторяющий и оригинальные глупости вроде эффективной нерабочести команд MFPS/MTPS в пользвательском режиме (они работают только если отмапить адрес 17777776, а это автоматически означает отсутствие защиты).
Тем не менее можно было в описании обратить на это особое внимание.
Только бледнолицый способен дважды наступить на одни и те же грабли (с) Чингачгук из анекдота. :)
А наши разве много раз наступали? Если это про 1806, то туда, наверняка, скопипастили бОльшую часть решений с 1801.
Так может и обратили. Я не читал документации по 11/34. И уж абсолютно точно обратили позже в списке различий.
Про наших я не так много знаю. Но в общем случае насмотрелся на наши "аналоги" и как потом "исправляли ошибки DEC" чтобы ихний драйвер работал с нашим "аналогом" который к примеру не отличает байт от слова :)
А в первичном документе, который описание "стандартного" MMU первой редакции - без разделения I/D и пр. - нет. А до списка различий наши, скорее всего, не добрались.
И, кстати, возвращаясь к нашему обсуждению прерываний. Поразглядывал я схему 1201.03. Как я и ожидал, никаких мер по соблюдению правил позиционно-независимой работы не принято. IACKO процессора напрямую идет на IACKI набортного ВП1-065, правда я не нашел, где EVNT 065-го превращается в IRQ4 процессора, но это неактуально, ибо 065-й все равно получит прерывание первым, вне зависимости от текущего уровня. Остается порадоваться, что для ДВК таки нет штатных устройств с приоритетом выше 4. А буде таковые найдутся, придется что-то дорабатывать. Например, перевесить всё набортное на IRQ7, другое решение в голову не приходит...
То есть, конечно, приходит, но уж больно велик объем аппаратных доработок. А перевесить на IRQ7 - так софты править замаешься...
В общем-то да. Только работает-то она через него, причем в необычном режиме - не так, как все простые команды. И входит в блок средств обслуживания расширенной памяти в "больших" операционках с защитой задач друг от друга. Так, что, на мой взгляд, это следовало бы упомянуть - пусть не в описании самого MMU, но где-то рядом.
Рядом и упомянули в последствии когда обнаружили, что реализация при которой команда эмулируется обычной байтовой пересылкой в адрес 177776 имеет свои особенности. Изначально я так понимаю такого эффекта не планировалось и команда работала себе таким образом без каких-либо последствий пока не добавился MMU.
- - - Добавлено - - -
Кстати интересно... Еще один тест надо сделать...
Сегодня планирую подампить немного ленты. Подскажите, что означает [-1] в этой команде:
.RDTAP
*HX1:MT017.TAP[-1]=MT1:
Интересно бы попробовать на данном 1420 вот этот тест...
До СМки на той неделе я так и не добрался. Но не суть. Сегодня утром было 20 минут, забежал на склад и отфоткал часть доки на дисковод касательно команд, чтобы можно было написать форматтер.
К слову, в микропрограммах дисковода есть микропрограмма форматирования диска, но она нам не поможет - запустить её можно лишь с отладочного пульта, которого у меня увы нет. А с ЭВМ можно запустить только команду форматирования дорожки, что тоже нам на руку)
https://goo.gl/photos/wP528pYH3tFqZ2YYA
В сети есть отсканированное ТО дисковода СМ5631 : СМ5631_3.060.205_TO_1.pdf ; СМ5631_3.060.205_TO_2.pdf
Patron, ежели не секрет, откуда источник то? Я неделю назад искал - не нашёл... :(
Нашлось ТАК
Patron, спасибо, мой косяк - свято верил, что в той теме только доки на 7012 и ГМД70...
я вроде бы по дате смотрю уже пару лет в библиотеке подшито )
http://archive.pdp-11.org.ru/BIBLIOT...060_205_IE_TO/
- - - Добавлено - - -
если честно поиск на новом движке я до сих пор не победил,
то есть я свои собственные сообщения зная 100% содержимое пишу ему запрос, а он выдаёт мне тему вместо сообщения при чём не одну,
а несколько )
BYTEMAN, а можешь заснять кино про дампанье лент?
hobot, твой архив гуголом проиндексирован? Было бы очень неплохо)
Поскольку темка немного заглохла, подкину немного информации для размышления.
В этом посте выложена считанная информация, как я понял, с адреса 173000, то бишь терминальный эмулятор клавишного пульта. Есть косяк: запуск программ с этого эмулятора по команде S в отдельных случаях приводит к сваливанию в ОСТАНОВ. Например, при начальной загрузке с HX если дать команды L 10000<BK>S<BK> мы сваливаемся в останов. Но если на реальном пульте остановить процессор, ввести адрес 10000 и дать команду ПУСК, машина успешно запустится... Вопрос: почему? :)
И ещё :) form, можно вас попросить немножко RDTAP доделать, чтобы при ошибке чтения с ленты был просто пропуск блока (и вывод соотв. сообщения в консоль)? Я свои ленты ещё не гонял, надеюсь что там битого ничего не будет, но мало ли...
Разработчики ленточных контроллеров (скорее всего) беспокоились на этот счёт не меньше, чем разработчики дисковых контроллеров. Если после сбойного сектора контроллер диска не "теряет голову", то и от ленточных контроллеров можно ожидать того же.
Тогда попытки чтения такого образа в виртуальном приводе будут давать в точности такой же результат, как и в реальном. А для UnRoll.exe можно будет добавить ключ /Ignore, чтобы не прекращать распаковку файла при встрече плохого блока.
Видимо потому-что HX_Server умеет работать только с портами у которых есть аппаратное квитирование, по этому вопросу уже несколько страниц исписано здесьhttp://zx-pk.ru/showthread.php?t=160...056#post858056
Тем не менее не зря существует ошибка потери позиции на ленте... На дисковых контроллерах длина блока заранее известна и сбойный легко обойти. Здесь же все зависит от того предусмотрен ли поиск начала нового блока (что впрочем не гарантирует опять-таки стопроцентной возможности читать дальше) или нет.
- - - Добавлено - - -
Только вот беда - он не используется в данном случае, а используется встроенный в эмулятор терминала, который прекрасно работает по трем проводам...
- - - Добавлено - - -
А вот попробую угадать :)
Используется USBшный или PCIшный COM порт? Если да, то скорее всего я смогу пояснить в чем дело :)
- - - Добавлено - - -
Или даже так... Сделай такой тест: тот же скрипт, но без S - пусть на L 10000 остановится.
А потом уже руками S (хотя нет, сути наверное не изменит, но попробовать можно).
FT232R
- - - Добавлено - - -
Подключен по ттл
- - - Добавлено - - -
запустил тест мму
- - - Добавлено - - -Код:.RUN HX5:MMU.SAV
MMU FEATURES: 18-BIT
MOV #-1,@#MMR0 ;MMR0 = 160401
CLR @#MMR0 ;MMR0 = 000000
MOV #-1,@#KISAR0 ;KISAR0 = 177777
CLR @#KISAR0 ;KISAR0 = 000000
MOV #-1,@#KISDR0 ;KISDR0 = 077416
CLR @#KISDR0 ;KISDR0 = 000000
BIS #140000,@#PSW ;SET USER MODE
HALT ;TRAP TO 10
MOV #123456,@#20000 ;
MFPD @#20000 ;
MOV (SP)+,R0 ;R0=123456
MOV #77404,@#UISDR1 ;ACF=10
TST @#20000 ;
*** MMU FAULT AT 002312, MMR0=100143, MMR1=000000, MMR2=002306 ***
CLR @#20000 ;
*** MMU FAULT AT 002342, MMR0=100143, MMR1=000000, MMR2=002336 ***
после теста лампа ДИСП горит.
Подготовительный этап к изменениям RDTAP. Програмка для анализа ленты. Просто пишет структуру ленты, примерно так:Интересно посмотреть что будет на ленте с ошибками... Ну и также интересен тест MMU.Код:.RU TAN
MAX BLOCK SIZE: 20480 BYTES
80/3
EOF
4096/8192
EOF
80/2
EOF
80/2
EOF
4096/8192
EOF
80/2
EOF
EOF
EOF
.DIR MU:
19-Feb-2016
DU3 .BUP 8192 19-Feb-2016 DU4 .BUP 8192 19-Feb-2016
2 Files, 16384 Blocks
.BAC/DIR MU:
RT-11 BACKUP
19-Feb-2016 00:19
Saveset Section Blocks Date
DU3 .BUP 1 65535/65535 19-Feb-2016
DU4 .BUP 1 65535/65535 19-Feb-2016
2 Saveset sections, 131070 Blocks
.
- - - Добавлено - - -
Ага, уже вижу :)
- - - Добавлено - - -
Да, забыл написать - нужно назначить имя TAP проверяемому приводу - например AS MT1 TAP
- - - Добавлено - - -
Предлагаю попробовать такой тест: добавить в скрипт в конце (вместо L 10000, S):И проверить будет ли работать так :)Код:L 1000
D 5000
D 77001
D 77001
D 137
D 10000
L 1000
S
Хотя сейчас вспоминаю, вроде проблема была не только со скриптом?
Первая попавшаяся лента.
Дальше лента подергалась около одной точки и вывалились в останов.Код:
.ASS MT1 TAP
.RUN TAN.SAV
?KMON-F-File not found DK:TAN.SAV
.RUN HX5:TAN.SAV
MAX BLOCK SIZE: 20480 BYTES
80/42
EOF
560/2410
EOF
80/2
EOF
80/2
EOF
560/2076
EOF
80/2
EOF
EOF
Каталог ленты по dir
- - - Добавлено - - -Код:
.DIR MT1:
26-Jan-2016
BTSP61. 241 BTSP62. 207
2 Files, 448 Blocks
Загрузилось!!! Офигеть, спасибо огромное! Таки в чем было дело?