12

I did a little research about Digital Research's 8086 Symbolic Instruction Debugger. Short name SID86.EXE and SID.EXE in later versions. But I couldn't find some sort of version history? I would really like to know where they differ and what new features have been introduced or removed in which version.

So far I found out that DR-DOS 3.40 and DR-DOS 3.41 were both shipped with the same version 3.0 of SID and the executable file was named SID86.EXE. Probably to make it easier to distinguish that version from the CP/M's versions on other CPU platforms.

In DR-DOS 5.0 the version of SID changed to version release 3.1 and the file was renamed to SID.EXE.

In DR-DOS 6.0 the version of SID changed again to version 3.2.

But I couldn't find a version history or a changelog.

9
  • 4
    Novell DOS DEBUG (1.40 to 1.42) and DR-DOS 7.03 DEBUG (1.51) are further descendants of SID. Matthias Paul’s MPDOSTIP has some information on changes in various versions, but it has to be pieced together; for example, SID86 crashed on offset overflows, and SID 3.1 fixed that. Commented May 3, 2023 at 13:41
  • See also groups.google.com/g/comp.os.cpm/c/KG4R7ZNvHK8/m/wF6ZW1TyYj4J Commented May 3, 2023 at 15:02
  • I have a german "DR DOS 6.0" manual here, on paper. It has a chapter on SID (no exact version number given). It has a Z command to display 8087 registers, and appears not to have any support for symbols. If you have any specific questions I can try to answer them.
    – ecm
    Commented May 3, 2023 at 18:38
  • @ecm In the inbuilt help of SID86 there is a line called "E Load (for Execution) program & symbol file[s]. The symbol files are in a special format and created by XREF-86.EXE which is part of the DRI Programmer's Utilities. This collection also includes an assembler and a linker and they are suited for sid86. I tried to use SYM files in Borland and Microsoft SYM format, but it seems to be, that SID doesn't support them.
    – Coder
    Commented Jun 10, 2023 at 4:12
  • 1
    @ecm I did a little more research on my own. SID can do symbolic debugging, but it requires a symbol table with a syntax from Digital Research's RASM-86 assembler. A symbol table of Intel's ASM-86 doesn't work. The name ASM-86 was used for Digital Research's RASM-86 assembler too. Later versions of SID, like 3.x still have that feature, but it's buggy. And it was completely removed in Novell's DEBUG
    – Coder
    Commented Jun 16, 2023 at 14:25

1 Answer 1

5

Ok, I did a little in-depth research in the last couple of weeks. And I found this:

SID 1.0 (Concurrent DOS 3.1, Release Date 1983)

  • assembles and disassembles 8086 and 8087 opcodes.
  • supports symbolic debugging when symbol files in the syntax of Digital Research's RASM-86 assembler were available. Other symbol files are not supported.

SID 2.? (Release Date 1984)

SID 2.? (Release Date 1985)

SID 3.0 (DR-DOS 3.40, 3.41, Release Date 1988)

  • Symbolic debugging was somehow still there, but it was broken. The disassembly display of a label with L.labelname led to a segment address that differed by 40h. A workaround like L.labelname-40h doesn't work, because the segment address doesn't change with such a command. This bug was present up to and including SID 3.2.

SID 3.1 (DR-DOS 5.0, Release Date 1990)

  • Command filename renamed from "SID86.EXE" to "SID.EXE"
  • CS, DS, ES segment registers are preassigned after start. In 3.0 and older all segment registers point to 0000.
  • Bug fix for segment overflow. For example when doing a memory dump DFFFF SID 3.0 crashes. SID 3.1 and later do not crash.
  • SID no longer exits after running a program using the command G. Instead, the IP register is reset to the last address that was in the IP register after a single-stepped execution.
  • Special debugging support and commands for GEM were removed in SID 3.1.

SID 3.2 (DR-DOS 6.0, Release Date 1991)

  • Bug regression. A specific sequence of commands will not be accepted and acknowledged with the message "Invalid parameter". A workaround is to modify the command, e.g. For example, if you want to output a memory dump, you can workaround this bug by using an address calculation instead of a fixed address. For example, instead of d0100 use d0090+70.

DEBUG ? (Novell DOS 7.0) (I couldn't find a release version for DEBUG)

  • Command filename renamed from "SID.EXE" to "DEBUG.EXE"
  • The command syntax has been adapted to DEBUG.EXE from MS-DOS and the syntax of SID dropped. Useful functions that MS-DOS DEBUG.EXE cannot do, such as entering decimal numbers, have been retained.
  • The ability to use symbolic debugging has been completely removed.
  • Can open files with the command N (The N corresponds to E in SID 3.2) followed by parameters. The parameters can also be changed after loading by calling N /parametername. In SID 3.2, it is not possible to specify parameters for the loaded program.
  • Macros can be deleted.
  • The arithmetic operators * and / are now also allowed.
  • The complete instruction set of the Intel 8088 up to the Intel Pentium as well as all instructions of the Intel co-processors are supported. In SID 3.2, support was still limited to 8086 and 8087 instructions when using the command A - "Assembly into memory".
  • Command history with cursor keys DOWN / UP. SID <= 3.2 was limited to the last command, which could be called again with the F3 key.
  • A version specification is no longer displayed and there is none in the DEBUG memory.

I couldn't find any more information.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .