Specifications
83
***************INITIALISE PORT A****************************************************
INITPA MOVB #%11111000,DDRA ;SET PORT A BITS FOR OUT AND IN 0 =
INPUT
MOVB #%00000000,PORTA ;ENSURE PORT A INPUTS ARE ZEROES
WAITING FOR ACITVE HIGH
RTS
**************INITIALISE PORT G FOR KEY WAKE UP**********************************
INITKWG MOVB #%11111100,DDRG ;BITS 0-4 AS INPUT
MOVB #%00000011,KWIFG ;CLEAR WAKE UP FLAG 0-4
MOVB #%00000011,KWIEG ;ENABLE KEY WAKE UP INTERRUPTS
MOVB #%00000000,PUCR ;SET PORT G, H IRQ AND XIRQ FOR PULL
DOWN (DISAHLE ALL PULL UPS(ALL
0'S))
LDAA #$06 ;JMP COMMAND OPCODE
STAA $07B8 ;RTI PSEUDO VECTOR
LDD #KWGISR ;ADDRESS TO JUMP TO, KWG ISR
STD $07B9
CLI ;CLEAR INTERUPT MASK
RTS
;****************SERIAL PORT******************************************************
; TO USE THE SERIAL PORT, SET BAUD RATE TO 19200
; BAUD. THE VALUE HERE IS A 16 BIT DIVISOR.
INITSC0 LDD #26 ; VALUE FROM BAUD RATE
GENERATION TABLE
STD SC0BDH
LDAA #$0C ; ENABLE TRANSCEIVER
STAA SC0CR2
LDAA SC0DRL ;CLEAR FLAGS
RTS
;***************SERIAL PORT WRITING COMMANDS***********************************
; SEND A CARRIAGE RETURN AND LINE FEED TO SCREEN
NEWLINE LDAA #$0D ;LOAD CARRIAGE RETURN FOR ASCII
JSR TXBYTE ;TRANSMIT TO SCREEN
LDAA #$0A ;LOAD LINE FEED ASCII
JSR TXBYTE ;TRANSMIT TO SCREEN
RTS ;RETURN










