Compare commits
10 Commits
b7e06a3ec7
...
add-licens
Author | SHA1 | Date | |
---|---|---|---|
1e663f36c8 | |||
00c2cfbcfc | |||
c398a2bbf4 | |||
58cf25fe43 | |||
8da45bab3e | |||
5abc319817 | |||
ff625706c0 | |||
81dafb3025 | |||
58e2d0b844 | |||
7720e38868 |
@@ -66,6 +66,17 @@ to the end commit message body on a new line.
|
|||||||
|
|
||||||
Use **rebase** to keep your branch up to date.
|
Use **rebase** to keep your branch up to date.
|
||||||
|
|
||||||
|
## Licensing
|
||||||
|
|
||||||
|
For new source code files and for existing ones without a license, you need to add the following header to the beginning of the file:
|
||||||
|
```asm
|
||||||
|
; SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
; Program - Brief description.
|
||||||
|
; Copyright (C) 2011-2025 KolibriOS team
|
||||||
|
```
|
||||||
|
|
||||||
|
Be careful when setting copyright and date interval. Review the file's history to verify its origin.
|
||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
We hope this small instructions will help you to get familiar with KolibriOS contribution rules and inspire you to participate in the life of our project.
|
We hope this small instructions will help you to get familiar with KolibriOS contribution rules and inspire you to participate in the life of our project.
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# KolibriOS
|
# KolibriOS
|
||||||
|
|
||||||
[](./COPYING.TXT)
|
[](./LICENSE)
|
||||||
[](https://git.kolibrios.org/KolibriOS/kolibrios/actions)
|
[](https://git.kolibrios.org/KolibriOS/kolibrios/actions)
|
||||||
|
|
||||||
KolibriOS is a hobby operating system for x86-compatible computers, which is currently being developed by a small but passionate team of enthusiasts.
|
KolibriOS is a hobby operating system for x86-compatible computers, which is currently being developed by a small but passionate team of enthusiasts.
|
||||||
|
@@ -157,7 +157,7 @@ extra_files = {
|
|||||||
{"kolibrios/3D/info3ds/OBJECTS.PNG", SRC_PROGS .. "/develop/info3ds/objects.png"},
|
{"kolibrios/3D/info3ds/OBJECTS.PNG", SRC_PROGS .. "/develop/info3ds/objects.png"},
|
||||||
{"kolibrios/3D/info3ds/TOOLBAR.PNG", SRC_PROGS .. "/develop/info3ds/toolbar.png"},
|
{"kolibrios/3D/info3ds/TOOLBAR.PNG", SRC_PROGS .. "/develop/info3ds/toolbar.png"},
|
||||||
{"kolibrios/3D/info3ds/FONT8X9.BMP", SRC_PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
|
{"kolibrios/3D/info3ds/FONT8X9.BMP", SRC_PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
|
||||||
{"kolibrios/3D/blocks/", "../programs/bcc32/games/blocks/bin/*"},
|
{"kolibrios/3D/blocks/blocks.kex", "../programs/bcc32/games/blocks/bin/blocks.kex"},
|
||||||
{"kolibrios/3D/blocks/models/", "../programs/bcc32/games/blocks/models/*"},
|
{"kolibrios/3D/blocks/models/", "../programs/bcc32/games/blocks/models/*"},
|
||||||
{"kolibrios/3D/md2view/", "common/3d/md2view/*"},
|
{"kolibrios/3D/md2view/", "common/3d/md2view/*"},
|
||||||
{"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
|
{"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
|
||||||
@@ -631,10 +631,10 @@ tup.append_table(extra_files, {
|
|||||||
{"kolibrios/utils/calcplus", VAR_PROGS .. "/other/calcplus/calcplus"},
|
{"kolibrios/utils/calcplus", VAR_PROGS .. "/other/calcplus/calcplus"},
|
||||||
{"kolibrios/utils/kfm/kfm", VAR_PROGS .. "/fs/kfm/trunk/kfm"},
|
{"kolibrios/utils/kfm/kfm", VAR_PROGS .. "/fs/kfm/trunk/kfm"},
|
||||||
{"kolibrios/utils/tedit/t_edit", VAR_PROGS .. "/other/t_edit/t_edit"},
|
{"kolibrios/utils/tedit/t_edit", VAR_PROGS .. "/other/t_edit/t_edit"},
|
||||||
|
{"kolibrios/3D/blocks/block.bin", VAR_PROGS .. "/bcc32/games/blocks/block.bin"}
|
||||||
})
|
})
|
||||||
-- For russian build, add russian-only programs.
|
-- For russian build, add russian-only programs.
|
||||||
if build_type == "ru_RU" then tup.append_table(img_files, {
|
if build_type == "ru_RU" then tup.append_table(img_files, {
|
||||||
{"PERIOD", VAR_PROGS .. "/other/period/trunk/period"},
|
|
||||||
{"GAMES/KLAVISHA", VAR_PROGS .. "/games/klavisha/klavisha"},
|
{"GAMES/KLAVISHA", VAR_PROGS .. "/games/klavisha/klavisha"},
|
||||||
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
|
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
|
||||||
}) else tup.append_table(img_files, {
|
}) else tup.append_table(img_files, {
|
||||||
@@ -642,6 +642,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
|
|||||||
}) end
|
}) end
|
||||||
|
|
||||||
if build_type == "ru_RU" then tup.append_table(extra_files, {
|
if build_type == "ru_RU" then tup.append_table(extra_files, {
|
||||||
|
{"kolibrios/utils/period", VAR_PROGS .. "/other/period/trunk/period"},
|
||||||
{"kolibrios/games/Dungeons/Dungeons", VAR_PROGS .. "/games/Dungeons/Dungeons"},
|
{"kolibrios/games/Dungeons/Dungeons", VAR_PROGS .. "/games/Dungeons/Dungeons"},
|
||||||
}) end
|
}) end
|
||||||
|
|
||||||
|
2
programs/bcc32/games/blocks/Tupfile.lua
Normal file
2
programs/bcc32/games/blocks/Tupfile.lua
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||||
|
tup.rule("block.asm", "fasm -m 65636 %f %o " .. tup.getconfig("KPACK_CMD"), "block.bin")
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
229
programs/bcc32/games/blocks/models/model_8911_bird.bjs
Normal file
229
programs/bcc32/games/blocks/models/model_8911_bird.bjs
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
// block name, color, step, coord: x,y,z, rotation: x,y,z
|
||||||
|
|
||||||
|
const m1=16711680;
|
||||||
|
const m2=16776960;
|
||||||
|
const m3=655615;
|
||||||
|
const m4=65315;
|
||||||
|
const m5=16777215;
|
||||||
|
const m6=16756655;
|
||||||
|
const m7=16776367;
|
||||||
|
const m8=0;
|
||||||
|
const m9=65498;
|
||||||
|
|
||||||
|
model_list=[
|
||||||
|
['b2x3x1', m1, 0, 4,-20, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4,-12, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4, -4, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4, 4, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4, 12, 3, 0,0,90],
|
||||||
|
['t2x3x1', m1, 0, 0, 20, 3, 0,0,90],
|
||||||
|
['b1x1x1', m1, 0, 0, 28, 3, 0,0,0],
|
||||||
|
['b1x1x1', m1, 0, -8,-16, 3, 0,0,0],
|
||||||
|
['b1x1x1', m1, 0, 8,-16, 3, 0,0,0],
|
||||||
|
['b2x4x1', m1, 0,-12,-12, 3, 0,0,0],
|
||||||
|
['b2x4x1', m1, 0, 8,-12, 3, 0,0,0],
|
||||||
|
['l2x2x1', m1, 0, -8, 4, 3, 0,0,90],
|
||||||
|
['l2x2x1', m1, 0, 8, 4, 3, 0,0,0],
|
||||||
|
['b1x6x1', m1, 1, 0, 20, 6, 0,0,0],
|
||||||
|
['b1x6x1', m1, 1, -4, 16, 6, 0,0,0],
|
||||||
|
['b1x6x1', m1, 1, 4, 16, 6, 0,0,0],
|
||||||
|
['b1x10x1', m1, 1, 0,-24, 6, 0,0,0],
|
||||||
|
['b2x8x1', m1, 1, -8,-16, 6, 0,0,0],
|
||||||
|
['b2x8x1', m1, 1, 4,-16, 6, 0,0,0],
|
||||||
|
['b2x3x1', m1, 1,-16, -8, 6, 0,0,0],
|
||||||
|
['b2x3x1', m1, 1, 12, -8, 6, 0,0,0],
|
||||||
|
['l2x2x1', m1, 1, -4,-20, 6, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 1,-12,-12, 6, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 1,-12, 4, 6, 0,0,90],
|
||||||
|
['l2x2x1', m1, 1, 12, 4, 6, 0,0,0],
|
||||||
|
['l2x2x1', m1, 1, 12,-12, 6, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 1, 4,-20, 6, 0,0,-90],
|
||||||
|
['b2x3x1', m1, 2, 4,-24, 9, 0,0,90],
|
||||||
|
['b1x3x1', m1, 2, -8,-24, 9, 0,0,0],
|
||||||
|
['b1x3x1', m1, 2, 8,-24, 9, 0,0,0],
|
||||||
|
['b1x4x1', m1, 2,-12,-20, 9, 0,0,0],
|
||||||
|
['b1x4x1', m1, 2, 12,-20, 9, 0,0,0],
|
||||||
|
['b1x6x1', m1, 2,-16,-16, 9, 0,0,0],
|
||||||
|
['b1x6x1', m1, 2, 16,-16, 9, 0,0,0],
|
||||||
|
['t2x3x1', m1, 2,-12, 8, 9, 0,0,90],
|
||||||
|
['t2x3x1', m1, 2, 12, 8, 9, 0,0,90],
|
||||||
|
['b2x4x1', m1, 2, 4, 12, 9, 0,0,90],
|
||||||
|
['b1x2x1', m1, 2, 8, 12, 9, 0,0,0],
|
||||||
|
['b1x3x1', m2, 2, 4, 20, 9, 0,0,90],
|
||||||
|
['b1x3x1', m3, 2, 4, 24, 9, 0,0,90],
|
||||||
|
['t2x3x1', m3, 2, 0, 28, 9, 0,0,90],
|
||||||
|
['b2x3x1', m1, 3, 0,-28, 12, 0,0,90],
|
||||||
|
['b2x2x1', m1, 3, 4,-28, 12, 0,0,0],
|
||||||
|
['l2x2x1', m1, 3,-12,-20, 12, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 3, 12,-20, 12, 0,0,-90],
|
||||||
|
['b2x4x1', m1, 3,-16,-16, 12, 0,0,0],
|
||||||
|
['b2x4x1', m1, 3, 12,-16, 12, 0,0,0],
|
||||||
|
['b1x3x1', m1, 3,-16, 0, 12, 0,0,0],
|
||||||
|
['b1x3x1', m1, 3, 16, 0, 12, 0,0,0],
|
||||||
|
['l2x2x1', m1, 3,-12, 12, 12, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 3, 12, 12, 12, 0,0,180],
|
||||||
|
['b1x2x1', m2, 3, -4, 16, 12, 0,0,90],
|
||||||
|
['b1x2x1', m2, 3, 8, 16, 12, 0,0,90],
|
||||||
|
['t2x3x1', m3, 3, 0, 20, 12, 0,0,90],
|
||||||
|
['b1x3x1', m1, 4, 4,-28, 15, 0,0,90],
|
||||||
|
['l2x2x1', m1, 4, -8,-24, 15, 0,0,180],
|
||||||
|
['l2x2x1', m1, 4, 8,-24, 15, 0,0,-90],
|
||||||
|
['b1x2x1', m1, 4,-12,-20, 15, 0,0,90],
|
||||||
|
['b1x2x1', m1, 4, 16,-20, 15, 0,0,90],
|
||||||
|
['c1x2x1', m4, 4,-16,-16, 15, 0,0,90],
|
||||||
|
['c1x2x1', m4, 4, 20,-16, 15, 0,0,90],
|
||||||
|
['b1x4x1', m1, 4,-16,-12, 15, 0,0,0],
|
||||||
|
['b1x4x1', m1, 4, 16,-12, 15, 0,0,0],
|
||||||
|
['l2x2x1', m1, 4,-12, 4, 15, 0,0,90],
|
||||||
|
['l2x2x1', m1, 4, 12, 4, 15, 0,0,0],
|
||||||
|
['b1x1x1', m1, 4,-12, 12, 15, 0,0,0],
|
||||||
|
['b1x1x1', m1, 4, 12, 12, 15, 0,0,0],
|
||||||
|
['l2x2x1', m2, 4, -4, 12, 15, 0,0,90],
|
||||||
|
['l2x2x1', m2, 4, 4, 12, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 4, 0, 16, 15, 0,0,0],
|
||||||
|
['b1x6x1', m1, 5,-16,-20, 18, 0,0,0],
|
||||||
|
['b1x6x1', m1, 5, 16,-20, 18, 0,0,0],
|
||||||
|
['b1x3x1', m1, 5, -8, 4, 18, 0,0,90],
|
||||||
|
['b1x3x1', m1, 5, 16, 4, 18, 0,0,90],
|
||||||
|
['l2x2x1', m1, 5, -8, 12, 18, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 5, 8, 12, 18, 0,0,-180],
|
||||||
|
['b1x3x1', m2, 5, 4, 16, 18, 0,0,90],
|
||||||
|
['b1x2x1', m1, 5,-12,-24, 18, 0,0,0],
|
||||||
|
['b1x2x1', m1, 5, 12,-24, 18, 0,0,0],
|
||||||
|
['b2x3x1', m1, 5, 0,-28, 18, 0,0,90],
|
||||||
|
['b2x2x1', m1, 5, 4,-28, 18, 0,0,0],
|
||||||
|
['t2x3x1', m1, 6, 0,-28, 21, 0,0,90],
|
||||||
|
['l2x2x1', m1, 6, -8,-24, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6,-16,-20, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6, 8,-24, 21, 0,0,90],
|
||||||
|
['l2x2x1', m1, 6, 16,-20, 21, 0,0,90],
|
||||||
|
['b1x3x1', m1, 6,-16,-12, 21, 0,0,0],
|
||||||
|
['b1x3x1', m1, 6, 16,-12, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6,-12, 0, 21, 0,0,90],
|
||||||
|
['l2x2x1', m1, 6, -8, 8, 21, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 6, 12, 0, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6, 8, 8, 21, 0,0,-180],
|
||||||
|
['b1x3x1', m1, 6, -4, 12, 21, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 7, -8, 8, 24, 0,0,0],
|
||||||
|
['b2x3x1', m1, 7, -4, 12, 24, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 7, 8, 8, 24, 0,0,0],
|
||||||
|
['l2x2x1', m1, 7,-12, 4, 24, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 7, 12, 4, 24, 0,0,-180],
|
||||||
|
['b1x3x1', m1, 7,-16, 0, 24, 0,0,180],
|
||||||
|
['b1x3x1', m1, 7, 16, 0, 24, 0,0,180],
|
||||||
|
['l2x2x1', m1, 7,-16,-16, 24, 0,0,0],
|
||||||
|
['l2x2x1', m1, 7, 16,-16, 24, 0,0,90],
|
||||||
|
['l2x2x1', m1, 7, -8,-20, 24, 0,0,180],
|
||||||
|
['l2x2x1', m1, 7, 8,-20, 24, 0,0,-90],
|
||||||
|
['b1x3x1', m3, 7, 4,-24, 24, 0,0,90],
|
||||||
|
['b2x2x1', m5, 8, -8,-24, 27, 0,0,0],
|
||||||
|
['b2x3x1', m5, 8, 8,-24, 27, 0,0,90],
|
||||||
|
['b1x3x1', m1, 8,-12,-24, 27, 0,0,0],
|
||||||
|
['b1x3x1', m1, 8, 12,-24, 27, 0,0,0],
|
||||||
|
['b1x4x1', m1, 8,-16,-20, 27, 0,0,0],
|
||||||
|
['b1x4x1', m1, 8, 16,-20, 27, 0,0,0],
|
||||||
|
['l2x2x1', m1, 8,-16, 0, 27, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 8, 16, 0, 27, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 8, 8, 4, 27, 0,0,0],
|
||||||
|
['b2x4x1', m1, 8, 4, 4, 27, 0,0,90],
|
||||||
|
['b1x1x1', m1, 8,-12, 4, 27, 0,0,0],
|
||||||
|
['r1x1x1', m5, 9,-16,-20, 30, 0,0,0],
|
||||||
|
['r1x1x1', m5, 9, 16,-20, 30, 0,0,0],
|
||||||
|
['b1x2x1', m5, 9, -8,-20, 30, 0,0,90],
|
||||||
|
['b1x2x1', m5, 9, 12,-20, 30, 0,0,90],
|
||||||
|
['t2x3x1', m5, 9, 0,-20, 30, 0,0,-90],
|
||||||
|
['r1x1x1', m6, 9,-12,-24, 30, 0,0,0],
|
||||||
|
['r1x1x1', m6, 9, 12,-24, 30, 0,0,0],
|
||||||
|
['r1x2x1', m7, 9, -4,-28, 30, 0,0,0],
|
||||||
|
['r1x2x1', m7, 9, 4,-28, 30, 0,0,0],
|
||||||
|
['b1x4x1', m1, 9,-16,-16, 30, 0,0,0],
|
||||||
|
['b1x4x1', m1, 9, 16,-16, 30, 0,0,0],
|
||||||
|
['l2x2x1', m1, 9,-12, 0, 30, 0,0,90],
|
||||||
|
['l2x2x1', m1, 9, 12, 0, 30, 0,0,0],
|
||||||
|
['l2x2x1', m1, 9, 8, 8, 30, 0,0,-180],
|
||||||
|
['b2x3x1', m1, 9, 0, 4, 30, 0,0,90],
|
||||||
|
['l2x2x1', m5, 10, -4,-20, 33, 0,0,-180],
|
||||||
|
['l2x2x1', m5, 10,-12,-16, 33, 0,0,-180],
|
||||||
|
['l2x2x1', m5, 10, 4,-20, 33, 0,0,-90],
|
||||||
|
['l2x2x1', m5, 10, 12,-16, 33, 0,0,-90],
|
||||||
|
['a1x2x2', m7, 10, 0,-24, 30, 0,0,-180],
|
||||||
|
['r1x2x1', m7, 10, 0,-24, 33, 0,0,0],
|
||||||
|
['b1x2x1', m1, 10,-16,-12, 33, 0,0,0],
|
||||||
|
['l2x2x1', m1, 10,-16, 0, 33, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 10,-12, 4, 33, 0,0,0],
|
||||||
|
['b2x4x1', m1, 10, 4, 4, 33, 0,0,90],
|
||||||
|
['l2x2x1', m1, 10, 8, 4, 33, 0,0,0],
|
||||||
|
['b2x4x1', m1, 10, 12,-12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m1, 11, 0,-24, 36, 0,0,0],
|
||||||
|
['b1x1x1', m5, 11, -4,-24, 36, 0,0,0],
|
||||||
|
['b1x1x1', m5, 11, 4,-24, 36, 0,0,0],
|
||||||
|
['b1x1x3', m8, 11, -8,-24, 30, 0,0,0],
|
||||||
|
['b1x1x3', m8, 11, 8,-24, 30, 0,0,0],
|
||||||
|
['l2x2x1', m5, 11,-12,-20, 36, 0,0,0],
|
||||||
|
['l2x2x1', m5, 11, 12,-20, 36, 0,0,90],
|
||||||
|
['r1x1x1', m5, 11,-16,-16, 36, 0,0,90],
|
||||||
|
['r1x1x1', m5, 11, 16,-16, 36, 0,0,90],
|
||||||
|
['b1x4x1', m1, 11,-16,-12, 36, 0,0,0],
|
||||||
|
['b2x4x1', m1, 11, 12,-12, 36, 0,0,0],
|
||||||
|
['b2x3x1', m1, 11, 4, 0, 36, 0,0,0],
|
||||||
|
['l2x2x1', m1, 11, -8, 0, 36, 0,0,90],
|
||||||
|
['b1x3x1', m1, 11, 0, 8, 36, 0,0,90],
|
||||||
|
['b1x3x1', m1, 12, 4,-24, 39, 0,0,90],
|
||||||
|
['r1x1x1', m5, 12, -8,-24, 39, 0,0,0],
|
||||||
|
['r1x1x1', m5, 12, 8,-24, 39, 0,0,0],
|
||||||
|
['b1x1x1', m5, 12,-12,-20, 39, 0,0,0],
|
||||||
|
['b1x6x1', m5, 12, 12,-20, 39, 0,0,90],
|
||||||
|
['b1x1x1', m1, 12,-12,-16, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12,-16,-12, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12,-12, -4, 39, 0,0,90],
|
||||||
|
['b1x1x1', m1, 12, -8, 0, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, -4, 4, 39, 0,0,90],
|
||||||
|
['l2x2x1', m1, 12, 4, 8, 39, 0,0,-180],
|
||||||
|
['b1x1x1', m1, 12, 8, 4, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, 12, 0, 39, 0,0,-180],
|
||||||
|
['b1x2x1', m1, 12, 16, -8, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, 12,-12, 39, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 13, 4,-20, 42, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 13, -4,-24, 42, 0,0,0],
|
||||||
|
['b2x6x1', m1, 13,-12,-20, 42, 0,0,0],
|
||||||
|
['b1x3x1', m1, 13, 0, 4, 42, 0,0,90],
|
||||||
|
['b2x2x1', m1, 13, 4, 0, 42, 0,0,0],
|
||||||
|
['b1x6x1', m1, 13, 12,-20, 42, 0,0,0],
|
||||||
|
['b1x4x1', m1, 14,-12,-16, 45, 0,0,0],
|
||||||
|
['b2x4x1', m1, 14, 4,-20, 45, 0,0,90],
|
||||||
|
['b2x6x1', m1, 14, 12,-12, 45, 0,0,90],
|
||||||
|
['b2x4x1', m1, 14, 4, -4, 45, 0,0,90],
|
||||||
|
['b1x3x1', m1, 14, 4, 4, 45, 0,0,90],
|
||||||
|
['l2x2x1', m1, 14, 8, -4, 45, 0,0,0],
|
||||||
|
['l2x2x1', m1, 14, 8,-16, 45, 0,0,-90],
|
||||||
|
['b2x4x1', m1, 15, -4,-16, 48, 0,0,0],
|
||||||
|
['b1x3x1', m1, 15, -8,-12, 48, 0,0,0],
|
||||||
|
['b1x3x1', m1, 15, 4, 0, 48, 0,0,90],
|
||||||
|
['b2x2x1', m1, 15, 4, -8, 48, 0,0,0],
|
||||||
|
['l2x2x1', m1, 15, 4,-12, 48, 0,0,-90],
|
||||||
|
['b1x3x1', m2, 16, 8,-12, 0, 0,0,0],
|
||||||
|
['b1x3x1', m2, 16, -8,-12, 0, 0,0,0],
|
||||||
|
['c1x2x1', m9, 17, 20,-16, 12, 0,0,0],
|
||||||
|
['b1x6x1', m4, 17, 0, 8, 0, 0,0,0, 1],
|
||||||
|
['b1x6x1', m9, 17, 0, 4, -3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m4, 18, 0, 4, 3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 16, 3, 0,0,0, 1],
|
||||||
|
['c1x2x1', m4, 18, 0, 0, 6, 0,0,0, 1],
|
||||||
|
['b1x1x1', m4, 18, 0, 8, 6, 0,0,0, 1],
|
||||||
|
['b1x2x1', m2, 18, 0, 12, 6, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 4, 9, 0,0,0, 1],
|
||||||
|
['c1x2x1', m9, 17, -20,-16, 12, 0,0,0],
|
||||||
|
['b1x6x1', m4, 17, 0, 8, 0, 0,0,0, 1],
|
||||||
|
['b1x6x1', m9, 17, 0, 4, -3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m4, 18, 0, 4, 3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 16, 3, 0,0,0, 1],
|
||||||
|
['c1x2x1', m4, 18, 0, 0, 6, 0,0,0, 1],
|
||||||
|
['b1x1x1', m4, 18, 0, 8, 6, 0,0,0, 1],
|
||||||
|
['b1x2x1', m2, 18, 0, 12, 6, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 4, 9, 0,0,0, 1],
|
||||||
|
];
|
||||||
|
|
||||||
|
model_animat=[
|
||||||
|
[192,'rotation','z','Left', -1.570796327, 0, 0.017453293],
|
||||||
|
[201,'rotation','z','Right', 0, 1.570796327, 0.017453293],
|
||||||
|
];
|
@@ -0,0 +1,531 @@
|
|||||||
|
// block name, color, step, coord: x,y,z, rotation: x,y,z
|
||||||
|
|
||||||
|
const m1=32768;
|
||||||
|
const m2=9474192;
|
||||||
|
const m3=16777215;
|
||||||
|
const m4=2164260863;
|
||||||
|
const m5=655615;
|
||||||
|
const m6=255;
|
||||||
|
const m7=16776960;
|
||||||
|
const m8=10824234;
|
||||||
|
const m9=16384;
|
||||||
|
const m10=0xc97e3b;
|
||||||
|
|
||||||
|
model_list=[
|
||||||
|
['b2x4x1', m2, 0,-28, -4, 6, 0,0,90],
|
||||||
|
['b2x3x1', m2, 0,-40, 4, 6, 0,0,0],
|
||||||
|
['b2x3x1', m2, 0,-32, 8, 6, 0,0,0],
|
||||||
|
['b2x6x1', m2, 0, -4, 8, 6, 0,0,90],
|
||||||
|
['b1x3x1', m2, 0, -4, 4, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 0, -4, -4, 6, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0, -8, -8, 6, 0,0,90],
|
||||||
|
['b2x3x1', m2, 0,-24, -8, 6, 0,0,0],
|
||||||
|
['b2x4x1', m2, 1,-12, -8, 9, 0,0,0],
|
||||||
|
['b2x2x1', m2, 1,-20, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m2, 1,-20, -8, 9, 0,0,90],
|
||||||
|
['b2x3x1', m2, 1,-24, -4, 9, 0,0,90],
|
||||||
|
['b2x3x1', m2, 1,-40, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m2, 1,-40, 8, 9, 0,0,0],
|
||||||
|
['b2x4x1', m2, 1,-24, 8, 9, 0,0,90],
|
||||||
|
['b1x2x1', m2, 1,-28, 16, 9, 0,0,90],
|
||||||
|
['l2x2x1', m2, 2, 0,-12, 6, 0,0,-90],
|
||||||
|
['l2x2x1', m2, 2, 8,-12, 6, 0,0,-90],
|
||||||
|
['b2x4x1', m2, 2, 12, -8, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 12, 0, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 12, 8, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 12, 16, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 28, 16, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 28, 8, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 28, 0, 6, 0,0,90],
|
||||||
|
['b1x4x1', m2, 2, 28, -4, 6, 0,0,90],
|
||||||
|
['b1x2x1', m2, 2, 24, -8, 6, 0,0,90],
|
||||||
|
['b2x2x1', m3, 3, 20, 16, 9, 0,0,0],
|
||||||
|
['b2x2x1', m2, 3, 12, 16, 9, 0,0,0],
|
||||||
|
['b1x3x1', m2, 3, 20, 12, 9, 0,0,90],
|
||||||
|
['b1x2x1', m2, 3, 20, 4, 9, 0,0,0],
|
||||||
|
['b1x3x1', m2, 3, 20, -8, 9, 0,0,0],
|
||||||
|
['l2x2x1', m2, 3, 24, -4, 9, 0,0,-90],
|
||||||
|
['b2x4x1', m2, 3, 12, -4, 9, 0,0,0],
|
||||||
|
['b2x6x1', m2, 3, 4, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m2, 3, 8, 20, 9, 0,0,90],
|
||||||
|
['b1x2x1', m2, 3, 0, 16, 9, 0,0,0],
|
||||||
|
['b2x6x1', m2, 3, 0, 8, 9, 0,0,90],
|
||||||
|
['b2x3x1', m2, 3, -4, -4, 9, 0,0,0],
|
||||||
|
['b2x4x1', m2, 3, 12,-12, 9, 0,0,90],
|
||||||
|
['b1x1x1', m2, 3, 8,-16, 9, 0,0,0],
|
||||||
|
['b1x1x1', m2, 3, 0,-16, 9, 0,0,0],
|
||||||
|
['b1x4x1', m2, 4,-28, -4, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4,-40, 0, 3, 0,0,0],
|
||||||
|
['b1x4x1', m2, 4,-24, 12, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4,-28, 16, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4, -8, 12, 3, 0,0,90],
|
||||||
|
['l2x2x1', m2, 4, 0, 12, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4, 12, 20, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 4, 24, 20, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 4, 28, 12, 3, 0,0,0],
|
||||||
|
['b1x3x1', m2, 4, 28, 0, 3, 0,0,0],
|
||||||
|
['b1x4x1', m2, 4, 28, -4, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4, 24, -8, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 4, 12,-12, 3, 0,0,0],
|
||||||
|
['l2x2x1', m2, 4, 8,-12, 3, 0,0,-180],
|
||||||
|
['b1x4x1', m2, 4, 0,-16, 3, 0,0,0],
|
||||||
|
['b1x2x1', m2, 4, -4, -4, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4, -8, -8, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4,-12, -4, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4,-20, -8, 3, 0,0,90],
|
||||||
|
['b20x20x1', m1, 5,-40,-40, 0, 0,0,0],
|
||||||
|
['b1x4x1', m3, 6,-28, -4, 12, 0,0,90],
|
||||||
|
['b2x4x1', m2, 6,-40, 0, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6,-32, 4, 12, 0,0,0],
|
||||||
|
['b2x6x1', m2, 6,-24, -8, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, -4, 8, 12, 0,0,90],
|
||||||
|
['b2x4x1', m2, 6, -4, -4, 12, 0,0,90],
|
||||||
|
['b1x2x1', m2, 6, -8, -8, 12, 0,0,90],
|
||||||
|
['b1x3x1', m2, 6, 0, -8, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 0,-16, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 4,-12, 12, 0,0,0],
|
||||||
|
['b1x4x1', m2, 6, 8,-16, 12, 0,0,0],
|
||||||
|
['b1x4x1', m2, 6, 12,-12, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 20, -4, 12, 0,0,90],
|
||||||
|
['b1x2x1', m2, 6, 24, -8, 12, 0,0,90],
|
||||||
|
['b2x4x1', m2, 6, 16, 0, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 16, 16, 12, 0,0,0],
|
||||||
|
['b2x2x1', m3, 6, 20, 16, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, 8, 8, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, 0, 8, 12, 0,0,0],
|
||||||
|
['b2x6x1', m3, 7, 24, 16, 15, 0,0,90],
|
||||||
|
['b1x2x1', m3, 7, 0, 16, 15, 0,0,0],
|
||||||
|
['b1x4x1', m2, 7, 20, 0, 15, 0,0,0],
|
||||||
|
['b1x4x1', m2, 7, 16, 12, 15, 0,0,90],
|
||||||
|
['b2x4x1', m2, 7, 16, 4, 15, 0,0,90],
|
||||||
|
['b2x4x1', m2, 7, 16, -4, 15, 0,0,90],
|
||||||
|
['b2x4x1', m2, 7, -4, 0, 15, 0,0,0],
|
||||||
|
['b1x4x1', m2, 7, -8, 12, 15, 0,0,90],
|
||||||
|
['b1x4x1', m3, 7,-24, 12, 15, 0,0,90],
|
||||||
|
['b1x3x1', m3, 7,-40, 4, 15, 0,0,0],
|
||||||
|
['l2x2x1', m3, 7,-40, -4, 15, 0,0,0],
|
||||||
|
['b1x4x1', m3, 7,-20, -4, 15, 0,0,90],
|
||||||
|
['l2x2x1', m2, 7,-12, -4, 15, 0,0,180],
|
||||||
|
['l2x2x1', m2, 7, -8, -4, 15, 0,0,-90],
|
||||||
|
['b1x4x1', m2, 7, 0,-16, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 7, 4,-12, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 7, 8,-16, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 7, 12,-12, 15, 0,0,0],
|
||||||
|
['b1x1x1', m3, 8, 24, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 24, 20, 18, 0,0,0],
|
||||||
|
['b2x2x1', m3, 8, 16, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 12, 20, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 12, 16, 18, 0,0,0],
|
||||||
|
['b1x2x1', m3, 8, 8, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 4, 20, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 4, 16, 18, 0,0,0],
|
||||||
|
['b1x2x1', m3, 8, 0, 16, 18, 0,0,0],
|
||||||
|
['b1x2x1', m3, 8, -4, 12, 18, 0,0,90],
|
||||||
|
['b1x4x1', m3, 8,-12, 12, 18, 0,0,90],
|
||||||
|
['b1x4x1', m3, 8,-28, 12, 18, 0,0,90],
|
||||||
|
['b1x4x1', m3, 8,-40, -4, 18, 0,0,0],
|
||||||
|
['b1x4x1', m3, 8,-24, -4, 18, 0,0,90],
|
||||||
|
['b1x2x1', m3, 8,-16, -4, 18, 0,0,90],
|
||||||
|
['b2x2x1', m3, 8,-12, -8, 18, 0,0,0],
|
||||||
|
['b1x4x1', m3, 8, -4, -4, 18, 0,0,0],
|
||||||
|
['b2x4x1', m3, 8, 12,-12, 18, 0,0,90],
|
||||||
|
['b1x1x1', m3, 8, 0,-16, 18, 0,0,0],
|
||||||
|
['b1x1x1', m3, 8, 8,-16, 18, 0,0,0],
|
||||||
|
['b2x2x1', m3, 9, 20, 16, 21, 0,0,0],
|
||||||
|
['b1x2x1', m5, 9, 16, 16, 21, 0,0,0],
|
||||||
|
['b2x2x1', m3, 9, 8, 16, 21, 0,0,0],
|
||||||
|
['b2x2x1', m5, 9, 0, 16, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9, -4, 12, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, -8, 12, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-12, 12, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-16, 12, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-20, 12, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-24, 12, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9,-28, 12, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9,-36, 12, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-40, 12, 21, 0,0,0],
|
||||||
|
['b2x3x1', m3, 9,-44, 0, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-40, -4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-36, -4, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-32, -4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-28, -4, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9,-20, -4, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9,-16, -4, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9,-12, -8, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, -8, -8, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9, -4, -4, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9, -4, 0, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9, -4, 4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, -4, 8, 21, 0,0,0],
|
||||||
|
['b2x4x1', m3, 9, 12,-12, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9, 0,-16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, 8,-16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 24, 20, 24, 0,0,0],
|
||||||
|
['l2x2x1', m3, 10, 20, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 12, 20, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 8, 20, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 8, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 12, 16, 24, 0,0,0],
|
||||||
|
['b1x4x1', m3, 10, -4, 0, 24, 0,0,0],
|
||||||
|
['b1x4x1', m3, 10, -8, 12, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10,-24, 12, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10,-40, 0, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10,-44, 8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10,-44, 4, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10,-44, 0, 24, 0,0,0],
|
||||||
|
['b1x2x1', m3, 10,-36, -4, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10,-20, -4, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10, -4, -4, 24, 0,0,90],
|
||||||
|
['b1x2x1', m3, 10, -8, -8, 24, 0,0,90],
|
||||||
|
['l2x2x1', m3, 10, 4, -8, 24, 0,0,180],
|
||||||
|
['b1x2x1', m5, 10, 0,-16, 24, 0,0,0],
|
||||||
|
['l2x2x1', m3, 10, 12, -8, 24, 0,0,180],
|
||||||
|
['b1x2x1', m5, 10, 8,-16, 24, 0,0,0],
|
||||||
|
['b2x2x1', m3, 11, 24, 16, 27, 0,0,90],
|
||||||
|
['b2x2x1', m5, 11, 8, 16, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11, -4, 12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11, -8, 12, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-12, 12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-16, 12, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-20, 12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-24, 12, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11,-28, 12, 27, 0,0,90],
|
||||||
|
['c1x1x1', m4, 11,-36, 12, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-40, 12, 27, 0,0,0],
|
||||||
|
['b2x3x1', m3, 11,-44, 0, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-40, -4, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-36, -4, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-32, -4, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-28, -4, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11,-20, -4, 27, 0,0,90],
|
||||||
|
['c1x1x1', m4, 11,-16, -4, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11,-12, -8, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11, -8, -8, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11, -4, -4, 27, 0,0,90],
|
||||||
|
['c1x1x1', m4, 11, -4, 0, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11, -4, 4, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11, -4, 8, 27, 0,0,0],
|
||||||
|
['b1x2x1', m5, 11, 0,-12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m5, 11, 0,-16, 27, 0,0,0],
|
||||||
|
['f1x2x1', m5, 11, 4,-12, 27, 0,0,0],
|
||||||
|
['f1x2x1', m5, 11, 8,-12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m5, 11, 8,-16, 27, 0,0,0],
|
||||||
|
['b1x2x1', m5, 11, 12,-12, 27, 0,0,0],
|
||||||
|
['b2x2x1', m3, 12, 20, 16, 30, 0,0,0],
|
||||||
|
['b1x4x1', m3, 12, -4, 0, 30, 0,0,0],
|
||||||
|
['b1x4x1', m3, 12, -8, 12, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12,-24, 12, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12,-40, 0, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 12,-44, 8, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 12,-44, 4, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 12,-44, 0, 30, 0,0,0],
|
||||||
|
['b1x2x1', m3, 12,-36, -4, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12,-20, -4, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12, -4, -4, 30, 0,0,90],
|
||||||
|
['b1x2x1', m3, 12, -8, -8, 30, 0,0,90],
|
||||||
|
['b1x2x1', m5, 12, 8,-10, 30, 0,0,90],
|
||||||
|
['b2x2x1', m3, 13, -4, 12, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13, -8, 12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-12, 12, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-16, 12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-20, 12, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-24, 12, 33, 0,0,0],
|
||||||
|
['b1x2x1', m3, 13,-28, 12, 33, 0,0,90],
|
||||||
|
['c1x1x1', m4, 13,-36, 12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-40, 12, 33, 0,0,0],
|
||||||
|
['b2x3x1', m3, 13,-44, 0, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-40, -4, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-36, -4, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-32, -4, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-28, -4, 33, 0,0,0],
|
||||||
|
['b1x2x1', m3, 13,-20, -4, 33, 0,0,90],
|
||||||
|
['c1x1x1', m4, 13,-16, -4, 33, 0,0,0],
|
||||||
|
['b1x2x1', m3, 13,-12, -8, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13, -8, -8, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13, -8, -4, 33, 0,0,90],
|
||||||
|
['c1x1x1', m4, 13, -4, 0, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13, -4, 4, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13, -4, 8, 33, 0,0,0],
|
||||||
|
['b2x2x1', m3, 13, -4, -8, 33, 0,0,0],
|
||||||
|
['b2x4x1', m3, 13, 28, 16, 33, 0,0,90],
|
||||||
|
['b1x2x1', m3, 14, 24, 12, 33, 0,0,90],
|
||||||
|
['b1x2x1', m3, 14, 24, 24, 33, 0,0,90],
|
||||||
|
['b2x4x1', m6, 14, 20, 12, 36, 0,0,0],
|
||||||
|
['b1x2x1', m6, 14, 28, 16, 36, 0,0,0],
|
||||||
|
['b1x2x1', m6, 14, 16, 16, 36, 0,0,0],
|
||||||
|
['c1x1x1', m4, 14, 0, 16, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, -4, 16, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, 0, 12, 36, 0,0,0],
|
||||||
|
['b1x4x1', m3, 14, -8, 12, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14,-24, 12, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14,-40, 0, 36, 0,0,0],
|
||||||
|
['b1x2x1', m3, 14,-36, -4, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14,-20, -4, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14, -4, -4, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14, -4, 0, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, 0, -4, 36, 0,0,0],
|
||||||
|
['c1x1x1', m4, 14, 0, -8, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, -4, -8, 36, 0,0,0],
|
||||||
|
['b1x2x1', m6, 14, -8, -8, 36, 0,0,90],
|
||||||
|
['b2x2x1', m3, 15, -4, 12, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -8, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-12, 12, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-16, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-20, 12, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-24, 12, 39, 0,0,0],
|
||||||
|
['b1x2x1', m3, 15,-28, 12, 39, 0,0,90],
|
||||||
|
['c1x1x1', m4, 15,-36, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-40, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-40, 4, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-40, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-36, -4, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-32, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-28, -4, 39, 0,0,0],
|
||||||
|
['b1x2x1', m3, 15,-20, -4, 39, 0,0,90],
|
||||||
|
['c1x1x1', m4, 15,-16, -4, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-12, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-40, 8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -4, 0, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15, -4, 4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -4, 8, 39, 0,0,0],
|
||||||
|
['b2x2x1', m3, 15, -4, -8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-40, 0, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -8, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 16, 0, 16, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, -4, 16, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, 0, 12, 42, 0,0,0],
|
||||||
|
['b1x4x1', m3, 16, -8, 12, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16,-24, 12, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16,-40, 0, 42, 0,0,0],
|
||||||
|
['b1x2x1', m3, 16,-36, -4, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16,-20, -4, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16, -4, -4, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16, -4, 0, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, 0, -4, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 16, 0, -8, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, -4, -8, 42, 0,0,0],
|
||||||
|
['b2x2x1', m3, 17, -4, 12, 45, 0,0,0],
|
||||||
|
['b2x3x1', m6, 17, -8, 12, 45, 0,0,90],
|
||||||
|
['b2x2x1', m6, 17,-24, 12, 45, 0,0,0],
|
||||||
|
['b1x2x1', m6, 17,-28, 12, 45, 0,0,90],
|
||||||
|
['b2x2x1', m6, 17,-40, 12, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17,-40, 8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m4, 17,-40, 4, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17,-40, 0, 45, 0,0,0],
|
||||||
|
['b2x4x1', m6, 17,-28, -8, 45, 0,0,90],
|
||||||
|
['b1x2x1', m6, 17,-20, -4, 45, 0,0,90],
|
||||||
|
['b2x3x1', m6, 17, -8, -8, 45, 0,0,90],
|
||||||
|
['b2x2x1', m3, 17, -4, -8, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17, -4, 0, 45, 0,0,0],
|
||||||
|
['c1x1x1', m4, 17, -4, 4, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17, -4, 8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-24, -8, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-20, -8, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-32, 16, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-28, 16, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-24, -8, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-20, -8, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-32, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-28, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-24, -8, 21, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-20, -8, 21, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-32, 16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-28, 16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-24, -8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-20, -8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-32, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-28, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-24, -8, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-20, -8, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-32, 16, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-28, 16, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-24, -8, 30, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-20, -8, 30, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-32, 16, 30, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-28, 16, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-24, -8, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-20, -8, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-32, 16, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-28, 16, 33, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-24, -8, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-20, -8, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-32, 16, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-28, 16, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-24, -8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-20, -8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-32, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-28, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-24, -8, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-20, -8, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-32, 16, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-28, 16, 42, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-24, -8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-20, -8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-32, 16, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-28, 16, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-24, -8, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-20, -8, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-32, 16, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-28, 16, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 20, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 24, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 24, 20, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 20, 20, 39, 0,0,0],
|
||||||
|
['b2x2x1', m3, 22, 20, 16, 42, 0,0,0],
|
||||||
|
['f1x2x1', m6, 22, 20, 16, 45, 0,0,0],
|
||||||
|
['f1x2x1', m6, 22, 24, 16, 45, 0,0,0],
|
||||||
|
['f1x2x1', m6, 23, 24, 18, 48, 0,0,90],
|
||||||
|
['c1x1x1', m6, 23, 0, 16, 48, 0,0,0],
|
||||||
|
['b1x3x1', m6, 23, -4, 12, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23, -8, 16, 48, 0,0,0],
|
||||||
|
['b2x4x1', m6, 23,-16, 8, 48, 0,0,90],
|
||||||
|
['b1x3x1', m6, 23,-32, 12, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23,-40, 16, 48, 0,0,0],
|
||||||
|
['b1x3x1', m3, 23,-40, 0, 48, 0,0,0],
|
||||||
|
['b1x3x1', m6, 23,-32, -4, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23,-40, -8, 48, 0,0,0],
|
||||||
|
['b2x4x1', m6, 23,-16, -4, 48, 0,0,90],
|
||||||
|
['b1x3x1', m6, 23, -4, -4, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23, -8, -8, 48, 0,0,0],
|
||||||
|
['c1x1x1', m6, 23, 0, -8, 48, 0,0,0],
|
||||||
|
['b1x3x1', m3, 23, -4, 0, 48, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24, 22, 18, 51, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24, 0, 16, 51, 0,0,90],
|
||||||
|
['c1x1x1', m6, 24, -8, 16, 51, 0,0,0],
|
||||||
|
['b2x6x1', m6, 24, -4, 8, 51, 0,0,90],
|
||||||
|
['b1x2x1', m6, 24,-28, 8, 51, 0,0,90],
|
||||||
|
['b2x2x1', m3, 24,-32, 12, 51, 0,0,0],
|
||||||
|
['b2x2x1', m6, 24,-40, 8, 51, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24,-40, 16, 51, 0,0,0],
|
||||||
|
['b1x1x1', m3, 24,-40, 4, 51, 0,0,0],
|
||||||
|
['b2x4x1', m6, 24,-28, -4, 51, 0,0,90],
|
||||||
|
['c1x1x1', m6, 24,-40, -8, 51, 0,0,0],
|
||||||
|
['b1x2x1', m6, 24,-20, 0, 51, 0,0,90],
|
||||||
|
['b2x2x1', m3, 24,-24, -8, 51, 0,0,0],
|
||||||
|
['b2x4x1', m6, 24, -4, -4, 51, 0,0,90],
|
||||||
|
['c1x1x1', m6, 24, -8, -8, 51, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24, 0, -8, 51, 0,0,0],
|
||||||
|
['b1x1x1', m3, 24, -4, 4, 51, 0,0,0],
|
||||||
|
['c1x1x1', m7, 25, 22, 18, 54, 0,0,0],
|
||||||
|
['b1x1x1', m3, 25, -4, 4, 54, 0,0,0],
|
||||||
|
['b1x3x1', m5, 25, -4, 8, 54, 0,0,90],
|
||||||
|
['b1x3x1', m5, 25, -4, 0, 54, 0,0,90],
|
||||||
|
['b2x3x1', m5, 25,-20, 0, 54, 0,0,0],
|
||||||
|
['b2x3x1', m5, 25,-28, 0, 54, 0,0,0],
|
||||||
|
['b1x3x1', m5, 25,-32, 8, 54, 0,0,90],
|
||||||
|
['b1x1x1', m3, 25,-40, 4, 54, 0,0,0],
|
||||||
|
['b1x3x1', m5, 25,-32, 0, 54, 0,0,90],
|
||||||
|
['c1x1x1', m3, 25,-32, 12, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-28, 12, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-28, 16, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-32, 16, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-24, -4, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-20, -4, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-20, -8, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-24, -8, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-32, 12, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-28, 12, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-28, 16, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-32, 16, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-24, -4, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-20, -4, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-20, -8, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-24, -8, 57, 0,0,0],
|
||||||
|
['f1x2x1', m6, 27,-20, -8, 60, 0,0,90],
|
||||||
|
['f1x2x1', m6, 27,-20, -4, 60, 0,0,90],
|
||||||
|
['f1x2x1', m6, 27,-22, -8, 63, 0,0,0],
|
||||||
|
['c1x1x1', m6, 27,-22, -6, 66, 0,0,0],
|
||||||
|
['c1x1x1', m7, 27,-22, -6, 69, 0,0,0],
|
||||||
|
['b2x2x1', m3, 28,-32, 12, 60, 0,0,0],
|
||||||
|
['b2x2x1', m5, 28,-32, 12, 63, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-32, 12, 66, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-28, 12, 66, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-28, 16, 66, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-32, 16, 66, 0,0,0],
|
||||||
|
['b2x2x1', m3, 28,-32, 12, 69, 0,0,0],
|
||||||
|
['f1x2x1', m5, 29,-28, 12, 72, 0,0,90],
|
||||||
|
['f1x2x1', m5, 29,-28, 16, 72, 0,0,90],
|
||||||
|
['f1x2x1', m5, 29,-30, 12, 75, 0,0,0],
|
||||||
|
['c1x1x1', m5, 29,-30, 12, 78, 0,0,0],
|
||||||
|
['c1x1x1', m5, 29,-30, 12, 81, 0,0,0],
|
||||||
|
['c1x1x1', m7, 29,-30, 12, 84, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30, -8, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-16, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-24, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-32, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-40, 0, 57, 0,0,0],
|
||||||
|
['b1x4x1', m5, 30, -4, 4, 60, 0,0,90],
|
||||||
|
['b1x2x1', m5, 30,-20, 4, 60, 0,0,90],
|
||||||
|
['b1x4x1', m5, 30,-28, 4, 60, 0,0,90],
|
||||||
|
['b1x3x1', m5, 31, -4, 4, 63, 0,0,90],
|
||||||
|
['b1x4x1', m5, 31,-16, 4, 63, 0,0,90],
|
||||||
|
['b1x3x1', m5, 31,-32, 4, 63, 0,0,90],
|
||||||
|
['c1x1x1', m7, 31, -4, 4, 66, 0,0,0],
|
||||||
|
['c1x1x1', m7, 31,-40, 4, 66, 0,0,0],
|
||||||
|
['c1x1x1', m8, 32,-32,-36, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 32, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 32, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 32, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 32, 0, 0, 12, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 33,-12,-24, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 12, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 15, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 33, 0, 0, 18, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 34, 16,-36, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 34, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 34, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 34, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 34, 0, 0, 12, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 35, 32,-24, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 12, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 15, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 35, 0, 0, 18, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 36,-20, 28, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 12, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 15, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 36, 0, 0, 18, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 37, 16, 32, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 37, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 37, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 37, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 37, 0, 0, 12, 0,0,0, 1],
|
||||||
|
['c1x1x1', m3, 38, 36, -4, 3, 0,0,0],
|
||||||
|
['b1x2x1', m10, 38, 36, 0, 3, 0,0,90],
|
||||||
|
['b1x2x1', m10, 38, 36, 12, 3, 0,0,90],
|
||||||
|
['c1x1x1', m3, 38, 36, 16, 3, 0,0,0],
|
||||||
|
['c1x1x1', m3, 39, 36, -4, 6, 0,0,0],
|
||||||
|
['b1x2x1', m10, 39, 36, 0, 6, 0,0,90],
|
||||||
|
['b1x2x1', m10, 39, 36, 12, 6, 0,0,90],
|
||||||
|
['c1x1x1', m3, 39, 36, 16, 6, 0,0,0],
|
||||||
|
['c1x1x1', m3, 40, 36, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m10, 40, 36, 0, 9, 0,0,90],
|
||||||
|
['b1x2x1', m10, 40, 36, 12, 9, 0,0,90],
|
||||||
|
['c1x1x1', m3, 40, 36, 16, 9, 0,0,0],
|
||||||
|
['c1x1x1', m3, 41, 36, -4, 12, 0,0,0],
|
||||||
|
['b1x2x1', m10, 41, 36, 0, 12, 0,0,90],
|
||||||
|
['b1x2x1', m10, 41, 36, 12, 12, 0,0,90],
|
||||||
|
['c1x1x1', m3, 41, 36, 16, 12, 0,0,0],
|
||||||
|
['b2x2x1', m3, 41, 32, 4, 12, 0,0,0],
|
||||||
|
['c1x1x1', m3, 42, 36, -4, 15, 0,0,0],
|
||||||
|
['b2x4x1', m10, 42, 32, 0, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 42, 36, 16, 15, 0,0,0],
|
||||||
|
['b1x1x1', m3, 43, 36, -4, 18, 0,0,0],
|
||||||
|
['b1x2x1', m6, 43, 36, 0, 18, 0,0,90],
|
||||||
|
['b1x2x1', m6, 43, 36, 12, 18, 0,0,90],
|
||||||
|
['b1x1x1', m3, 43, 36, 16, 18, 0,0,0],
|
||||||
|
['b2x2x1', m10, 43, 32, 4, 18, 0,0,0],
|
||||||
|
['c1x1x1', m6, 44, 36, -4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m6, 44, 36, 16, 21, 0,0,0],
|
||||||
|
['f1x2x1', m6, 44, 36, 4, 21, 0,0,0],
|
||||||
|
['f1x2x1', m6, 44, 32, 4, 21, 0,0,0],
|
||||||
|
['f1x2x1', m6, 44, 36, 6, 24, 0,0,90],
|
||||||
|
];
|
@@ -1,9 +1,8 @@
|
|||||||
//Leency, Veliant, Punk_Joker, PavelYakov & KolibriOS Team 2008-2022
|
//Leency, Veliant, Punk_Joker, PavelYakov & KolibriOS Team 2008-2025
|
||||||
//GNU GPL license.
|
//GNU GPL license.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
BUGS:
|
BUGS:
|
||||||
- F1 in KFM (move Properties to an external app)
|
|
||||||
- Ctrl+1+2+3+4 in KFM
|
- Ctrl+1+2+3+4 in KFM
|
||||||
- Highlight another commands on Ctrl|Shift in KFM like in Classic KFM
|
- Highlight another commands on Ctrl|Shift in KFM like in Classic KFM
|
||||||
TODO:
|
TODO:
|
||||||
@@ -11,9 +10,9 @@ TODO:
|
|||||||
http://board.kolibrios.org/viewtopic.php?f=23&t=4521&p=77334#p77334
|
http://board.kolibrios.org/viewtopic.php?f=23&t=4521&p=77334#p77334
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ABOUT_TITLE "EOLITE 5.30"
|
#define ABOUT_TITLE "Eolite 5.32"
|
||||||
#define TITLE_EOLITE "Eolite File Manager 5.30"
|
#define TITLE_EOLITE "Eolite File Manager 5.32"
|
||||||
#define TITLE_KFM "Kolibri File Manager 2.30";
|
#define TITLE_KFM "Kolibri File Manager 2.32";
|
||||||
|
|
||||||
#define MEMSIZE 1024 * 250
|
#define MEMSIZE 1024 * 250
|
||||||
#include "../lib/clipboard.h"
|
#include "../lib/clipboard.h"
|
||||||
@@ -444,6 +443,9 @@ void main()
|
|||||||
}
|
}
|
||||||
EventDriveClick(key_scancode);
|
EventDriveClick(key_scancode);
|
||||||
break;
|
break;
|
||||||
|
case SCAN_CODE_KEY_P:
|
||||||
|
EventCopyItemPath();
|
||||||
|
break;
|
||||||
case SCAN_CODE_KEY_X:
|
case SCAN_CODE_KEY_X:
|
||||||
CopyFilesListToClipboard(CUT);
|
CopyFilesListToClipboard(CUT);
|
||||||
break;
|
break;
|
||||||
@@ -716,7 +718,7 @@ void DrawFilePanels()
|
|||||||
DrawButtonsAroundList();
|
DrawButtonsAroundList();
|
||||||
path = location[active_panel^1];
|
path = location[active_panel^1];
|
||||||
active_panel ^= 1;
|
active_panel ^= 1;
|
||||||
OpenDir2(WITH_REDRAW);
|
OpenDir_without_unselect(WITH_REDRAW);
|
||||||
active_panel ^= 1;
|
active_panel ^= 1;
|
||||||
if (!getSelectedCount()) files_inactive.count = files.count;
|
if (!getSelectedCount()) files_inactive.count = files.count;
|
||||||
llist_copy(#files, #files_active);
|
llist_copy(#files, #files_active);
|
||||||
@@ -729,38 +731,22 @@ void DrawFilePanels()
|
|||||||
|
|
||||||
DrawButtonsAroundList();
|
DrawButtonsAroundList();
|
||||||
path = location[active_panel];
|
path = location[active_panel];
|
||||||
OpenDir2(WITH_REDRAW);
|
OpenDir_without_unselect(WITH_REDRAW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenDir2(char redraw){
|
void OpenDir(char redraw) {
|
||||||
if (buf) free(buf);
|
|
||||||
if (GetDir(#buf, #files.count, path, DIRS_NOROOT)) {
|
|
||||||
Write_Error(EAX);
|
|
||||||
history.add(path);
|
|
||||||
EventHistoryGoBack();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SetCurDir(path);
|
|
||||||
if (files.count>0) && (files.cur_y-files.first==-1) files.cur_y=0;
|
|
||||||
files.visible = math.min(files.h / files.item_h, files.count);
|
|
||||||
if (!strncmp(path, "/rd/1",5)) || (!strncmp(path, "/sys/",4))
|
|
||||||
dir_at_fat16 = true; else dir_at_fat16 = false;
|
|
||||||
Sorting();
|
|
||||||
SystemDiscs.Draw();
|
|
||||||
list_full_redraw = true;
|
|
||||||
List_ReDraw();
|
|
||||||
DrawPathBar();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void OpenDir(char redraw){
|
|
||||||
int errornum;
|
|
||||||
unselectAll();
|
unselectAll();
|
||||||
|
OpenDir_without_unselect(redraw);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenDir_without_unselect(char redraw) {
|
||||||
|
int errornum;
|
||||||
|
|
||||||
if (buf) free(buf);
|
if (buf) free(buf);
|
||||||
if (errornum = GetDir(#buf, #files.count, path, DIRS_NOROOT)) {
|
if (errornum = GetDir(#buf, #files.count, path, DIRS_NOROOT)) {
|
||||||
history.add(path);
|
history.add(path);
|
||||||
//EventHistoryGoBack();
|
|
||||||
Dir_Up();
|
Dir_Up();
|
||||||
Write_Error(errornum);
|
Write_Error(errornum);
|
||||||
return;
|
return;
|
||||||
@@ -1055,7 +1041,6 @@ void EventHistoryGoForward()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ShowOpenWithDialog()
|
void ShowOpenWithDialog()
|
||||||
{
|
{
|
||||||
byte open_param[4097];
|
byte open_param[4097];
|
||||||
@@ -1149,6 +1134,7 @@ void ShowPopinForm(byte _popin_type)
|
|||||||
break;
|
break;
|
||||||
case POPIN_DELETE:
|
case POPIN_DELETE:
|
||||||
if (!files.count) return;
|
if (!files.count) return;
|
||||||
|
popin_string[0] = -1;
|
||||||
if (!getSelectedCount()) && (!strncmp(#file_name,"..",2)) return;
|
if (!getSelectedCount()) && (!strncmp(#file_name,"..",2)) return;
|
||||||
popinx = DrawEolitePopup(T_YES, T_NO);
|
popinx = DrawEolitePopup(T_YES, T_NO);
|
||||||
WriteTextCenter(popinx, 178, POPIN_W, sc.work_text, T_DELETE_FILE);
|
WriteTextCenter(popinx, 178, POPIN_W, sc.work_text, T_DELETE_FILE);
|
||||||
@@ -1346,6 +1332,12 @@ void EventOpenSearch()
|
|||||||
RunProgram(#program_path, #param);
|
RunProgram(#program_path, #param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EventCopyItemPath()
|
||||||
|
{
|
||||||
|
Clipboard__CopyText(#file_path);
|
||||||
|
}
|
||||||
|
|
||||||
void ProceedMouseGestures()
|
void ProceedMouseGestures()
|
||||||
{
|
{
|
||||||
char stats;
|
char stats;
|
||||||
|
@@ -4,9 +4,11 @@ char file_actions[]=
|
|||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Enter
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Enter
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Ctrl+Ent
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Ctrl+Ent
|
||||||
-
|
-
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Ctrl+C
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Ctrl+P
|
||||||
<EFBFBD><EFBFBD>१<EFBFBD><EFBFBD><EFBFBD> |Ctrl+X
|
-
|
||||||
<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD> |Ctrl+V
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+C
|
||||||
|
<EFBFBD><EFBFBD>१<EFBFBD><EFBFBD><EFBFBD>|Ctrl+X
|
||||||
|
<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD>|Ctrl+V
|
||||||
-
|
-
|
||||||
<EFBFBD><EFBFBD>२<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |F2
|
<EFBFBD><EFBFBD>२<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |F2
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Del
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Del
|
||||||
@@ -15,8 +17,10 @@ char empty_folder_actions[]=
|
|||||||
"<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD> |Ctrl+V";
|
"<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD> |Ctrl+V";
|
||||||
char burger_menu_items[] =
|
char burger_menu_items[] =
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>|Ctrl+N
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>|Ctrl+N
|
||||||
|
-
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᮫<EFBFBD>|Ctrl+G
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᮫<EFBFBD>|Ctrl+G
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+R
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+F
|
||||||
|
-
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன<EFBFBD><EFBFBD>|F10
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன<EFBFBD><EFBFBD>|F10
|
||||||
<EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD>";
|
<EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD>";
|
||||||
|
|
||||||
@@ -25,6 +29,8 @@ char file_actions[]=
|
|||||||
"Ava |Enter
|
"Ava |Enter
|
||||||
Ava ... |Ctrl+Ent
|
Ava ... |Ctrl+Ent
|
||||||
-
|
-
|
||||||
|
Copy path |Ctrl+P
|
||||||
|
-
|
||||||
Kopeeri |Ctrl+C
|
Kopeeri |Ctrl+C
|
||||||
L<EFBFBD>ika |Ctrl+X
|
L<EFBFBD>ika |Ctrl+X
|
||||||
Aseta |Ctrl+V
|
Aseta |Ctrl+V
|
||||||
@@ -36,8 +42,10 @@ char empty_folder_actions[]=
|
|||||||
"Aseta |Ctrl+V";
|
"Aseta |Ctrl+V";
|
||||||
char burger_menu_items[] =
|
char burger_menu_items[] =
|
||||||
"New window|Ctrl+N
|
"New window|Ctrl+N
|
||||||
|
-
|
||||||
Open console here|Ctrl+G
|
Open console here|Ctrl+G
|
||||||
V<EFBFBD>rskenda|Ctrl+R
|
Search|Ctrl+F
|
||||||
|
-
|
||||||
Settings|F10
|
Settings|F10
|
||||||
About";
|
About";
|
||||||
|
|
||||||
@@ -46,6 +54,8 @@ char file_actions[]=
|
|||||||
"Open |Enter
|
"Open |Enter
|
||||||
Open with... |Ctrl+Ent
|
Open with... |Ctrl+Ent
|
||||||
-
|
-
|
||||||
|
Copy path |Ctrl+P
|
||||||
|
-
|
||||||
Copy |Ctrl+C
|
Copy |Ctrl+C
|
||||||
Cut |Ctrl+X
|
Cut |Ctrl+X
|
||||||
Paste |Ctrl+V
|
Paste |Ctrl+V
|
||||||
@@ -57,8 +67,10 @@ char empty_folder_actions[]=
|
|||||||
"Paste |Ctrl+V";
|
"Paste |Ctrl+V";
|
||||||
char burger_menu_items[] =
|
char burger_menu_items[] =
|
||||||
"New window|Ctrl+N
|
"New window|Ctrl+N
|
||||||
|
-
|
||||||
Open console here|Ctrl+G
|
Open console here|Ctrl+G
|
||||||
Refresh folder|Ctrl+R
|
Search|Ctrl+F
|
||||||
|
-
|
||||||
Settings|F10
|
Settings|F10
|
||||||
About";
|
About";
|
||||||
#endif
|
#endif
|
||||||
@@ -76,17 +88,18 @@ void EventMenuClick(dword _id)
|
|||||||
if (active_menu == MENU_FILE) switch(_id) {
|
if (active_menu == MENU_FILE) switch(_id) {
|
||||||
case 1: EventOpen(0); break;
|
case 1: EventOpen(0); break;
|
||||||
case 2: ShowOpenWithDialog(); break;
|
case 2: ShowOpenWithDialog(); break;
|
||||||
case 3: CopyFilesListToClipboard(COPY); break;
|
case 3: EventCopyItemPath(); break;
|
||||||
case 4: CopyFilesListToClipboard(CUT); break;
|
case 4: CopyFilesListToClipboard(COPY); break;
|
||||||
case 5: EventPaste(path); break;
|
case 5: CopyFilesListToClipboard(CUT); break;
|
||||||
case 6: FnProcess(2); break;
|
case 6: EventPaste(path); break;
|
||||||
case 7: ShowPopinForm(POPIN_DELETE); break;
|
case 7: FnProcess(2); break;
|
||||||
case 8: FnProcess(1); break;
|
case 8: ShowPopinForm(POPIN_DELETE); break;
|
||||||
|
case 9: FnProcess(1); break;
|
||||||
}
|
}
|
||||||
if (active_menu == MENU_BURGER) switch(_id) {
|
if (active_menu == MENU_BURGER) switch(_id) {
|
||||||
case 1: EventOpenNewEolite(); break;
|
case 1: EventOpenNewEolite(); break;
|
||||||
case 2: EventOpenConsoleHere(); break;
|
case 2: EventOpenConsoleHere(); break;
|
||||||
case 3: EventRefreshDisksAndFolders(); break;
|
case 3: EventOpenSearch(); break;
|
||||||
case 4: FnProcess(10); break;
|
case 4: FnProcess(10); break;
|
||||||
case 5: EventShowAbout(); break;
|
case 5: EventShowAbout(); break;
|
||||||
}
|
}
|
||||||
|
@@ -69,7 +69,7 @@ void settings_dialog()
|
|||||||
case evKey:
|
case evKey:
|
||||||
GetKeys();
|
GetKeys();
|
||||||
if (key_scancode==SCAN_CODE_ESC) ExitSettings();
|
if (key_scancode==SCAN_CODE_ESC) ExitSettings();
|
||||||
edit_box_key_c stdcall (#path_start_ed,key_ascii << 8);
|
edit_box_key_c stdcall (#path_start_ed,key_editbox);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
|
@@ -50,10 +50,6 @@ opendialog open_folder_dialog =
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TOOLBAR_H 100
|
|
||||||
#define LISTX 0
|
|
||||||
#define LISTY TOOLBAR_H
|
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
// RESULTS //
|
// RESULTS //
|
||||||
@@ -95,9 +91,7 @@ void SearchThread()
|
|||||||
{
|
{
|
||||||
int prev_first, prev_cur_y;
|
int prev_first, prev_cur_y;
|
||||||
|
|
||||||
#ifndef __COFF__
|
|
||||||
load_dll(Proc_lib, #OpenDialog_init,0);
|
load_dll(Proc_lib, #OpenDialog_init,0);
|
||||||
#endif
|
|
||||||
OpenDialog_init stdcall (#open_folder_dialog);
|
OpenDialog_init stdcall (#open_folder_dialog);
|
||||||
|
|
||||||
if (!ESBYTE[path]) strcpy(path, "/sys");
|
if (!ESBYTE[path]) strcpy(path, "/sys");
|
||||||
@@ -107,28 +101,43 @@ void SearchThread()
|
|||||||
loop() switch(@WaitEvent())
|
loop() switch(@WaitEvent())
|
||||||
{
|
{
|
||||||
case evMouse:
|
case evMouse:
|
||||||
|
|
||||||
edit_box_mouse stdcall (#edit_name);
|
edit_box_mouse stdcall (#edit_name);
|
||||||
edit_box_mouse stdcall (#edit_path);
|
edit_box_mouse stdcall (#edit_path);
|
||||||
|
|
||||||
|
|
||||||
|
prev_cur_y = select_list.cur_y;
|
||||||
|
|
||||||
if (SelectList_ProcessMouse()) {
|
if (SelectList_ProcessMouse()) {
|
||||||
SelectList_Draw();
|
SelectList_Draw();
|
||||||
} else {
|
} else {
|
||||||
SelectList_DrawLine(select_list.cur_y);
|
SelectList_DrawLine(select_list.cur_y);
|
||||||
}
|
|
||||||
if (mouse.key&MOUSE_RIGHT) && (mouse.up) && (select_list.MouseOver()) EventOpenFile(false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
if (select_list.MouseOver(mouse.x, mouse.y))
|
||||||
|
{
|
||||||
|
if (mouse.key&MOUSE_LEFT) && (mouse.up) {
|
||||||
|
if (prev_cur_y == select_list.cur_y) EventRunFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mouse.key&MOUSE_RIGHT) && (mouse.up) {
|
||||||
|
EventShowFileInFolder();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case evButton:
|
case evButton:
|
||||||
switch (@GetButtonID()) {
|
switch (@GetButtonID()) {
|
||||||
case 1: @ExitProcess(); break;
|
case 1: @ExitProcess(); break;
|
||||||
case BTN_SEARCH: EventSearch(); break;
|
case BTN_SEARCH: EventSearch(); break;
|
||||||
case BTN_CHOOSE_PATH: EventChooseSearchInPath();
|
case BTN_CHOOSE_PATH: EventChooseSearchInPath();
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
|
break;
|
||||||
case evKey:
|
case evKey:
|
||||||
@GetKeys();
|
GetKeys();
|
||||||
edit_box_key_c stdcall (#edit_name);
|
edit_box_key_c stdcall (#edit_name, key_editbox);
|
||||||
edit_box_key_c stdcall (#edit_path);
|
edit_box_key_c stdcall (#edit_path, key_editbox);
|
||||||
if (key_scancode == SCAN_CODE_TAB) {
|
if (key_scancode == SCAN_CODE_TAB) {
|
||||||
if (edit_name.flags & ed_focus) {
|
if (edit_name.flags & ed_focus) {
|
||||||
edit_name.flags >< edit_path.flags;
|
edit_name.flags >< edit_path.flags;
|
||||||
@@ -143,7 +152,7 @@ void SearchThread()
|
|||||||
if (edit_name.flags & ed_focus) || (edit_path.flags & ed_focus) {
|
if (edit_name.flags & ed_focus) || (edit_path.flags & ed_focus) {
|
||||||
if (SCAN_CODE_ENTER == key_scancode) EventSearch();
|
if (SCAN_CODE_ENTER == key_scancode) EventSearch();
|
||||||
} else {
|
} else {
|
||||||
if (SCAN_CODE_ENTER == key_scancode) EventOpenFile(true);
|
if (SCAN_CODE_ENTER == key_scancode) EventRunFile();
|
||||||
prev_first = select_list.first;
|
prev_first = select_list.first;
|
||||||
prev_cur_y = select_list.cur_y;
|
prev_cur_y = select_list.cur_y;
|
||||||
if (select_list.ProcessKey(key_scancode)) {
|
if (select_list.ProcessKey(key_scancode)) {
|
||||||
@@ -169,17 +178,24 @@ void SearchThread()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define TOOLBAR_H 100
|
||||||
|
#define PAD 10
|
||||||
|
#define LISTX PAD
|
||||||
|
#define LISTY TOOLBAR_H
|
||||||
|
|
||||||
void draw_window_search()
|
void draw_window_search()
|
||||||
{
|
{
|
||||||
SelectList_Init(LISTX, LISTY, Form.cwidth-scroll1.size_x-1, Form.cheight-TOOLBAR_H-1);
|
SelectList_Init(LISTX, LISTY, Form.cwidth-scroll1.size_x-LISTX-LISTX, Form.cheight-TOOLBAR_H-PAD);
|
||||||
SelectList_Draw();
|
SelectList_Draw();
|
||||||
DrawBar(0, TOOLBAR_H-1, Form.cwidth, 1, sc.line);
|
DrawWideRectangle(0, LISTY-PAD-1, Form.cwidth, Form.cheight-TOOLBAR_H+PAD+1, 9, sc.work);
|
||||||
|
DrawRectangle(PAD-1, LISTY-1, select_list.w+1, select_list.h+1, sc.line);
|
||||||
|
|
||||||
DrawBar(0, 0, Form.cwidth, TOOLBAR_H-1, sc.work);
|
DrawBar(0, 0, Form.cwidth, TOOLBAR_H-1, sc.work);
|
||||||
DrawEditBox(#edit_name);
|
DrawEditBox(#edit_name);
|
||||||
WriteText(edit_name.left-2, edit_name.top-20, 0x90, sc.work_text, T_SEARCH_NAME);
|
WriteText(edit_name.left-2, edit_name.top-20, 0x90, sc.work_text, T_SEARCH_NAME);
|
||||||
edit_path.width = Form.cwidth - 314;
|
edit_path.width = Form.cwidth - 314;
|
||||||
|
DrawStandartCaptButton(PAD, 63, BTN_SEARCH, T_BUTTON_SEARCH);
|
||||||
DrawFileBox(#edit_path, T_SEARCH_PATH, BTN_CHOOSE_PATH);
|
DrawFileBox(#edit_path, T_SEARCH_PATH, BTN_CHOOSE_PATH);
|
||||||
DrawStandartCaptButton(10, 63, BTN_SEARCH, T_BUTTON_SEARCH);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectList_DrawLine(dword i)
|
void SelectList_DrawLine(dword i)
|
||||||
@@ -224,6 +240,12 @@ void SelectList_LineChanged()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void getfullpath(dword to, path, name) {
|
||||||
|
strcpy(to, path);
|
||||||
|
chrcat(to, '/');
|
||||||
|
strcat(to, name);
|
||||||
|
}
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
// EVENTS //
|
// EVENTS //
|
||||||
@@ -238,22 +260,21 @@ void EventChooseSearchInPath()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void getfullpath(dword to, path, name) {
|
void EventShowFileInFolder()
|
||||||
strcpy(to, path);
|
|
||||||
chrcat(to, '/');
|
|
||||||
strcat(to, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EventOpenFile(int run_file_not_show_in_folder)
|
|
||||||
{
|
{
|
||||||
char full_path[4096];
|
char full_path[4096];
|
||||||
int pos = select_list.cur_y;
|
int pos = select_list.cur_y;
|
||||||
getfullpath(#full_path, results.path.get(pos), results.name.get(pos));
|
getfullpath(#full_path, results.path.get(pos), results.name.get(pos));
|
||||||
if (run_file_not_show_in_folder) {
|
RunProgram(#program_path, #full_path);
|
||||||
RunProgram("/sys/@open", #full_path);
|
}
|
||||||
} else {
|
|
||||||
RunProgram("/sys/file managers/eolite", #full_path);
|
void EventRunFile()
|
||||||
}
|
{
|
||||||
|
char full_path[4096];
|
||||||
|
int pos = select_list.cur_y;
|
||||||
|
getfullpath(#full_path, results.path.get(pos), results.name.get(pos));
|
||||||
|
if (dir_exists(#full_path)) chrcat(#full_path, '/');
|
||||||
|
RunProgram("/sys/@open", #full_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventSearch()
|
void EventSearch()
|
||||||
|
@@ -9,7 +9,6 @@
|
|||||||
#pragma option -CPA
|
#pragma option -CPA
|
||||||
#initallvar 0
|
#initallvar 0
|
||||||
|
|
||||||
#ifndef __COFF__
|
|
||||||
#jumptomain FALSE
|
#jumptomain FALSE
|
||||||
|
|
||||||
#startaddress 0
|
#startaddress 0
|
||||||
@@ -30,17 +29,6 @@ dword I_Param = #param;
|
|||||||
dword I_Path = #program_path;
|
dword I_Path = #program_path;
|
||||||
char param[4096];
|
char param[4096];
|
||||||
char program_path[4096];
|
char program_path[4096];
|
||||||
#else
|
|
||||||
extern dword __argv;
|
|
||||||
extern dword __path;
|
|
||||||
|
|
||||||
dword I_Param = #__argv;
|
|
||||||
dword I_Path = #__path;
|
|
||||||
|
|
||||||
#define param __argv
|
|
||||||
#define program_path __path
|
|
||||||
#define ______INIT______ start
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define bool int
|
#define bool int
|
||||||
|
|
||||||
@@ -403,6 +391,7 @@ inline fastcall int TestBit( EAX, CL)
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define MINIMIZED 0x02
|
||||||
#define ROLLED_UP 0x04
|
#define ROLLED_UP 0x04
|
||||||
:void DefineAndDrawWindow(dword _x, _y, _w, _h, _window_type, _bgcolor, _title, _flags)
|
:void DefineAndDrawWindow(dword _x, _y, _w, _h, _window_type, _bgcolor, _title, _flags)
|
||||||
{
|
{
|
||||||
|
@@ -116,17 +116,10 @@
|
|||||||
EAX = 37;
|
EAX = 37;
|
||||||
EBX = 2;
|
EBX = 2;
|
||||||
$int 64
|
$int 64
|
||||||
$mov ebx, eax
|
|
||||||
$mov ecx, eax
|
|
||||||
key = EAX;
|
key = EAX;
|
||||||
$and eax, 0x00000001
|
lkm = EAX&MOUSE_LEFT;
|
||||||
$shr ebx, 1
|
pkm = EAX&MOUSE_RIGHT;
|
||||||
$and ebx, 0x00000001
|
mkm = EAX&MOUSE_MIDDLE;
|
||||||
$shr ecx, 2
|
|
||||||
$and ecx, 0x00000001
|
|
||||||
lkm = EAX;
|
|
||||||
pkm = EBX;
|
|
||||||
mkm = ECX;
|
|
||||||
|
|
||||||
//when you release the MOUSE button
|
//when you release the MOUSE button
|
||||||
// Mouse Move Event
|
// Mouse Move Event
|
||||||
|
@@ -6,37 +6,6 @@
|
|||||||
#include "../lib/kolibri.h"
|
#include "../lib/kolibri.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __COFF__
|
|
||||||
extern dword edit_box_draw;
|
|
||||||
extern dword edit_box_key_safe;
|
|
||||||
extern dword edit_box_mouse;
|
|
||||||
extern dword edit_box_set_text;
|
|
||||||
|
|
||||||
extern dword scrollbar_v_draw;
|
|
||||||
extern dword scrollbar_v_mouse;
|
|
||||||
extern dword scrollbar_h_draw;
|
|
||||||
extern dword scrollbar_h_mouse;
|
|
||||||
|
|
||||||
extern dword PathShow_prepare;
|
|
||||||
extern dword PathShow_draw;
|
|
||||||
|
|
||||||
extern dword progressbar_draw;
|
|
||||||
extern dword progressbar_progress;
|
|
||||||
|
|
||||||
extern dword frame_draw;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Legacy support
|
|
||||||
For new programs need to use edit_box_key_safe (or edit_box_key_c
|
|
||||||
with a define below)
|
|
||||||
TODO: change in all cmm programs edit_box_key to edit_box_key_safe (edit_box_key_c)
|
|
||||||
See examples in eolite and imgedit
|
|
||||||
|
|
||||||
This define changed all edit_box_key_c to edit_box_key_safe identifier's
|
|
||||||
*/
|
|
||||||
#define edit_box_key_c edit_box_key_safe
|
|
||||||
|
|
||||||
#else
|
|
||||||
#ifndef INCLUDE_DLL_H
|
#ifndef INCLUDE_DLL_H
|
||||||
#include "../lib/dll.h"
|
#include "../lib/dll.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -242,5 +211,3 @@ struct frame
|
|||||||
frame_draw stdcall (#frame123);
|
frame_draw stdcall (#frame123);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@@ -44,15 +44,14 @@ signed SelectList_ProcessMouse()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mouse.up) && (mouse.click)
|
if (mouse.up) && (select_list.ProcessMouse(mouse.x, mouse.y)) {
|
||||||
if (select_list.ProcessMouse(mouse.x, mouse.y)) {
|
SelectList_LineChanged();
|
||||||
SelectList_LineChanged();
|
return true;
|
||||||
return true;
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectList_DrawBorder() {
|
:void SelectList_DrawBorder() {
|
||||||
DrawRectangle3D(select_list.x-2, select_list.y-2,
|
DrawRectangle3D(select_list.x-2, select_list.y-2,
|
||||||
select_list.w+3+scroll1.size_x, select_list.h+3,
|
select_list.w+3+scroll1.size_x, select_list.h+3,
|
||||||
sc.dark, sc.light);
|
sc.dark, sc.light);
|
||||||
@@ -61,8 +60,8 @@ void SelectList_DrawBorder() {
|
|||||||
|
|
||||||
void SelectList_DrawScroller()
|
void SelectList_DrawScroller()
|
||||||
{
|
{
|
||||||
scroll1.bckg_col = MixColors(sc.work, 0xBBBbbb, 80);
|
scroll1.bckg_col = sc.dark; // MixColors(sc.work, 0xBBBbbb, 80);
|
||||||
scroll1.frnt_col = MixColors(sc.work,0xFFFfff,120);
|
scroll1.frnt_col = sc.light; // MixColors(sc.work,0xFFFfff,120);
|
||||||
scroll1.line_col = sc.line;
|
scroll1.line_col = sc.line;
|
||||||
|
|
||||||
scroll1.max_area = select_list.count;
|
scroll1.max_area = select_list.count;
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TreeList <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> box_lib.obj
|
; SPDX-License-Identifier: GPL-2.0-only
|
||||||
; <EFBFBD><EFBFBD> <20><><EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><>業<EFBFBD><E6A5AD><EFBFBD>
|
; TreeList: used as a ListBox or Tree control (determined by settings)
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD> 12.01.2021 IgorA
|
; Copyright (C) 2009-2025 IgorA <aie85playm@gmail.com>
|
||||||
|
|
||||||
|
|
||||||
struct TreeNode
|
struct TreeNode
|
||||||
type dw ? ;+ 0 ⨯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 㧫<>
|
type dw ? ;+ 0 ⨯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 㧫<>
|
||||||
@@ -14,6 +13,52 @@ struct TreeNode
|
|||||||
ends
|
ends
|
||||||
|
|
||||||
|
|
||||||
|
;input:
|
||||||
|
; ecx - 0xXX...... font options
|
||||||
|
;output:
|
||||||
|
; eax - font height in pixels
|
||||||
|
align 4
|
||||||
|
proc get_font_h uses ebx
|
||||||
|
mov eax,ecx
|
||||||
|
shr eax,24
|
||||||
|
bt eax,4
|
||||||
|
jc @f
|
||||||
|
bt eax,5
|
||||||
|
jc @f
|
||||||
|
mov ebx,9
|
||||||
|
jmp .siz0
|
||||||
|
@@:
|
||||||
|
mov ebx,16
|
||||||
|
.siz0:
|
||||||
|
and eax,7
|
||||||
|
inc eax
|
||||||
|
imul eax,ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;input:
|
||||||
|
; ecx - 0xXX...... font options
|
||||||
|
;output:
|
||||||
|
; eax - font width in pixels
|
||||||
|
align 4
|
||||||
|
proc get_font_w uses ebx
|
||||||
|
mov eax,ecx
|
||||||
|
shr eax,24
|
||||||
|
bt eax,4
|
||||||
|
jc @f
|
||||||
|
bt eax,5
|
||||||
|
jc @f
|
||||||
|
mov ebx,6
|
||||||
|
jmp .siz0
|
||||||
|
@@:
|
||||||
|
mov ebx,8
|
||||||
|
.siz0:
|
||||||
|
and eax,7
|
||||||
|
inc eax
|
||||||
|
imul eax,ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
;<3B>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯨ᪠ <20> <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
;<3B>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯨ᪠ <20> <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
align 16
|
align 16
|
||||||
proc tl_data_init uses eax ecx edi, tlist:dword
|
proc tl_data_init uses eax ecx edi, tlist:dword
|
||||||
@@ -463,34 +508,24 @@ proc tl_draw, tlist:dword
|
|||||||
|
|
||||||
cmp tl_capt_cy,9 ;9 - minimum caption height
|
cmp tl_capt_cy,9 ;9 - minimum caption height
|
||||||
jl @f
|
jl @f
|
||||||
mov ebx,edi ;calculate cursor position
|
call tl_draw_caption_cur_pos
|
||||||
mov eax,tl_cur_pos
|
|
||||||
inc eax
|
|
||||||
lea edi,[txt_capt_cur.v]
|
|
||||||
stdcall tl_convert_to_str, 5
|
|
||||||
|
|
||||||
mov edi,ebx
|
|
||||||
mov eax,tl_tim_undo
|
mov eax,tl_tim_undo
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
mov ebx,edi ;save edi
|
||||||
lea edi,[txt_capt_otm.v]
|
lea edi,[txt_capt_otm.v]
|
||||||
stdcall tl_convert_to_str, 5
|
stdcall tl_convert_to_str, 5
|
||||||
mov edi,ebx ;restore edi
|
mov edi,ebx ;restore edi
|
||||||
|
|
||||||
mov eax,SF_DRAW_TEXT ;captions
|
|
||||||
mov ebx,tl_box_left
|
|
||||||
shl ebx,16
|
|
||||||
add ebx,5*65536+3
|
|
||||||
add ebx,tl_box_top
|
|
||||||
mov ecx,tl_col_txt
|
|
||||||
or ecx,0x80000000
|
|
||||||
lea edx,[txt_capt_cur]
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov ebx,tl_box_left
|
mov ebx,tl_box_left
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
add ebx,100*65536+3
|
add ebx,100*65536+3
|
||||||
|
mov ecx,tl_col_txt
|
||||||
|
and ecx,0x00ffffff
|
||||||
|
or ecx,0x80000000
|
||||||
add ebx,tl_box_top
|
add ebx,tl_box_top
|
||||||
lea edx,[txt_capt_otm]
|
lea edx,[txt_capt_otm]
|
||||||
int 0x40
|
mcall SF_DRAW_TEXT ;undo
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
;cycle to nodes
|
;cycle to nodes
|
||||||
@@ -1163,10 +1198,11 @@ proc tl_draw_node_caption uses ebx ecx edx esi
|
|||||||
ror ecx,16
|
ror ecx,16
|
||||||
mov ebx,ecx
|
mov ebx,ecx
|
||||||
add bx,tl_img_cy ;<3B><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
add bx,tl_img_cy ;<3B><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
sub bx,9 ;<3B>⭨<EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|
||||||
mov ecx,tl_col_txt
|
mov ecx,tl_col_txt
|
||||||
and ecx,0xffffff
|
call get_font_h
|
||||||
mcall SF_DRAW_TEXT
|
sub bx,ax ;<3B>⭨<EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
||||||
|
and ecx,0x37ffffff
|
||||||
|
mcall SF_DRAW_TEXT ;node text
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@@ -1179,13 +1215,15 @@ endp
|
|||||||
align 4
|
align 4
|
||||||
proc tl_get_draw_text_len uses eax ecx edx
|
proc tl_get_draw_text_len uses eax ecx edx
|
||||||
mov esi,eax ;<3B><>६ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD>
|
mov esi,eax ;<3B><>६ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD>
|
||||||
|
mov ecx,tl_col_txt
|
||||||
|
call get_font_w
|
||||||
|
mov ecx,eax
|
||||||
mov eax,tl_box_left
|
mov eax,tl_box_left
|
||||||
add eax,tl_box_width
|
add eax,tl_box_width
|
||||||
cmp eax,ebx
|
cmp eax,ebx
|
||||||
jle .text_null ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><>࠭<EFBFBD><E0A0AD>
|
jle .text_null ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><>࠭<EFBFBD><E0A0AD>
|
||||||
sub eax,ebx
|
sub eax,ebx
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov ecx,6 ;<3B><>ਭ<EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
div ecx ;ᬮ<>ਬ <>쪮 ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
div ecx ;ᬮ<>ਬ <>쪮 ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||||||
cmp esi,eax
|
cmp esi,eax
|
||||||
jl @f
|
jl @f
|
||||||
@@ -1858,10 +1896,8 @@ pushad
|
|||||||
.po8:
|
.po8:
|
||||||
call tl_node_move_po8 ;㧫<> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>塞 8 <20><>뫮<EFBFBD>
|
call tl_node_move_po8 ;㧫<> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>塞 8 <20><>뫮<EFBFBD>
|
||||||
.cur_mov:
|
.cur_mov:
|
||||||
push dword edi
|
stdcall tl_cur_perv, edi
|
||||||
call tl_cur_perv
|
stdcall tl_draw, edi
|
||||||
push dword edi
|
|
||||||
call tl_draw
|
|
||||||
@@:
|
@@:
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
@@ -1981,10 +2017,11 @@ tl_draw_caption_cur_pos:
|
|||||||
add ebx,5*65536+3
|
add ebx,5*65536+3
|
||||||
add ebx,tl_box_top
|
add ebx,tl_box_top
|
||||||
mov ecx,tl_col_txt
|
mov ecx,tl_col_txt
|
||||||
|
and ecx,0x00ffffff
|
||||||
or ecx,0xc0000000 ;0x40000000 <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD> 䮭 梥⮬ edi
|
or ecx,0xc0000000 ;0x40000000 <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD> 䮭 梥⮬ edi
|
||||||
lea edx,[txt_capt_cur]
|
lea edx,[txt_capt_cur]
|
||||||
mov edi,tl_col_zag
|
mov edi,tl_col_zag
|
||||||
mcall SF_DRAW_TEXT ;captions
|
mcall SF_DRAW_TEXT ;row number
|
||||||
popad
|
popad
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
@@ -2253,6 +2290,6 @@ align 4
|
|||||||
jge @f
|
jge @f
|
||||||
or al,0x30 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 ᨬ<><E1A8AC><EFBFBD> '0'
|
or al,0x30 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 ᨬ<><E1A8AC><EFBFBD> '0'
|
||||||
stosb ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> al <20> <20>祪<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [edi]
|
stosb ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> al <20> <20>祪<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [edi]
|
||||||
mov byte[edi],0
|
mov word[edi],' ' ;add space symbol and 0
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
|
@@ -6,7 +6,7 @@ MK_C_SYM(__ieee754_expf)
|
|||||||
fstl %st(1)
|
fstl %st(1)
|
||||||
frndint
|
frndint
|
||||||
fstl %st(2)
|
fstl %st(2)
|
||||||
fsubrp
|
fsubp
|
||||||
f2xm1
|
f2xm1
|
||||||
fld1
|
fld1
|
||||||
faddp
|
faddp
|
||||||
|
@@ -32,7 +32,6 @@ section '.flat' code readable align 16
|
|||||||
include "..\..\..\KOSfuncs.inc"
|
include "..\..\..\KOSfuncs.inc"
|
||||||
include "..\..\..\proc32.inc"
|
include "..\..\..\proc32.inc"
|
||||||
include "..\..\..\macros.inc"
|
include "..\..\..\macros.inc"
|
||||||
include "..\..\..\dll.inc"
|
|
||||||
include "..\..\..\bcc32\include\kos_func.inc"
|
include "..\..\..\bcc32\include\kos_func.inc"
|
||||||
include "..\..\..\bcc32\include\kos_heap.inc"
|
include "..\..\..\bcc32\include\kos_heap.inc"
|
||||||
|
|
||||||
@@ -44,9 +43,9 @@ include "..\..\..\bcc32\include\kos_heap.inc"
|
|||||||
@@StrToInt$qpc equ @StrToInt$qpc
|
@@StrToInt$qpc equ @StrToInt$qpc
|
||||||
@@StrToDouble$qpc equ @StrToDouble$qpc
|
@@StrToDouble$qpc equ @StrToDouble$qpc
|
||||||
|
|
||||||
mem.alloc dd ? ;функция для выделения памяти
|
mem.alloc dd ? ;memory allocation function
|
||||||
mem.free dd ? ;функция для освобождения памяти
|
mem.free dd ? ;function to free up memory
|
||||||
mem.realloc dd ? ;функция для перераспределения памяти
|
mem.realloc dd ? ;function for memory reallocation
|
||||||
dll.load dd ?
|
dll.load dd ?
|
||||||
|
|
||||||
PRECISION equ 16
|
PRECISION equ 16
|
||||||
@@ -54,20 +53,20 @@ NNP_FF_BIN equ 0x6e6962
|
|||||||
NNP_FF_JSON equ 0x6e6f736a
|
NNP_FF_JSON equ 0x6e6f736a
|
||||||
|
|
||||||
struct Layer
|
struct Layer
|
||||||
c_size dd ? ;+ 0 curent size - число нейронов в текущем слое
|
c_size dd ? ;+ 0 curent size - number of neurons in the current layer
|
||||||
n_size dd ? ;+ 4 next size - число нейронов на следующем слое
|
n_size dd ? ;+ 4 next size - number of neurons in the next layer
|
||||||
neurons dd ? ;+ 8 []
|
neurons dd ? ;+ 8 []
|
||||||
biases dd ? ;+12 []
|
biases dd ? ;+12 []
|
||||||
weights dd ? ;+16 [][]
|
weights dd ? ;+16 [][]
|
||||||
ends
|
ends
|
||||||
|
|
||||||
struct NeuralNetwork
|
struct NeuralNetwork
|
||||||
learningRate dq ? ;+ 0 скорость обучения
|
learningRate dq ? ;+ 0
|
||||||
layers dd ? ;+ 8 [] слои
|
layers dd ? ;+ 8 []
|
||||||
layers_length dd ? ;+12 число слоев
|
layers_length dd ? ;+12 number of layers
|
||||||
activation dd ? ;+16 указатель на функцию активации
|
activation dd ? ;+16 pointer to activation function
|
||||||
derivative dd ? ;+20 указатель на функцию
|
derivative dd ? ;+20 function pointer
|
||||||
errors dd ? ;+24 массив для вычислений
|
errors dd ? ;+24 array for calculations
|
||||||
errorsNext dd ? ;+28
|
errorsNext dd ? ;+28
|
||||||
gradients dd ? ;+32
|
gradients dd ? ;+32
|
||||||
deltas dd ? ;+36
|
deltas dd ? ;+36
|
||||||
@@ -113,11 +112,6 @@ proc lib_init
|
|||||||
mov [mem.free], ebx
|
mov [mem.free], ebx
|
||||||
mov [mem.realloc], ecx
|
mov [mem.realloc], ecx
|
||||||
mov [dll.load], edx
|
mov [dll.load], edx
|
||||||
|
|
||||||
or edx, edx
|
|
||||||
jz @f
|
|
||||||
invoke dll.load, @IMPORT
|
|
||||||
@@:
|
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
@@ -137,6 +131,21 @@ Math_random:
|
|||||||
@@:
|
@@:
|
||||||
db 0,0,128,55 ;dd 1.0/65536.0
|
db 0,0,128,55 ;dd 1.0/65536.0
|
||||||
|
|
||||||
|
align 16
|
||||||
|
ieee754_exp:
|
||||||
|
fld qword[esp+4]
|
||||||
|
fldl2e ;push log2(e) onto stack
|
||||||
|
fmulp
|
||||||
|
fst st1 ;copies st0 to st1
|
||||||
|
frndint ;round to integer
|
||||||
|
fst st2 ;copies st0 to st2
|
||||||
|
fsubp ;subtraction with stack pop
|
||||||
|
f2xm1 ;raises 2 to the power st0 and subtracts 1
|
||||||
|
fld1
|
||||||
|
faddp
|
||||||
|
fscale ;scale by powers of two
|
||||||
|
ret
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
sigmoid:
|
sigmoid:
|
||||||
push ebp
|
push ebp
|
||||||
@@ -145,7 +154,7 @@ sigmoid:
|
|||||||
fld qword[ebp+8]
|
fld qword[ebp+8]
|
||||||
fchs
|
fchs
|
||||||
fstp qword[esp]
|
fstp qword[esp]
|
||||||
call dword[_exp]
|
call ieee754_exp
|
||||||
add esp,8
|
add esp,8
|
||||||
fadd dword[f_1_0]
|
fadd dword[f_1_0]
|
||||||
fdivr dword[f_1_0]
|
fdivr dword[f_1_0]
|
||||||
@@ -190,7 +199,7 @@ Layer_Create:
|
|||||||
mov dword[esi+Layer.weights],eax
|
mov dword[esi+Layer.weights],eax
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
cmp edi,ebx
|
cmp edi,ebx
|
||||||
jbe .end_f
|
jbe .end_f
|
||||||
@@:
|
@@:
|
||||||
mov eax,[ebp+16]
|
mov eax,[ebp+16]
|
||||||
shl eax,3
|
shl eax,3
|
||||||
@@ -250,18 +259,18 @@ NNP_Create:
|
|||||||
mov eax,[ebp+28] ;sizes
|
mov eax,[ebp+28] ;sizes
|
||||||
lea edx,[eax+4]
|
lea edx,[eax+4]
|
||||||
mov dword[ebp-8],edx ;save &sizes[i+1]
|
mov dword[ebp-8],edx ;save &sizes[i+1]
|
||||||
jmp .150
|
jmp .3
|
||||||
.cycle_0: ;for (i=0; i < sizes_length; i++)
|
.cycle_0: ;for (i=0; i < sizes_length; i++)
|
||||||
xor ecx,ecx
|
xor ecx,ecx
|
||||||
mov dword[ebp-4],ecx ;nextSize = 0
|
mov dword[ebp-4],ecx ;nextSize = 0
|
||||||
mov eax,[ebp+32] ;sizes_length
|
mov eax,[ebp+32] ;sizes_length
|
||||||
dec eax
|
dec eax
|
||||||
cmp edi,eax
|
cmp edi,eax
|
||||||
jae .152
|
jae @f
|
||||||
mov edx,[ebp-8]
|
mov edx,[ebp-8]
|
||||||
mov ecx,[edx]
|
mov ecx,[edx]
|
||||||
mov dword[ebp-4],ecx ;nextSize = sizes[i+1]
|
mov dword[ebp-4],ecx ;nextSize = sizes[i+1]
|
||||||
.152:
|
@@:
|
||||||
mov eax,[ebp-4]
|
mov eax,[ebp-4]
|
||||||
push eax
|
push eax
|
||||||
mov edx,[ebp-8]
|
mov edx,[ebp-8]
|
||||||
@@ -277,7 +286,7 @@ NNP_Create:
|
|||||||
mov eax,[ebp-8]
|
mov eax,[ebp-8]
|
||||||
lea edx,[eax-4]
|
lea edx,[eax-4]
|
||||||
mov dword[ebp-12],edx ;save &sizes[i]
|
mov dword[ebp-12],edx ;save &sizes[i]
|
||||||
jmp .154
|
jmp .2
|
||||||
.cycle_1: ;for (j=0; j < sizes[i]; j++)
|
.cycle_1: ;for (j=0; j < sizes[i]; j++)
|
||||||
call Math_random
|
call Math_random
|
||||||
fmul dword[f_2_0]
|
fmul dword[f_2_0]
|
||||||
@@ -290,7 +299,7 @@ NNP_Create:
|
|||||||
fstp qword[ecx+8*esi]
|
fstp qword[ecx+8*esi]
|
||||||
xor ebx,ebx ;k=0
|
xor ebx,ebx ;k=0
|
||||||
cmp ebx,[ebp-4]
|
cmp ebx,[ebp-4]
|
||||||
jae .157
|
jae .1
|
||||||
@@: ;for (k=0; k < nextSize; k++)
|
@@: ;for (k=0; k < nextSize; k++)
|
||||||
call Math_random
|
call Math_random
|
||||||
fmul dword[f_2_0]
|
fmul dword[f_2_0]
|
||||||
@@ -305,15 +314,15 @@ NNP_Create:
|
|||||||
inc ebx
|
inc ebx
|
||||||
cmp ebx,[ebp-4]
|
cmp ebx,[ebp-4]
|
||||||
jb @b
|
jb @b
|
||||||
.157:
|
.1:
|
||||||
inc esi
|
inc esi
|
||||||
.154:
|
.2:
|
||||||
mov ecx,[ebp-12]
|
mov ecx,[ebp-12]
|
||||||
cmp esi,[ecx]
|
cmp esi,[ecx]
|
||||||
jb .cycle_1
|
jb .cycle_1
|
||||||
inc edi
|
inc edi
|
||||||
add dword[ebp-8],4
|
add dword[ebp-8],4
|
||||||
.150:
|
.3:
|
||||||
cmp edi,[ebp+32] ;sizes_length
|
cmp edi,[ebp+32] ;sizes_length
|
||||||
jb .cycle_0
|
jb .cycle_0
|
||||||
;create errors array
|
;create errors array
|
||||||
@@ -349,7 +358,7 @@ f_2_0:
|
|||||||
f_1_0:
|
f_1_0:
|
||||||
dd 1.0
|
dd 1.0
|
||||||
|
|
||||||
;заполнение случайными числами
|
;random number filling
|
||||||
;+ 8 NeuralNetwork* o
|
;+ 8 NeuralNetwork* o
|
||||||
align 16
|
align 16
|
||||||
NNP_Reset:
|
NNP_Reset:
|
||||||
@@ -413,7 +422,7 @@ NNP_Reset:
|
|||||||
pop ebp
|
pop ebp
|
||||||
ret 4
|
ret 4
|
||||||
|
|
||||||
;расчет входных и выходных нейронов
|
;calculation of input and output neurons
|
||||||
;+ 8 NeuralNetwork* o
|
;+ 8 NeuralNetwork* o
|
||||||
;+12 double* inputs
|
;+12 double* inputs
|
||||||
align 16
|
align 16
|
||||||
@@ -508,7 +517,7 @@ NNP_BackPropagation:
|
|||||||
add edi,[esi+NeuralNetwork.layers]
|
add edi,[esi+NeuralNetwork.layers]
|
||||||
xor ebx,ebx ;i=0
|
xor ebx,ebx ;i=0
|
||||||
mov eax,[ebp+12] ;eax = targets[]
|
mov eax,[ebp+12] ;eax = targets[]
|
||||||
jmp .180
|
jmp .1
|
||||||
align 4
|
align 4
|
||||||
.cycle_0:
|
.cycle_0:
|
||||||
mov edx,[edi+Layer.neurons]
|
mov edx,[edi+Layer.neurons]
|
||||||
@@ -518,7 +527,7 @@ align 4
|
|||||||
fstp qword[ecx+8*ebx]
|
fstp qword[ecx+8*ebx]
|
||||||
inc ebx
|
inc ebx
|
||||||
add eax,8
|
add eax,8
|
||||||
.180:
|
.1:
|
||||||
cmp ebx,[edi+Layer.c_size]
|
cmp ebx,[edi+Layer.c_size]
|
||||||
jb .cycle_0
|
jb .cycle_0
|
||||||
dec dword[ebp-4] ;k--
|
dec dword[ebp-4] ;k--
|
||||||
@@ -528,7 +537,7 @@ align 4
|
|||||||
.cycle_1:
|
.cycle_1:
|
||||||
sub edi,sizeof.Layer
|
sub edi,sizeof.Layer
|
||||||
xor ebx,ebx ;i=0
|
xor ebx,ebx ;i=0
|
||||||
jmp .186
|
jmp .2
|
||||||
align 4
|
align 4
|
||||||
.cycle_2:
|
.cycle_2:
|
||||||
mov eax,[edi+sizeof.Layer+Layer.neurons]
|
mov eax,[edi+sizeof.Layer+Layer.neurons]
|
||||||
@@ -541,12 +550,12 @@ align 4
|
|||||||
mov edx,[esi+NeuralNetwork.gradients]
|
mov edx,[esi+NeuralNetwork.gradients]
|
||||||
fstp qword[edx+8*ebx]
|
fstp qword[edx+8*ebx]
|
||||||
inc ebx
|
inc ebx
|
||||||
.186:
|
.2:
|
||||||
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
||||||
jb .cycle_2
|
jb .cycle_2
|
||||||
mov edx,[esi+NeuralNetwork.deltas]
|
mov edx,[esi+NeuralNetwork.deltas]
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
jmp .189
|
jmp .3
|
||||||
align 4
|
align 4
|
||||||
.cycle_3:
|
.cycle_3:
|
||||||
mov eax,[edi+Layer.c_size]
|
mov eax,[edi+Layer.c_size]
|
||||||
@@ -556,7 +565,7 @@ align 4
|
|||||||
pop ecx
|
pop ecx
|
||||||
mov dword[edx],eax
|
mov dword[edx],eax
|
||||||
xor eax,eax ;j=0
|
xor eax,eax ;j=0
|
||||||
jmp .191
|
jmp @f
|
||||||
align 4
|
align 4
|
||||||
.cycle_4:
|
.cycle_4:
|
||||||
mov ecx,[esi+NeuralNetwork.gradients]
|
mov ecx,[esi+NeuralNetwork.gradients]
|
||||||
@@ -566,16 +575,16 @@ align 4
|
|||||||
mov ecx,[edx]
|
mov ecx,[edx]
|
||||||
fstp qword[ecx+8*eax]
|
fstp qword[ecx+8*eax]
|
||||||
inc eax
|
inc eax
|
||||||
.191:
|
@@:
|
||||||
cmp eax,[edi+Layer.c_size]
|
cmp eax,[edi+Layer.c_size]
|
||||||
jb .cycle_4
|
jb .cycle_4
|
||||||
inc ebx
|
inc ebx
|
||||||
add edx,4
|
add edx,4
|
||||||
.189:
|
.3:
|
||||||
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
||||||
jb .cycle_3
|
jb .cycle_3
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
jmp .195
|
jmp .4
|
||||||
align 4
|
align 4
|
||||||
.cycle_5:
|
.cycle_5:
|
||||||
mov eax,[esi+NeuralNetwork.errorsNext]
|
mov eax,[esi+NeuralNetwork.errorsNext]
|
||||||
@@ -583,7 +592,7 @@ align 4
|
|||||||
mov dword[eax+8*ebx],edx
|
mov dword[eax+8*ebx],edx
|
||||||
mov dword[eax+8*ebx+4],edx
|
mov dword[eax+8*ebx+4],edx
|
||||||
xor eax,eax ;j=0
|
xor eax,eax ;j=0
|
||||||
jmp .197
|
jmp @f
|
||||||
align 4
|
align 4
|
||||||
.cycle_6:
|
.cycle_6:
|
||||||
mov edx,[edi+Layer.weights]
|
mov edx,[edi+Layer.weights]
|
||||||
@@ -595,11 +604,11 @@ align 4
|
|||||||
fadd qword[ecx+8*ebx]
|
fadd qword[ecx+8*ebx]
|
||||||
fstp qword[ecx+8*ebx]
|
fstp qword[ecx+8*ebx]
|
||||||
inc eax
|
inc eax
|
||||||
.197:
|
@@:
|
||||||
cmp eax,[edi+sizeof.Layer+Layer.c_size]
|
cmp eax,[edi+sizeof.Layer+Layer.c_size]
|
||||||
jb .cycle_6
|
jb .cycle_6
|
||||||
inc ebx
|
inc ebx
|
||||||
.195:
|
.4:
|
||||||
cmp ebx,[edi]
|
cmp ebx,[edi]
|
||||||
jb .cycle_5
|
jb .cycle_5
|
||||||
;copy errors to next level
|
;copy errors to next level
|
||||||
@@ -610,7 +619,7 @@ align 4
|
|||||||
mov eax,[esi+NeuralNetwork.deltas]
|
mov eax,[esi+NeuralNetwork.deltas]
|
||||||
mov dword[ebp-12],eax
|
mov dword[ebp-12],eax
|
||||||
xor ebx,ebx ;i=0
|
xor ebx,ebx ;i=0
|
||||||
jmp .201
|
jmp .6
|
||||||
align 4
|
align 4
|
||||||
.cycle_7:
|
.cycle_7:
|
||||||
mov ecx,[esi+NeuralNetwork.gradients]
|
mov ecx,[esi+NeuralNetwork.gradients]
|
||||||
@@ -620,7 +629,7 @@ align 4
|
|||||||
fstp qword[eax+8*ebx]
|
fstp qword[eax+8*ebx]
|
||||||
xor eax,eax ;j=0
|
xor eax,eax ;j=0
|
||||||
mov edx,[ebp-12] ;edx = deltas[i]
|
mov edx,[ebp-12] ;edx = deltas[i]
|
||||||
jmp .203
|
jmp .5
|
||||||
align 4
|
align 4
|
||||||
.cycle_8:
|
.cycle_8:
|
||||||
; mov ecx,[edx]
|
; mov ecx,[edx]
|
||||||
@@ -656,7 +665,7 @@ align 4
|
|||||||
; pop edx
|
; pop edx
|
||||||
;@@:
|
;@@:
|
||||||
inc eax
|
inc eax
|
||||||
.203:
|
.5:
|
||||||
cmp eax,[edi+Layer.c_size]
|
cmp eax,[edi+Layer.c_size]
|
||||||
jb .cycle_8
|
jb .cycle_8
|
||||||
mov eax,[ebp-12]
|
mov eax,[ebp-12]
|
||||||
@@ -664,7 +673,7 @@ align 4
|
|||||||
pop ecx
|
pop ecx
|
||||||
inc ebx
|
inc ebx
|
||||||
add dword[ebp-12],4
|
add dword[ebp-12],4
|
||||||
.201:
|
.6:
|
||||||
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
||||||
jb .cycle_7
|
jb .cycle_7
|
||||||
dec dword[ebp-4]
|
dec dword[ebp-4]
|
||||||
@@ -693,8 +702,7 @@ NNP_GetMemData:
|
|||||||
jne .end_f
|
jne .end_f
|
||||||
mov esi,[ebp+16]
|
mov esi,[ebp+16]
|
||||||
mov byte[esi],0
|
mov byte[esi],0
|
||||||
stdcall [_strcat], esi,txt_QlearningRateQ_
|
stdcall str_cat, esi,txt_QlearningRateQ_
|
||||||
add esp,8
|
|
||||||
push 1
|
push 1
|
||||||
push PRECISION
|
push PRECISION
|
||||||
mov eax,[ebp+8]
|
mov eax,[ebp+8]
|
||||||
@@ -702,12 +710,9 @@ NNP_GetMemData:
|
|||||||
push dword[eax+NeuralNetwork.learningRate]
|
push dword[eax+NeuralNetwork.learningRate]
|
||||||
call @@DoubleToStr$qduso
|
call @@DoubleToStr$qduso
|
||||||
add esp,16
|
add esp,16
|
||||||
stdcall [_strcat], esi,eax
|
stdcall str_cat, esi,eax
|
||||||
add esp,8
|
stdcall str_cat, esi,txt_zap_nl
|
||||||
stdcall [_strcat], esi,txt_zap_nl
|
stdcall str_cat, esi,txt_Qlayers_lengthQ
|
||||||
add esp,8
|
|
||||||
stdcall [_strcat], esi,txt_Qlayers_lengthQ
|
|
||||||
add esp,8
|
|
||||||
push 1
|
push 1
|
||||||
push 0
|
push 0
|
||||||
mov ecx,[ebp+8]
|
mov ecx,[ebp+8]
|
||||||
@@ -716,23 +721,18 @@ NNP_GetMemData:
|
|||||||
fstp qword[esp]
|
fstp qword[esp]
|
||||||
call @@DoubleToStr$qduso
|
call @@DoubleToStr$qduso
|
||||||
add esp,16
|
add esp,16
|
||||||
stdcall [_strcat], esi,eax
|
stdcall str_cat, esi,eax
|
||||||
add esp,8
|
stdcall str_cat, esi,txt_zap_nl
|
||||||
stdcall [_strcat], esi,txt_zap_nl
|
stdcall str_cat, esi,txt_QlayersQ
|
||||||
add esp,8
|
|
||||||
.230:
|
|
||||||
stdcall [_strcat], esi,txt_QlayersQ
|
|
||||||
add esp,8
|
|
||||||
xor edi,edi ;i=0
|
xor edi,edi ;i=0
|
||||||
jmp .232
|
jmp .7
|
||||||
align 4
|
align 4
|
||||||
.cycle_0:
|
.cycle_0:
|
||||||
push esi
|
push esi
|
||||||
call @@strlen$qpxc
|
call @@strlen$qpxc
|
||||||
pop ecx
|
pop ecx
|
||||||
add esi,eax
|
add esi,eax
|
||||||
stdcall [_strcat], esi,txt_nl_t_Qc_sizeQ
|
stdcall str_cat, esi,txt_nl_t_Qc_sizeQ
|
||||||
add esp,8
|
|
||||||
mov ebx,edi
|
mov ebx,edi
|
||||||
imul ebx,sizeof.Layer
|
imul ebx,sizeof.Layer
|
||||||
push 1
|
push 1
|
||||||
@@ -748,10 +748,8 @@ align 4
|
|||||||
fstp qword[esp]
|
fstp qword[esp]
|
||||||
call @@DoubleToStr$qduso
|
call @@DoubleToStr$qduso
|
||||||
add esp,16
|
add esp,16
|
||||||
stdcall [_strcat], esi,eax
|
stdcall str_cat, esi,eax
|
||||||
add esp,8
|
stdcall str_cat, esi,txt_zap_nl_t_Qn_sizeQ
|
||||||
stdcall [_strcat], esi,txt_zap_nl_t_Qn_sizeQ
|
|
||||||
add esp,8
|
|
||||||
push 1
|
push 1
|
||||||
push 0
|
push 0
|
||||||
mov ecx,[ebp+8]
|
mov ecx,[ebp+8]
|
||||||
@@ -765,21 +763,17 @@ align 4
|
|||||||
fstp qword[esp]
|
fstp qword[esp]
|
||||||
call @@DoubleToStr$qduso
|
call @@DoubleToStr$qduso
|
||||||
add esp,16
|
add esp,16
|
||||||
stdcall [_strcat], esi,eax
|
stdcall str_cat, esi,eax
|
||||||
add esp,8
|
stdcall str_cat, esi,txt_zap_nl
|
||||||
stdcall [_strcat], esi,txt_zap_nl
|
stdcall str_cat, esi,txt_t_QneuronsQ
|
||||||
add esp,8
|
|
||||||
stdcall [_strcat], esi,txt_t_QneuronsQ
|
|
||||||
add esp,8
|
|
||||||
xor ebx,ebx ;j=0
|
xor ebx,ebx ;j=0
|
||||||
jmp .234
|
jmp .1
|
||||||
align 4
|
align 4
|
||||||
.cycle_1:
|
.cycle_1:
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
je .235
|
je @f
|
||||||
stdcall [_strcat], esi,txt_zap_sp
|
stdcall str_cat, esi,txt_zap_sp
|
||||||
add esp,8
|
@@:
|
||||||
.235:
|
|
||||||
push 1
|
push 1
|
||||||
push PRECISION
|
push PRECISION
|
||||||
mov eax,edi
|
mov eax,edi
|
||||||
@@ -791,29 +785,25 @@ align 4
|
|||||||
push dword[eax+8*ebx]
|
push dword[eax+8*ebx]
|
||||||
call @@DoubleToStr$qduso
|
call @@DoubleToStr$qduso
|
||||||
add esp,16
|
add esp,16
|
||||||
stdcall [_strcat], esi,eax
|
stdcall str_cat, esi,eax
|
||||||
add esp,8
|
|
||||||
inc ebx
|
inc ebx
|
||||||
.234:
|
.1:
|
||||||
mov ecx,edi
|
mov ecx,edi
|
||||||
imul ecx,sizeof.Layer
|
imul ecx,sizeof.Layer
|
||||||
mov eax,[ebp+8]
|
mov eax,[ebp+8]
|
||||||
add ecx,[eax+NeuralNetwork.layers]
|
add ecx,[eax+NeuralNetwork.layers]
|
||||||
cmp ebx,[ecx+Layer.c_size]
|
cmp ebx,[ecx+Layer.c_size]
|
||||||
jb .cycle_1
|
jb .cycle_1
|
||||||
stdcall [_strcat], esi,txt_sqbr_zap_nl
|
stdcall str_cat, esi,txt_sqbr_zap_nl
|
||||||
add esp,8
|
stdcall str_cat, esi,txt_t_QbiasesQ
|
||||||
stdcall [_strcat], esi,txt_t_QbiasesQ
|
|
||||||
add esp,8
|
|
||||||
xor ebx,ebx ;j=0
|
xor ebx,ebx ;j=0
|
||||||
jmp .238
|
jmp .2
|
||||||
align 4
|
align 4
|
||||||
.cycle_2:
|
.cycle_2:
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
je .239
|
je @f
|
||||||
stdcall [_strcat], esi,txt_zap_sp
|
stdcall str_cat, esi,txt_zap_sp
|
||||||
add esp,8
|
@@:
|
||||||
.239:
|
|
||||||
push 1
|
push 1
|
||||||
push PRECISION
|
push PRECISION
|
||||||
mov eax,edi
|
mov eax,edi
|
||||||
@@ -825,43 +815,38 @@ align 4
|
|||||||
push dword[eax+8*ebx]
|
push dword[eax+8*ebx]
|
||||||
call @@DoubleToStr$qduso
|
call @@DoubleToStr$qduso
|
||||||
add esp,16
|
add esp,16
|
||||||
stdcall [_strcat], esi,eax
|
stdcall str_cat, esi,eax
|
||||||
add esp,8
|
|
||||||
inc ebx
|
inc ebx
|
||||||
.238:
|
.2:
|
||||||
mov ecx,edi
|
mov ecx,edi
|
||||||
imul ecx,sizeof.Layer
|
imul ecx,sizeof.Layer
|
||||||
mov eax,[ebp+8]
|
mov eax,[ebp+8]
|
||||||
add ecx,[eax+NeuralNetwork.layers]
|
add ecx,[eax+NeuralNetwork.layers]
|
||||||
cmp ebx,[ecx+Layer.c_size]
|
cmp ebx,[ecx+Layer.c_size]
|
||||||
jb .cycle_2
|
jb .cycle_2
|
||||||
stdcall [_strcat], esi,txt_sqbr_zap_t_QweightsQ
|
stdcall str_cat, esi,txt_sqbr_zap_t_QweightsQ
|
||||||
add esp,8
|
|
||||||
mov eax,[ebp+8]
|
mov eax,[ebp+8]
|
||||||
mov ecx,edi
|
mov ecx,edi
|
||||||
imul ecx,sizeof.Layer
|
imul ecx,sizeof.Layer
|
||||||
add ecx,[eax+NeuralNetwork.layers]
|
add ecx,[eax+NeuralNetwork.layers]
|
||||||
cmp dword[ecx+Layer.n_size],0
|
cmp dword[ecx+Layer.n_size],0
|
||||||
je .241
|
je .6
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
jmp .243
|
jmp .5
|
||||||
.242:
|
.cycle_3:
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
je .244
|
je @f
|
||||||
stdcall [_strcat], esi,txt_zap_nl_t_t
|
stdcall str_cat, esi,txt_zap_nl_t_t
|
||||||
add esp,8
|
@@:
|
||||||
.244:
|
stdcall str_cat, esi,txt_sqbro
|
||||||
stdcall [_strcat], esi,txt_sqbro
|
|
||||||
add esp,8
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov dword[ebp-4],eax
|
mov dword[ebp-4],eax
|
||||||
jmp .246
|
jmp .4
|
||||||
.245:
|
.3:
|
||||||
cmp dword[ebp-4],0
|
cmp dword[ebp-4],0
|
||||||
je .247
|
je @f
|
||||||
stdcall [_strcat], esi,txt_zap_sp
|
stdcall str_cat, esi,txt_zap_sp
|
||||||
add esp,8
|
@@:
|
||||||
.247:
|
|
||||||
push 1
|
push 1
|
||||||
push PRECISION
|
push PRECISION
|
||||||
mov edx,edi
|
mov edx,edi
|
||||||
@@ -875,43 +860,39 @@ align 4
|
|||||||
push dword[ecx+8*eax]
|
push dword[ecx+8*eax]
|
||||||
@@:
|
@@:
|
||||||
call @@DoubleToStr$qduso
|
call @@DoubleToStr$qduso
|
||||||
dec dword[esp+8] ;уменьшаем PRECISION
|
dec dword[esp+8] ;decrease PRECISION
|
||||||
jz @f ;для избежания зацикливания
|
jz @f ;to avoid looping
|
||||||
cmp word[eax],'#'
|
cmp word[eax],'#'
|
||||||
je @b ;если число не поместилось пробуем перевести с меньшей точностью
|
je @b ;if the number does not fit, we try to translate with less precision
|
||||||
@@:
|
@@:
|
||||||
add esp,16
|
add esp,16
|
||||||
stdcall [_strcat], esi,eax
|
stdcall str_cat, esi,eax
|
||||||
add esp,8
|
|
||||||
inc dword[ebp-4]
|
inc dword[ebp-4]
|
||||||
.246:
|
.4:
|
||||||
mov ecx,edi
|
mov ecx,edi
|
||||||
imul ecx,sizeof.Layer
|
imul ecx,sizeof.Layer
|
||||||
mov eax,[ebp+8]
|
mov eax,[ebp+8]
|
||||||
add ecx,[eax+NeuralNetwork.layers]
|
add ecx,[eax+NeuralNetwork.layers]
|
||||||
mov ecx,[ecx+Layer.n_size]
|
mov ecx,[ecx+Layer.n_size]
|
||||||
cmp ecx,[ebp-4]
|
cmp ecx,[ebp-4]
|
||||||
ja .245
|
ja .3
|
||||||
stdcall [_strcat], esi,txt_sqbr
|
stdcall str_cat, esi,txt_sqbr
|
||||||
add esp,8
|
|
||||||
inc ebx
|
inc ebx
|
||||||
.243:
|
.5:
|
||||||
mov eax,edi
|
mov eax,edi
|
||||||
imul eax,sizeof.Layer
|
imul eax,sizeof.Layer
|
||||||
mov ecx,[ebp+8]
|
mov ecx,[ebp+8]
|
||||||
add eax,[ecx+NeuralNetwork.layers]
|
add eax,[ecx+NeuralNetwork.layers]
|
||||||
cmp ebx,[eax+Layer.c_size]
|
cmp ebx,[eax+Layer.c_size]
|
||||||
jb .242
|
jb .cycle_3
|
||||||
.241:
|
.6:
|
||||||
stdcall [_strcat], esi,txt_sqbr_fbr_zap
|
stdcall str_cat, esi,txt_sqbr_fbr_zap
|
||||||
add esp,8
|
|
||||||
inc edi
|
inc edi
|
||||||
.232:
|
.7:
|
||||||
mov eax,[ebp+8]
|
mov eax,[ebp+8]
|
||||||
cmp edi,[eax+NeuralNetwork.layers_length]
|
cmp edi,[eax+NeuralNetwork.layers_length]
|
||||||
jb .cycle_0
|
jb .cycle_0
|
||||||
stdcall [_strcat], esi,txt_nl_t_sqbr
|
stdcall str_cat, esi,txt_nl_t_sqbr
|
||||||
add esp,8
|
|
||||||
.end_f:
|
.end_f:
|
||||||
pop edi esi ebx
|
pop edi esi ebx
|
||||||
mov esp,ebp
|
mov esp,ebp
|
||||||
@@ -963,12 +944,11 @@ NNP_SetMemData:
|
|||||||
mov eax,[ebp+16]
|
mov eax,[ebp+16]
|
||||||
mov edx,[ebp+12]
|
mov edx,[ebp+12]
|
||||||
; cmp edx,NNP_FF_BIN
|
; cmp edx,NNP_FF_BIN
|
||||||
; jne .191
|
; jne @f
|
||||||
;...
|
;...
|
||||||
;.191:
|
;@@:
|
||||||
cmp edx,NNP_FF_JSON
|
cmp edx,NNP_FF_JSON
|
||||||
jne .198
|
jne .9
|
||||||
.199:
|
|
||||||
stdcall @@strstr$qpxct1, eax,txt_learningRate
|
stdcall @@strstr$qpxct1, eax,txt_learningRate
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
@@ -976,27 +956,27 @@ NNP_SetMemData:
|
|||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .200
|
jne @f
|
||||||
mov eax,1
|
mov eax,1
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.200:
|
@@:
|
||||||
stdcall @@strchr$qpxci, esi,':'
|
stdcall @@strchr$qpxci, esi,':'
|
||||||
add esp,8
|
add esp,8
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
jne .201
|
jne @f
|
||||||
mov eax,2
|
mov eax,2
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.201:
|
@@:
|
||||||
inc ebx
|
inc ebx
|
||||||
stdcall @@strchr$qpxci, esi,','
|
stdcall @@strchr$qpxci, esi,','
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .202
|
jne @f
|
||||||
mov eax,3
|
mov eax,3
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.202:
|
@@:
|
||||||
mov byte[esi],0
|
mov byte[esi],0
|
||||||
inc esi
|
inc esi
|
||||||
stdcall @@StrToInt$qpc, ebx
|
stdcall @@StrToInt$qpc, ebx
|
||||||
@@ -1008,38 +988,38 @@ NNP_SetMemData:
|
|||||||
mov eax,[ebp+8]
|
mov eax,[ebp+8]
|
||||||
mov edx,[eax+12]
|
mov edx,[eax+12]
|
||||||
cmp edx,[ebp-4]
|
cmp edx,[ebp-4]
|
||||||
je .203
|
je @f
|
||||||
mov eax,txt_err_layers_neq
|
mov eax,txt_err_layers_neq
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.203:
|
@@:
|
||||||
xor edi,edi ;i=0
|
xor edi,edi ;i=0
|
||||||
jmp .205
|
jmp .8
|
||||||
.204: ;for(i=0;i<o->layers_length;i++)
|
.cycle_0: ;for(i=0;i<o->layers_length;i++)
|
||||||
stdcall @@strstr$qpxct1, esi,txt_c_size
|
stdcall @@strstr$qpxct1, esi,txt_c_size
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .206
|
jne @f
|
||||||
mov eax,txt_err_c_size
|
mov eax,txt_err_c_size
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.206:
|
@@:
|
||||||
stdcall @@strchr$qpxci, esi,':'
|
stdcall @@strchr$qpxci, esi,':'
|
||||||
add esp,8
|
add esp,8
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
jne .207
|
jne @f
|
||||||
mov eax,6
|
mov eax,6
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.207:
|
@@:
|
||||||
inc ebx
|
inc ebx
|
||||||
stdcall @@strchr$qpxci, esi,','
|
stdcall @@strchr$qpxci, esi,','
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .208
|
jne @f
|
||||||
mov eax,7
|
mov eax,7
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.208:
|
@@:
|
||||||
mov byte[esi],0
|
mov byte[esi],0
|
||||||
inc esi
|
inc esi
|
||||||
stdcall @@StrToInt$qpc, ebx
|
stdcall @@StrToInt$qpc, ebx
|
||||||
@@ -1049,27 +1029,27 @@ NNP_SetMemData:
|
|||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .209
|
jne @f
|
||||||
mov eax,8
|
mov eax,8
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.209:
|
@@:
|
||||||
stdcall @@strchr$qpxci, esi,':'
|
stdcall @@strchr$qpxci, esi,':'
|
||||||
add esp,8
|
add esp,8
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
jne .210
|
jne @f
|
||||||
mov eax,9
|
mov eax,9
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.210:
|
@@:
|
||||||
inc ebx
|
inc ebx
|
||||||
stdcall @@strchr$qpxci, esi,','
|
stdcall @@strchr$qpxci, esi,','
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .211
|
jne @f
|
||||||
mov eax,10
|
mov eax,10
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.211:
|
@@:
|
||||||
mov byte[esi],0
|
mov byte[esi],0
|
||||||
inc esi
|
inc esi
|
||||||
stdcall @@StrToInt$qpc,ebx
|
stdcall @@StrToInt$qpc,ebx
|
||||||
@@ -1081,11 +1061,11 @@ NNP_SetMemData:
|
|||||||
add eax,[edx+NeuralNetwork.layers]
|
add eax,[edx+NeuralNetwork.layers]
|
||||||
mov edx,[eax+Layer.c_size]
|
mov edx,[eax+Layer.c_size]
|
||||||
cmp edx,[ebp-4]
|
cmp edx,[ebp-4]
|
||||||
jne .213
|
jne @f
|
||||||
mov edx,[eax+Layer.n_size]
|
mov edx,[eax+Layer.n_size]
|
||||||
cmp edx,[ebp-8]
|
cmp edx,[ebp-8]
|
||||||
je .214
|
je .1
|
||||||
.213:
|
@@:
|
||||||
mov ecx,[ebp+8]
|
mov ecx,[ebp+8]
|
||||||
stdcall NNP_GetMaxLLen,ecx
|
stdcall NNP_GetMaxLLen,ecx
|
||||||
mov ecx,edi
|
mov ecx,edi
|
||||||
@@ -1106,10 +1086,10 @@ NNP_SetMemData:
|
|||||||
add eax,edx
|
add eax,edx
|
||||||
stdcall Layer_Create,eax
|
stdcall Layer_Create,eax
|
||||||
cmp ebx,[ebp-4] ;if(n>s || k>s)
|
cmp ebx,[ebp-4] ;if(n>s || k>s)
|
||||||
jb .215
|
jb @f
|
||||||
cmp ebx,[ebp-8]
|
cmp ebx,[ebp-8]
|
||||||
jae .214
|
jae .1
|
||||||
.215:
|
@@:
|
||||||
mov edx,[ebp+8]
|
mov edx,[ebp+8]
|
||||||
mov ecx,[edx+NeuralNetwork.errors]
|
mov ecx,[edx+NeuralNetwork.errors]
|
||||||
cmp ecx,[edx+NeuralNetwork.errorsNext]
|
cmp ecx,[edx+NeuralNetwork.errorsNext]
|
||||||
@@ -1135,45 +1115,45 @@ NNP_SetMemData:
|
|||||||
stdcall [mem.realloc], [edx+NeuralNetwork.deltas],ebx
|
stdcall [mem.realloc], [edx+NeuralNetwork.deltas],ebx
|
||||||
mov edx,[ebp+8]
|
mov edx,[ebp+8]
|
||||||
mov dword[edx+NeuralNetwork.deltas],eax
|
mov dword[edx+NeuralNetwork.deltas],eax
|
||||||
.214:
|
.1:
|
||||||
stdcall @@strstr$qpxct1, esi,txt_biases
|
stdcall @@strstr$qpxct1, esi,txt_biases
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .216
|
jne @f
|
||||||
mov eax,11
|
mov eax,11
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.216:
|
@@:
|
||||||
stdcall @@strchr$qpxci, esi,'['
|
stdcall @@strchr$qpxci, esi,'['
|
||||||
add esp,8
|
add esp,8
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
jne .217
|
jne @f
|
||||||
mov eax,txt_err_sqbrl_b1
|
mov eax,txt_err_sqbrl_b1
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.217:
|
@@:
|
||||||
inc ebx
|
inc ebx
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov dword[ebp-8],edx
|
mov dword[ebp-8],edx
|
||||||
jmp .219
|
jmp .4
|
||||||
.218:
|
.2:
|
||||||
dec edx
|
dec edx
|
||||||
cmp eax,edx
|
cmp eax,edx
|
||||||
jae .220
|
jae @f
|
||||||
stdcall @@strchr$qpxci, ebx,','
|
stdcall @@strchr$qpxci, ebx,','
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
jmp .221
|
jmp .3
|
||||||
.220:
|
@@:
|
||||||
stdcall @@strchr$qpxci, ebx,']'
|
stdcall @@strchr$qpxci, ebx,']'
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
.221:
|
.3:
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .222
|
jne @f
|
||||||
mov eax,13
|
mov eax,13
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.222:
|
@@:
|
||||||
mov byte[esi],0
|
mov byte[esi],0
|
||||||
stdcall @@StrToDouble$qpc,ebx
|
stdcall @@StrToDouble$qpc,ebx
|
||||||
pop ecx
|
pop ecx
|
||||||
@@ -1186,7 +1166,7 @@ NNP_SetMemData:
|
|||||||
mov edx,[eax+edx+Layer.biases]
|
mov edx,[eax+edx+Layer.biases]
|
||||||
fstp qword[edx+8*ecx]
|
fstp qword[edx+8*ecx]
|
||||||
inc dword[ebp-8]
|
inc dword[ebp-8]
|
||||||
.219:
|
.4:
|
||||||
mov edx,edi
|
mov edx,edi
|
||||||
imul edx,sizeof.Layer
|
imul edx,sizeof.Layer
|
||||||
mov ecx,[ebp+8]
|
mov ecx,[ebp+8]
|
||||||
@@ -1194,29 +1174,29 @@ NNP_SetMemData:
|
|||||||
mov edx,[edx+Layer.c_size]
|
mov edx,[edx+Layer.c_size]
|
||||||
mov eax,[ebp-8]
|
mov eax,[ebp-8]
|
||||||
cmp edx,eax
|
cmp edx,eax
|
||||||
ja .218
|
ja .2
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
stdcall @@strstr$qpxct1, esi,txt_weights
|
stdcall @@strstr$qpxct1, esi,txt_weights
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .224
|
jne @f
|
||||||
mov eax,14
|
mov eax,14
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.224:
|
@@:
|
||||||
stdcall @@strchr$qpxci, esi,'['
|
stdcall @@strchr$qpxci, esi,'['
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .225
|
jne @f
|
||||||
mov eax,txt_err_sqbrl_w1
|
mov eax,txt_err_sqbrl_w1
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.225:
|
@@:
|
||||||
inc esi
|
inc esi
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov dword[ebp-8],edx ;k=0
|
mov dword[ebp-8],edx ;k=0
|
||||||
jmp .227
|
jmp .7
|
||||||
.226: ;for(k=0;k<o->layers[i].c_size;k++)
|
.cycle_1: ;for(k=0;k<o->layers[i].c_size;k++)
|
||||||
|
|
||||||
mov eax,edi
|
mov eax,edi
|
||||||
imul eax,sizeof.Layer
|
imul eax,sizeof.Layer
|
||||||
@@ -1226,39 +1206,39 @@ NNP_SetMemData:
|
|||||||
or eax,eax
|
or eax,eax
|
||||||
jnz .end_null_we
|
jnz .end_null_we
|
||||||
inc dword[ebp-8] ;k++
|
inc dword[ebp-8] ;k++
|
||||||
jmp .227 ;if 'weights' is null array
|
jmp .7 ;if 'weights' is null array
|
||||||
.end_null_we:
|
.end_null_we:
|
||||||
|
|
||||||
stdcall @@strchr$qpxci, esi,'['
|
stdcall @@strchr$qpxci, esi,'['
|
||||||
add esp,8
|
add esp,8
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
test ebx,ebx
|
test ebx,ebx
|
||||||
jne .228
|
jne @f
|
||||||
mov eax,txt_err_sqbrl_w2
|
mov eax,txt_err_sqbrl_w2
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.228:
|
@@:
|
||||||
inc ebx
|
inc ebx
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov dword[ebp-12],edx ;j=0
|
mov dword[ebp-12],edx ;j=0
|
||||||
jmp .230
|
jmp .6
|
||||||
.229: ;for(j=0;j<o->layers[i].n_size;j++)
|
.cycle_2: ;for(j=0;j<o->layers[i].n_size;j++)
|
||||||
dec edx
|
dec edx
|
||||||
cmp eax,edx ;eax = j, edx = n_size-1
|
cmp eax,edx ;eax = j, edx = n_size-1
|
||||||
jae .231
|
jae @f
|
||||||
stdcall @@strchr$qpxci, ebx,','
|
stdcall @@strchr$qpxci, ebx,','
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
jmp .232
|
jmp .5
|
||||||
.231:
|
@@:
|
||||||
stdcall @@strchr$qpxci, ebx,']'
|
stdcall @@strchr$qpxci, ebx,']'
|
||||||
add esp,8
|
add esp,8
|
||||||
mov esi,eax
|
mov esi,eax
|
||||||
.232:
|
.5:
|
||||||
test esi,esi
|
test esi,esi
|
||||||
jne .233
|
jne @f
|
||||||
mov eax,txt_err_sqbrr_w2
|
mov eax,txt_err_sqbrr_w2
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.233:
|
@@:
|
||||||
mov byte[esi],0
|
mov byte[esi],0
|
||||||
stdcall @@StrToDouble$qpc,ebx
|
stdcall @@StrToDouble$qpc,ebx
|
||||||
pop ecx
|
pop ecx
|
||||||
@@ -1273,7 +1253,7 @@ NNP_SetMemData:
|
|||||||
mov edx,[ebp-12]
|
mov edx,[ebp-12]
|
||||||
fstp qword[eax+8*edx]
|
fstp qword[eax+8*edx]
|
||||||
inc dword[ebp-12]
|
inc dword[ebp-12]
|
||||||
.230:
|
.6:
|
||||||
mov edx,edi
|
mov edx,edi
|
||||||
imul edx,sizeof.Layer
|
imul edx,sizeof.Layer
|
||||||
mov ecx,[ebp+8]
|
mov ecx,[ebp+8]
|
||||||
@@ -1281,27 +1261,27 @@ NNP_SetMemData:
|
|||||||
mov edx,[edx+Layer.n_size]
|
mov edx,[edx+Layer.n_size]
|
||||||
mov eax,[ebp-12]
|
mov eax,[ebp-12]
|
||||||
cmp edx,eax
|
cmp edx,eax
|
||||||
ja .229
|
ja .cycle_2
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
inc dword[ebp-8]
|
inc dword[ebp-8]
|
||||||
.227:
|
.7:
|
||||||
mov eax,edi
|
mov eax,edi
|
||||||
imul eax,sizeof.Layer
|
imul eax,sizeof.Layer
|
||||||
mov edx,[ebp+8]
|
mov edx,[ebp+8]
|
||||||
add eax,[edx+NeuralNetwork.layers]
|
add eax,[edx+NeuralNetwork.layers]
|
||||||
mov eax,[eax+Layer.c_size]
|
mov eax,[eax+Layer.c_size]
|
||||||
cmp eax,[ebp-8]
|
cmp eax,[ebp-8]
|
||||||
ja .226
|
ja .cycle_1
|
||||||
inc edi
|
inc edi
|
||||||
.205:
|
.8:
|
||||||
mov edx,[ebp+8]
|
mov edx,[ebp+8]
|
||||||
cmp edi,[edx+NeuralNetwork.layers_length]
|
cmp edi,[edx+NeuralNetwork.layers_length]
|
||||||
jb .204
|
jb .cycle_0
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
jmp .193
|
jmp .end_f
|
||||||
.198:
|
.9:
|
||||||
mov eax,1000
|
mov eax,1000
|
||||||
.193:
|
.end_f:
|
||||||
pop edi esi ebx
|
pop edi esi ebx
|
||||||
mov esp,ebp
|
mov esp,ebp
|
||||||
pop ebp
|
pop ebp
|
||||||
@@ -1320,20 +1300,19 @@ Layer_Destroy:
|
|||||||
call @$bdele$qpv
|
call @$bdele$qpv
|
||||||
pop ecx
|
pop ecx
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
jmp .143
|
jmp @f
|
||||||
.142:
|
.cycle_1:
|
||||||
mov eax,[esi+Layer.weights]
|
mov eax,[esi+Layer.weights]
|
||||||
push dword[eax+4*ebx]
|
push dword[eax+4*ebx]
|
||||||
call @$bdele$qpv
|
call @$bdele$qpv
|
||||||
pop ecx
|
pop ecx
|
||||||
inc ebx
|
inc ebx
|
||||||
.143:
|
@@:
|
||||||
cmp ebx,[esi+Layer.c_size]
|
cmp ebx,[esi+Layer.c_size]
|
||||||
jb .142
|
jb .cycle_1
|
||||||
push dword[esi+Layer.weights]
|
push dword[esi+Layer.weights]
|
||||||
call @$bdele$qpv
|
call @$bdele$qpv
|
||||||
pop ecx
|
pop ecx
|
||||||
.145:
|
|
||||||
pop esi ebx ebp
|
pop esi ebx ebp
|
||||||
ret 4
|
ret 4
|
||||||
|
|
||||||
@@ -1344,17 +1323,17 @@ NNP_Destroy:
|
|||||||
push ebx esi
|
push ebx esi
|
||||||
mov esi,[ebp+8]
|
mov esi,[ebp+8]
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
jmp .232
|
jmp @f
|
||||||
.231:
|
.cycle_1:
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
imul eax,sizeof.Layer
|
imul eax,sizeof.Layer
|
||||||
add eax,[esi+NeuralNetwork.layers]
|
add eax,[esi+NeuralNetwork.layers]
|
||||||
push eax
|
push eax
|
||||||
call Layer_Destroy
|
call Layer_Destroy
|
||||||
inc ebx
|
inc ebx
|
||||||
.232:
|
@@:
|
||||||
cmp ebx,[esi+NeuralNetwork.layers_length]
|
cmp ebx,[esi+NeuralNetwork.layers_length]
|
||||||
jb .231
|
jb .cycle_1
|
||||||
push dword[esi+NeuralNetwork.layers]
|
push dword[esi+NeuralNetwork.layers]
|
||||||
call @$bdele$qpv
|
call @$bdele$qpv
|
||||||
pop ecx
|
pop ecx
|
||||||
@@ -1398,14 +1377,3 @@ EXPORTS:
|
|||||||
sz_getmemdata db 'NNP_GetMemData',0
|
sz_getmemdata db 'NNP_GetMemData',0
|
||||||
sz_setmemdata db 'NNP_SetMemData',0
|
sz_setmemdata db 'NNP_SetMemData',0
|
||||||
sz_destroy db 'NNP_Destroy',0
|
sz_destroy db 'NNP_Destroy',0
|
||||||
|
|
||||||
align 16
|
|
||||||
@IMPORT:
|
|
||||||
|
|
||||||
library \
|
|
||||||
libc, 'libc.obj'
|
|
||||||
|
|
||||||
import libc, \
|
|
||||||
_strcat, 'strcat',\
|
|
||||||
_exp, 'exp'
|
|
||||||
;_scanf, 'scanf',\ ;???
|
|
||||||
|
@@ -41,6 +41,7 @@ dd 1, start, init_end, end_mem, stack_top, params, 0
|
|||||||
include 'lang.inc' ; Language support for locales: ru_RU (CP866), es_ES, en_US.
|
include 'lang.inc' ; Language support for locales: ru_RU (CP866), es_ES, en_US.
|
||||||
include '../../macros.inc'
|
include '../../macros.inc'
|
||||||
include '../../proc32.inc'
|
include '../../proc32.inc'
|
||||||
|
include "../../string.inc"
|
||||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||||
include '../../dll.inc'
|
include '../../dll.inc'
|
||||||
;include '../../debug.inc'
|
;include '../../debug.inc'
|
||||||
@@ -369,6 +370,12 @@ endl
|
|||||||
|
|
||||||
mcall 30,4,,1
|
mcall 30,4,,1
|
||||||
jmp .n
|
jmp .n
|
||||||
|
@@:
|
||||||
|
stdcall string.length, pathOut
|
||||||
|
add eax, pathOut
|
||||||
|
cmpne [eax - 1], byte '/', @f
|
||||||
|
mov [eax - 1], byte 0
|
||||||
|
dec dword[edtUnpPath.size]
|
||||||
@@:
|
@@:
|
||||||
mcall 30,4,pathOut,1
|
mcall 30,4,pathOut,1
|
||||||
.n:
|
.n:
|
||||||
|
5
programs/games/flood-it/build.bat
Normal file
5
programs/games/flood-it/build.bat
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@del *.
|
||||||
|
@For /R %%i In (*.c) Do c-- "%%i"
|
||||||
|
@rename *.com *.
|
||||||
|
@pause
|
||||||
|
@del warning.txt
|
@@ -29,18 +29,16 @@ char BOARD_SIZES[] = "S\0L";
|
|||||||
|
|
||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
char *BUTTON_CAPTIONS[]={ " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [F2]", " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [F1]", " <20><>室 [Esc]", 0};
|
char *BUTTON_CAPTIONS[]={ " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [F2]", " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [F1]", " <20><>室 [Esc]", 0};
|
||||||
char CLICKS_TEXT[]=" <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: /";
|
char CLICKS_TEXT[]="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: /";
|
||||||
char LEVELS_TEXT[]=" <20><><EFBFBD><EFBFBD>:";
|
char LEVELS_TEXT[]=" <20><><EFBFBD><EFBFBD>:";
|
||||||
|
|
||||||
char HELP_WINDOW_CAPTION[]="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
char HELP_WINDOW_CAPTION[]="<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||||
char *HELP_TEXT[]={ "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Flood-it?",
|
char *HELP_TEXT[]={ "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Flood-it?",
|
||||||
"",
|
"",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥⮬ <20><> <20><>࠭<EFBFBD>祭<EFBFBD><EFBFBD><EFBFBD> <20><> 室<><E5AEA4>.",
|
"<EFBFBD>롥<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 梥<>, <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨪<EFBFBD><EFBFBD>. <20><><EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>稭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>孥<EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⪨. <20>롥<EFBFBD><EBA1A5><EFBFBD><EFBFBD> 梥<>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>",
|
"<EFBFBD>⨬ 梥⮬ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - ⠪ <20><> <20><><EFBFBD>ᮥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨪<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>, <20> <EFBFBD><EFBFBD><EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⨬ 梥⮬ - ⠪ <20><> <EFBFBD><EFBFBD><EFBFBD>ᮥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
"<EFBFBD><EFBFBD>ᥤ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⪨ ⮩ <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>᪨. <20><>墠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> <20>㦭<EFBFBD> <20><>",
|
||||||
"<EFBFBD><EFBFBD>ᥤ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⪨ ⮩ <20><> <20><><EFBFBD><EFBFBD>᪨. <20><>墠<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>㦭<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD>",
|
"<EFBFBD><EFBFBD>࠭<EFBFBD>祭<EFBFBD><EFBFBD><EFBFBD> <20><> 室<><E5AEA4>. <20><><EFBFBD><EFBFBD>㯭<EFBFBD> <20><><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><>᪨.",
|
||||||
"<EFBFBD><EFBFBD> 室<><E5AEA4>. <20><>蠣<EFBFBD><E8A0A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⥣<EFBFBD><E2A5A3> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਭ樯<E0A8AD><E6A8AF> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,",
|
|
||||||
"<EFBFBD>⮡<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!",
|
|
||||||
"",
|
"",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>蠬<EFBFBD>:",
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⠪<><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>蠬<EFBFBD>:",
|
||||||
"[Q] [W] [E]",
|
"[Q] [W] [E]",
|
||||||
@@ -59,7 +57,7 @@ char BOARD_SIZES[] = "S\0L";
|
|||||||
"vajutades nuppudele vasakul. Kui sa muudad v<>rvi pragusel alal,",
|
"vajutades nuppudele vasakul. Kui sa muudad v<>rvi pragusel alal,",
|
||||||
"siis iga kokkupuutuv sama v<>rv muutub samaks. Nii saad ujutada",
|
"siis iga kokkupuutuv sama v<>rv muutub samaks. Nii saad ujutada",
|
||||||
"teised alad m<>nguv<75>ljal <20>le. Valida saad 2 m<>nguv<75>lja suuruse",
|
"teised alad m<>nguv<75>ljal <20>le. Valida saad 2 m<>nguv<75>lja suuruse",
|
||||||
"vahel. Proovi v<>li <20>le ujutada etteandtud k<>ikude arvuga!",
|
"vahel.",
|
||||||
"",
|
"",
|
||||||
"M<EFBFBD>ngida saab ka klaviatuuriga:",
|
"M<EFBFBD>ngida saab ka klaviatuuriga:",
|
||||||
"[Q] [W] [E]",
|
"[Q] [W] [E]",
|
||||||
@@ -73,11 +71,10 @@ char BOARD_SIZES[] = "S\0L";
|
|||||||
char HELP_WINDOW_CAPTION[]="Help";
|
char HELP_WINDOW_CAPTION[]="Help";
|
||||||
char *HELP_TEXT[]={ "How to play Flood-it?",
|
char *HELP_TEXT[]={ "How to play Flood-it?",
|
||||||
"",
|
"",
|
||||||
"Flood the whole board with one color within the allowed steps.",
|
"You start from the TOP LEFT corner and progress by selecting one",
|
||||||
"You start from the top left corner and progress by selecting one",
|
|
||||||
"of the colored buttons on the left. When you change your current area",
|
"of the colored buttons on the left. When you change your current area",
|
||||||
"color, every adjacent square with the same color also changes, that",
|
"color, every adjacent square with the same color also changes, that",
|
||||||
"way you can flood other areas of the board. Select from 3 sizes of",
|
"way you can flood other areas of the board. Select from 2 sizes of",
|
||||||
"the board and try to flood-it in the least amount of steps!",
|
"the board and try to flood-it in the least amount of steps!",
|
||||||
"",
|
"",
|
||||||
"You can also play with keyboard:",
|
"You can also play with keyboard:",
|
||||||
|
Reference in New Issue
Block a user