;******************************* MODULE HEADER *******************************;
;*                                                                           *;
;* FILE: German_Nls.asm                                                      *;
;*                                                                           *;
;* MACHINE: NGenSGen        LANGUAGE: ASSEMBLER  OS: CTOS                   *;
;*                                                                           *;
;* DESCRIPTION:                                                              *;
;*                                                                           *;
;* Native Language Support module.  Contains tables which are loaded at      *;
;* system initialization time.  This is a sample module that could be used   *;
;* in German speaking countries.                                             *;
;*                                                                           *;
;*                                                                           *;
;* HISTORY:                                                                  *;
;*                                                                           *;
;* MMDDYY VVVVMM PROGRAMMER    DESCRIPTION OF CHANGE (Most recent first) *;
;*                                                                           *;
;* 090293 123E04 S. Ahn        Change the sample linker command form to  *;
;*                                 be consistent with the current command.   *;
;* 112691 130E03 R. Ramesh     Brought back FsUlCmpbTable. For history   *;
;*                                 sake, the comment by PCampbell is left.   *;
;* 102391 130D02 P. Campbell   Remove FsUlCmpbTable                      *;
;* 032989 120A01 P. Campbell   Fixes to tables 16 and 23                 *;
;*                                                                           *;
;*                                                                           *;
;* TITLE:  CTOS SYSTEM SOFTWARE                                              *;
;*                                                                           *;
;*            PROPRIETARY PROGRAM MATERIAL                                   *;
;*                                                                           *;
;* THIS MATERIAL IS PROPRIETARY TO UNISYS CORPORATION AND IS NOT TO BE       *;
;* REPRODUCED, USED OR DISCLOSED EXCEPT IN ACCORDANCE WITH PROGRAM LICENSE   *;
;* OR UPON WRITTEN AUTHORIZATION OF THE PATENT DIVISION OF UNISYS            *;
;* CORPORATION, DETROIT, MICHIGAN 48232, USA.                                *;
;*                                                                           *;
;* COPYRIGHT (C) 1980, 1993 CONVERGENT INCORPORATED. ALL RIGHTS RESERVED     *;
;* COPYRIGHT (C) 1980, 1993 UNISYS CORPORATION. ALL RIGHTS RESERVED          *;
;* ************************************************************************* *;
;*                                                                           *;
;* UNISYS BELIEVES THAT THE SOFTWARE FURNISHED HEREWITH IS ACCURATE AND      *;
;* RELIABLE, AND MUCH CARE HAS BEEN TAKEN IN ITS PREPARATION.  HOWEVER,      *;
;* NO RESPONSIBILITY, FINANCIAL OR OTHERWISE, CAN BE ACCEPTED FOR ANY        *;
;* CONSEQUENCES ARISING OUT OF THE USE OF THIS MATERIAL, INCLUDING LOSS OF   *;
;* PROFIT, INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES, THERE ARE NO         *;
;* WARRANTIES WHICH EXTEND BEYOND THE PROGRAM SPECIFICATION.                 *;
;*                                                                           *;
;* THE CUSTOMER SHOULD EXERCISE CARE TO ASSURE THAT USE OF THE SOFTWARE      *;
;* WILL BE IN FULL COMPLIANCE WITH LAWS, RULES AND REGULATIONS OF THE        *;
;* JURISDICTIONS WITH RESPECT TO WHICH IT IS USED.                           *;
;*                                                                           *;
;*                                                                           *;
;*************************** END OF MODULE HEADER ****************************;

;
; This is a GERMAN NLS.ASM,  usefull as a sample for making
; native changes.

;
;
; NATIVE LANGUAGE SUPPORT TABLE DEFINITIONS
;
; NLS tables are a collection of tables loaded at CTOS initialization
; which provide native language configurability for CTOS. 
; Convergent Technologies, Inc. reserves the ID range 0 through 7FFFh. The
; range 8000h thru 0FFFFh are available for customer use. 
;
; To change an NLS table, edit this file, assemble it, link it
; as follows, copy Nls.sys to [Sys]<Sys>, and reboot the workstation.
;
'Link
'Object modules			Nls.obj
'Run file					Nls.sys
'[Map file]				
'[Publics?]
'[Line numbers?]
'[Stack size]				0
'[Max memory array size]
'[Min memory array size]
'[Run file mode]
'[Version]
'[Libraries]				None
'[DS allocation?]
'[Symbol file]			
'[Copyright notice?]			
'[File to append]			
'[Linker config file]			
;
;
;


'
'
' NLS TABLE MACRO DEFINITION 
'
'	DefTableData (TableName, ID, (data))
'	DefTableString (TableName, ID, (string))
'
' For example:
'
'  DefTableData(UserData,		8002h, (DW 4
'						 DB 41h, 42h, 43h
'					 	 DB 0AH))
'  DefTableString(UserStringName,	8000h, 	(StringInSingleQuotes))
'
'

;
;
; ACCESSING NLS TABLES 
;
; The pointer to the NLS table directory is returned by calling the
; CTOS routine GetpStructure with a case of 25, for example:
;
;	CheckErc (GetpStructure (25, 0, ads pNLSDirectory));
;
; The NLS table directory has the following format:
;
;	wSignature	WordType	*value is 'NT'*
;
;	cbTable		WordType	*count of bytes contained in the
;							  directory and tables*
;
;	cTables		WordType	*count of tables*
;
;	oRgId		OffsetType	*offset from pNlsDirectory of the
;							  array of table ID's*
;
;	oRgoTable	OffsetType 	*offset from pNlsDirectory of the
;							  array of offsets to tables
;
;


$INCLUDE([sys]<sys>nls.mdf)


;
; For further information on setting the attributes, see KBD.ASM on 
; CTOS Build Diskettes.
;
;

TableInit

attrControl			EQU 000h + 000h + 000h	;no shift lock, no repeat
attrAlpha 			EQU 080h + 060h + 010h	;shift lock, repeats
attrRepeat			EQU 000h + 060h + 010h	;repeats
attrRepeatFast		EQU 000h + 040h + 018h	;repeats, faster
attrShiftDia		EQU 01h		; diacritcal key when shifted
attrUnShiftDia		EQU 02h		; diacritcal key when unshifted
attrBothDia			EQU 03h		; diacritcal key when shifted or unshifted



DefTableData (KbdEncodingTable, 0, ('
    DW  	'KE'				; signature
; this is a sample of the German CTKeyboard KM004
;
    DB  	0,   0C0h, attrControl 		; 000	 help
    DB  	01h, 0C1h, attrRepeatFast	; 001	 uparrow
    DB  	02h, 0C2h, attrControl 		; 002	 mark
    DB  	0Dh, 0C3h, attrControl 		; 003	 bound
    DB  	04h, 0C4h, attrControl 		; 004	 finish
    DB  	05h, 0C5h, attrControl 		; 005	 prev page
    DB 		0A9h, 0A8h, attrAlpha 		; 006	  
    DB  	07h, 0C7h, attrControl 		; 007	 cancel
    DB  	08h,  08h, attrRepeat		; 008	 backspace
    DB  	09h,  09h, attrControl 		; 009	 tab
    DB  	0Ah,  0Ah, attrRepeat 		; 00A	 return
    DB  	0Bh, 0CBh, attrRepeatFast	; 00B	 downarrow
    DB  	0Ch, 0CCh, attrControl 		; 00C	 next page
    DB  	0Ah,  0Ah, attrRepeat 		; 00D	 next
    DB  	0Eh, 0CEh, attrRepeatFast 	; 00E	 leftarrow
    DB  	12h, 0D2h, attrRepeatFast 	; 00F	 rightarrow
    DB  	80h,  81h, attrControl 		; 010	 SHL
    DB  	11h, 0D1h, attrRepeat 		; 011	 scrollup
    DB  	0Fh, 0CFh, attrControl 		; 012	 move
    DB  	13h, 0D3h, attrRepeat 		; 013	 scrolldown
    DB  	14h, 0D4h, attrControl 		; 014	 copy
    DB  	15h, 0D5h, attrControl	 	; 015	 f1
    DB  	16h, 0D6h, attrControl 		; 016	 f2
    DB  	17h, 0D7h, attrControl 		; 017	 f3
    DB  	18h, 0D8h, attrControl 		; 018	 f4
    DB  	19h, 0D9h, attrControl 		; 019	 f5
    DB  	1Ah, 0DAh, attrControl		; 01A	 f6
    DB  	1Bh, 0C9h, attrControl 		; 01B	 GO
    DB  	1Ch, 0DCh, attrControl 		; 01C	 f7
    DB  	1Dh, 0CDh, attrControl	 	; 01D	 f8
    DB  	1Eh, 0CAh, attrControl	 	; 01E	 f9
    DB  	1Fh, 0DFh, attrControl	 	; 01F	 f10

    DB  	20h,  20h, attrRepeat 		; 020	 space
    DB  	39h,  7Ch, attrRepeat 		; 021	 9 |
    DB  	82h,  83h, attrControl 		; 022	 SHR
    DB  	84h,  85h, attrControl 		; 023	 0
    DB  	86h,  87h, attrControl 		; 024	 NEXT
    DB  	0,    0,   0				; 025
    DB  	0,    0,   0				; 026
	DB		0A3h, 0A2h, attrAlpha  		; 027	  
    DB  	0,    0,   0				; 028
    DB  	0,    0,   0				; 029
    DB  	0,    0,   0				; 02A
    DB  	40h,  5Ch, attrRepeat 		; 02B	 @ backslash
    DB  	2Ch,  3Bh, attrRepeat 		; 02C	 , ;
    DB  	0B0h, 3Fh, attrRepeat 		; 02D	  ?
    DB  	2Eh,  3Ah, attrRepeat 		; 02E	 . :
    DB  	2Dh,  5Fh, attrRepeat 		; 02F	  _
;Warning:
; Do not change the comments for the following characters to add the
; actual characters.  If you do, you will get errors from the Assembler.
;
    DB  	30h,  3Dh, attrRepeat 		; 030	 0 =
    DB  	31h,  21h, attrRepeat 		; 031	 1 
    DB  	32h,  22h, attrRepeat 		; 032	 2 
    DB  	33h,  17h, attrRepeat 		; 033	 3 
    DB  	34h,  24h, attrRepeat 		; 034	 4 $
    DB  	35h,  25h, attrRepeat 		; 035	 5 percent
    DB  	36h,  26h, attrRepeat 		; 036	 6 
    DB  	37h,  2Fh, attrRepeat 		; 037	 7 
    DB  	38h,  28h, attrRepeat 		; 038	 8 right parens
    DB  	39h,  29h, attrRepeat 		; 039	 9 left parens
    DB  	0,    0,   0				; 03A
    DB  	0A5h, 0A4h, attrAlpha  		; 03B	  
    DB  	0,    0,   0				; 03C
    DB  	0,    0,   0				; 03D
    DB  	0,    0,   0				; 03E
    DB  	0,    0,   0          		; 03F	 3F = iKeyInvalid
    DB  	0,    0,   0          		; 040	 40 = iKeyNoKeys
    DB  	36h,  7Eh, attrRepeat 		; 041	 6 
    DB  	2Dh,  03h, attrRepeat 		; 042	  
    DB  	0,    0,   0 				; 043	 reset
    DB  	0D0h,0D0h, attrControl	 	; 044	 overtype
    DB  	0,    0,   attrControl	 	; 045	 lock
    DB  	32h,  3Eh, attrRepeat 		; 046	 2 >
    DB  	33h,  27h, attrRepeat 		; 047	 3 '
    DB  	0,    0,   0 				; 048	 shift
    DB  	0,    0,   0 				; 049	 shift
    DB  	30h,  30h, attrRepeat 		; 04A	 0 0
    DB  	2Ch,  60h, attrRepeat 		; 04B	 , 
    DB  	0,    0,   0 				; 04C	 code
    DB  	0,    0,   0 				; 04D	 code
    DB  	0,    0,   0				; 04E
    DB  	0,    0,   0				; 04F
    DB  	0,    0,   0				; 050
    DB  	0,    0,   0				; 051
    DB  	0,    0,   0				; 052
    DB  	0,    0,   0				; 053
    DB  	0,    0,   0				; 054
    DB  	0,    0,   0				; 055
    DB  	0,    0,   0				; 056
    DB  	0,    0,   0				; 057
    DB  	0,    0,   0				; 058
    DB  	0,    0,   0				; 059
    DB  	0,    0,   0				; 05A
    DB  	2Bh,  2Ah, attrRepeat 		; 05B	 + *
    DB  	37h,  5Bh, attrRepeat 		; 05C	 7 [
    DB  	23h,  5Eh, attrRepeat 		; 05D	  ^
    DB  	0B4h, 0B2h, attrShiftDia	; 05E	  
    DB  	0,    0,   0				; 05F
    DB  	31h,  3Ch, attrRepeat 		; 060	 1 <
    DB  	61h,  41h, attrAlpha 		; 061	 a A
    DB  	62h,  42h, attrAlpha 		; 062	 b B
    DB  	63h,  43h, attrAlpha 		; 063	 c C
    DB  	64h,  44h, attrAlpha 		; 064	 d D
    DB  	65h,  45h, attrAlpha 		; 065	 e E
    DB  	66h,  46h, attrAlpha 		; 066	 f F
    DB  	67h,  47h, attrAlpha 		; 067	 g G
    DB  	68h,  48h, attrAlpha 		; 068	 h H
    DB  	69h,  49h, attrAlpha 		; 069	 i I
    DB  	6Ah,  4Ah, attrAlpha 		; 06A	 j J
    DB  	6Bh,  4Bh, attrAlpha 		; 06B	 k K
    DB  	6Ch,  4Ch, attrAlpha 		; 06C	 l L
    DB  	6Dh,  4Dh, attrAlpha 		; 06D	 m M
    DB  	6Eh,  4Eh, attrAlpha 		; 06E	 n N
    DB  	6Fh,  4Fh, attrAlpha 		; 06F	 o O
    DB  	70h,  50h, attrAlpha 		; 070	 p P
    DB  	71h,  51h, attrAlpha 		; 071	 q Q
    DB  	72h,  52h, attrAlpha 		; 072	 r R
    DB  	73h,  53h, attrAlpha 		; 073	 s S
    DB  	74h,  54h, attrAlpha 		; 074	 t T
    DB  	75h,  55h, attrAlpha 		; 075	 u U
    DB  	76h,  56h, attrAlpha 		; 076	 v V
    DB  	77h,  57h, attrAlpha 		; 077	 w W
    DB  	78h,  58h, attrAlpha 		; 078	 x X
    DB  	7Ah,  5Ah, attrAlpha 		; 079	 z Z
    DB  	79h,  59h, attrAlpha 		; 07A	 y Y
    DB  	34h,  7Bh, attrRepeat 		; 07B	 4 {
    DB  	38h,  5Dh, attrRepeat 		; 07C	 8 ]
    DB  	35h,  7Dh, attrRepeat 		; 07D	 5 }
    DB  	  0,    0,     0       		; 07E
    DB  	7Fh, 0C8h, attrRepeat 		; 07F	 del


' THE FOLLOWING MACROS HANDLE DIACRITICALS
' These macros allow the user to define pairs of keys which may be typed
' one after the other, but which produce a single character value.
' For example, a user may want to produce an e accentgrave by typing
' first an accentgrave and then an e, the result being the code for
' the font character e accent grave.
' The macros have the following structures:
'
' InitDiaCriticalTables  no parameters.  It appears once.
'
' DiaCriticalSet(FirstKey,SecondKey,FontCode)  One instance for each pair
' of diacritical keys you wish to define  Explained below.
'
' EndDiaCriticalTables  no parameters.  It appears once.
'
'  NOTE:  Each key that you wish to be the first key in the diacritical
'         pair must be given the proper atttribute in the above
'         keyboard encoding table.
'
'  FirstKey and SecondKey are hexadecimal codes produced by the desired
'  key.  To find these codes, look in the above Keyboard Encoding Table.
'  The righthand column are the keycaps for each key.  The two entries
'  following the DB in the same row are the unshifted and shifted codes
'  that the key produces.  Enter the code as the value of FirstKey then
'  repeat the process for SecondKey.  For each key you choose as FirstKey,
'  you must change the attribute to AttrShiftDia if you wish to have the
'  diacriticalness happen only when the key is shifted; AttrUnShiftDia if
'  you wish the diacriticalness to happen only when the key is not shifted;
'  or AttrBothDia if you wish it to be diacritical shifted and unshifted.
'
'  FontCode is a hexidecimal code
'  which will produce the desired character.  If you are using the standard
'  US font, then refer to Appendix B2 of the CTOS Reference Manual.  If
'  you are using a nonstandard US font, then refer to the documentation
'  which accompanied it.  You can change the font characters using the
'  Font Designer.
'  Note that for most diacritics, the standard font will not suffice.  Take
'  circumflex i and tilde n, for instance.  You would have to build a new
'  font with those characters replacing some other positions.
'  The  is in the standard released font (position 0ACh).
'
'  In the following example, key 5E would have attrBothDia because on the
'  keyboard circumflex (carat) and tilde are the same key (shifted and
'  unshifted):
'    DB  	5Eh,  7Eh, attrBothDia 		; 05E	 ^ 
'  If you had a French keyboard, the carat is where the  key
'  is (to the right of the p), so in that case key 6 would be:
'    DB  	06h,  10h, attrShiftDia 		; 006	 1214
'  and the macro would be DiaCriticalSet(6,69h,chICircumflex)
'
' EXAMPLE: Define the following three diacritical pairs:
' e accentgrave, i circumflex, and n tilde.
'  The macros would look as follows:
'
'	InitDiaCriticalTables

'	DiaCriticalSet(chAccentGrave,65h,0ACh)
' The code for the silent key accent grave followed by the code for e
' (Refer to the above Keyboard Encoding Table) followed by 0ACh, which is
' the hexadecimal code for the resultant font character (Refer to Appendix
' B2 in the CTOS Reference Manual)

'	DiaCriticalSet(5E,69h,chICircumflex)
' The code for circumflex followed by the code for i followed by
' chICircumflex

'	DiaCriticalSet(7Eh,6Eh,chNTilde)
' The code for tilde followed by the code for n followed by
' chNTilde

'	EndDiaCriticalTables

' The following example on GERMAN KEYBOARDS produces a diacritical pair.
'
' REMINDER: for nonGerman keyboards: the character  is on the upper left
'			key in combination with SHIFT (the  on US keyboards)
'  The keyboard encoding table entry for 5E is as follows:
'      DB  	0B4h, 0B2h, attrShiftDia	; 05E	  
'
'	InitDiaCriticalTables
'	DiaCriticalSet(0B2h,61h,0A1h)
'	EndDiaCriticalTables
'
'	0B2h, 61h        ;the diacritical pair, (keys 5E  61 in the kbd table)
'					;here: the  and the a shall be combined to 
'	0A1h		    ;the resultant character of the diacritical pair
'
'
'THE DIACRITICAL MACROS START HERE:
'

InitDiaCriticalTables

DiaCriticalSet(0B2h,61h,0A1h)	; + a = 

EndDiaCriticalTables

))




;	...m03
;WARNING: The table below is used by the file system for determining
;		  file spec equivalance  CHANGES TO THIS TABLE MAY CAUSE
;		  FILES ON AN EXISTING FILE SYSTEM TO BECOME INACCESSABLE.
;
;
;		This table is commented out in order to make password encryption
;		transparent regarding the presenceabsence of Nls.sys.
;
;		To add this table, remove the if 0 then line, remove the
;		semicolons, and the fi line.
;
;		If you currently use password encryption but don't use Nls.sys,
;		then the addition of the Nls.sys created from this file will not
;		cause any difference in the behavior of your system.
;
;		If you currently use password encryption and are using an Nls.sys
;		provided with a release of Standard Software before 13.0, then
;		the addition of Nls.sys version 13.0 will make it impossible
;		to access your protected files.  In order to make them accessable,
;		remove the volume password by executing the Change Volume Name
;		executive command (place a null string ('')in the password field.)
;		Remove the passwords from all directories using the Set Directory
;		Protection command.  Remove the passwords from all files using the
;		Set Protection command.  Place this version of Nls.sys in the
;		[Sys]<Sys> directory and reboot.  Add volume, directory, and file
;		passwords using the above commands.
;		...m03

;IF (0) THEN (
DefTableData (FsUlCmpbTable, 1, ('
  FsULCMPBSignature 	DW 	'FS'
	DB  00h,01h,02h,03h,04h,05h,06h,07h
	DB  08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
	DB  10h,11h,12h,13h,14h,15h,16h,17h
	DB  18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
	DB  20h,21h,22h,23h,24h,25h,26h,27h
	DB  28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
	DB  30h,31h,32h,33h,34h,35h,36h,37h
	DB  38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
	DB  40h,41h,42h,43h,44h,45h,46h,47h
	DB  48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh
	DB  50h,51h,52h,53h,54h,55h,56h,57h
	DB  58h,59h,5Ah,5Bh,5Ch,5Dh,5Eh,5Fh
	DB  60h,41h,42h,43h,44h,45h,46h,47h
	DB  48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh
	DB  50h,51h,52h,53h,54h,55h,56h,57h
	DB  58h,59h,5Ah,7Bh,7Ch,7Dh,7Eh,7Fh
	DB  80h,81h,82h,83h,84h,85h,86h,87h
	DB  88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh,8Fh
	DB  90h,91h,92h,93h,94h,95h,96h,97h
	DB  98h,99h,9Ah,9Bh,9Ch,9Dh,9Eh,9Fh
	DB  0A0h,0A0h,0A2h,0A2h,0A4h,0A4h,0A6h,0A6h
	DB  0A8h,0A8h,0AAh,0ABh,0ACh,0ADh,0AEh,0AEh
	DB  0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h
	DB  0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh
	DB  0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h
	DB  0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh
	DB  0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h
	DB  0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh
	DB  0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h
	DB  0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh
	DB  0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h
	DB  0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh
 ))
;) FI


DefTableData (UserUlCmpbTable, 2, ('
ULCMPBSignature 	DW 	'XT'

	DB  00h,01h,02h,03h,04h,05h,06h,07h
	DB  08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
	DB  10h,11h,12h,13h,14h,15h,16h,17h
	DB  18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
	DB  20h,21h,22h,23h,24h,25h,26h,27h
	DB  28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
	DB  30h,31h,32h,33h,34h,35h,36h,37h
	DB  38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
	DB  40h,41h,42h,43h,44h,45h,46h,47h
	DB  48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh
	DB  50h,51h,52h,53h,54h,55h,56h,57h
	DB  58h,59h,5Ah,5Bh,5Ch,5Dh,5Eh,5Fh
	DB  60h,41h,42h,43h,44h,45h,46h,47h
	DB  48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh
	DB  50h,51h,52h,53h,54h,55h,56h,57h
	DB  58h,59h,5Ah,7Bh,7Ch,7Dh,7Eh,7Fh
	DB  80h,81h,82h,83h,84h,85h,86h,87h
	DB  88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh,8Fh
	DB  90h,91h,92h,93h,94h,95h,96h,97h
	DB  98h,99h,9Ah,9Bh,9Ch,9Dh,9Eh,9Fh
	DB  0A0h,0A0h,0A2h,0A2h,0A4h,0A4h,0A6h,0A6h
	DB  0A8h,0A8h,0AAh,0ABh,0ACh,0ADh,0AEh,0AEh
	DB  0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h
	DB  0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh
	DB  0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h
	DB  0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh
	DB  0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h
	DB  0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh
	DB  0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h
	DB  0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh
	DB  0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h
	DB  0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh
	))



DefTableData (VideoBsStrings, 3, ('
VidBSSignature		DW 	'VS'

cStrings				DW 2
sbString ('Weiter mit <Next Page> oder <Scroll Up>')
sbString ('Weiter mit <Next Page>')
	))




DefTableData (UpperToLowerTable, 4, ('
UpperToLowerSigniture 	DW 	'LW'

	DB  00h,01h,02h,03h,04h,05h,06h,07h
	DB  08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
	DB  10h,11h,12h,13h,14h,15h,16h,17h
	DB  18h,19h,1Ah,1Bh,1Ch,1Dh,1Eh,1Fh
	DB  20h,21h,22h,23h,24h,25h,26h,27h
	DB  28h,29h,2Ah,2Bh,2Ch,2Dh,2Eh,2Fh
	DB  30h,31h,32h,33h,34h,35h,36h,37h
	DB  38h,39h,3Ah,3Bh,3Ch,3Dh,3Eh,3Fh
	DB  40h,61h,62h,63h,64h,65h,66h,67h
	DB  68h,69h,6Ah,6Bh,6Ch,6Dh,6Eh,6Fh
	DB  70h,71h,72h,73h,74h,75h,76h,77h
	DB  78h,79h,7Ah,5Bh,5Ch,5Dh,5Eh,5Fh
	DB  60h,61h,62h,63h,64h,65h,66h,67h
	DB  68h,69h,6Ah,6Bh,6Ch,6Dh,6Eh,6Fh
	DB  70h,71h,72h,73h,74h,75h,76h,77h
	DB  78h,79h,7Ah,7Bh,7Ch,7Dh,7Eh,7Fh
	DB  80h,81h,82h,83h,84h,85h,86h,87h
	DB  88h,89h,8Ah,8Bh,8Ch,8Dh,8Eh,8Fh
	DB  90h,91h,92h,93h,94h,95h,96h,97h
	DB  98h,99h,9Ah,9Bh,9Ch,9Dh,9Eh,9Fh
	DB  0A1h,0A1h,0A3h,0A3h,0A5h,0A5h,0A7h,0A7h
	DB  0A9h,0A9h,0AAh,0ABh,0ACh,0ADh,0AFh,0AFh
	DB  0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h
	DB  0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh
	DB  0C0h,0C1h,0C2h,0C3h,0C4h,0C5h,0C6h,0C7h
	DB  0C8h,0C9h,0CAh,0CBh,0CCh,0CDh,0CEh,0CFh
	DB  0D0h,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h
	DB  0D8h,0D9h,0DAh,0DBh,0DCh,0DDh,0DEh,0DFh
	DB  0E0h,0E1h,0E2h,0E3h,0E4h,0E5h,0E6h,0E7h
	DB  0E8h,0E9h,0EAh,0EBh,0ECh,0EDh,0EEh,0EFh
	DB  0F0h,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h
	DB  0F8h,0F9h,0FAh,0FBh,0FCh,0FDh,0FEh,0FFh
	))




DefTableData (KeyCapText, 5, (

StartKeycapDefines

;	THE FOLLOWING TABLE IS ORDERED ACCORDING TO THE ORDER 
;	SPECIFIED BY THE CTOS LIBRARY PROCEDURE GETNLSKEYCAPTEXT.  
;	DO NOT CHANGE THE ORDER OF THE ENTRIES.
;
;	Each macro invocation has two parameters; the first is used 
;	for mnemonic purposes, the parameter consists of the English 
;	keycap name followed by the unencoded hexadecimal keycode (see 
;	table C1, CTOS operating system manual).  The second 
;	parameter is an ASCII string defining the keycap name.

DefineKeyCapEntry(Action_43, <ACTION>)
DefineKeyCapEntry(Backspace_08, <BACK SPACE>)
DefineKeyCapEntry(Bound_03, <BOUND>)
DefineKeyCapEntry(Cancl_07, <CANCEL>)
DefineKeyCapEntry(Code_80, <CODE>)
DefineKeyCapEntry(Copy_14, <COPY>)
DefineKeyCapEntry(Delete_7F, <DELETE>)
DefineKeyCapEntry(Finish_04, <FINISH>)
DefineKeyCapEntry(Go_1B, <GO>)
DefineKeyCapEntry(Help_00, <HELP>)
DefineKeyCapEntry(Lock_45, <LOCK>)
DefineKeyCapEntry(Mark_02, <MARK>)
DefineKeyCapEntry(Move_12, <MOVE>)
DefineKeyCapEntry(Next_0D, <NEXT>)
DefineKeyCapEntry(NextPage_0C, <NEXT PAGE>)
DefineKeyCapEntry(OverType_44, <OVER TYPE>)
DefineKeyCapEntry(PrevPage_05, <PREV PAGE>)
DefineKeyCapEntry(Return_0A, <RETURN>)
DefineKeyCapEntry(ScrlDown_13, <SCROLL DOWN>)
DefineKeyCapEntry(ScrlUp_11, <SCROLL UP>)
DefineKeyCapEntry(Shift_48, <SHIFT>)
DefineKeyCapEntry(Tab_09, <TAB>)

EndKeycapDefines
	))



DefTableData (DateTemplateTable, 6, (

StartDateDefines

; Below is listed the characters for use as escape characters (attributes)
; in the templates.  Each entry is of the form:
;
;           DateEscapeDefine('b', 'B')
;
; This enters the escape character of 'b' into the table, and indicates
; an upper case equivelent of 'B'
;
; The following definitions are in a specific order, and that order must be 
; maintained
;

;  AM, PM, Noon or Midnight, string
DateEscapeDefine(Meridian, 'a', 'A')

;  Day of month, numeric
DateEscapeDefine(DayOfMonthNum, 'd', 'D')

;  Hour, 12 hour system, numeric
DateEscapeDefine(Hour, 'h', 'H')

;  Minute, numeric
DateEscapeDefine(Minute, 'm', 'M')

;  Month, string
DateEscapeDefine(MonthStr, 'n', 'N')

;  Month, numeric
DateEscapeDefine(MonthNum, 'o', 'O')

;  Second, numeric
DateEscapeDefine(Second, 's', 'S')

;  Hour, 24 hour system, numeric
DateEscapeDefine(Hour24, 't', 'T')

;  Day of Week, string
DateEscapeDefine(WeekDay, 'w', 'W')

;  Year, numeric
DateEscapeDefine(Year, 'y', 'Y')


; Below are listed the definitions for each of the templates available
; through the NlsStdFormatDateTime routine.  Any of the entries may be
; changed, by renaming the template andor changing the template string.
;
; Each entry is of the form:
;
;		DefineTemplateEntry(TemplateName, TemplateString)
;
; Each entry has a comment preceding it, describing the result of the
; template, and its template number.  If any templates are removed, or
; the order is changed, these commented index numbers will not reflect
; the template's true index number.  The numbering starts at zero and 
; proceeds, being incremented by one, in the order that the definitions
; appear in this file, thus the first defined is index number zero, the 
; next is index one and so on.
;

; 00h   4.10.56  6:05
;      20.02.87 18:12

DefineTemplateEntry(ColNumDateTime, dd.0o.0y tt:0m)


; 01h  4.10.56 6:05
;      20.02.87 18:12
  
DefineTemplateEntry(NumDateTime, *d.0o.0y *t:0m)


; 02h   4. Okt. 1956  6:05
;      20. Feb. 1987 18:12
  
DefineTemplateEntry(ColDateTime, dd. Nnn. yyyy tt:0m)


; 03h  4. Oktober 1956 6:05
;      22. Februar 1987 18:12
  
DefineTemplateEntry(DateTime, *d. N*n yyyy *t:0m)


; 04h  Do.  4. Oktober 1956  6:05
;      Fr. 22. Februar 1987 18:12
  
DefineTemplateEntry(ColDayDateTime, Ww. dd. N*n yyyy tt:0m)


; 05h  Do. 4. Okt. 1956 6:05
;      Fr. 22. Feb. 1987 18:12
  
DefineTemplateEntry(DayDateTime, Ww. *d. Nnn. yyyy *t:0m)


; 06h  06:05
;      18:12
  
DefineTemplateEntry(ColTime24, 0t:0m)


; 07h   6:05
;       18:12
  
DefineTemplateEntry(Time24, *t:0m)


; 08h   6:05
;      18:12
  
DefineTemplateEntry(ColTime, tt:0m)


; 09h  6:05
;      18:12
  
DefineTemplateEntry(Time, *t:0m)


; 0Ah  04.10.56
;      20.02.87
  
DefineTemplateEntry(ColNumDate, 0d.0o.0y)


; 0Bh  4.10.56
;      20.2.87
  
DefineTemplateEntry(NumDate, *d.*o.0y)


; 0Ch  09:03:05

DefineTemplateEntry(FullTime, 0h:0m:0s)


; 0Dh  09:03:05.tmp
;      23:13:57.tmp
  
DefineTemplateEntry(TempFileName, 0t:0m:0s.tmp)


; 0Eh  Freitag 20. Februar 1987
  
DefineTemplateEntry(LongDayDate, W*w *d. N*n *y)


; 0Fh  20. Februar 1987
  
DefineTemplateEntry(LongDate, *d. N*n *y)


; 10h  04.10.8707:09:05
  
DefineTemplateEntry(FileColDateTime, 0d.0o.0y0t:0m:0s)

; 11h  4. Okt. 56

DefineTemplateEntry(AbrDate, *d. Nnn. yy)


; 12h  Day, Date 24 Hour
;  Mo. 1. Okt. 1985 9:03
;  Mo. 18. Okt. 1985 23:13

DefineTemplateEntry(DayDate24Hour, Ww. *d. Nnn. yyyy *t:0m)

; 13h  Columnar Day Date 24 Hour
; Mo.  1. Okt. 1985 09:03
; Mo. 18. Okt. 1985 23:13

DefineTemplateEntry(ColDayDate24Hour, Ww. dd. Nnn. yyyy 0t:0m)

; 14h  Day, numeric date and time
; Di. 01.10.82 9:03
; Di. 18.10.82 11:13

DefineTemplateEntry(DayNumDateTime, Ww. 0d.0o.0y *t:0m)

; 15h  Columnar Day, Numeric Date and time
; Di. 01.10.82 09:03
; Di. 18.10.82 23:13

DefineTemplateEntry(ColDayNumDateTime, Ww. 0d.0o.0y 0t:0m)


; 16h  Invalid Template Index

DefineTemplateEntry(InvalidITemp, Ungltiges Datumsformat)


EndStdDateDefines



;
;  THIS IS THE END OF THE STANDARD TEMPLATES NO OEM TEMPLATES SHOULD BE 
;  DEFINED ABOVE THIS POINT.  ALL TEMPLATES SHOULD BE ADDED BELOW.  ANY NEW 
;  TEMPLATES ADDED WILL BE INDEXED STARTING WITH TEMPLATE NUMBER 8000h
;

;    EXAMPLE:
;
; 8000h  DDMMYY
;
;  DefineTemplateEntry(ColDayMonthYear, 0d0o0y)
;
;


; END OF USER DEFINABLE TEXT AREA, NO EDITING SHOULD OCCUR BELOW THIS POINT

EndOemDateDefines
	))




false	EQU		0
true	EQU		1

DefTableData (NumberAndCurrencyTable, 7, ('
NumberAndCurrencySigniture 	DW 	'NC'

	DB  2Ch		; Decimal character.  Indicates which single 
				; ASCII character will be used  to indicate
				; the decimal point in numbers.
				; Either 2Ch (,) or 2Eh (.) may be selected.

	DB  20h		; Triad character.  Indicates which single ASCII character
				; will be used  to indicate the separation of numbers into
				; triads (i.e. thousands, millions, etc.).
				; Either 2Ch (,) or 2Eh (.) or 20h (space) may be 
				; selected. Note that the use of space is not fully 
				; supported at this time and thus its use may be ignored 
				; by some programs or cause substitution of one of the 
				; other characters.

	DB  false	; First triad flag.  Controls the rules for placing the triad
				; character in the thousands position.  If true, the triad
				; separator in the thousands position is always to appear when
				; the number contains four or more digits to the left of the
				; decimal.  If false, the thousands triad separator is
				; suppressed when no more than one additional digit appears to
				; the left.

	DB  3Bh		; List separator character.  Indicates which single ASCII
				; character will be used  to indicate the separation of
				; numbers within a list.  Either 2Ch (,) or 3Bh (;) may be
				; selected.  Note that this specification is used only by
				; programs that would otherwise have a conflict with the use
				; of 2Ch (,) as the decimal point character.

	DB  0		; Currency position.  Controls the position of the currency
				; symbol.  A value of 0 indicates leading currency symbol,
				; while 1 indicates trailing currency symbol.  Other values
				; are reserved for future expansion.  Note that embedded
				; currency symbols are not currently supported.

	DB  3		; Currency symbol string.  This string defines the currency
	DB  44h		; symbol.  The first byte is the length of the string.  The
	DB  4dh		; remaining four bytes define the contents of the string.
	DB  20h		; All four bytes must be defined, even when a shorter string
	DB  00h		; is being defined. Defined here: DM (Deutsche Mark)
	))




DefTableData (DateNameTable, 8, (

StartNameDefines


; Below are listed the definitions for each of the names available
; through the GetNlsDateName routine.  Any of the entries may be
; changed, by renaming the Name andor changing the Name String.
; THEIR ORDER IS RELIED UPON BY ROUTINES THAT USE THIS INFORMATION.
; DO NOT CHANGE THEIR ORDER OR THEIR MEANING.
;
; Each entry is of the form:
;
;		DefineNameEntry(NameString, String)
;
; Each entry has a comment preceding it, describing the expected contents
; of the string, and its string number.  If any strings are removed, or
; the order is changed, these commented index numbers will not reflect
; the string's true index number.  The numbering starts at zero and 
; proceeds, being incremented by one, in the order that the definitions
; appear in this file, thus the first defined is index number zero, the 
; next is index one and so on.
;
; IT IS IMPORTANT TO NOTE THAT ANY CAPITALIZATION HERE WILL BE MANDATORY
; IN ANY STRINGS RETURNED BY GetNlsDateName.
;


StartNameTable

;  USER EDITABLE TEXT FOLLOWS

;
;        T A B L E   N U M B E R   O N E
;

; The first entry in this table, Datetime entry mode setting, is used by 
; ParseTime and NlsParseTime to control the parsing of datetime.  Be
; sure to modify the 00 to match your language.  Following this
; is the names of all the days of the week, months of the year, etc.
;
;
; first byte is
;
;	0 ... entry of date as MMDDYY.
;	1 ... entry of date as DDMMYY.
;	2 ... entry of date as YYMMDD.
;
; second byte is
;
;	0 ... entry of hour in either AMPM or Military mode (4:00PM or 16:00)
;	1 ... entry of hour in 24 hour mode only (16:00)

DefineNameEntry(EntryModeSetting, 11);


; First Day of the Week: Sunday
DefineNameEntry(FirstWeekDay, Sonntag)

; Second Day of the Week: Monday
DefineNameEntry(SecondWeekDay, Montag)

; Third Day of the Week: Tuesday
DefineNameEntry(ThirdWeekDay, Dienstag)

; Fourth Day of the Week: Wednesday
DefineNameEntry(FourthWeekDay, Mittwoch)

; Fifth Day of the Week: Thursday
DefineNameEntry(FifthWeekDay, Donnerstag)

; Sixth Day of the Week: Friday
DefineNameEntry(SixthWeekDay, Freitag)

; Seventh Day of the Week: Saturday
DefineNameEntry(SeventhWeekDay, Samstag)



; First Month: January
DefineNameEntry(FirstMonth, Januar)

; Second Month: February
DefineNameEntry(SecondMonth, Februar)

; Third Month: March
DefineNameEntry(ThirdMonth, Mrz)

; Fourth Month: April
DefineNameEntry(FourthMonth, April)

; Fifth Month: May
DefineNameEntry(FifthMonth, Mai)

; Sixth Month: June
DefineNameEntry(SixthMonth, Juni)

; Seventh Month: July
DefineNameEntry(SeventhMonth, Juli)

; Eighth Month: August
DefineNameEntry(EighthMonth, August)

; Ninth Month: September
DefineNameEntry(NinthMonth, September)

; Tenth Month: October
DefineNameEntry(TenthMonth, Oktober)

; Eleventh Month: November
DefineNameEntry(EleventhMonth, November)

; Twelfth Month: December
DefineNameEntry(TwelfthMonth, Dezember)



; First Meridian: AM
DefineNameEntry(FirstMeridian, am)

; Second Meridian: PM
DefineNameEntry(SecondMeridian, pm)

; Third Meridian: Noon
DefineNameEntry(ThirdMeridian, Mittag)

; Forth Meridian: Midnight
DefineNameEntry(ForthMeridian, Mitternacht)


; Default Output Template Number (see table 6)
; Must be a two digit decimal number

DefineNameEntry(DefaultOutputTemplate, 05)



; USER EDITABLE TEXT ENDS


EndNameTable

StartNameTable


;
;        T A B L E   N U M B E R   T W O
;

;  USER EDITABLE TEXT FOLLOWS


; Error Name
DefineNameEntry(ErrorName, ungltiger Name);

; First Day of the Week: Sunday
DefineNameEntry(FirstWeekDay, So)

; Second Day of the Week: Monday
DefineNameEntry(SecondWeekDay, Mo)

; Third Day of the Week: Tuesday
DefineNameEntry(ThirdWeekDay, Di)

; Fourth Day of the Week: Wednesday
DefineNameEntry(FourthWeekDay, Mi)

; Fifth Day of the Week: Thursday
DefineNameEntry(FifthWeekDay, Do)

; Sixth Day of the Week: Friday
DefineNameEntry(SixthWeekDay, Fr)

; Seventh Day of the Week: Saturday
DefineNameEntry(SeventhWeekDay, Sa)

; First Month: January
DefineNameEntry(FirstMonth, Jan)

; Second Month: February
DefineNameEntry(SecondMonth, Feb)

; Third Month: March
DefineNameEntry(ThirdMonth, Mr)

; Fourth Month: April
DefineNameEntry(FourthMonth, Apr)

; Fifth Month: May
DefineNameEntry(FifthMonth, Mai)

; Sixth Month: June
DefineNameEntry(SixthMonth, Jun)

; Seventh Month: July
DefineNameEntry(SeventhMonth, Jul)

; Eighth Month: August
DefineNameEntry(EighthMonth, Aug)

; Ninth Month: September
DefineNameEntry(NinthMonth, Sep)

; Tenth Month: October
DefineNameEntry(TenthMonth, Okt)

; Eleventh Month: November
DefineNameEntry(EleventhMonth, Nov)

; Twelfth Month: December
DefineNameEntry(TwelfthMonth, Dez)

; First Meridian: AM
DefineNameEntry(FirstMeridian, am)

; Second Meridian: PM
DefineNameEntry(SecondMeridian, pm)

; Third Meridian: Noon
DefineNameEntry(ThirdMeridian, m)

; Forth Meridian: Midnight
DefineNameEntry(ForthMeridian, M)


; Default Output Template Number (see table 6)
; Must be a two digit decimal number

DefineNameEntry(DefaultOutputTemplate, 05)



; USER EDITABLE TEXT ENDS

EndNameTable

;
;  If additional tables are required, they must be of the form of the two
;  tables that are above.  Any new tables must begin with a BeginTable call,
;  be followed with exactly the same number of NameEntries, and the table
;  must be closed with an EndTable call.
;
;  Any new tables should be added here, the next table being number 3
;


;  ADD NEW TABLE(S) HERE



;  All tables must be defined above

EndNameDefines




	))



DefTableData (CollationTable, 9, ('

CCT LABEL BYTE

CTSignature DW 'CT'

CCTI LABEL BYTE

'
'	Character Collation Table 
'	This table defines the sort order of all the characters in the character
'	set.  The table consists of one mandatory table followed by several words
'	and bytes which define the length and offset from the beginning of the
'	table of three optional tables.  The 1st table is the primary character
'	collation table.  The optional tables are the secondary character
'	collation table, the 2 for 1 character substitution table and the 1 for 2
'	character substitution table.  
'
'	NOTE:  The second character collation priority map table as well as the 
'	2 for 1 and 1 for 2 substitution tables are not used in the default (CTOS)
'	case and therefore they have been commented out in the original NLS.ASM
'	They would however be useful as a starting place or template for defining
'	a more complete character collation structure than the one used by CTOS.
'
'	The current example includes the  Aumlaut, Oumlaut, Uumlaut and
'	ettset characters, using a German collating sequence.  This example is
'	not intended to be a comprehensive German collating table, but is useful
'	as a first step towards one.
'
'
'		Priority			ASCII Code			Character
'		========			==========			=========
'

	DB	00h				; 	00h
	DB	01h				; 	01h
	DB	02h				; 	02h
	DB	03h				; 	03h
	DB	04h				; 	04h
	DB	05h				; 	05h
	DB	06h				; 	06h
	DB	07h				; 	07h
	DB	08h				; 	08h
	DB	09h				; 	09h
	DB	0Ah				; 	0Ah			New Line
	DB	0Bh				; 	0Bh	
	DB	0Ch				; 	0Ch			Form Feed
	DB	0Dh				; 	0Dh
	DB	0Eh				; 	0Eh
	DB	0Fh				; 	0Fh
	DB	010h			; 	010h
	DB	011h			; 	011h
	DB	012h			; 	012h
	DB	013h			; 	013h
	DB	020h			; 	014h		NonBlank Space (make appear as space)
	DB	015h			; 	015h
	DB	016h			; 	016h
	DB	017h			; 	017h
	DB	018h			; 	018h
	DB	019h			; 	019h
	DB	01Ah			; 	01Ah
	DB	01Bh			; 	01Bh
	DB	01Ch			; 	01Ch
	DB	01Dh			; 	01Dh
	DB	01Eh			; 	01Eh
	DB	01Fh			; 	01Fh
	DB	020h			; 	020h
	DB	021h			; 	021h			
	DB	022h			; 	022h			
	DB	023h			; 	023h			
	DB	024h			; 	024h			$
	DB	025h			; 	025H		Percent Sign
	DB	026h			; 	026h			
	DB	027h			; 	027h			'
	DB	028h			; 	028h			(
	DB	029h			; 	029h			)
	DB	02Ah			; 	02Ah			*
	DB	02Bh			; 	02Bh			+
	DB	02Ch			; 	02Ch			,
	DB	02Dh			; 	02Dh			
	DB	02Eh			; 	02Eh			.
	DB	02Fh			; 	02Fh			
;
;	DIGITS
;
	DB	030h			; 	030h			0
	DB	031h			; 	031h			1
	DB	032h			; 	032h			2
	DB	033h			; 	033h			3
	DB	034h			; 	034h			4
	DB	035h			; 	035h			5
	DB	036h			; 	036h			6
	DB	037h			; 	037h			7
	DB	038h			; 	038h			8
	DB	039h			; 	039h			9
;
	DB	03Ah			; 	03Ah			:
	DB	03Bh			; 	03Bh			;
	DB	03Ch			; 	03Ch			<
	DB	03Dh			; 	03Dh			=
	DB	03Eh			; 	03Eh			>
	DB	03Fh			; 	03Fh			?
	DB	040h			; 	040h			@
;
;	Roman Letters A thru Z
;
	DB	041h			; 	041h			A
	DB	042h			; 	042h			B
	DB	043h			; 	043h			C
	DB	044h			; 	044h			D
	DB	045h			; 	045h			E
	DB	046h			; 	046h			F
	DB	047h			; 	047h			G
	DB	048h			; 	048H			H
	DB	049h			; 	049h			I
	DB	04Ah			; 	04Ah			J
	DB	04Bh			; 	04Bh			K
	DB	04Ch			; 	04Ch			L
	DB	04Dh			; 	04Dh			M
	DB	04Eh			; 	04Eh			N
	DB	04Fh			; 	04Fh			O
	DB	050h			; 	050h			P
	DB	051h			; 	051h			Q
	DB	052h			; 	052h			R
	DB	053h			; 	053h			S
	DB	054h			; 	054h			T
	DB	055h			; 	055h			U
	DB	056h			; 	056h			V
	DB	057h			; 	057h			W
	DB	058h			; 	058h			X
	DB	059h			; 	059h			Y
	DB	05Ah			; 	05Ah			Z
;
	DB	05Bh			; 	05Bh			[
	DB	05Ch			; 	05Ch			\
	DB	05Dh			; 	05Dh			]
	DB	05Eh			; 	05Eh			^
	DB	05Fh			; 	05Fh			_
	DB	060h			; 	060h			
'
' NOTE: In this the primary collation table, Priorities of the characters az
'		are the same as those of AZ.
'
	DB	041h			; 	061h		a
	DB	042h			; 	062h		b
	DB	043h			; 	063h		c
	DB	044h			; 	064h		d
	DB	045h			; 	065h		e
	DB	046h			; 	066h		f
	DB	047h			; 	067h		g
	DB	048h			; 	068h		h
	DB	049h			; 	069h		i
	DB	04Ah			; 	06Ah		j
	DB	04Bh			; 	06Bh		k
	DB	04Ch			; 	06Ch		l
	DB	04Dh			; 	06Dh		m
	DB	04Eh			; 	06Eh		n
	DB	04Fh			; 	06Fh		o
	DB	050h			; 	070h		p
	DB	051h			; 	071h		q
	DB	052h			; 	072h		r
	DB	053h			; 	073h		s
	DB	054h			; 	074h		t
	DB	055h			; 	075h		u
	DB	056h			; 	076h		v
	DB	057h			; 	077h		w
	DB	058h			; 	078h		x
	DB	059h			; 	079h		y
	DB	05Ah			; 	07Ah		z
;
	DB	07Bh			; 	07Bh		{
	DB	07Ch			; 	07Ch		|
	DB	07Dh			; 	07Dh		}
	DB	07Eh			; 	07Eh		
	DB	07Fh			; 	07Fh			
	DB	080h			; 	080h		Delete
	DB	081h			; 	081h
	DB	082h			; 	082h
	DB	083h			; 	083h
	DB	084h			; 	084h
	DB	085h			; 	085h
	DB	086h			; 	086h
	DB	087h			; 	087h
	DB	088h			; 	088h
	DB	089h			; 	089h
	DB	08Ah			; 	08Ah
	DB	08Bh			; 	08Bh
	DB	08Ch			; 	08Ch
	DB	08Dh			; 	08Dh
	DB	08Eh			; 	08Eh
	DB	08Fh			; 	08Fh
	DB	090h			; 	090h
	DB	091h			; 	091h
	DB	092h			; 	092h
	DB	093h			; 	093h
	DB	094h			; 	094h
	DB	095h			; 	095h
	DB	096h			; 	096h
	DB	097h			; 	097h
	DB	098h			; 	098h
	DB	099h			; 	099h
	DB	09Ah			; 	09Ah
	DB	09Bh			; 	09Bh
	DB	09Ch			; 	09Ch
	DB	09Dh			; 	09Dh
	DB	09Eh			; 	09Eh
	DB	09Fh			; 	09Fh
'
' NOTE: The lowercase umlauted, struckthrough, and AE ligature characters 
'		 have the same priority as their uppercase equivalents.
'
	DB	0A0h			; 	0A0h	Acircle
	DB	0A0h			; 	0A1h	acircle (make appear as Acircle)
	DB	0A2h			; 	0A2h	Aumlaut
	DB	0A2h			; 	0A3h	aumlaut 
	DB	0A4h			; 	0A4h	Oumluat
	DB	0A4h			; 	0A5h	oumlaut 
	DB	0A6h			; 	0A6h	Oslash 
	DB	0A6h			; 	0A7h	oslash  
	DB	0A8h			; 	0A8h    Uumlaut 
	DB	0A8h			; 	0A9h    uUmluat 
	DB	0AAh			; 	0AAh
	DB	0ABh			; 	0ABh
	DB	0ACh			; 	0ACh
	DB	0ADh			; 	0ADh
	DB	0AEh			; 	0AEh	AE ligature
	DB	0AEh			; 	0AFh	ae ligature 
	DB	0B0h			; 	0B0h
	DB	0B1h			; 	0B1h
	DB	0B2h			; 	0B2h
	DB	0B3h			; 	0B3h
	DB	0B4h			; 	0B4h
	DB	0B5h			; 	0B5h
	DB	0B6h			; 	0B6h
	DB	0B7h			; 	0B7h
	DB	0B8h			; 	0B8h
	DB	0B9h			; 	0B9h
	DB	0BAh			; 	0BAh
	DB	0BBh			; 	0BBh
	DB	0BCh			; 	0BCh
	DB	0BDh			; 	0BDh
	DB	0BEh			; 	0BEh
	DB	0BFh			; 	0BFh
	DB	0C0h			; 	0C0h
	DB	0C1h			; 	0C1h
	DB	0C2h			; 	0C2h
	DB	0C3h			; 	0C3h
	DB	0C4h			; 	0C4h
	DB	0C5h			; 	0C5h
	DB	0C6h			; 	0C6h
	DB	0C7h			; 	0C7h
	DB	0C8h			; 	0C8h
	DB	0C9h			; 	0C9h
	DB	0CAh			; 	0CAh
	DB	0CBh			; 	0CBh
	DB	0CCh			; 	0CCh
	DB	0CDh			; 	0CDh
	DB	0CEh			; 	0CEh
	DB	0CFh			; 	0CFh
	DB	0D0h			; 	0D0h
	DB	0D1h			; 	0D1h
	DB	0D2h			; 	0D2h
	DB	0D3h			; 	0D3h
	DB	0D4h			; 	0D4h
	DB	0D5h			; 	0D5h
	DB	0D6h			; 	0D6h
	DB	0D7h			; 	0D7h
	DB	0D8h			; 	0D8h
	DB	0D9h			; 	0D9h
	DB	0DAh			; 	0DAh
	DB	0DBh			; 	0DBh
	DB	0DCh			; 	0DCh
	DB	0DDh			; 	0DDh
	DB	0DEh			; 	0DEh
	DB	0DFh			; 	0DFh
	DB	0E0h			; 	0E0h
	DB	0E1h			; 	0E1h
	DB	0E2h			; 	0E2h
	DB	0E3h			; 	0E3h
	DB	0E4h			; 	0E4h
	DB	0E5h			; 	0E5h
	DB	0E6h			; 	0E6h
	DB	0E7h			; 	0E7h
	DB	0E8h			; 	0E8h
	DB	0E9h			; 	0E9h
	DB	0EAh			; 	0EAh
	DB	0EBh			; 	0EBh
	DB	0ECh			; 	0ECh
	DB	0EDh			; 	0EDh
	DB	0EEh			; 	0EEh
	DB	0EFh			; 	0EFh
	DB	0F0h			; 	0F0h
	DB	0F1h			; 	0F1h
	DB	0F2h			; 	0F2h
	DB	0F3h			; 	0F3h
	DB	0F4h			; 	0F4h
	DB	0F5h			; 	0F5h
	DB	0F6h			; 	0F6h
	DB	0F7h			; 	0F7h
	DB	0F8h			; 	0F8h
	DB	0F9h			; 	0F9h
	DB	0FAh			; 	0FAh
	DB	0FBh			; 	0FBh
	DB	0FCh			; 	0FCh
	DB	0FDh			; 	0FDh
	DB	0FEh			; 	0FEh
	DB	0FFh			; 	0FFh

'
'	To enable the 1to2 and 2to1 example tables, uncomment all the lines
'  beginning with DB and DW from the CCT2 LABEL BYTE line through the
'	rgb2For2Flags table.
'
'	Also, you must switch the semicolon on the following
'	nine pairs of lines. e.g.,
'
'	;	DW	CCT2  CCTI
'		DW  0
'
'					becomes:
'
'	 	DW	CCT2  CCTI
'	;	DW  0
'



o2ndCCT LABEL BYTE

	DW	CCT2  CCTI
;	DW  0

	DB	rgw2For1Subs  rgb2For1Chrs
;	DB  0

;	DB	(rgb1For2Flags  rgw1For2Subs)  2
	DB  0

	DW	rgb2For1Chrs  CCT
;	DW  0

	DW	rgw2For1Subs  CCT
;	DW  0

	DW	rgw2For1Priorities  CCT
	DW  0

;	DW	rgw1For2Wrds  CCT
	DW  0

;	DW	rgw1For2Subs  CCT
	DW  0

;	DW	rgb1For2Flags  CCT
	DW  0


CCT2 LABEL BYTE

'	Priority			ASCII Code			Character
'	========			==========			=========

	DB	00h				; 	00h
	DB	01h				; 	01h
	DB	02h				; 	02h
	DB	03h				; 	03h
	DB	04h				; 	04h
	DB	05h				; 	05h
	DB	06h				; 	06h
	DB	07h				; 	07h
	DB	08h				; 	08h
	DB	09h				; 	09h
	DB	0Ah				; 	0Ah			New Line.
	DB	0Bh				; 	0Bh
	DB	0Ch				; 	0Ch			Form Feed.
	DB	0Dh				; 	0Dh
	DB	0Eh				; 	0Eh
	DB	0Fh				; 	0Fh
	DB	010h			; 	010h
	DB	011h			; 	011h
	DB	012h			; 	012h
	DB	013h			; 	013h
	DB	014h			; 	014h		NonBlank Space 
	DB	015h			; 	015h
	DB	016h			; 	016h
	DB	017h			; 	017h
	DB	018h			; 	018h
	DB	019h			; 	019h
	DB	01Ah			; 	01Ah
	DB	01Bh			; 	01Bh
	DB	01Ch			; 	01Ch
	DB	01Dh			; 	01Dh
	DB	01Eh			; 	01Eh
	DB	01Fh			; 	01Fh
	DB	020h			; 	020h
	DB	021h			; 	021h			
	DB	022h			; 	022h			
	DB	023h			; 	023h			
	DB	024h			; 	024h			$
	DB	025h			; 	025H		Percent Sign
	DB	026h			; 	026h			
	DB	027h			; 	027h			'
	DB	028h			; 	028h			(
	DB	029h			; 	029h			)
	DB	02Ah			; 	02Ah			*
	DB	02Bh			; 	02Bh			+
	DB	02Ch			; 	02Ch			,
	DB	02Dh			; 	02Dh			
	DB	02Eh			; 	02Eh			.
	DB	02Fh			; 	02Fh			

;	DIGITS

	DB	030h			; 	030h			0
	DB	031h			; 	031h			1
	DB	032h			; 	032h			2
	DB	033h			; 	033h			3
	DB	034h			; 	034h			4
	DB	035h			; 	035h			5
	DB	036h			; 	036h			6
	DB	037h			; 	037h			7
	DB	038h			; 	038h			8
	DB	039h			; 	039h			9
	DB	03Ah			; 	03Ah			:
	DB	03Bh			; 	03Bh			;
	DB	03Ch			; 	03Ch			<
	DB	03Dh			; 	03Dh			=
	DB	03Eh			; 	03Eh			>
	DB	03Fh			; 	03Fh			?
	DB	040h			; 	040h			@
'
	DB	041h			; 	061h			A
	DB	043h			; 	062h			B
	DB	045h			; 	063h			C
	DB	047h			; 	064h			D
	DB	049h			; 	065h			E
	DB	04Bh			; 	066h			F
	DB	04Dh			; 	067h			G
	DB	04Fh			; 	068h			H
	DB	051h			; 	069h			I
	DB	053h			; 	06Ah			J
	DB	055h			; 	06Bh			K
	DB	057h			; 	06Ch			L
	DB	059h			; 	06Dh			M
	DB	05Bh			; 	06Eh			N
	DB	05Dh			; 	06Fh			O
	DB	05Fh			; 	070h			P
	DB	061h			; 	071h			Q
	DB	063h			; 	072h			R
	DB	065h			; 	073h			S
	DB	067h			; 	074h			T
	DB	069h			; 	075h			U
	DB	06Bh			; 	076h			V
	DB	06Dh			; 	077h			W
	DB	06Fh			; 	078h			X
	DB	071h			; 	079h			Y
	DB	073h			; 	07Ah			Z
'
	DB	075h			; 	05Bh			[
	DB	076h			; 	05Ch			\
	DB	077h			; 	05Dh			]
	DB	078h			; 	05Eh			^
	DB	079h			; 	05Fh			_
	DB	07Ah			; 	060h			
'
' NOTE: In this the Secondary collation table, the characters a thru z and
'		A thru Z are arranged in the following order. A,a,B,b...,Z,z
'
	DB	042h			; 	041h			a
	DB	044h			; 	042h			b
	DB	046h			; 	043h			c
	DB	048h			; 	044h			d
	DB	04Ah			; 	045h			e
	DB	04Ch			; 	046h			f
	DB	04Eh			; 	047h			g
	DB	050h			; 	048H			h
	DB	052h			; 	049h			i
	DB	054h			; 	04Ah			j
	DB	056h			; 	04Bh			k
	DB	058h			; 	04Ch			l
	DB	05Ah			; 	04Dh			m
	DB	05Ch			; 	04Eh			n
	DB	05Eh			; 	04Fh			o
	DB	060h			; 	050h			p
	DB	062h			; 	051h			q
	DB	064h			; 	052h			r
	DB	066h			; 	053h			s
	DB	068h			; 	054h			t
	DB	06Ah			; 	055h			u
	DB	06Ch			; 	056h			v
	DB	06Eh			; 	057h			w
	DB	070h			; 	058h			x
	DB	072h			; 	059h			y
	DB	074h			; 	05Ah			z
'
	DB	07Bh			; 	07Bh			{
	DB	07Ch			; 	07Ch			|
	DB	07Dh			; 	07Dh			}
	DB	07Eh			; 	07Eh			^
	DB	07Fh			; 	07Fh			
	DB	080h			; 	080h			Delete
	DB	081h			; 	081h			
	DB	082h			; 	082h			
	DB	083h			; 	083h
	DB	084h			; 	084h
	DB	085h			; 	085h
	DB	086h			; 	086h
	DB	087h			; 	087h
	DB	088h			; 	088h
	DB	089h			; 	089h
	DB	08Ah			; 	08Ah
	DB	08Bh			; 	08Bh
	DB	08Ch			; 	08Ch
	DB	08Dh			; 	08Dh
	DB	08Eh			; 	08Eh
	DB	08Fh			; 	08Fh
	DB	090h			; 	090h
	DB	091h			; 	091h
	DB	092h			; 	092h
	DB	093h			; 	093h
	DB	094h			; 	094h
	DB	095h			; 	095h
	DB	096h			; 	096h
	DB	097h			; 	097h
	DB	098h			; 	098h
	DB	099h			; 	099h
	DB	09Ah			; 	09Ah
	DB	09Bh			; 	09Bh
	DB	09Ch			; 	09Ch
	DB	09Dh			; 	09Dh
	DB	09Eh			; 	09Eh
	DB	09Fh			; 	09Fh
	DB	0A0h			; 	0A0h			Acircle
	DB	0A1h			; 	0A1h			acircle
	DB	0A2h			; 	0A2h			Aumlaut
	DB	0A3h			; 	0A3h			aumlaut
	DB	0A4h			; 	0A4h			Oumlaut 
	DB	0A5h			; 	0A5h			oumlaut 
	DB	0A6h			; 	0A6h			Oslash 
	DB	0A7h			; 	0A7h			oslash 
	DB	0A8h			; 	0A8h            Uumlaut
	DB	0A9h			; 	0A9h            uumlaut
	DB	0AAh			; 	0AAh
	DB	0ABh			; 	0ABh
	DB	0ACh			; 	0ACh
	DB	0ADh			; 	0ADh
	DB	0AEh			; 	0AEh			AE ligature
	DB	0AFh			; 	0AFh			ae ligature
	DB	0B0h			; 	0B0h
	DB	0B1h			; 	0B1h
	DB	0B2h			; 	0B2h
	DB	0B3h			; 	0B3h
	DB	0B4h			; 	0B4h
	DB	0B5h			; 	0B5h
	DB	0B6h			; 	0B6h
	DB	0B7h			; 	0B7h
	DB	0B8h			; 	0B8h
	DB	0B9h			; 	0B9h
	DB	0BAh			; 	0BAh
	DB	0BBh			; 	0BBh
	DB	0BCh			; 	0BCh
	DB	0BDh			; 	0BDh
	DB	0BEh			; 	0BEh
	DB	0BFh			; 	0BFh
	DB	0C0h			; 	0C0h
	DB	0C1h			; 	0C1h
	DB	0C2h			; 	0C2h
	DB	0C3h			; 	0C3h
	DB	0C4h			; 	0C4h
	DB	0C5h			; 	0C5h
	DB	0C6h			; 	0C6h
	DB	0C7h			; 	0C7h
	DB	0C8h			; 	0C8h
	DB	0C9h			; 	0C9h
	DB	0CAh			; 	0CAh
	DB	0CBh			; 	0CBh
	DB	0CCh			; 	0CCh
	DB	0CDh			; 	0CDh
	DB	0CEh			; 	0CEh
	DB	0CFh			; 	0CFh
	DB	0D0h			; 	0D0h
	DB	0D1h			; 	0D1h
	DB	0D2h			; 	0D2h
	DB	0D3h			; 	0D3h
	DB	0D4h			; 	0D4h
	DB	0D5h			; 	0D5h
	DB	0D6h			; 	0D6h
	DB	0D7h			; 	0D7h
	DB	0D8h			; 	0D8h
	DB	0D9h			; 	0D9h
	DB	0DAh			; 	0DAh
	DB	0DBh			; 	0DBh
	DB	0DCh			; 	0DCh
	DB	0DDh			; 	0DDh
	DB	0DEh			; 	0DEh
	DB	0DFh			; 	0DFh
	DB	0E0h			; 	0E0h
	DB	0E1h			; 	0E1h
	DB	0E2h			; 	0E2h
	DB	0E3h			; 	0E3h
	DB	0E4h			; 	0E4h
	DB	0E5h			; 	0E5h
	DB	0E6h			; 	0E6h
	DB	0E7h			; 	0E7h
	DB	0E8h			; 	0E8h
	DB	0E9h			; 	0E9h
	DB	0EAh			; 	0EAh
	DB	0EBh			; 	0EBh
	DB	0ECh			; 	0ECh
	DB	0EDh			; 	0EDh
	DB	0EEh			; 	0EEh
	DB	0EFh			; 	0EFh
	DB	0F0h			; 	0F0h
	DB	0F1h			; 	0F1h
	DB	0F2h			; 	0F2h
	DB	0F3h			; 	0F3h
	DB	0F4h			; 	0F4h
	DB	0F5h			; 	0F5h
	DB	0F6h			; 	0F6h
	DB	0F7h			; 	0F7h
	DB	0F8h			; 	0F8h
	DB	0F9h			; 	0F9h
	DB	0FAh			; 	0FAh
	DB	0FBh			; 	0FBh
	DB	0FCh			; 	0FCh
	DB	0FDh			; 	0FDh
	DB	0FEh			; 	0FEh
	DB	0FFh			; 	0FFh
'
'	rgb2For1Chrs 
'	This table defines those characters which have 2 for 1 substitutions.
'
rgb2For1Chrs LABEL BYTE
    DB  0A0h            ;   0A0h        Acircle
    DB  0A1h            ;   0A1h        acircle
	DB	0A2h			; 	0A2h		A umlaut
	DB	0A3h			; 	0A3h		a umlaut
	DB	0A4h			; 	0A4h		O umlaut
	DB	0A5h			; 	0A5h		o umlaut
	DB	0A6h			; 	0A6h		Oslash 
	DB	0A7h			; 	0A7h		oslash 
	DB	0A8h			; 	0A8h		U umlaut
	DB	0A9h			; 	0A9h		u umlaut
	DB	0AEh			; 	0AEh		AE ligature
	DB	0AFh			; 	0AFh		ae ligature
	DB	0B0h			; 	0B0h		(ettset)
'
'	rgw2For1Subs 
'	This table MUST parallel rgb2For1Chrs.  It defines the two characters
'	which are to be substituted for the characters in rgb2For1Chrs.


rgw2For1Subs LABEL BYTE
	DB	'A', 'o'        ; Acircle expands to 'A', 'o'
	DB	'a', 'o'        ; acircle expands to 'a', 'o'
	DB	'A', 'e'        ; Aumlaut expands to 'A', 'e'
	DB	'a', 'e'        ; aumlaut expands to 'a', 'e'
	DB	'O', 'e'        ; Oumlaut expands to 'O', 'e'
	DB	'o', 'e'        ; oumlaut expands to 'o', 'e'
	DB	'O', ''        ; Oslash expands to 'O', ''
	DB	'o', ''        ; oslash expands to 'o', ''
	DB	'U', 'e'        ; Uumlaut expands to 'U', 'e'
	DB	'u', 'e'        ; uumlaut expands to 'u', 'e'
	DB	'A', 'e'        ; AE ligature expands to 'A', 'e'
	DB	'a', 'e'        ; ae ligature expands to 'a', 'e'
	DB	's', 's'        ; ettset expands to 's', 's'



'	rgw2For1Priorities  
'	This table MUST parallel rgb2For1Chrs  rgw2For1Subs.  It defines the
'	offset in priority of the second of the two characters in rgw2For1Subs
'	which are to be substituted for the corresponding characters defined in
'	rgb2For1Chrs.  For the first example shown Aumlaut,  the 1 indicates
'	that the Au substitution should sort immediately before a real Au.
'	A 0 would indicate that the Au substituted for Aumlaut should be 
'	sorted exactly equal to a normal Au, and finally a 1 would indicate
'	that the Au substitution should sort immediately after a real Au.
'	NOTE: This table is NOT used in conjunction with the first character
'	collation table.  When the first character collation table is being used
'	the characters substituted as a result of 2 for 1 substitutions will be
'	collated equal to their normal values, just as if the entry in this array
'	had been defined as 0.
'


rgw2For1Priorities LABEL BYTE
	DW	1          ; Acircle expands to 'A', 'o'  sorts before 'Ao'
	DW	1          ; acircle expands to 'a', 'o'  sorts before 'ao'
	DW	1          ; Aumlaut expands to 'A', 'e'  sorts before 'ae'
	DW	1          ; aumlaut expands to 'a', 'e'  sorts before 'ae'
	DW	1          ; Oumlaut expands to 'O', 'e'  sorts before 'Oe'
	DW	1          ; oumlaut expands to 'o', 'e'  sorts before 'oe'
	DW	1          ; Oslash expands to 'O', ''  sorts before 'O'
	DW	1          ; oslash expands to 'o', ''  sorts before 'o'
	DW	1          ; Uumlaut expands to 'U', 'e'  sorts before 'Ue'
	DW	1          ; uumlaut expands to 'u', 'e'  sorts before 'ue'
	DW	1          ; AE ligature expands to 'A', 'e'  sorts before 'Ae'
	DW	1          ; ae ligature expands to 'a', 'e'  sorts before 'ae'
	DW	1          ; esset expands to 's', 's'  sorts before 'ss'




'	This table defines those pairs of characters which special priorities when
'   they are at the beginning of the word. (e.g. Mc or Ch in spanish)
'	
rgw1For2Wrds LABEL BYTE
;	DB	'M', 'c'
;	DB	'C', 'h'
;	DB	'c', 'h'


'
'	The table rgw1For2Subs MUST parallel rgw1For2Wrds.  It defines the
'	priorites of the sets of two special characters defined in rgw1For2Wrds.
'
rgw1For2Subs LABEL BYTE
'	DW	4CFFh
'	DW	4301h
'	DW	4301h
'

'	The table rgb1For2Flags MUST parallel rgw1For2Wrds.  It defines whether
'	the 1 for 2	substitution defined in rgw1For2Wrds and rgw1For2Subs should
'	always be made or if it should only be made when the two characters
'	defined in rgw1For2Wrds are at the beginning of a string.
'

rgb1For2Flags LABEL BYTE
'	DB	01h
'	DB	00h
'	DB	00h
))



; The following table indicates the class of the each of the 256 characters.
; The five possible values are defined below.

numer	EQU		0	; Numeric (Whole numbers)
alpha	EQU		1	; Alphabetic (Letters of the alphabet)
specl	EQU		2	; Special (Nonalphanumeric, but commonly displayed)
graph	EQU		3	; Graphic (Line drawing and other special graphics)
blind	EQU		4	; Blind (Not generally intended for display purposes)

DefTableData (CharacterClassTable, 10, ('
CharacterClassSigniture DW 'CC'

;		0  8  1  9  2  A  3  B  4  C  5  D  6  E  7  F
;		              
	DB	blind, blind, blind, specl, blind, blind, specl, blind	; 00h07h
	DB	blind, blind, blind, blind, blind, blind, blind, blind	; 08h0Fh
	DB	specl, blind, blind, blind, blind, blind, blind, blind	; 10h17h
	DB	blind, blind, blind, blind, blind, blind, blind, blind	; 18h1Fh
	DB	specl, specl, specl, specl, specl, specl, specl, specl	; 20h27h
	DB	specl, specl, specl, specl, specl, specl, specl, specl	; 28h2Fh
	DB	numer, numer, numer, numer, numer, numer, numer, numer	; 30h37h
	DB	numer, numer, specl, specl, specl, specl, specl, specl	; 38h3Fh
	DB	specl, alpha, alpha, alpha, alpha, alpha, alpha, alpha	; 40h47h
	DB	alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha	; 48h4Fh
	DB	alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha	; 50h57h
	DB	alpha, alpha, alpha, specl, specl, specl, specl, specl	; 58h5Fh
	DB	specl, alpha, alpha, alpha, alpha, alpha, alpha, alpha	; 60h67h
	DB	alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha	; 68h6Fh
	DB	alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha	; 70h77h
	DB	alpha, alpha, alpha, specl, specl, specl, specl, blind	; 78h7Fh
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; 80h87h
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; 88h8Fh
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; 90h97h
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; 98h9Fh
	DB	alpha, alpha, alpha, alpha, alpha, alpha, alpha, alpha 	; A0hA7h
	DB	Alpha, alpha, blind, blind, blind, blind, alpha, alpha	; A8hAFh
	DB	alpha, blind, blind, blind, blind, blind, graph, graph	; B0hB7h
	DB	graph, graph, specl, graph, graph, graph, graph, graph	; B8hBFh
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; C0hC7h
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; C8hCFh
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; D0hD7h
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; D8hDFh
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; E0hE7h
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; E8hEFh
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; F0hF7h
	DB	graph, graph, graph, graph, graph, graph, graph, graph	; F8hFFh
))


; The YesNo strings are space delimited words meaning Yes or No. 
; It is recommended that Yes and No remain as part of their respective strings
; for compatibility with submit files.
; If you wish to multiple answers for yes or no, modify the table as
; follows:  ('Yes Oui').  That, seperate words by a space, but do
; not put a space after the last entry.
; Note: For some programs, such as the Cmd File Editor, if you have more than
;       one word matching yes or no, only the first one will be displayed.
;		You should choose the first entry as your native

DefTableData (YesNoStrings, 11, ('
YesNoSignature		DW 'YN'
sbString ('Ja Yes')		
sbString ('Nein No')
	))

; The Special Characters table contains characters that are subject
; to special interpretation by programs like the Executive.  The table 
; includes entries used by Convergent as well as customer reserved entries.
; Convergent characters follow the nEntriesCT field, while customer entries
; follow the nEntriesUser field.  To change the characters used by 
; Convergent programs, simply change values in the CT portion of the
; table.  For example, to change the literal insert or escape character 
; from CODE' to backslash, change the first entry from 0A7h to 5Ch. 
;
; If you add entries, be sure you add the entries after the nEntriesUser
; field, and increment nEntriesUser.
;
; NOTE: DO NOT ALTER THE ORDER OF THE ENTRIES.  
;

DefTableData (SpecialCharacters, 13, ('
SpecialCharacters	DW 'SC'
 nEntriesCt	  DB 1
	DB	05Ch		; Backslash
 nEntriesUser DB 0
;customer entries start here
	))


;
; The KbdChords table defines the unencoded keystrokes for the code, shift
; and action key chords.
;
; The table is also used by the Remote Console.  
;

DefTableData (KbdChords, 14, ('
KbdChordsSig	DW 'KC'
cIkey			DW 14	;number of iKeys described below
iKeyDbgrA		DW 61h	;(actiona)  enter debugger in single process mode 
iKeyDbgrB		DW 62h	;(actionb)  enter debugger in multi process mode 
iKeyDelete		DW 7Fh	;(actiondelete)  discard kbd type ahead
iKeyOverType	DW 44h	;(actionovertype)  turn off video refresh
iKeyCode0		DW 4Ch	;left code key
iKeyCode1		DW 4Dh	;right code key
iKeyFinish		DW 04h	;finish key
iKeyAction		DW 43h	;action key
iKeyShiftLock	DW 45h	;shift LOCK key
iKeyShift0		DW 48h	;left shift key
iKeyShift1		DW 49h	;right shift key
rsvd1			DW 0FFFFh
rsvd2			DW 0FFFFh
rsvd3			DW 0FFFFh
))


;
;	TABLE 15 RESERVED  DO NOT USE
;


;
; The table below, MultiByteEscapeKeys, defines keyboard keys which when
; depressed result in multiple keystrokes being returned to keyboard clients. 
;
; All entries in the table are unencoded keystrokes. Any key on the keyboard
; may be defined as a MultiByteEscapeKey. Also, different results may be
; defined depending on the shift and code key state. See the CTOS Reference
; manual Appendix C1 for unencoded value of keyboard keys.
;
; The resulting key sequences must include downstrokes as well as upstrokes
; as well as any shift state required to produce the keyboard characters
; desired. An upstroke is the key value OR'ed with 80h.
;
; The two examples below are 'commented out' by the notation '
; preceding each macro.
;
; In the first example below, the key '0' on the numeric pad (unencoded 
; value 4Ah) is defined to produce 6 keyboard events  
;		downstroke 'a' (61h)
;		upstroke 'a' (0E1h)
;		downstroke 'b' (62h)
;		upstroke 'b' (0E2h)
;		downstroke 'c' (63h)
;		upstroke 'c' (0E3h)
; These 6 keyboard events would produce the 3 keyboard characters 'abc'.
;
; In the second example the key '0' on the numeric pad is depressed when the
; shift or shift lock keys are active would produce the keyboard characters
; '[sys]<sys>'. Note that the first keystroke in this list is shift 
; upstroke (0C8h) which turns off the shift state caused by the invoking
; key, shift'0'.
;
DefTableData (MultiByteEscapeKeys, 16, ('

EscapeKeySig	DW 'MB'

Unshifted EQU 0
Shifted   EQU 3
Coded	  EQU 4
Shift2ed  EQU 8

InitEscapeKeys
'DefEscapeKey(4Ah, Unshifted) (61h,0E1h,62h,0E2h,63h,0E3h)
DefEscapeKey(4Ah, Shifted) (0C8h,0C9h,048h,5Ch,0DCh,0C8h,73h,0F3h,7Ah,0FAh,73h,0F3h,48h,7Ch,0FCh,60h,0E0h,0C8h,73h,0F3h,7Ah,0FAh,73h,0F3h,48h,46h,0C6h,0C8h)
EndEscapeKeys

))


;
; The CtosLib strings table defines those strings used by Ctos.lib routines.
;
; NOTE: DO NOT ALTER THE ORDER OF THE ENTRIES.  
;

DefTableData (CtosLib, 17, ('

CtosLibSig	DW 'CL'
cString		DW 2
sbString ('.user')
sbString ('Old')
	))


;**WARNING***WARNING**************************************
;*********************************************************
; TABLES 18,19,20 AND 21 ARE FOR CLUSTERSHARE APPLICATIONS
; These tables have been commented out to save memory for
; non clustershare environments.  If you are going to use
; clustershare, please uncomment the next 4 tables by 
; removing the ' (percent quote) characters from the
; beginning of each line.
;*********************************************************
;**END*WARNING********************************************
;
; TABLE 18  CTDOS.lib keyboard table
';
';
'DefTableData (CtDos_KbdTable, 18, ('
';
'CtDos_KbdTableSignature DW 4431h  ;D1
';
'; FIRST TABLE: SIMPLE PC TO CT CHARACTER MAPPING
'; This table maps single PC characters to the equivalent
'; character in the CT character set.
';
'
';  CT Char code       ;PC       |CTOS          |CTOS
';                     ;Char     |visual        |keystrokes
';                     ;code     |symbol        |
'
'    db 0FFh           ;00(Ctrl2)     nul         CODEHELP
'    db 0E1h           ;01    see Table B2        CODEa
'
'    db 0E2h           ;02    see Table B2        CODEb
';    db 0FFh          ;0002    (Altdown arrow)
'
'    db 0E3h           ;03    see Table B2        CODEc
'
'    db 0E4h           ;04    see Table B2        CODEd
';    db 0FFh          ;0004    (Altleft arrow)
'
'    db 0E5h           ;05     see Table B2        CODEe
'
'    db 0E6h           ;06     see Table B2        CODEf
';    db 0FFh          ;0006    (Altright arrow)
'
'    db 0E7h           ;07    see Table B2        CODEg
'
'    db 008h           ;0E08    backspace        BACKSPACE
';    db 0E8h          ;2308    see Table B2        CODEh
';    db 0FFh          ;0008    (Altup arrow)
'
'    db 009h           ;09    tab            TAB
';    db 0E9h          ;09    see Table B2        CODEi
'
'    db 0EAh           ;0A    see Table B2        CODEj
';    db 00Ah          ;0AAltEnter SC=1C        SHIFTRET
'
'    db 0EBh           ;0B    see Table B2        CODEk
'    db 0ECh           ;0C    see Table B2        CODEl
'
'    db 00Ah           ;0D    new line        RETURN
';    db 0EDh          ;0D    see Table B2        CODEm
'
'    db 0EEh           ;0E    see Table B2        CODEn
'    db 0EFh           ;0F    see Table B2        CODEo
'    db 0F0h           ;10    see Table B2        CODEp
'    db 0F1h           ;11    see Table B2        CODEq
'    db 0F2h           ;12    see Table B2        CODEr
'    db 0F3h           ;13    see Table B2        CODEs
'    db 0F4h           ;14    see Table B2        CODEt
'    db 017h           ;15    (needed for German and French)
';    db 0F5h          ;15    see Table B2        CODEu
'    db 0F6h           ;16    see Table B2        CODEv
'    db 0F7h           ;17    see Table B2        CODEw
'    db 0F8h           ;18    see Table B2        CODEy
'    db 0F9h           ;19    see Table B2        CODEx
'    db 0FAh           ;1A    see Table B2        CODEz
'
'    db 007h           ;1B    bell            CANCEL
';    db 0DBh          ;1B    see Table B2        SHIFT[
'
'    db 0FFh           ;1C    c cedilla    CODESHIFT8
'    db 0DDh           ;1D    see Table B2    CODE]
'    db 0FFh           ;1E             CODE6
'    db 0ADh           ;1F    e acute            CODE
'    db 020h           ;20    space            space
'    db 021h           ;21                SHIFT1
'    db 022h           ;22                SHIFT'
'    db 023h           ;23                SHIFT3
'    db 024h           ;24    $            SHIFT4
'    db 025h           ;25    percent sign SHIFT5
'    db 026h           ;26                SHIFT7
'    db 027h           ;27    quote        quote
'    db 028h           ;28    right paren  SHIFT9
'    db 029h           ;29    left paren   SHIFT0
'
'    db 02Ah           ;2A    raised dot        BOUND
';    db 02Ah          ;2A    *            SHIFT8
'
'    db 02Bh           ;2B    filled circle        GO
';    db 02Bh          ;2B    +            SHIFT=
'
'    db 02Ch           ;2C    , (comma)        ,
'
'    db 02Dh           ;2D    SC=4A            MARK
';    db 02Dh          ;2D     (hyphen)        
'
'    db 02Eh           ;2E    . (period)        .
'    db 02Fh           ;2F                
'    db 030h           ;30    0            0
'    db 031h           ;31    1            1
'    db 032h           ;32    2            2
'    db 033h           ;33    3            3
'    db 034h           ;34    4            4
'    db 035h           ;35    5            5
'    db 036h           ;36    6            6
'    db 037h           ;37    7                7
'    db 038h           ;38    8            8
'    db 039h           ;39    9            9
'    db 03Ah           ;3A    :            SHIFT;
'    db 03Bh           ;3B    ;            ;
'    db 03Ch           ;3C    <            SHIFT[
'    db 03Dh           ;3D    =            =
'    db 03Eh           ;3E    >            SHIFT]
'    db 03Fh           ;3F    ?            SHIFT
'    db 040h           ;40    @            SHIFT2
'    db 041h           ;41    A                SHIFTa
'    db 042h           ;42    B            SHIFTb
'    db 043h           ;43    C            SHIFTc
'    db 044h           ;44    D            SHIFTd
'    db 045h           ;45    E            SHIFTe
'    db 046h           ;46    F            SHIFTf
'    db 047h           ;47    G            SHIFTg
'    db 048h           ;48    H            SHIFTh
'    db 049h           ;49    I            SHIFTi
'    db 04Ah           ;4A    J            SHIFTj
'    db 04Bh           ;4B    K            SHIFTk
'    db 04Ch           ;4C    L            SHIFTl
'    db 04Dh           ;4D    M            SHIFTm
'    db 04Eh           ;4E    N            SHIFTn
'    db 04Fh           ;4F    O            SHIFTo
'    db 050h           ;50    P            SHIFTp
'    db 051h           ;51    Q            SHIFTq
'    db 052h           ;52    R            SHIFTr
'    db 053h           ;53    S            SHIFTs
'    db 054h           ;54    T            SHIFTt
'    db 055h           ;55    U            SHIFTu
'    db 056h           ;56    V            SHIFTv
'    db 057h           ;57    W            SHIFTw
'    db 058h           ;58    X            SHIFTx
'    db 059h           ;59    Y            SHIFTy
'    db 05Ah           ;5A    Z            SHIFTz
'    db 05Bh           ;5B    [            [
'    db 05Ch           ;5C    \ (backslash)        SHIFTnum 8
'    db 05Dh           ;5D    ]            ]
'    db 05Eh           ;5E    ^ (caret)        ^
'    db 05Fh           ;5F    _ (underline)        SHIFT
'    db 060h           ;60    reverse accent        SHIFTnum 1
'    db 061h           ;61    a            a
'    db 062h           ;62    b            b
'    db 063h           ;63    c            c
'    db 064h           ;64    d            d
'    db 065h           ;65    e            e
'    db 066h           ;66    f            f
'    db 067h           ;67    g            g
'    db 068h           ;68    h            h
'    db 069h           ;69    i            i
'    db 06Ah           ;6A    j            j
'    db 06Bh           ;6B    k            k
'    db 06Ch           ;6C    l            l
'    db 06Dh           ;6D    m            m
'    db 06Eh           ;6E    n            n
'    db 06Fh           ;6F    o            o
'    db 070h           ;70    p            p
'    db 071h           ;71    q            q
'    db 072h           ;72    r            r
'    db 073h           ;73    s            s
'    db 074h           ;74    t            t
'    db 075h           ;75    u            u
'    db 076h           ;76    v            v
'    db 077h           ;77    w            w
'    db 078h           ;78    x            x
'    db 079h           ;79    y            y
'    db 07Ah           ;7A    z            z
'    db 07Bh           ;7B    {            SHIFTnum 4
'    db 07Ch           ;7C    broken ver bar        SHIFTnum 7
'    db 07Dh           ;7D    }            SHIFTnum 5
'    db 07Eh           ;7E     (tilde)        SHIFT^
'    db 088h           ;7F    |6            CODEBACKSPACE
'    db 080h           ;80    null            CODEHELP
'    db 0A9h           ;81    intl char
'    db 0ACh           ;82    intl char
'    db 0FFh           ;83
'    db 0A3h           ;84  intl char
'    db 0FFh           ;85
'    db 0A1h           ;86    intl char
'    db 0AAh           ;87    intl char
'    db 0ABh           ;88    intl char
'    db 0FFh           ;89
'    db 0ADh           ;8A    intl char
'    db 0FFh           ;8B
'    db 0FFh           ;8C
'    db 0FFh           ;8D
'    db 0A2h           ;8E    intl char
'    db 0A0h           ;8F    intl char
'    db 0FFh           ;90
'    db 0AFh           ;91    intl char
'    db 0AEh           ;92    intl char
'    db 0FFh           ;93
'    db 0A5h           ;94    intl char
'    db 0FFh           ;95
'    db 0FFh           ;96
'    db 0FFh           ;97
'    db 0FFh           ;98
'    db 0A4h           ;99    intl char
'    db 0A8h           ;9A    intl char
'    db 003h           ;9B    (cents sign)    SHIFT6
'    db 0B1h           ;9C    
'    db 0FFh           ;9D
'    db 0FFh           ;9E
'    db 0FFh           ;9F
'    db 0FFh           ;A0
'    db 0FFh           ;A1
'    db 0FFh           ;A2
'    db 0FFh           ;A3
'    db 0FFh           ;A4
'    db 0FFh           ;A5
'    db 0FFh           ;A6
'    db 0FFh           ;A7
'    db 0FFh           ;A8
'    db 0FFh           ;A9
'    db 0FFh           ;AA
'    db 006h           ;AB        12        12
'    db 010h           ;AC        14        SHIFT12
'    db 084h           ;AD            reserved timer mgt
'    db 0FFh           ;AE
'    db 0FFh           ;AF
'    db 0FFh           ;B0
'    db 0FFh           ;B1
'    db 0FFh           ;B2
'    db 0FFh           ;B3
'    db 0FFh           ;B4
'    db 0FFh           ;B5
'    db 0FFh           ;B6
'    db 0FFh           ;B7
'    db 0FFh           ;B8
'    db 0FFh           ;B9
'    db 0FFh           ;BA
'    db 0FFh           ;BB
'    db 0FFh           ;BC
'    db 0FFh           ;BD
'    db 0FFh           ;BE
'    db 0FFh           ;BF
'    db 0FFh           ;C0
'    db 0FFh           ;C1
'    db 0FFh           ;C2
'    db 0FFh           ;C3
'    db 0FFh           ;C4
'    db 0FFh           ;C5
'    db 0FFh           ;C6
'    db 0FFh           ;C7
'    db 0FFh           ;C8
'    db 0FFh           ;C9
'    db 0FFh           ;CA
'    db 0FFh           ;CB
'    db 0FFh           ;CC
'    db 0FFh           ;CD
'    db 0FFh           ;CE
'    db 0FFh           ;CF
'    db 0FFh           ;D0
'    db 0FFh           ;D1
'    db 0FFh           ;D2
'    db 0FFh           ;D3
'    db 0FFh           ;D4
'    db 0FFh           ;D5
'    db 0FFh           ;D6
'    db 0FFh           ;D7
'    db 0FFh           ;D8
'    db 0FFh           ;D9
'    db 0FFh           ;DA
'    db 0FFh           ;DB
'    db 0FFh           ;DC
'    db 0FFh           ;DD
'    db 0FFh           ;DE
'    db 0FFh           ;DF
'    db 0FFh           ;E0
'    db 0B0h           ;E1
'    db 0FFh           ;E2
'    db 0FFh           ;E3
'    db 0FFh           ;E4
'    db 0FFh           ;E5
'    db 0FFh           ;E6
'    db 0FFh           ;E7
'    db 0FFh           ;E8
'    db 0FFh           ;E9
'    db 0FFh           ;EA
'    db 0FFh           ;EB
'    db 0FFh           ;EC
'    db 0FFh           ;ED
'    db 0FFh           ;EE
'    db 0FFh           ;EF
'    db 0FFh           ;F0
'    db 0FFh           ;F1
'    db 0FFh           ;F2
'    db 0FFh           ;F3
'    db 0FFh           ;F4
'    db 0FFh           ;F5
'    db 0FFh           ;F6
'    db 0FFh           ;F7
'    db 0B2h           ;F8
'    db 0FFh           ;F9
'    db 0FFh           ;FA
'    db 0FFh           ;FB      mailreserved
'    db 0FFh           ;FC      mailreserved
'    db 0FFh           ;FD
'    db 0FFh           ;FE
'    db 0FFh           ;FF
'))
'
';
'; TABLE 19  CTDOS.lib keyboard extended codes table
';
'; SECOND CTDOS TABLE: MAP PC CODE KEYS TO THE CT CHARACTER SET
'; This table maps a PC key which has been pressed in combination with
'; the code key to the equivalent character in the CT character set.
';
'DefTableData (CtDos_KbdExtTable, 19, ('
'
'CtDos_KbdExtTableSignature DW 4432h ;D2
'
';  CTOS Char code     ;indexSecond Code in ah (al = 0)
'    db 0FFh           ;00
'    db 0FFh           ;01
'    db 0FFh           ;02
'    db 0FFh           ;03Nul Character
'    db 0FFh           ;04
'    db 0FFh           ;05
'    db 0FFh           ;06
'    db 0FFh           ;07
'    db 0FFh           ;08
'    db 0FFh           ;09
'    db 0FFh           ;0A
'    db 0FFh           ;0B
'    db 0FFh           ;0C
'    db 0FFh           ;0D
'    db 0FFh           ;0E
'    db 089h           ;0FBackTab(Code Tab)
'    db 0FFh           ;10Alt Q
'    db 0FFh           ;11Alt W
'    db 0FFh           ;12Alt E
'    db 0FFh           ;13Alt R
'    db 0FFh           ;14Alt T
'    db 0FFh           ;15Alt Y
'    db 0FFh           ;16Alt U
'    db 0FFh           ;17Alt I
'    db 0FFh           ;18Alt O
'    db 0FFh           ;19Alt P
'    db 0FFh           ;1A
'    db 0FFh           ;1B
'    db 0FFh           ;1C
'    db 0FFh           ;1D
'    db 0FFh           ;1EAlt A
'    db 0FFh           ;1FAlt S
'    db 0FFh           ;20Alt D
'    db 0FFh           ;21Alt F
'    db 0FFh           ;22Alt G
'    db 0FFh           ;23Alt H
'    db 0FFh           ;24Alt J
'    db 0FFh           ;25Alt K
'    db 0FFh           ;26Alt L
'    db 0FFh           ;27
'    db 0FFh           ;28
'    db 0FFh           ;29
'    db 0FFh           ;2A
'    db 0FFh           ;2B
'    db 0FFh           ;2CAlt Z
'    db 0FFh           ;2DAlt X
'    db 0FFh           ;2EAlt C
'    db 0FFh           ;2FAlt V
'    db 0FFh           ;30Alt B
'    db 0FFh           ;31Alt N
'    db 0FFh           ;32Alt M
'    db 0FFh           ;33
'    db 0FFh           ;34
'    db 0FFh           ;35
'    db 0FFh           ;36
'    db 0FFh           ;37
'    db 0FFh           ;38
'    db 0FFh           ;39
'    db 0FFh           ;3A
'    db 015h           ;3B    Alt(divide by sign)          f1
'    db 016h           ;3C    | (vertical bar)             f2
'    db 017h           ;3D    legal section                f3
'    db 018h           ;3E    (not equal sign)=           f4
'    db 019h           ;3F    similarity                   f5
'    db 01Ah           ;40    (paragraph sign)             f6
'    db 01Ch           ;41    not                          f7
'    db 01Dh           ;42    less than or equal           f8
'    db 01Eh           ;43    not equal straight line      f9
'    db 01Fh           ;44    greater or equal             f10
'    db 0FFh           ;45
'    db 0FFh           ;46
'    db 013h           ;47Home>                          SCROLLDOWN
'    db 001h           ;48Cursor Up>    up arrow         up arrow
'    db 005h           ;49Page Up>    formfeed           PREV PAGE
'    db 0FFh           ;4A
'    db 00Eh           ;4BCursor Left>left arrow         left arrow
'    db 0FFh           ;4C
'    db 012h           ;4DCursor Right>right arrow       right arrow
'    db 0FFh           ;4E
'    db 011h           ;4FEnd>    (triangle)             SCROLLUP
'    db 00Bh           ;50Cursor Down>down arrow         down arrow
'    db 00Ch           ;51Page Down>    empty square     NEXT PAGE
'    db 0D0h           ;52Ins>                           OverType
'    db 07Fh           ;53Del>filled rectangle           DELETE
'    db 0D5h           ;54F11(ShiftF1)    see Table B2  SHIFTf1
'    db 0D6h           ;55F12(ShiftF2)    see Table B2  SHIFTf2
'    db 0D7h           ;56F13(ShiftF3)    see Table B2  SHIFTf3
'    db 0D8h           ;57F14(ShiftF4)    see Table B2  SHIFTf4
'    db 0D9h           ;58F15(ShiftF5)    see Table B2  SHIFTf5
'    db 0DAh           ;59F16(ShiftF6)    see Table B2  SHIFTf6
'    db 0DCh           ;5AF17(ShiftF7)    see Table B2  SHIFTf7
'    db 0CDh           ;5BF18(ShiftF8)    see Table B2  SHIFTf8
'    db 0CAh           ;5CF19(ShiftF9)    see Table B2  SHIFTf9
'    db 0DFh           ;5DF20(ShiftF10)    see Table B2 SHIFTf10
'    db 095h           ;5EF21(CtrlF1)    9(superscript)  CODEf1
'    db 096h           ;5FF22(CtrlF2)    0(subscript)    CODEf2
'    db 097h           ;60F23(CtrlF3)    1(subscript)    CODEf3
'    db 098h           ;61F24(CtrlF4)    2(subscript)    CODEf4
'    db 099h           ;62F25(CtrlF5)    3(subscript)    CODEf5
'    db 09Ah           ;63F26(CtrlF6)    4(subscript)    CODEf6
'    db 09Ch           ;64F27(CtrlF7)    6(subscript)    CODEf7
'    db 09Dh           ;65F28(CtrlF7)     (subscript)    CODEf8
'    db 09Eh           ;66F29(CtrlF7)     (subscript)    CODEf9
'    db 09Fh           ;67F30(CtrlF7)     (subscript)    CODEf10
'    db 000h           ;68F31(AltF1)        null         HELP
'    db 0FFh           ;69F32(AltF2)
'    db 00Fh           ;6AF33(AltF3)                     MOVE
'    db 0FFh           ;6BF34(AltF4)
'    db 082h           ;6CF35(AltF5)           (unmark)  CODEMARK
'    db 0FCh           ;6DF36(AltF6)        Next         (PCMail)
'    db 0FFh           ;6EF37(AltF7)
'    db 0BFh           ;6FF38(AltF8)                      CodeQuote
'    db 014h           ;70F39(AltF9)                      COPY
'    db 004h           ;71F40(AltF10) filled square       FINISH
'    db 0FFh           ;72Ctrl PrtSc>
'    db 08Eh           ;73Ctrl<     2 (superscript)       CODEleft arrow
'    db 092h           ;74Ctrl>    6 (superscript)        CODEright arrow
'    db 08Bh           ;75Ctrl End  1(superscript)         CODEdown arrow
'    db 091h           ;76Ctrl PgDn>                      CODESCROLL UP
'    db 081h           ;77Ctrl Home                        CODEup arrow
'    db 0B1h           ;78Alt 1                            CODE1
'    db 0B2h           ;79Alt 2                            CODE2
'    db 0B3h           ;7AAlt 3                            CODE3
'    db 0B4h           ;7BAlt 4                            CODE4
'    db 0B5h           ;7CAlt 5                            CODE5
'    db 0B6h           ;7DAlt 6                 CODE6(see also 1E in kcod)
'    db 0B7h           ;7EAlt 7                            CODE7
'    db 0B8h           ;7FAlt 8                            CODE8
'    db 0B9h           ;80Alt 9                            CODE9
'    db 0BAh           ;81Alt 0                            CODE0
'    db 0FFh           ;82Alt  (not numeric pad)
'    db 08Ch           ;83Alt =                            CODENEXTPAGE
'    db 093h           ;84Ctrl PgUp>                      CODE SCROLL DN
'    db 0FFh           ;85 Unused
'    db 0FFh           ;86 Unused
'    db 0FFh           ;87 Unused
'    db 0FFh           ;88 Unused
'    db 0FFh           ;89 Unused
'    db 0FFh           ;8A Unused
'    db 0FFh           ;8B Unused
'    db 0FFh           ;8C Unused
'    db 0FFh           ;8D Unused
'    db 0FFh           ;8E Unused
'    db 0FFh           ;8F Unused
'    db 0FFh           ;90 Unused
'    db 0FFh           ;91 Unused
'    db 0FFh           ;92 Unused
'    db 0FFh           ;93 Unused
'    db 0FFh           ;94 Unused
'    db 0FFh           ;95 Unused
'    db 0FFh           ;96 Unused
'    db 0FFh           ;97 Unused
'    db 0FFh           ;98 Unused
'    db 0FFh           ;99 Unused
'    db 0FFh           ;9A Unused
'    db 0FFh           ;9B Unused
'    db 0FFh           ;9C Unused
'    db 0FFh           ;9D Unused
'    db 0FFh           ;9E Unused
'    db 0FFh           ;9F Unused
'    db 0FFh           ;A0 Unused
'    db 0FFh           ;A1 Unused
'    db 0FFh           ;A2 Unused
'    db 0FFh           ;A3 Unused
'    db 0FFh           ;A4 Unused
'    db 0FFh           ;A5 Unused
'    db 0FFh           ;A6 Unused
'    db 0FFh           ;A7 Unused
'    db 0FFh           ;A8 Unused
'    db 0FFh           ;A9 Unused
'    db 0FFh           ;AA Unused
'    db 0FFh           ;AB Unused
'    db 0FFh           ;AC Unused
'    db 0FFh           ;AD Unused
'    db 0FFh           ;AE Unused
'    db 0FFh           ;AF Unused
'    db 0FFh           ;B0 Unused
'    db 0FFh           ;B1 Unused
'    db 0FFh           ;B2 Unused
'    db 0FFh           ;B3 Unused
'    db 0FFh           ;B4 Unused
'    db 0FFh           ;B5 Unused
'    db 0FFh           ;B6 Unused
'    db 0FFh           ;B7 Unused
'    db 0FFh           ;B8 Unused
'    db 0FFh           ;B9 Unused
'    db 0FFh           ;BA Unused
'    db 0FFh           ;BB Unused
'    db 0FFh           ;BC Unused
'    db 0FFh           ;BD Unused
'    db 0FFh           ;BE Unused
'    db 0FFh           ;BF Unused
'    db 0FFh           ;C0 Unused
'    db 0FFh           ;C1 Unused
'    db 0FFh           ;C2 Unused
'    db 0FFh           ;C3 Unused
'    db 0FFh           ;C4 Unused
'    db 0FFh           ;C5 Unused
'    db 0FFh           ;C6 Unused
'    db 0FFh           ;C7 Unused
'    db 0FFh           ;C8 Unused
'    db 0FFh           ;C9 Unused
'    db 0FFh           ;CA Unused
'    db 0FFh           ;CB Unused
'    db 0FFh           ;CC Unused
'    db 0FFh           ;CD Unused
'    db 0FFh           ;CE Unused
'    db 0FFh           ;CF Unused
'    db 0FFh           ;D0 Unused
'    db 0FFh           ;D1 Unused
'    db 0FFh           ;D2 Unused
'    db 0FFh           ;D3 Unused
'    db 0FFh           ;D4 Unused
'    db 0FFh           ;D5 Unused
'    db 0FFh           ;D6 Unused
'    db 0FFh           ;D7 Unused
'    db 0FFh           ;D8 Unused
'    db 0FFh           ;D9 Unused
'    db 0FFh           ;DA Unused
'    db 0FFh           ;DB Unused
'    db 0FFh           ;DC Unused
'    db 0FFh           ;DD Unused
'    db 0FFh           ;DE Unused
'    db 0FFh           ;DF Unused
'    db 0FFh           ;E0 Unused
'    db 0FFh           ;E1 Unused
'    db 0FFh           ;E2 Unused
'    db 0FFh           ;E3 Unused
'    db 0FFh           ;E4 Unused
'    db 0FFh           ;E5 Unused
'    db 0FFh           ;E6 Unused
'    db 0FFh           ;E7 Unused
'    db 0FFh           ;E8 Unused
'    db 0FFh           ;E9 Unused
'    db 0FFh           ;EA Unused
'    db 0FFh           ;EB Unused
'    db 0FFh           ;EC Unused
'    db 0FFh           ;ED Unused
'    db 0FFh           ;EE Unused
'    db 0FFh           ;EF Unused
'    db 0FFh           ;F0 Unused
'    db 0FFh           ;F1 Unused
'    db 0FFh           ;F2 Unused
'    db 0FFh           ;F3 Unused
'    db 0FFh           ;F4 Unused
'    db 0FFh           ;F5 Unused
'    db 0FFh           ;F6 Unused
'    db 0FFh           ;F7 Unused
'    db 0FFh           ;F8 Unused
'    db 0FFh           ;F9 Unused
'    db 0FFh           ;FA Unused
'    db 0FFh           ;FB Unused
'    db 0FFh           ;FC Unused
'    db 0FFh           ;FD Unused
'    db 0FFh           ;FE Unused
'    db 0FFh           ;FF Unused  
'
'))
'; END SECOND TABLE
'
'; TABLE 20  CTDOS.lib video translation table
';
'; THIRD CTDOS TABLE; MAP CT CHARACTERS TO THEIR PC EQUIVALENT
';
'DefTableData (CtDos_VidTable, 20, ('
'
'CtDos_VidTableSignature DW 4433h ;D3
'
';
';     (chPC)             (keytop)
'    db 000h           ;0  HELP
'    db 001h           ;1  UpArrow
'    db 002h           ;2  MARK
'    db 09Bh           ;3  Shift6 ()
'    db 004h           ;4  FINISH
'    db 005h           ;5  PREV PAGE
'    db 0ABh           ;6  12
'    db 007h           ;7  CANCEL
'    db 008h           ;8  BACKSPACE
'    db 009h           ;9  TAB
'    db 00Ah           ;A  RETURN
'    db 00Bh           ;B  DownArrow
'    db 00Ch           ;C  NEXT PAGE
'    db 00Dh           ;D  BOUND
'    db 00Eh           ;E  LeftArrow
'    db 00Fh           ;F  MOVE
'    db 0ACh           ;10 Shift12(14)
'    db 011h           ;11 SCROLL UP
'    db 012h           ;12 RightArrow
'    db 013h           ;13 SCROLL DN
'    db 014h           ;14 COPY
'    db 0F6h           ;15 F1   ()
'    db 016h           ;16 F2
'    db 017h           ;17 F3
'    db 018h           ;18 F4
'    db 019h           ;19 F5
'    db 01Ah           ;1A F6
'    db 01Bh           ;1B GO
'    db 01Ch           ;1C F7
'    db 01Dh           ;1D F8
'    db 01Eh           ;1E F9
'    db 01Fh           ;1F F10
'    db 020h           ;20 Space
'    db 021h           ;21 Shift1       ()
'    db 022h           ;22 Shiftquote   Double quote
'    db 023h           ;23 Shift3       ()
'    db 024h           ;24 Shift4       ($)
'    db 025h           ;25 Shift5       percent
'    db 026h           ;26 Shift7       ()
'    db 027h           ;27 '
'    db 028h           ;28 Shift9       (
'    db 029h           ;29 Shift0       )
'    db 02Ah           ;2A Shift8       (*)
'    db 02Bh           ;2B Shift=       (+)
'    db 02Ch           ;2C ,
'    db 02Dh           ;2D 
'    db 02Eh           ;2E .
'    db 02Fh           ;2F 
'    db 030h           ;30 0
'    db 031h           ;31 1
'    db 032h           ;32 2
'    db 033h           ;33 3
'    db 034h           ;34 4
'    db 035h           ;35 5
'    db 036h           ;36 6
'    db 037h           ;37 7
'    db 038h           ;38 8
'    db 039h           ;39 9
'    db 03Ah           ;3A Shift; (:)
'    db 03Bh           ;3B ;
'    db 03Ch           ;3C Shift[ <
'    db 03Dh           ;3D =
'    db 03Eh           ;3E Shift] >
'    db 03Fh           ;3F Shift (?)
'    db 040h           ;40 Shift2 (@)
'    db 041h           ;41 ShiftA
'    db 042h           ;42 ShiftB
'    db 043h           ;43 ShiftC
'    db 044h           ;44 ShiftD
'    db 045h           ;45 ShiftE
'    db 046h           ;46 ShiftF
'    db 047h           ;47 ShiftG
'    db 048h           ;48 ShiftH
'    db 049h           ;49 ShiftI
'    db 04Ah           ;4A ShiftJ
'    db 04Bh           ;4B ShiftK
'    db 04Ch           ;4C ShiftL
'    db 04Dh           ;4D ShiftM
'    db 04Eh           ;4E ShiftN
'    db 04Fh           ;4F ShiftO
'    db 050h           ;50 ShiftP
'    db 051h           ;51 ShiftQ
'    db 052h           ;52 ShiftR
'    db 053h           ;53 ShiftS
'    db 054h           ;54 ShiftT
'    db 055h           ;55 ShiftU
'    db 056h           ;56 ShiftV
'    db 057h           ;57 ShiftW
'    db 058h           ;58 ShiftX
'    db 059h           ;59 ShiftY
'    db 05Ah           ;5A ShiftZ
'    db 05Bh           ;5B [
'    db 05Ch           ;5C Shiftnum 8
'    db 05Dh           ;5D ]
'    db 05Eh           ;5E ^
'    db 05Fh           ;5F Shift _
'    db 060h           ;60 Shiftnum 1
'    db 061h           ;61 A
'    db 062h           ;62 B
'    db 063h           ;63 C
'    db 064h           ;64 D
'    db 065h           ;65 E
'    db 066h           ;66 F
'    db 067h           ;67 G
'    db 068h           ;68 H
'    db 069h           ;69 I
'    db 06Ah           ;6A J
'    db 06Bh           ;6B K
'    db 06Ch           ;6C L
'    db 06Dh           ;6D M
'    db 06Eh           ;6E N
'    db 06Fh           ;6F O
'    db 070h           ;70 P
'    db 071h           ;71 Q
'    db 072h           ;72 R
'    db 073h           ;73 S
'    db 074h           ;74 T
'    db 075h           ;75 U
'    db 076h           ;76 V
'    db 077h           ;77 W
'    db 078h           ;78 X
'    db 079h           ;79 Y
'    db 07Ah           ;7A Z
'    db 07Bh           ;7B Shiftnum 4 ({)
'    db 07Ch           ;7C Shiftnum 7 (|)
'    db 07DH           ;7D Shiftnum 5 (})
'    db 07Eh           ;7E Shift^ ()
'    db 07Fh           ;7F DELETE
'    db 080h           ;80 CodeHelp
'    db 081h           ;81 CodeUpArrow
'    db 082h           ;82 CodeMark
'    db 083h           ;83 CodeShift6
'    db 084h           ;84 CodeFinish
'    db 085h           ;85 CodePrevPage
'    db 086h           ;86 Code12
'    db 087h           ;87 CodeCancel
'    db 088h           ;88 CodeBackspace
'    db 089h           ;89 CodeTab
'    db 08Ah           ;8A CodeReturn
'    db 08Bh           ;8B CodeDownArrow
'    db 08Ch           ;8C CodeNextPage
'    db 08Dh           ;8D CodeBound
'    db 08Eh           ;8E CodeLeftArrow
'    db 08Fh           ;8F CodeMove
'    db 090h           ;90 CodeShift12
'    db 091h           ;91 CodeScrollUp
'    db 092h           ;92 CodeRightArrow
'    db 093h           ;93 CodeScrollDown
'    db 094h           ;94 CodeCopy
'    db 095h           ;95 CodeF1
'    db 096h           ;96 CodeF2
'    db 097h           ;97 CodeF3
'    db 098h           ;98 CodeF4
'    db 099h           ;99 CodeF5
'    db 09Ah           ;9A CodeF6
'    db 09Bh           ;9B CodeGO
'    db 09Ch           ;9C CodeF7
'    db 09Dh           ;9D CodeF8
'    db 09Eh           ;9E CodeF9
'    db 09Fh           ;9F CodeF10
'    db 08Fh           ;A0 CodeSpace
'    db 086h           ;A1 CodeShift1
'    db 08Eh           ;A2 CodeShift'
'    db 084h           ;A3 CodeShift3
'    db 099h           ;A4 CodeShift4
'    db 094h           ;A5 CodeShift5
'    db 0A6h           ;A6 CodeShift7
'    db 0A7h           ;A7 Code'
'    db 09Ah           ;A8 CodeShift9
'    db 081h           ;A9 CodeShift0
'    db 087h           ;AA CodeShift8
'    db 088h           ;AB CodeShift=
'    db 082h           ;AC Code,
'    db 08Ah           ;AD Code
'    db 092h           ;AE Code.
'    db 091h           ;AF Code
'    db 0E1h           ;B0 Code0
'    db 09Ch           ;B1 Code1
'    db 0F8h           ;B2 Code2
'    db 0B3h           ;B3 Code3
'    db 0B4h           ;B4 Code4
'    db 0B5h           ;B5 Code5
'    db 0B6h           ;B6 Code6
'    db 0B7h           ;B7 Code7
'    db 0B8h           ;B8 Code8
'    db 0B9h           ;B9 Code9
'    db 0BAh           ;BA CodeShift
'    db 0BBh           ;BB Code;
'    db 0BCh           ;BC CodeShift[
'    db 0BDh           ;BD Code=
'    db 0BEh           ;BE CodeShift]
'    db 0BFh           ;BF CodeShift
'    db 0C0h           ;C0 ShiftHelp
'    db 0C1h           ;C1 ShiftUpArrow
'    db 0C2h           ;C2 ShiftMark
'    db 0C3h           ;C3 ShiftBound
'    db 0C4h           ;C4 ShiftFinish
'    db 0C5h           ;C5 ShiftPrevPage
'    db 0C6h           ;C6 CodeShiftF
'    db 0C7h           ;C7 ShiftCancel
'    db 0C8h           ;C8 ShiftDelete
'    db 0C9h           ;C9 ShiftGO
'    db 0CAh           ;CA ShiftF9
'    db 0CBh           ;CB ShiftDownArrow
'    db 0CCh           ;CC ShiftNextPage
'    db 0CDh           ;CD ShiftF8
'    db 0CEh           ;CE ShiftLeftArrow
'    db 0CFh           ;CF ShiftMove
'    db 0D0h           ;D0 OverType
'    db 0D1h           ;D1 ShiftScrollUp
'    db 0D2h           ;D2 ShiftRightArrow
'    db 0D3h           ;D3 ShiftScrollDown
'    db 0D4h           ;D4 ShiftCopy
'    db 0D5h           ;D5 ShiftF1
'    db 0D6h           ;D6 ShiftF2
'    db 0D7h           ;D7 ShiftF3
'    db 0D8h           ;D8 ShiftF4
'    db 0D9h           ;D9 ShiftF5
'    db 0C4h           ;DA ShiftF6
'    db 0DBh           ;DB Code[
'    db 0DCh           ;DC ShiftF7
'    db 0DDh           ;DD Code]
'    db 0DEh           ;DE Code^
'    db 0DFh           ;DF ShiftF10
'    db 0E0h           ;E0 CodeShiftNum1
'    db 0E1h           ;E1 CodeA
'    db 0E2h           ;E2 CodeB
'    db 0E3h           ;E3 CodeC
'    db 0E4h           ;E4 CodeD
'    db 0E5h           ;E5 CodeE
'    db 0E6h           ;E6 CodeF
'    db 0E7h           ;E7 CodeG
'    db 0E8h           ;E8 CodeH
'    db 0E9h           ;E9 CodeI
'    db 0EAh           ;EA CodeJ
'    db 0EBh           ;EB CodeK
'    db 0ECh           ;EC CodeL
'    db 0EDh           ;ED CodeM
'    db 0EEh           ;EE CodeN
'    db 0DAh           ;EF CodeO
'    db 0F0h           ;F0 CodeP
'    db 0F1h           ;F1 CodeQ
'    db 0F2h           ;F2 CodeR
'    db 0F3h           ;F3 CodeS
'    db 0F4h           ;F4 CodeT
'    db 0F5h           ;F5 CodeU
'    db 0F6h           ;F6 CodeV
'    db 0F7h           ;F7 CodeW
'    db 0F8h           ;F8 CodeX
'    db 0F9h           ;F9 CodeY
'    db 0FAh           ;FA CodeZ
'    db 0FBh           ;FB CodeShiftC
'    db 0FCh           ;FC NEXT
'    db 0FDh           ;FD CodeShiftNum5
'    db 0FEh           ;FE CodeShift^
'    db 0FFh           ;FF CodeDelete
'; END THIRD TABLE
'))
'
';
'; TABLE 21  CTDOS.lib keyboard scan codes table
';
'; FOURTH CTDOS TABLE; MAP SPECIAL PC SCANCODECHAR COMBINATIONS TO
';      THEIR CT CHARACTER EQUIVALENT.
';
'; There a number of PC chars which do map to a single CT char.
'; These chars have different meanings depending upon which key was
'; pressed.  For example, the hyphen char () can mean hyphen or MARK,
'; depending on which PC key was pressed.  The only means to distinguish
'; between these keys is to examine the scancode associated with the
'; key.  For these nonunique char mappings we have two parallel arrays
'; preceded by a word which is the length of the arrays.
'; The first array contains words which are the scancode(hi byte)char(lo byte)
'; combinations which are to be specially mapped; the second array contains
'; bytes which are the corresponding CT char to be returned when the
'; scancodechar combination is encountered.
';
'
'DefTableData (CtDos_ScanTable, 21, ('
'
'CtDos_ScanTableSignature DW 4434h ;D4
'
'InitScanCodeTables
'
'ScanCodeSet(23h,08h,0E8h)
'ScanCodeSet(00h,08h,0FFh)
'ScanCodeSet(00h,06h,0FFh)
'ScanCodeSet(00h,04h,0FFh)
'ScanCodeSet(00h,02h,0FFh)
'ScanCodeSet(17h,09h,0E9h)
'ScanCodeSet(32h,0Dh,0EDh)
'ScanCodeSet(37h,2Ah, 0Dh)
'ScanCodeSet(4Ah,2Dh, 02h)
'ScanCodeSet(4Eh,2Bh,01Bh)
'ScanCodeSet(16h,15h,0F5h)
'
'EndScanCodeTables
'))


;**WARNING***WARNING**************************************
;*********************************************************
; TABLE 22 IS FOR SOLUTION DESIGNER
; This table has been commented out to save memory for
; non Solution Designer environments.
; If you are going to use Solution Designer, then you
; must either have the SdNls.sys file present on your
; local disk or you must provide the table in this NLS
; file by uncommenting the following table.  To uncomment
; the following table by removing the ' (percent quote) 
; characters from the beginning of each line.
;
;*********************************************************
;**END*WARNING********************************************
';
'; TABLE 22
'; This table is used for conversion between the local CTOS character set and
';  the Lotus International Character Set (LICS).  Solution Designer worksheets
';  are written using LICS, so that they will be compatible between different
';  local versions of Solution Designer, and with Lotus 123 (if written with
';  the File Xtract command).
'; See Appendix 2 of the Lotus 123 (Version 2.0) Reference Manual for further
';  information on the Lotus International Character Set.
'
'DefTableData (rgbLotusCharSetXlat, 22, ('
'
'		; First half of table converts CTOS to LICS
'		; characters not present in LICS are converted to 99h
'
'	DB	  0h		;    0h   DO NOT CHANGE, MUST CONVERT TO 0
'	DB	099h		;    1h
'	DB	099h		;    2h
'	DB	0A2h		;    3h		cent
'	DB	099h		;    4h
'	DB	099h		;    5h
'	DB	0BDh		;    6h		onehalf
'	DB	099h		;    7h
'	DB	099h		;    8h
'	DB	099h		;    9h
'	DB	099h		;   0Ah
'	DB	099h		;   0Bh
'	DB	099h		;   0Ch
'	DB	099h		;   0Dh
'	DB	099h		;   0Eh
'	DB	099h		;   0Fh
'	DB	0BCh		;   10h		onequarter
'	DB	099h		;   11h
'	DB	099h		;   12h
'	DB	099h		;   13h
'	DB	09Ah		;   14h
'	DB	0AFh		;   15h		division
'	DB	099h		;   16h
'	DB	0A7h		;   17h		section
'	DB	099h		;   18h
'	DB	099h		;   19h
'	DB	0B6h		;   1Ah		paragraph
'	DB	0B7h		;   1Bh		filled circle
'	DB	099h		;   1Ch
'	DB	0BEh		;   1Dh		less or equal
'	DB	0B1h		;   1Eh		plus or minus
'	DB	0AEh		;   1Fh		greater or equal
'	DB	020h		;   20h		space
'	DB	021h		;   21h		
'	DB	022h		;   22h		
'	DB	023h		;   23h		
'	DB	024h		;   24h		$
'	DB	025h		;   25h		percent
'	DB	026h		;   26h		
'	DB	027h		;   27h		'
'	DB	028h		;   28h		(
'	DB	029h		;   29h		)
'	DB	02Ah		;   2Ah		*
'	DB	02Bh		;   2Bh		+
'	DB	02Ch		;   2Ch		,
'	DB	02Dh		;   2Dh		
'	DB	02Eh		;   2Eh		.
'	DB	02Fh		;   2Fh		
'	DB	030h		;   30h		0
'	DB	031h		;   31h		1
'	DB	032h		;   32h		2
'	DB	033h		;   33h		3
'	DB	034h		;   34h		4
'	DB	035h		;   35h		5
'	DB	036h		;   36h		6
'	DB	037h		;   37h		7
'	DB	038h		;   38h		8
'	DB	039h		;   39h		9
'	DB	03Ah		;   3Ah		:
'	DB	03Bh		;   3Bh		;
'	DB	03Ch		;   3Ch		<
'	DB	03Dh		;   3Dh		=
'	DB	03Eh		;   3Eh		>
'	DB	03Fh		;   3Fh		?
'	DB	040h		;   40h		@
'	DB	041h		;   41h		A
'	DB	042h		;   42h		B
'	DB	043h		;   43h		C
'	DB	044h		;   44h		D
'	DB	045h		;   45h		E
'	DB	046h		;   46h		F
'	DB	047h		;   47h		G
'	DB	048h		;   48h		H
'	DB	049h		;   49h		I
'	DB	04Ah		;   4Ah		J
'	DB	04Bh		;   4Bh		K
'	DB	04Ch		;   4Ch		L
'	DB	04Dh		;   4Dh		M
'	DB	04Eh		;   4Eh		N
'	DB	04Fh		;   4Fh		O
'	DB	050h		;   50h		P
'	DB	051h		;   51h		Q
'	DB	052h		;   52h		R
'	DB	053h		;   53h		S
'	DB	054h		;   54h		T
'	DB	055h		;   55h		U
'	DB	056h		;   56h		V
'	DB	057h		;   57h		W
'	DB	058h		;   58h		X
'	DB	059h		;   59h		Y
'	DB	05Ah		;   5Ah		Z
'	DB	05Bh		;   5Bh		[
'	DB	05Ch		;   5Ch		\
'	DB	05Dh		;   5Dh		]
'	DB	05Eh		;   5Eh		^
'	DB	05Fh		;   5Fh		_
'	DB	060h		;   60h		
'	DB	061h		;   61h		a
'	DB	062h		;   62h		b
'	DB	063h		;   63h		c
'	DB	064h		;   64h		d
'	DB	065h		;   65h		e
'	DB	066h		;   66h		f
'	DB	067h		;   67h		g
'	DB	068h		;   68h		h
'	DB	069h		;   69h		i
'	DB	06Ah		;   6Ah		j
'	DB	06Bh		;   6Bh		k
'	DB	06Ch		;   6Ch		l
'	DB	06Dh		;   6Dh		m
'	DB	06Eh		;   6Eh		n
'	DB	06Fh		;   6Fh		o
'	DB	070h		;   70h		p
'	DB	071h		;   71h		q
'	DB	072h		;   72h		r
'	DB	073h		;   73h		s
'	DB	074h		;   74h		t
'	DB	075h		;   75h		u
'	DB	076h		;   76h		v
'	DB	077h		;   77h		w
'	DB	078h		;   78h		x
'	DB	079h		;   79h		y
'	DB	07Ah		;   7Ah		z
'	DB	07Bh		;   7Bh		{
'	DB	07Ch		;   7Ch		|
'	DB	07Dh		;   7Dh		}
'	DB	07Eh		;   7Eh		
'	DB	07Fh		;   7Fh		filled rectangle
'	DB	099h		;   80h
'	DB	099h		;   81h
'	DB	099h		;   82h
'	DB	099h		;   83h
'	DB	099h		;   84h
'	DB	099h		;   85h
'	DB	099h		;   86h
'	DB	099h		;   87h
'	DB	099h		;   88h
'	DB	099h		;   89h
'	DB	099h		;   8Ah
'	DB	099h		;   8Bh
'	DB	099h		;   8Ch		superscript 0
'	DB	0B9h		;   8Dh		superscript 1
'	DB	0B2h		;   8Eh		superscript 2
'	DB	0B3h		;   8Fh		superscript 3
'	DB	099h		;   90h		superscript 4
'	DB	099h		;   91h		superscript 5
'	DB	099h		;   92h		superscript 6
'	DB	099h		;   93h		superscript 7
'	DB	099h		;   94h		superscript 8
'	DB	099h		;   95h		superscript 9
'	DB	099h		;   96h		subscript 0
'	DB	099h		;   97h		subscript 1
'	DB	099h		;   98h		subscript 2
'	DB	099h		;   99h		subscript 3
'	DB	099h		;   9Ah		subscript 4
'	DB	099h		;   9Bh		subscript 5
'	DB	099h		;   9Ch		subscript 6
'	DB	099h		;   9Dh		subscript 7
'	DB	099h		;   9Eh		subscript 8
'	DB	099h		;   9Fh		subscript 9
'	DB	0C5h		;  0A0h		Acircle
'	DB	0E5h		;  0A1h		acircle
'	DB	0C4h		;  0A2h		Aumlaut
'	DB	0E4h		;  0A3h		aumlaut
'	DB	0D6h		;  0A4h		Oumlaut
'	DB	0F6h		;  0A5h		oumlaut
'	DB	0D8h		;  0A6h		Oslash
'	DB	0F8h		;  0A7h		oslash
'	DB	0DCh		;  0A8h		Uumlaut
'	DB	0FCh		;  0A9h		uumlaut
'	DB	0E7h		;  0AAh		ccedilla
'	DB	0EAh		;  0ABh		ecircumflex
'	DB	0E8h		;  0ACh		egrave
'	DB	0E9h		;  0ADh		eacute
'	DB	0C6h		;  0AEh		AE ligature
'	DB	0E6h		;  0AFh		ae ligature
'	DB	0DFh		;  0B0h		lowercase German sharp s
'	DB	0A3h		;  0B1h		pound
'	DB	0B0h		;  0B2h		degree
'	DB	0A9h		;  0B3h		copyright
'	DB	099h		;  0B4h		registered
'	DB	0B8h		;  0B5h		trademark
'	DB	099h		;  0B6h
'	DB	099h		;  0B7h
'	DB	099h		;  0B8h
'	DB	099h		;  0B9h
'	DB	099h		;  0BAh
'	DB	099h		;  0BBh
'	DB	099h		;  0BCh
'	DB	099h		;  0BDh
'	DB	099h		;  0BEh
'	DB	099h		;  0BFh
'	DB	099h		;  0C0h
'	DB	099h		;  0C1h
'	DB	099h		;  0C2h
'	DB	099h		;  0C3h
'	DB	099h		;  0C4h
'	DB	099h		;  0C5h
'	DB	099h		;  0C6h
'	DB	099h		;  0C7h
'	DB	099h		;  0C8h
'	DB	099h		;  0C9h
'	DB	099h		;  0CAh
'	DB	099h		;  0CBh
'	DB	099h		;  0CCh
'	DB	099h		;  0CDh
'	DB	099h		;  0CEh
'	DB	099h		;  0CFh
'	DB	099h		;  0D0h
'	DB	099h		;  0D1h
'	DB	099h		;  0D2h
'	DB	099h		;  0D3h
'	DB	099h		;  0D4h
'	DB	099h		;  0D5h
'	DB	099h		;  0D6h
'	DB	099h		;  0D7h
'	DB	099h		;  0D8h
'	DB	099h		;  0D9h
'	DB	099h		;  0DAh
'	DB	099h		;  0DBh
'	DB	099h		;  0DCh
'	DB	099h		;  0DDh
'	DB	099h		;  0DEh
'	DB	099h		;  0DFh
'	DB	099h		;  0E0h
'	DB	099h		;  0E1h
'	DB	099h		;  0E2h
'	DB	099h		;  0E3h
'	DB	099h		;  0E4h
'	DB	099h		;  0E5h
'	DB	099h		;  0E6h
'	DB	099h		;  0E7h
'	DB	099h		;  0E8h
'	DB	099h		;  0E9h
'	DB	099h		;  0EAh
'	DB	099h		;  0EBh
'	DB	099h		;  0ECh
'	DB	099h		;  0EDh
'	DB	099h		;  0EEh
'	DB	099h		;  0EFh
'	DB	099h		;  0F0h
'	DB	099h		;  0F1h
'	DB	099h		;  0F2h
'	DB	099h		;  0F3h
'	DB	099h		;  0F4h
'	DB	099h		;  0F5h
'	DB	099h		;  0F6h
'	DB	099h		;  0F7h
'	DB	099h		;  0F8h
'	DB	099h		;  0F9h
'	DB	099h		;  0FAh
'	DB	099h		;  0FBh
'	DB	099h		;  0FCh
'	DB	099h		;  0FDh
'	DB	099h		;  0FEh
'	DB	099h		;  0FFh
'
'		; Second half of table converts LICS to CTOS
'		; characters not present in CTOS are converted to 20h
'
'	DB	  0h		;    0h   DO NOT CHANGE, MUST CONVERT TO 0
'	DB	020h		;    1h
'	DB	020h		;    2h
'	DB	020h		;    3h
'	DB	020h		;    4h
'	DB	020h		;    5h
'	DB	020h		;    6h
'	DB	020h		;    7h
'	DB	020h		;    8h
'	DB	020h		;    9h
'	DB	020h		;   0Ah
'	DB	020h		;   0Bh
'	DB	020h		;   0Ch
'	DB	020h		;   0Dh
'	DB	020h		;   0Eh
'	DB	020h		;   0Fh
'	DB	020h		;   10h
'	DB	020h		;   11h
'	DB	020h		;   12h
'	DB	020h		;   13h
'	DB	020h		;   14h
'	DB	020h		;   15h
'	DB	020h		;   16h
'	DB	020h		;   17h
'	DB	020h		;   18h
'	DB	020h		;   19h
'	DB	020h		;   1Ah
'	DB	020h		;   1Bh
'	DB	020h		;   1Ch
'	DB	020h		;   1Dh
'	DB	020h		;   1Eh
'	DB	020h		;   1Fh
'	DB	020h		;   20h		space
'	DB	021h		;   21h		
'	DB	022h		;   22h		
'	DB	023h		;   23h		
'	DB	024h		;   24h		$
'	DB	025h		;   25h		percent
'	DB	026h		;   26h		
'	DB	027h		;   27h		'
'	DB	028h		;   28h		(
'	DB	029h		;   29h		)
'	DB	02Ah		;   2Ah		*
'	DB	02Bh		;   2Bh		+
'	DB	02Ch		;   2Ch		,
'	DB	02Dh		;   2Dh		
'	DB	02Eh		;   2Eh		.
'	DB	02Fh		;   2Fh		
'	DB	030h		;   30h		0
'	DB	031h		;   31h		1
'	DB	032h		;   32h		2
'	DB	033h		;   33h		3
'	DB	034h		;   34h		4
'	DB	035h		;   35h		5
'	DB	036h		;   36h		6
'	DB	037h		;   37h		7
'	DB	038h		;   38h		8
'	DB	039h		;   39h		9
'	DB	03Ah		;   3Ah		:
'	DB	03Bh		;   3Bh		;
'	DB	03Ch		;   3Ch		<
'	DB	03Dh		;   3Dh		=
'	DB	03Eh		;   3Eh		>
'	DB	03Fh		;   3Fh		?
'	DB	040h		;   40h		@
'	DB	041h		;   41h		A
'	DB	042h		;   42h		B
'	DB	043h		;   43h		C
'	DB	044h		;   44h		D
'	DB	045h		;   45h		E
'	DB	046h		;   46h		F
'	DB	047h		;   47h		G
'	DB	048h		;   48h		H
'	DB	049h		;   49h		I
'	DB	04Ah		;   4Ah		J
'	DB	04Bh		;   4Bh		K
'	DB	04Ch		;   4Ch		L
'	DB	04Dh		;   4Dh		M
'	DB	04Eh		;   4Eh		N
'	DB	04Fh		;   4Fh		O
'	DB	050h		;   50h		P
'	DB	051h		;   51h		Q
'	DB	052h		;   52h		R
'	DB	053h		;   53h		S
'	DB	054h		;   54h		T
'	DB	055h		;   55h		U
'	DB	056h		;   56h		V
'	DB	057h		;   57h		W
'	DB	058h		;   58h		X
'	DB	059h		;   59h		Y
'	DB	05Ah		;   5Ah		Z
'	DB	05Bh		;   5Bh		[
'	DB	05Ch		;   5Ch		\
'	DB	05Dh		;   5Dh		]
'	DB	05Eh		;   5Eh		^
'	DB	05Fh		;   5Fh		_
'	DB	060h		;   60h		
'	DB	061h		;   61h		a
'	DB	062h		;   62h		b
'	DB	063h		;   63h		c
'	DB	064h		;   64h		d
'	DB	065h		;   65h		e
'	DB	066h		;   66h		f
'	DB	067h		;   67h		g
'	DB	068h		;   68h		h
'	DB	069h		;   69h		i
'	DB	06Ah		;   6Ah		j
'	DB	06Bh		;   6Bh		k
'	DB	06Ch		;   6Ch		l
'	DB	06Dh		;   6Dh		m
'	DB	06Eh		;   6Eh		n
'	DB	06Fh		;   6Fh		o
'	DB	070h		;   70h		p
'	DB	071h		;   71h		q
'	DB	072h		;   72h		r
'	DB	073h		;   73h		s
'	DB	074h		;   74h		t
'	DB	075h		;   75h		u
'	DB	076h		;   76h		v
'	DB	077h		;   77h		w
'	DB	078h		;   78h		x
'	DB	079h		;   79h		y
'	DB	07Ah		;   7Ah		z
'	DB	07Bh		;   7Bh		{
'	DB	07Ch		;   7Ch		|
'	DB	07Dh		;   7Dh		}
'	DB	07Eh		;   7Eh		
'	DB	07Fh		;   7Fh
'	DB	020h		;   80h		uppercase grave
'	DB	020h		;   81h		uppercase acute
'	DB	020h		;   82h		uppercase circumflex
'	DB	020h		;   83h		uppercase umlaut
'	DB	020h		;   84h		uppercase tilde
'	DB	020h		;   85h
'	DB	020h		;   86h
'	DB	020h		;   87h
'	DB	020h		;   88h
'	DB	020h		;   89h
'	DB	020h		;   8Ah
'	DB	020h		;   8Bh
'	DB	020h		;   8Ch
'	DB	020h		;   8Dh
'	DB	020h		;   8Eh
'	DB	020h		;   8Fh
'	DB	020h		;   90h		lowercase grave
'	DB	020h		;   91h		lowercase acute		
'	DB	020h		;   92h		lowercase circumflex
'	DB	020h		;   93h		lowercase umlaut
'	DB	020h		;   94h		lowercase tilde
'	DB	020h		;   95h		lowercase i without dot
'	DB	020h		;   96h		ordinal indicator
'	DB	020h		;   97h
'	DB	020h		;   98h
'	DB	004h		;   99h		filled square
'	DB	014h		;   9Ah		hard space
'	DB	020h		;   9Bh
'	DB	020h		;   9Ch
'	DB	020h		;   9Dh
'	DB	020h		;   9Eh
'	DB	020h		;   9Fh
'	DB	020h		;  0A0h		Dutch guilder
'	DB	020h		;  0A1h		inverted exclamation
'	DB	003h		;  0A2h		cent
'	DB	0B1h		;  0A3h		pound
'	DB	020h		;  0A4h
'	DB	020h		;  0A5h		yen
'	DB	020h		;  0A6h		pesetas
'	DB	017h		;  0A7h		section
'	DB	020h		;  0A8h
'	DB	0B3h		;  0A9h		copyright
'	DB	020h		;  0AAh
'	DB	020h		;  0ABh
'	DB	020h		;  0ACh		delta
'	DB	020h		;  0ADh		pi
'	DB	01Fh		;  0AEh		greater or equal
'	DB	015h		;  0AFh		division
'	DB	0B2h		;  0B0h		degree
'	DB	01Eh		;  0B1h		plus or minus
'	DB	08Eh		;  0B2h		superscript 2
'	DB	08Fh		;  0B3h		superscript 3
'	DB	020h		;  0B4h
'	DB	020h		;  0B5h
'	DB	01Ah		;  0B6h		paragraph
'	DB	01Bh		;  0B7h		middle dot
'	DB	0B5h		;  0B8h		trademark
'	DB	08Dh		;  0B9h		superscript 1
'	DB	020h		;  0BAh
'	DB	020h		;  0BBh
'	DB	010h		;  0BCh		onequarter
'	DB	006h		;  0BDh		onehalf
'	DB	01Dh		;  0BEh		less or equal
'	DB	020h		;  0BFh		inverted question
'	DB	020h		;  0C0h		Agrave
'	DB	020h		;  0C1h		Aacute
'	DB	020h		;  0C2h		Acircumflex
'	DB	020h		;  0C3h		Atilde
'	DB	0A2h		;  0C4h		Aumlaut
'	DB	0A0h		;  0C5h		Acircle
'	DB	0AEh		;  0C6h		AE ligature
'	DB	020h		;  0C7h		Ccedilla
'	DB	020h		;  0C8h		Egrave
'	DB	020h		;  0C9h		Eacute
'	DB	020h		;  0CAh		Ecircumflex
'	DB	020h		;  0CBh		Eumlaut
'	DB	020h		;  0CCh		Igrave
'	DB	020h		;  0CDh		Iacute
'	DB	020h		;  0CEh		Icircumflex
'	DB	020h		;  0CFh		Iumlaut
'	DB	020h		;  0D0h		uppercase Icelandic eth
'	DB	020h		;  0D1h		Ntilde
'	DB	020h		;  0D2h		Ograve
'	DB	020h		;  0D3h		Oacute
'	DB	020h		;  0D4h		Ocircumflex
'	DB	020h		;  0D5h		Otilde
'	DB	0A4h		;  0D6h		Oumlaut
'	DB	020h		;  0D7h		OE diphthong
'	DB	0A6h		;  0D8h		Oslash
'	DB	020h		;  0D9h		Ugrave
'	DB	020h		;  0DAh		Uacute
'	DB	020h		;  0DBh		Ucircumflex
'	DB	0A8h		;  0DCh		Uumlaut
'	DB	020h		;  0DDh		Yumlaut
'	DB	020h		;  0DEh		uppercase Icelandic thorn
'	DB	0B0h		;  0DFh		lowercase German sharp s
'	DB	020h		;  0E0h		agrave
'	DB	020h		;  0E1h		aacute
'	DB	020h		;  0E2h		acircumflex
'	DB	020h		;  0E3h		atilde
'	DB	0A3h		;  0E4h		aumlaut
'	DB	0A1h		;  0E5h		acircle
'	DB	0AFh		;  0E6h		ae ligature
'	DB	0AAh		;  0E7h		ccedilla
'	DB	0ACh		;  0E8h		egrave
'	DB	0ADh		;  0E9h		eacute
'	DB	0ABh		;  0EAh		ecircumflex
'	DB	020h		;  0EBh		eumlaut
'	DB	020h		;  0ECh		igrave
'	DB	020h		;  0EDh		iacute
'	DB	020h		;  0EEh		icircumflex
'	DB	020h		;  0EFh		iumlaut
'	DB	020h		;  0F0h		lowercase Icelandic eth
'	DB	020h		;  0F1h		ntilde
'	DB	020h		;  0F2h		ograve
'	DB	020h		;  0F3h		oacute
'	DB	020h		;  0F4h		ocircumflex
'	DB	020h		;  0F5h		otilde
'	DB	0A5h		;  0F6h		oumlaut
'	DB	020h		;  0F7h		oe diphthong
'	DB	0A7h		;  0F8h		oslash
'	DB	020h		;  0F9h		ugrave
'	DB	020h		;  0FAh		uacute
'	DB	020h		;  0FBh		ucircumflex
'	DB	0A9h		;  0FCh		uumlaut
'	DB	020h		;  0FDh		yumlaut
'	DB	020h		;  0FEh		lowercase Icelandic thorn
'	DB	020h		;  0FFh
'))
; END OF TABLE 22


;**WARNING***WARNING**************************************
;*********************************************************
; TABLE 23 IS FOR CONTEXT MANAGER VM
; This table has been commented out to save memory for
; non Context Manager VM environments.
; If you are going to use the Cut and Paste feature of
; Context Manager VM, then you
; must either have the CmNls.sys file present on your
; local disk or you must provide the table in this NLS
; file by uncommenting the following table.  To uncomment
; the following table by removing the ' (percent quote) 
; characters from the beginning of each line.
;
;*********************************************************
;**END*WARNING********************************************
;
; TABLE 23
; This table is used for converting characters to their
; unencoded mode key equivalents.
;
DefTableData (UnencodedKeysTable, 23, ('
UnencodedKeysSignature   DW  	'UK'
InitUnencodedKeys
SetUnencodedKey(00h) (20h,0A0h) 		' 000	 help
SetUnencodedKey(01h) (20h,0A0h)  		' 001	 uparrow
SetUnencodedKey(02h) (20h,0A0h)  		' 002	 mark
SetUnencodedKey(03h) (48h,36h,0B6h,0C8h)  		' 003	 cent sign
SetUnencodedKey(04h) (20h,0A0h)   		' 004	 finish
SetUnencodedKey(05h) (20h,0A0h)   		' 005	 prev page
SetUnencodedKey(06h) (06h,086h)   		' 006	 1214
SetUnencodedKey(07h) (20h,0A0h)   		' 007	 cancel
SetUnencodedKey(08h) (08h,88h)		 	' 008	 backspace
SetUnencodedKey(09h) (09h,89h)	 		' 009	 tab
SetUnencodedKey(0Ah) (048h,0Ah,8Ah,0C8h)	' 00A	 return
SetUnencodedKey(0Bh) (0Ah,8Ah)		 	' 00B	 downarrow 0C8hed return in unencoded
SetUnencodedKey(0Ch) (0Ch,8Ch)	 		' 00C	 next page
SetUnencodedKey(0Dh) (0Dh,8Dh)	 		' 00D	 next
SetUnencodedKey(0Eh) (0Eh,8Eh)		 	' 00E	 leftarrow
SetUnencodedKey(0Fh) (20h,0A0h)		 	' 00F	 move
;
SetUnencodedKey(10h) (048h,06h,86h,0C8h)	' 010	 (SHone half)
SetUnencodedKey(11h) (20h,0A0h)			' 011	 scrollup
SetUnencodedKey(12h) (0Fh,8Fh)	   			' 012	 rightarrow
SetUnencodedKey(13h) (20h,0A0h)			' 013	 scrolldown
SetUnencodedKey(14h) (20h,0A0h)	 		' 014	 copy
SetUnencodedKey(15h) (20h,0A0h)		 	' 015    divide sign
SetUnencodedKey(16h) (048h,5Ch,0DCh,0C8h)		' 016	 |
SetUnencodedKey(17h) (20h,0A0h)	 		' 017	 f3
SetUnencodedKey(18h) (20h,0A0h)	 		' 018	 f4
SetUnencodedKey(19h) (20h,0A0h)	 		' 019	 f5
SetUnencodedKey(1Ah) (20h,0A0h)	 		' 01A	 f6
SetUnencodedKey(1Bh) (20h,0A0h)	 		' 01B	 GO
SetUnencodedKey(1Ch) (20h,0A0h)	 		' 01C	 f7
SetUnencodedKey(1Dh) (20h,0A0h)		 	' 01D	 f8
SetUnencodedKey(1Eh) (20h,0A0h)		 	' 01E	 f9
SetUnencodedKey(1Fh) (20h,0A0h)		 	' 01F	 f10
;
SetUnencodedKey(20h) (20h,0A0h) 		 		' 020	space
SetUnencodedKey(21h) (048h,31h,0B1h,0C8h) 		' 021	
SetUnencodedKey(22h) (048h,27h,0A7h,0C8h) 		' 022	
SetUnencodedKey(23h) (048h,33h,0B3h,0C8h) 		' 023	
SetUnencodedKey(24h) (048h,34h,0B4h,0C8h) 		' 024	$
SetUnencodedKey(25h) (048h,35h,0B5h,0C8h)		' 025	percent
SetUnencodedKey(26h) (048h,37h,0B7h,0C8h)		' 026	
SetUnencodedKey(27h) (27h,0A7h)  				' 027	'
SetUnencodedKey(28h) (048h,39h,0B9h,0C8h)		' 028	(
SetUnencodedKey(29h) (048h,30h,0B0h,0C8h)		' 029	)
SetUnencodedKey(2Ah) (048h,38h,0B8h,0C8h)		' 02A	*
SetUnencodedKey(2Bh) (048h,2Bh,0ABh,0C8h) 		' 02B	+
SetUnencodedKey(2Ch) (2Ch,0ACh)		 		' 02C	, 
SetUnencodedKey(2Dh) (2Dh,0ADh)		 		' 02D	
SetUnencodedKey(2Eh) (2Eh,0AEh)	 			' 02E	.
SetUnencodedKey(2Fh) (2Fh,0AFh)	 			' 02F	 
;
SetUnencodedKey(30h) (30h,0B0h)	 		' 030	0
SetUnencodedKey(31h) (31h,0B1h)	 		' 031	1 
SetUnencodedKey(32h) (32h,0B2h)	 		' 032	2 
SetUnencodedKey(33h) (33h,0B3h)	 		' 033	3 
SetUnencodedKey(34h) (34h,0B4h)	 		' 034	4 
SetUnencodedKey(35h) (35h,0B5h) 			' 035	5 
SetUnencodedKey(36h) (36h,0B6h)			' 036	6 
SetUnencodedKey(37h) (37h,0B7h)			' 037	7 
SetUnencodedKey(38h) (38h,0B8h)			' 038	8 
SetUnencodedKey(39h) (39h,0B9h) 			' 039	9 
SetUnencodedKey(3Ah) (048h,3Bh,0BBh,0C8h)		' 03A	:
SetUnencodedKey(3Bh) (3Bh,0BBh)	 		' 03B
SetUnencodedKey(3Ch) (048h,5Bh,0DBh,0C8h)		' 03C	<
SetUnencodedKey(3Dh) (2Bh,0ABh)			' 03D	=
SetUnencodedKey(3Eh) (048h,5Dh,0DDh,0C8h)		' 03E	>
SetUnencodedKey(3Fh) (048h,2Fh,0AFh,0C8h)		' 03F	?
;
SetUnencodedKey(40h) (048h,32h,0B2h,0C8h)		' 040	@
SetUnencodedKey(41h) (048h,61h,0E1h,0C8h)		' 041	A
SetUnencodedKey(42h) (048h,62h,0E2h,0C8h)		' 042	B
SetUnencodedKey(43h) (048h,63h,0E3h,0C8h)		' 043	C
SetUnencodedKey(44h) (048h,64h,0E4h,0C8h)	 	' 044	D
SetUnencodedKey(45h) (048h,65h,0E5h,0C8h)	 	' 045	E
SetUnencodedKey(46h) (048h,66h,0E6h,0C8h)		' 046	F
SetUnencodedKey(47h) (048h,67h,0E7h,0C8h)		' 047	G
SetUnencodedKey(48h) (048h,68h,0E8h,0C8h)		' 048	H
SetUnencodedKey(49h) (048h,69h,0E9h,0C8h)		' 049	I
SetUnencodedKey(4Ah) (048h,6Ah,0EAh,0C8h)		' 04A	J
SetUnencodedKey(4Bh) (048h,6Bh,0EBh,0C8h)		' 04B	K
SetUnencodedKey(4Ch) (048h,6Ch,0ECh,0C8h)		' 04C 	L
SetUnencodedKey(4Dh) (048h,6Dh,0EDh,0C8h)		' 04D	M
SetUnencodedKey(4Eh) (048h,6Eh,0EEh,0C8h)		' 04E	N
SetUnencodedKey(4Fh) (048h,6Fh,0EFh,0C8h)		' 04F	O
;
SetUnencodedKey(50h) (048h,70h,0F0h,0C8h)		' 050	P
SetUnencodedKey(51h) (048h,71h,0F1h,0C8h)		' 051	Q
SetUnencodedKey(52h) (048h,72h,0F2h,0C8h)		' 052	R
SetUnencodedKey(53h) (048h,73h,0F3h,0C8h)		' 053	S
SetUnencodedKey(54h) (048h,74h,0F4h,0C8h)		' 054	T
SetUnencodedKey(55h) (048h,75h,0F5h,0C8h)		' 055	U
SetUnencodedKey(56h) (048h,76h,0F6h,0C8h)		' 056	V
SetUnencodedKey(57h) (048h,77h,0F7h,0C8h)		' 057	W
SetUnencodedKey(58h) (048h,78h,0F8h,0C8h)		' 058	X
SetUnencodedKey(59h) (048h,79h,0F9h,0C8h)		' 059	Y
SetUnencodedKey(5Ah) (048h,7Ah,0FAh,0C8h)		' 05A	Z
SetUnencodedKey(5Bh) (5Bh,0DBh)			' 05B	 [ 
SetUnencodedKey(5Ch) (048h,7Ch,0FCh,0C8h)		' 05C	 \
SetUnencodedKey(5Dh) (5Dh,0DDh)	 		' 05D	 ]
SetUnencodedKey(5Eh) (5Eh,0DEh)	 		' 05E	 ^ 
SetUnencodedKey(5Fh) (048h,2Dh,0ADh,0C8h)		' 05F	 _
;
SetUnencodedKey(60h) (048h,60h,0E0h,0C8h)		' 060	 
SetUnencodedKey(61h) (61h,0E1h) 		' 061	 a 
SetUnencodedKey(62h) (62h,0E2h) 		' 062	 b 
SetUnencodedKey(63h) (63h,0E3h) 		' 063	 c 
SetUnencodedKey(64h) (64h,0E4h) 		' 064	 d 
SetUnencodedKey(65h) (65h,0E5h) 		' 065	 e 
SetUnencodedKey(66h) (66h,0E6h) 		' 066	 f 
SetUnencodedKey(67h) (67h,0E7h) 		' 067	 g 
SetUnencodedKey(68h) (68h,0E8h) 		' 068	 h 
SetUnencodedKey(69h) (69h,0E9h) 		' 069	 i 
SetUnencodedKey(6Ah) (6Ah,0EAh) 		' 06A	 j 
SetUnencodedKey(6Bh) (6Bh,0EBh) 		' 06B	 k 
SetUnencodedKey(6Ch) (6Ch,0ECh) 		' 06C	 l 
SetUnencodedKey(6Dh) (6Dh,0EDh) 		' 06D	 m 
SetUnencodedKey(6Eh) (6Eh,0EEh) 		' 06E	 n 
SetUnencodedKey(6Fh) (6Fh,0EFh) 		' 06F	 o 
;
SetUnencodedKey(70h) (70h,0F0h) 		' 070	 p 
SetUnencodedKey(71h) (71h,0F1h) 		' 071	 q 
SetUnencodedKey(72h) (72h,0F2h) 		' 072	 r 
SetUnencodedKey(73h) (73h,0F3h) 		' 073	 s 
SetUnencodedKey(74h) (74h,0F4h) 		' 074	 t 
SetUnencodedKey(75h) (75h,0F5h) 		' 075	 u 
SetUnencodedKey(76h) (76h,0F6h) 		' 076	 v 
SetUnencodedKey(77h) (77h,0F7h) 		' 077	 w 
SetUnencodedKey(78h) (78h,0F8h) 		' 078	 x 
SetUnencodedKey(79h) (79h,0F9h) 		' 079	 y 
SetUnencodedKey(7Ah) (7Ah,0FAh) 		' 07A	 z 
SetUnencodedKey(7Bh) (048h,7Bh,0FBh,0C8h)		' 07B   {
SetUnencodedKey(7Ch) (048h,5Ch,0DCh,0C8h)		' 07C	|
SetUnencodedKey(7Dh) (048h,7Dh,0FDh,0C8h)		' 07D	}
SetUnencodedKey(7Eh) (048h,5Eh,0DEh,0C8h)		' 07E	
SetUnencodedKey(7Fh) (20h,0A0h)		' 07F	
;
SetUnencodedKey(80h) (20h,0A0h) 		' 080	 help
SetUnencodedKey(81h) (20h,0A0h)  		' 081	 uparrow
SetUnencodedKey(82h) (20h,0A0h)  		' 082	 mark
SetUnencodedKey(83h) (20h,0A0h)  		' 083	 048h6
SetUnencodedKey(84h) (20h,0A0h)   		' 084	 finish
SetUnencodedKey(85h) (20h,0A0h)   		' 085	 prev page
SetUnencodedKey(86h) (20h,0A0h)   		' 086	 1214
SetUnencodedKey(87h) (20h,0A0h)   		' 087	 cancel
SetUnencodedKey(88h) (08h,88h)		 	' 088	 backspace
SetUnencodedKey(89h) (09h,89h)	 		' 089	 tab
SetUnencodedKey(8Ah) (048h,0Ah,8Ah,0C8h)	' 08A	 return
SetUnencodedKey(8Bh) (0Ah,8Ah)		 	' 08B	 downarrow 0C8hed return in unencoded
SetUnencodedKey(8Ch) (0Ch,8Ch)	 		' 08C	 next page
SetUnencodedKey(8Dh) (0Dh,8Dh)	 		' 08D	 next
SetUnencodedKey(8Eh) (0Eh,8Eh)		 	' 08E	 leftarrow
SetUnencodedKey(8Fh) (20h,0A0h)		 	' 08F	 move
SetUnencodedKey(90h) (048h,06h,0C8h,86h)	' 090	 (SHone half)
;
SetUnencodedKey(91h) (20h,0A0h)			' 091	 scrollup
SetUnencodedKey(92h) (0Fh,8Fh)	   			' 092	 rightarrow
SetUnencodedKey(93h) (20h,0A0h)			' 093	 scrolldown
SetUnencodedKey(94h) (20h,0A0h)	 		' 094	 copy
SetUnencodedKey(95h) (20h,0A0h)		 	' 095    divide sign
SetUnencodedKey(96h) (048h,5Ch,0DCh,0C8h)		' 096	 |
SetUnencodedKey(97h) (20h,0A0h)	 		' 097	 f3
SetUnencodedKey(98h) (20h,0A0h)	 		' 098	 f4
SetUnencodedKey(99h) (20h,0A0h)	 		' 099	 f5
SetUnencodedKey(9Ah) (20h,0A0h)	 		' 09A	 f6
SetUnencodedKey(9Bh) (20h,0A0h)	 		' 09B	 GO
SetUnencodedKey(9Ch) (20h,0A0h)	 		' 09C	 f7
SetUnencodedKey(9Dh) (20h,0A0h)		 	' 09D	 f8
SetUnencodedKey(9Eh) (20h,0A0h)		 	' 09E	 f9
SetUnencodedKey(9Fh) (20h,0A0h)		 	' 09F	 f10
;
SetUnencodedKey(0A0h) (20h,0A0h) 		 		' 0A0	space
SetUnencodedKey(0A1h) (048h,31h,0B1h,0C8h) 		' 0A1	
SetUnencodedKey(0A2h) (048h,27h,0A7h,0C8h) 		' 0A2	
SetUnencodedKey(0A3h) (048h,33h,0B3h,0C8h) 		' 0A3	
SetUnencodedKey(0A4h) (048h,34h,0B4h,0C8h) 		' 0A4	$
SetUnencodedKey(0A5h) (048h,35h,0B5h,0C8h)		' 0A5	percent
SetUnencodedKey(0A6h) (048h,37h,0B7h,0C8h)		' 0A6	
SetUnencodedKey(0A7h) (27h,0A7h)  				' 0A7	'
SetUnencodedKey(0A8h) (048h,39h,0B9h,0C8h)		' 0A8	(
SetUnencodedKey(0A9h) (048h,30h,0B0h,0C8h)		' 0A9	)
SetUnencodedKey(0AAh) (048h,38h,0B8h,0C8h)		' 0AA	*
SetUnencodedKey(0ABh) (048h,2Bh,0ABh,0C8h) 		' 0AB	+
SetUnencodedKey(0ACh) (2Ch,0ACh)		 		' 0AC	, 
SetUnencodedKey(0ADh) (2Dh,0ADh)		 		' 0AD	
SetUnencodedKey(0AEh) (2Eh,0AEh)	 			' 0AE	.
SetUnencodedKey(0AFh) (2Fh,0AFh)	 			' 0AF	 
;
SetUnencodedKey(0B0h) (30h,0B0h)	 		' 0B0	0
SetUnencodedKey(0B1h) (31h,0B1h)	 		' 0B1	1 
SetUnencodedKey(0B2h) (32h,0B2h)	 		' 0B2	2 
SetUnencodedKey(0B3h) (33h,0B3h)	 		' 0B3	3 
SetUnencodedKey(0B4h) (34h,0B4h)	 		' 0B4	4 
SetUnencodedKey(0B5h) (35h,0B5h) 			' 0B5	5 
SetUnencodedKey(0B6h) (36h,0B6h)			' 0B6	6 
SetUnencodedKey(0B7h) (37h,0B7h)			' 0B7	7 
SetUnencodedKey(0B8h) (38h,0B8h)			' 0B8	8 
SetUnencodedKey(0B9h) (39h,0B9h) 			' 0B9	9 
SetUnencodedKey(0BAh) (048h,3Bh,0BBh,0C8h)		' 0BA	:
SetUnencodedKey(0BBh) (3Bh,0BBh)	 		' 0BB	' 
SetUnencodedKey(0BCh) (048h,5Bh,0DBh,0C8h)		' 0BC	<
SetUnencodedKey(0BDh) (2Bh,0ABh)			' 0BD	=
SetUnencodedKey(0BEh) (048h,5Dh,0DDh,0C8h)		' 0BE	>
SetUnencodedKey(0BFh) (048h,2Fh,0AFh,0C8h)		' 0BF	?
;
SetUnencodedKey(0C0h) (048h,32h,0B2h,0C8h)		' 0C0	@
SetUnencodedKey(0C1h) (048h,61h,0E1h,0C8h)		' 0C1	A
SetUnencodedKey(0C2h) (048h,62h,0E2h,0C8h)		' 0C2	B
SetUnencodedKey(0C3h) (048h,63h,0E3h,0C8h)		' 0C3	C
SetUnencodedKey(0C4h) (048h,64h,0E4h,0C8h)	 	' 0C4	D
SetUnencodedKey(0C5h) (048h,65h,0E5h,0C8h)	 	' 0C5	E
SetUnencodedKey(0C6h) (048h,66h,0E6h,0C8h)		' 0C6	F
SetUnencodedKey(0C7h) (048h,67h,0E7h,0C8h)		' 0C7	G
SetUnencodedKey(0C8h) (048h,68h,0E8h,0C8h)		' 0C8	H
SetUnencodedKey(0C9h) (048h,69h,0E9h,0C8h)		' 0C9	I
SetUnencodedKey(0CAh) (048h,6Ah,0EAh,0C8h)		' 0CA	J
SetUnencodedKey(0CBh) (048h,6Bh,0EBh,0C8h)		' 0CB	K
SetUnencodedKey(0CCh) (048h,6Ch,0ECh,0C8h)		' 0CC 	L
SetUnencodedKey(0CDh) (048h,6Dh,0EDh,0C8h)		' 0CD	M
SetUnencodedKey(0CEh) (048h,6Eh,0EEh,0C8h)		' 0CE	N
SetUnencodedKey(0CFh) (048h,6Fh,0EFh,0C8h)		' 0CF	O
;
SetUnencodedKey(0D0h) (048h,70h,0F0h,0C8h)		' 0D0	P
SetUnencodedKey(0D1h) (048h,71h,0F1h,0C8h)		' 0D1	Q
SetUnencodedKey(0D2h) (048h,72h,0F2h,0C8h)		' 0D2	R
SetUnencodedKey(0D3h) (048h,73h,0F3h,0C8h)		' 0D3	S
SetUnencodedKey(0D4h) (048h,74h,0F4h,0C8h)		' 0D4	T
SetUnencodedKey(0D5h) (048h,75h,0F5h,0C8h)		' 0D5	U
SetUnencodedKey(0D6h) (048h,76h,0F6h,0C8h)		' 0D6	V
SetUnencodedKey(0D7h) (048h,77h,0F7h,0C8h)		' 0D7	W
SetUnencodedKey(0D8h) (048h,78h,0F8h,0C8h)		' 0D8	X
SetUnencodedKey(0D9h) (048h,79h,0F9h,0C8h)		' 0D9	Y
SetUnencodedKey(0DAh) (048h,7Ah,0FAh,0C8h)		' 0DA	Z
SetUnencodedKey(0DBh) (5Bh,0DBh)			' 0DB	 [ 
SetUnencodedKey(0DCh) (048h,7Ch,0FCh,0C8h)	' 0DC	 \
SetUnencodedKey(0DDh) (5Dh,0DDh)	 		' 0DD	 ]
SetUnencodedKey(0DEh) (5Eh,0Deh)	 		' 0DE	 ^ 
SetUnencodedKey(0DFh) (048h,2Dh,0ADh,0C8h)	' 0DF	 _
;
SetUnencodedKey(0E0h) (048h,60h,0E0h,0C8h)	' 0E0	 
SetUnencodedKey(0E1h) (61h,0E1h) 		' 0E1	 a 
SetUnencodedKey(0E2h) (62h,0E2h) 		' 0E2	 b 
SetUnencodedKey(0E3h) (63h,0E3h) 		' 0E3	 c 
SetUnencodedKey(0E4h) (64h,0E4h) 		' 0E4	 d 
SetUnencodedKey(0E5h) (65h,0E5h) 		' 0E5	 e 
SetUnencodedKey(0E6h) (66h,0E6h) 		' 0E6	 f 
SetUnencodedKey(0E7h) (67h,0E7h) 		' 0E7	 g 
SetUnencodedKey(0E8h) (68h,0E8h) 		' 0E8	 h 
SetUnencodedKey(0E9h) (69h,0E9h) 		' 0E9	 i 
SetUnencodedKey(0EAh) (6Ah,0EAh) 		' 0EA	 j 
SetUnencodedKey(0EBh) (6Bh,0EBh) 		' 0EB	 k 
SetUnencodedKey(0ECh) (6Ch,0ECh) 		' 0EC	 l 
SetUnencodedKey(0EDh) (6Dh,0EDh) 		' 0ED	 m 
SetUnencodedKey(0EEh) (6Eh,0EEh) 		' 0EE	 n 
SetUnencodedKey(0EFh) (6Fh,0EFh) 		' 0EF	 o 
;
SetUnencodedKey(0F0h) (70h,0F0h) 		' 0F0	 p 
SetUnencodedKey(0F1h) (71h,0F1h) 		' 0F1	 q 
SetUnencodedKey(0F2h) (72h,0F2h) 		' 0F2	 r 
SetUnencodedKey(0F3h) (73h,0F3h) 		' 0F3	 s 
SetUnencodedKey(0F4h) (74h,0F4h) 		' 0F4	 t 
SetUnencodedKey(0F5h) (75h,0F5h) 		' 0F5	 u 
SetUnencodedKey(0F6h) (76h,0F6h) 		' 0F6	 v 
SetUnencodedKey(0F7h) (77h,0F7h) 		' 0F7	 w 
SetUnencodedKey(0F8h) (78h,0F8h) 		' 0F8	 x 
SetUnencodedKey(0F9h) (79h,0F9h) 		' 0F9	 y 
SetUnencodedKey(0FAh) (7Ah,0FAh) 		' 0FA	 z 
SetUnencodedKey(0FBh) (048h,7Bh,0FBh,0C8h)	' 0FB   {
SetUnencodedKey(0FCh) (048h,5Ch,0DCh,0C8h)	' 0FC	|
SetUnencodedKey(0FDh) (048h,7Dh,0FDh,0C8h)	' 0FD	}
SetUnencodedKey(0FEh) (048h,5Eh,0DEh,0C8h)	' 0FE	
SetUnencodedKey(0FFh) (20h,0A0h)		' 0FF	'
EndUnencodedKeys
))
; END OF TABLE 23

; Table numbers 28672 thru 32767 reserved

TableEnd


END
