The Annotated Synacor Challenge
by Matt Keeter
based on the puzzles by Eric Wastl
See this blog post for details
self-test:
0000noop
0001noop
0002out 'W'
0004out 'e'
0006out 'l'
0008out 'c'
0010out 'o'
0012out 'm'
0014out 'e'
0016out ' '
0018out 't'
0020out 'o'
0022out ' '
0024out 't'
0026out 'h'
0028out 'e'
0030out ' '
0032out 'S'
0034out 'y'
0036out 'n'
0038out 'a'
0040out 'c'
0042out 'o'
0044out 'r'
0046out ' '
0048out 'O'
0050out 'S'
0052out 'C'
0054out 'O'
0056out 'N'
0058out ' '
0060out '2'
0062out '0'
0064out '1'
0066out '2'
0068out ' '
0070out 'C'
0072out 'h'
0074out 'a'
0076out 'l'
0078out 'l'
0080out 'e'
0082out 'n'
0084out 'g'
0086out 'e'
0088out '!'
0090out '\n' "Welcome to the Synacor OSCON 2012 Challenge!"
0092out 'P'
0094out 'l'
0096out 'e'
0098out 'a'
0100out 's'
0102out 'e'
0104out ' '
0106out 'r'
0108out 'e'
0110out 'c'
0112out 'o'
0114out 'r'
0116out 'd'
0118out ' '
0120out 'y'
0122out 'o'
0124out 'u'
0126out 'r'
0128out ' '
0130out 'p'
0132out 'r'
0134out 'o'
0136out 'g'
0138out 'r'
0140out 'e'
0142out 's'
0144out 's'
0146out ' '
0148out 'b'
0150out 'y'
0152out ' '
0154out 'p'
0156out 'u'
0158out 't'
0160out 't'
0162out 'i'
0164out 'n'
0166out 'g'
0168out ' '
0170out 'c'
0172out 'o'
0174out 'd'
0176out 'e'
0178out 's'
0180out ' '
0182out 'l'
0184out 'i'
0186out 'k'
0188out 'e'
0190out '\n' "Please record your progress by putting codes like"
0192out 't'
0194out 'h'
0196out 'i'
0198out 's'
0200out ' '
0202out 'o'
0204out 'n'
0206out 'e'
0208out ' '
0210out 'i'
0212out 'n'
0214out 't'
0216out 'o'
0218out ' '
0220out 't'
0222out 'h'
0224out 'e'
0226out ' '
0228out 'c'
0230out 'h'
0232out 'a'
0234out 'l'
0236out 'l'
0238out 'e'
0240out 'n'
0242out 'g'
0244out 'e'
0246out ' '
0248out 'w'
0250out 'e'
0252out 'b'
0254out 's'
0256out 'i'
0258out 't'
0260out 'e'
0262out ':'
0264out ' '
0266out 'I'
0268out 'm'
0270out 'o'
0272out 'F'
0274out 'z'
0276out 't'
0278out 'W'
0280out 'Q'
0282out 'C'
0284out 'v'
0286out 'x'
0288out 'j'
0290out '\n' "this one into the challenge website: ImoFztWQCvxj"
0292out '\n'
0294out 'E'
0296out 'x'
0298out 'e'
0300out 'c'
0302out 'u'
0304out 't'
0306out 'i'
0308out 'n'
0310out 'g'
0312out ' '
0314out 's'
0316out 'e'
0318out 'l'
0320out 'f'
0322out '-'
0324out 't'
0326out 'e'
0328out 's'
0330out 't'
0332out '.'
0334out '.'
0336out '.'
0338out '\n' "Executing self-test..."
0340out '\n'
0342jmp 369
0344out 'j'
0346out 'm'
0348out 'p'
0350out ' '
0352out 'f'
0354out 'a'
0356out 'i'
0358out 'l'
0360out 's'
0362out '\n' "jmp fails"
0364halt
0365noop
0366noop
0367noop
0368noop
0369noop
0370noop
0371noop
0372noop
0373noop
0374jmp 380
0376jmp 390
0378jmp 419
0380jmp 506
0382jmp 446
0384jmp 475
0386noop
0387noop
0388noop
0389noop
0390out 'j'
0392out 'm'
0394out 'p'
0396out ' '
0398out 'l'
0400out 'a'
0402out 'n'
0404out 'd'
0406out 's'
0408out ' '
0410out '-'
0412out '2'
0414out '\n' "jmp lands -2"
0416halt
0417noop
0418noop
0419out 'j'
0421out 'm'
0423out 'p'
0425out ' '
0427out 'l'
0429out 'a'
0431out 'n'
0433out 'd'
0435out 's'
0437out ' '
0439out '-'
0441out '1'
0443out '\n' "jmp lands -1"
0445halt
0446noop
0447noop
0448out 'j'
0450out 'm'
0452out 'p'
0454out ' '
0456out 'l'
0458out 'a'
0460out 'n'
0462out 'd'
0464out 's'
0466out ' '
0468out '+'
0470out '1'
0472out '\n' "jmp lands +1"
0474halt
0475noop
0476noop
0477noop
0478noop
0479out 'j'
0481out 'm'
0483out 'p'
0485out ' '
0487out 'l'
0489out 'a'
0491out 'n'
0493out 'd'
0495out 's'
0497out ' '
0499out '+'
0501out '2'
0503out '\n' "jmp lands +2"
0505halt
0506jt 0 1096
0509jf 1 1096
0512jt 1 517
0515jmp 1096
0517jf 0 522
0520jmp 1096
0522jt r0 1115
0525jt r1 1115
0528jt r2 1115
0531jt r3 1115
0534jt r4 1115
0537jt r5 1115
0540jt r6 1115
0543jt r7 1115
0546r0 =
1
0549jf r0 1140
0552r0 =
0
0555jt r0 1140
0558r0 =
1 +
1
0562jt r0 586
0565out 'n'
0567out 'o'
0569out ' '
0571out 'a'
0573out 'd'
0575out 'd'
0577out ' '
0579out 'o'
0581out 'p'
0583out '\n' "no add op"
0585halt
0586r1 =
r0 ==
2
0590jt r1 612
0593out 'n'
0595out 'o'
0597out ' '
0599out 'e'
0601out 'q'
0603out ' '
0605out 'o'
0607out 'p'
0609out '\n' "no eq op"
0611halt
0612push r0
0614push r1
0616pop r0
0618pop r1
0620r2 =
r1 ==
2
0624jf r2 1180
0627r2 =
r0 ==
1
0631jf r2 1180
0634r2 =
r1 >
r0
0638jf r2 1161
0641r2 =
r0 >
r1
0645jt r2 1161
0648r2 =
42 >
42
0652jt r2 1161
0655r0 =
28912 &
19626
0659r1 =
r0 ==
16544
0663jf r1 1199
0666r1 =
28912 |
19626
0670r0 =
r1 ==
31994
0674jt r0 706
0677out 'n'
0679out 'o'
0681out ' '
0683out 'b'
0685out 'i'
0687out 't'
0689out 'w'
0691out 'i'
0693out 's'
0695out 'e'
0697out ' '
0699out 'o'
0701out 'r'
0703out '\n' "no bitwise or"
0705halt
0706r0 = !
0
0709r1 =
r0 ==
32767
0713jf r1 1230
0716r0 = !
21845
0719r1 =
r0 ==
10922
0723jf r1 1230
0726call 1307
0728jmp 1311
0730pop r0
0732r1 =
r0 ==
730
0736jt r1 1311
0739r1 =
r0 ==
728
0743jf r1 1311
0746r0 =
1309
0749call r0 1309
0751jmp 1311
0753pop r0
0755r1 =
r0 ==
753
0759jt r1 1311
0762r1 =
r0 ==
751
0766jf r1 1311
0769r0 =
32767 +
32767
0773r1 =
r0 ==
32766
0777jf r1 1334
0780r1 =
32766 ==
r0
0784jf r1 1334
0787r0 =
16384 +
16384
0791jt r0 1334
0794r0 =
16384 +
16384
0798jt r0 1334
0801r0 =
6 *
9
0805r1 =
r0 ==
42
0809jt r1 1403
0812r1 =
r0 ==
54
0816jf r1 1436
0819r0 =
12345 *
32123
0823r1 =
r0 ==
99
0827jf r1 1334
0830r0 =
6 %
3
0834r1 =
r0 ==
0
0838jf r1 1459
0841r0 =
70 %
6
0845r1 =
r0 ==
4
0849jf r1 1459
0852r0 =
32766 *
15
0856r1 =
r0 ==
32738
0860jf r1 1334
0863jmp 867
0865[30000]
0866[10000]
0867rmem r0 865
0870r1 =
r0 ==
20000
0874jf r1 1261
0877r2 =
865 +
1
0881rmem r0 r2
0884r1 =
r0 ==
10000
0888jf r1 1261
0891r0 =
865
0894wmem r0 30000
0897rmem r2 r0
0900r1 =
r2 ==
30000
0904jf r1 1284
0907call 1745(decrypt-data)
0909rmem r0 6090
0912r1 =
r0 ==
11
0916jf r1 1261
0919r2 =
6090 +
1
0923rmem r0 r2
0926r1 =
r0 ==
116
0930jf r1 1261
0933wmem r2 84
0936rmem r0 r2
0939r1 =
r0 ==
116
0943jt r1 1284
0946r1 =
r0 ==
84
0950jf r1 1284
0953wmem 959 21
0956wmem 960 7
0959noop
0960jt 19 1000
0963out 'w'
0965out 'm'
0967out 'e'
0969out 'm'
0971out ' '
0973out 'o'
0975out 'p'
0977out 'w'
0979out 'r'
0981out 'i'
0983out 't'
0985out 'e'
0987out ' '
0989out 'f'
0991out 'a'
0993out 'i'
0995out 'l'
0997out '\n' "wmem opwrite fail"
0999halt
1000r1 =
10 +
6102
1004r1 =
r1 +
1
1008rmem r2 6138
1011r2 =
r2 +
6138
1015r0 =
6138
1018r0 =
r0 +
1
1022r3 =
r0 >
r2
1026jt r3 1045
1029rmem r4 r0
1032wmem r1 r4
1035r0 =
r0 +
1
1039r1 =
r1 +
1
1043jmp 1022
1045rmem r0 6102
1048rmem r1 6121
1051r0 =
r0 +
r1
1055r0 =
r0 +
1
1059wmem 6102 r0
1062wmem 6121 44
1065r0 =
6102
1068call 1540(print) "self-test complete, all tests pass\n "
1070push r0
1072push r1
1074push r2
1076r0 =
26865
1079r1 =
1553
1082r2 =
16691 +
11842
1086call 1480(map) "The self-test completion code is: BNCyODLfQkIl\n\n"
1088pop r2
1090pop r1
1092pop r0
1094jmp 2756(game-loop)
1096out 'n'
1098out 'o'
1100out ' '
1102out 'j'
1104out 't'
1106out '/'
1108out 'j'
1110out 'f'
1112out '\n' "no jt/jf"
1114halt
1115out 'n'
1117out 'o'
1119out 'n'
1121out 'z'
1123out 'e'
1125out 'r'
1127out 'o'
1129out ' '
1131out 'r'
1133out 'e'
1135out 'g'
1137out '\n' "nonzero reg"
1139halt
1140out 'n'
1142out 'o'
1144out ' '
1146out 's'
1148out 'e'
1150out 't'
1152out ' '
1154out 'o'
1156out 'p'
1158out '\n' "no set op"
1160halt
1161out 'n'
1163out 'o'
1165out ' '
1167out 'g'
1169out 't'
1171out ' '
1173out 'o'
1175out 'p'
1177out '\n' "no gt op"
1179halt
1180out 'n'
1182out 'o'
1184out ' '
1186out 's'
1188out 't'
1190out 'a'
1192out 'c'
1194out 'k'
1196out '\n' "no stack"
1198halt
1199out 'n'
1201out 'o'
1203out ' '
1205out 'b'
1207out 'i'
1209out 't'
1211out 'w'
1213out 'i'
1215out 's'
1217out 'e'
1219out ' '
1221out 'a'
1223out 'n'
1225out 'd'
1227out '\n' "no bitwise and"
1229halt
1230out 'n'
1232out 'o'
1234out ' '
1236out 'b'
1238out 'i'
1240out 't'
1242out 'w'
1244out 'i'
1246out 's'
1248out 'e'
1250out ' '
1252out 'n'
1254out 'o'
1256out 't'
1258out '\n' "no bitwise not"
1260halt
1261out 'n'
1263out 'o'
1265out ' '
1267out 'r'
1269out 'm'
1271out 'e'
1273out 'm'
1275out ' '
1277out 'o'
1279out 'p'
1281out '\n' "no rmem op"
1283halt
1284out 'n'
1286out 'o'
1288out ' '
1290out 'w'
1292out 'm'
1294out 'e'
1296out 'm'
1298out ' '
1300out 'o'
1302out 'p'
1304out '\n' "no wmem op"
1306halt
map:
1480push r0
1482push r3
1484push r4
1486push r5
1488push r6
1490r6 =
r0
1493r5 =
r1
1496rmem r4 r0
1499r1 =
0
1502r3 =
1 +
r1
1506r0 =
r3 >
r4
1510jt r0 1529
1513r3 =
r3 +
r6
1517rmem r0 r3
1520call r5 1550(putc),
1553(xor-putc),
1627,
1641,
1670,
5836(print-list-item),
5868,
5915,
5986
1522r1 =
r1 +
1
1526jt r1 1502
1529pop r6
1531pop r5
1533pop r4
1535pop r3
1537pop r0
1539ret
print:
1540push r1
1542r1 =
1550
1545call 1480(map)
1547pop r1
1549ret
putc:
1550out r0
1552ret
xor-putc:
1553push r1
1555r1 =
r2
1558call 2147(xor)
1560out r0
1562pop r1
1564ret
1565push r1
1567push r3
1569rmem r3 r0
1572jf r3 1585
1575call 1480(map)
1577jt r1 1585
1580r0 =
r2
1583jmp 1588
1585r0 =
32767
1588pop r3
1590pop r1
1592ret
1593push r1
1595push r2
1597r2 =
r1
1600r1 =
1627
1603call 1565
1605pop r2
1607pop r1
1609ret
1610push r1
1612push r2
1614r2 =
r1
1617r1 =
1670
1620call 1565
1622pop r2
1624pop r1
1626ret
1627r0 =
r0 ==
r2
1631jf r0 1640
1634r2 =
r1
1637r1 =
32767
1640ret
1641push r3
1643r3 =
r2 +
1
1647r3 =
r3 +
r1
1651rmem r3 r3
1654r3 =
r0 ==
r3
1658jt r3 1667
1661r2 =
r1
1664r1 =
32767
1667pop r3
1669ret
1670push r1
1672r1 =
r2
1675call 1689(strcmp)
1677pop r1
1679jf r0 1688
1682r2 =
r1
1685r1 =
32767
1688ret
strcmp:
1689push r1
1691push r2
1693push r3
1695push r4
1697rmem r3 r0
1700rmem r4 r1
1703r2 =
r3 ==
r4
1707jf r2 1733
1710r2 =
r3 |
r4
1714jf r2 1728
1717r2 =
r1
1720r1 =
1641
1723call 1480(map)
1725jf r1 1733
1728r0 =
1
1731jmp 1736
1733r0 =
0
1736pop r4
1738pop r3
1740pop r2
1742pop r1
1744ret
decrypt-data:
1745push r0
1747push r1
1749r1 =
6090
1752rmem r0 r1
1755push r1
1757r1 =
r1 *
r1
1761call 2147(xor)
1763r1 =
16724
1766call 2147(xor)
1768pop r1
1770wmem r1 r0
1773r1 =
r1 +
1
1777r0 =
29957 ==
r1
1781jf r0 1752
1784pop r1
1786pop r0
1788ret
read-user-input:
1789push r0
1791push r2
1793push r3
1795push r4
1797push r5
1799r2 =
r1 +
r0
1803r0 =
r1
1806r5 =
0
1809r0 =
r0 +
1
1813r3 =
r0 >
r2
1817jt r3 1838
1820in r4
1822r3 =
r4 ==
10
1826jt r3 1838
1829wmem r0 r4
1832r5 =
r5 +
1
1836jmp 1809
1838wmem r1 r5
1841r3 =
r4 ==
10
1845jt r3 1852
1848in r4
1850jmp 1841
1852pop r5
1854pop r4
1856pop r3
1858pop r2
1860pop r0
1862ret
print-code:
1863push r3
1865push r4
1867push r5
1869push r6
1871r6 =
1
1874r4 =
r3 +
r6
1878rmem r4 r4
1881r5 =
6147 +
r6
1885wmem r5 r4
1888r6 =
r6 +
1
1892rmem r5 6147[code-scratch]
1895r4 =
r6 >
r5
1899jf r4 1874
1902r3 =
0
1905r4 =
0
1908rmem r5 6147[code-scratch]
1911r5 =
r4 %
r5
1915r5 =
r5 +
6147
1919r5 =
r5 +
1
1923rmem r6 r5
1926r6 =
r6 *
5249
1930r6 =
r6 +
12345
1934wmem r5 r6
1937push r0
1939push r1
1941r1 =
r6
1944call 2147(xor)
1946r6 =
r0
1949pop r1
1951pop r0
1953rmem r5 r1
1956r6 =
r6 %
r5
1960r6 =
r6 +
1
1964r5 =
r6 >
r2
1968jt r5 1974
1971r3 =
1
1974r6 =
r6 +
r1
1978rmem r6 r6
1981r4 =
r4 +
1
1985r5 =
r4 +
6151
1989wmem r5 r6
1992rmem r5 6151[code-buffer]
1995r5 =
r4 ==
r5
1999jf r5 1908
2002jf r3 1902
2005push r0
2007r0 =
6151
2010call 1540(print) "\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0} "
2012pop r0
2014pop r6
2016pop r5
2018pop r4
2020pop r3
2022ret
print-number:
2023push r0
2025push r1
2027push r2
2029push r3
2031push r4
2033push r5
2035r2 =
1
2038r5 =
0
2041jf r0 2114
2044r4 =
r2 ==
10000
2048r3 =
r0
2051jt r4 2062
2054r1 =
r2 *
10
2058r3 =
r0 %
r1
2062r4 =
0
2065r2 =
r2 *
32767
2069jf r3 2082
2072r4 =
r4 +
1
2076r3 =
r3 +
r2
2080jmp 2069
2082r2 =
r2 *
32767
2086r3 =
r4 *
r2
2090r3 =
r3 *
32767
2094r0 =
r0 +
r3
2098r4 =
r4 +
48
2102r2 =
r2 *
10
2106r5 =
r5 +
1
2110push r4
2112jmp 2041
2114jt r5 2121
2117out '0'
2119jmp 2134
2121jf r5 2134
2124pop r0
2126out r0
2128r5 =
r5 +
32767
2132jmp 2121
2134pop r5
2136pop r4
2138pop r3
2140pop r2
2142pop r1
2144pop r0
2146ret
xor:
2147push r1
2149push r2
2151r2 = r0 & r1
2155r2 = !r2
2158r0 = r0 | r1
2162r0 = r0 & r2
2166pop r2
2168pop r1
2170ret
add-with-overflow-check:
2171r0 = r0 + r1
2175r1 = r1 > r0
2179ret
sub-with-overflow-check:
2180push r2
2182r2 = r1 > r0
2186r1 = r1 * 32767
2190r0 = r0 + r1
2194r1 = r2
2197pop r2
2199ret
mul-with-overflow-check:
2200jf r0 2263
2203jf r1 2263
2206push r2
2208push r3
2210r2 =
r1 >
r0
2214jt r2 2226
2217r2 =
r0
2220r0 =
r1
2223r1 =
r2
2226r2 =
r0
2229r0 =
0
2232r0 =
r0 +
r1
2236r3 =
r1 >
r0
2240jt r3 2255
2243r2 =
r2 +
32767
2247jt r2 2232
2250r1 =
0
2253jmp 2258
2255r1 =
1
2258pop r3
2260pop r2
2262ret
2263r0 =
0
2266r1 =
0
2269ret
rotate-left:
2270push r1
2272push r2
2274jf r1 2298
2277r1 =
r1 +
32767
2281r2 =
r0 &
16384
2285r0 =
r0 *
2
2289jf r2 2274
2292r0 =
r0 |
1
2296jmp 2274
2298pop r2
2300pop r1
2302ret
power-of-two:
2303push r1
2305r1 =
r0 >
14
2309jt r1 2331
2312r1 =
r0
2315r0 =
1
2318jf r1 2334
2321r1 =
r1 +
32767
2325r0 =
r0 *
2
2329jmp 2318
2331r0 =
32767
2334pop r1
2336ret
game-loop:
2756push r0
2758push r1
2760push r2
2762push r3
2764rmem r1 2754[current-room]
2767rmem r0 2755[prev-room]
2770r0 =
r0 ==
r1
2774jt r0 2792
2777rmem r0 2754[current-room]
2780r0 =
r0 +
4
2784rmem r0 r0
2787jf r0 2792
2790call r0 3678,
3723(eaten-by-grue),
3764(reset-maze-bitmask),
3768(set-maze-bitmask-1),
3778(set-maze-bitmask-2),
3788(set-maze-bitmask-4),
3798(set-maze-bitmask-8),
3808(set-maze-bitmask-16),
3818(set-maze-bitmask-32),
3828(maze-escape),
3915(exit-ruins-north),
3980(enter-orb-symbol-room-1),
3997(enter-orb-number-room-1),
4014(enter-orb-symbol-room-2),
4031(enter-orb-vault-room),
4050(enter-orb-number-room-2),
4067(enter-orb-symbol-room-3),
4084(enter-orb-number-room-3),
4101(enter-orb-symbol-room-4),
4118(enter-orb-symbol-room-5),
4135(enter-orb-number-room-4),
4152(enter-orb-symbol-room-6),
4169(enter-orb-number-room-5),
4186(enter-vault-antechamber),
4189(enter-orb-symbol-room-7),
4206(enter-orb-number-room-6),
4223(enter-orb-symbol-room-8),
4633(reset-orb),
4712(enter-vault)
2792rmem r1 2754[current-room]
2795rmem r0 2755[prev-room]
2798r0 =
r0 ==
r1
2802jt r0 2813
2805r0 =
25988
2808wmem r0 0
2811call 2986(look)
2813wmem 2755[prev-room] r1
2816push r0
2818push r1
2820push r2
2822r0 =
27428
2825r1 =
1553
2828r2 =
3958 +
20602
2832call 1480(map) "\nWhat do you do?\n"
2834pop r2
2836pop r1
2838pop r0
2840r0 =
32
2843r1 =
25988
2846call 1789(read-user-input)
2848out '\n'
2850out '\n'
2852r0 =
25988
2855r1 =
32
2858call 1593
2860r1 =
r0 ==
32767
2864jf r1 2870
2867rmem r0 25988[input-buffer]
2870r2 =
r0
2873rmem r1 25988[input-buffer]
2876push r1
2878wmem 25988[input-buffer] r2
2881r0 =
27412
2884r1 =
25988
2887call 1610
2889pop r1
2891wmem 25988[input-buffer] r1
2894r1 =
r0 ==
32767
2898jf r1 2907
2901r0 =
0
2904r2 =
0
2907r1 =
27420 +
1
2911r1 =
r1 +
r0
2915rmem r1 r1
2918rmem r3 25988[input-buffer]
2921r3 =
r3 ==
r2
2925jt r3 2966
2928r0 =
r2 *
32767
2932rmem r3 25988[input-buffer]
2935r3 =
r0 +
r3
2939jf r2 2946
2942r3 =
r3 +
32767
2946r3 =
r3 %
32
2950r0 =
25988 +
r2
2954jf r2 2961
2957r0 =
r0 +
1
2961wmem r0 r3
2964jmp 2972
2966r0 =
25988
2969wmem r0 0
2972call r1 2986(look),
3267(other-action),
3422(take-item),
3590(use-item)
2974jt r1 2764
2977pop r3
2979pop r2
2981pop r1
2983pop r0
2985ret
look:
2986push r0
2988push r1
2990push r2
2992rmem r1 r0
2995jf r1 3054
2998call 5943
3000jf r0 3028
3003push r0
3005call 6012
3007r1 =
r0
3010pop r0
3012jf r1 3028
3015r1 =
r0 +
1
3019rmem r0 r1
3022call 1540(print)
3024out '\n'
3026jmp 3260
3028push r0
3030push r1
3032push r2
3034r0 =
27446
3037r1 =
1553
3040r2 =
10341 +
18451
3044call 1480(map) "You see no such item.\n"
3046pop r2
3048pop r1
3050pop r0
3052jmp 3260
3054rmem r0 2754[current-room]
3057push r0
3059out '='
3061out '='
3063out ' '
3065r0 =
r0 +
0
3069rmem r0 r0
3072call 1540(print)
3074out ' '
3076out '='
3078out '='
3080out '\n' " =="
3082pop r0
3084push r0
3086r0 =
r0 +
1
3090rmem r0 r0
3093rmem r1 r0
3096r1 =
r1 ==
2
3100jf r1 3126
3103push r0
3105r0 =
2702
3108call 6012
3110r1 =
r0
3113pop r0
3115r0 =
r0 +
1
3119r0 =
r0 +
r1
3123rmem r0 r0
3126call 1540(print)
3128out '\n'
3130pop r0
3132push r0
3134call 5845
3136jf r0 3168
3139push r0
3141push r1
3143push r2
3145r0 =
27469
3148r1 =
1553
3151r2 =
3231 +
7496
3155call 1480(map) "\nThings of interest here:\n"
3157pop r2
3159pop r1
3161pop r0
3163rmem r2 2754[current-room]
3166call 5898
3168pop r0
3170push r0
3172r0 =
r0 +
2
3176rmem r0 r0
3179rmem r0 r0
3182r2 =
r0 ==
1
3186out '\n'
3188out 'T'
3190out 'h'
3192out 'e'
3194out 'r'
3196out 'e'
3198out ' '
3200jt r2 3211
3203out 'a'
3205out 'r'
3207out 'e'
3209jmp 3215
3211out 'i'
3213out 's'
3215out ' '
3217call 2023(print-number)
3219out ' '
3221out 'e'
3223out 'x'
3225out 'i'
3227out 't'
3229r2 =
r0 ==
1
3233jt r2 3238
3236out 's'
3238out ':'
3240out '\n' "s:"
3242pop r0
3244push r0
3246r0 =
r0 +
2
3250rmem r0 r0
3253r1 =
5836
3256call 1480(map)
3258pop r0
3260pop r2
3262pop r1
3264pop r0
3266ret
other-action:
3267push r0
3269push r1
3271push r2
3273r1 =
r0
3276rmem r0 2754[current-room]
3279r0 =
r0 +
2
3283rmem r0 r0
3286call 1610
3288r2 =
r0 ==
32767
3292jt r2 3324
3295rmem r2 2754[current-room]
3298r2 =
r2 +
3
3302rmem r2 r2
3305r2 =
r2 +
1
3309r2 =
r2 +
r0
3313rmem r2 r2
3316wmem 2754[current-room] r2
3319wmem 2755[prev-room] 0
3322jmp 3348
3324push r0
3326push r1
3328push r2
3330r0 =
27496
3333r1 =
1553
3336r2 =
11010 +
5751
3340call 1480(map) "I don\'t understand; try \'help\' for instructions.\n"
3342pop r2
3344pop r1
3346pop r0
3348pop r2
3350pop r1
3352pop r0
3354ret
take-item:
3422push r0
3424push r1
3426push r2
3428call 5943
3430jf r0 3479
3433r1 =
r0 +
2
3437rmem r0 r1
3440rmem r2 2754[current-room]
3443r2 =
r0 ==
r2
3447jf r2 3479
3450wmem r1 0
3453push r0
3455push r1
3457push r2
3459r0 =
28068
3462r1 =
1553
3465r2 =
380 +
996
3469call 1480(map) "Taken.\n"
3471pop r2
3473pop r1
3475pop r0
3477jmp 3503
3479push r0
3481push r1
3483push r2
3485r0 =
28076
3488r1 =
1553
3491r2 =
4508 +
20821
3495call 1480(map) "You see no such item here.\n"
3497pop r2
3499pop r1
3501pop r0
3503pop r2
3505pop r1
3507pop r0
3509ret
3678push r0
3680push r1
3682push r2
3684r0 =
2702
3687call 6012
3689jt r0 3716
3692r0 =
2698 +
2
3696wmem r0 32767
3699r0 =
2702 +
2
3703wmem r0 32767
3706r0 =
2694 +
2
3710wmem r0 32767
3713wmem 2754[current-room] 2670
3716pop r2
3718pop r1
3720pop r0
3722ret
eaten-by-grue:
3723push r0
3725push r1
3727push r2
3729r0 =
28218
3732r1 =
1553
3735r2 =
14633 +
15953
3739call 1480(map) "You have been eaten by a grue.\n"
3741pop r2
3743pop r1
3745pop r0
3747halt
3748[0]
set-maze-bitmask:
3749push r1
3751rmem r1 3748
3754r1 = r1 | r0
3758wmem 3748 r1
3761pop r1
3763ret
reset-maze-bitmask:
3764wmem 3748 0
3767ret
maze-escape:
3828push r0
3830push r1
3832push r2
3834push r3
3836r0 =
64
3839call 3749(set-maze-bitmask)
3841push r0
3843push r1
3845push r2
3847r0 =
28250
3850r1 =
1553
3853r2 =
7662 +
19058
3857call 1480(map) "Chiseled on the wall of one of the passageways, you see:\n\n "
3859pop r2
3861pop r1
3863pop r0
3865rmem r0 3748
3868r1 =
25880
3871r2 =
32767
3874r3 =
28313
3877call 1863(print-code)
3879push r0
3881push r1
3883push r2
3885r0 =
28317
3888r1 =
1553
3891r2 =
12862 +
39
3895call 1480(map) "\n\nYou take note of this and keep walking.\n\n"
3897pop r2
3899pop r1
3901pop r0
3903wmem 2754[current-room] 2439
3906pop r3
3908pop r2
3910pop r1
3912pop r0
3914ret
exit-ruins-north:
3915push r0
3917push r1
3919rmem r0 2484
3922rmem r1 27115[placed-coins]
3925r0 =
r0 ==
r1
3929jt r0 3962
3932push r0
3934push r1
3936push r2
3938r0 =
28361
3941r1 =
1553
3944r2 =
2737 +
22709
3948call 1480(map) "That door is locked.\n"
3950pop r2
3952pop r1
3954pop r0
3956wmem 2754[current-room] 2479
3959wmem 2755[prev-room] 2479
3962pop r1
3964pop r0
3966ret
enter-orb-symbol-room-1:
3980push r0
3982push r1
3984r0 =
2
3987r1 =
0
3990call 4240(orb-enter-symbol-room)
3992pop r1
3994pop r0
3996ret
enter-orb-number-room-1:
3997push r0
3999push r1
4001r0 =
8
4004r1 =
1
4007call 4301(orb-enter-number-room)
4009pop r1
4011pop r0
4013ret
enter-orb-symbol-room-2:
4014push r0
4016push r1
4018r0 =
1
4021r1 =
2
4024call 4240(orb-enter-symbol-room)
4026pop r1
4028pop r0
4030ret
enter-orb-number-room-2:
4050push r0
4052push r1
4054r0 =
4
4057r1 =
4
4060call 4301(orb-enter-number-room)
4062pop r1
4064pop r0
4066ret
enter-orb-symbol-room-3:
4067push r0
4069push r1
4071r0 =
2
4074r1 =
5
4077call 4240(orb-enter-symbol-room)
4079pop r1
4081pop r0
4083ret
enter-orb-number-room-3:
4084push r0
4086push r1
4088r0 =
11
4091r1 =
6
4094call 4301(orb-enter-number-room)
4096pop r1
4098pop r0
4100ret
enter-orb-symbol-room-4:
4101push r0
4103push r1
4105r0 =
2
4108r1 =
7
4111call 4240(orb-enter-symbol-room)
4113pop r1
4115pop r0
4117ret
enter-orb-symbol-room-5:
4118push r0
4120push r1
4122r0 =
0
4125r1 =
8
4128call 4240(orb-enter-symbol-room)
4130pop r1
4132pop r0
4134ret
enter-orb-number-room-4:
4135push r0
4137push r1
4139r0 =
4
4142r1 =
9
4145call 4301(orb-enter-number-room)
4147pop r1
4149pop r0
4151ret
enter-orb-symbol-room-6:
4152push r0
4154push r1
4156r0 =
1
4159r1 =
10
4162call 4240(orb-enter-symbol-room)
4164pop r1
4166pop r0
4168ret
enter-orb-number-room-5:
4169push r0
4171push r1
4173r0 =
18
4176r1 =
11
4179call 4301(orb-enter-number-room)
4181pop r1
4183pop r0
4185ret
enter-orb-symbol-room-7:
4189push r0
4191push r1
4193r0 =
1
4196r1 =
12
4199call 4240(orb-enter-symbol-room)
4201pop r1
4203pop r0
4205ret
enter-orb-number-room-6:
4206push r0
4208push r1
4210r0 =
9
4213r1 =
13
4216call 4301(orb-enter-number-room)
4218pop r1
4220pop r0
4222ret
enter-orb-symbol-room-8:
4223push r0
4225push r1
4227r0 =
2
4230r1 =
14
4233call 4240(orb-enter-symbol-room)
4235pop r1
4237pop r0
4239ret
orb-enter-symbol-room:
4240push r0
4242push r1
4244push r2
4246r2 =
2738 +
2
4250rmem r2 r2
4253jt r2 4294
4256call 4427
4258wmem 3973 r0
4261r1 =
r0 +
3967
4265rmem r1 r1
4268r0 =
26038
4271call 1540(print) "As you enter the room, the symbol on the floor briefly flashes "
4273r0 =
r1
4276call 1540(print)
4278r0 =
26102
4281call 1540(print) ". The orb begins subtly glowing "
4283r0 =
r1
4286call 1540(print)
4288out '.'
4290out '\n' "."
4292out '\n'
4294pop r2
4296pop r1
4298pop r0
4300ret
orb-enter-number-room:
4301push r0
4303push r1
4305push r2
4307r2 =
2738 +
2
4311rmem r2 r2
4314jt r2 4420
4317call 4427
4319push r0
4321rmem r0 3973
4324r1 =
r0 +
3967
4328rmem r1 r1
4331r0 =
26136
4334call 1540(print) "As you enter the room, the orb briefly flashes "
4336r0 =
r1
4339call 1540(print)
4341r0 =
26184
4344call 1540(print) ". The number on the floor vibrates strangely beneath your feet. "
4346pop r0
4348r1 =
r0
4351rmem r0 3974
4354rmem r2 3973
4357r2 =
r2 +
3970
4361rmem r2 r2
4364call r2 2171(add-with-overflow-check),
2180(sub-with-overflow-check),
2200(mul-with-overflow-check)
4366jt r1 4413
4369rmem r1 3974
4372wmem 3974 r0
4375r2 =
r0 >
r1
4379jf r2 4391
4382push r0
4384r0 =
26249
4387call 1540(print) " The orb seems to get heavier. "
4389pop r0
4391r2 =
r1 >
r0
4395jf r2 4407
4398push r0
4400r0 =
26281
4403call 1540(print) " The orb seems to get lighter. "
4405pop r0
4407out '\n'
4409out '\n'
4411jmp 4420
4413call 4682(reset-orb-data)
4415r0 =
26313
4418call 1540(print) " The orb shatters!\n\n "
4420pop r2
4422pop r1
4424pop r0
4426ret
4427push r0
4429push r1
4431push r2
4433push r3
4435push r4
4437push r5
4439rmem r5 3975
4442r3 =
r5 >
29999
4446jt r3 4456
4449r5 =
r5 +
1
4453wmem 3975 r5
4456r3 =
r0
4459r4 =
r1
4462r0 =
r5 +
2
4466call 2303(power-of-two)
4468rmem r1 3976
4471r0 =
r1 |
r0
4475r1 =
r4
4478call 2270(rotate-left)
4480wmem 3976 r0
4483r0 =
3977
4486r1 =
r5 +
2
4490r2 =
r4
4493call 4537
4495r0 =
3978
4498r1 =
r5 *
r5
4502r2 =
r4 *
r4
4506call 4537
4508r0 =
3979
4511r1 =
13
4514r2 =
r3 *
9
4518r2 =
r2 *
r2
4522call 4537
4524pop r5
4526pop r4
4528pop r3
4530pop r2
4532pop r1
4534pop r0
4536ret
vault-door:
4555push r0
4557r0 =
2738 +
2
4561rmem r0 r0
4564jt r0 4630
4567r0 =
26335
4570call 1540(print) "As you approach the vault door, "
4572rmem r0 3974
4575r0 =
r0 ==
30
4579jt r0 4596
4582r0 =
26368
4585call 1540(print) "the number on the vault door flashes black. "
4587r0 =
26412
4590call 1540(print) " The orb evaporates out of your hands.\n\n "
4592call 4682(reset-orb-data)
4594jmp 4630
4596r0 =
26454
4599call 1540(print) "the number on the vault door flashes white! "
4601rmem r0 3976
4604r0 =
r0 +
1
4608jt r0 4618
4611r0 =
26498
4614call 1540(print) " The hourglass has already run out. It flashes black and flips over, restarting the flow of sand. "
4616jmp 4587
4618r0 =
26598
4621call 1540(print) " The hourglass is still running! It flashes white! You hear a click from the vault door. The orb evaporates out of hour hands.\n\n "
4623r0 =
2738 +
2
4627wmem r0 32767
4630pop r0
4632ret
reset-orb:
4633push r0
4635r0 =
2738 +
2
4639rmem r0 r0
4642jt r0 4679
4645r0 =
26731
4648call 1540(print) "As you "
4650rmem r0 2754[current-room]
4653r0 =
r0 ==
2645
4657jt r0 4667
4660r0 =
26739
4663call 1540(print) "leave "
4665jmp 4672
4667r0 =
26745
4670call 1540(print) "enter "
4672r0 =
26751
4675call 1540(print) " the room, the orb evaporates out of your hands! It rematerializes on its pedestal.\n\n "
4677call 4682(reset-orb-data)
4679pop r0
4681ret
reset-orb-data:
4682push r0
4684wmem 3974 22
4687wmem 3975 0
4690wmem 3976 0
4693wmem 3977 0
4696wmem 3978 0
4699wmem 3979 0
4702r0 = 2738 + 2
4706wmem r0 2645
4709pop r0
4711ret
enter-vault:
4712push r0
4714r0 =
2738 +
2
4718rmem r0 r0
4721r0 =
r0 ==
32767
4725jt r0 4739
4728r0 =
26838
4731call 1540(print) "The vault door is sealed.\n "
4733wmem 2754[current-room] 2600
4736wmem 2755[prev-room] 2600
4739pop r0
4741ret
use-tablet:
4742push r0
4744push r1
4746push r2
4748push r3
4750push r0
4752push r1
4754push r2
4756r0 =
28383
4759r1 =
1553
4762r2 =
4072 +
25103
4766call 1480(map) "You find yourself writing \""
4768pop r2
4770pop r1
4772pop r0
4774r0 =
4242
4777r1 =
25880
4780r2 =
32767
4783r3 =
28411
4786call 1863(print-code)
4788push r0
4790push r1
4792push r2
4794r0 =
28415
4797r1 =
1553
4800r2 =
9840 +
9847
4804call 1480(map) "\" on the tablet. Perhaps it\'s some kind of code?\n\n"
4806pop r2
4808pop r1
4810pop r0
4812pop r3
4814pop r2
4816pop r1
4818pop r0
4820ret
use-can:
4821push r0
4823r0 =
2694 +
2
4827rmem r0 r0
4830jt r0 4880
4833r0 =
2706 +
2
4837wmem r0 32767
4840r0 =
2694 +
2
4844wmem r0 32767
4847r0 =
2698 +
2
4851wmem r0 0
4854push r0
4856push r1
4858push r2
4860r0 =
28467
4863r1 =
1553
4866r2 =
28391 +
3091
4870call 1480(map) "You fill your lantern with oil. It seems to cheer up!\n\n"
4872pop r2
4874pop r1
4876pop r0
4878jmp 4904
4880push r0
4882push r1
4884push r2
4886r0 =
28524
4889r1 =
1553
4892r2 =
5367 +
25601
4896call 1480(map) "You\'ll have to find something to put the oil into first.\n\n"
4898pop r2
4900pop r1
4902pop r0
4904pop r0
4906ret
use-lantern:
4907push r0
4909r0 =
2698 +
2
4913wmem r0 32767
4916r0 =
2702 +
2
4920wmem r0 0
4923push r0
4925push r1
4927push r2
4929r0 =
28583
4932r1 =
1553
4935r2 =
18336 +
7637
4939call 1480(map) "You light your lantern.\n\n"
4941pop r2
4943pop r1
4945pop r0
4947wmem 2755[prev-room] 0
4950pop r0
4952ret
use-coin:
4999push r2
5001push r3
5003rmem r2 2754[current-room]
5006r2 =
r2 ==
2479
5010jt r2 5039
5013push r0
5015push r1
5017push r2
5019r0 =
28635
5022r1 =
1553
5025r2 =
4963 +
14461
5029call 1480(map) "You\'re not sure what to do with the coin.\n"
5031pop r2
5033pop r1
5035pop r0
5037jmp 5358
5039r2 =
r0 +
2
5043wmem r2 32767
5046rmem r2 2484
5049r2 =
r2 +
27109
5053r2 =
r2 +
1
5057rmem r2 r2
5060r3 =
2479 +
1
5064rmem r3 r3
5067r3 =
r3 +
r2
5071r2 =
r1 +
48
5075wmem r3 r2
5078rmem r2 2484
5081r2 =
r2 +
27115
5085r2 =
r2 +
1
5089wmem r2 r1
5092push r0
5094push r0
5096push r1
5098push r2
5100r0 =
28678
5103r1 =
1553
5106r2 =
14248 +
6463
5110call 1480(map) "You place the "
5112pop r2
5114pop r1
5116pop r0
5118pop r0
5120push r0
5122r2 =
r0 +
0
5126rmem r0 r2
5129call 1540(print)
5131pop r0
5133push r0
5135push r0
5137push r1
5139push r2
5141r0 =
28693
5144r1 =
1553
5147r2 =
348 +
154
5151call 1480(map) " into the leftmost open slot.\n"
5153pop r2
5155pop r1
5157pop r0
5159pop r0
5161rmem r2 2484
5164r2 =
r2 +
1
5168wmem 2484 r2
5171rmem r3 27115[placed-coins]
5174r3 =
r2 ==
r3
5178jf r3 5358
5181r0 =
0
5184r1 =
27115 +
1
5188rmem r1 r1
5191r0 =
r0 +
r1
5195r1 =
27115 +
2
5199rmem r1 r1
5202r2 =
27115 +
3
5206rmem r2 r2
5209r2 =
r2 *
r2
5213r1 =
r1 *
r2
5217r0 =
r0 +
r1
5221r1 =
27115 +
4
5225rmem r1 r1
5228r2 =
r1 *
r1
5232r2 =
r2 *
r1
5236r0 =
r0 +
r2
5240r1 =
27115 +
5
5244rmem r1 r1
5247r1 =
r1 *
32767
5251r0 =
r0 +
r1
5255r1 =
r0 ==
399
5259jt r1 5334
5262r2 =
2710 +
2
5266wmem r2 2479
5269r2 =
2714 +
2
5273wmem r2 2479
5276r2 =
2718 +
2
5280wmem r2 2479
5283r2 =
2722 +
2
5287wmem r2 2479
5290r2 =
2726 +
2
5294wmem r2 2479
5297wmem 2484 0
5300r0 =
27109
5303r1 =
5363
5306call 1480(map)
5308push r0
5310push r1
5312push r2
5314r0 =
28724
5317r1 =
1553
5320r2 =
29348 +
1605
5324call 1480(map) "As you place the last coin, they are all released onto the floor.\n"
5326pop r2
5328pop r1
5330pop r0
5332jmp 5358
5334push r0
5336push r1
5338push r2
5340r0 =
28791
5343r1 =
1553
5346r2 =
72 +
162
5350call 1480(map) "As you place the last coin, you hear a click from the north door.\n"
5352pop r2
5354pop r1
5356pop r0
5358pop r3
5360pop r2
5362ret
use-red-coin:
5382push r0
5384push r1
5386r0 =
2710
5389r1 =
2
5392call 4999(use-coin)
5394pop r1
5396pop r0
5398ret
use-corroded-coin:
5399push r0
5401push r1
5403r0 =
2714
5406r1 =
3
5409call 4999(use-coin)
5411pop r1
5413pop r0
5415ret
use-shiny-coin:
5416push r0
5418push r1
5420r0 =
2718
5423r1 =
5
5426call 4999(use-coin)
5428pop r1
5430pop r0
5432ret
use-concave-coin:
5433push r0
5435push r1
5437r0 =
2722
5440r1 =
7
5443call 4999(use-coin)
5445pop r1
5447pop r0
5449ret
use-blue-coin:
5450push r0
5452push r1
5454r0 =
2726
5457r1 =
9
5460call 4999(use-coin)
5462pop r1
5464pop r0
5466ret
use-teleporter:
5467push r0
5469push r1
5471push r2
5473jf r7 5627
5476push r0
5478push r1
5480push r2
5482r0 =
28858
5485r1 =
1553
5488r2 =
16357 +
3
5492call 1480(map) "A strange, electronic voice is projected into your mind:\n\n \"Unusual setting detected! Starting calibration process! Estimated time to completion: 1 billion years.\"\n\n"
5494pop r2
5496pop r1
5498pop r0
5500noop
5501noop
5502noop
5503noop
5504noop
5505r0 =
4
5508r1 =
1
5511call 6049(teleporter-confirmation)
5513r1 =
r0 ==
6
5517jf r1 5601
5520push r0
5522push r1
5524push r2
5526r0 =
29027
5529r1 =
1553
5532r2 =
8051 +
14968
5536call 1480(map) "You wake up on a sandy beach with a slight headache. The last thing you remember is activating that teleporter... but now you can\'t find it anywhere in your pack. Someone seems to have drawn a message in the sand here:\n\n "
5538pop r2
5540pop r1
5542pop r0
5544r0 =
r7
5547r1 =
25880
5550r2 =
32767
5553push r3
5555r3 =
29254
5558call 1863(print-code)
5560pop r3
5562push r0
5564push r1
5566push r2
5568r0 =
29258
5571r1 =
1553
5574r2 =
202 +
29735
5578call 1480(map) "\n\nIt begins to rain. The message washes away.\n\n"
5580pop r2
5582pop r1
5584pop r0
5586wmem 2754[current-room] 2520
5589wmem 2755[prev-room] 0
5592r1 =
2730 +
2
5596wmem r1 32767
5599jmp 5736
5601push r0
5603push r1
5605push r2
5607r0 =
29307
5610r1 =
1553
5613r2 =
426 +
12103
5617call 1480(map) "A strange, electronic voice is projected into your mind:\n\n \"Miscalibration detected! Aborting teleportation!\"\n\nNothing else seems to happen.\n\n"
5619pop r2
5621pop r1
5623pop r0
5625jmp 5736
5627push r0
5629push r1
5631push r2
5633r0 =
29452
5636r1 =
1553
5639r2 =
3485 +
2907
5643call 1480(map) "You activate the teleporter! As you spiral through time and space, you think you see a pattern in the stars...\n\n "
5645pop r2
5647pop r1
5649pop r0
5651r0 =
0
5654r2 =
1 +
27115
5658rmem r1 r2
5661r0 =
r0 +
r1
5665r0 =
r0 *
31660
5669call 2147(xor)
5671rmem r1 27115[placed-coins]
5674r1 =
r1 +
27115
5678r2 =
r2 +
1
5682r1 =
r2 >
r1
5686jf r1 5658
5689r1 =
25880
5692r2 =
32767
5695push r3
5697r3 =
29570
5700call 1863(print-code)
5702pop r3
5704push r0
5706push r1
5708push r2
5710r0 =
29574
5713r1 =
1553
5716r2 =
74 +
2852
5720call 1480(map) "\n\nAfter a few moments, you find yourself back on solid ground and a little disoriented.\n\n"
5722pop r2
5724pop r1
5726pop r0
5728wmem 2754[current-room] 2510
5731wmem 2755[prev-room] 0
5734jmp 5736
5736pop r2
5738pop r1
5740pop r0
5742ret
use-mirror:
5743push r0
5745push r1
5747push r2
5749push r3
5751push r0
5753push r1
5755push r2
5757r0 =
29664
5760r1 =
1553
5763r2 =
11087 +
546
5767call 1480(map) "You gaze into the mirror, and you see yourself gazing back. But wait! It looks like someone wrote on your face while you were unconscious on the beach! Through the mirror, you see \""
5769pop r2
5771pop r1
5773pop r0
5775rmem r0 3977
5778rmem r1 3978
5781call 2147(xor)
5783rmem r1 3979
5786call 2147(xor)
5788r1 =
25933
5791r2 =
4
5794push r3
5796r3 =
29849
5799call 1863(print-code)
5801pop r3
5803push r0
5805push r1
5807push r2
5809r0 =
29853
5812r1 =
1553
5815r2 =
601 +
2078
5819call 1480(map) "\" scrawled in charcoal on your forehead.\n\nCongratulations; you have reached the end of the challenge!\n\n"
5821pop r2
5823pop r1
5825pop r0
5827pop r3
5829pop r2
5831pop r1
5833pop r0
5835ret
print-list-item:
5836out '-'
5838out ' '
5840call 1540(print)
5842out '\n'
5844ret
5845push r1
5847push r2
5849r0 =
27395
5852r1 =
5868
5855r2 =
0
5858call 1480(map)
5860r0 =
r2
5863pop r2
5865pop r1
5867ret
5868push r3
5870push r4
5872rmem r3 2754[current-room]
5875r4 =
r0 +
2
5879rmem r4 r4
5882r3 =
r3 ==
r4
5886jf r3 5893
5889r2 =
r2 +
1
5893pop r4
5895pop r3
5897ret
5898push r0
5900push r1
5902r0 =
27395
5905r1 =
5915
5908call 1480(map)
5910pop r1
5912pop r0
5914ret
5915push r3
5917r3 =
r0 +
2
5921rmem r3 r3
5924r3 =
r2 ==
r3
5928jf r3 5940
5931r0 =
r0 +
0
5935rmem r0 r0
5938call 5836(print-list-item)
5940pop r3
5942ret
5943push r1
5945push r2
5947r2 =
r0
5950r0 =
27395
5953r1 =
5986
5956call 1565
5958r1 =
r0 ==
32767
5962jt r1 5978
5965r1 =
27395 +
r0
5969r1 =
r1 +
1
5973rmem r0 r1
5976jmp 5981
5978r0 =
0
5981pop r2
5983pop r1
5985ret
5986push r1
5988r1 =
r2
5991r0 =
r0 +
0
5995rmem r0 r0
5998call 1689(strcmp)
6000pop r1
6002jf r0 6011
6005r2 =
r1
6008r1 =
32767
6011ret
6012push r1
6014push r2
6016r0 =
r0 +
2
6020rmem r0 r0
6023jf r0 6041
6026rmem r1 2754[current-room]
6029r1 =
r0 ==
r1
6033jt r1 6041
6036r0 =
0
6039jmp 6044
6041r0 =
1
6044pop r2
6046pop r1
6048ret