I need a place to find the actual register values for VGA so that I can manually set 320x200 4-color graphics mode (BIOS mode 4h).
So far, my kernel has the registers for:
- 80x25 16-color text mode.
- 640x480 16-color.
- 320x200 256 colors.
- 320x200 Mode X.
Also, is there some way or some tool to read all the VGA registers and save them while I'm running a given video mode?
Finding 4-color standard graphics mode 4h register values
Finding 4-color standard graphics mode 4h register values
Last edited by ~ on Sat Jul 22, 2017 8:40 am, edited 1 time in total.
YouTube:
http://youtube.com/@AltComp126
My x86 OS/software:
https://sourceforge.net/projects/api-simple-completa/
Donate to get more food/programming resources/computers:
https://www.paypal.com/donate/?hosted_b ... QS2YTW3V64
http://youtube.com/@AltComp126
My x86 OS/software:
https://sourceforge.net/projects/api-simple-completa/
Donate to get more food/programming resources/computers:
https://www.paypal.com/donate/?hosted_b ... QS2YTW3V64
Re: Finding 4-color standard graphics mode 3h register value
Mode 3 is 80x25 text mode. You mean mode 4. The registers are set as follows:
Clocking mode: 09h
Map mask: 03h
Character map: 00h
Memory mode: 02h
Output register: 63h
CRTC registers: 2Dh, 27h, 28h, 90h, 2Ah, 80h, 0BFh, 1Fh, 0, 0C1h, 0, 0, 0, 0, 0, 0, 9Ch, 8Eh, 8Fh, 14h, 0, 96h, 0B9h, 0A2h, 0FFh
Attribute controller registers: 0, 13h, 15h, 17h, 2, 4, 6, 7, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 1, 0, 3, 0
Graphics registers: 0, 0, 0, 0, 0, 30h, 0fh, 0, 0ffh
You read the VGA registers like this:
- To read an attribute controller register, write the index normally and read the data from port 3C1h.
- To read the output register, read from port 3CCh.
- To read color registers, write the starting index to port 3C7h and read color triplets sequentially from port 3C9h.
- To read any other register, write the index normally and read the data from the corresponding data port.
Clocking mode: 09h
Map mask: 03h
Character map: 00h
Memory mode: 02h
Output register: 63h
CRTC registers: 2Dh, 27h, 28h, 90h, 2Ah, 80h, 0BFh, 1Fh, 0, 0C1h, 0, 0, 0, 0, 0, 0, 9Ch, 8Eh, 8Fh, 14h, 0, 96h, 0B9h, 0A2h, 0FFh
Attribute controller registers: 0, 13h, 15h, 17h, 2, 4, 6, 7, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 1, 0, 3, 0
Graphics registers: 0, 0, 0, 0, 0, 30h, 0fh, 0, 0ffh
You read the VGA registers like this:
- To read an attribute controller register, write the index normally and read the data from port 3C1h.
- To read the output register, read from port 3CCh.
- To read color registers, write the starting index to port 3C7h and read color triplets sequentially from port 3C9h.
- To read any other register, write the index normally and read the data from the corresponding data port.