void main () { screen (2); getchar (); for (i=0; i<6144;) { vpoke (i,0xaa); vpoke (i+++0x2000,0xf1); } getchar (); fill_vram (0,6144,0x0f); fill_vram (0x2000,6144,0x1f); getchar (); screen (0); }
main() { unsigned char c; star_t *st, stars[MAX_STARS]; set_color(15, 1, 1); // set video mode to screen 2 set_mode(mode_2); //msx_screen(2); // set whole screen to color white/black fill(MODE2_ATTR, 0xf1, MODE2_MAX); // initialize stars for (c=0; c < MAX_STARS; c++) { st = stars + c; star_randomize(st); st->z = (rand() & 63) ; st->addr = 0; } // animation loop while (!get_trigger(0)) { // calculate star movement for (st=stars, c=0; c < MAX_STARS; c++, st++) star_move(st); // erase previous stars for (st=stars, c=0; c < MAX_STARS; c++, st++) vpoke(st->last, 0); // show new stars for (st=stars, c=0; c < MAX_STARS; c++, st++) vmerge(st->addr, st->sub); } //set_mode(mode_0); msx_screen(0); }
void read_pcx (int file, char *header) { xmax=INT (header,8); ymax=INT (header,10); nplanes=header[65]; bytesperline=INT (header,66); bufferr=(char *) malloc (bytesperline); bufferg=(char *) malloc (bytesperline); bufferb=(char *) malloc (bytesperline); prepare (); for (j=0; j<=ymax; j++) { for (k=0; k<nplanes; k++) { if (k==0) pb=bufferr; if (k==1) pb=bufferg; if (k==2) pb=bufferb; for (i=0; i<bytesperline;) { d=fetch (file); if (d>0xc0) { d2=fetch (file); for (l=0; l<d-0xc0; l++) { *pb++=d2; i++; } } if (0xc0>d) { *pb++=d; i++; } } } pbufr=bufferr; pbufg=bufferg; pbufb=bufferb; for (i=0; i<=xmax; i++) { vpoke ((j<<8)+i,uniformRGB (*pbufr++,*pbufg++,*pbufb++)); } } }
void set_attr (int x, int y, int attr) { for (k=0; k<8; k++) vpoke(MODE2_ATTR + (256*x) + (8*y) + k, attr); }