delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/03/22/14:15:35

From: "Kekke and RaiMO" <keso-98 AT swipnet DOT se>
Newsgroups: comp.os.msdos.djgpp
Subject: Old borland asm-code......
Date: Sun, 22 Mar 1998 18:31:06 +0100
Organization: A customer of Tele2
Lines: 137
Message-ID: <890593307.916990@nn1>
NNTP-Posting-Host: nn1.swip.net
Mime-Version: 1.0
Cache-Post-Path: nn1!s-341394 AT dialup152-4-44 DOT swipnet DOT se
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I would be overjoyed if any1 could rewrite this asm to fit djgpp v2...
I´m a not so good asm-coder...:(

Thanks...

Ulrik S.
keso-98 AT swipnet DOT se
http://start.at/winodws98

//**********************************************************
//*******************  ASM SOURCES  ************************
//**********************************************************

void OnVideo(void)
{
 asm mov bl,0x36
 asm mov ax,0x1200
 asm int 0x10
}
void OffVideo(void)
{
 asm mov bl,0x36
 asm mov ax,0x1201
 asm int 0x10
}
void SetMode(char mode)
{
 asm mov ah,0x00
 asm mov al,mode
 asm int 0x10
}
char GetMode()
{
 char mode;
 asm mov ah,0x0f
 asm int 0x10
 asm mov mode,al
 return (mode);
}
void WaitRast()
{
 asm mov dx,0x3da
bra1:
 asm in  al,dx
 asm and al,8
 asm jnz bra1
bra2:
 asm in  al,dx
 asm and al,8
 asm jz bra2
}
void SetBank(unsigned char wbank, unsigned char rbank)
{
 unsigned char n=rbank<<4|wbank;
 asm mov al,n
 asm mov dx,0x3cd // Point to memory segment register
 asm out dx,al  // Set it.
}
void SetDisplayStart(int adsr)
{
 // This part uses standard VGA DisplayStart registers
 asm mov bx,adsr  // Load start adress
 asm mov dx,0x3d0 // color register (mono = 0x3b0
 asm add dx,4
 asm mov al,0x0d
 asm out dx,al
 asm inc dx
 asm mov al,bl
 asm out dx,al
 asm dec dx
 asm mov al,0x0c
 asm out dx,al
 asm inc dx
 asm mov al,bh
 asm out dx,al  // Listing 14.32
}

void DubImage(int off, unsigned char buf[], int nbyte, int nrow)
{
 asm push es
 asm mov ax,0xa000
 asm mov es,ax
 asm mov di,off
 asm lds si,buf
 asm xor dx,dx
 asm mov bx,320
 asm sub bx,nbyte
 asm sub bx,nbyte
 asm mov cx,nrow
 asm xor ch,ch
 asm mov ah,[bp+10]

loop1:
 asm mov dx,nbyte
loop2:
 asm mov al,[si]
 asm mov ah,al
 asm mov es:[di],ax
 asm inc di
 asm inc di
 asm inc si
 asm dec dx
 asm jg loop2
 asm add di,bx
 asm sub si,nbyte
 asm mov dx,nbyte
loop3:
 asm mov al,[si]
 asm mov ah,al
 asm mov es:[di],ax
 asm inc di
 asm inc di
 asm inc si
 asm dec dx
 asm jg loop3
 asm add di,bx
 asm loop loop1
 asm pop es
}
void SetPal(uchar col, uchar red, uchar gre, uchar blu)
{
 asm mov al,col  // load palette
 asm mov dx,PEL_write // Ignite write mode
 asm out dx,al  // store it
 asm mov dx,PEL_data // Initialize color data
 asm mov al,red  // red color
 asm out dx,al  // store it
 asm mov al,gre  // green color
 asm out dx,al  // store it
 asm mov al,blu  // blue color
 asm out dx,al  // and store it
}

....
a lot of c-code....
*********EOF**********

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019