X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdos%2Fvbe.c;fp=src%2Fdos%2Fvbe.c;h=021a40f6d17affd2145c01247789fd01b710afe8;hb=8b08e899b6ffcfd2d1b31790de5b3a4412cde64c;hp=cb37ca10a51d7e7cbfd582f4282d5ba8d8ad76d4;hpb=c596cbfefb57d435cff35d0d24b1b40c2dca4fbe;p=retroray diff --git a/src/dos/vbe.c b/src/dos/vbe.c index cb37ca1..021a40f 100644 --- a/src/dos/vbe.c +++ b/src/dos/vbe.c @@ -4,6 +4,7 @@ #include #include "vbe.h" #include "cdpmi.h" +#include "logger.h" #define FIXPTR(ptr) \ @@ -26,7 +27,6 @@ static int cur_pitch; /* TODO update cur_pitch on mode-change and on setscanlen */ - int vbe_info(struct vbe_info *info) { void *lowbuf; @@ -50,7 +50,7 @@ int vbe_info(struct vbe_info *info) dpmi_int(0x10, ®s); if((regs.eax & 0xffff) != 0x4f) { - fprintf(stderr, "vbe_get_info (4f00) failed\n"); + errormsg("vbe_get_info (4f00) failed\n"); dpmi_free(sel); return -1; } @@ -130,7 +130,7 @@ int vbe_mode_info(int mode, struct vbe_mode_info *minf) dpmi_int(0x10, ®s); if((regs.eax & 0xffff) != 0x4f) { - fprintf(stderr, "vbe_mode_info (4f01) failed\n"); + errormsg("vbe_mode_info (4f01) failed\n"); dpmi_free(sel); return -1; } @@ -142,90 +142,90 @@ int vbe_mode_info(int mode, struct vbe_mode_info *minf) void vbe_print_info(FILE *fp, struct vbe_info *vinf) { - fprintf(fp, "vbe version: %u.%u\n", VBE_VER_MAJOR(vinf->ver), VBE_VER_MINOR(vinf->ver)); + infomsg("vbe version: %u.%u\n", VBE_VER_MAJOR(vinf->ver), VBE_VER_MINOR(vinf->ver)); if(VBE_VER_MAJOR(vinf->ver) >= 2) { - fprintf(fp, "%s - %s (%s)\n", vinf->vendor, vinf->product, vinf->revstr); + infomsg("%s - %s (%s)\n", vinf->vendor, vinf->product, vinf->revstr); if(vinf->caps & VBE_ACCEL) { - fprintf(fp, "vbe/af %d.%d\n", VBE_VER_MAJOR(vinf->accel_ver), VBE_VER_MINOR(vinf->accel_ver)); + infomsg("vbe/af %d.%d\n", VBE_VER_MAJOR(vinf->accel_ver), VBE_VER_MINOR(vinf->accel_ver)); } } else { - fprintf(fp, "oem: %s\n", vinf->oem_name); + infomsg("oem: %s\n", vinf->oem_name); } - fprintf(fp, "video memory: %dkb\n", vinf->vmem_blk * 64); + infomsg("video memory: %dkb\n", vinf->vmem_blk * 64); if(vinf->caps) { - fprintf(fp, "caps:"); - if(vinf->caps & VBE_8BIT_DAC) fprintf(fp, " dac8"); - if(vinf->caps & VBE_NON_VGA) fprintf(fp, " non-vga"); - if(vinf->caps & VBE_DAC_BLANK) fprintf(fp, " dac-blank"); - if(vinf->caps & VBE_ACCEL) fprintf(fp, " af"); - if(vinf->caps & VBE_MUSTLOCK) fprintf(fp, " af-lock"); - if(vinf->caps & VBE_HWCURSOR) fprintf(fp, " af-curs"); - if(vinf->caps & VBE_HWCLIP) fprintf(fp, " af-clip"); - if(vinf->caps & VBE_TRANSP_BLT) fprintf(fp, " af-tblt"); - fprintf(fp, "\n"); - } - - fprintf(fp, "%d video modes available\n", NMODES(vinf)); + infomsg("caps:"); + if(vinf->caps & VBE_8BIT_DAC) infomsg(" dac8"); + if(vinf->caps & VBE_NON_VGA) infomsg(" non-vga"); + if(vinf->caps & VBE_DAC_BLANK) infomsg(" dac-blank"); + if(vinf->caps & VBE_ACCEL) infomsg(" af"); + if(vinf->caps & VBE_MUSTLOCK) infomsg(" af-lock"); + if(vinf->caps & VBE_HWCURSOR) infomsg(" af-curs"); + if(vinf->caps & VBE_HWCLIP) infomsg(" af-clip"); + if(vinf->caps & VBE_TRANSP_BLT) infomsg(" af-tblt"); + infomsg("\n"); + } + + infomsg("%d video modes available\n", NMODES(vinf)); if(vinf->caps & VBE_ACCEL) { - fprintf(fp, "%d accelerated (VBE/AF) modes available\n", NACCMODES(vinf)); + infomsg("%d accelerated (VBE/AF) modes available\n", NACCMODES(vinf)); } - fflush(fp); + /*fflush(fp);*/ } void vbe_print_mode_info(FILE *fp, struct vbe_mode_info *minf) { - fprintf(fp, "%dx%d %dbpp", minf->xres, minf->yres, minf->bpp); + infomsg("%dx%d %dbpp", minf->xres, minf->yres, minf->bpp); switch(minf->mem_model) { case VBE_TYPE_DIRECT: - fprintf(fp, " (rgb"); + infomsg(" (rgb"); if(0) { case VBE_TYPE_YUV: - fprintf(fp, " (yuv"); + infomsg(" (yuv"); } - fprintf(fp, " %d%d%d)", minf->rsize, minf->gsize, minf->bsize); + infomsg(" %d%d%d)", minf->rsize, minf->gsize, minf->bsize); break; case VBE_TYPE_PLANAR: - fprintf(fp, " (%d planes)", minf->num_planes); + infomsg(" (%d planes)", minf->num_planes); break; case VBE_TYPE_PACKED: - fprintf(fp, " (packed)"); + infomsg(" (packed)"); break; case VBE_TYPE_TEXT: - fprintf(fp, " (%dx%d cells)", minf->xcharsz, minf->ycharsz); + infomsg(" (%dx%d cells)", minf->xcharsz, minf->ycharsz); break; case VBE_TYPE_CGA: - fprintf(fp, " (CGA)"); + infomsg(" (CGA)"); break; case VBE_TYPE_UNCHAIN: - fprintf(fp, " (unchained-%d)", minf->num_planes); + infomsg(" (unchained-%d)", minf->num_planes); break; } - fprintf(fp, " %dpg", minf->num_img_pages); + infomsg(" %dpg", minf->num_img_pages); if(minf->attr & VBE_ATTR_LFB) { - fprintf(fp, " lfb@%lx", (unsigned long)minf->fb_addr); + infomsg(" lfb@%lx", (unsigned long)minf->fb_addr); } else { - fprintf(fp, " (%dk gran)", (int)minf->win_gran); - } - - fprintf(fp, " ["); - if(minf->attr & VBE_ATTR_AVAIL) fprintf(fp, " avail"); - if(minf->attr & VBE_ATTR_OPTINFO) fprintf(fp, " opt"); - if(minf->attr & VBE_ATTR_TTY) fprintf(fp, " tty"); - if(minf->attr & VBE_ATTR_COLOR) fprintf(fp, " color"); - if(minf->attr & VBE_ATTR_GFX) fprintf(fp, " gfx"); - if(minf->attr & VBE_ATTR_NOTVGA) fprintf(fp, " non-vga"); - if(minf->attr & VBE_ATTR_BANKED) fprintf(fp, " banked"); - if(minf->attr & VBE_ATTR_LFB) fprintf(fp, " lfb"); - if(minf->attr & VBE_ATTR_DBLSCAN) fprintf(fp, " dblscan"); - if(minf->attr & VBE_ATTR_ILACE) fprintf(fp, " ilace"); - if(minf->attr & VBE_ATTR_TRIPLEBUF) fprintf(fp, " trplbuf"); - if(minf->attr & VBE_ATTR_STEREO) fprintf(fp, " stereo"); - if(minf->attr & VBE_ATTR_STEREO_2FB) fprintf(fp, " stdual"); - fprintf(fp, " ]\n"); - fflush(fp); + infomsg(" (%dk gran)", (int)minf->win_gran); + } + + infomsg(" ["); + if(minf->attr & VBE_ATTR_AVAIL) infomsg(" avail"); + if(minf->attr & VBE_ATTR_OPTINFO) infomsg(" opt"); + if(minf->attr & VBE_ATTR_TTY) infomsg(" tty"); + if(minf->attr & VBE_ATTR_COLOR) infomsg(" color"); + if(minf->attr & VBE_ATTR_GFX) infomsg(" gfx"); + if(minf->attr & VBE_ATTR_NOTVGA) infomsg(" non-vga"); + if(minf->attr & VBE_ATTR_BANKED) infomsg(" banked"); + if(minf->attr & VBE_ATTR_LFB) infomsg(" lfb"); + if(minf->attr & VBE_ATTR_DBLSCAN) infomsg(" dblscan"); + if(minf->attr & VBE_ATTR_ILACE) infomsg(" ilace"); + if(minf->attr & VBE_ATTR_TRIPLEBUF) infomsg(" trplbuf"); + if(minf->attr & VBE_ATTR_STEREO) infomsg(" stereo"); + if(minf->attr & VBE_ATTR_STEREO_2FB) infomsg(" stdual"); + infomsg(" ]\n"); + /*fflush(fp);*/ } int vbe_setmode(uint16_t mode)