/disk1/p.uno. git-svn-id: svn://10.65.10.50/trunk@1811 c028cbd2-c16b-5b4b-a496-9718f37d4682
73 lines
1.5 KiB
C
Executable File
73 lines
1.5 KiB
C
Executable File
|
|
#include "ccommon.h"
|
|
#include "libdefs.h"
|
|
|
|
Word _int_tab0[4] = {0xFFFF, 0xFFFF, 0xFFFF, 0x0000};
|
|
|
|
/*
|
|
@(#) CGetAut
|
|
|
|
@(ID)
|
|
Restituisce l'autorizzazione ad utilizzare un modulo. Vedi il file modaut.h.
|
|
@(FD)
|
|
|
|
*/
|
|
|
|
BOOLEAN CGetAut(af)
|
|
int af; /* numero del modulo */
|
|
|
|
{
|
|
int i;
|
|
#ifndef DOS
|
|
BOOLEAN ok;
|
|
#endif
|
|
if (!af) return(!af);
|
|
if (af > 48) return(FALSE);
|
|
/* @(!) 2.3.01.176 */
|
|
if (demoflag)
|
|
{
|
|
/* @(!) 2.3.01.276 */
|
|
if (formflag)
|
|
_int_tab0[0] = 0x019D;
|
|
else
|
|
_int_tab0[0] = 0x010D;
|
|
/* @(:) 2.3.01.276 */
|
|
_int_tab0[1] = 0x0000;
|
|
_int_tab0[2] = 0x0000;
|
|
_int_tab0[3] = 0x0000;
|
|
af--;
|
|
return(CBITTEST(_int_tab0[af / 16], af % 16));
|
|
}
|
|
/* @(:) 2.3.01.176 */
|
|
if (!SerNo) return(!getser());
|
|
/* @(!) 2.3.01.178 */
|
|
#ifdef DOS
|
|
HL_READ(48, &_int_tab0[0]);
|
|
HL_READ(49, &_int_tab0[1]);
|
|
HL_READ(50, &_int_tab0[2]);
|
|
HL_READ(51, &_int_tab0[3]);
|
|
HL_CODE(EYECAST &_int_tab0[0], HLBLOCK);
|
|
#else
|
|
/* @(:) 2.3.01.178 */
|
|
INT_OFF();
|
|
HL_ON(Port, ModAd);
|
|
_int_tab0[0] = HL_RD(Port, 48);
|
|
_int_tab0[1] = HL_RD(Port, 49);
|
|
_int_tab0[2] = HL_RD(Port, 50);
|
|
_int_tab0[3] = HL_RD(Port, 51);
|
|
HL_OFF(Port);
|
|
INT_ON();
|
|
INT_OFF();
|
|
HL_ON(Port, ModAd);
|
|
ok = K_EYE(Port, EYECAST &_int_tab0[0], HLBLOCK);
|
|
HL_OFF(Port);
|
|
INT_ON();
|
|
/* @(!) 2.3.01.178 */
|
|
#endif
|
|
/* @(:) 2.3.01.178 */
|
|
for (i = 0; i < 4; i++) _int_tab0[i] ^= SerNo;
|
|
if (_int_tab0[3]) return(FALSE);
|
|
af--;
|
|
return(CBITTEST(_int_tab0[af / 16], af % 16));
|
|
}
|