User Tag List

Страница 37 из 99 ПерваяПервая ... 333435363738394041 ... ПоследняяПоследняя
Показано с 361 по 370 из 985

Тема: WarCraft 1 - под классический 128+TR-Dos

  1. #361

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

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение

    Код:
            org 32768
            ld hl,$         ;21XXXX
            ld (met+1),hl   ;22XXXX
    met     ld sp,#0000     ;31XXXX
    тоже самое что

    Код:
            org 32768
    aaa     ld hl,aaa        ;21XXXX
            ld (met+1),hl   ;22XXXX
    met     ld sp,#0000     ;31XXXX


    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Или какое точно смещение должно быть записано в конструкции типа:

    Код:
            cp 1
            jp nz,$+?       ;C2XXXX
            ld a,100        ;3EXX
            ret             ;C9
            ld a,200
            ret
    это быдло код
    никогда так не пиши

    если не хочешь выдумывать название метке
    делай так
    Код:
            cp 1
            jp nz,1f      ;C2XXXX
            ld a,100        ;3EXX
            ret             ;C9
    1   ld a,200
            ret

    так же вот это быдлокод
    Цитата Сообщение от DragonsLord Посмотреть сообщение

    Код:
            ld (met+1),hl   ;22XXXX
    никогда так не делай

    делай так

    Код:
            ld (met),hl   ;22XXXX
    
    ;дето там
    met = $+1 : ld sp,$0000
    Последний раз редактировалось NEO SPECTRUMAN; 03.05.2021 в 19:47.

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

  3. #362

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    по адресу начала инструкции
    То есть здесь $+6 ?

    Код:
     cp 1
            jp nz,$+6       ;C2XXXX
            ld a,100        ;3EXX
            ret             ;C9
            ld a,200
            ret
    А здесь получим ld sp,32768 ?

    Код:
            org 32768
            ld hl,$         ;21XXXX
            ld (met+1),hl   ;22XXXX
    met     ld sp,#0000     ;31XXXX
    Всё верно?

    это быдло код
    никогда так не пиши
    Вот Алоний то порадуется. Оказывается он только *****код пишет. Онли
    Чем *****код то? На сколько я помню 30 лет уже как ВСЕ сохраняют значение стэка именно так: ld (met+1),sp
    Последний раз редактировалось DragonsLord; 03.05.2021 в 19:46.

  4. #363

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

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    jp nz,1f ;C2XXXX
    ld a,100 ;3EXX
    ret ;C9
    1 ld a,200
    важное замечание

    вот такое компилятор не понимает
    ld hl,1f
    1 ld a,10

    и аффтару компилятора недокажешь что это должно работать
    и насколько это нужно...


    ну и до можно переходить туда сюда
    и иметь кучу временных цифровых меток
    Код:
            cp 2
            jp nz,2f
            cp 1
            jp nz,1f      ;C2XXXX
            ld a,100        ;3EXX
            ret             ;C9
    
    1   ld a,200
    2   ld b,100
    100500 xor a
            ret
    
          jp 2b  ;так переходить назад
         jp 100500b
    Последний раз редактировалось NEO SPECTRUMAN; 03.05.2021 в 19:46.

  5. #364

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    это быдло код
    никогда так не пиши

    если не хочешь выдумывать название метке
    делай так
    и так тоже быдлокод, кроме случая, когда нужно постоянное число тактов (и то cp 1 лучше заменить на dec a)

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

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    То есть здесь $+6 ?
    да
    Прихожу без разрешения, сею смерть и разрушение...

  6. #365

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

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Чем *****код то?
    всем
    не понемаешь чем
    ну не используй
    потом добавишь 1 команду между
    забыв поменять смещение
    и будешь думать чего оно не работает....

    и не будешь задавать глупых вопросов
    типа
    Цитата Сообщение от DragonsLord Посмотреть сообщение
    То есть здесь $+6 ?
    и постоянно считать а сколько же байт смещения нужно добавить
    или на что тепперь оно нужно исправить....

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Вот Алоний то порадуется
    пусть радуется
    общеизвестно
    что алоносорцы непригодны к повторному использованию

    правда щас он перешел на сджасм и клиническая картина несколько улучшилась

    но перемещаемость его кода все равно оставляет желать лучшего...

    а так алоний силен в других направлениях...


    я как раз недавно пытался заюзать этот движок под свои нужды
    но тк там сплошные +6 +7 _ = $
    и куча дичайших конструкций
    итоговый код слабоперемещаем...

    а еще есть мнение что мануалы алония понимает только сам алоний
    но это не точно

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

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    когда нужно постоянное число тактов (
    песец умнек нашелся...
    придрался к командам когда речь шла про временные метки
    а команды были для примера....
    Последний раз редактировалось NEO SPECTRUMAN; 03.05.2021 в 20:23.

  7. #366

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё интересно бы было обсудить "замены" в коде, сокращающие байты/такты. Я на вскидку, знаю две:
    - вместо ld a,0 писать xor a
    - вместо cp 0 писать and a

    Ещё есть такие приколюхи?
    Последний раз редактировалось DragonsLord; 03.05.2021 в 20:02.

  8. #367

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

    По умолчанию

    DragonsLord вот те наглядный пример
    илюстрирующий почему +100500 в неположенном месте это *****код

    Код:
    var = 0
    
     cp 1
            jp nz,$+6       ;C2XXXX
            ld a,100        ;3EXX
    
             if var = 1
             ld b,200
            else
             ld bc,$0000
             xor e
             endif
    
            ret             ;C9
            ld a,200
            ret
    неужели еще нужно для jp nz писать условие и делать такое?
    if var = 1
    jp nz,$+6
    else
    jp nz,$+100500
    endif

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

    уже давно не 90-е
    и писать экономя на весе исходника
    никакое не оправдание
    а только плохая привычка...

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

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Ещё есть такие приколюхи?
    add hl,hl для вращения hl например

    их то куча
    но сходу не вспомнить
    ну и они все не на 100% передают заменяемое
    а приминимы только в конретных случаях

    например если не надо +-1 точность
    то можно вместо
    neg 8t
    юзать
    cpl 4t

    самая крутая фишка как по мне это sbc a
    в случае
    carry = 0
    A = 0
    в случае
    carry = 1
    A = $FF
    Последний раз редактировалось NEO SPECTRUMAN; 03.05.2021 в 20:17.

  9. #368

    Регистрация
    20.01.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    804
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    92 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    зачем создавать себе и другим головную боль?
    когда можно использовать метки и временные метки
    Ты недопонял для чего такое применяется, как $+
    Не для дикости, которую ты привёл, а если заранее гарантированно известно, что код будет законсервирован навсегда и не изменяем, никакого повторного использования, и лень придумывать 100500 меток. Вот например, ща я буду конвертер делать карты. Самое оно. В данном случае *****код это как раз метки лепить.

  10. #369

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

    По умолчанию

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

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

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Ты недопонял для чего такое
    я тоже юзал такую гадость по началу
    особенно когда юзал убогие ассемблеры типа emuzwin-овского...
    но потом это прошло...

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    а если заранее гарантированно известно, что код будет законсервирован навсегда и не изменяем,
    ну до
    а потом когда ВНЕЗАПНО все же нужно будет его подправить
    а там 60+ ld (****+1),hl (в придачу в разных файлах )
    вот это удовольствие
    тебе непременно понравится

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

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

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    Не для дикости, которую ты привёл,
    ну может тебе и не дико
    а вот тому кто откроет твой г*вно сорец
    потом придется высчитывать а куда мать его ведет каждый срaный jp nz,$+17
    чтоб элементарно понять куда оно мать его ведет
    вспоминая того урода который додумался такое изваять...

    ...на а еще бывает такое
    "открываешь свой сорец спустя 2 года"
    ну ты понел...

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

    кстате еще из моего опытка грабленаступания

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

    но вот когда этих коментов на инглише целая куча (сопоставимая по размеру с самим кодом)

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

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

    пиши коменты кирилицой и не морочь себе голову...
    Последний раз редактировалось NEO SPECTRUMAN; 03.05.2021 в 20:56.

  11. #370

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,295
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,459
    Поблагодарили
    949 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DragonsLord Посмотреть сообщение
    вместо ld a,0 писать xor a
    xor a сбрасывает флаги в отличии от ld
    в некоторых конструкциях это критично

Страница 37 из 99 ПерваяПервая ... 333435363738394041 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. как портировать музон с Warcraft inroduction
    от ALKO в разделе Музыка
    Ответов: 20
    Последнее: 03.02.2021, 01:06
  2. Ответов: 1
    Последнее: 25.07.2018, 19:52
  3. Чтение дисков TR-DOS под XP
    от Zloy в разделе Софт
    Ответов: 47
    Последнее: 19.09.2008, 09:06
  4. NK-DOS (вариант MS-DOS под TR-DOS)
    от Nomy Graphics в разделе Оси
    Ответов: 30
    Последнее: 03.09.2007, 16:59
  5. Софт под iS-dos
    от demon_zx в разделе Софт
    Ответов: 0
    Последнее: 07.03.2006, 23:35

Ваши права

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