00001 #include "pic_utils.h" 00002 #include "draw\draw_screen_buffer.h" 00003 00004 00005 00006 #if DRAW_TOTAL_BUFFER_SIZE <= 256 00007 #pragma message 1 draw buffer 00008 uns8 draw_buffer0[DRAW_TOTAL_BUFFER_SIZE]; 00009 #else 00010 uns8 draw_buffer0[256]; 00011 #if DRAW_TOTAL_BUFFER_SIZE <= 512 00012 #pragma message 2 draw buffers 00013 uns8 draw_buffer1[DRAW_TOTAL_BUFFER_SIZE - 256]; 00014 #else 00015 uns8 draw_buffer1[256]; 00016 #if DRAW_TOTAL_BUFFER_SIZE <= 768 00017 #pragma message 3 draw buffers 00018 uns8 draw_buffer2[DRAW_TOTAL_BUFFER_SIZE - 512]; 00019 #else 00020 uns8 draw_buffer2[256]; 00021 #if DRAW_TOTAL_BUFFER_SIZE <= 1024 00022 #pragma message 4 draw buffers 00023 uns8 draw_buffer3[DRAW_TOTAL_BUFFER_SIZE - 768]; 00024 #else 00025 #error "Display too big for Draw library. Must be < 1024 bytes buffer at present" 00026 #endif 00027 #endif 00028 #endif 00029 #endif 00030 00031 00032 00033 uns8 get_draw_buffer(uns16 address) { 00034 00035 if (address < 256) { 00036 return draw_buffer0[address]; 00037 } 00038 #if DRAW_TOTAL_BUFFER_SIZE > 256 00039 else if (address < 512) { 00040 return draw_buffer1[address - 256]; 00041 } 00042 #if DRAW_TOTAL_BUFFER_SIZE > 512 00043 else if (address < 768) { 00044 return draw_buffer2[address - 512]; 00045 } 00046 #if DRAW_TOTAL_BUFFER_SIZE > 768 00047 else if (address < 1024) { 00048 return draw_buffer3[address - 768]; 00049 } 00050 #endif 00051 #endif 00052 #endif 00053 } 00054 00055 void set_draw_buffer(uns16 address, uns8 data) { 00056 00057 if (address < 256) { 00058 draw_buffer0[address] = data; 00059 } 00060 #if DRAW_TOTAL_BUFFER_SIZE > 256 00061 else if (address < 512) { 00062 draw_buffer1[address - 256] = data; 00063 } 00064 #if DRAW_TOTAL_BUFFER_SIZE > 512 00065 else if (address < 768) { 00066 draw_buffer2[address - 512] = data; 00067 } 00068 #if DRAW_TOTAL_BUFFER_SIZE > 768 00069 else if (address < 1024) { 00070 draw_buffer3[address - 768] = data; 00071 } 00072 #endif 00073 #endif 00074 #endif 00075 }