Full ZX-81 Chess in 1K (1983)
archive.org
archive.org
Those Halcyon days of typing in lines and lines of code...
Only to be met with a sudden crash due to the 16K (16K!) RAM pack ever so slightly shifting, interrupting the flow of electrons on the edge connector on one or more signal lines ;)
Good times!
1k of RAM, up to 768 bytes of used for character display memory (less of you only use the top, left corner of the screen). About 130 bytes for system variables.
The CPU was responsible for generating the TV signal, so you got it only in the vertical blanks when no signal needed to be generated. Hence you had a "fast" move where you only see noise on the screen.
I loved that thing.
Same here, though upgraded mine from an '80 [0] Occasionally I get the urge to fire it up and type in some code, but it gets hot and starts to smell.
Syntax checking as you type :)
miss those days...
Your goal is to implement full Chess in the smallest number of bytes. However, you're allowed to design your own instruction set to accomplish this. The instruction set must be Turing complete.
Given this, what's the smallest Chess program possible? Is there an ultimate limit, information-theory style?
I know there's no easy answer or perhaps no answer at all. Maybe it's an NP-complete problem whose best answer can only be approximated or brute forced. But it's still really interesting to think like, if you toss aside all of the normal constraints, what's the smallest chess program that anyone can make?
Bonus points if you dive into experimental instruction sets like imprecise computing or quantum computing, though I doubt those things could help implement a precise rigid ruleset like Chess.
I'm sorry, I know this is a bit of a "snarky" type reply, but I don't really understand what you are driving at with your question. Without more constraints on the question, there's not really any point in searching for the minimum solution.
Any ideas about how to better specify the rules of the competition to exclude degenerate answers like the one you provided? The goal is to answer the interesting question. You'd never find such a high-level instruction in a real instruction set, because it wouldn't be useful except to play Chess.
I'd add a rule like "The goal of your instruction set is to be useful while still implementing Chess," but then that would exclude answers which give interesting instruction sets that aren't necessarily useful except in implementing Chess in the fewest possible bytes.
Thanks for pointing out the flaws in my ruleset. I've been toying around with creating a blogpost about this, so having a bulletproof ruleset or at least one that isn't so easily sidestepped would be great.
Incorrect. A single instruction can be Turing complete.
http://en.wikipedia.org/wiki/One_instruction_set_computer
Though the relevant question is whether universal computation can be built on the back of an instruction which plays chess rather than one of the more typical bases for a OISC.
What are some typical bases for OSIC?
Well you can have two instructions: SUBLEQ and CHESS. Then it's Turing-complete, and there's a one-bit program that plays chess.
I recall buying that and £9.95 was a lot of money. It was one of the most disappointing purchases of my life. The games were TERRIBLE. Absolutely awful, even by 1983 standards. They were basically of the standard of the games that you could type in for free from magazines such as Your Computer and Sinclair User.
You owe me a tenner, Cascade Software!