flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2 |
Author |
|
f0dder 13 Feb 2008, 10:47
Madis731 wrote: What I didn't find is how do I code a very primitive example. What are the steps, what is the process...say in 1024x768x32b@60Hz mode put a gray (808080h) pixel at position (3,2)? Write to the right place in the framebuffer - simple as that. What's interesting, though, are the steps needed to either switch graphics mode, or query the current graphics mode (including width, height, color depth and pitch... and of course the framebuffer address, we're currently doing a PCI bus scan for it (and that's obviously only for the framebuffer, not the other info)). Last edited by f0dder on 13 Feb 2008, 10:57; edited 1 time in total |
|||
![]() |
|
Madis731 13 Feb 2008, 10:53
Quote:
I wish it were - I read that there were registers to change the resolution: Intel docs wrote:
but when I Code: mov [60000h],dword 3FFh;1024-1 mov [6000Ch],dword 2FFh; 768-1 what should I do next? Reset? I don't think so - with every resolution change. I think there's a COMMIT command somewhere, but where and how to use it? |
|||
![]() |
|
f0dder 13 Feb 2008, 10:59
Well, getting a pixel plotted is as simple as writing to the framebuffer, but that does obviously require that graphics mode is set
![]() Btw, don't you need to fill out all the 60000h-60014h values? Also I doubt it's as simple as a MOV to that address, it's probably relative to device configuration space? |
|||
![]() |
|
Madis731 13 Feb 2008, 11:21
from PCI+14h you get the MMADR which is an array. 60000h is just an offset from that. (This is what I understood from VOL1)
|
|||
![]() |
|
f0dder 13 Feb 2008, 11:24
Madis731 wrote: from PCI+14h you get the MMADR which is an array. 60000h is just an offset from that. (This is what I understood from VOL1) Yeah, that's what I meant... so you don't "mov [60000h],dword 3FFh;", you "mov [RAX+60000h],dword 3FFh;", with RAX loaded with the linear address mapping for the physical MMADR ![]() (Sorry if I'm nitpicking). _________________ carpe noctem |
|||
![]() |
|
Madis731 13 Feb 2008, 11:31
I just hope this pondering is getting us somewhere. Actually because MenuetOS still hasn't got ANY graphics drivers, this is a fortunate event that Intel released such documents. I just wish I knew more about it. Don't know where to start from...
![]() EDIT: I will update this post if I find anything... 1) Doesn't help much - the only reference to "display mode" 31760701-Intel G35 Express Chipset.pdf wrote:
2) VOL_3_display_registers.pdf 2.2 Display Mode Set Sequence - doesn't explain very clearly, but might be a startingpoint. 6xxxxh 7xxxxh series registers are mentioned. 3) VOL_3_display_registers.pdf 6.6 CRT Controller Register - tells us only about CRTs, but I don't have them, I can't test them ![]() 4) http://xpefiles.com/cs/files/folders/hardware/entry578.aspx I'm making a very coarse estimation on the closeness of the two graphical cores (945's one and 965's one). If I use only the minimal components of the 965 manual, I won't run into conflicts with 'new features' missing from 945. Last edited by Madis731 on 14 Feb 2008, 12:51; edited 3 times in total |
|||
![]() |
|
f0dder 13 Feb 2008, 11:42
Well, please keep reading the documents if you have time (I don't
![]() Sounds likely that there's a COMMIT you need to trigger... I just hope the DMA command buffer stuff mentioned in the documents is only requiered for the more advanced stuff (ie., uploading textures & geometry). |
|||
![]() |
|
Madis731 13 Feb 2008, 13:40
What I'd like to do is get hardware cursor working for starters.
VOL_3_display_registers.pdf 2.10.2 Cursor A Plane Control Registers 2.10.3.1 CURBCNTR—Cursor B Control Register 6.6.12 CR0A—Text Cursor Start Register ... |
|||
![]() |
|
Goto page Previous 1, 2 < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.