nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 22 Feb 2024 15:23



Reply to topic  [ 126 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8, 9  Next
Кросс-ассемблер для PDP11/8080 (Windows/Linux, open-source) 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Сам-то прочитай, что написал:
Shaos wrote:
его надо собрать относительно новым компилятором C++, способным генерировать код для Win9X,
а таковых я в природе не наблюдаю...

Я полагаю, что такого никогда и не будет... хоть я и не содержу семью заработками на C++... :mrgreen:

Вопрос в том, что в коде настолько критично, что собирается только под последние Венды компилятором новее 2015 ?

_________________
iLavr


06 Feb 2018 18:52
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22164
Location: Silicon Valley
Reply with quote
Lavr wrote:
Вопрос в том, что в коде настолько критично, что собирается только под последние Венды компилятором новее 2015 ?

Новые фенечки C++ сильно упрощающие процесс программирования (для тех, кто в теме) - STL в новой реинкарнации, обновлённые exceptions etc.

Наиболее одиозные нововведения стандарта C++11 я убрал - как например автоматическое выведение типа при указании auto и упрощённый цикл for:

было
Code:
for(auto& f : fixups)

стало
Code:
for(std::vector<Fixup>::iterator it=fixups.begin();it!=fixups.end();++it)

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


06 Feb 2018 19:05
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Наиболее одиозные нововведения стандарта C++11 я убрал - как например автоматическое выведение типа при указании auto и упрощённый цикл for:

А чего исходниками не поделился, глянуть как ты это сделал?

P.S. Ну а про "одиозные нововведения стандарта C++11" вобще-то пишут следующее:
Quote:
При разработке каждого раздела будущего стандарта комитет использовал ряд правил:
- поддержка стабильности языка и обеспечение совместимости с C++98 и, по возможности, с Си;

И пишут в ряде источников, что по идее должно всё собираться "в VC98. Ну, или хотя бы в 2005 студии".

_________________
iLavr


07 Feb 2018 01:22
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22164
Location: Silicon Valley
Reply with quote
Нагло врут :)

А исходники мои лежат на гитхабе - могу время от времени стягивать и сюда цеплять...

P.S. Прицепил на первой странице топика: http://www.nedopc.org/forum/viewtopic.php?p=132945#p132945

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


07 Feb 2018 08:03
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Спасибо. Скачал - посмотрю...

_________________
iLavr


07 Feb 2018 10:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22164
Location: Silicon Valley
Reply with quote
Lavr wrote:
Спасибо. Скачал - посмотрю...

Вот только я оттуда вытер все куски #ifdef WIN32 :roll:
Так что под винды оно боюсь уже не соберётся...

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


08 Feb 2018 08:17
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Так что под винды оно боюсь уже не соберётся...

Оно и так под Вынь 98 не соберется. Я хочу глянуть, что и в какую сторону ты там менял...

_________________
iLavr


08 Feb 2018 09:31
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22164
Location: Silicon Valley
Reply with quote
После некоторых прошлогодних изменений pdp11asm перестал собирать исходники патча прошивки МК85 :(

Спотыкается вот на этой строчке:
Code:
   jmp   @funtab-01F8H(r1)   ;2*FCh=1F8h @@@

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


26 Apr 2019 20:17
Profile WWW
Novelist
User avatar

Joined: 14 Aug 2018 14:30
Posts: 49
Location: Szczecin, Польша
Reply with quote
По моему мнению виноват лишний код обработки отрицательных чисел в модуле "parser.cpp".
Предлагаю всё это удалить:

строка 278:
Code:
/* more changes per new patch from Ivanq */
  bool neg = false;
  if(c=='-') {
    neg = true;
    if(*cursor>='0' && *cursor<='9') {
      c = *cursor++;
    }
  }


строка 344:
Code:
    if(neg) n = 0-n;


28 Apr 2019 04:22
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22164
Location: Silicon Valley
Reply with quote
Я тоже на это место грешу, но человек пытался доброе дело сделать - поддержать отрицательные числа...

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


28 Apr 2019 07:45
Profile WWW
Novelist
User avatar

Joined: 14 Aug 2018 14:30
Posts: 49
Location: Szczecin, Польша
Reply with quote
Я проверил, что отрицательные числа поддерживаются и без данных фрагментов.


28 Apr 2019 08:09
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22164
Location: Silicon Valley
Reply with quote
Наконец-то нашёл время откатить это изменение:

https://gitlab.com/shaos/pdp11asm85/commit/4aa845bf3f6108d5d2add3b81e860c8837089f2b

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


03 Jun 2019 20:00
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Наконец-то нашёл время откатить это изменение:
https://gitlab.com/shaos/pdp11asm85/commit/4aa845bf3f6108d5d2add3b81e860c8837089f2b

Скачал твою версию Кросс-ассемблер для PDP11/8080 с первой страницы топика:
http://www.nedopc.org/forum/viewtopic.php?f=95&t=16953#p132945
Развернул под Windows 7, в качестве теста подсунул ему Монитор отсюда:
MON1986.ASM
В нём заменил строчку:
Code:
;      .psect  1000 = 200h
; на
       ORG  1000

Компильнул pdp11asm.exe, компильнулось без ошибок.

Сравнил через утилиту fc (file compare) с опцией /b - бинарное сравнение с оригиналом:
MONITOR_LH.zip

Обнаружилось 2 разночтения:
Quote:
; Сравнение файлов C:\TEMP\PDP11ASM\MON1986.bin C:\TEMP\PDP11ASM\MONITOR_LH.bin
; 0000023B: 84 85 1073
; 000002F3: 84 85 1363


По моим прикидкам это попадает на:
Code:
       BVS         M1116
и
       BVS         M1452

Возможно, я где-то ошибся в пересчёте hex-octal, но, тем не менее, глянь, что там не так,
у меня этот код собирался полностью идентично оригиналу...

_________________
iLavr


02 Feb 2021 07:21
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Обнаружилось 2 разночтения:
Quote:
; Сравнение файлов C:\TEMP\PDP11ASM\MON1986.bin C:\TEMP\PDP11ASM\MONITOR_LH.bin
; 0000023B: 84 85 1073
; 000002F3: 84 85 1363


По моим прикидкам это попадает на:
Code:
       BVS         M1116
и
       BVS         M1452

Да, судя по исходнику, коды для BVS и BVC перепутаны:
Attachment:
BVS.gif
BVS.gif [ 7.26 KiB | Viewed 9643 times ]
Attachment:
BVS1.gif
BVS1.gif [ 86.79 KiB | Viewed 9643 times ]

Это в файлах pdp11.cpp и c_asm_pdp11.h...

P.S. В общем-то без пересборки файл pdp11asm.exe патчится легко - по смещению, как на картинке,
символы BVS и BVC надо поменять местами, как показано
:
Attachment:
BVS2.gif
BVS2.gif [ 20.68 KiB | Viewed 9641 times ]

_________________
iLavr


02 Feb 2021 08:29
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22164
Location: Silicon Valley
Reply with quote
Lavr wrote:
Да, судя по исходнику, коды для BVS и BVC перепутаны:

Image

Это в файлах pdp11.cpp и c_asm_pdp11.h...

понял - исправлю

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


02 Feb 2021 13:26
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 126 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8, 9  Next

Who is online

Users browsing this forum: No registered users and 6 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.