From e84aefdb1622db329481eb649dde8cd69a5d45a7 Mon Sep 17 00:00:00 2001 From: "Andrey Halyavin (halyavin)" Date: Sat, 14 Jan 2006 09:05:06 +0000 Subject: [PATCH] free3d04 size optimization from willow git-svn-id: svn://kolibrios.org@37 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/free3d04/trunk/ceil.inc | 64 --- programs/free3d04/trunk/free3d04.asm | 600 ++++++--------------------- programs/free3d04/trunk/gif.inc | 302 ++++++++++++++ programs/free3d04/trunk/macros.inc | 267 ++++++++++++ programs/free3d04/trunk/texture.gif | Bin 0 -> 29787 bytes programs/free3d04/trunk/wall.inc | 64 --- programs/free3d04/trunk/wall2.inc | 64 --- programs/free3d04/trunk/wall3.inc | 64 --- programs/free3d04/trunk/wall4.inc | 64 --- programs/free3d04/trunk/wall5.inc | 64 --- programs/free3d04/trunk/wall6.inc | 64 --- programs/free3d04/trunk/wall7.inc | 64 --- 12 files changed, 695 insertions(+), 986 deletions(-) delete mode 100644 programs/free3d04/trunk/ceil.inc create mode 100644 programs/free3d04/trunk/gif.inc create mode 100644 programs/free3d04/trunk/macros.inc create mode 100644 programs/free3d04/trunk/texture.gif delete mode 100644 programs/free3d04/trunk/wall.inc delete mode 100644 programs/free3d04/trunk/wall2.inc delete mode 100644 programs/free3d04/trunk/wall3.inc delete mode 100644 programs/free3d04/trunk/wall4.inc delete mode 100644 programs/free3d04/trunk/wall5.inc delete mode 100644 programs/free3d04/trunk/wall6.inc delete mode 100644 programs/free3d04/trunk/wall7.inc diff --git a/programs/free3d04/trunk/ceil.inc b/programs/free3d04/trunk/ceil.inc deleted file mode 100644 index 4c1f0b9cd8..0000000000 --- a/programs/free3d04/trunk/ceil.inc +++ /dev/null @@ -1,64 +0,0 @@ -dd 0x004E4034,0x0082614C,0x00A06646,0x009F6945,0x00916946,0x00AB6754,0x0067412E,0x008C6048,0x006F4838,0x004F3A29,0x00966C4C,0x00C2835D,0x008E5B3D,0x008A6641,0x008B603F,0x00A6684B,0x007B462C,0x00624325,0x00A16957,0x00987461,0x00BC977C,0x00CC997A,0x00E0A985,0x00E5A981,0x00DB9E75,0x00DDA27A,0x00CB8B65,0x00AA6240,0x00D38765,0x00C97A53,0x00DB8460,0x00DB825D,0x00BA784C,0x00C5885B,0x00D28263,0x00A77F55,0x00D48973,0x00A06A4B,0x00CF8F6D,0x00F1AE89,0x00E6A27E,0x00F3B08C,0x00EBAC86,0x00DB9D76,0x00BB7D59,0x00BB7E57,0x009A623D,0x006C4120,0x00855C3C,0x00A7714B,0x00A86C50,0x0096573D,0x00B16A49,0x00D7895D,0x00975A38,0x006D4935,0x00B9795C,0x009E5E41,0x00916445,0x00A46D4D,0x009A5E3D,0x00AF6F46,0x00BD7A4D,0x00BF7656 -dd 0x008C5E4F,0x009A6F51,0x00986D41,0x00936643,0x00785038,0x00894E42,0x00654532,0x00A77356,0x008C5F47,0x00543F2C,0x0071513B,0x008F6047,0x006C452E,0x00715635,0x0067452A,0x00784632,0x006C432D,0x0060442A,0x00A76D57,0x00AA775E,0x00C5997D,0x00D19F80,0x00E8B18C,0x00EDB189,0x00E0A379,0x00E1A67E,0x00D2906B,0x00B46C4A,0x00D28967,0x00CC7D54,0x00DA8761,0x00CC7956,0x00B4724B,0x00B97C58,0x00D78967,0x00B48053,0x00D38C71,0x00AA7253,0x00D29571,0x00F3B28C,0x00E9A780,0x00F7B58E,0x00EFB088,0x00E0A17A,0x00BC7F5F,0x00B77B5B,0x009B6344,0x006E4729,0x00885F47,0x00825338,0x0085553A,0x0089573C,0x00815138,0x0091644A,0x006E4C3A,0x00674836,0x00B47554,0x00A06243,0x00694730,0x00705337,0x00926540,0x00B87849,0x00C57B4F,0x00D07859 -dd 0x00A2694E,0x00A67051,0x00A6734F,0x00AE7455,0x00926247,0x00704330,0x006B4D35,0x00A97656,0x00996749,0x0079533C,0x0075513C,0x00795338,0x00795130,0x009B704C,0x00916040,0x00AE7555,0x00A66F4D,0x0070462C,0x009D6B4F,0x00B17756,0x00CD9C7D,0x00D7A586,0x00ECB590,0x00F1B68D,0x00E3A77E,0x00E8A883,0x00DE9372,0x00BA7053,0x00D1916D,0x00D88E60,0x00DC946A,0x00BC7652,0x00A96846,0x00AE7255,0x00E0956D,0x00D78B59,0x00DB946E,0x00B67655,0x00D69C74,0x00F3B78A,0x00E9A97C,0x00F8B78A,0x00F0B385,0x00E2A47A,0x00B87E61,0x00B07A5F,0x00966345,0x00775630,0x00C48464,0x00BB7657,0x00B17652,0x00B37A56,0x008F5A3E,0x00916049,0x00815743,0x00875B43,0x00B47A55,0x00A76C4A,0x00774A33,0x008C6044,0x00C6855A,0x00D6844F,0x00CB7D4F,0x00C87B56 -dd 0x00A86E51,0x00AB7254,0x00B07556,0x00C07C5E,0x00AE7657,0x007B5135,0x00725034,0x00A37350,0x009E684B,0x00754C35,0x00714D39,0x0079543A,0x006D4D2E,0x00856246,0x007A5138,0x00845839,0x00865D35,0x006C4526,0x00A46E53,0x00C2785B,0x00D59B7E,0x00DBA787,0x00EDB590,0x00F4B78E,0x00E7AB80,0x00EBAA83,0x00DE9674,0x00B56B4F,0x00D0916C,0x00CC8052,0x00CF8559,0x00CE865E,0x00BF7753,0x00D28864,0x00DB8F69,0x00CB7E59,0x00D89571,0x00B76C49,0x00DA9E74,0x00F5BA8D,0x00EAAA7D,0x00F9BA8D,0x00F1B688,0x00E5A77D,0x00BA8163,0x00BC8466,0x00A26543,0x00694D26,0x00906146,0x00815441,0x00896147,0x00885C42,0x007A5339,0x00865D3E,0x006A4932,0x00734C36,0x00B47C55,0x0099603F,0x006A422E,0x007A5239,0x00B17752,0x00CC8052,0x00D08154,0x00CD7F5A -dd 0x00AA6B53,0x00B37556,0x00AF7553,0x00AB7055,0x008E5C48,0x00754E40,0x00674839,0x00956A50,0x00B27B62,0x00644B32,0x00795944,0x00B2785D,0x00966347,0x00835F4E,0x00845E4D,0x008A6046,0x00795333,0x00644222,0x009E7054,0x00BF7B60,0x00D79C7E,0x00E1AA85,0x00F1B78E,0x00F9BA8E,0x00EDAF82,0x00EDAF82,0x00E19C74,0x00B76C4E,0x00D68F6C,0x00D08158,0x00DA8D62,0x00E69669,0x00D48156,0x00E99365,0x00E29063,0x00D1825C,0x00DD9A75,0x00B86F4A,0x00DCA278,0x00F5BD91,0x00EBAE81,0x00FABE91,0x00F3B88B,0x00E6A97F,0x00BC8263,0x00BB8061,0x00A66343,0x00674620,0x00895F40,0x009F6C52,0x00AC7154,0x009D644F,0x00B37A5D,0x00D08859,0x008F5538,0x007A4A32,0x00C3875D,0x009B5E3C,0x0092634A,0x0098664A,0x00A36947,0x00B87347,0x00C67D4C,0x00C27C54 -dd 0x006F4E3E,0x00986D57,0x00A5735B,0x00A37359,0x009E6F58,0x00A6705E,0x00935F50,0x00825744,0x009C705B,0x005D4631,0x00875E4B,0x00D0896D,0x00C17B5A,0x0091604A,0x009A6A54,0x00B9846A,0x00A9735A,0x00744831,0x00936B4D,0x00B57A5F,0x00D19F88,0x00E3B18F,0x00F1BB94,0x00F6BE98,0x00EAB58D,0x00EAAF82,0x00E3996E,0x00C17852,0x00D8936E,0x00D88E67,0x00E89A6C,0x00ED9D6C,0x00DF9163,0x00EFA071,0x00E39464,0x00D98E5E,0x00E19B6C,0x00BD764E,0x00DAA079,0x00F1BA93,0x00E6AC86,0x00FABD96,0x00F2B890,0x00E1A77F,0x00BB7E59,0x00B6734E,0x00A06040,0x00704427,0x009F6F4F,0x00BC7E59,0x00AC6B48,0x009B6144,0x00BC7A55,0x00D58754,0x00905430,0x006F3D22,0x00AE6D4C,0x00824B2E,0x00905740,0x00955740,0x008E5738,0x00AB6039,0x00B5693C,0x00A6653C -dd 0x0045342B,0x00644C44,0x00886259,0x00A4796C,0x00926C5A,0x009A715A,0x00AB7663,0x00855445,0x006E4D3C,0x005D4537,0x00986A5E,0x00A86C5D,0x009A634F,0x00774E3F,0x00845C4C,0x00966954,0x00A36E59,0x00845240,0x00936A4A,0x00C18167,0x00CD9F8B,0x00E0B493,0x00EEBC98,0x00F3C09C,0x00E7B693,0x00EAAC7E,0x00E49868,0x00C1784F,0x00D38D6A,0x00E29E75,0x00E49D6D,0x00E49C6C,0x00E19C6C,0x00E8A173,0x00E29C6F,0x00E19C6E,0x00DC9264,0x00BD754D,0x00DB9F7B,0x00F0B995,0x00E3AC87,0x00F8BF9A,0x00EDB891,0x00DFA57D,0x00B97A54,0x00BE764E,0x00A36240,0x007A452D,0x00996244,0x00A0603C,0x00854F2F,0x007B4F35,0x00A36B48,0x00B97550,0x009F6A47,0x00694125,0x00724630,0x00784B35,0x00AE6049,0x009E583E,0x008E5B3B,0x00B86A4A,0x009F5F3D,0x00714729 -dd 0x005D4A45,0x00745958,0x005A4640,0x00877064,0x0078564C,0x00795A4E,0x00A87B6E,0x00B47C6A,0x0098694E,0x00875E47,0x00996D5A,0x007B4F41,0x00835D51,0x00835A4E,0x007D5948,0x007E5943,0x00976654,0x007E4D3C,0x00876347,0x00C08466,0x00C39D8A,0x00DBB698,0x00EBBD9A,0x00F4C4A0,0x00E7B691,0x00E6AA7B,0x00E39869,0x00C1734A,0x00C27750,0x00C7835A,0x00BE7B50,0x00BE7B51,0x00C38259,0x00C07A51,0x00BD754D,0x00C27C54,0x00C37950,0x00BA714B,0x00DFA17B,0x00F4B991,0x00E9AE86,0x00F8C097,0x00E7B48B,0x00DFA379,0x00BB7951,0x00C57D52,0x00A46540,0x00834F36,0x009D6449,0x00895336,0x00784D33,0x00764C34,0x00835137,0x00844B35,0x00986149,0x007C482E,0x0088553A,0x00AD6E50,0x00BF654B,0x00844C31,0x00744C31,0x009B5845,0x005A3422,0x005F3E26 -dd 0x006C5C5A,0x00906F68,0x005F4C3D,0x0081705F,0x00725248,0x006D504B,0x008E695E,0x00B8846E,0x00C5896B,0x00C28769,0x00AF7A61,0x00946654,0x009C7164,0x00A16F61,0x0073513D,0x006D4E37,0x008F6452,0x007E543F,0x0081614C,0x00B7815A,0x00BF9B87,0x00DAB9A1,0x00ECBE9E,0x00F9C6A2,0x00E8B78D,0x00E5AD7B,0x00F0B781,0x00ECBC85,0x00EFC389,0x00EFC58F,0x00ECC390,0x00EDC391,0x00EEC592,0x00ECC48A,0x00ECC385,0x00EAC485,0x00EAC384,0x00E9C087,0x00F4CB97,0x00F0C08E,0x00E7B283,0x00F8C294,0x00E8B386,0x00E0A375,0x00B97649,0x00C27E50,0x009D5E3B,0x007F4A33,0x00955D43,0x0076442C,0x00734A35,0x008C5E44,0x00946042,0x008F553A,0x00AA6C4E,0x00B9754F,0x00C5784C,0x00C37349,0x00AE5B41,0x00744631,0x006A4630,0x00965747,0x005D3621,0x00975F3B -dd 0x008B7B79,0x0079605C,0x0058463B,0x00615045,0x00674F4B,0x006A504D,0x00916C5E,0x00B6846D,0x00A7765D,0x00A1785E,0x00976E5B,0x00865D4F,0x00664637,0x0089614F,0x00966656,0x00976555,0x00815642,0x00765139,0x008F6A52,0x00BC8865,0x00C09B88,0x00DCB7A3,0x00EABC9E,0x00F7C6A3,0x00E7B991,0x00E4B587,0x00F0CE96,0x00EFDA9E,0x00F0DCA0,0x00F3D9A3,0x00F4D8A3,0x00F5D7A3,0x00F5D7A3,0x00F3D9A0,0x00F2DB9E,0x00F2DA9E,0x00F3D99E,0x00F4DBA1,0x00F2D7A0,0x00E5C08D,0x00E3B585,0x00F8C295,0x00ECB386,0x00DEA072,0x00B8774D,0x00C78359,0x00A76644,0x0075462D,0x007A4F2F,0x00885839,0x0089563F,0x008B513D,0x006D3926,0x00784937,0x00875945,0x0091644C,0x009E6648,0x00B9734E,0x00AC6144,0x007B4C38,0x006C432F,0x00683627,0x004A2E17,0x00734E28 -dd 0x0099817D,0x00775C57,0x00A07A6B,0x009A7567,0x0068504D,0x005F4947,0x00A17967,0x00AF7F68,0x008A6254,0x00866559,0x00805E54,0x00805C50,0x00765145,0x00956B5A,0x00A17262,0x00956758,0x007C5341,0x00875E49,0x00A2745C,0x00B68B74,0x00C9A899,0x00E2B8A6,0x00E9B9A2,0x00F6C5A6,0x00EEC19C,0x00E8BC93,0x00EDC095,0x00ECC095,0x00ECBF95,0x00EDBF95,0x00EDBE95,0x00EEBF95,0x00EFBF95,0x00EFBF91,0x00F0BF8E,0x00F0BF8F,0x00F0BF8F,0x00EEBF8D,0x00ECBE8C,0x00ECBA8B,0x00F2BD90,0x00FBC396,0x00F0B689,0x00E6A87B,0x00CA926B,0x00B3805F,0x00AD7250,0x00915B36,0x00724829,0x008E6347,0x00A56C50,0x00995B45,0x006D3E2A,0x0079523E,0x00784E3D,0x00835B44,0x0084583E,0x00B3704C,0x00B26644,0x00633424,0x00663926,0x0099523A,0x0098603E,0x00633F1F -dd 0x00937B79,0x00705550,0x00916E61,0x00957368,0x0067514D,0x00725955,0x00B38875,0x00A0715E,0x007C574D,0x00947064,0x00876256,0x00704A3D,0x00835C4F,0x00876651,0x006D533A,0x00634832,0x00875D4A,0x00B07A68,0x00B18779,0x00C5A89B,0x00E1C4B1,0x00E6C0A6,0x00F1C4A6,0x00FACCAA,0x00F9CCA6,0x00FBD0A6,0x00FBD0A5,0x00FBD0A4,0x00FBD0A5,0x00FBD0A4,0x00FBCFA4,0x00FBCFA4,0x00FACEA3,0x00FAD09F,0x00F9D09C,0x00FAD19C,0x00FAD19C,0x00FACD9A,0x00FACB98,0x00FBCA99,0x00FAC897,0x00FDC392,0x00F6BC8A,0x00EDB281,0x00E8B585,0x00C19C74,0x00AD7E5B,0x00B77950,0x00915435,0x006B381E,0x00734226,0x00855539,0x007B4F35,0x00683F2B,0x007B4E3A,0x00936144,0x007A503D,0x009D6848,0x00C07250,0x0075422F,0x00644027,0x00A4593C,0x00985D3A,0x005A381C -dd 0x0072605F,0x00594A43,0x0058493F,0x005A4B43,0x004E3E37,0x007E6157,0x00BE917C,0x008B604E,0x00684740,0x00957368,0x00886257,0x007B5548,0x00846053,0x00644C3A,0x005E422D,0x00825C46,0x00A77962,0x00BB8D7A,0x00C5AAA0,0x00DCC2B2,0x00E2C0A2,0x00EEC8A3,0x00FAD1AB,0x00F3CCA6,0x00EEC59F,0x00F2C59C,0x00F3C69C,0x00F4C59B,0x00F3C59B,0x00F0C59B,0x00EFC49A,0x00EEC199,0x00EEC097,0x00ECC192,0x00EAC18F,0x00ECC391,0x00EDC392,0x00EDC090,0x00EDBD8E,0x00EEBC8C,0x00EDB889,0x00F5BC8B,0x00FBC28D,0x00F5BC88,0x00EFB581,0x00E6B480,0x00C5996F,0x00B3805D,0x00AC7152,0x00885032,0x00633112,0x00693A1B,0x00845337,0x00714531,0x00835641,0x00A36B4D,0x006F4231,0x00865A41,0x00CD7B5C,0x00914B33,0x004C2513,0x00672F1F,0x00552E1B,0x003C2816 -dd 0x00615351,0x006F5D5A,0x00886B63,0x008C6C65,0x007C605D,0x0086665E,0x00A27968,0x008A614F,0x00664337,0x008B6D63,0x0079574C,0x00714F43,0x006A4A41,0x005A423B,0x007D5A49,0x00AD846C,0x00B28F7B,0x00C6AA9C,0x00DCC6B6,0x00DFC2A8,0x00ECC8A2,0x00F9D2AA,0x00F2CDA7,0x00E5BD98,0x00D8A684,0x00D19C7C,0x00D09F7D,0x00CF9D7B,0x00D09D7C,0x00CE9A79,0x00CE9979,0x00CF9979,0x00CF9878,0x00CD9A75,0x00CB9C74,0x00CC9C74,0x00CA9C74,0x00CD9A74,0x00D19772,0x00D29873,0x00D59A76,0x00EAB085,0x00F4BA8A,0x00FAC293,0x00F5BC8D,0x00ECB483,0x00E1AF82,0x00C1946F,0x00A97758,0x00AE7252,0x008C5031,0x00613215,0x00653A21,0x006C412A,0x00764730,0x009D654B,0x00613220,0x00795138,0x00AA6B4E,0x00895437,0x005D3D27,0x006F4836,0x00704637,0x00714432 -dd 0x00675B56,0x007A6265,0x00755855,0x0075584E,0x00765D55,0x00755952,0x00805C50,0x00AE8574,0x007E5646,0x006B4C43,0x0064453C,0x006B4D45,0x0064453D,0x00775549,0x009E755F,0x00B08E7B,0x00BEADA4,0x00DAC2B7,0x00E3C1AC,0x00EEC6AA,0x00F9D2AE,0x00F0CCA5,0x00E4BF99,0x00D6A583,0x00BA7F61,0x00B57B5D,0x00B47A5B,0x00B57A5A,0x00BC8363,0x00B67B5A,0x00BA7E5D,0x00BC8463,0x00B67D5C,0x00B47F5B,0x00B4805B,0x00B37753,0x00B17D59,0x00B57F58,0x00B6774E,0x00B67E5C,0x00B28168,0x00CE9F7F,0x00EAB589,0x00F3B88A,0x00F9C193,0x00F3BC8F,0x00E7B285,0x00DDAB7F,0x00BE926D,0x00AA7A5F,0x00AA6C53,0x00894B33,0x0063361F,0x006B4129,0x0063331C,0x006D4529,0x00653C23,0x00A76F54,0x0093573E,0x0065452A,0x0062432F,0x006F4433,0x00674030,0x007C533B -dd 0x00746359,0x00665551,0x005C4C4A,0x0080675E,0x0085665A,0x007B5E5A,0x00734D45,0x00AC7C6A,0x009C6955,0x007B5245,0x0072544B,0x005B3E36,0x00745246,0x00A77D66,0x00AE8976,0x00BDA499,0x00D6C4B7,0x00E0BFAA,0x00EEC5AA,0x00F8D0B2,0x00F0CAA9,0x00E4BD96,0x00D3A581,0x00BA8565,0x00B57D5C,0x00B9835A,0x00A86F4D,0x00A46950,0x00A76D50,0x00A66A4B,0x00AB6E4E,0x00A96E4F,0x00A7694B,0x00AA6C4C,0x00A86B49,0x00A36745,0x00A16F4B,0x00A17049,0x00A77149,0x00B27C55,0x00B48260,0x00AD846A,0x00CCA283,0x00E8B184,0x00EFB585,0x00F8C090,0x00F3BB8C,0x00E6AE7D,0x00DEA879,0x00BC8F6B,0x00A7725A,0x00AE6D55,0x00804A33,0x005A2D18,0x00663922,0x006C492B,0x007C4C31,0x00A56046,0x00783F29,0x006D4835,0x007A4D38,0x00854B34,0x00542C1B,0x00532E1B -dd 0x008C6E67,0x00826864,0x007A5D55,0x00977265,0x00835D52,0x007A5C5C,0x008E675F,0x00CB9682,0x00C88E76,0x007E5343,0x00684A43,0x0071534A,0x009C7462,0x00B18976,0x00BCA49C,0x00D6BFB2,0x00DFC0A4,0x00EEC5A5,0x00FACFAF,0x00EECAA9,0x00E2BD9D,0x00D3A582,0x00B68666,0x00BA8866,0x00B3805D,0x0086603E,0x00906247,0x00B07860,0x00985D43,0x009F6C4E,0x00A97857,0x00A77452,0x00945C3D,0x00A46847,0x00B06F4D,0x00AA6D4B,0x0098603F,0x00955B39,0x00AC7655,0x00955A3F,0x009E654A,0x00B17D60,0x00B5856B,0x00C89E7E,0x00E0B287,0x00EBB383,0x00F7BE8D,0x00F4B887,0x00EAAA79,0x00E1A273,0x00C18C68,0x00B07E5E,0x00A96E50,0x0082462D,0x0062331C,0x00704524,0x00B8734D,0x00D07E59,0x00945A3E,0x00835542,0x00784430,0x00985A3C,0x0078462E,0x0084573B -dd 0x007C605C,0x007F6460,0x0084645F,0x008B6961,0x007D5B54,0x00775B59,0x00785751,0x009E7464,0x008E6153,0x0060423E,0x0075544A,0x00A17C69,0x00B38C78,0x00C1A398,0x00D6BDB4,0x00E0BFAC,0x00EEC5A7,0x00F7CEAF,0x00EEC8A8,0x00E3C09B,0x00D0A885,0x00B5876A,0x00AF825E,0x00B6855C,0x00996344,0x00825536,0x00A36A4A,0x00C88769,0x00A26449,0x00B17655,0x00D5936B,0x00E09F74,0x00AF754D,0x00C28760,0x00E29F73,0x00D49163,0x00A66C4A,0x00A4704F,0x00B78664,0x008E573C,0x007E4B32,0x009D6C48,0x00B0795A,0x00A88067,0x00C4A37F,0x00E3AE83,0x00EDB382,0x00F8BD8B,0x00F5B887,0x00E8A876,0x00DDA372,0x00C08E67,0x00AA785A,0x00A97153,0x0078462A,0x00543114,0x00845238,0x009F6049,0x0073432D,0x006F4833,0x005F3B26,0x00794F35,0x0088543E,0x00855C42 -dd 0x00594441,0x00624E47,0x006C5851,0x0066514C,0x005F4844,0x006A524F,0x006C504A,0x00816154,0x006D483F,0x00745451,0x00A07666,0x00B08875,0x00C2A599,0x00D8BDB2,0x00DFBCAD,0x00EFC5B0,0x00F8CDB3,0x00EAC6AA,0x00E1BD9C,0x00CEA783,0x00B68866,0x00BC8568,0x00AC7D5E,0x0096674B,0x00B47A5E,0x00D7976A,0x00E39A6C,0x00D08C67,0x00A2714C,0x00A5704A,0x00DC9B72,0x00DF9B6F,0x009B653C,0x00AE7A54,0x00E2A478,0x00D69769,0x009F6040,0x009D644E,0x00B97F61,0x00C48B68,0x00BC835E,0x00A5633F,0x00986644,0x00A67B5C,0x00AF886A,0x00C59F7A,0x00E3AE7E,0x00ECB07D,0x00F7BB8A,0x00F1B786,0x00E1A976,0x00DBA273,0x00BE8C68,0x00AC7B5F,0x00A06950,0x0075412A,0x00613422,0x00754A36,0x006A3C27,0x00623726,0x004C2B19,0x0057341F,0x0071432C,0x005C3C25 -dd 0x00805F5A,0x0088625C,0x0087615A,0x0087615A,0x008D6861,0x008F685E,0x0095685E,0x00A36F63,0x009F6859,0x00B07E6B,0x00B98C7F,0x00C0A195,0x00D7BFAF,0x00DFBDAB,0x00EDC6B1,0x00F8D0B9,0x00ECC5AD,0x00E2BA9B,0x00D0A586,0x00B3866A,0x00AE7B5C,0x00B17955,0x00875F47,0x00855E4A,0x00D29C74,0x00E7A675,0x00ECA475,0x00D69268,0x00C38E62,0x00BA8053,0x00B5714A,0x00B47953,0x009A6442,0x00AB7351,0x00BB7E5B,0x00B5724F,0x00B57653,0x00B57B5C,0x00DD9A68,0x00E7A46F,0x00E7A873,0x00BB7344,0x00825334,0x00966746,0x00AC7B59,0x00A48263,0x00C2A07A,0x00E3AF7D,0x00EBAE7C,0x00F5BB8C,0x00F1B786,0x00E4A877,0x00DB9F70,0x00BD8A66,0x00AB7D64,0x00B27458,0x00A36445,0x009B6541,0x00945F3E,0x008E563D,0x008F543B,0x008B5236,0x007C4B2F,0x00714528 -dd 0x009E786E,0x00A67F72,0x00A37C6F,0x00A27B6E,0x00AA8373,0x00AA7F6B,0x00B58371,0x00C18778,0x00BF856F,0x00C19073,0x00CAA49A,0x00D9BAB2,0x00DEBEA9,0x00EDC4AC,0x00F7CDB6,0x00E9C3AC,0x00E1BBA1,0x00D2A789,0x00B98A6F,0x00B8876B,0x00A97354,0x00B27F54,0x00B28864,0x00B47B5F,0x00CC8F6F,0x00BD876A,0x00D89B72,0x00D39467,0x00BB8262,0x00DDA87F,0x00C18159,0x00BA7D59,0x00A6684B,0x00B57452,0x00BC7B58,0x00D18D65,0x00D8976B,0x00B17451,0x00DA9E6A,0x00C99062,0x00C58D64,0x00BF7E4D,0x00AB704F,0x00AA6649,0x00A6674A,0x00A87759,0x00AB8367,0x00C49D7C,0x00E0AD7E,0x00EBAE78,0x00F7B988,0x00F1B585,0x00E3A775,0x00DB9B6D,0x00C08461,0x00B07854,0x00AF734F,0x00B06F4F,0x00AC6D4C,0x00A66545,0x00AB6949,0x00A76A4D,0x0098644D,0x009C684A -dd 0x00B09284,0x00B79887,0x00B99B89,0x00BC9D8D,0x00C3A48F,0x00C9A58E,0x00D0A994,0x00D8AD9A,0x00DAB099,0x00DDB59A,0x00E0BAAB,0x00DEB8AA,0x00EBC3B0,0x00F7CEB7,0x00EDC3AA,0x00DFB69A,0x00CEA589,0x00B6896F,0x00B48066,0x00AD785C,0x00916142,0x00D3986F,0x00E9AB7C,0x00BC8056,0x008C5C43,0x00A67B68,0x00B4866A,0x00A77553,0x00925B45,0x00C58A6F,0x00A86E4F,0x00BB7C61,0x00B57C64,0x00BC8766,0x00A8694B,0x00C28563,0x00C18766,0x008A543B,0x00B07D54,0x00BF8F5C,0x009E714E,0x00986948,0x00C89168,0x00DD9564,0x00B26E48,0x00975E3E,0x00A37353,0x00A17E66,0x00C49F7D,0x00E3AC7C,0x00EAAC7A,0x00F6B786,0x00F2B381,0x00E3A16F,0x00DB9868,0x00DB9E70,0x00DE9F73,0x00DC9A71,0x00D89970,0x00D5956C,0x00D19269,0x00CF8F68,0x00C98965,0x00C78761 -dd 0x00BA9F97,0x00C1A098,0x00C4A49B,0x00C6A69D,0x00CBA99D,0x00D0AB9D,0x00D3AEA1,0x00D6B1A4,0x00DCB4A5,0x00E1B5A2,0x00E3B8A5,0x00ECC4B1,0x00F5CEBA,0x00EEC5AE,0x00E7BA9F,0x00D0A488,0x00B58B72,0x00BA8972,0x00AA775C,0x00956349,0x0091684E,0x00BF8A6B,0x00D89D73,0x00D9A777,0x009B694A,0x00A1735B,0x009C6853,0x00BC886A,0x00A3694D,0x00B0765B,0x008A5F42,0x009B604B,0x00A96F55,0x00A67454,0x008A4A30,0x00A2674E,0x00A46954,0x00A36F55,0x00AF7F5E,0x00A37354,0x009A6D53,0x00AD7B53,0x00DBA56F,0x00D28C63,0x00B67555,0x007E472D,0x00965F3C,0x00AB7750,0x00AF8667,0x00C49E7C,0x00E0AA7C,0x00E8AB7B,0x00F6B584,0x00F1AE7C,0x00E09D6C,0x00E09B69,0x00E19A69,0x00DE9767,0x00D99669,0x00D79466,0x00D59265,0x00D19164,0x00C88E62,0x00C78C61 -dd 0x00C5ABAA,0x00CDADAB,0x00D1B2B0,0x00D4B5B3,0x00DAB9B4,0x00DEBBB3,0x00E2BEB7,0x00E5C2BB,0x00EBC5B9,0x00F2C5B3,0x00F5C8B5,0x00F8CCBA,0x00E9C2AE,0x00E3B79D,0x00D2A289,0x00B0856F,0x00AD7F67,0x00A5775D,0x00966C4D,0x00B07B60,0x00B88365,0x00B27656,0x00915A43,0x00B8886C,0x00C88E6A,0x00BF8662,0x00AC7558,0x00C1906E,0x00966241,0x00B07B59,0x00B37B58,0x00AD6D50,0x00BF805E,0x00B67E61,0x00A26450,0x00B9846E,0x00985E48,0x00A8724F,0x00BB8A64,0x00AB7155,0x00BA8063,0x00C98E66,0x00B17B51,0x009C5E3F,0x00C08157,0x00A5693E,0x009B613B,0x009D623B,0x00AA7553,0x00A77D61,0x00C69E7B,0x00DFAB7E,0x00E5A675,0x00F7B280,0x00F6AF7E,0x00F2AA79,0x00F0A877,0x00EFA877,0x00EBA87B,0x00E8A477,0x00E4A174,0x00E19E71,0x00D99A6D,0x00D59569 -dd 0x00C2A9A8,0x00C9ACA8,0x00CBAEAB,0x00CCB1AC,0x00D1B3AD,0x00D6B5AC,0x00D9B8B0,0x00DBBBB2,0x00E1BCAF,0x00E6BAA8,0x00EFC2B0,0x00F6C9B7,0x00DFB49D,0x00DCA885,0x00B37E62,0x00B48465,0x00A36F54,0x006E4F3A,0x008F7459,0x00E4A988,0x00E2A078,0x00BE805E,0x0094604B,0x00A3735E,0x00C78E6F,0x00D89B70,0x00C2845C,0x00B57D59,0x00A47354,0x009D694E,0x009E634A,0x009E6048,0x00AD6C4F,0x00A9694D,0x00955C42,0x0094664D,0x00986149,0x00A26A4E,0x00A77052,0x00C6825D,0x00CF855F,0x00B47558,0x00925F47,0x009F5F42,0x00CF8856,0x00E89D5C,0x00CC8653,0x007E4730,0x008C5642,0x00AC7757,0x00AC8365,0x00D8B18B,0x00DCA472,0x00EFAE7B,0x00F8AF7E,0x00EDA473,0x00EAA070,0x00E9A170,0x00E5A174,0x00E3A073,0x00E19D70,0x00DC996C,0x00D69667,0x00D49365 -dd 0x00B99E99,0x00C0A19A,0x00C3A49D,0x00C7A9A2,0x00CBAAA1,0x00CEACA0,0x00D1AFA3,0x00D4B2A5,0x00D9B5AA,0x00DCB6AC,0x00E3B9AD,0x00F5C9B9,0x00DEB59E,0x00E1AB84,0x00AD7053,0x00BB8262,0x009A614A,0x008E5F49,0x00AE7A5A,0x00E7A67D,0x00DC9C72,0x00D09673,0x00B07B62,0x00A67A63,0x00A27760,0x00BA8862,0x00E09D65,0x00E69A5F,0x00EAA976,0x00C38A65,0x00A46B50,0x00985A40,0x00AE694A,0x00A45F3F,0x00966144,0x00A27658,0x00D89D6D,0x00DC9260,0x00DC915F,0x00D89861,0x00B37953,0x00A97456,0x00A57455,0x00C78258,0x00CD7E54,0x00EA9461,0x00D48752,0x008C5235,0x0087523F,0x00A36D4B,0x00A67153,0x00D3B195,0x00DEA66F,0x00EDB07A,0x00EFAA7A,0x00D69364,0x00D48E5D,0x00D68E5D,0x00D49063,0x00D28F62,0x00D08D60,0x00CC895D,0x00C78759,0x00C48656 -dd 0x009F827C,0x00A38178,0x00A5847B,0x00A98980,0x00AB857C,0x00AE8478,0x00B1867B,0x00AD8478,0x00C4A198,0x00DFC1BA,0x00E1BBB0,0x00F5C9BA,0x00DEB59D,0x00E2AE87,0x00B07255,0x00B77F62,0x0094604D,0x00B88970,0x00B77A5E,0x00CA8666,0x00CE8E6D,0x00CA8D71,0x00AA6A53,0x00CB9B7A,0x00B68D6C,0x00AE815B,0x00E1A26A,0x00F8A76B,0x00E9A06E,0x00B37857,0x00AF6F4E,0x00BA7A56,0x00A4674A,0x00AA6D4F,0x00A87556,0x0096654A,0x00D69866,0x00F6A766,0x00F5A168,0x00CE865A,0x00A56F4D,0x00C69266,0x00AD7C57,0x00B77D59,0x00D38C62,0x00D8835B,0x00C57A52,0x00BD8052,0x00A76C4E,0x00996A4C,0x00A86B51,0x00D7B295,0x00E4A870,0x00EEAF7A,0x00F0AA7A,0x00D99463,0x00CC8252,0x00B36E43,0x00B17149,0x00AE6F48,0x00AA6B44,0x00AC6C45,0x00AD6943,0x00A96942 -dd 0x00866862,0x00866057,0x008C665D,0x00936E66,0x00926C63,0x00976E5F,0x009F7666,0x00846259,0x00A08783,0x00DBC1BB,0x00E0BAAF,0x00F6CABB,0x00E2B49F,0x00E4AD8C,0x00B17457,0x00B38060,0x0085513C,0x00966855,0x00875946,0x00A7725A,0x00C78F6C,0x00BC8365,0x00AB7358,0x00AB775D,0x0097684E,0x009E7252,0x00E8A97A,0x00E8A06E,0x00AA784F,0x00855939,0x00955B3E,0x00A66649,0x00864E38,0x00A36748,0x00A96B49,0x00874D34,0x00926146,0x00D0915E,0x00F39F69,0x00CB855A,0x00A06C4A,0x00B17252,0x00B27855,0x00A96D45,0x00C98B59,0x00C27B51,0x00985D3D,0x0097623B,0x00824A32,0x00896D56,0x00A77156,0x00DDB48C,0x00E4A874,0x00F3AE7F,0x00F3AA7D,0x00E09562,0x00C77B4E,0x00905336,0x009E5F3D,0x009D5C3A,0x009B5A37,0x00A15E3C,0x009A553C,0x008F533C -dd 0x00B88A7A,0x00B57C67,0x00B57C68,0x00C58C78,0x00BC846F,0x00BF8267,0x00CE9376,0x00A27767,0x00A78983,0x00E0C1BA,0x00DEB8AD,0x00F6C9B9,0x00E6B6A2,0x00E5AC8D,0x00AF7053,0x00AB7456,0x0088523B,0x00AC7861,0x00B2795A,0x00AF7052,0x00C18463,0x00DF9E76,0x00C49269,0x009E6D50,0x00A67960,0x00855E49,0x00BA896A,0x00B37B5C,0x00845741,0x008A5740,0x008E5D44,0x0097654B,0x00965D45,0x009A5D44,0x0086513A,0x0084513D,0x007B5141,0x00996E51,0x00CB8865,0x00B27751,0x00A57651,0x00A46B52,0x00B17859,0x00DA955F,0x00D78C58,0x00B1643E,0x00A1653F,0x00A4724A,0x0088543D,0x00896E5A,0x009C6D57,0x00DDB68B,0x00DEA775,0x00F3AF7F,0x00F0A97D,0x00E19561,0x00D07F52,0x009A6042,0x00BF744A,0x00B36940,0x00B76C41,0x00CB7646,0x00B86B47,0x00B6694A -dd 0x00BC887D,0x00B57869,0x00B17364,0x00C28678,0x00AE7B6B,0x00B87E65,0x00CD9176,0x00A07465,0x00A3817D,0x00E1C0BA,0x00DBB5AB,0x00F5C7B8,0x00E6B59F,0x00E4AB8B,0x00AE735A,0x00AD775A,0x0086543D,0x00AD8468,0x00D99A76,0x00CF8C6E,0x00AD765A,0x00B2775B,0x00956249,0x007C4C3C,0x00956A59,0x00895B4D,0x009C6E56,0x00A8745F,0x0091614F,0x00A16951,0x00784430,0x005D3925,0x00633B21,0x00603016,0x00563517,0x00965C3E,0x00AB6342,0x00A9714D,0x00B2724E,0x00A96F47,0x009F6344,0x00844D38,0x007E4D38,0x00AD7653,0x00B57652,0x00BF784E,0x00DE9461,0x00CC8459,0x009A5839,0x00A36F50,0x00A4705A,0x00DDB88D,0x00DAA673,0x00F1AE7D,0x00EBA87C,0x00DC975F,0x00D1794F,0x0094593D,0x00C4764C,0x00B3663C,0x00B96D3F,0x00D27340,0x00B1653E,0x00AD623E -dd 0x00C88A84,0x00C28175,0x00AB7365,0x00966857,0x009D7360,0x00C48A6F,0x00D7967A,0x00A67667,0x00A3807A,0x00E1C0BA,0x00DAB5AA,0x00F4C6B6,0x00E4B49C,0x00E4AA89,0x00AC735C,0x00AE775B,0x008C563E,0x00B99171,0x00CD946A,0x00BA7D55,0x00AD7C57,0x00A3735C,0x00B28A71,0x00A86F57,0x00BD8163,0x00A66C55,0x00875D4B,0x00AC7160,0x00A46952,0x00B17C5E,0x006C3825,0x00442012,0x0049250D,0x00471C05,0x00482A11,0x00A46F4F,0x00B76A45,0x00B36F46,0x00A0603F,0x00966647,0x00B57852,0x00A66845,0x00A77659,0x00A9795E,0x00B67B5C,0x00C07D54,0x00D9915F,0x00DA8963,0x00995338,0x00A57250,0x009F7661,0x00DBB78D,0x00DCA671,0x00F2AF7E,0x00ECAA7E,0x00D99662,0x00CF774D,0x00955C43,0x00CD7C52,0x00C86C38,0x00BF7141,0x00A75F3B,0x00A06449,0x00BF6F47 -dd 0x00BE8278,0x00AA6E60,0x009A6B59,0x007E5945,0x00896153,0x00B07561,0x00C6876E,0x00A67A6A,0x00A8887F,0x00E1C0B5,0x00D9B2A2,0x00F4C4B0,0x00E2B599,0x00E3AB89,0x00A8715A,0x00AE755A,0x00864C37,0x009B6F5A,0x0099664C,0x0091583D,0x00AA7357,0x0096644D,0x00AE8165,0x00AD694B,0x00CD845E,0x00AC6749,0x00956754,0x00BC785A,0x00995942,0x00A5765D,0x00643926,0x003A2012,0x00371C06,0x003A1A03,0x00482510,0x009A694A,0x00A25A3C,0x00B06441,0x00B06949,0x009D6147,0x00CA8359,0x00B4693F,0x00A77250,0x009A674D,0x00AF6F50,0x009E6140,0x00965A39,0x00B06648,0x00864129,0x009E6C4C,0x0096735F,0x00D9B790,0x00E3A673,0x00F5B17E,0x00EEAA7E,0x00D8956B,0x00D0784B,0x009A5F47,0x00CA7950,0x00BB5F31,0x00A75D35,0x00874A26,0x00935537,0x00B66136 -dd 0x00C68675,0x00BD7C68,0x00B37B64,0x00A06E58,0x00A67465,0x00CB8974,0x00D79375,0x00A5745E,0x00A78476,0x00E2BFB1,0x00DBB3A0,0x00F4C4AD,0x00E0B597,0x00E1AB88,0x00A7735D,0x00B37B60,0x008E5541,0x00B9876D,0x00DD9E71,0x00CA875E,0x00B27759,0x00AB795D,0x00B48567,0x00A1694F,0x00B67C60,0x00A36B4F,0x008E6050,0x00BE7F5C,0x00B3775D,0x00B37F64,0x00703E25,0x004B2A15,0x0049280E,0x003F220A,0x00512B15,0x009B6948,0x00B67249,0x00C1754C,0x00A55A3B,0x009D5F48,0x00BB7D5E,0x00A76C4A,0x00A87D59,0x00B07A53,0x00B6744D,0x00BB7F55,0x00D6925F,0x00D28861,0x0099503A,0x00B17152,0x00AA7252,0x00DEB48C,0x00E2A679,0x00F6AF7C,0x00F0A677,0x00D8956D,0x00CD7444,0x0095573F,0x00D58050,0x00D1723C,0x00BA6A3B,0x00A86234,0x00AF623C,0x00CE7546 -dd 0x00C28875,0x00B57964,0x00B07863,0x00BB8671,0x00AB7863,0x00B4745F,0x00C6816B,0x00A5725F,0x00AE867A,0x00E5BEB1,0x00DFB1A1,0x00F5C1AB,0x00E0B292,0x00E3AD86,0x00A7725B,0x00B0775F,0x00905B4A,0x00B2826B,0x00D9986C,0x00CF8D62,0x00AC7355,0x00B78168,0x00976149,0x007A533A,0x00A47059,0x009D6A4E,0x00A67B60,0x00A97657,0x009D684D,0x009E6647,0x00814529,0x00744128,0x00714128,0x00673A26,0x00703A23,0x00935E3A,0x00996841,0x00A2704D,0x009A5E46,0x0099604E,0x00A66A4C,0x008A5532,0x007D5538,0x00A97652,0x00AE6D4E,0x00BC7952,0x00E19A62,0x00C4845B,0x00934E36,0x00AF6A4C,0x00B06C4E,0x00DFB389,0x00E1A579,0x00F6AC80,0x00EEA578,0x00D8946D,0x00CE7442,0x0095573C,0x00C4754C,0x00B65E36,0x00B4633E,0x00CD784A,0x00B1623B,0x00A56347 -dd 0x00B48373,0x00A87564,0x00A26F5F,0x00AC7968,0x00A77661,0x00B17562,0x00BE7E6F,0x00A57463,0x00B68E84,0x00E6BDB2,0x00E1AF9F,0x00F5BEAA,0x00DDAD8D,0x00E1AB82,0x00A77259,0x00AD725D,0x0093594A,0x00AA7A66,0x00A66B51,0x00A96746,0x00BF7F54,0x00E09D6F,0x00C78862,0x00986F4F,0x00A7745D,0x00976B51,0x00C89869,0x00B77C4F,0x00885439,0x00835439,0x00996143,0x00B06E4E,0x00B16C46,0x00B46F4C,0x009D5E42,0x008D583E,0x007D4B31,0x00A16540,0x00B97852,0x00A96A4D,0x00B3734F,0x00A86C46,0x00B67C57,0x00D89761,0x00C68153,0x009E5C3D,0x00AE6F48,0x00BC7C51,0x009B5133,0x00AC6748,0x00AF6C51,0x00DFB388,0x00E1A578,0x00F5AC82,0x00EBA678,0x00DB9369,0x00D17643,0x009D6141,0x00C17B53,0x00BE6F48,0x00BB6D49,0x00C97547,0x00BB6E40,0x00AD6A4A -dd 0x008B6052,0x008B6052,0x008B5F51,0x008F6456,0x008C5F4C,0x00915D4A,0x009A6452,0x008C5C49,0x00B18A7E,0x00E5BFB2,0x00DFB09F,0x00F3BFA9,0x00DDAD8E,0x00E0A783,0x00AA7159,0x00AE755C,0x0089523A,0x009B6A4D,0x009B5C41,0x00BB7254,0x00CB855F,0x00BB754F,0x00AC6F50,0x00AB805D,0x009E7452,0x00AC7957,0x00EBA46F,0x00E99663,0x00B16D4E,0x0087523A,0x0098593E,0x00A76548,0x00905332,0x00A3603B,0x009D6141,0x00844F38,0x009C6444,0x00DA8B5B,0x00ED9662,0x00C7774E,0x00A7633F,0x00A76944,0x00AD6E4A,0x00B47446,0x00C78752,0x00B0754B,0x00915739,0x009C613F,0x008E492F,0x00AF6E50,0x00B27155,0x00DEB187,0x00E1A477,0x00F6AD84,0x00EBA674,0x00E1915C,0x00CE7744,0x0094573A,0x009B6047,0x00995944,0x00905641,0x008F583F,0x008C563D,0x008B533F -dd 0x008F695C,0x00936D61,0x00956F62,0x009C7669,0x009E7462,0x00A27561,0x00A77B67,0x00A47764,0x00BC9587,0x00DFBAAB,0x00DDB09D,0x00F3C1A9,0x00DDAD90,0x00E0A685,0x00A66D55,0x00A67156,0x009C6346,0x00BE8864,0x00C88058,0x00DC8F62,0x00DE9264,0x00CF875D,0x00A86C4F,0x00C1956F,0x00AB8B65,0x00AA7B5C,0x00D99263,0x00F49B66,0x00E9976B,0x00B17355,0x00AB714D,0x00B37A53,0x00AD6A47,0x00B46A4C,0x00BA7A5E,0x00B06C4F,0x00E59462,0x00F79A63,0x00EC9361,0x00CC7D50,0x00B67F57,0x00C09166,0x00A56C46,0x00C58454,0x00D28D56,0x00C68854,0x00B5744B,0x00C3845A,0x0099573B,0x00AA6B4F,0x00B17052,0x00DFB084,0x00E1A476,0x00F6AE84,0x00E8A775,0x00D79458,0x00CC804C,0x00B76949,0x00B9694C,0x00B56847,0x00AF6844,0x00AC6A44,0x00AA6945,0x00A96845 -dd 0x00AC897E,0x00AF8C82,0x00B39086,0x00B9958A,0x00BF9484,0x00C49784,0x00C89B88,0x00CA9D8A,0x00CEA18E,0x00D5AA97,0x00DBAB97,0x00F2C0A9,0x00DBAC8F,0x00E0A685,0x00A77059,0x00AC795B,0x008B573D,0x00785840,0x00B47F60,0x00E99E79,0x00D18861,0x00C28562,0x00A97458,0x009F7359,0x00A0795D,0x00C68B68,0x00D58E62,0x00DB8E5E,0x00E2966D,0x00B2735A,0x00945F44,0x008D5E40,0x009D6746,0x0093533B,0x00995940,0x00B1714F,0x00E49C68,0x00DC8B5B,0x00D78B5A,0x00D78B59,0x00B27B56,0x009F755B,0x00A07156,0x00CD8B62,0x00DB8957,0x00DE9561,0x00AD6743,0x00985B3E,0x00915235,0x00B4724B,0x00AE7452,0x00DEB085,0x00DDA174,0x00F1AF82,0x00E5A578,0x00D29262,0x00CF8E5F,0x00D18D62,0x00D28E61,0x00CF8C5D,0x00CE8A5B,0x00CB8758,0x00C68555,0x00C28253 -dd 0x00B7958D,0x00BB9991,0x00BF9E95,0x00C4A298,0x00CBA190,0x00D0A390,0x00D2A592,0x00D6A996,0x00D9A993,0x00DAA992,0x00E2B099,0x00EDBDA6,0x00D6A88C,0x00DAA282,0x00B07A5F,0x00B27B5E,0x00985E4B,0x006B4637,0x00A37256,0x00E59D7A,0x00D39166,0x00A46F51,0x00855942,0x00A17257,0x00CA8560,0x00D78F64,0x00B3764F,0x00AC7958,0x009A684F,0x0095634D,0x009D614B,0x00A56A53,0x00A07451,0x009D6D51,0x009B5D42,0x00A56D50,0x00A37055,0x00AD765C,0x00B77854,0x00DA8F5E,0x00D08B5B,0x00AC704E,0x00905A43,0x00AD7157,0x00DC9064,0x00E59B62,0x00AC643C,0x00773B24,0x00915435,0x00B16E47,0x00AE7957,0x00E0AB80,0x00DE9F72,0x00F0AD80,0x00EBA87B,0x00DE9C6E,0x00DD9A6C,0x00DD9A6D,0x00DB986B,0x00D69568,0x00D59265,0x00D39063,0x00CF8E5F,0x00CA8B5C -dd 0x00C3A295,0x00C6A69A,0x00CAAA9D,0x00CEADA0,0x00D6AC9A,0x00DBAE9A,0x00DEB29E,0x00E3B6A3,0x00EABAA4,0x00ECB9A2,0x00EBB9A2,0x00EDBCA5,0x00DDAB94,0x00D9A586,0x00CB9671,0x00AF7D5F,0x00A4715E,0x0094624B,0x008E5E40,0x00A37056,0x00B77B5D,0x00AB6849,0x00975F3F,0x00C1885C,0x00BE7A50,0x00B37D5D,0x00A96D4B,0x00B57E5A,0x00874E35,0x00B27857,0x00B47958,0x00B27456,0x00B5744F,0x00A97159,0x00A97250,0x00C8865E,0x00945A40,0x00AD7F5C,0x00A96D4C,0x00B07A5C,0x00BC825A,0x00C38155,0x0090593D,0x009C664D,0x00C07854,0x00A87041,0x00985B38,0x008E5C41,0x009F6D4F,0x00A66F51,0x00C69575,0x00E2A57B,0x00E49D70,0x00F6AA7A,0x00F5AC7B,0x00F3AA7A,0x00F2A878,0x00F1A877,0x00ECA678,0x00E5A275,0x00E19F71,0x00DE9B6F,0x00DA986A,0x00D49566 -dd 0x00B59586,0x00B9998A,0x00BE9E8F,0x00C2A193,0x00CAA08E,0x00CFA28F,0x00D2A592,0x00D6A895,0x00DCAB96,0x00DEAC96,0x00E0AF98,0x00E8B8A0,0x00E9B99F,0x00DCAD91,0x00DAA384,0x00CB926E,0x00AC8262,0x00AB7E61,0x00996249,0x0080513F,0x00976A54,0x00CA8860,0x00E39761,0x00D79261,0x00965C44,0x00A37868,0x009A664B,0x00AC7353,0x008C5946,0x009B6C51,0x00804F36,0x0097654A,0x009D5D42,0x009C634E,0x007B4A30,0x00B56E4F,0x009F5943,0x00A96F51,0x00A45E43,0x00A56E55,0x00915942,0x00CC8E68,0x00D89560,0x00C28250,0x00AC6742,0x007D5436,0x00945E41,0x00A8714E,0x00A77656,0x00C39372,0x00DFA882,0x00E2A076,0x00F1AA7C,0x00F1A776,0x00E49E6D,0x00E0996A,0x00DD9465,0x00DC9364,0x00D89366,0x00D39265,0x00CF8E61,0x00CD8A5E,0x00C9895A,0x00C38857 -dd 0x00B39585,0x00B69888,0x00BC9D8E,0x00C0A091,0x00CB9F8E,0x00D1A291,0x00D4A695,0x00D7AB99,0x00DCB09E,0x00DEB19D,0x00DDAE97,0x00D9A88D,0x00E2B391,0x00EABA9A,0x00DAA98B,0x00D8A27C,0x00C4936A,0x00A77F61,0x00A7745B,0x00955F49,0x00885741,0x00D0906A,0x00E29461,0x00A26D43,0x008E5E47,0x00AF8068,0x00B07B58,0x008B523A,0x00865949,0x00C48960,0x009D5A3A,0x00B27B5C,0x00B77655,0x00BB795A,0x008E5B34,0x00C98B5B,0x009F5F3D,0x008E5937,0x00B2754F,0x00AB7352,0x008E533E,0x00AB7051,0x00E99763,0x00D78D58,0x00945931,0x008E5A3A,0x00AA6C4B,0x00A57055,0x00BF9073,0x00E2A67C,0x00E7A373,0x00F0AB7B,0x00F2AE7D,0x00E49F6D,0x00DA9765,0x00D89D6B,0x00D99F6E,0x00D89C6A,0x00D49A67,0x00D29864,0x00D19863,0x00CF925E,0x00CB8B5B,0x00C5865C -dd 0x00916A5E,0x00956F62,0x00946D61,0x00946D5F,0x00A1745C,0x00A5775D,0x00AA7D63,0x00AE8066,0x00AB7E65,0x00B1876E,0x00C29F87,0x00D2B098,0x00D5AB8A,0x00EAB893,0x00EABB97,0x00DBAC87,0x00D7A37A,0x00C2916B,0x00AA7D61,0x00AC7B63,0x008F5F46,0x00926349,0x00AE7358,0x00A77651,0x00CC8964,0x00B37553,0x00D69361,0x00BC784F,0x00B27A57,0x00DD965D,0x00B8734A,0x00A26A4B,0x009E5F3B,0x00A96541,0x00AE6E3E,0x00DF8E5D,0x00C2754F,0x00B67A4B,0x00D18D5D,0x00B0714E,0x00CE855E,0x00C37B4C,0x00C97E52,0x00A45D41,0x008D5737,0x00AD6F4A,0x00B07453,0x00BE8D74,0x00DDA786,0x00E8A377,0x00F3AC7A,0x00F6AF7D,0x00EBA472,0x00DE9A6B,0x00B9805B,0x00A87653,0x00A87655,0x00A87552,0x00A8704D,0x00A36746,0x00A86A47,0x00A2623E,0x00995B3A,0x00955D3A -dd 0x0083534D,0x008C5D56,0x008B5B55,0x008C5C52,0x0099664C,0x00996247,0x00A36A50,0x00AE7259,0x00A76D53,0x00B27659,0x00B3826E,0x00C39F96,0x00D6AF9E,0x00DBAB8D,0x00EAB796,0x00ECB694,0x00DFAA84,0x00DDA57D,0x00C4906E,0x00A6795F,0x009D6F53,0x008D5842,0x007A4A3A,0x008C684A,0x00E1996E,0x00E69160,0x00E99460,0x00C77D52,0x00BB8159,0x00AB6C42,0x00AC6B4D,0x00AE6D51,0x00A6673F,0x00B9774E,0x00BD7A51,0x00C17350,0x00CE855E,0x00CB8255,0x00E99761,0x00E2905A,0x00E49461,0x009D603E,0x007B4A30,0x00914F34,0x00A76A4C,0x00A76E55,0x00BD8A6D,0x00DBA27F,0x00E3A37B,0x00F1AD7F,0x00F5B37C,0x00EAA46E,0x00E09C6C,0x00C2845F,0x00A46A4D,0x00B17049,0x00AA6742,0x00A8643F,0x00A3603B,0x00965737,0x00985933,0x0090512C,0x00894E2C,0x0084522D -dd 0x0055382F,0x0051352B,0x00573C31,0x005D4236,0x00553E26,0x005A4027,0x0061402C,0x00704A36,0x00684129,0x00794F37,0x009D725E,0x00AE8574,0x00C2A091,0x00D7AE98,0x00E0AB8E,0x00EEB492,0x00EEB690,0x00E0AA83,0x00DBA27A,0x00C08B68,0x00A07B57,0x00A67856,0x008F5E4B,0x0088674D,0x00BF8360,0x00E18F67,0x00D48963,0x00AE6F51,0x00905F42,0x00A67245,0x00D6945F,0x00C57E51,0x00885536,0x00C58A64,0x00DB9362,0x00B66B42,0x00A66849,0x00B67857,0x00D68D5D,0x00E8955B,0x00D0804F,0x00925339,0x008C543E,0x00B1704E,0x00B17A5A,0x00BA8D6E,0x00D9A67D,0x00DFA676,0x00EEAC79,0x00F6B27B,0x00E8A86D,0x00E29F67,0x00C9875A,0x00B36C49,0x00A66347,0x008D4C30,0x0068321A,0x006E4227,0x00643C22,0x0059331C,0x00522E16,0x004F2B13,0x0060371A,0x00582F16 -dd 0x005F4237,0x0054362B,0x00725045,0x007B584E,0x005D4234,0x005C3E33,0x006A463D,0x007C554B,0x00704C33,0x00533723,0x00755341,0x00A5765A,0x00AB8267,0x00C19E8C,0x00D7AA97,0x00DCAA8A,0x00ECB890,0x00EDB68F,0x00DCA780,0x00D39F78,0x00AF8A62,0x0094714E,0x009B6C55,0x0090664F,0x00804E38,0x008C4C33,0x00AB6643,0x00AB704B,0x00825136,0x00B77C50,0x00E09358,0x00DB9056,0x00A1643F,0x00DB9868,0x00DA8A55,0x00B87244,0x00925639,0x00B77D55,0x00AA6741,0x00905638,0x00885133,0x0097573A,0x00AC694F,0x00A77259,0x00BD8C6C,0x00DEA377,0x00E5A472,0x00EDAE7C,0x00F5B27F,0x00E8A873,0x00DEA36D,0x00D09262,0x00B57049,0x00B66B43,0x00874F2C,0x0057280E,0x0067331B,0x0093553B,0x00824931,0x0071452D,0x00694028,0x00784A30,0x008A5932,0x007C4924 -dd 0x007A5D4F,0x00745143,0x00865A4F,0x00815448,0x007A5646,0x005F3A2F,0x0073473A,0x00895749,0x00B47B5B,0x00774B35,0x00513325,0x006E4F3B,0x00946F52,0x00A7806C,0x00C09B8F,0x00D4AB8F,0x00DBA980,0x00F0B790,0x00ECB891,0x00D9AA83,0x00CC9E76,0x00AD805C,0x00986D52,0x00AB7861,0x00915A49,0x00683A2B,0x009C6044,0x00AF6E4E,0x008B523D,0x00AB7056,0x00BA704C,0x00B17047,0x00885133,0x00B4754D,0x00B06C43,0x009C6945,0x00855438,0x00B27F54,0x0096623E,0x00633422,0x00855337,0x00B77952,0x00B87A5A,0x00BB8970,0x00DAA37F,0x00E5A474,0x00F0AA78,0x00F6B281,0x00E7A776,0x00E1A070,0x00D1966F,0x00B37F5E,0x00A46A49,0x0088502F,0x00562D14,0x00552C13,0x00A1643D,0x00D57F52,0x009C5435,0x00774A32,0x0074452B,0x00925D40,0x007F4F31,0x00935E3E -dd 0x007D6051,0x00735144,0x00714B3F,0x00764F41,0x00916F59,0x00724D3E,0x008A5D4B,0x009F6B58,0x00C38865,0x00895A40,0x006A4639,0x005A3529,0x007A5240,0x00A87660,0x00B07D6B,0x00C29D87,0x00CFA78A,0x00DBA584,0x00EFB793,0x00EBB590,0x00D5A27C,0x00CF9771,0x00AD7C5A,0x00996951,0x00A46B54,0x00905A3F,0x008A4F30,0x00854928,0x007C4725,0x00854F31,0x008A4C2F,0x00844A2B,0x00754022,0x00834828,0x00854729,0x007F4629,0x007A4327,0x00824F32,0x00825134,0x008F5637,0x00AE6F4A,0x00AE7753,0x00BD8764,0x00DA9E78,0x00E5A376,0x00EFAB79,0x00F6B280,0x00EAA574,0x00E29F6E,0x00D79669,0x00B67A5A,0x00B17350,0x00925230,0x005F2B16,0x00603625,0x006C442C,0x0097633B,0x00CD7D4C,0x009B5130,0x008A543D,0x008C5338,0x009C6143,0x006A3A26,0x006C3D2D -dd 0x005D4134,0x006C4E40,0x005B3C2F,0x004B2E22,0x006F5541,0x006A4D3F,0x006B4537,0x00805544,0x008A5D41,0x005E3920,0x0063432F,0x00503422,0x0056382A,0x00835749,0x00A46A5A,0x00AA7D69,0x00C49F8E,0x00D6A790,0x00E0A585,0x00F2B58F,0x00E9B28A,0x00D6A57D,0x00CD9971,0x00AB7757,0x009D6548,0x00BC7753,0x00C07853,0x00BD7551,0x00C07B53,0x00B8764E,0x00B8754E,0x00BB7951,0x00B2724A,0x00B3714A,0x00BB764F,0x00B57049,0x00B9744B,0x00BA714B,0x00B26A45,0x00B8744E,0x00AB7352,0x00B48365,0x00D69D76,0x00E2A377,0x00F0AC7B,0x00F8B380,0x00ECA876,0x00E5A06F,0x00DA986B,0x00C17D54,0x00A86944,0x008F5939,0x005F3118,0x00582A15,0x00552C1A,0x00553620,0x005D3C1F,0x0099633D,0x00713E27,0x00654631,0x006D452E,0x00633B27,0x004D2B1D,0x00643928 -dd 0x00583C2F,0x0068463A,0x007D5547,0x0074483B,0x007A523D,0x006A4733,0x00754C3B,0x009A6959,0x008C614E,0x005A3921,0x0073432D,0x005C3927,0x005B4131,0x00543525,0x00805542,0x00AB755B,0x00B18471,0x00CBA993,0x00DCAC8B,0x00E2A680,0x00F2B48D,0x00EBB18B,0x00DBA37D,0x00D09670,0x00AA7150,0x00996544,0x00986646,0x009B6949,0x009D6A49,0x009B6546,0x00996245,0x009B6446,0x009A6346,0x009B6548,0x009F684D,0x009E684C,0x00A0694C,0x00A36948,0x00A06543,0x00A36A49,0x00AF795A,0x00D69A76,0x00E7A477,0x00F0AC7D,0x00F9B382,0x00EDA978,0x00E1A471,0x00D89E6E,0x00C08059,0x00BC734B,0x00975C37,0x0065371D,0x00572C15,0x006C3E26,0x00603523,0x007D4A37,0x005E3825,0x008B6343,0x00935639,0x0075462B,0x0076412B,0x0088513A,0x00865239,0x007F4D2A -dd 0x005E463C,0x005C3E33,0x006D4638,0x007A4B3B,0x00714331,0x005D3C25,0x0091694D,0x00925B46,0x0063382B,0x00604127,0x00985A40,0x00643A28,0x005D3F29,0x004E2F15,0x00523219,0x008B5A44,0x00A07361,0x00A89079,0x00CFB190,0x00DDAB83,0x00E1A47C,0x00F2B28D,0x00EBAF8A,0x00DDA37E,0x00D59771,0x00D1946D,0x00D3966F,0x00D49870,0x00D69871,0x00D79670,0x00D89670,0x00D99771,0x00DA9872,0x00DA996E,0x00DA9A6D,0x00DA9B6D,0x00DB9B6E,0x00DD9A6D,0x00DF996D,0x00DE986B,0x00E0996C,0x00E9A072,0x00F1AB7A,0x00F9B382,0x00F1AA78,0x00E9A36F,0x00DD9F64,0x00C28350,0x00AF6A45,0x009F5B3D,0x006A341C,0x0056250E,0x0066341B,0x00693A25,0x0074422F,0x00A05C45,0x00593121,0x0065452C,0x00B76A47,0x008E492D,0x00522B16,0x005A3723,0x005F3622,0x00633B1A -dd 0x00513931,0x00614A3D,0x00452E1D,0x00583C26,0x00543421,0x00412B18,0x008F6A4D,0x00AB6F52,0x00774C3B,0x0075533B,0x00986249,0x00714736,0x00704932,0x00654228,0x004A2A14,0x0059301F,0x00815947,0x009D7A61,0x00B59479,0x00D4B08D,0x00D8A87F,0x00DDA37D,0x00F0B48D,0x00EEB28C,0x00E9AC85,0x00EBAA82,0x00EDAA82,0x00EBAB82,0x00EBAC82,0x00ECAD7E,0x00EEAF7E,0x00EFAF7F,0x00F0AF7F,0x00EFAD7E,0x00EEAC7E,0x00EEAC7E,0x00EEAC7E,0x00F0AD7D,0x00F2AD7B,0x00F0AC79,0x00F1AB78,0x00F4AC7A,0x00F7B07F,0x00F0AA79,0x00E8A473,0x00E2A16D,0x00C8874D,0x00BA7443,0x009E5A39,0x0068321A,0x0052260E,0x006B3924,0x007D4A36,0x00663F2E,0x0080523E,0x009E6047,0x00724833,0x00935A3B,0x00D3764B,0x007F4224,0x004B2C12,0x00734126,0x00613416,0x0056361D -dd 0x00724B41,0x00875B4E,0x007A4837,0x00A1664D,0x008D563E,0x00573B2A,0x007A5543,0x00B7775F,0x008A5A45,0x00774D39,0x00855A45,0x006A4130,0x006B402E,0x00754D3A,0x00764D37,0x00522813,0x005B3923,0x00885F47,0x00A47661,0x00B2967C,0x00D2B28E,0x00DAA67F,0x00E0A47D,0x00F2B48E,0x00F5B78E,0x00F7B588,0x00F7B487,0x00F5B386,0x00F5B385,0x00F7B383,0x00F8B382,0x00F9B180,0x00F9B07F,0x00F9B080,0x00F9B080,0x00F9B07F,0x00F9B080,0x00F9B080,0x00F9B080,0x00F8AF7F,0x00F9AF7E,0x00F9B07E,0x00EEA675,0x00E39D6C,0x00E0A170,0x00CA8858,0x00B86B3F,0x00A3633C,0x0066381B,0x004E2510,0x006D3D22,0x00855135,0x006D3F29,0x00653D29,0x007E553E,0x008B5D45,0x007F533D,0x00B36643,0x00CA6941,0x006C4126,0x00694429,0x00BF6A49,0x00AB5C2D,0x0073421E -dd 0x00754E3A,0x008A5B45,0x007E4E39,0x00A76C55,0x00894B3A,0x00583727,0x00614230,0x00AC775E,0x00926045,0x00774833,0x00764F3C,0x006E4837,0x006D4332,0x00714330,0x0099664E,0x007F4B32,0x006E442B,0x00653A26,0x008C5C47,0x00A87C60,0x00B58E70,0x00D5AA8A,0x00DA9E77,0x00EFAE85,0x00ECAE86,0x00E4A47B,0x00E5A47A,0x00E6A375,0x00E6A373,0x00E4A274,0x00E3A374,0x00E5A374,0x00E6A374,0x00E6A274,0x00E6A275,0x00E7A276,0x00E8A376,0x00E8A373,0x00E7A270,0x00E49E6C,0x00EFA977,0x00F7B07F,0x00E59F70,0x00D89867,0x00C5845B,0x00BF724C,0x00A55D3C,0x00714322,0x00552F13,0x00894B33,0x00A05E3A,0x00844F2C,0x00583119,0x00724B33,0x0077563E,0x00826049,0x00935E40,0x00C06C40,0x00B25B34,0x005D3621,0x005C3D27,0x00965D3D,0x00975731,0x007E4928 -dd 0x005D402C,0x00876144,0x00593C29,0x00563C30,0x0059372A,0x005C4230,0x00684033,0x00A66556,0x00A66547,0x0090573E,0x00825340,0x006B4534,0x00543526,0x0063402F,0x007F5A46,0x00734B37,0x0071462E,0x005E341F,0x006B422E,0x00A66F4E,0x00A37254,0x00C69F88,0x00D99B74,0x00EFAC7E,0x00E1A379,0x00DCA275,0x00EDBC89,0x00F0C98B,0x00EFCA89,0x00F0C68E,0x00F2C68F,0x00F3C992,0x00F3CA93,0x00F2C790,0x00F2C68E,0x00F2C790,0x00F3C890,0x00F3C78F,0x00F1C18A,0x00DDA56F,0x00DFA56F,0x00F2B280,0x00E59F73,0x00D29566,0x00B4704C,0x00C06B49,0x008C492D,0x0065361A,0x006F4226,0x00794129,0x006D3F26,0x00774F34,0x00653E23,0x006E472A,0x00896142,0x009E6E4F,0x00AF6A44,0x00C46F44,0x00A65D3C,0x0078503A,0x006D4936,0x005B3B28,0x0052351E,0x00985E34 -dd 0x00553828,0x007E5941,0x0061442F,0x005D3F31,0x00775141,0x00573D30,0x00734D41,0x009D6350,0x00AE6C4A,0x00A76649,0x0099624C,0x00774D39,0x00734C33,0x008A5C3E,0x0074472F,0x0059321F,0x006D412C,0x00754932,0x00643A27,0x009C6549,0x00A46F53,0x00C79B82,0x00D89A74,0x00EEAB7E,0x00DEA174,0x00D89C6B,0x00E8AC73,0x00D8A56A,0x00D0A56C,0x00D2A672,0x00D2A571,0x00D1A671,0x00D3A773,0x00D3A26F,0x00D3A06C,0x00D4A371,0x00D1A16E,0x00D49F6F,0x00EFB182,0x00E3A170,0x00DEA06E,0x00F0AD7E,0x00E69F74,0x00D39768,0x00B36F4A,0x00BC6545,0x00824027,0x0064371D,0x00864F36,0x00673721,0x005B321B,0x00855234,0x008D5935,0x007A4E2C,0x009A6943,0x00B47049,0x00C2734B,0x00C66E47,0x00A95C3A,0x006E452C,0x007E5032,0x0092583D,0x0064452C,0x00A66C3F -dd 0x00462A1F,0x00684B3F,0x00593C30,0x0060382A,0x00855440,0x0056352B,0x00815949,0x00A26B4F,0x00A66749,0x00864A35,0x007E503D,0x00694630,0x005D3A23,0x00704429,0x00734328,0x006A3C26,0x007B4A34,0x00794931,0x00663826,0x00A6664E,0x00B27055,0x00CF9877,0x00D79A73,0x00EAA87C,0x00DD9C71,0x00D8986D,0x00D98D5B,0x00A55C30,0x009B5E39,0x00A76745,0x009F5D3D,0x009E5C3A,0x00A66441,0x009E5E3A,0x009A5C37,0x00A16541,0x00985B38,0x009C5B39,0x00DF9971,0x00E19E71,0x00D89D6D,0x00E8AB7C,0x00E49E71,0x00D29566,0x00B26D49,0x00C46B4A,0x0090442B,0x0064391D,0x008C5035,0x0079472E,0x00694226,0x00693A22,0x0070422A,0x00744A34,0x008D6145,0x0071412A,0x0086553C,0x00B26A43,0x00BF6739,0x007F472C,0x00865933,0x00905236,0x00533524,0x00734D36 -dd 0x004E3329,0x0048332A,0x00573B30,0x0080503B,0x00975E3F,0x00784A34,0x0099654C,0x008E583D,0x006B402E,0x004B291A,0x006A4E30,0x00945F3A,0x00925431,0x006A3D25,0x005F3E29,0x00653F26,0x00814F34,0x006E3E25,0x00633824,0x009F624B,0x00AC6C54,0x00CD9673,0x00D49872,0x00E7A57A,0x00DA976C,0x00D6966A,0x00D38859,0x00A45831,0x00BA724D,0x00DD8756,0x00E28452,0x00DD824E,0x00D87E4A,0x00DA804D,0x00D78250,0x00D68355,0x00C67045,0x00A95B33,0x00DC966B,0x00E09D71,0x00D7986A,0x00E6A678,0x00E29C6F,0x00CF9164,0x00AB6A48,0x00B56949,0x008B4329,0x005B3618,0x008D5132,0x00905030,0x0072431E,0x00633B1F,0x0099613D,0x00B56C45,0x00975738,0x00602E17,0x0067432F,0x00774A34,0x00AF6B43,0x009C5635,0x00AC643A,0x00C36640,0x00964C2D,0x004C271A -dd 0x00684538,0x005A382B,0x00875742,0x00975E41,0x00905A37,0x00834F34,0x00925B47,0x006A3D2D,0x007B5140,0x00673F2D,0x00503C20,0x009A5F42,0x00BD7249,0x00814D31,0x007A503D,0x007D4A33,0x00965A41,0x00603019,0x005A371D,0x00906045,0x00A26A4F,0x00C99471,0x00D2956F,0x00E5A378,0x00DA9568,0x00D59466,0x00CE865B,0x00A65838,0x00C77551,0x00CF7647,0x00D67C4B,0x00DA8251,0x00C66F3D,0x00D97B47,0x00D47949,0x00CD7850,0x00CD7B54,0x00A55C34,0x00D69467,0x00E19E70,0x00DA9669,0x00E8A477,0x00E29D70,0x00CF8F65,0x00A3694A,0x009F6546,0x00884427,0x004F2F10,0x00825335,0x009F6244,0x009C5D3B,0x00834D38,0x00B7714E,0x00CB6F3E,0x0078381F,0x006A351F,0x00A36640,0x00753E25,0x008F5D41,0x008B5434,0x009A5C35,0x00AA6233,0x00B36737,0x007D4328 -dd 0x0088513B,0x008C4F37,0x00975B3C,0x00925738,0x008B5239,0x00633627,0x0057362A,0x00503220,0x00976348,0x00794B36,0x0042311A,0x00734737,0x008E573D,0x00623B29,0x006A4C3D,0x005E3929,0x006A422A,0x0048280C,0x00613A1C,0x00A66249,0x00B0684E,0x00C6906E,0x00CD936C,0x00E09F74,0x00D79467,0x00D39265,0x00CB815A,0x009B4F31,0x00BF724F,0x00BD6942,0x00C27047,0x00CA784D,0x00B7663D,0x00D0784D,0x00C9724C,0x00BD694A,0x00C87857,0x009D532F,0x00D18E63,0x00DE9C6E,0x00D69367,0x00E6A275,0x00E29D70,0x00CD8E64,0x00A3694A,0x00A06749,0x008E4B2A,0x004B2D0D,0x00623C28,0x00613A2A,0x00734A32,0x00663B28,0x006F4329,0x007E4B28,0x004E2D1A,0x005E3622,0x00A8693F,0x00713C20,0x00502D1D,0x00633A25,0x009B5E39,0x00AD6235,0x00B8683D,0x00A35533 -dd 0x008D5538,0x00915538,0x0091593A,0x009A5C3D,0x00A66446,0x007D4A30,0x00543017,0x00613D20,0x008F5B3A,0x006C3D26,0x0053301B,0x00573422,0x0057371D,0x005B3A20,0x0069442C,0x00603420,0x00794A2A,0x005A3113,0x00673B20,0x00A46043,0x00AE6A4D,0x00C08E70,0x00C99370,0x00D99D75,0x00CE9167,0x00CF8E68,0x00C87B5A,0x009B5135,0x00B57550,0x00B6683C,0x00B46B43,0x00A7643F,0x00965736,0x00A86444,0x00C2734C,0x00BB6841,0x00C37752,0x009E5734,0x00CD8A5F,0x00DB996C,0x00D28F62,0x00E09D6F,0x00E09B6D,0x00CB8B61,0x00A26849,0x00986345,0x00834E2C,0x00583915,0x00A16245,0x009B583F,0x00905D3B,0x00925A38,0x006F3D21,0x006F422A,0x00623A28,0x0071432D,0x009F623C,0x008A5332,0x0060331E,0x00845035,0x00BA7042,0x00BC6833,0x00B06236,0x00A85A35 -dd 0x0081492C,0x008A5235,0x008A5536,0x00955A3A,0x00965C3D,0x0075452B,0x00563018,0x00714A2B,0x00965F3D,0x006E4229,0x00623B26,0x005F3B24,0x005F3A1A,0x00734A28,0x00825232,0x00854F33,0x00A26443,0x0068381E,0x00673921,0x00955C3D,0x00A26C4F,0x00BB8A6D,0x00C99371,0x00D79B73,0x00C98D63,0x00CE8D67,0x00C47956,0x00A05739,0x00B77551,0x00C27346,0x00C97A4F,0x00A25A35,0x008D4D2B,0x0097573C,0x00D17A52,0x00C47241,0x00C37754,0x00985C3B,0x00CA865D,0x00DB976C,0x00D28E63,0x00DF9C70,0x00DC996D,0x00CA8A60,0x00A56A4B,0x00935B41,0x00824C33,0x00593418,0x00935A42,0x008D4D37,0x007D4A2F,0x00854F34,0x00683620,0x006D412F,0x00563327,0x00543223,0x00935837,0x00844B2E,0x00482716,0x00583C22,0x008B5930,0x00A96331,0x00AE6136,0x00B35C3B -dd 0x0064321F,0x00854F38,0x007E532B,0x007D522A,0x0067432A,0x00592E24,0x004F251C,0x005C3B26,0x00965B3F,0x00492C19,0x003E2816,0x00623D28,0x005B3421,0x004B2D16,0x0050351A,0x004D2817,0x005E2F20,0x003F260F,0x006A3D26,0x00995D45,0x00996E52,0x00B68567,0x00C58F6D,0x00D2966E,0x00C4885E,0x00C68A63,0x00B7744E,0x00984F2D,0x00B96D4B,0x00B15F37,0x00C56B45,0x00B5623E,0x009D5E36,0x00A86643,0x00C06748,0x0098643B,0x00BB6F57,0x008C5535,0x00C37F5B,0x00D8946E,0x00D08C67,0x00DC9A74,0x00D79971,0x00C5875F,0x00A86A48,0x009D5F3C,0x008C502D,0x0053280B,0x00583722,0x00683E26,0x00714129,0x00713C23,0x00794225,0x009E5F3D,0x006D3D25,0x00513222,0x00A56242,0x00904D2E,0x00684227,0x00744D2F,0x00744423,0x00905329,0x00A45E31,0x00AA5A3B -dd 0x002A170F,0x006A4839,0x007E5131,0x00874E26,0x00784C27,0x00854933,0x007A3B2A,0x005C3622,0x0089513B,0x003F2715,0x004F351E,0x0099623F,0x008B5338,0x00613B21,0x006F4F2D,0x0073452B,0x006D311E,0x0041220A,0x006B3E28,0x008E5C4B,0x008D6F55,0x00B28264,0x00BF8A67,0x00CA8F67,0x00C1845B,0x00C38760,0x00B06E49,0x008F4624,0x00BB6D4C,0x00B16039,0x00C76D49,0x00BF6741,0x009C5C30,0x00AF6D43,0x00BC6648,0x00966941,0x00BD6C58,0x00854F31,0x00BF7C59,0x00D5916C,0x00CD8965,0x00D89771,0x00D3966F,0x00C1845D,0x00A76946,0x009B5D39,0x00874F2B,0x0056290C,0x0074482A,0x00AE7247,0x00965940,0x00824836,0x009C573B,0x00CD764A,0x00984F2A,0x004B2515,0x007B4632,0x00753D28,0x00744225,0x009D5839,0x00975131,0x00A6623B,0x009C5C2F,0x007B4729 diff --git a/programs/free3d04/trunk/free3d04.asm b/programs/free3d04/trunk/free3d04.asm index 7a5a1efcbc..f23e2ef7d5 100644 --- a/programs/free3d04/trunk/free3d04.asm +++ b/programs/free3d04/trunk/free3d04.asm @@ -6,7 +6,21 @@ ; ; Compile with FASM for Menuet (requires .INC files - see DATA Section) ; +; Willow - greatly srinked code size by using GIF texture and FPU to calculate sine table +; +; !!!! Don't use GIF.INC in your apps - it's modified for FREE3D !!!! +TEX_SIZE equ 64*64*4 +ceil = sinus+16*1024 +wall = ceil+TEX_SIZE*1 +wall2 = ceil+TEX_SIZE*2 +wall3 = ceil+TEX_SIZE*3 +wall4 = ceil+TEX_SIZE*4 +wall5 = ceil+TEX_SIZE*5 +wall6 = ceil+TEX_SIZE*6 +wall7 = ceil+TEX_SIZE*7 +APP_MEM equ 0x200000 + use32 org 0x0 @@ -15,13 +29,31 @@ use32 dd 0x01 ; header version dd START ; start of code dd I_END ; size of image - dd 0x300000 ; memory for app - dd 0x7fff0 ; esp + dd APP_MEM;0x300000 ; memory for app + dd APP_MEM;0x300000 ; esp dd 0x0 , 0x0 ; I_Param , I_Icon - include 'lang.inc' -START: ; start of execution +include 'macros.inc' +COLOR_ORDER equ OTHER +include 'gif.inc' +START: ; start of execution + mov esi,textures + mov edi,ceil + mov eax,sinus + call ReadGIF + mov esi,sinus + mov ecx,360*10 + fninit + fld [sindegree] + .sinlp: + fst st1 + fsin + fmul [sindiv] + fistp dword[esi] + add esi,4 + fadd [sininc] + loop .sinlp call draw_window ; at first, draw the window call draw_stuff @@ -942,486 +974,106 @@ db 5,0,0,0,0,0,0,5,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,4,4,4,4,4,0,0,1 db 1,4,1,4,1,4,1,4,1,4,1,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1 db 2,1,2,1,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 - -sinus: -dd 0,11,23,34,46,57,69,80,92,103 -dd 114,126,137,149,160,172,183,194,206,217 -dd 229,240,252,263,274,286,297,309,320,332 -dd 343,354,366,377,389,400,411,423,434,446 -dd 457,469,480,491,503,514,526,537,548,560 -dd 571,583,594,605,617,628,640,651,662,674 -dd 685,696,708,719,731,742,753,765,776,787 -dd 799,810,821,833,844,855,867,878,889,901 -dd 912,923,935,946,957,969,980,991,1003,1014 -dd 1025,1036,1048,1059,1070,1082,1093,1104,1115,1127 -dd 1138,1149,1161,1172,1183,1194,1206,1217,1228,1239 -dd 1250,1262,1273,1284,1295,1307,1318,1329,1340,1351 -dd 1363,1374,1385,1396,1407,1418,1430,1441,1452,1463 -dd 1474,1485,1496,1508,1519,1530,1541,1552,1563,1574 -dd 1585,1597,1608,1619,1630,1641,1652,1663,1674,1685 -dd 1696,1707,1718,1729,1740,1751,1762,1773,1784,1795 -dd 1806,1817,1828,1839,1850,1861,1872,1883,1894,1905 -dd 1916,1927,1938,1949,1960,1971,1982,1992,2003,2014 -dd 2025,2036,2047,2058,2069,2079,2090,2101,2112,2123 -dd 2134,2144,2155,2166,2177,2188,2198,2209,2220,2231 -dd 2241,2252,2263,2274,2284,2295,2306,2316,2327,2338 -dd 2349,2359,2370,2381,2391,2402,2413,2423,2434,2444 -dd 2455,2466,2476,2487,2497,2508,2518,2529,2540,2550 -dd 2561,2571,2582,2592,2603,2613,2624,2634,2645,2655 -dd 2666,2676,2686,2697,2707,2718,2728,2738,2749,2759 -dd 2770,2780,2790,2801,2811,2821,2832,2842,2852,2863 -dd 2873,2883,2893,2904,2914,2924,2934,2945,2955,2965 -dd 2975,2985,2996,3006,3016,3026,3036,3046,3056,3067 -dd 3077,3087,3097,3107,3117,3127,3137,3147,3157,3167 -dd 3177,3187,3197,3207,3217,3227,3237,3247,3257,3267 -dd 3277,3287,3297,3306,3316,3326,3336,3346,3356,3365 -dd 3375,3385,3395,3405,3414,3424,3434,3444,3453,3463 -dd 3473,3483,3492,3502,3512,3521,3531,3540,3550,3560 -dd 3569,3579,3588,3598,3608,3617,3627,3636,3646,3655 -dd 3665,3674,3684,3693,3703,3712,3721,3731,3740,3750 -dd 3759,3768,3778,3787,3796,3806,3815,3824,3834,3843 -dd 3852,3861,3871,3880,3889,3898,3907,3917,3926,3935 -dd 3944,3953,3962,3971,3980,3990,3999,4008,4017,4026 -dd 4035,4044,4053,4062,4071,4080,4089,4098,4106,4115 -dd 4124,4133,4142,4151,4160,4169,4177,4186,4195,4204 -dd 4213,4221,4230,4239,4247,4256,4265,4274,4282,4291 -dd 4299,4308,4317,4325,4334,4342,4351,4360,4368,4377 -dd 4385,4394,4402,4411,4419,4427,4436,4444,4453,4461 -dd 4469,4478,4486,4495,4503,4511,4519,4528,4536,4544 -dd 4552,4561,4569,4577,4585,4593,4602,4610,4618,4626 -dd 4634,4642,4650,4658,4666,4674,4682,4690,4698,4706 -dd 4714,4722,4730,4738,4746,4754,4762,4769,4777,4785 -dd 4793,4801,4808,4816,4824,4832,4839,4847,4855,4863 -dd 4870,4878,4885,4893,4901,4908,4916,4923,4931,4938 -dd 4946,4953,4961,4968,4976,4983,4991,4998,5006,5013 -dd 5020,5028,5035,5042,5050,5057,5064,5071,5079,5086 -dd 5093,5100,5107,5115,5122,5129,5136,5143,5150,5157 -dd 5164,5171,5178,5185,5192,5199,5206,5213,5220,5227 -dd 5234,5241,5248,5254,5261,5268,5275,5282,5288,5295 -dd 5302,5309,5315,5322,5329,5335,5342,5349,5355,5362 -dd 5368,5375,5381,5388,5394,5401,5407,5414,5420,5427 -dd 5433,5439,5446,5452,5459,5465,5471,5477,5484,5490 -dd 5496,5502,5509,5515,5521,5527,5533,5539,5546,5552 -dd 5558,5564,5570,5576,5582,5588,5594,5600,5606,5612 -dd 5617,5623,5629,5635,5641,5647,5652,5658,5664,5670 -dd 5675,5681,5687,5693,5698,5704,5709,5715,5721,5726 -dd 5732,5737,5743,5748,5754,5759,5765,5770,5776,5781 -dd 5786,5792,5797,5802,5808,5813,5818,5824,5829,5834 -dd 5839,5844,5850,5855,5860,5865,5870,5875,5880,5885 -dd 5890,5895,5900,5905,5910,5915,5920,5925,5930,5935 -dd 5939,5944,5949,5954,5959,5963,5968,5973,5978,5982 -dd 5987,5992,5996,6001,6005,6010,6015,6019,6024,6028 -dd 6033,6037,6041,6046,6050,6055,6059,6063,6068,6072 -dd 6076,6081,6085,6089,6093,6097,6102,6106,6110,6114 -dd 6118,6122,6126,6130,6134,6138,6142,6146,6150,6154 -dd 6158,6162,6166,6170,6174,6178,6181,6185,6189,6193 -dd 6196,6200,6204,6208,6211,6215,6218,6222,6226,6229 -dd 6233,6236,6240,6243,6247,6250,6254,6257,6260,6264 -dd 6267,6270,6274,6277,6280,6284,6287,6290,6293,6296 -dd 6300,6303,6306,6309,6312,6315,6318,6321,6324,6327 -dd 6330,6333,6336,6339,6342,6345,6348,6350,6353,6356 -dd 6359,6362,6364,6367,6370,6372,6375,6378,6380,6383 -dd 6386,6388,6391,6393,6396,6398,6401,6403,6405,6408 -dd 6410,6413,6415,6417,6420,6422,6424,6426,6429,6431 -dd 6433,6435,6437,6440,6442,6444,6446,6448,6450,6452 -dd 6454,6456,6458,6460,6462,6464,6466,6467,6469,6471 -dd 6473,6475,6476,6478,6480,6482,6483,6485,6486,6488 -dd 6490,6491,6493,6494,6496,6497,6499,6500,6502,6503 -dd 6505,6506,6507,6509,6510,6511,6513,6514,6515,6516 -dd 6518,6519,6520,6521,6522,6523,6524,6525,6527,6528 -dd 6529,6530,6531,6531,6532,6533,6534,6535,6536,6537 -dd 6538,6538,6539,6540,6541,6541,6542,6543,6543,6544 -dd 6545,6545,6546,6546,6547,6547,6548,6548,6549,6549 -dd 6550,6550,6550,6551,6551,6551,6552,6552,6552,6552 -dd 6553,6553,6553,6553,6553,6553,6553,6553,6553,6553 -dd 6554,6553,6553,6553,6553,6553,6553,6553,6553,6553 -dd 6553,6552,6552,6552,6552,6551,6551,6551,6550,6550 -dd 6550,6549,6549,6548,6548,6547,6547,6546,6546,6545 -dd 6545,6544,6543,6543,6542,6541,6541,6540,6539,6538 -dd 6538,6537,6536,6535,6534,6533,6532,6531,6531,6530 -dd 6529,6528,6527,6525,6524,6523,6522,6521,6520,6519 -dd 6518,6516,6515,6514,6513,6511,6510,6509,6507,6506 -dd 6505,6503,6502,6500,6499,6497,6496,6494,6493,6491 -dd 6490,6488,6486,6485,6483,6482,6480,6478,6476,6475 -dd 6473,6471,6469,6467,6466,6464,6462,6460,6458,6456 -dd 6454,6452,6450,6448,6446,6444,6442,6440,6437,6435 -dd 6433,6431,6429,6426,6424,6422,6420,6417,6415,6413 -dd 6410,6408,6405,6403,6401,6398,6396,6393,6391,6388 -dd 6386,6383,6380,6378,6375,6372,6370,6367,6364,6362 -dd 6359,6356,6353,6350,6348,6345,6342,6339,6336,6333 -dd 6330,6327,6324,6321,6318,6315,6312,6309,6306,6303 -dd 6300,6296,6293,6290,6287,6284,6280,6277,6274,6270 -dd 6267,6264,6260,6257,6254,6250,6247,6243,6240,6236 -dd 6233,6229,6226,6222,6218,6215,6211,6208,6204,6200 -dd 6196,6193,6189,6185,6181,6178,6174,6170,6166,6162 -dd 6158,6154,6150,6146,6142,6138,6134,6130,6126,6122 -dd 6118,6114,6110,6106,6102,6097,6093,6089,6085,6081 -dd 6076,6072,6068,6063,6059,6055,6050,6046,6041,6037 -dd 6033,6028,6024,6019,6015,6010,6005,6001,5996,5992 -dd 5987,5982,5978,5973,5968,5963,5959,5954,5949,5944 -dd 5939,5935,5930,5925,5920,5915,5910,5905,5900,5895 -dd 5890,5885,5880,5875,5870,5865,5860,5855,5850,5844 -dd 5839,5834,5829,5824,5818,5813,5808,5802,5797,5792 -dd 5786,5781,5776,5770,5765,5759,5754,5748,5743,5737 -dd 5732,5726,5721,5715,5709,5704,5698,5693,5687,5681 -dd 5675,5670,5664,5658,5652,5647,5641,5635,5629,5623 -dd 5617,5612,5606,5600,5594,5588,5582,5576,5570,5564 -dd 5558,5552,5546,5539,5533,5527,5521,5515,5509,5502 -dd 5496,5490,5484,5477,5471,5465,5459,5452,5446,5439 -dd 5433,5427,5420,5414,5407,5401,5394,5388,5381,5375 -dd 5368,5362,5355,5349,5342,5335,5329,5322,5315,5309 -dd 5302,5295,5288,5282,5275,5268,5261,5254,5248,5241 -dd 5234,5227,5220,5213,5206,5199,5192,5185,5178,5171 -dd 5164,5157,5150,5143,5136,5129,5122,5115,5107,5100 -dd 5093,5086,5079,5071,5064,5057,5050,5042,5035,5028 -dd 5020,5013,5006,4998,4991,4983,4976,4968,4961,4953 -dd 4946,4938,4931,4923,4916,4908,4901,4893,4885,4878 -dd 4870,4863,4855,4847,4839,4832,4824,4816,4808,4801 -dd 4793,4785,4777,4769,4762,4754,4746,4738,4730,4722 -dd 4714,4706,4698,4690,4682,4674,4666,4658,4650,4642 -dd 4634,4626,4618,4610,4602,4593,4585,4577,4569,4561 -dd 4552,4544,4536,4528,4519,4511,4503,4495,4486,4478 -dd 4469,4461,4453,4444,4436,4427,4419,4411,4402,4394 -dd 4385,4377,4368,4360,4351,4342,4334,4325,4317,4308 -dd 4299,4291,4282,4274,4265,4256,4247,4239,4230,4221 -dd 4213,4204,4195,4186,4177,4169,4160,4151,4142,4133 -dd 4124,4115,4106,4098,4089,4080,4071,4062,4053,4044 -dd 4035,4026,4017,4008,3999,3990,3980,3971,3962,3953 -dd 3944,3935,3926,3917,3907,3898,3889,3880,3871,3861 -dd 3852,3843,3834,3824,3815,3806,3796,3787,3778,3768 -dd 3759,3750,3740,3731,3721,3712,3703,3693,3684,3674 -dd 3665,3655,3646,3636,3627,3617,3608,3598,3588,3579 -dd 3569,3560,3550,3540,3531,3521,3512,3502,3492,3483 -dd 3473,3463,3453,3444,3434,3424,3414,3405,3395,3385 -dd 3375,3365,3356,3346,3336,3326,3316,3306,3297,3287 -dd 3277,3267,3257,3247,3237,3227,3217,3207,3197,3187 -dd 3177,3167,3157,3147,3137,3127,3117,3107,3097,3087 -dd 3077,3067,3056,3046,3036,3026,3016,3006,2996,2985 -dd 2975,2965,2955,2945,2934,2924,2914,2904,2893,2883 -dd 2873,2863,2852,2842,2832,2821,2811,2801,2790,2780 -dd 2770,2759,2749,2738,2728,2718,2707,2697,2686,2676 -dd 2666,2655,2645,2634,2624,2613,2603,2592,2582,2571 -dd 2561,2550,2540,2529,2518,2508,2497,2487,2476,2466 -dd 2455,2444,2434,2423,2413,2402,2391,2381,2370,2359 -dd 2349,2338,2327,2316,2306,2295,2284,2274,2263,2252 -dd 2241,2231,2220,2209,2198,2188,2177,2166,2155,2144 -dd 2134,2123,2112,2101,2090,2079,2069,2058,2047,2036 -dd 2025,2014,2003,1992,1982,1971,1960,1949,1938,1927 -dd 1916,1905,1894,1883,1872,1861,1850,1839,1828,1817 -dd 1806,1795,1784,1773,1762,1751,1740,1729,1718,1707 -dd 1696,1685,1674,1663,1652,1641,1630,1619,1608,1597 -dd 1585,1574,1563,1552,1541,1530,1519,1508,1496,1485 -dd 1474,1463,1452,1441,1430,1418,1407,1396,1385,1374 -dd 1363,1351,1340,1329,1318,1307,1295,1284,1273,1262 -dd 1250,1239,1228,1217,1206,1194,1183,1172,1161,1149 -dd 1138,1127,1115,1104,1093,1082,1070,1059,1048,1036 -dd 1025,1014,1003,991,980,969,957,946,935,923 -dd 912,901,889,878,867,855,844,833,821,810 -dd 799,787,776,765,753,742,731,719,708,696 -dd 685,674,662,651,640,628,617,605,594,583 -dd 571,560,548,537,526,514,503,491,480,469 -dd 457,446,434,423,411,400,389,377,366,354 -dd 343,332,320,309,297,286,274,263,252,240 -dd 229,217,206,194,183,172,160,149,137,126 -dd 114,103,92,80,69,57,46,34,23,11 -dd 0,-11,-23,-34,-46,-57,-69,-80,-92,-103 -dd -114,-126,-137,-149,-160,-172,-183,-194,-206,-217 -dd -229,-240,-252,-263,-274,-286,-297,-309,-320,-332 -dd -343,-354,-366,-377,-389,-400,-411,-423,-434,-446 -dd -457,-469,-480,-491,-503,-514,-526,-537,-548,-560 -dd -571,-583,-594,-605,-617,-628,-640,-651,-662,-674 -dd -685,-696,-708,-719,-731,-742,-753,-765,-776,-787 -dd -799,-810,-821,-833,-844,-855,-867,-878,-889,-901 -dd -912,-923,-935,-946,-957,-969,-980,-991,-1003,-1014 -dd -1025,-1036,-1048,-1059,-1070,-1082,-1093,-1104,-1115,-1127 -dd -1138,-1149,-1161,-1172,-1183,-1194,-1206,-1217,-1228,-1239 -dd -1250,-1262,-1273,-1284,-1295,-1307,-1318,-1329,-1340,-1351 -dd -1363,-1374,-1385,-1396,-1407,-1418,-1430,-1441,-1452,-1463 -dd -1474,-1485,-1496,-1508,-1519,-1530,-1541,-1552,-1563,-1574 -dd -1585,-1597,-1608,-1619,-1630,-1641,-1652,-1663,-1674,-1685 -dd -1696,-1707,-1718,-1729,-1740,-1751,-1762,-1773,-1784,-1795 -dd -1806,-1817,-1828,-1839,-1850,-1861,-1872,-1883,-1894,-1905 -dd -1916,-1927,-1938,-1949,-1960,-1971,-1982,-1992,-2003,-2014 -dd -2025,-2036,-2047,-2058,-2069,-2079,-2090,-2101,-2112,-2123 -dd -2134,-2144,-2155,-2166,-2177,-2188,-2198,-2209,-2220,-2231 -dd -2241,-2252,-2263,-2274,-2284,-2295,-2306,-2316,-2327,-2338 -dd -2349,-2359,-2370,-2381,-2391,-2402,-2413,-2423,-2434,-2444 -dd -2455,-2466,-2476,-2487,-2497,-2508,-2518,-2529,-2540,-2550 -dd -2561,-2571,-2582,-2592,-2603,-2613,-2624,-2634,-2645,-2655 -dd -2666,-2676,-2686,-2697,-2707,-2718,-2728,-2738,-2749,-2759 -dd -2770,-2780,-2790,-2801,-2811,-2821,-2832,-2842,-2852,-2863 -dd -2873,-2883,-2893,-2904,-2914,-2924,-2934,-2945,-2955,-2965 -dd -2975,-2985,-2996,-3006,-3016,-3026,-3036,-3046,-3056,-3067 -dd -3077,-3087,-3097,-3107,-3117,-3127,-3137,-3147,-3157,-3167 -dd -3177,-3187,-3197,-3207,-3217,-3227,-3237,-3247,-3257,-3267 -dd -3277,-3287,-3297,-3306,-3316,-3326,-3336,-3346,-3356,-3365 -dd -3375,-3385,-3395,-3405,-3414,-3424,-3434,-3444,-3453,-3463 -dd -3473,-3483,-3492,-3502,-3512,-3521,-3531,-3540,-3550,-3560 -dd -3569,-3579,-3588,-3598,-3608,-3617,-3627,-3636,-3646,-3655 -dd -3665,-3674,-3684,-3693,-3703,-3712,-3721,-3731,-3740,-3750 -dd -3759,-3768,-3778,-3787,-3796,-3806,-3815,-3824,-3834,-3843 -dd -3852,-3861,-3871,-3880,-3889,-3898,-3907,-3917,-3926,-3935 -dd -3944,-3953,-3962,-3971,-3980,-3990,-3999,-4008,-4017,-4026 -dd -4035,-4044,-4053,-4062,-4071,-4080,-4089,-4098,-4106,-4115 -dd -4124,-4133,-4142,-4151,-4160,-4169,-4177,-4186,-4195,-4204 -dd -4213,-4221,-4230,-4239,-4247,-4256,-4265,-4274,-4282,-4291 -dd -4299,-4308,-4317,-4325,-4334,-4342,-4351,-4360,-4368,-4377 -dd -4385,-4394,-4402,-4411,-4419,-4427,-4436,-4444,-4453,-4461 -dd -4469,-4478,-4486,-4495,-4503,-4511,-4519,-4528,-4536,-4544 -dd -4552,-4561,-4569,-4577,-4585,-4593,-4602,-4610,-4618,-4626 -dd -4634,-4642,-4650,-4658,-4666,-4674,-4682,-4690,-4698,-4706 -dd -4714,-4722,-4730,-4738,-4746,-4754,-4762,-4769,-4777,-4785 -dd -4793,-4801,-4808,-4816,-4824,-4832,-4839,-4847,-4855,-4863 -dd -4870,-4878,-4885,-4893,-4901,-4908,-4916,-4923,-4931,-4938 -dd -4946,-4953,-4961,-4968,-4976,-4983,-4991,-4998,-5006,-5013 -dd -5020,-5028,-5035,-5042,-5050,-5057,-5064,-5071,-5079,-5086 -dd -5093,-5100,-5107,-5115,-5122,-5129,-5136,-5143,-5150,-5157 -dd -5164,-5171,-5178,-5185,-5192,-5199,-5206,-5213,-5220,-5227 -dd -5234,-5241,-5248,-5254,-5261,-5268,-5275,-5282,-5288,-5295 -dd -5302,-5309,-5315,-5322,-5329,-5335,-5342,-5349,-5355,-5362 -dd -5368,-5375,-5381,-5388,-5394,-5401,-5407,-5414,-5420,-5427 -dd -5433,-5439,-5446,-5452,-5459,-5465,-5471,-5477,-5484,-5490 -dd -5496,-5502,-5509,-5515,-5521,-5527,-5533,-5539,-5546,-5552 -dd -5558,-5564,-5570,-5576,-5582,-5588,-5594,-5600,-5606,-5612 -dd -5617,-5623,-5629,-5635,-5641,-5647,-5652,-5658,-5664,-5670 -dd -5675,-5681,-5687,-5693,-5698,-5704,-5709,-5715,-5721,-5726 -dd -5732,-5737,-5743,-5748,-5754,-5759,-5765,-5770,-5776,-5781 -dd -5786,-5792,-5797,-5802,-5808,-5813,-5818,-5824,-5829,-5834 -dd -5839,-5844,-5850,-5855,-5860,-5865,-5870,-5875,-5880,-5885 -dd -5890,-5895,-5900,-5905,-5910,-5915,-5920,-5925,-5930,-5935 -dd -5939,-5944,-5949,-5954,-5959,-5963,-5968,-5973,-5978,-5982 -dd -5987,-5992,-5996,-6001,-6005,-6010,-6015,-6019,-6024,-6028 -dd -6033,-6037,-6041,-6046,-6050,-6055,-6059,-6063,-6068,-6072 -dd -6076,-6081,-6085,-6089,-6093,-6097,-6102,-6106,-6110,-6114 -dd -6118,-6122,-6126,-6130,-6134,-6138,-6142,-6146,-6150,-6154 -dd -6158,-6162,-6166,-6170,-6174,-6178,-6181,-6185,-6189,-6193 -dd -6196,-6200,-6204,-6208,-6211,-6215,-6218,-6222,-6226,-6229 -dd -6233,-6236,-6240,-6243,-6247,-6250,-6254,-6257,-6260,-6264 -dd -6267,-6270,-6274,-6277,-6280,-6284,-6287,-6290,-6293,-6296 -dd -6300,-6303,-6306,-6309,-6312,-6315,-6318,-6321,-6324,-6327 -dd -6330,-6333,-6336,-6339,-6342,-6345,-6348,-6350,-6353,-6356 -dd -6359,-6362,-6364,-6367,-6370,-6372,-6375,-6378,-6380,-6383 -dd -6386,-6388,-6391,-6393,-6396,-6398,-6401,-6403,-6405,-6408 -dd -6410,-6413,-6415,-6417,-6420,-6422,-6424,-6426,-6429,-6431 -dd -6433,-6435,-6437,-6440,-6442,-6444,-6446,-6448,-6450,-6452 -dd -6454,-6456,-6458,-6460,-6462,-6464,-6466,-6467,-6469,-6471 -dd -6473,-6475,-6476,-6478,-6480,-6482,-6483,-6485,-6486,-6488 -dd -6490,-6491,-6493,-6494,-6496,-6497,-6499,-6500,-6502,-6503 -dd -6505,-6506,-6507,-6509,-6510,-6511,-6513,-6514,-6515,-6516 -dd -6518,-6519,-6520,-6521,-6522,-6523,-6524,-6525,-6527,-6528 -dd -6529,-6530,-6531,-6531,-6532,-6533,-6534,-6535,-6536,-6537 -dd -6538,-6538,-6539,-6540,-6541,-6541,-6542,-6543,-6543,-6544 -dd -6545,-6545,-6546,-6546,-6547,-6547,-6548,-6548,-6549,-6549 -dd -6550,-6550,-6550,-6551,-6551,-6551,-6552,-6552,-6552,-6552 -dd -6553,-6553,-6553,-6553,-6553,-6553,-6553,-6553,-6553,-6553 -dd -6554,-6553,-6553,-6553,-6553,-6553,-6553,-6553,-6553,-6553 -dd -6553,-6552,-6552,-6552,-6552,-6551,-6551,-6551,-6550,-6550 -dd -6550,-6549,-6549,-6548,-6548,-6547,-6547,-6546,-6546,-6545 -dd -6545,-6544,-6543,-6543,-6542,-6541,-6541,-6540,-6539,-6538 -dd -6538,-6537,-6536,-6535,-6534,-6533,-6532,-6531,-6531,-6530 -dd -6529,-6528,-6527,-6525,-6524,-6523,-6522,-6521,-6520,-6519 -dd -6518,-6516,-6515,-6514,-6513,-6511,-6510,-6509,-6507,-6506 -dd -6505,-6503,-6502,-6500,-6499,-6497,-6496,-6494,-6493,-6491 -dd -6490,-6488,-6486,-6485,-6483,-6482,-6480,-6478,-6476,-6475 -dd -6473,-6471,-6469,-6467,-6466,-6464,-6462,-6460,-6458,-6456 -dd -6454,-6452,-6450,-6448,-6446,-6444,-6442,-6440,-6437,-6435 -dd -6433,-6431,-6429,-6426,-6424,-6422,-6420,-6417,-6415,-6413 -dd -6410,-6408,-6405,-6403,-6401,-6398,-6396,-6393,-6391,-6388 -dd -6386,-6383,-6380,-6378,-6375,-6372,-6370,-6367,-6364,-6362 -dd -6359,-6356,-6353,-6350,-6348,-6345,-6342,-6339,-6336,-6333 -dd -6330,-6327,-6324,-6321,-6318,-6315,-6312,-6309,-6306,-6303 -dd -6300,-6296,-6293,-6290,-6287,-6284,-6280,-6277,-6274,-6270 -dd -6267,-6264,-6260,-6257,-6254,-6250,-6247,-6243,-6240,-6236 -dd -6233,-6229,-6226,-6222,-6218,-6215,-6211,-6208,-6204,-6200 -dd -6196,-6193,-6189,-6185,-6181,-6178,-6174,-6170,-6166,-6162 -dd -6158,-6154,-6150,-6146,-6142,-6138,-6134,-6130,-6126,-6122 -dd -6118,-6114,-6110,-6106,-6102,-6097,-6093,-6089,-6085,-6081 -dd -6076,-6072,-6068,-6063,-6059,-6055,-6050,-6046,-6041,-6037 -dd -6033,-6028,-6024,-6019,-6015,-6010,-6005,-6001,-5996,-5992 -dd -5987,-5982,-5978,-5973,-5968,-5963,-5959,-5954,-5949,-5944 -dd -5939,-5935,-5930,-5925,-5920,-5915,-5910,-5905,-5900,-5895 -dd -5890,-5885,-5880,-5875,-5870,-5865,-5860,-5855,-5850,-5844 -dd -5839,-5834,-5829,-5824,-5818,-5813,-5808,-5802,-5797,-5792 -dd -5786,-5781,-5776,-5770,-5765,-5759,-5754,-5748,-5743,-5737 -dd -5732,-5726,-5721,-5715,-5709,-5704,-5698,-5693,-5687,-5681 -dd -5675,-5670,-5664,-5658,-5652,-5647,-5641,-5635,-5629,-5623 -dd -5617,-5612,-5606,-5600,-5594,-5588,-5582,-5576,-5570,-5564 -dd -5558,-5552,-5546,-5539,-5533,-5527,-5521,-5515,-5509,-5502 -dd -5496,-5490,-5484,-5477,-5471,-5465,-5459,-5452,-5446,-5439 -dd -5433,-5427,-5420,-5414,-5407,-5401,-5394,-5388,-5381,-5375 -dd -5368,-5362,-5355,-5349,-5342,-5335,-5329,-5322,-5315,-5309 -dd -5302,-5295,-5288,-5282,-5275,-5268,-5261,-5254,-5248,-5241 -dd -5234,-5227,-5220,-5213,-5206,-5199,-5192,-5185,-5178,-5171 -dd -5164,-5157,-5150,-5143,-5136,-5129,-5122,-5115,-5107,-5100 -dd -5093,-5086,-5079,-5071,-5064,-5057,-5050,-5042,-5035,-5028 -dd -5020,-5013,-5006,-4998,-4991,-4983,-4976,-4968,-4961,-4953 -dd -4946,-4938,-4931,-4923,-4916,-4908,-4901,-4893,-4885,-4878 -dd -4870,-4863,-4855,-4847,-4839,-4832,-4824,-4816,-4808,-4801 -dd -4793,-4785,-4777,-4769,-4762,-4754,-4746,-4738,-4730,-4722 -dd -4714,-4706,-4698,-4690,-4682,-4674,-4666,-4658,-4650,-4642 -dd -4634,-4626,-4618,-4610,-4602,-4593,-4585,-4577,-4569,-4561 -dd -4552,-4544,-4536,-4528,-4519,-4511,-4503,-4495,-4486,-4478 -dd -4469,-4461,-4453,-4444,-4436,-4427,-4419,-4411,-4402,-4394 -dd -4385,-4377,-4368,-4360,-4351,-4342,-4334,-4325,-4317,-4308 -dd -4299,-4291,-4282,-4274,-4265,-4256,-4247,-4239,-4230,-4221 -dd -4213,-4204,-4195,-4186,-4177,-4169,-4160,-4151,-4142,-4133 -dd -4124,-4115,-4106,-4098,-4089,-4080,-4071,-4062,-4053,-4044 -dd -4035,-4026,-4017,-4008,-3999,-3990,-3980,-3971,-3962,-3953 -dd -3944,-3935,-3926,-3917,-3907,-3898,-3889,-3880,-3871,-3861 -dd -3852,-3843,-3834,-3824,-3815,-3806,-3796,-3787,-3778,-3768 -dd -3759,-3750,-3740,-3731,-3721,-3712,-3703,-3693,-3684,-3674 -dd -3665,-3655,-3646,-3636,-3627,-3617,-3608,-3598,-3588,-3579 -dd -3569,-3560,-3550,-3540,-3531,-3521,-3512,-3502,-3492,-3483 -dd -3473,-3463,-3453,-3444,-3434,-3424,-3414,-3405,-3395,-3385 -dd -3375,-3365,-3356,-3346,-3336,-3326,-3316,-3306,-3297,-3287 -dd -3277,-3267,-3257,-3247,-3237,-3227,-3217,-3207,-3197,-3187 -dd -3177,-3167,-3157,-3147,-3137,-3127,-3117,-3107,-3097,-3087 -dd -3077,-3067,-3056,-3046,-3036,-3026,-3016,-3006,-2996,-2985 -dd -2975,-2965,-2955,-2945,-2934,-2924,-2914,-2904,-2893,-2883 -dd -2873,-2863,-2852,-2842,-2832,-2821,-2811,-2801,-2790,-2780 -dd -2770,-2759,-2749,-2738,-2728,-2718,-2707,-2697,-2686,-2676 -dd -2666,-2655,-2645,-2634,-2624,-2613,-2603,-2592,-2582,-2571 -dd -2561,-2550,-2540,-2529,-2518,-2508,-2497,-2487,-2476,-2466 -dd -2455,-2444,-2434,-2423,-2413,-2402,-2391,-2381,-2370,-2359 -dd -2349,-2338,-2327,-2316,-2306,-2295,-2284,-2274,-2263,-2252 -dd -2241,-2231,-2220,-2209,-2198,-2188,-2177,-2166,-2155,-2144 -dd -2134,-2123,-2112,-2101,-2090,-2079,-2069,-2058,-2047,-2036 -dd -2025,-2014,-2003,-1992,-1982,-1971,-1960,-1949,-1938,-1927 -dd -1916,-1905,-1894,-1883,-1872,-1861,-1850,-1839,-1828,-1817 -dd -1806,-1795,-1784,-1773,-1762,-1751,-1740,-1729,-1718,-1707 -dd -1696,-1685,-1674,-1663,-1652,-1641,-1630,-1619,-1608,-1597 -dd -1585,-1574,-1563,-1552,-1541,-1530,-1519,-1508,-1496,-1485 -dd -1474,-1463,-1452,-1441,-1430,-1418,-1407,-1396,-1385,-1374 -dd -1363,-1351,-1340,-1329,-1318,-1307,-1295,-1284,-1273,-1262 -dd -1250,-1239,-1228,-1217,-1206,-1194,-1183,-1172,-1161,-1149 -dd -1138,-1127,-1115,-1104,-1093,-1082,-1070,-1059,-1048,-1036 -dd -1025,-1014,-1003,-991,-980,-969,-957,-946,-935,-923 -dd -912,-901,-889,-878,-867,-855,-844,-833,-821,-810 -dd -799,-787,-776,-765,-753,-742,-731,-719,-708,-696 -dd -685,-674,-662,-651,-640,-628,-617,-605,-594,-583 -dd -571,-560,-548,-537,-526,-514,-503,-491,-480,-469 -dd -457,-446,-434,-423,-411,-400,-389,-377,-366,-354 -dd -343,-332,-320,-309,-297,-286,-274,-263,-252,-240 -dd -229,-217,-206,-194,-183,-172,-160,-149,-137,-126 -dd -114,-103,-92,-80,-69,-57,-46,-34,-23,-11 - -eosinus: - -col1: - dd 0 -; misc raycaster vars: -vxx: - dd 0 -vyy: - dd 0 -vl: - dd 0 vpx: dd 0x0001FFFF ; initial player position * 0xFFFF vpy: dd 0x0001FFFF -vstepx: - dd 0 -vstepy: - dd 0 -vxxint: - dd 0 -vyyint: - dd 0 -vk: - dd 0 -va: - dd 0 -va2: - dd 0 -vdd: - dd 0 -vx1: - dd 0 -vx1b: - dd 0 -vh: - dd 0 -vdt: - dd 0 -vheading: ; initial heading: 0 to 3599 - dd 0 -vacompare: - dd 0 -vpxi: - dd 0 -vpyi: - dd 0 -wtolong: - dw 0,0 - -xtemp: - dd 0 -ytemp: - dd 0 -xfrac: - dd 0 -yfrac: - dd 0 -h_old: - dd 0 -vbottom: - dd 0 -mouseya: - dd 0 -remeax: - dd 0 -remebx: - dd 0 -remecx: - dd 0 -remedx: - dd 0 -remedi: - dd 0 -remesi: - dd 0 -red: - dd 0 -green: - dd 0 -blue: - dd 0 -pseudo: - dd 0 -step1: - dd 0 -step64: - dd 0 -lasty: - dd 0 -ceil: -include "ceil.inc" -wall: -include "wall.inc" -wall2: -include "wall2.inc" -wall3: -include "wall3.inc" -wall4: -include "wall4.inc" -wall5: -include "wall5.inc" -wall6: -include "wall6.inc" -wall7: -include "wall7.inc" - - labelt: db 'FISHEYE RAYCASTING ENGINE ETC. FREE3D' labellen: - +sindegree dd 0.0 +sininc dd 0.0017453292519943295769236907684886 +sindiv dd 6553.5 +textures: + file 'texture.gif' I_END: +col1: + dd ?;- +; misc raycaster vars: +vxx: + dd ?;- +vyy: + dd ?;- +vl: + dd ?;- +vstepx: + dd ?;- +vstepy: + dd ?;- +vxxint: + dd ?;- +vyyint: + dd ?;- +vk: + dd ?;- +va: + dd ?;- +va2: + dd ?;- +vdd: + dd ?;- +vx1: + dd ?;- +vx1b: + dd ?;- +vh: + dd ?;- +vdt: + dd ?;- +vheading: ; initial heading: 0 to 3599 + dd ?;- +vacompare: + dd ?;- +vpxi: + dd ?;- +vpyi: + dd ?;- +wtolong: + dw ?,?;-,?;- +xtemp: + dd ?;- +ytemp: + dd ?;- +xfrac: + dd ?;- +yfrac: + dd ?;- +h_old: + dd ?;- +vbottom: + dd ?;- +mouseya: + dd ?;- +remeax: + dd ?;- +remebx: + dd ?;- +remecx: + dd ?;- +remedx: + dd ?;- +remedi: + dd ?;- +remesi: + dd ?;- +red: + dd ?;- +green: + dd ?;- +blue: + dd ?;- +pseudo: + dd ?;- +step1: + dd ?;- +step64: + dd ?;- +lasty: + dd ?;- - - \ No newline at end of file +sinus rd 360*10 +eosinus: diff --git a/programs/free3d04/trunk/gif.inc b/programs/free3d04/trunk/gif.inc new file mode 100644 index 0000000000..25151d67b2 --- /dev/null +++ b/programs/free3d04/trunk/gif.inc @@ -0,0 +1,302 @@ +; GIF LITE v2.0 by Willow +; Written in pure assembler by Ivushkin Andrey aka Willow +; +; This include file will contain functions to handle GIF image format +; +; Created: August 15, 2004 +; Last changed: September 9, 2004 + +; Change COLOR_ORDER in your program +; if colors are displayed improperly + +if ~ (COLOR_ORDER in ) +; This message may not appear under MenuetOS, so watch... + display 'Please define COLOR_ORDER: MENUETOS or OTHER',13,10 +end if + +; virtual structure, used internally + +struc GIF_list +{ + .NextImg rd 1 + .Left rw 1 + .Top rw 1 + .Width rw 1 + .Height rw 1 +} + +struc GIF_info +{ + .Left rw 1 + .Top rw 1 + .Width rw 1 + .Height rw 1 +} + +_null fix 0x1000 + + +; **************************************** +; FUNCTION ReadGIF - unpacks GIF image +; **************************************** +; in: +; esi - pointer to GIF file in memory +; edi - pointer to output image list +; eax - pointer to work area (MIN 16 KB!) + +; out: +; eax - 0, all OK; +; eax - 1, invalid signature; +; eax >=8, unsupported image attributes +; +; ecx - number of images + +ReadGIF: + push esi edi + mov [.table_ptr],eax + mov [.cur_info],edi + xor eax,eax + mov [.globalColor],eax + mov [.img_count],eax + inc eax + cmp dword[esi],'GIF8' + jne .er ; signature + mov ecx,[esi+0xa] + inc eax + add esi,0xd + mov edi,esi + bt ecx,7 + jnc .nextblock + mov [.globalColor],esi + call .Gif_skipmap + .nextblock: + cmp byte[edi],0x21 + jne .noextblock + inc edi + cmp byte[edi],0xf9 ; Graphic Control Ext + jne .no_gc + add edi,7 + jmp .nextblock + .no_gc: + cmp byte[edi],0xfe ; Comment Ext + jne .no_comm + inc edi + .block_skip: + movzx eax,byte[edi] + lea edi,[edi+eax+1] + cmp byte[edi],0 + jnz .block_skip + inc edi + jmp .nextblock + .no_comm: + cmp byte[edi],0xff ; Application Ext + jne .nextblock + add edi,13 + jmp .block_skip + .noextblock: + cmp byte[edi],0x2c ; image beginning + jne .er + inc [.img_count] + inc edi + mov esi,[.cur_info] + add esi,4 + xchg esi,edi + movsd + movsd + push edi + movzx ecx,word[esi] + inc esi + bt ecx,7 + jc .uselocal + push [.globalColor] + mov edi,esi + jmp .setPal + .uselocal: + call .Gif_skipmap + push esi + .setPal: + movzx ecx,byte[edi] + inc ecx + mov [.codesize],ecx + dec ecx + pop [.Palette] + lea esi,[edi+1] + mov edi,[.table_ptr] + xor eax,eax + cld + lodsb ; eax - block_count + add eax,esi + mov [.block_ofs],eax + mov [.bit_count],8 + mov eax,1 + shl eax,cl + mov [.CC],eax + inc eax + mov [.EOI],eax + lea ecx,[eax-1] + mov eax, _null shl 16 + .filltable: + stosd + inc eax + loop .filltable + pop edi + mov [.img_start],edi + .reinit: + mov edx,[.EOI] + inc edx + push [.codesize] + pop [.compsize] + call .Gif_get_sym + cmp eax,[.CC] + je .reinit + call .Gif_output + .cycle: + movzx ebx,ax + call .Gif_get_sym + cmp eax,edx + jae .notintable + cmp eax,[.CC] + je .reinit + cmp eax,[.EOI] + je .end + call .Gif_output + .add: + push eax + mov eax,[.table_ptr] + mov [eax+edx*4],ebx + pop eax + cmp edx,0xFFF + jae .cycle + inc edx + bsr ebx,edx + cmp ebx,[.compsize] + jne .noinc + inc [.compsize] + .noinc: + jmp .cycle + .notintable: + push eax + mov eax,ebx + call .Gif_output + push ebx + movzx eax,bx + call .Gif_output + pop ebx eax + jmp .add + .er: + pop edi + jmp .ex + .end: + mov eax,[.cur_info] + mov [eax],edi + mov [.cur_info],edi + add esi,2 + xchg esi,edi + .nxt: + cmp byte[edi],0 + jnz .continue + inc edi + jmp .nxt + .continue: + cmp byte[edi],0x3b + jne .nextblock + xor eax,eax + stosd + mov ecx,[.img_count] + .ex: + pop edi esi + ret + +.Gif_skipmap: +; in: ecx - image descriptor, esi - pointer to colormap +; out: edi - pointer to area after colormap + + and ecx,111b + inc ecx ; color map size + mov ebx,1 + shl ebx,cl + lea ebx,[ebx*2+ebx] + lea edi,[esi+ebx] + ret + +.Gif_get_sym: + mov ecx,[.compsize] + push ecx + xor eax,eax + .shift: + ror byte[esi],1 + rcr eax,1 + dec [.bit_count] + jnz .loop1 + inc esi + cmp esi,[.block_ofs] + jb .noblock + push eax + xor eax,eax + lodsb + test eax,eax + jnz .nextbl + mov eax,[.EOI] + sub esi,2 + add esp,8 + jmp .exx + .nextbl: + add eax,esi + mov [.block_ofs],eax + pop eax + .noblock: + mov [.bit_count],8 + .loop1: + loop .shift + pop ecx + rol eax,cl + .exx: + xor ecx,ecx + ret + +.Gif_output: + push esi eax edx + mov edx,[.table_ptr] + .next: + push word[edx+eax*4] + mov ax,word[edx+eax*4+2] + inc ecx + cmp ax,_null + jnz .next + shl ebx,16 + mov bx,[esp] + .loop2: + pop ax + + lea esi,[eax+eax*2] + add esi,[.Palette] + + if COLOR_ORDER eq MENUETOS + mov esi,[esi] + bswap esi + shr esi,8 + mov [edi],esi + add edi,3 + else + movsw + movsb + and byte[edi],0 + inc edi + end if + + loop .loop2 + pop edx eax esi + ret + + .globalColor rd 1 + .img_count rd 1 + .cur_info rd 1 ; image table pointer + .img_start rd 1 + .codesize rd 1 + .compsize rd 1 + .bit_count rd 1 + .CC rd 1 + .EOI rd 1 + .Palette rd 1 + .block_ofs rd 1 + .table_ptr rd 1 diff --git a/programs/free3d04/trunk/macros.inc b/programs/free3d04/trunk/macros.inc new file mode 100644 index 0000000000..a04ab1d2e7 --- /dev/null +++ b/programs/free3d04/trunk/macros.inc @@ -0,0 +1,267 @@ +; new application structure +macro meos_app_start + { + use32 + org 0x0 + + db 'MENUET01' + dd 0x01 + dd __start + dd __end + dd __memory + dd __stack + + if used __params & ~defined __params + dd __params + else + dd 0x0 + end if + + dd 0x0 + } +MEOS_APP_START fix meos_app_start + +macro code + { + __start: + } +CODE fix code + +macro data + { + __data: + } +DATA fix data + +macro udata + { + if used __params & ~defined __params + __params: + db 0 + __end: + rb 255 + else + __end: + end if + __udata: + } +UDATA fix udata + +macro meos_app_end + { + align 32 + rb 2048 + __stack: + __memory: + } +MEOS_APP_END fix meos_app_end + + +; macro for defining multiline text data +struc mstr [sstring] + { + forward + local ssize + virtual at 0 + db sstring + ssize = $ + end virtual + dd ssize + db sstring + common + dd -1 + } + + +; strings +macro sz name,[data] { ; from MFAR [mike.dld] + common + if used name + label name + end if + forward + if used name + db data + end if + common + if used name + .size = $-name + end if +} + +macro lsz name,[lng,data] { ; from MFAR [mike.dld] + common + if used name + label name + end if + forward + if (used name)&(lang eq lng) + db data + end if + common + if used name + .size = $-name + end if +} + + + +; easy system call macro +macro mpack dest, hsrc, lsrc +{ + if (hsrc eqtype 0) & (lsrc eqtype 0) + mov dest, (hsrc) shl 16 + lsrc + else + if (hsrc eqtype 0) & (~lsrc eqtype 0) + mov dest, (hsrc) shl 16 + add dest, lsrc + else + mov dest, hsrc + shl dest, 16 + add dest, lsrc + end if + end if +} + +macro __mov reg,a,b { ; mike.dld + if (~a eq)&(~b eq) + mpack reg,a,b + else if (~a eq)&(b eq) + mov reg,a + end if +} + +macro mcall a,b,c,d,e,f { ; mike.dld + __mov eax,a + __mov ebx,b + __mov ecx,c + __mov edx,d + __mov esi,e + __mov edi,f + int 0x40 +} + + + + + + + +; optimize the code for size +__regs fix + +macro add arg1,arg2 + { + if (arg2 eqtype 0) + if (arg2) = 1 + inc arg1 + else + add arg1,arg2 + end if + else + add arg1,arg2 + end if + } + +macro sub arg1,arg2 + { + if (arg2 eqtype 0) + if (arg2) = 1 + dec arg1 + else + sub arg1,arg2 + end if + else + sub arg1,arg2 + end if + } + +macro mov arg1,arg2 + { + if (arg1 in __regs) & (arg2 eqtype 0) + if (arg2) = 0 + xor arg1,arg1 + else if (arg2) = 1 + xor arg1,arg1 + inc arg1 + else if (arg2) = -1 + or arg1,-1 + else if (arg2) > -128 & (arg2) < 128 + push arg2 + pop arg1 + else + mov arg1,arg2 + end if + else + mov arg1,arg2 + end if + } + + +macro struct name + { + virtual at 0 + name name + sizeof.#name = $ - name + end virtual + } + +; structures used in MeOS +struc process_information + { + .cpu_usage dd ? ; +0 + .window_stack_position dw ? ; +4 + .window_stack_value dw ? ; +6 + .not_used1 dw ? ; +8 + .process_name rb 12 ; +10 + .memory_start dd ? ; +22 + .used_memory dd ? ; +26 + .PID dd ? ; +30 + .x_start dd ? ; +34 + .y_start dd ? ; +38 + .x_size dd ? ; +42 + .y_size dd ? ; +46 + .slot_state dw ? ; +50 + rb (1024-52) + } +struct process_information + +struc system_colors + { + .frame dd ? + .grab dd ? + .grab_button dd ? + .grab_button_text dd ? + .grab_text dd ? + .work dd ? + .work_button dd ? + .work_button_text dd ? + .work_text dd ? + .work_graph dd ? + } +struct system_colors + + +; constants + +; events +EV_IDLE = 0 +EV_TIMER = 0 +EV_REDRAW = 1 +EV_KEY = 2 +EV_BUTTON = 3 +EV_EXIT = 4 +EV_BACKGROUND = 5 +EV_MOUSE = 6 +EV_IPC = 7 +EV_STACK = 8 + +; event mask bits for function 40 +EVM_REDRAW = 1b +EVM_KEY = 10b +EVM_BUTTON = 100b +EVM_EXIT = 1000b +EVM_BACKGROUND = 10000b +EVM_MOUSE = 100000b +EVM_IPC = 1000000b +EVM_STACK = 10000000b \ No newline at end of file diff --git a/programs/free3d04/trunk/texture.gif b/programs/free3d04/trunk/texture.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9f8ef05c718410defbcf12243e94b3f941ae6bf GIT binary patch literal 29787 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