본문 바로가기
코드

inline code

by umaking 2023. 11. 17.

 
/*********************

  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
}
 
:
:
: