X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/micropolis/blobdiff_plain/6a5fa4e03967ab980cdc7ef96a42400bc29b4414..e049e4ba47308629d2233fdd3f85d49352463d9c:/src/sim/g_bigmap.c?ds=sidebyside diff --git a/src/sim/g_bigmap.c b/src/sim/g_bigmap.c index 695cd88..55bb06f 100644 --- a/src/sim/g_bigmap.c +++ b/src/sim/g_bigmap.c @@ -63,14 +63,15 @@ int dynamicFilter(int c, int r); -int WireDrawBeegMapRect(SimView *view, short x, short y, short w, short h); +void drawBeegMaps() { sim_update_editors(); } +void MemDrawBeegMapRect(SimView *view, int x, int y, int w, int h) { int lineBytes = view->line_bytes; @@ -169,6 +170,15 @@ MemDrawBeegMapRect(SimView *view, int x, int y, int w, int h) #define ROW8_16(n) ROW4_16(n) ROW4_16(n+4) #define ROW16_16() ROW8_16(0) ROW8_16(8) +#define ROW1_32(n) \ + memcpy((char *)image, (char *)mem + (4 * 16 * (n)), 4 * 16); \ + image = (unsigned QUAD *)(((unsigned char *)image) + lineBytes); + +#define ROW2_32(n) ROW1_32(n) ROW1_32(n+1) +#define ROW4_32(n) ROW2_32(n) ROW2_32(n+2) +#define ROW8_32(n) ROW4_32(n) ROW4_32(n+4) +#define ROW16_32() ROW8_32(0) ROW8_32(8) + switch (view->x->depth) { case 8: @@ -182,6 +192,9 @@ MemDrawBeegMapRect(SimView *view, int x, int y, int w, int h) case 24: case 32: + ROW16_32(); + break; + default: /* XXX: handle different depths */ break; @@ -252,6 +265,7 @@ MemDrawBeegMapRect(SimView *view, int x, int y, int w, int h) } +void WireDrawBeegMapRect(SimView *view, short x, short y, short w, short h) { unsigned short *map;