Hello and thank you for your feedback.
You mean the block does not move when you press left-right keys?
The code reads one event (16 bytes) a time and processes only 'KEY' events with 'PRESSED' value. It does not handle 'REPEAT' or 'RELEASE' values.
On sound. It plays sound only when a line is removed. It's not flawed, it's kind of -slow-. It works when the second or third full line removed. I don't know why.
The code behind sound playing is
ldr r6,dev_dsp_ofs
movw r2,sound_buf_size
ldr r1,sound_buf_ofs
mov r7,#sys_write
ldr r0,[r6]
cmp r0,#0x3f
swilt 0
It writes the data to the dsp chip fine. I also set DSP_FRAGMENT to 1024 to be sure it plays immediately. It's maybe a power saving issue (software) and the dsp chip needs some power-up time.