Still on the theme of unusual hardware… in my junk pile there’s one of these rather special little parts:
As the label on the PCB says, this is a 486 pod for a Periscope IV debugger. The Periscope Company of Atlanta, GA was a respected supplier of hardware-assisted debuggers in the late 1980s and early 1990s.
A look at the bottom side should make it more apparent where and how such a pod is installed:
The pod sits between the motherboard and the CPU. It contains several SRAMs, and a connector for a rather large 50-wire flat ribbon cable. This cable is then connected to an ISA board plugged into another system. I have the board and cable as well, but they are still waiting to be photographed.
The pod is essentially a processor bus probe. It snoops on all external processor traffic and sees all memory and I/O accesses initiated by the CPU. This was the greatest strength of the Periscope hardware, but also its downfall.
The problem was that once CPUs started using internal cache, a Periscope debugger was no longer able to see the whole picture. Yes, it was possible to disable the internal cache, but that killed processor performance. The aggressive burst reads used by 486s also didn’t help, as the CPU liked to access memory it didn’t “need”.
The Periscope boards were not cheap (something on the order of $5,000), but they were significantly more capable than a pure software debugger and still significantly cheaper than a full-fledged ICE.
On 286 and earlier CPUs, Periscope implemented the functionality provided by the debug registers on 386 and later processors. A huge advantage of the Periscope debugger was that it did not require any software to be installed on the target system. That made it suitable for debugging adapter card ROMs, boot loaders, and similar software where a traditional software debugger was not of much help.
In the 1990s, the market for products of The Periscope Company shrank to the point where the business was no longer viable. Software debuggers got better, the CPUs had better debugging capabilities, it was much harder to apply the technology to processors with built-in cache, and last but not least, there were far fewer potential customers as the industry consolidated.
Now a question to the readers: Have you ever used a Periscope hardware debugger? Or a similar product like Atron? Do you still have one, and if so, does it work? And does anyone have a spare 386 pod for Periscope IV?
I used a Periscope I board. The third and final revision of the board was a full-length ISA card with 512KB RAM which was accessed via a window (default D000h) and was bank-switched. The RAM was write-protected and write-enabled via a special I/O port sequence to prevent software from overwriting the debugger code. The board had an NMI breakout switch attached to it so that you could break into the debugger at any time. Since the board had 512KB RAM the entire debugger and its tables could be loaded into memory at startup and remain resident without using any conventional or upper memory (besides the 32KB memory window). The Periscope I board was a lot cheaper than the Periscope IV board, I believe it was around $500.
The previous revisions of the Periscope I boards had less RAM: the revision 1 board had 16KB and the revision 2 board had 56KB so part of the debugger software used conventional memory with those. They also produced an MCA version of the Periscope I revision 3 board. They never made a PCI board.
I used Periscope to extensively study DOS internals. It had a “short boot” command which would reboot the system and leave interrupt vectors intact. I patched several versions of DOS to not reset the INT 1-3 vectors so that I could use Periscope to debug device drivers and step through SYSINIT.
Note: I believe the Periscope Company was around until 1995-1996.
Mine is a Periscope IV Rev.2. Big ISA board, lots of memory chips on it. I hope it still works, last time I fired it up was about 10 years ago 🙂
Didn’t they have a Periscope III board for the 386 ? I never used the III or IV boards as they were very expensive so few people had them. I actually had all 3 revisions of the Periscope I board; they allowed you to upgrade for a discount by returning the older board. The Periscope I was a much more economical solution since it was really just a bankswitched memory board with write-protection and the ability to generate a NMI though this was much better than something like Soft-ICE since you could run in real mode and still have the debugger always available which used little (rev. 1 and 2) or no (rev. 3) conventional memory.
Searches turn up surprisingly little information about Periscope Company and its products though I did find that there were specific pods to allow the Periscope IV board to work with the 286, 386 and 486. I couldn’t find any info on the Periscope III and I don’t remember the difference between the III and IV boards but both were very expensive.
There was also a Periscope II board which provided a NMI breakout switch but no RAM so the entire debugger had to load into conventional memory. Later they produced Periscope/EM software which could load the debugger into extended memory using QEMM or 386MAX. I don’t think EMM386 was ever supported.
OK, the CPU-specific POD is what I remember. I only have the 486 one, but I was pretty sure there was at least a 386 pod available as well.
One thing I did find out is that Periscope products were designed by Brett Salter. He wrote a few articles for the Programmer’s Journal in the 1980s.
With a bit of luck, I still have the printed documentation for the Periscope IV. If I find it, I’ll try to scan it and convert to PDF. Actually I vaguely remember that the documentation covered all the products, since the software was the same.
Yes the Periscope software was the same though different modules were loaded depending on what board you had. I have versions 5.31 and 5.40 of the software. The software works with or without the boards and supports using extended memory with QEMM, 386MAX and Netroom. I recall that they also had debugger software for OS/2 1.x and Windows 3.x but I never used either of those.
They also had a separate product called CV/ICEing which was an add-on for DOS CodeView which I developed for them under contract.
Found this from a text scan of Byte Magazine (June 1988) on archive.org:
■ Periscope I includes a half-length
board with 56K of write-protected RAM;
break-out switch; software and manual for
■ Periscope II includes break-out switch;
software and manual for $175.
■ Periscope II-X includes software and
manual (no hardware) for $145.
■ Periscope III includes a full-length
board with 64K of write-protected RAM,
hardware breakpoints and real-time trace
buffer; break-out switch; software and
manual. Periscope III for machines run-
ning up to 8 MHz is $995; for machines
running up to 10 MHz, $1095.
REQUIREMENTS: IBM PC, XT, AT, or close
compatible (Periscope III requires hardware
as well as software compatibility); DOS 2.0 or
later; 64K available memory; one disk drive;
an 80-column monitor.
That was revision 2 of the Periscope I board. Revision 3 came out around 1990 and had 512KB of write-protected RAM and cost $595. Now that I read this I think the Periscope III board did some sort of ISA bus snooping.
I could only dream of something like that… I always wondered why OS/2 didn’t have a ‘debug’ VM so to speak, as you could even debug MS-DOS through a v86 task…
The kernel debugger allowed debugging nearly any task. However, an 80386 doesn’t lend itself toward easily virtualising anything other than an 8086.
OS/2 was quite popular for DOS and Windows developers to debug software.
I’ve been using Periscope with breakout switch based on triggering NMI directly on the motherboard for some time back in ’90. It was great debugger. There has been even version for Windows called Periscope/W – I still have the manual for it but unfortunately the disks are gone. It was superior before SoftIce I think 2.x came out. A lot of malware analysis has been done using Periscope. There was even an older version which used a lot less memory but has been lacking “window” interface.
Does anyone still have a copy of the software?
SoftIce was popular because it was powerful and didn’t need the extra hardware, but for firmware and OS development, I expect folks would have still used Periscope. Periscope could do things that no software-only debugger could.
I have not yet found my manual but I do have the software. If you search for ‘PERIS531.ZIP’ you’ll find something. I have a few additional versions in my archive; just leave a comment if you’re interested.
Yes, I am interested 🙂 I do have 5.31 version from the web but I would like to check out other too. Maybe I will be able to find my breakout switch one day.
Periscope was developed before SoftICE and 386 cpus weren’t so popular at the time so debug breakpoints based on x86 debug registers that were part of SoftICE from the begging could be only implemented in hardware like the one Periscope had.
As a side note I’ve tried running the version 5.31 in DosBOX but no luck – it hangs during loading files to debug using run.com I have to try it on DOS VM. I haven’t tried yet to wake the debugger up by issuing int3 but PrintScreen key also seems not to be working. Anyway Periscope is great debugger and the hardware abilities at the time were amazing.
Yes, SoftICE needed a 386 to run at all while Periscope goes back to the days of PCs and XTs. Back then if one wanted a memory breakpoint, hardware had to be used. Periscope and the Atron were the two major products in the 1980s.
With a 386, I’d say both Periscope and SoftICE had their strengths and weaknesses. But with a 486, the internal cache hid much of the memory traffic from Periscope and the product fell by the wayside. I am not aware of anything similar in the Pentium days and onward, all hardware debuggers were extremely expensive and rare and software-only debuggers did almost everything developers needed.
Nowadays I’d argue that emulators/hypervisors fulfill the role that Periscope once played. There’s nothing more fun than stepping over code that switches between real and protected mode 😀
I recall now there was another debugger tool from Persicope Co. targeting windows called WinScope. I wonder if anyone still has a copy of it? Never used it personally.
In November 1984 issue of Programmer’s Journal is an interview with Brett Salter from Data Base Decisions. Periscope – Building a Hardware Board for the IBM PC
I am happy to report that I’ve been able to run Periscope under VirtualPC with Win95 DOS. Not every version I’ve got from different source work but at least 5.00 is able to load sample.com. It’s great to see the same good screen after so many years.
Dosfan do you still have a copy of CV/ICEing? I guess it wouldn’t run without the board but it would be great to preserve this software. Secondly I have a leaflet from Periscope Company stating that there was a similar product for Turbo Debugger. Do you know anything about it?
CV/ICEing does not use the Periscope boards but it does require 386MAX because it uses protected-mode and requires memory manager support to access ring 0 features like debug register breakpoints and paging (used for memory breakpoints). QEMM didn’t have the necessary support and neither did EMM386 which was barebones. I don’t recall anything about anyone writing a version for Turbo Debugger, CV/ICEing was exclusively for CodeView. Obviously the Microsoft tools were more widely used than the Borland tools.
As for the Periscope software, it could be run without the board but the software loads in conventional memory and could be overwritten. Note later versions of the Periscope software could use a memory manager (386MAX, QEMM or Netroom) but of course this requires running in v86-mode. Again EMM386 was barebones and had no similar external API which programs could use.
So it seems that CV/ICEing was quite similar in concept to Periscope/EM then? What was a difference? Could you describe it a bit more?
The software I have a leaflet for is PopUp Periscope. Do you know anything about it? Is should be a companion to Periscope IV model.
CV/ICEing was an addon for CodeView which added new commands to set hardware (debug register), memory and I/O breakpoints. This was a separate package and had nothing to do with the Periscope software.
Periscope/EM was a version of the Periscope software which in addition to using one the Periscope boards could also load in a memory manager (386MAX, QEMM or Netroom) and use extended memory. The memory manager had to have a backdoor API to directly access its page mapping which is why EMM386 is not supported. I believe that Periscope version 5.31 (1992) was the last version that only supports the boards, without a board the software loads in conventional memory. 5.40 (1993) is the first EM version and I think the final version was 5.41.
Thanks for clarification dosfan. Do you have a copy of any of this software? I do remember I’ve been using software only Periscope version which occupied very little memory but (if I recall it correctly) was without any windows and colors. This could be some early version I suppose. It would be great to collect all versions in one place.
Look in the file PSHELP.TXT, it lists all of the commands. I believe /W sets up the windows and colors. Periscope uses a DEBUG-like command line by default.
I have versions 5.31 and 5.40, I believe 5.31 can already be found online and I have 5.40 archived as I never really used it as I didn’t need the EM support since I had the Periscope I board and always ran DOS in real mode.
I still have the original binder with manual so I know perfectly well about the /W command. But I am sure there was a version without any windows support. Is there any chance you could send me the 5.40 version?
I’m pretty sure older versions of Periscope didn’t have the window support but I don’t recall how far back that was. I owned all three revisions of the Periscope Model I board and each came with updated software but I don’t remember the version numbers as that was too long ago – I originally bought the 16KB rev 1 board in 1987, upgraded to the 56KB rev 2 board later that year and finally upgraded to the 512KB rev 3 board in 1990. I received a free upgrade to the 5.31 software in 1992 which is what is on my DOS partition. I would have to dig up 5.40 which was the first EM version. There was a 5.41 version but I lost that one due to a bad floppy disk.
I doubt you will find much info about Periscope online. It was originally a professional hardware debugger so few people spent the extra money for it which is why Soft-ICE was popular (since I owned Periscope I never used Soft-ICE). The person who developed the Periscope hardware and software was Brett Salter. A while ago I read that he had left the computer field and went into custom furniture making or something along those lines.
Could be worth mentioning that Brett Salter wrote quite a few articles for various trade magazines in the 1980s.
I just checked and it looks like Periscope 5.31 has EM support so I’m not sure what 5.40 added over 5.31.
Pingback: Periscope Manuals | OS/2 Museum
I never had the Periscope hardware version, but I did have (and use heavily) the version which was software and a switch which hooked into the buss. I was doing MS-DOS assembly development, and Periscope combined with the Brief editor was programming nirvana back in the day. (Hmm, wonder where all those goodies have gotten too? HONEY! – have you seen… )
Ah, the NMI breakout switch. A very clever and very simple device 🙂
I used Periscope II software only with NMI switch on PC 8086 computers in mid 80-ties. I think i was the first to create it as out of the box debugger, which did not interfere at all with DOS environment. To achieve it, I loaded Pericope, cheated my 640K PC to think it has only 512K of available memory by tweaking the system (I don’t remember how), then I copied the periscope software to upper RAM not recognized by DOS, then performed boot (not reset) and I received DOS having out of the box debugger, loaded in upper segments. All this was before QEMM was available. It was a lot of fun and creativity, I received all the functionality of Periscope I needed in software only.
I acknowledged Periscope, may be that gave them idea to load it to extened memory later.
Very cool. IIRC some Periscope models came with extra memory on the board where the debugger could be loaded. You had the same functionality without the extra hardware, even if it cost a bit of RAM.
Modifying the word at 40:13 is a pretty good way to “hide” conventional memory. So that’s what you probably did.
I sure do hate resurrecting a thread that has been dormant for 5 years, but a question about Periscope debugger came up on the PC/MOS github recently and a search turned up this blog page. Anyone know where someone could purchase or download a copy of this software?
Thanks in advance!
See if this helps: https://www.os2museum.com/files/periscope-tools.zip
Thank you for the link! I have shared it over to the folks on the PC/MOS github to see if that is what they are looking for.