VESA바이오스 함수로 그레픽모드 변환시 AX에 4F03h를 넣고 BX에 118h등을 넣고 INT10하면 우선 그레픽 환경설정은 되잖아요.
그런데 여기 홈페이지 관련 자료는 영문이고 또 다른 곳의 자료는 VESA바이오스 함수 강좌중에 정확히 어떻게 점.선등을 메모리에 출력하는지는 나와 있지가 않내요.
혹시 어떻게 구현하는 건가요?
소스도 좀 구현해 주세요???
그런데 여기 홈페이지 관련 자료는 영문이고 또 다른 곳의 자료는 VESA바이오스 함수 강좌중에 정확히 어떻게 점.선등을 메모리에 출력하는지는 나와 있지가 않내요.
혹시 어떻게 구현하는 건가요?
소스도 좀 구현해 주세요???
죄송하지만, 저는 소스를 구해달라거나 내용 구현을 바라는 요구는 받지 않습니다.^^'(이해해주시길-)
구현이 아닌 힌트를 드리겠습니다.
마약 VESA 모드 0x13일 경우-
그 모드로 전환이 되었다면,
간단히 AH 에 0x0C를
AL 에 색상을 그리고 CX엔 X좌표 DX엔 Y좌표를 넣고 0x10번 인터럽트를 호출하면 점이 찍힙니다.
아래 코드를 님에게 맞는 언어로 바꾸어 쓰시면 되겠습니다.
예제-
union REGS uRegs;
regs.h.ah = 0x0C; /* function 0Ch = pixel plot */
regs.h.al = color;
regs.x.cx = x; /* x location, from 0..319 */
regs.x.dx = y; /* y location, from 0..199 */
int86(0x10,&uRegs,&uRegs);
->
mov ah, 0Ch
mov al, 15h
mov cx, 100
mov dx, 100
int 10h
혹은, 비디오 메모리 영역(0xA0000000 등)에 직접 데이터를 써 넣는 방법이 있습니다.
아래의 방법처럼 말이죠... .
typedef unsigned char byte;
byte far *VGA = (byte far*)0xA0000000L;
unsigned short offset;
...
offset = 320*y + x;
VGA[offset] = color;
각각의 VESA모드에 대한 자세한 정보는 데이터 시트를 분석해 보시는 것도 좋을듯 합니다.
도움이 되었길 바라겠습니다.
>VESA바이오스 함수로 그레픽모드 변환시 AX에 4F03h를 넣고 BX에 118h등을 넣고 INT10하면 우선 그레픽 환경설정은 되잖아요.
>그런데 여기 홈페이지 관련 자료는 영문이고 또 다른 곳의 자료는 VESA바이오스 함수 강좌중에 정확히 어떻게 점.선등을 메모리에 출력하는지는 나와 있지가 않내요.
>혹시 어떻게 구현하는 건가요?
>소스도 좀 구현해 주세요???
>
>