;       gpasm -a inhx8m trans.asm
;       Testprogram
;	Skifter Result ud på port 0 med port 1 som klok
;       DB Henrik Kressner

;       gpasm -a inhx8m trans.asm

processor       10F322
include         p10f322.inc

                __CONFIG _WDTE_OFF & _FOSC_INTOSC

Result  org     0x40
i	org	0x41
        org     H'00'  ; Reset vector
        goto    setup

        org     0x05
setup   movlw   B'00000100'
        movwf   ANSELA          ; Port 2 er A/D
        movlw   B'00000110'	; Port 0 er out, resten er ind.
        movwf   TRISA
	; Init ADC
	movlw	B'10101001'	; Fosc/16, port 2 analog in,  GO/Done off and ADON enable
	call	delay
	movwf	ADCON		; After this, wait before enable Go/Done
	call	delay		; Delay until Go/Done steady
	call	delay
	call	delay

run	bsf	ADCON,GO_NOT_DONE       ; Start A/D convert

	btfsc	ADCON,GO_NOT_DONE       ; Wait until result ready
	goto	$-1
	movfw	ADRES           ; Get result -> register W

;	Naeste line er test
	movlw	B'10101010'	; Test (Udkommenter for drift)
	movwf	Result
	call	Tx
;	goto	run


delay	clrf	i
	decfsz	i,1
	goto    $-1
	return

Tx	nop	
l1	btfsc	PORTA,RA1	; Vent til RA1 er low
	goto    $-1
	btfss	PORTA,RA1	; Vent til RA1 er high
	goto	$-1

	rrf	Result,1

 	btfss	STATUS,C
	goto	OFF
	goto	ON

OFF	bcf	PORTA,RA0
	goto	l1

ON	bsf     PORTA,RA0
        goto    l1

	end
