15/06/2019: v0.811, 352 Bytes

  • Several coding optimizations, main one based on Arkannoyed's idea.

  • New section (The dissection) explaining all the concepts used and the program code.

ChesSkelet is a micro chess game for ZX Spectrum, maybe the smallest ever. I first thought of ChesSkelet after reading about David Horne's ZX81 1K Chess from 1982 and noticed how amazing it was. 400+ versions later, I managed to produce this rudimentary chess game for the ZX Spectrum. Do not expect any challenges from it, a 6 year kid could smash it.

Imagine how small ChesSkelet is: the paragraph above alone needs the same RAM to be stored as the whole ChesSkelet program. As the program shrinks it's becoming a challenge to adjust the paragraph. :-)

Read before playing:

  • Type your move in coordinate format (i.e. e2e4)
  • Small and Mid versions do not check human moves, so your pieces may just disappear if the move is not right.
  • Check mate ends the game with message "C - Nonsense in BASIC".
  • If you find any bug (not unlikely) or have any comment, please tweet it to reeagbo.

Site contents

The story: where this project comes from and similar developments (not available yet).

The dissection: full program analysis, much bigger than the program itself.

Assembly code: latest version code listing and versions history.

Snapshots: ZX Spectrum snapshots in case you want to run it in your emulator.

Thanks to @Mr.Blinky, @Johan Koelman and @Arkannoyed.

Software used: ZXSpin, Notepad++ and JSSpeccy.

Alex Garcia (@reeagbo), 2018-2019.

Code size Supported features
Minimal features and minimal appearance
  • Schematic board
  • White move input
  • Computer moves black pieces with exceptions (castling, en-passant capture, promotions,pwn2 squares forward)
  • 1.5 ply search
Full features and minimal appearance
  • All of the above
  • White move check
  • Castling allowed (no validity checks implemented)
  • Skip move/Switch sides
  • Pawn promotion
  • 2-rank pawn move
Full features and full appearance
  • All of the above
  • Checkered board
  • Numbered columns and ranks
  • Input prompt
Unsupported features
  • Under-promotion
  • En-passant capture
  • Complex rules (stalemate, repetitions draw, 50 moves rule, time control, etc...)
  • Replay