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

User Tag List

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

Тема: Помогите !

  1. #1
    Member Аватар для Ares
    Регистрация
    04.01.2011
    Адрес
    Москва
    Сообщений
    88
    Благодарностей: 62
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Unhappy Помогите !

    Добрый день уважаемые программисты.Я новичок в машинных кодах,как мне рассчитать где будет какая точка на экране.Помогите пожалуста
    ZX Evolution REV.B
    ZX SPECTRUM 48k

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

  3. #2
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,809
    Благодарностей: 976
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для рассчета экранного адреса по пиксельным координатам есть процедура ПЗУ PIXEL-ADD по адресу #22AA (8874). Она принимает в регистре B Y-координату точки, в регистре C - X-координату (координаты как для PLOT или POINT). На выходе в HL возвращает адрес байта, в котором находится точка, в A - смещение этой точки от левой границы байта. Чтобы поставить точку в нужных координатах, нужен примерно такой код:
    Код:
           LD B,y
           LD C,x
           CALL #22AA
           LD B,A
           INC B
           LD A,01
    LOOP   RRCA
           DJNZ LOOP
           OR (HL)
           LD (HL),A
           RET

  4. Эти 2 пользователя(ей) поблагодарили Alex Rider за это полезное сообщение:
    alone (01.05.2012), Ares (01.05.2012)

  5. #3
    Member Аватар для Ares
    Регистрация
    04.01.2011
    Адрес
    Москва
    Сообщений
    88
    Благодарностей: 62
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Для рассчета экранного адреса по пиксельным координатам есть процедура ПЗУ PIXEL-ADD по адресу #22AA (8874). Она принимает в регистре B Y-координату точки, в регистре C - X-координату (координаты как для PLOT или POINT). На выходе в HL возвращает адрес байта, в котором находится точка, в A - смещение этой точки от левой границы байта. Чтобы поставить точку в нужных координатах, нужен примерно такой код:
    Код:
           LD B,y
           LD C,x
           CALL #22AA
           LD B,A
           INC B
           LD A,01
    LOOP   RRCA
           DJNZ LOOP
           OR (HL)
           LD (HL),A
           RET
    А я хочу нарисовать картинку и что бы она двигалась
    ZX Evolution REV.B
    ZX SPECTRUM 48k

  6. #4
    dig out your soul Аватар для scl^mc
    Регистрация
    26.01.2005
    Адрес
    Russia, Ulianovsk
    Сообщений
    5,334
    Благодарностей: 1202
    Записей в дневнике
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ares Посмотреть сообщение
    А я хочу нарисовать картинку и что бы она двигалась
    зависит от того, какая именно картинка. если узоры, то математические функции в помощь. если более осмысленные рисунки, то лучше, имхо, спрайтами
    'SONGS FROM CRUEL WORLD' IS REMASTERED!
    unmilky sky and other albums is here
    speccy merchandise

    we can dance beneath the fireflies on an empty road
    there is the light that never goes out... (the smiths)
    если кто-то что-то как-то, то вот моя аська - 371432992

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

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

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

Ваши права

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