Older Version Newer Version

GerdIsenberg GerdIsenberg Jan 18, 2018

**[[Home]] * [[Engines]] * Belle**
|| 
[[image:Belle.jpg link="http://www.computerhistory.org/chess/full_record.php?iid=stl-43305190f1a84"]] ||~   || 
**Belle**,
the dominating chess machine in the late 70s and early 80s, was developed by [[Ken Thompson]] and [[Joe Condon]] <ref>[[http://www.nj.com/independentpress/index.ssf/2012/03/creator_of_belle_computer_ches.html|Creator of Belle computer chess dies at 76]], [[http://www.nj.com/|NJ.com]], March 02, 2012</ref> from [[Bell Laboratories]]. It was five times winner of the [[ACM North American Computer Chess Championship]], the [[ACM 1978]], [[ACM 1980]], [[ACM 1981]], [[ACM 1982]], and [[ACM 1986]], and won the [[WCCC 1980|Third World Computer Chess Championship]] 1980 in [[https://en.wikipedia.org/wiki/Linz|Linz]] <ref>[[http://www.game-ai-forum.org/icga-tournaments/tournament.php?id=68|3rd World Computer Chess Championship]]</ref>.

Belle consists of a special-purpose hardware and associated software, and was pure [[Brute-Force|brute-force]]. Belle started in the early 70s as a sole software approach, but more and more emerged to a hybrid chess computer, next using a [[Move Generation|move generator]], a [[Evaluation|position evaluator]], and a [[Transposition Table|transposition table]] inside a special-purpose hardware. In its final incarnation, Belle was composed of a [[PDP-11|PDP-11/23]], and further a [[https://en.wikipedia.org/wiki/LSI-11#LSI-11|LSI-11]] processor with several custom boards. The speed increased from 200 [[Nodes per second|nps]] from the software version to about 160,000 nps of the machine mentioned at the [[Advances in Computer Chess 3]] conference in 1981.  ||
|| 
Belle, 1977 <ref>[[http://www.computerhistory.org/chess/full_record.php?iid=stl-43305190f1a84|Bellechess-playing computer, Date: 1977]] from [[The Computer History Museum]]</ref> ||~   ||^   ||
[[#Blitz]][[toc]]
=Photos & Games= 
==Blitz 6.5==
|| 
[[image:ken-joe.jpg width="580" height="440" link="http://cm.bell-labs.com/cm/cs/who/dmr/ken-games.html"]] ||
|| 
Belle, [[Joe Condon]] and [[Ken Thompson]] revisiting the [[ACM 1978|1978 ACM]] [[Blitz|Blitz 6.5]] - Belle game (1982) <ref>[[https://en.wikipedia.org/wiki/Dennis_Ritchie|Dennis Ritchie]] (**2001**). //[[http://cm.bell-labs.com/cm/cs/who/dmr/ken-games.html|Ken, Unix, and Games]]//, [[http://ilk.uvt.nl/icga/journal/contents/content24-2.htm|ICGA Journal, Vol. 24. No. 2]]</ref> <ref>Editor (**1979**). //Will Blitz be next year's champ?// [[Personal Computing]], Vol. 3, No. 7, pp. 80, July 1979</ref> ||
[[code]]
[Event "ACM 1978"]
[Site "Washington D.C."]
[Date "1978.12.06"]
[Round "4"]
[White "Blitz 6.5"]
[Black "Belle"]
[Result "0-1"]

1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bb5 Nd4 5.Bc4 Bc5 6.Nxe5 Qe7 7.Bxf7+ Kf8 
8.Ng6+ hxg6 9.Bc4 Nxe4 10.O-O Rxh2 11.Kxh2 Qh4+ 12.Kg1 Ng3 13.Qh5 gxh5 
14.fxg3+ Nf3# 0-1
[[code]]
==CHAOS==
|| 
[[image:WCCC-Linz.Belle_vs_Chaos.jpg width="580" height="465" link="http://www.computerhistory.org/chess/full_record.php?iid=stl-432a034fb7102"]] ||
|| 
[[Belle]] vs [[CHAOS]], [[WCCC 1980]], [[Ken Thompson|Thompson]], [[Frederic Friedel|Friedel]], [[Victor Berman|Berman]] <ref>[[http://www.spiegel.de/spiegel/print/d-14342470.html|Militärischer Wert]] [[https://en.wikipedia.org/wiki/Der_Spiegel|Der Spiegel]] 24/1982, [[http://magazin.spiegel.de/EpubDelivery/spiegel/pdf/14342470|pdf]] (German)</ref>, [[Fred Swartz|Swartz]], [[Mikhail Donskoy|Donskoy]] <ref>[[http://www.computerhistory.org/chess/full_record.php?iid=stl-432a034fb7102|Photo]] by [[Monroe Newborn]] from [[The Computer History Museum]]</ref> ||
[[code]]
[Event "3rd World Computer Chess Championship"]
[Site "Linz, Austria"]
[Date "1980.09.29"]
[Round "5 (playoff)"]
[White "Belle"]
[Black "CHAOS"]
[Result "1-0"]
 
1. e4 Nf6 2. e5 Nd5 3. d4 d6 4. Nf3 dxe5 5. Nxe5 g6 6. g3 Bf5 7. c4 Nb4 
8. Qa4+ N4c6 9. d5 Bc2 10. Qb5 Qd6 11. Nxc6 Nxc6 12. Nc3 Bg7 13. Qxb7 O-O 
14. Qxc6 Qb4 15. Kd2 Be4 16. Rg1 Rfb8 17. Bh3 Bh6+ 18. f4 Qa5 19. Re1 f5 
20. Qe6+ Kf821. b3 Bg7 22. Bb2 Bd4 23. g4 Rb6 24. Qd7 Rd6 25. Qa4 Qb6 
26. Ba3 Bxc3+ 27. Kxc3 Rdd8 28. Rad1 Qf2 29. gxf5 Qc2+30. Kd4 gxf5 31. Qc6
Qf2+ 32. Ke5 Kg8 33. Rg1+ Kh8 34. Bxe7 Qb2+ 35. Rd4 Qg2 36. Qf6+ Kg8 
37. Bxg2 Rxd5+ 38. Ke6 h6 39. Qxh6 Re5+ 40. fxe5 Rf8 41. Bf3# 1-0
[[code]]
[[#Hardware]]
=Hardware Design=
The find **victim** and find **aggressor** [[Move Generation|move generation]] was instrumented by [[Edward Fredkin]], first applied in the Chess-orientated Processing System [[CHEOPS]] <ref>[[John Moussouris]], [[Jack Holloway]], [[Richard Greenblatt]] (**1979**). //[[http://portal.acm.org/citation.cfm?id=61701.67028|CHEOPS: A Chess-orientated Processing System]]//. [[http://www.doc.ic.ac.uk/~shm/MI/mi9.html|Machine Intelligence 9]] ([[Jean Hayes Michie]], [[Donald Michie]] and L.I. Mikulich editors) Ellis Horwood, Chichester, 1979, pp. 351-360. Reprinted (**1988**) in [[Computer Chess Compendium]]</ref>. The overall architecture of Belle was used for the initial designs of [[ChipTest]], the progenitor of [[Deep Thought]] which further evolved to [[Deep Blue]] <ref>[[Feng-hsiung Hsu]] (**1999**). //IBM’s Deep Blue Chess Grandmaster Chips//. [[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.126.5392&rep=rep1&type=pdf|pdf]]</ref>, and more recently by [[FPGA]] projects, such as [[Marc Boulé|Marc Boulé's]] thesis project around [[MBChess]] <ref>[[Marc Boulé]] (**2002**). //An FPGA Move Generator for the Game of Chess//. Masters thesis, [[McGill University]], (Supervisor: [[Zeljko Zilic]], Co-Supervisor: [[Monroe Newborn|Monty Newborn]]), [[http://www.iml.ece.mcgill.ca/%7Emboule/files/mbthesis02.pdf|pdf]]</ref>, and notably [[Brutus]] <ref>[[Chrilly Donninger]], [[Alex Kure]], [[Ulf Lorenz]] (**2004**). //Parallel Brutus: The First Distributed, FPGA Accelerated Chess Program//. [[http://dl.acm.org/citation.cfm?id=645610&picked=prox|IPDPS’04]], [[http://www2.cs.uni-paderborn.de/cs/ag-monien/PERSONAL/FLULO/publications/ipdps04.pdf|pdf]]</ref> and its successor [[Hydra]] by [[Chrilly Donninger]] et al..

==Move Generation== 
The hardware [[Move Generation|move generator]] consists of 64 [[Combinatorial Logic|combinatorial circuits]] similar for each square, controlled by appropriate latches representing the [[Board Representation|board]], and receiving and transmitting signals from/to neighboring squares to propagate piece attacks. Two single wired op-codes, find **victim** and find **aggressor**, locate the highest valued piece (including empty square) under attack and the lowest valued piece attacking it in [[MVV-LVA]] manner. [[Make Move|Move making]] and [[Unmake Move|unmaking]] perform [[Incremental Updates|incremental updates]] not only on the piece registers, but also on a [[Zobrist Hashing|Zobrist like]] 48-bit hashkey and [[Evaluation|evaluation]] registers.

===Block Diagram===
Transmitter (XMIT), receiver (RECV), piece register, and [[Rays|ray-]] and [[Direction|direction]] [[https://en.wikipedia.org/wiki/Multiplexer|multiplexer]] for each square <ref>[[Joe Condon]], [[Ken Thompson]] (**1982**). //Belle Chess Hardware//. [[Advances in Computer Chess 3]], Reprinted (**1988**) in [[Computer Chess Compendium]]</ref>. The opcode (OP) input is either find victim or aggressor. It controls the transmitters and the order of the receiver outputs as input of the two level [[https://en.wikipedia.org/wiki/Priority_encoder|priority encoding]] tree. 
[[code]]
                                               ╔══╗
  ┌─────────┐ 64 Disable            OP   2 PW ┌╢≥1╟═◄ 2 Pawn Move
  │ Disable ╞═/═════╣64|1╟───────┐   │   ╔══/═╡╠══╣               63 other K ┌──┐
  │ Memory  │                   ╔▼═══▼═══▼═╗  └╢≥1╠═◄ 2 Pawn Capt   ►═/══════╡  │     check 
  └─────────┘ 8 N    ╔══╗      ╔══════════╗║Ki ╚══╝                          │≥1├───────────►
      ╕ ╒     in    ╔══╗╟      ║  64 *    ╟╫────────────────────────►────────┤  │
             ►═/════╣≥1╟──────►║          ║║(victim / aggressor)             └──┘
      ╛ ╘           ╚══╝       ║          ║║ Queen  / Pawn           ┌──────────┐
      \|/     8 K    ╔══╗      ║          ╟╫────────────────────────►│          │
      - -     in    ╔══╗╟      ║          ║║ Rook   / Knight         │          │
From  /|\    ►═/════╣≥1╟──────►║  RECV    ╟╫────────────────────────►│          │  no square
XMIT                ╚══╝       ║   PLA    ║║ Bishop / Bishop         │          ├───────────►
Neighbors     4 Diag ╔══╗      ║          ╟╫────────────────────────►│ Priority │
      \ /     in    ╔══╗╟      ║          ║║ Knight / Rook           │ Network  │
      / \    ►═/════╣≥1╟──────►║          ╟╫────────────────────────►│          │
                    ╚══╝       ║          ║║ Pawn   / Queen          │          │
       |      4 Man  ╔══╗      ║          ╟╫────────────────────────►│          │
      - -     in    ╔══╗╟      ║          ║║ Empty  / King           │          │   square 6 
       |     ►═/════╣≥1╟──────►║          ╟╫────────────────────────►│          ╞═════════/══►
                    ╚══╝       ║          ║╝                         │          │
                               ╚══════════╝         ►════════/══════►│          │
                64 *             ▲                      63x6 others  └──────────┘
              ╔══════════════╗   ║           |
             ╔══════════════╗ P4 ║          - -   4 Man in
             ║Piece Register╠═/══╣           |  ►═/══════════╗  From XMIT Neighbors
             ╚══════════════╝    ║  OP WTM  \ /   4 Diag in  ║
                                 ║   │   │  / \ ►═/══════╗   ║
                                ╔▼═══▼═══▼═╗           ╔═▼═══▼═══╗                   
                               ╔══════════╗║Manhattan ╔═════════╗║      Man out 4    | 
                               ║  64 *    ╟╫─────────►║  64 *   ╠══════════════/═►  - -   To RECV and XMIT
                               ║          ║║Diagonal  ║   RAY   ║║     Diag out 4    |    Neighbors
                               ║          ╟╫─────────►║   MUX   ╠══════════════/═►  \ /
                               ║          ║║Empty     ║         ║║                  / \
                               ║  XMIT    ╟╫─────────>║control  ║╝                  ╕ ╒   To RECV Neighbors
                               ║   ROM    ║║Knight    ╚═════════╝         N out 8      
                               ║          ╟╫───────────────────────┤*8╠════════/═►  ╛ ╘
                               ║          ║║King                          K out 8   \|/
                               ║          ╟╫───────────────────────┤*8╠════════/═►  - -
                               ║          ║║           ╔═════════╗                  /|\
                               ║          ║║Pawn      ╔═════════╗║Pawn Move out 1
                               ║          ╟╝─────────►║  64 *   ╟╫───────────────►   |
                               ╚══════════╝           ║ DIR MUX ║║Pawn Capt out 2
                                                WTM──>║control  ╟╝─┤*2╠════════/═►  \ / or / \
                                                      ╚═════════╝
[[code]]
[[#FindVictim]]
===Find Victim===
Find **victim** causes each transmitter (XMIT) to activate signals corresponding to the piece of the side to move on each square. Empty squares activate the sliding ray signals from their neighbors in appropriate directions. All 64 receivers (RECV) are now supplied with signals from their correspondent neighbors, and six disjoint piece ([[Captures|capture]] target) or empty flags per square are feed into a priority network, which finally outputs the square of the most valuable victim - the [[Target Square|target-square]]. All this takes place simultaneously in [[https://en.wikipedia.org/wiki/Propagation_delay|propagation delay]] time of the combinatorial logic of all 64 squares. A king victim on any square, caused by an illegal move is indicated by the chess output flag, ored (>=1) over all 64 square receivers.
[[#FindAggressor]]
===Find Aggressor===
The find **aggressor** opcode causes only the addressed victim transmitter to radiate as the union of all other side to move pieces, the super piece, and otherwise applies the same logic as in the find **victim** cycle. All appropriate pieces of the side to move which receive attacks of the super-piece are potential [[Origin Square|from-squares]] of a [[Pseudo-Legal Move|pseudo-legal move]], and piece disjoint signals in reversed order from pawn to king are feed into the priority network to get the from-square of the least valuable aggressor first.

===Bookkeeping===
Without further [[Sequential Logic|sequential logic]] subsequent find victim and aggressor cycles would always leave the same victim and same aggressor. A [[Stack|stack]] of 64-bit disable words is used for bookkeeping per [[Ply|ply]], keeping the move generation state by consecutively disabling victims, and per victim, its aggressors. After [[Make Move|making]], processing and [[Unmake Move|unmaking move]], the aggressor's from-square of the current victim (to-square) is disabled, so that the next aggressor square is found in consecutive find aggressor cycles, until all from-squares are exhausted. Then, the victim to-square is disabled, and all origin squares of own pieces - always disjoint from their to-squares - are enabled again, to continue with a new find victim cycle until no more are found. In [[C]] like pseudo code with [[Bitboards]] the control flow looks as follows:
[[code format="cpp"]]
disable[ply] = 0;
while ( ( to = findMVV(disable[ply])) >= 0 ) {
  disable[ply] &= ~ownPieces;  /* enable all possible from-squares */
  while ( ( from = findLVA(disable[ply])) >= 0 ) {
    make(from, to);            /* ply++ */
    ....
    unmake(from, to);          /* ply-- */
    disable[ply] |= 1 << from; /* disable from-square */ 
  }
  disable[ply] |= 1 << to;     /* disable to-square */
}
[[code]]
[[#Evaluation]]
==Evaluation== 
===Lazy=== 
The fast incremental [[Lazy Evaluation|lazy evaluation]] was composed of a [[Material|material register]], a piece position register containing sum from hard wired [[Piece-Square Tables|piece-square tables]], and king position registers, in conjunction with 9-bit registers indicating existence of friendly pawns on each wing, the weighted sums of [[King Safety|king safety]] and king centralization, selected by the [[Game Phases|stage of the game]]. A conservative fast evaluation could quite often cause a [[Beta-Cutoff|beta-cutoff]], without the need for a full evaluation.

===Full=== 
The slow and asynchronous full evaluation took eight cycles, and like the move generator, it consists of 64 similar circuits, to evaluate [[Pawn Structure|pawn structure]] and [[Mobility|mobility]] along [[Rays|rays]], also considering outposts and surrounding king squares. 

==Transposition Table== 
The [[Transposition Table]] was implemented within a separate [[https://en.wikipedia.org/wiki/Microprocessor|microprocessor]] system with 1MByte of memory viewed as 128K 8-byte positions for the table, addressed by 16 of the incremental updated 48-bit [[Zobrist Hashing|hashkey]] bits and White to move. Four of the eight byte entries hold the remaining 32 hash code-bits to resolve index collisions.

==Microcode== 
The [[https://en.wikipedia.org/wiki/Microcode|microcode]] was implemented on a 1K x 64-bit microprocessor to perform an [[Alpha-Beta|alpha-beta]] search using the move generator, evaluation and transposition table. A value bus was used to perform the minimal calculations, to implement the alpha-beta search and to gate 16-bit values to and from a stack, transposition table, evaluators and [[https://en.wikipedia.org/wiki/LSI-11#LSI-11|LSI-11]] processor, with the sole operations of add and compare. A board address and piece bus were used to transfer board memories in the move generator, incremental- and full evaluator. Getting out of check did not count as a ply.

=PVS=
Recently <ref>[[John Philip Fishburn]], note in September 2010</ref>, [[John Philip Fishburn]] gave some interesting internals on Belle's [[Principal Variation Search|principal variation search]]:
|| {{However when I went to work at [[Bell Laboratories|Bell Labs]] in 1981, [[Ken Thompson]] told me that he had read the [[ACM#SIG|SIGART]] paper <ref>[[John Philip Fishburn]] (**1980**). //An optimization of alpha-beta search//, SIGART Bulletin, Issue 72</ref>, and had sped up Belle by 1.5x with [[Null Window|null windows]].}} 

{{The PVS algorithm in Belle did not do a second search at the root until a **second** fail high occurred. I don’t know whether or not this idea appears in the literature or not. I would hope it does, but I haven’t been following the literature for about 25 years. In other words, Belle is cleverly going for broke: it knows it’s got a high failure, which is the best move so far, but as long as it doesn’t get a second high failure, the first high failure remains the best move, and it can still avoid doing any more full searches.}} ||

=Miscellaneous= 
Most components were [[https://en.wikipedia.org/wiki/Transistor%E2%80%93transistor_logic#Sub-types|Low Power Schottky]] ([[https://en.wikipedia.org/wiki/7400_series|74LS]]) [[https://en.wikipedia.org/wiki/Transistor%E2%80%93transistor_logic|TTL logic]], slightly slower than [[https://en.wikipedia.org/wiki/Schottky_transistor|Schottky]], but draws much less power, reducing power supply and cooling. The complete machine fits in a rack of 46cm x 38cm by 71cm tall. It weighs about 60kg and was portable.

In 1982, Belle was confiscated by the [[https://en.wikipedia.org/wiki/United_States_Department_of_State|US State Department]] at [[https://en.wikipedia.org/wiki/John_F._Kennedy_International_Airport|Kennedy Airport]] when heading to the [[https://en.wikipedia.org/wiki/Soviet_Union|USSR]] to compete in a computer chess tournament. Its shipping was considered to be an illegal transfer of advanced technology to a foreign country <ref>[[http://www.spiegel.de/spiegel/print/d-14342470.html|Militärischer Wert]] [[https://en.wikipedia.org/wiki/Der_Spiegel|Der Spiegel]] 24/1982, [[http://magazin.spiegel.de/EpubDelivery/spiegel/pdf/14342470|pdf]] (German)</ref> <ref>[[http://www.megalextoria.com/usenet-archive/news002f1/b2/net.space/00000105.html|Re: Microprocessors for Russian Shuttle, etc]] by [[Bruce Wright|Bruce C. Wright]] @ [[Duke University]], net.space, June 22, 1982</ref>. It took over a month and a $600 fine to get Belle out of customs <ref>[[https://en.wikipedia.org/wiki/Belle_%28chess_machine%29|Belle (chess machine) from Wikipedia]]</ref>.

=See also= 
* [[Berkeley Chess Microprocessor]]
* [[Brutus]]
* [[CHEOPS]]
* [[ChipTest]]
* [[Deep Thought]]
* [[FPGA]]
* [[HiTech]]
* [[Hydra]]
* [[MBChess]]
* [[Thompson's Databases]]

=Selected Publications= 
<ref>[[http://ilk.uvt.nl/icga/journal/docs/References.pdf|ICGA Reference Database]] (pdf)</ref> 
* [[http://www.computerwoche.de/heftarchiv/1981/4/1185023/|"Belle" wurde auch US-Champion 1980: Frecher Schachzwerg beweist Kaltblütigkeit]], January 23, 1981, [[Computerworld#Woche|Computerwoche]] 3/1981 (German) » [[ACM 1980]]
* [[Kevin O’Connell]] (**1981**). //Belle, Beller, Bellest//. [[Personal Computer World]], July 1981 <ref>[[http://www.chesscomputeruk.com/html/publication_archive.html|Publication Archive]] from [[http://www.chesscomputeruk.com/index.html|Chess Computer UK]] by [[Mike Watters]]</ref>
* [[Joe Condon]], [[Ken Thompson]] (**1982**). //Belle Chess Hardware//. [[Advances in Computer Chess 3]], reprinted (**1988**) in [[Computer Chess Compendium]]
* [[David Levy]], [[Monroe Newborn]] (**1982**). //[[http://link.springer.com/book/10.1007/978-3-642-85538-2|All About Chess and Computers]]//. 2nd edition, [[https://en.wikipedia.org/wiki/Springer_Science%2BBusiness_Media|Springer]], Postscript 1978-80 and Belle
* [[Joe Condon]], [[Ken Thompson]] (**1983**). //BELLE//. [[Chess Skill in Man and Machine]]

=Forum Posts=
* [[http://www.stmintz.com/ccc/index.php?id=71765|Bebe and Belle]] by Joshua Lee, [[CCC]], October 04, 1999 » [[Bebe]]
* [[http://www.stmintz.com/ccc/index.php?id=92614|Chip design project & another request for Belle/DT/DB info]] by [[Tom Kerrigan]], [[CCC]], January 27, 2000 » [[FPGA]], [[Deep Thought]], [[Deep Blue]]
* [[http://www.stmintz.com/ccc/index.php?id=113123|Chess 4.0 vs Belle 1973]] by Joshua Lee, [[CCC]], May 31, 2000 » [[Chess (Program)|Chess]]
* [[http://www.stmintz.com/ccc/index.php?id=189887|How high would the Rating of Belle realy be]] by Marc van Hal, [[CCC]], September 22, 2001 <ref>[[http://www.chessgames.com/perl/chessgame?gid=1513558|Jan Hein Donner vs Belle (Computer) (1982)]] from [[http://www.chessgames.com/index.html|chessgames.com]]</ref> <ref>[[https://en.wikipedia.org/wiki/Jan_Hein_Donner|Jan Hein Donner from Wikipedia]]</ref>
* [[http://www.talkchess.com/forum/viewtopic.php?t=23440|Question about Program called Belle]] by O. Hall, [[CCC]], September 01, 2008

=External Links= 
* [[https://en.wikipedia.org/wiki/Belle_%28chess_machine%29|Belle (chess machine) from Wikipedia]]
* [[http://www.game-ai-forum.org/icga-tournaments/program.php?id=412|Belle's ICGA Tournaments]]
* [[http://www.computerhistory.org/chess/main.php?sec=thm-42eeabf470432&sel=thm-42f15c52333a3|Middle Game: Computer Chess Comes of Age - Brute Force vs Knowledge]] from [[The Computer History Museum]]
* [[http://www.chessgames.com/perl/chessplayer?pid=23230|The chess games of Belle (Computer)]] from [[http://www.chessgames.com/index.html|chessgames.com]]
* [[http://quux.org:70/Archives/usenet-a-news/NET.chess/82.01.07_sri-unix.458_net.chess.txt|QUEEN vs. ROOK]] by [[http://www.highbeam.com/doc/1G1-62632443.html|Warren Stenberg]] and Edware J. Conway, reprinted  from  the  January,  1979 issue of the Minnesota Chess Journal, The Usenet Oldnews Archive, Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman » [[ACM 1978]], [[Endgame Tablebases]], [[https://en.wikipedia.org/wiki/Walter_Browne|Walter Browne]]
* [[http://www.chess.com/article/view/belle-baczynskyj-and-bisguier|BELLE, Baczynskyj, and Bisguier]] by [[http://www.chess.com/members/view/spassky|Bruce Till]], August 06, 2009, [[https://en.wikipedia.org/wiki/Chess.com|Chess.com]] » [[Boris Baczynskyj]]
* [[http://www.i-programmer.info/history/people/547-ritchie-a-thompson.html?start=2|Ritchie & Thompson - Belle for Chess]] from [[http://www.i-programmer.info/|I Programmer - programming, reviews and projects]], January 26, 2011 
* [[http://www.danamackenzie.com/blog/?p=1409|My Games Against World Champions (Part 1)]] by [[Dana Mackenzie]], [[http://www.danamackenzie.com/blog/|Dana Blogs Chess]], April 24, 2012
* [[http://web.archive.org/web/20071221115817/http://classicchess.googlepages.com/Chess.htm|Classic Computer Chess - ... The programs of yesteryear]] by [[Carey Bloodworth|Carey]], hosted by the [[https://en.wikipedia.org/wiki/Internet_Archive|Internet Archive]] <ref>[[http://www.talkchess.com/forum/viewtopic.php?t=56938&start=2|Re: Old programs CHAOS and USC]] by [[Dann Corbit]], [[CCC]], July 11, 2015</ref>

=References= 
<references />
=What links here?= 
[[include page="Belle" component="backlinks" limit="100" ]]
**[[Engines|Up one Level]]**