2012-01-13 3 views
1

나는 기존의 커널이나 OS을 기반으로하지 않는 내 자신의 OS (처음부터) 을하고 있습니다. 그래서 화면이 80 * 25로 나뉘어져 있다는 것을 압니다. 보통 0xB8000은 0xB8001의 문자 속성을 가질 수 있고 은 그 정도만을 알고 있습니다..jpg와 같은 이미지 파일을 읽고 픽셀 단위로 화면에 표시하는 방법은 무엇입니까?

그러나 이미지를 픽셀 단위로 화면에 표시하는 방법은 무엇입니까? 어떻게 각 픽셀을 주소 지정하고 데이터 (컬러)를 보냅니 까?

현재 0xB8000을 사용하여 화면에 텍스트를 인쇄하고 있습니다. 그래서 만약 내가 주소 0xB8000 내가 픽셀 adressing 오전? 이 부분에서 나는 분명하지 않다. 그래서 pls 도움이됩니다.

나는 처음부터 내 자신의 OS를 구축하고 있기 때문에 사용하지 않고 그래픽 라이브러리를 사용할 수 없다는 점에 유의하십시오.

나는 내가 조립

답변

1

의 80x25 그래서 "텍스트 모드"라고, 즉 메모리에 바이트가 모니터에 문자에 해당 알고에도 불구하고 C에서이 작업을 수행 할 수 있습니다. 일반적으로 비디오 어댑터를 "그래픽 모드"로 전환하면 픽셀 공간이 생깁니다.

여기에서 읽기를 시작할 수 있습니다 : CGA - Standard Text Modes.

+0

감사합니다. 그러면 텍스트 모드에서 그래픽 모드로 어떻게 전환합니까? 각 픽셀 또는 각 메모리 위치를 어떻게 처리합니까? – geek1000

+0

BIOS를 사용하는 리얼 모드에서는 인터럽트 '10h'로 처리 할 수 ​​있습니다. 죄송합니다. 세부 정보는 시간이지나면서 흐려졌습니다. http://en.wikipedia.org/wiki/INT_10H을 참조하십시오. –

+0

감사합니다. 그러나 모든 표시 픽셀에 대해 int10h를 호출하는 것이 적합하지 않을 수 있으므로 인터럽트를 호출하지 않고 어떻게해야합니까? – geek1000