From 74fa3423b3feafe4877c3bfc819462e80797ed3a Mon Sep 17 00:00:00 2001
From: Bernard Blackham <dagobah@ucc.asn.au>
Date: Wed, 23 Jun 2004 15:20:57 +0000
Subject: [PATCH] Bugfixes

---
 ROM2/sci.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ROM2/sci.c b/ROM2/sci.c
index fe59f75..646e443 100644
--- a/ROM2/sci.c
+++ b/ROM2/sci.c
@@ -113,10 +113,14 @@ void serial_rti() { /* called every 6.6 ms */
 
 /* for gdb compatibility */
 int serial_readchar(u8 timeout) {
+	int ret;
 	sci_timer = timeout * 152;
 	while (sci_timer && sci_rx_buf_ptr_start == sci_rx_buf_ptr); /* spin */
 	if (sci_timer == 0) return SERIAL_TIMEOUT;
-	return sci_rx_buf[sci_rx_buf_ptr_start++];
+	ret = sci_rx_buf[sci_rx_buf_ptr_start];
+	sci_rx_buf_ptr_start++;
+	sci_rx_buf_ptr_start %= BUFFER_LEN;
+	return ret;
 }
 
 void serial_write(const char *str, int len) {
@@ -127,3 +131,4 @@ void serial_write(const char *str, int len) {
 		_io_ports[M6811_SCDR] = *c; /* send byte */
 	}
 }
+
-- 
GitLab