[vcf-midatlantic] Debugging with NMI on the PC
rich.cini at gmail.com
Thu Jun 11 12:53:02 EDT 2020
Welcome to the list Wil. Here's some background on this project. I've built several "new" S100 boards from the S100Computers.com series. They've very good boards for those looking to build a new system. But, I have a ton of old S100 systems that I play with. My most recent project was restoring a Seattle Gazelle for the VCF collection and building one of my own, for example.
The below relates to getting a new S100 VGA board working on the Gazelle which runs MS-DOS 2.0 (through a serial console) but is not PC-compatible and has no BIOS as we know it (just a "monitor"). It's kind of like the Tandy 2000 in that regard -- runs DOS but isn't PC compatible from a hardware perspective. The VGA board uses a common video chip seen on the PC platform (Trident TVGA9000i) and its own BIOS which relies on calls to the PC-BIOS INT10H handler.
So, I have to "graft" the required INT10H/1DH/1FH handlers into my test program; I'm using the routines available in a "generic XT BIOS" that’s floating around the Internet. Somewhere in the call to the BIOS, it's going into la-la land and I can't regain control until hitting reset. By doing that, I lose the execution context. On the PC, there are ISA cards and related software that support this (like Periscope), but nothing that I know of on the S100 platform.
I thought that if it had an NMI handler (which it doesn't), I could run the code within DEBUG and then break-in. DEBUG traps INT03H (breakpoint) but not INT02H, so I may try adding an NMI handler to my code which just calls INT03H.
On 6/11/20, 12:27 PM, "vcf-midatlantic on behalf of ☼ wil lindsay ☼ via vcf-midatlantic" <vcf-midatlantic-bounces at lists.vcfed.org on behalf of vcf-midatlantic at lists.vcfed.org> wrote:
Hi Rich (and all),
I'm very new to the list, and way out of my league in this conversation,
but this is one of the more interesting emails to hit my inbox in a few
Can you elaborate on the "hack something together" part of the Bios
If there is some novel wiring in there, it may be an opportunity to insert
some sort of external debugger (microcontroller based or such). --Even
lighting up some external LEDs through an I/O could let you know where or
what is happening - though that may be the same as calling INT 03H .
On Wed, Jun 10, 2020 at 7:13 PM Richard Cini via vcf-midatlantic <
vcf-midatlantic at lists.vcfed.org> wrote:
> All –
> I’m working on an S100 project with my Gazelle (a VGA
> board) which is based on a standard Trident VGA chip. The BIOS on the video
> board relies on a PC BIOS (which doesn’t exist for the Gazelle) so I’ve had
> to hack something together for it to make it work. The BIOS is barfing
> somewhere in the initialization, but it’s a hard crash so resetting it to
> regain control destroys the context. I’m running under MSDOS 2.01.
> I remember that there were debuggers like Periscope or
> SoftICE that could trap NMI, but I need it to be pure character-based like
> MS-DOS debug. Does anyone know of any debuggers like this? There was one
> by Paul Vojta, which I have the code for, but that doesn’t trap NMI. I
> wonder if I could just have the NMI call INT 03H (debug break) since they
> all trap that.
> Any thoughts or help appreciated. Thanks!
> Rich Cini
Wm.Lindsay at gmail.com
@straytech at mastodon.sdf.org <http://twitter.com/strayTech>
More information about the vcf-midatlantic