User Tag List

Страница 44 из 51 ПерваяПервая ... 404142434445464748 ... ПоследняяПоследняя
Показано с 431 по 440 из 501

Тема: Тема для всяких глупых вопросов

  1. #431

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

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    По задумке тут через аккум первый пиксель в строке должен переноситься на последний циклично
    Так понимаю, по задумке "пиксель" - это всё знакоместо атрибутное? Тогда что-то типа такого (пишу с головы, не тестировал):

    Код:
        ld hl, 22529
        ld de, 22528
    
    scroll:
        ld a, (de)
    
        DUP 32
            ldi
        EDUP
    
        ld (de), a
    
    counter:
        ld a,24
        dec a
        ret z
        ld (counter+1),a
    
        inc de
        inc l
    
        jp scroll
    - - - Добавлено - - -

    Цитата Сообщение от M80 Посмотреть сообщение
    Наверно так?
    А зачем di/ei, если стек используется только в штатном режиме?
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  2. #432

    Регистрация
    18.01.2010
    Адрес
    Крым
    Сообщений
    238
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    41
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    А зачем di/ei, если стек используется только в штатном режиме?
    Понятия не имею - это к АLKO вопросы. Я вообще с Синклером не работал - игрался только.)
    Тоже подумал об ldi, если скорость важна.
    counter не даёт выигрыша по сравнению с push/pop/djnz.)
    Последний раз редактировалось M80; 31.10.2024 в 12:03.

  3. #433

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

    По умолчанию

    Цитата Сообщение от M80 Посмотреть сообщение
    counter не даёт выигрыша по сравнению с push/pop/djnz.)
    А так?

    Код:
        ld hl, 22529
        ld de, 22528
    
        ld a, 24
    scroll:
        ex af, af'
        ld a, (de)
    
        DUP 32
            ldi
        EDUP
    
        ld (de), a
    
        ex af, af'
        dec a
    
        jp nz, scroll
    
        ret
    Последний раз редактировалось Bedazzle; 31.10.2024 в 18:49.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  4. #434

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    в данном случае скорость для меня не столь уж и важна, так что можно и без ldi-шек
    а разве при di доступ к стеку обрубается? тогда странно как в других подпрограммах пуш попы работают...

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

    да, пиксель = атрибут.

  5. #435

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

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    в данном случае скорость для меня не столь уж и важна, так что можно и без ldi-шек
    А что важно? Понятный код? Размер? Конкретные регистры?

    Цитата Сообщение от ALKO Посмотреть сообщение
    а разве при di доступ к стеку обрубается?
    DI = disable interrupt, отключает вызов прерывания, которое гадит в стек.
    Если с прерываниями обходиться неосторожно, то, например, при отрисовке стеком в буфер можно залезть за границу, и попортить часть программы.
    А если рисовать стеком на экран, то можно залезть на пзу, и вылететь неизвестно куда.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  6. #436

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от M80 Посмотреть сообщение
    Наверно так?

    [/CODE]
    Старайся писать аккуратно. Себе же меньше работы будет! И людЯм приятно.)
    Что то LIST этот свернул всё.(
    Код:
    SCROLL_PLANE_L
            di
            ld      de,22527        ; начало экрана
            ld      hl,22527 + 1    ; начало экрана + 1
            ld      b,24            ; строк
    SCROLL_PLANE_L1:
            ld      a,(de)          ; сохраним первый столбец
            push    bc
            ld      bc,32 - 1       ; всего столбцов - первый
            ldir                    ; переместим все влево
            pop     bc
    
    ;       DE - указатель на последний в текущей строке
    ;       HL - на первый на следующей строке
    
            ld      (de),a          ; переносим сохранённый первый на последний столбец в строке
            inc     de              ; следующая строка
            inc     hl              ; следующая строка + 1
            djnz    SCROLL_PLANE_L1
            
            ei
            ret
    Ну я примерно так и делал. Съезжает чёт по краям всё равно.



    Цитата Сообщение от Bedazzle Посмотреть сообщение
    А что важно? Понятный код? Размер? Конкретные регистры?
    Да там построчного LDIR'а хватит вполне. Вот только пристыковать эту цикличность бы.

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

  8. #437

    Регистрация
    18.01.2010
    Адрес
    Крым
    Сообщений
    238
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    41
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Ну я примерно так и делал. Съезжает чёт по краям всё равно.
    Ты бы идею донёс? Подробно, как для дебилов. Иначе - пас.

  9. #438

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от M80 Посмотреть сообщение
    Ты бы идею донёс? Подробно, как для дебилов. Иначе - пас.
    Есть слой атрибутов. Ну те, что цвет Ink Paper задают. 768 байт, начиная с адреса #5800.
    Надо циклически скроллить этот массив. То есть атрибут, вышедший за край левой стороны появляется справа. Наоборот я уже по образу и подобию сделаю. (вообще там надо будет под буфер иной ширины переделывать, тож по образу и подобию, мне главное чтоб наглядно было сразу на экране видно, как атрибуты ведут себя.)

  10. #439

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

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Есть слой атрибутов. Ну те, что цвет Ink Paper задают. 768 байт, начиная с адреса #5800.
    Надо циклически скроллить этот массив. То есть атрибут, вышедший за край левой стороны появляется справа. Наоборот я уже по образу и подобию сделаю. (вообще там надо будет под буфер иной ширины переделывать, тож по образу и подобию, мне главное чтоб наглядно было сразу на экране видно, как атрибуты ведут себя.)
    сдвигай сразу весь массив на один байт, хоть даже единственным лдиром; перед этим запомнить надо лишь один байт, потом крайний столбец сдвинешь по вертикали и вставишь этот байт

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

    пример на массиве 4x3

    до сдвига:

    1 2 3 4
    5 6 7 8
    9 a b c

    запомнили 1

    сразу после сдвига:

    2 3 4 5
    6 7 8 9
    a b c c

    правый столбец вниз, начав снизу:

    2 3 4 5
    6 7 8 5
    a b c 9

    вставили 1:

    2 3 4 1
    6 7 8 5
    a b c 9
    Прихожу без разрешения, сею смерть и разрушение...

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

    ALKO(01.11.2024)

  11. #440

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

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Да там построчного LDIR'а хватит вполне. Вот только пристыковать эту цикличность бы.
    Мой пример чем не люб?
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

Страница 44 из 51 ПерваяПервая ... 404142434445464748 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 42
    Последнее: 05.05.2021, 17:01
  2. Общая тема для моих вопросов (ассемблер и zx spectrum)
    от moronizzz в разделе Для начинающих
    Ответов: 17
    Последнее: 23.08.2016, 18:13
  3. тема для мобильного....
    от rasmer в разделе Музыка
    Ответов: 0
    Последнее: 18.01.2008, 20:25

Метки этой темы

Ваши права

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