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

User Tag List

Страница 16 из 16 ПерваяПервая ... 1213141516
Показано с 151 по 155 из 155

Тема: sjasmplus от z00m

  1. #151
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    45
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию v1.14.0 released

    https://github.com/z00m128/sjasmplus...es/tag/v1.14.0

    v1.14.0 changelog:
    - INCLUDE bugfix, now searching paths according to original documentation (may break some projects)
    - UNDEFINE had undocumented feature of removing also labels, cancelled (was broken beyond repair)
    - R800 `MULUB` was producing wrong opcode all those years... fixed
    - MODULE names can't contain dot any more! MODULE and ENDMODULE resets non-local label to "_"
    - --syntax option: "m" (switch off low-mem access warning) and "M" added, "A" removed
    - macro expansion can be inhibited by using "@" in front of instruction
    - expression evaluator was not stricly 32 bit (64b binaries could have produced different results than 32b binaries)
    - reading memory addresses 0..255 directly emits warning, use "; ok" comment to suppress it.
    - several tests added to improve the code coverage: https://coveralls.io/github/z00m128/sjasmplus
    - as tests were added, minor bugs were found and squashed (errors wording, etc)

    Documentation http://z00m128.github.io/sjasmplus/documentation.html (or in the package/cloned source).

    Last time I wrote there will be no 1.14, but some bugfixes did change the behaviour of the assembler a bit more than I wished (may even break some old projects, although unlikely or they can be fixed very easily), so I moved from 1.13.

    But the idea is still the same, this is one of the last 1.x versions and there will be bugfix-only on 1.x in the future. And I'm going soon to start the "2.x" branch (which will probably start as 1.90.0, releasing changes feature by feature, so you will be able to follow the development all the time, the 2.0 will be released when the changes with regard to syntax and behaviour will be finished and stabilized).

    If you have some project which did work with v1.10+ and is broken with v1.14, let me know about the issue. It may still require some changes on the project (it was not my goal to stay 100% backward compatible), but the changes should be very small and simple to do.

    If you have some non-upgrade issues, or feature requests, feel free to ask here, or add feature request in github.

    Thank you for your support everyone, have a great time.

  2. Эти 5 пользователя(ей) поблагодарили Ped7g за это полезное сообщение:

    Bedazzle (18.08.2019), Black Cat / Era CG (18.08.2019), NEO SPECTRUMAN (17.08.2019), Protom (18.08.2019), Rusazar (17.08.2019)

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

  4. #152
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    45
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Кажется получилось!
    ...
    Цитата Сообщение от Demige Посмотреть сообщение
    In my project I have much text data (text dialogs).
    ...
    I finally found a time to review Reobne's script, and it's excellent.

    I did adjust it slightly (to detect markers at beginning of line) and few other minor changes, and added it as official lua example in the repository:
    https://github.com/z00m128/sjasmplus...s/lua_examples (all the "lua_inctext" files/folder)
    (for your project you need only the https://github.com/z00m128/sjasmplus...ua_inctext.lua file and "includelua" it in your ASM source, remaining files are part of example + test)

    So the "inc_text" file can now look like this:
    Код:
    >>Text1
    Hello!!
    Ready?
    >>	DB 0     ; turn it into zero-terminated string by adding zero
    >>Text2
    SOS!!!
     >> \_o_/
    >>Text3
    GAME OVER
    PRESS ANY KEY
    >>Final
    >>	RLCA
    >>	JP Final
    >>	BYTE "SEVER",0,"BURAN",0
    It's still possible to use assembly lines in the file (just prepend them with the marker you want to use, default marker is ">>"), which I was at first a bit sceptical about, if I should keep it there, but after some thinking... it doesn't add any extra syntax to original text+labels thing, and it allows to insert short code or zero bytes after string like ">> DB 0". So I kept that feature there.

    Also it did show bug in listing file of v1.14.0 (when bytes are emitted from lua, and parse_line is used too), so I fixed it, if you want "correct" listing like in the example, you will have to build sjasmplus from the github source (or get v1.14.1 release later, when it will be released).

    So thank you again for your help with this, and for your patience, in the end it seems quite solid feature.

    (BTW v1.14.1 probably soon, as the Microsoft VS builds were very broken and I managed to configure windows builds in the Cirrus CI, so now I can check myself if I did break the windows builds.. still a bit cumbersome, but better than no windows check at all, if you are building your own sjasmplus from sources and using VS, definitely avoid v1.14.0 and get fresh sources from github, there are many problems fixed for VS builds ... or just build with MinGW/MSYS2/etc, the GCC windows builds were OK all the time, just VS is difficult to maintain for me).

  5. Этот пользователь поблагодарил Ped7g за это полезное сообщение:

    Reobne (25.08.2019)

  6. #153
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    45
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://github.com/z00m128/sjasmplus...es/tag/v1.14.1

    ... just small bugfixes/polish, documentation refresh, etc... nothing important, if v1.14.0 is working for you, the v1.14.1 should do the same.

    If you did want to build sjasmplus from sources (or debug it), with MS Visual Studio, then upgrade to v1.14.1 for sure, there were serious bugs in older versions, making VS builds crashing on some features. Now it should work mostly identically to official exe (built with MinGW GCC8.2), except few minor differences in `--fullpath` handling, etc..

    edit: I'm very interested into any bug reports or issues, as the plan is still to make this one of the last v1.x releases, so I hope it will be rock solid stable, and everyone who needs Z80 assembler can use this version for many years without running into some trivial bug or getting damaged machine code from correct ASM source.

    Checking my TODO: there is one open issue when you would try to assemble STDIN and literally input source code manually from console, then it needs many many Ctrl+D presses to finish the assembling (should work well when you just redirect some output of previous command to sjasmplus), and otherwise I am not aware of any "bug", everything else is "feature" :P
    Последний раз редактировалось Ped7g; 30.08.2019 в 16:18.

  7. #154
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    2,877
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос: условия в макросах добавили или нет ещё?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...

  8. #155
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    45
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    Вопрос: условия в макросах добавили или нет ещё?
    What do you mean precisely? The reasonably simple cases work for me, like:

    Код:
    ; conditions_in_macro.asm
    testCond    MACRO arg1?, arg2?, arg3?
                    IF arg1?
                        DB  arg2?
                        IF !arg1?
                            never happens
                        ENDIF
                    ELSE
                        DB  arg3?
                        IF $8004 <= $
                            DB  "..."
                        ELSE
                            jr  nc,.localLabelInCondition + '!'
                        ENDIF
    .localLabelInCondition
                    ENDIF
    
                ENDM
        
            DEVICE ZXSPECTRUM48 : ORG $8000
            OUTPUT "conditions_in_macro.bin"
            testCond 1, 'A', 'B'    ; A
            testCond 0, 'A', 'B'    ; B0!
            DB " "                  ; " "
            testCond 0, 'C', 'D'    ; D...
            OUTEND
    The binary contains expected "AB0! D..."

    Maybe if you would combine them also with DUP and emit macro inside macro which has conditionals, etc... I'm not claiming it's 100% bug free, but AFAIK it works.

    If you have some example of something what doesn't produce correct result, just post it here or open issue on github, thank you.

    -----------------------------------------------------------------

    EDIT: one thing "obviously" (if you know how sjasmplus works, hehe) does NOT work, you can't only start/end conditional block in macro, i.e. the whole block must belong to the same macro.. i.e. things like:

    Код:
    MyEndIf MACRO
            ENDIF
        ENDM
    
        IF 1
            nop
        MyEndIf
    will NOT work, and I don't have any plan to support them, not even in v2.x (I mean, they may happen by accident if I rewrite the parser in certain way and I was toying with that idea for a short while, but I don't find these important, actually opposite, seems like code smell).

    edit2: unfortunately, similar logic does apply DUP/EDUP blocks and others, basically any block (dup-edup, if-endif, macro-endm) should be nested in other block fully, interleaving start/end of different types of blocks will in 99% not work... and that's something I'm thinking about for v2.x, to allow things like conditional EDUP, but it's very complicated, so rather do not expect this ever working. I'm also not completely convinced this is real limitation, so far I had never issues to organize my code around these rules, but as always, by posting real-world issue with real project helps tremendously to shift my bias...
    Последний раз редактировалось Ped7g; 10.09.2019 в 21:05.

Страница 16 из 16 ПерваяПервая ... 1213141516

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

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

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

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1612
    Последнее: 30.07.2019, 19:31
  2. Исходники TR-DOS для SjASMPlus
    от Keeper в разделе Программирование
    Ответов: 20
    Последнее: 11.02.2011, 11:57
  3. Запуск STS из .sna, сгенерированного sjasmplus.
    от siril в разделе Программирование
    Ответов: 7
    Последнее: 11.10.2010, 21:33
  4. Breakpoints в связке Sjasmplus+UnrealSpeccy
    от Kurles в разделе Программирование
    Ответов: 19
    Последнее: 26.01.2009, 12:36
  5. Disturbed COverMAnia ( music disk with z00m music collection)
    от kyv в разделе Музыка
    Ответов: 10
    Последнее: 27.03.2008, 10:01

Ваши права

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