INA	EQU 0xFFA0	//port d entree
OUTA 	EQU 0xFFA2	//port de sortie
LOADA	EQU 0xFF00	//debut des donnees
SEUIL	EQU 0x0003	// CONSTANTE Fonction dist()
SP	EQU R15		// Registre Pointeur de stack
STACKA	EQU 0x1000	// Haut de la pile
	ORG	LOADA
	START	LOADA
	

debut	LDW SP,#STACKA
loop	LDW R1,#INA      // }
	LDW R2,(R1)      // } equivalent a LDW R2,@INA
	STW R2,-(SP)
	JSR @dista
	LDW R2,(SP)+
	LDW R1,#OUTA
	STW R0,(R1)
	BMP debut-$-2


// Fonction dist(R2) = |x-SEUIL|/2
dista	LDW R1,#SEUIL
	SUB R2,R1,R0
	STW R1,-(SP)
	JSR @absa
	LDW R1,(SP)+
posit	SRA R0,R0
	RTS

// Fonction valeur absolue de R0
absa	STW R1, #0
	CMP R0, R1
	JGE #retabsa
	NEG R0, R0
retabsa	RTS
