Gentlepeople,
I have put together a second beta for DECnet/Python 1.1. It's currently running on a HECnet backbone router (PYTHON) and on the HECnet map server (28NH). This beta update adds DAP support and "login" type objects (such as FAL). The first beta has significant performance improvements over V1.0, and a new and expanded API. You can look at CHANGES.txt in the source tree for more detail.
It seems to be stable; the first beta has been running for a while now with no obvious problems. I'd like to hear if anyone currently running PyDECnet is interested in trying out this beta. If so, you can find kits here: http://akdesign.dyndns.org:8080/resources/public/index.html . I didn't have kits posted before, now they are available.
You can also download them using DAP on HECnet, at PYTHON:: . :-)
If you install the beta could you let me know so I know who is using it? Thanks.
paul
I found some borads in a junk pile...
a M7380 board, it says M7380 PDM70 control module?
a MDC-II board, says andromeda systems on it
Anyone who knows what it does?
Ha, originally from Jon Wilson. Here it is:
----------------------------
Pertec Formatted Interface, compiled by John Wilson <wilson(a)dbit.com> from
various drive manuals, 03-Oct-1999. Updated 17-Mar-2000.
Two 50-pin cables, all odd pins are grounded, except for pins 1/3 on P2.
All signals are active low.
Signal source is indicated under "src" column, C=controller, D=drive. All
transmitters are open-collector drivers which can sink 36 mA (e.g. 7438). All
receivers are 74(LS)00 style, terminated with 220 ohms to +5 and 330 ohms to
ground. Signals are active low.
P1 connector:
-pin- -name- -src- -description-
2 IFBY D formatter busy, set by trailing edge of IGO, clears
when command finished (but you can send a new command
as soon as IDBY clears)
4 ILWD C last word -- used to tell drive that this is the last
word (well, byte really) to be written in this record,
assert 300 nsec (min) before trailing edge of final
IWSTR pulse (no particular hold requirement)
6 IW4 C write data b4
8 IGO C initiate command -- pulsed low for 1 usec (min) to
start command. formatter address lines must be stable
throughout the pulse and until IFBY drops.
10 IW0 C write data b0 (MSB)
12 IW1 C write data b1
14 (ISGL) D (selected drive fault on some drives, cleared by
dropping and re-asserting IFEN)
16 ILOL C load on-line -- pulse starts load sequence on some
drives
18 IREV C reverse
20 IREW C rewind -- 1 usec (min) pulse starts rewind, no IFBY or
IDBY, so wait until IRWD=0 and IRDY=1. ignored if tape
is at BOT (so IRWD and IRDY will already be as above).
22 IWP C write parity (odd)
24 IW7 C write data b7 (LSB)
26 IW3 C write data b3
28 IW6 C write data b6
30 IW2 C write data b2
32 IW5 C write data b5
34 IWRT C write
36 (IRTH2) C see IRTH1
38 IEDIT C edit
40 IERASE C erase
42 IWFM C write file mark
44 (IRTH1) C write density select on some drives, used in
conjunction with IRTH1 to set write density (unless
controlled by front panel), qualifies IGO on first
write operation from BOT, ignored elsewhere
46 ITAD0 C transport address 0 (MSB)
48 IR2 D read data b2
50 IR3 D read data b3
P2 connector: (N.B. pins 1/3 are *not* grounds, so not paired with pins 2/4)
-pin- -name- -src- -description-
1 IRP D read data parity (odd) (N.B., not a ground pin)
2 IR0 D read data b0 (MSB)
3 IR1 D read data b1 (N.B., not a ground pin)
4 ILDP D load point -- asserted whenever the tape is at the load
point (or might as well be, as far as the controller
needs to know -- there may be hidden repositioning)
6 IR4 D read data b4
8 IR7 D read data b7 (LSB)
10 IR6 D read data b6
12 IHER D hard error -- pulsed (during IDBY) when a hard data
error (or illegal character in IRG) is seen
14 IFMK D file mark -- pulsed (during IDBY) when a tape mark is
seen
16 IDENT D identification -- asserted while drive is actually
reading the PE ID burst, dropped the rest of the time
so it's up to the controller to catch it and remember.
on 9610, this is CCG (check character gate) in NRZI
mode -- sample during IRSTR to find out whether this
char is a data char or part of a CRCC or LRCC check.
18 IFEN C formatter enable -- should normally assert this all the
time, but drop it for 2 usec (min) to abort any command
that asserts IDBY (I/O, search, but not rewind I
guess) ASAP
20 IR5 D read data 5
22 IEOT D end of tape -- asserted whenever the tape is past the
EOT marker, clears when you backspace past it
24 IRWU C rewind/unload (also called IOFL) -- 1 usec (min) pulse
starts, same as IREW but sets drive off-line and
unloads tape. F880 manual isn't clear whether you
assert this signal alone or at the same time as IREW
(says it "modifies" it). 9610 manual seems to say it's
used alone.
26 INRZ D NRZI mode -- asserted when in 800 BPI mode on some
drives
28 IRDY D ready -- tape is fully loaded (not in transition
to/from off-line) and not rewinding, check this before
starting any command
30 IRWD D rewinding -- asserted while tape is rewinding
32 IFPT D file protect -- asserted continuously when the tape
doesn't have a write ring in
34 IRSTR D read strobe -- typical timing: pulses low for 200 nsec
(min), data on IR0-7/IRP are set up 100 nsec (min)
before leading edge, held for 200 nsec (min) after
trailing edge, cycle time can be as low as 1.1 usec for
GCR @ 100 IPS. Kennedy 9610 is different:
setup=500 ns min, RSTR=340 ns min, hold=250 ns min.
36 IWSTR D write strobe -- pulsed low each time the drive is
ready for another data byte to be written.
timing depends on drive model -- example: IW0-7/IWP
must be set up 300 nsec (min) before trailing edge, no
hold requirement after. Kennedy 9610 is edge-triggered
off the trailing edge, setup=500 ns, hold=250 ns.
38 IDBY D data busy -- asserted during I/O phase of read/write
commands (generally starts a few msec after IFBY).
40 ISPEED D high-speed status -- asserted when command is executing
in high-speed mode (starting at IDBY anyway)
42 ICER D corrected error -- pulsed (during IDBY) when a single-
track dropout is successfully corrected (using the
parity information)
44 IONL D online -- always asserted when online, clears within
1 usec of OFFLINE command
46 ITAD1 C transport address 1 (LSB)
48 IFAD C formatter address
50 IHISP C high speed select (also called IDEN) -- qualifies IGO
(so must assert beginning 1 usec (min) before trailing
edge of IGO, can drop any time afterwards) to select
high-speed tape motion for this command
Commands are started by setting up the IREV, IWRT, IWFM, IEDIT, and IERASE
lines and then pulsing IGO. All kinds of crazy combinations of these signals
are possible to get vendor-specific commands. The basic ones are:
READ --- (nothing, just IGO)
Reads the next record or dies trying. Data are supplied with
IRSTR pulses as needed, watch ICER/IHER for errors, or IFMK
etc. for other status.
READ REVERSE IREV
Reads the previous record, or just gives up if at BOT. As
above, watch ICER/IHER/IFMK/etc.
WRITE IWRT
Writes a record, supplying IWSTR pulses to clock in data until
the controller asserts ILWD.
WRT FILE MARK IWRT+IWFM
Writes one file mark.
ERASE IWRT+IWFM+IERASE
Erases 3" (or whatever) of tape. Used as part of a write retry
sequence.
SPACE FORWARD IERASE
Like READ but with no IRSTR pulses.
SPACE REVERSE IREV+IERASE
Like READ REVERSE but with no IRSTR pulses.
FMARK SCH FWD IWFM+IERASE
Does SPACE FORWARD commands until file mark or EOT marker is
reached.
FMARK SCH REV IREV+IWFM+IERASE
Does SPACE REVERSE commands until file mark or BOT marker is
reached.
On some drives, IEDIT modifies WRITE and READ REVERSE to allow (semi-)safely
inserting records on an existing tape. READ REVERSE EDIT tells the drive to
backspace slightly farther than usual into the preceding IRG, and WRITE EDIT
tells the drive to turn the head current off slowly at the end of the record to
avoid causing a glitch.
Kennedy 9610/9660 chart:
REV WRT WFM EDT ERS -command-
0 0 0 0 0 READ FORWARD
1 0 0 0 0 READ REVERSE
1 0 0 1 0 READ REVERSE EDIT
0 1 0 0 0 WRITE
0 1 0 1 0 WRITE EDIT
0 1 1 0 0 WRITE FILE MARK
0 1 0 0 1 ERASE VARIABLE LENGTH
0 1 1 0 1 ERASE FIXED LENGTH
0 1 1 1 1 DATA SECURITY ERASE
0 0 0 0 1 SPACE FORWARD
1 0 0 0 1 SPACE REVERSE
0 0 1 0 0 FILE SEARCH FORWARD
1 0 1 0 0 FILE SEARCH REVERSE
0 0 1 0 1 FILE SEARCH FORWARD (IGNORE DATA)
1 0 1 0 1 FILE SEARCH REVERSE (IGNORE DATA)
0 1 1 1 0 SELECT 800 BPI
0 0 1 1 1 SELECT 1600 BPI
1 0 1 1 1 SELECT 3200 BPI
1 1 0 0 0 SELECT 6250 BPI
Streamers have a drive-dependent "reinstruct time" which is the size of the
time window after completion of a command during which you can issue a new
command w/o the drive having to reposition. Definitely a good idea to make the
deadline if possible, if you can't then using IHISP will probably waste more
time in repositioning than it will save in fast transfer speed.
--
Dave McGuire, AK4HZ
New Kensington, PA
I'm a recent joiner to HECnet, and wondered if anyone else has played
around with Phase V software at all ?
Obviously HECnet itself is a Phase IV network, but you can connect Phase V
VAX endnodes using the Phase IV compatibility mode.
All my systems are simulated with simh, and getting an Ethernet connection
to work was very straightforward, there's just a bit more local
configuration required than with Phase IV.
However, I spent quite a few years at DEC working on VAX synchronous device
drivers, so I was interested to see whether I could get a WAN connection
going. The biggest issue was device support. DECnet-VAX Phase V doesn't
support any of the older microcoded interfaces (DMC11, DMV11, KMX11 etc),
and the later devices (DSV11, DSB32, DST32, etc) aren't supported by simh.
The only intersection is actually the DUP/DPV11, where there was a new VMS
driver (SEDRIVER) for Phase V, that replaces the
individual protocol-specific drivers that were previously used with these
devices.
I've spent quite a long time this week dredging stuff out of memory from 30
years ago, and still failing to get a DPV11 link to come up, until I
eventually realised that a) there are some significant differences between
the DUP and DPV, and b) simh does not support the DPV properly (how is one
supposed to know this?) ! So after changing my simulated microVAX into an
8600, and the DPV into a DUP, I've managed to get a DDCMP link to come up
between this and a PyDecnet router.
There still seem to be some rough edges, as it won't always come up until
PyDecnet is bounced, and it's also a bit slow for interactive use, as if
there's something that's only working on a retransmission, or timer expiry.
Anyway, it's been a fun nostalgia exercise to get this far, I'll probably
mess about with it some more. Let me know if you have any questions...
TOGATH$ mcr ncl sho routing circuit ddcmp-0 adj * all
Node 0 Routing Circuit DDCMP-0 Adjacency RTG$0001
at 2022-03-11-15:28:50.820+00:00Iinf
Identifiers
Name = RTG$0001
Status
Type = Autoconfigured
State = Up
Neighbor Node Type = Phase IV Router
Router NETs =
{
49::00-1D:AA-00-04-00-D5-75:00 (LOCAL:.TWPD)
}
TOGATH$ mcr ncl sho modem connect line ddcmp-0 all
Node 0 Modem Connect Line DDCMP-0
at 2022-03-11-15:29:33.660+00:00Iinf
Identifiers
Name = DDCMP-0
Status
UID = 5AFC9FC0-A14A-11EC-8002-AA000400C475
State = On
Interface State = Full Enabled
Actual Speed = 0
Loopback Mode = Null
Interface Type = Unknown
Modem Type = ""
Device Availability = Device Present
Request to Send = Asserted
Clear to Send = Asserted
Data Set Ready = Asserted
Data Terminal Ready = Asserted
Carrier Detect = Asserted
Signalling Rate Selector = Unknown
Signalling Rate Indicator = Unknown
Ring Indicator = Not Asserted
Remote Loopback = Not Asserted
Local Loopback = Not Asserted
Test Mode = Unknown
Characteristics
Communications Port = DPV-0-0
Connection Type = NonSwitched
Communications Mode = Synchronous
Duplex = Full
Profile = ""
Modem Control = Full
Modem Options =
{
}
Encoding = Normal
Clock = External
Speed = 0
Alternate Speed = 0
Rate Select = High
Maximum Enable Transmit Timer = 2000
Suppress Test Indicator = True
Transmit Holdoff Timer = 0
Carrier Loss Timer = 15000
Minimum DTR Deassertion Timer = 2000
Maximum Disable Transmit Timer = 500
Call Accept Timer = 0
Successful Call Indication Timer = 30
Maximum DSR Deassertion Timer = 5000
Counters
Creation Time = 2022-03-11-14:48:46.780+00:00Iinf
Losses of Clock = 0
Cable Faults = 0
Times DCE Not Ready = 0
Transmit Enable Timeouts = 4
Losses Of Carrier = 0
Rate Fallbacks = 0
Test Indications = 0
Framing Errors = 0
Times Cable Detected = 0
Device Errors = 0
Times Reset = 4
c
CTF V1.0-00 Page 1
Trace started on 11-MAR-2022 15:45:28.40 Analyzed on 11-MAR-2022
15:45:56.95
Trace File DUA1:[TREVOR]CTF$TRACE.DAT;3 Output File DUA1:[TREVOR]XX.TXT;4
-----------+----+-----+<--------DDCMP
Frame-------->+--------------------------`
Time |Evnt|Data | Typ QS Res Num Ctl Adr Count|Data
`
hh mm ss cc| |Size | |
`
-----------+----+-----+<--------------------------->+--------------------------`
15:45:28.40| Tx| 85| DAT S 77 86 1 77| 0A C5 75 C4 75 01 21
35 E`
| 01 04 C3 02 EE 81 C6
01 2`
| 2E 30 85 02 03 E8 C4
01 0`
15:45:28.41|Rx | 22| DAT 85 78 1 14| 05 D5 75 0A AA AA AA
AA A`
15:45:28.56|Rx | 6| ACK 86 1 |
15:45:28.57| Tx| 6| ACK S 78 1 |
15:45:32.80| Tx| 85| DAT S 78 87 1 77| 0A C5 75 C4 75 01 21
35 E`
| 01 04 C3 02 EE 81 C6
01 2`
| 2E 30 85 02 03 E8 C4
01 0`
15:45:32.81|Rx | 62| DAT 86 79 1 54| 02 C4 75 C5 75 02 21
2E D`
| 01 04 C6 01 23 01 11
30 3`
| 03 E8
15:45:32.81| Tx| 25| DAT S 79 88 1 17| 02 C5 75 C4 75 01 21
09 6`
15:45:32.82|Rx | 6| ACK 87 1 |
15:45:32.94|Rx | 6| ACK 88 1 |
15:45:32.95|Rx | 62| DAT 88 80 1 54| 02 C4 75 C5 75 02 21
2E D`
| 01 04 C6 01 23 01 11
30 3`
| 03 E8
15:45:33.07| Tx| 6| ACK S 80 1 |
15:45:38.48|Rx | 31| DAT 88 81 1 23| 02 C4 75 C5 75 02 21
07 F`
15:45:38.48| Tx| 40| DAT S 81 89 1 32| 02 C5 75 C4 75 01 21
07 F`
| 00 00 00 00 00 00
15:45:38.49|Rx | 31| DAT 88 82 1 23| 02 C4 75 C5 75 02 21
07 F`
15:45:38.49| Tx| 25| DAT S 82 90 1 17| 02 C5 75 C4 75 01 21
09 6`
15:45:38.50|Rx | 6| ACK 89 1 |
15:45:38.60|Rx | 6| ACK 90 1 |
15:45:39.72|Rx | 58| DAT 90 83 1 50| 02 C4 75 C5 75 02 21
07 F`
| 00 00 00 00 00 00 01
02 1`
15:45:39.72| Tx| 25| DAT S 83 91 1 17| 02 C5 75 C4 75 01 21
09 6`
15:45:39.73| Tx| 25| DAT S 83 92 1 17| 02 C5 75 C4 75 01 21
09 6`
15:45:39.73| Tx| 80| DAT S 83 93 1 72| 02 C5 75 C4 75 01 21
07 F`
| 00 00 00 00 00 00 01
02 F`
| A0 13 00 30 02 30 60
F9 0`
15:45:39.73| Tx| 38| DAT S 83 94 1 30| 02 C5 75 C4 75 01 21
07 F`
| 00 00 00 00
15:45:39.73| Tx| 49| DAT S 83 95 1 41| 02 C5 75 C4 75 01 21
07 F`
| 00 18 00 42 70 50 00
A0 1`
Buffer: XX.TXT | Write | Insert |
Forward
I thought some of the HECnet crowd might find this interesting
https://groups.google.com/g/alt.sys.pdp10/c/WnsETCDyTmc
"TOPS-20 Boot Camp for VMS Users 05-Mar-2022" (that's this Saturday), and
they'll even give you an account on a real (not simulated!) 36 bit machine,
an XKL Toad.
Bob