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

User Tag List

Страница 22 из 25 ПерваяПервая ... 1819202122232425 ПоследняяПоследняя
Показано с 211 по 220 из 244

Тема: sjasmplus от z00m

  1. #211
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,454
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    23 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    yup, docs are now added and uploaded too.

    I did test the ZEsarUX mode myself, had to patch the ZEsarUX a bit as it's currently not working as expected with the command line options (loading the snapshot from command line will disable breakpoints, so I patched it in my fork). Anyway, the command line options outputted by sjasmplus are correct, so the sjasmplus part is done.

    I will not test the Unreal myself, but the content of file seems to me correct, so let me know if it fails for some reason.
    Sure, thanks. Will test on weekend and will send you a message here with results.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Мордовия - Республика звука

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

  3. #212
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    3,726
    Спасибо Благодарностей отдано 
    126
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ped7g, а можно сделать отдельный
    i Case insensitive instructions/directives
    для названий макросов, меток итд ?


    то есть нужно чтоб компилировало


    Код:
    	macro aaa
    		nop
    	endm
    
    
    bbb = 3
    
    l1
    		AAa
    		aAA
    		AAA
    		aaa
    
    		jp l1
    		jp L1
    		ld a,bbb
    		ld a,BBB
    как

    Код:
    	macro aaa
    		nop
    	endm
    
    
    bbb = 3
    
    l1
    		aaa
    		aaa
    		aaa
    		aaa
    
    		jp l1
    		jp l1
    		ld a,bbb
    		ld a,bbb

    или мне приходится городить
    Код:
    		macro AAa
    		macro aAA
    		macro AAA
    		macro aaa
    для каждой комбинации символов...
    так как я не могу предсказать какая комбинация попадется

    нужно для моего набора макросов для компиляции chip8 кода

    щас у меня это выглядит так...
    Код:
    	macro scleft					;00FC	SCLEFT
    	   defb $00, $FC
    	endm
    			macro SCLEFT
    			defb $00, $FC
    			endm
    	macro scl
    	   defb $00, $FC
    	endm
    			macro SCL
    			defb $00, $FC
    			endm
    и работать с таким исходником очень не удобно






    так же у всех команд окончание выглядит как e*** end***
    dup
    edup

    if
    endif


    а
    macro
    endm (что совершенно не логично)


    хотелось бы чтобы асм переваривал все варианты окончания команды
    dup edup enddup
    if eif endif
    macro emacro endmacro
    итд




    так же не помешало бы
    кроме
    $ current program counter
    $$ current page at program counter (in virtual device mode)

    еще иметь и
    $$$ current code line number

    чтоб использовать так
    Код:
    1	macro aaa b
    2		if (b) > $FFF
    3		display $$$," error"
    4		endif
    5	   defb b
    6	endm
    7
    8	aaa $FFE
    9	aaa $1000
    чтобы выдавало
    Код:
    >9 error
    Последний раз редактировалось NEO SPECTRUMAN; 18.02.2020 в 16:12.

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

    Ped7g (18.02.2020)

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

    По умолчанию

    Unfortunately the "syntax=i" does exist because it was reasonably easy to add to current code.

    The planned "I" for labels, and making the "i" or "I" affect also macros and defines is surprisingly high-friction in current sjasmplus.

    I will take a look again, what is the exact problem, but it did look to me it's lot less problematic to fix the asm source to use correct case, than add case insensitivity to labels/macros. But maybe I just didn't find the simple solution.

    "endX" vs "eX" - I agree with your idea, to bring better consistency into the "language", but code written for sjasmplus already does use current keywords, and just adding dozen new keywords for future will maybe break someone source (if they use the keyword as label or macro name), and will make even bigger mess.

    I think I will keep this as compatibility-breaking change for v2.x, if it ever happens (cleaning up the directives keyword, maybe even removing some duplicities like rept vs dup, and similar), as the v2.x will be presented as not 100% compatible (there will be more syntax changes, not big, but enough to break old sources).

    But I have still no idea when v2.x will happen, currently I have no time and no energy/incentive to work on it, the v1.x is quite OK currently. I don't like everything about it, but I can live with the current version.

    The "$$$" is the only simple thing to add, which also looks like it would not break anything, but if I will add it, I think I would prefer the GCC-ification of it, i.e. __LINE__, __FILE__, etc... to copy the standard C/C++ macros when possible. I'm pretty sure I even have __LINE__ somewhere in my notes for v2.x.

    ... so, thanks for ideas, it's increasing priority of some things I have in plans, but I don't have any particular date when these things will happen.

    -------------------
    Meanwhile the next version will be v1.15.0, the planned changes so far:

    - reworking the virtual device state for zx48/zx128+ to make the virtual memory closer to the fake "CLEAR x : LOAD "" CODE : RANDOMIZE USR y" state, which will change SAVESNA snapshot binaries (will hopefully break only minimum of projects, but fix the few issues I have seen recently, like the ROM keyboard routine reading BASIC keywords instead of characters, or the examples/Fros4k intro was broken in v1.13.0..v1.14.4 because the snapshot stack was $FFxx, in older versions it was $6000 ... after new changes it will be around $5D00 or something like that (impossibly low fake CLEAR).

    - hopefully the larger memory spectrum-like devices, if I don't forget about it again

    - maybe removing few more VS-specific calls and using the same source under every compiler

    ... I was hoping to release v1.15.0 around end of Feb initially, but currently I have no time to develop sjasmplus, so maybe toward end of March or April.
    (and I will check again, if there's some simple trick for case insensitive macros, but I can't promise anything, last time the code did look very fragile and difficult to modify without affecting the assembling speed a lot)

    BTW, about assembling speed... I was for fun trying out older versions, and seems the v1.14.5 is about two times slower than 1.10.4 ... Then again I personally prefer +0.2s per assembling instead of +100 bugs in assembler...

  6. #214
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    3,726
    Спасибо Благодарностей отдано 
    126
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И еще
    можно сделать игнорирование ошибок?
    error: Not enough arguments for macro:
    error: Too many arguments for macro:
    и продолжать использовать макрос несмотря не на что


    в sjasm-е всегда не хватало макросов с переменным числом аргументов


    сейчас сделав так

    Код:
    	macro mc xx
    cc = xx	
    	ld a,cc
    
    	endm
    
    
    	mc 3
    	mc
    этим можно пользоваться и пытаться отличать макрос с аргументом от макроса без аргумента
    не смотря на ошибки


    Код:
    184+  0286              	mc 3
    184+  0286             >cc = 3
    184+  0286 3E 03       >	ld a,cc
    184+  0288             >
    185+  0288              	;ld a,3
    test_code.asm(186): warning: [Macro argument parser] empty value: 
    186+  0288              	mc
    test_code.asm(175): error: Expression error: 
    test_code.asm(186): ^ emitted from here
    186+  0288             >cc =
    186+  0288 3E 00       >	ld a,cc
    186+  028A             >
    187+  028A              	;ld a,0




    а вот повторить такое же с

    macro mc xx,yy

    уже не получается
    (когда делаешь только mc xx)

    сразу сыпяться
    error: Not enough arguments for macro:

    и макрос даже не копируется
    Код:
    test_code.asm(184): error: Not enough arguments for macro: mc
    184+  0286              	mc 3
    185+  0286              	;ld a,3
    test_code.asm(186): warning: [Macro argument parser] empty value: 
    test_code.asm(186): error: Not enough arguments for macro: mc
    186+  0286              	mc
    187+  0286              	;ld a,0



    так же была бы полезно иметь
    проверку есть ли аргумент или нет


    macro mc a,b,c,d

    ifdef a
    ifdef b
    ifnotdef c
    xor a
    endif
    endif
    endif

    ifdef a
    ifdef b
    ifdef c
    ifnotdef d
    xor b
    endif
    endif
    endif
    endif



    mc a.b
    ;xor a

    mc a,b,c
    ;xor b
    Последний раз редактировалось NEO SPECTRUMAN; 19.02.2020 в 16:58.

  7. #215
    Member
    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    88
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    29
    Поблагодарили
    20 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    yep, definitely variable-arguments for macros are on my TODO list, but it always felt to me this is "v2.x" feature, because it's both quite some work to implement it, and I'm worried about backward syntax compatibility (although I guess correct v1.15.0 syntax would not trigger macro var-args feature by accident, so it's just FUD on my side?). I guess it's mostly my feel that this needs serious amount of work, also adding new operators to manipulate with the var-arg list (some kind of "shift" operator), and needs good syntax design - I don't think I will add these as some kind of quick-hack to v1.x in hurry.

    (of course if somebody will show me reasonable pull request with nice implementation and prove me wrong in terms of syntax-clash fear, it would be very nice addition to current sjasmplus)

  8. #216
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    3,726
    Спасибо Благодарностей отдано 
    126
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    I don't think I will add these as some kind of quick-hack to v1.x in hurry.
    Но переменное число аргументов
    работает уже сейчас
    если число аргументов 0...1

    пример я дал выше

    такой код сейчас вроде работает
    не смотря на то что выводятся ошибки (и это меня устраивает )
    Код:
    	macro mc xx
    cc = xx	
    	if cc = 0
    	ld a,1
    	else
    	xor cc
    	endif
    	endm
    правда он не отличает
    mc 0 от mc

    дальше все упирается в то что
    sjasm не использует макрос
    когда у макроса 2 аргумента
    а 1 из них не указан

    можно было бы просто выдавать ошибку
    но продолжать использовать макрос
    и на обратную совместимость это бы не повлияло
    наверно
    Последний раз редактировалось NEO SPECTRUMAN; 20.02.2020 в 21:28.

  9. #217
    Master Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    995
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    не смотря на то что выводятся ошибки (и это меня устраивает )
    А может все проще сделать?? ) Чем городить огород из макросов, может проще попросить автора впилить поддержку асм-а? там то команд 36 штук. Всего-ничего. для некст-а же он сделал.
    Только мнемонику все же какую то определенно-распространенную сделать, а то мне как минимум три варианта попалось.
    Profi v3.2 -=- Speccy2010,r2

  10. #218
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    3,726
    Спасибо Благодарностей отдано 
    126
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    А может все проще сделать??
    по моему он где то говорил
    что не особо горит желанием делать отдельный новый асм
    а поддержал только те что очень похожи на асм z80
    и где не нужно было много дополнительной работы


    Цитата Сообщение от zebest Посмотреть сообщение
    Только мнемонику все же какую то определенно-распространенную сделать, а то мне как минимум три варианта попалось.
    лично я за поддержку всех существующих и не конфликтующих между собой мнемоник

    ну а я знаю 4 варианта

    в придачу там
    разные трактования некоторых команд
    и требуются дополнительные опции у компилятора
    Последний раз редактировалось NEO SPECTRUMAN; 20.02.2020 в 22:01.

  11. #219
    Master Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    995
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    ну а я знаю 4 варианта
    онлайн асм-дизасм попадался со своей мнемоникой?? ну и в анб-шной гидре тоже своя мнемоника.
    ну нет, так нет. оффтоп это тут)
    Profi v3.2 -=- Speccy2010,r2

  12. #220
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    3,726
    Спасибо Благодарностей отдано 
    126
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    онлайн асм-дизасм попадался со своей мнемоникой??
    угу
    зоветсо octo
    у него даже не асм а редкостное неизвестно что

    v0 := va
    v1 := vb
    v2 := vc
    v3 := vd
    i := player-position
    save v3
    пришлось ручками переписывать ВСЁ под свой асм
    mov V0,VA
    mov V1,VB
    mov V2,VC
    mov V3,VD
    mvi player_position
    str v0-V3
    (по моему я ругался на этот счет в текстовичках самого nschip-а )

    ну и в его комплекте
    жменя софтварей
    которые работают только в самом octo
    там вообще не удосужились прочитать мануалы
    и сделали по своему...
    ...но та софтварь по качеству на уровень выше
    чем все что было выпущено до этого
    Последний раз редактировалось NEO SPECTRUMAN; 20.02.2020 в 22:52.

Страница 22 из 25 ПерваяПервая ... 1819202122232425 ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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