mirror of
https://github.com/open-simh/simh.git
synced 2026-01-25 19:57:36 +00:00
Notes For V3.7-0
1. New Features 1.1 3.7-0 1.1.1 SCP - Added SET THROTTLE and SET NOTHROTTLE commands to regulate simulator execution rate and host resource utilization. - Added idle support (based on work by Mark Pizzolato). - Added -e to control error processing in nested DO commands (from Dave Bryan). 1.1.2 HP2100 - Added Double Integer instructions, 1000-F CPU, and Floating Point Processor (from Dave Bryan). - Added 2114 and 2115 CPUs, 12607B and 12578A DMA controllers, and 21xx binary loader protection (from Dave Bryan). 1.1.3 Interdata - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state. 1.1.4 PDP-11 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (WAIT instruction executed). - Added TA11/TU60 cassette support. 1.1.5 PDP-8 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (keyboard poll loop or jump-to-self). - Added TA8E/TU60 cassette support. 1.1.6 PDP-1 - Added support for 16-channel sequence break system. - Added support for PDP-1D extended features and timesharing clock. - Added support for Type 630 data communications subsystem. 1.1.6 PDP-4/7/9/15 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (keyboard poll loop or jump-to-self). 1.1.7 VAX, VAX780 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (more than 200 cycles at IPL's 0, 1, or 3 in kernel mode). 1.1.8 PDP-10 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (operating system dependent). - Added CD20 (CD11) support. 2. Bugs Fixed Please see the revision history on http://simh.trailing-edge.com or in the source module sim_rev.h.
This commit is contained in:
committed by
Mark Pizzolato
parent
15919a2dd7
commit
53d02f7fa7
@@ -1,6 +1,6 @@
|
||||
/* id_pas.c: Interdata programmable async line adapter simulator
|
||||
|
||||
Copyright (c) 2001-2005, Robert M Supnik
|
||||
Copyright (c) 2001-2006, 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 @@
|
||||
|
||||
pas Programmable asynchronous line adapter(s)
|
||||
|
||||
18-Oct-06 RMS Synced PASLA to clock
|
||||
22-Nov-05 RMS Revised for new terminal processing routines
|
||||
29-Jun-05 RMS Added SET PASLn DISCONNECT
|
||||
21-Jun-05 RMS Fixed bug in SHOW CONN/STATS
|
||||
@@ -49,7 +50,6 @@
|
||||
#define UNIT_V_MDM (TTUF_V_UF + 0) /* modem control */
|
||||
#define UNIT_MDM (1 << UNIT_V_MDM)
|
||||
|
||||
#define PAS_INIT_POLL 8000
|
||||
#define PASL_WAIT 500
|
||||
|
||||
/* Status byte */
|
||||
@@ -88,6 +88,7 @@
|
||||
#define CMD_TYP 0x01 /* command type */
|
||||
|
||||
extern uint32 int_req[INTSZ], int_enb[INTSZ];
|
||||
extern int32 lfc_poll;
|
||||
|
||||
uint8 pas_sta[PAS_LINES]; /* status */
|
||||
uint16 pas_cmd[PAS_LINES]; /* command */
|
||||
@@ -96,7 +97,6 @@ uint8 pas_xbuf[PAS_LINES]; /* xmt buf */
|
||||
uint8 pas_rarm[PAS_LINES]; /* rcvr int armed */
|
||||
uint8 pas_xarm[PAS_LINES]; /* xmt int armed */
|
||||
uint8 pas_rchp[PAS_LINES]; /* rcvr chr pend */
|
||||
uint32 pas_tps = 50; /* polls/second */
|
||||
uint8 pas_tplte[PAS_LINES * 2 + 1]; /* template */
|
||||
|
||||
TMLN pas_ldsc[PAS_LINES] = { 0 }; /* line descriptors */
|
||||
@@ -126,7 +126,7 @@ void pas_reset_ln (int32 i);
|
||||
|
||||
DIB pas_dib = { d_PAS, -1, v_PAS, pas_tplte, &pas, &pas_ini };
|
||||
|
||||
UNIT pas_unit = { UDATA (&pasi_svc, UNIT_ATTABLE, 0), PAS_INIT_POLL };
|
||||
UNIT pas_unit = { UDATA (&pasi_svc, UNIT_ATTABLE, 0), 0 };
|
||||
|
||||
REG pas_nlreg = { DRDATA (NLINES, PAS_ENAB, 6), PV_LEFT };
|
||||
|
||||
@@ -312,11 +312,10 @@ return 0;
|
||||
|
||||
t_stat pasi_svc (UNIT *uptr)
|
||||
{
|
||||
int32 ln, c, out, t;
|
||||
int32 ln, c, out;
|
||||
|
||||
if ((uptr->flags & UNIT_ATT) == 0) return SCPE_OK; /* attached? */
|
||||
t = sim_rtcn_calb (pas_tps, TMR_PAS); /* calibrate */
|
||||
sim_activate (uptr, t); /* continue poll */
|
||||
sim_activate (uptr, 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 */
|
||||
@@ -448,7 +447,7 @@ return c & 0xFF;
|
||||
|
||||
t_stat pas_reset (DEVICE *dptr)
|
||||
{
|
||||
int32 i, t;
|
||||
int32 i;
|
||||
|
||||
if (dptr->flags & DEV_DIS) { /* disabled? */
|
||||
pas_dev.flags = pas_dev.flags | DEV_DIS; /* disable lines */
|
||||
@@ -458,12 +457,8 @@ else {
|
||||
pas_dev.flags = pas_dev.flags & ~DEV_DIS; /* enable lines */
|
||||
pasl_dev.flags = pasl_dev.flags & ~DEV_DIS;
|
||||
}
|
||||
if (pas_unit.flags & UNIT_ATT) { /* master att? */
|
||||
if (!sim_is_active (&pas_unit)) {
|
||||
t = sim_rtcn_init (pas_unit.wait, TMR_PAS);
|
||||
sim_activate (&pas_unit, t); /* activate */
|
||||
}
|
||||
}
|
||||
if (pas_unit.flags & UNIT_ATT) /* master att? */
|
||||
sim_activate_abs (&pas_unit, lfc_poll); /* cosched with clock */
|
||||
else sim_cancel (&pas_unit); /* else stop */
|
||||
for (i = 0; i < PAS_LINES; i++) pas_reset_ln (i);
|
||||
return SCPE_OK;
|
||||
@@ -477,8 +472,7 @@ t_stat r;
|
||||
|
||||
r = tmxr_attach (&pas_desc, uptr, cptr); /* attach */
|
||||
if (r != SCPE_OK) return r; /* error */
|
||||
sim_rtcn_init (pas_unit.wait, TMR_PAS);
|
||||
sim_activate (uptr, 100); /* quick poll */
|
||||
sim_activate_abs (uptr, 100); /* quick poll */
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user