Ersatz-11 V7.3 is finished. CDs have been mailed to users with current update subscriptions, and the free Demo version may be downloaded from www.dbit.com/demo.html as usual.
E11 V7.3 has the following new features: - My favorite one: a BREAKPOINT command which accepts arbitrary boolean test expressions, compiles them into native x86 code (to reduce the speed penalty), and incorporates them (until disabled with BREAK/CLEAR) into the main fetch/decode loop). Examples: break pc >= 2000 and pc < 3000 and @(r4+4) = 42776 (range of code with specified value in block pointed to by R4) break ci(pc)&177400 = 104000 (about to fetch an EMT instruction) break phys(14634520) <> 3044 (location at physical address gets changed from expected value) Errors at run-time are silent. If a specified test causes a bus timeout, odd address trap, or division by 0, the test fails. Well OK division by *constant* 0 gives an error but I just mean nothing damaging happens if the registers aren't pointing where you thought, etc. - A few rare antique emulated devices: DC11 SLU. Basically similar to the DL11 (ignoring the extra CSR bits and programming it like a DL11A works), but it also has a settable baud rate and modem control which is different from how it was done on DL11s. - Also the DM11 single-speed serial mux (not that E11 minds running each line at a different speed, but the original did). It uses DMA for transmission but also for reception into an in-core FIFO which the documentation adorably calls the "tumble table". And yes this is the origin of the DM11BB modem-control option more commonly used on the DH11. There's a new command to tell DM11BBs which to attach to (the default is still the DH11 with the same controller letter). - Finally, the justifiably forgotten TR79F 1600 BPI tape controller for TR79 drives (really HP7970Es), which includes the parity track in core with each byte of tape data taking up a word, so it's a pain to program. But it had 1600 BPI pretty early. The only driver I can find for the TR79F is in the "TRDP" version of XXDP, which is on Bitsavers as a scan of a microfiche of the listing. It can be used to load the ZTRAB0 diagnostic (the only other program I know of for the TR79F), but of course the test immediately trashes your boot tape. I felt dumb. - Driver for raw ATA/SATA/ATAPI disks (DOS and stand-alone versions). - Driver for National Instruments PCI-DIO-96 digital I/O card (DOS and stand-alone versions). It's a bad fit to emulating the DRV11/DR11C (ASSIGN OA: DIO96: does work but you'd have to wire up an adapter with buffering since the drivers are rated at only 2.5 mA) but it's probably the most common digital I/O board around. Even though it's PCI (not PCIe), it's still made new (at great expense), but cheap used examples are everywhere. - Ability to use a digital I/O card to drive real display and switch registers. Wiring up a blinky-lights board for your $25 eBay PCI-DIO-96 is a lot easier than making one for current PC busses, even if the 100-pin D-shell plug is a pain (but AMP makes an IDC connector that brings it out to two 50-pin Bergs).. - SET HISTOGRAM command enables/disables histogram of PDP-11 opcode usage (which again is temporarily compiled into the main loop when enabled). HISTOGRAM command displays the results or saves them to a file. - EXAMINE/DEPOSIT /BYTE /WORD /LONG /QUAD switches support various data types besides just words. Finally. - MOUNT <tape> FILE.TAP /LENGTH:n or /SIZELIMIT:nMB enables emulation of EOT early warning flag (giving the approximate maximum length of the tape in feet or megabytes). Not generally needed (who minds an unlimited tape?), but some diags want to fill a tape with test data all the way to EOT. - ASSIGN <TTY or digital I/O device> NULL: /LOOPBACK switch. Does what you think. - Experimental POWERFAIL command simulates power failures on command, or SET POWERFAIL command schedules one at shutdown (with a core dump to a file). Thank you Oleg Safiullin for the idea! Might need some changes -- I've never dealt with power failures on a real PDP-11. - Dramatically improved timer precision in DOS and stand-alone versions. SET THROTTLE in particular is silky smooth, but this improvement affects many many things. - All commands that take a time duration as a parameter will now accept a decimal point and/or unit suffix. The default units are the same as in previous versions. So instead of SET THROTTLE DELAY=1 (microseconds), you can use SET THROTTLE DELAY=1.2 or SET THROTTLE DELAY=1200NS (values will be rounded if needed). I hadn't realized so many places use time values -- I might have missed something. There are also many bug fixes and minor changes, but most importantly: - WMSG.LOG file that grows and grows (in Windows versions). Sorry about that! That was supposed to be disabled in the released version. Well it is now. John Wilson D Bit