1
0
mirror of https://github.com/simh/simh.git synced 2026-01-25 19:56:25 +00:00

Merge of Bob's simh-v3.9-0-rc3

This commit is contained in:
Mark Pizzolato
2012-04-23 11:50:43 -07:00
parent 19ae16ac6e
commit db9bf32112
62 changed files with 5342 additions and 3796 deletions

View File

@@ -1,6 +1,6 @@
/* id_defs.h: Interdata 16b/32b simulator definitions
Copyright (c) 2000-2010, Robert M. Supnik
Copyright (c) 2000-2012, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
@@ -26,6 +26,7 @@
The author gratefully acknowledges the help of Carl Friend and Al Kossow,
who provided key documents about the Interdata product line.
18-Apr-12 RMS Added clock coschedule prototype
22-May-10 RMS Added check for 64b definitions
09-Mar-06 RMS Increased register sets to architectural limit
25-Jan-04 RMS Removed local logging support
@@ -483,4 +484,6 @@ t_stat set_dev (UNIT *uptr, int32 val, char *cptr, void *desc);
t_stat show_sch (FILE *st, UNIT *uptr, int32 val, void *desc);
t_stat show_dev (FILE *st, UNIT *uptr, int32 val, void *desc);
int32 lfc_cosched (int32 wait);
#endif

View File

@@ -25,6 +25,7 @@
pas Programmable asynchronous line adapter(s)
18-Apr-12 RMS Revised to use clock coscheduling
21-Mar-12 RMS Fixed TT_GET_MODE test to use TTUF_MODE_x (Michael Bloom)
19-Nov-08 RMS Revised for common TMXR show routines
18-Jun-07 RMS Added UNIT_IDLE flag
@@ -319,7 +320,7 @@ int32 ln, c, out;
if ((uptr->flags & UNIT_ATT) == 0) /* attached? */
return SCPE_OK;
sim_activate (uptr, lfc_poll); /* continue poll */
sim_activate (uptr, lfc_cosched (lfc_poll)); /* continue poll */
ln = tmxr_poll_conn (&pas_desc); /* look for connect */
if (ln >= 0) { /* got one? */
if ((pasl_unit[ln].flags & UNIT_MDM) && /* modem control */
@@ -468,7 +469,7 @@ else {
pasl_dev.flags = pasl_dev.flags & ~DEV_DIS;
}
if (pas_unit.flags & UNIT_ATT) /* master att? */
sim_activate_abs (&pas_unit, lfc_poll); /* cosched with clock */
sim_activate (&pas_unit, lfc_poll);
else sim_cancel (&pas_unit); /* else stop */
for (i = 0; i < PAS_LINES; i++)
pas_reset_ln (i);
@@ -484,7 +485,7 @@ t_stat r;
r = tmxr_attach (&pas_desc, uptr, cptr); /* attach */
if (r != SCPE_OK) /* error */
return r;
sim_activate_abs (uptr, 100); /* quick poll */
sim_activate (uptr, 100); /* quick poll */
return SCPE_OK;
}

View File

@@ -1,6 +1,6 @@
/* id_tt.c: Interdata teletype
Copyright (c) 2000-2008, Robert M. Supnik
Copyright (c) 2000-2012, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
tt console
18-Apr-12 RMS Revised to use clock coscheduling
18-Jun-07 RMS Added UNIT_IDLE flag to console input
18-Oct-06 RMS Sync keyboard to LFC clock
30-Sep-06 RMS Fixed handling of non-printable characters in KSR mode
@@ -183,7 +184,8 @@ t_stat tti_svc (UNIT *uptr)
{
int32 out, temp;
sim_activate (uptr, KBD_WAIT (uptr->wait, lfc_poll)); /* continue poll */
sim_activate (uptr, KBD_WAIT (uptr->wait, lfc_cosched (lfc_poll)));
/* continue poll */
tt_sta = tt_sta & ~STA_BRK; /* clear break */
if ((temp = sim_poll_kbd ()) < SCPE_KFLAG) /* no char or error? */
return temp;
@@ -239,7 +241,7 @@ t_stat tt_reset (DEVICE *dptr)
{
if (dptr->flags & DEV_DIS) /* dis? cancel poll */
sim_cancel (&tt_unit[TTI]);
else sim_activate_abs (&tt_unit[TTI], KBD_WAIT (tt_unit[TTI].wait, lfc_poll));
else sim_activate (&tt_unit[TTI], KBD_WAIT (tt_unit[TTI].wait, lfc_poll));
sim_cancel (&tt_unit[TTO]); /* cancel output */
tt_rd = tt_fdpx = 1; /* read, full duplex */
tt_chp = 0; /* no char */

View File

@@ -1,6 +1,6 @@
/* id_ttp.c: Interdata PASLA console interface
Copyright (c) 2000-2008, Robert M. Supnik
Copyright (c) 2000-2012, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
@@ -25,6 +25,7 @@
ttp console (on PAS)
18-Apr-12 RMS Revised to use clock coscheduling
18-Jun-07 RMS Added UNIT_IDLE flag to console input
18-Oct-06 RMS Sync keyboard to LFC clock
22-Nov-05 RMS Revised for new terminal processing routines
@@ -179,7 +180,8 @@ t_stat ttpi_svc (UNIT *uptr)
{
int32 c, out;
sim_activate (uptr, KBD_WAIT (uptr->wait, lfc_poll)); /* continue poll */
sim_activate (uptr, KBD_WAIT (uptr->wait, lfc_cosched (lfc_poll)));
/* continue poll */
ttp_sta = ttp_sta & ~STA_FR; /* clear break */
if ((c = sim_poll_kbd ()) < SCPE_KFLAG) /* no char or error? */
return c;
@@ -237,7 +239,7 @@ t_stat ttp_reset (DEVICE *dptr)
{
if (dptr->flags & DEV_DIS)
sim_cancel (&ttp_unit[TTI]);
else sim_activate_abs (&ttp_unit[TTI], KBD_WAIT (ttp_unit[TTI].wait, lfc_poll));
else sim_activate (&ttp_unit[TTI], KBD_WAIT (ttp_unit[TTI].wait, lfc_poll));
sim_cancel (&ttp_unit[TTO]);
CLR_INT (v_TTP); /* clear int */
CLR_ENB (v_TTP);

View File

@@ -1,6 +1,6 @@
/* id_uvc.c: Interdata universal clock
Copyright (c) 2001-2008, Robert M. Supnik
Copyright (c) 2001-2012, Robert M. Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
@@ -26,6 +26,7 @@
pic precision incremental clock
lfc line frequency clock
18-Apr-12 RMS Added lfc_cosched routine
18-Jun-07 RMS Added UNIT_IDLE flag
18-Oct-06 RMS Changed LFC to be free running, export tmr_poll
23-Jul-05 RMS Fixed {} error in OC
@@ -351,12 +352,22 @@ if (lfc_arm) { /* armed? */
return SCPE_OK;
}
/* Clock coscheduling routine */
int32 lfc_cosched (int32 wait)
{
int32 t;
t = sim_is_active (&lfc_unit);
return (t? t - 1: wait);
}
/* Reset routine */
t_stat lfc_reset (DEVICE *dptr)
{
lfc_poll = sim_rtcn_init (lfc_unit.wait, TMR_LFC);
sim_activate_abs (&lfc_unit, lfc_poll); /* init clock */
sim_activate (&lfc_unit, lfc_poll); /* init clock */
CLR_INT (v_LFC); /* clear int */
CLR_ENB (v_LFC); /* disable int */
lfc_arm = 0; /* disarm int */