*******************************************************************************
*
* This is the assembler source for the standard compose table used by CKBD
*
*   This file contains no keyboard mapping tables!
*
* Assembler: TurboAss 1.7.x
*
* ½3/1994 by P. Fellerich
*

               output 'Standard.CKB'
*
* default output mode is 'BASIC' which is simple binary without any header
*
               default 6

               >PART 'Defines'
*
* These defines are taken from CKBD.H
*
INQUIRE        equ -1
OFF            equ 0
ON             equ 1
SET            equ 2

DEC_MODE       equ 0
MULTICHAR      equ 2
ORDERINDIFF    equ 0
ORDERSENS      equ 4

               endpart
               >PART 'CKB_Header'
*
* This is the CKB file header
*
* 1. LONG magic:
id:            dc.b "CKBD"

*
* 2. The name of the table. Maximum 12 chars, must be padded with null bytes
*    to exactly 12 bytes.
*                   '123456789012'
name:          dc.b 'Standard GER' ; Name: exakt 12 Zeichen!!

*
* 3. The offsets to the keyboard mapping and compose tables. If a given table
*    is not present it's offset must be zero.
*
unshift_offset:dc.w 0			;unshift-id  if used
shift_offset:  dc.w 0			;shift-id    if used
caps_offset:   dc.w 0			;caps-id     if used
compose_offset:dc.w compose-id

*
* 4. Setup-Words. These words are only read out if the table is autoloaded by
*    CKBD. The magic $BAD0 in the first word is used to indicate that there are
*    more configuration words to follow.
*
compose_mode:  dc.w $BAD0|DEC_MODE|ORDERINDIFF|ON

*
* 5. more config words (not read by older versions of ckbd.prg).
*
;only if compose_mode && 0xFFF0 == 0xBAD0
               dc.w ON        		;ExtKey ON
               dc.w OFF       		;Alt-NNN OFF
               dc.w ON        		;Deadkeys ON
               dc.b "`'^""/,|~",0	;use these characters
               even

               endpart
               >PART 'keyboard mapping tables'

unshift:		;
shift:			; NOT USED; CKBD will substitute the system default!
caps:			;

               endpart
               >PART 'Compose Character Tabelle'
*
* COMPOSED CHARACTERS - TABELLE:
* Format is:
*   typedef struct {
*       char    primary;        /* first character plus... */
*       char    secondary;      /* ...second character */
*       char    composed;       /* becomes _composed_char_ ! */
*       char    flags;          /* reserved! (Flags) */
*   } comptab[];
*
compose:
	dc.b "O-é",0
	dc.b "++#",0
	dc.b "aa@",0
	dc.b "AA@",0
	dc.b "(([",0
	dc.b "//\",0
	dc.b "))]",0
	dc.b "(-{",0
	dc.b "/^|",0
	dc.b ")-}",0
	dc.b "C,€",0
	dc.b 'u"',0
	dc.b 'u¹',0
	dc.b "e'‚",0
	dc.b "a^ƒ",0
	dc.b 'a"„',0
	dc.b 'a¹„',0
	dc.b "a`…",0
	dc.b "a.†",0
	dc.b "aø†",0
	dc.b "c,‡",0
	dc.b "e^ˆ",0
	dc.b 'e"‰',0
	dc.b 'e¹‰',0
	dc.b "e`Š",0
	dc.b 'i"‹',0
	dc.b 'i¹‹',0
	dc.b "i^Œ",0
	dc.b "i`",0
	dc.b 'A"Ž',0
	dc.b 'A¹Ž',0
	dc.b "A.",0
	dc.b "Aø",0
	dc.b "E'",0
	dc.b "ae‘",0
	dc.b "Ae’",0
	dc.b "AE’",0
	dc.b "o^“",0
	dc.b 'o"”',0
	dc.b 'o¹”',0
	dc.b "o`•",0
	dc.b "u^–",0
	dc.b "u`—",0
	dc.b 'y"˜',0
	dc.b 'y¹˜',0
	dc.b 'O"™',0
	dc.b 'O¹™',0
	dc.b 'U"š',0
	dc.b 'U¹š',0
	dc.b "c/›",0
	dc.b "C/›",0
	dc.b "c|›",0
	dc.b "C|›",0
	dc.b "l-œ",0
	dc.b "L_œ",0
	dc.b "l_œ",0
	dc.b "L-œ",0
	dc.b "y-",0
	dc.b "y=",0
	dc.b "Y-",0
	dc.b "Y=",0
	dc.b "Ptž",0
	dc.b "ptž",0
	dc.b "f-Ÿ",0
	dc.b "a' ",0
	dc.b "i'¡",0
	dc.b "o'¢",0
	dc.b "u'£",0
	dc.b "n~¤",0
	dc.b "N~¥",0
	dc.b "a-¦",0
	dc.b "a_¦",0
	dc.b "o-§",0
	dc.b "o_§",0
	dc.b "??¨",0
	dc.b "12«",0
	dc.b "14¬",0
	dc.b "!!­",0
	dc.b "<<®",0
	dc.b ">>¯",0
	dc.b "a~°",0
	dc.b "o~±",0
	dc.b "O/²",0
	dc.b "o/³",0
	dc.b "O|²",0
	dc.b "o|³",0
	dc.b "oe´",0
	dc.b "Oeµ",0
	dc.b "OEµ",0
	dc.b "A`¶",0
	dc.b "A~·",0
	dc.b "O~¸",0
	dc.b ' "¹',0
	dc.b " 'º",0
	dc.b " +»",0
	dc.b "PP¼",0
	dc.b "pp¼",0
	dc.b "P|¼",0
	dc.b "p|¼",0
	dc.b "p/¼",0
	dc.b "P/¼",0
	dc.b "co½",0
	dc.b "CO½",0
	dc.b "ro¾",0
	dc.b "RO¾",0
	dc.b "tm¿",0
	dc.b "TM¿",0
	dc.b "ijÀ",0
	dc.b "IJÁ",0
	dc.b "IjÁ",0
	dc.b "soÝ",0
	dc.b "SOÝ",0
	dc.b " ^Þ",0
	dc.b "ooß",0
	dc.b "OOß",0
	dc.b "ssá",0
	dc.b "PIã",0
	dc.b "piã",0
	dc.b "SSä",0
	dc.b "u/æ",0
	dc.b "u|æ",0
	dc.b "=-ð",0
	dc.b "+-ñ",0
	dc.b ">-ò",0
	dc.b "<-ó",0
	dc.b ">_ò",0
	dc.b "<_ó",0
	dc.b ">=ò",0
	dc.b "<=ó",0
	dc.b ":-ö",0
	dc.b "=~÷",0
	dc.b "o ø",0
	dc.b "* ù",0
	dc.b ". ú",0
	dc.b "v û",0
	dc.b "n ü",0
	dc.b "2 ý",0
	dc.b "3 þ",0
	dc.b "_ ÿ",0

	dc.l 0				; end of table!

COMPTABSIZE    equ (*-comptab)/4-1

	if (*-compose)>1024
	fail 'Compose table too long!!'
	endc
	endpart

