Skip to content

Commit 0d4b055

Browse files
Merge pull request #5801 from Allofich/SVN
Make applicable changes from SVN
2 parents 6c4f978 + 7a36a67 commit 0d4b055

5 files changed

Lines changed: 14 additions & 2 deletions

File tree

CHANGELOG

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ Next version
4747
- Do not carriage return with a single LF('\n') (maron2000)
4848
- Fix mapper not rendering anything on SDL2/Windows (aybe)
4949
- Scale mapper according display resolution (aybe)
50+
- Added applicable changes from SVN. (Allofich)
51+
r4485: Enable writing to all planes when drawing pixels in EGA modes.
52+
r4487: Correct panning of VESA text modes.
53+
r4488: Correct comment about odd/even bit.
54+
r4490: Set MCB ownership when *blocks==total at end of DOS_ResizeMemory.
5055

5156
2025.05.03
5257
- Show TURBO status in title bar. (maron2000)

src/dos/dos_memory.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,11 @@ bool DOS_ResizeMemory(uint16_t segment,uint16_t * blocks) {
419419

420420
mcb.SetSize(total);
421421
mcb.SetPSPSeg(dos.psp());
422-
if (*blocks==total) return true; /* block fit exactly */
422+
if (*blocks==total) {
423+
/* block fit exactly */
424+
mcb.SetPSPSeg(dos.psp());
425+
return true;
426+
}
423427

424428
*blocks=total; /* return maximum */
425429
DOS_SetError(DOSERR_INSUFFICIENT_MEMORY);

src/hardware/vga_seq.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ void write_p3c5(Bitu /*port*/,Bitu val,Bitu iolen) {
207207
/*
208208
0 Set if in an alphanumeric mode, clear in graphics modes.
209209
1 Set if more than 64kbytes on the adapter.
210-
2 Enables Odd/Even addressing mode if set. Odd/Even mode places all odd
210+
2 Disables Odd/Even addressing mode if set. Odd/Even mode places all odd
211211
bytes in plane 1&3, and all even bytes in plane 0&2.
212212
3 If set address bit 0-1 selects video memory planes (256 color mode),
213213
rather than the Map Mask and Read Map Select Registers.

src/ints/int10_put_pixel.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ void INT10_PutPixel(uint16_t x,uint16_t y,uint8_t page,uint8_t color) {
168168
}
169169
case M_EGA:
170170
{
171+
/* Enable writing to all planes */
172+
IO_Write(0x3c4,0x2);IO_Write(0x3c5,0xf);
171173
/* Set the correct bitmask for the pixel position */
172174
IO_Write(0x3ce,0x8);uint8_t mask=128u>>(x&7u);IO_Write(0x3cf,mask);
173175
/* Set the color to set/reset register */

src/ints/int10_vesa.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,7 @@ uint8_t VESA_GetDisplayStart(uint16_t & x,uint16_t & y) {
832832
IO_Read(0x3da); // reset attribute flipflop
833833
IO_Write(0x3c0,0x13 | 0x20); // panning register, screen on
834834
uint8_t panning = IO_Read(0x3c1);
835+
if ((CurMode->type == M_TEXT) && (panning > 7)) panning = 0;
835836

836837
/* FIXME: Why does this happen with VBETEST.EXE and more than 1MB of RAM? */
837838
if (vga.config.scan_len == 0) {

0 commit comments

Comments
 (0)