CnC_Remastered_Collection/REDALERT/CBN_.H

153 lines
7.1 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// Copyright 2020 Electronic Arts Inc.
//
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is free
// software: you can redistribute it and/or modify it under the terms of
// the GNU General Public License as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
// in the hope that it will be useful, but with permitted additional restrictions
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
// distributed with this program. You should have received a copy of the
// GNU General Public License along with permitted additional restrictions
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
/****************************************************************************
* Error Constants, in case of values above 10 hexadecimal please call
* Marx International, Inc.
****************************************************************************/
#define PARAM_ERR 0x01
#define BOX_NOT_FOUND 0x02
#define BOX_CRYPT_ERR 0x03
#define UNI_CRYPT_ERR 0x04
#define READ_RAM_ERR 0x05
#define WRITE_RAM_ERR 0x06
#define RAM_COUNT_ERR 0x07
#define BOX_READY_ERR 0x08
/****************************************************************************
* Constants
****************************************************************************/
#define CRYPTLENG 32
#define RAM1LENG 50
#define RAM2LENG 433
#define IDEALENG 32
/****************************************************************************
* User Functions
****************************************************************************/
extern "C" {
extern short CbN_BoxReady(unsigned short iPortNr, unsigned char *pcBoxName);
extern short CbN_ReadID1(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadID2(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadID3(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadID4(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadID5(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadID6(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadID7(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadID8(unsigned short iPortNr, unsigned char *pcSCodeId,
unsigned long *plIdReturn);
extern short CbN_ReadSER(unsigned short iPortNr, unsigned char *pcSCodeSer,
unsigned long *plSerNum);
extern short CbN_ReadRAM1(unsigned short iPortNr,unsigned short iIdNr,unsigned char
*pcSCodeId,unsigned char *pcPasswRam1,unsigned short
iStartAdr,unsigned short iLength, unsigned char *pcOutData);
extern short CbN_ReadRAM2(unsigned short iPortNr,unsigned short iIdNr,unsigned char
*pcSCodeId,unsigned char *pcPasswRam2,unsigned short
iStartAdr,unsigned short iLength, unsigned char *pcOutData);
extern short CbN_WriteRAM1(unsigned short iPortNr,unsigned short iIdNr,unsigned char
*pcSCodeId,unsigned char *pcPasswRam1,unsigned short
iStartAdr,unsigned short iLength,unsigned char *pcOutData);
extern short CbN_WriteRAM2(unsigned short iPortNr,unsigned short iIdNr,unsigned char
*pcSCodeId,unsigned char *pcPasswRam2,unsigned short
iStartAdr,unsigned short iLength,unsigned char *pcOutData);
extern short CbN_IncRAM1(unsigned short iPortNr, unsigned short iIdNr, unsigned char
*pcSCodeId, unsigned char *pcPasswRam1, unsigned short
iCounterAdr, unsigned short *piNewCount);
extern short CbN_DecRAM1(unsigned short iPortNr, unsigned short iIdNr, unsigned char
*pcSCodeId, unsigned char *pcPasswRam1, unsigned short
iCounterAdr, unsigned short *piNewCount);
extern short CbN_IncRAM2(unsigned short iPortNr, unsigned short iIdNr, unsigned char
*pcSCodeId, unsigned char *pcPasswRam2, unsigned short
iCounterAdr, unsigned short *piNewCount);
extern short CbN_DecRAM2(unsigned short iPortNr, unsigned short iIdNr, unsigned char
*pcSCodeId, unsigned char *pcPasswRam2, unsigned short
iCounterAdr, unsigned short *piNewCount);
extern short CbN_Decrypt(unsigned short iPortNr,unsigned short iIdNr,unsigned char
*pcSCodeId,unsigned short iSeed, unsigned short iLength,
unsigned char *pcOutData);
extern short CbN_Encrypt(unsigned short iPortNr,unsigned short iIdNr,unsigned char
*pcSCodeId,unsigned short iSeed,unsigned short iLength,
unsigned char *pcOutData);
extern short CbN_IDEA_Encrypt(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char *pcBuff,
unsigned long lLength);
extern short CbN_IDEA_Decrypt(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char *pcBuff,
unsigned long lLength);
extern short CbN_IDEA_EncryptP(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char *pcBuff,
unsigned long lLength, unsigned long lIdeaKey);
extern short CbN_IDEA_DecryptP(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char *pcBuff,
unsigned long lLength, unsigned long lIdeaKey);
extern short CbN_SetCounterRAM1(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char
*pcPassRam, unsigned short iAdrCount, unsigned short
iNewCount);
extern short CbN_ReadCounterRAM1(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char
*pcPassRam, unsigned short iAdrCount, unsigned short
*piCurrentCount);
extern short CbN_SetCounterRAM2(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char
*pcPassRam, unsigned short iAdrCount, unsigned short
iNewCount);
extern short CbN_ReadCounterRAM2(unsigned short iPortNr, unsigned short iIdNr,
unsigned char *pcSCodeId, unsigned char
*pcPassRam, unsigned short iAdrCount, unsigned short
*piCurrentCount);
}