Add uart_rxb

Once you receive a uart interrupt you can call this function to get the
received character.
This commit is contained in:
Byron Lathi
2022-03-14 16:48:24 -05:00
parent 59d2d4f601
commit 8e161664bb
3 changed files with 15 additions and 2 deletions

View File

@@ -2,12 +2,14 @@
#include <stdint.h>
#include "interrupt.h"
#include "uart.h"
// This is defined in main.c
void puts(const char* s);
void handle_irq() {
uint8_t status;
char c;
puts("Interrupt Detected!\n");
@@ -19,6 +21,10 @@ void handle_irq() {
}
if (status & UART) {
puts("UART Interrupt!\n");
c = uart_rxb();
puts("Received: ");
puts(&c);
puts("\n");
irq_set_status(status & ~UART);
}
}

View File

@@ -6,6 +6,8 @@
void uart_txb(uint8_t val);
void uart_txb_block(uint8_t val);
uint8_t uart_rxb();
uint8_t uart_status();
#endif

View File

@@ -2,8 +2,8 @@
.importzp sp, sreg
.export _uart_txb
.export _uart_txb_block
.export _uart_txb, _uart_txb_block
.export _uart_rxb
.export _uart_status
.autoimport on
@@ -23,6 +23,11 @@ _uart_txb_block:
bne @1
rts
_uart_rxb:
lda UART_RXB ; Read value
ldx #$00
rts
_uart_status:
lda UART_STATUS
ldx #$00