;
; COPYRIGHT 1980,1983, 1987 CONVERGENT TECHNOLOGIES, INC.
; ALL RIGHTS RESERVED
;
; THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE
; SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A
; PARTICULAR PURPOSE, AND MAY NOT BE  COPIED OR OTHERWISE USED
; WITHOUT THE PRIOR WRITTEN CONSENT OF CONVERGENT  TECHNOLOGIES,
; INC.  TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS
; SOURCE CODE, SHALL AT ALL TIMES REMAIN IN CONVERGENT TECHNOLOGIES.
;

;
;
; 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
'[List file]				
'[Publics?]
'[Line numbers?]
'[Stack size]				0
'[Max memory array size]
'[Min memory array size]
'[System Build?]
'[Version]
'[Libraries]				None
'[DS allocation?]
'[Symbol 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(nls.mdf)


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
    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  	06h,  10h, attrRepeat 		; 006	 1214
    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,  39h, attrRepeat 		; 021	 9 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  	27h,  22h, attrRepeat 		; 027	  
    DB  	0,    0,   0				; 028
    DB  	0,    0,   0				; 029
    DB  	0,    0,   0				; 02A
    DB  	3Dh,  2Bh, attrRepeat 		; 02B	 + =
    DB  	2Ch,  2Ch, attrRepeat 		; 02C	 , ,
    DB  	2Dh,  5Fh, attrRepeat 		; 02D	  _
    DB  	2Eh,  2Eh, attrRepeat 		; 02E	 . .
    DB  	2Fh,  3Fh, 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,  29h, attrRepeat 		; 030	 0 right parens
    DB  	31h,  21h, attrRepeat 		; 031	 1 
    DB  	32h,  40h, attrRepeat 		; 032	 2 @
    DB  	33h,  23h, attrRepeat 		; 033	 3 
    DB  	34h,  24h, attrRepeat 		; 034	 4 $
    DB  	35h,  25h, attrRepeat 		; 035	 5 percent
    DB  	36h,  03h, attrRepeat 		; 036	 6 cent
    DB  	37h,  26h, attrRepeat 		; 037	 7 
    DB  	38h,  2Ah, attrRepeat 		; 038	 8 *
    DB  	39h,  28h, attrRepeat 		; 039	 9 left parens
    DB  	0,    0,   0				; 03A
    DB  	3Bh,  3Ah, attrRepeat 		; 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,  36h, attrRepeat 		; 041	 6 6
    DB  	2Dh,  2Dh, attrRepeat 		; 042	  
    DB  	0,    0,   0 				; 043	 reset
    DB  	0D0h,0D0h, attrControl	 	; 044	 overtype
    DB  	0,    0,   attrControl	 	; 045	 lock
    DB  	32h,  32h, attrRepeat 		; 046	 2 2
    DB  	33h,  33h, attrRepeat 		; 047	 3 3
    DB  	0,    0,   0 				; 048	 shift
    DB  	0,    0,   0 				; 049	 shift
    DB  	30h,  30h, attrRepeat 		; 04A	 0 0
    DB  	2Eh,  2Eh, 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  	5Bh,  3Ch, attrRepeat 		; 05B	 [ <
    DB  	37h,  7Ch, attrRepeat 		; 05C	 7 |
    DB  	5Dh,  3Eh, attrRepeat 		; 05D	 ] >
    DB  	5Eh,  7Eh, attrRepeat 		; 05E	 ^ 
    DB  	0,    0,   0				; 05F
    DB  	31h,  60h, 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  	79h,  59h, attrAlpha 		; 079	 y Y
    DB  	7Ah,  5Ah, attrAlpha 		; 07A	 z Z
    DB  	34h,  7Bh, attrRepeat 		; 07B	 4 {
    DB  	38h,  5Ch, attrRepeat 		; 07C	 8 backslash
    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(0CCh,31h,32h)	;shiftNEXTPAGE 1 displays 2 

EndDiaCriticalTables
					
))


;
;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.
;
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
))

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 ('Press Next Page or Scroll Up To Continue')
sbString ('Press Next Page To Continue')
	))


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   71885  9:03AM
;      100805 11:13PM

DefineTemplateEntry(ColNumDateTime, oo0d0y hh:0m2AA)


; 01h  71885 9:03AM
;      100805 11:13PM
  
DefineTemplateEntry(NumDateTime, *o0d0y *h:0m2*A)


; 02h  Jul  1, 1985  9:03 AM
;      Jul 18, 1985 11:13 PM
  
DefineTemplateEntry(ColDateTime, Nnn dd, yyyy hh:0m 2AA)


; 03h  Jul 1, 1985 9:03 AM
;      Jul 18, 1985 11:13 PM
  
DefineTemplateEntry(DateTime, Nnn *d, yyyy *h:0m 2*A)


; 04h  Mon Jul  1, 1985  9:03 AM
;      Mon Jul 18, 1985 11:13 PM
  
DefineTemplateEntry(ColDayDateTime, Www Nnn dd, yyyy hh:0m 2AA)


; 05h  Mon Jul 1, 1985 9:03 AM
;      Mon Jul 18, 1985 11:13 PM
  
DefineTemplateEntry(DayDateTime, Www Nnn *d, yyyy *h:0m 2*A)


; 06h  07:00
  
DefineTemplateEntry(ColTime24, 0t:0m)


; 07h  13:05
  
DefineTemplateEntry(Time24, *t:0m)


; 08h   9:03 AM
;      11:13 PM
  
DefineTemplateEntry(ColTime, hh:0m 2AA)


; 09h  9:03 AM
;      11:13 PM
  
DefineTemplateEntry(Time, *h:0m 2*A)


; 0Ah  071885
;      100805
  
DefineTemplateEntry(ColNumDate, 0o0d0y)


; 0Bh  7805
;      101885
  
DefineTemplateEntry(NumDate, *o*d0y)


; 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  Monday June 3, 1985
  
DefineTemplateEntry(LongDayDate, W*w N*n *d, *y)


; 0Fh  June 3, 1985
  
DefineTemplateEntry(LongDate, N*n *d, *y)


; 10h  01010107:09:05AM
  
DefineTemplateEntry(FileColDateTime, 0o0d0y0h:0m:0s2*A)

; 11h  Abbreviated Date

DefineTemplateEntry(AbrDate, Nnn *d, yyyy)


; 12h  Invalid Template Index

DefineTemplateEntry(InvalidITemp, Invalid Template Index)




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  2Eh		; 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  2Ch		; 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  true	; 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  2Ch		; 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  1		; Currency symbol string.  This string defines the currency
	DB  24h		; symbol.  The first byte is the length of the string.  The
	DB  00h		; remaining four bytes define the contents of the string.
	DB  00h		; All four bytes must be defined, even when a shorter string
	DB  00h		; is being defined.
))



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, 00);


; First Day of the Week: Sunday

DefineNameEntry(FirstWeekDay, sunday)



; Second Day of the Week: Monday

DefineNameEntry(SecondWeekDay, monday)



; Third Day of the Week: Tuesday

DefineNameEntry(ThirdWeekDay, tuesday)



; Fourth Day of the Week: Wednesday

DefineNameEntry(FourthWeekDay, wednesday)



; Fifth Day of the Week: Thursday

DefineNameEntry(FifthWeekDay, thursday)



; Sixth Day of the Week: Friday

DefineNameEntry(SixthWeekDay, friday)



; Seventh Day of the Week: Saturday

DefineNameEntry(SeventhWeekDay, saturday)



; First Month: January

DefineNameEntry(FirstMonth, january)



; Second Month: February

DefineNameEntry(SecondMonth, february)



; Third Month: March

DefineNameEntry(ThirdMonth, march)



; Fourth Month: April

DefineNameEntry(FourthMonth, april)



; Fifth Month: May

DefineNameEntry(FifthMonth, may)



; Sixth Month: June

DefineNameEntry(SixthMonth, june)



; Seventh Month: July

DefineNameEntry(SeventhMonth, july)



; Eighth Month: August

DefineNameEntry(EighthMonth, august)



; Ninth Month: September

DefineNameEntry(NinthMonth, september)



; Tenth Month: October

DefineNameEntry(TenthMonth, october)



; Eleventh Month: November

DefineNameEntry(EleventhMonth, november)



; Twelfth Month: December

DefineNameEntry(TwelfthMonth, december)



; First Meridian: AM

DefineNameEntry(FirstMeridian, am)



; Second Meridian: PM

DefineNameEntry(SecondMeridian, pm)



; Third Meridian: Noon

DefineNameEntry(ThirdMeridian, noon)



; Forth Meridian: Midnight

DefineNameEntry(ForthMeridian, midnight)


; 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, invalid name);


; First Day of the Week: Sunday

DefineNameEntry(FirstWeekDay, sun)



; Second Day of the Week: Monday

DefineNameEntry(SecondWeekDay, mon)



; Third Day of the Week: Tuesday

DefineNameEntry(ThirdWeekDay, tue)



; Fourth Day of the Week: Wednesday

DefineNameEntry(FourthWeekDay, wed)



; Fifth Day of the Week: Thursday

DefineNameEntry(FifthWeekDay, thu)



; Sixth Day of the Week: Friday

DefineNameEntry(SixthWeekDay, fri)



; Seventh Day of the Week: Saturday

DefineNameEntry(SeventhWeekDay, sat)



; First Month: January

DefineNameEntry(FirstMonth, jan)



; Second Month: February

DefineNameEntry(SecondMonth, feb)



; Third Month: March

DefineNameEntry(ThirdMonth, mar)



; Fourth Month: April

DefineNameEntry(FourthMonth, apr)



; Fifth Month: May

DefineNameEntry(FifthMonth, may)



; 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, oct)



; Eleventh Month: November

DefineNameEntry(EleventhMonth, nov)



; Twelfth Month: December

DefineNameEntry(TwelfthMonth, dec)



; First Meridian: AM

DefineNameEntry(FirstMeridian, am)



; Second Meridian: PM

DefineNameEntry(SecondMeridian, pm)



; Third Meridian: Noon

DefineNameEntry(ThirdMeridian, n)



; 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 character priority table,
'	the 2 for 1 character substitution table and the 1 for 2
'	character substitution table.  
'
'	NOTE:  The character priority 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.  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.  Therefore, it is
'	requested that these 300 lines of comments be left in this file for future
'	reference.  
'
'	The current example includes the Acircle, Aumlaut, Oslashed, and 
'	Uumlaut 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 (make appear as Aumlaut)
	DB	0A4h			; 	0A4h	Oslashed
	DB	0A4h			; 	0A5h	oslashed (make appear as Oslashed)
	DB	0A6h			; 	0A6h	Uumlaut
	DB	0A6h			; 	0A7h	uumlaut (make appear as Uumlaut)
	DB	0A8h			; 	0A8h
	DB	0A8h			; 	0A9h
	DB	0AAh			; 	0AAh
	DB	0ABh			; 	0ABh
	DB	0ACh			; 	0ACh
	DB	0ADh			; 	0ADh
	DB	0AEh			; 	0AEh	AE ligature
	DB	0AEh			; 	0AFh	ae ligature (make appear as 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

'
'	Character Priority Table 
'	This table defines the sort order of the characters in the character
'	set.  It is used by NLSCollate when two strings collate as equal using
'	the character collation table above.  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 character priority table,
'	the 2 for 1 character substitution table and the 1 for 2
'	character substitution table.  
'
'	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 (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			@
'
'	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 character priority 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			Oslashed
'	DB	0A5h			; 	0A5h			oslashed
'	DB	0A6h			; 	0A6h			Uumlaut
'	DB	0A7h			; 	0A7h			uumlaut
'	DB	0A8h			; 	0A8h
'	DB	0A9h			; 	0A9h
'	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
'
'	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', 'u'        ; Aumlaut expands to 'A', 'u'
;	DB	'a', 'u'        ; aumlaut expands to 'a', 'u'
;	DB	'O', 'u'        ; Oumlaut expands to 'O', 'u'
;	DB	'o', 'u'        ; oumlaut expands to 'o', 'u'
;	DB	'O', ''        ; Oslash expands to 'O', ''
;	DB	'o', ''        ; oslash expands to 'o', ''
;	DB	'U', 'u'        ; Uumlaut expands to 'U', 'u'
;	DB	'u', 'u'        ; uumlaut expands to 'u', 'u'
;	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.
'	0 (zero) 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', 'u'  sorts before 'au'
;	DW	1          ; aumlaut expands to 'a', 'u'  sorts before 'au'
;	DW	1          ; Oumlaut expands to 'O', 'u'  sorts before 'Ou'
;	DW	1          ; oumlaut expands to 'o', 'u'  sorts before 'ou'
;	DW	1          ; Oslash expands to 'O', ''  sorts before 'O'
;	DW	1          ; oslash expands to 'o', ''  sorts before 'o'
;	DW	1          ; Uumlaut expands to 'U', 'u'  sorts before 'Uu'
;	DW	1          ; uumlaut expands to 'u', 'u'  sorts before 'uu'
;	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 have special priorities
'	
rgw1For2Wrds LABEL BYTE
;	DB	'M', 'c'
;	DB	'C', 'h'
;	DB	'c', 'h'
'
'	This table MUST parallel rgw2For1Wrds.  It defines the priorites of the
'	sets of two special characters defined in rgw2For1Wrds.  Note that the
'	priority of a single character is the value defined in the collation
'	table(s) above times 256.  So in this example, the priority of M is
'	4D00;  The priority of Mc is 4CFF.  This means that the Mc gets collated
'  IMMEDIATELY before M (since no number exists between 4CFF and 4D00.)
'	Also, ch gets collated immediately after c (4300 for c followed by 4301
'	for ch); similarly for Ch and C.
'
rgw1For2Subs LABEL BYTE
'	DW	4CFFh
'	DW	4301h
'	DW	6301h
'
'	This table MUST parallel rgw2For1Wrds.  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. 1 means beginning only,
'	0 means anywhere in the 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, specl, blind	; 10h17h
	DB	blind, blind, specl, blind, blind, blind, specl, 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	blind, blind, blind, blind, blind, blind, blind, blind	; A0hA7h
	DB	blind, blind, blind, blind, blind, blind, blind, blind	; A8hAFh
	DB	blind, blind, blind, blind, blind, blind, graph, graph	; B0hB7h
	DB	graph, graph, graph, 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 have multiple answers for yes or no, modify the table as
; follows:  ('Yes Oui').  That is, separate 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.

DefTableData (YesNoStrings, 11, ('
YesNoSignature		DW 'YN'
sbString ('Yes')			; could be ('Yes Oui')
sbString ('No')			; could be ('Nyet NoWay ForgetIt')
	))


TableEnd


END
  sorts before 'O'
;	DW	1          ; oslash expands to 'o', ''  sorts before 'o'
;	DW	1          ; Uumlaut expands to 'U', 'u'  sorts before 'U