Last active
April 27, 2025 03:16
-
-
Save Googulator/482a02b7b146d0173467818a0c6e9343 to your computer and use it in GitHub Desktop.
Fauxltair 8800 for Nandgame
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "NandGame:Levels:ASSEMBLER1": { | |
| "code": "# Assembler code \nD = 1\nLABEL loop\nA = 0x7FFF\n*A = D\n*A = D + 1\nA = loop\nJMP\n" | |
| }, | |
| "NandGame:CustomComponent:3": { | |
| "key": "3", | |
| "name": "shl 8", | |
| "inputs": [], | |
| "outputs": [], | |
| "diagram": { | |
| "nodes": [], | |
| "connections": [] | |
| } | |
| }, | |
| "NandGame:Levels:STACK_PUSH_STATIC": { | |
| "code": "# Assembler code \nA = address\nD = *A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:STACK_POP_ARG": { | |
| "code": "# Assembler code \nA = index\nD = A\nA = ARGS\nA = D + *A\nD = A\nA = CHEAT\n*A = D\nPOP_D\nA = CHEAT\nA = *A\n*A = D" | |
| }, | |
| "NandGame:Levels:FLOAT_MUL": { | |
| "nodes": [{ | |
| "type": "FLOAT_UNPACK", | |
| "x": 124, | |
| "y": 579, | |
| "id": "0" | |
| }, { | |
| "type": "FLOAT_UNPACK", | |
| "x": 276, | |
| "y": 603, | |
| "id": "1" | |
| }, { | |
| "type": "FLOAT_PACK", | |
| "x": 126, | |
| "y": 115, | |
| "id": "2" | |
| }, { | |
| "type": "FLOAT_MUL_UNPACKED", | |
| "x": 196, | |
| "y": 438, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_GENERAL_MEMORY": { | |
| "nodes": [{ | |
| "type": "DFF16", | |
| "x": 506, | |
| "y": 353, | |
| "id": "0" | |
| }, { | |
| "type": "DFF16", | |
| "x": 721, | |
| "y": 350, | |
| "id": "1" | |
| }, { | |
| "type": "DFF16", | |
| "x": 926, | |
| "y": 351, | |
| "id": "2" | |
| }, { | |
| "type": "DFF16", | |
| "x": 1144, | |
| "y": 353, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 681, | |
| "y": 120, | |
| "id": "4" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 567, | |
| "y": 223, | |
| "id": "5" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 783, | |
| "y": 209, | |
| "id": "6" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1063, | |
| "y": 115, | |
| "id": "7" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 974, | |
| "y": 209, | |
| "id": "8" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1167, | |
| "y": 211, | |
| "id": "9" | |
| }, { | |
| "type": "DEMUX", | |
| "x": 645, | |
| "y": 499, | |
| "id": "10" | |
| }, { | |
| "type": "DEMUX", | |
| "x": 1057, | |
| "y": 495, | |
| "id": "11" | |
| }, { | |
| "type": "DEMUX", | |
| "x": 840, | |
| "y": 585, | |
| "id": "12" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:IO2": { | |
| "nodes": [{ | |
| "type": "LAMP", | |
| "x": 370, | |
| "y": 245, | |
| "id": "0" | |
| }, { | |
| "type": "BUTTON", | |
| "x": 97, | |
| "y": 251, | |
| "id": "1" | |
| }, { | |
| "type": "AND", | |
| "x": 537, | |
| "y": 503, | |
| "id": "2" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 97, | |
| "y": 500, | |
| "id": "3" | |
| }, { | |
| "type": "AND", | |
| "x": 494, | |
| "y": 390, | |
| "id": "4" | |
| }, { | |
| "type": "AND", | |
| "x": 395, | |
| "y": 375, | |
| "id": "5" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 24, | |
| "y": 132, | |
| "id": "6" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_MODE": { | |
| "nodes": [{ | |
| "type": "DFF", | |
| "x": 100, | |
| "y": 234, | |
| "id": "0" | |
| }, { | |
| "type": "AND", | |
| "x": 115, | |
| "y": 532, | |
| "id": "1" | |
| }, { | |
| "type": "OR", | |
| "x": 78, | |
| "y": 420, | |
| "id": "2" | |
| }, { | |
| "type": "INV", | |
| "x": 194, | |
| "y": 143, | |
| "id": "3" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 447, | |
| "y": 211, | |
| "id": "4" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CALL": { | |
| "code": "# Assembler code \nPUSH_STATIC ARGS\nPUSH_STATIC LOCALS\nPUSH_VALUE ret\nA = SP\nD = *A\nA = argumentCount\nD = D - A\nA = 3\nD = D - A\nA = ARGS\n*A = D\nA = functionName\nJMP\nLABEL ret\nA = ARGS\nD = *A\nA = OLDARGS\n*A = D\nPOP_STATIC LOCALS\nPOP_STATIC ARGS\nA = OLDARGS\nD = *A\nA = SP\n*A = D\nA = RETVAL\nD = *A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:ALU2": { | |
| "nodes": [{ | |
| "type": "ARITHMETIC_UNIT", | |
| "x": 207, | |
| "y": 277, | |
| "id": "0" | |
| }, { | |
| "type": "LOGIC_UNIT", | |
| "x": 357, | |
| "y": 258, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 218, | |
| "y": 115, | |
| "id": "2" | |
| }, { | |
| "type": "ZERO16", | |
| "x": 772, | |
| "y": 674, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 518, | |
| "y": 410, | |
| "id": "4" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 358, | |
| "y": 471, | |
| "id": "5" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 825, | |
| "y": 474, | |
| "id": "6" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:RETURN": { | |
| "code": "# Assembler code \nPOP_STATIC RETVAL\nA = LOCALS\nD = *A\nA = SP\n*A = D\nPOP_A\nJMP" | |
| }, | |
| "NandGame:Levels:RAM": { | |
| "nodes": [{ | |
| "type": "DFF16", | |
| "x": 405, | |
| "y": 283, | |
| "id": "0" | |
| }, { | |
| "type": "DFF16", | |
| "x": 214, | |
| "y": 288, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 199, | |
| "y": 154, | |
| "id": "2" | |
| }, { | |
| "type": "DEMUX", | |
| "x": 186, | |
| "y": 502, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:PROGRAM1": { | |
| "code": [32912, 2, 34064, 32775] | |
| }, | |
| "NandGame:Levels:ESCAPE": { | |
| "code": "# Assembler code \nLABEL OBSTACLE\n# Check if we have an obstacle\nA = 0x7FFF\nD = *A\nA = 0x100\nD = D & A\nA = FORWARD\nD; JEQ\n\n# We have an obstacle - turn!\nA = 8\nD = A\nA = 0x7FFF\n*A = D\n*A = 0\n\n# Wait for turn to complete\nLABEL TURN_WAIT\nA = 0x7FFF\nD = *A\nA = 0x200\nD = D & A\nA = TURN_WAIT\nD; JNE\n\n# Turn complete - check for obstacle again\nA = OBSTACLE\nJMP\n\nLABEL FORWARD\n# No obstacle - move forward\nA = 4\nD = A\nA = 0x7FFF\n*A = D\n*A = 0\n\n# Wait for forward move to complete\nLABEL FORWARD_WAIT\nA = 0x7FFF\nD = *A\nA = 0x400\nD = D & A\nA = FORWARD_WAIT\nD; JNE\n\n# Move complete - check obstacle\nA = OBSTACLE\nJMP" | |
| }, | |
| "NandGame:Levels:SHARED_COMPILER_CONFIG": { | |
| "lexical": [{ | |
| "type": 1, | |
| "pattern": "[ ]+", | |
| "action": 0 | |
| }, { | |
| "type": 1, | |
| "pattern": "[0-9]+", | |
| "action": 3, | |
| "label": "Number" | |
| }, { | |
| "type": 0, | |
| "pattern": "+ - ( )", | |
| "action": 2 | |
| } | |
| ], | |
| "rules": [{ | |
| "lhs": "Expression", | |
| "rhs": "Number", | |
| "codegen": "PUSH_VALUE [Number]" | |
| }, { | |
| "lhs": "Expression", | |
| "rhs": "Expression + Expression", | |
| "codegen": "[Expression 1]\n[Expression 2]\nADD" | |
| }, { | |
| "lhs": "Expression", | |
| "rhs": "Expression - Expression", | |
| "codegen": "[Expression 1]\n[Expression 2]\nSUB" | |
| }, { | |
| "lhs": "Expression", | |
| "rhs": "- Expression", | |
| "codegen": "[Expression]\nNEG" | |
| }, { | |
| "lhs": "Expression", | |
| "rhs": "( Expression )", | |
| "codegen": "[Expression]" | |
| } | |
| ], | |
| "runtimeLibrary": "" | |
| }, | |
| "NandGame:Levels:STACK_ADD": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\nD = D + A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:STACK_NOT": { | |
| "code": "# Assembler code \nPOP_D\nD = ~D\nPUSH_D" | |
| }, | |
| "NandGame:Levels": ["RELAY_NAND", "INV", "AND", "OR", "XOR", "HALFADD", "FULLADD", "ADD2", "INC", "SUB", "ISZERO", "SIGN", "MULTIPLEXER", "DEMUX", "ALU_LOGIC", "ALU_ARITHMETIC", "ALU2", "CONDITION", "SR_LATCH", "LATCH", "DFF", "DFF2", "COUNTER", "RAM", "CPU_STATE", "ALU_INSTRUCTION", "CONTROL_SELECTOR", "CONTROL_UNIT", "CPU3", "IO2", "PROGRAM1", "OPCODES2", "ASSEMBLER1", "READ_KEYBOARD", "ESCAPE", "ASSEMBLER_DISPLAY", "ASSEMBLER_NETWORK_RECEIVE", "STACK_INIT", "STACK_PUSH_D", "STACK_POP_D", "STACK_POP_A", "STACK_PUSH_VALUE", "STACK_ADD", "STACK_SUB", "STACK_NEG", "STACK_AND", "STACK_OR", "TOKENIZE_EXPRESSION", "GRAMMAR_EXPRESSION", "CODEGEN_EXPRESSION", "STACK_EQ", "STACK_GT", "STACK_LT", "STACK_NOT", "STACK_GOTO", "STACK_IF_GOTO", "STACK_PUSH_MEMORY", "STACK_POP_MEMORY", "STACK_PUSH_STATIC", "STACK_POP_STATIC", "CALL", "FUNCTION", "RETURN", "STACK_PUSH_ARG", "STACK_POP_ARG", "STACK_PUSH_LOCAL", "STACK_POP_LOCAL", "CMOS_NAND", "CMOS_INV", "CMOS_NOR", "XNOR", "SHL", "SHR", "SAR", "SHL16", "MAX16", "MUL16", "FLOAT_UNPACK", "FLOAT_MUL_UNPACKED", "FLOAT_NORMALIZE_OVERFLOW", "FLOAT_VERIFY_EXPONENT", "FLOAT_ALIGN", "ADD_SIGNED_MAGNITUDE", "FLOAT_NORMALIZE_UNDERFLOW", "FLOAT_PACK", "FLOAT_MUL", "FLOAT_ADD", "CS_TRIGGER", "CS_MODE", "CS_REGISTER", "CS_PROGRAM_COUNTER", "CS_REGISTER_BLOCK", "CS_GENERAL_MEMORY", "CS_MAPPED_MEMORY", "CS_CONTROL_UNIT", "CS_COMBINE"], | |
| "NandGame:Levels:COUNTER": { | |
| "nodes": [{ | |
| "type": "DFF16", | |
| "x": 118, | |
| "y": 262, | |
| "id": "0" | |
| }, { | |
| "type": "INC16", | |
| "x": 415, | |
| "y": 319, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 287, | |
| "y": 433, | |
| "id": "2" | |
| }, { | |
| "type": "INV", | |
| "x": 147, | |
| "y": 460, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:ALU_INSTRUCTION": { | |
| "nodes": [{ | |
| "type": "ALU2", | |
| "x": 119, | |
| "y": 238, | |
| "id": "0" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 50, | |
| "y": 548, | |
| "id": "1" | |
| }, { | |
| "type": "CONDITION2", | |
| "x": 394, | |
| "y": 112, | |
| "id": "2" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 524, | |
| "y": 408, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "4" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_GT": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\nD = D - A\nA = equals\nD; JGE\nD = 0\nD = ~D\nPUSH_D\nA = end\nJMP\n\nLABEL equals\nPUSH_VALUE 0\n\nLABEL end" | |
| }, | |
| "NandGame:Levels:TOKENIZE_EXPRESSION": { | |
| "source": "2 + 2" | |
| }, | |
| "NandGame:Levels:STACK_EQ": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\nD = D - A\nA = equals\nD; JNE\nD = 0\nD = ~D\nPUSH_D\nA = end\nJMP\n\nLABEL equals\nPUSH_VALUE 0\n\nLABEL end" | |
| }, | |
| "NandGame:Levels:ALU_LOGIC": { | |
| "nodes": [{ | |
| "type": "INV16", | |
| "x": 231, | |
| "y": 458, | |
| "id": "0" | |
| }, { | |
| "type": "AND16", | |
| "x": 600, | |
| "y": 460, | |
| "id": "1" | |
| }, { | |
| "type": "OR16", | |
| "x": 477, | |
| "y": 455, | |
| "id": "2" | |
| }, { | |
| "type": "XOR16", | |
| "x": 357, | |
| "y": 459, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 228, | |
| "y": 292, | |
| "id": "4" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 432, | |
| "y": 297, | |
| "id": "5" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 198, | |
| "y": 161, | |
| "id": "6" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:CustomComponent:1": { | |
| "key": "1", | |
| "name": "shl 2", | |
| "inputs": [{ | |
| "pins": [{ | |
| "label": "", | |
| "width": 16 | |
| } | |
| ] | |
| } | |
| ], | |
| "outputs": [{ | |
| "pins": [{ | |
| "label": "", | |
| "width": 16 | |
| } | |
| ] | |
| } | |
| ], | |
| "diagram": { | |
| "nodes": [{ | |
| "type": "SHL", | |
| "x": 147.5, | |
| "y": 317, | |
| "id": "0" | |
| }, { | |
| "type": "SHL", | |
| "x": 149.5, | |
| "y": 456, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| "NandGame:Levels:CPU_STATE": { | |
| "nodes": [{ | |
| "type": "RAM", | |
| "x": 533, | |
| "y": 124, | |
| "id": "0" | |
| }, { | |
| "type": "DFF16", | |
| "x": 52, | |
| "y": 385, | |
| "id": "1" | |
| }, { | |
| "type": "DFF16", | |
| "x": 272, | |
| "y": 383, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_PROGRAM_COUNTER": { | |
| "nodes": [{ | |
| "type": "CS_REGISTER", | |
| "x": 490, | |
| "y": 305, | |
| "id": "0" | |
| }, { | |
| "type": "INC16", | |
| "x": 156, | |
| "y": 493, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 355, | |
| "y": 562, | |
| "id": "2" | |
| }, { | |
| "type": "INV", | |
| "x": 359, | |
| "y": 439, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_REGISTER_BLOCK": { | |
| "nodes": [{ | |
| "type": "CS_PC", | |
| "x": 902, | |
| "y": 298, | |
| "id": "0" | |
| }, { | |
| "type": "CS_REGISTER", | |
| "x": 190, | |
| "y": 308, | |
| "id": "1" | |
| }, { | |
| "type": "CS_REGISTER", | |
| "x": 405, | |
| "y": 319, | |
| "id": "2" | |
| }, { | |
| "type": "CS_REGISTER", | |
| "x": 682, | |
| "y": 312, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "7" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_NEG": { | |
| "code": "# Assembler code \nPOP_D\nD = -D\nPUSH_D" | |
| }, | |
| "NandGame:Levels:AND": { | |
| "nodes": [{ | |
| "type": "NAND", | |
| "x": 109, | |
| "y": 606, | |
| "id": "0" | |
| }, { | |
| "type": "NAND", | |
| "x": 76, | |
| "y": 128, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_PUSH_ARG": { | |
| "code": "# Assembler code \nA = index\nD = A\nA = ARGS\nA = D + *A\nD = *A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:DFF": { | |
| "nodes": [{ | |
| "type": "LATCH", | |
| "x": 128, | |
| "y": 250, | |
| "id": "0" | |
| }, { | |
| "type": "LATCH", | |
| "x": 226, | |
| "y": 390, | |
| "id": "1" | |
| }, { | |
| "type": "INV", | |
| "x": 42, | |
| "y": 385, | |
| "id": "2" | |
| }, { | |
| "type": "AND", | |
| "x": 99, | |
| "y": 548, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:ISZERO": { | |
| "nodes": [{ | |
| "type": "OR", | |
| "x": 93, | |
| "y": 247, | |
| "id": "0" | |
| }, { | |
| "type": "OR", | |
| "x": 67, | |
| "y": 414, | |
| "id": "1" | |
| }, { | |
| "type": "OR", | |
| "x": 208, | |
| "y": 383, | |
| "id": "2" | |
| }, { | |
| "type": "INV", | |
| "x": 138, | |
| "y": 121, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:CustomComponents": ["1", "2", "3", "4"], | |
| "NandGame:Levels:STACK_AND": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\nD = D & A\nPUSH_D" | |
| }, | |
| "NandGame:CustomComponent:4": { | |
| "key": "4", | |
| "name": "Fauxltair", | |
| "inputs": [{ | |
| "pins": [{ | |
| "label": "X", | |
| "width": 16 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "A", | |
| "width": 16 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "a", | |
| "width": 1 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "d", | |
| "width": 1 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "*a", | |
| "width": 1 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "m", | |
| "width": 1 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "j", | |
| "width": 1 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "dp", | |
| "width": 1 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "ex", | |
| "width": 1 | |
| } | |
| ] | |
| } | |
| ], | |
| "outputs": [{ | |
| "pins": [{ | |
| "label": "I", | |
| "width": 16 | |
| } | |
| ] | |
| }, { | |
| "pins": [{ | |
| "label": "*A", | |
| "width": 16 | |
| } | |
| ] | |
| } | |
| ], | |
| "diagram": { | |
| "nodes": [{ | |
| "type": "CONTROL_UNIT", | |
| "x": 788.5, | |
| "y": 292, | |
| "id": "0" | |
| }, { | |
| "type": "CS_REGISTER_BLOCK", | |
| "x": 79.5, | |
| "y": 211, | |
| "id": "1" | |
| }, { | |
| "type": "CS_MAPPED_MEMORY", | |
| "x": 581.5, | |
| "y": 96, | |
| "id": "2" | |
| }, { | |
| "type": "CLOCK", | |
| "x": 506.5, | |
| "y": 545, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT", | |
| "x": 820.5, | |
| "y": 443, | |
| "id": "4" | |
| }, { | |
| "type": "SELECT", | |
| "x": 1031.5, | |
| "y": 499, | |
| "id": "5" | |
| }, { | |
| "type": "AND", | |
| "x": 657.5, | |
| "y": 524, | |
| "id": "6" | |
| }, { | |
| "type": "AND", | |
| "x": 839.5, | |
| "y": 559, | |
| "id": "7" | |
| }, { | |
| "type": "AND", | |
| "x": 308.5, | |
| "y": 491, | |
| "id": "8" | |
| }, { | |
| "type": "AND", | |
| "x": 1338.5, | |
| "y": 477, | |
| "id": "9" | |
| }, { | |
| "type": "SELECT", | |
| "x": 1308.5, | |
| "y": 342, | |
| "id": "10" | |
| }, { | |
| "type": "SELECT", | |
| "x": 478.5, | |
| "y": 375, | |
| "id": "11" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 106.5, | |
| "y": 555, | |
| "id": "12" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 973.5, | |
| "y": 151, | |
| "id": "13" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 394.5, | |
| "y": 282, | |
| "id": "14" | |
| }, { | |
| "type": "SELECT", | |
| "x": 1514.5, | |
| "y": 212, | |
| "id": "15" | |
| }, { | |
| "type": "AND", | |
| "x": 1506.5, | |
| "y": 524, | |
| "id": "16" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1368.5, | |
| "y": 161, | |
| "id": "17" | |
| }, { | |
| "type": "OR", | |
| "x": 1101.5, | |
| "y": 100, | |
| "id": "18" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| "NandGame:Levels:GRAMMAR_EXPRESSION": { | |
| "source": "2 + 2" | |
| }, | |
| "NandGame:Levels:FLOAT_UNPACK": { | |
| "nodes": [{ | |
| "type": "SPLIT16", | |
| "x": 352, | |
| "y": 628, | |
| "id": "0" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 308, | |
| "y": 268, | |
| "id": "1" | |
| }, { | |
| "type": "ZERO", | |
| "x": 735, | |
| "y": 624, | |
| "id": "2" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 714, | |
| "y": 281, | |
| "id": "3" | |
| }, { | |
| "type": "ISZERO", | |
| "x": 988, | |
| "y": 592, | |
| "id": "4" | |
| }, { | |
| "type": "INV", | |
| "x": 964, | |
| "y": 471, | |
| "id": "5" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_PUSH_VALUE": { | |
| "code": "# Assembler code \nA = value\nD = A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:STACK_PUSH_MEMORY": { | |
| "code": "# Assembler code \nPOP_A\nD = *A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:STACK_POP_A": { | |
| "code": "# Assembler code \nA = SP\n*A = *A - 1\nA = SP\nA = *A\nA = *A" | |
| }, | |
| "NandGame:Levels:STACK_POP_MEMORY": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\n*A = D" | |
| }, | |
| "NandGame:Levels:SIGN": { | |
| "nodes": [{ | |
| "type": "SPLIT16", | |
| "x": 61, | |
| "y": 590, | |
| "id": "0" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:ASSEMBLER_DISPLAY": { | |
| "code": "# Assembler code \nA = 0x07E0\nD = A\nD = ~D\nA = 0x4000\n*A = D\nA = 0x4020\n#D = ~D\n*A = D\nA = 0x4040\n#D = ~D\n*A = D\nA = 0x4060\n#D = ~D\n*A = D\nA = 0x4080\n#D = ~D\n*A = D\nA = 0x40A0\nD = ~D\n*A = D\nA = 0x40C0\n#D = ~D\n*A = D\nA = 0x40E0\n#D = ~D\n*A = D\nA = 0x4100\n#D = ~D\n*A = D\nA = 0x4120\n#D = ~D\n*A = D\nA = 0x4140\n#D = ~D\n*A = D\nA = 0x4160\nD = ~D\n*A = D\nA = 0x4180\n#D = ~D\n*A = D\nA = 0x41A0\n#D = ~D\n*A = D\nA = 0x41C0\n#D = ~D\n*A = D\nA = 0x41E0\n#D = ~D\n*A = D" | |
| }, | |
| "NandGame:Levels:STACK_POP_LOCAL": { | |
| "code": "# Assembler code \nA = index\nD = A\nA = LOCALS\nA = D + *A\nD = A\nA = CHEAT\n*A = D\nPOP_D\nA = CHEAT\nA = *A\n*A = D" | |
| }, | |
| "NandGame:Levels:ASSEMBLER_NETWORK_RECEIVE": { | |
| "code": "# Assembler code \nINIT_STACK\nLABEL again\nCALL display_image 0\n\nA = again\nJMP\n\nFUNCTION display_image 1\nPUSH_VALUE 0x4F10\nPOP_LOCAL 0\nLABEL wait_for_one\nCALL get_bit 0\nPOP_D\nA = wait_for_one\nD; JEQ\nLABEL loop\n#PUSH_VALUE 0x0FF0\n#POP_STATIC 0x5000\nPUSH_LOCAL 0\nCALL get_word 0\nPOP_MEMORY\nPUSH_LOCAL 0\nPUSH_VALUE 0x20\nADD\nPOP_LOCAL 0\n\n#PUSH_VALUE 0x700F\n#POP_STATIC 0x5000\n\nCALL get_bit 0\nPOP_D\nA = loop\nD; JNE\n#PUSH_VALUE 0x0F0F\n#POP_STATIC 0x5000\nPUSH_VALUE 0\nRETURN\n\nFUNCTION get_word 0\nCALL get_bit 0\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nCALL double 1\nCALL get_bit 0\nOR\nRETURN\n\nFUNCTION double 0\npush.argument 0\npush.argument 0\nADD\nRETURN\n\nFUNCTION get_bit 1\nPUSH_STATIC 0x6001\nPUSH_VALUE 0x2\nAND\nPOP_LOCAL 0\nLABEL get_bit_not_ready\nPUSH_STATIC 0x6001\nPUSH_VALUE 0x2\nAND\nPUSH_LOCAL 0\nPOP_D\nPOP_A\nD = D - A\nA = get_bit_not_ready\nD; JEQ\nPUSH_STATIC 0x6001\nPUSH_VALUE 0x1\nAND\nRETURN\n\nLABEL end\n" | |
| }, | |
| "NandGame:Levels:CMOS_NAND": { | |
| "nodes": [{ | |
| "type": "PMOS", | |
| "x": 84, | |
| "y": 380, | |
| "id": "0" | |
| }, { | |
| "type": "PMOS", | |
| "x": 231, | |
| "y": 388, | |
| "id": "1" | |
| }, { | |
| "type": "NMOS", | |
| "x": 418, | |
| "y": 317, | |
| "id": "2" | |
| }, { | |
| "type": "NMOS", | |
| "x": 431, | |
| "y": 448, | |
| "id": "3" | |
| }, { | |
| "type": "TRINARY_LOGIC_WIRE_JUNCTION", | |
| "x": 154, | |
| "y": 275, | |
| "id": "4" | |
| }, { | |
| "type": "TRINARY_LOGIC_WIRE_JUNCTION", | |
| "x": 217, | |
| "y": 190, | |
| "id": "5" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_OR": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\nD = D | A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:XOR": { | |
| "nodes": [{ | |
| "type": "NAND", | |
| "x": 203, | |
| "y": 356.4947720469958, | |
| "id": "0" | |
| }, { | |
| "type": "NAND", | |
| "x": 35, | |
| "y": 352.8516659539957, | |
| "id": "1" | |
| }, { | |
| "type": "NAND", | |
| "x": 126, | |
| "y": 230.81561443013064, | |
| "id": "2" | |
| }, { | |
| "type": "NAND", | |
| "x": 121, | |
| "y": 478.5641822307664, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:XNOR": { | |
| "nodes": [{ | |
| "type": "XOR", | |
| "x": 77, | |
| "y": 314, | |
| "id": "0" | |
| }, { | |
| "type": "INV", | |
| "x": 81, | |
| "y": 174, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:SHL16": { | |
| "nodes": [{ | |
| "type": "SHL", | |
| "x": 246, | |
| "y": 428, | |
| "id": "0" | |
| }, { | |
| "type": "SHL", | |
| "x": 242, | |
| "y": 339, | |
| "id": "1" | |
| }, { | |
| "type": "SHL", | |
| "x": 124, | |
| "y": 435, | |
| "id": "2" | |
| }, { | |
| "type": "SHL", | |
| "x": 388, | |
| "y": 437, | |
| "id": "3" | |
| }, { | |
| "type": "SHL", | |
| "x": 397, | |
| "y": 338, | |
| "id": "4" | |
| }, { | |
| "type": "SHL", | |
| "x": 399, | |
| "y": 248, | |
| "id": "5" | |
| }, { | |
| "type": "SHL", | |
| "x": 401, | |
| "y": 145, | |
| "id": "6" | |
| }, { | |
| "type": "SHL", | |
| "x": 697, | |
| "y": 377, | |
| "id": "7" | |
| }, { | |
| "type": "SHL", | |
| "x": 697, | |
| "y": 273, | |
| "id": "8" | |
| }, { | |
| "type": "SHL", | |
| "x": 700, | |
| "y": 178, | |
| "id": "9" | |
| }, { | |
| "type": "SHL", | |
| "x": 834, | |
| "y": 497, | |
| "id": "10" | |
| }, { | |
| "type": "SHL", | |
| "x": 839, | |
| "y": 384, | |
| "id": "11" | |
| }, { | |
| "type": "SHL", | |
| "x": 694, | |
| "y": 483, | |
| "id": "12" | |
| }, { | |
| "type": "SHL", | |
| "x": 849, | |
| "y": 271, | |
| "id": "13" | |
| }, { | |
| "type": "SHL", | |
| "x": 851, | |
| "y": 165, | |
| "id": "14" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 120, | |
| "y": 289, | |
| "id": "15" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 61, | |
| "y": 179, | |
| "id": "16" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 202, | |
| "y": 119, | |
| "id": "17" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 584, | |
| "y": 73, | |
| "id": "18" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_IF_GOTO": { | |
| "code": "# Assembler code \nPOP_D\nA = label\nD; JNE" | |
| }, | |
| "NandGame:Levels:STACK_PUSH_D": { | |
| "code": "# Assembler code \nA = SP\nA = *A\n*A = D\nD = A + 1\nA = SP\n*A = D" | |
| }, | |
| "NandGame:Levels:CPU3": { | |
| "nodes": [{ | |
| "type": "CLOCK", | |
| "x": 434, | |
| "y": 598, | |
| "id": "0" | |
| }, { | |
| "type": "CONTROL_UNIT", | |
| "x": 435, | |
| "y": 251, | |
| "id": "1" | |
| }, { | |
| "type": "STATE", | |
| "x": 874, | |
| "y": 178, | |
| "id": "2" | |
| }, { | |
| "type": "ROM", | |
| "x": 107, | |
| "y": 233, | |
| "id": "3", | |
| "state": { | |
| "words": [1, 2, 3, 4, 5, 6, 7, 8] | |
| } | |
| }, { | |
| "type": "COUNTER", | |
| "x": 123, | |
| "y": 542, | |
| "id": "4" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:READ_KEYBOARD": { | |
| "code": "# Assembler code \nA = 0x1000\nD = A\nA = 0xFFF\n*A = D\n\nLABEL READ\nA = 0x6000\nD = *A\nA = READ\nD; JEQ\nA = 0xFFF\nA = *A\n*A = D\nD = A + 1\nA = 0xFFF\n*A = D\n\nLABEL ZEROWAIT\nA = 0x6000\nD = *A\nA = ZEROWAIT\nD; JNE\nA = READ\nA; JMP" | |
| }, | |
| "NandGame:Levels:FLOAT_ALIGN": { | |
| "nodes": [{ | |
| "type": "BARREL_SHR", | |
| "x": 397, | |
| "y": 328, | |
| "id": "0" | |
| }, { | |
| "type": "MAX16", | |
| "x": 158, | |
| "y": 463, | |
| "id": "1" | |
| }, { | |
| "type": "SUB16", | |
| "x": 284, | |
| "y": 405, | |
| "id": "2" | |
| }, { | |
| "type": "SUB16", | |
| "x": 497, | |
| "y": 403, | |
| "id": "3" | |
| }, { | |
| "type": "BARREL_SHR", | |
| "x": 607, | |
| "y": 330, | |
| "id": "4" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_POP_STATIC": { | |
| "code": "# Assembler code \nPOP_D\nA = address\n*A = D" | |
| }, | |
| "NandGame:Levels:INV": { | |
| "nodes": [{ | |
| "type": "NAND", | |
| "x": 76, | |
| "y": 251, | |
| "id": "0" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:DFF2": { | |
| "nodes": [{ | |
| "type": "DFF", | |
| "x": 113, | |
| "y": 393, | |
| "id": "0" | |
| }, { | |
| "type": "DFF", | |
| "x": 258, | |
| "y": 379, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:SUB": { | |
| "nodes": [{ | |
| "type": "INV16", | |
| "x": 199, | |
| "y": 576, | |
| "id": "0" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 161, | |
| "y": 352, | |
| "id": "1" | |
| }, { | |
| "type": "INV", | |
| "x": 324, | |
| "y": 471, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:MAX16": { | |
| "nodes": [{ | |
| "type": "SUB16", | |
| "x": 217, | |
| "y": 520, | |
| "id": "0" | |
| }, { | |
| "type": "ISNEG", | |
| "x": 218, | |
| "y": 408, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 247, | |
| "y": 277, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_MAPPED_MEMORY": { | |
| "nodes": [{ | |
| "type": "GP_MEMORY_512K", | |
| "x": 411, | |
| "y": 124, | |
| "id": "0" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 173, | |
| "y": 572, | |
| "id": "1" | |
| }, { | |
| "type": "BUNDLE18", | |
| "x": 170, | |
| "y": 410, | |
| "id": "2" | |
| }, { | |
| "type": "BUNDLE18", | |
| "x": 965, | |
| "y": 163, | |
| "id": "3" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 988, | |
| "y": 342, | |
| "id": "4" | |
| }, { | |
| "type": "AND", | |
| "x": 607, | |
| "y": 479, | |
| "id": "5" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 999, | |
| "y": 596, | |
| "id": "6" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 947, | |
| "y": 472, | |
| "id": "7" | |
| }, { | |
| "type": "INV", | |
| "x": 754, | |
| "y": 432, | |
| "id": "8" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1093, | |
| "y": 465, | |
| "id": "9" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1214, | |
| "y": 470, | |
| "id": "10" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1342, | |
| "y": 474, | |
| "id": "11" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1463, | |
| "y": 471, | |
| "id": "12" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1594, | |
| "y": 464, | |
| "id": "13" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1713, | |
| "y": 471, | |
| "id": "14" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "16" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "17" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "16" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "17" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:ADD2": { | |
| "nodes": [{ | |
| "type": "ADDC", | |
| "x": 224, | |
| "y": 451, | |
| "id": "0" | |
| }, { | |
| "type": "ADDC", | |
| "x": 114, | |
| "y": 324, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:ADD_SIGNED_MAGNITUDE": { | |
| "nodes": [{ | |
| "type": "XOR", | |
| "x": 241, | |
| "y": 426, | |
| "id": "0" | |
| }, { | |
| "type": "INV16", | |
| "x": 221, | |
| "y": 579, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 126, | |
| "y": 320, | |
| "id": "2" | |
| }, { | |
| "type": "INV16", | |
| "x": 338, | |
| "y": 513, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 345, | |
| "y": 315, | |
| "id": "4" | |
| }, { | |
| "type": "ADD16", | |
| "x": 233, | |
| "y": 257, | |
| "id": "5" | |
| }, { | |
| "type": "ISNEG", | |
| "x": 65, | |
| "y": 191, | |
| "id": "6" | |
| }, { | |
| "type": "INC16", | |
| "x": 342, | |
| "y": 424, | |
| "id": "7" | |
| }, { | |
| "type": "INC16", | |
| "x": 203, | |
| "y": 493, | |
| "id": "8" | |
| }, { | |
| "type": "INV16", | |
| "x": 278, | |
| "y": 170, | |
| "id": "9" | |
| }, { | |
| "type": "INC16", | |
| "x": 274, | |
| "y": 83, | |
| "id": "10" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 179, | |
| "y": 94, | |
| "id": "11" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:FLOAT_NORMALIZE_UNDERFLOW": { | |
| "nodes": [{ | |
| "type": "SHL", | |
| "x": 417, | |
| "y": 579, | |
| "id": "0" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 789, | |
| "y": 610, | |
| "id": "1" | |
| }, { | |
| "type": "SHL", | |
| "x": 421, | |
| "y": 505, | |
| "id": "2" | |
| }, { | |
| "type": "SHL", | |
| "x": 419, | |
| "y": 417, | |
| "id": "3" | |
| }, { | |
| "type": "SHL", | |
| "x": 420, | |
| "y": 345, | |
| "id": "4" | |
| }, { | |
| "type": "SHL", | |
| "x": 432, | |
| "y": 261, | |
| "id": "5" | |
| }, { | |
| "type": "SHL", | |
| "x": 558, | |
| "y": 577, | |
| "id": "6" | |
| }, { | |
| "type": "SHL", | |
| "x": 557, | |
| "y": 499, | |
| "id": "7" | |
| }, { | |
| "type": "SHL", | |
| "x": 548, | |
| "y": 410, | |
| "id": "8" | |
| }, { | |
| "type": "SHL", | |
| "x": 551, | |
| "y": 325, | |
| "id": "9" | |
| }, { | |
| "type": "SHL", | |
| "x": 553, | |
| "y": 241, | |
| "id": "10" | |
| }, { | |
| "type": "INV16", | |
| "x": 6, | |
| "y": 649, | |
| "id": "11" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 98, | |
| "y": 573, | |
| "id": "12" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 98, | |
| "y": 466, | |
| "id": "13" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 111, | |
| "y": 389, | |
| "id": "14" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 110, | |
| "y": 318, | |
| "id": "15" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 106, | |
| "y": 234, | |
| "id": "16" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 230, | |
| "y": 581, | |
| "id": "17" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 219, | |
| "y": 489, | |
| "id": "18" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 222, | |
| "y": 413, | |
| "id": "19" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 229, | |
| "y": 327, | |
| "id": "20" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 236, | |
| "y": 223, | |
| "id": "21" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 731, | |
| "y": 96, | |
| "id": "22" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1101, | |
| "y": 101, | |
| "id": "23" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 743, | |
| "y": 200, | |
| "id": "24" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1119, | |
| "y": 193, | |
| "id": "25" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 739, | |
| "y": 294, | |
| "id": "26" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 744, | |
| "y": 380, | |
| "id": "27" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 746, | |
| "y": 469, | |
| "id": "28" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 866, | |
| "y": 103, | |
| "id": "29" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 878, | |
| "y": 181, | |
| "id": "30" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 894, | |
| "y": 255, | |
| "id": "31" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 891, | |
| "y": 387, | |
| "id": "32" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 898, | |
| "y": 492, | |
| "id": "33" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1104, | |
| "y": 263, | |
| "id": "34" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1118, | |
| "y": 386, | |
| "id": "35" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1131, | |
| "y": 475, | |
| "id": "36" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1252, | |
| "y": 107, | |
| "id": "37" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1248, | |
| "y": 229, | |
| "id": "38" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1251, | |
| "y": 324, | |
| "id": "39" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1252, | |
| "y": 393, | |
| "id": "40" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1267, | |
| "y": 497, | |
| "id": "41" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "14", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "16", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "17", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "19", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "18", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "19", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "20", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "19", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "20", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "21", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "20", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "21", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "22", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "22", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "24", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "22", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "23", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "23", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "25", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "23", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "24", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "24", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "26", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "24", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "25", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "25", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "34", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "25", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "26", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "26", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "27", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "26", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "27", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "27", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "28", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "27", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "28", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "28", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "29", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "28", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "29", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "29", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "30", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "29", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "30", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "30", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "31", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "30", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "31", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "31", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "32", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "31", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "32", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "32", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "33", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "32", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "33", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "33", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "33", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "34", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "34", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "35", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "34", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "35", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "14", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "35", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "36", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "35", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "36", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "36", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "37", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "36", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "37", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "16", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "37", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "38", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "37", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "38", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "17", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "38", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "39", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "38", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "39", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "18", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "39", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "40", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "39", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "40", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "19", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "40", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "41", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "40", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "41", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "20", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "41", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "21", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "41", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "23", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "22", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_TRIGGER": { | |
| "nodes": [{ | |
| "type": "COUNTER", | |
| "x": 61, | |
| "y": 311, | |
| "id": "0" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 303, | |
| "y": 300, | |
| "id": "1" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 304, | |
| "y": 135, | |
| "id": "2" | |
| }, { | |
| "type": "INC16", | |
| "x": 375, | |
| "y": 486, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:OR": { | |
| "nodes": [{ | |
| "type": "INV", | |
| "x": 62, | |
| "y": 582, | |
| "id": "0" | |
| }, { | |
| "type": "INV", | |
| "x": 176, | |
| "y": 580, | |
| "id": "1" | |
| }, { | |
| "type": "NAND", | |
| "x": 72, | |
| "y": 138, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_SUB": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\nD = A - D\nPUSH_D" | |
| }, | |
| "NandGame:Levels:STACK_INIT": { | |
| "code": "# Assembler code \nA = 256\nD = A\nA = SP\n*A = D" | |
| }, | |
| "NandGame:Levels:DEMUX": { | |
| "nodes": [{ | |
| "type": "AND", | |
| "x": 70, | |
| "y": 207, | |
| "id": "0" | |
| }, { | |
| "type": "INV", | |
| "x": 158, | |
| "y": 383, | |
| "id": "1" | |
| }, { | |
| "type": "AND", | |
| "x": 236, | |
| "y": 286, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:FLOAT_MUL_UNPACKED": { | |
| "nodes": [{ | |
| "type": "XOR", | |
| "x": 102, | |
| "y": 450, | |
| "id": "0" | |
| }, { | |
| "type": "MUL32", | |
| "x": 613, | |
| "y": 494, | |
| "id": "1" | |
| }, { | |
| "type": "CONST", | |
| "x": 316, | |
| "y": 425, | |
| "id": "2", | |
| "state": 15 | |
| }, { | |
| "type": "ADD16", | |
| "x": 212, | |
| "y": 457, | |
| "id": "3" | |
| }, { | |
| "type": "SUB16", | |
| "x": 203, | |
| "y": 280, | |
| "id": "4" | |
| }, { | |
| "type": "SPLIT22", | |
| "x": 506, | |
| "y": 366, | |
| "id": "5" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 353, | |
| "y": 167, | |
| "id": "6" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:FLOAT_VERIFY_EXPONENT": { | |
| "nodes": [{ | |
| "type": "AND16", | |
| "x": 126, | |
| "y": 418, | |
| "id": "0" | |
| }, { | |
| "type": "CONST", | |
| "x": 174, | |
| "y": 520, | |
| "id": "1", | |
| "state": 65504 | |
| }, { | |
| "type": "CONST", | |
| "x": 559, | |
| "y": 582, | |
| "id": "2", | |
| "state": 31 | |
| }, { | |
| "type": "ISZERO", | |
| "x": 122, | |
| "y": 314, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 139, | |
| "y": 197, | |
| "id": "4" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:FLOAT_PACK": { | |
| "nodes": [{ | |
| "type": "BUNDLE16", | |
| "x": 147, | |
| "y": 118, | |
| "id": "0" | |
| }, { | |
| "type": "ISZERO", | |
| "x": 350, | |
| "y": 588, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 367, | |
| "y": 399, | |
| "id": "2" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 6, | |
| "y": 323, | |
| "id": "3" | |
| }, { | |
| "type": "FLOAT_NORMALIZE_UNDERFLOW", | |
| "x": 216, | |
| "y": 538, | |
| "id": "4" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 364, | |
| "y": 328, | |
| "id": "5" | |
| }, { | |
| "type": "FLOAT_VERIFY_EXPONENT", | |
| "x": 222, | |
| "y": 421, | |
| "id": "6" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_CONTROL_UNIT": { | |
| "nodes": [{ | |
| "type": "CONTROL_UNIT", | |
| "x": 828, | |
| "y": 507, | |
| "id": "0" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 41, | |
| "y": 808, | |
| "id": "1" | |
| }, { | |
| "type": "AND", | |
| "x": 51, | |
| "y": 433, | |
| "id": "2" | |
| }, { | |
| "type": "INV", | |
| "x": 64, | |
| "y": 557, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT", | |
| "x": 84, | |
| "y": 125, | |
| "id": "4" | |
| }, { | |
| "type": "SELECT", | |
| "x": 214, | |
| "y": 132, | |
| "id": "5" | |
| }, { | |
| "type": "SELECT", | |
| "x": 368, | |
| "y": 143, | |
| "id": "6" | |
| }, { | |
| "type": "SELECT", | |
| "x": 598, | |
| "y": 211, | |
| "id": "7" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 808, | |
| "y": 202, | |
| "id": "8" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 242, | |
| "y": 689, | |
| "id": "9" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 414, | |
| "y": 696, | |
| "id": "10" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 925, | |
| "y": 681, | |
| "id": "11" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1116, | |
| "y": 688, | |
| "id": "12" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 339, | |
| "y": 615, | |
| "id": "13" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1033, | |
| "y": 600, | |
| "id": "14" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 606, | |
| "y": 503, | |
| "id": "15" | |
| }, { | |
| "type": "AND", | |
| "x": 228, | |
| "y": 438, | |
| "id": "16" | |
| }, { | |
| "type": "AND", | |
| "x": 276, | |
| "y": 245, | |
| "id": "17" | |
| }, { | |
| "type": "AND", | |
| "x": 521, | |
| "y": 375, | |
| "id": "18" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "8" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:FLOAT_ADD": { | |
| "nodes": [{ | |
| "type": "ADD_SIGNED_MAGNITUDE", | |
| "x": 148, | |
| "y": 267, | |
| "id": "0" | |
| }, { | |
| "type": "FLOAT_UNPACK", | |
| "x": 178, | |
| "y": 604, | |
| "id": "1" | |
| }, { | |
| "type": "FLOAT_UNPACK", | |
| "x": 334, | |
| "y": 601, | |
| "id": "2" | |
| }, { | |
| "type": "FLOAT_PACK", | |
| "x": 128, | |
| "y": 136, | |
| "id": "3" | |
| }, { | |
| "type": "FLOAT_ALIGN", | |
| "x": 396, | |
| "y": 467, | |
| "id": "4" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:FUNCTION": { | |
| "code": "# Assembler code \nLABEL functionName\nA = SP\nD = *A\nA = LOCALS\n*A = D\nA = localsCount\nD = D + A\nA = SP\n*A = D" | |
| }, | |
| "NandGame:Levels:LATCH": { | |
| "nodes": [{ | |
| "type": "SELECT", | |
| "x": 106, | |
| "y": 352, | |
| "id": "0" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:SHL": { | |
| "nodes": [{ | |
| "type": "SPLIT16", | |
| "x": 96, | |
| "y": 479, | |
| "id": "0" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 117, | |
| "y": 356, | |
| "id": "1" | |
| }, { | |
| "type": "ZERO", | |
| "x": 456, | |
| "y": 479, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:SHR": { | |
| "nodes": [{ | |
| "type": "SPLIT16", | |
| "x": 73, | |
| "y": 529, | |
| "id": "0" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 51, | |
| "y": 305, | |
| "id": "1" | |
| }, { | |
| "type": "ZERO", | |
| "x": -2, | |
| "y": 584, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_GOTO": { | |
| "code": "# Assembler code \nA = label\nJMP" | |
| }, | |
| "NandGame:Levels:STACK_LT": { | |
| "code": "# Assembler code \nPOP_D\nPOP_A\nD = D - A\nA = equals\nD; JLE\nD = 0\nD = ~D\nPUSH_D\nA = end\nJMP\n\nLABEL equals\nPUSH_VALUE 0\n\nLABEL end" | |
| }, | |
| "NandGame:Levels:CONDITION": { | |
| "nodes": [{ | |
| "type": "ISNEG", | |
| "x": 287, | |
| "y": 569, | |
| "id": "0" | |
| }, { | |
| "type": "ISZERO", | |
| "x": 402, | |
| "y": 571, | |
| "id": "1" | |
| }, { | |
| "type": "AND", | |
| "x": 78, | |
| "y": 405, | |
| "id": "2" | |
| }, { | |
| "type": "AND", | |
| "x": 197, | |
| "y": 392, | |
| "id": "3" | |
| }, { | |
| "type": "AND", | |
| "x": 316, | |
| "y": 296, | |
| "id": "4" | |
| }, { | |
| "type": "OR", | |
| "x": 87, | |
| "y": 109, | |
| "id": "5" | |
| }, { | |
| "type": "OR", | |
| "x": 238, | |
| "y": 205, | |
| "id": "6" | |
| }, { | |
| "type": "OR", | |
| "x": 370, | |
| "y": 465, | |
| "id": "7" | |
| }, { | |
| "type": "INV", | |
| "x": 345, | |
| "y": 380, | |
| "id": "8" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CONTROL_UNIT": { | |
| "nodes": [{ | |
| "type": "ALU_INSTRUCTION", | |
| "x": 553, | |
| "y": 274, | |
| "id": "0" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 149, | |
| "y": 146, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 390, | |
| "y": 367, | |
| "id": "2" | |
| }, { | |
| "type": "OR", | |
| "x": 268, | |
| "y": 150, | |
| "id": "3" | |
| }, { | |
| "type": "ISNEG", | |
| "x": 45, | |
| "y": 564, | |
| "id": "4" | |
| }, { | |
| "type": "INV", | |
| "x": 70, | |
| "y": 460, | |
| "id": "5" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "4" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_PUSH_LOCAL": { | |
| "code": "# Assembler code \nA = index\nD = A\nA = LOCALS\nA = D + *A\nD = *A\nPUSH_D" | |
| }, | |
| "NandGame:Levels:FLOAT_NORMALIZE_OVERFLOW": { | |
| "nodes": [{ | |
| "type": "SPLIT16", | |
| "x": 288, | |
| "y": 497, | |
| "id": "0" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 264, | |
| "y": 402, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 318, | |
| "y": 255, | |
| "id": "2" | |
| }, { | |
| "type": "ADD16", | |
| "x": 111, | |
| "y": 270, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Programs": [], | |
| "NandGame:Levels:CS_REGISTER": { | |
| "nodes": [{ | |
| "type": "DFF16", | |
| "x": 260, | |
| "y": 288, | |
| "id": "0" | |
| }, { | |
| "type": "DFF16", | |
| "x": 526, | |
| "y": 282, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 508, | |
| "y": 435, | |
| "id": "2" | |
| }, { | |
| "type": "AND", | |
| "x": 257, | |
| "y": 463, | |
| "id": "3" | |
| }, { | |
| "type": "AND", | |
| "x": 75, | |
| "y": 410, | |
| "id": "4" | |
| }, { | |
| "type": "INV", | |
| "x": 149, | |
| "y": 565, | |
| "id": "5" | |
| }, { | |
| "type": "OR", | |
| "x": 293, | |
| "y": 546, | |
| "id": "6" | |
| }, { | |
| "type": "OR", | |
| "x": 146, | |
| "y": 464, | |
| "id": "7" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 353, | |
| "y": 480, | |
| "id": "8" | |
| }, { | |
| "type": "AND", | |
| "x": 370, | |
| "y": 606, | |
| "id": "9" | |
| }, { | |
| "type": "AND", | |
| "x": 880, | |
| "y": 450, | |
| "id": "10" | |
| }, { | |
| "type": "INV", | |
| "x": 1016, | |
| "y": 551, | |
| "id": "11" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 807, | |
| "y": 348, | |
| "id": "12" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:FULLADD": { | |
| "nodes": [{ | |
| "type": "HALFADD", | |
| "x": 184, | |
| "y": 480, | |
| "id": "0" | |
| }, { | |
| "type": "HALFADD", | |
| "x": 168, | |
| "y": 254, | |
| "id": "1" | |
| }, { | |
| "type": "OR", | |
| "x": 68, | |
| "y": 135, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:SHARED_STACK_CONSTANTS": { | |
| "constants": [{ | |
| "name": "SP", | |
| "value": "0" | |
| }, { | |
| "name": "ARGS", | |
| "value": "1" | |
| }, { | |
| "name": "LOCALS", | |
| "value": "2" | |
| }, { | |
| "name": "RETVAL", | |
| "value": "6" | |
| }, { | |
| "name": "OLDARGS", | |
| "value": "8" | |
| }, { | |
| "name": "CHEAT", | |
| "value": "10" | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:HALFADD": { | |
| "nodes": [{ | |
| "type": "NAND", | |
| "x": 344, | |
| "y": 385.5274988874003, | |
| "id": "0" | |
| }, { | |
| "type": "NAND", | |
| "x": 15, | |
| "y": 389.4960784042875, | |
| "id": "1" | |
| }, { | |
| "type": "NAND", | |
| "x": 178, | |
| "y": 247.8598901098901, | |
| "id": "2" | |
| }, { | |
| "type": "NAND", | |
| "x": 138, | |
| "y": 529.7205776483629, | |
| "id": "3" | |
| }, { | |
| "type": "NAND", | |
| "x": 41, | |
| "y": 177.2554945054945, | |
| "id": "4" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CONTROL_SELECTOR": { | |
| "nodes": [{ | |
| "type": "SELECT16", | |
| "x": 162.5, | |
| "y": 278, | |
| "id": "0" | |
| }, { | |
| "type": "SELECT", | |
| "x": 301.5, | |
| "y": 278, | |
| "id": "1" | |
| }, { | |
| "type": "SELECT", | |
| "x": 427.5, | |
| "y": 272, | |
| "id": "2" | |
| }, { | |
| "type": "SELECT", | |
| "x": 596.5, | |
| "y": 278, | |
| "id": "3" | |
| }, { | |
| "type": "SELECT", | |
| "x": 734.5, | |
| "y": 290, | |
| "id": "4" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "4" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:INC": { | |
| "nodes": [{ | |
| "type": "ADDC16", | |
| "x": 154, | |
| "y": 315, | |
| "id": "0" | |
| }, { | |
| "type": "INV", | |
| "x": 201, | |
| "y": 451, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CS_COMBINE": { | |
| "nodes": [{ | |
| "type": "CS_CONTROL_UNIT", | |
| "x": 530, | |
| "y": 408, | |
| "id": "0" | |
| }, { | |
| "type": "CS_TRIGGER", | |
| "x": 1498, | |
| "y": 439, | |
| "id": "1" | |
| }, { | |
| "type": "CS_REGISTER_BLOCK", | |
| "x": 131, | |
| "y": 281, | |
| "id": "2" | |
| }, { | |
| "type": "CLOCK", | |
| "x": 591, | |
| "y": 614, | |
| "id": "3" | |
| }, { | |
| "type": "CS_MODE", | |
| "x": 1274, | |
| "y": 243, | |
| "id": "4" | |
| }, { | |
| "type": "CS_MAPPED_MEMORY", | |
| "x": 602, | |
| "y": 110, | |
| "id": "5" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "points": [{ | |
| "x": 1111, | |
| "y": 362 | |
| } | |
| ] | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "5" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:ALU_ARITHMETIC": { | |
| "nodes": [{ | |
| "type": "ZERO", | |
| "x": 892, | |
| "y": 634, | |
| "id": "0" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 459, | |
| "y": 466, | |
| "id": "1" | |
| }, { | |
| "type": "INV", | |
| "x": 686, | |
| "y": 563, | |
| "id": "2" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 341, | |
| "y": 392, | |
| "id": "3" | |
| }, { | |
| "type": "ADD16", | |
| "x": 252, | |
| "y": 247, | |
| "id": "4" | |
| }, { | |
| "type": "SUB16", | |
| "x": 106, | |
| "y": 262, | |
| "id": "5" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 23, | |
| "y": 137, | |
| "id": "6" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CMOS_NOR": { | |
| "nodes": [{ | |
| "type": "NMOS", | |
| "x": 86, | |
| "y": 358, | |
| "id": "0" | |
| }, { | |
| "type": "NMOS", | |
| "x": 163, | |
| "y": 256, | |
| "id": "1" | |
| }, { | |
| "type": "PMOS", | |
| "x": 372, | |
| "y": 263, | |
| "id": "2" | |
| }, { | |
| "type": "PMOS", | |
| "x": 429, | |
| "y": 413, | |
| "id": "3" | |
| }, { | |
| "type": "TRINARY_LOGIC_WIRE_JUNCTION", | |
| "x": 99, | |
| "y": 169, | |
| "id": "4" | |
| }, { | |
| "type": "TRINARY_LOGIC_WIRE_JUNCTION", | |
| "x": 197, | |
| "y": 88, | |
| "id": "5" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:SR_LATCH": { | |
| "nodes": [{ | |
| "type": "NAND", | |
| "x": 63, | |
| "y": 254, | |
| "id": "0" | |
| }, { | |
| "type": "NAND", | |
| "x": 219, | |
| "y": 253, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:STACK_POP_D": { | |
| "code": "# Assembler code \nA = SP\nD = *A - 1\n*A = D\nA = SP\nA = *A\nD = *A" | |
| }, | |
| "NandGame:Levels:MUL16": { | |
| "nodes": [{ | |
| "type": "SHL", | |
| "x": 125, | |
| "y": 585, | |
| "id": "0" | |
| }, { | |
| "type": "SHL", | |
| "x": 123, | |
| "y": 503, | |
| "id": "1" | |
| }, { | |
| "type": "SHL", | |
| "x": 124, | |
| "y": 433, | |
| "id": "2" | |
| }, { | |
| "type": "SHL", | |
| "x": 122, | |
| "y": 360, | |
| "id": "3" | |
| }, { | |
| "type": "SHL", | |
| "x": 122, | |
| "y": 300, | |
| "id": "4" | |
| }, { | |
| "type": "SHL", | |
| "x": 125, | |
| "y": 221, | |
| "id": "5" | |
| }, { | |
| "type": "SHL", | |
| "x": 128, | |
| "y": 145, | |
| "id": "6" | |
| }, { | |
| "type": "SHL", | |
| "x": 215, | |
| "y": 613, | |
| "id": "7" | |
| }, { | |
| "type": "SHL", | |
| "x": 216, | |
| "y": 538, | |
| "id": "8" | |
| }, { | |
| "type": "SHL", | |
| "x": 234, | |
| "y": 472, | |
| "id": "9" | |
| }, { | |
| "type": "SHL", | |
| "x": 240, | |
| "y": 404, | |
| "id": "10" | |
| }, { | |
| "type": "SHL", | |
| "x": 219, | |
| "y": 331, | |
| "id": "11" | |
| }, { | |
| "type": "SHL", | |
| "x": 239, | |
| "y": 249, | |
| "id": "12" | |
| }, { | |
| "type": "SHL", | |
| "x": 241, | |
| "y": 180, | |
| "id": "13" | |
| }, { | |
| "type": "SHL", | |
| "x": 243, | |
| "y": 110, | |
| "id": "14" | |
| }, { | |
| "type": "SPLIT16", | |
| "x": 1021, | |
| "y": 625, | |
| "id": "15" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1607, | |
| "y": 526, | |
| "id": "16" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1707, | |
| "y": 531, | |
| "id": "17" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1517, | |
| "y": 516, | |
| "id": "18" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1416, | |
| "y": 516, | |
| "id": "19" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1316, | |
| "y": 498, | |
| "id": "20" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1226, | |
| "y": 495, | |
| "id": "21" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1131, | |
| "y": 493, | |
| "id": "22" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 1039, | |
| "y": 496, | |
| "id": "23" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 957, | |
| "y": 500, | |
| "id": "24" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 871, | |
| "y": 504, | |
| "id": "25" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 782, | |
| "y": 504, | |
| "id": "26" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 698, | |
| "y": 507, | |
| "id": "27" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 617, | |
| "y": 500, | |
| "id": "28" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 531, | |
| "y": 505, | |
| "id": "29" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 441, | |
| "y": 503, | |
| "id": "30" | |
| }, { | |
| "type": "SELECT16", | |
| "x": 349, | |
| "y": 513, | |
| "id": "31" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1705, | |
| "y": 440, | |
| "id": "32" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1613, | |
| "y": 377, | |
| "id": "33" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1490, | |
| "y": 336, | |
| "id": "34" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1412, | |
| "y": 293, | |
| "id": "35" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1315, | |
| "y": 263, | |
| "id": "36" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1211, | |
| "y": 243, | |
| "id": "37" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1107, | |
| "y": 219, | |
| "id": "38" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 1007, | |
| "y": 199, | |
| "id": "39" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 903, | |
| "y": 191, | |
| "id": "40" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 803, | |
| "y": 163, | |
| "id": "41" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 727, | |
| "y": 141, | |
| "id": "42" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 647, | |
| "y": 134, | |
| "id": "43" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 574, | |
| "y": 114, | |
| "id": "44" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 492, | |
| "y": 101, | |
| "id": "45" | |
| }, { | |
| "type": "ADDC16", | |
| "x": 404, | |
| "y": 91, | |
| "id": "46" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "16", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "15" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "17", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "18", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "19", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "19", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "20", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "20", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "21", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "4", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "21", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "22", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "5", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "22", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "23", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "6", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "23", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "24", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "7", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "24", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "25", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "8", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "25", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "26", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "9", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "26", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "27", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "10", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "27", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "28", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "11", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "28", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "29", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "12", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "29", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "30", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "13", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "30", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "15", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "31", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "14", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "31", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "16", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "32", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "17", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "32", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "18", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "33", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "32", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "33", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "19", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "34", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "33", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "34", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "20", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "35", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "34", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "35", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "21", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "36", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "35", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "36", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "22", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "37", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "36", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "37", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "23", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "38", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "37", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "38", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "24", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "39", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "38", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "39", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "25", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "40", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "39", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "40", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "26", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "41", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "40", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "41", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "27", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "42", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "41", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "42", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "28", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "43", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "42", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "43", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "29", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "44", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "43", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "44", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "30", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "45", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "44", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "45", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "31", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "46", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "45", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "46", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "46", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:CMOS_INV": { | |
| "nodes": [{ | |
| "type": "PMOS", | |
| "x": 72, | |
| "y": 335, | |
| "id": "0" | |
| }, { | |
| "type": "NMOS", | |
| "x": 189, | |
| "y": 336, | |
| "id": "1" | |
| }, { | |
| "type": "TRINARY_LOGIC_WIRE_JUNCTION", | |
| "x": 107, | |
| "y": 173, | |
| "id": "2" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:RELAY_NAND": { | |
| "nodes": [{ | |
| "type": "RELAY-OFF", | |
| "x": 78, | |
| "y": 271, | |
| "id": "0" | |
| }, { | |
| "type": "RELAY-ON", | |
| "x": 169, | |
| "y": 111, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:SAR": { | |
| "nodes": [{ | |
| "type": "SPLIT16", | |
| "x": 132, | |
| "y": 517, | |
| "id": "0" | |
| }, { | |
| "type": "BUNDLE16", | |
| "x": 109, | |
| "y": 434, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "2" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "3" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "3" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "4" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "4" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "5" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "5" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "6" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "6" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "7" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "7" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "8" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "8" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "9" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "9" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "10" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "10" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "11" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "11" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "12" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "12" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "13" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "13" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "14" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "14" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "15" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:CustomComponent:2": { | |
| "key": "2", | |
| "name": "shl 4", | |
| "inputs": [{ | |
| "pins": [{ | |
| "label": "", | |
| "width": 16 | |
| } | |
| ] | |
| } | |
| ], | |
| "outputs": [{ | |
| "pins": [{ | |
| "label": "", | |
| "width": 16 | |
| } | |
| ] | |
| } | |
| ], | |
| "diagram": { | |
| "nodes": [{ | |
| "type": "1", | |
| "x": 132, | |
| "y": 517, | |
| "id": "0" | |
| }, { | |
| "type": "1", | |
| "x": 132, | |
| "y": 364, | |
| "id": "1" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| } | |
| }, | |
| "NandGame:Levels:MULTIPLEXER": { | |
| "nodes": [{ | |
| "type": "INV", | |
| "x": 60, | |
| "y": 546.1169377880849, | |
| "id": "0" | |
| }, { | |
| "type": "NAND", | |
| "x": 316, | |
| "y": 444.8383175340212, | |
| "id": "1" | |
| }, { | |
| "type": "NAND", | |
| "x": 130, | |
| "y": 410.0195684259818, | |
| "id": "2" | |
| }, { | |
| "type": "NAND", | |
| "x": 181, | |
| "y": 135.13970686059358, | |
| "id": "3" | |
| } | |
| ], | |
| "connections": [{ | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "1" | |
| }, | |
| "target": { | |
| "nodeId": "1", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "0", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "input", | |
| "connectorId": "2" | |
| }, | |
| "target": { | |
| "nodeId": "2", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "2", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "1", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "3", | |
| "connectorId": "1" | |
| } | |
| }, { | |
| "source": { | |
| "nodeId": "3", | |
| "connectorId": "0" | |
| }, | |
| "target": { | |
| "nodeId": "output", | |
| "connectorId": "0" | |
| } | |
| } | |
| ] | |
| }, | |
| "NandGame:Levels:OPCODES2": { | |
| "destinations": [{ | |
| "key": "", | |
| "value": [false, false, false] | |
| }, { | |
| "key": "A =", | |
| "value": [true, false, false] | |
| }, { | |
| "key": "D =", | |
| "value": [false, true, false] | |
| }, { | |
| "key": "*A =", | |
| "value": [false, false, true] | |
| }, { | |
| "key": "A, D =", | |
| "value": [true, true, false] | |
| }, { | |
| "key": "D, *A =", | |
| "value": [false, true, true] | |
| }, { | |
| "key": "A, D, *A =", | |
| "value": [true, true, true] | |
| } | |
| ], | |
| "calculations": [{ | |
| "key": "D+A", | |
| "value": [true, false, false, false, false] | |
| }, { | |
| "key": "D-A", | |
| "value": [true, true, false, false, false] | |
| }, { | |
| "key": "A-D", | |
| "value": [true, true, false, false, true] | |
| }, { | |
| "key": "D+1", | |
| "value": [true, false, true, false, false] | |
| }, { | |
| "key": "A+1", | |
| "value": [true, false, true, false, true] | |
| }, { | |
| "key": "D-1", | |
| "value": [true, true, true, false, false] | |
| }, { | |
| "key": "A-1", | |
| "value": [true, true, true, false, true] | |
| }, { | |
| "key": "-D", | |
| "value": [true, true, false, true, true] | |
| }, { | |
| "key": "-A", | |
| "value": [true, true, false, true, false] | |
| }, { | |
| "key": "-1", | |
| "value": [true, true, true, true, false] | |
| }, { | |
| "key": "1", | |
| "value": [true, false, true, true, false] | |
| }, { | |
| "key": "D", | |
| "value": [true, false, false, true, true] | |
| }, { | |
| "key": "A", | |
| "value": [true, false, false, true, false] | |
| }, { | |
| "key": "D&A", | |
| "value": [false, false, false, false, false] | |
| }, { | |
| "key": "D|A", | |
| "value": [false, false, true, false, false] | |
| }, { | |
| "key": "~D", | |
| "value": [false, true, true, false, false] | |
| }, { | |
| "key": "~A", | |
| "value": [false, true, true, false, true] | |
| }, { | |
| "key": "0", | |
| "value": [false, false, false, true, false] | |
| } | |
| ], | |
| "jumps": [{ | |
| "key": "", | |
| "value": [false, false, false] | |
| }, { | |
| "key": "; JLT", | |
| "value": [true, false, false] | |
| }, { | |
| "key": "; JEQ", | |
| "value": [false, true, false] | |
| }, { | |
| "key": "; JGT", | |
| "value": [false, false, true] | |
| }, { | |
| "key": "; JLE", | |
| "value": [true, true, false] | |
| }, { | |
| "key": "; JGE", | |
| "value": [false, true, true] | |
| }, { | |
| "key": "; JMP", | |
| "value": [true, true, true] | |
| } | |
| ] | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment