anchor.diff:  compile(ModuleName, Input) ->
       Prog0 = #j1prog{mod = ModuleName},
       Prog1 = compile2(Prog0, Input),
  -    Result = lists:reverse(Prog1#j1prog.output),
  +    Result0 = lists:reverse(Prog1#j1prog.output),
  +    Result = apply_patches(Result0, Prog1#j1prog.patch_table, []),
       io:format("~s~n~s~n",
  -              [color:redb("J1C PASS 1"), format_j1c_pass1(Result, [])]),
  +              [color:redb("J1C PASS 1"),
  +               format_j1c_pass1(Prog1, 0, Result, [])]),
       Result.
   
   
  
positive.code:     {Prog1, LIndex} = literal_index_or_create(Prog0, {M, F, A}),
      emit(Prog1, <<1:1, LIndex:?J1_LITERAL_BITS>>).
  
  format_j1c_pass1([], Accum) -> lists:reverse(Accum);
  format_j1c_pass1([H | Tail], Accum) ->
      format_j1c_pass1(Tail, [format_j1c_op(H) | Accum]).
  
  format_j1c_op(#j1patch{op= <<Op:8, _:8>>, id=Id}) ->
      io_lib:format(" Patch(~2.16.0B #~p) ", [Op, Id]);
  format_j1c_op(<<Cmd:?J1BITS>>) ->
      io_lib:format("~4.16.0B ", [Cmd]).
  
negative.code:                  pc=PC + 1};
  emit(Prog0 = #j1prog{output=Out, pc=PC}, IOList) ->
      Prog0#j1prog{output=[IOList | Out],
                   pc=PC + 1}.
  
  -spec emit_alu(j1prog(), alu() | [alu()]) -> j1prog().
  emit_alu(Prog = #j1prog{}, ALUList) when is_list(ALUList) ->
  