BETA BETA BETA! This zip file contains a beta version of "xlib06p", a watcom-compatible 32-bit protected mode subset of the great XLIB routines produced by Themie Gouthas and company. The routines were converted from 16-bit real mode assembly to 32-bit protected mode C/C++ (I used C++ filenames and some C++ constructs, but a plain conversion to C would be trivial). Functions converted by Victor B. Putz of Winged Yak Productions (a so-far nonexistent sole proprietorship). Not all of the XLIB06 functions were converted; in fact, being lazy, I only converted the functions that I use in yakIcons. Fortunately, these are what I consider the most useful functions. The most notable omissions are the vertical sync interrupt simulator routines ( partially complete ) and the triangle fill routines ( not even started ). These are the functions that have been converted and which have tested correctly: xmain.cpp ( renamed wxmain.cpp for no good reason ): WaitVsyncStart x_set_mode x_select_default_plane x_set_splitscreen x_page_flip x_set_start_addr x_hide_splitscreen x_show_splitscreen x_adjust_splitscreen x_set_doublebuffer x_set_tripplebuffer ( I left it misspelled ) x_set_cliprect x_text_mode ( only goes to 80x25 for now ) x_wait_vsync xcircle.cpp x_circle x_filled_circle xline.cpp x_line xmouse.cpp x_define_mouse_cursor x_mouse_init x_hide_mouse x_mouse_remove x_put_cursor x_show_mouse x_update_mouse MouseHandler ( not converted: x_position_mouse, x_mouse_window ) xpal.cpp x_get_pal_raw x_get_pal_struc x_put_pal_raw x_put_pal_struc x_set_rgb x_rot_pal_raw x_rot_pal_struc x_cpcontrast_pal_struc ( not converted: x_transpose_pal_struc, x_put_contrast_pal_struc ) xpbitmap.cpp x_put_masked_pbm x_put_pbm x_get_pbm ( not converted: flipping functions ) xpbmclip.cpp x_put_masked_pbm_clipxy x_put_pbm_clipxy ( not converted: "partial clipping" functions like clipx, clipy, etc ) xpoint.cpp x_put_pix x_get_pix xrect.cpp x_rect_fill x_rect_fill_clipped x_cp_vid_rect x_shift_rect x_rect_pattern -- WORKS IMPROPERLY-- JUST FILLS FOR NOW x_rect_pattern_clipped -- WORKS IMPROPERLY-- JUST FILLS FOR NOW xtext.cpp x_text_init x_set_font x_register_userfont x_get_char_width x_char_put x_printf x_bgprintf NEW MODULES! xplain.cpp-- collision detection and solid-color bitmap puts! x_pbm_to_plain x_check_collision_plain x_put_plain xscalebm.cpp -- scaling normal ( normal format ) bitmaps! x_scale_bm x_scale_masked_bm ALSO INCLUDED demo1.exe, demo1.cpp -- the watcom-compiled version of demo1.exe that was included with xlib06. It mostly works as the first, with two notable exceptions: 1) No vsync handler is active 2) The "triangle fill" demo is replaced with rectangle fills None of the text is changed! It advertises functions that have not been converted! You have been warned! icondemo.exe, demos.yar -- this is really a stub yakIcons 3 demo program that I just included so I didn't have to write a new demonstration of the x_scale_bm and xplain collision functions. xvsync.cpp -- I started to convert the vsync routines, but boy howdy did I not feel like finishing today, as I'm two weeks late with this already. I include the work I started in the hopes that someone will finish it and send me the results. assorted watcom build files-- included for the halibut. xlib06p.lib -- so you don't have to build it yourself. ACKNOWLEDGEMENTS: Of course none of this would have been possible without the original xlib, created by Themie Gouthas and enhanced by his associates. Some of the code was translated from some routines in w_modex.zip, but as I can not find the author's name anywhere, I can't include it. The xplain routines were translated from some assembly code generously donated by Tiaan H. Geldenhuys ( spelling? ), and the xscalebm routines were generously donated by John P. Slagel. AS FOR DOCUMENTATION: I recommend you get the original xlib docs from xlib06.zip; they should work okay. As for documenting xplain and xscalebm, I could do that -- but it would probably delay this a wee bit more. Look through the code-- it should be fairly self-explanatory. IF YOU WISH TO CONTRIBUTE: I'm willing to act as a hub for keeping this updated and fast. If you notice a faster way to do something I've done or wish to convert some more of the xlib routines, or finish the xvsync module, please let me know and I'll include it in the next version rather than just uploading a new version yourself. My email address is: vputz@nyx.cs.du.edu And yes, yakIcons 3.0 is still almost finished. Sorry again for the delay.