From 4c6c41b055d857f7dc2599262720a83da8d215be Mon Sep 17 00:00:00 2001 From: cos Date: Mon, 9 Dec 2019 21:16:35 +0100 Subject: Add day09, 2019 --- 2019/rust/day09/programs/template | 21 +++++++++++++ .../test-add_immediate_immediate_position.iac | 29 ++++++++++++++++++ .../test-add_immediate_immediate_position.out | 1 + .../test-add_immediate_position_position.iac | 29 ++++++++++++++++++ .../test-add_immediate_position_position.out | 1 + .../test-add_position_immediate_position.iac | 32 ++++++++++++++++++++ .../test-add_position_immediate_position.out | 1 + .../test-add_position_position_position.iac | 32 ++++++++++++++++++++ .../test-add_position_position_position.out | 1 + .../test-eq_immediate_immediate_position.iac | 30 +++++++++++++++++++ .../test-eq_immediate_immediate_position.out | 1 + .../test-eq_immediate_position_position.iac | 30 +++++++++++++++++++ .../test-eq_immediate_position_position.out | 1 + .../test-eq_position_immediate_position.iac | 30 +++++++++++++++++++ .../test-eq_position_immediate_position.out | 1 + .../test-eq_position_position_position.iac | 30 +++++++++++++++++++ .../test-eq_position_position_position.out | 1 + 2019/rust/day09/programs/test-halt.iac | 21 +++++++++++++ 2019/rust/day09/programs/test-halt.out | 0 .../programs/test-in_position_out_position.iac | 28 ++++++++++++++++++ .../programs/test-in_position_out_position.in | 1 + .../programs/test-in_position_out_position.out | 1 + .../programs/test-jmpfalse_immediate_immediate.iac | 28 ++++++++++++++++++ .../programs/test-jmpfalse_immediate_immediate.out | 1 + .../programs/test-jmpfalse_immediate_position.iac | 31 ++++++++++++++++++++ .../programs/test-jmpfalse_immediate_position.out | 1 + .../programs/test-jmpfalse_position_immediate.iac | 31 ++++++++++++++++++++ .../programs/test-jmpfalse_position_immediate.out | 1 + .../programs/test-jmpfalse_position_position.iac | 34 ++++++++++++++++++++++ .../programs/test-jmpfalse_position_position.out | 1 + .../programs/test-jmptrue_immediate_immediate.iac | 29 ++++++++++++++++++ .../programs/test-jmptrue_immediate_immediate.out | 1 + .../programs/test-jmptrue_immediate_position.iac | 31 ++++++++++++++++++++ .../programs/test-jmptrue_immediate_position.out | 1 + .../programs/test-jmptrue_position_immediate.iac | 28 ++++++++++++++++++ .../programs/test-jmptrue_position_immediate.out | 1 + .../programs/test-jmptrue_position_position.iac | 31 ++++++++++++++++++++ .../programs/test-jmptrue_position_position.out | 1 + 2019/rust/day09/programs/test-out_immediate.iac | 11 +++++++ 2019/rust/day09/programs/test-out_immediate.out | 1 + 40 files changed, 585 insertions(+) create mode 100644 2019/rust/day09/programs/template create mode 100644 2019/rust/day09/programs/test-add_immediate_immediate_position.iac create mode 100644 2019/rust/day09/programs/test-add_immediate_immediate_position.out create mode 100644 2019/rust/day09/programs/test-add_immediate_position_position.iac create mode 100644 2019/rust/day09/programs/test-add_immediate_position_position.out create mode 100644 2019/rust/day09/programs/test-add_position_immediate_position.iac create mode 100644 2019/rust/day09/programs/test-add_position_immediate_position.out create mode 100644 2019/rust/day09/programs/test-add_position_position_position.iac create mode 100644 2019/rust/day09/programs/test-add_position_position_position.out create mode 100644 2019/rust/day09/programs/test-eq_immediate_immediate_position.iac create mode 100644 2019/rust/day09/programs/test-eq_immediate_immediate_position.out create mode 100644 2019/rust/day09/programs/test-eq_immediate_position_position.iac create mode 100644 2019/rust/day09/programs/test-eq_immediate_position_position.out create mode 100644 2019/rust/day09/programs/test-eq_position_immediate_position.iac create mode 100644 2019/rust/day09/programs/test-eq_position_immediate_position.out create mode 100644 2019/rust/day09/programs/test-eq_position_position_position.iac create mode 100644 2019/rust/day09/programs/test-eq_position_position_position.out create mode 100644 2019/rust/day09/programs/test-halt.iac create mode 100644 2019/rust/day09/programs/test-halt.out create mode 100644 2019/rust/day09/programs/test-in_position_out_position.iac create mode 100644 2019/rust/day09/programs/test-in_position_out_position.in create mode 100644 2019/rust/day09/programs/test-in_position_out_position.out create mode 100644 2019/rust/day09/programs/test-jmpfalse_immediate_immediate.iac create mode 100644 2019/rust/day09/programs/test-jmpfalse_immediate_immediate.out create mode 100644 2019/rust/day09/programs/test-jmpfalse_immediate_position.iac create mode 100644 2019/rust/day09/programs/test-jmpfalse_immediate_position.out create mode 100644 2019/rust/day09/programs/test-jmpfalse_position_immediate.iac create mode 100644 2019/rust/day09/programs/test-jmpfalse_position_immediate.out create mode 100644 2019/rust/day09/programs/test-jmpfalse_position_position.iac create mode 100644 2019/rust/day09/programs/test-jmpfalse_position_position.out create mode 100644 2019/rust/day09/programs/test-jmptrue_immediate_immediate.iac create mode 100644 2019/rust/day09/programs/test-jmptrue_immediate_immediate.out create mode 100644 2019/rust/day09/programs/test-jmptrue_immediate_position.iac create mode 100644 2019/rust/day09/programs/test-jmptrue_immediate_position.out create mode 100644 2019/rust/day09/programs/test-jmptrue_position_immediate.iac create mode 100644 2019/rust/day09/programs/test-jmptrue_position_immediate.out create mode 100644 2019/rust/day09/programs/test-jmptrue_position_position.iac create mode 100644 2019/rust/day09/programs/test-jmptrue_position_position.out create mode 100644 2019/rust/day09/programs/test-out_immediate.iac create mode 100644 2019/rust/day09/programs/test-out_immediate.out (limited to '2019/rust/day09/programs') diff --git a/2019/rust/day09/programs/template b/2019/rust/day09/programs/template new file mode 100644 index 0000000..b417129 --- /dev/null +++ b/2019/rust/day09/programs/template @@ -0,0 +1,21 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Halt +99 diff --git a/2019/rust/day09/programs/test-add_immediate_immediate_position.iac b/2019/rust/day09/programs/test-add_immediate_immediate_position.iac new file mode 100644 index 0000000..a9b7495 --- /dev/null +++ b/2019/rust/day09/programs/test-add_immediate_immediate_position.iac @@ -0,0 +1,29 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Add +1101,8,14,7 + +4,7 + +# Halt +99 + +# Result +0 diff --git a/2019/rust/day09/programs/test-add_immediate_immediate_position.out b/2019/rust/day09/programs/test-add_immediate_immediate_position.out new file mode 100644 index 0000000..2bd5a0a --- /dev/null +++ b/2019/rust/day09/programs/test-add_immediate_immediate_position.out @@ -0,0 +1 @@ +22 diff --git a/2019/rust/day09/programs/test-add_immediate_position_position.iac b/2019/rust/day09/programs/test-add_immediate_position_position.iac new file mode 100644 index 0000000..20188cf --- /dev/null +++ b/2019/rust/day09/programs/test-add_immediate_position_position.iac @@ -0,0 +1,29 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Add +101,14,8,7 + +4,7 + +# Halt +99 + +# Result +0, 13 diff --git a/2019/rust/day09/programs/test-add_immediate_position_position.out b/2019/rust/day09/programs/test-add_immediate_position_position.out new file mode 100644 index 0000000..f64f5d8 --- /dev/null +++ b/2019/rust/day09/programs/test-add_immediate_position_position.out @@ -0,0 +1 @@ +27 diff --git a/2019/rust/day09/programs/test-add_position_immediate_position.iac b/2019/rust/day09/programs/test-add_position_immediate_position.iac new file mode 100644 index 0000000..b5894d8 --- /dev/null +++ b/2019/rust/day09/programs/test-add_position_immediate_position.iac @@ -0,0 +1,32 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Add +1001,8,9,7 + +4,7 + +# Halt +99 + +# Result +0, 21 + +# Halt +99 diff --git a/2019/rust/day09/programs/test-add_position_immediate_position.out b/2019/rust/day09/programs/test-add_position_immediate_position.out new file mode 100644 index 0000000..64bb6b7 --- /dev/null +++ b/2019/rust/day09/programs/test-add_position_immediate_position.out @@ -0,0 +1 @@ +30 diff --git a/2019/rust/day09/programs/test-add_position_position_position.iac b/2019/rust/day09/programs/test-add_position_position_position.iac new file mode 100644 index 0000000..c68d932 --- /dev/null +++ b/2019/rust/day09/programs/test-add_position_position_position.iac @@ -0,0 +1,32 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Add +1,8,9,7 + +4,7 + +# Halt +99 + +# Result +0, 11, 81 + +# Halt +99 diff --git a/2019/rust/day09/programs/test-add_position_position_position.out b/2019/rust/day09/programs/test-add_position_position_position.out new file mode 100644 index 0000000..cd5b025 --- /dev/null +++ b/2019/rust/day09/programs/test-add_position_position_position.out @@ -0,0 +1 @@ +92 diff --git a/2019/rust/day09/programs/test-eq_immediate_immediate_position.iac b/2019/rust/day09/programs/test-eq_immediate_immediate_position.iac new file mode 100644 index 0000000..4bdf1d1 --- /dev/null +++ b/2019/rust/day09/programs/test-eq_immediate_immediate_position.iac @@ -0,0 +1,30 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Add +1108,5,5,7 + +# Out +4,7 + +# Halt +99 + +# Result +0 diff --git a/2019/rust/day09/programs/test-eq_immediate_immediate_position.out b/2019/rust/day09/programs/test-eq_immediate_immediate_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-eq_immediate_immediate_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-eq_immediate_position_position.iac b/2019/rust/day09/programs/test-eq_immediate_position_position.iac new file mode 100644 index 0000000..caaeee9 --- /dev/null +++ b/2019/rust/day09/programs/test-eq_immediate_position_position.iac @@ -0,0 +1,30 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Add +108,99,6,7 + +# Out +4,7 + +# Halt +99 + +# Result +0 diff --git a/2019/rust/day09/programs/test-eq_immediate_position_position.out b/2019/rust/day09/programs/test-eq_immediate_position_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-eq_immediate_position_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-eq_position_immediate_position.iac b/2019/rust/day09/programs/test-eq_position_immediate_position.iac new file mode 100644 index 0000000..51f2129 --- /dev/null +++ b/2019/rust/day09/programs/test-eq_position_immediate_position.iac @@ -0,0 +1,30 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Equals +1008,6,99,7 + +# Out +4,7 + +# Halt +99 + +# Result +0 diff --git a/2019/rust/day09/programs/test-eq_position_immediate_position.out b/2019/rust/day09/programs/test-eq_position_immediate_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-eq_position_immediate_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-eq_position_position_position.iac b/2019/rust/day09/programs/test-eq_position_position_position.iac new file mode 100644 index 0000000..de2bc1f --- /dev/null +++ b/2019/rust/day09/programs/test-eq_position_position_position.iac @@ -0,0 +1,30 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Equals +8,6,6,7 + +# Out +4,7 + +# Halt +99 + +# Result +0 diff --git a/2019/rust/day09/programs/test-eq_position_position_position.out b/2019/rust/day09/programs/test-eq_position_position_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-eq_position_position_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-halt.iac b/2019/rust/day09/programs/test-halt.iac new file mode 100644 index 0000000..b417129 --- /dev/null +++ b/2019/rust/day09/programs/test-halt.iac @@ -0,0 +1,21 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# Halt +99 diff --git a/2019/rust/day09/programs/test-halt.out b/2019/rust/day09/programs/test-halt.out new file mode 100644 index 0000000..e69de29 diff --git a/2019/rust/day09/programs/test-in_position_out_position.iac b/2019/rust/day09/programs/test-in_position_out_position.iac new file mode 100644 index 0000000..1892ecf --- /dev/null +++ b/2019/rust/day09/programs/test-in_position_out_position.iac @@ -0,0 +1,28 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# In +3,5 +# Out +4,5 +# Halt +99 + +# Output value +0 diff --git a/2019/rust/day09/programs/test-in_position_out_position.in b/2019/rust/day09/programs/test-in_position_out_position.in new file mode 100644 index 0000000..425151f --- /dev/null +++ b/2019/rust/day09/programs/test-in_position_out_position.in @@ -0,0 +1 @@ +40 diff --git a/2019/rust/day09/programs/test-in_position_out_position.out b/2019/rust/day09/programs/test-in_position_out_position.out new file mode 100644 index 0000000..425151f --- /dev/null +++ b/2019/rust/day09/programs/test-in_position_out_position.out @@ -0,0 +1 @@ +40 diff --git a/2019/rust/day09/programs/test-jmpfalse_immediate_immediate.iac b/2019/rust/day09/programs/test-jmpfalse_immediate_immediate.iac new file mode 100644 index 0000000..e926e3e --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_immediate_immediate.iac @@ -0,0 +1,28 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpFalse +1106,0,5 + +# Out +104,-1 +104,1 + +# Halt +99 diff --git a/2019/rust/day09/programs/test-jmpfalse_immediate_immediate.out b/2019/rust/day09/programs/test-jmpfalse_immediate_immediate.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_immediate_immediate.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-jmpfalse_immediate_position.iac b/2019/rust/day09/programs/test-jmpfalse_immediate_position.iac new file mode 100644 index 0000000..7048632 --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_immediate_position.iac @@ -0,0 +1,31 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpFalse +106,0,8 + +# Out +104,-1 +104,1 + +# Halt +99 + +# Jump target +5 diff --git a/2019/rust/day09/programs/test-jmpfalse_immediate_position.out b/2019/rust/day09/programs/test-jmpfalse_immediate_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_immediate_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-jmpfalse_position_immediate.iac b/2019/rust/day09/programs/test-jmpfalse_position_immediate.iac new file mode 100644 index 0000000..4b00314 --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_position_immediate.iac @@ -0,0 +1,31 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpFalse +1006,8,5 + +# Out +104,-1 +104,1 + +# Halt +99 + +# Value +0 diff --git a/2019/rust/day09/programs/test-jmpfalse_position_immediate.out b/2019/rust/day09/programs/test-jmpfalse_position_immediate.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_position_immediate.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-jmpfalse_position_position.iac b/2019/rust/day09/programs/test-jmpfalse_position_position.iac new file mode 100644 index 0000000..ea536f7 --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_position_position.iac @@ -0,0 +1,34 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpFalse +6,9,8 + +# Out +104,-1 +104,1 + +# Halt +99 + +# Target addr +5 + +# Value +0 diff --git a/2019/rust/day09/programs/test-jmpfalse_position_position.out b/2019/rust/day09/programs/test-jmpfalse_position_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmpfalse_position_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-jmptrue_immediate_immediate.iac b/2019/rust/day09/programs/test-jmptrue_immediate_immediate.iac new file mode 100644 index 0000000..cc4d669 --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_immediate_immediate.iac @@ -0,0 +1,29 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpTrue +1105,1,5 + +# Out +104,-1 +104,1 + +# Halt +99 + diff --git a/2019/rust/day09/programs/test-jmptrue_immediate_immediate.out b/2019/rust/day09/programs/test-jmptrue_immediate_immediate.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_immediate_immediate.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-jmptrue_immediate_position.iac b/2019/rust/day09/programs/test-jmptrue_immediate_position.iac new file mode 100644 index 0000000..a25b903 --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_immediate_position.iac @@ -0,0 +1,31 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpTrue +105,1,8 + +# Out +104,-1 +104,1 + +# Halt +99 + +# Jump target +5 diff --git a/2019/rust/day09/programs/test-jmptrue_immediate_position.out b/2019/rust/day09/programs/test-jmptrue_immediate_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_immediate_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-jmptrue_position_immediate.iac b/2019/rust/day09/programs/test-jmptrue_position_immediate.iac new file mode 100644 index 0000000..a4f4245 --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_position_immediate.iac @@ -0,0 +1,28 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpTrue +1005,0,5 + +# Out +104,-1 +104,1 + +# Halt +99 diff --git a/2019/rust/day09/programs/test-jmptrue_position_immediate.out b/2019/rust/day09/programs/test-jmptrue_position_immediate.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_position_immediate.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-jmptrue_position_position.iac b/2019/rust/day09/programs/test-jmptrue_position_position.iac new file mode 100644 index 0000000..ed68de5 --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_position_position.iac @@ -0,0 +1,31 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, +# +# 1 (3) Add +# 2 (3) Mul +# 7 (3) LessThan +# 8 (3) Equals +# 3 (1) In +# 4 (1) Out +# 5 (2) JmpTrue +# 6 (2) JmpFalse +# 9 (1) BaseMod +# 99 (0) Halt + +# JmpTrue +5,0,8 + +# Out +104,-1 +104,1 + +# Halt +99 + +# Addr +5 diff --git a/2019/rust/day09/programs/test-jmptrue_position_position.out b/2019/rust/day09/programs/test-jmptrue_position_position.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2019/rust/day09/programs/test-jmptrue_position_position.out @@ -0,0 +1 @@ +1 diff --git a/2019/rust/day09/programs/test-out_immediate.iac b/2019/rust/day09/programs/test-out_immediate.iac new file mode 100644 index 0000000..4aa8ccf --- /dev/null +++ b/2019/rust/day09/programs/test-out_immediate.iac @@ -0,0 +1,11 @@ +# ABCDE +# 210xx +# +# DE - two-digit opcode, xx == opcode x +# C - mode of 1st parameter, 0 == position mode +# B - mode of 2nd parameter, 1 == immediate mode +# A - mode of 3rd parameter, 0 == relative mode, + +# Out immediate +104,123 +99 diff --git a/2019/rust/day09/programs/test-out_immediate.out b/2019/rust/day09/programs/test-out_immediate.out new file mode 100644 index 0000000..190a180 --- /dev/null +++ b/2019/rust/day09/programs/test-out_immediate.out @@ -0,0 +1 @@ +123 -- cgit v1.2.3