home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 3
/
FreeSoftwareCollection3pd199x-jp.img
/
kxc
/
t_os
/
townsexp
/
nhslin
/
gdm012.c
< prev
next >
Wrap
Text File
|
1980-01-02
|
3KB
|
127 lines
/*
NHSlin routine Demonnstration Program
Written by KXC U・K Uota 28-Mar-90
Execute:RUN386 gdm012 dvx0 dvx1 dvx2 dvx3 dvy0 dvy1 dvy2 dvy3
Note: This sample-program is Public Domain Software.
*/
#include <stdio.h>
#include <stdlib.h>
#include <egb.h>
#define XMAX 320
#define YMAX 240
#define COUNT 100000
#define Color_MAX 32767
void main( ac , av )
int ac ;
char *av[] ;
{
int i , col ;
int x0 , x1 , y0 , y1 , dx0 , dx1 , dy0 , dy1 ;
int x2 , x3 , y2 , y3 , dx2 , dx3 , dy2 , dy3 ;
int dvx0 , dvx1 , dvx2 ,dvx3 ;
int dvy0 , dvy1 , dvy2 ,dvy3 ;
dvx0 = atol( av[1] ) ;
dvx1 = atol( av[2] ) ;
dvx2 = atol( av[3] ) ;
dvx3 = atol( av[4] ) ;
dvy0 = atol( av[5] ) ;
dvy1 = atol( av[6] ) ;
dvy2 = atol( av[7] ) ;
dvy3 = atol( av[8] ) ;
screen_32k() ;
x0 = y0 = x2 = y3 = 0 ;
x1 = x3 = XMAX -1 ; y1 = y2 = YMAX - 1 ;
dx0 = dx2 = dvx0 ; dx1 = dx3 =-dvx1 ;
dy0 = dy3 = dvy0 ; dy1 = dy2 =-dvy1 ;
col = Color_MAX ;
for( i = COUNT ; i != 0 ; i-- ){
if((x0 = x0 + dx0) <= 0 ){
x0 = 0 ; dx0 = dvx0 ;
}
else if( x0 >= XMAX ){
x0 = XMAX - 1 ; dx0 = - dvx0 ;
}
if((x1 = x1 + dx1) <= 0 ){
x1 = 0 ; dx1 = dvx1 ;
}
else if( x1 >= XMAX ){
x1 = XMAX - 1 ; dx1 = - dvx1 ;
}
if((y0 = y0 + dy0) <= 0 ){
y0 = 0 ; dy0 = dvy0 ;
}
else if( y0 >= YMAX ){
y0 = YMAX - 1 ; dy0 = - dvy0 ;
}
if((y1 = y1 + dy1) <= 0 ){
y1 = 0 ; dy1 = dvy1 ;
}
else if( y1 >= YMAX ){
y1 = YMAX - 1 ; dy1 = - dvy1 ;
}
if((x2 = x2 + dx2) <= 0 ){
x2 = 0 ; dx2 = dvx2 ;
}
else if( x2 >= XMAX ){
x2 = XMAX - 1 ; dx2 = - dvx2 ;
}
if((x3 = x3 + dx3) <= 0 ){
x3 = 0 ; dx3 = dvx3 ;
}
else if( x3 >= XMAX ){
x3 = XMAX - 1 ; dx3 = - dvx3 ;
}
if((y2 = y2 + dy2) <= 0 ){
y2 = 0 ; dy2 = dvy2 ;
}
else if( y2 >= YMAX ){
y2 = YMAX - 1 ; dy2 = - dvy2 ;
}
if((y3 = y3 + dy3) <= 0 ){
y3 = 0 ; dy3 = dvy3 ;
}
else if( y3 >= YMAX ){
y3 = YMAX - 1 ; dy3 = - dvy3 ;
}
if ( --col == 0 ) col = Color_MAX ;
NHSLin( x0 , y0 , x2 , y2 , col ) ;
NHSLin( x1 , y1 , x2 , y2 , col ) ;
NHSLin( x1 , y1 , x3 , y3 , col ) ;
NHSLin( x0 , y0 , x3 , y3 , col ) ;
}
}
screen_32k()
{
char work[ 1536 ] ;
# define reso_mode10 10
# define page0 0
# define page1 1
# define pri0_frt 0
# define Page0_On 1
# define Zoom 2
# define x_para 2
# define y_para 2
# define Screen_size 3
# define x_length 320
# define y_length 240
EGB_init( work , 1536 ) ;
EGB_resolution( work , page0 , reso_mode10 ) ;
EGB_resolution( work, page1 , reso_mode10 ) ;
EGB_displayPage( work , pri0_frt , Page0_On ) ;
EGB_writePage( work , page0 ) ;
EGB_displayStart( work , Zoom , x_para , y_para ) ;
EGB_displayStart( work , Screen_size , x_length , y_length ) ;
}