projects
/
advent-of-code-2019.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5f982cb
)
Add some comments for the opcodes
author
Brett Parker
<iDunno@sommitrealweird.co.uk>
Sun, 6 Dec 2020 20:27:24 +0000
(20:27 +0000)
committer
Brett Parker
<iDunno@sommitrealweird.co.uk>
Sun, 6 Dec 2020 20:27:24 +0000
(20:27 +0000)
day5/computer.sh
patch
|
blob
|
history
diff --git
a/day5/computer.sh
b/day5/computer.sh
index e0eab88316fb8a769b7455e048e89fe15c5e122a..529af8aba1331988f25fcc6472a3aa061ca9261c 100644
(file)
--- a/
day5/computer.sh
+++ b/
day5/computer.sh
@@
-23,6
+23,7
@@
run_program() {
param_count=3
case $instruction in
01|02)
param_count=3
case $instruction in
01|02)
+ # 01 - add, 02 multiply
symbol="+"
if [ $instruction == "02" ]; then
symbol="*"
symbol="+"
if [ $instruction == "02" ]; then
symbol="*"
@@
-38,12
+39,14
@@
run_program() {
data[$res_loc]=$(($val1 $symbol $val2))
;;
03)
data[$res_loc]=$(($val1 $symbol $val2))
;;
03)
+ # 03 - read input
read -p "input: " input
res_loc=${data[$((pos+1))]}
data[$res_loc]=$input
param_count=1
;;
04)
read -p "input: " input
res_loc=${data[$((pos+1))]}
data[$res_loc]=$input
param_count=1
;;
04)
+ # 04 - output
if [ ${immediate[1]} -eq 1 ]; then
echo ${data[$((pos+1))]}
else
if [ ${immediate[1]} -eq 1 ]; then
echo ${data[$((pos+1))]}
else
@@
-53,6
+56,7
@@
run_program() {
param_count=1
;;
05|06)
param_count=1
;;
05|06)
+ # 05 - jump-if-true, 06 - jump-if-false
val=${data[$((pos+1))]}
jumpto=${data[$((pos+2))]}
param_count=2
val=${data[$((pos+1))]}
jumpto=${data[$((pos+2))]}
param_count=2
@@
-68,7
+72,8
@@
run_program() {
continue
fi
;;
continue
fi
;;
- 07)
+ 07|08)
+ # 07 - is less than, 08 - is equal
val1=${data[$((pos+1))]}
val2=${data[$((pos+2))]}
res_pos=${data[$((pos+3))]}
val1=${data[$((pos+1))]}
val2=${data[$((pos+2))]}
res_pos=${data[$((pos+3))]}
@@
-78,26
+83,15
@@
run_program() {
if [ ${immediate[2]} -eq 0 ]; then
val2=${data[$val2]}
fi
if [ ${immediate[2]} -eq 0 ]; then
val2=${data[$val2]}
fi
- if [ $val1 -lt $val2 ]; then
- data[$res_pos]=1
+ data[$res_pos]=0
+ if [ "$instruction" == "07" ]; then
+ if [ $val1 -lt $val2 ]; then
+ data[$res_pos]=1
+ fi
else
else
- data[$res_pos]=0
- fi
- ;;
- 08)
- val1=${data[$((pos+1))]}
- val2=${data[$((pos+2))]}
- res_pos=${data[$((pos+3))]}
- if [ ${immediate[1]} -eq 0 ]; then
- val1=${data[$val1]}
- fi
- if [ ${immediate[2]} -eq 0 ]; then
- val2=${data[$val2]}
- fi
- if [ $val1 -eq $val2 ]; then
- data[$res_pos]=1
- else
- data[$res_pos]=0
+ if [ $val1 -eq $val2 ]; then
+ data[$res_pos]=1
+ fi
fi
;;
99)
fi
;;
99)