anchor.diff:             {stop,PID}
       end.
   
  +% INCREMENT
  +
  +inc(N) when N < 16#80  ->  (N + 1) rem 16#80;
  +inc(N) when N < 16#100 -> ((N + 1) rem 16#80) + 16#80;
  +inc(N) -> N.
  +
   % PUSH
   
   push(ds,CPU) ->
  
positive.code:                      [{ram,15,678},{a,15},{t,678},{s,1},{ds,7,[3,4,5,6,7,8,9,2]}]}
                     ]).
  
  -define(TEST_STOREP,[{?STOREP,
                        [{ram,0,0},{p,0},{t,1},{s,2},{ds,0,[3,4,5,6,7,8,9,10]}],
                        [{ram,0,1},{p,1},{t,2},{s,3},{ds,1,[3,4,5,6,7,8,9,10]}]}
                      ]).
  
  -define(TEST_STORE_PLUS,[{?STORE_PLUS,
                           [{ram,0,0},{a,0},{t,1},{s,2},{ds,0,[3,4,5,6,7,8,9,10]}],
                           [{ram,0,1},{a,1},{t,2},{s,3},{ds,1,[3,4,5,6,7,8,9,10]}]}
  
negative.code: test_init(CPU,[{i,X}     |T]) -> test_init(CPU#cpu{i=X},T);
  test_init(CPU,[{ds,X,Y}  |T]) -> test_init(CPU#cpu{ds={X,array:from_list(Y)}},T);
  test_init(CPU,[{rs,X,Y}  |T]) -> test_init(CPU#cpu{rs={X,array:from_list(Y)}},T);
  test_init(CPU,[{ram,A,W} |T]) -> test_init(CPU#cpu{ram=array:set(A,W,CPU#cpu.ram)},T);
  test_init(CPU,[{rom,A,W} |T]) -> test_init(CPU#cpu{rom=array:set(A,W,CPU#cpu.rom)},T).
  
  test_verify(Expected,Actual) ->
  %  ?debugFmt("EXPECTED: ~p",[Expected#cpu.p]),
  %  ?debugFmt("ACTUAL:   ~p",[Actual#cpu.p]),
     ?assertEqual(Expected,Actual).
  
  assert ([],_CPU) ->
  