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

User Tag List

Страница 43 из 44 ПерваяПервая ... 394041424344 ПоследняяПоследняя
Показано с 421 по 430 из 432

Тема: SjASMPlus от z00m

  1. #421
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,241
    Спасибо Благодарностей отдано 
    359
    Спасибо Благодарностей получено 
    547
    Поблагодарили
    435 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ped7g, а можно добавить режим
    чтоб при перезаписи выдавались предупреждения?

    чтоб такой код
    Код:
     org $C000
    xor a
    xor b
    xor c
    xor d
    
     org $C001
    xor e
    выдавал
    warning $C001 was overwriten


    ну и если не заводить отдельный массив для этого
    то хотя бы проверять на $00 перед записью

    nop-ов не так много в коде
    и лучше хоть какая то проверка чем никакой...

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

  3. #422
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    159
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    50 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Current status: no such feature

    Future:
    - not as default for sure, because there are projects using the pattern of device memory re-use to build different binary blocks at the same position (savebin/savetap between).
    - as option: possible... sounds like some work, to develop some simple and fast code for it, as there is no simple test (except having usage-bitmap for whole device memory, but that sounds ugly. But maybe there is some other way, maybe some lists of ranges and checking for overlaps.
    - workaround: use less `ORG`, use more `ds/align` to advance to next block of code, use ASSERT or MMU with "w" or "e" mode to guard you against making current section bigger than what you expected, etc...

    But it sounds like non-trivial thing to add, and also you should be able to work-around it with ASSERT quite well. Switching one option ON would be even better, but doesn't feel to me like critical feature needed ASAP.

    But I will keep it on mind... (maybe add enhancement-issue on github so I don't forget about it )

  4. #423
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,241
    Спасибо Благодарностей отдано 
    359
    Спасибо Благодарностей получено 
    547
    Поблагодарили
    435 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    - not as default for sure
    это нужно только для отладочных проверочных целей
    так как не всегда ясно правильно ли все расположено в памяти или нет
    а проверить нет возможности

    у меня 100% org-ов генерируется при помощи lua
    а на сколько это правильно происходит в сочетании с макросами переменной длинны не ясно

    - - - Добавлено - - -

    Цитата Сообщение от Ped7g Посмотреть сообщение
    use more `ds/align`
    они не рационально расходуют память
    Последний раз редактировалось NEO SPECTRUMAN; 16.01.2021 в 03:03.

  5. #424
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,241
    Спасибо Благодарностей отдано 
    359
    Спасибо Благодарностей получено 
    547
    Поблагодарили
    435 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вот такая ошибочная конструкция не выдает ошибку и не генерирует никакой код
    Код:
    	macro test
    	test
    	endm
    
    	org $8000
    	test
    все что видно на экране
    SjASMPlus Z80 Cross-Assembler v1.18.0 (https://github.com/z00m128/sjasmplus)
    и найти эту ошибку трудно


    с таким же успехом не работает такой не правильный код
    Код:
    	macro exx
    	exx
    	endm
    
    	org $8000
    	exx

    а вот такая конструкция прекрасно рабоатет
    Код:
    	macro EXX
    	exx
    	endm
    
    	org $8000
    	EXX
    я длительное время подобным пользовался и даже не замечал что это зацикленный макрос

  6. #425
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    159
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    50 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    For stuff like this - intentionally wanting to substitute legal instruction by your own macro:
    Код:
    	macro exx
    	; exx    ; infinite cycle
             @exx  ; Z80 exx, avoiding infinite cycle of macro calling
    	endm
    you can use the "@" operator to prevent macro matching, ie. `@exx` inside macro definition to do real Z80 `exx`, and in your code you can then:
    Код:
        exx  ; does the macro
       @exx ; does the Z80 exx even if "exx" macro exists
    The error messages and state recovery in case of infinite loops in DEFINE/MACRO definitions is really bad, sometimes it will raise max-nesting limit, sometimes it will just crash the assembler - I know about it, but I have currently no mood to work on this stuff

    Код:
    	macro test
    	test
    	endm
    
    	org $8000
    	test
    ^^ this needs just few changes to be legit code, for example:
    Код:
    	macro test
    nesting = nesting - 1
            IF 0 < nesting
    	test
            ENDIF
    	endm
    
    	org $8000
    nesting = 4
    	test
    ^^^ this is valid source, and will compile fine, but I don't see how you would consider it "different" from yours infinite example (except hitting some guardian-value to notice it's in cycle too much).

    So it's not so easy to guard against it... there are some protections in sjasmplus which should catch infinite substitutions and loops, but they are not working that good at this moment, sorry. There's a room for improvement in this area, I agree.

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

    NEO SPECTRUMAN (21.01.2021)

  8. #426
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    159
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    50 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

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

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


    • Big-Endian hosts support (experimental and not tested continuously)
    • added "listall", "listact" commands to OPT - to switch between listing types
    • WHILE has optional argument to set explicit guardian-counter
    • ASSERT has optional argument (to add description/notes for expression)
    • SLOT and MMU will now accept also starting address of slot instead of its number
    • fix: option --sym was not exporting labels starting with underscore
    • fix: SAVENEX BMP-loader bug when certain builds of sjasmplus were unable to open BMP files
    • fix: after STRUCT instance the "main" label is not polluted by last field of STRUCT
    • minor bugfixes in parser, windows cmake-builds have now icon
    • docs: adding "Index" section
    • docs: adding some missing information (__DATE__, __TIME__), fixing HTML anchor names

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

    NEO SPECTRUMAN (25.01.2021)

  10. #427
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,241
    Спасибо Благодарностей отдано 
    359
    Спасибо Благодарностей получено 
    547
    Поблагодарили
    435 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
      13  0007 DD 8C        	ADC A,ixh		;* DD8C
      14  0009
    all_ops.asm(15): error: Label not found: IXh
      15  0009 CE 00        	ADC A,IXh		;* DD8C
    eсть два мнения - моё и неправильное

  11. #428
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    159
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    50 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    yes, instructions and registers have to be same-case in sjasmplus. Labels are case sensitive.

  12. #429
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,241
    Спасибо Благодарностей отдано 
    359
    Спасибо Благодарностей получено 
    547
    Поблагодарили
    435 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    такой стиль написания используется в
    The Undocumented Z80 Documented (Sean Young)

    да и местами в оригинальной документации


    как то не хорошо получается...

    - - - Добавлено - - -

    я сначала подумал, что не все undoc opcodes поддерживаются...
    Последний раз редактировалось NEO SPECTRUMAN; 09.02.2021 в 16:16.
    eсть два мнения - моё и неправильное

  13. #430
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    159
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    50 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    I could be nitpicking that you are pointing onto "operation description", not source-syntax (that's "LD IY, (nn)")...

    but I guess you are somewhat right, even the "IYh" in "operation" is unfortunate, and I see how you could expect sjasmplus to accept it.

    But official documentation does only describe instruction, it does not define full syntax of "assembly" language, and it's quite common for assemblers to fill the gaps with their own rules. The same-case rule for instructions and registers is something I actually like, because then PascalCaseLabels can't be misunderstood as instructions by accident.

    The most disturbing thing about your post is, that `OPT --syntax=i` will not accept "IYh" either, i.e. `Ld IYh,3` will fail even with `--syntax=i`, when `Ld iyh,3` works...
    So I'm trying to make my mind, if this is bug or not. (do you have opinion?)
    Otherwise what you see is "works as designed", not a bug.

    But if we are talking about *you* writing *new* sjasmplus source, please just use same-case and avoid --syntax=i, I don't see how having mixed-case instructions/registers makes it better, IMO such source is harder to read. I know this is strongly personal and subjective topic, but I would suggest for new source style:
    Код:
        ORG     $879A     ; uppercase directives
    PascalCaseLabelsWithColon:
        ld      iyh,3     ; lowercase instructions and registers
        ld      hl,12     ; HL = 12 (with uppercase reg in comments)
    I can see how adding options to sjasmplus helps with legacy sources you don't want to edit, but for new sources I would stick to *some* style (even if you don't like my suggestion above, feel free to modify it to your liking, but I have difficult time to accept that all-case instructions+registers are a problem, especially as when writing assembly the actual writing of instructions usually takes very little time, so fixing formatting of source is just few seconds, compared to hours of thinking and debugging).

Страница 43 из 44 ПерваяПервая ... 394041424344 ПоследняяПоследняя

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

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

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

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1631
    Последнее: 04.08.2020, 21:39
  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

Ваши права

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