X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fmodex16.c;h=b748ba9619fb8238f2dd590160ec640a507dbcd3;hb=0c919658552bf07959402bde5de287aa7313e23f;hp=6f8d64fa64a8810526e373e10e6a203cc9ff9849;hpb=e7560148aa2da2b398dfeb8c5ee7e49bf9deff0b;p=16.git diff --git a/src/lib/modex16.c b/src/lib/modex16.c index 6f8d64fa..b748ba96 100755 --- a/src/lib/modex16.c +++ b/src/lib/modex16.c @@ -115,6 +115,8 @@ 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; + vga_state.vga_stride=88; + cm.offset=44; break; case 2: // TODO: 160x120 according to ModeX_160x120regs return; @@ -1045,3 +1047,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"); + } +}