home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d5xx
/
d583
/
aroff.lha
/
ARoff
/
Sources
/
amiga.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-01-04
|
2KB
|
124 lines
/*
* Quelques fonctions UNIX qui n'existent pas sur l'Aztec
* (c)1991 par Denis GOUNELLE
*/
long strtol( str , ptr , base )
register unsigned char *str ;
unsigned char **ptr ;
long base ;
{
register long result, sign , digit ;
sign = 1 ;
result = 0 ;
/* passe les espaces en tête */
while ( isspace( *str ) ) str++ ;
/* regarde s'il y a un signe */
if ( *str == '-' )
{
sign = -1 ;
str++ ;
}
else if ( *str == '+' ) str++ ;
/* decode le nombre */
while ( isascii( *str ) && isalnum( *str ) )
{
digit = (long)toupper( *str ) - 48 ;
if ( digit > 9 ) digit -= 7 ;
if ( digit > base ) break ;
result *= base ;
result += digit ;
str++ ;
}
if ( ptr ) *ptr = str ;
if ( sign < 0 ) result = - result ;
return( result ) ;
}
/****************************************************************************
*
* bzero() and bcopy() have been rewritten in assembly language : that makes
* ARoff about 2 times faster...
* I've left the old C fonction code so that you can see what they do
*
****************************************************************************
void bzero( ptr , len )
register char *ptr ;
register long len ;
{
while ( len > 0 )
{
*ptr = '\0' ;
ptr++ ;
len-- ;
}
}
void bcopy( src , dst , len )
register char *src , *dst ;
register long len ;
{
while ( len > 0 )
{
*dst = *src ;
dst++ ;
src++ ;
len-- ;
}
}
*****************************************************************************/
#asm
_bzero:
move.l 4(sp),a0
move.l 8(sp),d0
beq.s _bzend
subq.l #1,d0
moveq #0,d1
_bzbcl:
move.b d1,(a0)+
dbra d0,_bzbcl
_bzend:
rts
_bcopy:
move.l 4(sp),a0
move.l 8(sp),a1
move.l 12(sp),d1
beq.s _bcend
subq.l #1,d1
_bcbcl:
move.b (a0)+,(a1)+
dbra d1,_bcbcl
_bcend:
rts
;
public _bzero
public _bcopy
#endasm
/*************************************************************************/
#ifdef AZTEC_C
long Chk_Abort()
{
return( 0 ) ;
}
#endif