User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 18 из 18

Тема: Вывод атрибутов из буфера

  1. #11

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    можно даже смещение для следующей строки хранить рядом с байтами размера
    Не стоит забывать, что я убер-ламер в прогинге
    И исходя из такого совета наваяю что-то вроде
    Push hl
    ld h, (Sprite_addr+3)
    add h
    ...
    Pop hl

    Что значительно прибавит тактов.

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

    Хотя... Наверное можно предварительно загнать в exx перед входом в процедуру.

  2. #12

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

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    загнать в exx
    не забудь что для бейсика важно значение HL`

  3. #13

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

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    не забудь что для бейсика важно значение HL`
    Если в Бейсцык RETиться не собираюсь, то не страшно ведь?

  4. #14

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

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Если в Бейсцык RETиться не собираюсь, то не страшно ведь?
    Смотри, как было предложено выше, формат спрайта
    Первый байт ширина
    Второй байт высота
    Дальше идут все байты спрайта.

    При вызове процедуры печати берёшь первый байт, вносишь его значение в то место, где инициализируется цикл, отвечающий за проход по ширине.
    Также вычисляешь смещение по горизонтали, вносишь туда, где идёт приращение адреса.
    Берёшь второй байт, вносишь туда, где инициализируется цикл, отвечающий за кол-во строк по высоте.
    Дальше используешь свою процедуру, которую ты приводил в начале.

    P.S.
    если спрайтов дофига, и нужно экономить память, то если размер не превышает 16х16, можно кодировать размер в один байт - ширина 4 бита, и высота 4 бита.
    Скажем, так

    Код:
    sprite:
        db %WWWWHHHH
        db ..... .....    ; тут идут данные спрайта  
    
    
        ld hl, sprite
        ld a,(hl)
        and %00001111   ; получили высоту
        ld (DRAW_SPRITE2-1), a
        
        ld a,(hl)
        rrca
        rrca
        rrca
        rrca
        and %00001111    ; получили ширину
        ld (DRAW_SPRITE1-1), a
    
        ld c, a
        ld a, 64                   ; buffer_width
        sub c                      ; вычислили ширину приращения в буфере
        ld (SCREEN_ADD-1), a
    
        inc hl
    
        и дальше отрисовка спрайта
    Последний раз редактировалось Bedazzle; 05.10.2021 в 20:38.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  5. #15

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

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Не понял. В hl же адрес экрана должен быть? Зачем оттуда читать?
    адрес никому ничего не должен, где удобней, там и располагаем, можно в de

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Ну, это зависит можно ли раздувать память под спрайты.
    ох, раздули, плюс один байтик на спрайт, караул!
    не волнует, у нас всё-таки не быкашка))

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    И оно будет медленнее, чем модифицирующийся хардкод.
    с чего вдруг? хардкод нужен только где в регистры всё не влезает, например:
    Код:
    ; hl - адрес в буфере, de - адрес спрайта
    
    		ld a,(de)	; смещение
    		ld c,a
    		inc de
    		ld a,(de)	; ширина
    		ld (#),a
    		inc de
    		ld a,(de)	; высота
    
    _0		exa
    		ld b,#	; только здесь хардкодим
    
    _1		inc de
    		ld a,(de)
    		or a
    		jr z,_2
    		ld (hl),a
    _2		inc l
    		djnz _1
    		add hl,bc
    		exa
    		dec a
    		jp nz,_0
    		ret
    вместо inc de везде можно чуть быстрее inc e если спрайты не пересекают #XX00

    но вообще мне что-то кажется, с такой графикой спеку заведомо и памяти хватает, и скорости
    Прихожу без разрешения, сею смерть и разрушение...

  6. #16

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

    По умолчанию

    Усë уже. Разобрался.
    Только вместо inc de, я сразу жахнул la a,(addr_spr+1).
    Правда не знаю, как воспримет это компиль на уровне маш. кодов.

    но вообще мне что-то кажется, с такой графикой спеку заведомо
    Очень хотелось бы в это верить...Всë-таки пиксели расходуются слишком расточительно. Целый байт на пиксель слишком жырно. Фактически VGA. А цветопередача на порядок хуже.

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

  8. #17

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Целый байт на пиксель слишком жырно. Фактически VGA. А цветопередача на порядок хуже.
    Зато куча псевдоцветов через шахматку, пусть и ужасными 8х8 квадратами =)
    Вот если бы Синклер вместо бесполезного Flash потратил этот бит на яркость бумаги, чтобы яркость INK и PAPER была раздельной - "цветов" было бы еще больше.
    Да и вообще, графика в таком режиме довольно интересно смотрится. Дорабатывал свой Скорпион в давние времена, всего-то одна кнопка П2К c фиксацией.

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

    Destr(06.10.2021)

  9. #18

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

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    Только вместо inc de, я сразу жахнул la a,(addr_spr+1).
    да нормально должен воспринимать, просто это же и длиньше, и медленней
    по возможности структуры данных надо косвенно-последовательно адресовать

    Цитата Сообщение от ALKO Посмотреть сообщение
    Целый байт на пиксель слишком жырно. Фактически VGA.
    да не жырно, пикселей намного меньше же общим счётом
    Прихожу без разрешения, сею смерть и разрушение...

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

  1. Ответов: 43
    Последнее: 03.10.2015, 07:09
  2. вывод символа 4*8
    от Dexus в разделе Программирование
    Ответов: 15
    Последнее: 14.04.2011, 14:14
  3. Вывод на HD мониторы
    от jimled в разделе Изображение
    Ответов: 1
    Последнее: 28.01.2008, 15:09
  4. порт атрибутов Spectculator 6.30
    от Totem в разделе Эмуляторы
    Ответов: 0
    Последнее: 08.01.2008, 17:20
  5. Вывод изображения
    от Shnurkov в разделе Изображение
    Ответов: 5
    Последнее: 10.02.2007, 15:07

Ваши права

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