;	gpasm -a inhx8m array1.asm
;	Demomnstrerer brug af tabel i RAM
;	DB Henrik Kressner


processor	10F322
include		p10f322.inc

 		__CONFIG _WDTE_OFF & _FOSC_INTOSC

; Disse data komer i SRAM
cblock 0x40		
	a,b,c,d,e,f,h	; Dette er arrayet !
	Result
	i,j		; j er pointer
	RegNr
endc
	org	H'00'  ; Reset vector
	goto	setup

	org	0x05
setup	movlw   B'01010000'
        movwf   OSCCON		; Clk Frq = 4 Mhz
	clrf	ANSELA		; Port 0, 1 og 2 digital I/O
	movlw	B'00000110'
	movwf	TRISA		; Port 0 er output, 1 og 2 er input
	clrf	PORTA

	movlw	0x40		; Startaddr på "array"
	movwf	j		; Initialiser pointer
insert	movlw	'H'
	movwf	j		; a ligger på 0x40
	incf	j,1

	movlw	'a'
	movwf	j
	incf	j,1

        movlw   'l'
        movwf   j
        incf    j,1

        movlw   'x'
        movwf   j
        incf    j,1

        movlw   'o'
        movwf   j
        incf    j,1



start	movlw	0x40
	movwf	FSR

	movfw	INDF
	movwf	Result
	call	Tx
	incf	FSR,1

        movfw   INDF
        movwf   Result
        call    Tx
        incf    FSR,1

        movfw   INDF
        movwf   Result
        call    Tx
        incf    FSR,1

        movfw   INDF
        movwf   Result
        call    Tx
        incf    FSR,1

        movfw   INDF
        movwf   Result
        call    Tx
        incf    FSR,1

	goto	start

Tx	movlw	0x9		; 8 Bit
	movwf	i
send	decfsz	i,1             ; Har vi talt til 8 ?
	goto	cont
	return
cont	btfsc	PORTA, RA1      ; Vent på RPi
        goto	$-1
	btfss	PORTA, RA1	; RPi vil have en bit
	goto    $-1
	rlf     Result,1
	btfsc	STATUS,C	; Tjek carry
	goto	on
	goto	off

on      bsf     PORTA,RA0       ; Port 0 ON
        goto    send

off     bcf     PORTA,RA0       ; Port 0 OFF
        goto    send


	end
