home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
c
/
croutes.zip
/
FRAME.C
< prev
next >
Wrap
Text File
|
1984-05-11
|
2KB
|
69 lines
/* *** frame.c *** */
/* */
/* IBM-PC microsoft "C" under PC-DOS */
/* */
/* Function to draw a box given the upper left corner and the lower */
/* right corner. Uses the extended character set - graphics board */
/* not needed. Uses direct BIOS calls. Returns a 0 if successful */
/* or a -1 if invalid parameters. */
/* */
/* *** NOTE *** */
/* The upper left corner of the screen is 0,0 and the bottom right */
/* corner is 24,79. */
/* */
/* Written by L. Cuthbertson, May 1984. */
/* */
/*********************************************************************/
/* */
int frame(ulrow,ulcol,lrrow,lrcol)
int ulrow,ulcol,lrrow,lrcol;
{
static int horbar = 0xC4, verbar = 0xB3;
static int ulcorn = 0xDA, urcorn = 0xBF;
static int llcorn = 0xC0, lrcorn = 0xD9;
int count,irow;
/* error checking */
if (ulrow < 0 || ulrow > 24) return(-1);
if (ulcol < 0 || ulcol > 79) return(-1);
if (lrrow < 0 || lrrow > 24) return(-1);
if (lrcol < 0 || lrcol > 79) return(-1);
if (lrrow < ulrow) return(-1);
if (lrcol < ulcol) return(-1);
/* do top line first */
biosset(ulrow,ulcol);
bioswc(ulcorn,1);
count = lrcol-ulcol-1;
if (count > 0) {
biosset(ulrow,ulcol+1);
bioswc(horbar,count);
}
biosset(ulrow,lrcol);
bioswc(urcorn,1);
/* do both sides at once */
irow = ulrow + 1;
while (irow < lrrow) {
biosset(irow,ulcol);
bioswc(verbar,1);
biosset(irow,lrcol);
bioswc(verbar,1);
irow++;
}
/* do bottom line */
biosset(lrrow,ulcol);
bioswc(llcorn,1);
count = lrcol-ulcol-1;
if (count > 0) {
biosset(lrrow,ulcol+1);
bioswc(horbar,count);
}
biosset(lrrow,lrcol);
bioswc(lrcorn,1);
/* done */
return(0);
}