view Examples/unifier/upm @ 0:cfb7c6b24319

Initial revision
author kono
date Thu, 30 Aug 2007 14:57:44 +0900
parents
children
line wrap: on
line source

:-op(400,xfy,'..').


'$function' X..tag  =  Tag	:- X = (Data,Tag,Map).
'$function' X..data =  Data	:- X = (Data,Tag,Map).
'$function' X..map  =  Map	:- X = (Data,Tag,Map).


'$define'	(store(ADR,Data,Bus):-
	Address <-- ADR,Bus := ADR..map ,H,
	*memory(Address) <= Data,Bus <= free)
'$clause' (H:-
	if *d_bus = *g_bus ,Bus = d
	    then (true && H)).

'$define'	(fetch(ADR,Data,Bus):-
	Address<--ADR,Bus := ADR..map,H,
	Data <= *memory(Address),Bus <= free)
'$clause' (H:-
	if *d_bus = *g_bus ,Bus = d
	    then (true && H)).