************************************
*	Definition des variables
************************************
LCDCMD	equ	$b5f0
LCDDAT 	equ	$b5f1
L4xC20	equ	$3c * 4x20
CLRCH	equ	$01
DCBON	equ	$0f
CINSHOF	equ	$06
SCSHR	equ	$14
CSRHOM	equ	$02

BAUD 	equ 	$102b
SCDR 	equ 	$102f
SCSR 	equ 	$102e
SCCR1 	equ 	$102c
SCCR2 	equ 	$102d

q_haut1	rmb	1	; Allocation de 1 byte pour le quartet haut
q_bas1	rmb 1	; Allocation de 1 byte pour le quartet bas

*************************************
*	Programme principal
*************************************

	org 	$00C4 ; vecteur d'interuption SCI
	jmp 	issprog
	
*************************************
*	initialisation fenetre
*************************************

**Q1 - initialaisation
		
init	ldaa	#L4xC20	; Initialisation de l'afficheur pour la taille 4x20
		staa	LCDCMD	; Envoi de la commande vers le registre de commande
		jsr		courte	; Appel du sprog de temp courte
		
		ldaa	#CLRCH	; Reinitialisation de l'afficheur
		staa	LCDCMD	; Envoi de la commande vers le registre de commande
		jsr		longue	; Appel du sprog de temp longue
		
		ldaa	#DCBON	; Activation de l'affichage, du curseur et clignotement
		staa	LCDCMD	; Envoi de la commande vers le registre de commande
		jsr		courte	; Appel du sprog de temp courte
		
		ldaa	#CINSHOF ; Desactivation d'incrementation et deplacement
		staa	LCDCMD	 ; Envoi de la commande vers le registre de commande
		jsr		courte	 ; Appel du sprog de temp courte
		
		ldaa	#SCSHR	; Sens de l'ecriture -> droite
		staa	LCDCMD	; Envoi de la commande vers le registre de commande
		jsr		courte	; Appel du sprog de temp courte
		
		ldaa	#CSRHOM	; Positionnement initial du curseur
		staa	LCDCMD	; Envoi de la commande vers le registre de commande
		jsr		longue	; Appel du sprog de temp longue

************************
*  saisie de la lettre
************************



	org 	$2200

	
	sei

	clr 	SCCR1 ; 8 bits données + 1 bit de start + 1 stop
	clr 	SCSR

	ldaa 	#$30
	staa 	BAUD ; réglage de la vitesse

	ldaa 	#$2C
	staa 	SCCR2 ; interuption autorisée par le bit RDRF (RDRF =1) - activation I/O

	clr 	$2000
	cli

loop 	bra 	loop







************************************
*	sous programme d'interuption
************************************
issprog clr 	SCSR
	ldab 	SCDR 	
	stab 	$2000  ; stocke SCDR (valeur entrée) à l@ $2000
	stab	LCDDAT	; Envoit de la valeur de A a l'afficheur

	rti
	
	
************************************
*	Temporisation longue
************************************
longue		ldx	#50000	; Mise de la valeur 50000 dans X
loop_l		dex		; On decremente X
		bne	loop_l	; On reboucle a loop_l dans que l'operation != 0
		rts		; retour de sous-routine
************************************


************************************
*	Temporisation courte
************************************
courte		ldx	#1000	; Mise de la valeur 1000 dans X
loop_c		dex		; On decremente X
		bne loop_c	; On reboucle a loop_c dans que l'operation != 0
		rts		; retour de sous-routine
************************************