User Tag List

Страница 27 из 45 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя
Показано с 261 по 270 из 443

Тема: Пишу шедевр для «Вектора 06Ц»

  1. #261

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    KTSerg, вот в этом варианте как раз я вычисляю адреса 3х плоскостей и перехожу по ним быстро
    сам спрайт раскатан, потому как регистров под счетчик нет.
    Вот не знаю чем заменить "dup 12" и "edup"

  2. #262

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Вот не знаю чем заменить "dup 12" и "edup"
    повторить 12 раз кусок от dup до edup
    и там последний pop bc убирается конструкцией org $-1
    С уважением,
    Jerri / Red Triangle.

  3. #263

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    повторить 12 раз кусок от dup до edup
    и там последний pop bc убирается конструкцией org $-1
    Перед edup , случайно не пропущено inr l ?

    в цикле, почему-то медленнее получилось чем предыдущая версия.
    Результат 12D0h.
    Цикл буду завтра, т.е. уже сегодня вечером разворачивать, глаза уже не видят ни чего...

  4. #264

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Перед edup , случайно не пропущено inr l ?

    в цикле, почему-то медленнее получилось чем предыдущая версия.
    Результат 12D0h.
    Цикл буду завтра, т.е. уже сегодня вечером разворачивать, глаза уже не видят ни чего...
    Код:
    ;вывод спрайта в системе битпланов Вектор 06
    ;ширина спрайта -24
    ;на входе
    ;bc адрес спрайта
    ;de aдрес на экране 
    ;E-Y D-X 
    
    drop24
    	ld	hl,0
    	add	hl,sp
    	ld	(sprite_sp0),hl
    	ld	h,b
    	ld	l,c
    	ld	c,(hl)
    	inc	hl
    	ld	b,(hl)
    	inc	hl
    	ld	sp,hl
    	
    ;задаем Y в L
    	ld	l,e
    ;задаем X в A
    	ld	a,d	;битплан1
    	add	a,#20
    	ld	e,a	;битплан2
    	add	a,#20	;битплан3
    drop240
    	dup	12
    
    	ld	h,d
    ;рисуем на первом плане
    	ld	(hl),c
    	inc	h
    	ld	(hl),b
    	inc	h
    	pop	bc
    	ld	(hl),c
    ;переход на второй битплан
    	ld	h,e
    ;рисуем на втором плане
    	ld	(hl),b
    	inc	h
    	pop	bc
    	ld	(hl),c
    	inc	h
    	ld	(hl),b
    	pop	bc
    ;переход на третий битплан
    	ld	h,a
    ;рисуем на третьем плане
    	ld	(hl),c
    	inc	h
    	ld	(hl),b
    	inc	h
    	pop	bc
    	ld	(hl),c
    ;переходим на следующую строку
    	inc	l	
    
    ;возвращаемся на первый план	
    	ld	h,d
    ;повторяем цикл рисования
    	ld	(hl),b
    	inc	h
    	pop	bc
    	ld	(hl),c
    	inc	h
    	ld	(hl),b
    	pop	bc
    ;переход на второй битплан
    	ld	h,e
    ;рисуем на втором плане
    	ld	(hl),c
    	inc	h
    	ld	(hl),b
    	inc	h
    	pop	bc
    	ld	(hl),c
    ;переход на третий битплан
    	ld	h,a
    ;рисуем на третьем плане
    	ld	(hl),b
    	inc	h
    	pop	bc
    	ld	(hl),c
    	inc	h
    	ld	(hl),b
    	inc	l
    ;выбираем следующую пару байтов для цикла рисования
    	pop	bc
    
    	edup
    
    	org	$-1
    sprite_sp
    	ld	sp,#3131
    sprite_sp0 equ	$-2
    	ret
    ага inr l пропущен
    С уважением,
    Jerri / Red Triangle.

  5. #265

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не выдержала душа поэта... с утреца всё перелопатил.

    Первоначальный вариант теста давал не совсем корректный результат, т.к. во время тестирования быстродействия алгоритма вывода было ещё много накладных вычислений перед выводом каждого спрайта. в основном это вычисление адреса спрайта, который нужно вывести на экран, т.к. фактически сразу выводились показания счётчика.
    Переписал само тестирование. Сейчас кроме вывода спрайта в цикле минимум, вот пример:

    Скрытый текст

    Код:
    Jerri_c:
    	lxi	d,a_test_spr	; адрес спрайта на экране
    	lxi	b,tab_spr0	; адрес спрайта
    	push	h		 ; сохранить счетчик
    ;
    	call	drop24		; вывод спрайта
    ;
    	pop	h	 восстановить счетчик
    	inx	h	; увеличение счетчика выводов спрайта на экран
    ;
    	lda	StopFlag	 ; читаем флаг остановки
    	ora	a	; проверка флага
    	jnz	Jerri_c
    [свернуть]


    И результат немного поменялся:
    Оригинальный вариант алгоритма Jerri - 1380h
    Вариант Jerri, с заранее вычисленными адресами битпланов, и полностью развёрнутый (без циклов) - 1603h

    Мой оригинальный алгоритм - 151Eh
    Мой с заранее вычисленными адресами битпланов - 15B2h

    Алгоритм metamorpho, совсем не использующий стек - 0С0Сh
    Алгоритм metamorpho, совсем не использующий стек и с обычным прерыванием в которои нет защиты стека - 0С0Eh

    Во вложении сам тест и его исходник.
    Вложения Вложения
    Последний раз редактировалось KTSerg; 04.08.2020 в 05:05.

    Этот пользователь поблагодарил KTSerg за это полезное сообщение:

    parallelno(01.07.2022)

  6. #266

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если здесь добавить змейку по плоскостям, то еще -16 тактов на каждый edup. Варианты с циклами тоже можно ускорить и даже если без плоскостной змейки, но с ней выигрыш будет заметнее.

  7. #267

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Если здесь добавить змейку по плоскостям, то еще -16 тактов на каждый edup. Варианты с циклами тоже можно ускорить и даже если без плоскостной змейки, но с ней выигрыш будет заметнее.
    За счёт чего 16 тактов?
    Переход между любыми адресами 1 команда.
    С уважением,
    Jerri / Red Triangle.

  8. #268

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    -2 команды, каждая по 8 тактов, итого 16 тактов.

  9. #269

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    -2 команды, каждая по 8 тактов, итого 16 тактов.
    Какие именно?
    С уважением,
    Jerri / Red Triangle.

  10. #270

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сейчас 3 перехода между плоскостями на каждую строку, условно можно их назвать в 1, 2 и 3 плоскость. При змейке по плоскостям достаточно в 1й строке двух переходов: во 2 и 3 плоскость и во второй строке два перехода: во 2 и 1 плоскость.

Страница 27 из 45 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Бейсики для Вектора-06Ц и клонов
    от ivagor в разделе Вектор
    Ответов: 696
    Последнее: 25.10.2025, 02:34
  2. Картотека ПО для Вектора-06ц
    от svofski в разделе Вектор
    Ответов: 719
    Последнее: 04.04.2024, 11:13
  3. Восстановление Вектора-06ц
    от Daniil Chislov 86 в разделе Вектор
    Ответов: 100
    Последнее: 11.03.2021, 00:23
  4. Ответов: 198
    Последнее: 26.04.2020, 13:05
  5. Ответов: 58
    Последнее: 06.07.2019, 23:56

Ваши права

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