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

User Tag List

Страница 134 из 167 ПерваяПервая ... 130131132133134135136137138 ... ПоследняяПоследняя
Показано с 1,331 по 1,340 из 1664

Тема: SjASMPlus Z80 кросс ассемблер

  1. #1331
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В рамках удовлетворения нездорового желания вспомнить C++ и заодно посмотреть что там нового сделали в C++11/14, возможно, буду неспеша немного "равнять" sjasmplus.

    Пока что смерджил ветку Vitamin-а, переделал проект под CMake, поменял схему версий на YYYYMMDD (а то, судя по содержимому ветки, полный бардак с версиями), поправил обработку CRLF-окончаний строк в Unix.

    Бинарники для винды (32 и 64 бита): https://github.com/mkoloberdin/sjasmplus/releases

    Для Linux/MacOS можете собрать сами из исходников (см. по той же ссылке или репо: https://github.com/mkoloberdin/sjasmplus ):
    Код:
    mkdir build
    cd build
    cmake ..
    make
    Пытаюсь прочитать всю тему... Буду признателен за список пожеланий и багрепорты. (ничего не обещаю, но пишите )

    Также, насколько я понимаю, ветка Vitamin-а может не содержать некоторых патчей сделанных другими пользователями, которые тут в теме упоминались. Если что-то нужно добавить, ткните носом.
    Последний раз редактировалось mastermind; 08.09.2017 в 01:53.

  2. #1332
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,671
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    322
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mastermind Посмотреть сообщение
    Если что-то нужно добавить
    Писал , много тысяч лет назад тут же, но вроде так и не починили. Забавный баг, но голову сломать можно
    Код:
            DUP 1
                nop;
          EDU
    вот такая конструкция, всего одна потерянная буква, ошибок не дает, но и не компилится. Отыскать только случайно и то глазками.
    я то теперь DUP-ы особо проверяю после того..
    Profi v3.2 -=- Speccy2010,r2

  3. #1333
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mastermind Посмотреть сообщение
    Бинарники для винды (32 и 64 бита)
    Запустил 64 бита, работает.
    Вин7 хоум

  4. #1334
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сконвертировал документацию, положил на гитхабовский Wiki: https://github.com/mkoloberdin/sjasmplus/wiki
    МОЖНО РЕДАКТИРОВАТЬ прямо там. Присоединяйтесь Было бы неплохо для начала разбить документацию на отдельные Wiki-страницы и составить оглавление.
    Отлично подходящая задача для желающих помочь, но не знающих C/C++.

    Для желающих проверить/довести до ума документацию в Wiki, вот также ссылка на HTML-версию (должно быть ближе к исходному Docbook XML):
    https://htmlpreview.github.io/?https...tml/index.html
    Последний раз редактировалось mastermind; 12.03.2017 в 02:40.

  5. #1335
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mastermind Посмотреть сообщение
    Также, насколько я понимаю, ветка Vitamin-а может не содержать некоторых патчей сделанных другими пользователями, которые тут в теме упоминались. Если что-то нужно добавить, ткните носом.
    http://zx-pk.ru/threads/447-sjasmplu...l=1#post773856
    http://zx-pk.ru/threads/447-sjasmplu...l=1#post769112
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

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

    По умолчанию

    Цитата Сообщение от mastermind Посмотреть сообщение
    за список пожеланий
    lua в sjasm-e какаето упоратая или дремучая
    в ней нет кучи нужных команд (которые нагугливаются)
    того же goto
    приходиться писать неимоверно упоратый код

    а еще меня добивает что нельзя завершить цикл
    вот так(это на фоне отсутствия goto)
    for a=1,128,1 do
    a=128
    end
    это какоето
    так и должно быть в lua?

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

    (а выход с сообщением об ошибке из зацикленного по кода можно сделать по тайм ауту(который должен отключаться при необходимости(тк вдруг захочется что нибудь считать\перебирвать на протяжении нескольких тысяч часов(например вот совсем недавно я делал brutal force для генерации таблиц))))

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

    Цитата Сообщение от mastermind Посмотреть сообщение
    можете собрать сами из исходников
    мы хотим собрать сами из исходников

    для умственно отсталых можно написать что нужно скачать как ругаться где взять бубен чтоб все это сходу скомпилировать
    в смысле для wind0wZ

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

    В sjasm-е есть такая багофича с макросами

    предположим обьявляем макрос

    macro mk,xxx
    defb 1 + high xxx, 2 + low xxx
    endm

    при
    mk 16384

    все будет правильно
    $41, $02

    но если написать
    mk 16384 + $10

    компилятор развернет это в
    defb 1 + high 16384 + $10, 2 + low 16384 + $10

    а там другой приоритет действий
    сначала high а потом сложение

    в итоге компилируется оно с ошибкой в виде
    $51, $12

    в место
    $41, $12

    нужно чтоб во время разворачивания макросов
    параметр ставился в скобки
    defb 1 + high (16384 + $10), 2 + low (16384 + $10)

    тогда результат будет предсказуемым
    желательно чтоб было опционально для совместимости со старыми исходниками(пусть по дефолту включено)

    или тогда нужно в мануале указывать что может быть такая грабля


    а еще я хочу опциональное отключение дебилизма в виде ld a,5,a,b,d,h,ret,fghfdg,ghsd

    потому что я пишу привычное мне
    cp a,(hl) одна команда

    а мне ее компилирует в
    cp a
    cp (hl)

    xor a
    xor (hl)

    так бы руки по отрывал бы и тем и тем
    экономщики блджад

    а потом ищешь чаво оно не работает


    а еще в sjasm-e
    нельзя макрос с переменным количеством параметров
    что очень иногда мешает!!!!

    я не знаю что добавлено в сборке Vitamin-а
    и я ее никогда не использовал
    есть где то полный перечень её изменений?

    а еще хотелось бы расширение набора команд
    и разных видов их написания
    +заимтвования их у других компиляторов
    например emuzwin с которого всем нужно переходить на что то другое


    Код:
    DEFG ........ .X......
    DEFG .XXXXX.. .X......
    DEFG ......X. .XXXXX..
    DEFG ..XXXXX. .X....X.
    DEFG .X....X. .X....X.
    DEFG ..XXXX.X .XXXXX..
    DEFG ........ ........
    
    (компилируется в 0,40h,7Ch,40h, и т.д.)
    
    или:
    
    DEFG ........ .X......
         .XXXXX.. .X......
         ......X. .XXXXX..
         ..XXXXX. .X....X.
         .X....X. .X....X.
         ..XXXX.X .XXXXX..
         ........ ........
    
    (в этом случае порядок другой: 0,7Ch,2,3Eh,42h,3Dh,0,40h, т.е. байты размещаются
    по колонкам).
    
    DEFD xxxxxx [[,] xxxxxx ]... 
    
    Директива для определения упакованных шестнадцатеричных. Например, DEFD 1234567890 
    эквивалентно DEFB 12h,34h,56h,78h,90h. Если элемент стартует не с шестнадцатеричной
    цифры, то он считается обычным выражением (и занимает 1 байт, как в директиве DEFB). 
    
    
    ERROR [#severity],'text'[,#passes]
    или
    ERROR [#severity],"text"[,#passes]
    
    Генерирует ошибку, заданную пользователем. Может использоваться, например, в
    макроопределениях для проверки допустимости параметров.
    severity: 0 - warning (предупрежедение: текст попадает в список сообщений, но
    компиляция продолжается); 1 - обычный error (код более не генерируется, но
    компиляция может еще некоторое время продолжаться); 2 или выше - fatal error, 
    компиляция останавливается немедленно. 
    Если #passes не задано, сообщение показывается на всех проходах компиляции. 
    Если оно задано, то значение выражения используется как двоичная маска: бит 0 
    устанавливается, чтобы сообщение показывалось на проходе 1, бит 1 - на проходе 
    2, и бит 2 - на проходе 3. Т.е. например, если passes = 2, то сообщение будет
    отображаться только на первом проходе компиляции, а если pass = 6 - то на втором
    и третьем (при его наличии) проходах.
    
    label[:] PROC
      ...
    [label2[:]] {ENDP|ENDPROC|EPROC}
    
    Задает процедуру. Фактически, всего лишь ограничивает видимость локальных меток, 
    заданных между PROC и ENDPROC. Процедуры могут быть вложены друг в друга, и 
    уровень допустимой вложенности ничем не ограничен.
    
    
    FOR var=values
      ...
    {EFOR|ENDFOR}
    
    Дублирует все операторы между заголовком до финального ENDFOR столько раз, 
    сколько всевозможных значений перечислено в списке для переменной цикла var,
    на каждом шаге присваивая этой переменной очередное значение из списка, как
    если бы имя var определялось директивой DEFINE.
    
    Список значений может содержать любые выражения, строки, заключенные в одинарные 
    и двойные кавычки (во втором случае значение подставляется без кавычек),
    а так же среди прочего перечень значений в виде #from TO #to [STEP #step].
    В последнем случае сначала переменной присваивается значение выражения #from,
    и оно на каждом проходе увеличивает свое значение на #step (по умолчанию - на 1),
    пока не превзойдет (при отрицательном #step - пока станет меньше) значения
    выражения #to.
    
    
    GOTO [cond,][label]
    
    Эквивалент инструкции JR/JP, но по возможности компилятор использует короткие
    переходы (JR). Важное ограничение: любое выражение не может использоваться в 
    качестве операнда, а только метка, локальная или глобальная.
    вот еще полезная команда для сборки всяких sna
    Код:
    ENTRYPOINT #expr
    
    Задает точку входа в программу (устанавливает PC в указанное значение в случае
    успешной компиляции).
    там их еще много
    в оригинальном мануале

    а еще нужно все варианты написаний уже имеющихся команд

    я спотыкался об то что не было какого то завершения команд привычного мне из emuzwin
    какойто возможно eif endif emacro endmacro



    а еще иногда когда пишешь код зависимый от времянок
    или еще что то
    хочется написать два(и более) ветвления\варианта в столбик рядом

    и чтоб это потом скомпилировалось линейно
    Код:
    какая  нибудь команда + параметр количество столбиков
    l5          x   l6
    ld a,b    x   xor b
    rra        x   inc a
    nop       x   
    jp l2      x   jp l3
    
    
    end какая  нибудь команда
    x - какой нибудь символ разделитель

    Код:
    l5
    ld a,b       
    rra          
    nop
    jp l2
    l6       
    xor b
    inc a
    jp l3
    вот бы как то это организовать
    и еще по возможности в каждом столбике должна быть возможность писать комментарии\расстановку
    пусть даже это будет при помощи другого указателя начало комента не ";"
    если так будет проще сделать

    хотелось бы авто замену
    делаю
    replace "ld a,a", "defb $AA"
    должно учитывать пробелы!!!
    (или может при помощи дополнительных параметров должно пропускать любое их количество между и считать табы за пробелы. для случаев если написано ld_____a,__a)

    и еще до компиляции
    все ld a,a
    подменяются на defb $AA

    в sjasm-e по моему что то такое есть
    но оно не дает нужного функционала (по моему оно не понимает пробел.
    ...и все! его уже нельзя использовать...)

    нужно чтоб набрал
    replace "d", "1"

    а оно тебе заменило
    ld a,a
    на
    l1 a,a
    и выдало ошибку

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



    еще не хватает возможности писать шестнадцатеричные цифры
    вот так 1234h

    как это работает в emuzwin
    а потом при адаптации исходника...



    по моему sjasm не понимает какой то вариант написания defb defw
    db dw чтоле
    периодически приходиться в блокноте жать заменить все
    и ждать пока оно начухается (все же в курсе как он тормозит на 500К текстах))))
    а чтото другое для замены запускать влом...


    еще бы хотелось поддержку мнемоник i8080
    чтоб не переправлять код с i8080
    а просто вставлять готовое

    можно в виде
    i8080mode
    mov a,a
    endi8080mode

    просить поддержки других процов наверное уже сильно жирно...

    но если расширить возможности макросов и впилить автозамену
    то на них можно будет дописать поддержку нужных команд
    (скоро зарелижу свой компилятор какой то фигни написаный на макросах sjasm-a)))))


    не помешало бы сохранение\экспорт в разные другие форматы для разных машин с i8080 z80
    всяких zx80-ов, CPC-ов, РК-шек и тс-конф
    чтоб не писать свой генератор контрольных сум
    а просто указать адреса и все...

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

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

    Цитата Сообщение от zebest Посмотреть сообщение
    вот такая конструкция, всего одна потерянная буква, ошибок не дает, но и не компилится.
    Кстате да!!!
    помогла бы проверка на наличие опечаток и недописок (по словарю?)
    и выдавание их в виде списка


    zebest а как незакрытый dup может не давать ошибку????


    не помешал бы вариант написания
    if **** then

    тк в некоторых компиляторах он используется
    с таким же успехом в этом же исходнике он применяется в lua
    и вполне его можно случайно написать в место
    if ****


    наверное нужно повысить совместимость с аль асмом (ALASM)
    чтоб компилировать его код без большого количества переделок
    чтоб переманить аль асмовцев в sjasm
    и чтоб они делали более лучший софт используя ПЦ а не трахались в эмуляторе...

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

    alonecodersourcemode
    всякий alasm код
    endalonecodersourcemode


    да и улучшеное понимание других старых компиляторов не помешало бы
    а то куча софта написано на неизвестно чем
    http://opensourcezx.untergrund.net/
    и доки к этому неизвестно чему
    тоже неизвестно где..
    Последний раз редактировалось NEO SPECTRUMAN; 12.03.2017 в 19:00.

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

  8. #1337
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,671
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    322
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а как незакрытый dup может не давать ошибку????
    оказываеЦЦа - леххко.. Тем более любой сам может проверить.
    видимо синтаксис и вообще наличие закрывающего EDUP не проверяется. Хотя может компилятор ищет его до конца текста, и не находит ничего похожего, ну и молчит,Но и ошибок не выдает, партизан...
    При этом не только этот конкретный DUP не компилится, не компилится ВСЯ! программа, уточняю, елси кто-то не понял.
    а из хотелок - как раз встроенные друг в друга DUP-ы мне бы иногда не помешали
    Последний раз редактировалось zebest; 12.03.2017 в 19:33.
    Profi v3.2 -=- Speccy2010,r2

  9. #1338
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а еще в sjasm-e
    нельзя макрос с переменным количеством параметров
    яростно плюсую!

  10. #1339
    Activist
    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    424
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    59 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не знаю может уже устаревшая инфа - на RC6 (и 7 тоже вроде бы остальное не пробовал) ловил баг с ключём --dos866. Оказалось он криво работает в инструкции define. Если написать чтото типа:
    DEFINE chetotam "В кодировке виндовс"
    и подставить в например:
    DB chetotam
    то получим невнятные кракозябры. Было подозрение что два раза перекодировалось, но не проверял.

  11. #1340
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На одних и тех же исходниках новая версия валится, а rc7 нормально отрабатывает



    внутри файла инклуды вида
    INCLUDE "known/..... - отрабатывают
    а когда доходит до того, где без директории known - валится.
    Последний раз редактировалось Bedazzle; 12.03.2017 в 23:14.

Страница 134 из 167 ПерваяПервая ... 130131132133134135136137138 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Кросс-ассемблеры Z80 для Pc
    от Aprisobal в разделе Программирование
    Ответов: 16
    Последнее: 15.01.2011, 22:46
  2. кросс компилятор С для Z80
    от vitasam в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2007, 18:03
  3. Хороший ПЦшный ассемблер - залог успеха!
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 08.08.2005, 15:25
  4. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

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