def unpacked_picture_bytes
packed_buffer=data_without_header
unpacked_buffer="\000"*8192
p=0
parity=1
row=1
column=0
done=false
while !done do
b=packed_buffer[p]
if b==0 then
run_length=packed_buffer[p+1]
colour=packed_buffer[p+2]
p+=2
else
run_length=1
colour=b
end
run_length.times do |i|
destination_offset=@@scanline_offsets[row]+column
unpacked_buffer[destination_offset]=colour
row+=2
if row>=192 then
row=parity
column+=1
if column>=40 then
if parity==0 then
done=true
else
row=0
column=0
parity=0
end
end
end
end
p+=1
done=true if p==packed_buffer.length
end
unpacked_buffer
end