Practice of Operation¶
Stuff goes here that goes deep into how EBTKS works.
For now, here is an interesting writeup from Everett Kaser (the author of the companion AUXROMs) on how it works.
Everett Kaser 10/27/2020 at 8:25 am
What Philip and Russell came up with is pretty incredible. Basically, you just have a very fast processor (a Teensy 4.1 microprocessor) hanging on the I/O bus (through level-shifting buffers), along with a few other minor electronics, and then everything else is software. The Teensy 4.1 (which has built-in 100 Mbit Ethernet, but not currently supported) runs at 600 Mhz, which compared to the Series 80’s 613 Khz, is 963 cycles of the Teensy clock for every 1 cycle of the Series 80 clock. That gives Teensy a fair amount of time to do sh… uh… stuff during every single cycle of the Series 80 clocks.
Think of it as a cross between a logic analyzer and a software emulator. Teensy can watch the Series 80 bus for LMAs (Load Memory Address), compare the address to see if its something it’s interested in, and then take actions (like setting up to read or write Teensy RAM that is being used to emulate Series 80 RAM, or providing ROM code bytes for emulated ROMs when the 85CPU is executing or just reading those ROMs, or doing ‘silly’ things like placing RAM right in the middle of ROM space (as it does for the AUXROMs, providing communications buffers between the Series 80 AUXROMs and the EBTKS Teensy processor, which is a little whacko when you think about it, because the Teensy processor is emulating the AUXROM, the RAM buried in it, as well as its own ‘side’ of the EBTKS/AUXROM communications that are being done through that emulated RAM ‘window’). It can also watch all of the writes to CRT control registers and CRT RAM, so even though the HP-85 CRT’s control registers aren’t readable, you can read them via Teensy. Teensy can save and or write the entire CRT RAM contents in a couple of retrace cycles (quicker than the blink of an eye). Oh, and, of course, what started it all off, if you unplug the ribbon cables from the real tape drive, Teensy can “take over” the tape controller’s I/O addresses and act just like the real tape controller, providing an emulated tape drive with emulated tape cartridges, much as my emulator does. Oh, and also I/O cards: HPIB with emulated Amigo disk drives. Oh, and…
whatever the hell you can think of.
Such as… Philip figured out that, using the 85CPU’s HOLD line, the Teensy can actually do DMA to and from the 85’s RAM, because while the 85 CPU is being held off, Teensy can drive the LMA, RD, WR lines itself allowing it to read or write whatever it wants as fast as the RD/WR lines can be toggled (i.e., as fast as the 85’s four clocks run).
Speaking of which (HOLD), the 85 CPU COULD be held off forever, and Teensy could run an emulator of the 85 much faster than the original 85, so you’d just be using the 85’s CRT and keyboard as, essentially, a dumb terminal, while the emulated 85 was running as fast as Teensy could run it, which would still work with the hardware I/O cards (of course, the speed would have to be down-tuned during those hardware conversations, but MOST of the time it’s just executing ROM/RAM code, not doing I/O).
Or you could run an entirely different OS on the Teensy, turning the 85 into whatever computer you wanted.
It’s all software, and the levers of control are in your hands. The possibilities are, quite literally, endless. It just requires time and someone interested enough to do it. All the sources are, or will be, openly available, so it just requires someone to get interested, get their hands dirty, and “away we go…”
(You don’t know how hard it’s been not to talk about this stuff for the past 2-3 months! :-)