Как мне написать текст разными цветами в DOS? - PullRequest
3 голосов
/ 28 февраля 2010

Как мне написать текст в DOS, настраивая каждый символ на свой цвет?

Ответы [ 5 ]

3 голосов
/ 28 февраля 2010

Зависит от вашего языка программирования.

Вы можете сделать это из командного файла:

  1. Добавить ansi.sys в config.sys
  2. Введите текст, используя соответствующие Экранирующие коды ANSI
2 голосов
/ 28 февраля 2010

В качестве альтернативы уже предложенным методам (1. с использованием ansi.sys или 2. с использованием прерывания 10h), если вы используете CGA-карту или видеокарту в CGA-совместимом текстовом режиме, видеобуфер имеет адрес 0xB800 и вы можете написать прямо там. Каждый символ на экране представлен двумя байтами в буфере, первый представляет собой код символа ASCII, а второй - атрибут видео символа (цвет переднего плана - 4 бита, цвет фона - 3 бита и (ужас) мигающий бит).

1 голос
/ 28 февраля 2010

Вы можете использовать функцию 10H Подфункция 10h

ah = 10h
al = 10h
bx = color register
ch = green
cl = blue
dh = red

Я набираю функцию, потому что она помечена ассемблером, однако вам всегда нужно иметь полную книгу обо всех функциях DOS.

1 голос
/ 28 февраля 2010

Вы можете использовать Экранирующие коды ANSI , как описано в в этом вопросе , который в основном был тем же вопросом для C ++. Этот ответ должен четко показывать, как использовать escape-коды.

0 голосов
/ 28 февраля 2010

Ваш вопрос не очень понятен, но если вы пытаетесь записать текст в терминале разных цветов, Коды ESC ANSI - это то, на что вы хотите посмотреть.

Вы действительно хотите сделать это в сборке? (согласно вашему тегу)

...