User Tag List

Страница 40 из 70 ПерваяПервая ... 363738394041424344 ... ПоследняяПоследняя
Показано с 391 по 400 из 699

Тема: SjASMPlus от z00m

  1. #391

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    BTW, as a "stress test" and "eat your own dog food" exercise, I'm doing https://adventofcode.com/2020 in sjasmplus... not as Z80 machine code, but using sjasmplus macro scripting to resolve the puzzles during assembling-time...

    For example the day 11 puzzle assembles like this (the asm file has 114 lines of "script"):
    $ sjasmplus seating_system_p2.asm
    SjASMPlus Z80 Cross-Assembler v1.18.0 (https://github.com/z00m128/sjasmplus)
    Pass 1 complete (0 errors)
    Pass 2 complete (0 errors)
    include data: name=input.txt (9702 bytes) Offset=0 Len=9702
    > Map size: 98x98 extending to 100x100
    > Rounds to reach stability: 90
    > Final state has **** seats occupied.
    Pass 3 complete
    Errors: 0, warnings: 0, compiled: 68000349 lines, work time: 55.454 seconds
    (I will publish all scripts on github after the event will end, so if anyone is really bored, they may check how is it possible to do in sjasmplus - IIRC there's 0-1 lua scripts, all is regular sjasmplus mess )

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

  3. #392

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ped7g, а можно сделать дописывание файла при помощи SAVEBIN?

    SAVEBIN "data.bin",$0000,$2000 ;data.bin size $2000
    SAVEBIN "data.bin",&,$4000,$2000 ;data.bin size $4000
    SAVEBIN "data.bin",&,$8000,$1000 ;data.bin size $5000

  4. #393

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    можно сделать дописывание файла при помощи SAVEBIN?
    da, mozno, no nenada?

    Let me try something...

    Код:
      ; preparing data...
        SAVEBIN "part1.bin",$0000,$2000
    
      ; preparing data...
        SAVEBIN "part2.bin",$4000,$2000
    
      ; preparing data...
        SAVEBIN "part3.bin",$8000,$1000
    
        IF 3 == __PASS__
           ; would fail to open part1/part2/part3.bin in first/second pass (they exist after third pass)
            DEVICE NONE : ORG 0   ; device none to not write part files into device memory, just output them
            OUTPUT "data.bin"
            INCBIN "part1.bin"
            INCBIN "part2.bin"
            INCBIN "part3.bin"
            OUTEND
            ; you can also add SHELLEXEC to delete part files, if you want...
        ENDIF
    works already in 1.18.0+, no need to wait for me...

    I'm not very happy about that "&" syntax, I know SAVETRD has now something similar, but... me not like.
    The work-around above seems to me reasonable enough to not work on this.

    (but if it would be my own project, I would actually have it as Makefile rules, with final:
    Код:
    data.bin : part1.bin part2.bin part3.bin
    	cat $^ > $@
    - assuming you have GNU make and *NIX system, on windows the "cat 1.bin 2.bin 3.bin > data.bin" may not work? I think windows have some different way... copy /b ?? I don't remember.)
    Последний раз редактировалось Ped7g; 15.12.2020 в 02:09.

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

    NEO SPECTRUMAN(15.12.2020)

  5. #394

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    надо будет попробовать

    хотя это создает много лишних .bin-ов...

    так можно будет делать файлы больше 64К ?

  6. #395

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    так можно будет делать файлы больше 64К ?
    That's more tricky... if you can use separate asm file to build final large file, you can use `sjasmplus --longptr` and have 32bit addresses.

    I don't remember if it's possible to mix DEVICE with --longptr (like ZX48 vs NONE using long), I think it's not possible, but as separate file it would work.

    If your "part" bin are always less than 64k, you can do "ORG 0" ahead of every INCBIN in the final merge:

    OUTPUT "data.bin"
    ORG 0 : INCBIN "part1.bin"
    ORG 0 : INCBIN "part2.bin"
    ORG 0 : INCBIN "part3.bin"
    OUTEND

    This way you will avoid "$" to reach $10000.


    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    хотя это создает много лишних .bin-ов...
    ^ and that's why I would use `make`, and probably split the bin files generators into separate groups .asm files, so it would recompile only files which did change... and output the bins into some `build/` directory, which would be in `.gitignore`, so I would not see them most of the time... (as I usually use "git-cola" to look at the project dir, so I see only modified files)

    (BTW, I didn't try it, but I believe if you will do nothing, and keep INCBIN more than 64ki, it will output still correct file, but report warning when "$" wraps around $FFFF -> $0000, but no damage ... you can then ignore such warning.. but I hate warnings , so the "ORG 0" is then another option)
    Последний раз редактировалось Ped7g; 15.12.2020 в 02:25.

  7. #396

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    Ped7g, а можно сделать дописывание файла при помощи SAVEBIN?
    Мне кажется, что объединение нескольких бинарников - вообще не работа ассемблера.
    Это нужно делать снаружи.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  8. #397

    Регистрация
    10.05.2019
    Адрес
    Prague, Czech Republic
    Сообщений
    229
    Спасибо Благодарностей отдано 
    51
    Спасибо Благодарностей получено 
    103
    Поблагодарили
    77 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Мне кажется, что объединение нескольких бинарников - вообще не работа ассемблера.
    Это нужно делать снаружи.
    I'm trying to be not so fundamental, as in this regard sjasmplus already contains *ton* of questionable functionality (SAVETAP does lot of stuff what you can achieve with external tools for TAP files manipulation, and it would be enough to output from sjasmplus just the binary blob, etc..).

    It's often convenient to have the extra features available already from the asm source (and without need to hunt down external tool), at least for lazy programmers like me.

    But if the syntax is not complete clear win, and may break current syntax/old sources, then I'm reluctant to dive into it too quickly, I would discuss that stuff for few days/weeks first and check the examples against older projects...

    Plus Neo's habit to build large binaries from single source with long assembling time (1+ sec) is at the edge of where he would probably benefit from splitting his projects a bit more and use advanced build tools like make...

    (I don't claim my additions to sjasmplus are always good-taste and perfect .... for example the new "DEFINE+" feels now bad to me => so feel free to suggest new stuff, just have some patience plus examples and arguments, if I don't get it from first moment, I may need some time to think it through .. or maybe we can find even better design over time... but in the end, if you have real world project which suffers a lot, and there's no good work-around, I will rather add some dirty addition to sjasmplus to make real code work, than guard principal cleanness of assembler).

  9. #398

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    It's often convenient to have the extra features available already from the asm source (and without need to hunt down external tool), at least for lazy programmers like me.
    Lazy programmers use existing tools, that are well tested and widely used.
    Why you need to implement new bicycle when good OS tools exist?
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  10. #399

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Мне кажется, что объединение нескольких бинарников
    а МНЕ не кажется
    сплошное делание снаружи
    приводит к большому количеству головной боли

    а потом фиг скомпилируешь чужой исходник
    потому что все снаружи...

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

    в придачу ЕЩЕ РАЗ повторю
    средства встроенные в ассемблер более гибкие
    чем кучка мерзких make-ов которые не имеют никакого доступа к содержимому переменных компилятора и lua

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

    Цитата Сообщение от Ped7g Посмотреть сообщение
    long assembling time (1+ sec)
    это все в прошлом
    теперь у меня начиная от 10+

  11. #400

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а потом фиг скомпилируешь чужой исходник
    потому что все снаружи...
    Если использовать левые инструменты, а не то, что встроено в OS (о чём написано выше), то да, могут возникнуть нюансы.


    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    средства встроенные в ассемблер более гибкие
    чем кучка мерзких make-ов которые не имеют никакого доступа к содержимому переменных компилятора и lua
    Гибкие велосипеды с глюками, да.
    Если уж на то пошло, "никакого доступа" - это лукавство. При желании можно выгрузить значения в файлы, и снаружи обработать.

    И более гибкие как раз мейкфайлы и скрипты снаружи, которые можно править как и когда тебе хочется, а не ждать, когда что-то внедрят в гибкий ассемблер.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

Страница 40 из 70 ПерваяПервая ... 363738394041424344 ... ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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