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

User Tag List

Показано с 1 по 8 из 8

Тема: Знакоместо VS пиксель.

  1. #1
    Veteran Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    1,429
    Благодарностей: 347
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Знакоместо VS пиксель.

    Нужна асмовская процедура для создания игры,где в два регистра заносятся
    попиксельные координаты X,Y и еще в два заносится адрес символа, хранящегося в памяти.

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

  3. #2
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,426
    Благодарностей: 643
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

  4. Этот пользователь поблагодарил Destr за это полезное сообщение:
    ALKO (15.01.2011)

  5. #3
    Veteran Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    1,429
    Благодарностей: 347
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне маску для спрайтов не обязательно.
    Хотя б без неё исходники существуют ?

    ---------- Post added at 13:53 ---------- Previous post was at 13:47 ----------

    Цитата Сообщение от Destr Посмотреть сообщение
    http://zxdn.narod.ru/coding/zg45spro.txt
    Например...
    а где там Y объявляется?

    ---------- Post added at 14:11 ---------- Previous post was at 13:53 ----------

    Эта штука работает?
    http://zxpress.ru/article.php?id=4803

    ---------- Post added at 14:14 ---------- Previous post was at 14:11 ----------

    Дьявол!!!!
    Она использует буферный экран,это потеря 6-ти кб.

  6. #4
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Благодарностей: 230
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ld e,10 ;y
    ld d,10 ;x
    ld hl,#3e08 ;adr sym "a"
    ld (symv+1),hl
    call print
    ret

    print ld a,d
    and 7
    ld (n1+1),a
    ld a,e
    and a
    rra
    scf
    rra
    and a
    rra
    xor e
    and #f8
    xor e
    ld h,a
    ld a,d
    rlca
    rlca
    rlca
    xor e
    and #c7
    xor e
    rlca
    rlca
    ld l,a
    symv ld de,0

    ld a,8
    nnn2 ex af,af'
    ld c,0
    n1 ld a,0
    ld b,a
    or a
    ld a,(de)
    jr z,nnn
    srl a
    rr c
    djnz $-4
    nnn ld (hl),a
    inc l
    ld (hl),c
    dec l
    inc de
    call down_hl
    ex af,af'
    dec a
    jr nz,nnn2
    ret

    down_hl inc h
    ld a,h
    and 7
    ret nz
    ld a,l
    add a,32
    ld l,a
    ret c
    ld a,h
    sub 8
    ld h,a
    ret

  7. Этот пользователь поблагодарил GM BIT за это полезное сообщение:
    ALKO (17.01.2011)

  8. #5
    Veteran Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    1,429
    Благодарностей: 347
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пашет!!!

  9. #6
    Member Аватар для Antipod
    Регистрация
    19.08.2008
    Адрес
    Украина, Львов
    Сообщений
    116
    Благодарностей: 10
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    да, все хорошо, по процедуре можно как бы понять распределение адресов по экрану... только работает медленно. Можно и быстрее.
    Координаты для Y можно посчитать заранее, например, препроцессор заюзать... таблица адресов займет 192*2 байт, для выборки значение Y умножить на два и взять адрес по полученному смещению. младшие три бита Х - это колво скролов для символа ( + в обратную сторону крутить, если быстрее, то есть вместо 7 скролов влево, лучше 1 вправо ). Но быстрее всего хранить восемь экземпляров одного символа), правда, в этом случае полный знакогенератор займет 2048 байт... Где-то так.
    Последний раз редактировалось Antipod; 18.01.2011 в 02:45.

  10. #7
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Благодарностей: 230
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Процедура написана за 3,5 минуты. Нет там никакой оптимизации кроме как лишний раз крутить на одно знакоместо. Кстати ниже нижней строки желательно тоже ничего не печатать (нет там проверок на окончание экранной области)
    Цитата Сообщение от Antipod Посмотреть сообщение
    Можно и быстрее.
    Конечно можно! Много можно сделать (например сократить размер до нельзя или увеличить скорость во много раз). Есть задача - есть решение (какое никакое).
    Где-то так.
    Кстати процедура расчета адреса из ПЗУ, можно заменить просто на CALL, где она там болтается искать не стал
    Последний раз редактировалось GM BIT; 18.01.2011 в 07:57.

  11. Этот пользователь поблагодарил GM BIT за это полезное сообщение:
    GriV (25.01.2011)

  12. #8
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,083
    Благодарностей: 924
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GM BIT Посмотреть сообщение
    где она там болтается искать не стал
    8880

  13. Этот пользователь поблагодарил psb за это полезное сообщение:
    GM BIT (18.01.2011)

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

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

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

Похожие темы

  1. Ответов: 1
    Последнее: 16.11.2007, 17:53

Ваши права

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