|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T i
Length: 2007 (0x7d7) Types: TextFile Names: »interface2.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Corewars/interface2.c«
/********************************************************************** * * * * * Copyright 1989 By Case T. Larsen * * All Rights Reserved * * * * * **********************************************************************/ #include <pixrect/pixrect_hs.h> #include "interp.h" #define Y(x) (((x)/100)*5) #define X(x) (((x)%100)*5) static struct pixrect *screen; static struct pixrect *bm; static bitm[8000]; static xpos[8000], ypos[8000]; xcore_init () { int i; screen = pr_open("/dev/fb"); bm = mem_create(500,400,1); for (i=0; i<8000;i++) { bitm[i] = 0; xpos[i] = X(i); ypos[i] = Y(i); zero(xpos[i],ypos[i]); } pr_rop (screen,0,0,500,400,PIX_SRC,bm,0,0); } /* xcore_init */ zero (x,y) int x,y; { pr_put (bm,x,y,1); pr_put (bm,x,y+1,1); pr_put (bm,x,y+2,1); pr_put (bm,x+1,y,1); pr_put (bm,x+1,y+1,1); pr_put (bm,x+1,y+2,1); pr_put (bm,x+2,y,1); pr_put (bm,x+2,y+1,1); pr_put (bm,x+2,y+2,1); } /* zero */ one (x,y) int x,y; { pr_put (bm,x,y,0); pr_put (bm,x,y+1,0); pr_put (bm,x,y+2,0); pr_put (bm,x+1,y,0); pr_put (bm,x+1,y+1,0); pr_put (bm,x+1,y+2,0); pr_put (bm,x+2,y,0); pr_put (bm,x+2,y+1,0); pr_put (bm,x+2,y+2,0); } /* zero */ two (x,y) int x,y; { pr_put (bm,x,y,1); pr_put (bm,x,y+1,0); pr_put (bm,x,y+2,0); pr_put (bm,x+1,y,0); pr_put (bm,x+1,y+1,1); pr_put (bm,x+1,y+2,0); pr_put (bm,x+2,y,0); pr_put (bm,x+2,y+1,0); pr_put (bm,x+2,y+2,1); } /* zero */ xcore_display (mem) cell mem[]; { register int i; register int owner; for (i=0;i<8000;i++) { if (mem[i].lastmod != bitm[i]) { owner = bitm[i] = mem[i].lastmod; if (owner) { if (owner == 1) { one (xpos[i],ypos[i]); } else two (xpos[i],ypos[i]); } else zero (xpos[i],ypos[i]); } } pr_rop (screen,0,0,500,400,PIX_SRC,bm,0,0); } /* xcore_display */ xcore_done () { pr_close(screen); } /* xcore_done */