nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 29 Mar 2024 01:17



Reply to topic  [ 129 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 9  Next
Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-source) 
Author Message
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Shaos wrote:
Ну так это от автора компилируемой программы зависит - если поставил ключевое слово far, то ожидай что будет чуть медленнее, а если хочешь быстрее - не ставь far :)
Но это наверное тут оффтоп :)


Если это компилятор для БК0011, то не оффтоп.


09 Jan 2017 22:26
Profile WWW
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Новая порция багов

Баг 6

в листинге для PDP11 адреса почему то всё-равно идут в hex.

(Это кстати для совместимости с эмулятором b2m)

Баг 7

trap nn - ставит код 1137nn ( вместо 1044nn)

Баг 8

bitmap max 252*200

Баг 9

при make_binary_file "name" листинг не формируется, а не всегда надо make_bk0010_rom "name"


10 Jan 2017 07:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
alemorf wrote:
Shaos wrote:
Ну так это от автора компилируемой программы зависит - если поставил ключевое слово far, то ожидай что будет чуть медленнее, а если хочешь быстрее - не ставь far :)
Но это наверное тут оффтоп :)


Если это компилятор для БК0011, то не оффтоп.

А на БК можно банками щёлкать?

_________________
:dj: https://mastodon.social/@Shaos


10 Jan 2017 08:14
Profile WWW
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Shaos wrote:
alemorf wrote:
Если это компилятор для БК0011, то не оффтоп.

А на БК можно банками щёлкать?


БК-0011М - Руководство системного программиста

http://emuverse.ru/wiki/%D0%91%D0%9A-00 ... 1.8C.D1.8E


10 Jan 2017 08:35
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
alemorf wrote:
Shaos wrote:
alemorf wrote:
Если это компилятор для БК0011, то не оффтоп.

А на БК можно банками щёлкать?


БК-0011М - Руководство системного программиста

http://emuverse.ru/wiki/%D0%91%D0%9A-00 ... 1.8C.D1.8E

ну круто чо :roll:

_________________
:dj: https://mastodon.social/@Shaos


10 Jan 2017 10:39
Profile WWW
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
А где бы найти готовые математические функции для PDP11 (БК0010)

Умножение, деление int16, uint16, float, double
Ну и весь math.h для float, double

Должно же быть где то готовое.


12 Jan 2017 04:15
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
Гугл PDP11 math algorithm или что-то типа этого не помогают? ;)

Я могу порыться в своих PDP-шных бумажных книжках...

_________________
:dj: https://mastodon.social/@Shaos


12 Jan 2017 08:08
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Стопроцентно софт для PDP11 есть вкупе с её имеющимися эмуляторами.
К сожалению, у меня сейчас это тематика в архиве.

_________________
iLavr


12 Jan 2017 08:15
Profile
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Shaos wrote:
Гугл PDP11 math algorithm или что-то типа этого не помогают? ;)


Ну а зачем тогда форум нужен?

Я в первых строках не нашел. Да и брать первое попавшееся не хорошо. Сколько раз я не находил алгоритмы, например архивации, шифрования, рисования и т.п., спустя некотрое время на форумах мне говорили - вот же в 3 раза более быстрый алгоритм!

Shaos wrote:
Я могу порыться в своих PDP-шных бумажных книжках...


Да не. Я думал у кого то эти алгоритмы на диске лежат. Он ими 20 лет подряд пользовался.


12 Jan 2017 14:08
Profile WWW
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Выгрузил первый релиз компилятора Си.

Пока в нем многое не прикручено. Оно готово, только не прикручено. Макросы, глобальные переменые и т.п.

Скомпилировал простую демо для БК. Экран неспешно инвертируется XOR-ом свеху-вниз и наоборот.

Image

Код тут:

 
Code:
0001 0000                                org 1000h
0002 1000                            entry:
0003 1000 012706 010000                  MOV #1000h, SP
0004 1004 000410                         BR MAIN
0057 1006                            test:
0057 1006 162706 000002                  sub #2, SP
0057 100A                            //9     int a = b;
0057 100A 016666 000000 000002           mov 0(SP), 2(SP)
0057 1010 062706 000002                  add #2, SP
0057 1014 000207                         ret
0057 1016                            main:
0057 1016 162706 000006                  sub #6, SP
0057 101A                            //14     int16_t o = 1;
0057 101A 012766 000001 000002           mov #1, 2(SP)
0057 1020                            //15     o = o-o;
0057 1020 016600 000002                  mov 2(SP), R0
0057 1024 166600 000002                  sub 2(SP), R0
0057 1028 010066 000002                  mov R0, 2(SP)
0057 102C                            //17     test(1);
0057 102C 012746 000001                  mov #1, -(SP)
0057 1030 004727 010006                  jsr PC, #4102
0057 1034 062706 000002                  add #2, SP
0057 1038                            //18     for(;;)
0057 1038                            //19     {
0057 1038 012766 040000 000004           mov #16384, 4(SP)
0057 103E                            //21    do
0057 103E                            //22         {
0057 103E 005066 000006                  clr 6(SP)
0057 1042                            //24        do {
0057 1042                            //24        do {
0057 1042 017600 000004                  mov @4(SP), R0
0057 1046 012704 125252                  mov #43690, R4
0057 104A 074400                         xor R4, R0
0057 104C 010076 000004                  mov R0, @4(SP)
0057 1050                            //26            a++;
0057 1050 062766 000002 000004           add #2, 4(SP)
0057 1056                            //27       x++;
0057 1056 005266 000006                  inc 6(SP)
0057 105A                            //28        } while(x < 32);
0057 105A 022766 000040 000006           cmp #32, 6(SP)
0057 1060 101360                         bhi 01042h
0057 1062                            //29        do {
0057 1062                            //29        do {
0057 1062 017600 000004                  mov @4(SP), R0
0057 1066 012704 052525                  mov #21845, R4
0057 106A 074400                         xor R4, R0
0057 106C 010076 000004                  mov R0, @4(SP)
0057 1070                            //31            a++;
0057 1070 062766 000002 000004           add #2, 4(SP)
0057 1076                            //32       x++;
0057 1076 005266 000006                  inc 6(SP)
0057 107A                            //33        } while(x < 64);
0057 107A 022766 000100 000006           cmp #64, 6(SP)
0057 1080 101360                         bhi 01062h
0057 1082                            //35    while(a < (uint16_t*)0x8000);
0057 1082 022766 100000 000004           cmp #32768, 4(SP)
0057 1088 101332                         bhi 0103Eh
0057 108A                            //37         a = (uint16_t*)0x8000;
0057 108A 012766 100000 000004           mov #32768, 4(SP)
0057 1090                            //38    do
0057 1090                            //39         {
0057 1090 005066 000006                  clr 6(SP)
0057 1094                            //41        do {
0057 1094                            //41        do {
0057 1094 162766 000002 000004           sub #2, 4(SP)
0057 109A                            //43            *a ^= 0xAAAA;
0057 109A 017600 000004                  mov @4(SP), R0
0057 109E 012704 125252                  mov #43690, R4
0057 10A2 074400                         xor R4, R0
0057 10A4 010076 000004                  mov R0, @4(SP)
0057 10A8                            //44       x++;
0057 10A8 005266 000006                  inc 6(SP)
0057 10AC                            //45        } while(x < 32);
0057 10AC 022766 000040 000006           cmp #32, 6(SP)
0057 10B2 101360                         bhi 01094h
0057 10B4                            //46        do {
0057 10B4                            //46        do {
0057 10B4 162766 000002 000004           sub #2, 4(SP)
0057 10BA                            //48            *a ^= 0x5555;
0057 10BA 017600 000004                  mov @4(SP), R0
0057 10BE 012704 052525                  mov #21845, R4
0057 10C2 074400                         xor R4, R0
0057 10C4 010076 000004                  mov R0, @4(SP)
0057 10C8                            //49       x++;
0057 10C8 005266 000006                  inc 6(SP)
0057 10CC                            //50        } while(x < 64);
0057 10CC 022766 000100 000006           cmp #64, 6(SP)
0057 10D2 101360                         bhi 010B4h
0057 10D4                            //52    while(a > (uint16_t*)0x4000);
0057 10D4 022766 040000 000004           cmp #16384, 4(SP)
0057 10DA 103732                         blo 01090h
0057 10DC 000655                         br 01038h
0057 10DE 062706 000006                  add #6, SP
0057 10E2 000207                         ret
0058 10E4


12 Jan 2017 14:14
Profile WWW
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Для отладки компилятора нужно разработать какую нибудь простую игру. Поэтому возникло два вопроса:
1) УКНЦ или БК0010
2) Какую простую игру выбрать?


16 Jan 2017 03:05
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
Я голосую за БК :)

_________________
:dj: https://mastodon.social/@Shaos


16 Jan 2017 06:35
Profile WWW
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Простую игру? Например "Десятка". Игровой алгоритм, по сути, сводится к созданию массива из не зачёркнутых значений, ну, может быть факультативно - к подсказкам.
 "Если кто не помнит со студенческой скамьи"
Начальный расклад:
123456789
111213141
516171819
;)


P.S. Если кто совсем не знаком, то отпишитесь, попробую изложить суть более подробно.


16 Jan 2017 06:46
Profile
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Я думаю может что то типа

Image

И тут УКНЦ с большим кол-вом цветов с двумя процессорами на вдвое большей скорости будут чуть более уместны. Но с другой стороны на УКНЦ я еще ничего не писал.

Или такое

Image


16 Jan 2017 06:58
Profile WWW
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
Или SD карту припаять?

За одно с STM32 разберусь. Я два года назад закупился ими, но так и не прикоснулся.


16 Jan 2017 11:53
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 129 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 9  Next

Who is online

Users browsing this forum: No registered users and 15 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.