Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void * vg_init(unsigned long mode) {
- struct reg86u registries;
- struct mem_range range;
- vbe_mode_info_t vmi;
- registries.u.b.intno = 0x10;
- registries.u.b.ah = 0x4F;
- registries.u.b.al = 0x02;
- registries.u.w.bx = 1 << 14 | mode;
- sys_int86(®istries);
- vbe_get_mode_info(mode, &vmi);
- range.mr_base = vmi.PhysBasePtr;
- range.mr_limit = range.mr_base + vmi.XResolution * vmi.YResolution*(vmi.BitsPerPixel);
- sys_privctl(SELF, SYS_PRIV_ADD_MEM, &range);
- video_mem = vm_map_phys(SELF,(void *) range.mr_base, vmi.XResolution * vmi.YResolution * (vmi.BitsPerPixel));
- hres = vmi.YResolution;
- vres = vmi.XResolution;
- bits_per_pixel = vmi.BitsPerPixel;
- return NULL;
- }
Add Comment
Please, Sign In to add comment