 ;-----------------------------\
 ;escape 4k demo                 \
 ;made for code craft contest      \
 ;code - tom/kulture 1999            \
 ;------------------------------------ \

 ;blurrer--------------------------------------------------------------|
 ldr r14,video
 ldr r0,work
 ;
.b_waitv
 ldr r1,show
 cmp r1,r0
 ;if the shown bank is the one we are about to write on we must wait..
 beq b_waitv
 ;
 sub r0,r0,#1
 mov r1,r0,lsl #8
 add r1,r1,r0,lsl #6
 add r14,r14,r1,lsl #8
 ;find last bank
 ldr r0,work
 cmp r0,#3
 moveq r0,#0
 ldr r12,video
 mov r1,r0,lsl #8
 add r1,r1,r0,lsl #6
 add r12,r12,r1,lsl #8
 ;blur the whole screen (hoirzontal only)
 ;
 mov r13,#xscreen*yscreen/4-2
 mov r0,#0 ;(first pixels)
 ldrb r1,[r12]
.blur_loop
 ldrb r2,[r12,#1]
 add r3,r0,r2
 mov r3,r3,asr #1
 mov r0,r3
 mov r1,r2
 ldrb r2,[r12,#2]
 add r4,r0,r2
 mov r4,r4,asr #1
 orr r3,r3,r4,lsl #8
 mov r0,r4
 mov r1,r2
 ldrb r2,[r12,#3]
 add r4,r0,r2
 mov r4,r4,asr #1
 orr r3,r3,r4,lsl #16
 mov r0,r4
 mov r1,r2
 ldrb r2,[r12,#4]
 add r4,r0,r2
 mov r4,r4,asr #1
 orr r3,r3,r4,lsl #24
 mov r0,r4
 mov r1,r2
 str r3,[r14],#4
 add r12,r12,#4
 subs r13,r13,#1
 bne blur_loop

 ldr r1,work
 subs r1,r1,#1
 moveq r1,#3
 str r1,work


 b loop


