build: add the SIBO SDK

This commit is contained in:
2026-07-06 18:01:36 +01:00
parent d76326729c
commit 64e484448c
757 changed files with 97167 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
/*
XHWIF.C
Started by DavidW, 8/11/91
Later additions to h layer of hwif
*/
#include <p_std.h>
#include <p_file.h>
#include <p_sys.h>
#include <p_object.h>
#include <epoc.h>
GLREF_D TEXT *DatUsedPathNamePtr;
GLREF_D TEXT *DatCommandPtr;
GLREF_D TEXT *DatProcessNamePtr;
GLREF_D TEXT *DatStatusNamePtr;
GLDEF_C VOID hEnsurePath(TEXT *fname)
/*
Ensure that the path of the specified path exists.
All errors are ignored.
*/
{
P_FPARSE crk;
TEXT buf[P_FNAMESIZE];
if (!p_fparse(fname,NULL,&buf[0],&crk))
{
buf[crk.system+crk.device+crk.path]=0;
p_mkdir(&buf[0]);
}
}
GLDEF_C VOID hSetUpStatusNames(TEXT *pb)
{
TEXT buf[P_FNAMESIZE];
P_FPARSE crk;
DatUsedPathNamePtr=pb;
p_fparse(pb,0,&buf[0],&crk);
DatStatusNamePtr=pb+P_FSYSNAMESIZE+crk.device+crk.path;
}
GLDEF_C INT hCrackCommandLine(VOID)
{
INT ret;
TEXT *pb;
pb=DatCommandPtr;
pb+=p_slen(pb)+1;
if (!*pb++)
ret=0;
else
{
ret=(*pb++);
DatProcessNamePtr=pb;
pb+=p_slen(pb)+1;
pb+=p_slen(pb)+1;
if (*pb)
hSetUpStatusNames(pb);
else
DatStatusNamePtr=DatProcessNamePtr;
}
return(ret);
}
GLDEF_C INT hIsDbfCompressible(VOID *dH)
{
return(*((UWORD *)dH+19)&P_FMEDIA_COMPRESSIBLE);
}
typedef struct
{
UWORD toneLengthTicks;
UWORD delayLengthTicks;
UWORD pauseLengthTicks;
UBYTE dialOutCode[6];
} DTMF_ENVAR;
LOCAL_C VOID ReadDTMFEnvar(DTMF_ENVAR *penv)
{
INT len;
UBYTE buf[P_ENVMAX];
len=p_getenviron("D$X",3,&buf[0]);
if (len==sizeof(DTMF_ENVAR))
p_bcpy(penv,&buf[0],sizeof(DTMF_ENVAR));
else
{
penv->toneLengthTicks=8;
penv->delayLengthTicks=8;
penv->pauseLengthTicks=48;
}
}
GLDEF_C INT hDTMFString(TEXT *zts)
{
E_DIAL c;
DTMF_ENVAR env;
INT oldsnd_state;
INT ret;
VOID *snd;
INT i;
ReadDTMFEnvar(&env);
c.toneLengthTicks=env.toneLengthTicks;
c.delayLengthTicks=env.delayLengthTicks;
c.pauseLengthTicks=env.pauseLengthTicks;
oldsnd_state=p_getsnd();
p_setsnd((oldsnd_state&~E_SOUND_DISABLE)|E_SOUND_DEVICE);
for (i=3;i;i--)
{
if (!(ret=p_open(&snd,"SND:",0)))
break;
p_sleep(1);
}
if (!ret)
{
p_iow4(snd,E_FDIAL,zts,&c);
p_close(snd);
}
p_setsnd(oldsnd_state);
return(ret);
}
GLDEF_C INT hLoadOwnDyl(INT index)
{
INT DylHandle;
VOID *fcb;
INT ret;
DylHandle=0;
ret=p_openlib(&fcb,DatCommandPtr);
if (!ret)
{
p_loadfilelib(fcb,index,&DylHandle,TRUE);
p_close(fcb);
}
return(DylHandle);
}