
2. What you should know about INSIDE:
If you are not able to insert the plug easily, don't try with brutality.
Check if the plug really fits into the connector or not. Ground yourself by
touching a screw or a slot cover before inserting the loopback plug, so that no
damage by static discharge may occur. Make sure that the port you want to test
is really suitable for the loopback plug. If you are not totally sure that the
port is suitable for the loopback plug, do not insert the plug. INSIDE uses
loopback plugs for parallel (female DSUB25), serial (male DSUB9 or DSUB25), an
game ports (female DSUB15).There are however other devices that use the same or
similar connectors:
DSUB 9 |
DSUB 15 HD female |
DSUB 15 female |
DSUB 25 female |
others |
device |
female
|
male |
- |
- |
- |
- |
1 |
- |
external SCSI connector |
- |
- |
- |
1 (Network) |
- |
BNC and / or Western / RJ45 |
Network card; Metal clamp attached to the DSUB 15 connector |
- |
2 |
- |
- |
- |
- |
Game card for 2 digital joysticks |
1 |
- |
- |
- |
- |
- |
CGA / EGA / MDA |
1 |
- |
- |
- |
1 (printer) |
- |
Hercules |
possibly 1 |
- |
1 |
- |
- |
- |
VGA, DUSB9 perhaps on older VGA cards |
- |
- |
- |
2 (Joystick) |
- |
- |
Game card |
- |
- |
- |
1 (Joystick / MIDI) |
- |
3-5 mini-jack sockets, perhaps volume regulator |
sound card |
1 |
- |
- |
- |
- |
DIP switches, 2 Cinch sockets |
Genoa SuperEGA |
- |
- |
1 |
1 |
- |
- |
Matrox MGA Millenium |
- |
- |
- |
1 (Joystick / MIDI) |
- |
2 mini-jack sockets,2 Cinch sockets (gold) |
Creative Labs SoundBlaster AWE 64 Gold |
- |
- |
- |
1 |
- |
2 Mini-DIN sockets |
FAST DV Master Video card |
- |
- |
- |
1 |
- |
1 Mini-DIN connector (S-VHS), 1 cinch socket, 1 antenna socket, 1 mini-jack
socket |
Grand TV Capture |
- |
- |
- |
- |
1 |
2 cinch sockets |
very expensive sound card |
If INSIDE should not start, add the switch /Debug=On
on the command line and turn off all tests. If INSIDE still crashes,
please let me know.
If INSIDE works with all tests disabled, start it again with the switch /Debug=On and enable the tests one after another.
Turn off all the tests that cause INSIDE to crash in the
INSIDE.INI file.
- Some things, like the graphics card, are displayed on several pages with
partially contradictory results. The reason is that I implemented several
methods of detecting some hard- and software that return more or less precise
results.
- Version numbers, e.g. VESA and PCI version, are often encoded in different
ways. See chapter "Version numbers"
in the appendix for detailed information.
- Under Windows 2.03, INSIDE runs but doesn't return to Windows.
- At least Windows 3.11 for Workgroups simulates some drivers (e.g. network).
Page 2 - CPU and FPU:
- The 487SX co-processor could be detected as 486DX (INSIDE will probably
display "486DX"), because the only difference is an
electrically not connected pin that makes it impossible to insert the 487SX
improperly. When a 487SX co-processor is inserted, the 486SX is turned off.
According to the c't magazine 7/1991, page 55f., the computer also works if the
486SX is removed. With some little changes, even a 486DX can be installed
instead of a 487SX.
- The Intel Pentium Overdrive processor (P54CT, 125/150/166 MHz) for Pentium
processors (P54C, 75..133 MHz) is detected as "Intel Pentium (P54C)".
Normally, this Overdrive processor should return type 1 (Overdrive) when CPUID
is executed, but the Intel engineers (Those who're dancing all the time in the
commercials ?) forgot to tell them, so that these CPUs return 0 (Original OEM)
as type. (found in: "Intel Processor Identification and the CPUID
Instruction", Intel Application Note AP-485, Order Number 241618-007,
06/1997)
- Nearly all Cyrix CPUs were and are manufactured by other companies, too,
but they can't be distinguished from the "original" processors,
because the chip itself is always the same. This is valid for all Cyrix-clones
with the exception of Texas Instruments TI486DX4, newer TI486DX2, and the
TI486SXL-series. When INSIDE displays "Cyrix" as CPU
manufacturer, the CPU's manufacturer could also be one of these:
- Cx486SLC/DLC: SGS-Thomson (?), Texas Instruments
- Cx486DX/DX2/DX4: IBM (486BLDX/BLDX2), SGS-Thomson, Texas Instruments
- 5x86/6x86: IBM, SGS-Thomson
- 6x86MX: IBM
- The CPUID values of the IDT C6 processor
are programmable. If the IDT C6 is in real mode, or the switches
ForcedRDMSR and
ForcedWRMSR are activated, the processor
can be detected, although the CPUID values have been changed. Therefore, the
CPU's factory default values are restored temporarily.
- The CPU detection is more precise, if INSIDE executes a CPU reset, if the
CPU's reset value was saved by the BIOS like on many IBM PS/2 models, or if the
INSIDE.SYS device driver was loaded. This reset
doesn't work on all machines (if it doesn't work, the computer could restart as
if you pushed the reset button) and only in real
mode, the reset can be skipped with the switch
CPUReset. Executing this reset, INSIDE can
discriminate e.g. i487SX and i486DX CPUs and can detect processors like
RapidCAD, i376, IBM SLC-series and others.
On some 386 and 486 CPUs, the manufacturer can be found by the CPU stepping. If
a Cyrix CPU is found, the revision and the stepping (port $22/$23, index $FF)
are displayed if the value is not $FF.
- At least OS/2 Warp 3 and MS-DOS 6.20's EMM386 fake a 80386SX CPU. All CPUs
that support
CPUID or that have a Cyrix ID are detected
correctly. If the built-in CPU does not support neither CPUID nor Cyrix ID it
will be displayed as 80386SX. (On systems on 808x-, 8018x- or 80286-based
systems, OS/2 Warp 3 and EMM386 do not work.)
- Computers with some rare, old BIOS versions could crash during CPU reset.
In this case, disable the switch CPUReset.
- When the computer is in
protected or
V86 mode, CPUID
and clock measuring using the TSC are disabled,
unless QEMM is used. You can enable them by using the switch
ForcedRDMSR, but some versions of EMM386
will make trouble, i.e. the system crashes without any comment or messages like
"Exception XXX at XXXX ...", "Invalid
Opcode" or similar followed by many letters and numbers for
programmers and the invitation to end the current program or to restart the
computer will appear on the screen. In this case, the computer should be
restarted, because the system is most likely unstable in this condition. This is
not an INSIDE error, but a bug in EMM386 that opposed to QEMM does not allow the
privileged commands CPUID and RDMSR to be executed by DOS programs.
- For the following processors, INSIDE displays the processor clock (tested
processors are mentioned in rectangular brackets). In some (rare) cases, the
processor clock that is diplayed could be wrong, e.g. the Chips &
Technologies 3860x processors are detected as 80386 processors if INSIDE can't
detect the Reset-ID. In this case, the processor clock that is displayed is
about 20% higher than the real processor clock. The clock measurement using the
TSC only works in
real mode or in
V86 mode if QEMM is loaded. (see switch
ForcedRDMSR):
- 8086/8088
- 80186/80188
- 80286 [Am80286-12]
- 80386 [i386SX-16, Am386DX-40]
- Chips & Technologies 38600/38605
- IBM 386SLC/486SLC/486SLC2
- Cyrix Cx486 [Tx486DLC/e-40, ST486DX2-66, TI486DX2-80, Cx486DX4-100]
- Intel i486, AMD Am486/Am5x86 [i486SX-25, iDX4-100]
- IBM 486DX/DX2/BLDX/BLDX2
- UMC U486/U5
- Cyrix 5x86/MediaGX [5x86-100]
- NexGen Nx586
- Intel Pentium [Pentium-90]
- Cyrix 6x86, 6x86MX [6x86-P166+, 6x86MX-PR200]
- all CPUs with TSC (AMD K5 / K6, Cyrix
6x86MX, IDT C6, Intel Pentium / Pentium Pro / Pentium II) [AMD K6-233,
Cx6x86MX-PR200, iPentium-75 / -90 / -100 / -133, iPentium-MMX-166]
- For several processors, additional information is displayed:
- 808x, NEC / Sony V20 / V30, 8018x: Interrupts acknowledged
immidiately after segment register change. On other computers this line does
not appear, because the test can only be run on computers with a system clock of
about 15 MHz or below (the fastest 808x/V20/V30/8018x should run at 10 or 12
MHz).
- 80386: POPA-/POPAD-Bug: This bug exists on nearly all 80386
processors and doesn't mean that the processor is of inferior value or
defective, the software manufacturers bypass this bug, the CPU manufacturers
(AMD) copied this bug for compatibility.
- AMD K5: Information about on-chip caches, TLBs and special features
like branch prediction. (Not yet tested, because we don't have such a CPU for
testing. Please let us know whether the detection
works properly.)
- AMD K6: Information about on-chip caches and TLBs. (Not yet tested,
because we don't have such a CPU for testing. Please
let us know whether the detection works properly.)
- Cyrix CPUs: various information, at the time for the following
processors: Cyrix Cx486 (SLC, DLC, SLC2, DLC2, SRx, DRx, SRx2, DRx2, SRu, DRu,
SRu2, DRu2, S, D, S2, D2, DX, DX2, DX4), Cyrix 5x86, Cyrix 6x86, Cyrix 6x86MX.
When a Cyrix 5x86 is detected, INSIDE checks whether Cx5xFDD is loaded or not.
Cx5xFDD is a driver I wrote that enables floppy disk access in Write-Back cache
mode when a Cx5x86 is working in a mainboard without BIOS support for this CPU.
- Intel Pentium: FDIV-Bug. Well-known bug in the Pentium
FPU, appears on 60/66 MHz (P5) and 75/90/100 MHz
(P54C) types.
- Intel Pentium Overdrive (iPODP): Chip too hot. If the
OnChip fan of the iPODP is out of order, one bit in the
MSRs is set. INSIDE reads this bit and if the
bit is set, a warning message will be displayed. In this case you should open
your computer and check, if the processor fan still rotates. (This test only
works in real mode or if QEMM is loaded.
See also switch ForcedRDMSR.)
- Intel Pentium Pro / Pentium II: Information about on-chip caches
and TLBs. (Not yet tested, because we don't have such a CPU for testing.
Please let us know whether the detection works
properly.)
- INSIDE also differentiates different FPU
manufacturers. If no manufacturer is displayed, a normal, Intel-compatible FPU
is installed. IIT and Cyrix FPUs can be distinguished. INSIDE doesn't display
the exact name of the FPU but the manufacturer and the compatibility
(8087/287/387). If the FPU is integrated into the CPU, INSIDE displays "Built-in".
Page 4 - BIOS Services
- On Pentium mainbaords that are equipped with the Intel 82430FX (Intel
internally called it "Triton") or Intel 82430HX chipset (maybe others,
too), the OnBoard Enhanced IDE controller is not detected. The reason is both
the PCI BIOS and the controller itself, because Intel didn't declare the
controller as a logical device but as a subfunction of the PCI-to-ISA bridge,
and the PCI BIOS only looks for logical devices.
Page 5 - Memory
- When INSIDE displays "Missing xxxx bytes DOS Memory - please
read the documentation" and less than 640 KBytes conventional
memory, although you have installed 640 KBytes or more, this can have different
causes:
- You are using an AT-style computer with a BIOS that reserves 1 KByte of
conventional memory for variable data (e.g. harddisk parameters). This Kbyte can
be made available, if you search the CMOS setup for an entry that is set to "DOS
1 KByte" or similar and change this setting.
- You're using a harddisk controller with a BIOS (e.g. eIDE controller,
TEKRAM IDE cache controller DC-6x0) and you have activated something like "INT
13 Shadowed". This setting is in most cases the fastest, but 1 or 2 KBytes
of conventional memory get lost.
- You've got another device that reserves DOS memory (please give me
information about this).
- You're working in an OS/2 DOS box.
- You're using a disk manager that occupies DOS memory (cp.
1.2.12.)
- Your system is infected by a memory resident virus. Reboot your system from
a write-protected disk and start a virus scanner. Hint: Microsoft Antivirus
failed in most tests, shareware scanners like McAfee Scan, Turbo Antivirus,
F-Prot etc. are very much safer.
- When EMM386 (MS-DOS/Novell DOS 7) is loaded, INSIDE displays at least 16
MBytes behind "Last Physical Page" (tested on PCs with
4 and 8 MBytes RAM).
Page 6 - MCBs and Interrupts
- When QEMM 7.04 is used under MS-DOS 7.00, the last MCB in the first 640
KBytes of memory is one paragraph too long, i.e. the next MCB would be located
at the address A000:0000 (video RAM) instead of 9FFF:0000 (DOS RAM), the next
block in the list would be A001:0000 instead of A000:0000. In this case, that
might also appear under other circumstances, INSIDE displays "Warning:
The size entry of this MCB is 16 bytes too big.".
- INSIDE uses the following shortcuts for the
MCBs' owners and types:
- Shortcuts "Owner":
- DR DOS - excl. UM = DR-DOS excluded Upper Memory
- 386MAX - UMB Ctrl = 386^MAX UMB Control Block
- 386MAX - lock out = 386^MAX locked out memory
- Shortcuts "Type":
- PSP = definitely a PSP (marks: INT $20 at offset 0, INT $21/RETF
at offset $0005, PSP owns MCB prior to PSP)
- PSP ? = INT $20 mark is present, one of the other marks is
missing.
- ??? = die INT $20 mark is missing
- Dev-Ext = Device driver extension
- IFS = Installable file system
- Buffr/X = Buffers in EMS (MS-DOS
4.01 only, CONFIG.SYS: "BUFFERS=... /X")
- Lastdrv = Lastdrive
Page 7 - Interrupt Vectors
- On this page, two abbreviations are displayed for each interrupt vector.
The first one shows into which area the interrupt vector points ("Where"),
the second one shows on what command the vector points ("What").
A sign between "Where" and "What" shows that the actual
interrupt vector is not the same as the data stored when INSIDE was started. For
the vectors $00, $02, $1B, $23, $24, $34..$3F and $75 this is quite normal,
because Borland Pascal, with that INSIDE was written, needs these vectors. These
differences are marked by a "*", only the vector
stored during the start of INSIDE is displayed. Sometimes, interrupt $05 is also
changed by INSIDE and is the marked with a "*".
Vectors used by INSIDE can be marked with a "!" when
they're located outside INSIDE. The interrupt $2F can be changed, too, by INSIDE
if the Interrupt $2F was not defined when INSIDE was started (DOS versions prior
to 3.0). Other changed vectors direct to a program running in the background,
but could also be a hint for a virus, this is displayed by a
red (underlined on Hercules graphics
cards) exclamation mark. The appropriate line shows the vector when INSIDE was
started and "--- modified ---" at the place of "Usual
Use", the next line starts with "now"
instead of the interrupt number and shows the actual vector and "Usual
Use". A red (underlined)
question mark marks questionable IRQ handlers, i.e. IRQ handlers in the VECT,
BDAT, SCRH, SCRM, SCRC, FRAM or HMA areas and IRQ handlers wit $00, IRET or RETF
as first byte.
- first abbreviation (Where):
Abbreviation |
Area (linear) |
Meaning |
VECT |
$00000000..$000003FF |
Interrupt vectors |
BDAT |
$00000400..$000006FF |
BIOS aata |
IO |
$00000700..[system dependent] |
IO.SYS / IBMBIO.COM / PTSBIO.SYS |
DOS |
[system dependent] |
MSDOS.SYS / IBMDOS.COM / PTSDOS.SYS / IO.SYS (MS-DOS 7/Windows 95) |
SCRH |
$000A0000..$000AFFFF |
screen memory for high resolution graphics |
SCRM |
$000B0000..$000B7FFF |
screen memory for monochrome graphics |
SCRC |
$000B8000..$000B7FFF |
screen memory for colour graphics |
VGA |
$000C0000..$000C7FFF |
VGA ROM BIOS |
FRAM |
[system dependent] |
EMS Page Frame |
ADAP |
$000C8000..$000EFFFF |
Adaptor ROM, EMS Page Frame, Upper Memory
Blocks |
BIOS |
$000F0000..$000FFFFF |
Main ROM BIOS |
HMA |
$00100000..$0010FFFF |
High Memory Area |
- second abbreviation (What):
Abbreviation |
Meaning |
IRET |
Vector points to a command to end an interrupt, i.e. this vector is not
used. Exception: IRQ vectors may not point to IRET ! |
RETF |
Vector points to a normal jump-back-command. A direct call of this vector
will probably cause a system crash. |
$00 |
Vector points to $00, possibly data. |
NOP |
Vector points to a NOP command (no operation). Used as a mark by some
programmers. Possibly data. Vectors in MS-DOS 6.22's MSDOS.SYS seem to be
executed over NOPs on principle. |
WRAP |
Vector points to a command that is located in a segment's last byte
($xxxx:$FFFF). Totally harmless on XT-style computers, on AT-style computers,
calling this interrupt can cause a general protection violation (Exception 13).
During the development of a program, the NOP can be replaced by an INT3 so that
the debugger can follow interrupts. |
JMPS |
Jump SHORT, jumps over a short mark in most cases. |
JMPN |
Jump NEAR, jumps to another point in the same segment, in most cases
historical target addresses are kept by this. |
JMPF |
Jump FAR, jumps somewhere else, e.g. to create jump targets for programs in
UMBs or HMA in the first 640 KBytes of memory. |
Page 11 - Input and Output
- At least Windows 3.11 for Workgroups and Windows 95 disturb the UART
detection on the port connected to a serial mouse.
- Under OS/2, FIFO UARTs (16550) are only detected if COM_DIRECT_ACCESS
is set to ON in OS/2's program options setup.
- Under DOSShell 5.00 with task switcher, INSIDE runs but the serial port IRQ
detection is disabled because INSIDE doesn't distinguish between DOSShell with
task switcher and Windows.
- The IMOUSE mouse driver Version 4.3 from J.Bond Computer Systems Corp.
is not detected by INSIDE, we could not find out why this happens but this bug
only appeared with this particular driver. We found this driver in 6 different
languages, the file names are IMOUSE.COM (English), IMAUS.COM (German),
IMUIS.COM (Dutch), IRATON.COM (Spanish), IMOUSEI.COM (Italian) and ISOURIS.COM
(French).
- When a SoundBlaster with DSP Version 3.xx
is detected (SB Pro), INSIDE reads port $388 to detect which FM synthesizer chip
is installed on the card. Older cards have an Yamaha OPL2, newer cards have an
OPL3 synthesizer. Some clones have other synthesizer chips that cannot be
detected.
- When a SoundBlaster with DSP Version 4.xx
is detected (SB 16/32), INSIDE reads the IRQ and DMA channels from the mixer
registers $80 and $81.
Page 19 - Device Drivers
- IO.SYS (resp. IBMBIO.COM) and MSDOS.SYS (resp. IBMDOS.COM) are detected
always, other drivers are detected with MS-DOS 4.00 or newer, DR-DOS 5.00 or
newer and Novel DOS 7 (only MS-DOS 6.22 tested, according to DOS 5 für
Programmierer [DOS 5 for programmers], the detection works with MS-DOS 4 and
5 and DR-DOS 5.00).
- The following character drivers are detected and shown more detailed:
- HiMem
- ANSI
- EMM (memory managers like QEMM, EMM386 etc.)
- KDrive (German keyboard driver) by M. Austermeier
- Mouse
- IFSHLP
- INSIDE.SYS
- DOS internal drivers (NUL, CON, AUX, PRN, LPTx, COMx, CLOCK$)
- Microsoft power manager extension (POWER$ and CLOCK$)
- CDROM hardware driver listed by MSCDEX
- NOFLOPPY.EXE (A. Foken)
- The following block drivers are detected and shown more detailed:
- SRDisk (ReSizeable RAMDisk) by Marko Kohtala
- Laplink III
- Stacker/Stacker Anywhere
- PCMCIA ATADRV.EXE
- PCMCIA PCMATA.SYS
- Norton Utilities v5+ Diskreet
- Microsoft DoubleSpace/DriveSpace
- Reference of the attribute bits:
Bit |
Character Drivers |
Block Drivers |
since DOS version |
Meaning |
since DOS version |
Meaning |
15 |
1.0 |
always 1 in character drivers |
1.0 |
always 0 in block drivers |
14 |
3.1 |
1 = supports IOCTL Read and IOTCL Write |
3.1 |
1 = supports IOCTL Read and
IOCTL Write |
13 |
5.0 |
1 = supports Output until busy |
5.0 |
1 = driver can't detect Media ID independently |
12 |
3.1 |
1 = local device |
3.1 |
always 0, reserved |
11 |
3.1 |
1 = supports Open and Close |
3.1 |
1 = supports Open, Close and Removable Media |
10 |
1.0 |
always 0, reserved |
1.0 |
1 = unknown, used by DRIVER.SYS |
9 |
1.0 |
always 0, reserved |
1.0 |
1 = unknown, used by DRIVER.SYS |
8 |
1.0 |
always 0, reserved |
1.0 |
always 0, reserved |
7 |
5.0 |
1 = supports IOCTL Query |
5.0 |
1 = supports IOCTL Query |
6 |
2.0 |
1 = supports Generic IOCTL |
2.0 |
1 = supports Generic IOCTL |
5 |
1.0 |
always 0, reserved |
1.0 |
always 0, reserved |
4 |
1.0 |
1 = driver uses INT $29 for character output |
1.0 |
always 0, reserved |
3 |
1.0 |
1 = clock driver |
1.0 |
always 0, reserved |
2 |
1.0 |
1 = NUL Device |
1.0 |
always 0, reserved |
1 |
1.0 |
1 = standard input |
MS 4.0 DR 3.41 |
1 = supports 32 bit sector numbers |
0 |
1.0 |
1 = standard output |
1.0 |
always 0, reserved |
DR-DOS is for the most part compatible to MS-DOS 3.31, for this table,
DR-DOS can be seen as MS-DOS 3.31 (except block driver bit 1). Novell DOS 7 is
for the most part compatible to MS-DOS 6.x, for this table, Novell DOS 7 can be
seen as MS-DOS 6.x.
Page 21 - DOS Drives
- At least Windows 3.11 for Workgroups with 32 bit file access disturbs
FAT information.
- Under Windows 95B, MS-DOS compatible values for number and size of clusters
are displayed. MS-DOS can't handle more than 65520 clusters, so that up to 64
sectors (32 KBytes) are joined to one cluster on bigger harddisks. FAT32
partitions can have far more smaller clusters that can't be handled under DOS.
To keep compatibility, the partition data is "translated" for DOS
programs.
- Under MS-DOS 7.10, the FAT information for diskettes is not displayed
correctly. The DOS functions $1B (Get FAT Info, current drive) and $1C (Get FAT
Info, any drive) are apparently not implemented correctly under MS-DOS 7.10
(from Win95 OSR2), but at least different than all earlier versions including
MS-DOS 7.00 (from Win95).
Page 22 - Current Directories
- Under OS/2, no information is available on this page.(If anyone can tell me
how to get this information under OS/2, please let me
know.)
Page 23 - Drive Parameters
- The boot sector cannot be read under OS/2. (If anyone can do this in a DOS
program, please let me know how !)
- The DOS disk parameter block for FAT32 partitions is not shown, because
FAT32 partitions are not detected as local drives.
Page 25 - Quarterdeck
- QEMM disables itself when Windows is started, so that it can not be
detected when INSIDE runs inside a Windows DOS Box.
- IBM 386SLC, IBM 486SLC/SLC2, IBM 486BL/BLDX2 ("Blue Lightening"
series)
- UMC and NexGen CPUs
- Cyrix CPUs (except those mentioned under 7.2.1.)
- Intel CPUs (except those mentioned under 7.2.1.;
e.g. Pentium Pro, Pentium II, i376, i386CX, i386EX, i386SL, i486SL, i487SX,
RapidCAD)
- AMD CPUs (except those mentioned under 7.2.1.)
- Weitek Coprozessor
- OS/2 except Warp 3 and Warp 4
Documentation: Copyright © 1997 by Hendrik Foken
Program:
Copyright © 1997 by Alexander Foken