From e7cc7906c516f6bda41913b6b43cc2b7d83e362e Mon Sep 17 00:00:00 2001 From: b1ackmai1er <39449559+b1ackmai1er@users.noreply.github.com> Date: Fri, 3 Aug 2018 22:40:07 +0800 Subject: [PATCH] Fixes to port address and cleanups --- Source/HBIOS/sio.asm | 492 +++++-------------------------------------- 1 file changed, 53 insertions(+), 439 deletions(-) diff --git a/Source/HBIOS/sio.asm b/Source/HBIOS/sio.asm index ade6e588..c30ab09f 100644 --- a/Source/HBIOS/sio.asm +++ b/Source/HBIOS/sio.asm @@ -10,415 +10,39 @@ ; F E D C B A 9 8 7 6 5 4 3 2 1 0 ; -- MSB (D REGISTER) -- -- LSB (E REGISTER) -- ; -; +; FOR THE ECB-ZILOG-PERIPHERALS BOARD, INFORMATION ON JUMPER SETTINGS +; AND BAUD RATES CAN BE FOUND HERE: +; https://www.retrobrewcomputers.org/doku.php?id=boards:ecb:zilog-peripherals:clock-divider +; +; SIO PORT A (COM1:) and SIO PORT B (COM2:) ARE MAPPED TO DEVICE UC1: AND UL1: IN CP/M. +; SIO_NONE .EQU 0 SIO_SIO .EQU 1 ; #IF (SIOMODE == SIOMODE_RC) -SIOA_CMD .EQU SIOBASE + $00 ; PS -SIOA_DAT .EQU SIOBASE + $01 ; PS -SIOB_CMD .EQU SIOBASE + $02 ; PS -SIOB_DAT .EQU SIOBASE + $03 ; PS +SIOA_CMD .EQU SIOBASE + $00 +SIOA_DAT .EQU SIOBASE + $01 +SIOB_CMD .EQU SIOBASE + $02 +SIOB_DAT .EQU SIOBASE + $03 #ENDIF ; #IF (SIOMODE == SIOMODE_SMB) -SIOA_CMD .EQU SIOBASE + $02 ; PS -SIOA_DAT .EQU SIOBASE + $00 ; PS -SIOB_CMD .EQU SIOBASE + $03 ; PS -SIOB_WR4 .EQU SIOBASE + $01 ; PS +SIOA_CMD .EQU SIOBASE + $02 +SIOA_DAT .EQU SIOBASE + $00 +SIOB_CMD .EQU SIOBASE + $03 +SIOB_DAT .EQU SIOBASE + $01 #ENDIF ; -#IF (SIOMODE == SIOMODE_ZP) ; PS -SIOA_CMD .EQU SIOBASE + $06 ; PS -SIOA_DAT .EQU SIOBASE + $04 ; PS -SIOB_CMD .EQU SIOBASE + $07 ; PS -SIOB_DAT .EQU SIOBASE + $05 ; PS -#ENDIF ; PS -; -#IF (DEFSIOCLK/DEFSIODIV/1 == 75) -SIOBAUD1 .EQU 0 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 150) -SIOBAUD1 .EQU 1 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 300) -SIOBAUD1 .EQU 2 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 600) -SIOBAUD1 .EQU 3 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 1200) -SIOBAUD1 .EQU 4 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 2400) -SIOBAUD1 .EQU 5 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 4800) -SIOBAUD1 .EQU 6 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 9600) -SIOBAUD1 .EQU 7 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 19200) -SIOBAUD1 .EQU 8 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 38400) -SIOBAUD1 .EQU 9 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 76800) -SIOBAUD1 .EQU 10 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 153600) -SIOBAUD1 .EQU 11 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 307200) -SIOBAUD1 .EQU 12 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 614400) -SIOBAUD1 .EQU 13 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 ==1228800) -SIOBAUD1 .EQU 14 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 ==2457600) -SIOBAUD1 .EQU 15 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 225) -SIOBAUD1 .EQU 16 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 450) -SIOBAUD1 .EQU 17 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 900) -SIOBAUD1 .EQU 18 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 1800) -SIOBAUD1 .EQU 19 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 3600) -SIOBAUD1 .EQU 20 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 7200) -SIOBAUD1 .EQU 21 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 14400) -SIOBAUD1 .EQU 22 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 28800) -SIOBAUD1 .EQU 23 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 57600) -SIOBAUD1 .EQU 24 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 115200) -SIOBAUD1 .EQU 25 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 230400) -SIOBAUD1 .EQU 26 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 == 921600) -SIOBAUD1 .EQU 28 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 ==1843200) -SIOBAUD1 .EQU 29 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 ==3686400) -SIOBAUD1 .EQU 30 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/1 ==7372800) -SIOBAUD1 .EQU 31 +#IF (SIOMODE == SIOMODE_ZP) +SIOA_CMD .EQU SIOBASE + $06 +SIOA_DAT .EQU SIOBASE + $04 +SIOB_CMD .EQU SIOBASE + $07 +SIOB_DAT .EQU SIOBASE + $05 #ENDIF ; -#IF (DEFSIOCLK/DEFSIODIV/16 == 75) -SIOBAUD2 .EQU 0 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 150) -SIOBAUD2 .EQU 1 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 300) -SIOBAUD2 .EQU 2 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 600) -SIOBAUD2 .EQU 3 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 1200) -SIOBAUD2 .EQU 4 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 2400) -SIOBAUD2 .EQU 5 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 4800) -SIOBAUD2 .EQU 6 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 9600) -SIOBAUD2 .EQU 7 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 19200) -SIOBAUD2 .EQU 8 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 38400) -SIOBAUD2 .EQU 9 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 76800) -SIOBAUD2 .EQU 10 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 153600) -SIOBAUD2 .EQU 11 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 307200) -SIOBAUD2 .EQU 12 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 614400) -SIOBAUD2 .EQU 13 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 ==1228800) -SIOBAUD2 .EQU 14 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 ==2457600) -SIOBAUD2 .EQU 15 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 225) -SIOBAUD2 .EQU 16 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 450) -SIOBAUD2 .EQU 17 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 900) -SIOBAUD2 .EQU 18 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 1800) -SIOBAUD2 .EQU 19 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 3600) -SIOBAUD2 .EQU 20 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 7200) -SIOBAUD2 .EQU 21 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 14400) -SIOBAUD2 .EQU 22 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 28800) -SIOBAUD2 .EQU 23 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 57600) -SIOBAUD2 .EQU 24 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 115200) -SIOBAUD2 .EQU 25 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 230400) -SIOBAUD2 .EQU 26 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 460800) -SIOBAUD2 .EQU 27 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 == 921600) -SIOBAUD2 .EQU 28 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 ==1843200) -SIOBAUD2 .EQU 29 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 ==3686400) -SIOBAUD2 .EQU 30 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/16 ==7372800) -SIOBAUD2 .EQU 31 -#ENDIF +; CONDITIONALS THAT DETERMINE THE ENCODED VALUE OF THE BAUD RATE ; -#IF (DEFSIOCLK/DEFSIODIV/32 == 75) -SIOBAUD3 .EQU 0 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 150) -SIOBAUD3 .EQU 1 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 300) -SIOBAUD3 .EQU 2 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 600) -SIOBAUD3 .EQU 3 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 1200) -SIOBAUD3 .EQU 4 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 2400) -SIOBAUD3 .EQU 5 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 4800) -SIOBAUD3 .EQU 6 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 9600) -SIOBAUD3 .EQU 7 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 19200) -SIOBAUD3 .EQU 8 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 38400) -SIOBAUD3 .EQU 9 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 76800) -SIOBAUD3 .EQU 10 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 153600) -SIOBAUD3 .EQU 11 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 307200) -SIOBAUD3 .EQU 12 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 614400) -SIOBAUD3 .EQU 13 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 ==1228800) -SIOBAUD3 .EQU 14 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 ==2457600) -SIOBAUD3 .EQU 15 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 225) -SIOBAUD3 .EQU 16 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 450) -SIOBAUD3 .EQU 17 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 900) -SIOBAUD3 .EQU 18 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 1800) -SIOBAUD3 .EQU 19 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 3600) -SIOBAUD3 .EQU 20 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 7200) -SIOBAUD3 .EQU 21 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 14400) -SIOBAUD3 .EQU 22 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 28800) -SIOBAUD3 .EQU 23 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 57600) -SIOBAUD3 .EQU 24 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 115200) -SIOBAUD3 .EQU 25 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 230400) -SIOBAUD3 .EQU 26 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 460800) -SIOBAUD3 .EQU 27 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 == 921600) -SIOBAUD3 .EQU 28 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 ==1843200) -SIOBAUD3 .EQU 29 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 ==3686400) -SIOBAUD3 .EQU 30 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/32 ==7372800) -SIOBAUD3 .EQU 31 -#ENDIF -; -#IF (DEFSIOCLK/DEFSIODIV/64 == 75) -SIOBAUD4 .EQU 0 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 150) -SIOBAUD4 .EQU 1 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 300) -SIOBAUD4 .EQU 2 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 600) -SIOBAUD4 .EQU 3 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 1200) -SIOBAUD4 .EQU 4 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 2400) -SIOBAUD4 .EQU 5 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 4800) -SIOBAUD4 .EQU 6 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 9600) -SIOBAUD4 .EQU 7 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 19200) -SIOBAUD4 .EQU 8 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 38400) -SIOBAUD4 .EQU 9 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 76800) -SIOBAUD4 .EQU 10 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 153600) -SIOBAUD4 .EQU 11 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 307200) -SIOBAUD4 .EQU 12 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 614400) -SIOBAUD4 .EQU 13 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 ==1228800) -SIOBAUD4 .EQU 14 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 ==2457600) -SIOBAUD4 .EQU 15 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 225) -SIOBAUD4 .EQU 16 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 450) -SIOBAUD4 .EQU 17 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 900) -SIOBAUD4 .EQU 18 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 1800) -SIOBAUD4 .EQU 19 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 3600) -SIOBAUD4 .EQU 20 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 7200) -SIOBAUD4 .EQU 21 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 14400) -SIOBAUD4 .EQU 22 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 28800) -SIOBAUD4 .EQU 23 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 57600) -SIOBAUD4 .EQU 24 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 115200) -SIOBAUD4 .EQU 25 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 230400) -SIOBAUD4 .EQU 26 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 460800) -SIOBAUD4 .EQU 27 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 == 921600) -SIOBAUD4 .EQU 28 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 ==1843200) -SIOBAUD4 .EQU 29 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 ==3686400) -SIOBAUD4 .EQU 30 -#ENDIF -#IF (DEFSIOCLK/DEFSIODIV/64 ==7372800) -SIOBAUD4 .EQU 31 -#ENDIF +#INCLUDE "siobaud.inc" ; SIO_PREINIT: ; @@ -786,21 +410,25 @@ SIO_OST: INC A ; ACCUM := 1 TO SIGNAL 1 BUFFER POSITION RET ; DONE ; +; AT INITIALIZATION THE SETUP PARAMETER WORD IS TRANSLATED TO THE FORMAT +; REQUIRED BY THE SIO AND STORED IN A PORT/REGISTER INITIALIZATION TABLE, +; WHICH IS THEN LOADED INTO THE SIO. ; +; RTS, DTR AND XON SETTING IS NOT CURRENTLY SUPPORTED. +; MARK & SPACE PARITY AND 1.5 STOP BITS IS NOT SUPPORTED BY THE SIO. +; INITIALIZATION WILL NOT BE COMPLETED IF AN INVALID SETTING IS DETECTED. ; SIO_INITDEV: ; - ; TEST FOR -1 WHICH MEANS USE CURRENT CONFIG (JUST REINIT) ; PS - LD A,D ; TEST DE FOR ; PS - AND E ; ... VALUE OF -1 ; PS - INC A ; ... SO Z SET IF -1 ; PS - JR NZ,SIO_INITDEV1 ; IF DE == -1, REINIT CURRENT CONFIG ; PS + ; TEST FOR -1 WHICH MEANS USE CURRENT CONFIG (JUST REINIT) + LD A,D ; TEST DE FOR + AND E ; ... VALUE OF -1 + INC A ; ... SO Z SET IF -1 + JR NZ,SIO_INITDEV1 ; IF DE == -1, REINIT CURRENT CONFIG ; - ; LOAD EXISTING CONFIG TO REINIT ; PS - LD E,(IY+4) ; LOW BYTE ; PS - LD D,(IY+5) ; HIGH BYTE ; PS -; -; CHANGE INIT TABLE BASED ON DESIRED SERIAL LINE CHARACTERISTICS + ; LOAD EXISTING CONFIG TO REINIT + LD E,(IY+4) ; LOW BYTE + LD D,(IY+5) ; HIGH BYTE ; SIO_INITDEV1: PUSH DE ; SAVE CONFIG @@ -815,8 +443,13 @@ SIO_INITDEV1: PRTC(']') POP AF #ENDIF - - CP SIOBAUD1 ; We set the divider and the lower bit (d2) of the baud rate here +; +; ONLY FOUR BAUD RATES ARE POSSIBLE WITH A FIXED CLOCK. +; THESE ARE PREDETERMINED BY HARDWARE SETTINGS AND MATCHING +; CONFIGURATION SETTINGS. WE PRECALCULATED THE FOUR +; POSSIBLE ENCODED VALUES. +; + CP SIOBAUD1 ; We set the divider and the lower bit (d2) of the stop bits LD D,$04 ; /1 N,8,1 JR Z,BROK CP SIOBAUD2 @@ -827,8 +460,8 @@ SIO_INITDEV1: JR Z,BROK CP SIOBAUD4 LD D,$C4 ; /64 N,8,1 - JR Z,BROK ; RET NZ - + JR Z,BROK + #IF (SIODEBUG) PUSH AF PRTS(" BR FAIL[$") @@ -857,43 +490,24 @@ BROK: SRL A ; we know top bits are zero from previous test SRL A ; add stop bits OR D ; carry = 0 - +; +; SET DIVIDER, STOP AND PARITY WR4 +; LD BC,SIO_INITVALS+3 LD (BC),A #IF (SIODEBUG) PUSH AF - PRTS(" MODE[$") + PRTS(" WR4[$") CALL PRTHEXBYTE PRTC(']') POP AF #ENDIF -; THE # DATA BITS NEED TO BE CONVERTED FROM THE -; ROMWBW REPRESENTATION TO THE SIO ZILOG CODING - -; XOR A -; RR E ; d0 of bits into carry -; RR A ; d0 into msb -; RR E ; d1 of bits into carry -; RR A ; d1 into msb -;; SCF ; 1 into msb -; RR A -; OR $8a - - LD A,E - - #IF (SIODEBUG) - PUSH AF - PRTS(" BITS[$") - CALL PRTHEXBYTE - PRTC(']') - POP AF -#ENDIF - ; 112233445566d1d0 CC + LD A,E ; 112233445566d1d0 CC RRA ; CC112233445566d1 d0 RRA ; d0CC112233445566 d1 - RRA ; d1d0CC1122334455 66 + RRA ; d1d0CC1122334455 66 LD D,A RRA ; 66d1d0CC11223344 55 AND $60 ; 0011110000000000 00 @@ -906,7 +520,7 @@ BROK: #IF (SIODEBUG) PUSH AF - PRTS(" TXDATA[$") + PRTS(" WR5[$") CALL PRTHEXBYTE PRTC(']') POP AF @@ -923,7 +537,7 @@ BROK: #IF (SIODEBUG) PUSH AF - PRTS(" RXDATA[$") + PRTS(" WR3[$") CALL PRTHEXBYTE PRTC(']') POP AF @@ -969,7 +583,7 @@ BROK: ; SIO_INITVALS: .DB $00, $18 ; WR0: CHANNEL RESET - .DB $04, $00 ; WR4: CLK BAUD PARITY STOP BIT ; PST + .DB $04, $00 ; WR4: CLK BAUD PARITY STOP BIT #IF (INTMODE == 0) .DB $01, $00 ; WR1: NO INTERRUPTS #ELSE