home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
APPS
/
dm14.lzh
/
screen.c
< prev
next >
Wrap
Text File
|
1996-07-07
|
3KB
|
158 lines
/* screen.c screen functions for DISKMASTER.C */
/* copyright (c) 1995 by Bob Devries */
/* email: bdevries@gil.ipswichcity.qld.gov.au */
#include <stdio.h>
#include "screen.h"
clearscreen()
{
printf("%c[2J",ESC);
}
clearwin(xcoord,ycoord,xlen,ylen)
int xcoord;
int ycoord;
int xlen;
int ylen;
{
register int y; /* make this 'register' for more speed!! */
register int y_end;
char *clr_lin, *string_str(), *malloc();
clr_lin = malloc(xlen+1);
string_str(clr_lin, xlen, ' '); /* moved to here, bvdp */
y_end=ycoord+ylen;
/* gotoxy(xcoord,ycoord); */ /* redundant gotoxy() */
for(y = ycoord;y < y_end; y++) {
gotoxy(xcoord,y);
printf("%s", clr_lin);
}
free(clr_lin);
}
char *string_str(Str, len, chr)
char *Str;
int len;
char chr;
{
char *string = Str;
while (len--) {
*(string++) = chr;
}
*string = '\0';
return(Str);
}
gotoxy(xcoord,ycoord)
int xcoord;
int ycoord;
{
printf("%c[%d;%dH",ESC,ycoord,xcoord);
}
horiz_doub(xcoord,ycoord,length)
int xcoord;
int ycoord;
int length;
{
int x;
gotoxy(xcoord,ycoord);
for(x=0;x<length;x++)
putc(DHORZ_BAR,stdout);
}
vert_doub(xcoord,ycoord,length)
int xcoord;
int ycoord;
int length;
{
int x;
for(x=0;x<length;x++) {
gotoxy(xcoord,ycoord+x);
putc(DVERT_BAR,stdout);
}
}
corner(xcoord,ycoord,which)
int xcoord;
int ycoord;
int which;
{
gotoxy(xcoord,ycoord);
switch(which) {
case TL: putc(DTOP_LEFT,stdout); break;
case TR: putc(DTOP_RITE,stdout); break;
case BL: putc(DBOT_LEFT,stdout); break;
case BR: putc(DBOT_RITE,stdout); break;
}
}
box_doub(xcoord,ycoord,xlen,ylen)
int xcoord;
int ycoord;
int xlen;
int ylen;
{
corner(xcoord,ycoord,TL);
horiz_doub(xcoord+1,ycoord,xlen-2);
corner(xcoord+xlen-1,ycoord,TR);
vert_doub(xcoord,ycoord+1,ylen-2);
vert_doub(xcoord+xlen-1,ycoord+1,ylen-2);
corner(xcoord,ycoord+ylen-1,BL);
horiz_doub(xcoord+1,ycoord+ylen-1,xlen-2);
corner(xcoord+xlen-1,ycoord+ylen-1,BR);
}
foreground(colour) /* colours are 0-7 */
int colour;
{
#ifdef MM1
FColor(1,colour);
#else
colour += 0x30;
printf("%c[3%cm",ESC,colour);
#endif
}
background(colour) /* colours are 0-7 */
int colour;
{
#ifdef MM1
BColor(1,colour);
#else
colour += 0x30;
printf("%c[4%cm",ESC,colour);
#endif
}
cleol()
{
printf("%c[K",ESC);
}
#ifdef MM1
SetPalette()
{
Palette(1,0,0,0,0); /* BLACK */
Palette(1,1,255,0,0); /* RED */
Palette(1,2,0,255,0); /* GREEN */
Palette(1,3,255,255,0); /* YELLOW */
Palette(1,4,0,0,255); /* BLUE */
Palette(1,5,255,0,255); /* MAGENTA */
Palette(1,6,0,255,255); /* CYAN */
Palette(1,7,255,255,255); /* WHITE */
}
RestPalette()
{
DefColr(1);
}
#endif
/* EOF screen.c */