AnnexF/weigh_il.txt
author mjsousa
Sat, 07 May 2016 21:17:49 +0100
changeset 1010 242907849850
parent 0 fb772792efd1
permissions -rwxr-xr-x
Correctly identify errors when parsing erroneous code (make sure flex goes back to INITIAL state when code contains errors that do not allow determining whether ST or IL is being parsed)
FUNCTION WEIGH : WORD     (* BCD encoded *)
  VAR_INPUT  (* "EN" input is used to indicate "scale ready" *)
    weigh_command : BOOL;
    gross_weight : WORD ; (* BCD encoded *)
    tare_weight : INT ;
  END_VAR
(* Function Body *)
	LD	weigh_command	
	JMPC	WEIGH_NOW	
	ST	ENO	(* No weighing, 0 to "ENO" *)
	RET		
WEIGH_NOW:	LD	gross_weight	
	BCD_TO_INT		
	SUB	tare_weight	
	INT_TO_BCD		(* Return evaluated weight *)
	ST	WEIGH	

END_FUNCTION                     (* Implicit "ENO" *)