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

User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Простой кросс-ассемблер для PDP11 (Windows/Linux, opensource)

  1. #11
    Veteran
    Регистрация
    10.07.2013
    Адрес
    г. Москва
    Сообщений
    1,432
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как можно собрать вот это?)
    Вложения Вложения

  2. #12
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    537
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    104 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот, кстати, у меня тоже вопрос возник. Если есть кросс-Макро11, то как им пользоваться? Он же obj файлы создаёт. Есть ли в природе кросс линковщик, который собирает из obj файлов исполняемый бинарник для РТ-11?
    Или сложные проекты кросс средствами никто не собирает?
    Про консольный эмулятор РТ11 для макро11 от Patrona мне известно, это единственное нативное средство собрать sav файл из исходников, но нужен именно кросс-Линк, для линковки.

  3. #13
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    это единственное
    не единственное, можно ещё в эмуляторе ДВК Patrona в родной среде.


    Цитата Сообщение от gid Посмотреть сообщение
    Про консольный эмулятор РТ11 для макро11 от Patrona мне известно
    А что мешает использовать LINK он же с NTFS-папкой работает (так же как и эмулятор ДВК!), наберёте команду руками или бат файл нужный напишите и будет вам счастье )))
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  4. #14
    Banned
    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DJs3000 Посмотреть сообщение
    А как можно собрать вот это?)
    Можно доработать транслятор.

    Я глянул файлы и заметил один конфликт с существующим компилятором. У меня любое некомпилируемое слово - это метка. Число - метка. Двоеточние необязательно и переводы строки игнорируются. Меня просили так сделать, потому что был какой то такой компилятор.

    Вот например:

    Код:
    LABEL1	MOV R0, R1
    	MOV R2, R4	MOV R3, R6
    2	MOV R4, R5
    LABEL2 LABEL3 NOP NOP NOP LABEL 4 NOP NOP
    А в файлах выше - любое число выводится как байт (аналог .BYTE или DB). Или слово.

    Код:
    TBIKLC:	0*2+TBPKL0,1*2+TBPKL0,2*2+TBPKL0,3*2+TBPKL0,4*2+TBPKL0
    	0*2+TBPKL1,1*2+TBPKL1,2*2+TBPKL1,3*2+TBPKL1,4*2+TBPKL1
    	0*2+TBPKL2,1*2+TBPKL2,2*2+TBPKL2,3*2+TBPKL2,4*2+TBPKL2
    	0*2+TBPKL3,1*2+TBPKL3,2*2+TBPKL3,3*2+TBPKL3,4*2+TBPKL3
    Если совместить вольности всех ассемблеров, то получится какой то Форт. Что бы мы не написали - оно скомпилируется.

    Еще и макросы прямо в код!
    Код:
    	MOV	#OV460,@#460
    	MOV	#340,@#462
    	CALL	PPSTAR
    	AR2TY	#242
    	TY	#60
    	TY	#14
    	AR2TY	#240
    	TY	#66
    	AR2TY	#241
    	TY	#60
    	TY	#35,#23.,#0,#2
    RESTAR:	MOV	#50.,WERXOR
    	MOV	#5,GORXOR
    Это вообще что делает и как компилить?

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

    Как время появится, заменю локальные метки с чисел на числа с долларом. Это решает проблемы с командами перехода. Число в аргументе команды это метка или смещение? И вообще с локальными метками.

    Добавлю include. Перекинуть код из другого проекта - это не долго.

    Добавлю режимы:
    Включить/выключить перевод строки
    Включить/выключить : в метках
    Включить/выключить обязательное использование .DB
    Последний раз редактировалось vinxru; 12.05.2016 в 11:05.

  5. #15
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    537
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    104 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    наберёте команду руками или бат файл нужный напишите и будет вам счастье )))
    Так и делаю. т.е. делал изредка, когда приперало. Просто при этом все мои исходники приходится приводить в строгое соответствие со стандартами макро11. А я не пользуюсь РТ11 и не пишу для неё, я на БКшке Андосом как самым простым средством пользуюсь. А кросс средства, если они идут в виде исходников, всегда под свои нужды допилить можно. И очень раздражает всего 6 символов в метке. Самоочевидные уникальные имена быстро заканчиваются.

    Цитата Сообщение от vinxru Посмотреть сообщение
    Можно доработать транслятор.
    До макро11 довольно много дорабатывать придётся, исходники выше - именно каноническое макро11.
    Цитата Сообщение от vinxru Посмотреть сообщение
    У меня любое некомпилируемое слово - это метка. Число - метка.
    Плохое решение, ставшее следствием необязательности двоеточия после метки.
    И число не всегда должно быть меткой, в некоторых случаях оно должно быть числом - абсолютным адресом.
    В зависимости от типа ассемблерной команды нужно по-разному парсить аргументы.
    Например. В командах ветвления и SOB допускаются арифметические выражения с числами и глобальными метками или локальная метка.
    В командах, где 6-битовые поля [адресация][регистр] типа TST, MOV и т.п. допускаются арифметические выражения с числами и глобальными метками, а локальная метка - ошибка компиляции. Если арифметическое выражение - просто одно число, - то это адрес, тип адресации 6 или 7 если есть '@'.
    В командах типа EMT, MARK допускаются арифметические выражения с числами и глобальными метками (константными переменными), которые на данный момент уже определены, не определены - ошибка компиляции.
    В арифметических выражениях не допускаются локальные метки, т.к. непонятно, как их от чисел отличать. Т.к. во многих ассемблерах локальной меткой считается любое слово, начинающееся с цифры и заканчивающееся двоеточием. И эта конструкция конфликтует с любым типом записи чисел, хоть префиксной, хоть постфиксной.

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

    Цитата Сообщение от vinxru Посмотреть сообщение
    переводы строки игнорируются.
    А переводы строки вроде бы все компиляторы игнорируют, кроме спец. случаев. Перевод строки используется чтобы найти конец комментария и сгенерировать ошибку, если он встретится внутри ограничивающих символов команды .ASCII
    Цитата Сообщение от vinxru Посмотреть сообщение
    получится какой то Форт. Что бы мы не написали - оно скомпилируется.
    И как правило, совсем не так, как ожидали. Так что лучше и не пытаться делать универсальный комбайн.

    Цитата Сообщение от vinxru Посмотреть сообщение
    Число в аргументе команды это метка или смещение?
    В командах ветвления - однозначно метка (в нормальных ассемблерах), иначе никак не отловить ошибку неверного перехода.

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

    Цитата Сообщение от vinxru Посмотреть сообщение
    заменю локальные метки с чисел на числа с долларом
    Лучше знак доллара внести в разрешённые символы для метки, считать его ещё одной буквой. Т.к. A$BLK1 - вполне себе легальное имя метки, как и 30$2$
    Последний раз редактировалось gid; 12.05.2016 в 14:57.

  6. #16
    Master
    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    743
    Спасибо Благодарностей отдано 
    223
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    А вот, кстати, у меня тоже вопрос возник. Если есть кросс-Макро11, то как им пользоваться? Он же obj файлы создаёт. Есть ли в природе кросс линковщик, который собирает из obj файлов исполняемый бинарник для РТ-11?
    http://zx-pk.ru/threads/20626-kross-...l=1#post803922
    Немного попилить и заработает с РТ, а для АнДОСа и большие проекты с ним собирал.

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

  8. #17
    Member
    Регистрация
    13.01.2010
    Адрес
    Подольск
    Сообщений
    41
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а как бы сделать так что-бы адреса в листинге были не шестнадцатиричные, а восьмиричные?

  9. #18
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    537
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    104 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот поправленный pdp11asm.
    Исправлен опкод команды TRAP.
    И адреса в листинге восьмеричные.
    Для работы требуется VCRedist 2015
    pdp11asm.7z

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

    Однако, пересмотрев разные кросс ассемблеры, я пришёл к выводу, что таки нужно писать свой кросс ассемблер, для себя.
    В результате множества неудачных попыток сделать сделать нечто, я решил сделать хоть что-то. И похоже, что-то получилось BKTurbo8.rar.
    У меня были исходники ассемблера Turbo8, вот на их основе и сделан кросс ассемблер, со всеми ограниченными возможностями в виде отсутствия продвинутых арифметических выражений, и понимания только восьмеричных и десятичных чисел.
    В архиве исходники и естественно, бинарники, очень краткая справка, как использовать и примеры использования.
    Вот с примерами туго, первый пример - игра Miner из pdp11asm vinxru - это для сравнения, как оно делается там, и как тут. Ещё несколько игр: tetris (как же без него), xonix, race-play. И самое интересное, и ради чего были приложены усилия по созданию кросс ассемблера - дизассемблированные исходники музыкального редактора Rock Monitor 3.

    На данный момент это сильно ранняя версия, обладающая недостатками, видимыми сразу. Пользоваться немного неудобно, и я пока собираю сам для себя лист желаний по улучшению работы. Выкладываю в общий доступ для предложений и критики со стороны.
    Последний раз редактировалось gid; 05.04.2017 в 14:01. Причина: Ссылка на архив изменена

  10. #19
    Veteran
    Регистрация
    10.07.2013
    Адрес
    г. Москва
    Сообщений
    1,432
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто-нибудь может собрать исходники из 11 сообщения? Это исходники УКНЦ биоса, причем это более новая версия по сравнению с тем, что стоит во всех наших УКНЦ. Я уже давно прошу чтоб его собрали, но никто не может

  11. #20
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    537
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    134
    Поблагодарили
    104 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DJs3000 Посмотреть сообщение
    Кто-нибудь может собрать исходники из 11 сообщения?
    Без инструкции по сборке этот набор разрозненных файлов может собрать только настоящий УКНЦшник, который знает, что из этого является отдельным sav файлом, а что надо слинковывать между собой, и как и в каком порядке слинковывать.
    Эти файлы спокойно компилируются в obj в классическом макро11, только толку от этого ноль, когда не знаешь, что с ними дальше делать.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1663
    Последнее: 19.06.2021, 01:36
  2. Простой PDP11 CPU модуль на Н1806ВМ2
    от bigral в разделе ДВК, УКНЦ
    Ответов: 141
    Последнее: 20.10.2019, 15:27

Ваши права

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