Annotation of researchv10no/cmd/view2d/Old/metheus/cv.c, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: #include <libc.h>
        !             3: #include "3610op.h"
        !             4: 
        !             5: minit(cold)
        !             6: {
        !             7:   msnare();
        !             8:   mcmd(INI);
        !             9:   mcmd(WRMSKL); mlong(0xffffffff);
        !            10:   mcmd(WRBANK); mbyte(15);
        !            11:   mcmd(SELRES); mbyte(0xc0); mbyte(0);  /* 8-bit mode */
        !            12:   mcmd(MOVP1); mword(0); mword(0);  /* blank screen */
        !            13:   mcmd(MOVP2); mword(1279); mword(1023);
        !            14:   mcmd(SETCLL); mbyte(0); mbyte(255); mbyte(255); mbyte(255);
        !            15:   mcmd(FFILL);
        !            16: }
        !            17: 
        !            18: colmap(maxi,mapr,mapg,mapb)
        !            19:   int maxi;
        !            20:   int mapr[],mapg[],mapb[]; /* colors, 0 through maxi */
        !            21: {
        !            22:   int i;
        !            23:   mcmd(CMSEL); mbyte(0); mbyte(0);     /* write in cmap buffer 0 */
        !            24:   mcmd(CMFILL);mword(0);mword(256);     /* initialize map to black */
        !            25:     mbyte(0);mbyte(0);mbyte(0);mbyte(0);
        !            26:   mcmd(CMLDM); mword(0);mword(maxi+1); /* load entries at loc. 0 */
        !            27:   for(i=0; i<=maxi; i++){
        !            28:     mbyte(mapr[i]); mbyte(mapg[i]); mbyte(mapb[i]);
        !            29:   }
        !            30:   if((maxi+1)&1) mbyte(0);
        !            31:   mcmd(CMACT);                         /* make current buffer active */
        !            32:   mflush();
        !            33: }
        !            34: 
        !            35: image(in, x0, y0, x1, y1)
        !            36:   char *in;
        !            37: {
        !            38:   int around=0;
        !            39:   int y2;
        !            40:   long n, saved, m;
        !            41:   if(((int)in)&1){ error("odd address\n"); }
        !            42:   n=(x1-x0+1)*(y1-y0+1);
        !            43:   mcmd(MOVP1); mword(x0); mword(1023-y1);  /* upper left */
        !            44:   mcmd(MOVP2); mword(x1); mword(1023-y0);  /* lower right */
        !            45:   mcmd(WRR);
        !            46:   mflush();
        !            47:   Write(mfd, in, n);
        !            48:   if(n&1) mbyte(0);
        !            49: }
        !            50: 
        !            51: zoom(fact)
        !            52:   int fact;
        !            53: {
        !            54:   mcmd(ZOOM);mbyte(fact);
        !            55: }
        !            56: 
        !            57: pan(x,y)
        !            58:   int x, y;  /* upper left corner */
        !            59: {
        !            60:   mcmd(MOVP1);mword(x);mword(1023-y);
        !            61:   mcmd(PPAN);
        !            62:   mflush();
        !            63: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.