// Fork a simulation process which will get chars typed into the simulation
// terminal and transmit them on the simulation uartPin.
fork {
uartPin #= true
while(true) {
// System.in is the java equivalent of the C's stdin.
if(System.in.available() != 0) {
val buffer = System.in.read()
uartPin #= false
sleep(baudPeriod)
for(bitId <- 0 to 7) {
uartPin #= ((buffer >> bitId) & 1) != 0
sleep(baudPeriod)
}
uartPin #= true
sleep(baudPeriod)
} else {
// Sleep a little while to avoid polling System.in too often.
sleep(baudPeriod * 10)
}
}
}