Skip to content

Instantly share code, notes, and snippets.

@Otto42
Created October 21, 2015 18:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Otto42/b520710eb40bf95bde12 to your computer and use it in GitHub Desktop.
Save Otto42/b520710eb40bf95bde12 to your computer and use it in GitHub Desktop.
-- HUMAN RESOURCE MACHINE PROGRAM -- -- 41 Sorting Floor - Basic Bubble Sort --
-- HUMAN RESOURCE MACHINE PROGRAM --
-- 41 Sorting Floor - Basic Bubble Sort --
-- Does not achieve any records, but demonstrates the principle of a bubble sort. --
-- Explanation --
-- Each element is copied to the floor until a zero is reached. --
-- CMP is set to the max elements location. --
-- CMP 2 is decremented and each element compared. If the result is not negative, the elements are swapped, using TMP as a temporary holding area. --
-- Once CMP 2 becomes negative, CMP is decreased and the loop repeated. --
-- Thus, higher numbers "bubble" to the top, sorting the floor. --
-- When CMP becomes zero, the sort is complete, and the floor contents are output. --
-- To handle the final "single element" case, the bubble sort is skipped entirely and it goes straight to the output. --
a:
COPYFROM 24
COPYTO 23
COMMENT 2
b:
INBOX
JUMPZ c
COPYTO [23]
BUMPUP 23
JUMP b
c:
COPYFROM 23
COPYTO 22
BUMPDN 22
COPYTO 21
BUMPDN 21
JUMPN i
COMMENT 1
d:
e:
COPYFROM [22]
SUB [21]
JUMPN f
COMMENT 3
COPYFROM [22]
COPYTO 20
COPYFROM [21]
COPYTO [22]
COPYFROM 20
COPYTO [21]
f:
BUMPDN 21
JUMPN g
JUMP e
g:
BUMPDN 22
JUMPZ h
COPYTO 21
BUMPDN 21
JUMP d
h:
i:
COMMENT 0
j:
BUMPDN 23
JUMPN a
COPYFROM [23]
OUTBOX
JUMP j
DEFINE COMMENT 0
eJyrYGBgsJfmVnaXOKf3XJTB4bmoqoe4eJK/tqRd1Gepu7Gb5ZOTvislJ/lrfI15rtEeXq952Lte08Du
ucYkq9vKHlqrlSo1XstWagCNYThuoqwkbFrl9930Qsh7C7Xo59Zq0dEOhoHdjoe92Z0TbdidlZVA6sQD
rBWPRYUohMXNlQXx2cJWqgWFHfbeFWqUAuLH5YlJrspbEw9iO+Wflc4qjhdbVlkhGlTzTKqpdqL6q5pc
I7sqT1uuQgaHvvzzjiB1WW3u4tvaJqq3td42b2v94rmtzTv5VMfOjLy+BZlSE6VSvSatiV815bD3qinx
YiD1H+frS5gu/id5cp2YJIifuiREQXKJWjSIva5MYKpbuencSeUnL3yq3HhRr+HR+Wft2mfFOmNOg+Tl
ZtbNWjQ9bXbfVMdlcVP81h+bbH541ZSrx6xmlJxKnNNzUnMe29Gl83/utl2guZx3vu+cZ7MiJ4H0aW6M
nJS4PnLSxdXTZu5d6bf+5ooN+1RXXj12cXXPybsbek5Kbmc7GrvryubYXaZzp+4QmKq4pXDi0k2ve0B6
A0/s6pt74uEe1hMzL4H4O49HTpp7YlG/4FmTLs4LJl2yly73/rz6Zr7rNa1dhlce7lE9f3Kv7hmnnQyj
YBQQAAB+hsbT;
DEFINE COMMENT 1
eJxbxMDAsF2EW3m7yLEWBjB7ahuI9hflVv4tniPfLT1XVlhprqy6So68vPpKNWaNUON2tUlW+1Uk7DfL
83jel1D1KJe84+WsLBlkrTY/TF49LHK7+pr4es1LVfWa/E3vVWW6i1WYe5rlZLqNxb43gcy+bXZLhdsi
1yjcQi2v3fJes7914URxW40pk+00phy2j5zU7Ti1LdhZLe+1s1r0a+e5smB3+W6VEQ8wDEwOkOkG8U/7
t8gdDjornRaxVaYqylpRLTbXqCg21O1WDI+nV2SS/+fgCyFekfPD4qJ5Y9riHRq44u41V0XVtjeFp3Zc
D4H4US/3rLReroHdv2y16Gk5EHMf5WyVUStYIexWflOwrOKgkF2VvoRZbaXGq5r/OssqV1kalT53CCs8
72hV1OZSV2rrrlVx2HtZpWGgXdWO0K6qb/nLKqcUWxWpN67KU28EmZfUKSaZ1JlS6tZlXH5rqncZSGzp
fH0J2wVzZXMXSgblLlxbBBI7OG+rTOgqMUkQe+4iVQ/OVbbuIDbropTSt6tqSkBsp6mmc+f1X17wqzNt
nVvXlc1l3cXb5/U/3LNv2oZ9i6bvPb5oesPlvqn7bv2bWHqXrT/m3qeefbdA+lYu952TuuTEqrmLone8
XFRyqnGx0LmpS2declyRcWXrmobLa9f/Ose76d3RyE0b9h3cuGSr79qopZar38wvXMkyH6Sfc6/A1Ld7
92x5u/fdDRg/dG/hRNn9i/oPHtnVd/VY5KSXJ1jmm56sX7vzePSOyKMn9/oemLEfpJbxgNDuqaczroDY
rtdMum4+lOn+8cKnE8SvvH+5t/J+1+Leh9pnGUbBgAEAvjoIqA;
DEFINE COMMENT 2
eJzLYGBguMD9T7Jb+pkUkMlgLWytuF8w0Wa/oHcyiB/DvjPjsOTODBB7sWpHFrfqyzRuVd4YefVbKtvV
QxSStSo1/htdCGm3LMj2t55kJW47UV3cVl8CpL7YS19itYeKab8nxCxu77PS/n4TRNYHrBC2DxGTzAvd
KjMv7Jze8uBEm9P+EvYgNb+SVwgbJR22qEvyCviVfCTOLt07mS0zOelftlq0Xu6L4Krc847Tcjy0puW4
i4PUu5VXiE6rdxfPaosXA/Hn1ZyVzqtWMc2rnpIAka9tdyt32qlVIX+dq2XmJZCY09SpbecmOE42m3B/
2rz+7m1ek9iO3pq69/isWQ0HEufs2ZI45/60WbNMui7NONYCUs+49ntT6+p7zYUrfTp1l02bmbqkfu3f
JQ0HBJcvPcG56te5xPUbL07csPHizi0NB+ZuLd4+d+v61YpbTOfyboqc9HP9656na026QOa83aveeHHf
sRbfA7sXbt2/8SJILHTv96aZBxbWXD12qeromWMtjucW9Tueuz/t4emiJWsPyW5kGAWjgMYAABhyrK8;
DEFINE COMMENT 3
eJzzYWBg2G71XDfe9Lmusn6robs2j9lqpST/44rzw44rHolzVvZOble7mL5cVy1vst3aotfO6o3Srsw9
0q4/pu52kpmXbPtjxXfTK5u1dU7ufa4xY/93pRn7gUYyyPt+NtvuO9lXO4i553Pw203KoRv2RaVJpaZl
T7LyyvFOjssrnHgrf/fCWSVau+6Vr1/NV7l74aY6qdSqhsPeVQ0GdiAz5vV/NjObYOue1Sa0G8TfNDHU
mGt6e3jdbIeGqwsEV1Qug9jV1cvcA6L5eky6Fk2X6QaxV+76r+O54/40zx3d23R3lt4FifXutjFhPPBf
5+qxQ6q6Zw6pvr3wX8fwyjb9n1dXWbpee+7ges0rYO3V+WGyl4xS3l6wz1159lVl7vF7zUuPHmsxPOjQ
cHO3QwPDKBgFwwwAANfFhK4;
DEFINE LABEL 20
eJxTY2BgUPc6bNEU7ml7K8bTVimDxwwoxFAVtd1pVXRBXVWU2QYQv6jg5F654mkzZ5VcqnIrr9RYVrlN
X6qOx9Ov3bssqfNuwa2pt1SKpoUaF027EOI01aSLa7rQbpC+vSv/6+xd+WMFhH1iFYheuOqT8tr13Mo7
t2yV2bjdWjF2V4Jm724es5W77sYK7pqSILpeLY9hFIyCUUAXAADqDzv4;
DEFINE LABEL 21
eJyzZWBgyNffpl+u02rIrHHbfLXSap/pCtWJ/+W9yx4rFNRZq0VOmqxdN6vaxHQuUClDtfttc2GPSVbF
Xq8qi726Jnz3+LECJO7s2WpY7GVj4h6YHzEvLDxHL4ox+F3cc4d1yZ+UJ6XMM/iV3B7+K3n9DK3UoiUg
9adKJ6r/KjOw+1V2qWpSOcTse+UJmv/qKjWONfzXudW0yvJWk2TQqkbemHO1F9Pzqguy7aoKskHqateF
GptuO6T6cAe3suNubuXWfeI6W/fnGhke3O5kePBuLOMB4/LWfQV1njt8Os9uu9zbuXlRv+uGy722QFry
1K4+hlEwCkYBHAAAblJnCQ;
DEFINE LABEL 22
eJwzYmBg2O6r6mHvuCbe35ov39qSucfa8vh0eavFi8RtZTeed/E/VO9fcqoo1vkMUCnDu8LtTpeKGIPl
ii9VvStcsrWoYOkJtQL56yA5v5LtTnWl85z7mr7lX2rtyLLr3RF6aUaizbNZPGazZr07ClITuJXHLHDr
POfU7a8qJbebbQjcOvMSSPzrrhz5mQda5CKPHlLdeKrVsPA8j2fh+fbwo2cWZG48dbcg97h32dpDl6pC
9xqX/93uXQbS07jttnnjNnGdjdtvqTCMglEwCsgCANZ/V20;
DEFINE LABEL 23
eJzTYWBg2OzK4LDZNcl/t5PA1N1OVzYDhRikXQ3smP1yjXaFPtdNi5hnEBd929wpRsLeKeZubFy0VKq/
35Ti1R41JSC1admVGrfyxXUmlZ/T29d8Tg8kdqhim35X1fema1VvN4H4RrPnGdTNDs9hmiW0G8RPnHNL
RXbNJ2XftRPVDded0/u53i5q5topCbJrLqbvXRmec3SZWt7S+R1Ztgu+5U9dOrXt7appM/9uh+gdBaNg
FFAPAAC5jEfA;
DEFINE LABEL 24
eJxzY2BgqDZ57lBsvt2p23G7k757nmu6q1p0tMP3pnbLrsX6JtE7Hhv/3M3t/XAPUCmDWmybi1psfsS7
uMu97+KEdoPEimKfOxzLnee8rszADsR/F/e9aV/B9yYQWy5hw76otA37vHLSD5ZVNBwAiSV1PneY1FXl
d6+rs/ZQ9+6FZd0P90T1QOTcuvJcV03JNSqd91+ncpmBNueqc3qi69tcEtd/8Ty57m4s41qp1KPL+PIV
Fx4tLOs+WvhoUkHd3bnTZmauWbJVc6PQ7qubIeasPMtjpnvmvOPBIzszfh7aWf3zUNeEncd3L5Q85bjs
7YW0da7X/NZ33ixa4nnPpMvz3qWqs3cWZLpeMwx8enmec+tFiD9GwSgYCQAAiIyCHw;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment