home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma01.dms
/
ma01.adf
/
AddAssign
/
ar_funcs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-26
|
2KB
|
189 lines
/*
written by Alexander Rawass
*/
#ifdef AR_ARP
VOID DirName(path,dir)
STRPTR path,dir;
{
STRPTR base;
base=BaseName(path);
strncpy(dir,path,base-path);
}
#endif
VOID VolumeName(path,volume)
STRPTR path,volume;
{
int i;
i=0;
do{
volume[i]=path[i];
i++;
}while(path[i-1]!=EOS && path[i-1]!=':');
volume[i]=EOS;
if(volume[0]==':' || path[i-1]==EOS) volume[0]=EOS;
}
VOID StrUpper(str)
STRPTR str;
{
int i;
for(i=0;i<strlen(str);i++){
if(str[i]>='a' && str[i]<='z') str[i]-=32;
}
}
VOID UpperArgs(argc,argv)
int argc;
STRPTR argv[];
{
int i;
for(i=0;i<argc;i++){
StrUpper(argv[i]);
}
}
STRPTR BSTRS(bstr)
REG STRPTR bstr;
{
bstr=BADDR(bstr);
bstr[bstr[0]+1]=EOS;
return(bstr+1);
}
#ifdef AR_STDIO
BOOL fexists(name)
STRPTR name;
{
FILE *fh;
fh=fopen(name,"r");
if(fh){
FCLOSEC(fh);
return(TRUE);
}
else{
return(FALSE);
}
}
LONG flength(fh)
FILE *fh;
{
LONG flen,opos;
opos=ftell(fh); /* alte position */
fseek(fh,0,2); /* nach hinten setzen */
flen=ftell(fh); /* länge holen */
fseek(fh,opos,0); /* alte position wieder setzen */
return(flen);
}
#endif
#ifdef AR_INTEL
ULONG peekl_intel(adr)
char *adr;
{
UBYTE b0,b1,b2,b3;
ULONG l0,l1,l2,l3;
ULONG erg=0;
b3=*(adr+0);
b2=*(adr+1);
b1=*(adr+2);
b0=*(adr+3);
l0=b0<<24;
l1=b1<<16;
l2=b2<<8;
l3=b3;
erg=l3 | l2 | l1 | l0;
return(erg);
}
UWORD peekw_intel(adr)
char *adr;
{
UBYTE b0,b1;
UWORD l0,l1;
UWORD erg=0;
b1=*(adr+0);
b0=*(adr+1);
l0=b0<<8;
l1=b1;
erg=l1 | l0;
return(erg);
}
ULONG pokel_intel(adr,lword)
char *adr;
ULONG lword;
{
ULONG l0007,l0815,l1623,l2431;
UBYTE b0007,b0815,b1623,b2431;
ULONG erg;
l0007=lword & (0xff);
l0815=lword & (0xff00);
l1623=lword & (0xff0000);
l2431=lword & (0xff000000);
b0007=l0007;
b0815=l0815>>8;
b1623=l1623>>16;
b2431=l2431>>24;
*(adr+0)=b0007;
*(adr+1)=b0815;
*(adr+2)=b1623;
*(adr+3)=b2431;
erg=peekl_intel(adr);
return(erg);
}
ULONG pokew_intel(adr,wword)
char *adr;
UWORD wword;
{
UWORD w0007,w0815;
UBYTE b0007,b0815;
UWORD erg;
w0007=wword & (0xff);
w0815=wword & (0xff00);
b0007=w0007;
b0815=w0815>>8;
*(adr+0)=b0007;
*(adr+1)=b0815;
erg=peekw_intel(adr);
return(erg);
}
#endif