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

User Tag List

Страница 68 из 70 ПерваяПервая ... 64656667686970 ПоследняяПоследняя
Показано с 671 по 680 из 695

Тема: SjASMPlus от z00m

  1. #671

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,843
    Спасибо Благодарностей отдано 
    510
    Спасибо Благодарностей получено 
    238
    Поблагодарили
    214 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Просто DEVICE ZXSPECTRUM48 не должно начинаться в нулевом столбце. А регистр роли не играет. Для чего так сделано - это вопрос к разработчикам SJASMPLUS.
    Последний раз редактировалось andrews; 17.06.2025 в 13:15.

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

    metamorpho(17.06.2025)

  2. #672

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,890
    Спасибо Благодарностей отдано 
    1,038
    Спасибо Благодарностей получено 
    1,102
    Поблагодарили
    852 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    потому что с 0 столбца расположена метка.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

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

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

    Этот пользователь поблагодарил Black Cat / Era CG за это полезное сообщение:

    metamorpho(17.06.2025)

  3. #673

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    Для редактирования текста на ассемблере использую NOTEPAD++, в нём по F5 запускаю .bat файл


    Можно скрипты прилепить без .bat, могу скинуть (модифицированные немного, через выделение имени) или в инете найти можно стандартные.

    Но лучше переходи на vscode, намного удобнее, notepad++ и 10-ой части не делает. Если интересно, то могу скинуть настройки в vscode, самых дурных опций и скрипты запуска проекта.

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

    metamorpho(17.06.2025)

  4. #674

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,890
    Спасибо Благодарностей отдано 
    1,038
    Спасибо Благодарностей получено 
    1,102
    Поблагодарили
    852 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Biland Посмотреть сообщение
    Если интересно, то могу скинуть настройки в vscode, самых дурных опций и скрипты запуска проекта.
    Кидай сюды, наверное, всем будет полезно. А то люди по моей в хлам устаревшей статье нпп прикручивают к сжасму, а там уже все не так.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

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

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  5. #675

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    заменил DEVICE ZXSPECTRUM48 на device zxspectrum48
    и всё получилось !!
    Команда девайс часом не в начале строки была (без пробела или табуляции)?
    Регистр символов не должен влиять.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  6. #676

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для vscode.
    Установить не сложно, в документации к DeZog есть рекомендации, какие надстройки подходят.

    Актуальные надстройки


    DeZog
    To use DeZog in Visual Studio Code, simply install the "DeZog" extension (maziac.dezog) from the Visual Studio Code Marketplace. Although not required, there are several other helpful extensions available, including:

    ASM Code Lens, which provides syntax highlighting for Z80 assembler, as well as completions, references, jump to label, and renaming functionality.
    Z80 Instruction Set, which displays opcode, affected flags, and a description when hovering over a Z80 instruction.
    Hex Hover Converter, which converts numbers to decimal, hexadecimal, and binary formats when hovering over them.
    ZX SNA File Viewer/ZX NEX File Viewer, which allow viewing of ZX Spectrum snapshot (.sna) and ZX Spectrum Next (.nex) files (search for "snafile" and "nexfile" in the Marketplace).
    ZX81 BASIC to P-File Converter and P-File Viewer, which converts ZX81 P-Files (.p) to ZX81 BASIC (.bas) and vice versa.
    [свернуть]

    В приложении, скрипты, для запуска разных вариантов эмуляторов, с переключением страниц (64 страницы) для ZSim (ZSim Custom Memory), для режима debug. Псевдо-порты переключения страниц, прописаны в скриптах. Нужно только поменять пути к файлу запуска проекта и путь к sjasm.

    Опции самого vscode:


    Editor: Quick Suggestions Delay
    Управляет длительностью задержки (в мс) перед отображением кратких предложений. (1000)

    Editor › Hover: Delay
    Определяет время задержки в миллисекундах перед отображением наведения. (1000)

    Ctrl + Shift + P
    Configure Display Language

    Editor: Auto Closing Comments
    Определяет, должен ли редактор автоматически закрывать комментарии,
    при добавлении пользователем открывающего комментария. (never)

    Autohide
    Определяет, скрыта ли мини-карта автоматически. (Enable)

    Editor: Selection Highlight
    Определяет, должен ли редактор выделять совпадения, аналогичные выбранному фрагменту. (disable)

    Editor: Occurrences Highlight
    Определяет, следует ли выделять вхождения в открытых файлах. (off)

    Editor: Color Decorators
    Определяет, должны ли в редакторе отображаться внутренние декораторы цвета и средство выбора цвета. (disable)
    (если написать текст и набрать позже #NNNNNN, то он прибавляет квадрат к тексту, где можно выбирать палитру)
    [свернуть]


    Для Notepadplus.

    Т.к. у меня исходники и бинарники разложены по разным папкам, стандартный скрипт не может уловить путь откуда запускать скомпилированный файл. Пришлось пойти на хитрость и просто выделять этот путь перед компиляцией и запуском. Пример, SAVESNA "..//BIN//main.sna" - здесь выделяется отрезок ..//BIN. Т.к. Notepadplus используется очень редко, то это не критично.

    Compile-SJAsm


    Код:
      // [Ctrl+F9] Скрипт компиляции проекта
      // Сохраняем все файлы
    //REM/ npp_saveall
    npp_save
      // Сохраняем путь текущего редактируемого файла
    set current = $(FULL_CURRENT_PATH)
      // Переключаемся на основной файл проекта (должен быть открыт в 1-ой вкладке!)
    //REM/ npp_switch $(#1)
      // Получаем полные имена файла меток и основного файла проекта
    set symbol_name = "$(CURRENT_DIRECTORY)/$(SELECTED_TEXT)/$(NAME_PART).sym"
    set project_full_name = "$(FULL_CURRENT_PATH)"
      // возвращаемся на ранее открытую вкладку
    //REM/ npp_switch $(current)
      // компилируем проект
    cd $(project_full_name)
    "$(NPP_DIRECTORY)/../SJAsm/sjasmplus.exe" --fullpath --sym=$(symbol_name) $(project_full_name)
    [свернуть]

    sna-SJAsm-Unreal


    Код:
      // [F9] Скрипт компиляции и запуска проекта
      // Сохраняем все файлы
    //REM/   npp_saveall
    npp_save
      // Сохраняем путь текущего редактируемого файла
    set current = $(FULL_CURRENT_PATH)
      // Переключаемся на основной файл проекта (должен быть открыт в 1-ой вкладке!)
    //REM/    npp_switch $(#1)
      // Получаем необходимые имена файлов
    //REM/    set image_name = "$(CURRENT_DIRECTORY)\$(NAME_PART).trd"
    set image_name = "$(CURRENT_DIRECTORY)/$(SELECTED_TEXT)/$(NAME_PART).sna"
    set image_dir = "$(CURRENT_DIRECTORY)/$(SELECTED_TEXT)/"
    set symbol_name = "$(CURRENT_DIRECTORY)/$(SELECTED_TEXT)/$(NAME_PART).sym"
    set project_full_name = "$(FULL_CURRENT_PATH)"
      // Возвращаемся на ранее открытую вкладку
    //REM/    npp_switch $(current)
      // Компилируем проект
    cd $(project_full_name)
    "$(NPP_DIRECTORY)/../SJAsm/sjasmplus.exe" --fullpath --sym=$(symbol_name) $(project_full_name) 
      // запускаем откомпилированный проект
    cd $(image_dir)
    "$(NPP_DIRECTORY)/../Unreal/unreal.exe" $(image_name)
    [свернуть]

    Unreal-Run-a80


    Код:
    // [F10] Скрипт запуска проекта
      // Сохраняем путь текущего редактируемого файла
    set current = $(FULL_CURRENT_PATH)
      // переключаемся на основной файл проекта (должен быть открыт в 1-ой вкладке!)
    //REM/ npp_switch $(#1)
      // Получаем полное имя образа диска с откомпилированным проектом для запуска
      // (если вы компилируете в sna, поменяйте расширение на нужное)
    set image_name = "$(CURRENT_DIRECTORY)/$(SELECTED_TEXT)/$(NAME_PART).sna"
    set image_dir = "$(CURRENT_DIRECTORY)/$(SELECTED_TEXT)/"
      // Возвращаемся на ранее открытую вкладку
    //REM/ npp_switch $(current)
      // Запускаем откомпилированный проект   
    cd $(image_dir)
    "$(NPP_DIRECTORY)/../Unreal/unreal.exe" $(image_name)
    [свернуть]
    Вложения Вложения
    Последний раз редактировалось Biland; 18.06.2025 в 15:07.

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

    metamorpho(18.06.2025)

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

  8. #677

    Регистрация
    24.08.2012
    Адрес
    г. Волжский
    Сообщений
    418
    Спасибо Благодарностей отдано 
    745
    Спасибо Благодарностей получено 
    236
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Команда девайс часом не в начале строки была (без пробела или табуляции)?
    Регистр символов не должен влиять.
    Возможно да, я уже не помню, а файл уже изменён.

  9. #678

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

    По умолчанию

    Ped7g , а можете реализовать поддержку особых макросов с неопределённым количеством параметров, чтоб от ни одного до много-много ?

    Я тут подумал - в ZASM, в макрос можно передавать неопределённое количество параметров или не передавать вовсе, при этом доступ к ним осуществляется через =1 , =2 и т.д. Пример:

    NAME macro : ld hl,=1 : ld de,=2 :endm

    но там из-за многих ограничений эта фича преимуществ не даёт. А вот в SjASMplus с его Lua scripting , можно будет реализовывать довольно гибкие макросы, например реализовать какую-либо особую перекодировку строк символов в стиле записи в формате DEFB. Или что-то более сложное.

    У нас конечно знак '=' не подойдёт, да и чтобы не ломать проверки, этот макрос лучше оформлять отдельной командой . Например использовать слово 'macro$' или 'macro+' или что-то подобное.

    Типа :
    Код:
             macro$ <name>
                ....   
             endm
    Чтобы данный макрос можно было бы использовать как без параметров, так и с параметрами, количество которых не ограничено.
    Пусть например введённые параметры принимают имена по порядку p1 , p2 , ... , p10 , p11 , ... , p100 ... и так далее, а p0 , как в bash скриптах, показывает номер последнего параметра.
    А если две запятые идут друг за другом или через пробел, то значит параметр пустая строка (без кавычек)

    Lua функция sj.get_define("name", true) при отсутствии параметра в таком макросе пусть не орёт про ошибку, а выдаёт обычный nil

    Как смотрите на такое возможное дополнение ?
    Последний раз редактировалось Dart Alver; 18.06.2025 в 22:38. Причина: --

  10. #679

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,998
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    614
    Спасибо Благодарностей получено 
    1,510
    Поблагодарили
    520 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Столкнулся с дурацкой ситуацией, которую пока не знаю как правильно решить. Прошу помощи!

    Я переделывал код Z80 в код i8080. Отсутствующие у i8080 заменял макросами. А чтобы не плодить огромную кучу похожих макросов я сделал универсальные макросы, которые принимают на вход имя регистра. Внутри макроса по имени переданного регистра я выполняю определённые действия. Но проблема в том, что я не нашёл как делать условия правильно, чтобы оно срабатывало с передаваемым именем.

    Пример:

    Код:
     macro instr reg1, reg2
     if reg1 == A
      ; some code
     if reg2 == H
      ; some code
     endm
    
    
     instr A, C
    Ни одно из условий не выполнится. Я пробовал и кавычки и много чего ещё. Чаще всего получаю ошибку на отсутствующую метку.

    В итоге после череды всевозможных проб и ошибок закостылил так:

    Код:
     macro instr reg1, reg2
     if reg1 == A
      ; some code
     if reg2 == H
      ; some code
     endm
    
    A:     db    "A"
    B:     db    "B"
    C:     db    "C"
    D:     db    "D"
    E:     db    "E"
    H:     db    "H"
    L:     db    "L"
    
     instr A, C
    Вот так работает, но в итоге имеем лишних 7 байт на константы. Причём в конец кода их перекинуть нельзя, так как они должны находится перед первым вызовом макроса.
    С уважением, Станислав.

  11. #680

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,873
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    181 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имена регистров, в данном случае, как символы не определены. Во втором случае им будут соответствовать адреса букв. Сравнивать можно только числа. Определи имена регистров как числа от 0 до 7. Удобнее будет если B=0, C=1, и т.д., тогда их можно будет прямо к коду операции 8080 добавлять.

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

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

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

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

Ваши права

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