Finally after more than two and a half years I managed to convince myself it’s time for a new release! There’s always another thing to fix, another thing to add – I should really get better at publishing my work. Anyway, here it is. Head over to the download page after you finish reading.
New ENC28J60 backend for XU
The major update you already know about – the DEUNA now has an ENC28J60 backend. And it comes with a new way to configure the DEUNA too. There’s now only one signal to set up the interface and which backend it should have, as follows:
have_xu => have_xu_none | no deuna will be included | (same as 0, and default) |
have_xu => have_xu_enc424 | deuna with enc424 | (same as 1 for compatibility) |
have_xu => have_xu_esp | deuna with esp32 wireless | |
have_xu => have_enc28 | deuna with enc28 |
Next to that, only for the ENC28J60, you’ll also have to set the MAC address if you plan on running more than one on your network – since the ENC28 chip in itself doesn’t have a MAC address, the microcode needs to manage it and it’ll set a default that’s fixed through the hardware – so if you’ll run two instances on the same network, you’ll have issues unless you change at least one from the default. To do so, include something like this:
have_xu_enc_mac_6 => x"00"
and change 00 to some 8-bit hexadecimal value that’s unique among the ENC28J60s on your network. Something like 01, 02, 03 comes to mind. The rest of the ENC28J60 MAC address is set to something period-correct that is unlikely to clash with your existing network addresses, but don’t complain if it does – just remember how lucky you are to have that problem.
Also you’ll have to consider full and half duplex; the ENC28J60 does 10BaseT, and autonegotiation was not really stable back then. You can try things at default and let the chip or the wiring on the board it’s on decide, or you can force full or half duplex by adding one of the below:
have_xu_enc28_force_fdx => 1,
(OR)
have_xu_enc28_force_hdx => 1.
On my switch all versions seem to work the same, including similar response time and throughput. But if you have an older switch or a hub, you might want to try playing with these settings if you don’t get decent response times – like, sub-second turnaround on a telnet session, and something like 100KBytes/s on an ftp session.
You don’t need to worry about MAC addresses or duplex for any of the other backend flavors, and if you try to set these for any other have_xu value besides have_enc28 it’ll be ignored.
I’ll add some more documentation to the configuration page, when time allows.
There’s a minor fix in the enc424 microcode that allows you to run Johnny Billquist’s RSX image, see the August 20 blog post for details.
Full GPIB support for MINC
Also already spoilered, there is now a full IBV11 implementation for MINC – and other software that supports it. You can interface GPIB instruments directly from MINC basic, or use the Fortran packages, or even directly from assembler. Many thanks to Jan Secker who did the heavy lifting for this one.
RL02 fixes for RT11
You’ll probably have already read about the fix for the issue that late releases of RT11 crashed during boot. No longer – but the initial fix I published turned out not to work with the V3 version of MINC. Then there was another issue with the XXDP packs, sigh. To make a long story short, the version in this release should work with everything.
64-bit counters in the ESP32 wnet
The code running on the ESP32 for the wireless network XU backend has a couple of counters in it for things like how many bytes, how many frames, how many polls. Those too quickly overran 32-bit boundaries, so I made them 64 bits wide.
There’s no need to update your ESP32 at the same time as your PDP2011 host – the interface between them is unchanged.
BT keyboard support
The vt100/vt105 terminal included in the PDP2011 project needs a keyboard to work, and up to now that keyboard needed to connect to a PS2-style interface. Those are getting old – I only have one left that works properly and has all keys. So I mangled one of the ESP32 samples to turn an ESP32 into a BT keyboard interface, and send the keystrokes out via a serial interface. It’s somewhat experimental – as in, I have no clue what the BT side of things actually does. And it also works for full-on BT, not BLE – so it will only work with ESP32 that have Bluetooth Classic.
MINC I/O Hardware
The MINC could have 4 DI boards, 4 DO boards – totalling 128 digital I/O. And next to that, 16 analog outputs, 64 analog inputs, and 10 special I/O for the clock modules.
Most low-cost FPGA have plenty of available pins, but those numbers are a challenge. So I have been working on interface boards that use I2C to expand the FPGA pins into lots more I/O – and at the same time provide a layer between the low cost I/O and the somewhat more expensive FPGA.
There’s lots more to say on this subject, and it goes way beyond the scope of this post. Stay tuned for more.
MINC test programs
I’ve added a directory for a set of curated and managed MINC test programs, and a utility to synchronize those between a host system and the MINC – with the MINC side in BASIC of course. It’s by no means complete yet, and I’m struggling a bit with the documentation. But it’s far better than having inconsistently named test programs spread over many disk images.
That’s all for now folks!
I probably forgot to mention a thing or two, but never mind – I’ll post about it if and when.
The question you might ask is ‘should I upgrade’? Not unless you need any of the things I’ve listed; if you’re running a PDP2011, you’re basically fine; there are no changes to the base system since the Feb 2, 2023 release.
However if you’re setting up a new system, or would like to play around with any of the subjects mentioned above, it’s best to grab the latest. And for that reason, I’ve removed the older versions from the download page – latest is best.
For exhaustive detail in unreadable prose, check the ChangeLog.