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