Вот как обещал
Код:;быстрая процедура рисования тайлов 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 ;-----------------------




Ответить с цитированием