It gets worse.
Later, they add registers, allowing you to pull from a spot defined by another number in memory.
Try determining how many of a certain item is already registered in memory.
Try alphabetizing two word strings, sending out the one that's first alphabetically:
-- HUMAN RESOURCE MACHINE PROGRAM --
COPYFROM 23 //Creates string start pointers
COPYTO 21
COPYFROM 24
COPYTO 22
a:
INBOX //Copies first string to line
COPYTO [23]
JUMPZ b
BUMPUP 23
JUMP a
b:
c:
INBOX //Copies second string to line
COPYTO [24]
JUMPZ d
BUMPUP 24
JUMP c
d:
COPYFROM 21 //Resets pointers for search
COPYTO 23
COPYFROM 22
COPYTO 24
e:
COPYFROM [24] //Checks for strings ending
JUMPZ j
COPYFROM [23]
JUMPZ g
SUB [24] //Compares letters
JUMPZ f
JUMPN i
JUMP l
f:
BUMPUP 23 //Increases pointers
BUMPUP 24
JUMP e
g:
h:
i:
COPYFROM [21] //Sends first string
JUMPZ m
OUTBOX
BUMPUP 21
JUMP h
j:
k:
l:
COPYFROM [22] //Sends second string
JUMPZ n
OUTBOX
BUMPUP 22
JUMP k
m:
n:
It's a thing.