MS DOS 6.0 操作系统源码完整版,对于研制操作系统结构,构建个人的操作系统是非常有用的.

源代码在线查看: case.c

软件大小: 12117 K
上传用户: wzsq12
关键词: 操作系统 DOS 6.0 MS
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*
					COW : Character Oriented Windows
				
					case.c: conversion of foreign lower case to upper case
				*/
				
				#define COW
				#include 
				
				#include "case.h"
				
				/* 
				  -- SzLcUc: maps lower -> upper case for special foreign characters
				  -- This string contains the uppercase/lowercase correspondence list for
				     extended characters.  Every character in an even position in the list
				     is lowercase.  The character following it is its uppercase representation.
				     Thus, the even entries contain all the lowercase letters among the upper
				     128 characters; the odd entries contain the uppercase letters.
				  -- NOTE:  Some entries may contain a normal (ASCII) character.  This
				     indicates that there is no uppercase (or lowercase) equivalent for the
				     character's partner.
				  -- Corresponds to IBM Code Page 850
				*/
				static char szLcUc[] = "\202\220\212\324\210\322\205\267\227\353\207\200\204\216\206\217\224\231\201\232\221\222\244\245\240\265\203\266\211\323\241\326\215\336\214\327\213\330\242\340\225\343\223\342\243\351\226\352\306\307\246\101\325\111\233\235\344\345\247\117\354\355\230\131";
				
				/*	Here is the character set for the list:
					202		e acute	
					220		E acute
					212		e grave
					324		E grave
					210		e circumflex
					322		E circumflex
					205		a grave
					267		A grave
					227		u grave
					353		U grave
					207		c cedilla
					200		C cedilla
					204		a umlaut
					216		A umlaut
					206		a circle
					217		A circle
					224		o umlaut
					231		O umlaut
					201		u umlaut
					232		U umlaut
					221		ae
					222		AE
					244		n tilde
					245		N tilde
					240		a acute
					265		A acute
					203		a circumflex
					266		A circumflex
					211		e umlaut
					323		E umlaut
					241		i acute
					326		I acute
					215		i grave
					336		I grave
					214		i circumflex
					327		I circumflex
					213		i umlaut
					330		I umlaut
					242		o acute
					340		O acute
					225		o grave
					343		O grave
					223		o circumflex
					342		O circumflex
					243		u acute
					351		U acute
					226		u circumflex
					352		U circumflex
					306		a tilde
					307		A tilde
					246		a ordfeminine
					101		A
					325		i no dot
					111		I
					233		o slash
					235		O slash
					344		o tilde
					345		O tilde
					247		o ordmasculine
					117		O
					354		y acute
					355		Y acute
					230		y umlaut
					131		Y
				*/
				
				
				PRIVATE char FARPRIVATE
				ChUpperFromChExt(ch)
				char ch;
				/*
				  -- converts extended lower case to upper case using szLcUc
				*/
				{
					char *pch;
				
					for (pch = szLcUc; *pch != 0; pch++)
						{
						if (ch == *pch) 	/* even index means lower case */
							{
							if ((pch - szLcUc) & 1)
								return(ch);
							else
								return(*(pch + 1));
							}
						}
					return(ch);
				}
				
							

相关资源