User Tag List

Страница 36 из 63 ПерваяПервая ... 323334353637383940 ... ПоследняяПоследняя
Показано с 351 по 360 из 699

Тема: SjASMPlus от z00m

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Ped7g, а можно добавить режим
    чтоб при перезаписи выдавались предупреждения?

    чтоб такой код
    Код:
     org $C000
    xor a
    xor b
    xor c
    xor d
    
     org $C001
    xor e
    выдавал
    warning $C001 was overwriten


    ну и если не заводить отдельный массив для этого
    то хотя бы проверять на $00 перед записью

    nop-ов не так много в коде
    и лучше хоть какая то проверка чем никакой...

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

  3. #2

    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,830
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    247
    Поблагодарили
    106 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    @Ped7g just wanted to thank you for your continuing support of this assembler I believe you've spent hundreds of hours of your free time on it. Some people here were somewhat harsh, but you were always nice and sympathetic. Thank you! And keep up the good work
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

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

    Virtual TR-DOS

    Эти 2 пользователя(ей) поблагодарили Shadow Maker за это полезное сообщение:

    introspec(27.12.2020), Ped7g(26.12.2020)

  4. #3

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

    По умолчанию

    So in recent weeks I was abusing sjasmplus script a lot (as a form of test/exercise of the scripting implementation, some of the experience went into improving it just before v1.18.0 release)...

    If you are serious about sjasmplus scripting, maybe you can pick up a trick or two from these:
    https://github.com/ped7g/adventofcode

  5. #4

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

    По умолчанию

    Код:
    	
    tmp_cnt = 0
    	dup 10
    
    		if ((tmp_cnt = 0) || (tmp_cnt = 5) || (tmp_cnt = 7) || (tmp_cnt = 8))
    			display tmp_cnt," skip"
    		else		
    			display tmp_cnt," ok"
    		endif
    tmp_cnt = tmp_cnt +1
    	edup
    	
    	display " "
    
    tmp_cnt = 0
    	dup 10
    
    		if ((tmp_cnt != 0) || (tmp_cnt != 5) || (tmp_cnt != 7) || (tmp_cnt != 8))
    			display tmp_cnt," ok"
    		else		
    			display tmp_cnt," skip"
    		endif
    tmp_cnt = tmp_cnt +1
    	edup
    
    	display " "
    
    tmp_cnt = 0
    	dup 10
    
    		if ((tmp_cnt =! 0) || (tmp_cnt =! 5) || (tmp_cnt =! 7) || (tmp_cnt =! 8))
    			display tmp_cnt," ok"
    		else		
    			display tmp_cnt," skip"
    		endif
    tmp_cnt = tmp_cnt +1
    	edup
    		
    	display " "
    
    tmp_cnt = 0
    	dup 10
    
    		if ((tmp_cnt <> 0) || (tmp_cnt <> 5) || (tmp_cnt <> 7) || (tmp_cnt <> 8))
    			display tmp_cnt," ok"
    		else		
    			display tmp_cnt," skip"
    		endif
    tmp_cnt = tmp_cnt +1
    	edup

    Код:
    > 0x0000 skip
    > 0x0001 ok
    > 0x0002 ok
    > 0x0003 ok
    > 0x0004 ok
    > 0x0005 skip
    > 0x0006 ok
    > 0x0007 skip
    > 0x0008 skip
    > 0x0009 ok
    >
    > 0x0000 ok
    > 0x0001 ok
    > 0x0002 ok
    > 0x0003 ok
    > 0x0004 ok
    > 0x0005 ok
    > 0x0006 ok
    > 0x0007 ok
    > 0x0008 ok
    > 0x0009 ok
    >
    > 0x0000 ok
    > 0x0001 skip
    > 0x0002 skip
    > 0x0003 skip
    > 0x0004 skip
    > 0x0005 skip
    > 0x0006 skip
    > 0x0007 skip
    > 0x0008 skip
    > 0x0009 skip
    >
    test.asm(52): error: Syntax error: > 0) || (tmp_cnt <> 5) || (tmp_cnt <> 7) || (
    tmp_cnt <> 8))
    test.asm(52): error: ')' expected
    почему не работает != ? o_O
    почему =! дает какой то результат?
    Последний раз редактировалось NEO SPECTRUMAN; 05.01.2021 в 03:33.

  6. #5

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

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    почему не работает != ? o_O
    Looks all correct to me?

    The first part is doing "skip" when cnt is 0 or 5 or 7 or 8

    The second part is doing "ok" every time (first two "(cnt is not 0) or (cnt is not 5)" are enough to be always true for any cnt value)

    The third part "=!" is parsed as: "=" is equivalence operator, "!" is logical not, so 0 becomes -1, and non-zero values become 0
    That leads to "ok" when cnt is -1 or 0

    Fourth is just syntax error, the "<>" operator doesn't exist in sjasmplus.

    Did you want in second block negation of first block? Then: !(A || B) = (!A) && (!B)
    (note the "logical or" becomes "logical and" when whole expression is negated)
    Код:
    tmp_cnt = 0
    	dup 10
    		if ((tmp_cnt != 0) && (tmp_cnt != 5) && (tmp_cnt != 7) && (tmp_cnt != 8))
    			display tmp_cnt," ok"
    		else		
    			display tmp_cnt," skip"
    		endif
    tmp_cnt = tmp_cnt +1
    	edup

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

    NEO SPECTRUMAN(05.01.2021)

  7. #6

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

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    Looks all correct to me?
    значит у меня не правильное понимание || и(людское) &&
    и значит (|| людское and &&) != ((людское OR) людское and (людское AND))
    Последний раз редактировалось NEO SPECTRUMAN; 05.01.2021 в 14:55.

  8. #7

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

    По умолчанию

    logical or (T = true [-1 in sj], F = false [0 in sj]):
    F || F = F
    T || F = T
    F || T = T
    T || T = T

    logical and:
    F && F = F
    T && F = F
    F && T = F
    T && T = T

    logical not:
    !F = T
    !T = F

    And the general math rules for propagating logical not in complex expressions:
    !(A < B) <=> A >= B
    !(A == B) <=> A != B
    !(A || B) <=> !A && !B
    !(A && B) <=> !A || !B
    ...
    https://en.wikipedia.org/wiki/Negation#Distributivity

    sjamplus treats any non-zero value as true, and zero value as false, but when boolean-true is calculated, it is represented by ~0 (-1).
    value = 4 ; value = 4
    value = !4 ; value = 0
    value = !!4 ; value = -1 (true)

    ( "людское ponimanje" => no idea what you are talking about, the math way is the only way I think about logic, even when talking in human language ... but there are many people not able to correctly negate predicate ... for example they ask you if you like blue colour, and you say "no", they will think you hate blue (which is incorrect negation "!like" is not "hate"))
    Последний раз редактировалось Ped7g; 05.01.2021 в 18:25.

  9. #8

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

    По умолчанию

    Цитата Сообщение от Ped7g Посмотреть сообщение
    "людское ponimanje" => no idea what you are talking about,
    не знаю как у вас
    у нас когда люди говорят

    если (if)
    A не равно 1
    или (or)
    A не равно 5
    тогда (then)
    Ы = 7
    если нет (else)
    тогда Ы = 0


    это имеется в виду (и это правильно)

    Код:
    if A <> 1
      if A <> 5
      Ы = 7
      else
      Ы = 0
      endif
    else
    Ы = 0  
    endif
    и ожидаемый результат
    1 Ы=0
    2 Ы=7
    3 Ы=7
    4 Ы=7
    5 Ы=0

    такое никогда не имеют в виду

    Код:
    if A <> 1
    temp1 = 1
    else
    temp1 = 0
    endif
    
    if A <> 5
    temp2 = 1
    else
    temp2 = 0
    endif
    
    if temp1 = 1
      Ы = 7
      else
      if temp2 = 1
      Ы = 7
      else
      Ы = 0
      endif
    endif
    и такой рeзультат
    1 temp1=0 or temp2=1 = Ы=7
    2 temp1=1 or temp2=1 = Ы=7
    3 temp1=1 or temp2=1 = Ы=7
    4 temp1=1 or temp2=1 = Ы=7
    5 temp1=1 or temp2=0 = Ы=7
    совершенно неожиданный



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


    к вам претензий нет
    просто это не совсем очевидный аспект
    Последний раз редактировалось NEO SPECTRUMAN; 07.01.2021 в 00:26.

  10. #9

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

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    это имеется в виду (и это правильно)

    Код:
    if A <> 1
    Ы = 7
    else
      if A <> 5
      Ы = 7
      else
      Ы = 0
      endif
    endif
    Кривой код
    else
    Ы = 0
    никогда не отработает
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  11. #10

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

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    никогда не отработает
    пофиксил

    поэтому и нужон долбанный список условий по типу if a=1,5,6
    а не трехэтажные IF-ы
    в которых можно чего то просмотреть

    или нужны элементарные for и goto
    чтоб не городить огород из dup-ов и if-ов
    ТУПО пытаясь повторить их функционал

    додо знаю щас ТЫ начнешь мне расказывать что
    компилятор не должен это делать
    это должен делать cpp, линкер, хренкер прочая ересь
    и весь исходник должен состоят из батников
    а компилятор должен только заменять nop на $00 и ничего более
    и даже не должен делать переходы на метки вперед
    и все метки для переходов должны быть предварительно объявлены в начале исходника
    а то ж ведь компилятор еще не знает куда ему переходить когда код выглядит так
    jp l1
    l1
    Последний раз редактировалось NEO SPECTRUMAN; 07.01.2021 в 00:42.

Страница 36 из 63 ПерваяПервая ... 323334353637383940 ... ПоследняяПоследняя

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

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

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

Ваши права

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