Compare commits
3 Commits
b7e06a3ec7
...
9fc5f9bf44
Author | SHA1 | Date | |
---|---|---|---|
9fc5f9bf44 | |||
58e2d0b844 | |||
7720e38868 |
@@ -157,7 +157,7 @@ extra_files = {
|
||||
{"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/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/md2view/", "common/3d/md2view/*"},
|
||||
{"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
|
||||
@@ -631,6 +631,7 @@ tup.append_table(extra_files, {
|
||||
{"kolibrios/utils/calcplus", VAR_PROGS .. "/other/calcplus/calcplus"},
|
||||
{"kolibrios/utils/kfm/kfm", VAR_PROGS .. "/fs/kfm/trunk/kfm"},
|
||||
{"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.
|
||||
if build_type == "ru_RU" then tup.append_table(img_files, {
|
||||
|
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],
|
||||
];
|
@@ -32,7 +32,6 @@ section '.flat' code readable align 16
|
||||
include "..\..\..\KOSfuncs.inc"
|
||||
include "..\..\..\proc32.inc"
|
||||
include "..\..\..\macros.inc"
|
||||
include "..\..\..\dll.inc"
|
||||
include "..\..\..\bcc32\include\kos_func.inc"
|
||||
include "..\..\..\bcc32\include\kos_heap.inc"
|
||||
|
||||
@@ -44,9 +43,9 @@ include "..\..\..\bcc32\include\kos_heap.inc"
|
||||
@@StrToInt$qpc equ @StrToInt$qpc
|
||||
@@StrToDouble$qpc equ @StrToDouble$qpc
|
||||
|
||||
mem.alloc dd ? ;функция для выделения памяти
|
||||
mem.free dd ? ;функция для освобождения памяти
|
||||
mem.realloc dd ? ;функция для перераспределения памяти
|
||||
mem.alloc dd ? ;memory allocation function
|
||||
mem.free dd ? ;function to free up memory
|
||||
mem.realloc dd ? ;function for memory reallocation
|
||||
dll.load dd ?
|
||||
|
||||
PRECISION equ 16
|
||||
@@ -54,20 +53,20 @@ NNP_FF_BIN equ 0x6e6962
|
||||
NNP_FF_JSON equ 0x6e6f736a
|
||||
|
||||
struct Layer
|
||||
c_size dd ? ;+ 0 curent size - число нейронов в текущем слое
|
||||
n_size dd ? ;+ 4 next size - число нейронов на следующем слое
|
||||
c_size dd ? ;+ 0 curent size - number of neurons in the current layer
|
||||
n_size dd ? ;+ 4 next size - number of neurons in the next layer
|
||||
neurons dd ? ;+ 8 []
|
||||
biases dd ? ;+12 []
|
||||
weights dd ? ;+16 [][]
|
||||
ends
|
||||
|
||||
struct NeuralNetwork
|
||||
learningRate dq ? ;+ 0 скорость обучения
|
||||
layers dd ? ;+ 8 [] слои
|
||||
layers_length dd ? ;+12 число слоев
|
||||
activation dd ? ;+16 указатель на функцию активации
|
||||
derivative dd ? ;+20 указатель на функцию
|
||||
errors dd ? ;+24 массив для вычислений
|
||||
learningRate dq ? ;+ 0
|
||||
layers dd ? ;+ 8 []
|
||||
layers_length dd ? ;+12 number of layers
|
||||
activation dd ? ;+16 pointer to activation function
|
||||
derivative dd ? ;+20 function pointer
|
||||
errors dd ? ;+24 array for calculations
|
||||
errorsNext dd ? ;+28
|
||||
gradients dd ? ;+32
|
||||
deltas dd ? ;+36
|
||||
@@ -113,11 +112,6 @@ proc lib_init
|
||||
mov [mem.free], ebx
|
||||
mov [mem.realloc], ecx
|
||||
mov [dll.load], edx
|
||||
|
||||
or edx, edx
|
||||
jz @f
|
||||
invoke dll.load, @IMPORT
|
||||
@@:
|
||||
ret
|
||||
endp
|
||||
|
||||
@@ -137,6 +131,21 @@ Math_random:
|
||||
@@:
|
||||
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
|
||||
sigmoid:
|
||||
push ebp
|
||||
@@ -145,7 +154,7 @@ sigmoid:
|
||||
fld qword[ebp+8]
|
||||
fchs
|
||||
fstp qword[esp]
|
||||
call dword[_exp]
|
||||
call ieee754_exp
|
||||
add esp,8
|
||||
fadd dword[f_1_0]
|
||||
fdivr dword[f_1_0]
|
||||
@@ -190,7 +199,7 @@ Layer_Create:
|
||||
mov dword[esi+Layer.weights],eax
|
||||
xor ebx,ebx
|
||||
cmp edi,ebx
|
||||
jbe .end_f
|
||||
jbe .end_f
|
||||
@@:
|
||||
mov eax,[ebp+16]
|
||||
shl eax,3
|
||||
@@ -250,18 +259,18 @@ NNP_Create:
|
||||
mov eax,[ebp+28] ;sizes
|
||||
lea edx,[eax+4]
|
||||
mov dword[ebp-8],edx ;save &sizes[i+1]
|
||||
jmp .150
|
||||
jmp .3
|
||||
.cycle_0: ;for (i=0; i < sizes_length; i++)
|
||||
xor ecx,ecx
|
||||
mov dword[ebp-4],ecx ;nextSize = 0
|
||||
mov eax,[ebp+32] ;sizes_length
|
||||
dec eax
|
||||
cmp edi,eax
|
||||
jae .152
|
||||
jae @f
|
||||
mov edx,[ebp-8]
|
||||
mov ecx,[edx]
|
||||
mov dword[ebp-4],ecx ;nextSize = sizes[i+1]
|
||||
.152:
|
||||
@@:
|
||||
mov eax,[ebp-4]
|
||||
push eax
|
||||
mov edx,[ebp-8]
|
||||
@@ -277,7 +286,7 @@ NNP_Create:
|
||||
mov eax,[ebp-8]
|
||||
lea edx,[eax-4]
|
||||
mov dword[ebp-12],edx ;save &sizes[i]
|
||||
jmp .154
|
||||
jmp .2
|
||||
.cycle_1: ;for (j=0; j < sizes[i]; j++)
|
||||
call Math_random
|
||||
fmul dword[f_2_0]
|
||||
@@ -290,7 +299,7 @@ NNP_Create:
|
||||
fstp qword[ecx+8*esi]
|
||||
xor ebx,ebx ;k=0
|
||||
cmp ebx,[ebp-4]
|
||||
jae .157
|
||||
jae .1
|
||||
@@: ;for (k=0; k < nextSize; k++)
|
||||
call Math_random
|
||||
fmul dword[f_2_0]
|
||||
@@ -305,15 +314,15 @@ NNP_Create:
|
||||
inc ebx
|
||||
cmp ebx,[ebp-4]
|
||||
jb @b
|
||||
.157:
|
||||
.1:
|
||||
inc esi
|
||||
.154:
|
||||
.2:
|
||||
mov ecx,[ebp-12]
|
||||
cmp esi,[ecx]
|
||||
jb .cycle_1
|
||||
inc edi
|
||||
add dword[ebp-8],4
|
||||
.150:
|
||||
.3:
|
||||
cmp edi,[ebp+32] ;sizes_length
|
||||
jb .cycle_0
|
||||
;create errors array
|
||||
@@ -349,7 +358,7 @@ f_2_0:
|
||||
f_1_0:
|
||||
dd 1.0
|
||||
|
||||
;заполнение случайными числами
|
||||
;random number filling
|
||||
;+ 8 NeuralNetwork* o
|
||||
align 16
|
||||
NNP_Reset:
|
||||
@@ -413,7 +422,7 @@ NNP_Reset:
|
||||
pop ebp
|
||||
ret 4
|
||||
|
||||
;расчет входных и выходных нейронов
|
||||
;calculation of input and output neurons
|
||||
;+ 8 NeuralNetwork* o
|
||||
;+12 double* inputs
|
||||
align 16
|
||||
@@ -508,7 +517,7 @@ NNP_BackPropagation:
|
||||
add edi,[esi+NeuralNetwork.layers]
|
||||
xor ebx,ebx ;i=0
|
||||
mov eax,[ebp+12] ;eax = targets[]
|
||||
jmp .180
|
||||
jmp .1
|
||||
align 4
|
||||
.cycle_0:
|
||||
mov edx,[edi+Layer.neurons]
|
||||
@@ -518,7 +527,7 @@ align 4
|
||||
fstp qword[ecx+8*ebx]
|
||||
inc ebx
|
||||
add eax,8
|
||||
.180:
|
||||
.1:
|
||||
cmp ebx,[edi+Layer.c_size]
|
||||
jb .cycle_0
|
||||
dec dword[ebp-4] ;k--
|
||||
@@ -528,7 +537,7 @@ align 4
|
||||
.cycle_1:
|
||||
sub edi,sizeof.Layer
|
||||
xor ebx,ebx ;i=0
|
||||
jmp .186
|
||||
jmp .2
|
||||
align 4
|
||||
.cycle_2:
|
||||
mov eax,[edi+sizeof.Layer+Layer.neurons]
|
||||
@@ -541,12 +550,12 @@ align 4
|
||||
mov edx,[esi+NeuralNetwork.gradients]
|
||||
fstp qword[edx+8*ebx]
|
||||
inc ebx
|
||||
.186:
|
||||
.2:
|
||||
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
||||
jb .cycle_2
|
||||
mov edx,[esi+NeuralNetwork.deltas]
|
||||
xor ebx,ebx
|
||||
jmp .189
|
||||
jmp .3
|
||||
align 4
|
||||
.cycle_3:
|
||||
mov eax,[edi+Layer.c_size]
|
||||
@@ -556,7 +565,7 @@ align 4
|
||||
pop ecx
|
||||
mov dword[edx],eax
|
||||
xor eax,eax ;j=0
|
||||
jmp .191
|
||||
jmp @f
|
||||
align 4
|
||||
.cycle_4:
|
||||
mov ecx,[esi+NeuralNetwork.gradients]
|
||||
@@ -566,16 +575,16 @@ align 4
|
||||
mov ecx,[edx]
|
||||
fstp qword[ecx+8*eax]
|
||||
inc eax
|
||||
.191:
|
||||
@@:
|
||||
cmp eax,[edi+Layer.c_size]
|
||||
jb .cycle_4
|
||||
inc ebx
|
||||
add edx,4
|
||||
.189:
|
||||
.3:
|
||||
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
||||
jb .cycle_3
|
||||
xor ebx,ebx
|
||||
jmp .195
|
||||
jmp .4
|
||||
align 4
|
||||
.cycle_5:
|
||||
mov eax,[esi+NeuralNetwork.errorsNext]
|
||||
@@ -583,7 +592,7 @@ align 4
|
||||
mov dword[eax+8*ebx],edx
|
||||
mov dword[eax+8*ebx+4],edx
|
||||
xor eax,eax ;j=0
|
||||
jmp .197
|
||||
jmp @f
|
||||
align 4
|
||||
.cycle_6:
|
||||
mov edx,[edi+Layer.weights]
|
||||
@@ -595,11 +604,11 @@ align 4
|
||||
fadd qword[ecx+8*ebx]
|
||||
fstp qword[ecx+8*ebx]
|
||||
inc eax
|
||||
.197:
|
||||
@@:
|
||||
cmp eax,[edi+sizeof.Layer+Layer.c_size]
|
||||
jb .cycle_6
|
||||
inc ebx
|
||||
.195:
|
||||
.4:
|
||||
cmp ebx,[edi]
|
||||
jb .cycle_5
|
||||
;copy errors to next level
|
||||
@@ -610,7 +619,7 @@ align 4
|
||||
mov eax,[esi+NeuralNetwork.deltas]
|
||||
mov dword[ebp-12],eax
|
||||
xor ebx,ebx ;i=0
|
||||
jmp .201
|
||||
jmp .6
|
||||
align 4
|
||||
.cycle_7:
|
||||
mov ecx,[esi+NeuralNetwork.gradients]
|
||||
@@ -620,7 +629,7 @@ align 4
|
||||
fstp qword[eax+8*ebx]
|
||||
xor eax,eax ;j=0
|
||||
mov edx,[ebp-12] ;edx = deltas[i]
|
||||
jmp .203
|
||||
jmp .5
|
||||
align 4
|
||||
.cycle_8:
|
||||
; mov ecx,[edx]
|
||||
@@ -656,7 +665,7 @@ align 4
|
||||
; pop edx
|
||||
;@@:
|
||||
inc eax
|
||||
.203:
|
||||
.5:
|
||||
cmp eax,[edi+Layer.c_size]
|
||||
jb .cycle_8
|
||||
mov eax,[ebp-12]
|
||||
@@ -664,7 +673,7 @@ align 4
|
||||
pop ecx
|
||||
inc ebx
|
||||
add dword[ebp-12],4
|
||||
.201:
|
||||
.6:
|
||||
cmp ebx,[edi+sizeof.Layer+Layer.c_size]
|
||||
jb .cycle_7
|
||||
dec dword[ebp-4]
|
||||
@@ -693,8 +702,7 @@ NNP_GetMemData:
|
||||
jne .end_f
|
||||
mov esi,[ebp+16]
|
||||
mov byte[esi],0
|
||||
stdcall [_strcat], esi,txt_QlearningRateQ_
|
||||
add esp,8
|
||||
stdcall str_cat, esi,txt_QlearningRateQ_
|
||||
push 1
|
||||
push PRECISION
|
||||
mov eax,[ebp+8]
|
||||
@@ -702,12 +710,9 @@ NNP_GetMemData:
|
||||
push dword[eax+NeuralNetwork.learningRate]
|
||||
call @@DoubleToStr$qduso
|
||||
add esp,16
|
||||
stdcall [_strcat], esi,eax
|
||||
add esp,8
|
||||
stdcall [_strcat], esi,txt_zap_nl
|
||||
add esp,8
|
||||
stdcall [_strcat], esi,txt_Qlayers_lengthQ
|
||||
add esp,8
|
||||
stdcall str_cat, esi,eax
|
||||
stdcall str_cat, esi,txt_zap_nl
|
||||
stdcall str_cat, esi,txt_Qlayers_lengthQ
|
||||
push 1
|
||||
push 0
|
||||
mov ecx,[ebp+8]
|
||||
@@ -716,23 +721,18 @@ NNP_GetMemData:
|
||||
fstp qword[esp]
|
||||
call @@DoubleToStr$qduso
|
||||
add esp,16
|
||||
stdcall [_strcat], esi,eax
|
||||
add esp,8
|
||||
stdcall [_strcat], esi,txt_zap_nl
|
||||
add esp,8
|
||||
.230:
|
||||
stdcall [_strcat], esi,txt_QlayersQ
|
||||
add esp,8
|
||||
stdcall str_cat, esi,eax
|
||||
stdcall str_cat, esi,txt_zap_nl
|
||||
stdcall str_cat, esi,txt_QlayersQ
|
||||
xor edi,edi ;i=0
|
||||
jmp .232
|
||||
jmp .7
|
||||
align 4
|
||||
.cycle_0:
|
||||
push esi
|
||||
call @@strlen$qpxc
|
||||
pop ecx
|
||||
add esi,eax
|
||||
stdcall [_strcat], esi,txt_nl_t_Qc_sizeQ
|
||||
add esp,8
|
||||
stdcall str_cat, esi,txt_nl_t_Qc_sizeQ
|
||||
mov ebx,edi
|
||||
imul ebx,sizeof.Layer
|
||||
push 1
|
||||
@@ -748,10 +748,8 @@ align 4
|
||||
fstp qword[esp]
|
||||
call @@DoubleToStr$qduso
|
||||
add esp,16
|
||||
stdcall [_strcat], esi,eax
|
||||
add esp,8
|
||||
stdcall [_strcat], esi,txt_zap_nl_t_Qn_sizeQ
|
||||
add esp,8
|
||||
stdcall str_cat, esi,eax
|
||||
stdcall str_cat, esi,txt_zap_nl_t_Qn_sizeQ
|
||||
push 1
|
||||
push 0
|
||||
mov ecx,[ebp+8]
|
||||
@@ -765,21 +763,17 @@ align 4
|
||||
fstp qword[esp]
|
||||
call @@DoubleToStr$qduso
|
||||
add esp,16
|
||||
stdcall [_strcat], esi,eax
|
||||
add esp,8
|
||||
stdcall [_strcat], esi,txt_zap_nl
|
||||
add esp,8
|
||||
stdcall [_strcat], esi,txt_t_QneuronsQ
|
||||
add esp,8
|
||||
stdcall str_cat, esi,eax
|
||||
stdcall str_cat, esi,txt_zap_nl
|
||||
stdcall str_cat, esi,txt_t_QneuronsQ
|
||||
xor ebx,ebx ;j=0
|
||||
jmp .234
|
||||
jmp .1
|
||||
align 4
|
||||
.cycle_1:
|
||||
test ebx,ebx
|
||||
je .235
|
||||
stdcall [_strcat], esi,txt_zap_sp
|
||||
add esp,8
|
||||
.235:
|
||||
je @f
|
||||
stdcall str_cat, esi,txt_zap_sp
|
||||
@@:
|
||||
push 1
|
||||
push PRECISION
|
||||
mov eax,edi
|
||||
@@ -791,29 +785,25 @@ align 4
|
||||
push dword[eax+8*ebx]
|
||||
call @@DoubleToStr$qduso
|
||||
add esp,16
|
||||
stdcall [_strcat], esi,eax
|
||||
add esp,8
|
||||
stdcall str_cat, esi,eax
|
||||
inc ebx
|
||||
.234:
|
||||
.1:
|
||||
mov ecx,edi
|
||||
imul ecx,sizeof.Layer
|
||||
mov eax,[ebp+8]
|
||||
add ecx,[eax+NeuralNetwork.layers]
|
||||
cmp ebx,[ecx+Layer.c_size]
|
||||
jb .cycle_1
|
||||
stdcall [_strcat], esi,txt_sqbr_zap_nl
|
||||
add esp,8
|
||||
stdcall [_strcat], esi,txt_t_QbiasesQ
|
||||
add esp,8
|
||||
stdcall str_cat, esi,txt_sqbr_zap_nl
|
||||
stdcall str_cat, esi,txt_t_QbiasesQ
|
||||
xor ebx,ebx ;j=0
|
||||
jmp .238
|
||||
jmp .2
|
||||
align 4
|
||||
.cycle_2:
|
||||
test ebx,ebx
|
||||
je .239
|
||||
stdcall [_strcat], esi,txt_zap_sp
|
||||
add esp,8
|
||||
.239:
|
||||
je @f
|
||||
stdcall str_cat, esi,txt_zap_sp
|
||||
@@:
|
||||
push 1
|
||||
push PRECISION
|
||||
mov eax,edi
|
||||
@@ -825,43 +815,38 @@ align 4
|
||||
push dword[eax+8*ebx]
|
||||
call @@DoubleToStr$qduso
|
||||
add esp,16
|
||||
stdcall [_strcat], esi,eax
|
||||
add esp,8
|
||||
stdcall str_cat, esi,eax
|
||||
inc ebx
|
||||
.238:
|
||||
.2:
|
||||
mov ecx,edi
|
||||
imul ecx,sizeof.Layer
|
||||
mov eax,[ebp+8]
|
||||
add ecx,[eax+NeuralNetwork.layers]
|
||||
cmp ebx,[ecx+Layer.c_size]
|
||||
jb .cycle_2
|
||||
stdcall [_strcat], esi,txt_sqbr_zap_t_QweightsQ
|
||||
add esp,8
|
||||
stdcall str_cat, esi,txt_sqbr_zap_t_QweightsQ
|
||||
mov eax,[ebp+8]
|
||||
mov ecx,edi
|
||||
imul ecx,sizeof.Layer
|
||||
add ecx,[eax+NeuralNetwork.layers]
|
||||
cmp dword[ecx+Layer.n_size],0
|
||||
je .241
|
||||
je .6
|
||||
xor ebx,ebx
|
||||
jmp .243
|
||||
.242:
|
||||
jmp .5
|
||||
.cycle_3:
|
||||
test ebx,ebx
|
||||
je .244
|
||||
stdcall [_strcat], esi,txt_zap_nl_t_t
|
||||
add esp,8
|
||||
.244:
|
||||
stdcall [_strcat], esi,txt_sqbro
|
||||
add esp,8
|
||||
je @f
|
||||
stdcall str_cat, esi,txt_zap_nl_t_t
|
||||
@@:
|
||||
stdcall str_cat, esi,txt_sqbro
|
||||
xor eax,eax
|
||||
mov dword[ebp-4],eax
|
||||
jmp .246
|
||||
.245:
|
||||
jmp .4
|
||||
.3:
|
||||
cmp dword[ebp-4],0
|
||||
je .247
|
||||
stdcall [_strcat], esi,txt_zap_sp
|
||||
add esp,8
|
||||
.247:
|
||||
je @f
|
||||
stdcall str_cat, esi,txt_zap_sp
|
||||
@@:
|
||||
push 1
|
||||
push PRECISION
|
||||
mov edx,edi
|
||||
@@ -875,43 +860,39 @@ align 4
|
||||
push dword[ecx+8*eax]
|
||||
@@:
|
||||
call @@DoubleToStr$qduso
|
||||
dec dword[esp+8] ;уменьшаем PRECISION
|
||||
jz @f ;для избежания зацикливания
|
||||
dec dword[esp+8] ;decrease PRECISION
|
||||
jz @f ;to avoid looping
|
||||
cmp word[eax],'#'
|
||||
je @b ;если число не поместилось пробуем перевести с меньшей точностью
|
||||
je @b ;if the number does not fit, we try to translate with less precision
|
||||
@@:
|
||||
add esp,16
|
||||
stdcall [_strcat], esi,eax
|
||||
add esp,8
|
||||
stdcall str_cat, esi,eax
|
||||
inc dword[ebp-4]
|
||||
.246:
|
||||
.4:
|
||||
mov ecx,edi
|
||||
imul ecx,sizeof.Layer
|
||||
mov eax,[ebp+8]
|
||||
add ecx,[eax+NeuralNetwork.layers]
|
||||
mov ecx,[ecx+Layer.n_size]
|
||||
cmp ecx,[ebp-4]
|
||||
ja .245
|
||||
stdcall [_strcat], esi,txt_sqbr
|
||||
add esp,8
|
||||
ja .3
|
||||
stdcall str_cat, esi,txt_sqbr
|
||||
inc ebx
|
||||
.243:
|
||||
.5:
|
||||
mov eax,edi
|
||||
imul eax,sizeof.Layer
|
||||
mov ecx,[ebp+8]
|
||||
add eax,[ecx+NeuralNetwork.layers]
|
||||
cmp ebx,[eax+Layer.c_size]
|
||||
jb .242
|
||||
.241:
|
||||
stdcall [_strcat], esi,txt_sqbr_fbr_zap
|
||||
add esp,8
|
||||
jb .cycle_3
|
||||
.6:
|
||||
stdcall str_cat, esi,txt_sqbr_fbr_zap
|
||||
inc edi
|
||||
.232:
|
||||
.7:
|
||||
mov eax,[ebp+8]
|
||||
cmp edi,[eax+NeuralNetwork.layers_length]
|
||||
jb .cycle_0
|
||||
stdcall [_strcat], esi,txt_nl_t_sqbr
|
||||
add esp,8
|
||||
stdcall str_cat, esi,txt_nl_t_sqbr
|
||||
.end_f:
|
||||
pop edi esi ebx
|
||||
mov esp,ebp
|
||||
@@ -963,12 +944,11 @@ NNP_SetMemData:
|
||||
mov eax,[ebp+16]
|
||||
mov edx,[ebp+12]
|
||||
; cmp edx,NNP_FF_BIN
|
||||
; jne .191
|
||||
; jne @f
|
||||
;...
|
||||
;.191:
|
||||
;@@:
|
||||
cmp edx,NNP_FF_JSON
|
||||
jne .198
|
||||
.199:
|
||||
jne .9
|
||||
stdcall @@strstr$qpxct1, eax,txt_learningRate
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
@@ -976,27 +956,27 @@ NNP_SetMemData:
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .200
|
||||
jne @f
|
||||
mov eax,1
|
||||
jmp .193
|
||||
.200:
|
||||
jmp .end_f
|
||||
@@:
|
||||
stdcall @@strchr$qpxci, esi,':'
|
||||
add esp,8
|
||||
mov ebx,eax
|
||||
test ebx,ebx
|
||||
jne .201
|
||||
jne @f
|
||||
mov eax,2
|
||||
jmp .193
|
||||
.201:
|
||||
jmp .end_f
|
||||
@@:
|
||||
inc ebx
|
||||
stdcall @@strchr$qpxci, esi,','
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .202
|
||||
jne @f
|
||||
mov eax,3
|
||||
jmp .193
|
||||
.202:
|
||||
jmp .end_f
|
||||
@@:
|
||||
mov byte[esi],0
|
||||
inc esi
|
||||
stdcall @@StrToInt$qpc, ebx
|
||||
@@ -1008,38 +988,38 @@ NNP_SetMemData:
|
||||
mov eax,[ebp+8]
|
||||
mov edx,[eax+12]
|
||||
cmp edx,[ebp-4]
|
||||
je .203
|
||||
je @f
|
||||
mov eax,txt_err_layers_neq
|
||||
jmp .193
|
||||
.203:
|
||||
jmp .end_f
|
||||
@@:
|
||||
xor edi,edi ;i=0
|
||||
jmp .205
|
||||
.204: ;for(i=0;i<o->layers_length;i++)
|
||||
jmp .8
|
||||
.cycle_0: ;for(i=0;i<o->layers_length;i++)
|
||||
stdcall @@strstr$qpxct1, esi,txt_c_size
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .206
|
||||
jne @f
|
||||
mov eax,txt_err_c_size
|
||||
jmp .193
|
||||
.206:
|
||||
jmp .end_f
|
||||
@@:
|
||||
stdcall @@strchr$qpxci, esi,':'
|
||||
add esp,8
|
||||
mov ebx,eax
|
||||
test ebx,ebx
|
||||
jne .207
|
||||
jne @f
|
||||
mov eax,6
|
||||
jmp .193
|
||||
.207:
|
||||
jmp .end_f
|
||||
@@:
|
||||
inc ebx
|
||||
stdcall @@strchr$qpxci, esi,','
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .208
|
||||
jne @f
|
||||
mov eax,7
|
||||
jmp .193
|
||||
.208:
|
||||
jmp .end_f
|
||||
@@:
|
||||
mov byte[esi],0
|
||||
inc esi
|
||||
stdcall @@StrToInt$qpc, ebx
|
||||
@@ -1049,27 +1029,27 @@ NNP_SetMemData:
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .209
|
||||
jne @f
|
||||
mov eax,8
|
||||
jmp .193
|
||||
.209:
|
||||
jmp .end_f
|
||||
@@:
|
||||
stdcall @@strchr$qpxci, esi,':'
|
||||
add esp,8
|
||||
mov ebx,eax
|
||||
test ebx,ebx
|
||||
jne .210
|
||||
jne @f
|
||||
mov eax,9
|
||||
jmp .193
|
||||
.210:
|
||||
jmp .end_f
|
||||
@@:
|
||||
inc ebx
|
||||
stdcall @@strchr$qpxci, esi,','
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .211
|
||||
jne @f
|
||||
mov eax,10
|
||||
jmp .193
|
||||
.211:
|
||||
jmp .end_f
|
||||
@@:
|
||||
mov byte[esi],0
|
||||
inc esi
|
||||
stdcall @@StrToInt$qpc,ebx
|
||||
@@ -1081,11 +1061,11 @@ NNP_SetMemData:
|
||||
add eax,[edx+NeuralNetwork.layers]
|
||||
mov edx,[eax+Layer.c_size]
|
||||
cmp edx,[ebp-4]
|
||||
jne .213
|
||||
jne @f
|
||||
mov edx,[eax+Layer.n_size]
|
||||
cmp edx,[ebp-8]
|
||||
je .214
|
||||
.213:
|
||||
je .1
|
||||
@@:
|
||||
mov ecx,[ebp+8]
|
||||
stdcall NNP_GetMaxLLen,ecx
|
||||
mov ecx,edi
|
||||
@@ -1106,10 +1086,10 @@ NNP_SetMemData:
|
||||
add eax,edx
|
||||
stdcall Layer_Create,eax
|
||||
cmp ebx,[ebp-4] ;if(n>s || k>s)
|
||||
jb .215
|
||||
jb @f
|
||||
cmp ebx,[ebp-8]
|
||||
jae .214
|
||||
.215:
|
||||
jae .1
|
||||
@@:
|
||||
mov edx,[ebp+8]
|
||||
mov ecx,[edx+NeuralNetwork.errors]
|
||||
cmp ecx,[edx+NeuralNetwork.errorsNext]
|
||||
@@ -1135,45 +1115,45 @@ NNP_SetMemData:
|
||||
stdcall [mem.realloc], [edx+NeuralNetwork.deltas],ebx
|
||||
mov edx,[ebp+8]
|
||||
mov dword[edx+NeuralNetwork.deltas],eax
|
||||
.214:
|
||||
.1:
|
||||
stdcall @@strstr$qpxct1, esi,txt_biases
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .216
|
||||
jne @f
|
||||
mov eax,11
|
||||
jmp .193
|
||||
.216:
|
||||
jmp .end_f
|
||||
@@:
|
||||
stdcall @@strchr$qpxci, esi,'['
|
||||
add esp,8
|
||||
mov ebx,eax
|
||||
test ebx,ebx
|
||||
jne .217
|
||||
jne @f
|
||||
mov eax,txt_err_sqbrl_b1
|
||||
jmp .193
|
||||
.217:
|
||||
jmp .end_f
|
||||
@@:
|
||||
inc ebx
|
||||
xor edx,edx
|
||||
mov dword[ebp-8],edx
|
||||
jmp .219
|
||||
.218:
|
||||
jmp .4
|
||||
.2:
|
||||
dec edx
|
||||
cmp eax,edx
|
||||
jae .220
|
||||
jae @f
|
||||
stdcall @@strchr$qpxci, ebx,','
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
jmp .221
|
||||
.220:
|
||||
jmp .3
|
||||
@@:
|
||||
stdcall @@strchr$qpxci, ebx,']'
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
.221:
|
||||
.3:
|
||||
test esi,esi
|
||||
jne .222
|
||||
jne @f
|
||||
mov eax,13
|
||||
jmp .193
|
||||
.222:
|
||||
jmp .end_f
|
||||
@@:
|
||||
mov byte[esi],0
|
||||
stdcall @@StrToDouble$qpc,ebx
|
||||
pop ecx
|
||||
@@ -1186,7 +1166,7 @@ NNP_SetMemData:
|
||||
mov edx,[eax+edx+Layer.biases]
|
||||
fstp qword[edx+8*ecx]
|
||||
inc dword[ebp-8]
|
||||
.219:
|
||||
.4:
|
||||
mov edx,edi
|
||||
imul edx,sizeof.Layer
|
||||
mov ecx,[ebp+8]
|
||||
@@ -1194,29 +1174,29 @@ NNP_SetMemData:
|
||||
mov edx,[edx+Layer.c_size]
|
||||
mov eax,[ebp-8]
|
||||
cmp edx,eax
|
||||
ja .218
|
||||
ja .2
|
||||
mov esi,ebx
|
||||
stdcall @@strstr$qpxct1, esi,txt_weights
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .224
|
||||
jne @f
|
||||
mov eax,14
|
||||
jmp .193
|
||||
.224:
|
||||
jmp .end_f
|
||||
@@:
|
||||
stdcall @@strchr$qpxci, esi,'['
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
test esi,esi
|
||||
jne .225
|
||||
jne @f
|
||||
mov eax,txt_err_sqbrl_w1
|
||||
jmp .193
|
||||
.225:
|
||||
jmp .end_f
|
||||
@@:
|
||||
inc esi
|
||||
xor edx,edx
|
||||
mov dword[ebp-8],edx ;k=0
|
||||
jmp .227
|
||||
.226: ;for(k=0;k<o->layers[i].c_size;k++)
|
||||
jmp .7
|
||||
.cycle_1: ;for(k=0;k<o->layers[i].c_size;k++)
|
||||
|
||||
mov eax,edi
|
||||
imul eax,sizeof.Layer
|
||||
@@ -1226,39 +1206,39 @@ NNP_SetMemData:
|
||||
or eax,eax
|
||||
jnz .end_null_we
|
||||
inc dword[ebp-8] ;k++
|
||||
jmp .227 ;if 'weights' is null array
|
||||
jmp .7 ;if 'weights' is null array
|
||||
.end_null_we:
|
||||
|
||||
stdcall @@strchr$qpxci, esi,'['
|
||||
add esp,8
|
||||
mov ebx,eax
|
||||
test ebx,ebx
|
||||
jne .228
|
||||
jne @f
|
||||
mov eax,txt_err_sqbrl_w2
|
||||
jmp .193
|
||||
.228:
|
||||
jmp .end_f
|
||||
@@:
|
||||
inc ebx
|
||||
xor edx,edx
|
||||
mov dword[ebp-12],edx ;j=0
|
||||
jmp .230
|
||||
.229: ;for(j=0;j<o->layers[i].n_size;j++)
|
||||
jmp .6
|
||||
.cycle_2: ;for(j=0;j<o->layers[i].n_size;j++)
|
||||
dec edx
|
||||
cmp eax,edx ;eax = j, edx = n_size-1
|
||||
jae .231
|
||||
jae @f
|
||||
stdcall @@strchr$qpxci, ebx,','
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
jmp .232
|
||||
.231:
|
||||
jmp .5
|
||||
@@:
|
||||
stdcall @@strchr$qpxci, ebx,']'
|
||||
add esp,8
|
||||
mov esi,eax
|
||||
.232:
|
||||
.5:
|
||||
test esi,esi
|
||||
jne .233
|
||||
jne @f
|
||||
mov eax,txt_err_sqbrr_w2
|
||||
jmp .193
|
||||
.233:
|
||||
jmp .end_f
|
||||
@@:
|
||||
mov byte[esi],0
|
||||
stdcall @@StrToDouble$qpc,ebx
|
||||
pop ecx
|
||||
@@ -1273,7 +1253,7 @@ NNP_SetMemData:
|
||||
mov edx,[ebp-12]
|
||||
fstp qword[eax+8*edx]
|
||||
inc dword[ebp-12]
|
||||
.230:
|
||||
.6:
|
||||
mov edx,edi
|
||||
imul edx,sizeof.Layer
|
||||
mov ecx,[ebp+8]
|
||||
@@ -1281,27 +1261,27 @@ NNP_SetMemData:
|
||||
mov edx,[edx+Layer.n_size]
|
||||
mov eax,[ebp-12]
|
||||
cmp edx,eax
|
||||
ja .229
|
||||
ja .cycle_2
|
||||
mov esi,ebx
|
||||
inc dword[ebp-8]
|
||||
.227:
|
||||
.7:
|
||||
mov eax,edi
|
||||
imul eax,sizeof.Layer
|
||||
mov edx,[ebp+8]
|
||||
add eax,[edx+NeuralNetwork.layers]
|
||||
mov eax,[eax+Layer.c_size]
|
||||
cmp eax,[ebp-8]
|
||||
ja .226
|
||||
ja .cycle_1
|
||||
inc edi
|
||||
.205:
|
||||
.8:
|
||||
mov edx,[ebp+8]
|
||||
cmp edi,[edx+NeuralNetwork.layers_length]
|
||||
jb .204
|
||||
jb .cycle_0
|
||||
xor eax,eax
|
||||
jmp .193
|
||||
.198:
|
||||
jmp .end_f
|
||||
.9:
|
||||
mov eax,1000
|
||||
.193:
|
||||
.end_f:
|
||||
pop edi esi ebx
|
||||
mov esp,ebp
|
||||
pop ebp
|
||||
@@ -1320,20 +1300,19 @@ Layer_Destroy:
|
||||
call @$bdele$qpv
|
||||
pop ecx
|
||||
xor ebx,ebx
|
||||
jmp .143
|
||||
.142:
|
||||
jmp @f
|
||||
.cycle_1:
|
||||
mov eax,[esi+Layer.weights]
|
||||
push dword[eax+4*ebx]
|
||||
call @$bdele$qpv
|
||||
pop ecx
|
||||
inc ebx
|
||||
.143:
|
||||
@@:
|
||||
cmp ebx,[esi+Layer.c_size]
|
||||
jb .142
|
||||
jb .cycle_1
|
||||
push dword[esi+Layer.weights]
|
||||
call @$bdele$qpv
|
||||
pop ecx
|
||||
.145:
|
||||
pop esi ebx ebp
|
||||
ret 4
|
||||
|
||||
@@ -1344,17 +1323,17 @@ NNP_Destroy:
|
||||
push ebx esi
|
||||
mov esi,[ebp+8]
|
||||
xor ebx,ebx
|
||||
jmp .232
|
||||
.231:
|
||||
jmp @f
|
||||
.cycle_1:
|
||||
mov eax,ebx
|
||||
imul eax,sizeof.Layer
|
||||
add eax,[esi+NeuralNetwork.layers]
|
||||
push eax
|
||||
call Layer_Destroy
|
||||
inc ebx
|
||||
.232:
|
||||
@@:
|
||||
cmp ebx,[esi+NeuralNetwork.layers_length]
|
||||
jb .231
|
||||
jb .cycle_1
|
||||
push dword[esi+NeuralNetwork.layers]
|
||||
call @$bdele$qpv
|
||||
pop ecx
|
||||
@@ -1398,14 +1377,3 @@ EXPORTS:
|
||||
sz_getmemdata db 'NNP_GetMemData',0
|
||||
sz_setmemdata db 'NNP_SetMemData',0
|
||||
sz_destroy db 'NNP_Destroy',0
|
||||
|
||||
align 16
|
||||
@IMPORT:
|
||||
|
||||
library \
|
||||
libc, 'libc.obj'
|
||||
|
||||
import libc, \
|
||||
_strcat, 'strcat',\
|
||||
_exp, 'exp'
|
||||
;_scanf, 'scanf',\ ;???
|
||||
|
Reference in New Issue
Block a user