keyspan_pda.S has an out-of-range decimal constant that looks like it was really meant to be a binary constant. Comparing with the binary, it appears that as31 used to treat this as 0, so change the source to use 0 and add a comment on this. Signed-off-by: Ben Hutchings --- keyspan_pda/keyspan_pda.S | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/keyspan_pda/keyspan_pda.S b/keyspan_pda/keyspan_pda.S index 418fe69..602bcce 100644 --- a/keyspan_pda/keyspan_pda.S +++ b/keyspan_pda/keyspan_pda.S @@ -285,7 +285,12 @@ clear_rx_ring_loop: mov dptr,OUTC movx @dptr, a ;; setup the serial port. 9600 8N1. - mov a,#01010011 ; mode 1, enable rx, clear int + ;; Original source had: + ;;mov a,#01010011 ; mode 1, enable rx, clear int + ;; This was presumably meant to be a binary constant, but it's + ;; really decimal and out of 8-bit range. as31 used to treat + ;; it as 0 and that seems to have worked, so carry on with 0. + mov a,#0 mov SCON, a ;; using timer2, in 16-bit baud-rate-generator mode ;; (xtal 12MHz, internal fosc 24MHz) -- 1.7.7.3