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

User Tag List

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

Тема: Мало памяти

  1. #11
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    пофигу какое окно активно, выборка идёт всё равно из медленной памяти.
    с другой стороны ЧВ на байте работает довольно шустро, так что не думаю что стоит заострять на медленной памяти сильно много внимания.
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  2. #12
    Banned Аватар для psndcj
    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну просто Machined фиксил под эмулятором под медленный комп - разница с пентагоном неземная =( вроде на 90% попал, но все равно на пенте смотреть приятнее намного...

  3. #13
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вспоминая чему меня учили мэтры когда я ещё был маленьким - никогда не ставить ренистр I в медленную память, ибо тормоз на процентов 20 обеспечен

    [offtop]
    кстати Machined - классная демка.
    [/offtop]
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  4. #14
    Guru Аватар для moroz1999
    Регистрация
    17.01.2005
    Адрес
    Tallinn
    Сообщений
    2,517
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    39 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я был бы очень благодарен тому, кто сможет ответить на следующие вопросы:

    1. насколько долго вообще переключаются банки памяти?
    2. как быстро можно перебросить буфер на экран при включенных прерываниях? по моему опыту - примерно за 100 000 тактов, но программист из меня не лучший.

    за 100 000 тактов можно совершить примерно 3000 раз down hl, чего, по моим представлениям, обычно хватает для полного отстраивания тайлового фона и 4-5 спрайтов.
    поправьте меня, если ошибаюсь.

  5. #15
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    > 1. насколько долго вообще переключаются банки памяти?

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

    например так

    ld a,#17
    ld bc,#7ffd
    out (c),a

    можешь сам посчитать сколько тактов
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  6. #16
    Guru Аватар для moroz1999
    Регистрация
    17.01.2005
    Адрес
    Tallinn
    Сообщений
    2,517
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    39 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus Посмотреть сообщение
    в зависимости от комманд которые используешь. это ж не PC чтоб что-то тормозило отличное от проца
    спасибо, именно это и надо было знать как-то в литературе этот вопрос не освещается, подразумевая, видимо, что программист помимо асма еще и в железе разбирается.

    Добавлено через 2 минуты
    Цитата Сообщение от GriV Посмотреть сообщение
    Из буфера без разницы куда кидать. Зато наличие "свободных" #4000-#BFFF позволит там же разместить и буфер и быструю процедуру заполнения 7го окна. Однозначно так и надо.
    есть ли какие-нибудь готовые примеры реализации? я просто над этой задачей бьюсь сейчас, и лишние идеи, честно говоря, не повредили бы.

    и еще, если запортить область после #5b00, trdos работать будет?
    Последний раз редактировалось moroz1999; 05.02.2008 в 15:31. Причина: Добавлено сообщение

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

  8. #17
    Guru
    Регистрация
    16.11.2005
    Адрес
    Санкт-Петербург
    Сообщений
    2,893
    Спасибо Благодарностей отдано 
    1,125
    Спасибо Благодарностей получено 
    343
    Поблагодарили
    190 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от moroz1999 Посмотреть сообщение
    и еще, если запортить область после #5b00, trdos работать будет?
    С адреса #5c00 начинаются переменные басика.
    С #5cb6 переменные трдоса.

    Так что смотри сам

  9. #18
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну начинается ликбез :-) ладно как модеру мне положено это делать :-)

    Если есть область данных неизвестной заранее структуры, тогда используются по простому
    1) классика
    ld hl,откуда
    ld de,куда
    ld bc,сколько
    ldir
    в итоге для больших массивов начальные установки можно считать 0 длительности, около 21 такт на байт, это наиболее очевидная и древняя конструкция, использовалась для переброса во всех первых играх

    2) классика 2
    ld a,количество_строк
    ld hl,откуда
    ld de,куда
    metka:
    ldi
    ldi
    ..
    ldi ; заданное количество раз
    dec a
    jr nz,metka
    итого около 16 тактов на 1 байт, использовалось в robocop и многих других программах

    3) классика 3
    ld sp,откуда
    pop hl
    pop de
    pop bc
    pop af
    exx
    pop hl
    pop de
    pop bc
    ; сюда же можно записать и pop ix pop iy, однако это не так эффективно
    ld sp,куда+количество_регистро� �ых_пар*2
    push bc
    push de
    push hl
    exx
    push af
    push bc
    push de
    push hl
    ; и заново переустанавливать стек
    Эта конструкция использовалась в Satisfaction и часто в других демках. Длина - около 12 тактов на байт, за это приходится расплачиваться тем что такие конструкции не сделаешь в цикле, итого огромный размер перебросчика буфера (около 1,5 байта на 1 байт перебрасываемой области, для одного экрана около 10 кбайт).

    Итого 12 тактов * 6912 байт = около 80 тыщ тактов.

    Если экран обрезан по краям (например есть рамка, которую нет смысла каждый раз выводить), тогда можно уложиться и в прерывание (опять тот же Satisfaction, где карта Киева), можно даже посчитать - вместо 32*24*8 надо прорисовать 30*20*8 байт, это 4080 байт, около 60 тыщ тактов на прорисовку, даже есть время прорисовать атрибуты и сделать бегущую строчку и проиграть фоновую музыку.

    Быстрее можно только если экранная область будет кривая, то есть например расположена внутри кода её выводящего -классическая для мультиколора процедура
    ld hl,nn
    push hl
    ld hl,mm
    push hl
    и т.д.
    nn и mm - те самые данные.
    В этом случае около 11 тактов на 1 байт (меньше невозможно).
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  10. #19
    Member Аватар для cyrax inc
    Регистрация
    24.09.2006
    Адрес
    Саратов
    Сообщений
    99
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    ну начинается ликбез
    обо всем этом, единственное, что применительно к мультиколору, хорошо (с примерами, подсчетом количества тактов) написано в ZX-Review 4-5'96
    Цитата Сообщение от GriV Посмотреть сообщение
    Satisfaction, где карта Киева
    в Satisfaction, очевидно, нарисована карта Харькова
    この悲しみは何時かきっと優しさに成る
    貴方に逢えた丘の上星が降る
    -------------------------------------------------
    Критик - человек, рассуждающий о том, как бы правильно сделал он сам... если бы умел.
    -------------------------------------------------
    Sony PS2 SCPH-70008 et Sony PS3 Eur 2.10

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

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

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

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

Похожие темы

  1. Меняю многа старого на мало но новое
    от rasmer в разделе Барахолка (архив)
    Ответов: 24
    Последнее: 13.11.2008, 14:03
  2. Тест памяти
    от spleen в разделе Софт
    Ответов: 2
    Последнее: 02.05.2006, 14:15
  3. Z80 - чтение из памяти
    от icebear в разделе Память
    Ответов: 15
    Последнее: 06.03.2006, 12:03

Ваши права

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