I just posted an experimental WinBoard version on my website, which implement adjudication of perpetual chasing. To facilitate testing of this, I have the adjudications (mate detection etc.) act on every move done by an engine, not only in Two-Machines Mode, as in the standard WinBoard.
I tried to follow what I thought were Asian rules. But unfortunately the 'Asian rules' are not really a systematic set rules, but rather a chaotic mess of statements that can only be understood by the examples given with them. And the examples are often broken, containing a diagram of another example. And I just discovered that there are also a few 'Appendix' examples, which describe situations that are to be ruled in deviation of any of the written rules. (e.g. the example where you chase a piece by blocking the protector of it.) Does anyone takes this mess seriously??? How come that after 27 years (the Asia rules were reportedly formulated in 1982) they have not even posted correct diagrams???
As I so far only implemented the written rules, WinBoard will rule some of these 'Appendix' cases differently.
The algorithm WinBoard uses defines a chase as a move that creates an attack on a 'victim' piece (except a P that has not crossed the river) by a piece (not being K or P) which did not attack this victim before the move, where it cannot be legally recaptured on the same square in the reply move when it makes this capture, or where you attack R with C or H. With the exception of attacks on an equal piece that can capture you immediately.
The appendix to the Asian rules suggests that one should not only consider new attacks, but also existing attacks on pieces for which the protected status changes. (By blocking the recapture move).. This is currenty not implemented.
This version can be downloaded from
http://home.hccnet.nl/h.g.muller/XQgui.zip
wich also contains the bitmap of the oriental-style Xiangqi board, and the XIANGQI true-type font.