home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / mactosh / util / startups.sit / Stupcr2.c < prev    next >
Text File  |  1986-05-06  |  3KB  |  170 lines

  1. /* This actually contains the compiler stuff */
  2.  
  3. #include <stdio.h>
  4. #include <win.h>
  5. #include "stupcr.h"
  6.  
  7. windowptr window1;
  8. extern int getfile();
  9. extern int putfile();
  10. extern char *memch;
  11. extern int errno;
  12.  
  13. docompile()
  14. {
  15.     int fin,fout;
  16.     char *i,*j,buffer[256],bufout[128];
  17.     int count,hl;
  18.  
  19.     if (-1 == (fin = getfile('PNTG'))) return;
  20.     if (-2 == (fout = putfile('SCRN','NONE',"StartUpScreen"))) {
  21.         close(fin);
  22.         return;
  23.     }
  24.  
  25.     window1 = getnewwindow(WINDOW1R,NULL,NULL);
  26.     initwin1();
  27.  
  28.     if (fout == -1) {
  29.         close(fin);
  30.         errmsg(READERROR,errno);
  31.         disposewindow(window1);
  32.         return;
  33.     }
  34.     if (512 > read(fin,memch,512)) {
  35.         errmsg(READERROR,errno);
  36.         close(fin);
  37.         close(fout);
  38.     } else {
  39.         moveto(10,30);
  40.         drawmsg(READMSG);
  41.         moveto(10,45);
  42.         for (j = memch; (count = read(fin,j,(unsigned)1024)) > 0; j += count) 
  43.             drawchar('+');
  44.         if (count == -1) {
  45.             errmsg(READERROR,errno);
  46.             disposewindow(window1);
  47.             close(fin);
  48.             close(fout);
  49.             return;
  50.         }
  51.         close(fin);
  52.         moveto(10,60);
  53.         drawmsg(WRITMSG);
  54.         moveto(10,75);
  55.  
  56.         j = memch;
  57.         hl = 0;
  58.         while (hl < 342) {
  59.             if (hl % 10 == 0) drawstring("+");
  60.             i = bufout;
  61.             unpackbits(&j,&i,72);            /* Unpack one scan line */
  62.             if (64 != write(fout,bufout,64)) {    
  63.                 errmsg(WRITERROR,errno);
  64.                 break;                        /* Error occured here! */
  65.             }
  66.             hl++;
  67.         }
  68.         close(fout);                        /* All done */
  69.  
  70.     alert(CONVCOMP,NULL);
  71.     }
  72.     disposewindow(window1);
  73. }
  74.  
  75. initwin1()
  76. {
  77.     setport(window1);
  78.     textfont(4);
  79.     textsize(9);
  80.     textmode(0);
  81.     moveto(10,15);
  82.     drawmsg(OPENMSG);
  83. }
  84.  
  85. drawmsg(i)
  86. int i;
  87. {
  88.     char buffer[256];
  89.     getindstring(buffer,MSGSTR,i);
  90.     drawstring(buffer);
  91. }
  92.  
  93. dodecomp()
  94. {
  95.     int fin,fout;
  96.     char *i,*j,buffer[256],bufout[128],*k;
  97.     int count,ht,ct;
  98.  
  99.     if (-1 == (fin = getfile('SCRN'))) return;
  100.     if (-2 == (fout = putfile('PNTG','MPNT',"MacPainting"))) {
  101.         close(fin);
  102.         return;
  103.     }
  104.  
  105.     window1 = getnewwindow(WINDOW1R,NULL,NULL);
  106.     initwin1();
  107.  
  108.     if (fout == -1) {
  109.         close(fin);
  110.         errmsg(READERROR,errno);
  111.         disposewindow(window1);
  112.         return;
  113.     }
  114.     moveto(10,30);
  115.     drawmsg(REA2MSG);
  116.     moveto(10,45);
  117.  
  118.     for (j = memch, count = 0; count < 512; count++) *(j++) = 0;
  119.  
  120.     for (ht = 0; ((count = read(fin,k = bufout,(unsigned)64)) > 0);) {
  121.         i = k + 64;
  122.         *(i++) = (char)0x40;
  123.         for (ct = 65; ct < 72; ct++) *(i++) = 0;
  124.         packbits(&k,&j,72);
  125.         ht++;
  126.         if (ht % 10 == 0) drawchar('+');
  127.     }
  128.     if (count == -1) {
  129.         errmsg(READERROR,errno);
  130.         disposewindow(window1);
  131.         close(fin);
  132.         close(fout);
  133.         return;
  134.     }
  135.  
  136.     
  137.     i = k = bufout;
  138.     for (ct = 0; ct < 72; ct++) *(i++) = 0;        /* One blank line */
  139.     packbits(&k,&j,72);
  140.     drawchar('.');
  141.     
  142.     i = k = bufout;
  143.     for (ct = 0; ct < 64; ct++) *(i++) = (char)0x0FF;    /* followed by black */
  144.     for (;ct < 72; ct++) *(i++) = 0;
  145.     packbits(&k,&j,72);
  146.     drawchar('.');
  147.     
  148.     i = k = bufout;
  149.     for (ct = 0; ct < 72; ct++) *(i++) = 0;        /* and white again */
  150.     for (ht = 344; ht < 720; ht++) {
  151.         k = bufout;
  152.         packbits(&k,&j,72);
  153.     }
  154.     drawchar('*');
  155.  
  156.     close(fin);
  157.     moveto(10,60);
  158.     drawmsg(WRI2MSG);
  159.     moveto(10,75);
  160.  
  161.     ht = (int)(j - memch);
  162.     if (ht != write(fout,memch,ht)) errmsg(WRITERROR,errno);
  163.  
  164.     close(fout);                        /* All done */
  165.  
  166.     alert(CONVCOMP,NULL);
  167.     disposewindow(window1);
  168. }
  169.  
  170.