#ifndef __KERNEL_H__
#define __KERNEL_H__

#if defined(NOSTUB) || defined(KERNEL) || defined(DOORS)
# error "kernel.h" must not be included with tigcclib.h
#endif

/* If someone uses the main function */
#define main _main

/* Select target */
#ifdef USE_TI89
	short	_ti89;
#endif
#if defined(USE_TI92PLUS) || defined(USE_TI92P)
	short	_ti92plus;
#endif
#ifdef USE_V200
	short	_v200;
#endif
#if !defined(USE_TI92PLUS) && !defined(USE_TI92P) && !defined(USE_TI89) && !defined(USE_V200)
	short	_ti92plus,_ti89,_v200;
#endif

/* Define default value */
#define asm __asm__ 
#define __ATTR_STD__ __attribute__((__stkparm__))
#define __ATTR_STD_NORETURN__ __attribute__((__stkparm__,__noreturn__))
#define CALLBACK __ATTR_STD__
#define __ATTR_TIOS__ __ATTR_STD__
#define __ATTR_TIOS_NORETURN__ __ATTR_STD_NORETURN__
#define __ATTR_TIOS_CALLBACK__ CALLBACK
#define __ATTR_GCC__ 
#define __ATTR_LIB_C__ __attribute__((__regparm__(4)))
#define __ATTR_LIB_ASM__ __ATTR_STD__
#define __ATTR_LIB_ASM_NORETURN__ __ATTR_STD_NORETURN__
#define __ATTR_LIB_CALLBACK_C__ CALLBACK
#define __ATTR_LIB_CALLBACK_ASM__ CALLBACK

/* Float definition */
#define _tios_float_1(f,x,t) ({typedef float(*__temp__type__)(short,t)__ATTR_LIB_ASM__;((__temp__type__)__BC)(4*0x##f,x);})
#define _tios_float_2(f,x,y,t1,t2) ({typedef float(*__temp__type__)(short,t1,t2)__ATTR_LIB_ASM__;((__temp__type__)__BC)(4*0x##f,x,y);})

/* Romcalls first definition */
extern void __attribute__((__may_alias__))
  _ROM_CALL_0,_ROM_CALL_1,_ROM_CALL_2,_ROM_CALL_3,_ROM_CALL_4,_ROM_CALL_5,_ROM_CALL_6,_ROM_CALL_7,_ROM_CALL_8,_ROM_CALL_9,_ROM_CALL_A,_ROM_CALL_B,_ROM_CALL_C,_ROM_CALL_D,_ROM_CALL_E,_ROM_CALL_F,
  _ROM_CALL_10,_ROM_CALL_11,_ROM_CALL_12,_ROM_CALL_13,_ROM_CALL_14,_ROM_CALL_15,_ROM_CALL_16,_ROM_CALL_17,_ROM_CALL_18,_ROM_CALL_19,_ROM_CALL_1A,_ROM_CALL_1B,_ROM_CALL_1C,_ROM_CALL_1D,_ROM_CALL_1E,_ROM_CALL_1F,
  _ROM_CALL_20,_ROM_CALL_21,_ROM_CALL_22,_ROM_CALL_23,_ROM_CALL_24,_ROM_CALL_25,_ROM_CALL_26,_ROM_CALL_27,_ROM_CALL_28,_ROM_CALL_29,_ROM_CALL_2A,_ROM_CALL_2B,_ROM_CALL_2C,_ROM_CALL_2D,_ROM_CALL_2E,_ROM_CALL_2F,
  _ROM_CALL_30,_ROM_CALL_31,_ROM_CALL_32,_ROM_CALL_33,_ROM_CALL_34,_ROM_CALL_35,_ROM_CALL_36,_ROM_CALL_37,_ROM_CALL_38,_ROM_CALL_39,_ROM_CALL_3A,_ROM_CALL_3B,_ROM_CALL_3C,_ROM_CALL_3D,_ROM_CALL_3E,_ROM_CALL_3F,
  _ROM_CALL_40,_ROM_CALL_41,_ROM_CALL_42,_ROM_CALL_43,_ROM_CALL_44,_ROM_CALL_45,_ROM_CALL_46,_ROM_CALL_47,_ROM_CALL_48,_ROM_CALL_49,_ROM_CALL_4A,_ROM_CALL_4B,_ROM_CALL_4C,_ROM_CALL_4D,_ROM_CALL_4E,_ROM_CALL_4F,
  _ROM_CALL_50,_ROM_CALL_51,_ROM_CALL_52,_ROM_CALL_53,_ROM_CALL_54,_ROM_CALL_55,_ROM_CALL_56,_ROM_CALL_57,_ROM_CALL_58,_ROM_CALL_59,_ROM_CALL_5A,_ROM_CALL_5B,_ROM_CALL_5C,_ROM_CALL_5D,_ROM_CALL_5E,_ROM_CALL_5F,
  _ROM_CALL_60,_ROM_CALL_61,_ROM_CALL_62,_ROM_CALL_63,_ROM_CALL_64,_ROM_CALL_65,_ROM_CALL_66,_ROM_CALL_67,_ROM_CALL_68,_ROM_CALL_69,_ROM_CALL_6A,_ROM_CALL_6B,_ROM_CALL_6C,_ROM_CALL_6D,_ROM_CALL_6E,_ROM_CALL_6F,
  _ROM_CALL_70,_ROM_CALL_71,_ROM_CALL_72,_ROM_CALL_73,_ROM_CALL_74,_ROM_CALL_75,_ROM_CALL_76,_ROM_CALL_77,_ROM_CALL_78,_ROM_CALL_79,_ROM_CALL_7A,_ROM_CALL_7B,_ROM_CALL_7C,_ROM_CALL_7D,_ROM_CALL_7E,_ROM_CALL_7F,
  _ROM_CALL_80,_ROM_CALL_81,_ROM_CALL_82,_ROM_CALL_83,_ROM_CALL_84,_ROM_CALL_85,_ROM_CALL_86,_ROM_CALL_87,_ROM_CALL_88,_ROM_CALL_89,_ROM_CALL_8A,_ROM_CALL_8B,_ROM_CALL_8C,_ROM_CALL_8D,_ROM_CALL_8E,_ROM_CALL_8F,
  _ROM_CALL_90,_ROM_CALL_91,_ROM_CALL_92,_ROM_CALL_93,_ROM_CALL_94,_ROM_CALL_95,_ROM_CALL_96,_ROM_CALL_97,_ROM_CALL_98,_ROM_CALL_99,_ROM_CALL_9A,_ROM_CALL_9B,_ROM_CALL_9C,_ROM_CALL_9D,_ROM_CALL_9E,_ROM_CALL_9F,
  _ROM_CALL_A0,_ROM_CALL_A1,_ROM_CALL_A2,_ROM_CALL_A3,_ROM_CALL_A4,_ROM_CALL_A5,_ROM_CALL_A6,_ROM_CALL_A7,_ROM_CALL_A8,_ROM_CALL_A9,_ROM_CALL_AA,_ROM_CALL_AB,_ROM_CALL_AC,_ROM_CALL_AD,_ROM_CALL_AE,_ROM_CALL_AF,
  _ROM_CALL_B0,_ROM_CALL_B1,_ROM_CALL_B2,_ROM_CALL_B3,_ROM_CALL_B4,_ROM_CALL_B5,_ROM_CALL_B6,_ROM_CALL_B7,_ROM_CALL_B8,_ROM_CALL_B9,_ROM_CALL_BA,_ROM_CALL_BB,_ROM_CALL_BC,_ROM_CALL_BD,_ROM_CALL_BE,_ROM_CALL_BF,
  _ROM_CALL_C0,_ROM_CALL_C1,_ROM_CALL_C2,_ROM_CALL_C3,_ROM_CALL_C4,_ROM_CALL_C5,_ROM_CALL_C6,_ROM_CALL_C7,_ROM_CALL_C8,_ROM_CALL_C9,_ROM_CALL_CA,_ROM_CALL_CB,_ROM_CALL_CC,_ROM_CALL_CD,_ROM_CALL_CE,_ROM_CALL_CF,
  _ROM_CALL_D0,_ROM_CALL_D1,_ROM_CALL_D2,_ROM_CALL_D3,_ROM_CALL_D4,_ROM_CALL_D5,_ROM_CALL_D6,_ROM_CALL_D7,_ROM_CALL_D8,_ROM_CALL_D9,_ROM_CALL_DA,_ROM_CALL_DB,_ROM_CALL_DC,_ROM_CALL_DD,_ROM_CALL_DE,_ROM_CALL_DF,
  _ROM_CALL_E0,_ROM_CALL_E1,_ROM_CALL_E2,_ROM_CALL_E3,_ROM_CALL_E4,_ROM_CALL_E5,_ROM_CALL_E6,_ROM_CALL_E7,_ROM_CALL_E8,_ROM_CALL_E9,_ROM_CALL_EA,_ROM_CALL_EB,_ROM_CALL_EC,_ROM_CALL_ED,_ROM_CALL_EE,_ROM_CALL_EF,
  _ROM_CALL_F0,_ROM_CALL_F1,_ROM_CALL_F2,_ROM_CALL_F3,_ROM_CALL_F4,_ROM_CALL_F5,_ROM_CALL_F6,_ROM_CALL_F7,_ROM_CALL_F8,_ROM_CALL_F9,_ROM_CALL_FA,_ROM_CALL_FB,_ROM_CALL_FC,_ROM_CALL_FD,_ROM_CALL_FE,_ROM_CALL_FF,
  _ROM_CALL_100,_ROM_CALL_101,_ROM_CALL_102,_ROM_CALL_103,_ROM_CALL_104,_ROM_CALL_105,_ROM_CALL_106,_ROM_CALL_107,_ROM_CALL_108,_ROM_CALL_109,_ROM_CALL_10A,_ROM_CALL_10B,_ROM_CALL_10C,_ROM_CALL_10D,_ROM_CALL_10E,_ROM_CALL_10F,
  _ROM_CALL_110,_ROM_CALL_111,_ROM_CALL_112,_ROM_CALL_113,_ROM_CALL_114,_ROM_CALL_115,_ROM_CALL_116,_ROM_CALL_117,_ROM_CALL_118,_ROM_CALL_119,_ROM_CALL_11A,_ROM_CALL_11B,_ROM_CALL_11C,_ROM_CALL_11D,_ROM_CALL_11E,_ROM_CALL_11F,
  _ROM_CALL_120,_ROM_CALL_121,_ROM_CALL_122,_ROM_CALL_123,_ROM_CALL_124,_ROM_CALL_125,_ROM_CALL_126,_ROM_CALL_127,_ROM_CALL_128,_ROM_CALL_129,_ROM_CALL_12A,_ROM_CALL_12B,_ROM_CALL_12C,_ROM_CALL_12D,_ROM_CALL_12E,_ROM_CALL_12F,
  _ROM_CALL_130,_ROM_CALL_131,_ROM_CALL_132,_ROM_CALL_133,_ROM_CALL_134,_ROM_CALL_135,_ROM_CALL_136,_ROM_CALL_137,_ROM_CALL_138,_ROM_CALL_139,_ROM_CALL_13A,_ROM_CALL_13B,_ROM_CALL_13C,_ROM_CALL_13D,_ROM_CALL_13E,_ROM_CALL_13F,
  _ROM_CALL_140,_ROM_CALL_141,_ROM_CALL_142,_ROM_CALL_143,_ROM_CALL_144,_ROM_CALL_145,_ROM_CALL_146,_ROM_CALL_147,_ROM_CALL_148,_ROM_CALL_149,_ROM_CALL_14A,_ROM_CALL_14B,_ROM_CALL_14C,_ROM_CALL_14D,_ROM_CALL_14E,_ROM_CALL_14F,
  _ROM_CALL_150,_ROM_CALL_151,_ROM_CALL_152,_ROM_CALL_153,_ROM_CALL_154,_ROM_CALL_155,_ROM_CALL_156,_ROM_CALL_157,_ROM_CALL_158,_ROM_CALL_159,_ROM_CALL_15A,_ROM_CALL_15B,_ROM_CALL_15C,_ROM_CALL_15D,_ROM_CALL_15E,_ROM_CALL_15F,
  _ROM_CALL_160,_ROM_CALL_161,_ROM_CALL_162,_ROM_CALL_163,_ROM_CALL_164,_ROM_CALL_165,_ROM_CALL_166,_ROM_CALL_167,_ROM_CALL_168,_ROM_CALL_169,_ROM_CALL_16A,_ROM_CALL_16B,_ROM_CALL_16C,_ROM_CALL_16D,_ROM_CALL_16E,_ROM_CALL_16F,
  _ROM_CALL_170,_ROM_CALL_171,_ROM_CALL_172,_ROM_CALL_173,_ROM_CALL_174,_ROM_CALL_175,_ROM_CALL_176,_ROM_CALL_177,_ROM_CALL_178,_ROM_CALL_179,_ROM_CALL_17A,_ROM_CALL_17B,_ROM_CALL_17C,_ROM_CALL_17D,_ROM_CALL_17E,_ROM_CALL_17F,
  _ROM_CALL_180,_ROM_CALL_181,_ROM_CALL_182,_ROM_CALL_183,_ROM_CALL_184,_ROM_CALL_185,_ROM_CALL_186,_ROM_CALL_187,_ROM_CALL_188,_ROM_CALL_189,_ROM_CALL_18A,_ROM_CALL_18B,_ROM_CALL_18C,_ROM_CALL_18D,_ROM_CALL_18E,_ROM_CALL_18F,
  _ROM_CALL_190,_ROM_CALL_191,_ROM_CALL_192,_ROM_CALL_193,_ROM_CALL_194,_ROM_CALL_195,_ROM_CALL_196,_ROM_CALL_197,_ROM_CALL_198,_ROM_CALL_199,_ROM_CALL_19A,_ROM_CALL_19B,_ROM_CALL_19C,_ROM_CALL_19D,_ROM_CALL_19E,_ROM_CALL_19F,
  _ROM_CALL_1A0,_ROM_CALL_1A1,_ROM_CALL_1A2,_ROM_CALL_1A3,_ROM_CALL_1A4,_ROM_CALL_1A5,_ROM_CALL_1A6,_ROM_CALL_1A7,_ROM_CALL_1A8,_ROM_CALL_1A9,_ROM_CALL_1AA,_ROM_CALL_1AB,_ROM_CALL_1AC,_ROM_CALL_1AD,_ROM_CALL_1AE,_ROM_CALL_1AF,
  _ROM_CALL_1B0,_ROM_CALL_1B1,_ROM_CALL_1B2,_ROM_CALL_1B3,_ROM_CALL_1B4,_ROM_CALL_1B5,_ROM_CALL_1B6,_ROM_CALL_1B7,_ROM_CALL_1B8,_ROM_CALL_1B9,_ROM_CALL_1BA,_ROM_CALL_1BB,_ROM_CALL_1BC,_ROM_CALL_1BD,_ROM_CALL_1BE,_ROM_CALL_1BF,
  _ROM_CALL_1C0,_ROM_CALL_1C1,_ROM_CALL_1C2,_ROM_CALL_1C3,_ROM_CALL_1C4,_ROM_CALL_1C5,_ROM_CALL_1C6,_ROM_CALL_1C7,_ROM_CALL_1C8,_ROM_CALL_1C9,_ROM_CALL_1CA,_ROM_CALL_1CB,_ROM_CALL_1CC,_ROM_CALL_1CD,_ROM_CALL_1CE,_ROM_CALL_1CF,
  _ROM_CALL_1D0,_ROM_CALL_1D1,_ROM_CALL_1D2,_ROM_CALL_1D3,_ROM_CALL_1D4,_ROM_CALL_1D5,_ROM_CALL_1D6,_ROM_CALL_1D7,_ROM_CALL_1D8,_ROM_CALL_1D9,_ROM_CALL_1DA,_ROM_CALL_1DB,_ROM_CALL_1DC,_ROM_CALL_1DD,_ROM_CALL_1DE,_ROM_CALL_1DF,
  _ROM_CALL_1E0,_ROM_CALL_1E1,_ROM_CALL_1E2,_ROM_CALL_1E3,_ROM_CALL_1E4,_ROM_CALL_1E5,_ROM_CALL_1E6,_ROM_CALL_1E7,_ROM_CALL_1E8,_ROM_CALL_1E9,_ROM_CALL_1EA,_ROM_CALL_1EB,_ROM_CALL_1EC,_ROM_CALL_1ED,_ROM_CALL_1EE,_ROM_CALL_1EF,
  _ROM_CALL_1F0,_ROM_CALL_1F1,_ROM_CALL_1F2,_ROM_CALL_1F3,_ROM_CALL_1F4,_ROM_CALL_1F5,_ROM_CALL_1F6,_ROM_CALL_1F7,_ROM_CALL_1F8,_ROM_CALL_1F9,_ROM_CALL_1FA,_ROM_CALL_1FB,_ROM_CALL_1FC,_ROM_CALL_1FD,_ROM_CALL_1FE,_ROM_CALL_1FF,
  _ROM_CALL_200,_ROM_CALL_201,_ROM_CALL_202,_ROM_CALL_203,_ROM_CALL_204,_ROM_CALL_205,_ROM_CALL_206,_ROM_CALL_207,_ROM_CALL_208,_ROM_CALL_209,_ROM_CALL_20A,_ROM_CALL_20B,_ROM_CALL_20C,_ROM_CALL_20D,_ROM_CALL_20E,_ROM_CALL_20F,
  _ROM_CALL_210,_ROM_CALL_211,_ROM_CALL_212,_ROM_CALL_213,_ROM_CALL_214,_ROM_CALL_215,_ROM_CALL_216,_ROM_CALL_217,_ROM_CALL_218,_ROM_CALL_219,_ROM_CALL_21A,_ROM_CALL_21B,_ROM_CALL_21C,_ROM_CALL_21D,_ROM_CALL_21E,_ROM_CALL_21F,
  _ROM_CALL_220,_ROM_CALL_221,_ROM_CALL_222,_ROM_CALL_223,_ROM_CALL_224,_ROM_CALL_225,_ROM_CALL_226,_ROM_CALL_227,_ROM_CALL_228,_ROM_CALL_229,_ROM_CALL_22A,_ROM_CALL_22B,_ROM_CALL_22C,_ROM_CALL_22D,_ROM_CALL_22E,_ROM_CALL_22F,
  _ROM_CALL_230,_ROM_CALL_231,_ROM_CALL_232,_ROM_CALL_233,_ROM_CALL_234,_ROM_CALL_235,_ROM_CALL_236,_ROM_CALL_237,_ROM_CALL_238,_ROM_CALL_239,_ROM_CALL_23A,_ROM_CALL_23B,_ROM_CALL_23C,_ROM_CALL_23D,_ROM_CALL_23E,_ROM_CALL_23F,
  _ROM_CALL_240,_ROM_CALL_241,_ROM_CALL_242,_ROM_CALL_243,_ROM_CALL_244,_ROM_CALL_245,_ROM_CALL_246,_ROM_CALL_247,_ROM_CALL_248,_ROM_CALL_249,_ROM_CALL_24A,_ROM_CALL_24B,_ROM_CALL_24C,_ROM_CALL_24D,_ROM_CALL_24E,_ROM_CALL_24F,
  _ROM_CALL_250,_ROM_CALL_251,_ROM_CALL_252,_ROM_CALL_253,_ROM_CALL_254,_ROM_CALL_255,_ROM_CALL_256,_ROM_CALL_257,_ROM_CALL_258,_ROM_CALL_259,_ROM_CALL_25A,_ROM_CALL_25B,_ROM_CALL_25C,_ROM_CALL_25D,_ROM_CALL_25E,_ROM_CALL_25F,
  _ROM_CALL_260,_ROM_CALL_261,_ROM_CALL_262,_ROM_CALL_263,_ROM_CALL_264,_ROM_CALL_265,_ROM_CALL_266,_ROM_CALL_267,_ROM_CALL_268,_ROM_CALL_269,_ROM_CALL_26A,_ROM_CALL_26B,_ROM_CALL_26C,_ROM_CALL_26D,_ROM_CALL_26E,_ROM_CALL_26F,
  _ROM_CALL_270,_ROM_CALL_271,_ROM_CALL_272,_ROM_CALL_273,_ROM_CALL_274,_ROM_CALL_275,_ROM_CALL_276,_ROM_CALL_277,_ROM_CALL_278,_ROM_CALL_279,_ROM_CALL_27A,_ROM_CALL_27B,_ROM_CALL_27C,_ROM_CALL_27D,_ROM_CALL_27E,_ROM_CALL_27F,
  _ROM_CALL_280,_ROM_CALL_281,_ROM_CALL_282,_ROM_CALL_283,_ROM_CALL_284,_ROM_CALL_285,_ROM_CALL_286,_ROM_CALL_287,_ROM_CALL_288,_ROM_CALL_289,_ROM_CALL_28A,_ROM_CALL_28B,_ROM_CALL_28C,_ROM_CALL_28D,_ROM_CALL_28E,_ROM_CALL_28F,
  _ROM_CALL_290,_ROM_CALL_291,_ROM_CALL_292,_ROM_CALL_293,_ROM_CALL_294,_ROM_CALL_295,_ROM_CALL_296,_ROM_CALL_297,_ROM_CALL_298,_ROM_CALL_299,_ROM_CALL_29A,_ROM_CALL_29B,_ROM_CALL_29C,_ROM_CALL_29D,_ROM_CALL_29E,_ROM_CALL_29F,
  _ROM_CALL_2A0,_ROM_CALL_2A1,_ROM_CALL_2A2,_ROM_CALL_2A3,_ROM_CALL_2A4,_ROM_CALL_2A5,_ROM_CALL_2A6,_ROM_CALL_2A7,_ROM_CALL_2A8,_ROM_CALL_2A9,_ROM_CALL_2AA,_ROM_CALL_2AB,_ROM_CALL_2AC,_ROM_CALL_2AD,_ROM_CALL_2AE,_ROM_CALL_2AF,
  _ROM_CALL_2B0,_ROM_CALL_2B1,_ROM_CALL_2B2,_ROM_CALL_2B3,_ROM_CALL_2B4,_ROM_CALL_2B5,_ROM_CALL_2B6,_ROM_CALL_2B7,_ROM_CALL_2B8,_ROM_CALL_2B9,_ROM_CALL_2BA,_ROM_CALL_2BB,_ROM_CALL_2BC,_ROM_CALL_2BD,_ROM_CALL_2BE,_ROM_CALL_2BF,
  _ROM_CALL_2C0,_ROM_CALL_2C1,_ROM_CALL_2C2,_ROM_CALL_2C3,_ROM_CALL_2C4,_ROM_CALL_2C5,_ROM_CALL_2C6,_ROM_CALL_2C7,_ROM_CALL_2C8,_ROM_CALL_2C9,_ROM_CALL_2CA,_ROM_CALL_2CB,_ROM_CALL_2CC,_ROM_CALL_2CD,_ROM_CALL_2CE,_ROM_CALL_2CF,
  _ROM_CALL_2D0,_ROM_CALL_2D1,_ROM_CALL_2D2,_ROM_CALL_2D3,_ROM_CALL_2D4,_ROM_CALL_2D5,_ROM_CALL_2D6,_ROM_CALL_2D7,_ROM_CALL_2D8,_ROM_CALL_2D9,_ROM_CALL_2DA,_ROM_CALL_2DB,_ROM_CALL_2DC,_ROM_CALL_2DD,_ROM_CALL_2DE,_ROM_CALL_2DF,
  _ROM_CALL_2E0,_ROM_CALL_2E1,_ROM_CALL_2E2,_ROM_CALL_2E3,_ROM_CALL_2E4,_ROM_CALL_2E5,_ROM_CALL_2E6,_ROM_CALL_2E7,_ROM_CALL_2E8,_ROM_CALL_2E9,_ROM_CALL_2EA,_ROM_CALL_2EB,_ROM_CALL_2EC,_ROM_CALL_2ED,_ROM_CALL_2EE,_ROM_CALL_2EF,
  _ROM_CALL_2F0,_ROM_CALL_2F1,_ROM_CALL_2F2,_ROM_CALL_2F3,_ROM_CALL_2F4,_ROM_CALL_2F5,_ROM_CALL_2F6,_ROM_CALL_2F7,_ROM_CALL_2F8,_ROM_CALL_2F9,_ROM_CALL_2FA,_ROM_CALL_2FB,_ROM_CALL_2FC,_ROM_CALL_2FD,_ROM_CALL_2FE,_ROM_CALL_2FF,
  _ROM_CALL_300,_ROM_CALL_301,_ROM_CALL_302,_ROM_CALL_303,_ROM_CALL_304,_ROM_CALL_305,_ROM_CALL_306,_ROM_CALL_307,_ROM_CALL_308,_ROM_CALL_309,_ROM_CALL_30A,_ROM_CALL_30B,_ROM_CALL_30C,_ROM_CALL_30D,_ROM_CALL_30E,_ROM_CALL_30F,
  _ROM_CALL_310,_ROM_CALL_311,_ROM_CALL_312,_ROM_CALL_313,_ROM_CALL_314,_ROM_CALL_315,_ROM_CALL_316,_ROM_CALL_317,_ROM_CALL_318,_ROM_CALL_319,_ROM_CALL_31A,_ROM_CALL_31B,_ROM_CALL_31C,_ROM_CALL_31D,_ROM_CALL_31E,_ROM_CALL_31F,
  _ROM_CALL_320,_ROM_CALL_321,_ROM_CALL_322,_ROM_CALL_323,_ROM_CALL_324,_ROM_CALL_325,_ROM_CALL_326,_ROM_CALL_327,_ROM_CALL_328,_ROM_CALL_329,_ROM_CALL_32A,_ROM_CALL_32B,_ROM_CALL_32C,_ROM_CALL_32D,_ROM_CALL_32E,_ROM_CALL_32F,
  _ROM_CALL_330,_ROM_CALL_331,_ROM_CALL_332,_ROM_CALL_333,_ROM_CALL_334,_ROM_CALL_335,_ROM_CALL_336,_ROM_CALL_337,_ROM_CALL_338,_ROM_CALL_339,_ROM_CALL_33A,_ROM_CALL_33B,_ROM_CALL_33C,_ROM_CALL_33D,_ROM_CALL_33E,_ROM_CALL_33F,
  _ROM_CALL_340,_ROM_CALL_341,_ROM_CALL_342,_ROM_CALL_343,_ROM_CALL_344,_ROM_CALL_345,_ROM_CALL_346,_ROM_CALL_347,_ROM_CALL_348,_ROM_CALL_349,_ROM_CALL_34A,_ROM_CALL_34B,_ROM_CALL_34C,_ROM_CALL_34D,_ROM_CALL_34E,_ROM_CALL_34F,
  _ROM_CALL_350,_ROM_CALL_351,_ROM_CALL_352,_ROM_CALL_353,_ROM_CALL_354,_ROM_CALL_355,_ROM_CALL_356,_ROM_CALL_357,_ROM_CALL_358,_ROM_CALL_359,_ROM_CALL_35A,_ROM_CALL_35B,_ROM_CALL_35C,_ROM_CALL_35D,_ROM_CALL_35E,_ROM_CALL_35F,
  _ROM_CALL_360,_ROM_CALL_361,_ROM_CALL_362,_ROM_CALL_363,_ROM_CALL_364,_ROM_CALL_365,_ROM_CALL_366,_ROM_CALL_367,_ROM_CALL_368,_ROM_CALL_369,_ROM_CALL_36A,_ROM_CALL_36B,_ROM_CALL_36C,_ROM_CALL_36D,_ROM_CALL_36E,_ROM_CALL_36F,
  _ROM_CALL_370,_ROM_CALL_371,_ROM_CALL_372,_ROM_CALL_373,_ROM_CALL_374,_ROM_CALL_375,_ROM_CALL_376,_ROM_CALL_377,_ROM_CALL_378,_ROM_CALL_379,_ROM_CALL_37A,_ROM_CALL_37B,_ROM_CALL_37C,_ROM_CALL_37D,_ROM_CALL_37E,_ROM_CALL_37F,
  _ROM_CALL_380,_ROM_CALL_381,_ROM_CALL_382,_ROM_CALL_383,_ROM_CALL_384,_ROM_CALL_385,_ROM_CALL_386,_ROM_CALL_387,_ROM_CALL_388,_ROM_CALL_389,_ROM_CALL_38A,_ROM_CALL_38B,_ROM_CALL_38C,_ROM_CALL_38D,_ROM_CALL_38E,_ROM_CALL_38F,
  _ROM_CALL_390,_ROM_CALL_391,_ROM_CALL_392,_ROM_CALL_393,_ROM_CALL_394,_ROM_CALL_395,_ROM_CALL_396,_ROM_CALL_397,_ROM_CALL_398,_ROM_CALL_399,_ROM_CALL_39A,_ROM_CALL_39B,_ROM_CALL_39C,_ROM_CALL_39D,_ROM_CALL_39E,_ROM_CALL_39F,
  _ROM_CALL_3A0,_ROM_CALL_3A1,_ROM_CALL_3A2,_ROM_CALL_3A3,_ROM_CALL_3A4,_ROM_CALL_3A5,_ROM_CALL_3A6,_ROM_CALL_3A7,_ROM_CALL_3A8,_ROM_CALL_3A9,_ROM_CALL_3AA,_ROM_CALL_3AB,_ROM_CALL_3AC,_ROM_CALL_3AD,_ROM_CALL_3AE,_ROM_CALL_3AF,
  _ROM_CALL_3B0,_ROM_CALL_3B1,_ROM_CALL_3B2,_ROM_CALL_3B3,_ROM_CALL_3B4,_ROM_CALL_3B5,_ROM_CALL_3B6,_ROM_CALL_3B7,_ROM_CALL_3B8,_ROM_CALL_3B9,_ROM_CALL_3BA,_ROM_CALL_3BB,_ROM_CALL_3BC,_ROM_CALL_3BD,_ROM_CALL_3BE,_ROM_CALL_3BF,
  _ROM_CALL_3C0,_ROM_CALL_3C1,_ROM_CALL_3C2,_ROM_CALL_3C3,_ROM_CALL_3C4,_ROM_CALL_3C5,_ROM_CALL_3C6,_ROM_CALL_3C7,_ROM_CALL_3C8,_ROM_CALL_3C9,_ROM_CALL_3CA,_ROM_CALL_3CB,_ROM_CALL_3CC,_ROM_CALL_3CD,_ROM_CALL_3CE,_ROM_CALL_3CF,
  _ROM_CALL_3D0,_ROM_CALL_3D1,_ROM_CALL_3D2,_ROM_CALL_3D3,_ROM_CALL_3D4,_ROM_CALL_3D5,_ROM_CALL_3D6,_ROM_CALL_3D7,_ROM_CALL_3D8,_ROM_CALL_3D9,_ROM_CALL_3DA,_ROM_CALL_3DB,_ROM_CALL_3DC,_ROM_CALL_3DD,_ROM_CALL_3DE,_ROM_CALL_3DF,
  _ROM_CALL_3E0,_ROM_CALL_3E1,_ROM_CALL_3E2,_ROM_CALL_3E3,_ROM_CALL_3E4,_ROM_CALL_3E5,_ROM_CALL_3E6,_ROM_CALL_3E7,_ROM_CALL_3E8,_ROM_CALL_3E9,_ROM_CALL_3EA,_ROM_CALL_3EB,_ROM_CALL_3EC,_ROM_CALL_3ED,_ROM_CALL_3EE,_ROM_CALL_3EF,
  _ROM_CALL_3F0,_ROM_CALL_3F1,_ROM_CALL_3F2,_ROM_CALL_3F3,_ROM_CALL_3F4,_ROM_CALL_3F5,_ROM_CALL_3F6,_ROM_CALL_3F7,_ROM_CALL_3F8,_ROM_CALL_3F9,_ROM_CALL_3FA,_ROM_CALL_3FB,_ROM_CALL_3FC,_ROM_CALL_3FD,_ROM_CALL_3FE,_ROM_CALL_3FF,
  _ROM_CALL_400,_ROM_CALL_401,_ROM_CALL_402,_ROM_CALL_403,_ROM_CALL_404,_ROM_CALL_405,_ROM_CALL_406,_ROM_CALL_407,_ROM_CALL_408,_ROM_CALL_409,_ROM_CALL_40A,_ROM_CALL_40B,_ROM_CALL_40C,_ROM_CALL_40D,_ROM_CALL_40E,_ROM_CALL_40F,
  _ROM_CALL_410,_ROM_CALL_411,_ROM_CALL_412,_ROM_CALL_413,_ROM_CALL_414,_ROM_CALL_415,_ROM_CALL_416,_ROM_CALL_417,_ROM_CALL_418,_ROM_CALL_419,_ROM_CALL_41A,_ROM_CALL_41B,_ROM_CALL_41C,_ROM_CALL_41D,_ROM_CALL_41E,_ROM_CALL_41F,
  _ROM_CALL_420,_ROM_CALL_421,_ROM_CALL_422,_ROM_CALL_423,_ROM_CALL_424,_ROM_CALL_425,_ROM_CALL_426,_ROM_CALL_427,_ROM_CALL_428,_ROM_CALL_429,_ROM_CALL_42A,_ROM_CALL_42B,_ROM_CALL_42C,_ROM_CALL_42D,_ROM_CALL_42E,_ROM_CALL_42F,
  _ROM_CALL_430,_ROM_CALL_431,_ROM_CALL_432,_ROM_CALL_433,_ROM_CALL_434,_ROM_CALL_435,_ROM_CALL_436,_ROM_CALL_437,_ROM_CALL_438,_ROM_CALL_439,_ROM_CALL_43A,_ROM_CALL_43B,_ROM_CALL_43C,_ROM_CALL_43D,_ROM_CALL_43E,_ROM_CALL_43F,
  _ROM_CALL_440,_ROM_CALL_441,_ROM_CALL_442,_ROM_CALL_443,_ROM_CALL_444,_ROM_CALL_445,_ROM_CALL_446,_ROM_CALL_447,_ROM_CALL_448,_ROM_CALL_449,_ROM_CALL_44A,_ROM_CALL_44B,_ROM_CALL_44C,_ROM_CALL_44D,_ROM_CALL_44E,_ROM_CALL_44F,
  _ROM_CALL_450,_ROM_CALL_451,_ROM_CALL_452,_ROM_CALL_453,_ROM_CALL_454,_ROM_CALL_455,_ROM_CALL_456,_ROM_CALL_457,_ROM_CALL_458,_ROM_CALL_459,_ROM_CALL_45A,_ROM_CALL_45B,_ROM_CALL_45C,_ROM_CALL_45D,_ROM_CALL_45E,_ROM_CALL_45F,
  _ROM_CALL_460,_ROM_CALL_461,_ROM_CALL_462,_ROM_CALL_463,_ROM_CALL_464,_ROM_CALL_465,_ROM_CALL_466,_ROM_CALL_467,_ROM_CALL_468,_ROM_CALL_469,_ROM_CALL_46A,_ROM_CALL_46B,_ROM_CALL_46C,_ROM_CALL_46D,_ROM_CALL_46E,_ROM_CALL_46F,
  _ROM_CALL_470,_ROM_CALL_471,_ROM_CALL_472,_ROM_CALL_473,_ROM_CALL_474,_ROM_CALL_475,_ROM_CALL_476,_ROM_CALL_477,_ROM_CALL_478,_ROM_CALL_479,_ROM_CALL_47A,_ROM_CALL_47B,_ROM_CALL_47C,_ROM_CALL_47D,_ROM_CALL_47E,_ROM_CALL_47F,
  _ROM_CALL_480,_ROM_CALL_481,_ROM_CALL_482,_ROM_CALL_483,_ROM_CALL_484,_ROM_CALL_485,_ROM_CALL_486,_ROM_CALL_487,_ROM_CALL_488,_ROM_CALL_489,_ROM_CALL_48A,_ROM_CALL_48B,_ROM_CALL_48C,_ROM_CALL_48D,_ROM_CALL_48E,_ROM_CALL_48F,
  _ROM_CALL_490,_ROM_CALL_491,_ROM_CALL_492,_ROM_CALL_493,_ROM_CALL_494,_ROM_CALL_495,_ROM_CALL_496,_ROM_CALL_497,_ROM_CALL_498,_ROM_CALL_499,_ROM_CALL_49A,_ROM_CALL_49B,_ROM_CALL_49C,_ROM_CALL_49D,_ROM_CALL_49E,_ROM_CALL_49F,
  _ROM_CALL_4A0,_ROM_CALL_4A1,_ROM_CALL_4A2,_ROM_CALL_4A3,_ROM_CALL_4A4,_ROM_CALL_4A5,_ROM_CALL_4A6,_ROM_CALL_4A7,_ROM_CALL_4A8,_ROM_CALL_4A9,_ROM_CALL_4AA,_ROM_CALL_4AB,_ROM_CALL_4AC,_ROM_CALL_4AD,_ROM_CALL_4AE,_ROM_CALL_4AF,
  _ROM_CALL_4B0,_ROM_CALL_4B1,_ROM_CALL_4B2,_ROM_CALL_4B3,_ROM_CALL_4B4,_ROM_CALL_4B5,_ROM_CALL_4B6,_ROM_CALL_4B7,_ROM_CALL_4B8,_ROM_CALL_4B9,_ROM_CALL_4BA,_ROM_CALL_4BB,_ROM_CALL_4BC,_ROM_CALL_4BD,_ROM_CALL_4BE,_ROM_CALL_4BF,
  _ROM_CALL_4C0,_ROM_CALL_4C1,_ROM_CALL_4C2,_ROM_CALL_4C3,_ROM_CALL_4C4,_ROM_CALL_4C5,_ROM_CALL_4C6,_ROM_CALL_4C7,_ROM_CALL_4C8,_ROM_CALL_4C9,_ROM_CALL_4CA,_ROM_CALL_4CB,_ROM_CALL_4CC,_ROM_CALL_4CD,_ROM_CALL_4CE,_ROM_CALL_4CF,
  _ROM_CALL_4D0,_ROM_CALL_4D1,_ROM_CALL_4D2,_ROM_CALL_4D3,_ROM_CALL_4D4,_ROM_CALL_4D5,_ROM_CALL_4D6,_ROM_CALL_4D7,_ROM_CALL_4D8,_ROM_CALL_4D9,_ROM_CALL_4DA,_ROM_CALL_4DB,_ROM_CALL_4DC,_ROM_CALL_4DD,_ROM_CALL_4DE,_ROM_CALL_4DF,
  _ROM_CALL_4E0,_ROM_CALL_4E1,_ROM_CALL_4E2,_ROM_CALL_4E3,_ROM_CALL_4E4,_ROM_CALL_4E5,_ROM_CALL_4E6,_ROM_CALL_4E7,_ROM_CALL_4E8,_ROM_CALL_4E9,_ROM_CALL_4EA,_ROM_CALL_4EB,_ROM_CALL_4EC,_ROM_CALL_4ED,_ROM_CALL_4EE,_ROM_CALL_4EF,
  _ROM_CALL_4F0,_ROM_CALL_4F1,_ROM_CALL_4F2,_ROM_CALL_4F3,_ROM_CALL_4F4,_ROM_CALL_4F5,_ROM_CALL_4F6,_ROM_CALL_4F7,_ROM_CALL_4F8,_ROM_CALL_4F9,_ROM_CALL_4FA,_ROM_CALL_4FB,_ROM_CALL_4FC,_ROM_CALL_4FD,_ROM_CALL_4FE,_ROM_CALL_4FF,
  _ROM_CALL_500,_ROM_CALL_501,_ROM_CALL_502,_ROM_CALL_503,_ROM_CALL_504,_ROM_CALL_505,_ROM_CALL_506,_ROM_CALL_507,_ROM_CALL_508,_ROM_CALL_509,_ROM_CALL_50A,_ROM_CALL_50B,_ROM_CALL_50C,_ROM_CALL_50D,_ROM_CALL_50E,_ROM_CALL_50F,
  _ROM_CALL_510,_ROM_CALL_511,_ROM_CALL_512,_ROM_CALL_513,_ROM_CALL_514,_ROM_CALL_515,_ROM_CALL_516,_ROM_CALL_517,_ROM_CALL_518,_ROM_CALL_519,_ROM_CALL_51A,_ROM_CALL_51B,_ROM_CALL_51C,_ROM_CALL_51D,_ROM_CALL_51E,_ROM_CALL_51F,
  _ROM_CALL_520,_ROM_CALL_521,_ROM_CALL_522,_ROM_CALL_523,_ROM_CALL_524,_ROM_CALL_525,_ROM_CALL_526,_ROM_CALL_527,_ROM_CALL_528,_ROM_CALL_529,_ROM_CALL_52A,_ROM_CALL_52B,_ROM_CALL_52C,_ROM_CALL_52D,_ROM_CALL_52E,_ROM_CALL_52F,
  _ROM_CALL_530,_ROM_CALL_531,_ROM_CALL_532,_ROM_CALL_533,_ROM_CALL_534,_ROM_CALL_535,_ROM_CALL_536,_ROM_CALL_537,_ROM_CALL_538,_ROM_CALL_539,_ROM_CALL_53A,_ROM_CALL_53B,_ROM_CALL_53C,_ROM_CALL_53D,_ROM_CALL_53E,_ROM_CALL_53F,
  _ROM_CALL_540,_ROM_CALL_541,_ROM_CALL_542,_ROM_CALL_543,_ROM_CALL_544,_ROM_CALL_545,_ROM_CALL_546,_ROM_CALL_547,_ROM_CALL_548,_ROM_CALL_549,_ROM_CALL_54A,_ROM_CALL_54B,_ROM_CALL_54C,_ROM_CALL_54D,_ROM_CALL_54E,_ROM_CALL_54F,
  _ROM_CALL_550,_ROM_CALL_551,_ROM_CALL_552,_ROM_CALL_553,_ROM_CALL_554,_ROM_CALL_555,_ROM_CALL_556,_ROM_CALL_557,_ROM_CALL_558,_ROM_CALL_559,_ROM_CALL_55A,_ROM_CALL_55B,_ROM_CALL_55C,_ROM_CALL_55D,_ROM_CALL_55E,_ROM_CALL_55F,
  _ROM_CALL_560,_ROM_CALL_561,_ROM_CALL_562,_ROM_CALL_563,_ROM_CALL_564,_ROM_CALL_565,_ROM_CALL_566,_ROM_CALL_567,_ROM_CALL_568,_ROM_CALL_569,_ROM_CALL_56A,_ROM_CALL_56B,_ROM_CALL_56C,_ROM_CALL_56D,_ROM_CALL_56E,_ROM_CALL_56F,
  _ROM_CALL_570,_ROM_CALL_571,_ROM_CALL_572,_ROM_CALL_573,_ROM_CALL_574,_ROM_CALL_575,_ROM_CALL_576,_ROM_CALL_577,_ROM_CALL_578,_ROM_CALL_579,_ROM_CALL_57A,_ROM_CALL_57B,_ROM_CALL_57C,_ROM_CALL_57D,_ROM_CALL_57E,_ROM_CALL_57F,
  _ROM_CALL_580,_ROM_CALL_581,_ROM_CALL_582,_ROM_CALL_583,_ROM_CALL_584,_ROM_CALL_585,_ROM_CALL_586,_ROM_CALL_587,_ROM_CALL_588,_ROM_CALL_589,_ROM_CALL_58A,_ROM_CALL_58B,_ROM_CALL_58C,_ROM_CALL_58D,_ROM_CALL_58E,_ROM_CALL_58F,
  _ROM_CALL_590,_ROM_CALL_591,_ROM_CALL_592,_ROM_CALL_593,_ROM_CALL_594,_ROM_CALL_595,_ROM_CALL_596,_ROM_CALL_597,_ROM_CALL_598,_ROM_CALL_599,_ROM_CALL_59A,_ROM_CALL_59B,_ROM_CALL_59C,_ROM_CALL_59D,_ROM_CALL_59E,_ROM_CALL_59F,
  _ROM_CALL_5A0,_ROM_CALL_5A1,_ROM_CALL_5A2,_ROM_CALL_5A3,_ROM_CALL_5A4,_ROM_CALL_5A5,_ROM_CALL_5A6,_ROM_CALL_5A7,_ROM_CALL_5A8,_ROM_CALL_5A9,_ROM_CALL_5AA,_ROM_CALL_5AB,_ROM_CALL_5AC,_ROM_CALL_5AD,_ROM_CALL_5AE,_ROM_CALL_5AF,
  _ROM_CALL_5B0,_ROM_CALL_5B1,_ROM_CALL_5B2,_ROM_CALL_5B3,_ROM_CALL_5B4,_ROM_CALL_5B5,_ROM_CALL_5B6,_ROM_CALL_5B7,_ROM_CALL_5B8,_ROM_CALL_5B9,_ROM_CALL_5BA,_ROM_CALL_5BB,_ROM_CALL_5BC,_ROM_CALL_5BD,_ROM_CALL_5BE,_ROM_CALL_5BF,
  _ROM_CALL_5C0,_ROM_CALL_5C1,_ROM_CALL_5C2,_ROM_CALL_5C3,_ROM_CALL_5C4,_ROM_CALL_5C5,_ROM_CALL_5C6,_ROM_CALL_5C7,_ROM_CALL_5C8,_ROM_CALL_5C9,_ROM_CALL_5CA,_ROM_CALL_5CB,_ROM_CALL_5CC,_ROM_CALL_5CD,_ROM_CALL_5CE,_ROM_CALL_5CF,
  _ROM_CALL_5D0,_ROM_CALL_5D1,_ROM_CALL_5D2,_ROM_CALL_5D3,_ROM_CALL_5D4,_ROM_CALL_5D5,_ROM_CALL_5D6,_ROM_CALL_5D7,_ROM_CALL_5D8,_ROM_CALL_5D9,_ROM_CALL_5DA,_ROM_CALL_5DB,_ROM_CALL_5DC,_ROM_CALL_5DD,_ROM_CALL_5DE,_ROM_CALL_5DF,
  _ROM_CALL_5E0,_ROM_CALL_5E1,_ROM_CALL_5E2,_ROM_CALL_5E3,_ROM_CALL_5E4,_ROM_CALL_5E5,_ROM_CALL_5E6,_ROM_CALL_5E7,_ROM_CALL_5E8,_ROM_CALL_5E9,_ROM_CALL_5EA,_ROM_CALL_5EB,_ROM_CALL_5EC,_ROM_CALL_5ED,_ROM_CALL_5EE,_ROM_CALL_5EF,
  _ROM_CALL_5F0,_ROM_CALL_5F1,_ROM_CALL_5F2,_ROM_CALL_5F3,_ROM_CALL_5F4,_ROM_CALL_5F5,_ROM_CALL_5F6,_ROM_CALL_5F7,_ROM_CALL_5F8,_ROM_CALL_5F9,_ROM_CALL_5FA,_ROM_CALL_5FB,_ROM_CALL_5FC,_ROM_CALL_5FD,_ROM_CALL_5FE,_ROM_CALL_5FF,
  _ROM_CALL_600,_ROM_CALL_601,_ROM_CALL_602,_ROM_CALL_603,_ROM_CALL_604,_ROM_CALL_605,_ROM_CALL_606,_ROM_CALL_607,_ROM_CALL_608,_ROM_CALL_609,_ROM_CALL_60A,_ROM_CALL_60B,_ROM_CALL_60C,_ROM_CALL_60D,_ROM_CALL_60E,_ROM_CALL_60F,
  _ROM_CALL_610,_ROM_CALL_611,_ROM_CALL_612,_ROM_CALL_613,_ROM_CALL_614,_ROM_CALL_615,_ROM_CALL_616,_ROM_CALL_617,_ROM_CALL_618,_ROM_CALL_619,_ROM_CALL_61A,_ROM_CALL_61B,_ROM_CALL_61C,_ROM_CALL_61D,_ROM_CALL_61E,_ROM_CALL_61F,
  _ROM_CALL_620,_ROM_CALL_621,_ROM_CALL_622,_ROM_CALL_623,_ROM_CALL_624,_ROM_CALL_625,_ROM_CALL_626,_ROM_CALL_627,_ROM_CALL_628,_ROM_CALL_629,_ROM_CALL_62A,_ROM_CALL_62B,_ROM_CALL_62C,_ROM_CALL_62D,_ROM_CALL_62E,_ROM_CALL_62F,
  _ROM_CALL_630,_ROM_CALL_631,_ROM_CALL_632,_ROM_CALL_633,_ROM_CALL_634,_ROM_CALL_635,_ROM_CALL_636,_ROM_CALL_637,_ROM_CALL_638,_ROM_CALL_639,_ROM_CALL_63A,_ROM_CALL_63B,_ROM_CALL_63C,_ROM_CALL_63D,_ROM_CALL_63E,_ROM_CALL_63F,
  _ROM_CALL_640,_ROM_CALL_641,_ROM_CALL_642,_ROM_CALL_643,_ROM_CALL_644,_ROM_CALL_645,_ROM_CALL_646,_ROM_CALL_647,_ROM_CALL_648,_ROM_CALL_649,_ROM_CALL_64A,_ROM_CALL_64B,_ROM_CALL_64C,_ROM_CALL_64D,_ROM_CALL_64E,_ROM_CALL_64F,
  _ROM_CALL_650,_ROM_CALL_651,_ROM_CALL_652,_ROM_CALL_653,_ROM_CALL_654,_ROM_CALL_655,_ROM_CALL_656,_ROM_CALL_657,_ROM_CALL_658,_ROM_CALL_659,_ROM_CALL_65A,_ROM_CALL_65B,_ROM_CALL_65C,_ROM_CALL_65D,_ROM_CALL_65E,_ROM_CALL_65F,
  _ROM_CALL_660,_ROM_CALL_661,_ROM_CALL_662,_ROM_CALL_663,_ROM_CALL_664,_ROM_CALL_665,_ROM_CALL_666,_ROM_CALL_667,_ROM_CALL_668,_ROM_CALL_669,_ROM_CALL_66A,_ROM_CALL_66B,_ROM_CALL_66C,_ROM_CALL_66D,_ROM_CALL_66E,_ROM_CALL_66F,
  _ROM_CALL_670,_ROM_CALL_671,_ROM_CALL_672,_ROM_CALL_673,_ROM_CALL_674,_ROM_CALL_675,_ROM_CALL_676,_ROM_CALL_677,_ROM_CALL_678,_ROM_CALL_679,_ROM_CALL_67A,_ROM_CALL_67B,_ROM_CALL_67C,_ROM_CALL_67D,_ROM_CALL_67E,_ROM_CALL_67F,
  _ROM_CALL_680,_ROM_CALL_681,_ROM_CALL_682,_ROM_CALL_683,_ROM_CALL_684,_ROM_CALL_685,_ROM_CALL_686,_ROM_CALL_687,_ROM_CALL_688,_ROM_CALL_689,_ROM_CALL_68A,_ROM_CALL_68B,_ROM_CALL_68C,_ROM_CALL_68D,_ROM_CALL_68E,_ROM_CALL_68F,
  _ROM_CALL_690,_ROM_CALL_691,_ROM_CALL_692,_ROM_CALL_693,_ROM_CALL_694,_ROM_CALL_695,_ROM_CALL_696,_ROM_CALL_697,_ROM_CALL_698,_ROM_CALL_699,_ROM_CALL_69A,_ROM_CALL_69B,_ROM_CALL_69C,_ROM_CALL_69D,_ROM_CALL_69E,_ROM_CALL_69F,
  _ROM_CALL_6A0,_ROM_CALL_6A1,_ROM_CALL_6A2,_ROM_CALL_6A3,_ROM_CALL_6A4,_ROM_CALL_6A5,_ROM_CALL_6A6,_ROM_CALL_6A7,_ROM_CALL_6A8,_ROM_CALL_6A9,_ROM_CALL_6AA,_ROM_CALL_6AB,_ROM_CALL_6AC,_ROM_CALL_6AD,_ROM_CALL_6AE,_ROM_CALL_6AF,
  _ROM_CALL_6B0,_ROM_CALL_6B1,_ROM_CALL_6B2,_ROM_CALL_6B3,_ROM_CALL_6B4,_ROM_CALL_6B5,_ROM_CALL_6B6,_ROM_CALL_6B7,_ROM_CALL_6B8,_ROM_CALL_6B9,_ROM_CALL_6BA,_ROM_CALL_6BB,_ROM_CALL_6BC,_ROM_CALL_6BD,_ROM_CALL_6BE,_ROM_CALL_6BF,
  _ROM_CALL_6C0,_ROM_CALL_6C1,_ROM_CALL_6C2,_ROM_CALL_6C3,_ROM_CALL_6C4,_ROM_CALL_6C5,_ROM_CALL_6C6,_ROM_CALL_6C7,_ROM_CALL_6C8,_ROM_CALL_6C9,_ROM_CALL_6CA,_ROM_CALL_6CB,_ROM_CALL_6CC,_ROM_CALL_6CD,_ROM_CALL_6CE,_ROM_CALL_6CF,
  _ROM_CALL_6D0,_ROM_CALL_6D1,_ROM_CALL_6D2,_ROM_CALL_6D3,_ROM_CALL_6D4,_ROM_CALL_6D5,_ROM_CALL_6D6,_ROM_CALL_6D7,_ROM_CALL_6D8,_ROM_CALL_6D9,_ROM_CALL_6DA,_ROM_CALL_6DB,_ROM_CALL_6DC,_ROM_CALL_6DD,_ROM_CALL_6DE,_ROM_CALL_6DF,
  _ROM_CALL_6E0,_ROM_CALL_6E1,_ROM_CALL_6E2,_ROM_CALL_6E3,_ROM_CALL_6E4,_ROM_CALL_6E5,_ROM_CALL_6E6,_ROM_CALL_6E7,_ROM_CALL_6E8,_ROM_CALL_6E9,_ROM_CALL_6EA,_ROM_CALL_6EB,_ROM_CALL_6EC,_ROM_CALL_6ED,_ROM_CALL_6EE,_ROM_CALL_6EF,
  _ROM_CALL_6F0,_ROM_CALL_6F1,_ROM_CALL_6F2,_ROM_CALL_6F3,_ROM_CALL_6F4,_ROM_CALL_6F5,_ROM_CALL_6F6,_ROM_CALL_6F7,_ROM_CALL_6F8,_ROM_CALL_6F9,_ROM_CALL_6FA,_ROM_CALL_6FB,_ROM_CALL_6FC,_ROM_CALL_6FD,_ROM_CALL_6FE,_ROM_CALL_6FF,
  _ROM_CALL_700,_ROM_CALL_701,_ROM_CALL_702,_ROM_CALL_703,_ROM_CALL_704,_ROM_CALL_705,_ROM_CALL_706,_ROM_CALL_707,_ROM_CALL_708,_ROM_CALL_709,_ROM_CALL_70A,_ROM_CALL_70B,_ROM_CALL_70C,_ROM_CALL_70D,_ROM_CALL_70E,_ROM_CALL_70F,
  _ROM_CALL_710,_ROM_CALL_711,_ROM_CALL_712,_ROM_CALL_713,_ROM_CALL_714,_ROM_CALL_715,_ROM_CALL_716,_ROM_CALL_717,_ROM_CALL_718,_ROM_CALL_719,_ROM_CALL_71A,_ROM_CALL_71B,_ROM_CALL_71C,_ROM_CALL_71D,_ROM_CALL_71E,_ROM_CALL_71F,
  _ROM_CALL_720,_ROM_CALL_721,_ROM_CALL_722,_ROM_CALL_723,_ROM_CALL_724,_ROM_CALL_725,_ROM_CALL_726,_ROM_CALL_727,_ROM_CALL_728,_ROM_CALL_729,_ROM_CALL_72A,_ROM_CALL_72B,_ROM_CALL_72C,_ROM_CALL_72D,_ROM_CALL_72E,_ROM_CALL_72F,
  _ROM_CALL_730,_ROM_CALL_731,_ROM_CALL_732,_ROM_CALL_733,_ROM_CALL_734,_ROM_CALL_735,_ROM_CALL_736,_ROM_CALL_737,_ROM_CALL_738,_ROM_CALL_739,_ROM_CALL_73A,_ROM_CALL_73B,_ROM_CALL_73C,_ROM_CALL_73D,_ROM_CALL_73E,_ROM_CALL_73F,
  _ROM_CALL_740,_ROM_CALL_741,_ROM_CALL_742,_ROM_CALL_743,_ROM_CALL_744,_ROM_CALL_745,_ROM_CALL_746,_ROM_CALL_747,_ROM_CALL_748,_ROM_CALL_749,_ROM_CALL_74A,_ROM_CALL_74B,_ROM_CALL_74C,_ROM_CALL_74D,_ROM_CALL_74E,_ROM_CALL_74F,
  _ROM_CALL_750,_ROM_CALL_751,_ROM_CALL_752,_ROM_CALL_753,_ROM_CALL_754,_ROM_CALL_755,_ROM_CALL_756,_ROM_CALL_757,_ROM_CALL_758,_ROM_CALL_759,_ROM_CALL_75A,_ROM_CALL_75B,_ROM_CALL_75C,_ROM_CALL_75D,_ROM_CALL_75E,_ROM_CALL_75F,
  _ROM_CALL_760,_ROM_CALL_761,_ROM_CALL_762,_ROM_CALL_763,_ROM_CALL_764,_ROM_CALL_765,_ROM_CALL_766,_ROM_CALL_767,_ROM_CALL_768,_ROM_CALL_769,_ROM_CALL_76A,_ROM_CALL_76B,_ROM_CALL_76C,_ROM_CALL_76D,_ROM_CALL_76E,_ROM_CALL_76F,
  _ROM_CALL_770,_ROM_CALL_771,_ROM_CALL_772,_ROM_CALL_773,_ROM_CALL_774,_ROM_CALL_775,_ROM_CALL_776,_ROM_CALL_777,_ROM_CALL_778,_ROM_CALL_779,_ROM_CALL_77A,_ROM_CALL_77B,_ROM_CALL_77C,_ROM_CALL_77D,_ROM_CALL_77E,_ROM_CALL_77F,
  _ROM_CALL_780,_ROM_CALL_781,_ROM_CALL_782,_ROM_CALL_783,_ROM_CALL_784,_ROM_CALL_785,_ROM_CALL_786,_ROM_CALL_787,_ROM_CALL_788,_ROM_CALL_789,_ROM_CALL_78A,_ROM_CALL_78B,_ROM_CALL_78C,_ROM_CALL_78D,_ROM_CALL_78E,_ROM_CALL_78F,
  _ROM_CALL_790,_ROM_CALL_791,_ROM_CALL_792,_ROM_CALL_793,_ROM_CALL_794,_ROM_CALL_795,_ROM_CALL_796,_ROM_CALL_797,_ROM_CALL_798,_ROM_CALL_799,_ROM_CALL_79A,_ROM_CALL_79B,_ROM_CALL_79C,_ROM_CALL_79D,_ROM_CALL_79E,_ROM_CALL_79F,
  _ROM_CALL_7A0,_ROM_CALL_7A1,_ROM_CALL_7A2,_ROM_CALL_7A3,_ROM_CALL_7A4,_ROM_CALL_7A5,_ROM_CALL_7A6,_ROM_CALL_7A7,_ROM_CALL_7A8,_ROM_CALL_7A9,_ROM_CALL_7AA,_ROM_CALL_7AB,_ROM_CALL_7AC,_ROM_CALL_7AD,_ROM_CALL_7AE,_ROM_CALL_7AF,
  _ROM_CALL_7B0,_ROM_CALL_7B1,_ROM_CALL_7B2,_ROM_CALL_7B3,_ROM_CALL_7B4,_ROM_CALL_7B5,_ROM_CALL_7B6,_ROM_CALL_7B7,_ROM_CALL_7B8,_ROM_CALL_7B9,_ROM_CALL_7BA,_ROM_CALL_7BB,_ROM_CALL_7BC,_ROM_CALL_7BD,_ROM_CALL_7BE,_ROM_CALL_7BF,
  _ROM_CALL_7C0,_ROM_CALL_7C1,_ROM_CALL_7C2,_ROM_CALL_7C3,_ROM_CALL_7C4,_ROM_CALL_7C5,_ROM_CALL_7C6,_ROM_CALL_7C7,_ROM_CALL_7C8,_ROM_CALL_7C9,_ROM_CALL_7CA,_ROM_CALL_7CB,_ROM_CALL_7CC,_ROM_CALL_7CD,_ROM_CALL_7CE,_ROM_CALL_7CF,
  _ROM_CALL_7D0,_ROM_CALL_7D1,_ROM_CALL_7D2,_ROM_CALL_7D3,_ROM_CALL_7D4,_ROM_CALL_7D5,_ROM_CALL_7D6,_ROM_CALL_7D7,_ROM_CALL_7D8,_ROM_CALL_7D9,_ROM_CALL_7DA,_ROM_CALL_7DB,_ROM_CALL_7DC,_ROM_CALL_7DD,_ROM_CALL_7DE,_ROM_CALL_7DF,
  _ROM_CALL_7E0,_ROM_CALL_7E1,_ROM_CALL_7E2,_ROM_CALL_7E3,_ROM_CALL_7E4,_ROM_CALL_7E5,_ROM_CALL_7E6,_ROM_CALL_7E7,_ROM_CALL_7E8,_ROM_CALL_7E9,_ROM_CALL_7EA,_ROM_CALL_7EB,_ROM_CALL_7EC,_ROM_CALL_7ED,_ROM_CALL_7EE,_ROM_CALL_7EF,
  _ROM_CALL_7F0,_ROM_CALL_7F1,_ROM_CALL_7F2,_ROM_CALL_7F3,_ROM_CALL_7F4,_ROM_CALL_7F5,_ROM_CALL_7F6,_ROM_CALL_7F7,_ROM_CALL_7F8,_ROM_CALL_7F9,_ROM_CALL_7FA,_ROM_CALL_7FB,_ROM_CALL_7FC,_ROM_CALL_7FD,_ROM_CALL_7FE,_ROM_CALL_7FF;

#define _rom_call(type,args,index) (_rom_call_concat(type,args,0x##index,_ROM_CALL_##index))
#define _rom_call_addr(index) (_rom_call_addr_concat(0x##index,_ROM_CALL_##index))
#define _rom_call_addr_concat(intindex,romindex) (&romindex)
#define __rom_call_addr_concat(intindex,romindex) (&romindex)
#define _rom_call_attr(type,args,attr,index) (*({typedef __ATTR_TIOS__ attr type(*__temp__type__)args;(__temp__type__)(__rom_call_addr_concat(0x##index,_ROM_CALL_##index));}))
#define _rom_call_attr(type,args,attr,index) (*({typedef __ATTR_TIOS__ attr type(*__temp__type__)args;(__temp__type__)(__rom_call_addr_concat(0x##index,_ROM_CALL_##index));}))
#define _rom_call_concat(type,args,intindex,romindex) (*((type(*__ATTR_TIOS__)args)(__rom_call_addr_concat(intindex,romindex))))
#define import_binary(filename,symname) asm(".globl "#symname"\n"#symname":\n\t.incbin \""filename"\"")

/* Kernel RAM_CALLS */
extern void
	_RAM_CALL_0,_RAM_CALL_1,_RAM_CALL_2,_RAM_CALL_3,
	_RAM_CALL_4,_RAM_CALL_5,_RAM_CALL_6,_RAM_CALL_7,
	_RAM_CALL_8,_RAM_CALL_9,_RAM_CALL_A,_RAM_CALL_B,
	_RAM_CALL_C,_RAM_CALL_D,_RAM_CALL_E,_RAM_CALL_F,
	_RAM_CALL_10,_RAM_CALL_11,_RAM_CALL_12,_RAM_CALL_13,
	_RAM_CALL_14,_RAM_CALL_21,_RAM_CALL_22,_RAM_CALL_23,
	_RAM_CALL_24,_RAM_CALL_25,_RAM_CALL_26,_RAM_CALL_27,
	_RAM_CALL_28,_RAM_CALL_2D,_RAM_CALL_2E;
#define __RAM_CALL(n,type) ((type)&_RAM_CALL_##n)

/* Define Kernel values -- pass 2 */
#define __CALCULATOR    __RAM_CALL(0, const unsigned char*)
#define CALCULATOR	(__CALCULATOR[0])
#define HW_VERSION	(__CALCULATOR[1])
#define EMULATOR	(__CALCULATOR[3])
#define font_medium	__RAM_CALL(E, const void*)
#define font_small	__RAM_CALL(22, const void*)
#define font_large	__RAM_CALL(23, const void *)
#define	LCD_MEM		__RAM_CALL(21, void*)
#define LCD_WIDTH	__RAM_CALL (1, unsigned long)
#define LCD_HEIGHT	__RAM_CALL (2, unsigned long)
#define LCD_LINE_BYTES	__RAM_CALL (4, unsigned long)
#define LCD_SIZE	__RAM_CALL (C, unsigned long)
#define	ROM_BASE	__RAM_CALL(3, unsigned char *)
#define	RETURN_VALUE	(*(unsigned char **)_RAM_CALL_F = *(unsigned char **)_ROM_CALL_109)
#define Heap		__RAM_CALL(11, void***)
#define FOLDER_LIST_HANDLE __RAM_CALL (12, unsigned long)
#define MainHandle	__RAM_CALL (13, unsigned long)
#define ROM_VERSION	__RAM_CALL (14, unsigned long)
#define kb_globals	__RAM_CALL(10, void*)
#define KEY_PRESSED_FLAG (*(unsigned short*)(kb_globals+0x1C))
#define GETKEY_CODE	(*(unsigned short*)(kb_globals+0x1E))
#define KEY_LEFT	__RAM_CALL(5, unsigned long)
#define KEY_RIGHT	__RAM_CALL(6, unsigned long)
#define KEY_UP		__RAM_CALL(7, unsigned long)
#define KEY_DOWN	__RAM_CALL(8, unsigned long)
#define KEY_UPRIGHT	__RAM_CALL(9, unsigned long)
#define KEY_DOWNLEFT	__RAM_CALL(A, unsigned long)
#define KEY_DIAMOND	__RAM_CALL(B, unsigned long)
#define KEY_SHIFT	__RAM_CALL(D, unsigned long)
#define	ROM_BASE	__RAM_CALL(3, unsigned char *)
#define	GHOST_SPACE	__RAM_CALL(2D, unsigned char *)
#define	KERNEL_SPACE	__RAM_CALL(2E, unsigned char *)

typedef unsigned short *__pushort;	  
typedef short *__pshort;
typedef long *__plong;
typedef unsigned long *__pulong;

/* Define commun struct */
typedef unsigned char	ESQ;
typedef const ESQ	*CESI;
typedef ESQ		*ESI;
typedef struct{unsigned short Size;ESQ Expr[];}MULTI_EXPR;
typedef CESI 		SYM_STR;
typedef	unsigned short	HANDLE;
typedef struct{HANDLE folder;unsigned short offset;}HSym;
typedef struct{char name[8];unsigned short compat;union{unsigned short flags_n;struct{unsigned int busy:1,local:1,flag1_5:1,flag1_4:1,collapsed:1,twin:1,archived:1,in_view:1;unsigned int folder:1,overwritten:1,checked:1,hidden:1,locked:1,statvar:1,graph_ref_1:1,graph_ref_0:1;}bits;}flags;HANDLE handle;}SYM_ENTRY;
typedef unsigned long 	size_t;
typedef struct{unsigned short exponent;unsigned long long mantissa;}bcd __attribute__((__may_alias__));
typedef float ti_float;
typedef struct{unsigned short Field;unsigned short HdrLen;unsigned long Len;void*Data;}CERT_FIELD;
typedef struct{void*Start,*Pos,*End;short EOFVal;}CFILE;
typedef union{struct{unsigned char x0,y0,x1,y1;}xy;unsigned long l;}SCR_RECT;
typedef struct{short x0,y0,x1,y1;}WIN_RECT;
typedef struct{void*ScrAddr;unsigned char XMax,YMax;short CurFont,CurAttr,CurX,CurY;SCR_RECT CurClip;}SCR_STATE;
typedef struct WindowStruct{unsigned short Flags;unsigned char CurFont;unsigned char CurAttr;unsigned char Background;short TaskId;short CurX,CurY;short CursorX,CursorY;SCR_RECT Client;SCR_RECT Window;SCR_RECT Clip;SCR_RECT Port;unsigned short DupScr;struct WindowStruct*Next;char*Title;SCR_STATE savedScrState;unsigned char Reserved[16];}WINDOW;
typedef CALLBACK short(*DialogNew_t)(short x,long y);
typedef CALLBACK unsigned short(*CESI_Callback_t)(CESI);
typedef CALLBACK unsigned short(*ESI_Callback_Int_t)(ESI,unsigned short);
typedef CALLBACK void(*ESI_Callback_t)(ESI);
typedef struct ErrorFrameStruct{unsigned long A2,A3,A4,A5,A6,A7;unsigned long D3,D4,D5,D6,D7;unsigned long NG_control;char*RetIndex;unsigned long PC;struct ErrorFrameStruct*Link;}ERROR_FRAME[1];
typedef struct EventStruct{unsigned short Type;unsigned short RunningApp;unsigned short Side;unsigned short StatusFlags;union{WINDOW*w;WIN_RECT*r;char*pasteText;HANDLE hPasteText;struct{unsigned short Mod;unsigned short Code;}Key;}extra;unsigned char StartType;}EVENT;
typedef void(*EVENT_HANDLER)(EVENT*)CALLBACK;
typedef struct{unsigned short CurrentFolder;unsigned short SplitScreen;unsigned short NumGraphs;unsigned short Graph1;unsigned short Graph2;unsigned short Split1App;unsigned short Split2App;unsigned short SplitRatio;unsigned short Angle;unsigned short ExactApprox;unsigned short Fix;unsigned short Exp;unsigned short Vector;unsigned short Complex;unsigned short Pretty;unsigned short Base;unsigned short UnitSystem;unsigned short CustomUnits;}MO_OPTIONS;
typedef struct{unsigned short len;unsigned long hardwareID;unsigned long hardwareRevision;unsigned long bootMajor;unsigned long bootRevision;unsigned long bootBuild;unsigned long gateArray;unsigned long physDisplayBitsWide;unsigned long physDisplayBitsTall;unsigned long LCDBitsWide;unsigned long LCDBitsTall;}HARDWARE_PARM_BLOCK;
typedef unsigned char SCR_COORDS;
typedef short WIN_COORDS;
typedef struct{unsigned short NumRows,NumCols;unsigned char Data[];}BITMAP;
typedef struct{unsigned short i[16];}ICON;
typedef struct{unsigned char Count;struct{unsigned char Attr,x0,y0,x1,y1;}Data[];}MULTI_LINE;
typedef unsigned short*pICON;
typedef void(*__HS_pushEmptyFIFONode__type__)(short)__ATTR_TIOS__;
typedef struct{short ScreenLeft;long ScreenBottom;long XStart;unsigned short Width;unsigned short Height;short Top;HANDLE Expr;short TooLong;short PrettyPrint;unsigned short Exp;unsigned short Fix;}FIFO_ELEMENT;
typedef struct{FIFO_ELEMENT Entry;FIFO_ELEMENT Ans;HANDLE Prev;HANDLE Next;}FIFO_NODE;
typedef struct __attribute__((__may_alias__)){short foo;}_DEREF_INT_HANDLER,*INT_HANDLER;
typedef struct{unsigned short hVar;union{const void*pVar;struct{unsigned short FindFlags;unsigned short NameSym;}DirVars;}extra;const char*VarName;unsigned short VarSize;unsigned short Index;unsigned short Unknown;unsigned char VarType;unsigned char VarCompat;}LIO_CTX;
typedef struct{unsigned char Len;unsigned char Data[];}BN;
typedef struct{unsigned long state[4];unsigned long count[2];unsigned char buffer[64];}MD5_CTX;
typedef struct{unsigned long D2,D3,D4,D5,D6,D7;unsigned long A2,A3,A4,A5,A6,A7;unsigned long PC;}JMP_BUF[1];
typedef struct{WINDOW*w;WIN_RECT rect;long value;long low,high;long logwidth;short physwidth;}ST_PROGRESS_BAR;
typedef void*va_list;
typedef struct{char*fpos;void*base;unsigned short handle;short flags;short unget;unsigned long alloc;unsigned short buffincrement;}FILE;
typedef unsigned long fpos_t;
typedef CALLBACK void(*vcbprintf_Callback_t)(char c,void**param);
typedef CALLBACK short(*vcbscanf_get_Callback_t)(void*param);
typedef CALLBACK short(*vcbscanf_unget_Callback_t)(void*param);
typedef void(*__vcbprintf__type__)(vcbprintf_Callback_t,void**,const char*,void*)__ATTR_TIOS__;
typedef struct {char *buffer; unsigned short pos;} __sscanf_string;
typedef CALLBACK void(*atexit_t)(void);
typedef CALLBACK short(*compare_t)(const void*elem1,const void*elem2);
typedef struct{short quot,rem;}div_t;
typedef struct{long quot,rem;}ldiv_t;
typedef struct{unsigned short Head;unsigned short Tail;unsigned short Size;unsigned short Used;unsigned short Buffer[];}DEF_QUEUE;
typedef CALLBACK void(*Timer_Callback_t)(void);
typedef struct{unsigned short len;unsigned char releaseVersionMajor;unsigned char releaseVersionMinor;unsigned short releaseDateYear;unsigned char releaseDateMonth;unsigned char releaseDateDay;}BASECODE_PARM_BLOCK;
typedef struct TextEditStruct{WINDOW*Parent;unsigned short ReadOnly;WIN_RECT Rect;unsigned short BufSize;unsigned short CurSize;unsigned short CursorOffset;unsigned short StartOffset;unsigned short PreChars;unsigned short CharWidth;unsigned short CharHeight;unsigned short LineNum;unsigned short CursorX;unsigned short Flags;union{HANDLE h;const char*p;}Text;}TEXT_EDIT;

/* Define commun flags */
enum Bool{FALSE,TRUE};
enum CompatFlags{CF_NONE=0,CF_CONVERT=1,CF_ENHANCED=2,CF_NEW=3};
enum ExtendedSysTypes {SEQ_INITC=7,DE_INITC=8,DE_FLDPIC=9,SOLVER_SYS_VARS=10,UNIT_VAR=11,C_COL=12,R_REGEQ=13,R_SYSVAR=14};
enum FindOptions {FO_SINGLE_FOLDER=0x01,FO_RECURSE=0x02,FO_SKIP_TEMPS=0x04,FO_NOTEMPS=0x04,FO_RETURN_TWINS=0x08,FO_CKTWINS=0x08,FO_RETURN_FOLDER=0x10,FO_SKIP_COLLAPSE=0x20};
enum FolderOpFlags{FOP_UNLOCK=0,FOP_LOCK=1,FOP_ALL_FOLDERS=0x80};
enum FolderStats{MAIN_FOLDER=2,FOLDER_TABLE=3,NOT_FOUND=4,BAD_FOLDER=5};
enum SymFlags {SF_GREF1=0x0001,SF_GREF2=0x0002,SF_STATVAR=0x0004,SF_LOCKED=0x0008,SF_HIDDEN=0x0010,SF_OPEN=0x0010,SF_CHECKED=0x0020,SF_OVERWRITTEN=0x0040,SF_FOLDER=0x0080,SF_INVIEW=0x0100,SF_ARCHIVED=0x0200,SF_TWIN=0x0400,SF_COLLAPSED=0x0800,SF_LOCAL=0x4000,SF_BUSY=0x8000};
enum SystemDataTypes {SDT_EXPR=0,SDT_LIST=1,SDT_MAT=2,SDT_FUNC=3,SDT_PRGM=4,SDT_PIC=5,SDT_STR=6,SDT_TEXT=7,SDT_GDB=8,SDT_DATA=9,SDT_FIG=10,SDT_MAC=11,SDT_OTH=12,SDT_SYS=13,SDT_ALL=14,SDT_ASM=15};
enum VarRecallFlags{VR_NO_SYS_VARS=0x01,VR_FUNC_NAME=0x02,VR_LINK=0x04};
enum VarStoreFlags{STOF_ESI=0x4000,STOF_ELEMENT=0x4001,STOF_NONE=0x4002,STOF_HESI=0x4003};
enum Tags {VAR_NAME_TAG=0x00,_VAR_Q_TAG=0x01,VAR_R_TAG=0x02,VAR_S_TAG=0x03,VAR_T_TAG=0x04,VAR_U_TAG=0x05,VAR_V_TAG=0x06,VAR_W_TAG=0x07,VAR_X_TAG=0x08,VAR_Y_TAG=0x09,VAR_Z_TAG=0x0A,VAR_A_TAG=0x0B,VAR_B_TAG=0x0C,VAR_C_TAG=0x0D,VAR_D_TAG=0x0E,VAR_E_TAG=0x0F,VAR_F_TAG=0x10,VAR_G_TAG=0x11,VAR_H_TAG=0x12,VAR_I_TAG=0x13,VAR_J_TAG=0x14,VAR_K_TAG=0x15,VAR_L_TAG=0x16,VAR_M_TAG=0x17,VAR_N_TAG=0x18,VAR_O_TAG=0x19,VAR_P_TAG=0x1A,VAR_Q_TAG=0x1B,EXT_SYSTEM_TAG=0x1C,ARB_REAL_TAG=0x1D,ARB_INT_TAG=0x1E,POSINT_TAG=0x1F,NEGINT_TAG=0x20,POSFRAC_TAG=0x21,NEGFRAC_TAG=0x22,FLOAT_TAG=0x23,BCD_TAG=0x23,PI_TAG=0x24,EXP_TAG=0x25,IM_TAG=0x26,NEGINFINITY_TAG=0x27,INFINITY_TAG=0x28,PN_INFINITY_TAG=0x29,UNDEF_TAG=0x2A,FALSE_TAG=0x2B,TRUE_TAG=0x2C,STR_TAG=0x2D,NOTHING_TAG=0x2E,ACOSH_TAG=0x2F,ASINH_TAG=0x30,ATANH_TAG=0x31,ASECH_TAG=0x32,ACSCH_TAG=0x33,ACOTH_TAG=0x34,COSH_TAG=0x35,SINH_TAG=0x36,TANH_TAG=0x37,SECH_TAG=0x38,CSCH_TAG=0x39,COTH_TAG=0x3A,ACOS_TAG=0x3B,ASIN_TAG=0x3C,ATAN_TAG=0x3D,ASEC_TAG=0x3E,ACSC_TAG=0x3F,ACOT_TAG=0x40,RACOS_TAG=0x41,RASIN_TAG=0x42,RATAN_TAG=0x43,COS_TAG=0x44,SIN_TAG=0x45,TAN_TAG=0x46,SEC_TAG=0x47,CSC_TAG=0x48,COT_TAG=0x49,ITAN_TAG=0x4A,ABS_TAG=0x4B,ANGLE_TAG=0x4C,CEILING_TAG=0x4D,FLOOR_TAG=0x4E,INT_TAG=0x4F,SIGN_TAG=0x50,SQRT_TAG=0x51,EXPF_TAG=0x52,LN_TAG=0x53,LOG_TAG=0x54,FPART_TAG=0x55,IPART_TAG=0x56,CONJ_TAG=0x57,IMAG_TAG=0x58,REAL_TAG=0x59,APPROX_TAG=0x5A,TEXPAND_TAG=0x5B,TCOLLECT_TAG=0x5C,GETDENOM_TAG=0x5D,GETNUM_TAG=0x5E,ERROR_TAG=0x5F,CUMSUM_TAG=0x60,DET_TAG=0x61,COLNORM_TAG=0x62,ROWNORM_TAG=0x63,NORM_TAG=0x64,MEAN_TAG=0x65,MEDIAN_TAG=0x66,PRODUCT_TAG=0x67,STDDEV_TAG=0x68,SUM_TAG=0x69,VARIANCE_TAG=0x6A,UNITV_TAG=0x6B,DIM_TAG=0x6C,MAT2LIST_TAG=0x6D,NEWLIST_TAG=0x6E,RREF_TAG=0x6F,REF_TAG=0x70,IDENTITY_TAG=0x71,DIAG_TAG=0x72,COLDIM_TAG=0x73,ROWDIM_TAG=0x74,TRANSPOSE_TAG=0x75,FACTORIAL_TAG=0x76,PERCENT_TAG=0x77,RADIANS_TAG=0x78,NOT_TAG=0x79,MINUS_TAG=0x7A,VEC_POLAR_TAG=0x7B,VEC_CYLIND_TAG=0x7C,VEC_SPHERE_TAG=0x7D,START_TAG=0x7E,ISTORE_TAG=0x7F,STORE_TAG=0x80,WITH_TAG=0x81,XOR_TAG=0x82,OR_TAG=0x83,AND_TAG=0x84,LT_TAG=0x85,LE_TAG=0x86,EQ_TAG=0x87,GE_TAG=0x88,GT_TAG=0x89,NE_TAG=0x8A,ADD_TAG=0x8B,ADDELT_TAG=0x8C,SUB_TAG=0x8D,SUBELT_TAG=0x8E,MUL_TAG=0x8F,MULELT_TAG=0x90,DIV_TAG=0x91,DIVELT_TAG=0x92,POW_TAG=0x93,POWELT_TAG=0x94,SINCOS_TAG=0x95,SOLVE_TAG=0x96,CSOLVE_TAG=0x97,NSOLVE_TAG=0x98,ZEROS_TAG=0x99,CZEROS_TAG=0x9A,FMIN_TAG=0x9B,FMAX_TAG=0x9C,COMPLEX_TAG=0x9D,POLYEVAL_TAG=0x9E,RANDPOLY_TAG=0x9F,CROSSP_TAG=0xA0,DOTP_TAG=0xA1,GCD_TAG=0xA2,LCM_TAG=0xA3,MOD_TAG=0xA4,INTDIV_TAG=0xA5,REMAIN_TAG=0xA6,NCR_TAG=0xA7,NPR_TAG=0xA8,P2RX_TAG=0xA9,P2RY_TAG=0xAA,P2PTHETA_TAG=0xAB,P2PR_TAG=0xAC,AUGMENT_TAG=0xAD,NEWMAT_TAG=0xAE,RANDMAT_TAG=0xAF,SIMULT_TAG=0xB0,PART_TAG=0xB1,EXP2LIST_TAG=0xB2,RANDNORM_TAG=0xB3,MROW_TAG=0xB4,ROWADD_TAG=0xB5,ROWSWAP_TAG=0xB6,ARCLEN_TAG=0xB7,NINT_TAG=0xB8,PI_PRODUCT_TAG=0xB9,SIGMA_SUM_TAG=0xBA,MROWADD_TAG=0xBB,ANS_TAG=0xBC,ENTRY_TAG=0xBD,EXACT_TAG=0xBE,LOGB_TAG=0xBF,COMDENOM_TAG=0xC0,EXPAND_TAG=0xC1,FACTOR_TAG=0xC2,CFACTOR_TAG=0xC3,INTEGRATE_TAG=0xC4,DIFFERENTIATE_TAG=0xC5,AVGRC_TAG=0xC6,NDERIV_TAG=0xC7,TAYLOR_TAG=0xC8,LIMIT_TAG=0xC9,PROPFRAC_TAG=0xCA,WHEN_TAG=0xCB,ROUND_TAG=0xCC,DMS_TAG=0xCD,LEFT_TAG=0xCE,RIGHT_TAG=0xCF,MID_TAG=0xD0,SHIFT_TAG=0xD1,SEQ_TAG=0xD2,LIST2MAT_TAG=0xD3,SUBMAT_TAG=0xD4,SUBSCRIPT_TAG=0xD5,RAND_TAG=0xD6,MIN_TAG=0xD7,MAX_TAG=0xD8,LIST_TAG=0xD9,USERFUNC_TAG=0xDA,MATRIX_TAG=0xDB,FUNC_TAG=0xDC,DATA_TAG=0xDD,GDB_TAG=0xDE,PIC_TAG=0xDF,TEXT_TAG=0xE0,FIG_TAG=0xE1,MAC_TAG=0xE2,EXT_TAG=0xE3,EXT_INSTR_TAG=0xE4,END_TAG=0xE5,COMMENT_TAG=0xE6,NEXTEXPR_TAG=0xE7,NEWLINE_TAG=0xE8,ENDSTACK_TAG=0xE9,PN1_TAG=0xEA,PN2_TAG=0xEB,ERROR_MSG_TAG=0xEC,EIGVC_TAG=0xED,EIGVL_TAG=0xEE,DASH_TAG=0xEF,LOCALVAR_TAG=0xF0,DESOLVE_TAG=0xF1,FDASH_TAG=0xF2,ASM_TAG=0xF3,ISPRIME_TAG=0xF4,OTH_TAG=0xF8,ROTATE_TAG=0xF9};
enum HeapWalkCmds{H_WALK_VERIFY=0,H_WALK_STATUS=1,H_WALK_DUMP=2,H_WALK_SYM=3};
enum Buttons{BT_NONE,BT_OK,BT_SAVE,BT_YES,BT_CANCEL,BT_NO,BT_GOTO};
enum ExtTags{INDIR_TAG=0x01,GETKEY_TAG=0x02,GETFOLD_TAG=0x03,SWITCH_TAG=0x04,UNITCONV_TAG=0x05,ORD_TAG=0x06,EXPR_TAG=0x07,CHAR_TAG=0x08,STRING_TAG=0x09,GETTYPE_TAG=0x0A,GETMODE_TAG=0x0B,SETFOLD_TAG=0x0C,PTTEST_TAG=0x0D,PXLTEST_TAG=0x0E,SETGRAPH_TAG=0x0F,SETTABLE_TAG=0x10,SETMODE_TAG=0x11,FORMAT_TAG=0x12,INSTRING_TAG=0x13,APPEND_TAG=0x14,DD_TAG=0x15,EXPR2DMS_TAG=0x16,VEC2RECT_TAG=0x17,VEC2POLAR_TAG=0x18,VEC2CYLIND_TAG=0x19,VEC2SPHERE_TAG=0x1A,PARENTH_START_TAG=0x1B,PARENTH_END_TAG=0x1C,MAT_START_TAG=0x1D,MAT_END_TAG=0x1E,LIST_START_TAG=0x1F,LIST_END_TAG=0x20,COMMA_TAG=0x21,SEMICOLON_TAG=0x22,COMPLEX_ANGLE_TAG=0x23,SINGLE_QUOTE_TAG=0x24,QUOTE_TAG=0x25,POLCPLX_TAG=0x26,TMPCNV_TAG=0x27,DELTA_TMPCNV_TAG=0x28,GETUNITS_TAG=0x29,SETUNITS_TAG=0x2A,BIN_TAG=0x2B,HEX_TAG=0x2C,INT2BIN_TAG=0x2D,INT2DEC_TAG=0x2E,INT2HEX_TAG=0x2F,DET_TOL_TAG=0x30,REF_TOL_TAG=0x31,RREF_TOL_TAG=0x32,SIMULT_TOL_TAG=0x33,GETCONFG_TAG=0x34,V_AUGMENT_TAG=0x35,MEAN_TWOARG_TAG=0x36,PRODUCT_TWOARG_TAG=0x37,STDDEV_TWOARG_TAG=0x39,SUM_TWOARG_TAG=0x3A,VARIANCE_TWOARG_TAG=0x3A,DELTA_LIST_TAG=0x3B,ISCLKON_TAG=0x46,GETDATE_TAG=0x47,GETTIME_TAG=0x48,GETTMZN_TAG=0x49,SETDATE_TAG=0x4A,SETTIME_TAG=0x4B,SETTMZN_TAG=0x4C,DAYOFWK_TAG=0x4D,STARTTMR_TAG=0x4E,CHECKTMR_TAG=0x4F,TIMECNV_TAG=0x50,GETDTFMT_TAG=0x51,GETTMFMT_TAG=0x52,GETDTSTR_TAG=0x53,GETTMSTR_TAG=0x54,SETDTFMT_TAG=0x55,SETTMFMT_TAG=0x56};
enum InstructionTags{CLRDRAW_ITAG=1,CLRGRAPH_ITAG=2,CLRHOME_ITAG=3,CLRIO_ITAG=4,CLRTABLE_ITAG=5,CUSTOM_ITAG=6,CYCLE_ITAG=7,DIALOG_ITAG=8,DISPG_ITAG=9,DISPTBL_ITAG=0xA,ELSE_ITAG=0xB,ENDCUSTM_ITAG=0xC,ENDDLOG_ITAG=0xD,ENDFOR_ITAG=0xE,ENDFUNC_ITAG=0xF,ENDIF_ITAG=0x10,ENDLOOP_ITAG=0x11,ENDPRGM_ITAG=0x12,ENDTBAR_ITAG=0x13,ENDTRY_ITAG=0x14,ENDWHILE_ITAG=0x15,EXIT_ITAG=0x16,FUNC_ITAG=0x17,LOOP_ITAG=0x18,PRGM_ITAG=0x19,SHOWSTAT_ITAG=0x1A,STOP_ITAG=0x1B,THEN_ITAG=0x1C,TOOLBAR_ITAG=0x1D,TRACE_ITAG=0x1E,TRY_ITAG=0x1F,ZOOMBOX_ITAG=0x20,ZOOMDATA_ITAG=0x21,ZOOMDEC_ITAG=0x22,ZOOMFIT_ITAG=0x23,ZOOMIN_ITAG=0x24,ZOOMINT_ITAG=0x25,ZOOMOUT_ITAG=0x26,ZOOMPREV_ITAG=0x27,ZOOMRCL_ITAG=0x28,ZOOMSQR_ITAG=0x29,ZOOMSTD_ITAG=0x2A,ZOOMSTO_ITAG=0x2B,ZOOMTRIG_ITAG=0x2C,DRAWFUNC_ITAG=0x2D,DRAWINV_ITAG=0x2E,GOTO_ITAG=0x2F,LBL_ITAG=0x30,GET_ITAG=0x31,SEND_ITAG=0x32,GETCALC_ITAG=0x33,SENDCALC_ITAG=0x34,NEWFOLD_ITAG=0x35,PRINTOBJ_ITAG=0x36,RCLGDB_ITAG=0x37,STOGDB_ITAG=0x38,ELSEIF_ITAG=0x39,IF_ITAG=0x3A,IFTHEN_ITAG=0x3B,RANDSEED_ITAG=0x3C,WHILE_ITAG=0x3D,LINETAN_ITAG=0x3E,COPYVAR_ITAG=0x3F,RENAME_ITAG=0x40,STYLE_ITAG=0x41,FILL_ITAG=0x42,REQUEST_ITAG=0x43,POPUP_ITAG=0x44,PTCHG_ITAG=0x45,PTOFF_ITAG=0x46,PTON_ITAG=0x47,PXLCHG_ITAG=0x48,PXLOFF_ITAG=0x49,PXLON_ITAG=0x4A,MOVEVAR_ITAG=0x4B,DROPDOWN_ITAG=0x4C,OUTPUT_ITAG=0x4D,PTTEXT_ITAG=0x4E,PXLTEXT_ITAG=0x4F,DRAWSLP_ITAG=0x50,PAUSE_ITAG=0x51,RETURN_ITAG=0x52,INPUT_ITAG=0x53,PLOTSOFF_ITAG=0x54,PLOTSON_ITAG=0x55,TITLE_ITAG=0x56,ITEM_ITAG=0x57,INPUTSTR_ITAG=0x58,LINEHORZ_ITAG=0x59,LINEVERT_ITAG=0x5A,PXLHORZ_ITAG=0x5B,PXLVERT_ITAG=0x5C,ANDPIC_ITAG=0x5D,RCLPIC_ITAG=0x5E,RPLCPIC_ITAG=0x5F,XORPIC_ITAG=0x60,DRAWPOL_ITAG=0x61,TEXT_ITAG=0x62,ONEVAR_ITAG=0x63,STOPIC_ITAG=0x64,GRAPH_ITAG=0x65,TABLE_ITAG=0x66,NEWPIC_ITAG=0x67,DRAWPARM_ITAG=0x68,CYCLEPIC_ITAG=0x69,CUBICREG_ITAG=0x6A,EXPREG_ITAG=0x6B,LINREG_ITAG=0x6C,LNREG_ITAG=0x6D,MEDMED_ITAG=0x6E,POWERREG_ITAG=0x6F,QUADREG_ITAG=0x70,QUARTREG_ITAG=0x71,TWOVAR_ITAG=0x72,SHADE_ITAG=0x73,FOR_ITAG=0x74,CIRCLE_ITAG=0x75,PXLCRCL_ITAG=0x76,NEWPLOT_ITAG=0x77,LINE_ITAG=0x78,PXLLINE_ITAG=0x79,DISP_ITAG=0x7A,FNOFF_ITAG=0x7B,FNON_ITAG=0x7C,LOCAL_ITAG=0x7D,DELFOLD_ITAG=0x7E,DELVAR_ITAG=0x7F,LOCK_ITAG=0x80,PROMPT_ITAG=0x81,SORTA_ITAG=0x82,SORTD_ITAG=0x83,UNLOCK_ITAG=0x84,NEWDATA_ITAG=0x85,DEFINE_ITAG=0x86,ELSE_TRY_ITAG=0x87,CLRERR_ITAG=0x88,PASSERR_ITAG=0x89,DISPHOME_ITAG=0x8A,EXEC_ITAG=0x8B,ARCHIVE_ITAG=0x8C,UNARCHIV_ITAG=0x8D,LU_ITAG=0x8E,QR_ITAG=0x8F,BLDDATA_ITAG=0x90,DRWCTOUR_ITAG=0x91,NEWPROB_ITAG=0x92,SINREG_ITAG=0x93,LOGISTIC_ITAG=0x94,CUSTMON_ITAG=0x95,CUSTMOFF_ITAG=0x96,SENDCHAT_ITAG=0x97,REQUEST_THREEARG_TAG=0x99,CLOCKON_TAG=0x9A,CLOCKOFF_TAG=0x9B};
enum SysvarTags{X_BAR_TAG=1,Y_BAR_TAG=2,SIGMA_X_TAG=3,SIGMA_X2_TAG=4,SIGMA_Y_TAG=5,SIGMA_Y2_TAG=6,SIGMA_XY_TAG=7,SX_TAG=8,SY_TAG=9,SMLSIGMA_X_TAG=0xA,SMLSIGMA_Y_TAG=0xB,NSTAT_TAG=0xC,MINX_TAG=0xD,MINY_TAG=0xE,Q1_TAG=0xF,MEDSTAT_TAG=0x10,Q3_TAG=0x11,MAXX_TAG=0x12,MAXY_TAG=0x13,CORR_TAG=0x14,R2_TAG=0x15,MEDX1_TAG=0x16,MEDX2_TAG=0x17,MEDX3_TAG=0x18,MEDY1_TAG=0x19,MEDY2_TAG=0x1A,MEDY3_TAG=0x1B,XC_TAG=0x1C,YC_TAG=0x1D,ZC_TAG=0x1E,TC_TAG=0x1F,RC_TAG=0x20,THETA_C_TAG=0x21,NC_TAG=0x22,XFACT_TAG=0x23,YFACT_TAG=0x24,ZFACT_TAG=0x25,XMIN_TAG=0x26,XMAX_TAG=0x27,XSCL_TAG=0x28,YMIN_TAG=0x29,YMAX_TAG=0x2A,YSCL_TAG=0x2B,DELTA_X_TAG=0x2C,DELTA_Y_TAG=0x2D,XRES_TAG=0x2E,XGRID_TAG=0x2F,YGRID_TAG=0x30,ZMIN_TAG=0x31,ZMAX_TAG=0x32,ZSCL_TAG=0x33,EYE_THETA_TAG=0x34,EYE_PHI_TAG=0x35,THETA_MIN_TAG=0x36,THETA_MAX_TAG=0x37,THETA_STEP_TAG=0x38,TMIN_TAG=0x39,TMAX_TAG=0x3A,TSTEP_TAG=0x3B,NMIN_TAG=0x3C,NMAX_TAG=0x3D,PLOTSTRT_TAG=0x3E,PLOTSTEP_TAG=0x3F,ZXMIN_TAG=0x40,ZXMAX_TAG=0x41,ZXSCL_TAG=0x42,ZYMIN_TAG=0x43,ZYMAX_TAG=0x44,ZYSCL_TAG=0x45,ZXRES_TAG=0x46,Z_THETA_MIN_TAG=0x47,Z_THETA_MAX_TAG=0x48,Z_THETA_STEP_TAG=0x49,ZTMIN_TAG=0x4A,ZTMAX_TAG=0x4B,ZTSTEP_TAG=0x4C,ZXGRID_TAG=0x4D,ZYGRID_TAG=0x4E,ZZMIN_TAG=0x4F,ZZMAX_TAG=0x50,ZZSCL_TAG=0x51,ZEYE_THETA_TAG=0x52,ZEYE_PHI_TAG=0x53,ZNMIN_TAG=0x54,ZNMAX_TAG=0x55,ZPLTSTEP_TAG=0x56,ZPLTSTRT_TAG=0x57,SEED1_TAG=0x58,SEED2_TAG=0x59,OK_TAG=0x5A,ERRORNUM_TAG=0x5B,SYSMATH_TAG=0x5C,SYSDATA_TAG=0x5D,REGEQ_TAG=0x5E,REGCOEF_TAG=0x5F,TBLINPUT_TAG=0x60,TBLSTART_TAG=0x61,DELTA_TBL_TAG=0x62,FLDPIC_TAG=0x63,EYE_PSI_TAG=0x64,TPLOT_TAG=0x65,DIFTOL_TAG=0x66,ZEYE_PSI_TAG=0x67,T0_TAG=0x68,DTIME_TAG=0x69,NCURVES_TAG=0x6A,FLDRES_TAG=0x6B,ESTEP_TAG=0x6C,ZT0DE_TAG=0x6D,ZTMAXDE_TAG=0x6E,ZTSTEPDE_TAG=0x6F,ZTPLOTDE_TAG=0x70,NCONTOUR_TAG=0x71};
enum TokenizeSymNameFlags{TSF_FULLY_QUALIFIED=0x01,TSF_ALLOW_RESERVED=0x02,TSF_PASS_ERRORS=0x04};
enum ST_ACTIVITIES{ACTIVITY_IDLE,ACTIVITY_BUSY,ACTIVITY_PAUSED,ACTIVITY_NORMAL};
enum WinFlags{WF_SYS_ALLOC=0x0001,WF_STEAL_MEM=0x0002,WF_DONT_REALLOC=0x0004,WF_ROUNDEDBORDER=0x0008,WF_SAVE_SCR=0x0010,WF_DUP_SCR=0x0020,WF_TTY=0x0040,WF_ACTIVE=0x0080,WF_NOBORDER=0x0100,WF_NOBOLD=0x0200,WF_DUP_ON=0x0400,WF_VIRTUAL=0x0800,WF_TITLE=0x1000,WF_DIRTY=0x2000,WF_TRY_SAVE_SCR=0x4010,WF_VISIBLE=0x8000};
enum EventIDs{CM_NOTHING=0x0,CM_LAST_STRING_NUMBER=0x4ff,CM_FIRST_APP_ID=0x500,CM_FIRST_SYS_ID=0x700,CM_IDLE=0x700,CM_NULL=0x700,CM_INIT=0x701,CM_STARTTASK=0x702,CM_START=0x702,CM_ACTIVATE=0x703,CM_FOCUS=0x704,CM_UNFOCUS=0x705,CM_DEACTIVATE=0x706,CM_ENDTASK=0x707,CM_QUIT=0x707,CM_START_CURRENT=0x708,CM_RESTART=0x708,CM_APD=0x709,CM_OFF=0x70A,CM_ON=0x70B,CM_INSTALL=0x70C,CM_UNINSTALL=0x70D,CM_PACK=0x70E,CM_UNPACK=0x70F,CM_KEYPRESS=0x710,CM_KEY_PRESS=0x710,CM_MENU_CUT=0x720,CM_CUT=0x720,CM_MENU_COPY=0x721,CM_COPY=0x721,CM_MENU_PASTE=0x722,CM_PASTE=0x722,CM_STRING=0x723,CM_PASTE_STRING=0x723,CM_HSTRING=0x724,CM_PASTE_HANDLE=0x724,CM_DEL=0x725,CM_DELETE=0x725,CM_CLR=0x726,CM_CLEAR=0x726,CM_MENU_CLEAR=0x727,CM_CLEAR_ALL=0x727,CM_MENU_FIND=0x728,CM_FIND=0x728,CM_INSERT=0x730,CM_TOGGLE_INSERT=0x730,CM_BLINK=0x740,CM_CURSOR_FLASH=0x740,CM_STORE=0x750,CM_STO=0x750,CM_RECALL=0x751,CM_RCL=0x751,CM_WPAINT=0x760,CM_MENU_OPEN=0x770,CM_OPEN=0x770,CM_MENU_SAVE=0x771,CM_SAVE_AS=0x771,CM_MENU_NEW=0x772,CM_NEW=0x772,CM_MENU_FORMAT=0x773,CM_FORMAT=0x773,CM_MENU_ABOUT=0x774,CM_ABOUT=0x774,CM_MODE_CHANGE=0x780,CM_SWITCH_GRAPH=0x781,CM_DEFAULTS=0x782,CM_GEOMETRY=0x7C0,CM_OPEN_SYSDATA=0x7C0,CM_FIRST_APP_STRING=0x800};
enum PaintFlags{PAINTING_ENABLED=0,PAINTING_SUSPENDED=2};
enum StandardTaskIDs{AP_NULL=-3,AP_RUNNING=-2,AP_CURRENT=-1};
enum StartTypes{AP_START_CURRENT=0,__AP_START_NEW_2=1,__AP_START_OPEN_2=2,__AP_START_ERROR_2=3,__AP_START_NEW_1=0x10,__AP_START_OPEN_1=0x20,__AP_START_ERROR_1=0x30};
enum GraphModes{GR_FUNC=1,GR_PAR=2,GR_POL=3,GR_SEQ=4,GR_3D=5,GR_DE=6};
enum Attrs{A_REVERSE,A_NORMAL,A_XOR,A_SHADED,A_REPLACE,A_OR,A_AND,A_THICK1,A_SHADE_V,A_SHADE_H,A_SHADE_NS,A_SHADE_PS};
enum BoxAttrs{B_NORMAL=0x10,B_ROUNDED=0x20,B_DOUBLE=0x40,B_CUT=0x80};
enum Fonts{F_4x6,F_6x8,F_8x10};
enum IntVecs{AUTO_INT_1=0x64,AUTO_INT_2=0x68,AUTO_INT_3=0x6C,AUTO_INT_4=0x70,AUTO_INT_5=0x74,AUTO_INT_6=0x78,AUTO_INT_7=0x7C,TRAP_0=0x80,TRAP_1=0x84,TRAP_2=0x88,TRAP_3=0x8C,TRAP_4=0x90,TRAP_5=0x94,TRAP_6=0x98,TRAP_7=0x9C,TRAP_8=0xA0,TRAP_9=0xA4,TRAP_10=0xA8,TRAP_11=0xAC,TRAP_12=0xB0,TRAP_13=0xB4,TRAP_14=0xB8,TRAP_15=0xBC,INT_VEC_RESET=0x04,INT_VEC_BUS_ERROR=0x08,INT_VEC_ADDRESS_ERROR=0x0C,INT_VEC_ILLEGAL_INSTRUCTION=0x10,INT_VEC_ZERO_DIVIDE=0x14,INT_VEC_CHK_INS=0x18,INT_VEC_TRAPV_INS=0x1C,INT_VEC_PRIVILEGE_VIOLATION=0x20,INT_VEC_TRACE=0x24,INT_VEC_LINE_1010=0x28,INT_VEC_LINE_1111=0x2C,INT_VEC_UNINITIALIZED_INT=0x3C,INT_VEC_SPURIOUS_INT=0x60,INT_VEC_KEY_PRESS=0x68,INT_VEC_LINK=0x70,INT_VEC_ON_KEY_PRESS=0x78,INT_VEC_STACK_OVERFLOW=0x7C,INT_VEC_INT_MASK=0x84,INT_VEC_MANUAL_RESET=0x88,INT_VEC_OFF=0x90,INT_VEC_SELF_TEST=0xA8,INT_VEC_ARCHIVE=0xAC,INT_VEC_ER_THROW=0xBC};
enum Arrows{ARROW_UP=1,ARROW_LEFT=2,ARROW_DOWN=3,ARROW_RIGHT=4};
enum CommonKeys{KEY_F1=268,KEY_F2=269,KEY_F3=270,KEY_F4=271,KEY_F5=272,KEY_F6=273,KEY_F7=274,KEY_F8=275,KEY_ESC=264,KEY_QUIT=4360,KEY_APPS=265,KEY_SWITCH=4361,KEY_MODE=266,KEY_BACKSPACE=257,KEY_INS=4353,KEY_CLEAR=263,KEY_VARLNK=4141,KEY_CHAR=4139,KEY_ENTER=13,KEY_ENTRY=4109,KEY_STO=258,KEY_RCL=4354,KEY_SIGN=173,KEY_MATH=4149,KEY_MEM=4150,KEY_ON=267,KEY_OFF=4363};
enum StatKeys{STAT_2ND=1,STAT_DIAMOND=2,STAT_SHIFT=3,STAT_HAND=4};
enum DynMenuFlags{DMF_TEXT=0x0001,DMF_ICON=0x0002,DMF_BITMAP=0x0004,DMF_CHILD_SUB=0x1000,DMF_CHILD=0x2000,DMF_TOP_SUB=0x4000,DMF_TOP=0x8000};
enum ItemTypes{MT_TEXT=0x8000,MT_XREF=0x9000,MT_ICON=0xA000,MT_CASCADE=0x4000};
enum MenuBeginFlags{MBF_WITHICON=0x01,MBF_REDEF=0x02,MBF_SYS_ALLOC=0x04,MBF_MAX_MENU_WIDTH=0x08,MBF_STRIKEOUT=0x10,MBF_HMENU=0x20,MBF_NO_DRAWTOP=0x40};
enum MenuCheckCmds{MC_CHECK=0,MC_UNCHECK=1,MC_STATUS=2,MC_FLIP=3};
enum MenuFlagsEnum{MF_POPUP=0x0001,MF_TOOLBOX=0x0002,MF_NONSEQ=0x0004,MF_ICON_TITLE=0x0008,MF_TEXT_TITLE=0x0010,MF_NO_NUMS=0x0020,MF_NO_UNAMED=0x0040,MF_DYN_POPUP=0x0080,MF_ALT_ICONS=0x0100,MF_BITMAP_TITLE=0x0200,MF_ERROR=0x0800,MF_ICONS_OVERLAP=0x1000,MF_TITLE=0x0218};
enum MenuKeyValues{M_NOITEM=0,M_NOTMENUKEY=-2};
enum VCFPFlags{VCFP_ALL=0x01,VCFP_SKIP_CURDIR=0x02};
enum SprtModes{SPRT_XOR,SPRT_OR,SPRT_AND};
enum ST_FLAGS{ST_IDLE=0,ST_BUSY=1,ST_PAUSE=2,ST_CLEAR=3,ST_NORMAL=3,ST_NOTHING=0,ST_BATT=1,ST_BATT_DARK=2,ST_BATT_OK=0,ST_BATT_LOW=1,ST_BATT_REPLACE=2,ST_RAD=0,ST_DEG=1,ST_FUNC=0,ST_PAR=2,ST_POL=3,ST_SEQ=4,ST_3D=5,ST_DE=6,ST_NONE=0,ST_2ND=1,ST_SHIFT=2,ST_DIAMOND=4,ST_ALPHA=8,ST_SH_A_LOCK=16,ST_A_LOCK=32,ST_AUTO=0,ST_EXACT=1,ST_APPROX=2};
enum FileFlags{_F_READ=0x0001,_F_WRIT=0x0002,_F_RDWR=0x0003,_F_ERR=0x0010,_F_EOF=0x0020,_F_BIN=0x0040};
enum SeekModes{SEEK_SET,SEEK_CUR,SEEK_END};
enum Timers{BATT_TIMER=1,APD_TIMER=2,LIO_TIMER=3,CURSOR_TIMER=4,MISC_TIMER=5,USER_TIMER=6};

#define H_NULL 0
#define NULL ((void*)0)
#define CENTER (-1)

#define AMS_1xx ((_ram_call(14,unsigned short)&0x0F00)==0x100)
#define AMS_2xx ((_ram_call(14,unsigned short)&0x0F00)==0x200)
#define AMS_3xx ((_ram_call(14,unsigned short)&0x0F00)==0x300)

/* Define tigcc internal functions */
extern unsigned short _rowread(short asm("d0"))__ATTR_LIB_ASM__;
extern long labs(long)__ATTR_GCC__;
extern float atof(const char*)__ATTR_LIB_ASM__;
extern __HS_pushEmptyFIFONode__type__ __get_HS_pushEmptyFIFONode(void)__ATTR_LIB_C__;
extern void HomeStore(void)__ATTR_LIB_ASM__;
extern void HomeStorePair(HANDLE,HANDLE)__ATTR_LIB_C__;
extern void __attribute__((__may_alias__)) __dummy_handler__;
extern unsigned char PRG_getStart(void)__ATTR_LIB_C__;
extern void push_longint(long)__ATTR_LIB_ASM__;
extern void push_longlongint(long long)__ATTR_LIB_ASM__;
extern void *calloc(short asm("d0"),short asm("d1"))__ATTR_LIB_ASM__;
void *alloca(long)__ATTR_GCC__;
extern void *calloc_throw(short asm("d0"),short asm("d1"))__ATTR_LIB_ASM__;
extern void *HeapAllocPtrThrow(long asm("a0"))__ATTR_LIB_ASM__;
extern HANDLE HeapReallocThrow(HANDLE asm("d0"),long asm("a0"))__ATTR_LIB_ASM__;
extern void *malloc_throw(long asm("a0"))__ATTR_LIB_ASM__;
extern void *realloc(void* asm("a0"),long asm("d0"))__ATTR_LIB_ASM__;
extern void *realloc_throw(void* asm("a0"),long asm("d0"))__ATTR_LIB_ASM__;
extern void __assertion_failed(const char*,const char*,short)__ATTR_LIB_ASM_NORETURN__;
extern char _extalnum_list[];
extern char _extpunct_list[];
extern short NoCallBack(short,long)__ATTR_TIOS_CALLBACK__;
extern void push_shortint(short)__ATTR_LIB_ASM__;
extern short EV_getAppID(const char* asm("a0"))__ATTR_LIB_ASM__;
extern float __BC()__ATTR_LIB_ASM__;
extern void Sprite8(short,short,short,unsigned char*,void*,short)__ATTR_LIB_C__;
extern void Sprite16(short,short,short,unsigned short*,void*,short)__ATTR_LIB_C__;
extern void Sprite32(short,short,short,unsigned long*,void*,short)__ATTR_LIB_C__;
extern char *gets(char* asm("a2"))__ATTR_LIB_ASM__;
extern char *getsn(char* asm("a2"),long asm("d3"))__ATTR_LIB_ASM__;
extern void printf(const char*,...)__ATTR_TIOS__;
extern void puts(const char*)__ATTR_LIB_ASM__;
extern short rename(const char*,const char*)__ATTR_LIB_C__;
extern void cbprintf(vcbprintf_Callback_t,void**,const char*,...)__ATTR_TIOS__;
extern short cbscanf(vcbscanf_get_Callback_t asm("a0"),vcbscanf_unget_Callback_t asm("a1"),void* asm("a2"),const char* asm("a3"),...)__ATTR_LIB_ASM__;
extern void clrscr(void)__ATTR_LIB_ASM__;
extern short fclose(FILE*)__ATTR_LIB_C__;
extern short fgetc(FILE*)__ATTR_LIB_C__;
extern short fgetchar(void)__ATTR_LIB_ASM__;
extern char *fgets(char*,short,FILE*)__ATTR_LIB_C__;
extern FILE *fopen(const char*,const char*)__ATTR_LIB_C__;
extern short fprintf(FILE*,const char*,...)__ATTR_TIOS__;
extern short fputc(short,FILE*)__ATTR_TIOS_CALLBACK__;
extern short fputchar(short)__ATTR_TIOS_CALLBACK__;
extern short fputs(const char*,FILE*)__ATTR_LIB_ASM__;
extern unsigned short fread(void*,short,short,FILE*)__ATTR_LIB_C__;
extern short fseek(FILE*,long,short)__ATTR_LIB_C__;
extern void fsetbufsize(short,FILE*)__ATTR_LIB_C__;
extern long ftell(const FILE*)__ATTR_LIB_C__;
extern unsigned short fwrite(const void*,short,short,FILE*)__ATTR_LIB_C__;
extern void strputchar(char,void**)__ATTR_TIOS_CALLBACK__;
extern char *tmpnam(char*)__ATTR_LIB_C__;
extern short unlink(const char*)__ATTR_LIB_C__;
extern short vcbscanf(vcbscanf_get_Callback_t asm("a0"),vcbscanf_unget_Callback_t asm("a1"),void* asm("a2"),const char* asm("a3"),va_list asm("a4"))__ATTR_LIB_ASM__;
extern CALLBACK short __fscanf_get(FILE *param);
extern CALLBACK void __fscanf_unget(short c, FILE *param);
extern CALLBACK short __sscanf_get(__sscanf_string *param);
extern CALLBACK void __sscanf_unget(short c, __sscanf_string *param);
extern long __randseed;
extern short atoi(const char*)__ATTR_LIB_C__;
extern long atol(const char*)__ATTR_LIB_C__;
extern void *bsearch(const void*,const void*,short,short,compare_t)__ATTR_LIB_C__;
extern void qsort(void*,short,short,compare_t)__ATTR_LIB_C__;
extern short rand(void)__ATTR_LIB_ASM__;
extern long strtol(const char*,char**,short)__ATTR_LIB_C__;
extern unsigned long strtoul(const char*,char**,short)__ATTR_LIB_C__;
extern short OSVFreeTimer(short asm("d0"))__ATTR_LIB_ASM__;
extern short OSVRegisterTimer(short asm("d0"),long asm("d3"),Timer_Callback_t asm("d4"))__ATTR_LIB_ASM__;
extern void *kbd_queue(void)__ATTR_LIB_ASM__;

/* These constants are needed for use in "asm" statements */
asm(".set MT_TEXT,0x8000");
asm(".set MT_XREF,0x9000");
asm(".set MT_ICON,0xA000");
asm(".set MT_CASCADE,0x4000");

/* Define kernel functions */
#define	Idle		_RAM_CALL_15
#define kernel_Idle 	Idle
extern	void	Idle(void);
#define	kernel_Exec	_RAM_CALL_16
extern	short kernel_Exec(HANDLE hd asm("d0"));
#define	kernel_Ptr2Hd	_RAM_CALL_17
extern	HANDLE kernel_Ptr2Hd(void *ptr asm("a0"));
#define	kernel_Hd2Sym	_RAM_CALL_18
extern	SYM_ENTRY *kernel_Hd2Sym(HANDLE hd asm("d0"));
typedef	struct _LibRef LibRef;
#define	kernel_LibsBegin _RAM_CALL_19
LibRef *kernel_LibsBegin(char *libname asm("a0"), unsigned char version asm("d1"));
#define kernel_LibsEnd	_RAM_CALL_1A
void kernel_LibsEnd(LibRef *lib asm("a0"));
#define	kernel_LibsPtr	_RAM_CALL_1C
void *kernel_LibsPtr(LibRef *lib asm("a0"), short function asm("d0"));
#define	kernel_LibsCall	_RAM_CALL_1B
__attribute__((__stkparm__)) unsigned long kernel_LibsCall(LibRef *lib, short function, ...);
#define	kernel_LibsExec	_RAM_CALL_1D
__attribute__((__stkparm__)) void kernel_LibsExec(char *name, short function, char version, ...);
#define	kernel_HdKeep	_RAM_CALL_1E
void	kernel_HdKeep(HANDLE hd asm("d0"));
#define	kernel_ExtractFromPack	_RAM_CALL_1F
HANDLE	kernel_ExtractFromPack(void *pack asm("a5"), short index asm("d0"));
#define	kernel_ExtractFile	_RAM_CALL_20
HANDLE	kernel_ExtractFile(const char *name asm("a2"));
#define	kernel_ExtractFileFromPack	_RAM_CALL_29
HANDLE	kernel_ExtractFileFromPack(HANDLE hd asm("d0"), const char *name asm("a2"));
#define	exit	_RAM_CALL_2A
void	exit(int c asm("d0"));
#define	atexit	_RAM_CALL_2B
int	atexit(void (*func)(void) asm("a0"));
#define kernel_RegisterVector _RAM_CALL_2C
void	kernel_RegisterVector (unsigned short vect asm("d0"), const void *func asm("a0"));
#define kernel_SystemDir _RAM_CALL_2F
extern const char kernel_SystemDir[];

/* Define Alloc functions */
// HEADER: alloc.h

/* Define args functions */
// HEADER: args.h

// MISSING-HEADER: asmtypes.h

/* Define assert conditions */
// HEADER: assert.h

/* bascmd */
// HEADER: bascmd.h

/* basfunc.h */
// HEADER: basfunc.h

/* basop.h */
// HEADER: basop.h

/* cert.h */
// HEADER: cert.h

// NON-INCLUED-HEADER-FOR-NOW: compat.h

/* ctype */
// HEADER: ctype.h

// NON-INCLUED-HEADER-FOR-NOW: default.h

/* Dialog.h */
// HEADER: dialog.h

// NON-INCLUED-HEADER: dll.h

// INCOMPATIBLE-HEADER: doors.h

/* error.h */
// HEADER: error.h

/* estack */
// HEADER: estack.h

/* events */
// HEADER: events.h

/* Flash */
// HEADER: flash.h

/* Float */
// HEADER: float.h

// HEADER: timath.h

/* Draw */
// HEADER: gdraw.h

// HEADER: graph.h

// MISSING-HEADER: graphing.h

/* Home screen */
// HEADER: homescr.h

/* Int */
// HEADER: intr.h

/* Keyboard */
// HEADER: kbd.h

/* Limits */
// HEADER: limits.h

/* Link */
// HEADER: link.h

// MISSING-HEADER-MAYBE: mem.h

/* menus */
// HEADER: menus.h

/* Peek poke */
// HEADER: peekpoke.h

// NON-INCLUED-HEADER: nostub.h

// HEADER-TO-BE-MERGED-WITH-HERE-DEFINITIONS: romsymb.h

/* RSA */
// HEADER: rsa.h

// HEADER: setjmp.h

// HEADER: sprites.h

/* statlines */
// HEADER: statline.h

/* Std*/
// HEADER: stdarg.h
// HEADER: stddef.h
// MISSING-HEADER: stdint.h

/* stdio */
// HEADER: stdio.h

/* stdlib */
// HEADER: stdlib.h
// TODO: modify the #ifndef DOORS

/* string */
// HEADER: string.h

/* system */
// HEADER: system.h

/* Text Edit */
// HEADER: textedit.h

/* Timath */

// MISSING-HEADER: unknown.h

// MISSING-HEADER: values.h

/* Define VAT functions */
// HEADER: vat.h

// MISSING-HEADER-MAYBE: version.h

/* Windows */
// HEADER: wingraph.h

/* Define graphlib functions */
asm("graphlib__version02: .xdef graphlib__version02");

#define graphlib_fill graphlib__0000
void	graphlib_fill(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned short width asm("d2"), unsigned short height asm("d3"), unsigned short color asm("d4"));

#define graphlib_put_sprite graphlib__0001
void	graphlib_put_sprite(unsigned short x asm("d0"), unsigned short y asm("d1"), void *sprite asm("a0"));

#define graphlib_put_sprite2 graphlib__000C
void	graphlib_put_sprite2(unsigned short x asm("d0"), unsigned short y asm("d1"), void *sprite asm("a0"), unsigned char *mask asm("a2"));

#define graphlib_put_sprite_mask graphlib__000B
void	graphlib_put_sprite_mask(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned char mask asm("d3"), void *sprite asm("a0"));

#define graphlib_smallbox graphlib__0002
void	graphlib_smallbox(char *title asm("a0"));

#define graphlib_box graphlib__0003
void	graphlib_box(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned short width asm("d2"), unsigned short height asm("d3"), char *title asm("a0"));

#define graphlib_frame graphlib__0004
void	graphlib_frame(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned short width asm("d4"), unsigned short height asm("d5"));

#define graphlib_clrscr graphlib__0005
void	graphlib__clrscr();

#define graphlib_clrscr2 graphlib__0014
void	graphlib__clrscr2();

#define graphlib_vert graphlib__0006
void	graphlib_vert(unsigned short x asm("d0"), unsigned short y1 asm("d1"), unsigned short y2 asm("d2"));

#define graphlib_horiz graphlib__0007
void	graphlib_horiz(unsigned short x1 asm("d0"), unsigned short y asm("d1"), unsigned short x2 asm("d2"), unsigned short color asm("d3"));

#define graphlib_bigbox graphlib__0008
void	graphlib_bigbox(char *title asm("a0"));

#define _graphlib_scrtomem graphlib__0009
void	_graphlib_scrtomem(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned short width asm("d2"), unsigned short height asm("d3"));
#define graphlib_scrtomem(_x, _y, _height, _width) ({register unsigned short __d4 asm("d4"); _graphlib_scrtomem(_x, _y, _height, _width); __d4;})

#define graphlib_memtoscr graphlib__000A
void	graphlib_memtoscr(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned short width asm("d2"), unsigned short height asm("d3"), HANDLE hd asm("d4"));

#define graphlib_line graphlib__0017
void	graphlib_line(unsigned short x1 asm("d0"), unsigned short y1 asm("d1"), unsigned short x2 asm("d2"), unsigned short y2 asm("d3"), void *screen asm("a0"));

#define graphlib_choosescreen graphlib__000D
extern unsigned short graphlib_choosescreen;

typedef struct {
	unsigned short x1;
	unsigned short y1;
	unsigned short x2;
	unsigned short y2;
	unsigned short x;
	unsigned short y;
	char	*str;
	} dialog_struct;
#define graphlib_show_dialog graphlib__0015
void	graphlib_show_dialog(dialog_struct *d asm("a6"));

#define graphlib_clear_dialog graphlib__0016
void	graphlib_clear_dialog();

#define graphlib_erase_rect graphlib__0018
void	graphlib_erase_rect(void *r);

#define graphlib_frame_rect graphlib__0019
void	graphlib_frame_rect(void *r);

#define graphlib_gray2 graphlib__000E
void	graphlib_gray2();

#define graphlib_gray4 graphlib__000F
void	graphlib_gray4();

#define graphlib_gray7 graphlib__0010
void	graphlib_gray7();

#define graphlib_plane0 graphlib__0011
#define graphlib_plane1 graphlib__0012
#define graphlib_plane2 graphlib__0013
extern unsigned char *graphlib_plane0;
extern unsigned char *graphlib_plane1;
extern unsigned char *graphlib_plane2;

/* Define userlib functions */
asm("userlib__version02: .xdef userlib__version02");

#define	userlib_idle_loop userlib__0000
short	userlib_idle_loop();
#define userlib_random	userlib__0001
short	userlib_random(short limit asm("d0"));
#define userlib_randseed userlib__0002
extern	short	userlib__randseed;
#define userlib_exec userlib__0003
__attribute__((__stkparm__)) short	userlib_exec(HANDLE handle);
#define userlib_inputstr userlib__0006
char	*userlib_inputstr(short x asm("d1"), short y asm("d2"), short maxlen asm("d3"));
#define	userlib_smallmenu userlib__000C
short	userlib_samllmenu(short x asm("d0"), short y asm("d1"), char nbitem asm("d2"), char *str_list asm("a0"));
#define userlib_runprog userlib__0010
short	userlib_runprog(char *progname asm("a0"));

// Hexlib
asm("hexlib__version01: .xdef hexlib__version01");

#define	hexlib_put_char	hexlib__0000
void	hexlib_put_char(long x asm("d2"), long y asm("d1"), long character asm("d0"));
#define hexlib_put_bin	hexlib__0001
void	hexlib_put_bin(long x asm("d2"), long y asm("d1"), long number asm("d0"), long digits asm("d4"));
#define	hexlib_put_hex	hexlib__0002
void	hexlib_put_hex(long x asm("d2"), long y asm("d1"), long number asm("d0"), long digits asm("d4"));

// Shrnklib
asm("shrnklib__version03: .xdef shrnklib__version03");

#define	shrnklib_OpenArchive	shrnklib__0000
HANDLE	shrnklib_OpenArchive(void *archive asm("a0"));
#define	shrnklib_CloseArchive	shrnklib__0001
void	shrnklib_CloseArchive(HANDLE arch_hd asm("d0"));
#define	shrnklib_Extract	shrnklib__0002
void	*shrnklib_Extract(HANDLE arch_hd asm("d0"), short index asm("d1"), void *dest asm("a0"));
#define	shrnklib_Free(ptr) HeapFree(HeapPtrToHandle(ptr))

//Ziplib
asm("ziplib__version01: .xdef ziplib__version01");

#define	ziplib_check_cmem	ziplib__0000
short	ziplib_check_cmem(void *data asm("a0"), unsigned short len asm("d0"));
#define	ziplib_check_emem	ziplib__0001
short	ziplib_check_emem(void *archive asm("a0"));
#define	ziplib_eval_cmem	ziplib__0002
short	ziplib_eval_cmem(void *data asm("a0"), unsigned short len asm("d0"));
#define	ziplib_eval_emem	ziplib__0003
short	ziplib_eval_emem(void *archive asm("a0"));
#define	ziplib_compress	ziplib__0004
short	ziplib_compress(void *data asm("a0"), unsigned short len asm("d0"), void *dest asm("a1"));
#define	ziplib_extract	ziplib__0005
short	ziplib_extract(void *archive asm("a0"), void *dest asm("a1"));
#define	ziplib_zipfile	ziplib__0006
char	ziplib_zipfile(SYM_ENTRY *sym asm("a0"), char comment asm("d0"));
#define	ziplib_iscomp	ziplib__000B
short	ziplib_iscomp(SYM_ENTRY *sym asm("a0"));
#define	_ziplib_tempfile	ziplib__0007
long long _ziplib_tempfile(SYM_ENTRY *sym asm("a0"), char comment asm("d1"));
#define	ziplib_tempfile(sym, comment) ({long long result__ = _ziplib_tempfile(sym, comment); (char)(result__>>32)?-(short)(char)(result__>>32):(short)result__;})
#define ziplib_extract_string	ziplib__0008
void	ziplib_extract_string(void *archive asm("a0"), short arch_index asm("d3"), short str_index asm("d4"), void *dest asm("a1"));
#define ziplib_write_string	ziplib__0009
void	ziplib_write_string(void *archive asm("a0"), short x asm("d0"), short y asm("d1"), short arch_index asm("d3"), short str_index asm("d4"));
#define ziplib_write_string_inv	ziplib__000A
void	ziplib_write_string_inv(void *archive asm("a0"), short x asm("d0"), short y asm("d1"), short arch_index asm("d3"), short str_index asm("d4"));

#endif


