1
0
mirror of https://github.com/simh/simh.git synced 2026-01-26 04:01:38 +00:00

PDP11, VAX: Support multiplexer input speeds greater than 9600bps for console, DZ, VH, DL and DC devices

Each of the speeds greater than 9600bps deliver a character in less than
1ms.  Computing inter-character delays in microseconds therefore can't
be precise enough to be well behaved.  Measuring the inter-character
delays in instructions (scalled by the calibrated clock) gets us the needed
precision.
This commit is contained in:
Mark Pizzolato
2015-11-25 04:25:21 -08:00
parent 44ef17f971
commit 62e36241a4
6 changed files with 14 additions and 11 deletions

View File

@@ -1923,7 +1923,7 @@ if (sim_send_poll_data (&sim_con_send, &c)) /* injected input ch
return c;
if (!sim_rem_master_mode) {
if ((sim_con_ldsc.rxbps) && /* rate limiting && */
((sim_con_ldsc.rxlasttime + (sim_con_ldsc.rxdelta + 500)/1000) > sim_os_msec ())) /* too soon? */
(sim_con_ldsc.rxnexttime > sim_gtime ())) /* too soon? */
return SCPE_OK; /* not yet */
c = sim_os_poll_kbd (); /* get character */
if (c == SCPE_STOP) { /* ^E */
@@ -1933,7 +1933,8 @@ if (!sim_rem_master_mode) {
if ((sim_con_tmxr.master == 0) && /* not Telnet? */
(sim_con_ldsc.serport == 0)) { /* and not serial? */
if (c && sim_con_ldsc.rxbps) /* got something && rate limiting? */
sim_con_ldsc.rxlasttime = sim_os_msec (); /* save last input time */
sim_con_ldsc.rxnexttime = /* compute next input time */
sim_gtime () + ((sim_con_ldsc.rxdelta * sim_timer_inst_per_sec ())/1000000.0);
return c; /* in-window */
}
if (!sim_con_ldsc.conn) { /* no telnet or serial connection? */