User Tag List

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

Тема: Используем RST 0 в своих ПЗУ

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

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

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

    Cool Используем RST 0 в своих ПЗУ

    Долго хотелось использовать мне rst 0
    всегда было очевидно, что достаточно где то поставить один байт в памяти
    и проверять его кодом по $0000
    НО всегда останавливала вероятность ложного срабатывания которая таки существует...
    (а при прерывании программы ресетом еще и однозначно)
    что могло бы приводить иногда к невозможности включить машину с первого раза
    или сброса ее кнопкой ресета без выдергивания из розетки...


    ...но щас ВНЕЗАПНО вспомнил что при сбросе SP ОДНОЗНАЧНО $FFFF
    и вот по нему мы и можем определить что происходит ресет или rst 0

    а единственная вероятность ложного сброса только при
    jp $0000 когда sp = $FFFF
    и
    rst 0 когда sp = $0001 (что в общем то в здравом уме невозможно)


    вот мой вариант обработчика оптимизированного на скорость
    который ложно срабатывает при
    jp $0000 когда sp = $FFFF...$0003
    и при
    rst0 когда sp = $0001...$0005

    то есть ложное срабатывание возможно только при кривых руках

    Код:
    rst0
    			;sp - $FFFF
    	push af		;sp = $FFFD	;11
    	push hl		;sp = $FFFB	;11
    	
    	ld hl,$0005	; -$FFFB	;10
    	add hl,sp			;11
    	jr c,reset			;7
    
    rst0_code     
    
    
    	pop hl				;10
    	pop af				;10
    	
    	ret				;
    	
    					;70+10t
    					;49+10t без сохранения AF
    					;28+10t без сохранения HL
    просмотрел код залазит на rst 8
    так что по +10 к растактовке
    на дополнительные jp на add hl,sp

    в отличии от обычного rst
    такой вариант жрет соответственно
    на 70+10t больше
    на 49+10t больше без сохранения AF
    на 28+10t больше без сохранения AF, HL (что уже выглядит юзабельно)

    кто напишет ищо быстрее?
    Последний раз редактировалось NEO SPECTRUMAN; 20.12.2020 в 10:11.

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

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

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

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

Похожие темы

  1. Описания RST #10 IS-DOS
    от SinglWolf в разделе Оси
    Ответов: 20
    Последнее: 11.03.2009, 10:20
  2. RST #10
    от CityAceE в разделе Программирование
    Ответов: 3
    Последнее: 29.01.2008, 17:04
  3. Вызов функций через RST
    от axor в разделе Программирование
    Ответов: 98
    Последнее: 19.01.2006, 16:01
  4. RST #66
    от spensor в разделе Программирование
    Ответов: 4
    Последнее: 04.03.2005, 13:44

Ваши права

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