With modifiers you modify the outputted bytes from a section of the code. E.g the following will send the memory block starting at $8080 the the modifier called 'MyModifier' and the returned bytes will be used instead:
.modify MyModifier(27) { *=$8080 main: inc $d020 jmp main }
You implement a modifier by implementing the following interface. The 'name' in the definition is the modifier name ('MyModifier' in the above example.):
public interface IModifier extends IPlugin { ModifierDefinition getDefinition(); byte[] execute(List<IMemoryBlock> memoryBlocks, IValue[] parameters, IEngine engine); } public class ModifierDefinition { private String name; // Getters and setters }
Also see the chapter on modifiers.