X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fmodex16.c;h=6a4fbe1c5f819bfa01246b98a5d9438435143ad3;hb=9f7214fd9c7455cdde58349d0be24c4bd0343ab5;hp=6f8d64fa64a8810526e373e10e6a203cc9ff9849;hpb=e7560148aa2da2b398dfeb8c5ee7e49bf9deff0b;p=16.git diff --git a/src/lib/modex16.c b/src/lib/modex16.c index 6f8d64fa..6a4fbe1c 100755 --- a/src/lib/modex16.c +++ b/src/lib/modex16.c @@ -115,6 +115,10 @@ void modexEnter(sword vq, boolean cmem, global_game_variables_t *gv) cm.clock_select = 0; /* misc register = 0xE3 25MHz */ cm.vsync_neg = 1; cm.hsync_neg = 1; + + cm.scanline_div2=1; /* CRTC[0x17] bit 2 */ + cm.scan_double=0; /* CRTC[0x09] bit 7 */ + cm.max_scanline=4; /* CRTC[0x09] bit 4-0 */ break; case 2: // TODO: 160x120 according to ModeX_160x120regs return; @@ -1045,3 +1049,30 @@ modexWaitBorder() { // spin } }*/ + +void bios_cls() { + VGA_ALPHA_PTR ap; + VGA_RAM_PTR rp; + unsigned char m; + + m = int10_getmode(); + if ((rp=vga_state.vga_graphics_ram) != NULL && !(m <= 3 || m == 7)) { + unsigned int i,im; + + im = (FP_SEG(vga_state.vga_graphics_ram_fence) - FP_SEG(vga_state.vga_graphics_ram)); + if (im > 0xFFE) im = 0xFFE; + im <<= 4; + for (i=0;i < im;i++) vga_state.vga_graphics_ram[i] = 0; + } + else if ((ap=vga_state.vga_alpha_ram) != NULL) { + unsigned int i,im; + + im = (FP_SEG(vga_state.vga_alpha_ram_fence) - FP_SEG(vga_state.vga_alpha_ram)); + if (im > 0x7FE) im = 0x7FE; + im <<= 4 - 1; /* because ptr is type uint16_t */ + for (i=0;i < im;i++) vga_state.vga_alpha_ram[i] = 0x0720; + } + else { + printf("WARNING: bios cls no ptr\n"); + } +}