コメント |
PC98 用ですし(笑)
@DIV
/***********************************************************/
/*** LIO版 直線、短形の描画 ***/
/***********************************************************/
/*** 項目名 引き数名 ***/
/*** 描画始点の座標 x1,y1 ***/
/*** 描画終点の座標 x2,y2 ***/
/*** パレット番号 paret ***/
/*** 描画コード(B,BF) byoga ***/
/*** ラインスタイルスイッチ lswitch ***/
/*** ラインスタイルすいっちLo lstairu ***/
/*** ラインスタイルすいっちHi hstairu ***/
/***********************************************************/
#include <memory.h>
static unsigned char *param;
static unsigned int paramoff;
static unsigned int ucwseg;
extern unsigned int lioucw;
extern
void
gline( int x1, int y1, int x2, int y2, int paret, int byoga, int lswitch, int lstairu, int hstairu)
{
unsigned long work;
unsigned char sts;
ucwseg = lioucw;
work = (unsigned long)lioucw * 256L * 256L;
work = work + 5120;
param = (char *)work;
memcpy( param , (char *)&x1 , 2 );
memcpy( param+2, (char *)&y1 , 2 );
memcpy( param+4, (char *)&x2 , 2 );
memcpy( param+6, (char *)&y2 , 2 );
(*(param+8)) = (unsigned char)paret;
(*(param+9)) = (unsigned char)byoga;
(*(param+10)) = (unsigned char)lswitch;
(*(param+11)) = (unsigned char)lstairu;
(*(param+12)) = (unsigned char)hstairu;
_asm {
push ds
push es
push ss
push bx
push cx
push dx
push bp
push sp
push si
push di
mov ax,WORD PTR ucwseg
mov ds,ax
mov bx,5120
int 0a7h
pop di
pop si
pop sp
pop bp
pop dx
pop cx
pop bx
pop ss
pop es
pop ds
mov BYTE PTR sts,ah
}
}
@END
|