亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? nls.h

?? 開源DOS的C代碼源程序
?? H
字號:
/****************************************************************/
/*                                                              */
/*                            NLS.H                             */
/*                           FreeDOS                            */
/*                                                              */
/*    National Language Support data structures                 */
/*                                                              */
/*                   Copyright (c) 2000                         */
/*                         Steffen Kaiser                       */
/*                      All Rights Reserved                     */
/*                                                              */
/* This file is part of FreeDOS.                                */
/*                                                              */
/* DOS-C is free software; you can redistribute it and/or       */
/* modify it under the terms of the GNU General Public License  */
/* as published by the Free Software Foundation; either version */
/* 2, or (at your option) any later version.                    */
/*                                                              */
/* DOS-C is distributed in the hope that it will be useful, but */
/* WITHOUT ANY WARRANTY; without even the implied warranty of   */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
/* the GNU General Public License for more details.             */
/*                                                              */
/* You should have received a copy of the GNU General Public    */
/* License along with DOS-C; see the file COPYING.  If not,     */
/* write to the Free Software Foundation, 675 Mass Ave,         */
/* Cambridge, MA 02139, USA.                                    */
/****************************************************************/

/* one byte alignment */
#include <algnbyte.h>

/*
 *	Description of the organization of NLS information -- 2000/02/13 ska
 *
 *	Glossar:
 *	NLS package -- NLS information incl. any code required to access or
 *		correctly interprete this particular information
 *
 *	Abbreviation:
 *	(NLS) pkg -- NLS package
 *
 *	The code included into the kernel does "only" support NLS packages
 *	structurally compatible with the one of the U.S.A. / CP437.
 *	I guess that most NLS packages has been tweaked to be compatible,
 *	so that this is not a real limitation, but for all other packages
 *	the external NLSFUNC can supply every piece of code necessary.
 *	To allow this the interface between the kernel and NLSFUNC has been
 *	extended; at the same time the interface has been reduced, because some
 *	of the API functions do not seem to offer any functionality required
 *	for now. This, however, may be a misinterpretation because of
 *	lack of understanding.
 *
 *	The supported structure consists of the following assumptions:
 *	1) The pkg must contain the tables 2 (Upcase character), 4
 *		(Upcase filename character) and 5 (filename termination
 *		characters); because they are used internally.
 *	2) The tables 2 and 4 must contain exactly 128 (0x80) characters.
 *		The character at index 0 corresponses to character 128 (0x80).
 *		The characters in the range of 0..0x7f are constructed out of
 *		the 7-bit US-ASCII (+ control characters) character set and are
 *		upcased not through the table, but by the expression:
 *			(ch >= 'a' && ch <= 'z')? ch - 'a' + 'A': ch
 *			with: 'a' == 97; 'z' == 122; 'A' == 65
 *	3) The data to be returned by DOS-65 is enlisted in the
 *		nlsPointer[] array of the nlsPackage structure, including
 *		the DOS-65-01 data, which always must be last entry of the
 *		array.
 *	4) DOS-38 returns the 34 bytes beginning with the byte at offset
 *		4 behind the size field of DOS-65-01.
 *
 *	It seems that pure DOS can internally maintain two NLS pkgs:
 *	NLS#1: The hardcoded pkg of U.S.A. on CP437, and
 *	NLS#2: the pkg loaded via COUNTRY= from within CONFIG.SYS.
 *	I do interprete this behaviour as follows:
 *	CONFIG.SYS is read in more passes; before COUTRY= can be evaluated,
 *	many actions must be performed, e.g. to load kernel at all, open
 *	CONFIG.SYS and begin reading. The kernel requires at least two
 *	NLS information _before_ COUNTRY= has been evaluated - both upcase
 *	tables. To not implement the same function multiple times, e.g.
 *	to upcase with and without table, the kernel uses the default
 *	NLS pkg until a more appropriate one can be loaded and hopes that
 *	the BIOS (and the user) can live with its outcome.
 *	Though, theoretically, the hardcoded NLS pkg could be purged
 *	or overwritten once the COUNTRY= statement has been evaluated.
 *	It would be possible that this NLS pkg internally performs different
 *	purposes, for now this behaviour will be kept.
 *
 *	The current implementation extends the above "two maintained
 *	NLS pkgs" into that the kernel chains all NLS pkgs loaded in
 *	memory into one single linked list. When the user does neither
 *	wants to load other NLS pkgs without executing NLSFUNC and the
 *	loaded NLS pkgs do not contain code themselves, no other code is
 *	required, but some memory to store the NLS pkgs into.
 *
 *	Furthermore, because the kernel needs to include the code for the
 *	hardcoded NLS pkg anyway, every NLS pkg can use it; so only
 *	NLS pkgs that structurally differ from U.S.A./CP437 actually need
 *	to add any code and residently install the MUX handler for NLSFUNC.
 *	This technique reduces the overhead calling the MUX handler, when
 *	it is not needed.
 *	However, NLSFUNC is always required if the user wants to return
 *	information about NLS pkgs _not_ loaded into memory.
 *
 *=== Attention: Because the nlsInfoBlock structure differs from the
 *===	the "traditional" (aka MS) implementation, the MUX-14 interface
 *===	is _not_ MS-compatible, although all the registers etc.
 *===	do conform. -- 2000/02/26 ska
 *
 *	Previous failed attempts to implement NLS handling and a full-
 *	featured MUX-14 supporting any-structured NLS pkgs suggest
 *	to keep the implement as simple as possible and keep the
 *	optimization direction off balance and to tend toward either
 *	an optimization for speed or size.
 *
 *	The most problem is that the MUX interrupt chain is considered
 *	highly overcrowded, so if the kernels invokes it itself, the
 *	performance might decrease dramatically; on the other side, the
 *	more complex the interface between kernel and a _probably_ installed
 *	external NLSFUNC becomes the more difficult all the stuff is becoming
 *	and, most importantly, the size grows unnecessarily, because many
 *	people don't use NLSFUNC at all.
 *
 *	The kernel uses the NLS pkg itself for two operations:
 *	1) DOS-65-2x and DOS-65-Ax: Upcase character, string, memory area, &
 *	2) whenever a filename is passed into the kernel, its components
 *		must be identified, invalid characters must be detected
 *		and, finally, all letters must be uppercased.
 *	I do not consider operation 1) an action critical for performance,
 *	because traditional DOS programming praxis says: Do it Yourself; so
 *	one can consider oneself lucky that a program aquires the upcase
 *	table once in its life time (I mean: lucky the program calls NLS at all).
 *	Operation 2), in opposite, might dramatically reduce performance, if
 *	it lacks proper implementations.
 *
 *	Straight forward implementation:
 *	The basic implementation of the NLS channels all requests of DOS-65,
 *	DOS-66, and DOS-38 through MUX-14. Hereby, any external program, such
 *	as NLSFUNC, may (or may not) install a piece of code to filter
 *	one, few, or all requests in order to perform them itself, by default
 *	all requests will end within the root of the MUX interrupt, which is
 *	located within the kernel itself. An access path could look like this:
 *	1. Call to DOS-65-XX, DOS-66-XX, or DOS-38.
 *	2. The kernel is enterred through the usual INT-21 API handler.
 *	3. The request is decoded and one of the NLS.C function is called.
 *	4. This function packs a new request and calls MUX-14.
 *	5. Every TSR/driver hooking INT-2F will check, if the request is
 *		directed for itself;
 *	5.1. If not, the request is passed on to the next item of the MUX
 *		interrupt chain;
 *	5.2. If so, the TSR, e.g. NLSFUNC, tests if the request is to be
 *		performed internally;
 *	5.2.1. If so, the request is performed and the MUX-14 call is
 *		terminated (goto step 8.)
 *	5.2.2. If not, the request is passed on (see step 5.1.)
 *	6. If all TSRs had their chance to filter requests, but none decided
 *		to perform the request itself, the kernel is (re-)enterred
 *		through its INT-2F (MUX) API handler.
 *	7. Here the request is decoded again and performed with the kernel-
 *		internal code; then the MUX-14 call is terminated.
 *	8. When the MUX-14 call returns, it has setup all return parameters
 *		already, so the INT-21 call is terminated as well.
 *
 *	Note: The traditional MUX-14 is NOT supported to offer functionality
 *	to the kernel at the first place, but to let the kernel access and
 *	return any values they must be loaded into memory, but the user may
 *	request information through the DOS-65 interface of NLS pkgs _not_
 *	already loaded. Theoretically, NLSFUNC needs not allocate any internal
 *	buffer to load the data into, because the user already supplied one;
 *	also if the kernel would instruct NLSFUNC to load the requested
 *	NLS pkg, more memory than necessary would be allocated. However, all
 *	except subfunction 1 return a _pointer_ to the data rather than the
 *	data itself; that means that NLSFUNC must cache the requested data
 *	somewhere, but how long?
 *
 *	Performance tweaks:
 *	When the system -- This word applies to the combination of kernel and
 *	any loaded MUX-14 extension 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品77777| 亚洲视频一区在线观看| 日韩高清在线观看| 日韩一区二区在线看片| 久久精品99国产精品日本| 精品人在线二区三区| 国产成人亚洲精品青草天美| 国产精品久久久久久久久免费相片 | 成人午夜电影网站| 亚洲视频香蕉人妖| 欧美日韩高清一区二区三区| 蜜桃一区二区三区在线| 国产欧美综合在线| 日本韩国精品在线| 久久成人18免费观看| 国产精品久久毛片| 欧美日韩亚洲另类| 国产精品综合av一区二区国产馆| 亚洲国产高清在线观看视频| 欧美在线三级电影| 精一区二区三区| 国产精品福利影院| 在线成人小视频| 国产成人99久久亚洲综合精品| 亚洲日本在线a| 欧美xxxxxxxxx| 99久久精品国产一区| 日韩成人午夜电影| 国产精品欧美一区二区三区| 欧美制服丝袜第一页| 精品一区二区三区视频 | 久久先锋资源网| 91福利区一区二区三区| 国模大尺度一区二区三区| 一区二区欧美国产| 国产亚洲一区二区三区四区| 欧美熟乱第一页| 国产91色综合久久免费分享| 亚洲第一二三四区| 欧美国产综合一区二区| 欧美一区二区精美| 色综合视频在线观看| 国产美女视频一区| 日韩精品福利网| 亚洲视频一区二区在线观看| 久久欧美一区二区| 在线电影一区二区三区| 91久久精品一区二区| 成人黄色777网| 韩国精品久久久| 爽爽淫人综合网网站| 亚洲日本青草视频在线怡红院| 国产亚洲欧美一区在线观看| 欧美一区二区三区免费大片| 欧美日韩一区二区电影| 色一情一伦一子一伦一区| 成人短视频下载| 国产成人啪免费观看软件| 捆绑变态av一区二区三区| 五月激情综合婷婷| 亚洲国产日日夜夜| 亚洲免费在线视频一区 二区| 久久精品亚洲一区二区三区浴池 | 精品国产一区二区三区不卡 | 久久久国产精华| 欧美成人video| 日韩欧美视频在线| 欧美人动与zoxxxx乱| 欧美午夜寂寞影院| 欧美三区免费完整视频在线观看| 99精品国产视频| 成人美女视频在线观看| 成人性生交大片免费看视频在线 | 亚洲久本草在线中文字幕| 精品欧美一区二区在线观看| 91 com成人网| 日韩一区二区三区免费看| 欧美美女一区二区三区| 宅男噜噜噜66一区二区66| 777午夜精品视频在线播放| 91精品福利在线一区二区三区| 欧美日韩一本到| 欧美一区二区免费视频| 日韩欧美不卡一区| 久久午夜国产精品| 中文成人av在线| 亚洲天堂网中文字| 亚洲国产美国国产综合一区二区 | 日韩国产一区二| 日本欧美加勒比视频| 国产在线精品免费av| 国产成人综合亚洲网站| av网站一区二区三区| 91黄色免费看| 337p亚洲精品色噜噜| 色狠狠色噜噜噜综合网| 亚洲一二三四区| 亚洲电影一级黄| 视频在线观看一区二区三区| 久久精品99国产精品| 成人免费毛片片v| 色久综合一二码| 欧美一区二区精品在线| 久久久国产精华| 亚洲嫩草精品久久| 美国十次综合导航| 成人精品一区二区三区四区| 色综合天天做天天爱| 欧美人与禽zozo性伦| 2021中文字幕一区亚洲| 自拍av一区二区三区| 日韩精品福利网| 成人免费毛片嘿嘿连载视频| 欧美综合天天夜夜久久| 久久先锋影音av鲁色资源| 亚洲欧美日韩国产成人精品影院 | 色噜噜久久综合| 日韩一二三区不卡| 欧美国产精品久久| 国产美女一区二区| 国产精品激情偷乱一区二区∴| 亚洲精品乱码久久久久久| 日本视频在线一区| 成人福利在线看| 日韩午夜激情免费电影| 国产精品麻豆欧美日韩ww| 日本成人在线视频网站| k8久久久一区二区三区| 欧美一卡二卡在线观看| 亚洲欧洲精品天堂一级| 狠狠色丁香婷婷综合久久片| 在线免费观看不卡av| 国产精品美女久久久久久久久| 日韩中文字幕91| 在线视频国产一区| 日本一区二区三区视频视频| 青青草国产精品亚洲专区无| 色94色欧美sute亚洲13| 国产欧美精品区一区二区三区| 丝瓜av网站精品一区二区| 色综合久久中文字幕| 欧美精彩视频一区二区三区| 日韩激情一二三区| 欧美性生活大片视频| 国产精品精品国产色婷婷| 国产美女在线观看一区| 精品剧情v国产在线观看在线| 亚洲一二三区不卡| 精品国产一区二区三区忘忧草 | 精品国产露脸精彩对白| 夜夜嗨av一区二区三区网页| 国产不卡视频在线播放| 欧美一区二区三区四区五区| 亚洲高清三级视频| 欧美午夜宅男影院| 一区二区三区在线播放| 成人午夜激情视频| 国产欧美日韩综合| 国产69精品久久久久777| 久久久精品免费观看| 捆绑变态av一区二区三区| 欧美一区二区在线免费播放| 五月天丁香久久| 69久久夜色精品国产69蝌蚪网| 亚洲妇女屁股眼交7| 欧美日韩一区二区三区在线看| 一区二区三区高清不卡| 在线国产电影不卡| 亚洲午夜免费电影| 制服丝袜亚洲网站| 青青青伊人色综合久久| 欧美变态口味重另类| 国产乱子轮精品视频| 久久综合99re88久久爱| 日韩视频在线观看一区二区| 中文字幕一区二区三区四区| 国产一区 二区| 国产肉丝袜一区二区| 国产91对白在线观看九色| 国产日韩欧美不卡在线| 成人午夜视频在线观看| 中文字幕中文乱码欧美一区二区| 成人免费视频app| 亚洲乱码精品一二三四区日韩在线| 99精品在线免费| 亚洲成a人片在线观看中文| 欧美日韩免费观看一区三区| 亚洲国产精品久久久男人的天堂| 国产ts人妖一区二区| 日韩一区二区精品| 国产在线精品一区在线观看麻豆| 国产亚洲精品超碰| 色综合久久88色综合天天 | 欧美性高清videossexo| 日韩高清在线一区| 国产欧美一区二区在线| 99精品偷自拍| 久久精品国产精品亚洲精品| 国产欧美精品区一区二区三区| 欧美在线一区二区三区|