Почему когда я опрашиваю клавиши после установки цвета бордюра и вертикального скролинга кодом ниже, цвет бордюра не устанавливается корректно?

Код:
	LXI H,palette_sprites+15	; ЗАПИСЬ ПАЛИТРЫ.
	LXI D,$100F
INIT1:	MOV A,E
	OUT 02
	MOV A,M
	OUT $0c
	OUT $0c
	OUT $0c
	OUT $0c
	OUT $0c
	DCX H
	OUT $0c
	DCR E
	OUT $0c
	DCR D
	OUT $0c
	JNZ INIT1
NWRPAL:	
	MVI A,$88
	OUT 00
	mvi a, 1	; УСТАНОВКА ЦВЕТА БОРДЮРА.
	ANI $0F
	OUT 02
	mvi a, 255	; УСТАНОВКА ВЕРТИКАЛЬНОГО ПОЛОЖЕНИЯ ЭКРАНА.
	OUT 03	

	MVI A,$8A	; ПРОВЕРКА НАЖАТИЯ НА ЛЮБУЮ КЛАВИШУ 
	OUT 00		; МАТРИЦЫ КЛАВИАТУРЫ 8*8 (КРОМЕ УС,СС,РУС/ЛАТ).
	XRA A
	OUT 03
	IN 2
	STA anyKeyPressed
	MVI A,$FE	; ПРОВЕРКА НАЖАТИЯ НА КЛАВИШИ ИГРОВОГО РЯДА.
	OUT 03
	IN 02
	STA keyCode
но когда я опращиваю клавиши до бордюра и скроллинга, то все равботает как нужно?

Код:
	LXI H,palette_sprites+15	; ЗАПИСЬ ПАЛИТРЫ.
	LXI D,$100F
INIT1:	MOV A,E
	OUT 02
	MOV A,M
	OUT $0c
	OUT $0c
	OUT $0c
	OUT $0c
	OUT $0c
	DCX H
	OUT $0c
	DCR E
	OUT $0c
	DCR D
	OUT $0c
	JNZ INIT1
NWRPAL:	
	MVI A,$8A	; ПРОВЕРКА НАЖАТИЯ НА ЛЮБУЮ КЛАВИШУ 
	OUT 00		; МАТРИЦЫ КЛАВИАТУРЫ 8*8 (КРОМЕ УС,СС,РУС/ЛАТ).
	XRA A
	OUT 03
	IN 2
	STA anyKeyPressed
	MVI A,$FE	; ПРОВЕРКА НАЖАТИЯ НА КЛАВИШИ ИГРОВОГО РЯДА.
	OUT 03
	IN 02
	STA keyCode
	
	MVI A,$88
	OUT 00
	mvi a, 1	; УСТАНОВКА ЦВЕТА БОРДЮРА.
	ANI $0F
	OUT 02
	mvi a, 255	; УСТАНОВКА ВЕРТИКАЛЬНОГО ПОЛОЖЕНИЯ ЭКРАНА.
	OUT 03
проверял в Emu80 и VV

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

Вот тестовая программа для Pretty Asm
Код:
    .project helv06c.rom
    .tape v06c-rom

			.org	$100
StartInit:
	DI
	; dismount a quasi-disk
	XRA		A
	out		$10
	; set entry points of a restart, and an interruption
	MVI		A, 0C3h
	STA		0
	STA		38h
	LXI		H, StartInit
	SHLD 	        1
	LXI		H, Interruption1
	SHLD	        38h + 1
	; stack init
	LXI		SP, 8000h
	EI
	HLT
	; clear the screen
	CALL	CLEAR
Start:  JMP     Start


CLEAR:	DI
	PUSH H		; СОХРАНИТЬ ИСПОЛЬЗУЕМЫЕ РЕГИСТРЫ.
	PUSH B
	PUSH D
	PUSH PSW
	LXI H,0000H	; ПОДГОТОВИТЬ HL ДЛЯ ВЗЯТИЯ ЗНАЧЕНИЯ SP.
	DAD SP		; ВЗЯТЬ ЗНАЧЕНИЕ SP ПУТЕМ СЛОЖЕНИЯ С HL.
	LXI SP,0000H	; НАЧАТЬ СТИРАНИЕ С АДРЕСА 0FFFFH.
	LXI D,0000H	; В DE - ЗНАЧЕНИЕ, КОТОРЫМ БУДЕТ СТЕРТ ЭКРАН.
	LXI B,0800H	; В BC - СЧЕТЧИК.
CLEAR1:	PUSH D		; НАЧАТЬ СТИРАТЬ ЭКРАН ПУТЕМ "ОПУСКАНИЯ" СТЕКА.
	PUSH D		; ВЫПОЛНИТЬ 8 ОПЕРАЦИЙ "В ЛОБ" ДЛЯ СКОРОСТИ.
	PUSH D
	PUSH D
	PUSH D
	PUSH D
	PUSH D
	PUSH D
	DCX B		; УМЕНЬШИТЬ СЧЕТЧИК И 
	MOV A,B		; ПРОВЕРИТЬ ЕГО.
	ORA C		; КОНЕЦ СЧЕТА?
	JNZ CLEAR1	; ЕСЛИ НЕТ - ПРОДОЛЖАТЬ СТИРАНИЕ.
	SPHL		; ВЕРНУТЬ ПРЕЖНЕЕ ЗНАЧЕНИЕ SP И
	POP PSW		; ВСЕХ РЕГИСТРОВ.
	POP D
	POP B
	POP H
	EI
	RET
	
anyKeyPressed:          .db 0
keyCode:          .db 0

palette_sprites:
			.DB 01001010b, 00000001b, 01011100b, 00011010b, 
			.DB 11100100b, 11111101b, 01110111b, 01011111b, 
			.DB 01000010b, 01001011b, 01001100b, 11111111b, 
			.DB 11111111b, 11101011b, 00001010b, 01011011b, 
;----------------------------------------------------------------
; Common interruption sub

Interruption1:
	PUSH	PSW
	PUSH	B
	PUSH	D
	PUSH	H

			; common interruption logic
	LXI H,palette_sprites+15	; ЗАПИСЬ ПАЛИТРЫ.
	LXI D,$100F
INIT1:	MOV A,E
	OUT 02
	MOV A,M
	OUT $0c
	OUT $0c
	OUT $0c
	OUT $0c
	OUT $0c
	DCX H
	OUT $0c
	DCR E
	OUT $0c
	DCR D
	OUT $0c
	JNZ INIT1


	MVI A,$88
	OUT 00
	mvi a, 1	; УСТАНОВКА ЦВЕТА БОРДЮРА.
	ANI $0F
	OUT 02
	mvi a, 255	; УСТАНОВКА ВЕРТИКАЛЬНОГО ПОЛОЖЕНИЯ ЭКРАНА.
	OUT 03		

	MVI A,$8A	; ПРОВЕРКА НАЖАТИЯ НА ЛЮБУЮ КЛАВИШУ 
	OUT 00		; МАТРИЦЫ КЛАВИАТУРЫ 8*8 (КРОМЕ УС,СС,РУС/ЛАТ).
	XRA A
	OUT 03
	IN 2
	STA anyKeyPressed
	MVI A,$FE	; ПРОВЕРКА НАЖАТИЯ НА КЛАВИШИ ИГРОВОГО РЯДА.
	OUT 03
	IN 02
	STA keyCode

			; end common interruption logic
	POP		H
	POP		D
	POP		B
	POP		PSW
	EI
	RET	
    end