| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- //
- // 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);
- }
|