Add Beta2 patch:Fix nc5 installer.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2731
This commit is contained in:
parent
24b3c2a1b8
commit
ca8b788e12
3 changed files with 52 additions and 11 deletions
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: dos_inc.h,v 1.64 2007-01-08 20:10:34 qbix79 Exp $ */
|
||||
/* $Id: dos_inc.h,v 1.65 2007-01-08 20:36:53 qbix79 Exp $ */
|
||||
|
||||
#ifndef DOSBOX_DOS_INC_H
|
||||
#define DOSBOX_DOS_INC_H
|
||||
|
@ -616,7 +616,9 @@ struct DOS_Block {
|
|||
RealPt mediaid;
|
||||
RealPt tempdta;
|
||||
RealPt tempdta_fcbdelete;
|
||||
RealPt dcbs;
|
||||
RealPt dbcs;
|
||||
RealPt filenamechar;
|
||||
RealPt collatingseq;
|
||||
Bit8u* country;//Will be copied to dos memory. resides in real mem
|
||||
} tables;
|
||||
Bit16u loaded_codepage;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: dos.cpp,v 1.97 2007-01-08 19:45:39 qbix79 Exp $ */
|
||||
/* $Id: dos.cpp,v 1.98 2007-01-08 20:36:53 qbix79 Exp $ */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -838,8 +838,8 @@ static Bitu DOS_21Handler(void) {
|
|||
break;
|
||||
case 0x63: /* DOUBLE BYTE CHARACTER SET */
|
||||
if(reg_al == 0) {
|
||||
SegSet16(ds,RealSeg(dos.tables.dcbs));
|
||||
reg_si=RealOff(dos.tables.dcbs);
|
||||
SegSet16(ds,RealSeg(dos.tables.dbcs));
|
||||
reg_si=RealOff(dos.tables.dbcs);
|
||||
reg_al = 0;
|
||||
CALLBACK_SCF(false); //undocumented
|
||||
} else reg_al = 0xff; //Doesn't officially touch carry flag
|
||||
|
@ -870,14 +870,24 @@ static Bitu DOS_21Handler(void) {
|
|||
}
|
||||
CALLBACK_SCF(false);
|
||||
break;
|
||||
case 0x05: // Get pointer to filename terminator table
|
||||
mem_writeb(data + 0x00, reg_al);
|
||||
mem_writed(data + 0x01, dos.tables.filenamechar);
|
||||
reg_cx = 5;
|
||||
CALLBACK_SCF(false);
|
||||
break;
|
||||
case 0x06: // Get pointer to collating sequence table
|
||||
mem_writeb(data + 0x00, reg_al);
|
||||
mem_writed(data + 0x01, dos.tables.collatingseq);
|
||||
reg_cx = 5;
|
||||
CALLBACK_SCF(false);
|
||||
break;
|
||||
case 0x02: // Get pointer to uppercase table
|
||||
case 0x03: // Get pointer to lowercase table
|
||||
case 0x04: // Get pointer to filename uppercase table
|
||||
case 0x05: // Get pointer to filename terminator table
|
||||
case 0x06: // Get pointer to collating sequence table
|
||||
case 0x07: // Get pointer to double byte char set table
|
||||
mem_writeb(data + 0x00, reg_al);
|
||||
mem_writed(data + 0x01, dos.tables.dcbs); //used to be 0
|
||||
mem_writed(data + 0x01, dos.tables.dbcs); //used to be 0
|
||||
reg_cx = 5;
|
||||
CALLBACK_SCF(false);
|
||||
break;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: dos_tables.cpp,v 1.25 2007-01-08 20:10:34 qbix79 Exp $ */
|
||||
/* $Id: dos_tables.cpp,v 1.26 2007-01-08 20:36:53 qbix79 Exp $ */
|
||||
|
||||
#include "dosbox.h"
|
||||
#include "mem.h"
|
||||
|
@ -108,8 +108,37 @@ void DOS_SetupTables(void) {
|
|||
|
||||
|
||||
/* Allocate DCBS DOUBLE BYTE CHARACTER SET LEAD-BYTE TABLE */
|
||||
dos.tables.dcbs=RealMake(DOS_GetMemory(12),0);
|
||||
mem_writed(Real2Phys(dos.tables.dcbs),0); //empty table
|
||||
dos.tables.dbcs=RealMake(DOS_GetMemory(12),0);
|
||||
mem_writed(Real2Phys(dos.tables.dbcs),0); //empty table
|
||||
/* FILENAME CHARACTER TABLE */
|
||||
dos.tables.filenamechar=RealMake(DOS_GetMemory(2),0);
|
||||
mem_writew(Real2Phys(dos.tables.filenamechar)+0x00,0x16);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x02,0x01);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x03,0x00); // allowed chars from
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x04,0xff); // ...to
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x05,0x00);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x06,0x00); // excluded chars from
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x07,0x20); // ...to
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x08,0x02);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x09,0x0e); // number of illegal separators
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x0a,0x2e);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x0b,0x22);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x0c,0x2f);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x0d,0x5c);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x0e,0x5b);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x0f,0x5d);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x10,0x3a);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x11,0x7c);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x12,0x3c);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x13,0x3e);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x14,0x2b);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x15,0x3d);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x16,0x3b);
|
||||
mem_writeb(Real2Phys(dos.tables.filenamechar)+0x17,0x2c);
|
||||
/* COLLATING SEQUENCE TABLE */
|
||||
dos.tables.collatingseq=RealMake(DOS_GetMemory(17),0);
|
||||
mem_writew(Real2Phys(dos.tables.collatingseq),0x100);
|
||||
for (i=0; i<256; i++) mem_writeb(Real2Phys(dos.tables.collatingseq)+i+2,i);
|
||||
|
||||
/* Create a fake FCB SFT */
|
||||
seg=DOS_GetMemory(4);
|
||||
|
|
Loading…
Add table
Reference in a new issue