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

User Tag List

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

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

  1. #1
    Guru Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,257
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    183
    Поблагодарили
    86 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

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

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

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

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

  4. #3
    Guru Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,257
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    183
    Поблагодарили
    86 сообщений
    Mentioned
    4 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-ти кб.

  5. #4
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    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

  6. #5
    Guru Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,257
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    183
    Поблагодарили
    86 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пашет!!!

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

    По умолчанию

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

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

    По умолчанию

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

  9. #8
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

Похожие темы

  1. Последнее знакоместо Ленинграда
    от syd в разделе Ленинград
    Ответов: 1
    Последнее: 16.11.2007, 17:53

Ваши права

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