Computer debug routines

Updated: 01/31/2019 by Computer Hope

The following debug routines are listed to help test and view extended information on your computer. However, some of them can also damage computer components or cause them not to work properly. We are providing these routines as a reference. If these cause problems with the computer they are run on, Computer Hope will not be held responsible for your actions. We recommend that only experienced computer users run these commands and that you are fully aware of the potential hazards of using these routines.

Debug ABCs

software debug

Debug is an MS-DOS command that can be used to enter machine language into the computer either to create programs or test computer peripherals by receiving back various computer machine code.


Newer versions of Windows no longer include the debug command.

Understanding responses

Several of the debug routines listed on this page as well as other of our pages return responses in hexadecimal format. It is recommended if you want to understand some of the code in these routines that you get a familiarity of hexadecimal. You can find information about hexadecimal as well as binary on our binary and hexadecimal page.

Possible issues

If during the time you are typing the debug routine you receive ^error, this is an indication that you have incorrectly typed something in the line recently completed. You can type the line again without causing any problems with the routine.

Entering debug

Debug has been included in every version of MS-DOS as well as Windows up to Windows XP. When running any of the debug routines, it is recommended that if you have Windows that you exit or shut down to get into a real DOS prompt.

Once at the MS-DOS prompt, run through the example below, this example is perfectly fine to run on any computer running MS-DOS and Windows and will not harm anything.

Type debug and press Enter.
At the debug prompt, - (small dash) type d40:00 and to get several lines of information.

(See Testing Ports for an explanation of this feedback.)

To exit out of debug type q and press Enter to get back to the MS-DOS prompt.

In some of the below debug routines, you will notice that a g is typed, then q. G tells the computer that the code type is not self-executing and must be run at this point. If completed, the program returns "Program Terminated Normally," which indicates you can now quit from the debug program.

Listing of routines

Testing ports

The below debug routine will check the ports of the computer to allow you to know if ports are being detected or not.

Type debug to get to the "-"

Type D40:0

You should get several lines; however, the first line is the only important line, which should read the following:

0040:0000 F8 03 F8 02 E8 03 E8 02 - 78 03 78 02 BC 03

F8 03 F8 02 E8 03 E8 02 78 03 78 02 BC 03

The above table shows you what the feedback means as far as a port, so if you see F8 03, this would be an indication that COM1 is being detected. If you see 00 00, this is an indication that it is not being detected, which could mean that hardware is bad or that it is disabled in CMOS.

Once you have finished looking at the information, type Q and press Enter to get out of debug.

Clear CMOS

The below debug routine will clear CMOS, BIOS, passwords, settings, viruses, and other items residing in the CMOS. During this process, you may get returned characters that are an indication that the string has been entered. If you get an ERROR, make sure you have typed the line incorrectly and that no lines have been skipped.

After typing debug, you will get "-" which is where you can begin by typing A and pressing Enter.

A <Enter>
MOV AX,0 <Enter>
MOV AX,CX <Enter>
OUT 70,AL <Enter>
MOV AX,0 <Enter>
OUT 71,AL <Enter>
INC CX <Enter>
CMP CX,100 <Enter>
JB 103 <Enter>
INT 20 <Enter>
<Enter> Note: Nothing is typed on this line
G <Enter> When you press G the above script executes, make sure you have read and agree to the above disclaimer.Q <Enter>

Then reboot, and you will get a Setup Checksum Error. Go into setup, correct all the incorrect values, time, date.

Joystick test

The joystick debug test will detect if a joystick is present or not.

Type debug from the DOS prompt once at the -.

Type i201

If you get an FF response, hold one of the main buttons on your joystick, and while holding the button down type i201 and see if a different response is given. Each button on the joystick should return a different response.


Joysticks with more than 4 to 5 buttons may not return a response for all extra buttons because these buttons are controlled through software.

If an FF is still given on each of the buttons on the game paddle or joystick, it is a good possibility that either the joystick or the joystick port is bad. If possible, attempt these steps with another known working joystick.

However, if you are receiving different responses when pressing and holding the keys on the joystick, the computer hardware is working properly.

Type q and press Enter to quit out of debug.

Extra Note

Computer Hope has experienced issues where this debug routine may not work under Windows NT. If you are currently running Windows NT, refer to our page for joystick installation procedures.

  • See joystick help page for additional help with computer joysticks.

Erasing sector two

Before doing the below routine ensure that you have read our disclaimer and that you're sure that this is safe to do on your hard drive. Some computer hard drive manufacturers may void your warranty if this routine is ran or in some situations, this can cause damage to the hard drive. Erasing sector two is useful in clearing DDO and unknown partitions. If this routine completes successfully, it will erase everything in sector two.

In the below debug routine, only type what is in bold from line 3 to 9, you will get a response if typed in properly. If you get a response continue to type the bold text as shown below in the example below.


-FCS:200 400 0<Enter>
-xxxx:0100 mov ax,302<Enter>
-xxxx:0103 mov bx,200<Enter>
-xxxx:0106 mov cx,2<Enter>
-xxxx:0109 mov dx, 80<Enter>
-xxxx:010a int 13<Enter>
-xxxx:010c int 20<Enter>
-xxxx:0110 <Enter>(without typing anything)
-g <Enter>
Program terminated normally.
-q <Enter>

Erase all hard drive information

Using a debug routine to erase the hard drive partition information is only recommended for experienced users or users who cannot to delete the partition information through fdisk.

In the below debug routine, only type what is in bold from line 3 to 8, you will get a response if typed in properly. If you get a response continue to type the bold text as shown below in the example below.

A:\>debug <Enter>
-F 200 L1000 0 <Enter>
-A CS:100 <Enter>
xxxx:0100 MOV AX,301 <Enter>
xxxx:0103 MOV BX,200 <Enter>
xxxx:0106 MOV CX,1 <Enter>
xxxx:0109 MOV DX,80 <Enter>

(80 for hd 0 or 81 for hd 1 )

xxxx:010C INT 13 <Enter>
xxxx:010E INT 20 <Enter>
xxxx:0110 <Enter>
-g <Enter>
Program terminated normally

Once this debug routine is complete, reboot the computer and all partitions should be erased. Before anything can be installed back onto the computer, you must run fdisk and recreate the partition as well as format the hard drive.

  • Additional information about fdisk is on our fdisk page.
  • Additional information about format is on our format page.

Erase hard drive and clear CMOS

Before doing the below routine ensure that you read our disclaimer as well as are sure that this is safe to do on your hard drive. Some computer hard drive manufacturers may void your warranty or this may cause damage to the hard drive when doing the example below. If this routine completes successfully, it will erase everything from your hard drive as well as your reset your CMOS values.

In the below debug routine, type what is in bold from line 3 to 17, you will get a response if typed in properly. If you get a response continue to type the bold text as shown below in the example below.

A:\>debug <Enter>
-fcs:200 400 0 <Enter>
-acs:100 <Enter>
-xxxx:010 0mov ax, 0 <Enter>
-xxxx:0103 mov ax, cx <Enter>
-xxxx:0105 out 70, al <Enter>
-xxxx:0107 mov ax, 0 <Enter>
-xxxx:010a out 71,al <Enter>
-xxxx:010c inc cx <Enter>
-xxxx:010d cmp cx,100 <Enter>
-xxxx:0111 jb 103 <Enter>
-xxxx:0113 mov ax,302 <Enter>
-xxxx:0116 mov bx,200 <Enter>
-xxxx:0119 mov cx,1 <Enter>
-xxxx:011c mov dx,80 <Enter>
-xxxx:011f int 13 <Enter>
-xxxx:012l int 20 <Enter>
-xxxx:0123 <Enter> (without typing anything.)
-g <Enter>
program terminated normally

If you are doing this debug routine to clear out a possible virus, turn off your computer, wait, and turn it back on.

-q <Enter>

Once back at DOS, reboot your computer.

When your computer comes back on from doing the above, you will get an error message as booting up the computer, such as Invalid Configuration. You must enter CMOS and set the time and date, save, and reboot again. Once rebooted, you will then need to run fdisk and recreate the partitions. Once created, you will then need to format the hard drive and proceed as normal.

Discharge old laptop batteries

The below debug routine is used for older laptop batteries (i.e. batteries made from 1990-1992), we do not recommend using this routine on any newer laptop batteries or any NiMH batteries.

A <Enter>
MOV DX,01E8 <Enter>
MOV AL,F9 <Enter>
OUT DX,AL <Enter>
INT 20 <Enter>
RCX <Enter>
10 <Enter>
W <Enter>
Q <Enter>

The above script will write to the current directory. To run this utility type dpdischg.

Reboot your computer

Implement this debug routine to reboot your computer.

E 40:72 34 12

To create a batch file that reboots your computer without having to type the above command each time, use the example below.


E 40:72 34 12


Create a sleep file


The below debug routine has also been made as a file and made available on our utility downloads page.

Type Debug

You should get a "-" begin typing the below information; after each line you may get a response, do not press Enter and type the next line after the response.

A 100
MOV SI,0082
XOR AX,3030
INT 21
OR AX,3030
MOV [0160],AX
MOV DX,0160
INT 21
INT 21
JZ 014C
JNZ 013F
INT 21
INT 21
INT 21
INT 21
JZ 012D
JNZ 011A
JMP 0142
DB " ", D, A, 24

You may cut and paste the above test into a notepad document and save the file with a .scr extension. Once saved from DOS, type: debug < name of scr that should create SLEEP.COM.

Check BIOS date

The below debug routine is to check the date of your BIOS. All BIOS dates on PC compatible computers is stored at memory address FFFF5h. To display the date of your BIOS, do the following:

At the C:\> Type debug

- d FFFF:5 L 8

After typing the above command, you should receive a string similar to:

FFFF:0000       30 34 2F-33 30 2F 39 38        4/30/98

Where 4/30/98 is the current date as set in your computer BIOS.

Additional information about the computer BIOS is on our BIOS help page.

Video card type

The below debug routine can be a way of determining the chipset on the video card in your computer without opening the computer.

At the C:\> Type debug

-d c000:0040

After typing the above command, you should receive several lines of text similar to:

C000:0040    00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00    ................
C000:0050 E9 63 7B 00 B4 10 49 27 - E9 FE 2B E9 F7 2B 50 4D .c{...I'..+..+PM
C000:0060 49 44 58 00 5B 00 00 00 - 00 A0 00 B0 00 B8 00 C0 IDX.[...........
C000:0070 00 5B 53 54 42 20 6E 56 - 49 44 49 41 20 54 4E 54 .[STB nVIDIA TNT
C000:0080 20 76 65 72 2E 20 31 2E - 31 30 20 0D 0A 00 1B 43 ver. 1.10 ....C
C000:0090 6F 70 79 72 69 67 68 74 - 28 43 29 31 39 39 38 20 opyright(C)1998
C000:00A0 53 54 42 20 53 79 73 74 - 65 6D 73 20 49 6E 63 0D STB Systems Inc.
C000:00B0 0A 00 22 6C 2C 0A 01 00 - C3 50 24 7F E8 60 36 58 .."1,....P$..'6X

As you can pick out in the above dump, this gives you enough information to determine the make and the year made on the video card. In line 4 you can see the make of this video card, which in this case is a NVIDIA TNT, which would be the Riva TNT chipset. The next line you notice the version of the card and finally the line after that is the Copyright or the year manufactured.

If you do not see any information that sounds like a video card, you can also type the following command.

-d c000:0090

The above line gives you a dump similar to the above example; however, it may have additional information about the video card. Additional information about computer video cards is on our video card help page.

Additional information

  • See our debug command page for further information and help on the command.