nedoPC.org

Community for electronics hobbyists, established in 2002
Last visit was: 08 Nov 2024 17:26
It is currently 08 Nov 2024 17:26



 [ 129 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: Россия
Сам-то прочитай, что написал:
Shaos wrote:
его надо собрать относительно новым компилятором C++, способным генерировать код для Win9X,
а таковых я в природе не наблюдаю...

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

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

_________________
iLavr


06 Feb 2018 18:52
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23398
Location: Silicon Valley
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)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


06 Feb 2018 19:05 WWW
Supreme God
User avatar

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

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

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

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

_________________
iLavr


07 Feb 2018 01:22
Admin
User avatar

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

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

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


07 Feb 2018 08:03 WWW
Supreme God
User avatar

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

_________________
iLavr


07 Feb 2018 10:50
Admin
User avatar

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

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


08 Feb 2018 08:17 WWW
Supreme God
User avatar

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

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

_________________
iLavr


08 Feb 2018 09:31
Admin
User avatar

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

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


26 Apr 2019 20:17 WWW
Novelist
User avatar

Joined: 14 Aug 2018 14:30
Posts: 49
Location: Szczecin, Польша
По моему мнению виноват лишний код обработки отрицательных чисел в модуле "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 WWW
Admin
User avatar

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


28 Apr 2019 07:45 WWW
Novelist
User avatar

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


28 Apr 2019 08:09 WWW
Admin
User avatar

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

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


03 Jun 2019 20:00 WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
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
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
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
Attachment:
BVS1.gif

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

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


You do not have the required permissions to view the files attached to this post.

_________________
iLavr


02 Feb 2021 08:29
Admin
User avatar

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

Image

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

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

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


02 Feb 2021 13:26 WWW
 [ 129 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8, 9  Next

Who is online

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

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