|
|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 959 (0x3bf)
Types: TextFile
Notes: UNIX file
Names: »usave.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
└─⟦926b8033d⟧ UNIX Filesystem
└─⟦this⟧ »u/demo/slide/usave.c«
/*
** Save an Image off the screen
*/
#include <stdio.h>
#define STARTY 100L
#define ENDY 512L
#define SEG0 ((char *) (0x3a000000L))
#define SEG1 ((char *)( 0x3b000000L))
#define XMAX 1024
#define SIZE 62000L
#define BPB 8
#define XBYTES (XMAX/BPB)
#define MAXBOX 15
main(argc,argv)
char **argv;
{
unsigned char *sp;
unsigned char *p,*q;
unsigned short n,ct = 0;
int d[8];
for(n=0;n<8;n++)d[n]=atoi(*++argv);
sp = SEG0;
printf("");
if((p = malloc((unsigned short)SIZE)) == NULL) exit();
q = p;
while(ct++ < (unsigned short)SIZE) {
if((*p++ = getchar()) == EOF) break;
}
box(d);
ldir(sp,q,(ct/2));
}
box(d)
int d[];
{
short dx1,dy1,dx2,dy2;
short i;
dx1 = (d[4]-d[0])/MAXBOX;
dy1 = (d[5]-d[1])/MAXBOX;
dx2 = (d[6]-d[2])/MAXBOX;
dy2 = (d[7]-d[3])/MAXBOX;
for(i=0; i< MAXBOX; i++)
db(d[0]+(i*dx1),d[1]+(i*dy1),d[2]+(i*dx2),d[3]+(i*dy2));
}
db(a,b,c,d)
short a,b,c,d;
{
line(a,b,c,b);
line(c,b,c,d);
line(c,d,a,d);
line(a,d,a,b);
}