2 pontos por GN⁺ 2025-01-06 | 1 comentários | Compartilhar no WhatsApp

One Dog contra a pilha gráfica do Windows 3.1

Introdução

  • Ao estudar a placa de vídeo VGA, tentei resolver problemas encontrados ao mexer em um driver de vídeo antigo.
  • Tentei obter uma saída de vídeo adequada instalando o Windows 3.11 em um Asus Eee PC 1000H.

Saída de vídeo padrão do Windows 3.x

  • Por padrão, o Windows 3.x renderiza em 16 cores na resolução 640x480 do VGA.
  • Em uma tela 1024x600 do Eee PC, essa resolução é inadequada.

Problemas do driver Super VGA

  • O Windows 3.11 inclui drivers antigos para adaptadores de vídeo desatualizados, mas não suporta o Intel GMA 950.
  • O driver Super VGA suporta 1024x768 e 256 cores, porém não funciona.

Problemas do vídeo dos PCs IBM

  • A VGA é um controlador de vídeo bastante específico, projetado pela IBM nos anos 1980.
  • SVGA significa uma tecnologia mais avançada que a VGA, mas não é um padrão.

VBE (VESA BIOS Extensions)

  • O VBE é uma interface que permite ao software interagir com o adaptador de vídeo.
  • O VBE9x e o VBEMP do BearWindows tornam o VBE utilizável no Windows 9x e no NT.
  • O SVGAPatch modifica o driver Super VGA de 256 cores da Microsoft para usar o VBE.

Problemas do SVGAPatch

  • O SVGAPatch causa problemas de compatibilidade com software DOS.
  • Ao abrir o prompt do DOS, a tela é corrompida.

Estrutura do Windows 3.x

  • No Enhanced Mode, três sistemas operacionais são executados simultaneamente.
  • O gerenciador de máquina virtual cria a VM e, dentro da primeira VM, o Windows em modo padrão é executado.

Estrutura do driver de exibição

  • Ao selecionar o adaptador de vídeo no Windows Setup, vários drivers são instalados.
  • O conjunto é composto por Grabber, Display Driver e Virtual Display Device (VDD).

Como o SVGAPatch funciona

  • O SVGAPatch define um modo de vídeo específico e usa o VBE para gerenciar a memória de vídeo.
  • Ele substitui recursos de determinados adaptadores de vídeo para oferecer suporte ao VBE.

O papel do VDD

  • Programas DOS esperam acessar o hardware diretamente.
  • O Windows trata isso por meio de uma implementação virtualizada.

Conclusão

  • O SVGAPatch oferece uma saída de vídeo melhor ao usar o VBE, mas precisa corrigir problemas de compatibilidade com programas DOS.
  • O gerenciamento de estado complexo do VDD pode ser a causa do problema.

1 comentários

 
GN⁺ 2025-01-06
Comentários no Hacker News
  • É impressionante que seja possível carregar o Windows 3.x em PCs modernos e usar a VGA padrão imediatamente. Porém, em Linux/BSD modernos, sem os drivers e arquivos de configuração corretos, é difícil obter suporte a framebuffer VGA com aceleração de software padrão

    • O projeto xfree86 tentou resolver isso, mas essa abordagem não foi mantida no fork do Xorg
  • A GUI do Windows 3.1 parece mais intuitiva, eficiente e fácil de usar do que as atuais

  • O menu Iniciar do Win11 é tão inconveniente que quase não se consegue usar, exceto digitando uma palavra-chave e rezando

  • Windows NT e 2k eram o auge, e depois os gerentes de produto começaram a introduzir mudanças

  • KDE e Gnome parecem cada vez mais atraentes com o passar do tempo

  • O problema da tela corrompida ao abrir o prompt do DOS em modo janela acontece porque o prompt do DOS é executado em uma VM separada

    • A BIOS ROM de VGA pode ser um wrapper do VBE, e isso pode incluir instruções IN e OUT que se comunicam com as portas de I/O do VBE
  • Os desenvolvedores de drivers de vídeo do Windows 3.x/9x usavam a configuração de traps de porta de I/O para virtualizar o acesso ao hardware

  • O Virtual Display Device (VDD) atua como multiplexador do hardware de vídeo, enviando comandos diretamente para o adaptador VGA real quando um app de DOS está em tela cheia

  • A GUI do Windows 3.x roda numa VM de DOS, e o kernel hypervisor VMM32 faz a multiplexação com outras VMs de processos DOS

  • Ao escrever o driver de framebuffer VESA do Win9x, percebi que a forma de salvar e restaurar o estado da GPU varia conforme o fabricante

  • No DOSBox, o modo texto aparece com caracteres corrompidos, e no Eee PC algumas cores da GUI somem

  • Estou rodando Debian de 32 bits no Eee PC; o Firefox é pesado, mas o mpv funciona o suficiente para streaming de vídeo

  • Sempre sinto uma certa admiração ao ler sobre como os antigos Windows baseados em DOS funcionavam

  • Tive uma experiência em que entrei em contato com o suporte da MS para solicitar um disco de driver quando o ET4000H não era suportado no Windows 3.1

  • Tenho um EEEPC 207g e acho que seria divertido tentar jogos retrô com ele

  • Comparei as mudanças de estado entre a GUI e o modo DOS para analisar padrões

  • O design do site traz uma sensação refrescante de lembrar a era dourada da antiga internet