How Can One change the MS-DOS prompt font color?

MS-DOS is really old, and being the grandpappy of the computers it is really hard to find support for it.

I have these tried suggestions from websites:

I have edited: Config.sys (It now says 'Menucolor= 2,0' ) C:\Windows\color.txt (It now says 'green')

Still not working.
Anyone have any idead on how to do this?


Before you suggest 'color a', Ms-Dos is not the cmd. I already tried that.
It is possible! There are multiple ms-dos viruses that have done this effectively.
I am running MS-DOS from Windows 98 on a virtual machine.

  • "I am running MS-DOS 6.22 on a virtual machine." ... I know this won't answer your question but... why?
    – danicotra
    Commented Jul 20, 2015 at 21:27
  • 1
    Whoops... I meant I am running MS-DOS from Windows 98 on a virtual machine!
    – Roke
    Commented Jul 20, 2015 at 21:55
  • 2
    I just like looking at and playing with MS-DOS. It is old and pretty cool. I'm sorry I can't fully explain. :P
    – Roke
    Commented Jul 20, 2015 at 21:56
  • 1
    @RookieTEC9 : you must be a vintage/nostalgia lover... ;-)
    – danicotra
    Commented Jul 21, 2015 at 6:19
  • 1
    @RookieTEC9 That assembler was called 'debug', a standalone program not part of msdos.sys, and it is still pretty well documented on the web. Good luck!
    – arch-abit
    Commented Jul 21, 2015 at 22:01

3 Answers 3


You can use debug to write a short COM file. When you run debug you'll get a single dash prompt, enter the following (including blank lines) and you'll get a file color.com in your current working directory:

a 100
mov ah, 06
xor al, al
xor cx, cx
mov dx, 184f
mov bh, 07
int 10
mov ah, 4c
xor al, al
int 21


It calls int 10 ah=06 to clear the screen, setting the cursor at the bottom and filling with attributes in bh. High nibble is background, low is foreground, colors are:

  • 0 = black
  • 1 = blue
  • 2 = green
  • 3 = cyan
  • 4 = red
  • 5 = purple
  • 6 = yellow
  • 7 = white
  • 8 = light black
  • 9 = light blue
  • A = light green
  • B = light cyan
  • C = light red
  • D = light purple
  • E = light yellow
  • F = light white

(Thus bit 4 is high intensity.) To get red background with black foreground change 07 to 40.

Parsing the command line args to set colors is non-trivial, so just hard code your favorite one. Or do this in debug to update it:

debug color.com
e 10a

Attribute is stored in location 010A, updating it directly is easier than typing it all again.


This cannot be done without Qbasic. We will run a small program that will modify the screen colors for the command prompt.

The screen qbasic command will be of much use.

Run this QBASIc program:


Note: you can only have digits from 0-7

  • 1
    If you do cls, the screen will revert back to the original color.
    – Roke
    Commented Nov 1, 2015 at 21:29

If you load ANSI.SYS then define the DOS prompt (for example):

c:>prompt $e[1;33m$p$g

you can change the prompt color and the prompt itself.

Changes the cmd.exe command prompt.

PROMPT [text]

  text    Specifies a new command prompt.

Prompt can be made up of normal characters and the following special codes:

  $A   & (Ampersand)
  $B   | (pipe)
  $C   ( (Left parenthesis)
  $D   Current date
  $E   Escape code (ASCII code 27)
  $F   ) (Right parenthesis)
  $G   > (greater-than sign)
  $H   Backspace (erases previous character)
  $L   < (less-than sign)
  $N   Current drive
  $P   Current drive and path
  $Q   = (equal sign)
  $S     (space)
  $T   Current time
  $V   Windows version number
  $_   Carriage return and linefeed
  $$   $ (dollar sign)

You must log in to answer this question.

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