Hand-Optimizing VLIW Assembly Language as a Game

HOVALAAG is a small, free, lightweight Zachlike for Windows
(and Linux and Mac using WINE). You edit your assembly-language
programs using your editor of choice, run your program through
the command-line game, and debug it by browsing HTML-formatted
execution traces in a web browser.

Download HOVALAAG 1.08 for Windows Windows 32-bit command-line program in a .zip file. Works in Linux and Mac under WINE.
Features: - retro 12-bit VLIW CPU with 9 independently-controlled units - 13 programming problems - Friend leaderboards (documentation)
Changes: v1.08 fix bug in '-v' option which displayed leaderboard incorrectly v1.07 add leaderboard support v1.06 fix bug in log.html dissassembly introduced in 1.04 or 1.05 v1.05 error if characters after end of constant, e.g. "0x0" v1.04 don't error on hex constants from $800..$FFF v1.03 -m option to terminate long-running execution v1.02 fix typo in PARITY description, typo in sample.vasm v1.01 update in-game documentation re: termination, and document MAX/MIN OFFSET buffering on IN2/OUT2
Miscellany: vim syntax hilighting Don't have any friends playing that you can compare your scores to? Here are some scores you can compare to (I didn't put much time into size-optimized): Best times Best sizes.
THE PROCESSOR The game uses a fictional retro Very Long Instruction Word (VLIW) processor, inspired in part by the MOS Technology 6502 (1970) and the J1 Forth CPU (2010). The processor features 5 12-bit data registers, a 1-bit flag, and an 8-bit program counter, each of which can be independently controlled. In addition there is a 12-bit ALU which can perform one of 13 operations each cycle. Between a counted loop instruction and the ability to branch in every instruction, there is little need to unroll loops, making programs smaller. A write buffer register increases flexibility, and it is possible to perform both input and output in the same cycle. Documentation of the processor. THE ENVIRONMENT Programs are written in an abstract environment in which 12-bit inputs are received on one of two input streams, and 12-bit outputs are written to one of two output streams. No memory or long-term storage is available to the processor.
Another fine product of Silver Spaceship Software. Inspired by Zachtronics TIS-100. Design consultation and alpha testing by: Fabian Giesen (@rygorous) and Per Vognesen (@pervognsen). Beta testers (changes were made post beta-testing, so no blame): Mike Acton, Alex Austin, Won Chun, Jason Reed, Jon Olick, Jeff Roberts, Cord Stratton, @clifton_r, @tinyconstruct