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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 22

Тема: срочно нужна прога для вывода спрайтов на экран компьютера zX spectrum 48 k(sinclair)

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

    Talking срочно нужна прога для вывода спрайтов на экран компьютера zX spectrum 48 k(sinclair)

    в данный момент разрабатываю графический макер для спрайтов.
    Размеры сделал фиксированные 8*8 символов.
    такую шнягу я уже делал когда-то (но размеры можно было менять в процессесе создания рисунков), данные были потеряны, еще в машинных кодах писал подпрограмму вывода этих спрайтов на экран.
    По новой расчитывать эту процедуру не охота, может кто знает,как нарисовать на экране спрайт 8*8 знакомест в машин. кодах ( 64*64 пикс.)
    Сам графический редактор сделал так, что он поочередно заливает в память посимвольно (сверху вниз сканирует каждый символ побайтно) и так идет в ряд в первой строке (из 8-ми символов) затем во второй,третьей........................... и восьмой.
    так сделал , чтоб при переходе по координатам знакомест не было белиберды,а то на спеке организация памяти экранной области довольно рахитная.

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

  3. #2
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    3,363
    Благодарностей: 706
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    тебе в каком виде?
    С уважением,
    Jerri / Red Triangle.
    [02.05.2014] не забудь этот день. Чубайс должен умереть. Dixi.
    [l'Abbey des morts TSEvo EV...5%] kiwi кошелек +79178162712

  4. #3
    Guru Аватар для VNN_KCS
    Регистрация
    11.10.2007
    Адрес
    Донецкая обл. г.Енакиево
    Сообщений
    2,316
    Благодарностей: 755
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот самая простая, исходя из твоих параметров 8х8:
    ld hl,адрес спрайта
    ld de,адрес экрана
    ld b,64
    n1 push bc
    push de
    dup 8
    ldi
    edup
    pop de
    call de_inc
    pop bc
    djnz n1
    ret
    de_inc inc d
    ld a,d
    and 7
    ret nz
    ld a,e
    add a,32
    ld e,a
    ret c
    ld a,d
    sub 8
    ld d,a
    ret

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

    По умолчанию

    а что означает эта мнемоника?
    dup 8
    ldi
    edup

  6. #5
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    713
    Благодарностей: 14
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    dup 8
    ldi
    edup
    повтор ldi 8 раз (директива асма, не мнемоника)

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

    По умолчанию

    а как бы мне это вдесятичных кодах написать.
    А то проги пишу по таблице из книжицы.

    ---------- Post added at 17:09 ---------- Previous post was at 17:06 ----------

    ldi значит LDIR ?
    а dup 8 ; edup ; - это обычный цикл ? (какие регистры он использует ? или можно на свое усмотрение ?)

  8. #7
    Banned Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    1,054
    Благодарностей: 789
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    обожемой! Ldi это значит Ldi - тоже самое что LDIR тока без цикла - как бы без хвоста ld a, b; or c; jr nz, ... . edup говорит сколько раз дублировать блок. тоесть берешь и пишешь код LDI 8 раз подряд. А вообще для программирования ассемблеры существуют

  9. #8
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    2,679
    Благодарностей: 2035
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    а как бы мне это вдесятичных кодах написать
    Расписать всю программу? Или как 8 раз набить LDI (#237, #160 dec)?!

    данная команда ассеблера траслируется в что-то типа..
    ---
    ..
    ldi 237, 160
    ldi 237, 160
    ldi 237, 160
    ldi 237, 160
    ldi 237, 160
    ldi 237, 160
    ldi 237, 160
    ldi 237, 160
    ..

    Если есть анреал, можно в мониторе набить мнемокоды (развернув спецкоманды ассемблера), а потом списать соответствующие им числовые значения. Так быстрее получится (ну если не брать в расчет асм и т.п.).
    Последний раз редактировалось null_device; 02.02.2010 в 17:22.

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

    По умолчанию

    а так можно ?
    push af
    FUCKING_LOOP ld a,8
    ldi
    dec a
    djnz FUCKING_LOOP
    pop af
    (правда в ущерб процессорного времени)

  11. #10
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    2,679
    Благодарностей: 2035
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Теоретичеки можно. А зачем такие сложности? Тогда уж проще сохранять регистровую пару bc и использовать ldir. Команда ldi используется для быстродествия и ненужных опереций с регистрами..

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 93
    Последнее: 30.04.2008, 13:07
  2. Ответов: 2
    Последнее: 24.03.2007, 14:29
  3. Композит проблемы вывода на экран.
    от Mikka_A в разделе Unsorted
    Ответов: 5
    Последнее: 24.12.2006, 19:16
  4. Ответов: 3
    Последнее: 09.10.2006, 17:46

Ваши права

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