From a6a32bbd70311b5854b2b522285f112711e85ef7 Mon Sep 17 00:00:00 2001 From: Dean Netherton Date: Mon, 16 Sep 2024 18:34:43 +1000 Subject: [PATCH] ez80: fix issue with uart baud rate translation for numbers requiring more than 16 bits (windows build issue) --- Source/HBIOS/ez80instr.inc | 2 +- Source/HBIOS/ez80uart.asm | 21 +++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Source/HBIOS/ez80instr.inc b/Source/HBIOS/ez80instr.inc index d52d744a..d2ed3154 100644 --- a/Source/HBIOS/ez80instr.inc +++ b/Source/HBIOS/ez80instr.inc @@ -102,7 +102,7 @@ #DEFINE LDBCMM.LIL(Mmn) \ #defcont \ .DB $5B - #defcont \ LD BC, Mmn + #defcont \ LD BC, Mmn & $FFFF #defcont \ .DB (Mmn >> 16) & $FF #DEFINE SBCHLBC.LIL \ diff --git a/Source/HBIOS/ez80uart.asm b/Source/HBIOS/ez80uart.asm index 6d016593..2bc68322 100644 --- a/Source/HBIOS/ez80uart.asm +++ b/Source/HBIOS/ez80uart.asm @@ -225,18 +225,15 @@ EZUART_QUERY: TRANSLATE(96000-67200, 01010b) ; BAUDRATE=76800 (BETWEEN 67201 AND 96000) TRANSLATE(134400-96000, 11001b) ; BAUDRATE=115200 (BETWEEN 96001 AND 134400) TRANSLATE(192000-134400, 01011b) ; BAUDRATE=153600 (BETWEEN 134401 AND 192000) -;;; -;;; The following are causing "Unused data in MS byte of argument." errors -;;; -;;; TRANSLATE(268800-192000, 11010b) ; BAUDRATE=230400 (BETWEEN 192001 AND 268800) -;;; TRANSLATE(384000-268800, 01100b) ; BAUDRATE=307200 (BETWEEN 268801 AND 384000) -;;; TRANSLATE(537600-384000, 11011b) ; BAUDRATE=460800 (BETWEEN 384001 AND 537600) -;;; TRANSLATE(768000-537600, 01101b) ; BAUDRATE=614400 (BETWEEN 537601 AND 768000) -;;; TRANSLATE(1075200-768000, 11100b) ; BAUDRATE=921600 (BETWEEN 768001 AND 1075200) -;;; TRANSLATE(1536000-1075200, 01110b) ; BAUDRATE=1228800 (BETWEEN 1075201 AND 1536000) -;;; TRANSLATE(2150400-1536000, 11101b) ; BAUDRATE=1843200 (BETWEEN 1536001 AND 2150400) -;;; TRANSLATE(3072000-2150400, 01111b) ; BAUDRATE=2457600 (BETWEEN 2150401 AND 3072000) -;;; TRANSLATE(5529600-3072000, 11110b) ; BAUDRATE=3686400 (BETWEEN 3072001 AND 5529600) + TRANSLATE(268800-192000, 11010b) ; BAUDRATE=230400 (BETWEEN 192001 AND 268800) + TRANSLATE(384000-268800, 01100b) ; BAUDRATE=307200 (BETWEEN 268801 AND 384000) + TRANSLATE(537600-384000, 11011b) ; BAUDRATE=460800 (BETWEEN 384001 AND 537600) + TRANSLATE(768000-537600, 01101b) ; BAUDRATE=614400 (BETWEEN 537601 AND 768000) + TRANSLATE(1075200-768000, 11100b) ; BAUDRATE=921600 (BETWEEN 768001 AND 1075200) + TRANSLATE(1536000-1075200, 01110b) ; BAUDRATE=1228800 (BETWEEN 1075201 AND 1536000) + TRANSLATE(2150400-1536000, 11101b) ; BAUDRATE=1843200 (BETWEEN 1536001 AND 2150400) + TRANSLATE(3072000-2150400, 01111b) ; BAUDRATE=2457600 (BETWEEN 2150401 AND 3072000) + TRANSLATE(5529600-3072000, 11110b) ; BAUDRATE=3686400 (BETWEEN 3072001 AND 5529600) LD D, 11111b ; BAUDRATE=7372800 (>=5529601) uart_query_end: