Utilizing unused VGA memory

Aperta
#137 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
c

Direzione di ricerca

L’issue nomina le modalità VGA 10 e 13h, Mode X, page flipping e un framebuffer, ma non indica file né test. Inizia individuando l’implementazione del display VGA pertinente e documentando l’attuale mappatura della memoria; per completare il lavoro sarebbero necessari un design concordato e la validazione del percorso framebuffer proposto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

It seems that only 64 kb of VGA memory are mapped to RAM and modes 10 and 13h are optimized to use less than 64 kb to control the screen. This means that on VGA cards with 256kb of RAM or 512kb most of the video ram is unused?

Is it possible to write a kind of frame buffer that uses page flipping and VGA X mode? X mode will reduce the usable memory to 185 kb, but that still seems plenty.

Below is what I am reading:

Performance Gains
Page flipping and Mode X are used together to overcome two major performance bottlenecks of the VGA card:

A. Eliminating Screen Tearing (Page Flipping)
Mode X is the first VGA mode that allows hardware-based page flipping, which is critical for smooth animation. Mode 13h (the standard 320×200 mode) does not allow it, resulting in noticeable screen tearing during animation.

B. Accelerated Drawing (Mode X)
Mode X's unchained planar access allows the CPU to write data to all four memory planes simultaneously. This means a single CPU write operation can affect four bytes of VRAM, effectively quadrupling the VRAM write bandwidth for operations like clearing the screen or copying large sprites (blitting), which is highly beneficial for a frame buffer approach.

Lingua principale
C
Stelle
864
Fork
114
Merge medio
1g 4h
PR unite (30g)
3

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ghaerr/microwindows

Tutte le issue di ghaerr/microwindows

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.