User Tag List

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

Тема: Вектор-06Ц: Эмуляция - КР580ВМ80А

Комбинированный просмотр

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

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

    По умолчанию

    В связи с тестом на специалисте нужно отметить, что измененный посттестовый (после iut) фрагмент в 8080exe7 не для всех компов годится. Он был введен для корректного тестирования продвинутых клонов ВМ80 (ВМ85, ВМ1) и нормально работает на векторе и его клонах, но на специалисте есть проблема с inx sp/dcx sp
    Самый простой вариант - откатить изменение постестового фрагмента, т.е. после
    Код:
    iut:	ds	4		; max 4 byte instruction under test
    
    ;#idb ld (spat),sp replaced with the following code
    ;#idb Must be very careful to preserve registers and flag
    ;#idb state resulting from the test.  The temptation is to use the
    ;#idb stack - but that doesn't work because of the way the app
    ;#idb uses SP as a quick way of pointing to memory.
    ;#idb Bit of a code smell, but I can't think of an easier way.
    В выложенном exe7 так
    Код:
    ;!!!{
    	shld	SetHL1+1
    	pop	h
    	push	psw
    	xthl
    	shld	spat-2
    	lxi	h,0
    ;	jc	temp1		;jump on the state of the C flag set in the test
    	dad	sp		;this code will clear the C flag (0 + nnnn = nc)
    ;	jmp	temp2		;C flag is same state as before
    ;temp1:	dad	sp		;this code will clear the C flag (0 + nnnn = nc)
    ;	stc			;C flage needs re-setting to preserve state
    ;temp2:
    	shld	spat
    ;#idb
    	lxi	sp,spat-2
    ;	push	psw		; save other registers
    	push	b
    	push	d
    ;	lhld	temp
    SetHL1:
    	lxi	h,0
    ;!!!}
    	push	h
    А в исходном было так
    Код:
    	shld	temp
    	lxi	h,0
    	jc	temp1		;jump on the state of the C flag set in the test
    
    	dad	sp		;this code will clear the C flag (0 + nnnn = nc)
    	jmp	temp2		;C flag is same state as before
    
    temp1:	dad	sp		;this code will clear the C flag (0 + nnnn = nc)
    	stc			;C flage needs re-setting to preserve state
    
    temp2:	shld	spat
    	lhld	temp
    ;#idb
    
    	lxi	sp,spat
    	push	psw		; save other registers
    	push	b
    	push	d
    	push	h
    Т.е. если планируется использовать 8080exe7 не на векторе или его клонах, то лучше вернуть посттестовый фрагмент к исходному виду. При этом выигрыш по скорости останется, но тестирование ВМ1 и ВМ85 будет некорректным, как и с оригинальным эксисайзером.
    Последний раз редактировалось ivagor; 17.08.2014 в 19:22.

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

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

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

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

Похожие темы

  1. Вектор-06Ц: Эмуляция
    от ZEman в разделе Вектор
    Ответов: 1516
    Последнее: 16.10.2025, 11:13
  2. Рекомпиляция Z80 -> КР580ВМ80А
    от svofski в разделе Вектор
    Ответов: 59
    Последнее: 28.06.2021, 15:10
  3. Вектор-06Ц
    от Robusta в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 17.03.2009, 23:18
  4. Вектор-06Ц: БП от PC
    от Dmitry Dubrovenko в разделе Вектор
    Ответов: 11
    Последнее: 08.03.2009, 21:53
  5. Ищу ВЕКТОР-06ц
    от BYTEMAN в разделе Барахолка (архив)
    Ответов: 13
    Последнее: 17.11.2008, 20:50

Ваши права

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