This tutorial will help you get started.
DEFINT A-Z
w = 16: h = 16 'width and height of sprite
SCREEN 13
'===================================================
'PUT without GET demo (NOGET.BAS) by Toshi
'released to the public domain on 7/14/2001
'===================================================
'Note: this ONLY WORKS FOR SCREEN 13!
'The internal structure of GET sprite arrays
'are different for screen 1-12
DIM sprite%(4 + w * h / 2)
'GET (0, 0)-(w - 1, h - 1), sprite%
'DEF SEG = VARSEG(sprite%(0))
'FOR i% = 0 TO 4
'PRINT PEEK(i%)
'NEXT
'DEF SEG
'END
DEF SEG = VARSEG(sprite%(0))
offset& = VARPTR(sprite%(0))
POKE offset& + 0, (w * 8) AND 255
POKE offset& + 1, (w * 8) \ 256
POKE offset& + 2, h AND 255
POKE offset& + 3, h \ 256
offset& = 5
FOR y = 0 TO h - 1
FOR x = 0 TO w - 1
READ pixelcolor%
POKE offset&, pixelcolor%
offset& = offset& + 1
NEXT
NEXT
PUT (0, 0), sprite%, PSET
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,14,14,6,7,8,9,14,14,12,13,14,15
DATA 0,1,2,3,14,255,6,7,8,9,14,180,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,7,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,7,5,6,7,8,9,10,7,12,13,14,15
DATA 0,1,2,3,4,7,7,7,7,7,7,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
DATA 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15