Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-source)

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by jdigreze »

alemorf wrote:Я думаю может что то типа
Глобально думаешь :) Я бы не взялся в одну каску такое делать только из-за карт. В этом смысле что-нибудь типа Zynaps со случайной генерацией выглядит более привлекательно, но я не знаю, возможен ли на УК-НЦ полноэкранный скролл.
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by alemorf »

jdigreze wrote:
alemorf wrote:Я думаю может что то типа
Глобально думаешь :) Я бы не взялся в одну каску такое делать только из-за карт. В этом смысле что-нибудь типа Zynaps со случайной генерацией выглядит более привлекательно, но я не знаю, возможен ли на УК-НЦ полноэкранный скролл.
Карты я и не буду особо стараться рисовать. Может быть найдутся люди.

Написать именно сам движок.
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by alemorf »

Вчера вечером немного пописал.
Сделал алгоритм определяющий, какую команду перехода использовать - короткую (1 слово, переход на +-254 байта) или длинную (3 слова, переход на все 64K).

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

Потом переделал. Быстрее получилось вместо сдвига кода и коррекции адресов перекомпилировать программу еще раз.

Всё остальное поломал :)
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by alemorf »

Добавил возможность делать EMT вызовы прямо из Си. (EMT - это программные прерывания, аналог INT на X86. И это самый правильный способ обращения к BIOS).

Опиcываем прототип:
void putc(char c @ r0) @ emt 016;

Взываем
putc(0233); // Включение режима 256x256
putc(0232); // Отключение курсора

Результат

Code: Select all

0392 0722                      		//94     putc(0233); // Включение режима 256x256
0392 0722 012700 000233        		    mov #155, R0
0392 0726 104016               		    emt 14.
0392 0728                      		//95     putc(0232); // Отключение курсора
0392 0728 012700 000232        		    mov #154, R0
0392 072C 104016               		    emt 14.
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by alemorf »

Ну и возвращаемое значение тоже можно указывать

const char* puttext(const char* text @ r1, unsigned flags @ r2) @ emt 020, r1;
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by alemorf »

Уже и Сапер написанный на Си скомпилировался под БК0010

Image

Багов и недоделок еще куча.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by Shaos »

круто :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-sour

Post by alemorf »

На работе завал работы :)
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

pdp11asm

Post by Lavr »

SAA wrote:наконец мне повезло с инструментом разработки - pdp11asm Алексея Морозова.
Я лучше не видел и думаю не увижу, Алексею огромнейшее спасибо за это.
Я следил за этой разработкой и здесь:
http://zx-pk.ru/threads/26534-prostoj-k ... urce).html
и здесь:
viewtopic.php?f=95&t=16953
и я честно говоря, не понял, дошла ли разработка до логического конца?
И там и там писали и про ошибки и про некоторые недочеты, в то время как
https://github.com/vinxru/pdp11asm не существует более... :-?
iLavr
SAA
Senior
Posts: 136
Joined: 12 Jul 2016 21:30

Re: Микро-ЭВМ на КМ1801ВМ2

Post by SAA »

Lavr wrote:и я честно говоря, не понял, дошла ли разработка до логического конца?
А бывают ли такими любительские разработки? Честно говоря я даже и не думал что там могут быть серьезные ошибки.. Вроде бы инструмент меня не подвел, правда я на чистом ассемблере писал форт-ядро для "железа". Алексей учел даже возможность кодировки CP1251 в строках, не пришлось мучатся с русскими буквами (я их залил в знакогенератор в 1251) и делать перекодировку строк. Ничего плохого не могу сказать.
Lavr wrote:И там и там писали и про ошибки и про некоторые недочеты, в то время как
https://github.com/vinxru/pdp11asm не существует более... :-?
Да соглашусь, автор довольно сильно закрыт, но пока удается найти к нему подходы. Я брал его pdp11asm тут
https://github.com/alemorf/pdp11asm
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

SAA wrote:Честно говоря я даже и не думал что там могут быть серьезные ошибки.. Вроде бы инструмент меня не подвел, ...
Весь вопрос в том, что я не знаю ассемблера 180х, но видел, что те, кто знают, различные ошибки находили...
Если у меня под руками "ошибется" ассемблер 8080, z80, x86, то я, пожалуй, ошибку найду.
Но если "ошибется" незнакомый мне ассемблер 180х, то я долго не пойму, что получил "граблями по лбу"... :wink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

SAA wrote:Я брал его pdp11asm тут https://github.com/alemorf/pdp11asm
А Вы не могли помочь бы в этом вопросе? Ну нелады у меня с https://github.com/ :osad:
Мою Оперу 9.64 он давно не любит, специально зашел сегодня из-под Венды 7 и ИЕ-10.
А GitHub уже и ИЕ-10 не любит... :-?
github3.gif
Может быть, имеет смысл архив с контентом - вот сюда выложить, раз уж Вы говорите, что всё
проверено и "мин нет"?
viewtopic.php?f=95&t=16953&start=30
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Скачал и прицепил архив в этот самый топик:

viewtopic.php?p=132945#p132945
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

Shaos wrote:Скачал и прицепил архив в тот самый топик:
viewtopic.php?p=132945#p132945
Превелико тебе за это благодарен! :kruto:
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Я подумал лучше вначале прицепить - вдруг обсуждение новое заведётся страниц на 20 ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net