1 #pragma once 2 /* *INDENT-OFF* */ 3 /*>>> epd.h: subprogram prototypes for epd.c */ 4 /* Revised: 1996.06.23 */ 5 /* 6 Copyright (C) 1996 by Steven J. Edwards (sje@mv.mv.com) 7 All rights reserved. This code may be freely redistibuted and used by 8 both research and commerical applications. No warranty exists. 9 */ 10 /* 11 Everything in this source file is independent of the host program. 12 Requests for changes and additions should be communicated to the author 13 via the e-mail address given above. 14 */ 15 /* 16 This file was originally prepared on an Apple Macintosh using the 17 Metrowerks CodeWarrior 6 ANSI C compiler. Tabs are set at every 18 four columns. Further testing and development was performed on a 19 generic PC running Linux 1.3.20 and using the gcc 2.7.0 compiler. 20 */ 21 void EPDFatal(charptrT s); 22 void EPDSwitchFault(charptrT s); 23 voidptrT EPDMemoryGrab(liT n); 24 void EPDMemoryFree(voidptrT ptr); 25 charptrT EPDStringGrab(charptrT s); 26 void EPDStringFree(charptrT s); 27 charptrT EPDStringAppendChar(charptrT s, char c); 28 charptrT EPDStringAppendStr(charptrT s0, charptrT s1); 29 liT EPDMapFromDuration(charptrT s); 30 charptrT EPDMapToDuration(liT seconds); 31 gamptrT EPDGameOpen(void); 32 void EPDGameClose(gamptrT gamptr); 33 void EPDGameAppendMove(gamptrT gamptr, mptrT mptr); 34 void EPDTokenize(charptrT s); 35 siT EPDTokenCount(void); 36 charptrT EPDTokenFetch(siT n); 37 siT EPDCICharEqual(char ch0, char ch1); 38 pT EPDPieceFromCP(cpT cp); 39 siT EPDCheckPiece(char ch); 40 pT EPDEvaluatePiece(char ch); 41 siT EPDCheckColor(char ch); 42 cT EPDEvaluateColor(char ch); 43 siT EPDCheckRank(char ch); 44 rankT EPDEvaluateRank(char ch); 45 siT EPDCheckFile(char ch); 46 fileT EPDEvaluateFile(char ch); 47 eovptrT EPDNewEOV(void); 48 void EPDReleaseEOV(eovptrT eovptr); 49 void EPDAppendEOV(eopptrT eopptr, eovptrT eovptr); 50 eovptrT EPDCreateEOVStr(charptrT str); 51 eovptrT EPDCreateEOVSym(charptrT sym); 52 eovptrT EPDCreateEOVInt(liT lval); 53 eovptrT EPDLocateEOV(eopptrT eopptr, charptrT strval); 54 siT EPDCountEOV(eopptrT eopptr); 55 void EPDReplaceEOVStr(eovptrT eovptr, charptrT str); 56 eopptrT EPDNewEOP(void); 57 void EPDReleaseEOP(eopptrT eopptr); 58 void EPDAppendEOP(epdptrT epdptr, eopptrT eopptr); 59 eopptrT EPDCreateEOP(charptrT opsym); 60 eopptrT EPDCreateEOPCode(epdsoT epdso); 61 eopptrT EPDLocateEOP(epdptrT epdptr, charptrT opsym); 62 eopptrT EPDLocateEOPCode(epdptrT epdptr, epdsoT epdso); 63 siT EPDCountEOP(epdptrT epdptr); 64 void EPDDropIfLocEOP(epdptrT epdptr, charptrT opsym); 65 void EPDDropIfLocEOPCode(epdptrT epdptr, epdsoT epdso); 66 void EPDAddOpInt(epdptrT epdptr, epdsoT epdso, liT val); 67 void EPDAddOpStr(epdptrT epdptr, epdsoT epdso, charptrT s); 68 void EPDAddOpSym(epdptrT epdptr, epdsoT epdso, charptrT s); 69 epdptrT EPDNewEPD(void); 70 void EPDReleaseOperations(epdptrT epdptr); 71 void EPDReleaseEPD(epdptrT epdptr); 72 charptrT EPDFetchOpsym(epdsoT epdso); 73 epdptrT EPDCloneEPDBase(epdptrT epdptr); 74 eovptrT EPDCloneEOV(eovptrT eovptr); 75 eopptrT EPDCloneEOP(eopptrT eopptr); 76 epdptrT EPDCloneEPD(epdptrT epdptr); 77 epdptrT EPDSet(rbptrT rbptr, cT actc, castT cast, sqT epsq); 78 void EPDSetCurrentPosition(rbptrT rbptr, cT actc, castT cast, sqT epsq, 79 siT hmvc, siT fmvn); 80 epdptrT EPDGetCurrentPosition(void); 81 cT EPDFetchACTC(void); 82 castT EPDFetchCAST(void); 83 sqT EPDFetchEPSQ(void); 84 siT EPDFetchHMVC(void); 85 siT EPDFetchFMVN(void); 86 rbptrT EPDFetchBoard(void); 87 cpT EPDFetchCP(sqT sq); 88 charptrT EPDFetchBoardString(void); 89 gtimT EPDGetGTIM(gamptrT gamptr); 90 void EPDPutGTIM(gamptrT gamptr, gtimT gtim); 91 charptrT EPDGenBasic(rbptrT rbptr, cT actc, castT cast, sqT epsq); 92 charptrT EPDGenBasicCurrent(void); 93 epdptrT EPDDecodeFEN(charptrT s); 94 charptrT EPDEncodeFEN(epdptrT epdptr); 95 epdptrT EPDDecode(charptrT s); 96 charptrT EPDEncode(epdptrT epdptr); 97 void EPDRealize(epdptrT epdptr); 98 void EPDInitArray(void); 99 charptrT EPDPlayerString(cT c); 100 void EPDSANEncode(mptrT mptr, sanT san); 101 mptrT EPDSANDecodeAux(sanT san, siT strict); 102 siT EPDIsLegal(void); 103 siT EPDIsCheckmate(void); 104 siT EPDIsStalemate(void); 105 siT EPDIsInsufficientMaterial(void); 106 siT EPDIsFiftyMoveDraw(void); 107 siT EPDIsThirdRepeatIndex(gamptrT gamptr); 108 siT EPDIsDraw(gamptrT gamptr); 109 mptrT EPDMateInOne(void); 110 void EPDExecuteUpdate(mptrT mptr); 111 void EPDRetractUpdate(void); 112 void EPDRetractAll(void); 113 void EPDCollapse(void); 114 void EPDReset(void); 115 void EPDGenMoves(void); 116 siT EPDFetchMoveCount(void); 117 mptrT EPDFetchMove(siT index); 118 void EPDSetMoveFlags(mptrT mptr); 119 void EPDSortSAN(void); 120 siT EPDPurgeOpFile(charptrT opsym, charptrT fn0, charptrT fn1); 121 siT EPDRepairEPD(epdptrT epdptr); 122 siT EPDRepairFile(charptrT fn0, charptrT fn1); 123 siT EPDNormalizeFile(charptrT fn0, charptrT fn1); 124 siT EPDScoreFile(charptrT fn, bmsptrT bmsptr); 125 siT EPDEnumerateFile(siT depth, charptrT fn0, charptrT fn1, liptrT totalptr); 126 charptrT EPDMoveList(gamptrT gamptr); 127 pgnstrT EPDPGNFetchTagIndex(charptrT s); 128 charptrT EPDPGNFetchTagName(pgnstrT pgnstr); 129 charptrT EPDPGNGetSTR(gamptrT gamptr, pgnstrT pgnstr); 130 void EPDPGNPutSTR(gamptrT gamptr, pgnstrT pgnstr, charptrT s); 131 charptrT EPDPGNGenSTR(gamptrT gamptr); 132 charptrT EPDPGNHistory(gamptrT gamptr); 133 void EPDCopyInPTP(gamptrT gamptr, epdptrT epdptr); 134 void EPDCopyOutPTP(gamptrT gamptr, epdptrT epdptr); 135 charptrT EPDFetchRefcomStr(refcomT refcom); 136 charptrT EPDFetchRefreqStr(refreqT refreq); 137 refcomT EPDFetchRefcomIndex(charptrT s); 138 refreqT EPDFetchRefreqIndex(charptrT s); 139 refcomT EPDExtractRefcomIndex(epdptrT epdptr); 140 refreqT EPDExtractRefreqIndex(epdptrT epdptr); 141 siT EPDComm(refintptrT refintptr, charptrT pipebase); 142 void EPDInit(void); 143 void EPDTerm(void); 144 /* *INDENT-ON* */ 145