In powder.c (lines 29-37) there are five definitions of arrays that are the main arrays of the game's pixel map:
unsigned char bmap[YRES/CELL][XRES/CELL];
unsigned char emap[YRES/CELL][XRES/CELL];
unsigned char cb_bmap[YRES/CELL][XRES/CELL];
unsigned char cb_emap[YRES/CELL][XRES/CELL];
unsigned pmap[YRES][XRES];
I can see that the first four are character arrays(Their limit is 0-255 and they're stored as ASCII characters), but what about pmap? It doesn't have a type value! I might have heard that when you leave out the datatype when you use unsigned/signed, you get a default of int, that should mean that pmap is compatible with from 65 536 up to 4 294 967 294 elements. Though that takes us to physical limits of the computer, meaning the computer will have to remember (from powder.h "#define XRES 612 #define YRES 384") 235 008 pieces of data with 65 536 up to 4 294 967 294 values each.