Como você obtém 1024 cores no CGA? E existem realmente 1024?

Lançada em 2015, a tradução “Novo modo gráfico: CGA em 1024 cores” me impressionou muito, mas ainda não entendi como esse truque funciona, porque o artigo foi escrito por um profissional da área de computação gráfica retro e sugere que o leitor já possui algum conhecimento nessa área. Embora meu primeiro computador ( "Search" fosse um clone soviético do IBM PC / XT) tivesse CGA, eu não encontrei monitores com uma entrada composta, então tive que pesquisar no Google e descobrir como o vídeo composto funcionava. Para aqueles que também estão interessados ​​nas tecnologias “internas” de 1981, nas quais oportunidades inesperadas e não documentadas foram descobertas em 2015, reuni o material que encontrei.

1. Recursos nativos de CGA


Para um leigo, o CGA geralmente é associado a gráficos de 320x200 e uma paleta de quatro cores com cores assustadoras de ácidos, como nos jogos de 1983 Alley Cat , J-bird , Lode Runner e Tapper :




Mas o limite de 320x200x2bpp é imposto apenas pela quantidade de memória de vídeo disponível no adaptador (16 Kb) de fato, é capaz de produzir uma imagem de 640x200x4bpp - com pixels fortemente alongados na vertical.Isso é usado, por exemplo, no modo de texto 80x25 com caracteres de 16 cores e um plano de fundo e uma matriz de caracteres de 8x8 pixels. (Podemos supor que o buffer de tela neste caso leve apenas 80x25x2 = 4000 bytes.) Mas se os gráficos forem gerados nesta 640x200 de "alta resolução", 16 KB de memória de vídeo serão suficientes apenas para uma imagem em preto e branco. Esse modo gráfico era suportado, por exemplo, pelo Windows até a versão 3.0, inclusive:



Na saída, o CGA produzia um sinal digital para o qual a interface RGBI foi especialmente inventada.: duas linhas de sincronização sinalizam o início do quadro e o início da linha de varredura e quatro linhas do sinal de vídeo transmitem a cor de quatro bits do pixel atual. Mas monitores capazes de receber um sinal digital RGBI na entrada eram raros em 1981; A própria IBM começou a produzir esses monitores digitais apenas em 1983. Para usuários domésticos, a CGA teve uma segunda conclusão - o sinal de vídeo bastante composto com o qual os mestres da cena demo se uniram. Ele pode ser conectado via modulador de RF à entrada da antena de uma TV americana convencional, além de algumas televisões terem uma entrada composta especial (para conectar, por exemplo, um videocassete), que permite a entrada de um sinal de vídeo ignorando o sintonizador e evitando modulações / desmodulações desnecessárias.



A parte da fita do adaptador de vídeo, que forma um sinal NTSC composto a partir da saída digital (este é o padrão americano para televisão em cores), foi projetada apenas para o estágio de transição, até que todos os usuários de PC obtenham monitores digitais. O próximo adaptador de vídeo da IBM - EGA (1984) - suporta apenas saída digital (já de seis bits), usando um par de contatos não utilizados anteriormente na interface RGBI. Além disso, os modos de “alta resolução” não foram recomendados para uso com saída de vídeo composto, porque 640 pixels na linha de digitalização excederam os recursos do NTSC. A próxima seção explica o porquê; e a Wikipedia ilustra como o texto foi borrado no modo CGA de 80 colunas em um monitor de entrada composto:




2. recursos de TV


A televisão em preto e branco foi organizada de maneira muito direta: um feixe de elétrons percorre a tela linha por linha, e o nível do sinal de vídeo controla diretamente a potência do feixe. Durante o retorno entre as linhas e os quadros, o feixe é desligado e o sinal de vídeo transmite pulsos de sincronização. Como o sinal é completamente analógico, sua resolução horizontal não é definida: o brilho pode mudar suavemente ao longo da linha. Por outro lado, a resolução vertical é definida pela frequência de varredura horizontal (243 linhas para NTSC).

A ilustração, cuidadosamente desenhada no MS Paint, mostra como o sinal de vídeo procura um quadro que consiste em duas faixas verticais: escuro escuro e brilhante estreito. No topo, um sinal para uma linha é mostrado esquematicamente, na parte inferior, um sinal para uma sequência de linhas. Um pulso de sincronização "mais preto que o preto" é transmitido antes de cada linha . Quando a televisão colorida foi criada, era importante que as televisões em preto e branco existentes aceitassem vídeo em cores aceitável. Os americanos criaram o seguinte truque: as informações de cores são transmitidas por um sinal harmônico da subportadora



adicionado ao sinal de luminância. Em seguida, uma TV em preto-e-branco que não sabe isolar e analisar o harmônico da subportadora destacará cada pixel com um brilho correspondente ao valor médio do sinal durante o tempo de transmissão do pixel. Se a frequência da subportadora for grande o suficiente, o sinal adicional não afetará o valor médio, ou seja, no brilho exibido. Agora concordamos que o deslocamento de fase do subportador corresponde ao matiz da cor e sua amplitude corresponde à saturação; a divisão da cor em brilho, matiz e saturação corresponde ao modelo de cores YIQ .

A segunda ilustração mostra esquematicamente o sinal de vídeo para uma linha do quadro, consistindo em listras verticais coloridas. Uma explosão de cores adicional é transmitida entre o relógio e o início da linha., que define o receptor para a fase a partir da qual os turnos da subportadora serão medidos. Agora, as seções planas do sinal (isto é, com amplitude zero da subportadora) corresponderão às barras cinza (saturação zero); áreas em que o subportador corresponde na fase de explosão de cor a bandas amarelas com dois valores diferentes de saturação, dependendo da amplitude do subportador; plotagem em que a subportadora está na fase antifásica em relação à explosão de cores - a barra azul. Como o nível médio do sinal é o mesmo em todas as áreas, um receptor de televisão em preto e branco exibe todas as bandas com o mesmo tom de cinza. O NTSC exige que o sinal auxiliar seja sinusoidal, mas isso não é tão importante: a onda quadrada mostrada na ilustração ( meandro


) consiste em harmônicos com a frequência e fase desejadas, além de aditivos de alta frequência ignorados pelo receptor de televisão. A amplitude deste harmônico é maior que a amplitude meandros em4/π vezes, mas como a TV usa a amplitude da subportadora não em valor absoluto, mas em relação à amplitude extraída da explosão de cores, a exibição em cores não é afetada pela substituição de um aditivo sinusoidal por um retangular. CGA e outros dispositivos digitais primitivos geram exatamente ondas quadradas.

Para simplificar a separação do sinal principal (brilho) e do adicional (cor), o NTSC padronizou a frequência da subportadora, 227,5 vezes maior que a frequência horizontal - ou seja, para cada linha, junto com o espaçamento entre as linhas, existem 227,5 períodos de subportadora. Assim, a TV em cores americana possui uma certa resolução horizontal: o brilho ainda pode mudar suavemente ao longo da linha, mas a frequência da tonalidade da cor é limitada pela frequência da subportadora. Se a televisão receber um sinal de vídeo com uma resolução horizontal de 640 pixels, aproximadamente um terço do período da subportadora corresponde a cada pixel, e um filtro de hardware primitivo não tem tempo para identificar corretamente a mudança de fase e a amplitude da subportadora do sinal para cada pixel. Isso leva a resultados inesperados - de desfoque,como mostrado no exemplo acima, antes de criarCores "artefato" , inacessíveis por meio do adaptador de vídeo. (Eu realmente não gosto do nome "cores falsas" usadoSLY_Gna tradução de um artigo sobre 1024 cores; O significado principal da palavra artefato em inglês - “feito pelo homem, criado artificialmente” - contrasta essas cores com o “natural” para CGA e não tem nada a ver com parasitismo.)

Exatamente com a resolução horizontal, um bug de hardware no CGA foi associado: nos modos 640x200 (ou seja, h. no texto de 80 colunas) a imagem no monitor composto ficou preta e branca. A solução alternativa para esse bug era bem conhecida: você precisa definir uma moldura marrom ao redor da imagem. O fato é que a fita que forma os sinais do relógio define sua duração em ciclos de relógio do adaptador de vídeo; nos modos 640x200, esses relógios têm metade do tempo nos modos 320x200; portanto, o relógio entre as linhas do quadro também é duas vezes menor que o NTSC exige. Como resultado, a explosão de cores simplesmente não tem tempo para ser transmitida. Mas se houver uma moldura marrom em torno da imagem (a cor marrom tem quase zero deslocamento de fase, baixo brilho e saturação corresponde a uma amplitude aproximada para explosão de cores), o monitor pega o lado esquerdo do quadro como explosão de cores, não a desenha na tela e está corretamente configurado para fase da subportadora colorida.



3. Dispositivo de sinal composto CGA


Embora o sinal de vídeo digital produzido pela CGA possa ter uma resolução horizontal de até 640 pixels (ou seja, 640 alterações nos níveis de sinais digitais em uma linha), um sinal de vídeo composto pode ser considerado como tendo uma resolução de 1280 "subpixels", independentemente do modo de vídeo usado, ou seja, para cada pixel nos modos 640x200, existem dois subpixels, nos modos 320x200 - quatro. O nível do sinal (em volts) emitido pelo adaptador de vídeo para o subpixel atual é calculado pela fórmulaU=0.41+I0.3+C0.75 , em que o bitI(intensidade) é obtido diretamente da cor do pixel atual e o sinalC(chroma) é selecionado pelo multiplexador, dependendo dos outros três bits de cor (R, G, B):
RGBCCor
0 00 00 000000000…o preto
0 00 01 100001111…azul (~ 180 °)
0 01 10 011100001…verde (~ 45 °)
0 01 11 111000011…turquesa (~ 90 °)
1 10 00 000111100…vermelho (~ 270 °)
1 10 01 100011110…magenta (~ 225 °)
1 11 10 011110000…amarelo (~ 0 °)
1 11 11 111111111…branco
As cores cromáticas correspondem a um sinal de croma com um período de oito subpixels e com uma mudança de fase próxima a um múltiplo de 45 °, isto é, para um número inteiro de subpixels. Graças aos engenhosos esquemas de atraso no CGA, as mudanças de fase das cores são ligeiramente (dentro de ± 10 °) diferentes dos múltiplos de 45 ° para estar mais próximas das cores NTSC padrão .

Assim, dos 227,5 períodos de subportador em uma linha, 160 estão na imagem de saída e o restante no intervalo entre as linhas (relógio, sincronização de cores e quadro em torno da imagem). É importante que um número não inteiro de períodos da subportadora passe da sequência de cores para o primeiro pixel da linha: o primeiro pixel começa a ser transmitido a 45 °, portanto, se a linha começar com quatro pixels amarelos, o sinal de croma assumirá valores durante a transmissão dos oito subpixels correspondentes 11100001.

Brilho de pixel (luma), ou seja, o valor médio do nível do sinal para o período da subportadora, obtenhaL=0.72Cavg+0.28I , ondeCavg=RGB+RGB2 : 0,5 para cores cromáticas, 0 para preto e 1 para branco. Isso significa que, em um monitor composto em preto e branco, o primeiro modelo CGA (1981) só exibia seis tons de cinza. Nos modelos CGA posteriores (desde 1983), a adição não periódica à subportadora passou a depender dos quatro bits de cor, de modo que o brilho correspondia a uma fórmula mais complexa , o que nos permitiu exibir nosso próprio tom de cinza em um monitor preto e branco para cada um dos 16 valores de cores. Como resultado desse refinamento, as cores que diferem no brilho e são mais próximas às exibidas no digital também começaram a ser exibidas no monitor composto de cores: Bugs e defeitos de hardware nas fitas que formam o sinal composto da saída digital indicam que os desenvolvedores da CGA não estavam muito preocupados com o uso. com um monitor composto e ainda menos preocupado com o modo como os modos de "alta resolução" seriam exibidos no monitor composto. No entanto, foi essa combinação sem suporte que permitiu que os mestres demoscene espremessem o inimaginável da CGA!L=0.29Cavg+0.1R+0.22G+0.07B+0.32I






4. Recursos inesperados de CGA ...


4a) ... nos modos gráficos


Como explicado acima, a parte da linha, sombreada em uma cor, no sinal de vídeo composto se transforma em um meandro com um período de oito subpixels. O inverso também é verdadeiro: qualquer sinal composto que se repita com um período de oito subpixels será exibido como uma parte de cor única da linha, porque a subportadora harmônica extraída dela terá uma mudança de fase constante e amplitude constante. O que exatamente a mudança de fase será usada é mais difícil de prever; O artigo sobre 1024 cores mostra o resultado sem nenhuma explicação: a coluna Nybble mostra uma sequência repetida de quatro pixels no modo 640x200x1bpp, ou seja, de oito subpixels. Duas dessas seqüências ( e



01011010) correspondem a meandros com um período de quatro subpixels: não há subportadora harmônica em uma onda assim; portanto, a cor resultante é cinza. Mais quatro seqüências ( 0011, 0110, 1001, 1100) correspondem a ondas puras da subportadora - com um deslocamento de 135 °, 225 °, 45 ° e 315 °, respectivamente. Duas dessas ondas definem as cores roxa e verde padrão, as duas restantes - azul e laranja, inatingíveis por meio de CGA regular. Preenchimento de sinal a 75% (sequência0111, 1011, 1101, 1110) corresponde a um deslocamento da subportadora de fase em meio pixel, ou seja, em um subpixel; mas o resultado não corresponde exatamente à fase das cores padrão - devido aos muitos esquemas de atraso que "puxam" as cores CGA padrão para as cores NTSC padrão. Assim, são obtidos tons com uma ligeira mudança: azul turquesa, turquesa esverdeado, marrom avermelhado, vermelho púrpura. Um preenchimento de 75% aumenta o nível médio do sinal, ou seja, brilho da cor; mas não afeta a saturação, porque as “bordas” mais amplas do meandro são criadas por harmônicos de alta frequência ignorados pelo receptor de televisão. Por fim, um sinal com preenchimento de 25% corresponde aos mesmos tons de 75%, mas com menos brilho.

É ainda mais difícil prever qual será a cor quando a sequência for repetida, não a partir de pixels preto e branco, mas a partir de cores. No modo 640x200x1bpp, a cor do plano de fundo é sempre preta, mas a segunda cor pode ser selecionada entre qualquer uma das 16 cores padrão. No modo 320x200x2bpp, pelo contrário, a cor do plano de fundo pode ser selecionada de qualquer uma das 16 cores padrão e as outras três cores são determinadas pela paleta selecionada entre quatro opções. O artigo sobre 1024 cores mostra duas dessas combinações, novamente sem explicação. Pedi comentários diretamente para renomear , responsável pela parte técnica da saída de vídeo em 8088 MPH, além de implementar a emulação CGA no DOSBox; e ele me aconselhou cgaart- emulador CGA autônomo escrito por ele, capaz de trabalhar em modo batch. Adicionando uma ligação Python simples ao cgaart, eu gerei uma tabela de todos os conjuntos possíveis de 16 cores de "cores de artefato":

Tabela completa

O código para cada conjunto consiste no número do modo gráfico ( 1Apara 640x200x1bpp, 0Apara 320x200x2bpp), no número da paleta ( 0–3) e no número de cores livremente selecionáveis ​​( 0–F). Cada linha da tabela consiste em 16 quadrados correspondentes a uma sequência repetida de pixels; cada quadrado consiste em cinco bandas - saída digital, nível de sinal composto e saída no monitor composto com o primeiro modelo CGA, saída no monitor composto e nível de sinal composto com o modelo CGA corrigido. O nível do sinal composto é mostrado como a média de dois subpixels - o cgaart o calcula apenas com essa precisão. Vamos considerar com mais detalhes as linhas correspondentes aos dois conjuntos mostrados no artigo sobre 1024 cores - são conjuntos 1A0Ce0A01; mas antes disso, considere um conjunto mais simples 1A04:



um conjunto 1A04- pixels vermelhos em fundo preto - corresponde a um sinal com 50% de preenchimento e um deslocamento de 270 °, modulado por uma sequência periódica de quatro pixels. O alto nível do sinal cai nas três primeiras sequências de pixels, portanto, o quarto bit não afeta a cor resultante: por exemplo, 000xe se 001xtransforma em preto puro e 111x- em vermelho puro. As sequências zeradas do primeiro pixel ( 010xe 011x) correspondem à mudança de fase em um subpixel, ou seja, -45 ° a magenta; Segundo pixel redefinível ( 100xe 101x) - mudança de 45 ° para laranja.

Conjunto1A0C- pixels vermelhos claros em fundo preto - corresponde ao mesmo sinal, mas com uma adição não periódica, portanto seu nível baixo agora é mais alto que o preto. Como um resultado desta sequência 0001, 0010, 0011são convertidos para as mesmas cores (verde, azul-turquesa, azul e biryuzovato azul), como no caso de pixels brancos, mas agora com um brilho muito menor, porque uma fonte de sinal de nível baixo desempenha um papel de um elevado nível para o resultante. As seqüências restantes mantêm um alto nível do sinal original e as tonalidades de cores correspondentes são obtidas próximas ao conjunto 1A04, embora o brilho agora seja mais alto devido a um nível médio mais alto.

Finalmente definido0A01- fundo azul, paleta verde-vermelho-marrom, quatro subpixels em cada pixel, dois pixels em uma sequência repetida - contém quatro cores padrão (sequências 00, 11, 22, 33não causam artefatos) e suas misturas aos pares: se você adicionar dois meandros, a subportadora harmônica mudará no sinal resultante estará no meio entre os turnos dos termos. No entanto, o brilho e a saturação do resultado dependem da ordem dos termos: por exemplo, o vermelho possui um alto nível de subpixels 1–4, o verde possui 6–1, de modo que a sequência 12corta completamente o alto nível do termo vermelho e meio verde ; enquanto a sequência21mantém totalmente um nível alto do termo vermelho e meio verde. Nos dois casos, a tonalidade fica amarela, mas para a sequência 12- saturada e muito escura, enquanto para 21- insaturada e muito clara.

Portanto, existem 80 conjuntos de 16 cores disponíveis simultaneamente. Qual é a resolução real? A cor só pode ser alterada entre blocos de 8 subpixels, ou seja, 160 vezes por linha; mas o brilho é definido para cada pixel independentemente. O artigo sobre 1024 cores alerta que esses modos não podem ser chamados de "16 cores 160x200", porque "a resolução horizontal é uma questão em aberto, depende da amostragem e filtragem do sinal e varia de acordo com as formas do sinal de cor que você usa" ( transferirSLY_G) No entanto, é fácil garantir que, mesmo com um tom de cor constante, o monitor composto não exiba flutuações de brilho em 8 blocos de subpixels: preste atenção, por exemplo, ao conjunto 0A0Ada tabela completa e nele às seqüências 01e 10correspondendo a pixels verdes à luz fundo verde O brilho e a tonalidade da cor são analisados ​​bloco a bloco com o monitor composto; portanto, em vez de alternar pixels verdes de dois níveis de brilho, são obtidos pixels monótonos com um nível médio de brilho. Para uma sequência, o 10resultado é menos saturado que os termos, porque essa sequência corta o nível baixo do termo verde escuro. Portanto, na minha opinião, ao usar cores de artefato, há todos os motivos para considerar 160x200 como resolução real.

4a) ... nos modos de texto


Como mencionado no início, o CGA suporta um modo de texto de 80 cores e 80x25 com uma matriz de caracteres de 8x8 pixels, e apenas um quarto da memória de vídeo é usada nesse modo. Artesãos encontraram uma maneira indocumentadaalterne a saída para uma nova linha de texto a cada duas linhas de pixels, ou seja, saída de cada caractere apenas as duas principais linhas de pixels. No modo "meio texto" resultante de 100 linhas, são utilizados todos os 16 KB de memória de vídeo e a imagem é de 16 cores com uma resolução de 640x200 pixels. Mas, em comparação com os modos gráficos, no modo semi-texto, existem restrições bastante rígidas: primeiro, em cada familiaridade de 8x2 pixels, apenas duas cores diferentes podem ser usadas; segundo, a sequência de pixels "principal" e "plano de fundo" em cada familiaridade deve corresponder às duas linhas superiores de um dos 256 caracteres, exibidas na ROM do CGA. Mesmo com essas limitações, combinando a inconveniência de pixel art e pseudo-gráficos de texto, os assistentes conseguem criar incríveis desenhos em 16 cores:



(No artigo sobre 1024 cores, apenas um quarto desta imagem é mostrado, mas sua versão completa foi publicada separadamente - diretamente na forma de um despejo de memória de vídeo.)

Sem um corte de 100 linhas - ou seja, se a matriz de cada caractere tiver sido renderizada completamente, a parte central da imagem ficaria assim:



À direita, há uma tabela de caracteres costurada em ROM, onde as duas linhas principais de cada caractere disponíveis para uso no modo semitexto são destacadas em amarelo.

Pela primeira vez, a Macrocom decidiu combinar um hack de 100 linhas e pseudo-gráficos de texto, lançando o jogo "ICON: The Quest for the Ring" em 1984 com uma resolução de 320x200x4bpp que parecia incrível para a CGA. No entanto, mesmo os protetores de tela estáticosMacrocom foi desenhado muito pior que VileR; e durante o jogo os gráficos foram usados ​​ainda mais primitivos.




(O paradoxo é que, embora este seja um modo de texto, a exibição de texto é muito trivial: você precisa coletar cada caractere dos "fragmentos" do firmware na ROM.)

Outra limitação significativa do modo de semi-texto é que a imagem no monitor composto fica desfocada para uma aparência bastante feia . Por exemplo, um desenho VileR ficaria assim:



Mas você pode se beneficiar desse desfoque - para gerar um grande número de cores de artefato no modo semi-texto! Conforme explicado na seção anterior, qualquer sequência repetida de pixels com um período de 8 subpixels se transforma em uma cor sólida de artefato metade da largura dos caracteres no modo de 80 colunas. Isso significa que, no modo semi-texto - quando as cores principal e de fundo de cada caractere podem ser selecionadas arbitrariamente entre 16 cores padrão - para criar cores de artefato, você precisa de caracteres que tenham

  1. as duas primeiras linhas de pixels são iguais;
  2. as metades esquerda e direita dessas duas linhas são iguais.

A CGA ROM encontrou caracteres adequados para duas seqüências periódicas - 1100e 0110. A primeira sequência permite obter cores de artefato correspondentes a dois pixels repetidos no modo 320x200, ou seja, quaisquer cores das linhas 0Axxna tabela completa; o segundo são as cores dos quadrados n ° 6 e n ° 9 nas linhas 1A0x, quando a sequência 0110é exibida com símbolos coloridos em fundo preto ou símbolos pretos em fundo colorido, respectivamente. Nesse caso, a resolução real é 80x100: a área mínima para a qual você pode definir a cor corresponde à familiaridade "aparada".

Então, quantas cores de artefato podem ser exibidas no modo semi-texto ao mesmo tempo? Todas as combinações de 16 cores primárias, 16 cores de fundo e dois caracteres correspondentes estão disponíveis, portanto o autor deste truque exclama: “512 cores! É claro que existem na verdade menos, duplicatas e tons ligeiramente diferentes. ” Quando as cores principal e de fundo coincidem, é óbvio que, com qualquer símbolo, o resultado será o mesmo; portanto, na saída digital, temos 496 sequências periódicas diferentes de oito pixels. A conversão dessa saída em composto leva ao fato de que algumas seqüências se transformam no mesmo sinal de vídeo; por exemplo, 0110cinza em preto, cinza em roxo e verde claro em roxo - se transformem no mesmo tom lilás escuro:



Comparado com a tabela completa, aqui os quadrados são dobrados para maior clareza, o que nos permitiu assinar o valor de cada faixa dentro dos quadrados diretamente no diagrama. Pode-se ver que a sequência 0110corta completamente o alto nível do fundo magenta, de modo que o fundo se torne indistinguível do preto. A cor verde difere na fase da magenta em 180 °, portanto, essa sequência corta um alto nível de caracteres verdes da mesma maneira, e os caracteres verde claro se tornam indistinguíveis dos cinza. Na cartela de coresNo artigo sobre 1024 cores, você pode ver que as linhas n ° 0 e n ° 5, correspondentes ao plano de fundo preto e roxo, são quase indistinguíveis; as colunas 8 e 10, correspondentes a símbolos cinza e verde claro, também são quase indistinguíveis. De acordo com os cálculos de cgaart, tons lilás escuros correspondentes às três combinações nomeadas de parâmetros coincidem completamente; com o modelo CGA corrigido, como pode ser visto na parte inferior dos quadrados do diagrama, essas três tonalidades são diferentes.

Além dessas três combinações, o primeiro modelo CGA exibe igualmente a sequência em 0110preto, magenta claro e cinza; cinza em magenta claro fornece o cinza padrão e preto em magenta fornece o preto padrão. Por fim, como mostrado no lado direito do diagrama, a sequência1100cinza em vermelho claro dá o mesmo tom - quase padrão - de cinza, pois a sequência é 0110verde claro em roxo claro. No total, com o primeiro modelo CGA, 490 cores diferentes estão disponíveis, mas com a corrigida - todas as 496.

O clímax do artigo sobre 1024 cores é a maneira inventada de renomear para exibir no modo semitexto apenas uma linha superior de pixels para cada caractere, mas repita essa linha duas vezes. É difícil chamar um "novo modo gráfico”, Porque exige uma constante - no início de cada linha de digitalização - alteração das configurações de CGA, que ocupam o processador 8088 completamente e não deixa oportunidade de fazer mais nada em paralelo com a exibição de uma imagem de 1024 cores, por exemplo, para preparar uma animação. Mas, graças a esse truque, torna-se possível usar seqüências 0010e 0101além das duas mostradas acima. Usando quatro símbolos diferentes, é possível obter 976 seqüências periódicas diferentes de oito pixels na saída digital. E quantas cores diferentes serão obtidas após a conversão em um sinal de vídeo composto? Contei 950 com o primeiro CGA e 973 com um fixo.

Concluindo, dou uma tabela de todas as cores que podem ser obtidas no modo semi-texto. O VileR tem uma tabela semelhante, mas agrupados por tipo de monitor e não pela sequência de pixels de saída, como a minha. Sua mesa é conveniente para um artista que trabalha com um dispositivo específico; o meu é para o teórico que quer entender como essa ou aquela cor aparece no monitor.

Tabela completa

All Articles