Вот как обещал


Код:
;быстрая процедура рисования тайлов 2*16
;через стек с включенными прерываниями
;структура буфера - как экран - для примера

;ограничения: рисование только по четной Y координате

;ALASM

;модифицирование перехвата прерывания

interrupt
	di			
	ex	de,hl		;get sprite_data
	ex	(sp),hl		;restore damaged sprite/get return adres
	ld	(int_0),hl	;store return adr
	pop	hl		;restore hl
	ld	(int_1),sp	;store stek_pointer
	ex	de,hl
	ld	sp,interrupt_stek_adress
	
	call	interrupt_control
	
	ld	sp,$
int_1	equ	$-2
	ei
	jp	$
int_0	equ	$-2
	

;собственно рисование через стек

tile_draw
;hl-tile adress
;bc-buf_adress

	ld	e,(hl)
	inc	hl
	ld	d,(hl)
	inc	hl
	ld	(tile_0),sp
	ld	sp,hl
	ld	h,b,l,c

	ld	(hl),e
	inc	l
	ld	(hl),d
	inc	h
	pop	de
	ld	(hl),d
	dec	l
	ld	(hl),e
	inc	h

	dup	2

	pop	de
	ld	(hl),e
	inc	l
	ld	(hl),d
	inc	h
	pop	de
	ld	(hl),d
	dec	l
	ld	(hl),e
	inc	h

	edup				
	
	pop	de
	ld	(hl),e
	inc	l
	ld	(hl),d
	inc	h
	pop	de
	ld	(hl),d
	dec	l
	ld	(hl),e

;переход из знакоместа в знакоместо 	

	ld	bc,-#700+#20
	add	hl,bc


	dup	3

	pop	de
	ld	(hl),e
	inc	l
	ld	(hl),d
	inc	h
	pop	de
	ld	(hl),d
	dec	l
	ld	(hl),e
	inc	h

	edup				
	
	pop	de
	ld	(hl),e
	inc	l
	ld	(hl),d
	inc	h
	pop	de
	ld	(hl),d
	dec	l
	ld	(hl),e	
	
	ld	sp,0
tile_0	equ	$-2
	
;-----------------------