Ticket #9: kernel_save.h

File kernel_save.h, 145.6 KB (added by debrouxl, 4 years ago)

kernel.h as found in PreOS 1.0.5

Line 
1#ifndef __KERNEL_H__
2#define __KERNEL_H__
3
4#if defined(NOSTUB) || defined(KERNEL) || defined(DOORS)
5# error "kernel.h" must not be included with tigcclib.h
6#endif
7
8/* If someone uses the main function */
9#define main _main
10
11/* Select target */
12#ifdef USE_TI89
13        short   _ti89;
14#endif
15#if defined(USE_TI92PLUS) || defined(USE_TI92P)
16        short   _ti92plus;
17#endif
18#ifdef USE_V200
19        short   _v200;
20#endif
21#if !defined(USE_TI92PLUS) && !defined(USE_TI92P) && !defined(USE_TI89) && !defined(USE_V200)
22        short   _ti92plus,_ti89,_v200;
23#endif
24
25/* Define default value */
26#define asm __asm__
27#define __ATTR_STD__ __attribute__((__stkparm__))
28#define __ATTR_STD_NORETURN__ __attribute__((__stkparm__,__noreturn__))
29#define CALLBACK __ATTR_STD__
30#define __ATTR_TIOS__ __ATTR_STD__
31#define __ATTR_TIOS_NORETURN__ __ATTR_STD_NORETURN__
32#define __ATTR_TIOS_CALLBACK__ CALLBACK
33#define __ATTR_GCC__
34#define __ATTR_LIB_C__ __attribute__((__regparm__(4)))
35#define __ATTR_LIB_ASM__ __ATTR_STD__
36#define __ATTR_LIB_ASM_NORETURN__ __ATTR_STD_NORETURN__
37#define __ATTR_LIB_CALLBACK_C__ CALLBACK
38#define __ATTR_LIB_CALLBACK_ASM__ CALLBACK
39
40/* Float definition */
41#define _tios_float_1(f,x,t) ({typedef float(*__temp__type__)(short,t)__ATTR_LIB_ASM__;((__temp__type__)__BC)(4*0x##f,x);})
42#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);})
43
44/* Romcalls first definition */
45extern void __attribute__((__may_alias__))
46  _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,
47  _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,
48  _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,
49  _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,
50  _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,
51  _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,
52  _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,
53  _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,
54  _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,
55  _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,
56  _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,
57  _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,
58  _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,
59  _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,
60  _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,
61  _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,
62  _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,
63  _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,
64  _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,
65  _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,
66  _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,
67  _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,
68  _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,
69  _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,
70  _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,
71  _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,
72  _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,
73  _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,
74  _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,
75  _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,
76  _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,
77  _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,
78  _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,
79  _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,
80  _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,
81  _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,
82  _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,
83  _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,
84  _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,
85  _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,
86  _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,
87  _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,
88  _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,
89  _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,
90  _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,
91  _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,
92  _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,
93  _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,
94  _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,
95  _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,
96  _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,
97  _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,
98  _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,
99  _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,
100  _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,
101  _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,
102  _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,
103  _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,
104  _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,
105  _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,
106  _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,
107  _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,
108  _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,
109  _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,
110  _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,
111  _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,
112  _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,
113  _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,
114  _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,
115  _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,
116  _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,
117  _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,
118  _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,
119  _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,
120  _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,
121  _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,
122  _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,
123  _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,
124  _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,
125  _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,
126  _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,
127  _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,
128  _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,
129  _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,
130  _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,
131  _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,
132  _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,
133  _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,
134  _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,
135  _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,
136  _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,
137  _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,
138  _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,
139  _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,
140  _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,
141  _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,
142  _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,
143  _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,
144  _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,
145  _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,
146  _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,
147  _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,
148  _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,
149  _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,
150  _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,
151  _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,
152  _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,
153  _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,
154  _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,
155  _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,
156  _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,
157  _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,
158  _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,
159  _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,
160  _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,
161  _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,
162  _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,
163  _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,
164  _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,
165  _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,
166  _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,
167  _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,
168  _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,
169  _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,
170  _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,
171  _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,
172  _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,
173  _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;
174
175#define _rom_call(type,args,index) (_rom_call_concat(type,args,0x##index,_ROM_CALL_##index))
176#define _rom_call_addr(index) (_rom_call_addr_concat(0x##index,_ROM_CALL_##index))
177#define _rom_call_addr_concat(intindex,romindex) (&romindex)
178#define __rom_call_addr_concat(intindex,romindex) (&romindex)
179#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));}))
180#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));}))
181#define _rom_call_concat(type,args,intindex,romindex) (*((type(*__ATTR_TIOS__)args)(__rom_call_addr_concat(intindex,romindex))))
182#define import_binary(filename,symname) asm(".globl "#symname"\n"#symname":\n\t.incbin \""filename"\"")
183
184/* Kernel RAM_CALLS */
185extern void
186        _RAM_CALL_0,_RAM_CALL_1,_RAM_CALL_2,_RAM_CALL_3,
187        _RAM_CALL_4,_RAM_CALL_5,_RAM_CALL_6,_RAM_CALL_7,
188        _RAM_CALL_8,_RAM_CALL_9,_RAM_CALL_A,_RAM_CALL_B,
189        _RAM_CALL_C,_RAM_CALL_D,_RAM_CALL_E,_RAM_CALL_F,
190        _RAM_CALL_10,_RAM_CALL_11,_RAM_CALL_12,_RAM_CALL_13,
191        _RAM_CALL_14,_RAM_CALL_21,_RAM_CALL_22,_RAM_CALL_23,
192        _RAM_CALL_24,_RAM_CALL_25,_RAM_CALL_26,_RAM_CALL_27,
193        _RAM_CALL_28,_RAM_CALL_2D,_RAM_CALL_2E;
194#define __RAM_CALL(n,type) ((type)&_RAM_CALL_##n)
195
196/* Define Kernel values -- pass 2 */
197#define __CALCULATOR    __RAM_CALL(0, const unsigned char*)
198#define CALCULATOR      (__CALCULATOR[0])
199#define HW_VERSION      (__CALCULATOR[1])
200#define EMULATOR        (__CALCULATOR[3])
201#define font_medium     __RAM_CALL(E, const void*)
202#define font_small      __RAM_CALL(22, const void*)
203#define font_large      __RAM_CALL(23, const void *)
204#define LCD_MEM         __RAM_CALL(21, void*)
205#define LCD_WIDTH       __RAM_CALL (1, unsigned long)
206#define LCD_HEIGHT      __RAM_CALL (2, unsigned long)
207#define LCD_LINE_BYTES  __RAM_CALL (4, unsigned long)
208#define LCD_SIZE        __RAM_CALL (C, unsigned long)
209#define ROM_BASE        __RAM_CALL(3, unsigned char *)
210#define RETURN_VALUE    (*(unsigned char **)_RAM_CALL_F = *(unsigned char **)_ROM_CALL_109)
211#define Heap            __RAM_CALL(11, void***)
212#define FOLDER_LIST_HANDLE __RAM_CALL (12, unsigned long)
213#define MainHandle      __RAM_CALL (13, unsigned long)
214#define ROM_VERSION     __RAM_CALL (14, unsigned long)
215#define kb_globals      __RAM_CALL(10, void*)
216#define KEY_PRESSED_FLAG (*(unsigned short*)(kb_globals+0x1C))
217#define GETKEY_CODE     (*(unsigned short*)(kb_globals+0x1E))
218#define KEY_LEFT        __RAM_CALL(5, unsigned long)
219#define KEY_RIGHT       __RAM_CALL(6, unsigned long)
220#define KEY_UP          __RAM_CALL(7, unsigned long)
221#define KEY_DOWN        __RAM_CALL(8, unsigned long)
222#define KEY_UPRIGHT     __RAM_CALL(9, unsigned long)
223#define KEY_DOWNLEFT    __RAM_CALL(A, unsigned long)
224#define KEY_DIAMOND     __RAM_CALL(B, unsigned long)
225#define KEY_SHIFT       __RAM_CALL(D, unsigned long)
226#define ROM_BASE        __RAM_CALL(3, unsigned char *)
227#define GHOST_SPACE     __RAM_CALL(2D, unsigned char *)
228#define KERNEL_SPACE    __RAM_CALL(2E, unsigned char *)
229
230typedef unsigned short *__pushort;       
231typedef short *__pshort;
232typedef long *__plong;
233typedef unsigned long *__pulong;
234
235/* Define commun struct */
236typedef unsigned char   ESQ;
237typedef const ESQ       *CESI;
238typedef ESQ             *ESI;
239typedef struct{unsigned short Size;ESQ Expr[];}MULTI_EXPR;
240typedef CESI            SYM_STR;
241typedef unsigned short  HANDLE;
242typedef struct{HANDLE folder;unsigned short offset;}HSym;
243typedef 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;
244typedef unsigned long   size_t;
245typedef struct{unsigned short exponent;unsigned long long mantissa;}bcd __attribute__((__may_alias__));
246typedef float ti_float;
247typedef struct{unsigned short Field;unsigned short HdrLen;unsigned long Len;void*Data;}CERT_FIELD;
248typedef struct{void*Start,*Pos,*End;short EOFVal;}CFILE;
249typedef union{struct{unsigned char x0,y0,x1,y1;}xy;unsigned long l;}SCR_RECT;
250typedef struct{short x0,y0,x1,y1;}WIN_RECT;
251typedef struct{void*ScrAddr;unsigned char XMax,YMax;short CurFont,CurAttr,CurX,CurY;SCR_RECT CurClip;}SCR_STATE;
252typedef 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;
253typedef CALLBACK short(*DialogNew_t)(short x,long y);
254typedef CALLBACK unsigned short(*CESI_Callback_t)(CESI);
255typedef CALLBACK unsigned short(*ESI_Callback_Int_t)(ESI,unsigned short);
256typedef CALLBACK void(*ESI_Callback_t)(ESI);
257typedef 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];
258typedef 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;
259typedef void(*EVENT_HANDLER)(EVENT*)CALLBACK;
260typedef 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;
261typedef 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;
262typedef unsigned char SCR_COORDS;
263typedef short WIN_COORDS;
264typedef struct{unsigned short NumRows,NumCols;unsigned char Data[];}BITMAP;
265typedef struct{unsigned short i[16];}ICON;
266typedef struct{unsigned char Count;struct{unsigned char Attr,x0,y0,x1,y1;}Data[];}MULTI_LINE;
267typedef unsigned short*pICON;
268typedef void(*__HS_pushEmptyFIFONode__type__)(short)__ATTR_TIOS__;
269typedef 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;
270typedef struct{FIFO_ELEMENT Entry;FIFO_ELEMENT Ans;HANDLE Prev;HANDLE Next;}FIFO_NODE;
271typedef struct __attribute__((__may_alias__)){short foo;}_DEREF_INT_HANDLER,*INT_HANDLER;
272typedef 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;
273typedef struct{unsigned char Len;unsigned char Data[];}BN;
274typedef struct{unsigned long state[4];unsigned long count[2];unsigned char buffer[64];}MD5_CTX;
275typedef struct{unsigned long D2,D3,D4,D5,D6,D7;unsigned long A2,A3,A4,A5,A6,A7;unsigned long PC;}JMP_BUF[1];
276typedef struct{WINDOW*w;WIN_RECT rect;long value;long low,high;long logwidth;short physwidth;}ST_PROGRESS_BAR;
277typedef void*va_list;
278typedef struct{char*fpos;void*base;unsigned short handle;short flags;short unget;unsigned long alloc;unsigned short buffincrement;}FILE;
279typedef unsigned long fpos_t;
280typedef CALLBACK void(*vcbprintf_Callback_t)(char c,void**param);
281typedef CALLBACK short(*vcbscanf_get_Callback_t)(void*param);
282typedef CALLBACK short(*vcbscanf_unget_Callback_t)(void*param);
283typedef void(*__vcbprintf__type__)(vcbprintf_Callback_t,void**,const char*,void*)__ATTR_TIOS__;
284typedef struct {char *buffer; unsigned short pos;} __sscanf_string;
285typedef CALLBACK void(*atexit_t)(void);
286typedef CALLBACK short(*compare_t)(const void*elem1,const void*elem2);
287typedef struct{short quot,rem;}div_t;
288typedef struct{long quot,rem;}ldiv_t;
289typedef struct{unsigned short Head;unsigned short Tail;unsigned short Size;unsigned short Used;unsigned short Buffer[];}DEF_QUEUE;
290typedef CALLBACK void(*Timer_Callback_t)(void);
291typedef struct{unsigned short len;unsigned char releaseVersionMajor;unsigned char releaseVersionMinor;unsigned short releaseDateYear;unsigned char releaseDateMonth;unsigned char releaseDateDay;}BASECODE_PARM_BLOCK;
292typedef 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;
293
294/* Define commun flags */
295enum Bool{FALSE,TRUE};
296enum CompatFlags{CF_NONE=0,CF_CONVERT=1,CF_ENHANCED=2,CF_NEW=3};
297enum 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};
298enum 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};
299enum FolderOpFlags{FOP_UNLOCK=0,FOP_LOCK=1,FOP_ALL_FOLDERS=0x80};
300enum FolderStats{MAIN_FOLDER=2,FOLDER_TABLE=3,NOT_FOUND=4,BAD_FOLDER=5};
301enum 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};
302enum 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};
303enum VarRecallFlags{VR_NO_SYS_VARS=0x01,VR_FUNC_NAME=0x02,VR_LINK=0x04};
304enum VarStoreFlags{STOF_ESI=0x4000,STOF_ELEMENT=0x4001,STOF_NONE=0x4002,STOF_HESI=0x4003};
305enum 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};
306enum HeapWalkCmds{H_WALK_VERIFY=0,H_WALK_STATUS=1,H_WALK_DUMP=2,H_WALK_SYM=3};
307enum Buttons{BT_NONE,BT_OK,BT_SAVE,BT_YES,BT_CANCEL,BT_NO,BT_GOTO};
308enum 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};
309enum 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};
310enum 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};
311enum TokenizeSymNameFlags{TSF_FULLY_QUALIFIED=0x01,TSF_ALLOW_RESERVED=0x02,TSF_PASS_ERRORS=0x04};
312enum ST_ACTIVITIES{ACTIVITY_IDLE,ACTIVITY_BUSY,ACTIVITY_PAUSED,ACTIVITY_NORMAL};
313enum 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};
314enum 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};
315enum PaintFlags{PAINTING_ENABLED=0,PAINTING_SUSPENDED=2};
316enum StandardTaskIDs{AP_NULL=-3,AP_RUNNING=-2,AP_CURRENT=-1};
317enum 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};
318enum GraphModes{GR_FUNC=1,GR_PAR=2,GR_POL=3,GR_SEQ=4,GR_3D=5,GR_DE=6};
319enum 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};
320enum BoxAttrs{B_NORMAL=0x10,B_ROUNDED=0x20,B_DOUBLE=0x40,B_CUT=0x80};
321enum Fonts{F_4x6,F_6x8,F_8x10};
322enum 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};
323enum Arrows{ARROW_UP=1,ARROW_LEFT=2,ARROW_DOWN=3,ARROW_RIGHT=4};
324enum 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};
325enum StatKeys{STAT_2ND=1,STAT_DIAMOND=2,STAT_SHIFT=3,STAT_HAND=4};
326enum DynMenuFlags{DMF_TEXT=0x0001,DMF_ICON=0x0002,DMF_BITMAP=0x0004,DMF_CHILD_SUB=0x1000,DMF_CHILD=0x2000,DMF_TOP_SUB=0x4000,DMF_TOP=0x8000};
327enum ItemTypes{MT_TEXT=0x8000,MT_XREF=0x9000,MT_ICON=0xA000,MT_CASCADE=0x4000};
328enum 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};
329enum MenuCheckCmds{MC_CHECK=0,MC_UNCHECK=1,MC_STATUS=2,MC_FLIP=3};
330enum 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};
331enum MenuKeyValues{M_NOITEM=0,M_NOTMENUKEY=-2};
332enum VCFPFlags{VCFP_ALL=0x01,VCFP_SKIP_CURDIR=0x02};
333enum SprtModes{SPRT_XOR,SPRT_OR,SPRT_AND};
334enum 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};
335enum FileFlags{_F_READ=0x0001,_F_WRIT=0x0002,_F_RDWR=0x0003,_F_ERR=0x0010,_F_EOF=0x0020,_F_BIN=0x0040};
336enum SeekModes{SEEK_SET,SEEK_CUR,SEEK_END};
337enum Timers{BATT_TIMER=1,APD_TIMER=2,LIO_TIMER=3,CURSOR_TIMER=4,MISC_TIMER=5,USER_TIMER=6};
338
339#define H_NULL 0
340#define NULL ((void*)0)
341#define CENTER (-1)
342
343#define AMS_1xx ((_ram_call(14,unsigned short)&0x0F00)==0x100)
344#define AMS_2xx ((_ram_call(14,unsigned short)&0x0F00)==0x200)
345#define AMS_3xx ((_ram_call(14,unsigned short)&0x0F00)==0x300)
346
347/* Define tigcc internal functions */
348extern unsigned short _rowread(short asm("d0"))__ATTR_LIB_ASM__;
349extern long labs(long)__ATTR_GCC__;
350extern float atof(const char*)__ATTR_LIB_ASM__;
351extern __HS_pushEmptyFIFONode__type__ __get_HS_pushEmptyFIFONode(void)__ATTR_LIB_C__;
352extern void HomeStore(void)__ATTR_LIB_ASM__;
353extern void HomeStorePair(HANDLE,HANDLE)__ATTR_LIB_C__;
354extern void __attribute__((__may_alias__)) __dummy_handler__;
355extern unsigned char PRG_getStart(void)__ATTR_LIB_C__;
356extern void push_longint(long)__ATTR_LIB_ASM__;
357extern void push_longlongint(long long)__ATTR_LIB_ASM__;
358extern void *calloc(short asm("d0"),short asm("d1"))__ATTR_LIB_ASM__;
359void *alloca(long)__ATTR_GCC__;
360extern void *calloc_throw(short asm("d0"),short asm("d1"))__ATTR_LIB_ASM__;
361extern void *HeapAllocPtrThrow(long asm("a0"))__ATTR_LIB_ASM__;
362extern HANDLE HeapReallocThrow(HANDLE asm("d0"),long asm("a0"))__ATTR_LIB_ASM__;
363extern void *malloc_throw(long asm("a0"))__ATTR_LIB_ASM__;
364extern void *realloc(void* asm("a0"),long asm("d0"))__ATTR_LIB_ASM__;
365extern void *realloc_throw(void* asm("a0"),long asm("d0"))__ATTR_LIB_ASM__;
366extern void __assertion_failed(const char*,const char*,short)__ATTR_LIB_ASM_NORETURN__;
367extern char _extalnum_list[];
368extern char _extpunct_list[];
369extern short NoCallBack(short,long)__ATTR_TIOS_CALLBACK__;
370extern void push_shortint(short)__ATTR_LIB_ASM__;
371extern short EV_getAppID(const char* asm("a0"))__ATTR_LIB_ASM__;
372extern float __BC()__ATTR_LIB_ASM__;
373extern void Sprite8(short,short,short,unsigned char*,void*,short)__ATTR_LIB_C__;
374extern void Sprite16(short,short,short,unsigned short*,void*,short)__ATTR_LIB_C__;
375extern void Sprite32(short,short,short,unsigned long*,void*,short)__ATTR_LIB_C__;
376extern char *gets(char* asm("a2"))__ATTR_LIB_ASM__;
377extern char *getsn(char* asm("a2"),long asm("d3"))__ATTR_LIB_ASM__;
378extern void printf(const char*,...)__ATTR_TIOS__;
379extern void puts(const char*)__ATTR_LIB_ASM__;
380extern short rename(const char*,const char*)__ATTR_LIB_C__;
381extern void cbprintf(vcbprintf_Callback_t,void**,const char*,...)__ATTR_TIOS__;
382extern short cbscanf(vcbscanf_get_Callback_t asm("a0"),vcbscanf_unget_Callback_t asm("a1"),void* asm("a2"),const char* asm("a3"),...)__ATTR_LIB_ASM__;
383extern void clrscr(void)__ATTR_LIB_ASM__;
384extern short fclose(FILE*)__ATTR_LIB_C__;
385extern short fgetc(FILE*)__ATTR_LIB_C__;
386extern short fgetchar(void)__ATTR_LIB_ASM__;
387extern char *fgets(char*,short,FILE*)__ATTR_LIB_C__;
388extern FILE *fopen(const char*,const char*)__ATTR_LIB_C__;
389extern short fprintf(FILE*,const char*,...)__ATTR_TIOS__;
390extern short fputc(short,FILE*)__ATTR_TIOS_CALLBACK__;
391extern short fputchar(short)__ATTR_TIOS_CALLBACK__;
392extern short fputs(const char*,FILE*)__ATTR_LIB_ASM__;
393extern unsigned short fread(void*,short,short,FILE*)__ATTR_LIB_C__;
394extern short fseek(FILE*,long,short)__ATTR_LIB_C__;
395extern void fsetbufsize(short,FILE*)__ATTR_LIB_C__;
396extern long ftell(const FILE*)__ATTR_LIB_C__;
397extern unsigned short fwrite(const void*,short,short,FILE*)__ATTR_LIB_C__;
398extern void strputchar(char,void**)__ATTR_TIOS_CALLBACK__;
399extern char *tmpnam(char*)__ATTR_LIB_C__;
400extern short unlink(const char*)__ATTR_LIB_C__;
401extern 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__;
402extern CALLBACK short __fscanf_get(FILE *param);
403extern CALLBACK void __fscanf_unget(short c, FILE *param);
404extern CALLBACK short __sscanf_get(__sscanf_string *param);
405extern CALLBACK void __sscanf_unget(short c, __sscanf_string *param);
406extern long __randseed;
407extern short atoi(const char*)__ATTR_LIB_C__;
408extern long atol(const char*)__ATTR_LIB_C__;
409extern void *bsearch(const void*,const void*,short,short,compare_t)__ATTR_LIB_C__;
410extern void qsort(void*,short,short,compare_t)__ATTR_LIB_C__;
411extern short rand(void)__ATTR_LIB_ASM__;
412extern long strtol(const char*,char**,short)__ATTR_LIB_C__;
413extern unsigned long strtoul(const char*,char**,short)__ATTR_LIB_C__;
414extern short OSVFreeTimer(short asm("d0"))__ATTR_LIB_ASM__;
415extern short OSVRegisterTimer(short asm("d0"),long asm("d3"),Timer_Callback_t asm("d4"))__ATTR_LIB_ASM__;
416extern void *kbd_queue(void)__ATTR_LIB_ASM__;
417
418/* These constants are needed for use in "asm" statements */
419asm(".set MT_TEXT,0x8000");
420asm(".set MT_XREF,0x9000");
421asm(".set MT_ICON,0xA000");
422asm(".set MT_CASCADE,0x4000");
423
424/* Define kernel functions */
425#define Idle            _RAM_CALL_15
426#define kernel_Idle     Idle
427extern  void    Idle(void);
428#define kernel_Exec     _RAM_CALL_16
429extern  short kernel_Exec(HANDLE hd asm("d0"));
430#define kernel_Ptr2Hd   _RAM_CALL_17
431extern  HANDLE kernel_Ptr2Hd(void *ptr asm("a0"));
432#define kernel_Hd2Sym   _RAM_CALL_18
433extern  SYM_ENTRY *kernel_Hd2Sym(HANDLE hd asm("d0"));
434typedef struct _LibRef LibRef;
435#define kernel_LibsBegin _RAM_CALL_19
436LibRef *kernel_LibsBegin(char *libname asm("a0"), unsigned char version asm("d1"));
437#define kernel_LibsEnd  _RAM_CALL_1A
438void kernel_LibsEnd(LibRef *lib asm("a0"));
439#define kernel_LibsPtr  _RAM_CALL_1C
440void *kernel_LibsPtr(LibRef *lib asm("a0"), short function asm("d0"));
441#define kernel_LibsCall _RAM_CALL_1B
442__attribute__((__stkparm__)) unsigned long kernel_LibsCall(LibRef *lib, short function, ...);
443#define kernel_LibsExec _RAM_CALL_1D
444__attribute__((__stkparm__)) void kernel_LibsExec(char *name, short function, char version, ...);
445#define kernel_HdKeep   _RAM_CALL_1E
446void    kernel_HdKeep(HANDLE hd asm("d0"));
447#define kernel_ExtractFromPack  _RAM_CALL_1F
448HANDLE  kernel_ExtractFromPack(void *pack asm("a5"), short index asm("d0"));
449#define kernel_ExtractFile      _RAM_CALL_20
450HANDLE  kernel_ExtractFile(const char *name asm("a2"));
451#define kernel_ExtractFileFromPack      _RAM_CALL_29
452HANDLE  kernel_ExtractFileFromPack(HANDLE hd asm("d0"), const char *name asm("a2"));
453#define exit    _RAM_CALL_2A
454void    exit(int c asm("d0"));
455#define atexit  _RAM_CALL_2B
456int     atexit(void (*func)(void) asm("a0"));
457#define kernel_RegisterVector _RAM_CALL_2C
458void    kernel_RegisterVector (unsigned short vect asm("d0"), const void *func asm("a0"));
459#define kernel_SystemDir _RAM_CALL_2F
460extern const char kernel_SystemDir[];
461
462/* Define VAT functions */
463#define SYMSTR_CONST(s) ((SYM_STR)(("\0"s)+sizeof(s)))
464#define $(s) (SYMSTR_CONST(#s))
465#define AddSymToFolder _rom_call(HSym,(SYM_STR,SYM_STR),70)
466#define checkCurrent _rom_call(HSym,(SYM_STR,ESQ),121)
467#define CheckLinkLockFlag _rom_call(void,(const SYM_ENTRY*),7F)
468#define CheckReservedName _rom_call(short,(SYM_STR),8B)
469#define CheckSysFunc _rom_call(short,(const char*,__pushort),89)
470#define ClearUserDef _rom_call(void,(HANDLE),7E)
471#define DerefSym _rom_call(SYM_ENTRY*,(HSym),79)
472#define EM_moveSymFromExtMem _rom_call(short,(SYM_STR,HSym),161)
473#define EM_moveSymToExtMem _rom_call(short,(SYM_STR,HSym),162)
474#define EM_twinSymFromExtMem _rom_call(HSym,(SYM_STR,HSym),166)
475#define EX_stoBCD _rom_call(void,(unsigned char*,float*),C0)
476#define FindSymInFolder _rom_call(HSym,(SYM_STR,const char*),71)
477#define FolderAdd _rom_call(HANDLE,(SYM_STR),64)
478#define FolderAddTemp _rom_call(SYM_STR,(void),73)
479#define FolderClear(c) __Folder_Del((c),1)
480#define FolderCount _rom_call(unsigned short,(const SYM_ENTRY*),6B)
481#define FolderCur _rom_call(short,(SYM_STR,short),65)
482#define FolderCurTemp _rom_call(short,(SYM_STR),72)
483#define FolderDel(c) __Folder_Del((c),0)
484#define FolderDelAllTemp _rom_call(void,(short),75)
485#define FolderDelTemp _rom_call(void,(void),74)
486#define FolderFind _rom_call(short,(SYM_STR),67)
487#define FolderGetCur _rom_call(void,(char*),68)
488#define FolderOp _rom_call(short,(SYM_STR,short),69)
489#define FolderRename _rom_call(short,(const char*,const char*),6A)
490#define HSymDel _rom_call(short,(HSym),5F)
491#define HSYMtoName _rom_call(short,(HSym,char*),7A)
492#define IsMainFolderStr _rom_call(short,(const char*),77)
493#define MakeHSym _rom_call(HSym,(HANDLE,const SYM_ENTRY*),282)
494#define partial_len _rom_call(unsigned long,(const char*,unsigned char*),11C)
495#define QSysProtected _rom_call(short,(ESQ),88)
496#define ResetSymFlags _rom_call(void,(short),8E)
497#define StrToTokN _rom_call(ESI,(const char*,unsigned char*),7B)
498#define SymAdd _rom_call(HSym,(SYM_STR),5C)
499#define SymAddMain _rom_call(HSym,(SYM_STR),5D)
500#define SymAddTwin _rom_call(HSym,(SYM_STR),27F)
501#define SymCmp _rom_call(short,(const char*,const char*),81)
502#define SymCpy0 _rom_call(void,(char*,const char*),83)
503#define SymCpy _rom_call(void,(char*,const char*),82)
504#define SymDel _rom_call(short,(SYM_STR),5E)
505#define SymDelTwin _rom_call(short,(SYM_ENTRY*),280)
506#define SymFind _rom_call(HSym,(SYM_STR),60)
507#define SymFindFirst _rom_call(SYM_ENTRY*,(SYM_STR,short),6C)
508#define SymFindFolderName _rom_call(char*,(void),6F)
509#define SymFindHome _rom_call(HSym,(SYM_STR),62)
510#define SymFindMain _rom_call(HSym,(SYM_STR),61)
511#define SymFindNext _rom_call(SYM_ENTRY*,(void),6D)
512#define SymFindPrev _rom_call(SYM_ENTRY*,(void),6E)
513#define SymFindPtr _rom_call(SYM_ENTRY*,(SYM_STR,short),283)
514#define SymMove _rom_call(short,(SYM_STR,SYM_STR),63)
515#define SYMSTR(s) ({register unsigned short __slen=_rom_call(unsigned long,(const char*),27E)(s);ESI __tempstr=alloca(__slen+2);__tempstr[0]=0;_rom_call(void*,(void*,const void*,long),26A)(__tempstr+1,(s),__slen+1);__tempstr+__slen+1;})
516#define SymSysVar _rom_call(short,(const char*),8C)
517#define TempFolderName _rom_call(SYM_STR,(short),76)
518#define TokToStrN _rom_call(short,(unsigned char*,SYM_STR),7C)
519#define ValidateSymName _rom_call(short,(const char*),84)
520#define VarRecall _rom_call(HSym,(SYM_STR,short),85)
521#define VarStore _rom_call(HSym,(SYM_STR,short,short,...),86)
522#define GetDataType _rom_call(short,(CESI),435)
523#define GetFuncPrgmBodyPtr _rom_call(ESI,(ESI),43A)
524#define SetOK _rom_call(void,(short),456)
525#define SmapTypeStrings _rom_call(const char*,(short),436)
526
527/* Define Alloc functions */
528#define free _rom_call(void,(void*),A3)
529#define FreeHandles _rom_call(short,(void),23B)
530#define HeapAlloc _rom_call(HANDLE,(long),90)
531#define HeapAllocESTACK _rom_call(HANDLE,(long),91)
532#define HeapAllocHigh _rom_call(HANDLE,(long),92)
533#define HeapAllocHighThrow _rom_call(HANDLE,(long),94)
534#define HeapAllocPtr _rom_call(void*,(long),A2)
535#define HeapAllocThrow _rom_call(HANDLE,(long),93)
536#define HeapAvail _rom_call(unsigned long,(void),8F)
537#define HeapCompress _rom_call(void,(void),95)
538#define HeapDeref _rom_call(void*,(HANDLE),96)
539#define HeapEnd _rom_call(void*,(void),A1)
540#define HeapFree _rom_call(void,(HANDLE),97)
541#define HeapFreeIndir _rom_call(void,(HANDLE*),98)
542#define HeapFreePtr _rom_call(void,(void*),A3)
543#define HeapGetHandle _rom_call(HANDLE,(void),239)
544#define HeapGetLock _rom_call(short,(HANDLE),9B)
545#define HeapLock _rom_call(HANDLE,(HANDLE),9A)
546#define HeapMax _rom_call(unsigned long,(void),9C)
547#define HeapMoveHigh _rom_call(HANDLE,(HANDLE),A0)
548#define HeapPtrToHandle _rom_call(HANDLE,(void*),23A)
549#define HeapRealloc _rom_call(HANDLE,(HANDLE,long),9D)
550#define HeapSize _rom_call(unsigned long,(HANDLE),9E)
551#define HeapUnlock _rom_call(HANDLE,(HANDLE),9F)
552#define HLock _rom_call(void*,(HANDLE),99)
553#define malloc _rom_call(void*,(long),A2)
554#define HeapShuffle _rom_call(void,(void),474)
555#define HeapWalk _rom_call(short,(short),12C)
556
557/* Define args functions */
558#define top_estack (*((ESI*)(_rom_call_addr(109))))
559#define ArgCount() (RemainingArgCnt(top_estack))
560#define EX_getArg _rom_call(ESI,(short),BE)
561#define EX_getBCD _rom_call(short,(short,float*),BF)
562#define GetArgType(p) (*(CESI)(p))
563#define GetFloatArg(p) ({float __f;(CESI)(p)-=10;_rom_call(void*,(),26A)(&__f,(CESI)(p)+1,9L);((char*)&__f)[9]=0;__f;})
564#define GetIntArg(p) ({register unsigned short __n=*(--(ESI)(p));register unsigned long __s=0;while(__n--)__s=(__s<<8)+*(--(unsigned char*)(p));(ESI)(p)--;__s;})
565#define GetLongLongArg(p) ({register unsigned short __n=*(--(ESI)(p));register unsigned long long __s=0;while(__n--)__s=(__s<<8)+*(--(unsigned char*)(p));(ESI)(p)--;__s;})
566#define GetStrnArg(p) ({(ESI)(p)-=2;while(*(ESI)(p)--);(const char*)((ESI)(p)+2);})
567#define GetSymstrArg(p) ({register ESI __t=(ESI)(p);(ESI)(p)-=2;while(*(ESI)(p)--);(const char*)(__t-1);})
568#define InitArgPtr(p) ((void)((p)=top_estack))
569#define SkipArg(p) ((void)((p)=_rom_call(ESI,(ESI),10A)(p)))
570#define RemainingArgCnt _rom_call(unsigned short,(CESI),3C3)
571
572/* Define assert conditions */
573#ifndef NDEBUG
574#define assert(p) ((p)?(void)0:__assertion_failed(#p,__FILE__,__LINE__))
575#else
576#define assert(p) ((void)0)
577#endif
578
579/* bascmd */
580#define cmd_andpic  _rom_call(void,(SYM_STR,CESI,CESI),32A)
581#define cmd_blddata  _rom_call(void,(ESI),32B )
582#define cmd_circle  _rom_call(void,(CESI,CESI,CESI,CESI),32C )
583#define cmd_clrdraw _rom_call(void,(void),32D)
584#define cmd_clrerr  _rom_call(void,(void),32E )
585#define cmd_clrgraph  _rom_call(void,(void),32F)
586#define cmd_clrhome _rom_call(void,(void),330)
587#define cmd_clrio _rom_call(void,(void),331)
588#define cmd_clrtable  _rom_call(void,(void),332 )
589#define cmd_copyvar  _rom_call(void,(SYM_STR,SYM_STR),333 )
590#define cmd_cubicreg  _rom_call(void,(ESI),334 )
591#define cmd_custmoff _rom_call(void,(void),335)
592#define cmd_custmon _rom_call(void,(void),336)
593#define cmd_custom  _rom_call(void,(void),337 )
594#define cmd_cycle _rom_call(void,(void),338)
595#define cmd_cyclepic  _rom_call(void,(CESI,CESI,CESI,CESI,CESI),339 )
596#define cmd_delfold  _rom_call(void,(CESI),33A )
597#define cmd_delvar  _rom_call(void,(CESI),33B )
598#define cmd_dialog  _rom_call(void,(void),33C )
599#define cmd_disp  _rom_call(void,(CESI),33D )
600#define cmd_dispg _rom_call(void,(void),33E)
601#define cmd_disphome  _rom_call(void,(void),33F )
602#define cmd_disptbl  _rom_call(void,(void),340 )
603#define cmd_drawfunc  _rom_call(void,(CESI),341 )
604#define cmd_drawinv  _rom_call(void,(CESI),342 )
605#define cmd_drawparm  _rom_call(void,(CESI),343 )
606#define cmd_drawpol  _rom_call(void,(CESI),344 )
607#define cmd_else _rom_call(void,(void),345)
608#define cmd_endfor  _rom_call(void,(void),346 )
609#define cmd_endloop _rom_call(void,(void),347)
610#define cmd_endtry  _rom_call(void,(void),348 )
611#define cmd_endwhile  _rom_call(void,(void),349)
612#define cmd_exit _rom_call(void,(void),34A)
613#define cmd_expreg  _rom_call(void,(ESI),34B )
614#define cmd_fill  _rom_call(void,(CESI,SYM_STR),34C )
615#define cmd_fnoff  _rom_call(void,(CESI),34D )
616#define cmd_fnon  _rom_call(void,(CESI),34E )
617#define cmd_for  _rom_call(void,(SYM_STR,CESI,CESI,CESI),34F )
618#define cmd_get  _rom_call(void,(SYM_STR),350 )
619#define cmd_getcalc  _rom_call(void,(SYM_STR),351 )
620#define cmd_goto _rom_call(void,(SYM_STR),352)
621#define cmd_graph  _rom_call(void,(CESI),353 )
622#define cmd_if  _rom_call(void,(CESI),354 )
623#define cmd_ifthen  _rom_call(void,(CESI),355 )
624#define cmd_input  _rom_call(void,(CESI),356 )
625#define cmd_inputstr  _rom_call(void,(ESI),357 )
626#define cmd_line  _rom_call(void,(CESI,CESI,CESI,CESI,CESI),358 )
627#define cmd_linehorz  _rom_call(void,(CESI,CESI),359 )
628#define cmd_linetan  _rom_call(void,(CESI,CESI),35A )
629#define cmd_linevert  _rom_call(void,(CESI,CESI),35B )
630#define cmd_linreg  _rom_call(void,(ESI),35C )
631#define cmd_lnreg  _rom_call(void,(ESI),35D )
632#define cmd_local _rom_call(void,(CESI),35E)
633#define cmd_lock  _rom_call(void,(CESI),35F )
634#define cmd_logistic  _rom_call(void,(ESI),360 )
635#define cmd_medmed  _rom_call(void,(ESI),361 )
636#define cmd_movevar  _rom_call(void,(SYM_STR,SYM_STR,SYM_STR),362 )
637#define cmd_newdata  _rom_call(void,(CESI),363 )
638#define cmd_newfold  _rom_call(void,(SYM_STR),364 )
639#define cmd_newpic  _rom_call(void,(ESI,SYM_STR,ESI,ESI),365 )
640#define cmd_newplot  _rom_call(void,(ESI),366 )
641#define cmd_newprob  _rom_call(void,(void),367 )
642#define cmd_onevar  _rom_call(void,(ESI),368 )
643#define cmd_output  _rom_call(void,(CESI,CESI,CESI),369 )
644#define cmd_passerr  _rom_call(void,(void),36A )
645#define cmd_pause  _rom_call(void,(CESI),36B )
646#define cmd_plotsoff _rom_call(void,(CESI),36C)
647#define cmd_plotson _rom_call(void,(CESI),36D)
648#define cmd_popup  _rom_call(void,(ESI,ESI),36E)
649#define cmd_powerreg  _rom_call(void,(ESI),36F )
650#define cmd_printobj _rom_call(void,(SYM_STR),370)
651#define cmd_prompt  _rom_call(void,(CESI),371 )
652#define cmd_ptchg  _rom_call(void,(CESI,CESI),372)
653#define cmd_ptoff  _rom_call(void,(CESI,CESI),373 )
654#define cmd_pton  _rom_call(void,(CESI,CESI),374 )
655#define cmd_pttext  _rom_call(void,(CESI,CESI,CESI),375)
656#define cmd_pxlchg  _rom_call(void,(CESI,CESI),376 )
657#define cmd_pxlcircle _rom_call(void,(CESI,CESI,CESI,CESI),377)
658#define cmd_pxlhorz _rom_call(void,(CESI,CESI),378)
659#define cmd_pxlline _rom_call(void,(CESI,CESI,CESI,CESI,CESI),379)
660#define cmd_pxloff  _rom_call(void,(CESI,CESI),37A )
661#define cmd_pxlon  _rom_call(void,(CESI,CESI),37B )
662#define cmd_pxltext  _rom_call(void,(CESI,CESI,CESI),37C)
663#define cmd_pxlvert _rom_call(void,(CESI,CESI),37D)
664#define cmd_quadreg  _rom_call(void,(ESI),37E )
665#define cmd_quartreg  _rom_call(void,(ESI),37F )
666#define cmd_randseed  _rom_call(void,(CESI),380 )
667#define cmd_rclgdb  _rom_call(void,(SYM_STR),381 )
668#define cmd_rclpic  _rom_call(void,(SYM_STR,CESI,CESI),382 )
669#define cmd_rename  _rom_call(void,(SYM_STR,SYM_STR),383 )
670#define cmd_request  _rom_call(void,(CESI,SYM_STR),384 )
671#define cmd_return  _rom_call(void,(CESI),385 )
672#define cmd_rplcpic  _rom_call(void,(SYM_STR,CESI,CESI),386 )
673#define cmd_send _rom_call(void,(CESI),387)
674#define cmd_sendcalc  _rom_call(void,(SYM_STR),388 )
675#define cmd_sendchat  _rom_call(void,(SYM_STR),389 )
676#define cmd_shade  _rom_call(void,(ESI),38A )
677#define cmd_showstat  _rom_call(void,(void),38B)
678#define cmd_sinreg  _rom_call(void,(ESI),38C )
679#define cmd_slpline  _rom_call(void,(CESI,CESI,CESI),38D )
680#define cmd_sorta  _rom_call(void,(ESI),38E )
681#define cmd_sortd  _rom_call(void,(ESI),38F )
682#define cmd_stogdb  _rom_call(void,(SYM_STR),390 )
683#define cmd_stopic  _rom_call(void,(ESI),391 )
684#define cmd_style  _rom_call(void,(CESI,CESI),392 )
685#define cmd_table  _rom_call(void,(ESI),393 )
686#define cmd_text  _rom_call(void,(CESI),394 )
687#define cmd_toolbar  _rom_call(void,(void),395 )
688#define cmd_trace _rom_call(void,(void),396)
689#define cmd_try  _rom_call(void,(void),397 )
690#define cmd_twovar  _rom_call(void,(ESI),398 )
691#define cmd_unlock  _rom_call(void,(CESI),399 )
692#define cmd_while  _rom_call(void,(CESI),39A )
693#define cmd_xorpic  _rom_call(void,(SYM_STR,CESI,CESI),39B )
694#define cmd_zoombox _rom_call(void,(void),39C)
695#define cmd_zoomdata _rom_call(void,(void),39D)
696#define cmd_zoomdec _rom_call(void,(void),39E)
697#define cmd_zoomfit _rom_call(void,(void),39F)
698#define cmd_zoomin _rom_call(void,(void),3A0)
699#define cmd_zoomint _rom_call(void,(void),3A1)
700#define cmd_zoomout _rom_call(void,(void),3A2)
701#define cmd_zoomprev _rom_call(void,(void),3A3)
702#define cmd_zoomrcl _rom_call(void,(void),3A4)
703#define cmd_zoomsqr _rom_call(void,(void),3A5)
704#define cmd_zoomstd _rom_call(void,(void),3A6)
705#define cmd_zoomsto _rom_call(void,(void),3A7)
706#define cmd_zoomtrig _rom_call(void,(void),3A8)
707#define cmd_archive  _rom_call(void,(CESI),448 )
708#define cmd_unarchiv  _rom_call(void,(CESI),449 )
709
710/* basfunc.h */
711#define push_getfold _rom_call(void,(void),317)
712#define push_getkey  _rom_call(void,(void),316)
713#define push_getmode _rom_call(void,(CESI),318)
714#define push_gettype  _rom_call(void,(CESI),319)
715#define push_instring _rom_call(void,(CESI,CESI,CESI),31A)
716#define push_part  _rom_call(void,(),31C)
717#define push_pttest  _rom_call(void,(CESI,CESI),31D)
718#define push_pxltest  _rom_call(void,(CESI,CESI),31E)
719#define push_rand _rom_call(void,(CESI),31F)
720#define push_randpoly  _rom_call(void,(CESI,CESI),320)
721#define push_setfold  _rom_call(void,(CESI),321)
722#define push_setgraph _rom_call(void,(CESI,CESI),322)
723#define push_setmode  _rom_call(void,(CESI,CESI),323)
724#define push_settable _rom_call(void,(CESI,CESI),324)
725#define push_str_to_expr  _rom_call(void,(CESI),325)
726#define push_string _rom_call(void,(CESI),326)
727#define push_switch  _rom_call(void,(CESI),327)
728#define push_approx  _rom_call(void,(CESI),4F7)
729#define push_augment _rom_call(void,(CESI,CESI),496)
730#define push_char _rom_call(void,(CESI),497)
731#define push_coldim _rom_call(void,(CESI),498)
732#define push_colnorm  _rom_call(void,(CESI),499)
733#define push_cross_product  _rom_call(void,(CESI,CESI),4CE)
734#define push_cumsum  _rom_call(void,(CESI),49A)
735#define push_determinant  _rom_call(void,(CESI,CESI),49D)
736#define push_diag _rom_call(void,(CESI),49E)
737#define push_dimension _rom_call(void,(CESI),49F)
738#define push_dotproduct  _rom_call(void,(CESI,CESI),4A3)
739#define push_eigvc  _rom_call(void,(CESI),4CF)
740#define push_eigvl  _rom_call(void,(CESI),4D0)
741#define push_identity_mat _rom_call(void,(CESI),4A4)
742#define push_left _rom_call(void,(CESI,CESI),4A5)
743#define push_list_to_mat _rom_call(void,(CESI,CESI),4A6)
744#define push_mat_to_list _rom_call(void,(CESI),4A8)
745#define push_matnorm  _rom_call(void,(CESI),4A7)
746#define push_mean  _rom_call(void,(CESI),4A9)
747#define push_median  _rom_call(void,(CESI),4AA)
748#define push_mid _rom_call(void,(CESI,CESI,CESI),4AB)
749#define push_mrow  _rom_call(void,(CESI,CESI,CESI),4AC)
750#define push_mrowadd  _rom_call(void,(CESI,CESI,CESI,CESI),4AD)
751#define push_newlist _rom_call(void,(CESI),4AE)
752#define push_newmat _rom_call(void,(CESI,CESI),4AF)
753#define push_ord _rom_call(void,(CESI),4B0)
754#define push_prodlist  _rom_call(void,(CESI),4B2)
755#define push_randmat _rom_call(void,(CESI,CESI),4B4)
756#define push_randnorm  _rom_call(void,(CESI,CESI),4B5)
757#define push_red_row_ech  _rom_call(void,(CESI,CESI),4B6)
758#define push_right _rom_call(void,(CESI,CESI),4B7)
759#define push_rotate  _rom_call(void,(CESI,CESI),4B8)
760#define push_round  _rom_call(void,(CESI,CESI),4B9)
761#define push_row_echelon  _rom_call(void,(CESI,CESI),4BE)
762#define push_rowadd  _rom_call(void,(CESI,CESI,CESI),4BA)
763#define push_rowdim  _rom_call(void,(CESI),4BB)
764#define push_rownorm  _rom_call(void,(CESI),4BC)
765#define push_rowswap _rom_call(void,(CESI,CESI,CESI),4BD)
766#define push_sequence  _rom_call(void,(CESI,CESI,CESI,CESI,CESI),4BF)
767#define push_shift  _rom_call(void,(CESI,CESI),4C0)
768#define push_simult  _rom_call(void,(CESI,CESI,CESI),4C1)
769#define push_stddev  _rom_call(void,(CESI),4C3)
770#define push_submat _rom_call(void,(CESI,CESI,CESI,CESI,CESI),4C4)
771#define push_sumlist  _rom_call(void,(CESI),4C5)
772#define push_unitv  _rom_call(void,(CESI),4C8)
773#define push_variance  _rom_call(void,(CESI),4C9)
774#define did_push_anti_deriv  _rom_call(short,(CESI,CESI,short),5B1)
775#define did_push_series  _rom_call(short,(CESI,CESI,CESI,CESI,short),588)
776#define push_1st_derivative  _rom_call(void,(CESI,CESI),5AE)
777#define push_abs  _rom_call(void,(CESI),543)
778#define push_acos  _rom_call(void,(CESI),537)
779#define push_acosh  _rom_call(void,(CESI),53E)
780#define push_asin  _rom_call(void,(CESI),536)
781#define push_asinh  _rom_call(void,(CESI),53D)
782#define push_atan  _rom_call(void,(CESI),538)
783#define push_atanh  _rom_call(void,(CESI),53F)
784#define push_ceiling  _rom_call(void,(CESI),54B)
785#define push_comb  _rom_call(void,(CESI,CESI),542)
786#define push_comdenom  _rom_call(void,(CESI,CESI),59B)
787#define push_conj  _rom_call(void,(CESI),547)
788#define push_cos  _rom_call(void,(CESI),533)
789#define push_cosh  _rom_call(void,(CESI),53B)
790#define push_csolve  _rom_call(void,(CESI,CESI),585)
791#define push_czeros  _rom_call(void,(CESI,CESI),587)
792#define push_def_int  _rom_call(void,(CESI,CESI,CESI,CESI),5B2)
793#define push_denominator  _rom_call(void,(CESI),55B)
794#define push_desolve  _rom_call(void,(CESI),58B)
795#define push_exp  _rom_call(void,(CESI),52E)
796#define push_expand  _rom_call(void,(CESI,CESI,short),59A)
797#define push_extended_prod  _rom_call(void,(CESI,CESI,CESI,CESI),5B5)
798#define push_factor  _rom_call(void,(CESI,CESI,short),59C)
799#define push_floor  _rom_call(void,(CESI),54A)
800#define push_fractional_part  _rom_call(void,(CESI),54E)
801#define push_gcd_numbers _rom_call(void,(CESI,CESI),514)
802#define push_im  _rom_call(void,(CESI),546)
803#define push_integer_gcd _rom_call(void,(CESI,CESI),551)
804#define push_integer_lcm  _rom_call(void,(CESI,CESI),552)
805#define push_integer_part  _rom_call(void,(CESI),54D)
806#define push_integer_quotient  _rom_call(void,(CESI,CESI),54F)
807#define push_integer_remainder  _rom_call(void,(CESI,CESI),550)
808#define push_is_prime  _rom_call(void,(CESI),515)
809#define push_lim  _rom_call(void,(CESI,CESI,CESI,CESI),5AD)
810#define push_ln  _rom_call(void,(CESI),52F)
811#define push_log10  _rom_call(void,(CESI),530)
812#define push_max1  _rom_call(void,(CESI),554)
813#define push_max2  _rom_call(void,(CESI,CESI),599)
814#define push_max  _rom_call(void,(CESI,CESI),58A)
815#define push_min1  _rom_call(void,(CESI),553)
816#define push_min2  _rom_call(void,(CESI,CESI),598)
817#define push_min  _rom_call(void,(CESI,CESI),589)
818#define push_mod  _rom_call(void,(CESI,CESI),54C)
819#define push_nint  _rom_call(void,(CESI,CESI,CESI,CESI),5B3)
820#define push_nsolve  _rom_call(void,(CESI,CESI),583)
821#define push_nth_derivative  _rom_call(void,(CESI,CESI,CESI),5AF)
822#define push_numerator  _rom_call(void,(CESI),55A)
823#define push_perm  _rom_call(void,(CESI,CESI),541)
824#define push_phase  _rom_call(void,(CESI),548)
825#define push_r_cis  _rom_call(void,(CESI,CESI),549)
826#define push_re  _rom_call(void,(CESI),545)
827#define push_rec_to_angle  _rom_call(void,(CESI,CESI),539)
828#define push_sign  _rom_call(void,(CESI),544)
829#define push_sin2  _rom_call(void,(CESI,CESI),531)
830#define push_sin  _rom_call(void,(CESI),532)
831#define push_sinh  _rom_call(void,(CESI),53A)
832#define push_solve  _rom_call(void,(CESI,CESI),584)
833#define push_sqrt  _rom_call(void,(CESI),52B)
834#define push_summation  _rom_call(void,(CESI,CESI,CESI,CESI),5B4)
835#define push_tan  _rom_call(void,(CESI),534)
836#define push_tanh  _rom_call(void,(CESI),53C)
837#define push_when  _rom_call(void,(CESI),57D)
838#define push_zeros  _rom_call(void,(CESI,CESI),586)
839
840/* ctype */
841#define _tolower(c) ((c)+'a'-'A')
842#define _toupper(c) ((c)+'A'-'a')
843#define isalnum(c) ({register short __c=(c);(__c>='0'&&__c<='9')||(__c>='A'&&__c<='Z')||(__c>='a'&&__c<='z');})
844#define isalpha(c) ({register short __c=(c);(__c>='A'&&__c<='Z')||(__c>='a'&&__c<='z');})
845#define isascii(c) ((unsigned short)(c)<128)
846#define iscntrl(c) ((unsigned short)(c)<14)
847#define isdigit(c) ({register short __c=(c);__c>='0'&&__c<='9';})
848#define isextalnum(c) ({register short __c=(c);(unsigned short)__c<256&&_extalnum_list[__c>>3]&(1<<(__c&7));})
849#define isextlower(c) ({register short __c=(c);(__c>='a'&&__c<='z')||(__c>=224&&__c<=254&&__c!=247);})
850#define isextpunct(c) ({register short __c=(c);(unsigned short)__c<256&&_extpunct_list[__c>>3]&(1<<(__c&7));})
851#define isextupper(c) ({register short __c=(c);(__c>='A'&&__c<='Z')||(__c>=192&&__c<=222&&__c!=215);})
852#define isfrgn(c) ({register short __c=(c);(__c>=128&&__c<148)||(__c==181||__c>=192)&&(__c<=255&&__c!=215&&__c!=247);)}
853#define isfrgnalnum(c) ({register short __c=(c);(__c>=128&&__c<=148&&__c!=140)||__c==181||(__c>=192&&__c<=255&&__c!=215&&__c!=247);})
854#define isfrgnlower(c) ({register short __c=(c);__c>=224&&__c<=254&&__c!=247;})
855#define isfrgnupper(c) ({register short __c=(c);__c>=192&&__c<=222&&__c!=215;})
856#define isgraph(c) ({register short __c=(c);__c==11||(__c>13&&__c<256&&__c!=32);})
857#define isGreek(c) ({register short __c=(c);(__c>=128&&__c<=148)||__c==181;})
858#define islower(c) ({register short __c=(c);__c>='a'&&__c<='z';})
859#define isprint(c) ({register short __c=(c);__c==11||(__c>13&&__c<256);})
860#define ispunct(c) ({register short __c=(c);__c>=33&&__c<=127&&!((__c>='0'&&__c<='9')||(__c>='A'&&__c<='Z')||(__c>='a'&&__c<='z'));})
861#define isspace(c) ({register short __c=(c);(__c>=9&&__c<=13)||__c==32;})
862#define isupper(c) ({register short __c=(c);__c>='A'&&__c<='Z';})
863#define isxdigit(c) ({register short __c=(c);(__c>='0'&&__c<='9')||(__c>='A'&&__c<='F')||(__c>='a'&&__c<='f');})
864#define toascii(c) ((c)&0x7F)
865#define toextlower(c) ({register short __c=(c);((__c>='A'&&__c<='Z')||(__c>=192&&__c<=222&&__c!=215))?(__c+'a'-'A'):__c;})
866#define toextupper(c) ({register short __c=(c);((__c>='a'&&__c<='z')||(__c>=224&&__c<=254&&__c!=247))?(__c+'A'-'a'):__c;})
867#define tolower(c) ({register short __c=(c);(__c>='A'&&__c<='Z')?(__c+'a'-'A'):__c;})
868#define toupper(c) ({register short __c=(c);(__c>='a'&&__c<='z')?(__c+'A'-'a'):__c;})
869
870/* basop.h */
871#define did_push_to_polar  _rom_call(short,(),313)
872#define push_degrees  _rom_call(void,(CESI,CESI,CESI),314)
873#define push_indir_name  _rom_call(void,(CESI),2B2)
874#define push_list_plus  _rom_call(void,(CESI,CESI),3BD)
875#define push_list_times  _rom_call(void,(CESI,CESI),3BE)
876#define push_matrix_product  _rom_call(void,(CESI,CESI),3C5)
877#define push_pow _rom_call(void,(CESI,CESI),30F)
878#define push_to_cylin  _rom_call(void,(),328)
879#define push_to_sphere  _rom_call(void,(),329)
880#define push_assignment  _rom_call(void,(CESI),4DD)
881#define push_dot_add  _rom_call(void,(CESI,CESI),4A0)
882#define push_dot_div  _rom_call(void,(CESI,CESI),4CD)
883#define push_dot_mult  _rom_call(void,(CESI,CESI),4A1)
884#define push_dot_sub  _rom_call(void,(CESI,CESI),4A2)
885#define push_radians  _rom_call(void,(CESI),4B3)
886#define push_substitute_no_simplify _rom_call(void,(CESI,CESI,CESI),489)
887#define push_and  _rom_call(void,(CESI,CESI),5AB)
888#define push_arg_minus_1  _rom_call(void,(CESI),520)
889#define push_arg_plus_1  _rom_call(void,(CESI),51F)
890#define push_difference  _rom_call(void,(CESI,CESI),51A)
891#define push_dot_exponentiate  _rom_call(void,(CESI,CESI),596)
892#define push_equals  _rom_call(void,(CESI,CESI),5A3)
893#define push_exponentiate  _rom_call(void,(CESI,CESI),595)
894#define push_factorial  _rom_call(void,(CESI),540)
895#define push_greater_than  _rom_call(void,(CESI,CESI),5A5)
896#define push_greater_than_or_equals  _rom_call(void,(CESI,CESI),5A7)
897#define push_less_than  _rom_call(void,(CESI,CESI),5A6)
898#define push_less_than_or_equals  _rom_call(void,(CESI,CESI),5A8)
899#define push_negate  _rom_call(void,(CESI),524)
900#define push_not  _rom_call(void,(CESI),5AA)
901#define push_not_equals  _rom_call(void,(CESI,CESI),5A4)
902#define push_or _rom_call(void,(CESI,CESI),5AC)
903#define push_percent  _rom_call(void,(CESI),555)
904#define push_product  _rom_call(void,(CESI,CESI),521)
905#define push_ratio  _rom_call(void,(CESI,CESI),526)
906#define push_square  _rom_call(void,(CESI),52C)
907#define push_sum  _rom_call(void,(CESI,CESI),594)
908#define push_substitute_simplify  _rom_call(void,(CESI,CESI,CESI),5B9)
909#define push_substitute_using_such_that  _rom_call(void,(CESI,CESI,CESI),5BE)
910
911/* cert.h */
912#define ceof _rom_call(short,(CFILE*),128)
913#define cfindfield _rom_call(short,(CFILE*,short,CERT_FIELD*),12A)
914#define cgetc _rom_call(unsigned char,(CFILE*),12B)
915#define cgetcertrevno _rom_call(short,(__plong),2A0)
916#define cgetflen _rom_call(unsigned long,(CFILE*,short),12D)
917#define cgetfnl _rom_call(long,(CERT_FIELD*),12E)
918#define cgetnl _rom_call(long,(CFILE*),12F)
919#define cgetns _rom_call(short,(CFILE*),130)
920#define cgetsn _rom_call(void,(char*),2A1)
921#define copen _rom_call(void,(CFILE*,char*,long),132)
922#define copensub _rom_call(void,(CFILE*,CERT_FIELD*),133)
923#define cputhdr _rom_call(short,(CFILE*,short,short),134)
924#define cputnl _rom_call(void,(CFILE*,long),135)
925#define cputns _rom_call(void,(CFILE*,short),136)
926#define cread _rom_call(short,(CFILE*,CERT_FIELD*),137)
927#define ctell _rom_call(unsigned long,(CFILE*),138)
928#define cwrite _rom_call(short,(CFILE*,CERT_FIELD*),139)
929#define CertificateMemory ((unsigned char*const)(_rom_call_addr(43E)))
930
931/* Dialog.h */
932#define Dialog  _rom_call(short,(void*,short,short,char*,__pshort),30)
933#define DialogAdd _rom_call(HANDLE,(HANDLE,short,short,short,short,...),33)
934#define DialogAddPulldown(h,x,y,t,p,i) DialogAdd(h,2,x,y,14,(const char*)(t),(short)(p),(short)(i))
935#define DialogAddRequest(h,x,y,t,o,m,w) DialogAdd(h,0,x,y,2,(const char*)(t),(short)(o),(short)(m),(short)(w))
936#define DialogAddText(h,x,y,t) DialogAdd(h,0,x,y,7,(const char*)(t))
937#define DialogAddTitle(h,t,l,r) DialogAdd(h,0,0,0,8,(const char*)(t),(short)(l),(short)(r))
938#define DialogAddScroll(h,x,y,w,g,f,t,p,u,m) DialogAdd(h,0,x,y,3,(short)w,(short)g,(short)f,(short)t,(short)p,(short)u,(short)m)
939#define DialogDo  _rom_call(short,(HANDLE,short,short,char*,__pshort),32)
940#define DialogNew _rom_call(HANDLE,(short,short,DialogNew_t),34)
941#define DialogNewSimple(w,h) DialogNew(w,h,NoCallBack)
942#define DlgMessage  _rom_call(short,(const char*,const char*,short,short),1B4)
943#define VarNew  _rom_call(HSym,(const ESQ*,...),28E)
944#define VarOpen  _rom_call(HSym,(const ESQ*,...),28C)
945#define VarSaveAs  _rom_call(HSym,(const ESQ*,const char*,...),28D)
946
947/* error.h */
948#define ER_OK 0
949#define ER_OKAY 0
950#define ER_EXIT 1
951#define ER_STOP 2
952#define ER_OFF 3
953#define ER_PRGM_STOP 4
954#define ER_NO_MSG 9
955#define ER_FUNC_DID_NOT_RETURN_VALUE 10
956#define ER_TEST_NOT_TRUE_OR_FALSE 20
957#define ER_ARG_CANNOT_BE_FOLDER 30
958#define ER_ARGUMENT 40
959#define ER_ARG_MISMATCH 50
960#define ER_EXPECTED_BOOL_OR_AGG 60
961#define ER_ARG_MUST_BE_DECIMAL 70
962#define ER_ARG_MUST_BE_LABEL 80
963#define ER_ARGUMENT_MUST_BE_LIST 90
964#define ER_ARG_MUST_BE_MATRIX 100
965#define ER_ARG_MUST_BE_PIC 110
966#define ER_ARG_MUST_BE_PIC_OR_STR 120
967#define ER_ARG_MUST_BE_STRING 130
968#define ER_EXPECTED_VAR 140
969#define ER_ARG_MUST_BE_EMPTY_FOLDER 150
970#define ER_EXPECTED_ALGEBRAIC 160
971#define ER_ASAP_TOO_LONG 161
972#define ER_ATTRIBUTE_NOT_FOUND 163
973#define ER_BATT_LOW 165
974#define ER_BOUND 170
975#define ER_BREAK 180
976#define ER_CHECKSUM 185
977#define ER_CIRCULAR_DEFINITION 190
978#define ER_INVALID_SUCH_THAT 200
979#define ER_DATATYPE 210
980#define ER_DEPENDENT_LIMIT 220
981#define ER_DIFF_EQ_SETUP 225
982#define ER_DIMENSION 230
983#define ER_NOT_ENOUGH_ELEMENTS 230
984#define ER_NON_CONFORMING_LISTS 240
985#define ER_DIVBY0 250
986#define ER_DOMAIN 260
987#define ER_DUPLICATE_VAR_NAME 270
988#define ER_ELSEIF_WITHOUT_IF 280
989#define ER_ELSE_WITHOUT_IF 280
990#define ER_ENDTRY_WITHOUT_ELSE 290
991#define ER_EXCESSIVE_ITERATION 295
992#define ER_EXPECTED_2OR3_ELEMENTS 300
993#define ER_EXPIRED 305
994#define ER_APP_EXT_NOT_FOUND 307
995#define ER_APP_NOT_FOUND 308
996#define ER_INVALID_NSOLVE_ARG1 310
997#define ER_INVALID_SOLVE_ARG1 320
998#define ER_FOLDER 330
999#define ER_FUNCS_IN_DIFF_EQ 335
1000#define ER_INCONSISTENT_UNITS 345
1001#define ER_INVALID_SUBSCRIPT 350
1002#define ER_INVALID_INDIR_STRING 360
1003#define ER_INDIR_STRING_NOT_VARNAME 360
1004#define ER_INDIR_STRING_NOT_FUNNAME 360
1005#define ER_INVALID_ANS 380
1006#define ER_ILLEGAL_ASSIGNMENT 390
1007#define ER_ILLEGAL_ASSIGNMENT_VALUE 400
1008#define ER_INVALID_AXES 405
1009#define ER_ILLEGAL_COMMAND 410
1010#define ER_INVALID_FOLDER_NAME 420
1011#define ER_GRAPH_MODE 430
1012#define ER_INVALID_GUESS 435
1013#define ER_INVALID_IMPLIED_MULT 440
1014#define ER_ILLEGAL_IN_FUNC 450
1015#define ER_ILLEGAL_IN_CUSTOM 460
1016#define ER_ILLEGAL_IN_DIALOG 470
1017#define ER_ILLEGAL_IN_TOOLBAR 480
1018#define ER_CANNOT_EXIT_FROM_TRY 490
1019#define ER_CANNOT_CYCLE_FROM_TRY 490
1020#define ER_CANNOT_GOTO_FROM_TRY 490
1021#define ER_CANNOT_GOTO_INTO_TRY 490
1022#define ER_INVALID_LABEL 500
1023#define ER_INVALID_LIST_OR_MATRIX 510
1024#define ER_INVAL_OUTSIDE_TB_CM 520
1025#define ER_INVAL_OUTSIDE_DG_TB_CM 530
1026#define ER_INVALID_OUTSIDE_DIALOG 540
1027#define ER_MUST_BE_IN_PRGM_OR_FUNC 550
1028#define ER_CYCLE_NOT_IN_LOOP 560
1029#define ER_EXIT_NOT_IN_LOOP 560
1030#define ER_INVALID_PATHNAME 570
1031#define ER_INVALID_POLAR_COMPLEX 575
1032#define ER_ILLEGAL_PRGM_REF 580
1033#define ER_INVALID_SYNTAX_BLOCK 590
1034#define ER_INVALID_TABLE 600
1035#define ER_INVALID_USE_OF_UNITS 605
1036#define ER_INVALID_LOCAL_DECLARATION 610
1037#define ER_EXPECTED_VAR_OR_FUNC 620
1038#define ER_INVALID_VAR_REF 630
1039#define ER_INVALID_VECTOR_SYNTAX 640
1040#define ER_LINK_IO 650
1041#define ER_MAT_NOT_DIAGONALIZABLE 665
1042#define ER_MEMORY 670
1043#define ER_MEMORY_EXHAUSTION 670
1044#define ER_ESTACK_OVERFLOW 670
1045#define ER_STACK_VIO 673
1046#define ER_EXPECTED_LPAR 680
1047#define ER_EXPECTED_RPAR 690
1048#define ER_EXPECTED_DOUBLE_QUOTE 700
1049#define ER_EXPECTED_RIGHT_BRACKET 710
1050#define ER_EXPECTED_RIGHT_BRACE 720
1051#define ER_INVALID_BLOCK_STRUCTURE 730
1052#define ER_MISSING_THEN 740
1053#define ER_NOT_FUNC_OR_PRGM 750
1054#define ER_NO_FUNCS_SEL 765
1055#define ER_NO_SOLUTION 780
1056#define ER_NON_ALGEBRAIC_VARIABLE 790
1057#define ER_UNREAL_RESULT 800
1058#define ER_EXPECTED_REAL 800
1059#define ER_MEMORY_DML 810
1060#define ER_RATIONAL_NUMERIC_OVERFLOW 830
1061#define ER_OVERFLOW 830
1062#define ER_STAT_PLOT 840
1063#define ER_PRGM_NOT_FOUND 850
1064#define ER_RECURSION_TOO_DEEP 860
1065#define ER_RESERVED 870
1066#define ER_SYS_FUNC 870
1067#define ER_ROM_ROUTINE_NOT_AVAILABLE 875
1068#define ER_SEQUENCE_SETUP 880
1069#define ER_SIGNATURE_ERR 885
1070#define ER_SINGULARMAT 890
1071#define ER_SLOPE_FIELD_FUNCS 895
1072#define ER_WEIGHTS_SUM_NOT_POS 900
1073#define ER_LISTS_CONTAIN_NEG 900
1074#define ER_LISTS_NOT2DISCREET 900
1075#define ER_EMPTY_GROUP_NOT_VALID 900
1076#define ER_SYNTAX 910
1077#define ER_UNEXPECTED_CHARACTER 910
1078#define ER_EXPECTED_EQUAL 910
1079#define ER_EXPECTED_FACTOR 910
1080#define ER_TOO_FEW_ARGS 930
1081#define ER_TOO_MANY_ARGS 940
1082#define ER_TOO_MANY_SUBSCRIPTS 950
1083#define ER_TOO_MANY_UNDEFINED 955
1084#define ER_UNDEFINED_VAR 960
1085#define ER_UNLICENSED 965
1086#define ER_GRAPH_FUNC_IN_USE 970
1087#define ER_PROG_OR_FUNC_IN_USE 970
1088#define ER_VAR_IN_USE 970
1089#define ER_LOCKED 980
1090#define ER_PROTECTED 980
1091#define ER_NAME_TOO_LONG 990
1092#define ER_RANGE 1000
1093#define ER_ZOOM 1010
1094#define ER_ILLEGAL_TAG 1020
1095#define ER_UNKNOWN_TAG 1020
1096#define ER_DIVISION_BUG 1020
1097#define ER_MEM_VIO 1030
1098#define ER_FP_TEST_FAIL 4094
1099#define EXPECTED_BOOL_OR_AGG_ERROR 60
1100#define EXPECTED_VAR_ERROR 140
1101#define EXPECTED_ALGEBRAIC_ERROR 160
1102#define INVALID_SUCH_THAT_ERROR 200
1103#define NON_CONFORMING_LISTS_ERROR 240
1104#define EXPECTED_2OR3_ELEMENTS_ERROR 300
1105#define INVALID_NSOLVE_ARG1_ERROR 310
1106#define INVALID_SOLVE_ARG1_ERROR 320
1107#define INVALID_PATHNAME_ERROR 570
1108#define EXPECTED_VAR_OR_FUNC_ERROR 620
1109#define MEMORY_EXHAUSTION_ERROR 670
1110#define ESTACK_OVERFLOW_ERROR 670
1111#define EXPECTED_LPAR_ERROR 680
1112#define EXPECTED_RPAR_ERROR 690
1113#define EXPECTED_DOUBLE_QUOTE_ERROR 700
1114#define EXPECTED_RIGHT_BRACKET_ERROR 710
1115#define EXPECTED_RIGHT_BRACE_ERROR 720
1116#define UNREAL_RESULT_ERROR 800
1117#define EXPECTED_REAL_ERROR 800
1118#define RATIONAL_NUMERIC_OVERFLOW_ERROR 830
1119#define RECURSION_TOO_DEEP_ERROR 860
1120#define SYNTAX_ERROR 910
1121#define UNEXPECTED_CHARACTER_ERROR 910
1122#define EXPECTED_EQUAL_ERROR 910
1123#define EXPECTED_FACTOR_ERROR 910
1124#define TOO_FEW_ARGS_ERROR 930
1125#define TOO_MANY_ARGS_ERROR 940
1126#define TOO_MANY_SUBSCRIPTS_ERROR 950
1127#define TOO_MANY_UNDEFINED_ERROR 955
1128#define GRAPH_FUNC_IN_USE_ERROR 970
1129#define NAME_TOO_LONG_ERROR 990
1130#define ILLEGAL_TAG_ERROR 1020
1131#define UNKNOWN_TAG_ERROR 1020
1132#define DIVISION_BUG_ERROR 1020
1133
1134#define ER_catch _rom_call(short,(void*),154)
1135#define ER_success _rom_call(void,(void),155)
1136#define ER_throwVar _rom_call_attr(void,(short),__attribute__((__noreturn__)),153)
1137#define ER_throw(err_no) ER_throwVar(err_no)
1138#define ER_THROW(n) ER_throwVar(n)
1139#define ERD_dialog  _rom_call(short,(short,short),151)
1140#define ERD_process  _rom_call(void,(short),152)
1141#define ENDFINAL }if(errCode)PASS;}
1142#define ENDTRY ;_ONERR_=0;}}
1143#define FINALLY ER_success();}{
1144#define ONERR ER_success();}else{register short _ONERR_=1;
1145#define PASS (ER_throwVar(errCode))
1146#define TRY {ERROR_FRAME __errFrame;unsigned short errCode;errCode=ER_catch(__errFrame);if(!errCode){
1147#define find_error_message _rom_call(const char*,(short),2C1)
1148
1149/* estack */
1150#define push_zstr(s) ({register const char*__p=(s);register long __l=_rom_call(long,(const char*),27E)(__p);char __s[__l+2];__s[0]=0;push_expr_quantum(_rom_call(char*,(char*,const char*),26C)(__s+1,__p)+__l,STR_TAG) ;})
1151#define _push_zstr_const(s) (push_expr_quantum(SYMSTR(s),STR_TAG))
1152#define top_estack (*((ESI*)(_rom_call_addr(109))))
1153#define display_statements _rom_call(HANDLE,(CESI,short,short),4E)
1154#define ESTACK(idx) (*(idx))
1155#define HS_popEStack _rom_call(HANDLE,(void),244)
1156#define HToESI _rom_call(ESI,(HANDLE),247)
1157#define next_expression_index _rom_call(ESI,(CESI),10A)
1158#define NG_approxESI  _rom_call(void,(CESI),25C)
1159#define NG_execute  _rom_call(void,(HANDLE,short),25D)
1160#define NG_graphESI  _rom_call(void,(CESI,HANDLE),25E)
1161#define NG_rationalESI  _rom_call(void,(CESI),25F)
1162#define NG_RPNToText _rom_call(HANDLE,(HANDLE,short,short),25B)
1163#define NG_tokenize  _rom_call(short,(HANDLE,__pushort,__pushort),260)
1164#define Parms2D _rom_call(void,(CESI,__pshort,__pshort,__pshort),4D)
1165#define Parse1DExpr _rom_call(HANDLE,(CESI,short,short),4F)
1166#define Parse2DExpr _rom_call(ESI,(CESI,short),4A)
1167#define Parse2DMultiExpr _rom_call(ESI,(HANDLE,short),4B)
1168#define Print2DExpr _rom_call(void,(CESI,WINDOW*,short,short),4C)
1169#define push_END_TAG _rom_call(void,(void),263)
1170#define push_LIST_TAG _rom_call(void,(void),264)
1171#define push_quantum(tag) (MIN_AMS<101?(void)(*(++top_estack)=tag):_rom_call(void,(ESQ),2EE)(tag))
1172#define TokenizeSymName  _rom_call(ESI,(const char*,short),80)
1173#define all_tail _rom_call(short,(CESI_Callback_t,ESI),3B5)
1174#define any_tail _rom_call(short,(CESI_Callback_t,ESI),3B6)
1175#define are_expressions_identical _rom_call(short,(CESI,CESI),2BF)
1176#define can_be_approxed  _rom_call(short,(CESI,short),2F5)
1177#define check_estack_size _rom_call(void,(short),2C2)
1178#define compare_complex_magnitudes  _rom_call(short,(CESI,CESI),2F6)
1179#define compare_expressions _rom_call(short,(CESI,CESI),2C0)
1180#define compare_Floats _rom_call(long,(CESI,CESI),2F7)
1181#define delete_between _rom_call(void,(ESI,ESI),2C3)
1182#define delete_expression _rom_call(void,(ESI),2C5)
1183#define deleted_between _rom_call(unsigned short,(ESI,ESI),2C4)
1184#define deleted_expression _rom_call(unsigned short,(ESI),2C6)
1185#define did_push_cnvrt_Float_to_integer _rom_call(short,(CESI),2F8)
1186#define estack_number_to_Float(x) _tios_float_1(2F9,x,CESI)
1187#define estack_to_short _rom_call(short,(CESI,__pshort),2C7)
1188#define estack_to_ushort _rom_call(short,(CESI,__pushort),2C8)
1189#define factor_base_index _rom_call(ESI,(CESI),2C9)
1190#define factor_exponent_index _rom_call(ESI,(CESI),2CA)
1191#define gcd_exact_whole_Floats(x,y) _tios_float_2(2FC,x,y,CESI,CESI)
1192#define get_key_ptr _rom_call(char*,(ESQ,ESQ),2B7)
1193#define GetValue _rom_call(long,(CESI,long,long),2CB)
1194#define im_index _rom_call(ESI,(CESI),2CC)
1195#define index_below_display_expression_aux _rom_call(ESI,(CESI),2B6)
1196#define index_main_var _rom_call(ESI,(CESI),2CF)
1197#define index_numeric_term _rom_call(ESI,(CESI),2CD)
1198#define index_of_lead_base_of_lead_term _rom_call(ESI,(CESI),2CE)
1199#define is_advanced_tag _rom_call(short,(ESQ),2D0)
1200#define is_antisymmetric  _rom_call(short,(CESI,CESI),2D1)
1201#define is_complex0 _rom_call(short,(CESI),2D3)
1202#define is_complex_number _rom_call(short,(CESI),2D2)
1203#define is_Float_exact_whole_number _rom_call(short,(CESI),2FE)
1204#define is_free_of_tag _rom_call(short,(CESI,ESQ),2D4)
1205#define is_independent_of _rom_call(short,(CESI,CESI),2D5)
1206#define is_independent_of_de_seq_vars _rom_call(short,(CESI),2D6)
1207#define is_independent_of_elements _rom_call(short,(CESI,CESI),2D8)
1208#define is_independent_of_tail _rom_call(short,(CESI,CESI),2D7)
1209#define is_matrix _rom_call(short,(CESI),3B7)
1210#define is_monomial _rom_call(short,(CESI),2D9)
1211#define is_monomial_in_kernel _rom_call(short,(CESI),2DA)
1212#define is_narrowly_independent_of _rom_call(short,(CESI,CESI),2DB)
1213#define is_square_matrix _rom_call(short,(CESI),3B8)
1214#define is_symmetric  _rom_call(short,(CESI,CESI),2DC)
1215#define is_tail_independent_of _rom_call(short,(CESI,CESI),2DD)
1216#define is_valid_smap_aggregate _rom_call(short,(CESI),3B9)
1217#define last_element_index _rom_call(ESI,(CESI),3BA)
1218#define lead_base_index _rom_call(ESI,(CESI),2DE)
1219#define lead_exponent_index _rom_call(ESI,(CESI),2DF)
1220#define lead_factor_index _rom_call(ESI,(CESI),2E0)
1221#define lead_term_index _rom_call(ESI,(CESI),2E1)
1222#define likely_approx_to_complex_number _rom_call(short,(CESI),307)
1223#define likely_approx_to_number _rom_call(short,(CESI),308)
1224#define main_gen_var_index _rom_call(ESI,(CESI),2E2)
1225#define map_tail _rom_call(void,(ESI_Callback_t,ESI),3BB)
1226#define map_tail_Int _rom_call(short,(ESI_Callback_Int_t,ESI,short),3BC)
1227#define map_unary_over_comparison _rom_call(void,(ESI_Callback_t,ESI),2E3)
1228#define min_quantum _rom_call(ESQ,(ESQ,ESQ),2E4)
1229#define move_between_to_top _rom_call(void,(ESI,ESI),2E5)
1230#define moved_between_to_top _rom_call(unsigned short,(ESI,ESI),2E6)
1231#define norm1_complex_Float(x) _tios_float_1(309,x,CESI)
1232#define numeric_factor_index _rom_call(ESI,(CESI),2E7)
1233#define push_ANSI_string push_zstr
1234#define push_between _rom_call(void,(void*,void*),2E8)
1235#define push_cnvrt_integer_if_whole_nmb _rom_call(void,(CESI),30D)
1236#define push_expr_quantum _rom_call(void,(CESI,ESQ),2E9)
1237#define push_expr2_quantum _rom_call(void,(CESI,CESI,ESQ),2EA)
1238#define push_expression(ptr) ({push_expr_quantum(ptr,NOTHING_TAG);(void)(--top_estack);})
1239#define push_Float _rom_call(void,(float),30A)
1240#define push_Float_to_nonneg_int _rom_call(void,(float),30B)
1241#define push_Float_to_rat _rom_call(void,(CESI),30C)
1242#define push_next_arb_int _rom_call(void,(void),2EB)
1243#define push_next_arb_real _rom_call(void,(void),2EC)
1244#define push_next_internal_var _rom_call(void,(ESQ),2ED)
1245#define push_offset_array _rom_call(unsigned short,(CESI,__pushort*),3C4)
1246#define push_overflow_to_infinity _rom_call(void,(ESQ),30E)
1247#define push_parse_text  _rom_call(short,(const char*),3CA)
1248#define push_quantum_pair _rom_call(void,(ESQ,ESQ),2EF)
1249#define push_reversed_tail _rom_call(void,(CESI),3BF)
1250#define push_round_Float _rom_call(void,(CESI),310)
1251#define push_transpose_aux  _rom_call(void,(CESI,short),3C1)
1252#define re_index _rom_call(ESI,(CESI),2F2)
1253#define reductum_index _rom_call(ESI,(CESI),2F0)
1254#define remaining_element_count _rom_call(unsigned short,(CESI),3C3)
1255#define remaining_factors_index _rom_call(ESI,(CESI),2F1)
1256#define reset_control_flags _rom_call(void,(void),2F4)
1257#define reset_estack_size _rom_call(void,(short),2F3)
1258#define should_and_did_push_approx_arg2  _rom_call(short,(CESI,CESI),311)
1259#define signum_Float _rom_call(long,(CESI),312)
1260#define is0 _rom_call(short,(CESI),269)
1261#define is1 _rom_call(short,(CESI),2FD)
1262#define is_variable _rom_call(short,(CESI),488)
1263#define push_long_to_integer _rom_call(void,(long),4E3)
1264#define push_simplify  _rom_call(void,(CESI),44E)
1265#define push_ulong_to_integer _rom_call(void,(long),4E4)
1266#define push_ushort_to_integer _rom_call(void,(short),4E5)
1267#define add_to_top  _rom_call(void,(CESI),518)
1268#define add1_to_top  _rom_call(void,(void),51D)
1269#define and_onto_top  _rom_call(void,(CESI),579)
1270#define integer_non_unknown  _rom_call(short,(CESI),50C)
1271#define is_constant _rom_call(short,(CESI),593)
1272#define is_minus1 _rom_call(short,(CESI),508)
1273#define is_negative  _rom_call(short,(CESI),575)
1274#define is_never0  _rom_call(short,(CESI),577)
1275#define is_nonnegative  _rom_call(short,(CESI),574)
1276#define is_nonpositive  _rom_call(short,(CESI),576)
1277#define is_polynomial_in_var_or_kern _rom_call(short,(CESI,CESI),56B)
1278#define is_positive  _rom_call(short,(CESI),573)
1279#define is_totally_polynomial _rom_call(short,(CESI),56C)
1280#define is_whole_number _rom_call(short,(CESI),50B)
1281#define negate_top  _rom_call(void,(void),525)
1282#define subtract_from_top  _rom_call(void,(CESI),51B)
1283#define subtract1_from_top  _rom_call(void,(void),51E)
1284#define ARb_int_count (*((ESQ*)(_rom_call_addr(5C3))))
1285#define ARb_real_count (*((ESQ*)(_rom_call_addr(5C2))))
1286
1287/* events */
1288#define ModeSettings ((MO_OPTIONS*const)(long)*(short*)((char*)MO_currentOptions+6))
1289#define EV_hook (*((EVENT_HANDLER*)(_rom_call_addr(2A3))))
1290#define ABT_dialog _rom_call(void,(void),10D)
1291#define CAT_dialog _rom_call(void,(void),125)
1292#define EV_captureEvents _rom_call(EVENT_HANDLER,(EVENT_HANDLER),C6)
1293#define EV_centralDispatcher  _rom_call(void,(void),156)
1294#define EV_clearPasteString _rom_call(void,(void),C7)
1295#define EV_defaultHandler  _rom_call(void,(EVENT*),157)
1296#define EV_eventLoop  _rom_call(void,(void),158)
1297#define EV_getc  _rom_call(unsigned short,(short,EVENT*),C8)
1298#define EV_getSplitRect _rom_call(WIN_RECT*,(short),C9)
1299#define EV_notifySwitchGraph _rom_call(void,(void),CA)
1300#define EV_paintOneWindow _rom_call(short,(void),CB)
1301#define EV_paintWindows _rom_call(void,(void),CC)
1302#define EV_registerMenu _rom_call(void,(void*),159)
1303#define EV_restorePainting _rom_call(short,(short),CD)
1304#define EV_sendEvent _rom_call(void,(short,EVENT*),CE)
1305#define EV_sendEventSide _rom_call(void,(short,EVENT*,short),CF)
1306#define EV_sendString _rom_call(void,(short),D0)
1307#define EV_setCmdCheck _rom_call(void,(short,short),D1)
1308#define EV_setCmdState _rom_call(void,(short,short),D2)
1309#define EV_setFKeyState _rom_call(void,(short,short,short),D3)
1310#define EV_startApp _rom_call(void,(short,short),D4)
1311#define EV_startSide _rom_call(void,(__pshort,short,short),D5)
1312#define EV_startTask _rom_call(void,(short),D6)
1313#define EV_suspendPainting _rom_call(short,(void),D7)
1314#define EV_switch _rom_call(void,(void),D8)
1315#define handleRclKey  _rom_call(void,(short),14F)
1316#define MO_currentOptions _rom_call(void,(void),D9)
1317#define MO_defaults  _rom_call(void,(void),DA)
1318#define MO_digestOptions  _rom_call(void,(short),DB)
1319#define MO_isMultigraphTask _rom_call(short,(short),DC)
1320#define MO_modeDialog  _rom_call(void,(void),DD)
1321#define MO_notifyModeChange _rom_call(void,(short),DE)
1322#define MO_sendQuit _rom_call(void,(short,short),DF)
1323#define handleVarLinkKey  _rom_call(void,(short),129)
1324
1325#define AP_START_NEW (AMS_1xx?__AP_START_NEW_1:__AP_START_NEW_2)
1326#define AP_START_OPEN (AMS_1xx?__AP_START_OPEN_1:__AP_START_OPEN_2)
1327#define AP_START_ERROR (AMS_1xx?__AP_START_ERROR_1:__AP_START_ERROR_2)
1328
1329/* Flash */
1330#define EM_abandon _rom_call(void,(HANDLE),15B)
1331#define EM_blockVerifyErase _rom_call(short,(void*),15D)
1332#define EM_findEmptySlot(s) (__EM_findEmptySlot((s),0))
1333#define EM_GC _rom_call(short,(short),160)
1334#define EM_survey _rom_call(void,(__pulong,__pulong,__pulong,__pulong,__pulong,__pulong),165)
1335#define EM_write _rom_call(void,(const void*,void*,long),167)
1336#define FL_addCert _rom_call(unsigned short,(void*,long),169)
1337#define FL_download _rom_call(void,(long),16A)
1338#define FL_getCert _rom_call(void,(HANDLE*,__pulong,short),16C)
1339#define FL_getHardwareParmBlock() (((_ram_call(14,unsigned short)==0x1100)?(const void*)"\0\x6\0\0\0\x1":_rom_call(const void*,(void),16B)())
1340#define FL_getVerNum _rom_call(unsigned short,(void),16D)
1341#define FL_write _rom_call(void,(const void*,void*,long),171)
1342#define GetAMSSize() ((*((unsigned long*)(((char*)ROM_base)+0x12002)))+0x49)
1343#define FlashMemoryEnd ((unsigned char*const)(_rom_call_addr(43D)))
1344#define BatTooLowFlash _rom_call(short,(short),434)
1345
1346/* Float */
1347#define DBL_DIG 16
1348#define DBL_EPSILON (1e-15)
1349#define DBL_MANT_BITS 64
1350#define DBL_MANT_DIG 16
1351#define DBL_MAX (9.999999999999999e999)
1352#define DBL_MAX_10_EXP 999
1353#define DBL_MAX_2_EXP 3321
1354#define DBL_MAX_EXP 999
1355#define DBL_MIN (1e-999)
1356#define DBL_MIN_10_EXP (-999)
1357#define DBL_MIN_2_EXP (-3318)
1358#define DBL_MIN_EXP (-999)
1359#define FLT_DIG 16
1360#define FLT_EPSILON (1e-15)
1361#define FLT_MANT_BITS 64
1362#define FLT_MANT_DIG 16
1363#define FLT_MAX (9.999999999999999e999)
1364#define FLT_MAX_10_EXP 999
1365#define FLT_MAX_2_EXP 3321
1366#define FLT_MAX_EXP 999
1367#define FLT_MIN (1e-999)
1368#define FLT_MIN_10_EXP (-999)
1369#define FLT_MIN_2_EXP (-3318)
1370#define FLT_MIN_EXP (-999)
1371#define FLT_NORMALIZE 1
1372#define FLT_RADIX 10
1373#define FLT_ROUNDS 1
1374#define LDBL_DIG 16
1375#define LDBL_EPSILON (1e-15)
1376#define LDBL_MANT_BITS 64
1377#define LDBL_MANT_DIG 16
1378#define LDBL_MAX (9.999999999999999e999)
1379#define LDBL_MAX_10_EXP 999
1380#define LDBL_MAX_2_EXP 3321
1381#define LDBL_MAX_EXP 999
1382#define LDBL_MIN (1e-999)
1383#define LDBL_MIN_10_EXP (-999)
1384#define LDBL_MIN_2_EXP (-3318)
1385#define LDBL_MIN_EXP (-999)
1386#define HALF_PI (1.570796326794897)
1387#define NAN (0./0.)
1388#define NEGATIVE_INF (1/NEGATIVE_ZERO)
1389#define NEGATIVE_ZERO (-POSITIVE_ZERO)
1390#define PI (3.141592653589793)
1391#define POSITIVE_INF (1/POSITIVE_ZERO)
1392#define POSITIVE_ZERO (1.e-8192*1.e-8192)
1393#define UNSIGNED_INF (1/UNSIGNED_ZERO)
1394#define UNSIGNED_ZERO (0.)
1395#define ZERO (0.)
1396
1397#define abs(x) ({typeof(x) __x = (x); __x >= 0 ? __x : -__x ;})
1398#define acos(x) _tios_float_1(F5,x,float)
1399#define acosh(x) _tios_float_1(288,x,float)
1400#define asin(x) _tios_float_1(F6,x,float)
1401#define asinh(x) _tios_float_1(287,x,float)
1402#define atan2(x,y) _tios_float_2(F8,x,y,float,float)
1403#define atan(x) _tios_float_1(F7,x,float)
1404#define atanh(x) _tios_float_1(289,x,float)
1405#define cacos _rom_call(void,(float,float,float*,float*),13A)
1406#define cacosh _rom_call(void,(float,float,float*,float*),13D)
1407#define casin _rom_call(void,(float,float,float*,float*),13B)
1408#define casinh _rom_call(void,(float,float,float*,float*),13E)
1409#define catan _rom_call(void,(float,float,float*,float*),13C)
1410#define catanh _rom_call(void,(float,float,float*,float*),13F)
1411#define ccos _rom_call(void,(float,float,float*,float*),140)
1412#define ccosh _rom_call(void,(float,float,float*,float*),143)
1413#define ceil(x) _tios_float_1(105,x,float)
1414#define cexp _rom_call(void,(float,float,float*,float*),149)
1415#define cln _rom_call(void,(float,float,float*,float*),147)
1416#define clog10 _rom_call(void,(float,float,float*,float*),148)
1417#define cos(x) _tios_float_1(F9,x,float)
1418#define cosh(x) _tios_float_1(FC,x,float)
1419#define csin _rom_call(void,(float,float,float*,float*),141)
1420#define csinh _rom_call(void,(float,float,float*,float*),144)
1421#define csqrt _rom_call(void,(float,float,float*,float*),146)
1422#define ctan _rom_call(void,(float,float,float*,float*),142)
1423#define ctanh _rom_call(void,(float,float,float*,float*),145)
1424#define exp(x) _tios_float_1(FF,x,float)
1425#define fabs(x) _tios_float_1(106,x,float)
1426#define floor(x) _tios_float_1(107,x,float)
1427#define fmod(x,y) _tios_float_2(108,x,y,float,float)
1428#define hypot(x,y) ({float __x=(x),__y=(y);sqrt(fadd(fmul((__x),(__x)),fmul((__y),(__y)))) ;})
1429#define log(x) _tios_float_1(100,x,float)
1430#define log10(x) _tios_float_1(101,x,float)
1431#define modf(x,y) _tios_float_2(102,x,y,float,float*)
1432#define pow(x,y) _tios_float_2(103,x,y,float,float)
1433#define sin(x) _tios_float_1(FA,x,float)
1434#define sinh(x) _tios_float_1(FD,x,float)
1435#define sqrt(x) _tios_float_1(104,x,float)
1436#define tan(x) _tios_float_1(FB,x,float)
1437#define tanh(x) _tios_float_1(FE,x,float)
1438#define frexp10(x,y) _tios_float_2(2FB,x,y,float,__pshort)
1439#define is_inf _rom_call(short,(float),2FF)
1440#define is_nan _rom_call(short,(float),306)
1441#define is_nzero _rom_call(short,(float),300)
1442#define is_pzero _rom_call(short,(float),301)
1443#define is_sinf _rom_call(short,(float),302)
1444#define is_transfinite _rom_call(short,(float),303)
1445#define is_uinf_or_nan _rom_call(short,(float),304)
1446#define is_uzero _rom_call(short,(float),305)
1447
1448/* Draw */
1449#define GD_Circle  _rom_call(void,(void),176)
1450#define GD_Contour  _rom_call(void,(void),17D)
1451#define GD_Eraser  _rom_call(void,(void),17A)
1452#define GD_HVLine  _rom_call(void,(short),178)
1453#define GD_Line  _rom_call(void,(void),177)
1454#define GD_Pen  _rom_call(void,(void),179)
1455#define GD_Select  _rom_call(void,(void),17C)
1456#define GD_Text  _rom_call(void,(void),17B)
1457#define GR3_paint3d  _rom_call(void,(void),1FF)
1458#define GR3_xyToWindow  _rom_call(void,(float,float,float*,__pshort,__pshort),200)
1459#define GZ_Box  _rom_call(void,(void),22B)
1460#define GZ_Center  _rom_call(void,(void),22C)
1461
1462#define BITMAP_HDR_SIZE 4
1463#define ScrRect ((SCR_RECT*const)(_rom_call_addr(2F)))
1464#define BitmapGet _rom_call(void,(const SCR_RECT*,void*),185)
1465#define BitmapInit _rom_call(void,(const SCR_RECT*,void*),186)
1466#define BitmapPut _rom_call(void,(short,short,const void*,const SCR_RECT*,short),187)
1467#define BitmapSize _rom_call(unsigned short,(const SCR_RECT*),188)
1468#define ClrScr _rom_call(void,(void),19E)
1469#define ClearScreen ClrScr
1470#define DisplayOff() (pokeIO_bclr(0x600015,0))
1471#define DisplayOn() (pokeIO_bset(0x600015,0))
1472#define DrawChar _rom_call(void,(short,short,char,short),1A4)
1473#define DrawClipChar _rom_call(void,(short,short,short,const SCR_RECT*,short),191)
1474#define DrawClipEllipse _rom_call(void,(short,short,short,short,const SCR_RECT*,short),192)
1475#define DrawClipLine _rom_call(void,(const WIN_RECT*,const SCR_RECT*,short),193)
1476#define DrawClipPix _rom_call(void,(short,short),194)
1477#define DrawClipRect _rom_call(void,(const WIN_RECT*,const SCR_RECT*,short),195)
1478#define DrawFkey _rom_call(void,(short,short,short,short),1A5)
1479#define DrawIcon _rom_call(void,(short,short,const void*,short),1A6)
1480#define DrawLine _rom_call(void,(short,short,short,short,short),1A7)
1481#define DrawMultiLines _rom_call(void,(short,short,const void*),196)
1482#define DrawPix _rom_call(void,(short,short,short),1A8)
1483#define DrawStr _rom_call(void,(short,short,const char*,short),1A9)
1484#define DrawStrXY DrawStr
1485#define DrawStrWidth _rom_call(short,(const char*,short),197)
1486#define DrawTo _rom_call(void,(short,short),19C)
1487#define FillLines2 _rom_call(void,(const WIN_RECT*,const WIN_RECT*,const SCR_RECT*,short),199)
1488#define FillTriangle _rom_call(void,(short,short,short,short,short,short,const SCR_RECT*,short),198)
1489#define FontCharWidth _rom_call(short,(short),190)
1490#define FontGetSys _rom_call(unsigned char,(void),18E)
1491#define FontSetSys _rom_call(unsigned char,(short),18F)
1492#define GetPix _rom_call(short,(short,short),19F)
1493#define LCD_restore(b) ((void)(_rom_call(void,(),26A)(LCD_MEM,(const void*)(b),(long)LCD_SIZE)))
1494#define LCD_save(b) ((void)(_rom_call(void,(),26A)((void*)(b),LCD_MEM,(long)LCD_SIZE)))
1495#define LineTo _rom_call(void,(short,short),19C)
1496#define MakeWinRect _rom_call(WIN_RECT*,(short,short,short,short),2C)
1497#define MoveTo _rom_call(void,(short,short),19D)
1498#define PortRestore _rom_call(void,(void),1A3)
1499#define PortSet _rom_call(void,(void*,short,short),1A2)
1500#define QScrRectOverlap _rom_call(short,(const SCR_RECT*,const SCR_RECT*),18D)
1501#define RestoreScrState _rom_call(void,(const void*),1A1)
1502#define SaveScrState _rom_call(void,(void*),1A0)
1503#define ScrRectFill _rom_call(void,(const SCR_RECT*,const SCR_RECT*,short),189)
1504#define ScrRectOverlap _rom_call(short,(const SCR_RECT*,const SCR_RECT*,SCR_RECT*),18A)
1505#define ScrRectScroll _rom_call(void,(const SCR_RECT*,const SCR_RECT*,short,short),18B)
1506#define ScrRectShift _rom_call(void,(const SCR_RECT*,const SCR_RECT*,short,short),18C)
1507#define ScrToHome _rom_call(SCR_RECT*,(SCR_RECT*),2E)
1508#define ScrToWin _rom_call(WIN_RECT*,(const SCR_RECT*),2D)
1509#define SetCurAttr _rom_call(short,(short),19A)
1510#define SetCurClip _rom_call(void,(const SCR_RECT*),19B)
1511#define CalcBitmapSize _rom_call(unsigned short,(BITMAP*),3EF)
1512#define ClientToScr _rom_call(void,(const SCR_RECT*,const SCR_RECT*,SCR_RECT*),42C)
1513#define DrawStrWidthP _rom_call(unsigned short,(const char*,short,short),3EE)
1514#define MakeScrRect _rom_call(SCR_RECT*,(short,short,short,short,SCR_RECT*),42D)
1515
1516/* Home screen */
1517#define HomeExecute  _rom_call(void,(const char*,short),10E)
1518#define HomePushEStack _rom_call(void,(void),10F)
1519#define HS_chopFIFO _rom_call(void,(void),23C)
1520#define HS_countFIFO _rom_call(unsigned short,(void),23D)
1521#define HS_deleteFIFONode _rom_call(HANDLE,(HANDLE),23E)
1522#define HS_freeAll _rom_call(void,(void),23F)
1523#define HS_freeFIFONode _rom_call(void,(HANDLE),240)
1524#define HS_getAns _rom_call(HANDLE,(short),241)
1525#define HS_getEntry _rom_call(HANDLE,(short),242)
1526#define HS_getFIFONode _rom_call(HANDLE,(short),243)
1527#define HS_newFIFONode _rom_call(HANDLE,(void),245)
1528#define HS_popEStack _rom_call(HANDLE,(void),244)
1529#define HS_pushEmptyFIFONode (*(__get_HS_pushEmptyFIFONode()))
1530#define HS_pushFIFONode _rom_call(void,(HANDLE),246)
1531#define HomeAlone _rom_call(unsigned short,(void),506)
1532
1533/* Int */
1534#define AUTO_INT_COUNT (LAST_AUTO_INT-FIRST_AUTO_INT+1)
1535#define FIRST_AUTO_INT 1
1536#define FIRST_TRAP 0
1537#define LAST_AUTO_INT 7
1538#define LAST_TRAP 15
1539#define TRAP_COUNT (LAST_TRAP-FIRST_TRAP+1)
1540#define AutoInts IntVecs
1541#define AUTO_INT(IntNo) ((long)(IntNo)*4+0x60)
1542#define DisableAutoInt3() ({ asm volatile ("bclr #2,0x600015"); })
1543#define DisablePRG() ({ asm volatile ("bclr #3,0x600015"); })
1544#define DUMMY_HANDLER ((INT_HANDLER)(&__dummy_handler__))
1545#define EnableAutoInt3() ({ asm volatile ("bset #2,0x600015"); })
1546#define EnablePRG() ({ asm volatile ("bset #3,0x600015"); })
1547#define ExecuteHandler(h) ({ INT_HANDLER __addr=(h); asm("pea 0f;move %%sr,-(%%sp);jra (%0);0:"::"a"(__addr)); })
1548#define GetIntVec(i) (*(INT_HANDLER*)(i))
1549#define IsAutoInt3Enabled() (!!((*((volatile unsigned char*)0x600015))&0x4))
1550#define IsPRGEnabled() (!!((*((volatile unsigned char*)0x600015))&0x8))
1551#define PRG_getRate() (((*((unsigned char*)0x600015))&0x30)>>4)
1552#define PRG_getValue() (*((volatile unsigned char*)0x600017))
1553#define PRG_setRate(x) (*((unsigned char*)0x600015)=(*((unsigned char*)0x600015)&0xCF)|(((x)&0x3)<<4))
1554#define PRG_setStart(x) (*((volatile unsigned char*)0x600017)=(x))
1555#define SetIntVec(i,h) ({asm volatile ("bclr.b #2,0x600001");(void) (*(INT_HANDLER*)(i) = (h));asm volatile ("bset.b #2,0x600001");})
1556#define TRAP(TrapNo) ((long)(TrapNo)*4+0x80)
1557#define DEFINE_INT_HANDLER(name) extern _DEREF_INT_HANDLER name[]; asm(".text;.even;"#name":move.w #0x2700,%sr;movem.l %d0-%d7/%a0-%a6,-(%sp);jbsr __"#name"_body__;movem.l (%sp)+,%d0-%d7/%a0-%a6;rte"); void __##name##_body__(void)
1558
1559/* Keyboard */
1560#define GKeyDown  _rom_call(short,(void),17F)
1561#define GKeyFlush  _rom_call(void,(void),180)
1562#define GKeyIn  _rom_call(short,(SCR_RECT*,short),17E)
1563#define kbhit  _rom_call(short,(void),52)
1564#define ngetchx  _rom_call(short,(void),51)
1565#define OSGetStatKeys _rom_call(short,(void),299)
1566#define _OSInitBetweenKeyDelay _rom_call(short,(short),249)
1567#define OSInitBetweenKeyDelay(rate) ({short __oldRate=_OSInitBetweenKeyDelay(48);(__oldRate*48-1)/_OSInitBetweenKeyDelay((rate))+1;})
1568#define OSInitKeyInitDelay _rom_call(short,(short),248)
1569#define pushkey  _rom_call(void,(short),50)
1570#define alphaLockOff _rom_call(void,(unsigned char*),482)
1571#define alphaLockOn _rom_call(void,(unsigned char*),481)
1572#define GetAlphaStatus _rom_call(unsigned char,(void),164)
1573#define KeyYesOrNo _rom_call(short,(short),3EB)
1574#define restoreAlphaLock _rom_call(void,(unsigned char*),483)
1575#define SetAlphaStatus _rom_call(void,(char),163)
1576
1577/* Limits */
1578#ifdef __CHAR_UNSIGNED__
1579#define CHAR_MAX 255
1580#define CHAR_MIN 0
1581#else
1582#define CHAR_MAX 127
1583#define CHAR_MIN (-128)
1584#endif
1585#ifdef __INT_SHORT__
1586#define INT_MAX 0x7FFF
1587#define INT_MIN ((int)0x8000)
1588#define UINT_MAX 0xFFFFU
1589#else
1590#define INT_MAX 0x7FFFFFFFL
1591#define INT_MIN ((int)0x80000000L)
1592#define UINT_MAX 0xFFFFFFFFUL
1593#endif
1594#define CHAR_BIT 8
1595#define LONG_MAX 0x7FFFFFFFL
1596#define LONG_MIN ((long)0x80000000L)
1597#define SCHAR_MAX 127
1598#define SCHAR_MIN (-128)
1599#define SHRT_MAX 0x7FFF
1600#define SHRT_MIN ((short)0x8000)
1601#define UCHAR_MAX 255
1602#define ULONG_MAX 0xFFFFFFFFUL
1603#define USHRT_MAX 0xFFFFU
1604
1605/* Link */
1606#define flush_link _rom_call(void,(void),24D)
1607#define getcalc  _rom_call(void,(SYM_STR),54)
1608#define LIO_Get _rom_call(unsigned short,(LIO_CTX*),57)
1609#define LIO_GetMultiple  _rom_call(short,(LIO_CTX*),59)
1610#define LIO_Receive  _rom_call(unsigned short,(LIO_CTX*,short,short),58)
1611#define LIO_RecvData _rom_call(unsigned short,(void*,long,long),5B)
1612#define LIO_Send _rom_call(unsigned short,(LIO_CTX*,short),56)
1613#define LIO_SendData _rom_call(unsigned short,(const void*,long),5A)
1614#define LIO_SendProduct _rom_call(unsigned short,(LIO_CTX*,short),253)
1615#define OSCheckSilentLink _rom_call(short,(void),24A)
1616#define OSLinkClose _rom_call(void,(void),24E)
1617#define OSLinkCmd  _rom_call(void,(short),24B)
1618#define OSLinkOpen _rom_call(void,(void),24D)
1619#define OSLinkReset _rom_call(void,(void),24C)
1620#define OSLinkTxQueueActive _rom_call(short,(void),252)
1621#define OSLinkTxQueueInquire _rom_call(unsigned short,(void),251)
1622#define OSReadLinkBlock _rom_call(unsigned short,(char*,short),24F)
1623#define OSWriteLinkBlock _rom_call(short,(const char*,short),250)
1624#define receive _rom_call(unsigned short,(char*,short),24F)
1625#define reset_link _rom_call(void,(void),24C)
1626#define sendcalc  _rom_call(unsigned short,(SYM_STR,short,short,unsigned char*),55)
1627#define transmit _rom_call(short,(const char*,short),250)
1628#define tx_free _rom_call(unsigned short,(void),252)
1629
1630/* menus */
1631#define MenuAddIcon _rom_call(HANDLE,(HANDLE,short,const void*,short,short),42)
1632#define MenuAddText _rom_call(HANDLE,(HANDLE,short,const char*,short,short),41)
1633#define MenuBegin _rom_call(HANDLE,(const void*,short,short,short,...),36)
1634#define MenuCheck _rom_call(short,(HANDLE,short,short),37)
1635#define MenuEnd _rom_call(void,(HANDLE),38)
1636#define MenuGetTopRedef _rom_call(short,(HANDLE,short),40)
1637#define MenuKey  _rom_call(short,(HANDLE,short),39)
1638#define MenuNew _rom_call(HANDLE,(short,short,short),43)
1639#define MenuOn _rom_call(void,(HANDLE),3A)
1640#define MenuPopup  _rom_call(unsigned short,(const void*,short,short,short),3B)
1641#define MenuSubStat _rom_call(void,(HANDLE,short,short),3C)
1642#define MenuTopRedef _rom_call(void,(HANDLE,short,short),3F)
1643#define MenuTopSelect _rom_call(void,(HANDLE,short),3E)
1644#define MenuTopStat _rom_call(void,(HANDLE,short,short),3D)
1645#define MenuUpdate _rom_call(void,(void),49)
1646#define PopupAddText _rom_call(HANDLE,(HANDLE,short,const char*,short),44)
1647#define PopupClear _rom_call(HANDLE,(HANDLE),46)
1648#define PopupDo  _rom_call(short,(HANDLE,short,short,short),47)
1649#define PopupNew _rom_call(HANDLE,(const char*,short),45)
1650#define PopupText _rom_call(const char*,(HANDLE,short),48)
1651#define VarCreateFolderPopup _rom_call(HANDLE,(__pushort,short),28F)
1652#define DynMenuAdd _rom_call(HANDLE,(HANDLE,short,const void*,short,short),3F1)
1653#define DynMenuChange _rom_call(HANDLE,(HANDLE,short,const void*,short),3F0)
1654#define MenuFlags _rom_call(short,(HANDLE),3F4)
1655#define MenuItemDef _rom_call(void*,(HANDLE,short,__pushort),3F3)
1656#define MenuLoad _rom_call(HANDLE,(const void*,short),3F2)
1657#define MenuOff _rom_call(void,(HANDLE),419)
1658#define PopupBegin _rom_call(HANDLE,(HANDLE,short),3F5)
1659#define PopupBeginDo  _rom_call(short,(HANDLE,short,short,short),3F6)
1660#define QMenuTopSelect _rom_call(unsigned short,(HANDLE),41A)
1661#define FKeyI_H _rom_call(short,(HANDLE,short),592)
1662
1663/* Peek poke */
1664#define peek(addr) (*((unsigned char*)(long)(addr)))
1665#define peek_bit(addr,bit) (!!(*((unsigned char*)(long)(addr))&(1<<(bit))))
1666#define peek_l(addr) (*((unsigned long*)(long)(addr)))
1667#define peek_w(addr) (*((unsigned short*)(long)(addr)))
1668#define peekIO(port) (*((volatile unsigned char*)(long)(port)))
1669#define peekIO_bit(port,bit) (!!(*((volatile unsigned char*)(long)(port))&(1<<(bit))))
1670#define peekIO_w(port) (*((volatile unsigned short*)(long)(port)))
1671#define poke(addr,val) (void)(*((unsigned char*)(long)(addr))=(val))
1672#define poke_bclr(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bclr.b %2,%0":"+dm"(*__addr_temp__):"0"(*__addr_temp__),"di"(__bit_nr__)); })
1673#define poke_bset(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bset.b %2,%0":"+dm"(*__addr_temp__):"0"(*__addr_temp__),"di"(__bit_nr__)); })
1674#define poke_l(addr,val) (void)(*((unsigned long*)(long)(addr))=(val))
1675#define poke_w(addr,val) (void)(*((unsigned short*)(long)(addr))=(val))
1676#define pokeIO(port,val) (void)(*((volatile unsigned char*)(long)(port))=(val))
1677#define pokeIO_bclr(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bclr.b %2,%0":"+dm"(*__addr_temp__):"0"(*__addr_temp__),"di"(__bit_nr__)); })
1678#define pokeIO_bset(__dest_addr__,__bit_nr__) ({register char *__addr_temp__=(char *)(__dest_addr__);asm("bset.b %2,%0":"+dm"(*__addr_temp__):"0"(*__addr_temp__),"di"(__bit_nr__)); })
1679#define pokeIO_w(port,val) (void)(*((volatile unsigned short*)(long)(port))=(val))
1680#define speek(addr) (*((signed char*)(long)(addr)))
1681#define speek_l(addr) (*((signed long*)(long)(addr)))
1682#define speek_w(addr) (*((signed short*)(long)(addr)))
1683
1684/* RSA */
1685#define BN_power17Mod _rom_call(void,(BN*,const BN*,const BN*),122)
1686#define BN_powerMod _rom_call(void,(BN*,const BN*,const BN*,const BN*),123)
1687#define BN_prodMod _rom_call(void,(BN*,const BN*,const BN*),124)
1688#define cdecrypt _rom_call(void,(BN*,char*,long,BN*),127)
1689#define MD5Done _rom_call(void,(BN*,MD5_CTX*),257)
1690#define MD5Final _rom_call(void,(unsigned char*,MD5_CTX*),256)
1691#define MD5Init _rom_call(void,(MD5_CTX*),254)
1692#define MD5Update _rom_call(void,(MD5_CTX*,unsigned char*,long),255)
1693
1694/* statlines */
1695#define ST_angle _rom_call(void,(short),E0)
1696#define ST_batt _rom_call(void,(short),E1)
1697#define ST_busy _rom_call(void,(short),E2)
1698#define ST_eraseHelp _rom_call(short,(void),E3)
1699#define ST_folder _rom_call(void,(const char*),E4)
1700#define ST_graph _rom_call(void,(short),E5)
1701#define ST_helpMsg _rom_call(void,(const char*),E6)
1702#define ST_showHelp ST_helpMsg
1703#define ST_modKey _rom_call(void,(short),E7)
1704#define ST_precision _rom_call(void,(short),E8)
1705#define ST_readOnly _rom_call(void,(short),E9)
1706#define ST_refDsp _rom_call(void,(short),EB)
1707#define ST_stack _rom_call(void,(short,short),EA)
1708#define ST_progressBar _rom_call(void,(ST_PROGRESS_BAR*,long,long),4D8)
1709#define ST_progressDismiss _rom_call(void,(ST_PROGRESS_BAR*),4DB)
1710#define ST_progressIncrement _rom_call(void,(ST_PROGRESS_BAR*,long),4DA)
1711#define ST_progressUpdate _rom_call(void,(ST_PROGRESS_BAR*,long),4D9)
1712
1713/* Std*/
1714#define longjmp _rom_call(void,(void*,short),267)
1715#define setjmp _rom_call(short,(void*),266)
1716#define jmp_buf JMP_BUF
1717#define va_arg(ap,type) (*(type*)((((char*)(ap))+=((sizeof(type)+1)&0xFFFE))-(((sizeof(type)+1)&0xFFFE))))
1718#define va_end(ap) ((void)0)
1719#define va_start(ap,parmN) ((void)((ap)=(va_list)((char*)(&parmN)+((sizeof(parmN)+1)&0xFFFE))))
1720#define offsetof(type,member) ((unsigned long)&(((type*)0)->member))
1721#define OFFSETOF offsetof
1722
1723/* stdio */
1724#define EOF (-1)
1725#define NULL ((void*)0)
1726#define TMP_MAX 152587890625
1727#define clearerr(f) ((void)(((f)->flags)&=~(_F_EOF|_F_ERR)))
1728#define feof(f) (((f)->flags)&_F_EOF)
1729#define ferror(f) (((f)->flags)&_F_ERR)
1730#define fflush(f) ((f)->unget=0)
1731#define fgetpos(f,p) (((long)((*(p)=ftell(f))))==EOF)
1732#define freopen(n,m,f) (fclose(f),(f)=fopen((n),(m)),(f))
1733#define fscanf(__file__,__format__...) cbscanf((vcbscanf_get_Callback_t)__fscanf_get,(vcbscanf_unget_Callback_t)__fscanf_unget,(void*)(__file__),__format__)
1734#define fsetpos(f,p) fseek((f),*(p),SEEK_SET)
1735#define getc fgetc
1736#define getchar fgetchar
1737#define printf_xy(x,y,f...) ({char __s[200];_rom_call(short,(char*,const char*,...),53)(__s ,##f);_rom_call(void,(short,short,const char*,short),1A9)(x,y,__s,4); })
1738#define putc fputc
1739#define putchar fputchar
1740#define remove unlink
1741#define rewind(f) ((void)({FILE*__file1__=(f);fseek(__file1__,0,SEEK_SET);__file1__->flags&=~_F_ERR;}))
1742#define scanf(__format__...) ({long __maxbuflen=(_rom_call(unsigned long,(void),9C))()-2;(__maxbuflen>0)?({char*__inputbuf=(_rom_call(void*,(long),A2))(__maxbuflen);getsn(__inputbuf,__maxbuflen);short __result=sscanf(__inputbuf,__format__);(_rom_call(void,(void*),A3))(__inputbuf);__result;}):0;})
1743#define sprintf _rom_call_attr(short,(char*,const char*,...),__attribute__((__format__(__printf__,2,3))),53)
1744#define sscanf(__buffer__,__format__...) ({__sscanf_string __param__={(__buffer__),0};cbscanf((vcbscanf_get_Callback_t)__sscanf_get,(vcbscanf_unget_Callback_t)__sscanf_unget,&__param__,__format__);})
1745#define strerror _rom_call(char*,(short),27D)
1746#define ungetc(c,f) ((f)->unget=((c)|0x8000))
1747#define vcbprintf ({register long __a=32+(long)(_rom_call_addr(53));(__vcbprintf__type__)(__a+*(short*)__a); })
1748#define vfprintf(s,f,a) vcbprintf((vcbprintf_Callback_t)fputc,(void**)(s),(f),(a))
1749#define vfscanf(__file__,__format__,__arglist__) vcbscanf((vcbscanf_get_Callback_t)__fscanf_get,(vcbscanf_unget_Callback_t)__fscanf_unget,(void*)(__file__),(__format__),(__arglist__))
1750#define vprintf(f,a) vcbprintf((vcbprintf_Callback_t)fputchar,NULL,(f),(a))
1751#define vscanf(__format__,__arglist__) ({long __maxbuflen=(_rom_call(unsigned long,(void),9C))()-2;(__maxbuflen>0)?({char*__inputbuf=(_rom_call(void*,(long),A2))(__maxbuflen);getsn(__inputbuf,__maxbuflen);short __result=vsscanf(__inputbuf,(__format__),(__arglist__));(_rom_call(void,(void*),A3))(__inputbuf);__result;}):0;})
1752#define vsprintf(b,f,a) ((void)({void*__p=(b);vcbprintf((vcbprintf_Callback_t)strputchar,&__p,(f),(a));*(char*)__p=0;}))
1753#define vsscanf(__buffer__,__format__,__arglist__) ({__sscanf_string __param__={(__buffer__),0};vcbscanf((vcbscanf_get_Callback_t)__sscanf_get,(vcbscanf_unget_Callback_t)__sscanf_unget,&__param__,(__format__),(__arglist__));})
1754#define __FERROR(f) ({(f)->flags|=_F_ERR; return EOF;})
1755
1756/* stdlib */
1757#define ldiv(n,d) ({ldiv_t __r;long __n=(n),__d=(d);asm("move.l %2,%%d1;move.l %3,%%d0;jsr _ROM_CALL_2A8;move.l %%d1,%0;move.l %2,%%d1;move.l %3,%%d0;jsr _ROM_CALL_2A9;move.l %%d1,%1" : "=g"(__r.quot),"=g"(__r.rem) : "g"(__n),"g"(__d) : "a0","a1","d0","d1","d2");__r;})
1758#define RAND_MAX 32767
1759#define abort() (_rom_call(void,(const char*),E6)("ABNORMAL PROGRAM TERMINATION"),exit(0))
1760#define div(n,d) ({short __n=(n),__d=(d);div_t __r;__r.quot=__n/__d;__r.rem=__n%__d;__r;})
1761#define max(a,b) ({typeof(a) __a = (a); typeof(b) __b = (b); (__a > __b) ? __a : __b;})
1762#define min(a,b) ({typeof(a) __a = (a); typeof(b) __b = (b); (__a < __b) ? __a : __b;})
1763#define random(x) ((short)((long)(unsigned short)rand()*(unsigned short)(x)/32768))
1764#define randomize() srand(*(volatile unsigned char*)0x600017)
1765#define srand(x) (__randseed=(x))
1766
1767/* string */
1768#define cmpstri _rom_call(short,(const unsigned char*,const unsigned char*),16F)
1769#define memchr _rom_call(void*,(const void*,short,long),273)
1770#define memcmp _rom_call(short,(const void*,const void*,long),270)
1771#define memcpy _rom_call(void*,(void*,const void*,long),26A)
1772#define memmove _rom_call(void*,(void*,const void*,long),26B)
1773#define memset _rom_call(void*,(void*,short,long),27C)
1774#define sprintf _rom_call_attr(short,(char*,const char*,...),__attribute__((__format__(__printf__,2,3))),53)
1775#define strcat _rom_call(char*,(char*,const char*),26E)
1776#define strchr _rom_call(char*,(const char*,short),274)
1777#define strcmp _rom_call(short,(const unsigned char*,const unsigned char*),271)
1778#define strcpy _rom_call(char*,(char*,const char*),26C)
1779#define strcspn _rom_call(unsigned long,(const char*,const char*),275)
1780#define strerror _rom_call(char*,(short),27D)
1781#define strlen _rom_call(unsigned long,(const char*),27E)
1782#define strncat _rom_call(char*,(char*,const char*,long),26F)
1783#define strncmp _rom_call(short,(const unsigned char*,const unsigned char*,long),272)
1784#define strncpy _rom_call(char*,(char*,const char*,long),26D)
1785#define strpbrk _rom_call(char*,(const char*,const char*),276)
1786#define strrchr _rom_call(char*,(const char*,short),277)
1787#define strspn _rom_call(unsigned long,(const char*,const char*),278)
1788#define strstr _rom_call(char*,(const char*,const char*),279)
1789#define strtok _rom_call(char*,(char*,const char*),27A)
1790#define memucmp _rom_call(short,(const void*,const void*,long),3CC)
1791#define stricmp _rom_call(short,(const unsigned char*,const unsigned char*),407)
1792
1793/* system */
1794#define QUEUE(n) struct{unsigned short Head,Tail,Size,Used,Buffer[n/2];}
1795#define ReleaseDate ((const char*const)(_rom_call_addr_hack(43F,(((MIN_AMS>=101)||(TIOS_entries>0x2AC))?(((const char*const)_rom_call_addr(393))-11):((const char*const)"05/21/1998")),200)))
1796#define ReleaseVersion ((const char*const)(_rom_call_addr_hack(440,((((MIN_AMS>=101)||(TIOS_entries>0x2AC))?(((const char*const)_rom_call_addr(393))-16):((const char*const)"1.00"))),200)))
1797#define AB_prodid _rom_call(void,(char*),29D)
1798#define AB_prodname _rom_call(void,(char*),29E)
1799#define AB_serno _rom_call(short,(char*),29F)
1800#define ASM_call(x) ({asm volatile("movem.l %d0-%d7/%a0-%a6,-(%sp)");ASM_fastcall(x);asm volatile("movem.l (%sp)+,%d0-%d7/%a0-%a6") })
1801#define ASM_fastcall(x)  (((void(*)())(x))())
1802#define CB_fetchTEXT _rom_call(short,(HANDLE*,__pulong),C2)
1803#define CB_replaceTEXT _rom_call(short,(char*,long,short),C1)
1804#define CU_restore _rom_call(void,(short),C3)
1805#define CU_start _rom_call(short,(void),C4)
1806#define CU_stop _rom_call(short,(void),C5)
1807#define EX_patch _rom_call(void,(void*,void*),15A)
1808#define HelpKeys  _rom_call(void,(void),181)
1809#define idle _rom_call(void,(void),29B)
1810#define NeedStack _rom_call(void,(short),A4)
1811#define off _rom_call(void,(void),29A)
1812#define OSCheckBreak _rom_call(short,(void),EC)
1813#define OSClearBreak _rom_call(void,(void),ED)
1814#define OSContrastDn() ({_rom_call(void,(void),297) (); asm ("":::"d3","d4"); })
1815#define OSContrastUp() ({_rom_call(void,(void),296) (); asm ("":::"d3","d4"); })
1816#define OSDisableBreak _rom_call(void,(void),EF)
1817#define OSEnableBreak _rom_call(void,(void),EE)
1818#define OSFreeTimer _rom_call(short,(short),F1)
1819#define OSRegisterTimer _rom_call(short,(short,long),F0)
1820#define OSReset _rom_call(void,(void),294)
1821#define OSSetSR _rom_call(short,(short),29C)
1822#define OSTimerCurVal _rom_call(unsigned long,(short),F2)
1823#define OSTimerExpired _rom_call(short,(short),F3)
1824#define OSTimerRestart _rom_call(unsigned long,(short),F4)
1825#define QModeKey _rom_call(short,(short),182)
1826#define QSysKey _rom_call(short,(short),183)
1827#define SumStoChkMem _rom_call(short,(void),295)
1828#define WordInList _rom_call(short,(short,__pushort),184)
1829#define XR_stringPtr(strno) (AMS_1xx?_rom_call(const char*,(short),293)(strno):_rom_call(const char*,(long),293)(strno))
1830#define OSdequeue _rom_call(short,(__pushort,void*),3AA)
1831#define OSenqueue _rom_call(short,(short,void*),3A9)
1832#define OSqclear _rom_call(void,(void*),3AD)
1833#define OSqhead _rom_call(unsigned short,(__pushort,void*),3AC)
1834#define OSqinquire _rom_call(short,(__pushort,void*),3AB)
1835#define CU_cursorState (*((signed short*)(_rom_call_addr(503))))
1836#define FiftyMsecTick (*((volatile unsigned long*)(_rom_call_addr(4FC))))
1837#define AB_getGateArrayVersion _rom_call(unsigned long,(void),15E)
1838#define EX_getBasecodeParmBlock _rom_call(const void*,(void),5DA)
1839
1840/* Text Edit */
1841#define TE_checkSlack _rom_call(void,(TEXT_EDIT*),A6)
1842#define TE_close _rom_call(void,(TEXT_EDIT*),A5)
1843#define TE_empty _rom_call(void,(TEXT_EDIT*),A7)
1844#define TE_focus _rom_call(short,(TEXT_EDIT*),A8)
1845#define TE_handleEvent  _rom_call(short,(TEXT_EDIT*,EVENT*),A9)
1846#define TE_indicateReadOnly _rom_call(void,(TEXT_EDIT*),AA)
1847#define TE_isBlank _rom_call(short,(TEXT_EDIT*),AB)
1848#define TE_open _rom_call(short,(TEXT_EDIT*,WINDOW*,WIN_RECT*,HANDLE,short,short,short),AC)
1849#define TE_openFixed _rom_call(short,(TEXT_EDIT*,WINDOW*,WIN_RECT*,char*,short,short),AD)
1850#define TE_pasteText  _rom_call(void,(TEXT_EDIT*,const char*,long),AE)
1851#define TE_reopen _rom_call(void,(TEXT_EDIT*,short),AF)
1852#define TE_reopenPlain _rom_call(void,(TEXT_EDIT*,short),B0)
1853#define TE_select _rom_call(void,(TEXT_EDIT*,short,short),B1)
1854#define TE_shrinkWrap _rom_call(HANDLE,(TEXT_EDIT*),B2)
1855#define TE_unfocus _rom_call(short,(TEXT_EDIT*),B3)
1856#define TE_updateCommand _rom_call(void,(TEXT_EDIT*,char),B4)
1857
1858/* Timath */
1859#define FIVE (5.)
1860#define FOUR (4.)
1861#define HALF (0.5)
1862#define HALF_PI (1.570796326794897)
1863#define MINUS_ONE (-1.)
1864#define NAN (0./0.)
1865#define NEGATIVE_INF (1/NEGATIVE_ZERO)
1866#define NEGATIVE_ZERO (-POSITIVE_ZERO)
1867#define ONE (1.)
1868#define PI (3.141592653589793)
1869#define POSITIVE_INF (1/POSITIVE_ZERO)
1870#define POSITIVE_ZERO (1.e-8192*1.e-8192)
1871#define TEN (10.)
1872#define THREE (3.)
1873#define TWO (2.)
1874#define UNSIGNED_INF (1/UNSIGNED_ZERO)
1875#define UNSIGNED_ZERO (0.)
1876#define ZERO (0.)
1877#define acos(x) _tios_float_1(F5,x,float)
1878#define acosh(x) _tios_float_1(288,x,float)
1879#define asin(x) _tios_float_1(F6,x,float)
1880#define asinh(x) _tios_float_1(287,x,float)
1881#define atan2(x,y) _tios_float_2(F8,x,y,float,float)
1882#define atan(x) _tios_float_1(F7,x,float)
1883#define atanh(x) _tios_float_1(289,x,float)
1884#define bcd_to_float(a) ({bcd __a=(a);*(float*)&__a;})
1885#define bcd_var(a) (*(bcd*)&(a))
1886#define bcdadd(x,y) ({bcd __x=(x),__y=(y);float __z=fadd(*(float*)&__x,*(float*)&__y);*(bcd*)&__z;})
1887#define bcdbcd(x) ({float __x=flt(x);*(bcd*)&__x;})
1888#define bcdcmp(x,y) ({bcd __x=(x),__y=(y);fcmp(*(float*)&__x,*(float*)&__y);})
1889#define bcddiv(x,y) ({bcd __x=(x),__y=(y);float __z=fdiv(*(float*)&__x,*(float*)&__y);*(bcd*)&__z;})
1890#define bcdlong(x) ({bcd __x=(x);trunc(*(float*)&__x);})
1891#define bcdmul(x,y) ({bcd __x=(x),__y=(y);float __z=fmul(*(float*)&__x,*(float*)&__y);*(bcd*)&__z;})
1892#define bcdneg(x) ({bcd __x=(x);float __y=fneg(*(float*)&__x);*(bcd*)&__y;})
1893#define bcdsub(x,y) ({bcd __x=(x),__y=(y);float __z=fsub(*(float*)&__x,*(float*)&__y);*(bcd*)&__z;})
1894#define cacos _rom_call(void,(float,float,float*,float*),13A)
1895#define cacosh _rom_call(void,(float,float,float*,float*),13D)
1896#define casin _rom_call(void,(float,float,float*,float*),13B)
1897#define casinh _rom_call(void,(float,float,float*,float*),13E)
1898#define catan _rom_call(void,(float,float,float*,float*),13C)
1899#define catanh _rom_call(void,(float,float,float*,float*),13F)
1900#define ccos _rom_call(void,(float,float,float*,float*),140)
1901#define ccosh _rom_call(void,(float,float,float*,float*),143)
1902#define ceil(x) _tios_float_1(105,x,float)
1903#define cexp _rom_call(void,(float,float,float*,float*),149)
1904#define cln _rom_call(void,(float,float,float*,float*),147)
1905#define clog10 _rom_call(void,(float,float,float*,float*),148)
1906#define cos(x) _tios_float_1(F9,x,float)
1907#define cosh(x) _tios_float_1(FC,x,float)
1908#define csin _rom_call(void,(float,float,float*,float*),141)
1909#define csinh _rom_call(void,(float,float,float*,float*),144)
1910#define csqrt _rom_call(void,(float,float,float*,float*),146)
1911#define ctan _rom_call(void,(float,float,float*,float*),142)
1912#define ctanh _rom_call(void,(float,float,float*,float*),145)
1913#define exp(x) _tios_float_1(FF,x,float)
1914#define fabs(x) _tios_float_1(106,x,float)
1915#define fadd(x,y) _tios_float_2(B6,x,y,float,float)
1916#define fcmp _rom_call(long,(float,float),BB)
1917#define fdiv(x,y) _tios_float_2(B9,x,y,float,float)
1918#define FEXP(x,y) (*(float*)&(bcd){0x4000+y,0x##x##LL<<4*(17-sizeof(#x))})
1919#define FEXP_NEG(x,y) (*(float*)&(bcd){0xC000+y,0x##x##LL<<4*(17-sizeof(#x))})
1920#define float_to_bcd(a) ({float __a=(a);*(bcd*)&__a;})
1921#define floor(x) _tios_float_1(107,x,float)
1922#define flt(x) _tios_float_1(BD,x,long)
1923#define FLT(x,y...) ((sizeof(#y)==1)?x##.0:x##.##y)
1924#define FLT_NEG(x,y...) ((sizeof(#y)==1)?-x##.0:-x##.##y)
1925#define fmod(x,y) _tios_float_2(108,x,y,float,float)
1926#define fmul(x,y) _tios_float_2(B8,x,y,float,float)
1927#define fneg(x) _tios_float_1(BA,x,float)
1928#define fpisanint _rom_call(short,(unsigned long long*,short),172)
1929#define fpisodd _rom_call(short,(const unsigned long long*,short),173)
1930#define fsub(x,y) _tios_float_2(B7,x,y,float,float)
1931#define init_float() ((void)0)
1932#define itrig _rom_call(void,(short,short,float*,float*),28A)
1933#define ldexp10(x,e) ({float __f=(x);((bcd*)&__f)->exponent+=(e);__f;})
1934#define log(x) _tios_float_1(100,x,float)
1935#define log10(x) _tios_float_1(101,x,float)
1936#define modf(x,y) _tios_float_2(102,x,y,float,float*)
1937#define pow(x,y) _tios_float_2(103,x,y,float,float)
1938#define round12(x) _tios_float_1(174,x,float)
1939#define round12_err(x,y) _tios_float_2(227,x,y,float,short)
1940#define round14(x) _tios_float_1(175,x,float)
1941#define sin(x) _tios_float_1(FA,x,float)
1942#define sincos _rom_call(void,(float,short,float*,float*),286)
1943#define sinh(x) _tios_float_1(FD,x,float)
1944#define sqrt(x) _tios_float_1(104,x,float)
1945#define tan(x) _tios_float_1(FB,x,float)
1946#define tanh(x) _tios_float_1(FE,x,float)
1947#define trig _rom_call(void,(short,short,const float*,float*,float*,float*),28B)
1948#define trunc _rom_call(long,(float),BC)
1949#define float_class _rom_call(short,(float),2FA)
1950#define frexp10(x,y) _tios_float_2(2FB,x,y,float,__pshort)
1951#define is_float_infinity _rom_call(short,(float),2FF)
1952#define is_float_negative_zero _rom_call(short,(float),300)
1953#define is_float_positive_zero _rom_call(short,(float),301)
1954#define is_float_signed_infinity _rom_call(short,(float),302)
1955#define is_float_transfinite _rom_call(short,(float),303)
1956#define is_float_unsigned_inf_or_nan _rom_call(short,(float),304)
1957#define is_float_unsigned_zero _rom_call(short,(float),305)
1958#define is_inf _rom_call(short,(float),2FF)
1959#define is_nan _rom_call(short,(float),306)
1960#define is_nzero _rom_call(short,(float),300)
1961#define is_pzero _rom_call(short,(float),301)
1962#define is_sinf _rom_call(short,(float),302)
1963#define is_transfinite _rom_call(short,(float),303)
1964#define is_uinf_or_nan _rom_call(short,(float),304)
1965#define is_uzero _rom_call(short,(float),305)
1966
1967/* Windows */
1968#define DeskTop ((WINDOW*const)(((long*)(_rom_call_addr(0)))+1))
1969#define FirstWindow (*((WINDOW**)(_rom_call_addr(0))))
1970#define DrawStaticButton _rom_call(void,(WINDOW*,short,short),35)
1971#define DrawWinBorder _rom_call(void,(WINDOW*,SCR_RECT*),27)
1972#define MakeWinRect _rom_call(WIN_RECT*,(short,short,short,short),2C)
1973#define RectWinToScr _rom_call(SCR_RECT*,(const SCR_RECT*,const WIN_RECT*,SCR_RECT*),2A)
1974#define RectWinToWin _rom_call(WIN_RECT*,(const SCR_RECT*,WIN_RECT*),29)
1975#define WinActivate _rom_call(void,(WINDOW*),1)
1976#define WinAttr _rom_call(short,(WINDOW*,short),2)
1977#define WinBackground _rom_call(void,(WINDOW*,short),4)
1978#define WinBackupToScr _rom_call(void,(WINDOW*),3)
1979#define WinBegin _rom_call(void,(WINDOW*),5)
1980#define WinBitmapGet _rom_call(short,(WINDOW*,const WIN_RECT*,void*),6)
1981#define WinBitmapPut _rom_call(void,(WINDOW*,short,short,void*,short),7)
1982#define WinBitmapSize _rom_call(unsigned short,(WINDOW*,const WIN_RECT*),8)
1983#define WinChar _rom_call(void,(WINDOW*,char),A)
1984#define WinCharXY _rom_call(void,(WINDOW*,short,short,char,short),9)
1985#define WinClose _rom_call(void,(WINDOW*),B)
1986#define WinClr _rom_call(void,(WINDOW*),C)
1987#define WinDeactivate _rom_call(void,(WINDOW*),D)
1988#define WinDupStat _rom_call(short,(WINDOW*,short),E)
1989#define WinEllipse _rom_call(void,(WINDOW*,short,short,short,short),F)
1990#define WinEnd(w) ((void)0)
1991#define WinFill _rom_call(void,(WINDOW*,const WIN_RECT*,short),10)
1992#define WinFillLines2 _rom_call(void,(WINDOW*,const WIN_RECT*,const WIN_RECT*,short),11)
1993#define WinFillTriangle _rom_call(void,(WINDOW*,short,short,short,short,short,short,short),12)
1994#define WinFont _rom_call(void,(WINDOW*,short),13)
1995#define WinGetCursor _rom_call(void,(WINDOW*,__pshort,__pshort),14)
1996#define WinHeight _rom_call(short,(WINDOW*),292)
1997#define WinHide _rom_call(void,(WINDOW*),15)
1998#define WinHome _rom_call(void,(WINDOW*),16)
1999#define WinLine _rom_call(void,(WINDOW*,const WIN_RECT*),17)
2000#define WinLineNC _rom_call(void,(WINDOW*,const WIN_RECT*),18)
2001#define WinLineRel _rom_call(void,(WINDOW*,short,short),1A)
2002#define WinLineTo _rom_call(void,(WINDOW*,short,short),19)
2003#define WinMoveCursor _rom_call(void,(WINDOW*,short,short),1B)
2004#define WinMoveRel _rom_call(void,(WINDOW*,short,short),1D)
2005#define WinMoveTo _rom_call(void,(WINDOW*,short,short),1C)
2006#define WinOpen _rom_call(short,(WINDOW*,const WIN_RECT*,short,...),1E)
2007#define WinPixGet _rom_call(short,(WINDOW*,short,short),1F)
2008#define WinPixSet _rom_call(void,(WINDOW*,short,short),20)
2009#define WinRect _rom_call(void,(WINDOW*,const WIN_RECT*,short),21)
2010#define WinReOpen _rom_call(short,(WINDOW*,const WIN_RECT*,short,...),22)
2011#define WinScrollH _rom_call(void,(WINDOW*,const WIN_RECT*,short),23)
2012#define WinScrollV _rom_call(void,(WINDOW*,const WIN_RECT*,short),24)
2013#define WinSetCursor(w,x,y) (void)((w)->CursorX=x,(w)->CursorY=y)
2014#define WinShow(w) (void)((w)->Flags|=WF_VISIBLE)
2015#define WinStr _rom_call(void,(WINDOW*,const char*),25)
2016#define WinStrXY _rom_call(void,(WINDOW*,short,short,const char*),26)
2017#define WinWidth _rom_call(short,(WINDOW*),291)
2018#define SetWinClip _rom_call(void,(WINDOW*,SCR_RECT*),42E)
2019
2020/* Define graphlib functions */
2021asm("graphlib__version02: .xdef graphlib__version02");
2022
2023#define graphlib_fill graphlib__0000
2024void    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"));
2025
2026#define graphlib_put_sprite graphlib__0001
2027void    graphlib_put_sprite(unsigned short x asm("d0"), unsigned short y asm("d1"), void *sprite asm("a0"));
2028
2029#define graphlib_put_sprite2 graphlib__000C
2030void    graphlib_put_sprite2(unsigned short x asm("d0"), unsigned short y asm("d1"), void *sprite asm("a0"), unsigned char *mask asm("a2"));
2031
2032#define graphlib_put_sprite_mask graphlib__000B
2033void    graphlib_put_sprite_mask(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned char mask asm("d3"), void *sprite asm("a0"));
2034
2035#define graphlib_smallbox graphlib__0002
2036void    graphlib_smallbox(char *title asm("a0"));
2037
2038#define graphlib_box graphlib__0003
2039void    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"));
2040
2041#define graphlib_frame graphlib__0004
2042void    graphlib_frame(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned short width asm("d4"), unsigned short height asm("d5"));
2043
2044#define graphlib_clrscr graphlib__0005
2045void    graphlib__clrscr();
2046
2047#define graphlib_clrscr2 graphlib__0014
2048void    graphlib__clrscr2();
2049
2050#define graphlib_vert graphlib__0006
2051void    graphlib_vert(unsigned short x asm("d0"), unsigned short y1 asm("d1"), unsigned short y2 asm("d2"));
2052
2053#define graphlib_horiz graphlib__0007
2054void    graphlib_horiz(unsigned short x1 asm("d0"), unsigned short y asm("d1"), unsigned short x2 asm("d2"), unsigned short color asm("d3"));
2055
2056#define graphlib_bigbox graphlib__0008
2057void    graphlib_bigbox(char *title asm("a0"));
2058
2059#define _graphlib_scrtomem graphlib__0009
2060void    _graphlib_scrtomem(unsigned short x asm("d0"), unsigned short y asm("d1"), unsigned short width asm("d2"), unsigned short height asm("d3"));
2061#define graphlib_scrtomem(_x, _y, _height, _width) ({register unsigned short __d4 asm("d4"); _graphlib_scrtomem(_x, _y, _height, _width); __d4;})
2062
2063#define graphlib_memtoscr graphlib__000A
2064void    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"));
2065
2066#define graphlib_line graphlib__0017
2067void    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"));
2068
2069#define graphlib_choosescreen graphlib__000D
2070extern unsigned short graphlib_choosescreen;
2071
2072typedef struct {
2073        unsigned short x1;
2074        unsigned short y1;
2075        unsigned short x2;
2076        unsigned short y2;
2077        unsigned short x;
2078        unsigned short y;
2079        char    *str;
2080        } dialog_struct;
2081#define graphlib_show_dialog graphlib__0015
2082void    graphlib_show_dialog(dialog_struct *d asm("a6"));
2083
2084#define graphlib_clear_dialog graphlib__0016
2085void    graphlib_clear_dialog();
2086
2087#define graphlib_erase_rect graphlib__0018
2088void    graphlib_erase_rect(void *r);
2089
2090#define graphlib_frame_rect graphlib__0019
2091void    graphlib_frame_rect(void *r);
2092
2093#define graphlib_gray2 graphlib__000E
2094void    graphlib_gray2();
2095
2096#define graphlib_gray4 graphlib__000F
2097void    graphlib_gray4();
2098
2099#define graphlib_gray7 graphlib__0010
2100void    graphlib_gray7();
2101
2102#define graphlib_plane0 graphlib__0011
2103#define graphlib_plane1 graphlib__0012
2104#define graphlib_plane2 graphlib__0013
2105extern unsigned char *graphlib_plane0;
2106extern unsigned char *graphlib_plane1;
2107extern unsigned char *graphlib_plane2;
2108
2109/* Define userlib functions */
2110asm("userlib__version02: .xdef userlib__version02");
2111
2112#define userlib_idle_loop userlib__0000
2113short   userlib_idle_loop();
2114#define userlib_random  userlib__0001
2115short   userlib_random(short limit asm("d0"));
2116#define userlib_randseed userlib__0002
2117extern  short   userlib__randseed;
2118#define userlib_exec userlib__0003
2119__attribute__((__stkparm__)) short      userlib_exec(HANDLE handle);
2120#define userlib_inputstr userlib__0006
2121char    *userlib_inputstr(short x asm("d1"), short y asm("d2"), short maxlen asm("d3"));
2122#define userlib_smallmenu userlib__000C
2123short   userlib_samllmenu(short x asm("d0"), short y asm("d1"), char nbitem asm("d2"), char *str_list asm("a0"));
2124#define userlib_runprog userlib__0010
2125short   userlib_runprog(char *progname asm("a0"));
2126
2127// Hexlib
2128asm("hexlib__version01: .xdef hexlib__version01");
2129
2130#define hexlib_put_char hexlib__0000
2131void    hexlib_put_char(long x asm("d2"), long y asm("d1"), long character asm("d0"));
2132#define hexlib_put_bin  hexlib__0001
2133void    hexlib_put_bin(long x asm("d2"), long y asm("d1"), long number asm("d0"), long digits asm("d4"));
2134#define hexlib_put_hex  hexlib__0002
2135void    hexlib_put_hex(long x asm("d2"), long y asm("d1"), long number asm("d0"), long digits asm("d4"));
2136
2137// Shrnklib
2138asm("shrnklib__version03: .xdef shrnklib__version03");
2139
2140#define shrnklib_OpenArchive    shrnklib__0000
2141HANDLE  shrnklib_OpenArchive(void *archive asm("a0"));
2142#define shrnklib_CloseArchive   shrnklib__0001
2143void    shrnklib_CloseArchive(HANDLE arch_hd asm("d0"));
2144#define shrnklib_Extract        shrnklib__0002
2145void    *shrnklib_Extract(HANDLE arch_hd asm("d0"), short index asm("d1"), void *dest asm("a0"));
2146#define shrnklib_Free(ptr) HeapFree(HeapPtrToHandle(ptr))
2147
2148//Ziplib
2149asm("ziplib__version01: .xdef ziplib__version01");
2150
2151#define ziplib_check_cmem       ziplib__0000
2152short   ziplib_check_cmem(void *data asm("a0"), unsigned short len asm("d0"));
2153#define ziplib_check_emem       ziplib__0001
2154short   ziplib_check_emem(void *archive asm("a0"));
2155#define ziplib_eval_cmem        ziplib__0002
2156short   ziplib_eval_cmem(void *data asm("a0"), unsigned short len asm("d0"));
2157#define ziplib_eval_emem        ziplib__0003
2158short   ziplib_eval_emem(void *archive asm("a0"));
2159#define ziplib_compress ziplib__0004
2160short   ziplib_compress(void *data asm("a0"), unsigned short len asm("d0"), void *dest asm("a1"));
2161#define ziplib_extract  ziplib__0005
2162short   ziplib_extract(void *archive asm("a0"), void *dest asm("a1"));
2163#define ziplib_zipfile  ziplib__0006
2164char    ziplib_zipfile(SYM_ENTRY *sym asm("a0"), char comment asm("d0"));
2165#define ziplib_iscomp   ziplib__000B
2166short   ziplib_iscomp(SYM_ENTRY *sym asm("a0"));
2167#define _ziplib_tempfile        ziplib__0007
2168long long _ziplib_tempfile(SYM_ENTRY *sym asm("a0"), char comment asm("d1"));
2169#define ziplib_tempfile(sym, comment) ({long long result__ = _ziplib_tempfile(sym, comment); (char)(result__>>32)?-(short)(char)(result__>>32):(short)result__;})
2170#define ziplib_extract_string   ziplib__0008
2171void    ziplib_extract_string(void *archive asm("a0"), short arch_index asm("d3"), short str_index asm("d4"), void *dest asm("a1"));
2172#define ziplib_write_string     ziplib__0009
2173void    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"));
2174#define ziplib_write_string_inv ziplib__000A
2175void    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"));
2176
2177#endif
2178