Просмотр полной версии : PDP-11 для интеловодов и мотороллеров
А случаем кто-нибудь сможет подсказать, где у этого процессора лапа №1?
http://savepic.net/9849919m.jpg (http://savepic.net/9849919.htm)
- - - Добавлено - - -
Предвидя, крышка не звонится ни на одну из крайних лап, где может быть Vss.
- - - Добавлено - - -
Судя по аналогичным боевым раскраскам, внизу справа первый вывод.
Дык наверняка, где точки стоят, там и первая нога. Косвенно это подтверждает картинка: https://media2.24aul.ru/imgs/56b03a1463d0d43a88cb12c1/ms1201-02-ms1201-01-1801vm1-1801vm2-kuplyu-dvk-1-dvk-2-2-6852098.jpg
PS: PDP.... Да, это не мотороллер. Это хуже, в плане вырвимозга. 10-ричная система.... Ад и погибель.
Восьмиричная, на шинах - инверсная. Восьмиричность ненавижу и не понимаю, несмотря на все попытки. Но что поделаешь...
- - - Добавлено - - -
Мне вот не дает покоя вопрос, а вываливающиеся из ассемблеров дампы, их надо инвертировать для заливки в ПЗУ, или они уже готовые? :)
Предвидя, крышка не звонится ни на одну из крайних лап, где может быть Vss.
После "прозвона" камешек лучше сдать на металл - т.к. это подложка, а диодиков пьяненькие зеленоградцы "забыли" пристроить...
- - - Добавлено - - -
Самая минимальная М-ЭВМ на 1801ВМ1 :
ПЗУ - 1801РР1
СОЗУ - 537РУ11 ( регистр управления СОЗУ - 177760 ). Для экстремально минимальной М-ЭВМ можно даже и обойтись без ОЗУ, но будут проблемы с векторными прерываниями и подпрограммами.
РНП 177716 ( сигнал выборки регистра выведен на проце - выв. 07 ). Для экстремально минимальной конфы РНП может отсуствовать - т.е. пуск будет с 000000 адреса.
По адресу, указанному в РНП ( старший байт ) для ВМ1 может располагаться первая выполняемая инструкция.
Порты - адрес 177714 выбирается самим процем на выв. 08, можно повесить парочку ИР23 с обвесом.
*
У 1801ВМ1 есть баг - его сигнал ответа МПИ должен быть привязан к тактовому импульсу ( стробирован ). Т.е. изменение сигнала RPLY в момент прихода CLC ведет к висяку.
*
Сигнал CLC должен быть 50% скважности, иначе - чрезмерное сокращение возможных тактовых частот, до 50% и более. При 50% скважности - до 5 мгц для экз. на фото выше ( группа "А" ).
*
Максимальная рабочая температура БИС К1801ВМ1 - не более 40 градусов цельсия ( изменения в ТУ ). Мощность потребления - 1.2 ватт. Максимально допустимая мощность, рассеиваемая корпусом проца ( без теплоотвода ) - 1 ватт.
ПЗУ - 1801РР1
Дальше можно не перечислять.
Мне больше импонирует схема отладочного модуля на РФах и 537РУ9 в качестве ОЗУ. Логику дешифровки сигналов вижу в CPLD.
Свой вариант, если рожу, то будет на 27С1024 и паре 61256.
Начальный пуск - не мудрствуя лукаво, с 0000h.
Не очень понятно пока обязательность прерываний, ибо не нужно в простой модели.
И сигнал REPLY... оно обязательно?
После "прозвона" камешек лучше сдать на металл
Вероятность гибели минимальна, если было несколько вольт и с ограничением тока.
Не очень понятно пока обязательность прерываний, ибо не нужно в простой модели.
И сигнал REPLY... оно обязательно?
Без прерываний - нет перреспектив для софта. Софтовые прерывания ( команды EMT / TRAP ) тоже используют ОЗУ.
Впрочем, в хвостах встроенного таймера ( адреса 177700 - 177712 ) есть 1 шт. слово, имеющее в доступе все 16 бит на чтение и запись, на него можно поставить указатель стека ( R6 ).
*
Сигнал RPLY указывает на завершение цикла обмена МПИ, обязателен для всех слов МПИ, кроме 177700 - 177716 . В указанных ячейках сигнал RPLY вырабатывает сам 1801ВМ1, и его ( сигнал ) можно наблюдать на его выводе RPLY ( выв. 39 ).
*
Для 1801ВМ1-6 мгц при задержках ИС памяти менее 100 нс сигнал RPLY можно выставлять сразу после прихода сигнала DIN .
Однако, такой фокус не проходит с 537РУ10Б - ни требуют некотрой задержки, в районе 100...150 нс.
*
С ГОСТ на МПИ можно ознакомится :
http://forum.pk-fpga.ru/viewtopic.php?f=20&t=5425
- - - Добавлено - - -
Вероятность гибели минимальна...
Если было больше ~0.75 в. Ток - 1 ма уже песец.
- - - Добавлено - - -
ПЗУ 1801РР1 с хранения можно купить у Ugoaleks г. П-Посад, в районе 600 руб,( см.Барахолку ). К-во допустимых циклов перезаписси - до 10 шт. по ТУ.
Реально - и до 20 отдельные экз. дотягивали. Вероятность успешной перезаписи - 90% ( по ТУ ).
*
Насчет первоначального пуска с 000000 адреса - это не самая лучшая идея для Простой М-ЭВМ, т.к. в адресах 000000 - 000377 располагаются вектора прерываний, используемые RT-11, да и кучей др. софта. Рекомендуемый официальный адрес пуска - 173000 (смайл) ( там рекомендуется располагать ПЗУ, или начальный кусок ПЗУ).
Без прерываний - нет перреспектив для софта.
Кто-то будет развивать софт для наколенной конструкции? :)
Если было больше ~0.75 в. Ток - 1 ма уже песец.
Значит - сожгу газовой горелкой, вопрос закрыли.
А пока - принимаем, что чип рабочий, мой ангел-хранитель очень хорош и смышлен.
ПЗУ 1801РР1 с хранения можно купить у Ugoaleks г. П-Посад, в районе 600 руб,( см.Барахолку ). К-во допустимых циклов перезаписси - до 10 шт. по ТУ.
Я вот прошу прощения, вы реально думаете, что я с нуля закончу писать и отлаживать софт в незнакомой архитектуре за 20 перезаписей ПЗУ за 600 рублей?
в адресах 000000 - 000377 располагаются вектора прерываний, используемые RT-11, да и кучей др. софта.
Так, еще раз... При чем тут РТ-11 и куча софта? Там будет сугубо мой Монитор, без РТ и прочих гостей. И ничего более. В таком виде адрес 0000 годится?
В таком виде адрес 0000 годится?
Для помигать лампочкой - да. И для УЧПУ ( жестко вмурованный софт без возможности загрузки и отладки стороннего софта ) - да.
Для малейшей перреспективы - нет. Пример УЧПУ - КМД ДВК на 091 ПЗУ.
- - - Добавлено - - -
Кстати, я сам делал разные переходники протоколов на ВМ1 с ППЗУ на 0 адресе - для экстремальной простоты.
Насчет приготовления ( написания ) софта - реально только в программе DESS.SAV и эмуляторе ДВК господина Патрона.
И потом выводить полученный продукт через плагин для Командира в ФС ИБМ ЭВМ, затем - либо в программатор, либо на телеграфный канал с новодельной М-ЭВМ.
Насчет ужаса от RT-11 - так получилось исторически, что это реально одна рабочая ОСь для всех полноценных DEC 16-бит М-ЭВМ . Да, разумеется, есть и Уникс, и еще куча всяких уродцев, но это типа как землянки/шалашики из веточек по сравнению с кирпичным домом с железобетонными перекрытиями.
*
Минимальная конфа М-ЭВМ для RT-11 :
1. ОЗУ адреса 000000 - 137777
2. Терминал телеграфный 1801ВП1-065 на адресах 177560. Рекомендуемая скорость для телеграфного обмена с ИБМ ЭВМ - 9600 Бод ( или шустрее ).
Для минимизации потерь времени ( схемотехника ) целесообразно сразу пристраивать МАХ232 для согласования с RS-232 ИБМ ЭВМ.
3. Пусковое ПЗУ - 140000 - 157777.
Данная конфа позволит загрузить RT-11 через ИБМ ЭВМ.
Типовое устройство СОЗУ - см. конструктив :
http://zx-pk.ru/threads/27820-blok-sozu-kngmd-bk0010-11-11m-kmdrp-1.html
( Вообще, в период 1985-1992 г. нечто ну очень похожее использовалось для отладки софта ( как эмуль ПЗУ ) на БК0010/11. )
С интересом читаю посты MM, но понимаю в них только предлоги. Но интересно, да.
- - - Добавлено - - -
Вот он пишет: "Насчет приготовления ( написания ) софта - реально только в программе DESS.SAV и эмуляторе ДВК господина Патрона." - это как так? Что, этот проц не опкоды что-ли выполняет? Да не может такого быть. Есть опкоды - есть ассемблер. Есть ассемблер - есть кросс-ассемблер, пускай и восьмеричный (фак мой мозг). При чем здесь какой-то DESS и эмулятор Патрона?
Я тут брожу вокруг ассемблера от vinxru. Он самопальный, не все каноны в нем приколочены, но он вроде как шестнадцатиричный.
Для начала - самый правильный бульдозер. Написание/компиляция - на ПЦ, отладка возможна в симуляторе.
Есть примеры.
Так же не понимаю всех этих РР1 и прочих микросхем. Проц TTL - TTL, ну и в чем тогда проблема цеплять к нему флешки типа 28f010 и память статику, хоть кеш от 486 мамок? Нагрузочная способность? Ну буферами АП6 обвешаться..
У РР1 интерфейс уже расчитан на шину МПИ, мультиплексированную адрес/данные. Там и сигналы руления тоже свои. Для ширпотреба типа 27- 28- 29- нуно немножко шаманского искусства, включая регистры-защелки адресов и прочую лабудень. Подобное я уже проходил на i8008, там тоже казалось всё непроходимой тундрой, но ведь всё получилось.
Есть опкоды - есть ассемблер. Есть ассемблер - есть кросс-ассемблер, пускай и восьмеричный (фак мой мозг). При чем здесь какой-то DESS и эмулятор Патрона?
Т.к. система команд DEC-16 бит была в 1970-е флагманом отрасли, они не заморачивались патентными проблемами и предусмотрели возможность писать простые ( да и средней сложности ) программы непосредственно в восьмеричном виде, циферками. Абсолютно лучший редактор восьмеричных файлов - DESS. Да, у него есть недостатки, или скорее чуть ограниченная функциональность. Во всяком случае ассемблер и дизассемблер там встроенные ( хоть и несколько "угловатые" ).
Отмечу, что есть типа как нечто, похожее на монитор для экстремально простых М-ЭВМ - отладчик "Грот". Длина - 010000, перемещаемый по адресам, бывают варианты и для ДВК ( порт терминала 177560 ). Содержит средство работы с ассемблером (дешифрация команд прямо в диалоге ). Его можно доработать и для размещения в ППЗУ, начиная с 001000 адреса и выше, до 170000 включительно.
Родной ассемблер MACRO.SAV несколько сложноват для начинающих, но с помощью практикующих кодеров вполне может справится с практически любыми задачами, в т.ч. "миганием лампочкой". Отмечу, что по умолчанию MACRO готовит файлы в формате RT-11 ( т.е. прицепляет к файлам 0 блок с адресами 000000-000777), но это возможно обойти.
*
Насчет эмулятора господина Патрона - это нынче базовое средство подготовки софта для ДВК-БК-ЧПУ DEC-16 бит, аналогов и заменителей - нет.
Как экстремальный вариант замены - живая БК11М или ДВК-3. Все попытки кодить в MACRO непосредственно в W NT - это не более, чем профанация некомпетентных лиц.
- - - Добавлено - - -
Простое мигание лампочкой на порте 177714 (0 бит ) :
012737 000001 177714 переслать "1" в адрес 177714
077001 просчитать цикл 65536 ( 177777 ) раз на свой адрес по регистру проца R0 ( пока R0 не станет = 0 )
012737 000000 177714 переслать "0" в адрес 177714
077001
000767 перейти на ( смещение слов ) назад.
Программа перемещаема и может работать с 000000 адреса, даже в ПЗУ.
shurik-ua
06.09.2017, 14:43
У РР1 интерфейс уже расчитан на шину МПИ, мультиплексированную адрес/данные. Там и сигналы руления тоже свои. Для ширпотреба типа 27- 28- 29- нуно немножко шаманского искусства, включая регистры-защелки адресов и прочую лабудень. Подобное я уже проходил на i8008, там тоже казалось всё непроходимой тундрой, но ведь всё получилось.
По идее эмулятор этой микросхемы не так сложно сделать - одна жирная 28ххх или 29ххх, один буфер и немного логики - но зато вероятность записи не 90-95%, а 100% и кол-во циклов не 10-20 а 10000 )
По идее эмулятор этой микросхемы не так сложно сделать
Тут проще не мулятор мулировать, а "прогнУть этот мир"(С)Макаревич - обвесить процессор по кругу регистрами и комбинаторной логикой (хоть на той же ГАЛке) для преобразования шин в стандарт интел. Тогда можно цеплять чо хошь.
- - - Добавлено - - -
УПД. Господа, знающие ресурсы по PDP, нет ли где валяющихся эпюр сигналов на лапах процессора во время его работы? Я безуспешно пытался найти такое. Для всех процессоров интела или моторолы такое есть в даташитах. Но для 1801ВМ1 даже страшно спрашивать про даташит, слово-то буржуйское, проц - наш, для них это не писалось. А чьим примерно клоном он является - я тоже так и не понял...
CodeMaster
06.09.2017, 15:26
нет ли где валяющихся эпюр сигналов на лапах процессора во время его работы?
Загляни в тему Vslav по реверсингу этого проца, он там сейчас как раз сравнивает ногодрыганье FPGA-модели и реального проца.
даже страшно спрашивать про даташит
Там вроде и это нецензурное слово пробегало.
- - - Добавлено - - -
Я вот прошу прощения, вы реально думаете, что я с нуля закончу писать и отлаживать софт в незнакомой архитектуре за 20 перезаписей ПЗУ за 600 рублей?
Я кстати недавно встречал у себя платки РЕмулятора Vslav, если хочешь могу выслать. Но он не ламповый, на МК сделан, ты в принципе и так МК можешь без переходника интегрировать в свой проект, инфа по нему вроде открытая.
TomaTLAB
06.09.2017, 15:38
даже страшно спрашивать про даташит У нас это называлось "справочный листок", если кратко и, кажется, что-то вроде "руководящего документа" с подробной информацией.
Господа, знающие ресурсы по PDP, нет ли где валяющихся эпюр сигналов на лапах процессора во время его работы? Я безуспешно пытался найти такое. Для всех процессоров интела или моторолы такое есть в даташитах. Но для 1801ВМ1 даже страшно спрашивать про даташит, слово-то буржуйское, проц - наш, для них это не писалось. А чьим примерно клоном он является - я тоже так и не понял...
Можно руководствоваться ТО М-ЭВМ МС1201.02 в части диаграмм МПИ. Или даже ТО 1801ВМ2 с косметическими отличеями в части выборки РНП.
*
Т.к. изначально 1801ВМ1 проектировался как оружейный проц, ТО дня него до сих пор "гостайна". Выражаю огромную благодарность Вслав г. Киев за реверс ИС.
*
Прямого аналога 1801ВМ1 нет. Есть некотрая платка проца, типа как М2 ( не принимая во внимание встроенное ДОЗУ ) (Э-60) , приблизительным аналогом которой и является ВМ1.
А платка М2 имеет и родной прототип - гуглится. Кстати, вроде как Евгений Репьюк г.Москва нечто похожее (оригинал DEC ) выставлял на продажу этим летом.
Есть рабочие проекты для altera de0 тут http://u.zeptobars.ru/yuot/1801/MOD/ может по исходнику сможешь понять как этот чертов QBUS работает. Есть еще куча советских книг по микропроцессорным комплектам во многих из них есть диаграммы QBUS, даже в журнале МПСС есть (там где описание этих ВМ1,ВМ2,ВМ3). Есть схемы модулей памяти от ММ. Есть методичка от DEC где описанны спецовские микрухи для работы с QBUS и как они пашут, там много диаграмм, называется DEC CHIP KIT. Есть проект на sannata http://www.phantom.sannata.ru/forum/index.php?t=22165 (https://github.com/1801VM3/1801VM3-Board)
Еще тема есть на nedopc http://www.nedopc.org/forum/viewtopic.php?p=117191#p117191
Потратив день, накопал много интересного про МПИ.
Собственно, "переформатировать" сигналы в привычный вид совсем несложно. Для этого даже есть специальная микросхема 588ВГ2, ее подробное описание доступно.
И там, Карл(С), используются аналоговые RC-цепочки для задержки формирования сигналов...... етидрёный хряп.... утро 21 века...
В общем, можно. Но тут в полный рост встает вопрос инверсии шины адреса/данных.
По шине сигналы летают в инверсном виде. В обоих направлениях, разумеется. и тут придется не только инвертировать байты данных в "ширпотребных" ПЗУ, но еще и адреса выворачивать наизнанку, ибо адрес прилетит тоже инверсный. Задача конвертирования в общем-то несложная, можно замутить на Дельфях. Но сам колхоз... это прям Камасутра какая-то :)
Error404
06.09.2017, 21:54
но еще и адреса выворачивать наизнанку, ибо адрес прилетит тоже инверсный. Задача конвертирования в общем-то несложная, можно замутить на Дельфях. Но сам колхоз... это прям Камасутра какая-то :)
Сделай адаптер для программатора с тремя ЛН1. :)
Или двумя АП16
Сделай адаптер для программатора с тремя ЛН1
Чорд.... Интересная идея... Пускай даже нужно завернуть 16+16=32 разряда...
- - - Добавлено - - -
Не. А как программатор будет сверять прошивку? :)
CodeMaster
06.09.2017, 22:52
Не. А как программатор будет сверять прошивку?
Поверишь на слово (первое слово проверишь руками на инверсию).
Но воопче, в софте Willem'а по крайне мере, есть инверсия битов прошивки. Насчёт инверсии адресов, не уверен, можно в WinHEX посмотреть.
OrionExt
06.09.2017, 23:55
Издевайтесь, издевайтесь над самым засекреченным процессором советской промышленности (люди под грифом секретность 25 лет ходят, это тяжко):)
Издевайтесь, издевайтесь над самым засекреченным процессором советской промышленности (люди под грифом секретность 25 лет ходят, это тяжко):)
он боится 16 битной шины моты, к гадалке не ходи. :)
Если дело в инверсии - то конечно набросать простую прогу, которая будет последний байт переставлять в первый и тд. Ну и инвертировать заодно байты. Могу набросать, если надо, там дел на 5 минут. Шить как обычно. Для RAM вообще побоку, инверсия - не инверсия. Хоть вообще ША в перемешку - какая разница? Если к рам никто другой кроме камня не обращается. Я бы не делал аппаратную инверсию. Только бы демультиплексировал ША и ШД и на этом все.
PS: Чот не густо под камень ассемблеров, удивлен....
Подсказываю - 537РУ8 может работать без фиксации адреса регистрами, т.е. можно в слаботочной МПИ закоротить, например, А0-А7 с Д0-Д7.
Выборку адреса МПИ SYNC подавать на вход CE РУшки, сигнал DOUT МПИ - на WE РУшки, сигнал DIN МПИ - на ОЕ РУшки.
Селекцию по группам адресов массива - выполнять, коммутируя DIN и DOUT. Такой способ применения 537РУ8 организован в полуплате ДВК КМД на 255 ПЗУ
http://storage4.static.itmages.ru/i/17/0907/s_1504769538_7336009_d41d8cd98f.jpg (https://itmages.ru/image/view/6076148/d41d8cd9)
( Права на фото принадлежат владельцу полуплаты , г. Ростов-на-Дону ).
Подсказываю - 537РУ8 может работать без фиксации адреса регистрами
Это прекрасно, но есть еще и ПЗУ и проты на шине. А РУхи - мелковаты по сути.
асчёт инверсии адресов, не уверен, можно в WinHEX посмотреть.
Веня Хексов инвертирует биты данных. Но адреса - не умеет.
CodeMaster
07.09.2017, 12:52
А РУхи - мелковаты по сути.
4КБ тебе мало, сколько же тебе надо ОЗУ? А ты не смотрел проект РЕмулятора? Может на нём можно и РУмулятор сделать.
проты на шине
Пример организации порта 177714 или 177716 с использованием вывода SEL № 1801ВМ1 :
http://storage5.static.itmages.ru/i/17/0907/h_1504783498_5168313_4883057d88.jpg (https://itmages.ru/image/view/6077085/4883057d)
Для минимизации Э3 можно нижнюю ИРку сменить на ИР22 или АП6.
Для выборки массива КР580ВВ55А с ориентировочными адресами 177620-177636 можно использовать пример из контроллера УТК - 3 :
http://storage6.static.itmages.ru/i/16/0614/s_1465923473_7756036_9f5bb956a4.jpg (https://itmages.ru/image/view/4418043/9f5bb956)http://storage6.static.itmages.ru/i/16/0614/s_1465923557_8182014_5e2c41fc43.jpg (https://itmages.ru/image/view/4418053/5e2c41fc)
Почему именно эти адреса ?
Ответ :
Для некотрой совместимости железки с массивом М-ЭВМ на 1801-й и 1806-й серии.
Если не применять 1801ВМ3, то можно использовать и адреса 177600 - 177656, т.к. в ВМ3 по этим адресам сидят регистры ДП.
В 177660-177666 сидят регистры БК-0011М, а диапазон 177000 и выше равномерно занят :
177700 - 177716 - 1801ВМ1
177720 - 177756 - IDE ДВК ( всё еще проектируемое в части дров под RT-11 )
Выше - регистры проца J11 ( 1831ВМ1 ).
вообще любой терминальный Бейсик
Если для ДВК МС1201.01 на 1801ВМ1 - есть ПЗУ-Бейсик , погуглите. Обязательны порты 177560 ( терминал ), адрес ( дампа ) ПЗУ - 120000 или 140000 (???), номер прошивки - 013 ( ??? ).
Обязательны порты 177560 ( терминал )
Напрягся... Остатки волос встали дыбом....
Программерский калькулятор. 177560. octal->hex. FF70h.
Фффух... это уже другое дело. Сразу всё становится понятным, мир - светлым и радостным :)
- - - Добавлено - - -
адрес ( дампа ) ПЗУ - 120000 или 140000 (???), номер прошивки - 013 ( ??? ).
Когда ПЗУ находится "где-то там", а вектор сброса - в нулевых адресах, как в данном случае происходит старт? Подстановка теневого ПЗУ?
Кстати, уважаемый господин Патрон добавил в DESS в эмуле ДВК Хексы. Ценой трапования на ассемблере...
Т.е. надо иметь оба ДЕССа - V5.00 и из эмуля.
- - - Добавлено - - -
Когда ПЗУ находится "где-то там", а вектор сброса - в нулевых адресах, как в данном случае происходит старт? Подстановка теневого ПЗУ?
В старшем байте порта 177716 надо разместить адрес первой исполняемой инструкции ( минимальный шаг - 000400 ), и старт будет именно с неё.
Фокус с жонглированием ПЗУ применяется в 1801ВМ3, где мода пульта начинается с 000000 адрес без вариантов, но в нем есть и режим старта с 24-го вектора ( "авария питания" ) моды пользователя и даже с 173000 адреса пользователя.
- - - Добавлено - - -
Старт с ПЗУ с 000000 адреса в 1801ВМ1 настоятельно не рекомендуется, либо такое ПЗУ надо "прятать в тень". Команды работы с тень в 1801ВМ1 отсуствуют, в отличии от 1801ВМ2.
В старшем байте порта 177716 надо разместить адрес первой исполняемой инструкции
Технически это делается "фиксированным" содержимым порта на чтение?
Младший байт при чтении может быть произвольным? тогда имеем поле в 256 байт, откуда может быть взята первая инструкция?
Это мне сильно напоминает IM2 на Z80 при нестабильной шине. Там тоже "накрывали поляну" в 256 байт :)
Младший байт при чтении может быть произвольным? тогда имеем поле в 256 байт, откуда может быть взята первая инструкция?
Нет, адрес старта только с шагом в 000400 ( 256 байт ). Младший байт 177716 при старте - ССП, рекомендуется значение 000200 ( 128 дес. ), но в нормально сделанной М-ЭВМ, где прерывания постоянно не долбят проц, младший байт можно использовать на усмотрение пользователя. При этом желательно в первой инструкции стартового ПЗУ указать ССП командой :
106427 000340 ( Установить ССП на максимальный приоритет проца )
Технически это делается "фиксированным" содержимым порта на чтение?
Младший байт при чтении может быть произвольным? тогда имеем поле в 256 байт, откуда может быть взята первая инструкция?
Это мне сильно напоминает IM2 на Z80 при нестабильной шине. Там тоже "накрывали поляну" в 256 байт :)
ММ написал: "( минимальный шаг - 000400 )" это оно и есть, насамделе 8-миричка отличается от 16-рички токо тем что один знак кодирует не 4 разряда а 3, вот и все. 400 => 100 000 000 => 1 0000 0000 => 0x100 => 256
ССП = это PSW, советую поставить на свой комп это - http://retrocmp.com/tools/pdp11gui (виртуальный pdp11 и графический tool для работы с реальным pdp11, если в самодельном компе планируется сделать ПУЛЬТъ то эта штука с ним будет работать как с родным pdp11)
ММ написал: "( минимальный шаг - 000400 )" это оно и есть, насамделе 8-миричка отличается от 16-рички токо тем что один знак кодирует не 4 разряда а 3, вот и все. 400 => 100 000 000 => 1 0000 0000 => 0x100 => 256
Именно это я и расписал. И ёмкость байта в любой системе счисления - таки 256 байт.
- - - Добавлено - - -
Команды работы с тень в 1801ВМ1 отсуствуют, в отличии от 1801ВМ2.
Команды? Кучеряво живете...
В Специалисте/Орионе просто стоит триггер, отлавливающий обращение по верхним адресам и отключающий после этого доступ к ПЗУ с нулевых. Всё это достаточно просто. Процессор стартует с нуля, читает из ПЗУ команду JMP F800 и оказывается... там и оказывается, и ПЗУ вместе с ним :)
Error404
07.09.2017, 16:17
Не. А как программатор будет сверять прошивку? :)
На адрес любые инверторы, на данные - 1533АП16 (двунаправленный буфер с Z, такой же как АП6, но с инверсией). Как-то так.
Хотя данные можно и не инвертировать, ведь прошивку можно заливать уже инверсную (и с ней же и сверять). Тупо целый файл проинвертировать - это же элементарно (когда уже не надо будет в нем переставлять байты из-за инверсного адреса). Таких утилит уже готовых - вагон, например популярный hiew умеет ксорить содержимое файла (а xor 0FFh и есть инверсия).
Команды? Кучеряво живете...
В Специалисте/Орионе просто стоит триггер, отлавливающий обращение по верхним адресам и отключающий после этого доступ к ПЗУ с нулевых. Всё это достаточно просто. Процессор стартует с нуля, читает из ПЗУ команду JMP F800 и оказывается... там и оказывается, и ПЗУ вместе с ним :)
Изначально pdp11 компы шли с таким таблом из лампочек и переключателей (programmers console, а по нашему ПУЛЬТъ!), через сие табло можно остановить проц и смотреть всю память, ну а так как регистры проца видны были как ячейки памяти то и регистры тоже можно смотреть\менять. Потом это табло загнали внутрь процессора в виде микрокода который работает с системным SLU 177560 (типа ком порт). В Зеленограде решили что ПУЛЬТъ заганять внутрь процессора сильно дорого и вывели спец сигналы наружу которые показуют в каком режиме процессор работает и с ними реализовали ПУЛЬТъ во внешнем ПУЛЬТъ-ПЗУ\ОЗУ. Из режима выполнения обычной проги адресное пространство ПУЛЬТъ-а никак не видно и не доступно, но если дать сигнал HALT то проц как и оригинальные процы от DEC переходит на выполнение ПУЛЬТъ-а... ну и в ПУЛЬТъ-е можно менять значение регистров и памяти... тот ПУЛЬТъ что внутри проца в виде микрокода буржуи называют ODT (но еще есть и дебаг который тоже ODT называют, но он тут непричем), а тот ПУЛЬТъ что в виде табло с лампочками - programmers console.
Спецхран ПЗУ, 100% формат, пригодный для просмотра программой DESS в эмуле ДВК господина Патрон.
http://storage4.static.itmages.ru/i/17/0907/h_1504793665_4355948_752bffd044.jpg (https://itmages.ru/image/view/6077699/752bffd0)
( Рисунок ! ).
Состав :
http://storage9.static.itmages.ru/i/17/0907/h_1504793853_6031041_b74510e28b.jpg (https://itmages.ru/image/view/6077717/b74510e2)
Где 000 - от МС1201.00 на 1801ВМ1, вероятно даже на 140000 адресе ( ??? 4 кбайт - это какой-то подвох ), для работы требует некотое к-во участков ОЗУ в адресах 160000 - 177776, отключаемых программно.
Видимо, ПЗУ 000 на адрес 160000, используется младшая половинка 160000-167777. ( ??? )
Где 000 - от МС1201.00 на 1801ВМ1, вероятно даже на 140000 адресе ( ??? 4 кбайт - это какой-то подвох ), для работы требует некотое к-во участков ОЗУ в адресах 160000 - 177776, отключаемых программно.
http://fincoins.spb.ru/oldpc/re2/1801PE2.html тут сказанно что на 140000 бейсик (012 или 013) сидел в 1201.0; там же говорится о том что 031 и 054 тоже подходят
Потыкал немного мышкой в дельфи, для конвертации прошивки (инверсия адресов, данных):
62163
Хз, может пригодится...
Вот сообщения от Гуру ДВК господина Патрона , о ПЗУ 1801РЕ1 № 000, располагающееся с адреса 160000 ( в МС1201.01 ) :
Во всех режимах по адресам: 0177600..0177677 - видно ОЗУ, по адресам: 0173000..0173777 - видно ПЗУ 000 по смещению 013000..013777.
Если SEL1_BIT_3 == 0 и SEL1_BIT_2 == 0 - по всем остальным адресам видна обычная шина МПИ.
Если SEL1_BIT_3 == 1 - при любом значении SEL1_BIT_2 - по адресам 0160000..0172777 - видно начало ПЗУ 000 по смещению 000000..012777.
Если SEL1_BIT_3 == 0 и SEL1_BIT_2 == 1 - по адресам 0160000..0163777 - видно начало ПЗУ 000 по смещению 000000..003777.
При включении питания: SEL1_BIT_3 = 0 ; SEL1_BIT_2 = 1.
...
Если на шину МПИ повесить ОЗУ по адресам 0160000..0167777 - ПЗУ 000 без проблем загружает RT-11 в эти адреса и обеспечивает нормальное взаимодействие пультового отладчика с адресами в этом диапазоне.
*
Т.е. надобность в ППЗУ как отпадает - достаточно установить 000 ПЗУ и сделать селектор адресов СОЗУ в зависимости от состояния регистра 177716 ( системный переключатель режима пульта по записи , ВМ1 самостоятельно обслуживает этот регистр по записи при входе в пульт и в др. искл. режимах ).
Т.е. в итоге получится нечто типа МС1201.01 на СОЗУ - можно грузить RT-11 через порт терминала 177560 ( из ИБМ ЭВМ )- см. разработки господина Патрона.
*
Для пристройки ПЗУ-Бейсика 013 ( или 012 ? ) следует предусмотреть возможность отключить СОЗУ в адресах 140000-157776.
- - - Добавлено - - -
Начало 000 ПЗУ, адрес 160000 , слова :
http://storage7.static.itmages.ru/i/17/0907/h_1504807023_5016641_39c1d5d11f.jpg (https://itmages.ru/image/view/6078344/39c1d5d1)
*
То же самое, Хексы :
http://storage8.static.itmages.ru/i/17/0907/h_1504807044_6066037_5216b3db0f.jpg (https://itmages.ru/image/view/6078345/5216b3db)
*
И в виде байтов :
http://storage8.static.itmages.ru/i/17/0907/h_1504807118_8093238_54b279a03a.jpg (https://itmages.ru/image/view/6078353/54b279a0)
*
Посмотрел 054 ПЗУ - начало идентичное.
*
Биты мл. байта 177716 должны быть доступны по чтению и по записи.
Хз, может пригодится...
Эх, опередил, пока я собирался :)
Добавь фильтр на расширения, .bin и .rom. Другие вряд ли пригодятся.
- - - Добавлено - - -
Изначально pdp11 компы шли с таким таблом из лампочек и переключателей
Да тут вообще своя философия и жаргон.
Не зря тут упоминали, что кроме предлогов вообще мало что понятно.
Наверное, надо было создать книгу "PDP для полных интеловодов".
- - - Добавлено - - -
То, что ПультЪ - это некий обработчик прерывания, типа Теневого Монитора на Скорпионе, я смутно догадываюсь. Что такое "ПЗУ 000 по смещению 013000..013777" - нифига не розумею.
Тоесть, все слова по отдельности - понятны, но на этом всё и заканчивается... Примерно как в анекдоте - "-Петька, приборы? -Двадцать! -Что двадцать?? -А что приборы???"(С)
Ну и далее по списку.
Что происходит в процессоре после подачи питания? Куда он обращается, по какому адресу? В основное ОЗУ, или там еще источников дофига? Или он не фетчит опкод, а читает вектор? А откуда он читает вектор? А откуда этот вектор берется в том источнике? Ну и далее. Интеловоды и мотороллеры - они ж как дети. Ну, или как ААА в лучшие свои времена.
- - - Добавлено - - -
Судя по всему, часть темы про PDP мы потом отчленим в отдельную тему.
Что происходит в процессоре после подачи питания?
После Сброса сначала снимается сигнал DCLO ( Авария постоянного тока ), потом снимается сигнал ACLO ( Авария переменного тока ) и происходит запрос РНП на предмет адреса первой исполняемой команды. При чтении РНП = 160000 первая исполняемая команда будет в адресе 160000, если, предположим, там будет ПЗУ 1801РЕ1-000, это соотвествует числу "000406" - см. скриншоты дампа ПЗУ в DESSе. Что делает команда "000406" - внизу дампа в окоше DESS есть расшифровка в MACRO-11 - это переход на 6 слов вперед, на адрес 160016 ...
Выполнить схему запуска DCLO-ACLO можно из УТК-3 на 1564ТЛ2 - всего 4 элемента с обвесом. Не забываем на стартовый кондюк приделать кнопку "Сбросъ".
Что происходит в процессоре после подачи питания?
Для примера можно описать события, происходящие в древнем MC6800P после подачи питания.
После замысловатых и бессмысленных метаний сигналов по мозгам процессора, выдачи нелепых данных и адресов, буря наконец затихает.
Процессор осмысленно читает вектор из адреса FFFC-FFFD, и бежит читать опкод с прочитанного адреса. Отсюда видно, что ПЗУ должно размещаться на самой вершине адресного пространства.
Этим действом он выгодно отличается от 8080/Z80, которые начинают свою жизнедеятельность просто и незатейливо - читают опкод с адреса 0000 и топают далее. Для этих процессоров ПЗУ должно быть в нижних адресах, хотя бы поначалу.
- - - Добавлено - - -
и происходит запрос РНП
РНП? Регистр Начального Пуска? Он находится где?
Или я неправильно понимаю, и происходит просто старт с адреса о160000?
Или по этому адресу железно сидит Регистр?
Регистр Начального Пуска? Он находится где?
Выборка сигналом "SEL 1" выв.07 ИС 1801ВМ1. Активный - уровень 0 в. Сигнал ответа не требуется - т.к. вырабатывается самим 1801ВМ1 выв.39 ( RPLY ).
Длительность сигнала - в районе 2 тактов ВМ1. Схема подключения регистров данных :
http://storage5.static.itmages.ru/i/17/0907/h_1504783498_5168313_4883057d88.jpg (https://itmages.ru/image/view/6077085/4883057d)
CodeMaster
07.09.2017, 23:22
РНП? Регистр Начального Пуска? Он находится где?
Или я неправильно понимаю, и происходит просто старт с адреса о160000?
Или по этому адресу железно сидит Регистр?
Четырьмя страницами ранее (http://zx-pk.ru/threads/25682-samodelnyj-kompyuter-na-z80-i-ne-tolko.html?p=927057&viewfull=1#post927057) и чуть дальше. И вот тут (http://zx-pk.ru/threads/17284-km1801vm2-tekhnicheskoe-opisanie.html?p=685818&viewfull=1#post685818), там сравнение пуска ВМ1 и ВМ2, но после тщательного раскуривания думаю разберёшься ;-)
Либо ты обеспечиваешь железную возможность ВМ1 прочитать РНП по адресу 177716 при выставлении SEL и получаешь свободу (относительную) в размещении ПЗУ (а с ней и возможность заюзать стандартные мониторы и ПЗУ-Бейсики). Либо ВМ начнёт работу с 000 и ты сам должен придумать как ему потом освободить 000-377 под стек.
HardWareMan
08.09.2017, 06:25
MM, у вас ус отклеился. :) Соединения не соединены.
То, что ПультЪ - это некий обработчик прерывания, типа Теневого Монитора на Скорпионе, я смутно догадываюсь. Что такое "ПЗУ 000 по смещению 013000..013777" - нифига не розумею.
Насамделе тут вопрос важный! он политический! и требует понимания. Без ПультЪ-а это поделие не будет никаким pdp11 ниразу!!! (по естественной причине - нет оригинальных DEC процессоров без ПультЪ-а). Потому это нельзя считать дополнительной приблудой типа "Теневого Монитора на Скорпионе". В Зеленограде чуваки четко знали что главное применение данного проца будет никакой не клон pdp11 (которыми занимались в Воронеже) а как говорит ММ: "железо для убийства американских граждан". А потому ПультЪ можно сделать как дополнительную опцию которая будет реализована в 1% реальных железяк-клонов pdp11. А в ракетах и бомбах никакой ПультЪ ненужен, там этот процессор работает как обычный микроконтроллер с системой команд pdp11. Если честно, то в таком применении он никакой не конкурент intel-у (i8080,i8048,i8051) так как тормозит дико и усложняет схемотехнику.
"ПЗУ 000 по смещению 013000..013777" - это значит что сама ПЗУ-ха к1801ре2-000 подрублена по адресу 160000... НО первые 13000 могут быть "отключенны", но при этом же с адреса 173000 остаток ее (1000 байт) таки видно!!!
OrionExt
09.09.2017, 15:21
Вот досада. Тики православного одноплатного коптьютера не выйдет. Только разве что инвалид без рук и ног и очень ограниченный умом и сообразительностью.
Не мышонок, не лягушка, а неведома зверушка (с).
Вот досада. Тики православного одноплатного коптьютера не выйдет. Только разве что инвалид без рук и ног и очень ограниченный умом и сообразительностью.
Не мышонок, не лягушка, а неведома зверушка (с).
Не поверишь, но за последние 10 лет на форуме, не смотря на всеобщее ожидание этого самого желаемого одноплатного, так никто и не сделал его. Да были УТК, реплики оригинальных БК и мс1201.04, и даже самоделки на ВМ3... но вот такого, простого (без 3.3v цепей), всем доступного, понятного, который бы мог работать с модумем проца по выбору вм1, вм2, вм3, с модулем памяти от 64кб до 4мб, с дисками и видяхами... НЕБЫЛО и НЕТ.
OrionExt
09.09.2017, 15:45
Такая архитектура заложена, что уж с этим поделать. Взлетает только при не малой обвязке (добавлю не на что не похожей).
- - - Добавлено - - -
Моторола и Интел курят в стронке:)
CodeMaster
09.09.2017, 16:10
Без ПультЪ-а это поделие не будет никаким pdp11 ниразу!!!
А никто (и конкретно Евгений) по PDP-11 и не заикался, на i8086 он тоже не XT сделал.
А вот куда было бы интересно внедрить ПультЪ, для придания истинной PDPшности, так это в МК 85 (который у Жени есть ;-)
OrionExt
09.09.2017, 16:19
Не поверишь, но за последние 10 лет на форуме, не смотря на всеобщее ожидание этого самого желаемого одноплатного, так никто и не сделал его. Да были УТК, реплики оригинальных БК и мс1201.04, и даже самоделки на ВМ3... но вот такого, простого (без 3.3v цепей), всем доступного, понятного, который бы мог работать с модумем проца по выбору вм1, вм2, вм3, с модулем памяти от 64кб до 4мб, с дисками и видяхами... НЕБЫЛО и НЕТ.
А никто (и конкретно Евгений) по PDP-11 и не заикался, на i8086 он тоже не XT сделал.
А так то да. Повторюсь. Не мышонок, не лягушка, а неведома зверушка (с).
Может, послушаем автора Евгения;)
Может, послушаем автора Евгения
Эээээ.... мдааааа..... млиииин....
(Взял банку холодного пЫва и пошел плавать в ванной).
Как показывает мой опыт, эту "неведому зверюшку" я таки соберу. Не с первого, так со второго или третьего наскока.
Так было с 8008, с 8086. Простой одноплатный МК. Если хватит понимания происходящего - то с бейсиком. Про ПУЛЬТЪ я молчу. Мне оно не нуно, хоть это и не православно будет.
...Про ПУЛЬТЪ я молчу...
Пульт в МС1201.01 имеет всего 1 выключатель - "Останов", сигнал подается на выв. 31 "IRQ1" 1801ВМ1. При напряжении +5в. на этом выводе проц может быть в режиме пульта или режиме программы пользователя, определяется состоянием бит РНП, отвечающих за отображение ПЗУ в адресах 160000---.
При уровне 0в. на выв. 31 проц может находится только в режиме пульта, т.е. исполнение программы пользователя невозможно, если только не по 1 шт. команде с возвратом в пульт ( "шаги" команды пульта " P " ) Индикацию режима пульта ( крайне правую лампочку в ДВК-2 ) брать из регистра 177716 ( РНП ), когда М-ЭВМ находится в пульте - на канале "HLTM" МПИ присуствует уровень 0в.
*
Еще о прерываниях.
выв.32 "EVNT" - динамический, в момент перепада с +5в. на 0в, возникает прерывание по 100 вектору ( таймер ). Можно заблокировать программно, поставив приоритет процессора в состояние 000200 ( 128 дес. ) ( а может даже и в меньший приоритет ??? ). Команда установки приоритета :
106427 000200 - установить ССП в состояние "000200" ( наивысший приоритет процессора ).
*
Выв.33 "IRQ3" - прерывание по 270 вектору, условия - см. выв.32. В исполнении 1801ВМ1Г сигнал прерывания может выдавать и встроенный таймер процессора.
*
Выв.35 "VIRQ" - векторные прерывания от ИС МПИ. Этот момент лучше прописан в ТО 1801ВМ2.
Ребят, пожалейте интеловодов и мотороловодов, отпочкуйте в отдельную тему. А то крыша уже реально поехала ;)))) А Ewgeny7 особый респект за упорство!
отпочкуйте в отдельную тему.
http://savepic.net/9877036.jpg
на всякий случай
плюх >
http://archive.pdp-11.org.ru/BIBLIOTEKA/DVKTXT/macro11/
http://archive.pdp-11.org.ru/ukdwk_archive/dwkwebcomplekt/dwkrom/
Эээээ.... мдааааа..... млиииин.... Про ПУЛЬТЪ я молчу. Мне оно не нуно, хоть это и не православно будет.
Эх! нет таки понимания, что оно такое pdp11 и что есть важным а что ерундой. Думаю что "бэйсик прикрутить к ВМ1" по усилиям будет тоже самое что и ПУЛЬТъ (который дает все и сразу, включая и этот самый бэйсик). Вот человек запилил:
http://zx-pk.ru/threads/23978-tsifrovaya-arkheologiya-1801-i-vse-vse-vse.html?p=927334&viewfull=1#post927334
http://zx-pk.ru/threads/23978-tsifrovaya-arkheologiya-1801-i-vse-vse-vse.html?p=927644&viewfull=1#post927644
CodeMaster
11.09.2017, 09:17
Эх! нет таки понимания, что оно такое pdp11
bigral, ты никак не успокоишься ;-) A074MO пилит PDP-11 на FPGA, Ewgeny7 пилит "Бейсик на ВМ1". Вот нафига ему ПультЪ в принципе, кроме возможности наклеить стикер "like PDP-11" на этот комп?
TomaTLAB
11.09.2017, 11:21
Да так почти с каждым поделием Евгения было, кто нибудь обязательно разговор за "совместимость" начинал.
Хотя, вроде, он сразу сказал, что "совместимость" ему не нужна в принципе и даже категорически :)
Считайте, что он делает никакие не "компьютеры", а PLC или специализированные технологические контроллеры с RTE на васике. Что, по сути, так и есть.
Вот нафига ему ПультЪ в принципе
вы вот всерьёз такой вопрос задаёте, на который ответ может быть только один - как же так PDPLike процессор без режима пульта? Пульт позволяет гонять тесты и писать программы любой сложности прямо в кодах сразу в память и
мгновенно запускать их, вот зачем ему БЕЙСИК без пульта - было бы правильней спросить?
- - - Добавлено - - -
за "совместимость" тут дело не в совместимости, а в комплексе возможностей процессора, то что пульт у Ангстремовских камушков реализован иначе чем у PDP - только добавляет отечественной
разработке уникальности. Вот зачем вам две руки и две ноги? Давайте одну ноги и одну руку оставим - сэкономим на
перчатках и ботинках? Так что ли? И какой такой БЕЙСИК автор собирается прикрутить не пзу ли от ДВК-1 с НЦ БЕЙСИКОМ ?
CodeMaster
11.09.2017, 12:29
как же так PDPLike процессор без режима пульта?
Да так же, на БКшках его не было и все живы остались.
ульт позволяет гонять тесты и писать программы любой сложности прямо в кодах сразу в память и
мгновенно запускать их,
Ты вот сам всерьёз веришь в то, что Ewgeny7 "писать программы любой сложности прямо в кодах" на своём одноплатнике?
вот зачем ему БЕЙСИК без пульта - было бы правильней спросить?
Написать "Hello World!" на экране, ты смотрел, что он ранее делал на Бейсике на своих одноплатниках?
З.Ы. Вот, реально зря отделили тему от основной, теперь PDP-маниаки одолеют :-/
И какой такой БЕЙСИК автор собирается прикрутить не пзу ли от ДВК-1 с НЦ БЕЙСИКОМ ?
Читайте тему что назвается: Скомпилить свой из исходников.
Вот, реально зря отделили тему от основной, теперь PDP-маниаки одолеют :-/
Не, все правильно, инопланетяне уже там тоже одолели на несколько страниц. Пусть лучше тут, в отдельной теме одолевают :)
Это просто Евгений решил постичь инопланетный разум, вот и движуха началась - как говориться - и тут понеслось.
Читайте тему что называется: Скомпилить свой из исходников.
вот я хочу уточнить что именно за бейсик - есть исходники бейсика-вильнюс например )))
Это просто Евгений решил постичь инопланетный разум
Я конечно не ММ, но простым языком напишу ещё один разочек - без пульта это вообще не ясно что такое получиться. Минимальные конфиги железок примеров ММ уже выше написал.
теперь PDP-маниаки одолеют :-/
Ха! До кому это надо одолевать - извращайтесь коли охота )
- - - Добавлено - - -
на БКшках его не было и все живы остались.
если я правильно понимаю на БКашка "пульт" заменён термином "монитор", специфика,
http://gid.pdp-11.ru/doclist.html, насчёт БК - у нас на форуме разработчик и ветеран производства
присутствует, пускай меня поправит дополнит вот этот вопрос (речь об уч. ММ )
bigral, ты никак не успокоишься ;-) A074MO пилит PDP-11 на FPGA, Ewgeny7 пилит "Бейсик на ВМ1". Вот нафига ему ПультЪ в принципе, кроме возможности наклеить стикер "like PDP-11" на этот комп?
Не "like pdp-11" а "полноценный pdp-11 клон", со всем багажем софта которого валом. Для спектрумистов эта ситуация слегка напоминает случай - собрать zx48 с контроллером trdos только вставить ПЗУ не SOS+TRDOS а свой скомпилировать "на коленке". И то!! не совсем равноценный случай, так как если ПультЪ считать частью микрокода процессора который обрабатывает аж HALT режим, то тут еще надо добавить - что в этом самом спектруме поставить не настоящий Z80 а собранный на секционниках типа intel3000 серии эмулятор в котором не реализовать IM2 режим (ну или влепить i8080 вместо Z80). А что работать будет... но на скоко больше усилий и все ради "чистого извращения".
TomaTLAB
11.09.2017, 16:57
Давайте одну ноги и одну руку оставим - сэкономим на
перчатках и ботинках?
"Ты не поверишь..." Именно так это и реализуется в ПЛК. Я не зря про них упоминал.
Зато на съэкономленные руки-ноги - можно прикрутить "экзоскелет на сервоприводах". :)
и все ради "чистого извращения". Так в том и интерес...
вот зачем ему БЕЙСИК без пульта - было бы правильней спросить?
Вообще, ровно за тем же, что и Бейсик с Пультомъ - чтобы Пультъ не трогать, а Барсика Бейсика гладить погонять.
- - - Добавлено - - -
есть исходники бейсика-вильнюс например )))
Таки я думаю, что дальнейшая моя просьба уже написана, прямо на заборе огромными буквами :) Где???
- - - Добавлено - - -
Я сейчас отвлекся на Z180, перепахиваю старый проект, добаляю функционала.
CodeMaster
11.09.2017, 18:14
в этом самом спектруме поставить не настоящий Z80 а собранный на секционниках типа intel3000 серии эмулятор в котором не реализовать IM2 режим (ну или влепить i8080 вместо Z80)
Это к Евгению претензии, ИМХО в поделке на Z80 у него IM2 как раз не задействован и он вроде остался доволен как кот на масленицу.
Таки я думаю, что дальнейшая моя просьба уже написана, прямо на заборе огромными буквами Где???
По моему hobot в конце предложения "есть исходники бейсика-вильнюс например )))" забыл вопросительные знаки поставить.
и он вроде остался доволен как кот на масленицу
Молод был, глуп. Сейчас-то прерывания даже и в 6502 использовал.
А Z80 нуно перепахивать, да. Я уже дисплей от Нокии даже отложил для него в сторонку. Везде лепил I2C, теперь будем SPI :)
Error404
11.09.2017, 21:30
Везде лепил I2C, теперь будем SPI :)
На каком контроллере? Или программный?
Программный, разумеется. Делов-то на вечер.
TomaTLAB
12.09.2017, 01:03
теперь будем SPI А вот это проще аппаратно. Хотя бы в части SR :) Хотя бы и два корпуса, сдвинуть восемь бит, посчитать и "свисток дернуть".
Можно и УСАПП к делу приспособить.
З.Ы. Не проще... Интересней :)
Где???
По моему hobot в конце предложения "есть исходники бейсика-вильнюс например )))" забыл вопросительные знаки поставить.
http://forum.maxiol.com/index.php?showtopic=4337
http://forum.maxiol.com/index.php?showforum=88
- - - Добавлено - - -
Все в архиве )
- - - Добавлено - - -
http://archive.pdp-11.org.ru/BKGAMES/ROM/
При чем здесь какой-то DESS и эмулятор Патрона?
очень очень прошу вас проявить уважение ) более того рекомендую даже! )
очень очень прошу вас проявить уважение ) более того рекомендую даже! )
Да я без претензий, просто для меня это реально странно - есть камень, есть в камне опкоды, который он может исполнять. Почему тогда ассемблера для этого камня нет? Как авторы писали эту вашу любимую RT-11, с ПультЪа что-ли нащелкивали восьмиричными значениями? Потому что из-под RT-11 они не могли в DESS ничего написать, потому что RT-11 они и писали, как раз.
Поэтому ассемблер есть. Скорее всего писали на оригинальной PDP на ассемблере, потом просто скопировали.
А раз есть ассемблер под PDP, почему такого ассемблера нет под PC?
CodeMaster
12.09.2017, 08:05
А раз есть ассемблер под PDP, почему такого ассемблера нет под PC?
1. Клуб PDPшков весьма элитарен и закрыт.
2. Когда ПЦшники поднялись, PDP уже вымерли.
Не, ну эмулятор то вон запилили. А если запилили эмулятор, то значит точно знают все опкоды. Но сорцы конечно закрыты, как всегда?
Клуб PDPшков весьма элитарен и закрыт.
Ага. Они даже последовательный порт называют ТЕЛЕГРАФом! Жуть... :)
Сейчас не каждый креативный менеджер знает, что такое телеграф.
А раз есть ассемблер под PDP, почему такого ассемблера нет под PC?
1. Клуб PDPшков весьма элитарен и закрыт.
2. Когда ПЦшники поднялись, PDP уже вымерли.
Не, ну эмулятор то вон запилили. А если запилили эмулятор, то значит точно знают все опкоды. Но сорцы конечно закрыты, как всегда?
Ага. Они даже последовательный порт называют ТЕЛЕГРАФом! Жуть...
Сейчас не каждый креативный менеджер знает, что такое телеграф.
добавлено: сейчас не каждый креативный менеджер знает, что такое последовательный
порт - я бы даже так сказал )))
http://yoursmileys.ru/tsmile/blabla/t9106.gif
https://www.youtube.com/watch?v=jD1AyLcbda4
http://progopedia.ru/version/assembler-pdp-11/
.TITLE HELLO WORLD ; Название
.MCALL .TTYOUT,.EXIT
HELLO:: MOV #MSG,R1 ; Начальный адрес строки
1$: MOVB (R1)+,R0 ; Получаем следующий символ
BEQ DONE ; Если ноль, выходим из цикла
.TTYOUT ; Иначе печатаем символ
BR 1$ ; Повтор цикла
DONE: .EXIT
MSG: .ASCIZ /Hello, world!/ ; Строка Hello, world!
.END HELLO ; Конец программы HELLO
:tongue:
Ага. Они даже последовательный порт называют ТЕЛЕГРАФом! Жуть... :)
Сейчас не каждый креативный менеджер знает, что такое телеграф.
Это только ММ (у него такой уникальный ретро-стеб, ну и беспредельное восхищение прогой DESS.SAV), правильное DEC название SLU (serial line unit).
Первоначальный софт для pdp11 писали еще тогда когда самого железного pdp11/20 небыло, по идее использовали симулятор и ассемблер писанные на фортране для pdp10 (?)...
Я же скинул Вам сцылу на пакет http://retrocmp.com/tools/pdp11gui там и оболочка (предпологающая общение через ПУЛЬТъ), и эмуль, и ассемблер и дизассемблер...
Софт Patron-a это вообще "отдельная вселенная", тут тебе и эмуляторы ДВК, и протокол виртуального диска HX который позволяет легко грузить RT11 и использовать ее софт просто при наличии СPU (c ПУЛЬТъ-ом) + RAM + SLU (системный 177560), и драйвер упрощенного HD, и RT11 прямо работающий из cmd.exe (winnt) таким образом позволяющий пускать тот же macro11 прямо из виндового cmd, и плагины к total commander, и плагины к IDA, и схемы CL<->RS232c... может еще чего забыл.
UPDATE!
Есть такой вариант: влепить на плату К1801ВП1-030 (16шт КР565РУ6), К1801ВП1-035, К1801ВМ1 и КР1801РЕ2-000. На этой штуке пойдет rt11sj и весь ее софт.
Судя по кардиограмме, 1801ВМ1 - завелся.
И похоже, что пытается прочитать порт по SEL1 :)
http://savepic.net/9930839m.png (http://savepic.net/9930839.htm)
http://savepic.net/9953367m.jpg (http://savepic.net/9953367.htm)
Генератор генерирует генеруру на 3,68МГц, оно будет полезно для последовательного порта.
Старт процессору обеспечивает мелкая восьминогая Тини13, она формирует последовательность сигналов ACLO и DCLO, ибо у этого процессора сигнал сброса в привычном понимании отсутствует напрочь.
- - - Добавлено - - -
Блин, заказ на 580ИР83 накрылся тазом... Придется еще где-то искать. Они - инвертирующие защелки адреса по задумке.
Блин, заказ на 580ИР83 накрылся тазом... Придется еще где-то искать. Они - инвертирующие защелки адреса по задумке.
Вон, если пересылки не боишься, то у свинки есть - КР580ИР83 4р/шт
http://zx-pk.com/forum/viewtopic.php?f=14&t=5917#p59538
Там же и буферы с инверсией - КР580ВА87 4р/шт
Или тебе в золоте подавай. :)
Mick, спасиб! Но почту ждать - долго. Нашел в центре по три шесят, три штуки в наличии. Хватит как раз. Придется ехать...
Судя по кардиограмме, 1801ВМ1 - завелся.
Не покажете обратную сторону макетки ?
Не покажете обратную сторону макетки ?
http://savepic.net/9938867.jpg
- - - Добавлено - - -
Сразу видно страну происхождения, летящая звезда из МГТФ :)
Вопрос к людям из Элитного Клуба :)
На схеме БК-0010 есть один непонятный для Потомственного Интеловода момент.
Точнее, не один, но этот - круче всех.
Микросхемы ПЗУ, DS17 и DS19. Выводы CEn сидят на земле. Как так? Каким образом ПЗУшки знают, когда им следует откликаться? Включено же постоянное подключение к шине?
Микросхемы ПЗУ, DS17 и DS19. Выводы CEn сидят на земле. Как так? Каким образом ПЗУшки знают, когда им следует откликаться? Включено же постоянное подключение к шине?
Микросхемы ПЗУ 1801РЕ1/2 уже сделаны по стандарту МПИ. Внутри них есть дешифратор адреса, который настраивается с шагом 8Кб, ну и соответственно объем ПЗУ тоже 8Кб. Т.к. они уже сделаны по стандарту МПИ, то и обрабатывают сигналы SYNC(СИА), DIN(ВВОД), RPLY(СИП).
Alex_K, спасибо!
Я так и подозревал, что они или с завода жестко настроены на свой адресный интервал, или при прошивании туда заносятся биты для дешифратора.
Каким образом ПЗУшки знают, когда им следует откликаться?
У них внутри декодер адреса. По ниспадающему ~SYNC защелкивают ~AD и смотрят на старшие три бита. Если они совпадают с некоторой константой, то происходит активация микросхемы. Константа определяется номером прошивки.
OrionExt
16.09.2017, 22:16
Все это какая-то параллельная реальность мира МП:)
Второй вопрос - даже не вопрос, а размышление вслух. Может кто ткнет носом, если я где ошибаюсь.
Поскольку я впервые работаю с шестнадцатибитной шиной адреса, то... Адрес А0 в ней по сути не используется, только как вспомогательный сигнал при байтовой записи? В остальных случаях там идет ноль (ибо адреса слов всегда четные), или гоняется нулевой разряд данных в случае мультиплекса.
Имея ПЗУ с 16-битной организацией памяти (27С1024), которая имеет разряд А0 на шине адреса, подразумеваем. что он должен быть подключен фактически к АD1 шины МПИ в данном случае. Разделения на БАЙТОВЫЙ доступ, как это бывает в ОЗУ, в данной ПЗУ нет, разумеется.
Ну и далее, со смещением - A1 -> AD2, A2 -> AD3, итд.
Что касается разрядов данных, то там все делается без смещений, ибо D0 имеет свой сакральный смысл в слове данных.
Разряд AD0 имеет так же функцию указывать СОВМЕСТНО с сигналом WTBT на шине МПИ ту ОЗУшку (восьмибитную), в которую пойдет запись при БАЙТОВОМ доступе.
- - - Добавлено - - -
Все это какая-то параллельная реальность мира МП
Согласен :)
Но это реально какой-то мир Людей в Белых Халатах у ПУЛЬТОВЪ, в помещении, наполненном гудящими машинами и моргающими лампочками :)
Окунуться в это очень интересно.
На всякий случай доп. литература
http://archive.pdp-11.org.ru/BIBLIOTEKA/MACRO11_prog_PDP11_org/
Используются все 16 разрядов адреса при его выставлении на шину. Да, обычно при чтении и записи целого слова разряд AD0 равен нулю (точнее единица, т.к. шина инверсная). Но если читается байт из нечетного адреса или слово по нечетному адресу (и такое возможно), то тогда на AD0 выставляется единица.
Сами устройства на шине обычно при чтении/записи полного слова разряд AD0 при выставлении адреса игнорируют, а так он нужен обычно при записи байта, если устройство поддерживает байтовую запись.
Тем временем, в далекой. далекой Галактике...(С) Гнусавый Голос
http://savepic.net/9937677m.jpg (http://savepic.net/9937677.htm) http://savepic.net/9942797m.jpg (http://savepic.net/9942797.htm)
- - - Добавлено - - -
Alex_K, Просто я обратил внимание, что ПЗУ при подключении игнорируют А0, а ОЗУ - используют. Подразумеваю доступные схемы на МПИ, имею ввиду. Оно и логично, если носитель информации только читается, то зачем мудрить с байтовым доступом? Проще прочитать слово и выбрать нужное, чем усложнять устройство железа.
- - - Добавлено - - -
если читается байт из нечетного адреса или слово по нечетному адресу (и такое возможно
Вот тут уже хотелось бы понять, как действуют ассемблеры, если в исходниках программ встречается список байтов? Они размещают байты побайтно в дампе, или суют этот байт данных в младший байт слова, то есть чередуют данные с нулем?
Вот тут уже хотелось бы понять, как действуют ассемблеры, если в исходниках программ встречается список байтов? Они размещают байты побайтно в дампе, или суют этот байт данных в младший байт слова, то есть чередуют данные с нулем?
Естественно побайтно, ведь есть и байтовые версии команд. Это директива .BYTE, есть также директивы .ASCII и .ASCIZ для размещения строк. Если же потом надо выровнять под границу слова, то это .EVEN.
Спасибо, учту при разборах косяков :)
- - - Добавлено - - -
Прикошачил к схеме GALку, сделал пробную прошивку для преобразования МПИ->интел с селектором устройств.
Теперь перерыв до момента покупки 580ИР83.
- - - Добавлено - - -
Да, еще порт надо какой-нить прилепить, на SEL2, поморгать светиком...
- - - Добавлено - - -
Чуть не забыл врезать резистор в разрыв GAL -> RPLY. Оно же бывает и выходным сигналом, не только входным.
Очень надеюсь, что проц останется рабочим после кучи припаек.
Используются все 16 разрядов адреса при его выставлении на шину. Да, обычно при чтении и записи целого слова разряд AD0 равен нулю (точнее единица, т.к. шина инверсная). Но если читается байт из нечетного адреса или слово по нечетному адресу (и такое возможно), то тогда на AD0 выставляется единица.
Сами устройства на шине обычно при чтении/записи полного слова разряд AD0 при выставлении адреса игнорируют, а так он нужен обычно при записи байта, если устройство поддерживает байтовую запись.
1801ВМ1, 1801ВМ2, 1806ВМ2 поддерживают адресацию нечетных слов.
1801ВМ3, 1806ВМ3, 1806ВМ5, 1836ВМ3 ( и некотрые др. процы с ДП ) трапуют по 4 вектору, при обращении к нечетному слову.
*
В рекомендация от DEC есть упоминание, настоятельно не рекомендующее организацию байтовой записи в сегменте адресов BS7 (для 1801ВМ1 - адреса 160000 ... 177776 ( порты )).
Лично я это регулярно нарушаю :eek:
*
Но это реально какой-то мир Людей в Белых Халатах у ПУЛЬТОВЪ, в помещении, наполненном гудящими машинами и моргающими лампочками
Реально на А. сектор кодеров выглядел примерно как школьный класс, только письменные столы с выдвижными тумбами расставлены довольно хаотично, на каждом столе - 1 шт. ДВК-3, или ДВК-4 с прицепленными внешними мониками МС6105.
Так же на каждом столе принтер Роб 6329 ( широкий А3 ) или Д-100, и стопочка листочков А4, и несколько больших толстеньких папок и тетрадок на 96 листов. Разведена сеть на основе КНГМД ( МХ ) ДВК, или даже макетки - полуплаты с сетью. Сервер - 386 с самодельной ISA-16 платой. Винтами на ДВКашках для серьезных проектов предпочитали не пользоваться, ввиду их смехотворной надежности. "Болгарию" сразу старались уронить, но так, что бы не было заметно явных следов насилия, т.к. она страшно гудела/звенела с завываниями от самолета, и надежность болгарских винтов была в области 000000 ( за 1 год эксплуатации ). Дисководики - для кодеров - строго-при-строго МС5311 "5" приемка, почтенные гуру кода ставили Роб ( Тик-55 ) , а в период с 1989 года - и 3.5" Сони с 5.25 мордашкой ( абсолютная безупречность работы на дискетах Басф 720 кбайт ).
Контроллеры дисков - МУ ( полуплаты КМД ДВК ), или кастрированные МУ ( 531АП2 с 1801ВП1-128 и ПЗУ 1801РЕ2-326 ).
Насчет белых халатиков - да, на А. это был стиль работы.
- - - Добавлено - - -
Вообще я бы посоветовал прицепить на 1801ВМ1 КР1801ВП1-065 - телеграфный порт . Для него нужна частота 4608 кгц, и МАХ232 для организации высоковольтного интерфейса с ИБМ ЭВМ. Вход BS7 имеет формулу "( АД15=0в + АД14=0в. + АД13=0в ) ----> BS7=0в." . Необходим только в момент перепада сигнала SYNC с +5в. до 0в. Адрес порта выбрать как 177560 .
Примерная Э3 телеграфа :
http://storage6.static.itmages.ru/i/17/0225/h_1488036756_7542670_adc730bedd.jpg (https://itmages.ru/image/view/5501217/adc730be)
- - - Добавлено - - -
Более подробно о подключении ВП1-065 можно посмотреть в моей поделке "УТК" - в любой версии.
Делать ВП1-065 ручками в плюшке - потеря времени, если нет жестких требований к габариту конструкции.
Очень кратко ВП1-035 ( первобытная урезка ВП1-065 ) описана в МПСС в серии статей о БМК 1801ВП1.
Отличия 035 и 065 :
065 умеет только 7 или 8 бит, а 035 - еще и 5 бит.
065 имеет полноценный аппаратный сигнал о занятости приемника и передатчика.
Еще мелкие непринципиальные отличия, не используемые в простых конструкциях.
Ewgeny7, вот ИМХО интересная тема : http://forum.pk-fpga.ru/viewtopic.php?f=62&t=5573&p=6183#p6183
там всего 4 или 5 сообщений (рекорд информативности + игра которую и на этом форуме несколько лет назад уже публиковал автор).
Теперь перерыв до момента покупки 580ИР83.
Просто от себя очень рекомендую в плане знакомства с ОС RT-11 поставить у себя эмулятор ДВК Patrona, в котором достаточно точно эмулируются процессоры 1801ВМ1-2-3 и есть готовые файлы конфигурации эмулятора
По поводу отличий - главное и принципиальное отличие PDP - это совсем другая идея (философия) и ориентация на промышленно-военный комплекс как основных клиентов. Вот в СССР сделали персональные и даже бытовые (PDP) БКашки и УК-НЦ, а игрушки под них вообще только у нас в таком количестве (!). У классических PDP только символьные (текстовые) игры.
CodeMaster
17.09.2017, 17:03
вот ИМХО интересная тема :
Да, Жень это возможно и будет тебе интересно, как интеловоду.
в плане знакомства с ОС RT-11
А этим даже и не советую увлекаться до окончания сборки, может быть потом для общего развития ;-)
А этим даже и не советую увлекаться до окончания сборки, может быть потом для общего развития ;-)
вот именно для "общего развития" и порекомендовал.
Но и ещё для того, что бы оценить насколько это другая философия изначально (от железа до софта) отдельная
линия и другого порядка нежели спектрумы, PC и проч. приходяще - уходящее )))
MM, спасибо за схему, но это будет нарушением концепта. Предполагается только сам 1801ВМ1 и окружение из "интеловских" микросхем, как всем понятных и ширпотребных. Я буду прицеплять 580ВВ51А в качестве серийника.
- - - Добавлено - - -
вот ИМХО интересная тема
Компилятор от Алексея vinxru, я уже бывал на этой страничке. А компилятор как раз предполагал использовать хотя бы для первого ознакомления.
- - - Добавлено - - -
Продолжу размышления вслух.
Сигнал WTBT - "ЗАПИСЬ байта", в совокупности с А0 определяет, какой байт будет записываться в ОЗУ, старший или младший.
Что примечательно, о ЧТЕНИИ одного байта я не нашел упоминания, может плохо искал? Ищу дальше. Но пока вижу, что чтение идет с четных адресов и сразу словами.
А вот есть и выдержка из Технического Описания 1801ВМ1, которое я нашел в теме про реверс процессора, дай Бог памяти, вроде vslav его пишет, поправьте если я неправ:
"Микропроцессор К1801ВМ1 чтение данных всегда выполняет 16-битными словами. Если требуется
только один из байтов, то ненужные разряды игнорируются. Также микропроцессор выставляет адрес "как
есть", и чтение слов по нечетному адресу может приводить к некорректно прочитанным данным, поскольку
внешняя память и устройства обычно не поддерживают такой режим."
Вот отсюда и резонный вопрос - если размещать слова по нечетным адресам, то это должно вызвать много геморроя для контроллера памяти, ведь он вынужден будет считывать байт из "следующего" слова, чтобы подпихнуть его процессору. При этом не забыть "сдвинуть" байты на магистрали из старшего в младший, и наоборот. Это как-то реализовано в наших PDP-машинах? ДВК, БК и иже с ними?
Мне такой подход в корне не нравится, и проще следить за четностью адресов слов.
И последнее. Есть ли в наборе команд ВМ1 однобайтовые команды? Упоминали, что вроде как есть (?). Так ли это? Я сейчас сам ковыряюсь с ассемблером, пытаюсь найти подобное.
Пока же даже команда HALT вижу представленной 00 00. То есть, два байта, слово.
При этом не забыть "сдвинуть" байты на магистрали из старшего в младший, и наоборот. Это как-то реализовано в наших PDP-машинах? ДВК, БК и иже с ними?
Мне такой подход в корне не нравится, и проще следить за четностью адресов слов.
И последнее. Есть ли в наборе команд ВМ1 однобайтовые команды? Упоминали, что вроде как есть (?). Так ли это? Я сейчас сам ковыряюсь с ассемблером, пытаюсь найти подобное.
Сдвиг не осуществляется, всегда читается/пишется "как есть" - т.е. "по-проще".
*
Однобайтовых команд нет - "для простоты". Но есть команды для работы с отдельным байтом ( например, в памяти ). С отдельным байтом не рекомендуется работать в регистрах проца - там куча ограничений.
- - - Добавлено - - -
Я буду прицеплять 580ВВ51А в качестве серийника
Это сразу делает невозможным применение стандартных ПЗУ , как БИОСа , так Бейсика / Фокала.
Целесообразней осуществить эмуляцию ВП1-065 в плюшке.
Сдвиг не осуществляется, всегда читается/пишется "как есть" - т.е. "по-проще"Как есть - это я понимаю так, что поскольку "чтение всегда читает слова", то непроизвольного сдвига на нечетные адреса не произойдет, процессор такого не сделает.И если программист в дампе программы невзначай напихал нечетное количество байт в каком-либо байтовом списке, и адреса "поплыли", то такая программа просто будет неработоспособна. Что касается чтения, то я почему-то не могу нигде найти упоминания, что может прочитаться один отдельный байт, произвольный. Есть только упоминание, что чтение идет только словами, а всё лишнее - откидывается. То есть 1, чтение всегда будет работать с четными адресами, поскольку читает ТОЛЬКО слова. То есть 2, для ПЗУ не требуется произвольный доступ к байтам.Работа в ОЗУ с отдельными байтами на чтение - получается аналогична. Запись - возможна запись отдельного байта. Это логично, иначе пришлось бы где-то хранить содержимое второго байта в слове, пока модифицируется первый. Но эти операции опять-таки не нарушают четность адресации последующего кода.Если все перечисленное верно - то вопрос закрыт и можно идти дальше :)
А у меня такой абстрактный вопрос - сабж тормоз или нет? Ну, в сравнении скажем с 8086 с 16-битной ШД на 5MHz? Проворно колет и множит целочилсенные 16-битные?
А у меня такой абстрактный вопрос - сабж тормоз или нет? Ну, в сравнении скажем с 8086 с 16-битной ШД на 5MHz? Проворно колет и множит целочилсенные 16-битные?
Примерная аналогия по производительности при 0 тактов ожидания ОЗУ :
1801ВМ1-5 мгц = 580ВМ80А-2.5 мгц, в основном на логических командах. На копировании массивов данных ВМ1 быстрее в пару раз.
1801ВМ2-10 мгц = Z80 - 4 мгц.
1801ВМ3-6 мгц = 1810ВМ86-5 мгц.
Оценка очень приблизительная.
Вот отсюда и резонный вопрос - если размещать слова по нечетным адресам, то это должно вызвать много геморроя для контроллера памяти, ведь он вынужден будет считывать байт из "следующего" слова, чтобы подпихнуть его процессору. При этом не забыть "сдвинуть" байты на магистрали из старшего в младший, и наоборот. Это как-то реализовано в наших PDP-машинах? ДВК, БК и иже с ними?
Мне такой подход в корне не нравится, и проще следить за четностью адресов слов.
На шине МПИ байтовое чтение отсутствует, всегда читается полное слово, а затем, если команда байтовая, процессор берет нужный байт - младший при A0=0 и старший при A0=1. Устройства при чтении и словной записи обычно игнорируют младший бит адреса A0, поэтому при чтении адреса 0 и адреса 1 всегда будет прочтено слово с адресов 0 и 1, соответственно в младшем байте значение адреса 0, в старшем - адреса 1. Поэтому никаких сдвигов байтов нет, дали команду записи слова по адресу 1 - запишется слово в адреса 0 и 1, а не в 1 и 2.
- - - Добавлено - - -
Также микропроцессор выставляет адрес "как
есть", и чтение слов по нечетному адресу может приводить к некорректно прочитанным данным, поскольку
внешняя память и устройства обычно не поддерживают такой режим."
Да, такое может быть только с устройствами на странице ввода-вывода, если у них дешифрация сделана коряво. Но обычно при чтении такого не бывает. А вот многие устройства не обрабатывают сигнал WTBT, потому и запись байта может пройти криво.
- - - Добавлено - - -
Есть ли в наборе команд ВМ1 однобайтовые команды? Упоминали, что вроде как есть (?). Так ли это? Я сейчас сам ковыряюсь с ассемблером, пытаюсь найти подобное.
Пока же даже команда HALT вижу представленной 00 00. То есть, два байта, слово.
Нет, все команды занимают целое слово, может занимать от одного до трех слов, в зависимости от используемых методов адресации. Есть команды, работающие с байтами. Большинство команд работают как со словами, так и с байтами. Ограничение есть при работе с регистрами, можно работать только с младшим байтом, к тому же команды MFPS и MOVB при записи в регистр старший байт расширяют знаковым разрядом младшего байта. Ну и автоинкрементый (код 2) и автодекрементный (код 4) методы адресации при работе с байтами у регистров R6 (указатель стека) и R7 (счетчик команд) изменяют значение на 2, а не на 1, как при работе со словами.
Alex_K, спасибо за развернутый ответ, наконец-то он появился, а то всё вокруг да около...
- - - Добавлено - - -
Запуск. Какие-то чтения/запись в SEL1, и - останов.
http://savepic.net/9916933m.png (http://savepic.net/9916933.htm)
- - - Добавлено - - -
Шина AD подтянута к +5, ПЗУ проецируется на первую половину памяти.
При чтении по адресу порта SEL1 должна читаться просто подтянутая шина 0xFF.
То есть, процессор прочитает 0000h.
И должен перейти на исполнение программы с нулевого адреса, где сидит ПЗУ.
Но что-то пошло не так :)
- - - Добавлено - - -
Есть очучение, что сигнал RPLY какой-то не такой.
- - - Добавлено - - -
Есть очучение, что сигнал RPLY какой-то не такой.
Ага, самдурак(С). Исправил.
http://savepic.net/9950749m.png (http://savepic.net/9950749.htm)
- - - Добавлено - - -
Сигнал SYNC остается в активном состоянии. Что же ждет процессор?
И должен перейти на исполнение программы с нулевого адреса, где сидит ПЗУ.
Можете там разместить текст для "лампочки на 177716", прямо с 000000 адреса :
012737 177777 177716 077001 005037 177716 077001 000770
MM, уже разместил:
ORG 0x0000
EntryPoint: MOV #0xAA,R0
Cyc: MOV R0,@#177714
COMB R0
JMP Cyc
Но до этого кода дело пока не доходит, после манипуляций с SEL1 проц оставляет SYNC в активном состоянии, но запросов чтения/записи почему-то не предъявляет, висим.
- - - Добавлено - - -
012737 177777 177716 077001 005037 177716 077001 000770
Упс... Таки адрес порта для SEL2 177716 или 177714?
Упс... Таки адрес порта для SEL2 177716 или 177714?
Выв. 07 ИС 1801ВМ1 - выборка SEL1, адрес 177716
Выв. 08 ИС 1801ВМ1 - выборка SEL2, адрес 177714
- - - Добавлено - - -
но запросов чтения/записи почему-то не предъявляет, висим.
Надо смотреть состояние линий АД.
Хоспаде,
MOV R0,@#177714 просто рвет мне мозг. Ну как можно понять, что здесь пишется в порт значение из R0, а не в R0 заносится значение? Это еще хуже, чем индусское
if (1 == accept_flag) {
Код:
ORG 0x0000
EntryPoint: MOV #0xAA,R0
Cyc: MOV R0,@#177714
COMB R0
JMP Cyc
Хексы в MACRO.SAV не используются. Пожалуйста, пользуйтесь оригинальными программами из RT-11 из комплекта поставки ЭВМ ДВК.
if (1 == accept_flag) {
Это не индусское, это элемент стиля, помогает избежать ошибочного присваивания вместо сравнения. Много у кого попадается, сам иногда пользуюсь.
А по теме - я составляю такой документ (http://u.zeptobars.ru/yuot/MISC/1801vm1-08.pdf). Он там далеко не полный, и уже видно что для начинающих разбираться в PDP он сложноват, содержит лишние подробности, но я готов дорабатывать его, вносить изменения и разъяснения. Так же был бы благодарен за замеченные опечатки и ошибки.
Хексы в MACRO.SAV не используются
Хексы на этапе отладки мне в разы удобнее птичьего восьмиричного.
Можно я буду пользоваться тем инструментом, который лично мне удобен?
А не гадать, куда мне засунуть МАКРО.САВ, чтобы оно мне код дало.
Я пока пользуюсь ассемблером от Алексея Морозова, что удобно и быстро и понятно и шестнадцатирично. Хоть и не канонично. Если затронул самое святое - простите засранца :)
- - - Добавлено - - -
А по теме - я составляю такой документ.
Ага, я про него и упоминал, и ссылался чуть выше. Замечательный даташит получается.
- - - Добавлено - - -
Старые осцилограммы уже недействительны, нашел кучку ошибок, исправляю.
Vslav, два вопроса по документу
- что означает 08 в названии PDF-файла ?
- при размещении у себя в библиотеки, как мне гарантировать правки и исправления (обновления),
то есть актуальную версию?
Огромная благодарность за проделанную работу, я признаюсь боялся что вам надоест и вы всё забросите
и переключитесь.
Да и совсем совсем 3-й вопрос : как там со ВТОРЫМ камушком? Я просто обязан спросить, поскольку видел вашу
плату только с ВМ1, не пробовали пока в сторону УК-НЦ думать? )
Можно я буду пользоваться тем инструментом, который лично мне удобен?
Т.к. в Вашем конструктиве отсуствуют заводские ПЗУ - значит, предполагается написание аналогов с 000000.
Соотвественно, будет куча текста.
И использовать непонятный инструмент неизвестного производителя = потеря времени, до 99%.
По MACRO.SAV ( и совместно с ним LINK.SAV ) есть утвержденная дока на русском языке, доступная бесплатно для скачивания, например такая :
http://storage5.static.itmages.ru/i/17/0604/s_1496599738_1307103_ec522bedc0.jpg (https://itmages.ru/image/view/5800325/ec522bed)
Или одна из книг по ОС Рафос ( RT-11 для русских солдафонов ) для ДВК, гуглится.
Как вариант, посоветую поискать комплект инструкций для БК11 без "М" - она до 99.99% повторяет книги по ОС ДВК, вплоть до "щелкните средним выключателем на передней панели" ( в БК - кнопка "Стоп" ).
- что означает 08 в названии PDF-файла ?
Это моя внутренняя нумерация версий. Документ дописывается, как добавляется заметный кусок - номер версии увеличивается.
- при размещении у себя в библиотеки, как мне гарантировать правки и исправления (обновления),
Чем больше цифра - тем документ актуальней.
Документ еще не закончен, есть подвижки по разбору микрокода и есть желание расписать алгоритмы выполнения инструкций. В-общем, есть надежда таки дописать. Сейчас в ближайших планах 2-х процессорная плата на ВМ1 ("модуль экспериментальный"), потому что у меня есть вопросы по арбитражу шины, надо посмотреть и задокументировать. Затем будет МС1201.01 на FPGA со SDRAM, там целая платформа придумана, чтобы можно было разные ДВК собирать в виде проекта с конфигурацией, вот 1201.01 как старт. Для разных плат - DE0, DE1, DE2-115 и платки на Xilinx (на днях приедет) - это уже можно выложить на OpenCores.
как там со ВТОРЫМ камушком?
Это как время, силы и настроение появятся, но будет обязательно :)
Моргалка для лампочки заработала пару раз.
Где-то что-то не создает нужных условий для работы схемы, ВМ1 капризен до окружения.
Ищу недочеты.
Но сам факт работы - состоялся :)
ВМ1 капризен до окружения
Попробуйте задержать RPLY на 1 такт - это баг самого ВМ1.
Есть такой вариант: влепить на плату К1801ВП1-030 (16шт КР565РУ6), К1801ВП1-035, К1801ВМ1 и КР1801РЕ2-000.
Вооо. +100. В конце зимы начал делать именно в таком составе, только несущественная замена, РУ3, РФ3 и -065. И даже -034, в режиме 16-регистра, да-да, не смейтесь. А чо, прикола-то ради.
Блин, заказ на 580ИР83 накрылся тазом... Придется еще где-то искать. Они - инвертирующие защелки адреса по задумке.
Печки, фу. И запорожцы не умели красиво корпусировать, фрязевских сейчас вряд ли найти. Лучше ИР40 или 74-533
Лучше ИР40 или 74-533
Лучше то, что автор желает видеть. В данном случае - ИР83.
И запорожцы не умели красиво корпусировать, фрязевских сейчас вряд ли найти
http://savepic.net/9972217.jpg
Красивей их - только сам процессор.
Сделал задержку RPLY на ТМ2, не сильно помогло. Где-то что-то еще не так. Но вот "отловленный момент":
http://savepic.net/9974265m.png (http://savepic.net/9974265.htm)
Нижний меандр, обозванный BSY - на самом деле выход порта SEL2 на ТМ9. 28кГц.
EntryPoint:
MOV #0xAA,R0
Cyc:
MOV R0,@#177714
COMB R0
JMP Cyc
Выполняется оно? В чём проблема "отловленного момента"? На диаграмме всё правильно.
Срывается адрес после чтения второго слова, читает FF с шины или ПЗУ и уходит в HALT.
Кстати, в состоянии HALT сигнал SYNC остается активен?
- - - Добавлено - - -
http://savepic.net/9986558m.png (http://savepic.net/9986558.htm)
Неоднозначно. Видно что: чтение SEL1, потом три раза чтение, затем чтение-модификация-запись, затем просто запись. После этого ошибка шины. Если бы два слова прочитал как нужно, а 000000 только третье, то было бы отличие только MOV R0,@#000000. Что никак не приведёт к циклу Ч-М-З, причем для SEL1 почему-то.
(upd при исполнении HALT происходит Ч-М-З для SEL1, потом запись по адресам 177676 и 177674, сохранение PSW и PC соотв. Но все равно не вяжется на 100%.)
HALT это не состояние, а режим исполнения программы, там происходит обычная активность шины.
Просто при команде HALT происходит то же самое, намеренно проверял.
Что там происходит на шинах - мистика прям.
Читаются два первых слова программы, по адресам 0 и 2, как и положено. Байты выплевываются из ПЗУ - правильные.
Потом происходит взбрык, и внезапно проц уже читает адрес 0x00AE, откуда читает 0xFFFF (после инверсии - команда HALT). Это третье чтение из ПЗУ.
Что-то читает/модифицирует/пишет в SEL1, пишет еще раз и.... висим.
Сделал задержку RPLY на ТМ2, не сильно помогло. Где-то что-то еще не так.
Без Э3 сложно по фото врачевать.
Особенно участо стробирования RPLY
Без Э3 сложно по фото врачевать.
Особенно участо стробирования RPLY
Триггер ТМ2, тактируемый клоком.
Потом происходит взбрык, и внезапно проц уже читает адрес 0x00AE,
Судя по всему, это не взбрык, а ошибочно полученная процессором команда.
Т.е. вместо MOV #0xAA,R0 получается что-то похожее на ADD #0xAA,PC. Ведь счетчик команд увеличивается скачком именно на 0xAA, вроде как.
Как буд-то проц какой-то бит не получает или не опознает. Надо коды команд бы сравнить.
Надо коды команд бы сравнить.
Без осмотра состояний линий АДх - "потеря времени".
Без осмотра состояний линий АДх - "потеря времени".
Осмотрены сто раз, разумеется.
Типовая Э3 стробирования RPLY :
http://storage4.static.itmages.ru/i/17/0921/h_1506003285_1604183_c8790afea8.jpg (https://itmages.ru/image/view/6113954/c8790afe)
Где :
Тактовая - в диапазоне 200 кгц ... 10 мгц ( для групп "А" и "Г" ).
При частотах 1801ВМ1 свыше 3 мгц применять строго 531ТМ2 или 74F74, 74S74.
CodeMaster
22.09.2017, 07:54
Потом происходит взбрык, и внезапно проц уже читает адрес 0x00AE, откуда читает 0xFFFF
Запиши временно в 0x00AE, что-то осмысленное, например возврат в 0000004
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot