Важная информация

User Tag List

Страница 1 из 9 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 88

Тема: Ассемблер PDP-11, попытки что то сделать по статье "Рессурсы УКНЦ/Глава1" Помогите !

  1. #1
    Master Аватар для electroscat
    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    986
    Спасибо Благодарностей отдано 
    435
    Спасибо Благодарностей получено 
    182
    Поблагодарили
    114 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Ассемблер PDP-11, попытки что то сделать по статье "Рессурсы УКНЦ/Глава1" Помогите !

    Доброго времени дорогие коллеги !
    Сегодня решил разобраться в ассемблере PDP-11, в целом, это не главная цель, ибо принципы работы ассемблера я в целом понимаю, и что то писал под 8080. С букварем в целом сам принцип кода ясен, и образование комманд тоже.
    Не понятно другое. ТАк как в целом, я хочу поработать с графикой УКНЦ, сразу решил изучить как работает видеоадаптер, и полез вот сюда:

    Ресурсы УКНЦ/Глава 1

    ... это статья, которая в целом должна привести меня к пониманию принципов формирования изображения на дисплее УКНЦ. Но... То ли автор статьи - изрядный троль, то ли человек оставил кучу ошибок, с целью сподвигнуть читающих разбираться в коде глубже, то ли опечатки при наборе... Допускаю даже вариант, при котором один из моих УКНЦ что то не так делает, позже буду пробовать на другой машине... В общем, доподлинно наверняка установить причину не реально, но...

    Сразу же в примере 1 я наткрулся на некоторое несоответствие поведения машины описанию в статье. Причем, автор время от времени отпускает "веселые" шутки, но совсем не отвечает на возникающие вопросы, не обьясняет как в целом должно быть, ощущение такое, как будто он описывает для тех, кто ну может на уровне чуть ниже чем он, и очень долго сидел за УКНЦ как минимум...
    Ну да ладно, в целом, пример 1 я понял, в частности так, что из монитора ПП можно получить доступ к памяти ЦП, а если поправить обеспечение, то так же и из отладчика ЦП можно попасть в память ПП а главное, можно получить доступ к памяти ЦП, которая пользователю не доступна в режиме USER - а доступна в режиме HALT.

    Далее автор описывает регистровый доступ к памяти видеоадаптера, и после примера 2, который тоже не заработал, после ввода первого адреса и данных - второй адресс не изменил содержание, регистра, а после ввода данных в регистр я вообще получил двойное зависание. ...

    Тем не менее у меня еще осталась некоторая вера в то что автор реально заинтересован в том, чтобы я понял как это работает, и я приступил к третьему примеру...

    Ну и тут, введя код основной программы, и код программы копирования в отладчике ПП (в память ПП) я с удивлением заметил что начиная с запуска программы копирования - я получаю просто черный экран, и компьютер не отвечает не на что, только на резет.
    Я сделал повторно все описанное еще раз. Покопался в справочнике по ассемблеру, предположил, что смещение в последней комманде программы копирования не 3 а 2, то есть было:

    Скрытый текст


    40040: 012702 MOV #60000, R2
    060000
    012703 MOV #60100, R3
    060100
    012701 MOV #37, R1
    000037
    M: 012223 MOV (R2)+, (R3)+
    077103 SOB M, R1
    [свернуть]


    стало:

    Скрытый текст

    40040: 012702 MOV #60000, R2
    060000
    012703 MOV #60100, R3
    060100
    012701 MOV #37, R1
    000037
    M: 012223 MOV (R2)+, (R3)+
    077102 SOB M, R1
    [свернуть]


    И после этого опять же получил просто черный экран без признаков жизни..

    После этого я провел эксперимент в отладчике ЦП, Действительно код заработал, и скопировал подпрограмму с адреса 60000 по адресу 60100 - именно в исправленном варианте. Но почему это не заработало в отладчике ПП - я понять не могу.

    Даже набрав подпрограмму вручную с адреса 60100 и поменяв местами то что отмечено звездочками - в общем, проделав все что описано - я не получил никакого копирования.

    В общем, прошу помочь разобраться в этом всем, ну или на крайний случай, показать где можно почитать более работоспособные документы, благодаря которым можно таки изучить как работает ассемблер и видеоадаптер УКНЦ и написать что то красивое для этой машины.

    Заранее благодарен !!!

    - - - Добавлено - - -

    Хотелось бы еще добавить, что конкретная машина прекрасно работает со всем программным обеспечением, которое есть у меня, проходит все тесты и проблем с ней не возинкало и не возникает вообще, то есть вариант что конкретная машина что то не так выполняет - он по большей части абстрактный....
    Последний раз редактировалось electroscat; 02.07.2022 в 01:51.
    Сейчас в коллекции:
    Вектор 06Ц.01(Минск), Вектор 06Ц.01(Волжский), Вектор 06Ц.02(Кишенев), Агат 7, Агат 9, Электроника 0511 УКНЦ (СЭМЗ), Электроника 0511 УКНЦ (КВАНТ) Х2, Поиск-1.03 (VGA),Электроника БК-0011(10,11M) [3IN1], Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста 30, Компакт 256(новодел),
    и ... Pentium 200 mmx, 386SX-16, AMD K6-300 ...

  2. Этот пользователь поблагодарил electroscat за это полезное сообщение:

    Oleg N. Cher (02.07.2022)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    В общем, прошу помочь разобраться в этом всем
    Вообще-то это две отдельные и сильно разные задачи. Одна - освоить систему команд и ассемблер машинки, и вторая - освоить работу с видеосистемой. Первую, естественно, лучше осваивать на ЦП и, если есть возможность (в смысле, диски, не важно, реальные или виртуальные) загрузить RT-11, то, естественно, надо учиться программировать именно под ней.Сочинить несколько программок на простенькие вычисления, консольный ввод-вывод, еще что-нибудь - классические учебные программы. Освоить макро, линкер, научиться запускать и отлаживать задачки.

    А управление экраном (разбирательство с видеоадаптером) - это отдельная и довольно сложная задача, тем более, что на УКНЦ это управление сделано на ПП, а это свои сложности. Так, что советую начать с первой задачи. Из учебников для нее могу порекомендовать книгу

    М.Сингер

    МИНИ-ЭВМ PDP-11:
    ПРОГРАММИРОВАНИЕ
    НА ЯЗЫКЕ АССЕМБЛЕРА
    И ОРГАНИЗАЦИЯ МАШИНЫ


    (есть в Сети). Ну, или что-нибудь из УКНЦового - тоже есть несколько книжек.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  5. Эти 2 пользователя(ей) поблагодарили AFZ за это полезное сообщение:

    Aleks1985 (02.07.2022), electroscat (02.07.2022)

  6. #3
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    1,167
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    341
    Поблагодарили
    243 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а скачать можно тут

    https://mirrors.pdp-11.ru/search.php...%90+PDP&page=1

    причем там еще есть отличная книжка
    Гилл -- Программирование на языке ассемблера для PDP-11 - тоже рекомендую
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  7. Эти 2 пользователя(ей) поблагодарили SuperMax за это полезное сообщение:

    Aleks1985 (02.07.2022), electroscat (02.07.2022)

  8. #4
    Master Аватар для electroscat
    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    986
    Спасибо Благодарностей отдано 
    435
    Спасибо Благодарностей получено 
    182
    Поблагодарили
    114 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    БЛАГОДАРЮ !!!
    Литературу скачал, буду изучать, весьма подезная !!!
    Сегодня добился исполнения подпрограмм. Действительно, последний код программы копирования - 077102 а не 077103. В остальном, мое знание клавиш управления и небольшие ошибки в коде подвели. Сейчас все работает, часть экрана копируется, и потом другой подпрограммой восстанавливается. Единственное, что я не понял, это то что в статье автор называет "местная хитрость"..
    И как следствие - чтобы скопировать экран в память - мне нужно набрать в монирое ПП - 60100<ИСП> а чтобы загрузить в память дисплея сохраненный участок - нужно набрать 60000<ИСП>. Имено так, автор говорит в статье наоборот.. Но это не так важно. Самое интересное сейчас - это как раз местная хитрость, процитирую автора:


    Скрытый текст

    А для вызова этих подпрограмм используем местную хитрость — эти подпрограммы сделаем спецфункциями:

    13144: 60000
    13146: 60100

    Теперь при посылке в терминал (то есть на экран) кода <001> (соответствует комбинации клавиш <УПР>+A) будет выполняться сохранение, а при посылке кода <002> (<УПР>+B) — восстановление левой верхней четверти рабочего экрана.
    [свернуть]


    Я пробовал в эти ячейки вписать адреса и в памяти ПП и в памяти ЦП - и результата ровным счетом никакого, то есть, <УПР>+<A> и <УПР>+<B> не работают ни в мониторах ЦП и ПП ни в РТ-11, ни в каком другом месте...

    Помоките пожалуйста понять, что я делаю не так, или что имел в виду автор, или может быть что он курил, после чего у него вс работало )) Я понимаю, что у астора все работало, скорее всего он либо что то не договаривает, либо я что то не так пинимаю.

    - - - Добавлено - - -

    И кстати, пробовал, на всякий случай, код на другой машине, в целом, работает 1 в 1 ... Машины исправны обе три )))

    - - - Добавлено - - -

    Ну и хотел бы таки немного уточнить свою позицию в плане изучения ассемблера. В целом, я писал на ассемблере, причем достаточно недавно и достаточно плодотворно, только на ассемблере 8080. Есть ряд графических программ, так же я написал, или переписал и усовершенствовал ПЗУ загрузчик для Вектора 06Ц, множество программ подверг реверс инжинирингу и усовершенствовал. В следствии того, что работа ассемблера в целом похожа на разных процессорах, а разница в основном в типах адресации и еще в нескольких мелочах - то в целом, изучать отдельно ассемблер огромной необходимости нет. Разница понимается как раз в режиме отладки кода, когда какие то непонятные участки начинаешь разбирать, и тогда уже всплывают особенности конкретных команд. На мой взгляд, разбирая готовый код в "боевом режиме" можно гораздо быстрее разобраться в отличиях, причем при этом непосредственно уже занимаясь решением поставленной задачи. Я могу ошибаться, но на мой взгляд так конкретная задача выполнится быстрее.

    - - - Добавлено - - -

    И еще, хотелось бы ваших рекомендацй, какая среда для разработки на ассемблере наиболее проста в установке и использовании для УКНЦ ? Есть ли какие то среды на PC в которых можно компилить ассемблерный код и получать .SAV и запускать на реальной машине ?
    Сейчас в коллекции:
    Вектор 06Ц.01(Минск), Вектор 06Ц.01(Волжский), Вектор 06Ц.02(Кишенев), Агат 7, Агат 9, Электроника 0511 УКНЦ (СЭМЗ), Электроника 0511 УКНЦ (КВАНТ) Х2, Поиск-1.03 (VGA),Электроника БК-0011(10,11M) [3IN1], Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста 30, Компакт 256(новодел),
    и ... Pentium 200 mmx, 386SX-16, AMD K6-300 ...

  9. #5
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    Я пробовал в эти ячейки вписать адреса и в памяти ПП и в памяти ЦП - и результата ровным счетом никакого, то есть, <УПР>+<A> и <УПР>+<B> не работают ни в мониторах ЦП и ПП ни в РТ-11, ни в каком другом месте...
    Автор правильно пишет, что это будет работать при обработке этих кодов подпрограммой терминала. Например эти коды со стороны ЦП можно записать в регистр 0177564. А лучше перейти в режим АВТОНОМ нажатием <D> в пультовом отладчике. В этом режиме всё что вы нажимаете будет сразу отрабатываться, так что нажимать <УПР+A> и <УПР+B> надо там. Выход обратно в пульт - <УПР+Ц>.

    - - - Добавлено - - -

    Цитата Сообщение от electroscat Посмотреть сообщение
    И еще, хотелось бы ваших рекомендацй, какая среда для разработки на ассемблере наиболее проста в установке и использовании для УКНЦ ? Есть ли какие то среды на PC в которых можно компилить ассемблерный код и получать .SAV и запускать на реальной машине ?
    Лучше это делать в нативной среде. А так тектовый редактор удобнее всего в FAR-е, то есть эмулятор RT-11. Удобная вещь!

  10. Этот пользователь поблагодарил Alex_K за это полезное сообщение:

    electroscat (02.07.2022)

  11. #6
    Master Аватар для electroscat
    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    986
    Спасибо Благодарностей отдано 
    435
    Спасибо Благодарностей получено 
    182
    Поблагодарили
    114 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нативная среда это круто, но это вызывает еще вопрос, а есть ли описание хорошее, как работать с нативной средой, и что она должна в себя включать ?
    Сейчас в коллекции:
    Вектор 06Ц.01(Минск), Вектор 06Ц.01(Волжский), Вектор 06Ц.02(Кишенев), Агат 7, Агат 9, Электроника 0511 УКНЦ (СЭМЗ), Электроника 0511 УКНЦ (КВАНТ) Х2, Поиск-1.03 (VGA),Электроника БК-0011(10,11M) [3IN1], Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста 30, Компакт 256(новодел),
    и ... Pentium 200 mmx, 386SX-16, AMD K6-300 ...

  12. #7
    Master
    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    905
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    205
    Поблагодарили
    153 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    работа ассемблера в целом похожа на разных процессорах, а разница в основном в типах адресации и еще в нескольких мелочах
    Вот как раз восьмеричная система PDP (УКНЦ) и куча способов адресации, а также их запись крышу по первости сносит капитально.
    После Спектрума как-то трудно привыкать, что вместо JP ADDR (у Z80) нужно вписывать шифрограммы типа JMP @#ADDR (когда нужна абсолютная адресация).

  13. #8
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    Нативная среда это круто, но это вызывает еще вопрос, а есть ли описание хорошее, как работать с нативной средой, и что она должна в себя включать ?
    Как пользоваться этой средой, описано в самой теме. Главное каталог файла rt11.exe поместить в переменную PATH. А далее можно создать каталог, в котором будете работать. В этом каталоге создаёте нужный вам MAC-файл на ассемблере. Потом вы его можете транслировать и линковать. Можно запустить rt11 и получить приглашение системы, уже вводить там команды. А можно в FAR-е дать команду rt11 MAC ваш_файл, запустится эмулятор, выполнить команду и выйдет обратно в Windows.

    - - - Добавлено - - -

    Цитата Сообщение от reddie Посмотреть сообщение
    Вот как раз восьмеричная система PDP (УКНЦ) и куча способов адресации, а также их запись крышу по первости сносит капитально.
    После Спектрума как-то трудно привыкать, что вместо JP ADDR (у Z80) нужно вписывать шифрограммы типа JMP @#ADDR (когда нужна абсолютная адресация).
    Восьмеричная система потому, что восемь регистров и восемь способов адресации. В итоге, если глядишь на дамп программы в восьмеричных кодах, то всё видно и всё понятно, в отличии от i8080/x86.
    Система команд ортогональная, все способы адресации можно применить ко всем регистрам, исключений почти нет. Если есть исключения, то их немного, легко запоминаются.
    Кроме абсолютного способа адресации JMP @#ADDR можно применить и относительный JMP ADDR, с которым программа становится перемещаемой.

  14. #9
    Master Аватар для electroscat
    Регистрация
    27.08.2019
    Адрес
    г. Ростов-на-Дону
    Сообщений
    986
    Спасибо Благодарностей отдано 
    435
    Спасибо Благодарностей получено 
    182
    Поблагодарили
    114 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    В этом каталоге создаёте нужный вам MAC-файл на ассемблере. Потом вы его можете транслировать и линковать.
    Вот я как раз про это и говорю. Есть ли описание конкретно этих процессов на УКНЦ ?
    Сейчас в коллекции:
    Вектор 06Ц.01(Минск), Вектор 06Ц.01(Волжский), Вектор 06Ц.02(Кишенев), Агат 7, Агат 9, Электроника 0511 УКНЦ (СЭМЗ), Электроника 0511 УКНЦ (КВАНТ) Х2, Поиск-1.03 (VGA),Электроника БК-0011(10,11M) [3IN1], Корвет ПК8010, Партнер 01.01, Спектр-001, БАЙТ(БПО_СВТ), Волна 48, Ленинград 48, Веста 30, Компакт 256(новодел),
    и ... Pentium 200 mmx, 386SX-16, AMD K6-300 ...

  15. #10
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,996
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    Есть ли описание конкретно этих процессов на УКНЦ ?
    Искать описание этих процессов под RT-11.
    Ссылки могу дать только на оригинальную документацию по RT-11.

Страница 1 из 9 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 206
    Последнее: 19.08.2020, 10:36
  2. Ответов: 15
    Последнее: 24.07.2014, 12:19
  3. Ответов: 1
    Последнее: 21.07.2014, 10:50
  4. Ответов: 5
    Последнее: 20.06.2005, 00:10

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •