console acronis SWSoft TVGAScreen TDOSScreen
Последовал
совету и–таки получилось расковырять TVGAScreen в старом Акронисе.
Первые результаты таковы: внутренний буфер имеет 4 байта на ячейку. Голубенький фон кодируется 16#00005320#, в которых 20 — это определённо пробел. Верхний левый угол окна кодируется 16#00C07120#, затем 16#00407141#, 16#00407163# и т. п. кодируют надпись на заголовке окна «Acronis: …», причём, эти буквы — белого цвета, с тенью и поверх текстуры заголовка. При этом старший бит цвета символа в TDOSScreen используется, чтобы сделать 512 символов в текстовом режиме, но этот функционал и в графическом режиме TVGAScreen дублируется. Номер символа, таким образом, 9битный, разорванный на 1+8бит, как и в 512–символьном текстовом режиме. Красный крестик сверху справа у окна кодируется 16#00401F3B#, 16#00401F3C# — вот как раз, похоже, из доп.символов с номерами выше 256. Левая граница окна кодируется 16#00401D09#, правая — 16#00401D0A#. Серый фон окна — 16#00000520#. Левая нижняя граница — 16#00401D0F#, нижняя — 16#00401D06#, правая нижняя — 16#00401D10#.
Поставил несколько экспериментов. Гипотеза с цветами подтвердилась, но не совсем. Если я правильно интерпретирую наблюдения, старшие биты — это цвет символа, а младшие биты — цвет фона. А в реализации TDOSScreen, надо полагать, в знакогенераторе всем символам шрифт инвертировали, и, таким образом, в режиме 512 символов получили возможность использовать 16 цветов для символов и 8 для фона, а не наоборот, как будет, если просто поставить разные шрифты для разных значений старшего бита цвета символа. Ну и заварили же кашу кулхацкеры в этом вашем SWSoft''е! Могли бы выложить сорцы, чтоб не пропадали, всё равно у Acronis уже другой движок.
Эксперимент 1 с байтом цвета.
Вот так представлена в консольном буфере TVGAScreen панель инструментов
А это — выбранная линия с круглым краем, другой край не вошёл
А здесь — нижние кнопки, правда, одна из них, наверное, должна быть активной. Я перехватываю момент отрисовки, и в этот момент в буфере уже должна быть кнопка с фокусом на ней, а не экране DOSBox она ещё не отрисована.
Мне кажется, вот такая незамысловатая графика была бы для админов хорошей золотой серединой между суровостью tty и жирностью x11, vnc и т. п.