refactored a little; instructions are now defined in a separate source file; vmrun is about 8K in size (good for fitting in L1 caches)