Add very simple and not entirely correct upcase table. Makes doswin32 happy.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3488
This commit is contained in:
		
							parent
							
								
									ee5f6c5a92
								
							
						
					
					
						commit
						b10cd0e073
					
				
					 3 changed files with 18 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -16,7 +16,7 @@
 | 
			
		|||
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* $Id: dos_inc.h,v 1.82 2009-10-04 14:28:06 c2woody Exp $ */
 | 
			
		||||
/* $Id: dos_inc.h,v 1.83 2009-10-28 21:45:12 qbix79 Exp $ */
 | 
			
		||||
 | 
			
		||||
#ifndef DOSBOX_DOS_INC_H
 | 
			
		||||
#define DOSBOX_DOS_INC_H
 | 
			
		||||
| 
						 | 
				
			
			@ -627,6 +627,7 @@ struct DOS_Block {
 | 
			
		|||
		RealPt dbcs;
 | 
			
		||||
		RealPt filenamechar;
 | 
			
		||||
		RealPt collatingseq;
 | 
			
		||||
		RealPt upcase;
 | 
			
		||||
		Bit8u* country;//Will be copied to dos memory. resides in real mem
 | 
			
		||||
		Bit16u dpb; //Fake Disk parameter system using only the first entry so the drive letter matches
 | 
			
		||||
	} tables;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,7 @@
 | 
			
		|||
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* $Id: dos.cpp,v 1.120 2009-10-04 14:28:07 c2woody Exp $ */
 | 
			
		||||
/* $Id: dos.cpp,v 1.121 2009-10-28 21:45:12 qbix79 Exp $ */
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -69,6 +69,7 @@ static Bitu DOS_21Handler(void) {
 | 
			
		|||
 | 
			
		||||
	char name1[DOSNAMEBUF+2+DOS_NAMELENGTH_ASCII];
 | 
			
		||||
	char name2[DOSNAMEBUF+2+DOS_NAMELENGTH_ASCII];
 | 
			
		||||
 | 
			
		||||
	switch (reg_ah) {
 | 
			
		||||
	case 0x00:		/* Terminate Program */
 | 
			
		||||
		DOS_Terminate(mem_readw(SegPhys(ss)+reg_sp+2),false,0);
 | 
			
		||||
| 
						 | 
				
			
			@ -924,13 +925,18 @@ static Bitu DOS_21Handler(void) {
 | 
			
		|||
				reg_cx = 5;
 | 
			
		||||
				CALLBACK_SCF(false);
 | 
			
		||||
				break;
 | 
			
		||||
			case 0x02: // Get pointer to uppercase table
 | 
			
		||||
				mem_writeb(data + 0x00, reg_al);
 | 
			
		||||
				mem_writed(data + 0x01, dos.tables.upcase);
 | 
			
		||||
				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 0x07: // Get pointer to double byte char set table
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,7 @@
 | 
			
		|||
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* $Id: dos_tables.cpp,v 1.31 2009-05-27 09:15:41 qbix79 Exp $ */
 | 
			
		||||
/* $Id: dos_tables.cpp,v 1.32 2009-10-28 21:45:12 qbix79 Exp $ */
 | 
			
		||||
 | 
			
		||||
#include "dosbox.h"
 | 
			
		||||
#include "mem.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -134,10 +134,15 @@ void DOS_SetupTables(void) {
 | 
			
		|||
	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);
 | 
			
		||||
	/* COLLATING SEQUENCE TABLE + UPCASE TABLE*/
 | 
			
		||||
	// 256 bytes for col table, 128 for upcase, 4 for number of entries
 | 
			
		||||
	dos.tables.collatingseq=RealMake(DOS_GetMemory(25),0);
 | 
			
		||||
	mem_writew(Real2Phys(dos.tables.collatingseq),0x100);
 | 
			
		||||
	for (i=0; i<256; i++) mem_writeb(Real2Phys(dos.tables.collatingseq)+i+2,i);
 | 
			
		||||
	dos.tables.upcase=RealMake(dos.tables.collatingseq,258);
 | 
			
		||||
	mem_writew(Real2Phys(dos.tables.upcase),0x80);
 | 
			
		||||
	for (i=0; i<128; i++) mem_writeb(Real2Phys(dos.tables.upcase)+i+2,0x80+i);
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
	/* Create a fake FCB SFT */
 | 
			
		||||
	seg=DOS_GetMemory(4);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue