;	Sender 1 char kontinuaert Asynk til Tx.
;	Testet igen 14 maj 2026
;	HUSK at disable hardware handshake hos modtager.
;	DB Henrik Kressner

;	gpasm -a inhx32 seriel2.asm

	processor       16f1509
	include         p16f1509.inc

errorlevel -302

CONFIG  FOSC    =   INTOSC
CONFIG  WDTE    =   OFF
CONFIG  LVP		=   ON


	ORG	0x0000
	goto	init

		org	05
init:	movlb	1               ; Bank 1
		movlw   B'01111011'     ; 16 Mhz, Intern osc.
		movwf   OSCCON
		clrf	TRISB		; Hele B er digital
		movlb	3			; Bank 3
		clrf	ANSELB		; Port B er Digital
		; Set baudrate for 115.200 ->
		; BRG16 = 1  :  BRGH = 1  :  SPBRG = 34
		movlw	B'00001000'	; BAUDCON er i bank 3
		movwf	BAUDCON		; BRG16 = 1
		movlw	D'34'
		movwf	SPBRGL
		bsf	TXSTA, BRGH		; High Baud Rate Select bit
		bsf	TXSTA, TXEN		; Transmit enabled
		bcf	TXSTA, SYNC		; Async
		bsf	RCSTA, SPEN		; Serial Port Enable bit
		bsf	RCSTA, CREN		; Enable Rx

run:	movlw	'A'
		call	Tx
		call	wait
		goto	run

Tx:		movlb	3
		btfss	TXSTA, TRMT	; Er der plads ?
		goto	$-1
		movwf	TXREG
		return

wait:
	banksel	TMR0
	clrf	TMR0
	banksel OPTION_REG
	movlw	B'00000111'	; Prescaler
	movwf	OPTION_REG
	bcf     INTCON, TMR0IF	; Start timer
l1:	btfss   INTCON, TMR0IF	; Timer overflow
	goto	l1
	return


	end
