User Tag List

Показано с 1 по 10 из 428

Тема: Ищу желающих выступить в роли программиста

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    LD HL, 63648; 55296+6144+96+64
    зачем так мучатсо?
    и мучать других
    эти цифры не читаемые (кроме 6144)

    пишЫ покомпутерному же

    ld hl,$D800+$1800+96+64
    и сразу выражением а не магическим числом

    будет висеть незаметная очепятка
    и ты хрен найдешь почему все не работает

    ну и щас на вид сумма и выражение в коментах не совпадают...

    в придачу на таком например прекрасно видно
    $4000
    $4100
    $4200
    что инкрементитсо только H
    и этим можно и нужно пользоватсо

    а на последовательности
    16384
    16640
    16896
    ничего не видно...

    ну или
    FFFF 65535
    FEFE 65278
    FDFD 65021
    FCFC 64764

    этож реально удобней
    шестнадцатеричные цифры не просто так изобретены



    - - - Добавлено - - -


    Цитата Сообщение от ALKO Посмотреть сообщение
    На ней можно выиграть тактов в оптимизации?
    щас глянем

    - - - Добавлено - - -

    Цитата Сообщение от ALKO Посмотреть сообщение
    Процедура очистки, кстати.
    На ней можно выиграть тактов в оптимизации?
    Код:
    CLEARVIRTSCR
    		LD HL, 63648; 55296+6144+96+64 начало атрибутной области виртуалки 
    		
    		LD    BC,320       
    CLEARVIRTSCR1             
    		ld a,(_CLRCOL)
    		ld (hl),a
    		inc hl
    	   
    		DEC   BC        
    		LD    A,B        
    		OR    C
    		JR    NZ,CLEARVIRTSCR1
    		ret
    с ходу у тебя страшная ошибка
    ld a,(_CLRCOL) читается 320 раз
    что 2240 тактов
    а можно было положить
    ld a,(_CLRCOL)
    ld e,a

    а потом
    ld (hl),e


    сейчас твой вариант 16655 тактов





    первое что приходит в голову заюзать ldir

    Код:
    		LD HL,63648; 55296+6144+96+64 начало атрибутной области виртуалки 
    		
    		LD BC,320-1     
    
    		ld de,63648+1
    		
    		ld a,(_CLRCOL)
    		ld (hl),a
    
    		ldir        ;6744
    это уже 6744 такта





    второе что приходит заюзать ldi
    опять же предположим что у тебя есть процедура ldi_32
    если вставить ее вместо call
    то зачищать будет еще быстрее (за 5295 тактов)

    Код:
             ld hl,63648
             ld de,63648+1
             ld bc,320+$A00
    	 
    		ld a,(_CLRCOL)
    		ld (hl),a
    		
    loop
             ; ldir
             call ldi_32
             djnz loop      ;5565
    	 
    	 	jp $
    
    	 
    ldi_32		dup 32
    		ldi
    		edup
    		ret
    это 5565 такта

    АХТУНХ ЭТА ПРОЦЕДУРА ЗАТИРАЕТ НА 1 БАЙТ БОЛЬШЕ ЧЕМ НУЖНО !!!!!
    тк может затерать только кратное 32-м + 1 количество

    если это критично и нужно затереть ровно 320
    то сделай на 1 цикл меньше
    а остальные 31 байта затри обычным ldir-ом





    ну и для сравнения
    если включить режим гулять так гулять

    Код:
    	ld sp,63648+320
    	ld a,(_CLRCOL)
    	
    	ld h,a
    	ld l,a
    	
    	dup 320/2
    	push hl
    	edup
    1791 такт

    - - - Добавлено - - -




    ну и вариант по проще
    Код:
             ld hl,63648
             ld b,320/32
    	 
    		ld a,(_CLRCOL)
    				
    loop2
    		dup 31
    		ld (hl),a
    		inc l
    		edup
    		ld (hl),a
    		inc hl
    		
             djnz loop2    ;3695
    на 3695 тактов

    что примечательно
    его можно уменьшить по объему в 2...3 раза
    а подобная скорость должна будет оставаться

    вот смотри


    уменьшает в 2 раза

    Код:
             ld hl,63648
             ld b,320/16
    	 
    		ld a,(_CLRCOL)
    				
    loop3
    		dup 15
    		ld (hl),a
    		inc l
    		edup
    		ld (hl),a
    		inc hl
    		
             djnz loop3    ;3845
    в итоге 3845 такта против 3695 того что при 32 dup-ах
    [свернуть]
    Последний раз редактировалось NEO SPECTRUMAN; 01.09.2020 в 03:01.

    Эти 5 пользователя(ей) поблагодарили NEO SPECTRUMAN за это полезное сообщение:

    ALKO(01.09.2020), Bedazzle(01.09.2020), Dwa83(02.09.2020), Oleg N. Cher(01.09.2020), ZX_NOVOSIB(01.09.2020)

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

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

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

Похожие темы

  1. с Днем Программиста!
    от goblinish в разделе Поздравления
    Ответов: 17
    Последнее: 16.09.2015, 02:04
  2. С Днём компьютерщика и программиста !
    от Хорошист в разделе Поздравления
    Ответов: 4
    Последнее: 17.02.2013, 05:54
  3. С Днём компьютерщика и программиста !
    от Хорошист в разделе Новости
    Ответов: 5
    Последнее: 17.02.2013, 05:54
  4. Ищу желающих написать программу для ВИДЕО-игры
    от ALKO в разделе Программирование
    Ответов: 26
    Последнее: 17.02.2012, 15:07

Ваши права

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