( initialize USART 2651 FvdMarkt 16-01-2004 ) HEX BE00 CONSTANT USART_DATA BE01 CONSTANT USART_STATUS BE02 CONSTANT USART_MODE BE03 CONSTANT USART_CMD : INIT_USART ( baudrate -- ) USART_CMD C@ DROP ( read command register to reset mode ) 4E USART_MODE C! ( set mode reg. 1 : 1 stopbit, no parity, 8 databits, ) ( asynchronous 16X baudratefactor ) ( set mode reg. 2 : internal clock, 9600 Bd ) ( 1200 Bd = 77, 2400 Bd = 7A, 4800 Bd = 7C, 9600 Bd = 7E ) DUP #1200 = IF DROP 77 USART_MODE C! ELSE DUP #2400 = IF DROP 7A USART_MODE C! ELSE DUP #4800 = IF DROP 7C USART_MODE C! ELSE ( assume 9600 Bd ) DROP 7E USART_MODE C! THEN THEN THEN 15 USART_CMD C! ( normal operation, RTS high, reset error, no break, ) ( enable Rx, DTR high, enable Tx ) ( output a % character ) 25 USART_DATA C! ; DECIMAL