User Tag List

Страница 30 из 70 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя
Показано с 291 по 300 из 699

Тема: SjASMPlus от z00m

  1. #291

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

    По умолчанию

    The SAVETRD refactoring and "&" for sector-append of files is now at master branch in github.

    If you are using SAVETRD in your projects, testing them now would be nice to catch any regressions before the v1.15.1 will be released.
    (for example how to use the "&" check "tests/misc/trd/savetrd4.asm" or "docs/documentation.xml" (html is not updated yet)).

    (of course you must build sjasmplus from the latest sources to have the new SAVETRD implementation)

    - - - Updated - - -

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    все таки больше бы хотелось именно find&replace
    средствами самого ассемблера
    I don't understand what's the point of either adding lame sub-par limited feature in days/weeks of work (and that's still too much time), or trying to compete with excellent SW which already exists (sed/m4/awk/... all of that available everywhere, with years of expertise and know-how baked into them) - that would eat probably months/years of my time, completely wasted on something what I can run in 10 seconds.

    So far I have seen no factual justification for such demand (and I would be very surprised if you would come with something meaningful, because I can't even imagine anything reasonable).

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

    Dart Alver(02.07.2020)

  2. #292

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

    По умолчанию

    а сейчас можно как то сделать?
    что то на подобии
    Код:
    if aaa = 1,2,3
    nop
    endif
    чтобы не писать одинаковое

    Код:
    if aaa = 1
    nop
    endif
    if aaa = 2
    nop
    endif
    if aaa = 3
    nop
    endif

  3. #293

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

    По умолчанию

    http://z00m128.github.io/sjasmplus/d...#s_expressions
    `if 1 <= aaa && aaa <= 3`
    or
    `if 1 == aaa || 2 == aaa || 3 == aaa`

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

    NEO SPECTRUMAN(05.07.2020)

  4. #294

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

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    `if 1 <= aaa && aaa <= 3`
    or
    `if 1 == aaa || 2 == aaa || 3 == aaa`
    нужно написать пример и пояснение в инструкции
    я все время думал что это то же самое что и

    & x&y bitwise and
    and x and y bitwise and

    | x|y bitwise or
    or x or y bitwise or

  5. #295

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

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    нужно написать пример и пояснение в инструкции
    hmm... it's right there in the operators list:
    Код:
    &     x&y      bitwise and
    and   x and y  bitwise and
    
    ^     x^y      bitwise xor
    xor   x xor y  bitwise xor
    
    |     x|y      bitwise or
    or    x or y   bitwise or
    
    &&    x&&y     logical and
    
    ||    x||y     logical or
    "bitwise" vs "logical" ... maybe it's confusing if you are not sure what that means.

    Where would you put such example (= "where would you look for it")?

    Would it help in the Conditional assembly section under the IF/IFN as example? (I see there are examples of IFDEF and IFUSED, but no example for IF).

    Any idea for example, what should I show there? (I guess the logical and/or is obvious candidate, but if you think there's something else tricky... I think the logical NOT is another interesting one as `!0` results in value 0xFF if I remember the implementation correctly, so I may double-check in the source and add some non-trivial example showing this.

    Thank you for this kind of feedback, as I'm sort of "blind" toward the documentation, knowing the implementation quite well, so any help to point out which area can be improved and how is important.

  6. #296

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

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    Would it help in the Conditional assembly section under the IF/IFN as example?
    именно там оно и нужно

    думаю достаточно будет указать в качестве примера
    if aaa = 0 || aaa = 1
    ;some code
    endif

    и что это равносильно
    if aaa = 0
    ;some code
    endif
    if aaa = 1
    ;some code
    endif


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

  7. #297

    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,811
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    385
    Спасибо Благодарностей получено 
    339
    Поблагодарили
    244 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне бы тоже каких-нибудь инструкций для конструкций
    Посмотрел все примеры для работы с TRD. Не очень то и понял.

    В примере для автостарта такая конструкция:

    SAVETRD "autostart_warning.trd","ok.B",$C001,$100,$123 4

    $1234 - это номер строки Бейсика? или специальная такая уникальная метка??
    Ладно, предположим это номер строки.

    пишу простую конструкцию -
    SAVETRD "my_test.trd","boot.B",$C000,$100
    ожидаемо вижу файл размером в 256 байт. Логично??

    пишу СЛОЖНУЮ конструкцию -
    SAVETRD "my_test.trd","boot.B",$C000,$100,$1
    По логике все то же самое, но автозапуск с первой строки??

    Угадайте размер файла boot.B в контейнере. Мне лично хотелось бы прежний
    Profi v3.2 -=- Speccy2010,r2

  8. #298

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

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Посмотрел все примеры для работы с TRD.
    well.. I don't know anything about TRD except what I learned from the sjasmplus source (I have never seen TRD in real life or used such file), so I can easily answer you what the sjasmplus is doing, but whether it is correct thing to do, that's question for actual TRD experts.

    The autostart argument is line number in BASIC, like `SAVE "boot" LINE 10` -> `SAVETRD "my.trd","boot.B",23755,256,10` (if your BASIC is 256 bytes long).

    BTW, I find creating BASIC in sjasmplus very cumbersome and tedious, I would rather suggest to use working ZX or emulator to create disc with your BASIC loader, then turn this disc into TRD image file like "loader.trd", and have build script of project copying such empty disc with "boot.B" from "loader.trd" to "my.trd" before each assembling, so the SAVETRD of sjasmplus will add files after that. But if you don't mind produce the BASIC code in the sjasmplus, or you have hex-dump of it, then it makes sense to build it from ASM source from scratch too.

    About size of file inside the TRD. The TRD operates with 256 bytes long sectors, so 256 bytes long "boot.B" will fit precisely into single sector without auto-start line! The auto-start line adds another four bytes of content after the BASIC program in the form of: { $80, $AA, low autostart, high autostart }, so the length of file goes from 256 to 260 and it will occupy two sectors on the disc.

  9. #299

    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,811
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    385
    Спасибо Благодарностей получено 
    339
    Поблагодарили
    244 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну я как бы тоже не специалист по TRD, так, мимо проходил, но вот все равно бы сказал, что автозапуск Бейсик файлов как то странно сделан
    Может на примере легче объяснить.
    В аттаче два файла,
    my_Dizzy_test_128.trd, который я собирал руками и бейсик загрузчик 256 байт, и работает правильно, автозапускается, и второй файл, My_test2.zip , который собран средствами исключительно SJAsm-a,
    но тот же самый загрузчик уже два сектора занимает. Но как бы тоже все работает правильно.
    Мне конечно ни разу не принципиально +1 сектор, но "как-то неаккуратненько, доктор" (с)
    Второй файл собран вот так:

    Скрытый текст

    Код:
    End:
                savebin  "my_test.bin",Start, End - Start
                emptytrd "my_test.trd"
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/boot.B"
        SAVETRD "my_test.trd","boot.B",$C000,$100,$1
    
        ORG $C000, 7        ;      "page 7"
        incbin "my_test.bin"
        SAVETRD "my_test.trd","my_test.C",$C000,End - Start
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/pent.scr"
        SAVETRD "my_test.trd","pent.C",$C000,$1B00
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/dizzy00.pak"
        SAVETRD "my_test.trd","dizzy00.C",$C000,$4000
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/dizzy01.pak"
        SAVETRD "my_test.trd","dizzy01.C",$C000,$4000
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/dizzy02.pak"
        SAVETRD "my_test.trd","dizzy02.C",$C000,$4000
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/dizzy03.pak"
        SAVETRD "my_test.trd","dizzy03.C",$C000,$4000
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/dizzy04.pak"
        SAVETRD "my_test.trd","dizzy04.C",$C000,$4000
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/dizzy05.pak"
        SAVETRD "my_test.trd","dizzy05.C",$C000,$4000
    
        ORG $C000, 7        ;      "page 7"
        incbin "TRD/press.scr"
        SAVETRD "my_test.trd","press.C",$C000,$1B00
    
    
                end


    [свернуть]


    То есть я сперва компилирую свой код, сохраняю его, формирую пустой диск ,и начинаю
    его заполнять строго по очереди, согласно купленным билетам.

    И да, как видите в моей сборке расширения имен файлов трехбуквенные, Ваш компилятор только одну букву разрешает

    Ну и если бы можно файлы сначала не incbin-ить, а потом записывать, а сразу добавлять в образ TRD, было бы вообще замечТательно )
    Последний раз редактировалось zebest; 06.07.2020 в 23:18.
    Profi v3.2 -=- Speccy2010,r2

  10. #300

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    И да, как видите в моей сборке расширения имен файлов трехбуквенные, Ваш компилятор только одну букву разрешает
    В мастер ветке гита уже 3 буквы можно. И можно пробовать в моноблок куски памяти собирать с префиксом '&' :

    SAVETRD "имя образа TRD",&"имя файла в образе",[адрес блока памяти], [длина блока памяти в байтах] ; Прибавляет блок памяти к указанному файлу, начиная со следующего за ним сектора. Изменяет в идентификаторе файла только размер в секторах. Ругается ошибкой если получилось больше 255 ))

    Цитата Сообщение от zebest Посмотреть сообщение
    Второй файл собран вот так:
    Я х.з. как создаются автозапуски, но в первом случае длина 250 байт, во втором 256. А если будете 250 указывать для второго ?
    А вообще есть от них смысл ? boot запустится хоть с авто хоть без, а прочие все всё равно через RUN заходят. Имеет смысл если строка запуска не первая, или с программой данные переменных хранятся, но подобный изврат явно не ассемблерное дело на мой взгляд.
    Последний раз редактировалось Dart Alver; 07.07.2020 в 00:19.

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

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

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

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

Ваши права

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