+ShiftLeft1: ;<====NEW
+ ld a,1
+ShiftLeft:
+ ld (ShiftLeftCounter),a
+ ld a,c
+ ld (ShiftLeftChunk),a
+ rla
+ jr nc,ShiftLeftSameByte
+ dec hl
+ShiftLeftSameByte:
+ ex de,hl
+ ld bc,-16
+ add hl,bc
+ ex de,hl
+ ld b,57
+ShiftLeftLoop:
+ push bc
+ ld bc,-32
+ add hl,bc
+ ex de,hl
+ ld a,(de)
+ShiftLeftChunk:
+ or a
+ call c,_SHRACC
+ ld c,0
+ShiftLeftCounter = $-1
+ShiftRowsRight:
+ push hl
+ rra
+ ld b,16
+ShiftRowRight:
+ rr (hl)
+ inc hl
+ djnz ShiftRowRight
+ pop hl
+ dec c
+ jr nz,ShiftRowsRight
+ ld bc,-16
+ add hl,bc
+ ex de,hl
+ pop bc
+ djnz ShiftLeftLoop
+ ret
+
+Chunk: ;<====NEW
+ push hl
+ push de
+ ld c,16
+ add hl,bc
+ ld b,57
+ChunkScreen:
+ push bc
+ ld bc,-32
+ add hl,bc
+ ex de,hl
+ ld a,(de)
+ call _SHRACC
+ ld b,16
+ChunkRow:
+ dec hl
+ rld
+ djnz ChunkRow
+ ex de,hl
+ pop bc
+ djnz ChunkScreen
+ pop de
+ pop hl
+ ld c,$37 ;scf
+ ret
+
+
+NUM_LEVELS = 9