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

User Tag List

Страница 43 из 43 ПерваяПервая ... 3940414243
Показано с 421 по 425 из 425

Тема: SjASMPlus от z00m

  1. #421
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    5,702
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    465
    Поблагодарили
    364 сообщений
    Mentioned
    7 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
    Сообщений
    154
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    48 сообщений
    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
    Адрес
    Дзержинск
    Сообщений
    5,702
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    465
    Поблагодарили
    364 сообщений
    Mentioned
    7 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
    Адрес
    Дзержинск
    Сообщений
    5,702
    Спасибо Благодарностей отдано 
    339
    Спасибо Благодарностей получено 
    465
    Поблагодарили
    364 сообщений
    Mentioned
    7 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
    Сообщений
    154
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    48 сообщений
    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)

Страница 43 из 43 ПерваяПервая ... 3940414243

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

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

Эту тему просматривают: 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

Ваши права

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