Опять про прерывания.
Объясните, почему это не работает? Вроде всё правильно нафигачил

Код:
			org	24000

			call	im_on

			ret

; процедура в прерывании

im_procedure		push	af
			push	bc
			push	de
			push	hl

			exx
			ex	af,af'

			push	af
			push	bc
			push	de
			push	hl

			push	ix
			push	iy

			ld	a,3
			call	8859

			pop	iy
			pop	ix

			pop	hl
			pop	de
			pop	bc
			pop	af

			exx
			ex	af,af'

			pop	hl
			pop	de
			pop	bc
			pop	af

			jp	56


; включение 2-го режима прерываний

im_on			di

			ld	hl,64512
			ld	de,64513
			ld	bc,256
			ld	(hl),253
			ldir

			ld	hl,im_procedure
			ld	(65021),hl

			ld	a,252
			ld	i,a
			im	2

			ei

			ret