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

User Tag List

Страница 8 из 8 ПерваяПервая ... 45678
Показано с 71 по 80 из 80

Тема: LASER BASIC 2

  1. #71
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,761
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    293
    Поблагодарили
    220 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Вот моя процедура зеркалирования окна. Если вы видите как её оптимизнуть (не для демостроя, без таблиц), то милости прошу. У нас техническая тема, так что по возможности без эмоций, ладно?

    Код:
    void Laser2_MIRV (unsigned char col, unsigned char row, unsigned char len, unsigned char hgt) __z88dk_callee
    {
      __asm
                      POP   DE
                      POP   BC              ; C = col; B = row
                      CALL  __Laser2_XYtoScr
                      POP   BC              ; C = len; B = hgt
                      PUSH  DE
                      LD    A, C
                      LD    (MIRV_WIDTH$+1), A
                      INC   A
                      SRL   A
                      LD    (MIRV_WIDTH_DIV2$+1), A
    MIRV_HLINE$:      PUSH  BC              ; Begin of loop on charlines
                      LD    A, #8
    MIRV_LINE8$:      EX    AF, AF
                      LD    (MIRV_SCR_ADR$+1), HL
                      LD    A, L
    MIRV_WIDTH$:      ADD   #0
                      LD    E, A
                      LD    D, H
    MIRV_WIDTH_DIV2$: LD    B, #0
    
    MIRV_COL_MIRROR$: DEC   E
                      LD    A, (DE)
                      LD    C, (HL)
    
                      ; ------------------
                      ; 2 bytes mirroring
                      ; ------------------
                      RLA
                      RR    C
                      RLA
                      RR    C
                      RLA
                      RR    C
                      RLA
                      RR    C
                      RLA
                      RR    C
                      RLA
                      RR    C
                      RLA
                      RR    C
                      RLA
                      RR    C
                      ; ------------------
    
                      RLA
                      LD    (DE), A
                      LD    (HL), C
                      INC   L
                      DJNZ  MIRV_COL_MIRROR$
    MIRV_SCR_ADR$:    LD    HL, #0
                      INC   H
                      EX    AF, AF
                      DEC   A
                      JR    NZ, MIRV_LINE8$
                      LD    A, L
                      ADD   #0x20           ; Next charline
                      LD    L, A            ; If carry then jump to next third of screen
                      JR    C, MIRV_CONT_1_3$
                      LD    A, H
                      SUB   #8              ; HL := HL - 0x0800
                      LD    H, A
    MIRV_CONT_1_3$:   POP   BC
                      DJNZ  MIRV_HLINE$     ; End of loop on charlines (the same third)
      __endasm;
    } //Laser2_MIRV
    http://www.retroprogramming.com/2014...-reversal.html
    С уважением,
    Jerri / Red Triangle.

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

    ivagor (16.05.2024)

  3. #72
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    2,246
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    112 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Надо миррорить два байта, а не один, как по твоей ссылке, жерри.

  4. #73
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,588
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    237
    Поблагодарили
    186 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Вот моя процедура зеркалирования окна. Если вы видите как её оптимизнуть (не для демостроя, без таблиц),
    что за утырочная мания объявлять всё, что не по нраву, "демостроем" с негативным оттенком
    в играх зеркалирование табличное сплошь и рядом, даже в довольно древних
    да и таблица-то всего лишь 256 байт
    Прихожу без разрешения, сею смерть и разрушение...

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

    Barmaley_m (18.05.2024)

  6. #74
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    2,246
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    112 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Демострой это определённой набор подходов и принципов, при которых ложат болт на нормальное использование памяти и забивают целые килобайты инструкциями типа LDI, шобы было "во фреймчик". А мне была нужна универсальная библиотека. Да и 256 байт это тоже память.

  7. #75
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,588
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    237
    Поблагодарили
    186 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Демострой это определённой набор подходов и принципов, при которых ложат болт на нормальное использование памяти и забивают целые килобайты инструкциями типа LDI, шобы было "во фреймчик". А мне была нужна универсальная библиотека. Да и 256 байт это тоже память.
    только вот табличное зеркалирование - норма тех времён, когда и демок-то еще не было (хотя фреймовость местами уже была)
    Прихожу без разрешения, сею смерть и разрушение...

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

    Barmaley_m (18.05.2024)

  9. #76
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    2,246
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    112 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ладно, не возражаю. В XDev такие штуки могут быть устроены опционально. Благодаря сишному препроцессору.

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

  11. #77
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,208
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    47 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Держитесь, пацаны. Через несколько дней вас будут обращать в Оберон.

  12. #78
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    2,246
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    112 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Аминь

  13. #79
    Master
    Регистрация
    27.01.2005
    Сообщений
    917
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    181
    Поблагодарили
    146 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Демострой это определённой набор подходов и принципов, при которых ложат болт на нормальное использование памяти и забивают целые килобайты инструкциями типа LDI, шобы было "во фреймчик". А мне была нужна универсальная библиотека. Да и 256 байт это тоже память.
    А все от задачи зависит.
    Если критично оптимизация по памяти это одно.
    Но где-то критично быстродействие кода.

    Я тут как-то ради быстродействия (не на спеке) сделал таблицу размером в 2ГБ. И всех это устроило, потому что иначе быстродействия не хватало. И ничего.

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

    Barmaley_m (19.05.2024)

  15. #80
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    2,246
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    112 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да ясен пень, я ж и не спорю. Если всех всё устраивает

Страница 8 из 8 ПерваяПервая ... 45678

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

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

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

Похожие темы

  1. LASER BASIC
    от VETER в разделе Программирование
    Ответов: 8
    Последнее: 04.01.2015, 04:48
  2. laser basic
    от johnny в разделе Программирование
    Ответов: 32
    Последнее: 17.02.2014, 22:57
  3. LASER BASIC decompiled by HVG
    от Raydac в разделе Программирование
    Ответов: 0
    Последнее: 21.12.2009, 23:04
  4. Возрождение Laser Squad
    от Odrick в разделе Игры
    Ответов: 17
    Последнее: 08.11.2005, 02:18
  5. Re: Laser Genius
    от Oleg Golenkoff (2:451/19) в разделе Софт
    Ответов: 3
    Последнее: 01.10.2005, 06:06

Ваши права

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