Skip to content

Instantly share code, notes, and snippets.

@caderek
Created December 17, 2019 13:37
Show Gist options
  • Save caderek/6b5cfe211910d0cc988f25c0637fd84c to your computer and use it in GitHub Desktop.
Save caderek/6b5cfe211910d0cc988f25c0637fd84c to your computer and use it in GitHub Desktop.
Spawned VM, initial state:
{ inputs: [ 0 ], outputs: [], phaseSettings: [] }
[0]--------------------------------------------------
Op: INPUT | Pointer: 0 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[1]--------------------------------------------------
Op: JUMP_IF_TRUE | Pointer: 2 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 327
[2]--------------------------------------------------
Op: JUMP_IF_FALSE | Pointer: 5 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 0
b -> mode: IMMEDIATE, value: 11
[3]--------------------------------------------------
Op: OUTPUT | Pointer: 11 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 1
[4]--------------------------------------------------
Op: OUTPUT | Pointer: 13 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 0
[5]--------------------------------------------------
Op: INPUT | Pointer: 15 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[6]--------------------------------------------------
Op: INPUT | Pointer: 15 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[7]--------------------------------------------------
Op: MULTIPLY | Pointer: 17 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: -1
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 10
[8]--------------------------------------------------
Op: ADD | Pointer: 21 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 1
Save to:
-> mode: POSITION, address: 10
[9]--------------------------------------------------
Op: OUTPUT | Pointer: 25 | Rel base: 0
Params:
a -> mode: POSITION, value: 1
[10]--------------------------------------------------
Op: EQUALS | Pointer: 27 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 0
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 10
[11]--------------------------------------------------
Op: OUTPUT | Pointer: 31 | Rel base: 0
Params:
a -> mode: POSITION, value: 1
[12]--------------------------------------------------
Op: ADD | Pointer: 33 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 0
Save to:
-> mode: POSITION, address: 28
[13]--------------------------------------------------
Op: JUMP_IF_FALSE | Pointer: 37 | Rel base: 0
Params:
a -> mode: POSITION, value: 3
b -> mode: IMMEDIATE, value: 42
[14]--------------------------------------------------
Op: MULTIPLY | Pointer: 40 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: POSITION, value: 104
Save to:
-> mode: POSITION, address: 10
[15]--------------------------------------------------
Op: JUMP_IF_FALSE | Pointer: 44 | Rel base: 0
Params:
a -> mode: POSITION, value: 3
b -> mode: IMMEDIATE, value: 61
[16]--------------------------------------------------
Op: MULTIPLY | Pointer: 47 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: POSITION, value: 8
Save to:
-> mode: POSITION, address: 10
[17]--------------------------------------------------
Op: INPUT | Pointer: 51 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[18]--------------------------------------------------
Op: INPUT | Pointer: 51 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[19]--------------------------------------------------
Op: MULTIPLY | Pointer: 53 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: -1
Save to:
-> mode: POSITION, address: 10
[20]--------------------------------------------------
Op: ADD | Pointer: 57 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 1
Save to:
-> mode: POSITION, address: 10
[21]--------------------------------------------------
Op: OUTPUT | Pointer: 61 | Rel base: 0
Params:
a -> mode: POSITION, value: 1
[22]--------------------------------------------------
Op: EQUALS | Pointer: 63 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 1
Save to:
-> mode: POSITION, address: 10
[23]--------------------------------------------------
Op: OUTPUT | Pointer: 67 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
[24]--------------------------------------------------
Op: MULTIPLY | Pointer: 69 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 1
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 65
[25]--------------------------------------------------
Op: JUMP_IF_FALSE | Pointer: 73 | Rel base: 0
Params:
a -> mode: POSITION, value: 3
b -> mode: IMMEDIATE, value: 4
[26]--------------------------------------------------
Op: INPUT | Pointer: 76 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[27]--------------------------------------------------
Op: INPUT | Pointer: 76 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[28]--------------------------------------------------
Op: MULTIPLY | Pointer: 78 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: -1
Save to:
-> mode: POSITION, address: 10
[29]--------------------------------------------------
Op: ADD | Pointer: 82 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 1
Save to:
-> mode: POSITION, address: 10
[30]--------------------------------------------------
Op: OUTPUT | Pointer: 86 | Rel base: 0
Params:
a -> mode: POSITION, value: 1
[31]--------------------------------------------------
Op: EQUALS | Pointer: 88 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 1
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 10
[32]--------------------------------------------------
Op: OUTPUT | Pointer: 92 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
[33]--------------------------------------------------
Op: MULTIPLY | Pointer: 94 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 1
Save to:
-> mode: POSITION, address: 89
[34]--------------------------------------------------
Op: ADD | Pointer: 98 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 10
[35]--------------------------------------------------
Op: ADD | Pointer: 102 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: POSITION, value: 104
Save to:
-> mode: POSITION, address: 10
[36]--------------------------------------------------
Op: ADD | Pointer: 106 | Rel base: 0
Params:
a -> mode: POSITION, value: 10
b -> mode: POSITION, value: -1
Save to:
-> mode: POSITION, address: 10
[37]--------------------------------------------------
Op: JUMP_IF_FALSE | Pointer: 110 | Rel base: 0
Params:
a -> mode: POSITION, value: 3
b -> mode: IMMEDIATE, value: 82
[38]--------------------------------------------------
Op: INPUT | Pointer: 113 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[39]--------------------------------------------------
Op: INPUT | Pointer: 113 | Rel base: 0
Params:
Save to:
-> mode: POSITION, address: 8
[40]--------------------------------------------------
Op: MULTIPLY | Pointer: 115 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: -1
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 10
[41]--------------------------------------------------
Op: ADD | Pointer: 119 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: IMMEDIATE, value: 1
Save to:
-> mode: POSITION, address: 10
[42]--------------------------------------------------
Op: OUTPUT | Pointer: 123 | Rel base: 0
Params:
a -> mode: POSITION, value: 1
[43]--------------------------------------------------
Op: EQUALS | Pointer: 125 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 0
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 10
[44]--------------------------------------------------
Op: OUTPUT | Pointer: 129 | Rel base: 0
Params:
a -> mode: POSITION, value: 1
[45]--------------------------------------------------
Op: MULTIPLY | Pointer: 131 | Rel base: 0
Params:
a -> mode: IMMEDIATE, value: 1
b -> mode: POSITION, value: 0
Save to:
-> mode: POSITION, address: 126
[46]--------------------------------------------------
Op: MULTIPLY | Pointer: 135 | Rel base: 0
Params:
a -> mode: POSITION, value: 10
b -> mode: POSITION, value: 11
Save to:
-> mode: POSITION, address: 10
[47]--------------------------------------------------
Op: ADD | Pointer: 139 | Rel base: 0
Params:
a -> mode: POSITION, value: 11
b -> mode: POSITION, value: 8
Save to:
-> mode: POSITION, address: 10
[48]--------------------------------------------------
Op: JUMP_IF_FALSE | Pointer: 143 | Rel base: 0
Params:
a -> mode: POSITION, value: 3
b -> mode: IMMEDIATE, value: 64
[49]--------------------------------------------------
Op: MULTIPLY | Pointer: 146 | Rel base: 0
Params:
a -> mode: POSITION, value: 0
b -> mode: POSITION, value: 10
Save to:
-> mode: POSITION, address: 10
Time: 297.092ms
Solution to part 1: 1967
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment