anchor.diff:     ?assertEqual(X,CPU#cpu.rs),
      assert(T,CPU);
   
  -assert([{ds,X}|T],CPU) ->
  -   ?assertEqual(X,CPU#cpu.ds),
  -   assert(T,CPU);
  -
  -assert([{dsx,{SP,Stack}}|T],CPU) ->
  +assert([{ds,{SP,Stack}}|T],CPU) ->
      ?assertEqual({SP,array:from_list(Stack)},CPU#cpu.ds),
      assert(T,CPU);
   
  
positive.code:    plus_test_impl(16#0200,16#3ffff,16#00001,1,1).
  
  plus_test_impl(P,T,S,C,R) ->
     DS  = [3,4,5,6,7,8,9,10],
     DSX = [4,5,6,7,8,9,10,3],
     {ok,CPU} = exec_impl(?PLUS,#cpu{ p=P,
                                      t=T,
                                      s=S,
                                      ds=DS,
                                      carry=C }),
     assert([{t,R},{s,3},{ds,DSX}],CPU).
  
  dup_test() ->
     {ok,CPU} = exec_impl(?DUP,#cpu{t=1,
                                    s=2,
                                    ds={0,array:from_list([3,4,5,6,7,8,9,10])}}),
  
     assert([{t,1},{s,1},{dsx,{7,[3,4,5,6,7,8,9,2]}}],CPU).
  
  assert ([],_CPU) ->
     ok;
  
negative.code:                  (S + T) band 16#3ffff
               end,
  
     CPUX = pop(ds,CPU),
     CPUY = CPUX#cpu{ t  = R
                    },
  
     trace(?PLUS,CPUY),     
     {ok,CPUY};
  
  % 16#18  dup
  exec_impl(?DUP,CPU) ->
  