! T3X/0 cross back-end larger systems -> CP/M on Z80
! Nils M Holm, 2019,2022,2023,2024
! In the Public Domain / 0BSD License

module cg;

 public const	BPW = 2;
 public const	ALIGN = 0;

 public const	GPOOL_SIZE = 7;

 public const	BUFLEN = 512;

 public const	SYMTBL_SIZE = 2048;
 public const	LABEL_SIZE = 3072;
 public const	NLIST_SIZE = 6144;

 public const	LOCAL_LIMIT = 126;

 public binary() return %1;

 public suffix() return ".com";

 public modpath() return [
	"library/",
	"/usr/local/t3x/0/cpmz80/",
	"/usr/local/t3x/0/",
	"",
	0 ];

 public header(x) do
	return 256;
 end

 public codefrags() return [
	[ CG_NULL,	""			],
	[ CG_PUSH,	"e5"			], ! push hl
	[ CG_CLEAR,	"210000"		], ! ld hl,0
	[ CG_DROP,	"d1"			], ! pop de
	[ CG_LDVAL,	"21,w"			], ! ld hl,W
	[ CG_LDADDR,	"21,w"			], ! ld hl,W
	[ CG_LDLREF,	"21,wdde5d119"		], ! ld hl,W; push ix
						   ! pop de; add hl,de
	[ CG_LDGLOB,	"2a,w"			], ! ld hl,(W)
	[ CG_LDLOCL,	"dd66,hdd6e,l"		], ! ld h,(ix+H)
						   ! ld l,(ix+L)
	[ CG_STGLOB,	"22,w"			], ! ld (W),hl
	[ CG_STLOCL,	"dd74,hdd75,l"		], ! ld (ix+H),h
						   ! ld (ix+L),l
	[ CG_STINDR,	"ebe1732372"		], ! ex de,hl; pop hl
						   ! ld (hl),e; inc hl
						   ! ld (hl),d
	[ CG_STINDB,	"ebe173"		], ! ex de,hl; pop hl
						   ! ld (hl),e
!	[ CG_INCGLOB,	"21,w3423200134"	],
	[ CG_INCGLOB,	"21,w3420022334"	], ! ld hl,W; inc (hl)
						   ! jrnz +2; inc hl
						   ! inc (hl)
	[ CG_INCLOCL,	"dd34,l2003dd34,h"	], ! inc (ix+L);jrnz +3
						   ! inc (ix+H)
	[ CG_INCR,	"11,w19"		], ! ld de,W; add hl,de
	[ CG_STACK,	"21,w39f9"		], ! ld hl,W; add hl,sp
						   ! ld sp,hl
	[ CG_UNSTACK,	"eb21,w39f9eb"		], ! ex de,hl; ld hl,W
						   ! add hl,sp;ld sp,hl
						   ! ex de,hl
	[ CG_LOCLVEC,	"e5" 			], ! push hl
	[ CG_GLOBVEC,	"22,w"			], ! ld (W),hl
	[ CG_INDEX,	"29d119"		], ! add hl,hl; pop de
						   ! add hl,de
	[ CG_DEREF,	"7e23666f"		], ! ld a,(hl); inc hl
						   ! ld h,(hl), ld l,a
	[ CG_INDXB,	"d119"			], ! pop de; add hl,de
	[ CG_DREFB,	"6e2600"		], ! ld l,(hl); ld h,0
	[ CG_CALL,	"cd,w"			], ! call W
	[ CG_CALR,	"cd4a01"		], ! call 14Ah
	[ CG_JUMP,	"c3,w"			], ! jp W
	[ CG_RJUMP,	"18,r"			], ! jr L
	[ CG_JMPFALSE,	"7cb5ca,w"		], ! ld a,h; or l
						   ! jpz W
	[ CG_JMPTRUE,	"7cb5c2,w"		], ! ld a,h; or l
						   ! jpnz W
	[ CG_FOR,	"d1ebafed52f2,w"	], ! pop de; ex de,hl
						   ! xor a; sbc hl,de; jpp W
	[ CG_FORDOWN,	"d1afed52f2,w"		], ! pop de; xor a
						   ! sbc hl,de; jpp W
	[ CG_MKFRAME,	"dde5dd210000dd39"	], ! push ix; ld ix,0
						   ! add ix,sp
	[ CG_DELFRAME,	"dde1"			], ! pop ix
	[ CG_RET,	"c9"			], ! ret
	[ CG_HALT,	"c30000"		], ! jp 0
	[ CG_NEG,	"110000ebafed52"	], ! ld de,0; ex de,hl
						   ! xor a; sbc hl,de
	[ CG_INV,	"11ffffebafed52"	], ! ld de,ffffh
						   ! ex de,hl; xor a
						   ! sbc hl,de
	[ CG_LOGNOT,	"eb21ffff7ab3280123"	], ! ex de,hl
						   ! ld hl,ffffh;ld a,d
						   ! or e; jrnz +1
						   ! inc hl
	[ CG_ADD,	"d119"			], ! pop de; add hl,de
	[ CG_SUB,	"d1ebafed52"		], ! pop de; ex de,hl
						   ! xor a; sbc hl,de
	[ CG_MUL,	"d1cd0801"		], ! pop de; call 108h
	[ CG_DIV,	"d1cd0b01"		], ! pop de; call 10bh
	[ CG_MOD,	"d1cd0e01"		], ! pop de; call 10eh
	[ CG_AND,	"d17ca2677da36f"	], ! pop de; ld a,h
						   ! and d; ld h,a
						   ! ld a,l; and e
						   ! ld l,a
	[ CG_OR,	"d17cb2677db36f"	], ! pop de; ld a,h
						   ! or d; ld h,a
						   ! ld a,l; or e
						   ! ld l,a
	[ CG_XOR,	"d17caa677dab6f"	], ! pop de; ld a,h
						   ! xor d; ld h,a
						   ! ld a,l; xor e
						   ! ld l,a
	[ CG_SHL,	"d1eb432910fd"		], ! pop de; ex de,hl
						   ! ld b,e; add hl,hl
						   ! djnz -3
	[ CG_SHR,	"d1eb43cb3ccb1d10fa"	], ! pop de; ex de,hl
						   ! ld b,e; srl h
						   ! rr l; djnz -6
	[ CG_EQ,	"d1afed5221ffff280123"	], ! pop de; xor a
						   ! sbc hl,de
						   ! ld hl,ffffh
						   ! jrz +1; inc hl
	[ CG_NE,	"d1afed5221ffff200123"	], ! pop de; xor a
						   ! sbc hl,de
						   ! ld hl,ffffh
						   ! jrnz +1; inc hl
	[ CG_LT,	"d1ebcd170121ffff380123"], ! pop de; ex de,hl
						   ! call 117h
						   ! ld hl,ffffh
						   ! jrc +1; inc hl
	[ CG_GT,	"d1cd170121ffff380123"	], ! pop de; call 117h
						   ! ld hl,ffffh
						   ! jrc +1; inc hl
	[ CG_LE,	"d1cd170121000038012b"	], ! pop de; call 117h
						   ! ld hl,0
						   ! jrc +1; dec hl
	[ CG_GE,	"d1ebcd170121000038012b"], ! pop de; ex de,hl
						   ! call 117h
						   ! ld hl,0
						   ! jrc +1; dec hl
	[ CG_UMUL,	"d1cd1101"		], ! pop de; call 111h
	[ CG_UDIV,	"d1ebcd1401"		], ! pop de; ex de,hl;call 114h
	[ CG_ULT,	"d1ebafed5221ffff380123"], ! pop de; ex de,hl
						   ! xor a; sbc hl,de
						   ! ld hl,ffffh
						   ! jrc +1; inc hl
	[ CG_UGT,	"d1afed5221ffff380123"	], ! pop de; xor a; sbc hl,de
						   ! ld hl,ffffh
						   ! jrc +1; inc hl
	[ CG_ULE,	"d1afed5221000038012b"	], ! pop de; xor a; sbc hl,de
						   ! ld hl,0
						   ! jrc +1; dec hl
	[ CG_UGE,	"d1ebafed5221000038012b"], ! pop de; ex de,hl
						   ! xor a; sbc hl,de
						   ! ld hl,0
						   ! jrc +1; dec hl
	[ CG_JMPEQ,	"d1afed52ca,w"		], ! pop de; xor a
						   ! sbc hl,de; jpz W
	[ CG_JMPNE,	"d1afed52c2,w"		], ! pop de; xor a
						   ! sbc hl,de; jpnz W
	[ CG_JMPLT,	"d1ebafed52fa,w"	], ! pop de; ex de,hl
						   ! xor a; sbc hl,de; jpm W
	[ CG_JMPGT,	"d1afed52fa,w"		], ! pop de; xor a
						   ! sbc hl,de; jpm W
	[ CG_JMPLE,	"d1afed52f2,w"		], ! pop de; xor a;
						   ! sbc hl,de jpp W
	[ CG_JMPGE,	"d1ebafed52f2,w"	], ! pop de ex de,hl
						   ! xor a; sbc hl,de; jpp W
	[ CG_JMPULT,	"d1ebafed52da,w"	], ! pop de; ex de,hl
						   ! xor a; sbc hl,de; jpc W
	[ CG_JMPUGT,	"d1afed52da,w"		], ! pop de; xor a
						   ! sbc hl,de; jpc W
	[ CG_JMPULE,	"d1afed52d2,w"		], ! pop de; xor a
						   ! sbc hl,de; jpnc W
	[ CG_JMPUGE,	"d1ebafed52d2,w"	], ! pop de; ex de,hl
						   ! xor a; sbc hl,de; jpnc W
	[ CG_SKIP,	"c3,w"			], ! jp W
	[ CG_CALN,	""			], ! n/a
	[ CG_LDNAM,	""			], ! n/a
	[ CG_ENTER,	""			], ! n/a
	[ %1,		""			] ];

 public optimizations() return [
	[ CG_EQ,	0,	CG_JMPFALSE,	CG_JMPNE	],
	[ CG_NE,	0,	CG_JMPFALSE,	CG_JMPEQ	],
	[ CG_LT,	0,	CG_JMPFALSE,	CG_JMPGE	],
	[ CG_GT,	0,	CG_JMPFALSE,	CG_JMPLE	],
	[ CG_LE,	0,	CG_JMPFALSE,	CG_JMPGT	],
	[ CG_GE,	0,	CG_JMPFALSE,	CG_JMPLT	],
	[ CG_EQ,	0,	CG_JMPTRUE,	CG_JMPEQ	],
	[ CG_NE,	0,	CG_JMPTRUE,	CG_JMPNE	],
	[ CG_LT,	0,	CG_JMPTRUE,	CG_JMPLT	],
	[ CG_GT,	0,	CG_JMPTRUE,	CG_JMPGT	],
	[ CG_LE,	0,	CG_JMPTRUE,	CG_JMPLE	],
	[ CG_GE,	0,	CG_JMPTRUE,	CG_JMPGE	],
	[ CG_LOGNOT,	0,	CG_JMPFALSE,	CG_JMPTRUE	],
	[ CG_DROP,	0,	CG_PUSH,	CG_NULL		],
	[ %1,		%1,	%1,		%1		],
	[ CG_LDVAL,	0,	CG_INDEX,	CG_DROP		],
	[ CG_LDVAL,	0,	CG_INDXB,	CG_DROP		],
	[ CG_LDVAL,	0,	CG_ADD,		CG_DROP		],
	%1 ];

 public library() return
	[ 0x0080,
	  packed [ 
	    0xc3,0x6a,0x07,0x96,0x06,0x54,0x33,0x58,0xc3,0xa0,0x01,0xc3,
	    0xae,0x01,0xc3,0xbd,0x01,0xc3,0x58,0x01,0xc3,0x6b,0x01,0xc3,
	    0xc3,0x01,0xc3,0xce,0x01,0xc3,0xd2,0x01,0xc3,0xd6,0x01,0xc3,
	    0xf1,0x01,0xc3,0x2b,0x02,0xc3,0x69,0x02,0xc3,0x91,0x02,0xc3,
	    0xce,0x02,0xc3,0xb0,0x03,0xc3,0x5a,0x04,0xc3,0x2e,0x05,0xc3,
	    0x96,0x06,0xc3,0xcc,0x06,0xc3,0x1c,0x07,0xc3,0x5f,0x07,0xc3,
	    0x66,0x07,0xe9,0x00,0x00,0xc3,0x8e,0x03,0x00,0x00,0x00,0x00,
	    0x00,0x00,0x00,0x00,0x7d,0x4c,0x06,0x10,0x21,0x00,0x00,0xcb,
	    0x39,0x1f,0x30,0x01,0x19,0xeb,0x29,0xeb,0x10,0xf5,0xc9,0x7c,
	    0x4d,0x21,0x00,0x00,0x06,0x10,0xcb,0x11,0x17,0xed,0x6a,0xed,
	    0x52,0x30,0x01,0x19,0x3f,0x10,0xf3,0xcb ],
	  0x0080,
	  packed [ 
	    0x11,0x17,0x57,0x59,0xeb,0xc9,0x7c,0xaa,0x17,0xc9,0xcb,0x7a,
	    0x28,0x07,0x7a,0x2f,0x57,0x7b,0x2f,0x5f,0x13,0xcb,0x7c,0xc8,
	    0x7c,0x2f,0x67,0x7d,0x2f,0x6f,0x23,0xc9,0xcd,0x86,0x01,0xf5,
	    0xcd,0x8a,0x01,0xcd,0x58,0x01,0xf1,0xd0,0x18,0xea,0xeb,0xcd,
	    0x86,0x01,0xf5,0xcd,0x8a,0x01,0xcd,0x6b,0x01,0xf1,0xd0,0x18,
	    0xdb,0xeb,0xcd,0x6b,0x01,0xeb,0xc9,0xaf,0xed,0x52,0xc8,0xfa,
	    0xcc,0x01,0xb7,0xc9,0x37,0xc9,0xaf,0xed,0x52,0xc9,0x21,0x02,
	    0x00,0xc9,0xdd,0xe5,0xdd,0x21,0x00,0x00,0xdd,0x39,0xdd,0x66,
	    0x05,0xdd,0x6e,0x04,0xe5,0x36,0x0d,0x23,0x36,0x0a,0x23,0x36,
	    0x00,0xe1,0xdd,0xe1,0xc9,0xdd,0xe5,0xdd,0x21,0x00,0x00,0xdd,
	    0x39,0xdd,0x66,0x09,0xdd,0x6e,0x08,0xdd ],
	  0x0080,
	  packed [ 
	    0x56,0x07,0xdd,0x5e,0x06,0xdd,0x46,0x05,0xdd,0x4e,0x04,0x78,
	    0xb1,0x28,0x0b,0x1a,0xbe,0x20,0x0c,0x13,0x23,0x0b,0x78,0xb1,
	    0x20,0xf5,0x21,0x00,0x00,0x18,0x09,0x5f,0x6e,0x26,0x00,0x16,
	    0x00,0xaf,0xed,0x52,0xdd,0xe1,0xc9,0xdd,0xe5,0xdd,0x21,0x00,
	    0x00,0xdd,0x39,0xdd,0x56,0x09,0xdd,0x5e,0x08,0xdd,0x66,0x07,
	    0xdd,0x6e,0x06,0xdd,0x46,0x05,0xdd,0x4e,0x04,0x78,0xb1,0x28,
	    0x1a,0xe5,0xaf,0xed,0x52,0xe1,0xca,0x63,0x02,0x30,0x0e,0x09,
	    0xeb,0x09,0xeb,0x2b,0x1b,0xed,0xb8,0x21,0x00,0x00,0xdd,0xe1,
	    0xc9,0xed,0xb0,0x21,0x00,0x00,0xdd,0xe1,0xc9,0xdd,0xe5,0xdd,
	    0x21,0x00,0x00,0xdd,0x39,0xdd,0x66,0x09,0xdd,0x6e,0x08,0xdd,
	    0x5e,0x06,0xdd,0x46,0x05,0xdd,0x4e,0x04 ],
	  0x0080,
	  packed [ 
	    0x78,0xb1,0x28,0x07,0x73,0x54,0x5d,0x13,0x0b,0xed,0xb0,0x21,
	    0x00,0x00,0xdd,0xe1,0xc9,0xdd,0xe5,0xdd,0x21,0x00,0x00,0xdd,
	    0x39,0xdd,0x66,0x09,0xdd,0x6e,0x08,0xdd,0x7e,0x06,0xdd,0x46,
	    0x05,0xdd,0x4e,0x04,0x03,0xed,0xb1,0x78,0xb1,0xca,0x6a,0x06,
	    0xdd,0x56,0x09,0xdd,0x5e,0x08,0xaf,0xed,0x52,0x2b,0xdd,0xe1,
	    0xc9,0x7e,0xfe,0x20,0x28,0x04,0x23,0x10,0xf8,0xc9,0x7e,0xfe,
	    0x20,0xc0,0x23,0x10,0xf9,0xc9,0xdd,0xe5,0xdd,0x21,0x00,0x00,
	    0xdd,0x39,0xdd,0x7e,0x09,0xb7,0xc2,0x6a,0x06,0xdd,0x4e,0x08,
	    0x3a,0x80,0x00,0xb7,0xca,0x6a,0x06,0x47,0x21,0x81,0x00,0xcd,
	    0xbd,0x02,0x78,0xb7,0xca,0x6a,0x06,0x0d,0x28,0x02,0x18,0xf3,
	    0xdd,0x56,0x07,0xdd,0x5e,0x06,0xdd,0x4e ],
	  0x0080,
	  packed [ 
	    0x04,0x0d,0x7e,0xfe,0x20,0x28,0x08,0x12,0x23,0x13,0x0d,0x28,
	    0x02,0x10,0xf3,0xaf,0x12,0xdd,0x66,0x07,0xdd,0x6e,0x06,0xaf,
	    0xeb,0xed,0x52,0xdd,0xe1,0xc9,0xfe,0x61,0xd8,0xfe,0x7b,0xd0,
	    0xd6,0x20,0xc9,0xe5,0x23,0x7e,0x2b,0xfe,0x3a,0x28,0x03,0xaf,
	    0x18,0x08,0x7e,0xcd,0x1e,0x03,0x23,0x23,0xd6,0x40,0x12,0x13,
	    0x06,0x08,0x7e,0xb7,0x28,0x0e,0xfe,0x2e,0x28,0x0a,0x23,0xcd,
	    0x1e,0x03,0x12,0x13,0x10,0xf0,0x18,0x06,0x3e,0x20,0x12,0x13,
	    0x10,0xfc,0x7e,0xb7,0x28,0x07,0xfe,0x2e,0x20,0x2d,0x23,0x18,
	    0x04,0x06,0x03,0x18,0x10,0x06,0x03,0x7e,0xb7,0x28,0x0a,0x23,
	    0xcd,0x1e,0x03,0x12,0x13,0x10,0xf4,0x18,0x0a,0x3e,0x20,0x12,
	    0x13,0x10,0xfc,0x7e,0xb7,0x20,0x0c,0x62 ],
	  0x0080,
	  packed [ 
	    0x6b,0x06,0x18,0x36,0x00,0x23,0x10,0xfb,0xe1,0xb7,0xc9,0xe1,
	    0x37,0xc9,0xdd,0xe5,0xdd,0x21,0x00,0x00,0xdd,0x39,0xdd,0x66,
	    0x07,0xdd,0x6e,0x06,0xdd,0x56,0x05,0xdd,0x5e,0x04,0xd5,0xcd,
	    0x27,0x03,0xe1,0xda,0x6a,0x06,0xdd,0xe1,0xc9,0x00,0x00,0x00,
	    0xdd,0xe5,0xdd,0x21,0x00,0x00,0xdd,0x39,0x21,0xad,0x03,0x36,
	    0x03,0xed,0x5b,0x50,0x01,0x1a,0x3c,0x28,0x15,0x34,0xed,0x5b,
	    0x52,0x01,0x1a,0x3c,0x28,0x0c,0x34,0xed,0x5b,0x54,0x01,0x1a,
	    0x3c,0x28,0x03,0xc3,0x6a,0x06,0xdd,0x7e,0x05,0xb7,0xc2,0x6a,
	    0x06,0xdd,0x7e,0x04,0xb7,0x28,0x2b,0xfe,0x02,0xd2,0x6a,0x06,
	    0xdd,0x66,0x07,0xdd,0x6e,0x06,0xd5,0xcd,0x27,0x03,0xd1,0xda,
	    0x54,0x04,0xdd,0xe5,0xd5,0x0e,0x13,0xcd ],
	  0x0080,
	  packed [ 
	    0x05,0x00,0xd1,0xd5,0x0e,0x16,0xcd,0x05,0x00,0xd1,0xdd,0xe1,
	    0x3c,0xca,0x54,0x04,0x18,0x1d,0xdd,0x66,0x07,0xdd,0x6e,0x06,
	    0xd5,0xcd,0x27,0x03,0xd1,0xda,0x54,0x04,0xdd,0xe5,0xd5,0x0e,
	    0x0f,0xcd,0x05,0x00,0xd1,0xdd,0xe1,0x3c,0xca,0x54,0x04,0xed,
	    0x53,0xae,0x03,0x21,0x24,0x00,0x19,0xdd,0x7e,0x04,0xb7,0x28,
	    0x03,0xaf,0x18,0x02,0x3e,0x80,0x77,0x23,0xdd,0x7e,0x04,0x77,
	    0xcd,0xe7,0x05,0x3a,0xad,0x03,0x6f,0x26,0x00,0xdd,0xe1,0xc9,
	    0x3e,0xff,0x12,0xc3,0x6a,0x06,0xdd,0xe5,0xdd,0x21,0x00,0x00,
	    0xdd,0x39,0xdd,0x7e,0x05,0xb7,0xc2,0x6a,0x06,0xdd,0x7e,0x04,
	    0xed,0x5b,0x50,0x01,0xfe,0x03,0x28,0x13,0xed,0x5b,0x52,0x01,
	    0xfe,0x04,0x28,0x0b,0xed,0x5b,0x54,0x01 ],
	  0x0080,
	  packed [ 
	    0xfe,0x05,0x28,0x03,0xc3,0x6a,0x06,0xd5,0xfd,0xe1,0x1a,0xfe,
	    0xff,0xca,0x6a,0x06,0xfd,0x7e,0x25,0xb7,0x28,0x11,0xfd,0x7e,
	    0x24,0xb7,0x28,0x0b,0xed,0x53,0xae,0x03,0xcd,0xfa,0x05,0xb7,
	    0xc2,0x6a,0x06,0xd5,0x0e,0x10,0xcd,0x05,0x00,0xe1,0x3c,0xca,
	    0x6a,0x06,0x36,0xff,0x21,0x00,0x00,0xdd,0xe1,0xc9,0x0d,0x0a,
	    0x24,0xdd,0x46,0x05,0xdd,0x4e,0x04,0x78,0xb1,0x20,0x05,0x21,
	    0x00,0x00,0x18,0x5f,0x78,0xb7,0xc2,0x6a,0x06,0x79,0xfe,0x81,
	    0xd2,0x6a,0x06,0xfd,0x2a,0x56,0x01,0xfd,0x77,0x00,0xdd,0xe5,
	    0xfd,0xe5,0x0e,0x0a,0xed,0x5b,0x56,0x01,0xcd,0x05,0x00,0x0e,
	    0x09,0x11,0xba,0x04,0xcd,0x05,0x00,0xfd,0xe1,0xdd,0xe1,0xfd,
	    0x7e,0x01,0xb7,0x20,0x0b,0x21,0x00,0x00 ],
	  0x0080,
	  packed [ 
	    0xdd,0x56,0x07,0xdd,0x5e,0x06,0x18,0x1f,0x4f,0x06,0x00,0xc5,
	    0x2a,0x56,0x01,0x23,0x23,0xdd,0x56,0x07,0xdd,0x5e,0x06,0xed,
	    0xb0,0xe1,0xe5,0xdd,0x46,0x05,0xdd,0x4e,0x04,0xaf,0xed,0x42,
	    0xe1,0x28,0x04,0x3e,0x0a,0x12,0x23,0xdd,0xe1,0xc9,0xdd,0xe5,
	    0xdd,0x21,0x00,0x00,0xdd,0x39,0xdd,0x7e,0x09,0xb7,0xc2,0x6a,
	    0x06,0xdd,0x7e,0x08,0xb7,0xca,0xbd,0x04,0xed,0x5b,0x50,0x01,
	    0xfe,0x03,0xca,0x62,0x05,0xed,0x5b,0x52,0x01,0xfe,0x04,0xca,
	    0x62,0x05,0xed,0x5b,0x54,0x01,0xfe,0x05,0xca,0x62,0x05,0xc3,
	    0x6a,0x06,0xdd,0x46,0x05,0xdd,0x4e,0x04,0x78,0xb1,0x28,0x38,
	    0xed,0x53,0xae,0x03,0x21,0x26,0x00,0x19,0xfd,0x2a,0xae,0x03,
	    0xfd,0x5e,0x24,0x16,0x00,0x19,0xeb,0xdd ],
	  0x0080,
	  packed [ 
	    0x66,0x07,0xdd,0x6e,0x06,0xfd,0x2a,0xae,0x03,0xfd,0x7e,0x24,
	    0xfe,0x80,0x20,0x09,0xcd,0xb0,0x05,0xb7,0x20,0x0e,0xcd,0xd2,
	    0x05,0xeb,0xed,0xa0,0xeb,0xfd,0x34,0x24,0x78,0xb1,0x20,0xe1,
	    0xdd,0x66,0x05,0xdd,0x6e,0x04,0xaf,0xed,0x42,0xdd,0xe1,0xc9,
	    0xe5,0xd5,0xc5,0xdd,0xe5,0x0e,0x1a,0xed,0x5b,0xae,0x03,0x21,
	    0x26,0x00,0x19,0xeb,0xcd,0x05,0x00,0x0e,0x14,0xed,0x5b,0xae,
	    0x03,0xcd,0x05,0x00,0xdd,0xe1,0xc1,0xd1,0xe1,0xc9,0xfd,0x2a,
	    0xae,0x03,0xaf,0xfd,0x36,0x24,0x00,0xed,0x5b,0xae,0x03,0xe5,
	    0x21,0x26,0x00,0x19,0xeb,0xe1,0xc9,0xed,0x5b,0xae,0x03,0x21,
	    0x26,0x00,0x19,0x54,0x5d,0x13,0x01,0x7f,0x00,0x36,0x1a,0xed,
	    0xb0,0xc9,0xe5,0xd5,0xc5,0xdd,0xe5,0x0e ],
	  0x0080,
	  packed [ 
	    0x1a,0xed,0x5b,0xae,0x03,0x21,0x26,0x00,0x19,0xeb,0xcd,0x05,
	    0x00,0x0e,0x15,0xed,0x5b,0xae,0x03,0xcd,0x05,0x00,0xf5,0xcd,
	    0xe7,0x05,0xf1,0xdd,0xe1,0xc1,0xd1,0xe1,0xc9,0xdd,0x46,0x05,
	    0xdd,0x4e,0x04,0x78,0xb1,0x28,0x36,0xed,0x53,0xae,0x03,0x21,
	    0x26,0x00,0x19,0xfd,0x2a,0xae,0x03,0xfd,0x5e,0x24,0x16,0x00,
	    0x19,0xeb,0xdd,0x66,0x07,0xdd,0x6e,0x06,0xfd,0x2a,0xae,0x03,
	    0xfd,0x7e,0x24,0xfe,0x80,0x20,0x09,0xcd,0xfa,0x05,0xb7,0x20,
	    0x15,0xcd,0xd2,0x05,0xed,0xa0,0xfd,0x34,0x24,0x78,0xb1,0x20,
	    0xe3,0xdd,0x66,0x05,0xdd,0x6e,0x04,0xdd,0xe1,0xc9,0x21,0xff,
	    0xff,0xdd,0xe1,0xc9,0xdd,0x66,0x07,0xdd,0x6e,0x06,0xdd,0x46,
	    0x05,0xdd,0x4e,0x04,0xc5,0x78,0xb1,0x28 ],
	  0x0080,
	  packed [ 
	    0x11,0x7e,0xe5,0xc5,0x0e,0x02,0x5f,0xcd,0x05,0x00,0xc1,0xe1,
	    0x23,0x0b,0x78,0xb1,0x20,0xef,0xe1,0xdd,0xe1,0xc9,0xdd,0xe5,
	    0xdd,0x21,0x00,0x00,0xdd,0x39,0xdd,0x7e,0x09,0xb7,0x20,0xc6,
	    0xdd,0x7e,0x08,0xfe,0x01,0x28,0xc5,0xfe,0x02,0x28,0xc1,0xfe,
	    0x03,0xed,0x5b,0x50,0x01,0xca,0x21,0x06,0xfe,0x04,0xed,0x5b,
	    0x52,0x01,0xca,0x21,0x06,0xfe,0x05,0xed,0x5b,0x54,0x01,0xca,
	    0x21,0x06,0x18,0x9e,0xdd,0xe5,0xdd,0x21,0x00,0x00,0xdd,0x39,
	    0xdd,0x66,0x07,0xdd,0x6e,0x06,0xed,0x5b,0x56,0x01,0xcd,0x27,
	    0x03,0xda,0x6a,0x06,0x2a,0x56,0x01,0x11,0x10,0x00,0x19,0xeb,
	    0xdd,0x66,0x05,0xdd,0x6e,0x04,0xcd,0x27,0x03,0xda,0x6a,0x06,
	    0x2a,0x56,0x01,0x11,0x10,0x00,0x19,0xeb ],
	  0x0080,
	  packed [ 
	    0x0e,0x0f,0xcd,0x05,0x00,0x3c,0xc2,0x6a,0x06,0x0e,0x17,0xed,
	    0x5b,0x56,0x01,0xcd,0x05,0x00,0x3c,0xca,0x6a,0x06,0x21,0x00,
	    0x00,0xdd,0xe1,0xc9,0xdd,0xe5,0xdd,0x21,0x00,0x00,0xdd,0x39,
	    0xdd,0x66,0x05,0xdd,0x6e,0x04,0xed,0x5b,0x56,0x01,0xcd,0x27,
	    0x03,0xda,0x6a,0x06,0xed,0x5b,0x56,0x01,0x0e,0x13,0xcd,0x05,
	    0x00,0x3c,0xca,0x6a,0x06,0x21,0x00,0x00,0xdd,0xe1,0xc9,0xdd,
	    0xe5,0xdd,0x21,0x00,0x00,0xdd,0x39,0xdd,0x56,0x07,0xdd,0x5e,
	    0x06,0x7b,0xdd,0x4e,0x08,0xcd,0x05,0x00,0xdd,0xe1,0xc9,0xcd,
	    0x47,0x07,0x6f,0x26,0x00,0xc9,0xcd,0x47,0x07,0xc9,0x2a,0x06,
	    0x00,0x2e,0x00,0xf9,0x21,0x5a,0xff,0x39,0xf9,0x36,0xff,0x22,
	    0x50,0x01,0x21,0x5a,0xff,0x39,0xf9,0x36 ],
	  0x0016,
	  packed [ 
	    0xff,0x22,0x52,0x01,0x21,0x5a,0xff,0x39,0xf9,0x36,0xff,0x22,
	    0x54,0x01,0x21,0x7e,0xff,0x39,0xf9,0x22,0x56,0x01 ],
	  0 ];

end
