version 1.2 | | version 1.3 |
---|
| | |
#endif | | #endif |
| | |
| | |
int gr_set_mode(int mode) | | int gr_set_mode(u_int32_t mode) |
{ | | { |
int retcode; | | int retcode; |
unsigned int w,h,t,data, r; | | unsigned int w,h,t,data, r; |
| | |
{ | | { |
case SM_ORIGINAL: | | case SM_ORIGINAL: |
return 0; | | return 0; |
case 0: | | case SM(320,200)://0: |
if (!isvga()) return 1; | | if (!isvga()) return 1; |
gr_set_misc_mode(0x13); | | gr_set_misc_mode(0x13); |
w = 320; r = 320; h = 200; t=BM_LINEAR; data = (int)gr_video_memory; | | w = 320; r = 320; h = 200; t=BM_LINEAR; data = (int)gr_video_memory; |
break; | | break; |
case SM_640x400V: | | case SM(640,400)://SM_640x400V: |
retcode = gr_vesa_setmode( 0x100 ); | | retcode = gr_vesa_setmode( 0x100 ); |
if (retcode !=0 ) return retcode; | | if (retcode !=0 ) return retcode; |
w = 640; r = 640; h = 400; t=BM_SVGA; data = 0; | | w = 640; r = 640; h = 400; t=BM_SVGA; data = 0; |
break; | | break; |
case SM_640x480V: | | case SM(640,480)://SM_640x480V: |
retcode = gr_vesa_setmode( 0x101 ); | | retcode = gr_vesa_setmode( 0x101 ); |
if (retcode !=0 ) return retcode; | | if (retcode !=0 ) return retcode; |
w = 640; r = 640; h = 480; t=BM_SVGA; data = 0; | | w = 640; r = 640; h = 480; t=BM_SVGA; data = 0; |
break; | | break; |
case SM_800x600V: | | case SM(800,600)://SM_800x600V: |
retcode = gr_vesa_setmode( 0x103 ); | | retcode = gr_vesa_setmode( 0x103 ); |
if (retcode !=0 ) return retcode; | | if (retcode !=0 ) return retcode; |
w = 800; r = 800; h = 600; t=BM_SVGA; data = 0; | | w = 800; r = 800; h = 600; t=BM_SVGA; data = 0; |
break; | | break; |
case SM_1024x768V: | | case SM(1024,768)://SM_1024x768V: |
retcode = gr_vesa_setmode( 0x105 ); | | retcode = gr_vesa_setmode( 0x105 ); |
if (retcode !=0 ) return retcode; | | if (retcode !=0 ) return retcode; |
w = 1024; r = 1024; h = 768; t=BM_SVGA; data = 0; | | w = 1024; r = 1024; h = 768; t=BM_SVGA; data = 0; |
break; | | break; |
case SM_640x480V15: | | /* case SM_640x480V15: |
retcode = gr_vesa_setmode( 0x110 ); | | retcode = gr_vesa_setmode( 0x110 ); |
if (retcode !=0 ) return retcode; | | if (retcode !=0 ) return retcode; |
w = 640; r = 640*2; h=480; t=BM_SVGA15; data = 0; | | w = 640; r = 640*2; h=480; t=BM_SVGA15; data = 0; |
| | |
retcode = gr_vesa_setmode( 0x113 ); | | retcode = gr_vesa_setmode( 0x113 ); |
if (retcode !=0 ) return retcode; | | if (retcode !=0 ) return retcode; |
w = 800; r = 800*2; h=600; t=BM_SVGA15; data = 0; | | w = 800; r = 800*2; h=600; t=BM_SVGA15; data = 0; |
break; | | break;*/ |
case 19: | | // case 19: |
| | case SM(320,100): |
if (!isvga()) return 1; | | if (!isvga()) return 1; |
gr_set_misc_mode(0x13); | | gr_set_misc_mode(0x13); |
// { | | // { |
| | |
| | |
w = 320; r = 320; h = 100; t=BM_LINEAR; data = (int)gr_video_memory; | | w = 320; r = 320; h = 100; t=BM_LINEAR; data = (int)gr_video_memory; |
break; | | break; |
case 20: | | /* case 20: |
retcode = gr_vesa_setmode( 0x102 ); | | retcode = gr_vesa_setmode( 0x102 ); |
//gr_enable_default_palette_loading(); | | //gr_enable_default_palette_loading(); |
if (retcode !=0 ) return retcode; | | if (retcode !=0 ) return retcode; |
| | |
gr_set_cellheight( 3 ); | | gr_set_cellheight( 3 ); |
w = 160; r = 160; h = 100; t=BM_LINEAR; data = (int)gr_video_memory; | | w = 160; r = 160; h = 100; t=BM_LINEAR; data = (int)gr_video_memory; |
break; | | break; |
case 22: // 3dmax 320x400 | | case //22: // 3dmax 320x400 |
if (!isvga()) return 1; | | if (!isvga()) return 1; |
gr_set_3dbios_mode(0x31); | | gr_set_3dbios_mode(0x31); |
//w = 320; r = 320/4; h = 400; t=BM_MODEX; data = 0; | | //w = 320; r = 320/4; h = 400; t=BM_MODEX; data = 0; |
w = 320; r = 320; h = 400; t=BM_SVGA; data = 0; | | w = 320; r = 320; h = 400; t=BM_SVGA; data = 0; |
break; | | break;*/ |
default: | | default: |
if (!isvga()) return 1; | | if (!isvga()) return 1; |
w = gr_modex_setmode( mode ); | | if (mode==SM(320,240)) |
| | w = gr_modex_setmode( 2 ); |
| | else if (mode==SM(320,400)) |
| | w = gr_modex_setmode( 6 ); |
//gr_enable_default_palette_loading(); | | //gr_enable_default_palette_loading(); |
h = w & 0xffff; w = w >> 16; r = w / 4;t = BM_MODEX; data = 0; | | h = w & 0xffff; w = w >> 16; r = w / 4;t = BM_MODEX; data = 0; |
break; | | break; |
| | |
// 10=Error allocating selector for A0000h | | // 10=Error allocating selector for A0000h |
// 11=Not a valid mode support by gr.lib | | // 11=Not a valid mode support by gr.lib |
| | |
int gr_check_mode(int mode) | | int gr_check_mode(u_int32_t mode) |
{ | | { |
switch(mode) | | switch(mode) |
{ | | { |
case 19: | | case SM(320,100)://19: |
case SM_320x200C: | | case SM(320,200): |
case SM_320x200U: | | case SM(320,200): |
case SM_320x240U: | | case SM(320,240): |
case SM_360x200U: | | case SM(360,200): |
case SM_360x240U: | | case SM(360,240): |
case SM_376x282U: | | case SM(376,282): |
case SM_320x400U: | | case SM(320,400): |
case SM_320x480U: | | case SM(320,480): |
case SM_360x400U: | | case SM(360,400): |
case SM_360x480U: | | case SM(360,480): |
case SM_360x360U: | | case SM(360,360): |
case SM_376x308U: | | case SM(376,308): |
case SM_376x564U: return gr_mode13_checkmode(); | | case SM(376,564): return gr_mode13_checkmode(); |
case SM_640x400V: return gr_vesa_checkmode( 0x100 ); | | case SM(640,400): return gr_vesa_checkmode( 0x100 ); |
case SM_640x480V: return gr_vesa_checkmode( 0x101 ); | | case SM(640,480): return gr_vesa_checkmode( 0x101 ); |
case SM_800x600V: return gr_vesa_checkmode( 0x103 ); | | case SM(800,600): return gr_vesa_checkmode( 0x103 ); |
case SM_1024x768V: return gr_vesa_setmode( 0x105 ); | | case SM(1024,768): return gr_vesa_setmode( 0x105 ); |
case SM_640x480V15: return gr_vesa_setmode( 0x110 ); | | // case SM_640x480V15: return gr_vesa_setmode( 0x110 ); |
case SM_800x600V15: return gr_vesa_setmode( 0x113 ); | | // case SM_800x600V15: return gr_vesa_setmode( 0x113 ); |
} | | } |
return 11; | | return 11; |
} | | } |