inline code
/*********************
K.C.Y 1993
*********************/
#include <dos.h>
/*
#*@ #*@
@@@ --> @@@
@@@ @@@
*/
void Sprite1(POS, SSEG, SOFF, SXLEN, SYLEN, PG)
unsigned int POS, SSEG, SOFF, SXLEN, SYLEN, PG;
{
unsigned int Spr, SB;
Spr=SXLEN*SYLEN;
SB=80*SYLEN;
asm push ds
asm push si
asm mov ax, 0A000h
asm mov es, ax
asm mov ds, SSEG
asm mov si, SOFF
asm mov di, PG
asm mov bx, POS
asm shr bx, 1
asm shr bx, 1
asm add di, bx
asm mov dx, 03C4h
asm mov al, 2
asm mov ah, 00010001b
asm mov cx, POS
asm and cx, 3
asm rol ah, cl
asm mov cx, SXLEN
HTAB:
asm push cx
asm out dx, ax
asm mov cx, SYLEN
VTAB:
asm mov bl, ds:[si]
asm cmp bl, 0
asm je DOT
asm mov es:[di], bl
DOT:
asm add si, SXLEN
asm add di, 80
asm loop VTAB
asm rol ah, 1
asm cmp ah, 00010001b
asm jne JUMP
asm inc di
JUMP:
asm sub si, Spr
asm sub di, SB
asm inc si
asm pop cx
asm loop HTAB
asm pop si
asm pop ds
}
:
:
: