[DOSEMU Logo]
DOSEMU.org

| Home | | Developer Releases | | Stable Releases | | Documentation |

Home
README
Technical README  - 0.97.10
HOWTO
DANG
EMUfailure
Misc
Next Previous Contents

6. Video Code

I have largely reorganized the video code. Be aware that a lot of code is now in a different place, and some files were moved or renamed.

6.1 C files

video/video.c

global variables, init/cleanup code video_init(), video_close(), load_file(), video_config_init()

video/int10.c

int10 emulation (formerly int10.h), Scroll, clear_screen, char_out, set_video_mode

video/vc.c

console switching code (formerly video.c)

video/console.c

console mode routines

video/et4000.c, video/s3.c, video/trident.c

card-dependent console/graphics switching routines

video/vga.c

console mode? graphics?

video/terminal.c

terminal mode video update routines (ansi/ncurses)

video/X.c

Xwindow stuff

6.2 Header files

video/vc.h

def's relating to console switching (formerly include/video.h)

include/video.h

def's for general video status variables and functions

6.3 Notes

  • we now have 'virtual' video support. Every video front-end defines a static, initialized structure 'Video_xxx' (e.g. Video_console) which contains (mostly) pointers to the appropriate routines for certain tasks.

    Please use this when implementing new video front ends! (See video/video.h for more info)

  • most of the video code & defs is removed from emu.c and emu.h (now mostly in video/video.c)
  • int10.h no longer exists (now in video/int10.c)
  • sigalrm now again checks the dirty bit(s) in vm86s.screen_bitmap before calling update_screen.

    At the moment, it doesn't seem to achieve much, but it might help when we use mark's scroll detector, and will be absolutely necessary for a good X graphics support.

    Note that for all video memory modifications done outside of vm86 mode we must now use set_dirty() (defined in int10.c). this is currently disabled. To enable it, set VIDEO_CHECK_DIRTY to 1 in include/video.c.

6.4 Todo

  • cleanup terminal/console mode initialization (currently called from video_init() in video.c) termioInit(), termioClose() should probably be split up somehow (i.e. general/terminal/console)
  • fix bug: screen is not restored properly when killing dosemu in graphics mode
  • properly implement set_video_mode() (int10.c)
  • cursor in console mode ok?
  • put int10.c into video.c?
  • put vc.c into console.c?

Next Previous Contents
 
The DOSEMU team