
	;**********************************************************************************
	;Rutna que graba en la memoria flash el numero de tarjeta valida, con la hora y 
	;si fue entrada o salida (depende de que chip lo registra) (1=entrada 0=salida)
	;
	;La direccion de memoria donde se comienza a grabar se encuentra en la misma flash
	;en la posicion 
	;
	;         000c -> addrh
	;         000d -> addrl
	;
	;Luego se realiza el registro y despues hay que actualizar las posicione 000c y 000d
	;addrh y addrl para el proximo registro
	;
	;**********************************************************************************


registro
	;----------------	
		
	movlw	0x0		;leo la posicion donde puedo grabar el registro
	movwf	addrh		;
				;
	movlw	0xc		;
	movwf	addrl		;
				;
	call	read		;
				;
	call	read3		;
	movf	dato,0		;	
	movwf	addrh		;
	movwf	addrhn		;
				;
	call	ack		;
				;
	call	read3		;
	movf	dato,0		;
	movwf	addrl		;
	movwf	addrln		;
				;
	call	rdstop		;


	;----------------

	call	write		;comienzo a grabar el registro con los datos de tarjeta valida
				;
	movf	codigo1,0	;
	movwf	dato		;
	call	write3		;
				;		Rutina write ingresa codigo y address a la 
	movf	codigo2,0	;			memoria
	movwf	dato		;	
	call	write3		;
				;
	movf	codigo3,0	;
	movwf	dato		;
	call	write3		;
				;		Rutina write3 graba el dato
	movf	codigo4,0	;
	movwf	dato		;
	call	write3		;
				;		rutina wrstop pone condicion de stop
	movf	codigo5,0	;
	movwf	dato		;	
	call	write3		;
				;
	movf	codigo6,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	codigo7,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	codigo8,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	codigo9,0	;
	movwf	dato		;
	call	write3		;
				;	
	movf	codig10,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	codig11,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	codig12,0	;
	movwf	dato		;
	call	write3		;


	;--------------------

	movf	fecha2,0	;grabo hora de registro
	movwf	dato		;
	call	write3		;
				;
	movf	fecha3,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	fecha4,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	fecha5,0	;
	movwf	dato		;
	call	write3		;
				;
	movf	fecha6,0	;
	movwf	dato		;
	call	write3		;

	;-------------------

				;grabo si es entrada o salida
	movlw	1		;1=entrada 0=salida	
	movwf	dato		;
	call	write3		;
				
	call	wrstop		;fin de grabado de registro
	
	;-------------------

	movlw	0x0		;leo la posicion 000c porque sino no podia escribir
	movwf	addrh		;
	
	movlw	0x0c
	movwf	addrl

	call	read
	call	read3
	call	ack
	call	rdstop

	;-------------------

	movlw	0x12		;escribo la nueva posicion de memoria para la proxima fichada
	addwf	addrln,1	;incrementando el address en 18 bytes
	btfss	status,0	;
	goto	regi1		;
				;
	incf	addrhn,1	;	

regi1	call	write
	
	movf	addrhn,0
	movwf	dato
	call	write3
	
	movf	addrln,0
	movwf	dato
	call	write3
	
	call	wrstop


	return