Here is my incomplete-but-will-not-complete SizeHack entry. Story: you are an integer, floating around in the middle of RAM. 7-bit Strings are invading your territory and you must shoot them and blow them up into little characters and protect your memory segment. Keys: Left Right Up Down Space Esc News flash: the gods of collision detection are sick today (they have headaches after cleaning their houses) so nothing actually touches anything else or dies :-( The idea was to find a way to circumvent the SizeHack 2000 rules. I didn't really want to -- I've just been writing toy interpreters and things the last few days and didn't feel like finishing my original to-be entry (which I'll pick up some time later) By implementing a small virtual machine in C, and putting in a few support routines, you could theoretically write a massive game and compile it into tiny bytecodes, which would technically not be object code, so would be okay as "data" for your game. Tada, DOOM in 10K! Unfortunately it's hard to fit a really good VM into < 10K, and it's even harder to write a compiler for a high-level language in half a day, so you'd end up with what I have -- an unfortunate accident such as int Forthish. int Forthish is the "language" implemented (motto: "Everything is an int!"). It's based on Forth (i.e. stack based and postfix notation) and borrows a few words but other than that it's really just assembly by another name. Real Forth gurus would probably kill me if they saw this (I've never used a real Forth system :-) Oh yeah, it's sizeof(int) dependant, so hopefully in twenty years no one will be able to run this crap! "Fun" stuff: If you actually take a look at the code, watch out for: [ array elem-a elem-b ] which is really syntactical sugar for: array @ elem-a @ @@ elem-b @ @@ There is no sugar for the assignment equivalent, so you MUST write: x array @ elem-a @ @@ elem-b @ !! Peter --------------------------------------- SizeHack counting, by the official count.c vm.c 2864 vm.h 209 bytecode.h 381 game.c 2616 game.ifc 2267 Total: 8337 bytes The raw size of game.if itself is 9627 bytes of fairly compact code, and the compiler is 3600 bytes. So, did I cheat? (... or rather, was it worth it?)