; PROGRAMA DEMOSTRATIVO DEL MANEJO DE TABLAS DE DATOS
; TRANSFIERE EL CONTENIDO DE LA TABLA EN 16 LOCALIDADES
; EN EL 18F2550, EL CONTADOR DEL PROGRAMA PC DIRECCIONA BYTES 
; Y NO PALABRAS EN LA MEMORIA DE CÓDIGO Y POR TANTO
; AVANZA 2 UNIDADES PC+2 CADA INTRUCCION (16 BITS)  
; 60H..6FH HACIA LOCALIDADES EN MEMORIA DE DATOS, 60H..6FH
; PARA OBSERVAR EN EL SIMULADOR DE MPLAB
; PRIMERO ENSAMBLE EL PROGRAMA, LUEGO 
; "VIEW" PROGRAM MEMORY PARA VER LOS DATOS EN MEMORIA
; DE CODIGO. A CONTINUACION, SIMULE EL PROGRAMA CON "ANIMATE"
; OBSERVANDO LA MEMORIA DE DATOS 60H..6FH

	include	  <p18F2550.inc>
	include	  "KEYBOLT.inc"

CONT EQU 70H
	
		ORG 	0					
INICIO	PUERTOS				;MACRO PARA INICIALIZAR LOS PUERTOS DE 18F2550

begin: 	clrf	PCLATH
		lfsr	0,0x60
		clrf	CONT
loop:	movf	CONT,w
		call	tabla
		movwf	INDF0
		incf	FSR0L,f
		incf	CONT
		incf	CONT		
		movf	CONT,w		;prepara acceso a PC+2 en tabla
		sublw	20H
		btfss	STATUS,Z
		goto	loop		;a malla	
		sleep				;fin
		
		ORG 60H	
tabla:	addwf	PCL,f		;pc+2
		retlw	'0'		
		retlw	'1'		
		retlw	'2'
		retlw	'3'
		retlw	'4'		
		retlw	'5'		
		retlw	'6'
		retlw	'7'
		retlw	'8'		
		retlw	'9'		
		retlw	'A'
		retlw	'B'
		retlw	'C'		
		retlw	'D'		
		retlw	'E'
		retlw	'F'

		end

			
			
		
		
		END

