home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carousel Volume 2 #1
/
carousel.iso
/
mactosh
/
util
/
startups.sit
/
Stupcr2.c
< prev
next >
Wrap
Text File
|
1986-05-06
|
3KB
|
170 lines
/* This actually contains the compiler stuff */
#include <stdio.h>
#include <win.h>
#include "stupcr.h"
windowptr window1;
extern int getfile();
extern int putfile();
extern char *memch;
extern int errno;
docompile()
{
int fin,fout;
char *i,*j,buffer[256],bufout[128];
int count,hl;
if (-1 == (fin = getfile('PNTG'))) return;
if (-2 == (fout = putfile('SCRN','NONE',"StartUpScreen"))) {
close(fin);
return;
}
window1 = getnewwindow(WINDOW1R,NULL,NULL);
initwin1();
if (fout == -1) {
close(fin);
errmsg(READERROR,errno);
disposewindow(window1);
return;
}
if (512 > read(fin,memch,512)) {
errmsg(READERROR,errno);
close(fin);
close(fout);
} else {
moveto(10,30);
drawmsg(READMSG);
moveto(10,45);
for (j = memch; (count = read(fin,j,(unsigned)1024)) > 0; j += count)
drawchar('+');
if (count == -1) {
errmsg(READERROR,errno);
disposewindow(window1);
close(fin);
close(fout);
return;
}
close(fin);
moveto(10,60);
drawmsg(WRITMSG);
moveto(10,75);
j = memch;
hl = 0;
while (hl < 342) {
if (hl % 10 == 0) drawstring("+");
i = bufout;
unpackbits(&j,&i,72); /* Unpack one scan line */
if (64 != write(fout,bufout,64)) {
errmsg(WRITERROR,errno);
break; /* Error occured here! */
}
hl++;
}
close(fout); /* All done */
alert(CONVCOMP,NULL);
}
disposewindow(window1);
}
initwin1()
{
setport(window1);
textfont(4);
textsize(9);
textmode(0);
moveto(10,15);
drawmsg(OPENMSG);
}
drawmsg(i)
int i;
{
char buffer[256];
getindstring(buffer,MSGSTR,i);
drawstring(buffer);
}
dodecomp()
{
int fin,fout;
char *i,*j,buffer[256],bufout[128],*k;
int count,ht,ct;
if (-1 == (fin = getfile('SCRN'))) return;
if (-2 == (fout = putfile('PNTG','MPNT',"MacPainting"))) {
close(fin);
return;
}
window1 = getnewwindow(WINDOW1R,NULL,NULL);
initwin1();
if (fout == -1) {
close(fin);
errmsg(READERROR,errno);
disposewindow(window1);
return;
}
moveto(10,30);
drawmsg(REA2MSG);
moveto(10,45);
for (j = memch, count = 0; count < 512; count++) *(j++) = 0;
for (ht = 0; ((count = read(fin,k = bufout,(unsigned)64)) > 0);) {
i = k + 64;
*(i++) = (char)0x40;
for (ct = 65; ct < 72; ct++) *(i++) = 0;
packbits(&k,&j,72);
ht++;
if (ht % 10 == 0) drawchar('+');
}
if (count == -1) {
errmsg(READERROR,errno);
disposewindow(window1);
close(fin);
close(fout);
return;
}
i = k = bufout;
for (ct = 0; ct < 72; ct++) *(i++) = 0; /* One blank line */
packbits(&k,&j,72);
drawchar('.');
i = k = bufout;
for (ct = 0; ct < 64; ct++) *(i++) = (char)0x0FF; /* followed by black */
for (;ct < 72; ct++) *(i++) = 0;
packbits(&k,&j,72);
drawchar('.');
i = k = bufout;
for (ct = 0; ct < 72; ct++) *(i++) = 0; /* and white again */
for (ht = 344; ht < 720; ht++) {
k = bufout;
packbits(&k,&j,72);
}
drawchar('*');
close(fin);
moveto(10,60);
drawmsg(WRI2MSG);
moveto(10,75);
ht = (int)(j - memch);
if (ht != write(fout,memch,ht)) errmsg(WRITERROR,errno);
close(fout); /* All done */
alert(CONVCOMP,NULL);
disposewindow(window1);
}