PageRenderTime 94ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/etude.asm

http://github.com/shepheb/hork
Assembly | 2086 lines | 1998 code | 88 blank | 0 comment | 4 complexity | 9656b75e24f3cf71d9c84f9a50430f57 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. Resident data ends at 61c, program starts at 61c, file ends at 4a0c
  2. Starting analysis pass at address 61c
  3. End of analysis pass, low address = 61c, high address = 20b6
  4. [Start of code at 61c]
  5. Main routine 61c, 0 locals
  6. 61d: e0 3f 05 6b ff CALL_VS 15ac -> Gef
  7. 622: ba QUIT
  8. Routine 624, 2 locals
  9. 625: e0 17 07 a1 32 00 01 CALL_VS 1e84 (#32,#00) -> L00
  10. 62c: e0 17 07 a1 32 01 02 CALL_VS 1e84 (#32,#01) -> L01
  11. 633: a0 01 4b JZ L00 [FALSE] 63f
  12. 636: a0 02 48 JZ L01 [FALSE] 63f
  13. 639: 8d 08 46 PRINT_PADDR S003
  14. 63c: 8c 00 1f JUMP 65c
  15. 63f: 8d 08 55 PRINT_PADDR S004
  16. 642: e6 bf 01 PRINT_NUM L00
  17. 645: b2 ... PRINT "."
  18. 648: e6 bf 02 PRINT_NUM L01
  19. 64b: b2 ... PRINT " of the Z-Spec.
  20. "
  21. 65c: e0 17 07 a1 00 01 01 CALL_VS 1e84 (#00,#01) -> L00
  22. 663: 49 01 01 00 AND L00,#01 -> -(SP)
  23. 667: a0 00 c8 JZ (SP)+ [TRUE] 670
  24. 66a: 8d 08 5d PRINT_PADDR S005
  25. 66d: 8c 00 05 JUMP 673
  26. 670: 8d 08 67 PRINT_PADDR S006
  27. 673: 49 01 04 00 AND L00,#04 -> -(SP)
  28. 677: a0 00 c8 JZ (SP)+ [TRUE] 680
  29. 67a: 8d 08 72 PRINT_PADDR S007
  30. 67d: 8c 00 05 JUMP 683
  31. 680: 8d 08 7e PRINT_PADDR S008
  32. 683: 49 01 08 00 AND L00,#08 -> -(SP)
  33. 687: a0 00 c8 JZ (SP)+ [TRUE] 690
  34. 68a: 8d 08 8b PRINT_PADDR S009
  35. 68d: 8c 00 05 JUMP 693
  36. 690: 8d 08 98 PRINT_PADDR S010
  37. 693: 49 01 10 00 AND L00,#10 -> -(SP)
  38. 697: a0 00 c8 JZ (SP)+ [TRUE] 6a0
  39. 69a: 8d 08 a6 PRINT_PADDR S011
  40. 69d: 8c 00 05 JUMP 6a3
  41. 6a0: 8d 08 b1 PRINT_PADDR S012
  42. 6a3: 49 01 20 00 AND L00,#20 -> -(SP)
  43. 6a7: a0 00 c8 JZ (SP)+ [TRUE] 6b0
  44. 6aa: 8d 08 bd PRINT_PADDR S013
  45. 6ad: 8c 00 05 JUMP 6b3
  46. 6b0: 8d 08 c7 PRINT_PADDR S014
  47. 6b3: 49 01 80 00 AND L00,#80 -> -(SP)
  48. 6b7: a0 00 c8 JZ (SP)+ [TRUE] 6c0
  49. 6ba: 8d 08 d2 PRINT_PADDR S015
  50. 6bd: 8c 00 05 JUMP 6c3
  51. 6c0: 8d 08 dc PRINT_PADDR S016
  52. 6c3: bb NEW_LINE
  53. 6c4: e0 17 07 a1 10 01 01 CALL_VS 1e84 (#10,#01) -> L00
  54. 6cb: 49 01 10 00 AND L00,#10 -> -(SP)
  55. 6cf: a0 00 c8 JZ (SP)+ [TRUE] 6d8
  56. 6d2: 8d 08 e7 PRINT_PADDR S017
  57. 6d5: 8c 00 05 JUMP 6db
  58. 6d8: 8d 08 f0 PRINT_PADDR S018
  59. 6db: b0 RTRUE
  60. Routine 6dc, 4 locals
  61. 6dd: e0 17 07 a1 00 01 01 CALL_VS 1e84 (#00,#01) -> L00
  62. 6e4: 49 01 01 00 AND L00,#01 -> -(SP)
  63. 6e8: a0 00 cb JZ (SP)+ [TRUE] 6f4
  64. 6eb: 8d 09 06 PRINT_PADDR S029
  65. 6ee: 0d 04 01 STORE L03,#01
  66. 6f1: 8c 00 08 JUMP 6fa
  67. 6f4: 8d 09 10 PRINT_PADDR S030
  68. 6f7: 0d 04 00 STORE L03,#00
  69. 6fa: a0 04 c8 JZ L03 [TRUE] 703
  70. 6fd: 8d 09 1b PRINT_PADDR S031
  71. 700: 8c 00 05 JUMP 706
  72. 703: 8d 09 22 PRINT_PADDR S032
  73. 706: 8d 09 2b PRINT_PADDR S033
  74. 709: 0f 00 08 ff LOADW #00,#08 -> Gef
  75. 70d: 28 02 ff ff OR #02,Gef -> Gef
  76. 711: e1 5b 00 08 ff STOREW #00,#08,Gef
  77. 716: bb NEW_LINE
  78. 717: b2 ... PRINT "Bk Rd Gr Yl Bl Mg Cy Wh
  79. "
  80. 72e: 0d 02 02 STORE L01,#02
  81. 731: 42 02 0a 00 47 JL L01,#0a [FALSE] 77b
  82. 736: 0d 03 02 STORE L02,#02
  83. 739: 42 03 0a 4f JL L02,#0a [FALSE] 74a
  84. 73d: 7b 02 03 SET_COLOUR L01,L02
  85. 740: b2 ... PRINT "## "
  86. 745: 95 03 INC L02
  87. 747: 8c ff f1 JUMP 739
  88. 74a: 1b 01 01 SET_COLOUR #01,#01
  89. 74d: b2 ... PRINT ": "
  90. 750: 42 02 00 c6 JL L01,#00 [TRUE] 758
  91. 754: 42 02 0a d2 JL L01,#0a [TRUE] 768
  92. 758: fa 19 5f 06 55 1d 02 09 01 00
  93. CALL_VN2 1954 (#1d,L01,#09,#01,#00)
  94. 762: e8 7f 00 PUSH #00
  95. 765: 8c 00 08 JUMP 76e
  96. 768: cf 2f 04 e8 02 00 LOADW #04e8,L01 -> -(SP)
  97. 76e: da 2f 07 dd 00 CALL_2N 1f74 ((SP)+)
  98. 773: b2 ... PRINT "
  99. "
  100. 776: 95 02 INC L01
  101. 778: 8c ff b8 JUMP 731
  102. 77b: 0f 00 08 ff LOADW #00,#08 -> Gef
  103. 77f: c9 2f ff fd ff ff AND #fffd,Gef -> Gef
  104. 785: e1 5b 00 08 ff STOREW #00,#08,Gef
  105. 78a: b0 RTRUE
  106. Routine 78c, 1 local
  107. 78d: e0 17 07 a1 00 01 01 CALL_VS 1e84 (#00,#01) -> L00
  108. 794: 49 01 04 00 AND L00,#04 -> -(SP)
  109. 798: a0 00 c8 JZ (SP)+ [TRUE] 7a1
  110. 79b: 8d 09 47 PRINT_PADDR S034
  111. 79e: 8c 00 05 JUMP 7a4
  112. 7a1: 8d 09 53 PRINT_PADDR S035
  113. 7a4: 49 01 08 00 AND L00,#08 -> -(SP)
  114. 7a8: a0 00 c8 JZ (SP)+ [TRUE] 7b1
  115. 7ab: 8d 09 60 PRINT_PADDR S036
  116. 7ae: 8c 00 05 JUMP 7b4
  117. 7b1: 8d 09 6d PRINT_PADDR S037
  118. 7b4: 49 01 10 00 AND L00,#10 -> -(SP)
  119. 7b8: a0 00 c8 JZ (SP)+ [TRUE] 7c1
  120. 7bb: 8d 09 7b PRINT_PADDR S038
  121. 7be: 8c 00 05 JUMP 7c4
  122. 7c1: 8d 09 86 PRINT_PADDR S039
  123. 7c4: bb NEW_LINE
  124. 7c5: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  125. 7c8: b2 ... PRINT "Test of emphasized (bold)
  126. text."
  127. 7e1: f1 7f 00 SET_TEXT_STYLE ROMAN
  128. 7e4: b2 ... PRINT "
  129. ...normal font...
  130. "
  131. 7f7: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  132. 7fa: 8d 09 92 PRINT_PADDR S040
  133. 7fd: f1 7f 00 SET_TEXT_STYLE ROMAN
  134. 800: b2 ... PRINT "
  135. ...normal font...
  136. "
  137. 813: f1 7f 01 SET_TEXT_STYLE REVERSE
  138. 816: b2 ... PRINT "Test of reverse-video text."
  139. 82b: f1 7f 00 SET_TEXT_STYLE ROMAN
  140. 82e: b2 ... PRINT "
  141. ...normal font...
  142. "
  143. 841: 0f 00 08 ff LOADW #00,#08 -> Gef
  144. 845: 28 02 ff ff OR #02,Gef -> Gef
  145. 849: e1 5b 00 08 ff STOREW #00,#08,Gef
  146. 84e: 8d 09 99 PRINT_PADDR S041
  147. 851: 0f 00 08 ff LOADW #00,#08 -> Gef
  148. 855: c9 2f ff fd ff ff AND #fffd,Gef -> Gef
  149. 85b: e1 5b 00 08 ff STOREW #00,#08,Gef
  150. 860: b2 ... PRINT "
  151. ...normal font...
  152. "
  153. 873: f1 7f 08 SET_TEXT_STYLE FIXED_FONT
  154. 876: 8d 09 a6 PRINT_PADDR S042
  155. 879: f1 7f 00 SET_TEXT_STYLE ROMAN
  156. 87c: bb NEW_LINE
  157. 87d: 8d 09 b1 PRINT_PADDR S043
  158. 880: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  159. 883: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  160. 886: b2 ... PRINT "Test of bold, italic text."
  161. 89b: f1 7f 00 SET_TEXT_STYLE ROMAN
  162. 89e: bb NEW_LINE
  163. 89f: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  164. 8a2: f1 7f 01 SET_TEXT_STYLE REVERSE
  165. 8a5: b2 ... PRINT "Test of bold, reverse text."
  166. 8ba: f1 7f 00 SET_TEXT_STYLE ROMAN
  167. 8bd: bb NEW_LINE
  168. 8be: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  169. 8c1: f1 7f 01 SET_TEXT_STYLE REVERSE
  170. 8c4: b2 ... PRINT "Test of italic, reverse text."
  171. 8db: f1 7f 00 SET_TEXT_STYLE ROMAN
  172. 8de: bb NEW_LINE
  173. 8df: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  174. 8e2: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  175. 8e5: f1 7f 01 SET_TEXT_STYLE REVERSE
  176. 8e8: 8d 09 d0 PRINT_PADDR S044
  177. 8eb: f1 7f 00 SET_TEXT_STYLE ROMAN
  178. 8ee: bb NEW_LINE
  179. 8ef: 8d 09 d7 PRINT_PADDR S045
  180. 8f2: 0f 00 08 ff LOADW #00,#08 -> Gef
  181. 8f6: 28 02 ff ff OR #02,Gef -> Gef
  182. 8fa: e1 5b 00 08 ff STOREW #00,#08,Gef
  183. 8ff: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  184. 902: b2 ... PRINT "Test of fixed, bold text."
  185. 917: f1 7f 00 SET_TEXT_STYLE ROMAN
  186. 91a: bb NEW_LINE
  187. 91b: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  188. 91e: b2 ... PRINT "Test of fixed, italic text."
  189. 933: f1 7f 00 SET_TEXT_STYLE ROMAN
  190. 936: bb NEW_LINE
  191. 937: f1 7f 01 SET_TEXT_STYLE REVERSE
  192. 93a: b2 ... PRINT "Test of fixed, reverse text."
  193. 951: f1 7f 00 SET_TEXT_STYLE ROMAN
  194. 954: bb NEW_LINE
  195. 955: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  196. 958: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  197. 95b: 8d 09 ef PRINT_PADDR S046
  198. 95e: f1 7f 00 SET_TEXT_STYLE ROMAN
  199. 961: bb NEW_LINE
  200. 962: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  201. 965: f1 7f 01 SET_TEXT_STYLE REVERSE
  202. 968: 8d 09 f6 PRINT_PADDR S047
  203. 96b: f1 7f 00 SET_TEXT_STYLE ROMAN
  204. 96e: bb NEW_LINE
  205. 96f: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  206. 972: f1 7f 01 SET_TEXT_STYLE REVERSE
  207. 975: 8d 09 fd PRINT_PADDR S048
  208. 978: f1 7f 00 SET_TEXT_STYLE ROMAN
  209. 97b: bb NEW_LINE
  210. 97c: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  211. 97f: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  212. 982: f1 7f 01 SET_TEXT_STYLE REVERSE
  213. 985: 8d 0a 04 PRINT_PADDR S049
  214. 988: f1 7f 00 SET_TEXT_STYLE ROMAN
  215. 98b: bb NEW_LINE
  216. 98c: 0f 00 08 ff LOADW #00,#08 -> Gef
  217. 990: c9 2f ff fd ff ff AND #fffd,Gef -> Gef
  218. 996: e1 5b 00 08 ff STOREW #00,#08,Gef
  219. 99b: b2 ... PRINT "
  220. End of styles test.
  221. "
  222. 9ae: b0 RTRUE
  223. Routine 9b0, 3 locals
  224. 9b1: da 2f 07 dd 01 CALL_2N 1f74 (L00)
  225. 9b6: b2 ... PRINT " = "
  226. 9bb: e6 bf 02 PRINT_NUM L01
  227. 9be: 61 02 03 4c JE L01,L02 [FALSE] 9cc
  228. 9c2: b2 ... PRINT " (ok)
  229. "
  230. 9c9: 8c 00 20 JUMP 9ea
  231. 9cc: b2 ... PRINT " (ERROR, should be "
  232. 9df: e6 bf 03 PRINT_NUM L02
  233. 9e2: b2 ... PRINT "!)
  234. "
  235. 9e7: 0d 10 01 STORE G00,#01
  236. 9ea: b0 RTRUE
  237. Routine 9ec, 3 locals
  238. 9ed: 8d 0a 0c PRINT_PADDR S050
  239. 9f0: 8d 0a 31 PRINT_PADDR S051
  240. 9f3: 0d 10 00 STORE G00,#00
  241. 9f6: 0d 01 0d STORE L00,#0d
  242. 9f9: 0d 02 05 STORE L01,#05
  243. 9fc: 76 01 02 03 MUL L00,L01 -> L02
  244. a00: f9 09 02 6c 0a 81 03 41 CALL_VN 9b0 (S052,L02,#41)
  245. a08: 0d 01 0d STORE L00,#0d
  246. a0b: cd 4f 02 ff fb STORE L01,#fffb
  247. a10: 76 01 02 03 MUL L00,L01 -> L02
  248. a14: f9 08 02 6c 0a 83 03 ff bf
  249. CALL_VN 9b0 (S053,L02,#ffbf)
  250. a1d: cd 4f 01 ff f3 STORE L00,#fff3
  251. a22: 0d 02 05 STORE L01,#05
  252. a25: 76 01 02 03 MUL L00,L01 -> L02
  253. a29: f9 08 02 6c 0a 86 03 ff bf
  254. CALL_VN 9b0 (S054,L02,#ffbf)
  255. a32: cd 4f 01 ff f3 STORE L00,#fff3
  256. a37: cd 4f 02 ff fb STORE L01,#fffb
  257. a3c: 76 01 02 03 MUL L00,L01 -> L02
  258. a40: f9 09 02 6c 0a 89 03 41 CALL_VN 9b0 (S055,L02,#41)
  259. a48: 0d 01 0d STORE L00,#0d
  260. a4b: 0d 02 05 STORE L01,#05
  261. a4e: 2d ff 01 STORE Gef,L00
  262. a51: 2d fe 02 STORE Gee,L01
  263. a54: a0 fe 49 JZ Gee [FALSE] a5e
  264. a57: f9 1f 06 55 14 CALL_VN 1954 (#14)
  265. a5c: 95 fe INC Gee
  266. a5e: 77 ff fe 03 DIV Gef,Gee -> L02
  267. a62: f9 09 02 6c 0a 8c 03 02 CALL_VN 9b0 (S056,L02,#02)
  268. a6a: 0d 01 0d STORE L00,#0d
  269. a6d: cd 4f 02 ff fb STORE L01,#fffb
  270. a72: 2d ff 01 STORE Gef,L00
  271. a75: 2d fe 02 STORE Gee,L01
  272. a78: a0 fe 49 JZ Gee [FALSE] a82
  273. a7b: f9 1f 06 55 14 CALL_VN 1954 (#14)
  274. a80: 95 fe INC Gee
  275. a82: 77 ff fe 03 DIV Gef,Gee -> L02
  276. a86: f9 08 02 6c 0a 8e 03 ff fe
  277. CALL_VN 9b0 (S057,L02,#fffe)
  278. a8f: cd 4f 01 ff f3 STORE L00,#fff3
  279. a94: 0d 02 05 STORE L01,#05
  280. a97: 2d ff 01 STORE Gef,L00
  281. a9a: 2d fe 02 STORE Gee,L01
  282. a9d: a0 fe 49 JZ Gee [FALSE] aa7
  283. aa0: f9 1f 06 55 14 CALL_VN 1954 (#14)
  284. aa5: 95 fe INC Gee
  285. aa7: 77 ff fe 03 DIV Gef,Gee -> L02
  286. aab: f9 08 02 6c 0a 90 03 ff fe
  287. CALL_VN 9b0 (S058,L02,#fffe)
  288. ab4: cd 4f 01 ff f3 STORE L00,#fff3
  289. ab9: cd 4f 02 ff fb STORE L01,#fffb
  290. abe: 2d ff 01 STORE Gef,L00
  291. ac1: 2d fe 02 STORE Gee,L01
  292. ac4: a0 fe 49 JZ Gee [FALSE] ace
  293. ac7: f9 1f 06 55 14 CALL_VN 1954 (#14)
  294. acc: 95 fe INC Gee
  295. ace: 77 ff fe 03 DIV Gef,Gee -> L02
  296. ad2: f9 09 02 6c 0a 92 03 02 CALL_VN 9b0 (S059,L02,#02)
  297. ada: 0d 01 0d STORE L00,#0d
  298. add: 0d 02 05 STORE L01,#05
  299. ae0: 2d ff 01 STORE Gef,L00
  300. ae3: 2d fe 02 STORE Gee,L01
  301. ae6: a0 fe 49 JZ Gee [FALSE] af0
  302. ae9: f9 1f 06 55 14 CALL_VN 1954 (#14)
  303. aee: 95 fe INC Gee
  304. af0: 78 ff fe 03 MOD Gef,Gee -> L02
  305. af4: f9 09 02 6c 0a 95 03 03 CALL_VN 9b0 (S060,L02,#03)
  306. afc: 0d 01 0d STORE L00,#0d
  307. aff: cd 4f 02 ff fb STORE L01,#fffb
  308. b04: 2d ff 01 STORE Gef,L00
  309. b07: 2d fe 02 STORE Gee,L01
  310. b0a: a0 fe 49 JZ Gee [FALSE] b14
  311. b0d: f9 1f 06 55 14 CALL_VN 1954 (#14)
  312. b12: 95 fe INC Gee
  313. b14: 78 ff fe 03 MOD Gef,Gee -> L02
  314. b18: f9 09 02 6c 0a 97 03 03 CALL_VN 9b0 (S061,L02,#03)
  315. b20: cd 4f 01 ff f3 STORE L00,#fff3
  316. b25: 0d 02 05 STORE L01,#05
  317. b28: 2d ff 01 STORE Gef,L00
  318. b2b: 2d fe 02 STORE Gee,L01
  319. b2e: a0 fe 49 JZ Gee [FALSE] b38
  320. b31: f9 1f 06 55 14 CALL_VN 1954 (#14)
  321. b36: 95 fe INC Gee
  322. b38: 78 ff fe 03 MOD Gef,Gee -> L02
  323. b3c: f9 08 02 6c 0a 9a 03 ff fd
  324. CALL_VN 9b0 (S062,L02,#fffd)
  325. b45: cd 4f 01 ff f3 STORE L00,#fff3
  326. b4a: cd 4f 02 ff fb STORE L01,#fffb
  327. b4f: 2d ff 01 STORE Gef,L00
  328. b52: 2d fe 02 STORE Gee,L01
  329. b55: a0 fe 49 JZ Gee [FALSE] b5f
  330. b58: f9 1f 06 55 14 CALL_VN 1954 (#14)
  331. b5d: 95 fe INC Gee
  332. b5f: 78 ff fe 03 MOD Gef,Gee -> L02
  333. b63: f9 08 02 6c 0a 9d 03 ff fd
  334. CALL_VN 9b0 (S063,L02,#fffd)
  335. b6c: a0 10 4e JZ G00 [FALSE] b7b
  336. b6f: b2 ... PRINT "
  337. "
  338. b72: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  339. b78: 8c 00 0b JUMP b84
  340. b7b: b2 ... PRINT "
  341. "
  342. b7e: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  343. b84: b0 RTRUE
  344. Routine b88, 2 locals
  345. b89: 8d 0b 7a PRINT_PADDR S133
  346. b8c: 8d 0b 98 PRINT_PADDR S134
  347. b8f: 8d 0b e2 PRINT_PADDR S135
  348. b92: 0d 02 00 STORE L01,#00
  349. b95: 90 01 80 df JZ #01 [TRUE] c76
  350. b99: 42 02 00 80 a7 JL L01,#00 [TRUE] c43
  351. b9e: 49 02 04 00 AND L01,#04 -> -(SP)
  352. ba2: a0 00 cf JZ (SP)+ [TRUE] bb2
  353. ba5: 0f 00 08 ff LOADW #00,#08 -> Gef
  354. ba9: 28 02 ff ff OR #02,Gef -> Gef
  355. bad: e1 5b 00 08 ff STOREW #00,#08,Gef
  356. bb2: 49 02 02 00 AND L01,#02 -> -(SP)
  357. bb6: a0 00 c5 JZ (SP)+ [TRUE] bbc
  358. bb9: f1 7f 04 SET_TEXT_STYLE EMPHASIS
  359. bbc: 49 02 01 00 AND L01,#01 -> -(SP)
  360. bc0: a0 00 c5 JZ (SP)+ [TRUE] bc6
  361. bc3: f1 7f 02 SET_TEXT_STYLE BOLDFACE
  362. bc6: 0d 01 01 STORE L00,#01
  363. bc9: 02 00 00 c6 JL #00,#00 [TRUE] bd1
  364. bcd: 02 00 46 d2 JL #00,#46 [TRUE] be1
  365. bd1: fa 15 5f 06 55 1d 00 45 03 01
  366. CALL_VN2 1954 (#1d,#00,#45,#03,#01)
  367. bdb: e8 7f 00 PUSH #00
  368. bde: 8c 00 08 JUMP be7
  369. be1: cf 1f 04 fc 00 00 LOADW #04fc,#00 -> -(SP)
  370. be7: 63 01 00 f8 JG L00,(SP)+ [TRUE] c21
  371. beb: 42 01 00 c6 JL L00,#00 [TRUE] bf3
  372. bef: 42 01 46 d2 JL L00,#46 [TRUE] c03
  373. bf3: fa 19 5f 06 55 1d 01 45 03 01
  374. CALL_VN2 1954 (#1d,L00,#45,#03,#01)
  375. bfd: e8 7f 00 PUSH #00
  376. c00: 8c 00 08 JUMP c09
  377. c03: cf 2f 04 fc 01 00 LOADW #04fc,L00 -> -(SP)
  378. c09: da 2f 07 dd 00 CALL_2N 1f74 ((SP)+)
  379. c0e: 58 01 04 00 MOD L00,#04 -> -(SP)
  380. c12: a0 00 46 JZ (SP)+ [FALSE] c19
  381. c15: bb NEW_LINE
  382. c16: 8c 00 05 JUMP c1c
  383. c19: b2 ... PRINT " "
  384. c1c: 95 01 INC L00
  385. c1e: 8c ff aa JUMP bc9
  386. c21: 49 02 04 00 AND L01,#04 -> -(SP)
  387. c25: a0 00 d1 JZ (SP)+ [TRUE] c37
  388. c28: 0f 00 08 ff LOADW #00,#08 -> Gef
  389. c2c: c9 2f ff fd ff ff AND #fffd,Gef -> Gef
  390. c32: e1 5b 00 08 ff STOREW #00,#08,Gef
  391. c37: 49 02 03 00 AND L01,#03 -> -(SP)
  392. c3b: a0 00 c5 JZ (SP)+ [TRUE] c41
  393. c3e: f1 7f 00 SET_TEXT_STYLE ROMAN
  394. c41: bb NEW_LINE
  395. c42: bb NEW_LINE
  396. c43: 8d 0c 3c PRINT_PADDR S136
  397. c46: 8d 0c 4e PRINT_PADDR S137
  398. c49: b2 ... PRINT "
  399. Accents> "
  400. c54: f6 7f 01 01 READ_CHAR #01 -> L00
  401. c58: bb NEW_LINE
  402. c59: 41 01 2e 43 JE L00,#2e [FALSE] c5e
  403. c5d: b0 RTRUE
  404. c5e: bb NEW_LINE
  405. c5f: 42 01 30 cd JL L00,#30 [TRUE] c6e
  406. c63: 43 01 37 c9 JG L00,#37 [TRUE] c6e
  407. c67: 55 01 30 02 SUB L00,#30 -> L01
  408. c6b: 8c 00 07 JUMP c73
  409. c6e: cd 4f 02 ff ff STORE L01,#ffff
  410. c73: 8c ff 21 JUMP b95
  411. c76: b0 RTRUE
  412. Routine c78, 3 locals
  413. c79: 0d 03 00 STORE L02,#00
  414. c7c: 41 01 08 4b JE L00,#08 [FALSE] c89
  415. c80: 8d 0c 6a PRINT_PADDR S138
  416. c83: 0d 03 02 STORE L02,#02
  417. c86: 8c 01 fa JUMP e81
  418. c89: 41 01 0d 4b JE L00,#0d [FALSE] c96
  419. c8d: 8d 0c 74 PRINT_PADDR S139
  420. c90: 0d 03 02 STORE L02,#02
  421. c93: 8c 01 ed JUMP e81
  422. c96: 41 01 1b 4b JE L00,#1b [FALSE] ca3
  423. c9a: 8d 0c 7e PRINT_PADDR S140
  424. c9d: 0d 03 02 STORE L02,#02
  425. ca0: 8c 01 e0 JUMP e81
  426. ca3: 42 01 20 69 JL L00,#20 [FALSE] cce
  427. ca7: b2 ... PRINT "control character 'ctrl-"
  428. cba: 54 01 40 00 ADD L00,#40 -> -(SP)
  429. cbe: da 2f 07 d0 00 CALL_2N 1f40 ((SP)+)
  430. cc3: b2 ... PRINT "'"
  431. cc6: cd 4f 03 ff ff STORE L02,#ffff
  432. ccb: 8c 01 b5 JUMP e81
  433. cce: 41 01 7f 5f JE L00,#7f [FALSE] cef
  434. cd2: b2 ... PRINT "control character 'delete'"
  435. ce7: cd 4f 03 ff ff STORE L02,#ffff
  436. cec: 8c 01 94 JUMP e81
  437. cef: 41 01 80 59 JE L00,#80 [FALSE] d0a
  438. cf3: b2 ... PRINT "undefined character"
  439. d02: cd 4f 03 ff ff STORE L02,#ffff
  440. d07: 8c 01 79 JUMP e81
  441. d0a: 42 01 80 5e JL L00,#80 [FALSE] d2a
  442. d0e: b2 ... PRINT "ASCII character '"
  443. d1f: da 2f 07 d0 01 CALL_2N 1f40 (L00)
  444. d24: b2 ... PRINT "'"
  445. d27: 8c 01 59 JUMP e81
  446. d2a: 42 01 9b 00 a3 JL L00,#9b [FALSE] dd0
  447. d2f: 0d 03 02 STORE L02,#02
  448. d32: 2d ff 01 STORE Gef,L00
  449. d35: 41 ff 81 4c JE Gef,#81 [FALSE] d43
  450. d39: b2 ... PRINT "cursor up"
  451. d40: 8c 00 8c JUMP dcd
  452. d43: 41 ff 82 4e JE Gef,#82 [FALSE] d53
  453. d47: b2 ... PRINT "cursor down"
  454. d50: 8c 00 7c JUMP dcd
  455. d53: 41 ff 83 4e JE Gef,#83 [FALSE] d63
  456. d57: b2 ... PRINT "cursor left"
  457. d60: 8c 00 6c JUMP dcd
  458. d63: 41 ff 84 4e JE Gef,#84 [FALSE] d73
  459. d67: b2 ... PRINT "cursor right"
  460. d70: 8c 00 5c JUMP dcd
  461. d73: c1 95 ff 85 86 87 d7 JE Gef,#85,#86,#87 [TRUE] d8f
  462. d7a: c1 95 ff 88 89 8a d0 JE Gef,#88,#89,#8a [TRUE] d8f
  463. d81: c1 95 ff 8b 8c 8d c9 JE Gef,#8b,#8c,#8d [TRUE] d8f
  464. d88: c1 95 ff 8e 8f 90 57 JE Gef,#8e,#8f,#90 [FALSE] da4
  465. d8f: b2 ... PRINT "function key "
  466. d9a: 55 01 84 00 SUB L00,#84 -> -(SP)
  467. d9e: e6 bf 00 PRINT_NUM (SP)+
  468. da1: 8c 00 2b JUMP dcd
  469. da4: c1 95 ff 91 92 93 d4 JE Gef,#91,#92,#93 [TRUE] dbd
  470. dab: c1 95 ff 94 95 96 cd JE Gef,#94,#95,#96 [TRUE] dbd
  471. db2: c1 95 ff 97 98 99 c6 JE Gef,#97,#98,#99 [TRUE] dbd
  472. db9: 41 ff 9a 52 JE Gef,#9a [FALSE] dcd
  473. dbd: b2 ... PRINT "keypad key "
  474. dc6: 55 01 91 00 SUB L00,#91 -> -(SP)
  475. dca: e6 bf 00 PRINT_NUM (SP)+
  476. dcd: 8c 00 b3 JUMP e81
  477. dd0: 42 01 e0 79 JL L00,#e0 [FALSE] e0b
  478. dd4: 55 01 9b 00 SUB L00,#9b -> -(SP)
  479. dd8: 54 00 01 00 ADD (SP)+,#01 -> -(SP)
  480. ddc: e9 7f fe PULL Gee
  481. ddf: e8 bf fe PUSH Gee
  482. de2: 42 fe 00 c6 JL Gee,#00 [TRUE] dea
  483. de6: 42 fe 46 d5 JL Gee,#46 [TRUE] dfd
  484. dea: fa 19 5f 06 55 1d fe 45 03 01
  485. CALL_VN2 1954 (#1d,Gee,#45,#03,#01)
  486. df4: a0 00 42 JZ (SP)+ [FALSE] df7
  487. df7: e8 7f 00 PUSH #00
  488. dfa: 8c 00 08 JUMP e03
  489. dfd: cf 2f 04 fc 00 00 LOADW #04fc,(SP)+ -> -(SP)
  490. e03: da 2f 07 dd 00 CALL_2N 1f74 ((SP)+)
  491. e08: 8c 00 78 JUMP e81
  492. e0b: 42 01 fc 59 JL L00,#fc [FALSE] e26
  493. e0f: b2 ... PRINT "undefined character"
  494. e1e: cd 4f 03 ff ff STORE L02,#ffff
  495. e23: 8c 00 5d JUMP e81
  496. e26: 42 01 ff 00 44 JL L00,#ff [FALSE] e6d
  497. e2b: 0d 03 02 STORE L02,#02
  498. e2e: 2d ff 01 STORE Gef,L00
  499. e31: 41 ff fc 4e JE Gef,#fc [FALSE] e41
  500. e35: b2 ... PRINT "menu click"
  501. e3e: 8c 00 2b JUMP e6a
  502. e41: 41 ff fd 54 JE Gef,#fd [FALSE] e57
  503. e45: b2 ... PRINT "mouse double-click"
  504. e54: 8c 00 15 JUMP e6a
  505. e57: 41 ff fe 51 JE Gef,#fe [FALSE] e6a
  506. e5b: b2 ... PRINT "mouse single-click"
  507. e6a: 8c 00 16 JUMP e81
  508. e6d: cd 4f 03 ff ff STORE L02,#ffff
  509. e72: b2 ... PRINT "undefined character"
  510. e81: 41 02 01 69 JE L01,#01 [FALSE] eac
  511. e85: 2d ff 03 STORE Gef,L02
  512. e88: c1 8f ff ff ff 56 JE Gef,#ffff [FALSE] ea2
  513. e8e: b2 ... PRINT " (should NOT occur)"
  514. e9f: 8c 00 09 JUMP ea9
  515. ea2: 41 ff 02 45 JE Gef,#02 [FALSE] ea9
  516. ea6: 8d 0c 88 PRINT_PADDR S141
  517. ea9: 8c 00 20 JUMP eca
  518. eac: 41 02 02 5c JE L01,#02 [FALSE] eca
  519. eb0: 2d ff 03 STORE Gef,L02
  520. eb3: c1 8f ff ff ff 53 JE Gef,#ffff [FALSE] eca
  521. eb9: b2 ... PRINT " (should NOT occur)"
  522. eca: b0 RTRUE
  523. Routine ecc, 4 locals
  524. ecd: 8d 0c 90 PRINT_PADDR S142
  525. ed0: 8d 0c bf PRINT_PADDR S143
  526. ed3: 90 01 80 71 JZ #01 [TRUE] f46
  527. ed7: b2 ... PRINT "
  528. AccentedInput> "
  529. ee8: d5 1f 00 50 03 00 SUB #0050,#03 -> -(SP)
  530. eee: f9 06 07 b2 05 c2 00 00 CALL_VN 1ec8 (#05c2,#00,(SP)+)
  531. ef6: f9 05 07 b2 05 c2 01 00 CALL_VN 1ec8 (#05c2,#01,#00)
  532. efe: cd 4f 01 05 c2 STORE L00,#05c2
  533. f03: 0d 02 00 STORE L01,#00
  534. f06: e4 bf 01 02 READ L00 -> L01
  535. f0a: bb NEW_LINE
  536. f0b: e0 07 07 a1 05 c2 01 04 CALL_VS 1e84 (#05c2,#01) -> L03
  537. f13: a0 04 43 JZ L03 [FALSE] f17
  538. f16: b0 RTRUE
  539. f17: 0d 02 00 STORE L01,#00
  540. f1a: 62 02 04 67 JL L01,L03 [FALSE] f43
  541. f1e: 34 02 02 00 ADD #02,L01 -> -(SP)
  542. f22: e0 0b 07 a1 05 c2 00 03 CALL_VS 1e84 (#05c2,(SP)+) -> L02
  543. f2a: b2 ... PRINT "code="
  544. f31: e6 bf 03 PRINT_NUM L02
  545. f34: b2 ... PRINT ": "
  546. f37: f9 27 03 1e 03 01 CALL_VN c78 (L02,#01)
  547. f3d: bb NEW_LINE
  548. f3e: 95 02 INC L01
  549. f40: 8c ff d9 JUMP f1a
  550. f43: 8c ff 8f JUMP ed3
  551. f46: b0 RTRUE
  552. Routine f48, 1 local
  553. f49: 8d 0c c8 PRINT_PADDR S144
  554. f4c: 90 01 80 44 JZ #01 [TRUE] f92
  555. f50: b2 ... PRINT "AccentedInput> "
  556. f5f: 88 06 29 01 CALL_1S 18a4 -> L00
  557. f63: 41 01 2e 54 JE L00,#2e [FALSE] f79
  558. f67: b2 ... PRINT "
  559. Test finished.
  560. "
  561. f78: b0 RTRUE
  562. f79: b2 ... PRINT "
  563. code="
  564. f82: e6 bf 01 PRINT_NUM L00
  565. f85: b2 ... PRINT ": "
  566. f88: f9 27 03 1e 01 02 CALL_VN c78 (L00,#02)
  567. f8e: bb NEW_LINE
  568. f8f: 8c ff bc JUMP f4c
  569. f92: b0 RTRUE
  570. Routine f94, 2 locals
  571. f95: e0 17 07 a1 00 01 02 CALL_VS 1e84 (#00,#01) -> L01
  572. f9c: 49 02 80 00 AND L01,#80 -> -(SP)
  573. fa0: a0 00 cb JZ (SP)+ [TRUE] fac
  574. fa3: 0d 01 01 STORE L00,#01
  575. fa6: 8d 0c e9 PRINT_PADDR S145
  576. fa9: 8c 00 08 JUMP fb2
  577. fac: 0d 01 00 STORE L00,#00
  578. faf: 8d 0c f8 PRINT_PADDR S146
  579. fb2: 8d 0d 08 PRINT_PADDR S147
  580. fb5: 90 01 80 79 JZ #01 [TRUE] 1030
  581. fb9: 8d 0d 44 PRINT_PADDR S148
  582. fbc: b2 ... PRINT "TimedKey> "
  583. fc7: 88 06 29 02 CALL_1S 18a4 -> L01
  584. fcb: 41 02 2e 43 JE L01,#2e [FALSE] fd0
  585. fcf: b0 RTRUE
  586. fd0: bb NEW_LINE
  587. fd1: 0d 12 00 STORE G02,#00
  588. fd4: cd 4f 11 ff a3 STORE G01,#ffa3
  589. fd9: f6 53 01 0a 04 0d 02 READ_CHAR #01,#0a,1034 -> L01
  590. fe0: bb NEW_LINE
  591. fe1: c1 8f 11 ff a3 60 JE G01,#ffa3 [FALSE] 1005
  592. fe7: 8d 0d 5b PRINT_PADDR S149
  593. fea: a0 01 4e JZ L00 [FALSE] ff9
  594. fed: 8d 0d 89 PRINT_PADDR S150
  595. ff0: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  596. ff6: 8c 00 0b JUMP 1002
  597. ff9: 8d 0d 92 PRINT_PADDR S151
  598. ffc: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  599. 1002: 8c 00 29 JUMP 102c
  600. 1005: a0 11 5d JZ G01 [FALSE] 1023
  601. 1008: 8d 0d 9b PRINT_PADDR S152
  602. 100b: a0 01 4e JZ L00 [FALSE] 101a
  603. 100e: 8d 0d a8 PRINT_PADDR S153
  604. 1011: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  605. 1017: 8c 00 08 JUMP 1020
  606. 101a: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  607. 1020: 8c 00 0b JUMP 102c
  608. 1023: 8d 0d b8 PRINT_PADDR S154
  609. 1026: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  610. 102c: bb NEW_LINE
  611. 102d: 8c ff 87 JUMP fb5
  612. 1030: b0 RTRUE
  613. Routine 1034, 1 local
  614. 1035: 2d 11 01 STORE G01,L00
  615. 1038: b2 ... PRINT "* "
  616. 103d: 95 12 INC G02
  617. 103f: 41 12 0a 46 JE G02,#0a [FALSE] 1047
  618. 1043: bb NEW_LINE
  619. 1044: 0d 12 00 STORE G02,#00
  620. 1047: b1 RFALSE
  621. Routine 1048, 3 locals
  622. 1049: e0 17 07 a1 00 01 03 CALL_VS 1e84 (#00,#01) -> L02
  623. 1050: 49 03 80 00 AND L02,#80 -> -(SP)
  624. 1054: a0 00 cb JZ (SP)+ [TRUE] 1060
  625. 1057: 0d 01 01 STORE L00,#01
  626. 105a: 8d 0d c5 PRINT_PADDR S155
  627. 105d: 8c 00 08 JUMP 1066
  628. 1060: 0d 01 00 STORE L00,#00
  629. 1063: 8d 0d d4 PRINT_PADDR S156
  630. 1066: 8d 0d e4 PRINT_PADDR S157
  631. 1069: 8d 0e 17 PRINT_PADDR S158
  632. 106c: 8d 0e 40 PRINT_PADDR S159
  633. 106f: b2 ... PRINT "TimedString> "
  634. 107c: 88 06 29 03 CALL_1S 18a4 -> L02
  635. 1080: 41 03 2e 43 JE L02,#2e [FALSE] 1085
  636. 1084: b0 RTRUE
  637. 1085: bb NEW_LINE
  638. 1086: b2 ... PRINT "Beginning test...
  639. "
  640. 1099: cd 4f 11 ff a3 STORE G01,#ffa3
  641. 109e: 0d 12 00 STORE G02,#00
  642. 10a1: 90 01 80 9e JZ #01 [TRUE] 1141
  643. 10a5: b2 ... PRINT "TimedString> "
  644. 10b2: d5 1f 00 50 03 00 SUB #0050,#03 -> -(SP)
  645. 10b8: f9 06 07 b2 05 c2 00 00 CALL_VN 1ec8 (#05c2,#00,(SP)+)
  646. 10c0: f9 05 07 b2 05 c2 01 00 CALL_VN 1ec8 (#05c2,#01,#00)
  647. 10c8: cd 4f 02 05 c2 STORE L01,#05c2
  648. 10cd: 0d 03 00 STORE L02,#00
  649. 10d0: e4 94 02 00 0a 04 67 03 READ L01,#00,#0a,119c -> L02
  650. 10d8: bb NEW_LINE
  651. 10d9: e0 07 07 a1 05 c2 01 00 CALL_VS 1e84 (#05c2,#01) -> -(SP)
  652. 10e1: a0 00 48 JZ (SP)+ [FALSE] 10ea
  653. 10e4: 8d 0e 57 PRINT_PADDR S160
  654. 10e7: 8c 00 3b JUMP 1123
  655. 10ea: b2 ... PRINT "You just typed ""
  656. 10f7: 0d 03 00 STORE L02,#00
  657. 10fa: e0 07 07 a1 05 c2 01 00 CALL_VS 1e84 (#05c2,#01) -> -(SP)
  658. 1102: 62 03 00 58 JL L02,(SP)+ [FALSE] 111c
  659. 1106: 34 02 03 00 ADD #02,L02 -> -(SP)
  660. 110a: e0 0b 07 a1 05 c2 00 00 CALL_VS 1e84 (#05c2,(SP)+) -> -(SP)
  661. 1112: da 2f 07 d0 00 CALL_2N 1f40 ((SP)+)
  662. 1117: 95 03 INC L02
  663. 1119: 8c ff e0 JUMP 10fa
  664. 111c: b2 ... PRINT "".
  665. "
  666. 1123: e0 07 07 a1 05 c2 01 00 CALL_VS 1e84 (#05c2,#01) -> -(SP)
  667. 112b: 41 00 01 51 JE (SP)+,#01 [FALSE] 113e
  668. 112f: e0 07 07 a1 05 c2 02 00 CALL_VS 1e84 (#05c2,#02) -> -(SP)
  669. 1137: 41 00 2e 45 JE (SP)+,#2e [FALSE] 113e
  670. 113b: 8c 00 05 JUMP 1141
  671. 113e: 8c ff 62 JUMP 10a1
  672. 1141: b2 ... PRINT "Test terminated.
  673. "
  674. 1150: c1 8f 11 ff a3 60 JE G01,#ffa3 [FALSE] 1174
  675. 1156: 8d 0e 63 PRINT_PADDR S161
  676. 1159: a0 01 4e JZ L00 [FALSE] 1168
  677. 115c: 8d 0e 91 PRINT_PADDR S162
  678. 115f: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  679. 1165: 8c 00 0b JUMP 1171
  680. 1168: 8d 0e 9a PRINT_PADDR S163
  681. 116b: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  682. 1171: 8c 00 29 JUMP 119b
  683. 1174: a0 11 5d JZ G01 [FALSE] 1192
  684. 1177: 8d 0e a3 PRINT_PADDR S164
  685. 117a: a0 01 4e JZ L00 [FALSE] 1189
  686. 117d: 8d 0e b0 PRINT_PADDR S165
  687. 1180: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  688. 1186: 8c 00 08 JUMP 118f
  689. 1189: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  690. 118f: 8c 00 0b JUMP 119b
  691. 1192: 8d 0e c0 PRINT_PADDR S166
  692. 1195: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  693. 119b: b0 RTRUE
  694. Routine 119c, 1 local
  695. 119d: 2d 11 01 STORE G01,L00
  696. 11a0: 95 12 INC G02
  697. 11a2: 41 12 03 48 JE G02,#03 [FALSE] 11ac
  698. 11a6: 0d 12 00 STORE G02,#00
  699. 11a9: 8d 0e cd PRINT_PADDR S167
  700. 11ac: b1 RFALSE
  701. Routine 11b0, 2 locals
  702. 11b1: 8d 0e d7 PRINT_PADDR S168
  703. 11b4: 8d 0f 08 PRINT_PADDR S169
  704. 11b7: 8d 0f 2d PRINT_PADDR S170
  705. 11ba: b2 ... PRINT "Preload> Given"
  706. 11c9: d5 1f 00 50 03 00 SUB #0050,#03 -> -(SP)
  707. 11cf: f9 06 07 b2 05 c2 00 00 CALL_VN 1ec8 (#05c2,#00,(SP)+)
  708. 11d7: f9 05 07 b2 05 c2 01 05 CALL_VN 1ec8 (#05c2,#01,#05)
  709. 11df: f9 05 07 b2 05 c2 02 47 CALL_VN 1ec8 (#05c2,#02,#47)
  710. 11e7: f9 05 07 b2 05 c2 03 69 CALL_VN 1ec8 (#05c2,#03,#69)
  711. 11ef: f9 05 07 b2 05 c2 04 76 CALL_VN 1ec8 (#05c2,#04,#76)
  712. 11f7: f9 05 07 b2 05 c2 05 65 CALL_VN 1ec8 (#05c2,#05,#65)
  713. 11ff: f9 05 07 b2 05 c2 06 6e CALL_VN 1ec8 (#05c2,#06,#6e)
  714. 1207: cd 4f 02 05 c2 STORE L01,#05c2
  715. 120c: 0d 01 00 STORE L00,#00
  716. 120f: e4 bf 02 01 READ L01 -> L00
  717. 1213: e0 07 07 a1 05 c2 01 00 CALL_VS 1e84 (#05c2,#01) -> -(SP)
  718. 121b: a0 00 5c JZ (SP)+ [FALSE] 1238
  719. 121e: b2 ... PRINT "You just typed a blank line.
  720. "
  721. 1235: 8c 00 39 JUMP 126f
  722. 1238: b2 ... PRINT "You just typed ""
  723. 1245: 0d 01 00 STORE L00,#00
  724. 1248: e0 07 07 a1 05 c2 01 00 CALL_VS 1e84 (#05c2,#01) -> -(SP)
  725. 1250: 62 01 00 58 JL L00,(SP)+ [FALSE] 126a
  726. 1254: 34 02 01 00 ADD #02,L00 -> -(SP)
  727. 1258: e0 0b 07 a1 05 c2 00 00 CALL_VS 1e84 (#05c2,(SP)+) -> -(SP)
  728. 1260: da 2f 07 d0 00 CALL_2N 1f40 ((SP)+)
  729. 1265: 95 01 INC L00
  730. 1267: 8c ff e0 JUMP 1248
  731. 126a: b2 ... PRINT "".
  732. "
  733. 126f: b0 RTRUE
  734. Routine 1270, 4 locals
  735. 1271: 8d 0f 49 PRINT_PADDR S171
  736. 1274: e0 17 07 a1 10 01 02 CALL_VS 1e84 (#10,#01) -> L01
  737. 127b: 49 02 10 00 AND L01,#10 -> -(SP)
  738. 127f: a0 00 c8 JZ (SP)+ [TRUE] 1288
  739. 1282: 0d 01 01 STORE L00,#01
  740. 1285: 8c 00 05 JUMP 128b
  741. 1288: 0d 01 00 STORE L00,#00
  742. 128b: a0 01 c8 JZ L00 [TRUE] 1294
  743. 128e: 8d 0f 58 PRINT_PADDR S172
  744. 1291: 8c 00 05 JUMP 1297
  745. 1294: 8d 0f 66 PRINT_PADDR S173
  746. 1297: 0d 03 01 STORE L02,#01
  747. 129a: 0d 04 00 STORE L03,#00
  748. 129d: b2 ... PRINT "Simulating first move...
  749. "
  750. 12b2: be 09 ff 02 SAVE_UNDO -> L01
  751. 12b6: 2d ff 02 STORE Gef,L01
  752. 12b9: c1 8f ff ff ff 50 JE Gef,#ffff [FALSE] 12cd
  753. 12bf: 8d 0f 75 PRINT_PADDR S174
  754. 12c2: 0d 03 00 STORE L02,#00
  755. 12c5: cd 4f 04 ff ff STORE L03,#ffff
  756. 12ca: 8c 00 71 JUMP 133c
  757. 12cd: 41 ff 00 58 JE Gef,#00 [FALSE] 12e7
  758. 12d1: b2 ... PRINT "Save failed.
  759. "
  760. 12de: 0d 03 00 STORE L02,#00
  761. 12e1: 0d 04 00 STORE L03,#00
  762. 12e4: 8c 00 57 JUMP 133c
  763. 12e7: 41 ff 01 54 JE Gef,#01 [FALSE] 12fd
  764. 12eb: b2 ... PRINT "Save succeeded.
  765. "
  766. 12fa: 8c 00 41 JUMP 133c
  767. 12fd: 41 ff 02 4e JE Gef,#02 [FALSE] 130d
  768. 1301: 8d 0f 82 PRINT_PADDR S175
  769. 1304: 0d 03 00 STORE L02,#00
  770. 1307: 0d 04 02 STORE L03,#02
  771. 130a: 8c 00 31 JUMP 133c
  772. 130d: b2 ... PRINT "Save gave unknown result code
  773. "
  774. 1324: e6 bf 02 PRINT_NUM L01
  775. 1327: b2 ... PRINT " -- ERROR.
  776. "
  777. 1336: 0d 03 00 STORE L02,#00
  778. 1339: 0d 04 00 STORE L03,#00
  779. 133c: a0 03 81 1d JZ L02 [TRUE] 145b
  780. 1340: b2 ... PRINT "
  781. Simulating second move...
  782. "
  783. 1357: be 09 ff 02 SAVE_UNDO -> L01
  784. 135b: 2d ff 02 STORE Gef,L01
  785. 135e: c1 8f ff ff ff 50 JE Gef,#ffff [FALSE] 1372
  786. 1364: 8d 0f 89 PRINT_PADDR S176
  787. 1367: 0d 03 00 STORE L02,#00
  788. 136a: cd 4f 04 ff ff STORE L03,#ffff
  789. 136f: 8c 00 eb JUMP 145b
  790. 1372: 41 ff 00 58 JE Gef,#00 [FALSE] 138c
  791. 1376: b2 ... PRINT "Save failed.
  792. "
  793. 1383: 0d 03 00 STORE L02,#00
  794. 1386: 0d 04 00 STORE L03,#00
  795. 1389: 8c 00 d1 JUMP 145b
  796. 138c: 41 ff 01 54 JE Gef,#01 [FALSE] 13a2
  797. 1390: b2 ... PRINT "Save succeeded.
  798. "
  799. 139f: 8c 00 bb JUMP 145b
  800. 13a2: 41 ff 02 00 87 JE Gef,#02 [FALSE] 142c
  801. 13a7: 8d 0f 96 PRINT_PADDR S177
  802. 13aa: 8d 0f 9d PRINT_PADDR S178
  803. 13ad: b2 ... PRINT "MultipleUndo> "
  804. 13bc: 88 06 29 02 CALL_1S 18a4 -> L01
  805. 13c0: bb NEW_LINE
  806. 13c1: 41 02 2e 4b JE L01,#2e [FALSE] 13ce
  807. 13c5: 0d 03 00 STORE L02,#00
  808. 13c8: 0d 04 01 STORE L03,#01
  809. 13cb: 8c 00 8f JUMP 145b
  810. 13ce: b2 ... PRINT "
  811. Second undo...
  812. "
  813. 13df: be 0a ff 02 RESTORE_UNDO -> L01
  814. 13e3: 2d ff 02 STORE Gef,L01
  815. 13e6: 41 ff 00 52 JE Gef,#00 [FALSE] 13fa
  816. 13ea: b2 ... PRINT "Undo failed.
  817. "
  818. 13f7: 8c 00 2b JUMP 1423
  819. 13fa: b2 ... PRINT "Undo gave unknown result code
  820. "
  821. 1411: e6 bf 02 PRINT_NUM L01
  822. 1414: b2 ... PRINT " -- ERROR.
  823. "
  824. 1423: 0d 04 00 STORE L03,#00
  825. 1426: 0d 03 00 STORE L02,#00
  826. 1429: 8c 00 31 JUMP 145b
  827. 142c: b2 ... PRINT "Save gave unknown result code
  828. "
  829. 1443: e6 bf 02 PRINT_NUM L01
  830. 1446: b2 ... PRINT " -- ERROR.
  831. "
  832. 1455: 0d 03 00 STORE L02,#00
  833. 1458: 0d 04 00 STORE L03,#00
  834. 145b: a0 03 80 85 JZ L02 [TRUE] 14e2
  835. 145f: 8d 0f d2 PRINT_PADDR S179
  836. 1462: b2 ... PRINT "SingleUndo> "
  837. 146f: 88 06 29 02 CALL_1S 18a4 -> L01
  838. 1473: bb NEW_LINE
  839. 1474: 41 02 2e 4d JE L01,#2e [FALSE] 1483
  840. 1478: 0d 03 00 STORE L02,#00
  841. 147b: cd 4f 04 ff fe STORE L03,#fffe
  842. 1480: 8c 00 61 JUMP 14e2
  843. 1483: b2 ... PRINT "
  844. First undo...
  845. "
  846. 1492: be 0a ff 02 RESTORE_UNDO -> L01
  847. 1496: 2d ff 02 STORE Gef,L01
  848. 1499: 41 ff 00 58 JE Gef,#00 [FALSE] 14b3
  849. 149d: b2 ... PRINT "Undo failed.
  850. "
  851. 14aa: 0d 03 00 STORE L02,#00
  852. 14ad: 0d 04 00 STORE L03,#00
  853. 14b0: 8c 00 31 JUMP 14e2
  854. 14b3: b2 ... PRINT "Undo gave unknown result code
  855. "
  856. 14ca: e6 bf 02 PRINT_NUM L01
  857. 14cd: b2 ... PRINT " -- ERROR.
  858. "
  859. 14dc: 0d 03 00 STORE L02,#00
  860. 14df: 0d 04 00 STORE L03,#00
  861. 14e2: bb NEW_LINE
  862. 14e3: 2d ff 04 STORE Gef,L03
  863. 14e6: c1 8f ff ff fe 54 JE Gef,#fffe [FALSE] 14fe
  864. 14ec: b2 ... PRINT "Test cancelled.
  865. "
  866. 14fb: 8c 00 7d JUMP 1579
  867. 14fe: c1 8f ff ff ff 5d JE Gef,#ffff [FALSE] 151f
  868. 1504: a0 01 ce JZ L00 [TRUE] 1513
  869. 1507: 8d 0f de PRINT_PADDR S180
  870. 150a: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  871. 1510: 8c 00 0b JUMP 151c
  872. 1513: 8d 0f f8 PRINT_PADDR S181
  873. 1516: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  874. 151c: 8c 00 5c JUMP 1579
  875. 151f: 41 ff 00 5d JE Gef,#00 [FALSE] 153e
  876. 1523: a0 01 ce JZ L00 [TRUE] 1532
  877. 1526: 8d 10 0c PRINT_PADDR S182
  878. 1529: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  879. 152f: 8c 00 0b JUMP 153b
  880. 1532: 8d 10 18 PRINT_PADDR S183
  881. 1535: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  882. 153b: 8c 00 3d JUMP 1579
  883. 153e: 41 ff 01 5d JE Gef,#01 [FALSE] 155d
  884. 1542: a0 01 ce JZ L00 [TRUE] 1551
  885. 1545: 8d 10 34 PRINT_PADDR S184
  886. 1548: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  887. 154e: 8c 00 0b JUMP 155a
  888. 1551: 8d 10 3f PRINT_PADDR S185
  889. 1554: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  890. 155a: 8c 00 1e JUMP 1579
  891. 155d: 41 ff 02 5a JE Gef,#02 [FALSE] 1579
  892. 1561: a0 01 ce JZ L00 [TRUE] 1570
  893. 1564: 8d 10 4d PRINT_PADDR S186
  894. 1567: da 0f 07 dd 08 2f CALL_2N 1f74 (S001)
  895. 156d: 8c 00 0b JUMP 1579
  896. 1570: 8d 10 5f PRINT_PADDR S187
  897. 1573: da 0f 07 dd 08 3b CALL_2N 1f74 (S002)
  898. 1579: b0 RTRUE
  899. Routine 157c, 1 local
  900. 157d: 8d 10 74 PRINT_PADDR S188
  901. 1580: 8d 10 a4 PRINT_PADDR S189
  902. 1583: b2 ... PRINT "ClosingText> "
  903. 1590: 88 06 29 01 CALL_1S 18a4 -> L00
  904. 1594: 41 01 2e 52 JE L00,#2e [FALSE] 15a8
  905. 1598: b2 ... PRINT "
  906. Test aborted.
  907. "
  908. 15a7: b0 RTRUE
  909. 15a8: 8d 10 cc PRINT_PADDR S190
  910. 15ab: ba QUIT
  911. Routine 15ac, 0 locals
  912. 15ad: bb NEW_LINE
  913. 15ae: 8f 06 2b CALL_1N 18ac
  914. 15b1: bb NEW_LINE
  915. 15b2: 8f 05 70 CALL_1N 15c0
  916. 15b5: b2 ... PRINT "Goodbye.
  917. "
  918. 15be: ba QUIT
  919. Routine 15c0, 7 locals
  920. 15c1: 02 00 00 c6 JL #00,#00 [TRUE] 15c9
  921. 15c5: 02 00 1d d2 JL #00,#1d [TRUE] 15d9
  922. 15c9: fa 15 5f 06 55 1d 00 1c 03 02
  923. CALL_VN2 1954 (#1d,#00,#1c,#03,#02)
  924. 15d3: e8 7f 00 PUSH #00
  925. 15d6: 8c 00 08 JUMP 15df
  926. 15d9: cf 1f 05 88 00 00 LOADW #0588,#00 -> -(SP)
  927. 15df: 57 00 02 03 DIV (SP)+,#02 -> L02
  928. 15e3: 0d 01 01 STORE L00,#01
  929. 15e6: 90 01 82 b9 JZ #01 [TRUE] 18a1
  930. 15ea: a0 01 80 74 JZ L00 [TRUE] 1660
  931. 15ee: 8d 11 0b PRINT_PADDR S205
  932. 15f1: b2 ... PRINT " . (period): Exit TerpEtude
  933. "
  934. 160c: 0d 04 00 STORE L03,#00
  935. 160f: 62 04 03 00 4b JL L03,L02 [FALSE] 165d
  936. 1614: b2 ... PRINT " "
  937. 1617: 54 04 01 00 ADD L03,#01 -> -(SP)
  938. 161b: e6 bf 00 PRINT_NUM (SP)+
  939. 161e: b2 ... PRINT ": "
  940. 1621: 56 04 02 00 MUL L03,#02 -> -(SP)
  941. 1625: 54 00 01 00 ADD (SP)+,#01 -> -(SP)
  942. 1629: e9 7f fe PULL Gee
  943. 162c: e8 bf fe PUSH Gee
  944. 162f: 42 fe 00 c6 JL Gee,#00 [TRUE] 1637
  945. 1633: 42 fe 1d d5 JL Gee,#1d [TRUE] 164a
  946. 1637: fa 19 5f 06 55 1d fe 1c 03 02
  947. CALL_VN2 1954 (#1d,Gee,#1c,#03,#02)
  948. 1641: a0 00 42 JZ (SP)+ [FALSE] 1644
  949. 1644: e8 7f 00 PUSH #00
  950. 1647: 8c 00 08 JUMP 1650
  951. 164a: cf 2f 05 88 00 00 LOADW #0588,(SP)+ -> -(SP)
  952. 1650: da 2f 07 dd 00 CALL_2N 1f74 ((SP)+)
  953. 1655: b2 ... PRINT "
  954. "
  955. 1658: 95 04 INC L03
  956. 165a: 8c ff b4 JUMP 160f
  957. 165d: 0d 01 00 STORE L00,#00
  958. 1660: b2 ... PRINT "
  959. > "
  960. 1667: 02 00 00 c6 JL #00,#00 [TRUE] 166f
  961. 166b: 02 00 50 cf JL #00,#50 [TRUE] 167c
  962. 166f: fa 15 5f 06 55 1e 00 4f 00 03
  963. CALL_VN2 1954 (#1e,#00,#4f,#00,#03)
  964. 1679: 8c 00 08 JUMP 1682
  965. 167c: e2 17 05 c2 00 4d STOREB #05c2,#00,#4d
  966. 1682: 02 01 00 c6 JL #01,#00 [TRUE] 168a
  967. 1686: 02 01 50 cf JL #01,#50 [TRUE] 1697
  968. 168a: fa 15 5f 06 55 1e 01 4f 00 03
  969. CALL_VN2 1954 (#1e,#01,#4f,#00,#03)
  970. 1694: 8c 00 08 JUMP 169d
  971. 1697: e2 17 05 c2 01 00 STOREB #05c2,#01,#00
  972. 169d: cd 4f 02 05 c2 STORE L01,#05c2
  973. 16a2: 0d 04 00 STORE L03,#00
  974. 16a5: e4 bf 02 04 READ L01 -> L03
  975. 16a9: bb NEW_LINE
  976. 16aa: 02 01 00 c6 JL #01,#00 [TRUE] 16b2
  977. 16ae: 02 01 50 cf JL #01,#50 [TRUE] 16bf
  978. 16b2: fa 15 5f 06 55 1c 01 4f 00 03
  979. CALL_VN2 1954 (#1c,#01,#4f,#00,#03)
  980. 16bc: 8c 00 08 JUMP 16c5
  981. 16bf: d0 1f 05 c2 01 06 LOADB #05c2,#01 -> L05
  982. 16c5: 0d 05 00 STORE L04,#00
  983. 16c8: 62 05 06 76 JL L04,L05 [FALSE] 1700
  984. 16cc: 34 02 05 00 ADD #02,L04 -> -(SP)
  985. 16d0: e9 7f fe PULL Gee
  986. 16d3: e8 bf fe PUSH Gee
  987. 16d6: 42 fe 00 c6 JL Gee,#00 [TRUE] 16de
  988. 16da: 42 fe 50 d5 JL Gee,#50 [TRUE] 16f1
  989. 16de: fa 19 5f 06 55 1c fe 4f 00 03
  990. CALL_VN2 1954 (#1c,Gee,#4f,#00,#03)
  991. 16e8: a0 00 42 JZ (SP)+ [FALSE] 16eb
  992. 16eb: e8 7f 00 PUSH #00
  993. 16ee: 8c 00 08 JUMP 16f7
  994. 16f1: d0 2f 05 c2 00 00 LOADB #05c2,(SP)+ -> -(SP)
  995. 16f7: 41 00 20 47 JE (SP)+,#20 [FALSE] 1700
  996. 16fb: 95 05 INC L04
  997. 16fd: 8c ff ca JUMP 16c8
  998. 1700: 62 05 06 74 JL L04,L05 [FALSE] 1736
  999. 1704: 34 02 05 00 ADD #02,L04 -> -(SP)
  1000. 1708: e9 7f fe PULL Gee
  1001. 170b: e8 bf fe PUSH Gee
  1002. 170e: 42 fe 00 c6 JL Gee,#00 [TRUE] 1716
  1003. 1712: 42 fe 50 d5 JL Gee,#50 [TRUE] 1729
  1004. 1716: fa 19 5f 06 55 1c fe 4f 00 03
  1005. CALL_VN2 1954 (#1c,Gee,#4f,#00,#03)
  1006. 1720: a0 00 42 JZ (SP)+ [FALSE] 1723
  1007. 1723: e8 7f 00 PUSH #00
  1008. 1726: 8c 00 08 JUMP 172f
  1009. 1729: d0 2f 05 c2 00 00 LOADB #05c2,(SP)+ -> -(SP)
  1010. 172f: 41 00 2e 45 JE (SP)+,#2e [FALSE] 1736
  1011. 1733: 8c 01 6d JUMP 18a1
  1012. 1736: 61 05 06 80 60 JE L04,L05 [TRUE] 1799
  1013. 173b: 34 02 05 00 ADD #02,L04 -> -(SP)
  1014. 173f: e9 7f fe PULL Gee
  1015. 1742: e8 bf fe PUSH Gee
  1016. 1745: 42 fe 00 c6 JL Gee,#00 [TRUE] 174d
  1017. 1749: 42 fe 50 d5 JL Gee,#50 [TRUE] 1760
  1018. 174d: fa 19 5f 06 55 1c fe 4f 00 03
  1019. CALL_VN2 1954 (#1c,Gee,#4f,#00,#03)
  1020. 1757: a0 00 42 JZ (SP)+ [FALSE] 175a
  1021. 175a: e8 7f 00 PUSH #00
  1022. 175d: 8c 00 08 JUMP 1766
  1023. 1760: d0 2f 05 c2 00 00 LOADB #05c2,(SP)+ -> -(SP)
  1024. 1766: 42 00 30 f1 JL (SP)+,#30 [TRUE] 1799
  1025. 176a: 34 02 05 00 ADD #02,L04 -> -(SP)
  1026. 176e: e9 7f fe PULL Gee
  1027. 1771: e8 bf fe PUSH Gee
  1028. 1774: 42 fe 00 c6 JL Gee,#00 [TRUE] 177c
  1029. 1778: 42 fe 50 d5 JL Gee,#50 [TRUE] 178f
  1030. 177c: fa 19 5f 06 55 1c fe 4f 00 03
  1031. CALL_VN2 1954 (#1c,Gee,#4f,#00,#03)
  1032. 1786: a0 00 42 JZ (SP)+ [FALSE] 1789
  1033. 1789: e8 7f 00 PUSH #00
  1034. 178c: 8c 00 08 JUMP 1795
  1035. 178f: d0 2f 05 c2 00 00 LOADB #05c2,(SP)+ -> -(SP)
  1036. 1795: 43 00 39 48 JG (SP)+,#39 [FALSE] 179f
  1037. 1799: 0d 01 01 STORE L00,#01
  1038. 179c: 8c fe 49 JUMP 15e6
  1039. 179f: 0d 07 00 STORE L06,#00
  1040. 17a2: 62 05 06 00 9e JL L04,L05 [FALSE] 1843
  1041. 17a7: 34 02 05 00 ADD #02,L04 -> -(SP)
  1042. 17ab: e9 7f fe PULL Gee
  1043. 17ae: e8 bf fe PUSH Gee
  1044. 17b1: 42 fe 00 c6 JL Gee,#00 [TRUE] 17b9
  1045. 17b5: 42 fe 50 d5 JL Gee,#50 [TRUE] 17cc
  1046. 17b9: fa 19 5f 06 55 1c fe 4f 00 03
  1047. CALL_VN2 1954 (#1c,Gee,#4f,#00,#03)
  1048. 17c3: a0 00 42 JZ (SP)+ [FALSE] 17c6
  1049. 17c6: e8 7f 00 PUSH #00
  1050. 17c9: 8c 00 08 JUMP 17d2
  1051. 17cc: d0 2f 05 c2 00 00 LOADB #05c2,(SP)+ -> -(SP)
  1052. 17d2: 42 00 30 80 6e JL (SP)+,#30 [TRUE] 1843
  1053. 17d7: 34 02 05 00 ADD #02,L04 -> -(SP)
  1054. 17db: e9 7f fe PULL Gee
  1055. 17de: e8 bf fe PUSH Gee
  1056. 17e1: 42 fe 00 c6 JL Gee,#00 [TRUE] 17e9
  1057. 17e5: 42 fe 50 d5 JL Gee,#50 [TRUE] 17fc
  1058. 17e9: fa 19 5f 06 55 1c fe 4f 00 03
  1059. CALL_VN2 1954 (#1c,Gee,#4f,#00,#03)
  1060. 17f3: a0 00 42 JZ (SP)+ [FALSE] 17f6
  1061. 17f6: e8 7f 00 PUSH #00
  1062. 17f9: 8c 00 08 JUMP 1802
  1063. 17fc: d0 2f 05 c2 00 00 LOADB #05c2,(SP)+ -> -(SP)
  1064. 1802: 43 00 39 80 3e JG (SP)+,#39 [TRUE] 1843
  1065. 1807: 34 02 05 00 ADD #02,L04 -> -(SP)
  1066. 180b: e9 7f fe PULL Gee
  1067. 180e: e8 bf fe PUSH Gee
  1068. 1811: 42 fe 00 c6 JL Gee,#00 [TRUE] 1819
  1069. 1815: 42 fe 50 d5 JL Gee,#50 [TRUE] 182c
  1070. 1819: fa 19 5f 06 55 1c fe 4f 00 03
  1071. CALL_VN2 1954 (#1c,Gee,#4f,#00,#03)
  1072. 1823: a0 00 42 JZ (SP)+ [FALSE] 1826
  1073. 1826: e8 7f 00 PUSH #00
  1074. 1829: 8c 00 08 JUMP 1832
  1075. 182c: d0 2f 05 c2 00 00 LOADB #05c2,(SP)+ -> -(SP)
  1076. 1832: 55 00 30 00 SUB (SP)+,#30 -> -(SP)
  1077. 1836: 56 07 0a 00 MUL L06,#0a -> -(SP)
  1078. 183a: 74 00 00 07 ADD (SP)+,(SP)+ -> L06
  1079. 183e: 95 05 INC L04
  1080. 1840: 8c ff 61 JUMP 17a2
  1081. 1843: 42 07 01 c6 JL L06,#01 [TRUE] 184b
  1082. 1847: 63 07 03 62 JG L06,L02 [FALSE] 186b
  1083. 184b: b2 ... PRINT "Please enter a value from 1 to
  1084. "
  1085. 1862: e6 bf 03 PRINT_NUM L02
  1086. 1865: 8d 11 15 PRINT_PADDR S206
  1087. 1868: 8c fd 7d JUMP 15e6
  1088. 186b: 56 07 02 00 MUL L06,#02 -> -(SP)
  1089. 186f: e9 7f fe PULL Gee
  1090. 1872: e8 bf fe PUSH Gee
  1091. 1875: 42 fe 00 c6 JL Gee,#00 [TRUE] 187d
  1092. 1879: 42 fe 1d d2 JL Gee,#1d [TRUE] 188d
  1093. 187d: fa 19 5f 06 55 1d fe 1c 03 02
  1094. CALL_VN2 1954 (#1d,Gee,#1c,#03,#02)
  1095. 1887: a0 00 42 JZ (SP)+ [FALSE] 188a
  1096. 188a: 8c 00 08 JUMP 1893
  1097. 188d: cf 2f 05 88 00 04 LOADW #0588,(SP)+ -> L03
  1098. 1893: a0 04 48 JZ L03 [FALSE] 189c
  1099. 1896: 8d 11 23 PRINT_PADDR S207
  1100. 1899: 8c fd 4c JUMP 15e6
  1101. 189c: af 04 CALL_1N L03
  1102. 189e: 8c fd 47 JUMP 15e6
  1103. 18a1: b0 RTRUE
  1104. Routine 18a4, 1 local
  1105. 18a5: f6 7f 01 01 READ_CHAR #01 -> L00
  1106. 18a9: ab 01 RET L00
  1107. Routine 18ac, 0 locals
  1108. 18ad: 8d 11 2a PRINT_PADDR S208
  1109. 18b0: 8d 11 33 PRINT_PADDR S209
  1110. 18b3: b2 ... PRINT "Release "
  1111. 18ba: e0 17 07 a9 00 01 00 CALL_VS 1ea4 (#00,#01) -> -(SP)
  1112. 18c1: c9 8f 00 03 ff 00 AND (SP)+,#03ff -> -(SP)
  1113. 18c7: e6 bf 00 PRINT_NUM (SP)+
  1114. 18ca: b2 ... PRINT " / built with Inform v"
  1115. 18db: 10 00 3c ff LOADB #00,#3c -> Gef
  1116. 18df: e5 bf ff PRINT_CHAR Gef
  1117. 18e2: 10 00 3d ff LOADB #00,#3d -> Gef
  1118. 18e6: e5 bf ff PRINT_CHAR Gef
  1119. 18e9: 10 00 3e ff LOADB #00,#3e -> Gef
  1120. 18ed: e5 bf ff PRINT_CHAR Gef
  1121. 18f0: 10 00 3f ff LOADB #00,#3f -> Gef
  1122. 18f4: e5 bf ff PRINT_CHAR Gef
  1123. 18f7: bb NEW_LINE
  1124. 18f8: 8d 11 3c PRINT_PADDR S210
  1125. 18fb: bb NEW_LINE
  1126. 18fc: 8d 11 48 PRINT_PADDR S211
  1127. 18ff: 8d 11 67 PRINT_PADDR S212
  1128. 1902: b0 RTRUE
  1129. Routine 1904, 0 locals
  1130. 1905: 8d 11 9d PRINT_PADDR S213
  1131. 1908: 8d 11 ab PRINT_PADDR S214
  1132. 190b: 8d 11 c0 PRINT_PADDR S215
  1133. 190e: 8d 11 d0 PRINT_PADDR S216
  1134. 1911: 8d 11 e5 PRINT_PADDR S217
  1135. 1914: b2 ... PRINT "
  1136. Upcoming Test Features:
  1137. "
  1138. 192d: 8d 11 fd PRINT_PADDR S218
  1139. 1930: b2 ... PRINT "
  1140. Credits:
  1141. "
  1142. 193d: b2 ... PRINT "Title: Jon Ferro
  1143. "
  1144. 194e: 8d 12 08 PRINT_PADDR S219
  1145. 1951: b0 RTRUE
  1146. Routine 1954, 6 locals
  1147. 1955: b2 ... PRINT "
  1148. [** Programming error: "
  1149. 196e: 42 01 00 45 JL L00,#00 [FALSE] 1975
  1150. 1972: 8c 03 d2 JUMP 1d45
  1151. 1975: 41 01 01 4e JE L00,#01 [FALSE] 1985
  1152. 1979: b2 ... PRINT "class "
  1153. 197e: aa 02 PRINT_OBJ L01
  1154. 1980: 8d 12 13 PRINT_PADDR S220
  1155. 1983: bb NEW_LINE
  1156. 1984: b0 RTRUE
  1157. 1985: 41 01 20 4f JE L00,#20 [FALSE] 1996
  1158. 1989: 8d 12 1d PRINT_PADDR S221
  1159. 198c: da 2f 07 e3 02 CALL_2N 1f8c (L01)
  1160. 1991: 8d 12 24 PRINT_PADDR S222
  1161. 1994: bb NEW_LINE
  1162. 1995: b0 RTRUE
  1163. 1996: 41 01 21 5b JE L00,#21 [FALSE] 19b3
  1164. 199a: b2 ... PRINT "tried to print (char) "
  1165. 19ab: e6 bf 02 PRINT_NUM L01
  1166. 19ae: 8d 12 2e PRINT_PADDR S223
  1167. 19b1: bb NEW_LINE
  1168. 19b2: b0 RTRUE
  1169. 19b3: 41 01 22 60 JE L00,#22 [FALSE] 19d5
  1170. 19b7: 8d 12 3b PRINT_PADDR S224
  1171. 19ba: b3 ... PRINT_RET "byte address of a string **]"
  1172. 19d5: 41 01 23 54 JE L00,#23 [FALSE] 19eb
  1173. 19d9: 8d 12 43 PRINT_PADDR S225
  1174. 19dc: b3 ... PRINT_RET "string **]"
  1175. 19eb: 41 01 24 5a JE L00,#24 [FALSE] 1a07
  1176. 19ef: 8d 12 4b PRINT_PADDR S226
  1177. 19f2: b3 ... PRINT_RET "object or class **]"
  1178. 1a07: 42 01 20 03 3b JL L00,#20 [FALSE] 1d45
  1179. 1a0c: b2 ... PRINT "tried to "
  1180. 1a13: 42 01 1c 80 d1 JL L00,#1c [TRUE] 1ae7
  1181. 1a18: c1 97 01 1c 1d 4e JE L00,#1c,#1d [FALSE] 1a2a
  1182. 1a1e: b2 ... PRINT "read from "
  1183. 1a27: 8c 00 09 JUMP 1a31
  1184. 1a2a: b2 ... PRINT "write to "
  1185. 1a31: c1 97 01 1d 1f 45 JE L00,#1d,#1f [FALSE] 1a3a
  1186. 1a37: b2 ... PRINT "-"
  1187. 1a3a: b2 ... PRINT "->"
  1188. 1a3f: e6 bf 02 PRINT_NUM L01
  1189. 1a42: b2 ... PRINT " in the"
  1190. 1a49: 49 04 07 00 AND L03,#07 -> -(SP)
  1191. 1a4d: e9 7f ff PULL Gef
  1192. 1a50: c1 97 ff 00 01 48 JE Gef,#00,#01 [FALSE] 1a5c
  1193. 1a56: 0d 06 00 STORE L05,#00
  1194. 1a59: 8c 00 30 JUMP 1a8a
  1195. 1a5c: 41 ff 02 4f JE Gef,#02 [FALSE] 1a6d
  1196. 1a60: b2 ... PRINT " string"
  1197. 1a67: 0d 06 01 STORE L05,#01
  1198. 1a6a: 8c 00 1f JUMP 1a8a
  1199. 1a6d: 41 ff 03 4d JE Gef,#03 [FALSE] 1a7c
  1200. 1a71: b2 ... PRINT " table"
  1201. 1a76: 0d 06 01 STORE L05,#01
  1202. 1a79: 8c 00 10 JUMP 1a8a
  1203. 1a7c: 41 ff 04 4c JE Gef,#04 [FALSE] 1a8a
  1204. 1a80: b2 ... PRINT " buffer"
  1205. 1a87: 0d 06 02 STORE L05,#02
  1206. 1a8a: 49 04 10 00 AND L03,#10 -> -(SP)
  1207. 1a8e: a0 00 cb JZ (SP)+ [TRUE] 1a9a
  1208. 1a91: b2 ... PRINT " (->)"
  1209. 1a9a: 49 04 08 00 AND L03,#08 -> -(SP)
  1210. 1a9e: a0 00 cd JZ (SP)+ [TRUE] 1aac
  1211. 1aa1: b2 ... PRINT " (-->)"
  1212. 1aac: b2 ... PRINT " array ""
  1213. 1ab3: cf 2f 03 00 05 00 LOADW #0300,L04 -> -(SP)
  1214. 1ab9: da 2f 07 dd 00 CALL_2N 1f74 ((SP)+)
  1215. 1abe: b2 ... PRINT "", which has entries "
  1216. 1acf: e6 bf 06 PRINT_NUM L05
  1217. 1ad2: b2 ... PRINT " up to "
  1218. 1ad9: e6 bf 03 PRINT_NUM L02
  1219. 1adc: b3 ... PRINT_RET " **]"
  1220. 1ae7: 42 01 18 80 56 JL L00,#18 [TRUE] 1b40
  1221. 1aec: 43 01 1b 80 51 JG L00,#1b [TRUE] 1b40
  1222. 1af1: 43 01 19 ca JG L00,#19 [TRUE] 1afd
  1223. 1af5: b2 ... PRINT "read"
  1224. 1afa: 8c 00 07 JUMP 1b02
  1225. 1afd: b2 ... PRINT "write"
  1226. 1b02: b2 ... PRINT " outside memory using "
  1227. 1b13: 2d ff 01 STORE Gef,L00
  1228. 1b16: c1 97 ff 18 1a 51 JE Gef,#18,#1a [FALSE] 1b2b
  1229. 1b1c: b3 ... PRINT_RET "-> **]"
  1230. 1b2b: c1 97 ff 19 1b 51 JE Gef,#19,#1b [FALSE] 1b40
  1231. 1b31: b3 ... PRINT_RET "--> **]"
  1232. 1b40: 42 01 04 4a JL L00,#04 [FALSE] 1b4c
  1233. 1b44: b2 ... PRINT "test "
  1234. 1b49: 8c 00 1d JUMP 1b67
  1235. 1b4c: 42 01 0c c6 JL L00,#0c [TRUE] 1b54
  1236. 1b50: 43 01 14 4c JG L00,#14 [FALSE] 1b5e
  1237. 1b54: b2 ... PRINT "find the "
  1238. 1b5b: 8c 00 0b JUMP 1b67
  1239. 1b5e: 42 01 0e 47 JL L00,#0e [FALSE] 1b67
  1240. 1b62: b2 ... PRINT "use "
  1241. 1b67: 41 01 14 55 JE L00,#14 [FALSE] 1b7e
  1242. 1b6b: b3 ... PRINT_RET "divide by zero **]"
  1243. 1b7e: b2 ... PRINT """
  1244. 1b81: 2d ff 01 STORE Gef,L00
  1245. 1b84: 41 ff 02 50 JE Gef,#02 [FALSE] 1b96
  1246. 1b88: b2 ... PRINT "in" or "notin"
  1247. 1b93: 8c 01 9c JUMP 1d30
  1248. 1b96: 41 ff 03 52 JE Gef,#03 [FALSE] 1baa
  1249. 1b9a: b2 ... PRINT "has" or "hasnt"
  1250. 1ba7: 8c 01 88 JUMP 1d30
  1251. 1baa: 41 ff 04 4a JE Gef,#04 [FALSE] 1bb6
  1252. 1bae: b2 ... PRINT "parent"
  1253. 1bb3: 8c 01 7c JUMP 1d30
  1254. 1bb6: 41 ff 05 4a JE Gef,#05 [FALSE] 1bc2
  1255. 1bba: b2 ... PRINT "eldest"
  1256. 1bbf: 8c 01 70 JUMP 1d30
  1257. 1bc2: 41 ff 06 4a JE Gef,#06 [FALSE] 1bce
  1258. 1bc6: b2 ... PRINT "child"
  1259. 1bcb: 8c 01 64 JUMP 1d30
  1260. 1bce: 41 ff 07 4c JE Gef,#07 [FALSE] 1bdc
  1261. 1bd2: b2 ... PRINT "younger"
  1262. 1bd9: 8c 01 56 JUMP 1d30
  1263. 1bdc: 41 ff 08 4c JE Gef,#08 [FALSE] 1bea
  1264. 1be0: b2 ... PRINT "sibling"
  1265. 1be7: 8c 01 48 JUMP 1d30
  1266. 1bea: 41 ff 09 4c JE Gef,#09 [FALSE] 1bf8
  1267. 1bee: b2 ... PRINT "children"
  1268. 1bf5: 8c 01 3a JUMP 1d30
  1269. 1bf8: 41 ff 0a 4c JE Gef,#0a [FALSE] 1c06
  1270. 1bfc: b2 ... PRINT "youngest"
  1271. 1c03: 8c 01 2c JUMP 1d30
  1272. 1c06: 41 ff 0b 4a JE Gef,#0b [FALSE] 1c12
  1273. 1c0a: b2 ... PRINT "elder"
  1274. 1c0f: 8c 01 20 JUMP 1d30
  1275. 1c12: 41 ff 0c 4e JE Gef,#0c [FALSE] 1c22
  1276. 1c16: b2 ... PRINT "objectloop"
  1277. 1c1f: 8c 01 10 JUMP 1d30
  1278. 1c22: 41 ff 0d 5a JE Gef,#0d [FALSE] 1c3e
  1279. 1c26: b2 ... PRINT "}" at end of "objectloop"
  1280. 1c3b: 8c 00 f4 JUMP 1d30
  1281. 1c3e: 41 ff 0e 63 JE Gef,#0e [FALSE] 1c63
  1282. 1c42: b2 ... PRINT "give" an attribute to "
  1283. 1c53: da 2f 07 e3 02 CALL_2N 1f8c (L01)
  1284. 1c58: b3 ... PRINT_RET " **]"
  1285. 1c63: 41 ff 0f 59 JE Gef,#0f [FALSE] 1c7e
  1286. 1c67: b2 ... PRINT "remove" "
  1287. 1c6e: da 2f 07 e3 02 CALL_2N 1f8c (L01)
  1288. 1c73: b3 ... PRINT_RET " **]"
  1289. 1c7e: c1 95 ff 10 11 12 00 76 JE Gef,#10,#11,#12 [FALSE] 1cfa
  1290. 1c86: b2 ... PRINT "move" "
  1291. 1c8d: da 2f 07 e3 02 CALL_2N 1f8c (L01)
  1292. 1c92: b2 ... PRINT " to "
  1293. 1c97: da 2f 07 e3 03 CALL_2N 1f8c (L02)
  1294. 1c9c: 41 01 12 00 50 JE L00,#12 [FALSE] 1cef
  1295. 1ca1: b2 ... PRINT ", which would make a loop: "
  1296. 1cb6: da 2f 07 e3 02 CALL_2N 1f8c (L01)
  1297. 1cbb: 2d 05 03 STORE L04,L02
  1298. 1cbe: 61 05 02 48 JE L04,L01 [FALSE] 1cc8
  1299. 1cc2: 2d 05 02 STORE L04,L01
  1300. 1cc5: 8c 00 14 JUMP 1cda
  1301. 1cc8: b2 ... PRINT " in "
  1302. 1ccd: da 2f 07 e3 05 CALL_2N 1f8c (L04)
  1303. 1cd2: a3 05 05 GET_PARENT L04 -> L04
  1304. 1cd5: 61 05 02 3f f0 JE L04,L01 [FALSE] 1cc8
  1305. 1cda: b2 ... PRINT " in "
  1306. 1cdf: da 2f 07 e3 05 CALL_2N 1f8c (L04)
  1307. 1ce4: b3 ... PRINT_RET " **]"
  1308. 1cef: b3 ... PRINT_RET " **]"
  1309. 1cfa: 41 ff 13 55 JE Gef,#13 [FALSE] 1d11
  1310. 1cfe: 8d 12 53 PRINT_PADDR S227
  1311. 1d01: da 2f 07 e3 02 CALL_2N 1f8c (L01)
  1312. 1d06: b3 ... PRINT_RET " **]"
  1313. 1d11: 41 ff 15 4a JE Gef,#15 [FALSE] 1d1d
  1314. 1d15: b2 ... PRINT ".&"
  1315. 1d1a: 8c 00 15 JUMP 1d30
  1316. 1d1d: 41 ff 16 4a JE Gef,#16 [FALSE] 1d29
  1317. 1d21: b2 ... PRINT ".#"
  1318. 1d26: 8c 00 09 JUMP 1d30
  1319. 1d29: 41 ff 17 45 JE Gef,#17 [FALSE] 1d30
  1320. 1d2d: b2 ... PRINT "."
  1321. 1d30: b2 ... PRINT "" of "
  1322. 1d35: da 2f 07 e3 02 CALL_2N 1f8c (L01)
  1323. 1d3a: b3 ... PRINT_RET " **]"
  1324. 1d45: 42 02 00 ea JL L01,#00 [TRUE] 1d71
  1325. 1d49: d5 1f 01 03 ff 00 SUB #0103,#ff -> -(SP)
  1326. 1d4f: 63 02 00 e0 JG L01,(SP)+ [TRUE] 1d71
  1327. 1d53: a0 02 cb JZ L01 [TRUE] 1d5f
  1328. 1d56: 46 02 01 47 JIN L01,"Class" [FALSE] 1d5f
  1329. 1d5a: b2 ... PRINT "class "
  1330. 1d5f: a0 02 c7 JZ L01 [TRUE] 1d67
  1331. 1d62: aa 02 PRINT_OBJ L01
  1332. 1d64: 8c 00 09 JUMP 1d6e
  1333. 1d67: b2 ... PRINT "nothing"
  1334. 1d6e: b2 ... PRINT " "
  1335. 1d71: b2 ... PRINT "(object number "
  1336. 1d7e: e6 bf 02 PRINT_NUM L01
  1337. 1d81: b2 ... PRINT ") "
  1338. 1d84: 42 03 00 5b JL L02,#00 [FALSE] 1da1
  1339. 1d88: b2 ... PRINT "is not of class "
  1340. 1d95: 35 00 03 00 SUB #00,L02 -> -(SP)
  1341. 1d99: da 2f 07 e3 00 CALL_2N 1f8c ((SP)+)
  1342. 1d9e: 8c 00 55 JUMP 1df4
  1343. 1da1: a0 04 d8 JZ L03 [TRUE] 1dba
  1344. 1da4: b2 ... PRINT "has a property "
  1345. 1daf: da 2f 07 fa 03 CALL_2N 1fe8 (L02)
  1346. 1db4: 8d 12 5f PRINT_PADDR S228
  1347. 1db7: 8c 00 3c JUMP 1df4
  1348. 1dba: b2 ... PRINT " has no property "
  1349. 1dc7: da 2f 07 fa 03 CALL_2N 1fe8 (L02)
  1350. 1dcc: cd 4f 05 02 10 STORE L04,#0210
  1351. 1dd1: 4f 05 00 04 LOADW L04,#00 -> L03
  1352. 1dd5: 42 03 00 c6 JL L02,#00 [TRUE] 1ddd
  1353. 1dd9: 62 03 04 d9 JL L02,L03 [TRUE] 1df4
  1354. 1ddd: b2 ... PRINT " (and nor has any other
  1355. object)"
  1356. 1df4: b2 ... PRINT " to "
  1357. 1df9: da 2f 07 dd 01 CALL_2N 1f74 (L00)
  1358. 1dfe: b2 ... PRINT " **]
  1359. "
  1360. 1e09: b0 RTRUE
  1361. Routine 1e0c, 2 locals
  1362. 1e0d: c1 93 01 00 ff ff c0 JE L00,#00,#ffff [TRUE] RFALSE
  1363. 1e14: 2d 02 01 STORE L01,L00
  1364. 1e17: 0f 1a 00 00 LOADW #1a,#00 -> -(SP)
  1365. 1e1b: e0 2b 07 95 02 00 00 CALL_VS 1e54 (L01,(SP)+) -> -(SP)
  1366. 1e22: 42 00 00 40 JL (SP)+,#00 [FALSE] RFALSE
  1367. 1e26: 42 01 01 cc JL L00,#01 [TRUE] 1e34
  1368. 1e2a: d5 1f 01 03 ff 00 SUB #0103,#ff -> -(SP)
  1369. 1e30: 63 01 00 41 JG L00,(SP)+ [FALSE] RTRUE
  1370. 1e34: e0 23 07 95 01 08 2f 00 CALL_VS 1e54 (L00,S001) -> -(SP)
  1371. 1e3c: 42 00 00 c4 JL (SP)+,#00 [TRUE] 1e42
  1372. 1e40: 9b 03 RET #03
  1373. 1e42: e0 23 07 95 01 01 87 00 CALL_VS 1e54 (L00,#0187) -> -(SP)
  1374. 1e4a: 42 00 00 c4 JL (SP)+,#00 [TRUE] 1e50
  1375. 1e4e: 9b 02 RET #02
  1376. 1e50: b1 RFALSE
  1377. Routine 1e54, 4 locals
  1378. 1e55: 61 01 02 43 JE L00,L01 [FALSE] 1e5a
  1379. 1e59: b1 RFALSE
  1380. 1e5a: 42 01 00 47 JL L00,#00 [FALSE] 1e63
  1381. 1e5e: 42 02 00 c3 JL L01,#00 [TRUE] 1e63
  1382. 1e62: b0 RTRUE
  1383. 1e63: 42 01 00 c9 JL L00,#00 [TRUE] 1e6e
  1384. 1e67: 42 02 00 45 JL L01,#00 [FALSE] 1e6e
  1385. 1e6b: 8b ff ff RET #ffff
  1386. 1e6e: c9 8f 01 7f ff 03 AND L00,#7fff -> L02
  1387. 1e74: c9 8f 02 7f ff 04 AND L01,#7fff -> L03
  1388. 1e7a: 63 03 04 43 JG L02,L03 [FALSE] 1e7f
  1389. 1e7e: b0 RTRUE
  1390. 1e7f: 8b ff ff RET #ffff
  1391. Routine 1e84, 4 locals
  1392. 1e85: 74 01 02 03 ADD L00,L01 -> L02
  1393. 1e89: e0 23 07 95 03 06 1c 00 CALL_VS 1e54 (L02," b js/zzik ") ->
  1394. -(SP)
  1395. 1e91: 42 00 00 c9 JL (SP)+,#00 [TRUE] 1e9c
  1396. 1e95: d9 1f 06 55 18 00 CALL_2S 1954 (#18) -> -(SP)
  1397. 1e9b: b8 RET_POPPED
  1398. 1e9c: 70 01 02 04 LOADB L00,L01 -> L03
  1399. 1ea0: ab 04 RET L03
  1400. Routine 1ea4, 4 locals
  1401. 1ea5: 36 02 02 00 MUL #02,L01 -> -(SP)
  1402. 1ea9: 74 01 00 03 ADD L00,(SP)+ -> L02
  1403. 1ead: e0 23 07 95 03 06 1c 00 CALL_VS 1e54 (L02," b js/zzik ") ->
  1404. -(SP)
  1405. 1eb5: 42 00 00 c9 JL (SP)+,#00 [TRUE] 1ec0
  1406. 1eb9: d9 1f 06 55 19 00 CALL_2S 1954 (#19) -> -(SP)
  1407. 1ebf: b8 RET_POPPED
  1408. 1ec0: 6f 01 02 04 LOADW L00,L01 -> L03
  1409. 1ec4: ab 04 RET L03
  1410. Routine 1ec8, 5 locals
  1411. 1ec9: 74 01 02 04 ADD L00,L01 -> L03
  1412. 1ecd: e0 23 07 95 04 04 e8 00 CALL_VS 1e54 (L03,#04e8) -> -(SP)
  1413. 1ed5: 42 00 00 d4 JL (SP)+,#00 [TRUE] 1eeb
  1414. 1ed9: e0 23 07 95 04 06 13 00 CALL_VS 1e54 (L03,#0613) -> -(SP)
  1415. 1ee1: 42 00 00 48 JL (SP)+,#00 [FALSE] 1eeb
  1416. 1ee5: 0d 05 01 STORE L04,#01
  1417. 1ee8: 8c 00 45 JUMP 1f2e
  1418. 1eeb: e0 23 07 95 04 01 c0 00 CALL_VS 1e54 (L03,#01c0) -> -(SP)
  1419. 1ef3: 42 00 00 d4 JL (SP)+,#00 [TRUE] 1f09
  1420. 1ef7: e0 23 07 95 04 02 06 00 CALL_VS 1e54 (L03,#0206) -> -(SP)
  1421. 1eff: 42 00 00 48 JL (SP)+,#00 [FALSE] 1f09
  1422. 1f03: 0d 05 01 STORE L04,#01
  1423. 1f06: 8c 00 27 JUMP 1f2e
  1424. 1f09: e0 23 07 95 04 03 08 00 CALL_VS 1e54 (L03,#0308) -> -(SP)
  1425. 1f11: 42 00 00 d4 JL (SP)+,#00 [TRUE] 1f27
  1426. 1f15: e0 23 07 95 04 03 08 00 CALL_VS 1e54 (L03,#0308) -> -(SP)
  1427. 1f1d: 42 00 00 48 JL (SP)+,#00 [FALSE] 1f27
  1428. 1f21: 0d 05 01 STORE L04,#01
  1429. 1f24: 8c 00 09 JUMP 1f2e
  1430. 1f27: 41 04 11 45 JE L03,#11 [FALSE] 1f2e
  1431. 1f2b: 0d 05 01 STORE L04,#01
  1432. 1f2e: a0 05 49 JZ L04 [FALSE] 1f38
  1433. 1f31: d9 1f 06 55 1a 00 CALL_2S 1954 (#1a) -> -(SP)
  1434. 1f37: b8 RET_POPPED
  1435. 1f38: e2 ab 01 02 03 STOREB L00,L01,L02
  1436. 1f3d: b0 RTRUE
  1437. Routine 1f40, 2 locals
  1438. 1f41: c1 95 01 00 09 0b c6 JE L00,#00,#09,#0b [TRUE] 1f4c
  1439. 1f48: 41 01 0d 45 JE L00,#0d [FALSE] 1f4f
  1440. 1f4c: 0d 02 01 STORE L01,#01
  1441. 1f4f: 42 01 20 c9 JL L00,#20 [TRUE] 1f5a
  1442. 1f53: 43 01 7e c5 JG L00,#7e [TRUE] 1f5a
  1443. 1f57: 0d 02 01 STORE L01,#01
  1444. 1f5a: 42 01 9b c9 JL L00,#9b [TRUE] 1f65
  1445. 1f5e: 43 01 fb c5 JG L00,#fb [TRUE] 1f65
  1446. 1f62: 0d 02 01 STORE L01,#01
  1447. 1f65: a0 02 4a JZ L01 [FALSE] 1f70
  1448. 1f68: e0 1b 06 55 21 01 00 CALL_VS 1954 (#21,L00) -> -(SP)
  1449. 1f6f: b8 RET_POPPED
  1450. 1f70: e5 bf 01 PRINT_CHAR L00
  1451. 1f73: b0 RTRUE
  1452. Routine 1f74, 1 local
  1453. 1f75: d9 2f 07 83 01 00 CALL_2S 1e0c (L00) -> -(SP)
  1454. 1f7b: 41 00 03 c9 JE (SP)+,#03 [TRUE] 1f86
  1455. 1f7f: d9 1f 06 55 23 00 CALL_2S 1954 (#23) -> -(SP)
  1456. 1f85: b8 RET_POPPED
  1457. 1f86: ad 01 PRINT_PADDR L00
  1458. 1f88: b0 RTRUE
  1459. Routine 1f8c, 1 local
  1460. 1f8d: e0 2f 08 24 01 00 CALL_VS 2090 (L00) -> -(SP)
  1461. 1f93: e9 7f ff PULL Gef
  1462. 1f96: 41 ff 00 4c JE Gef,#00 [FALSE] 1fa4
  1463. 1f9a: b2 ... PRINT "nothing"
  1464. 1fa1: 8c 00 44 JUMP 1fe6
  1465. 1fa4: 41 ff 02 47 JE Gef,#02 [FALSE] 1fad
  1466. 1fa8: aa 01 PRINT_OBJ L00
  1467. 1faa: 8c 00 3b JUMP 1fe6
  1468. 1fad: 41 ff 01 4c JE Gef,#01 [FALSE] 1fbb
  1469. 1fb1: b2 ... PRINT "class "
  1470. 1fb6: aa 01 PRINT_OBJ L00
  1471. 1fb8: 8c 00 2d JUMP 1fe6
  1472. 1fbb: 41 ff 03 56 JE Gef,#03 [FALSE] 1fd3
  1473. 1fbf: b2 ... PRINT "(routine at "
  1474. 1fca: e6 bf 01 PRINT_NUM L00
  1475. 1fcd: b2 ... PRINT ")"
  1476. 1fd0: 8c 00 15 JUMP 1fe6
  1477. 1fd3: 41 ff 04 51 JE Gef,#04 [FALSE] 1fe6
  1478. 1fd7: b2 ... PRINT "(string at "
  1479. 1fe0: e6 bf 01 PRINT_NUM L00
  1480. 1fe3: b2 ... PRINT ")"
  1481. 1fe6: b0 RTRUE
  1482. Routine 1fe8, 5 locals
  1483. 1fe9: c9 8f 01 c0 00 00 AND L00,#c000 -> -(SP)
  1484. 1fef: a0 00 80 67 JZ (SP)+ [TRUE] 2058
  1485. 1ff3: 49 01 ff 00 AND L00,#ff -> -(SP)
  1486. 1ff7: cf 2f 02 06 00 04 LOADW #0206,(SP)+ -> L03
  1487. 1ffd: da 2f 07 e3 04 CALL_2N 1f8c (L03)
  1488. 2002: b2 ... PRINT "::"
  1489. 2007: c9 8f 01 80 00 00 AND L00,#8000 -> -(SP)
  1490. 200d: a0 00 51 JZ (SP)+ [FALSE] 201f
  1491. 2010: c9 8f 01 3f 00 00 AND L00,#3f00 -> -(SP)
  1492. 2016: d7 8f 00 01 00 01 DIV (SP)+,#0100 -> L00
  1493. 201c: 8c 00 3b JUMP 2058
  1494. 201f: c9 8f 01 7f 00 00 AND L00,#7f00 -> -(SP)
  1495. 2025: d7 8f 00 01 00 01 DIV (SP)+,#0100 -> L00
  1496. 202b: 51 04 03 ff GET_PROP L03,#03 -> Gef
  1497. 202f: 2d 05 ff STORE L04,Gef
  1498. 2032: 4f 05 00 00 LOADW L04,#00 -> -(SP)
  1499. 2036: a0 00 d7 JZ (SP)+ [TRUE] 204e
  1500. 2039: 43 01 00 53 JG L00,#00 [FALSE] 204e
  1501. 203d: 50 05 02 00 LOADB L04,#02 -> -(SP)
  1502. 2041: 74 05 00 00 ADD L04,(SP)+ -> -(SP)
  1503. 2045: 54 00 03 05 ADD (SP)+,#03 -> L04
  1504. 2049: 96 01 DEC L00
  1505. 204b: 8c ff e6 JUMP 2032
  1506. 204e: 4f 05 00 00 LOADW L04,#00 -> -(SP)
  1507. 2052: c9 8f 00 7f ff 01 AND (SP)+,#7fff -> L00
  1508. 2058: cd 4f 02 02 10 STORE L01,#0210
  1509. 205d: 4f 02 00 03 LOADW L01,#00 -> L02
  1510. 2061: 43 01 00 4d JG L00,#00 [FALSE] 2070
  1511. 2065: 62 01 03 49 JL L00,L02 [FALSE] 2070
  1512. 2069: 6f 02 01 00 LOADW L01,L00 -> -(SP)
  1513. 206d: a0 00 56 JZ (SP)+ [FALSE] 2084
  1514. 2070: b2 ... PRINT "<number "
  1515. 2079: e6 bf 01 PRINT_NUM L00
  1516. 207c: b2 ... PRINT ">"
  1517. 2081: 8c 00 0b JUMP 208d
  1518. 2084: 6f 02 01 00 LOADW L01,L00 -> -(SP)
  1519. 2088: da 2f 07 dd 00 CALL_2N 1f74 ((SP)+)
  1520. 208d: b0 RTRUE
  1521. Routine 2090, 1 local
  1522. 2091: d9 2f 07 83 01 00 CALL_2S 1e0c (L00) -> -(SP)
  1523. 2097: e9 7f ff PULL Gef
  1524. 209a: 41 ff 02 44 JE Gef,#02 [FALSE] 20a0
  1525. 209e: 9b 03 RET #03
  1526. 20a0: 41 ff 03 44 JE Gef,#03 [FALSE] 20a6
  1527. 20a4: 9b 04 RET #04
  1528. 20a6: 41 ff 01 4d JE Gef,#01 [FALSE] 20b5
  1529. 20aa: 46 01 01 c6 JIN L00,"Class" [TRUE] 20b2
  1530. 20ae: 43 01 04 c3 JG L00,#04 [TRUE] 20b3
  1531. 20b2: b0 RTRUE
  1532. 20b3: 9b 02 RET #02
  1533. 20b5: b1 RFALSE
  1534. Routine 20b8, 2 locals
  1535. 20b9: b1 RFALSE
  1536. [End of code at 20ba]
  1537. [Start of text at 20bc]
  1538. 20bc: S001 "This aspect of your interpreter appears to behave according to
  1539. spec.
  1540. "
  1541. 20ec: S002 "This aspect of your interpreter appears to behave WRONG.
  1542. "
  1543. 2118: S003 "Your interpreter does not claim to follow any particular version
  1544. of the Z-Spec.
  1545. "
  1546. 2154: S004 "Your interpreter claims to follow revision "
  1547. 2174: S005 "Interpreter claims that colored text IS available.
  1548. "
  1549. 219c: S006 "Interpreter claims that colored text IS NOT available.
  1550. "
  1551. 21c8: S007 "Interpreter claims that emphasized (bold) text IS available.
  1552. "
  1553. 21f8: S008 "Interpreter claims that emphasized (bold) text IS NOT available.
  1554. "
  1555. 222c: S009 "Interpreter claims that italic (or underlined) text IS available.
  1556. "
  1557. 2260: S010 "Interpreter claims that italic (or underlined) text IS NOT
  1558. available.
  1559. "
  1560. 2298: S011 "Interpreter claims that fixed-width text IS available.
  1561. "
  1562. 22c4: S012 "Interpreter claims that fixed-width text IS NOT available.
  1563. "
  1564. 22f4: S013 "Interpreter claims that sound effects ARE available.
  1565. "
  1566. 231c: S014 "Interpreter claims that sound effects ARE NOT available.
  1567. "
  1568. 2348: S015 "Interpreter claims that timed input IS available.
  1569. "
  1570. 2370: S016 "Interpreter claims that timed input IS NOT available.
  1571. "
  1572. 239c: S017 "Interpreter claims that "undo" IS available.
  1573. "
  1574. 23c0: S018 "Interpreter claims that "undo" IS NOT available.
  1575. "
  1576. 23e8: S019 ""
  1577. 23ec: S020 ""
  1578. 23f0: S021 "Black"
  1579. 23f4: S022 "Red"
  1580. 23f8: S023 "Green"
  1581. 23fc: S024 "Yellow"
  1582. 2404: S025 "Blue"
  1583. 2408: S026 "Magenta"
  1584. 2410: S027 "Cyan"
  1585. 2414: S028 "White"
  1586. 2418: S029 "Interpreter claims that colored text IS available.
  1587. "
  1588. 2440: S030 "Interpreter claims that colored text IS NOT available.
  1589. "
  1590. 246c: S031 "
  1591. In the square below, you should see"
  1592. 2488: S032 "
  1593. If it was, in the square below, you would see"
  1594. 24ac: S033 " vertical stripes of background color (matching the column
  1595. headers) and horizontal rows of foreground color (that is, all # marks in a row
  1596. the same color.)
  1597. "
  1598. 251c: S034 "Interpreter claims that emphasized (bold) text IS available.
  1599. "
  1600. 254c: S035 "Interpreter claims that emphasized (bold) text IS NOT available.
  1601. "
  1602. 2580: S036 "Interpreter claims that italic (or underlined) text IS available.
  1603. "
  1604. 25b4: S037 "Interpreter claims that italic (or underlined) text IS NOT
  1605. available.
  1606. "
  1607. 25ec: S038 "Interpreter claims that fixed-width text IS available.
  1608. "
  1609. 2618: S039 "Interpreter claims that fixed-width text IS NOT available.
  1610. "
  1611. 2648: S040 "Test of italic (or underlined) text."
  1612. 2664: S041 "Test of fixed-width text (using "font off", which sets a header
  1613. bit)."
  1614. 2698: S042 "Test of fixed-width text (using "@set_text_style 8")."
  1615. 26c4: S043 "
  1616. Now we will try combining styles. The Z-Spec does not require interpreters to
  1617. display combined styles, so the lines below may not have all the styles they
  1618. say they do.
  1619. "
  1620. 2740: S044 "Test of bold, italic, reverse text."
  1621. 275c: S045 "
  1622. The following are all printed with "font off" (that is, the header bit remains
  1623. set, even though "style roman" statements occur.)
  1624. "
  1625. 27bc: S046 "Test of fixed, bold, italic text."
  1626. 27d8: S047 "Test of fixed, bold, reverse text."
  1627. 27f4: S048 "Test of fixed, italic, reverse text."
  1628. 2810: S049 "Test of fixed, bold, italic, reverse text."
  1629. 2830: S050 "This tests signed multiplication, division, and modulo operations.
  1630. All these operations are supposed to be signed. (The Z-Spec 0.2 erroneously
  1631. says they are unsigned; this is corrected in 0.99.)
  1632. "
  1633. 28c4: S051 "I am assuming the convention that division always rounds towards
  1634. zero (not towards negative infinity), and (A % B) always has the same sign as
  1635. A. These conventions seem to be common among existing C/C++ compilers. The
  1636. Infocom interpreters also follow these conventions. (But they are not
  1637. guaranteed by the C and C++ standards. Those only require that (A/B)*B + (A%B)
  1638. == A, for all A and all nonzero B.)
  1639. "
  1640. 2a04: S052 "13 * 5"
  1641. 2a0c: S053 "13 * -5"
  1642. 2a18: S054 "-13 * 5"
  1643. 2a24: S055 "-13 * -5"
  1644. 2a30: S056 "13 / 5"
  1645. 2a38: S057 "13 / -5"
  1646. 2a40: S058 "-13 / 5"
  1647. 2a48: S059 "-13 / -5"
  1648. 2a54: S060 "13 % 5"
  1649. 2a5c: S061 "13 % -5"
  1650. 2a68: S062 "-13 % 5"
  1651. 2a74: S063 "-13 % -5"
  1652. 2a80: S064 "a-umlaut:ae"
  1653. 2a8c: S065 "o-umlaut:oe"
  1654. 2a98: S066 "u-umlaut:ue"
  1655. 2aa4: S067 "A-umlaut:Ae"
  1656. 2ab0: S068 "O-umlaut:Oe"
  1657. 2abc: S069 "U-umlaut:Ue"
  1658. 2ac8: S070 "sz-ligature:ss"
  1659. 2ad4: S071 ">>-quotes:>>"
  1660. 2ae4: S072 "<<-quotes:<<"
  1661. 2af4: S073 "e-umlaut:e"
  1662. 2b00: S074 "i-umlaut:i"
  1663. 2b0c: S075 "y-umlaut:y"
  1664. 2b18: S076 "E-umlaut:E"
  1665. 2b24: S077 "I-umlaut:I"
  1666. 2b30: S078 "a-acute:a"
  1667. 2b3c: S079 "e-acute:e"
  1668. 2b48: S080 "i-acute:i"
  1669. 2b54: S081 "o-acute:o"
  1670. 2b60: S082 "u-acute:u"
  1671. 2b6c: S083 "y-acute:y"
  1672. 2b78: S084 "A-acute:A"
  1673. 2b84: S085 "E-acute:E"
  1674. 2b90: S086 "I-acute:I"
  1675. 2b9c: S087 "O-acute:O"
  1676. 2ba8: S088 "U-acute:U"
  1677. 2bb4: S089 "Y-acute:Y"
  1678. 2bc0: S090 "a-grave:a"
  1679. 2bcc: S091 "e-grave:e"
  1680. 2bd8: S092 "i-grave:i"
  1681. 2be4: S093 "o-grave:o"
  1682. 2bf0: S094 "u-grave:u"
  1683. 2bfc: S095 "A-grave:A"
  1684. 2c08: S096 "E-grave:E"
  1685. 2c14: S097 "I-grave:I"
  1686. 2c20: S098 "O-grave:O"
  1687. 2c2c: S099 "U-grave:U"
  1688. 2c38: S100 "a-circumflex:a"
  1689. 2c48: S101 "e-circumflex:e"
  1690. 2c58: S102 "i-circumflex:i"
  1691. 2c68: S103 "o-circumflex:o"
  1692. 2c78: S104 "u-circumflex:u"
  1693. 2c88: S105 "A-circumflex:A"
  1694. 2c98: S106 "E-circumflex:E"
  1695. 2ca8: S107 "I-circumflex:I"
  1696. 2cb8: S108 "O-circumflex:O"
  1697. 2cc8: S109 "U-circumflex:U"
  1698. 2cd8: S110 "a-ring:a"
  1699. 2ce4: S111 "A-ring:A"
  1700. 2cf0: S112 "o-slash:o"
  1701. 2cfc: S113 "O-slash:O"
  1702. 2d08: S114 "a-tilde:a"
  1703. 2d14: S115 "n-tilde:n"
  1704. 2d20: S116 "o-tilde:o"
  1705. 2d2c: S117 "A-tilde:A"
  1706. 2d38: S118 "N-tilde:N"
  1707. 2d44: S119 "O-tilde:O"
  1708. 2d50: S120 "ae-ligature:ae"
  1709. 2d5c: S121 "AE-ligature:AE"
  1710. 2d6c: S122 "c-cedilla:c"
  1711. 2d78: S123 "C-cedilla:C"
  1712. 2d84: S124 "thorn:th"
  1713. 2d8c: S125 "eth:th"
  1714. 2d94: S126 "Thorn:Th"
  1715. 2d9c: S127 "Eth:Th"
  1716. 2da4: S128 "pound-symbol:L"
  1717. 2db4: S129 "oe-ligature:oe"
  1718. 2dc0: S130 "OE-ligature:OE"
  1719. 2dd0: S131 "inverse-!:!"
  1720. 2ddc: S132 "inverse-?:?"
  1721. 2de8: S133 "This displays all the accented characters (encoding values 155 to
  1722. 223). You will have to inspect your interpreter's display to make sure they
  1723. appear correctly.
  1724. "
  1725. 2e60: S134 "For the record, an umlaut is two dots; an acute accent is the one
  1726. that slants up to the right; a grave accent is the one that slants down to the
  1727. right; a circumflex is a pointy hat; a tilde is a squiggly hat; a ring is a
  1728. ring; a cedilla is the little hook that hangs down below the C. Thorn looks
  1729. like a capital D whose vertical bar extends both up and down, and Eth looks
  1730. like a D with a little cross-stroke.
  1731. "
  1732. 2f88: S135 "NOTE: Inform 6.11 contradicts the Z-Spec 0.99 document, on the
  1733. subject of the European angle-quotes (the ones that look like '>>' and '<<').
  1734. The Z-Spec says that the character '>>' is code 162, and '<<' is 163. However,
  1735. Inform 6.11 (following the Z-Spec 0.2) compiles '@>>' as 163, and '@<<' as 162.
  1736. The concensus is that the Z-Spec 0.2 and Inform 6.11 are wrong, and Z-Spec 0.99
  1737. and later are correct.
  1738. "
  1739. 30f0: S136 "Type a digit (0..7) to repeat this list in a different text style,
  1740. or "." to end this test.
  1741. "
  1742. 3138: S137 "Options: 0: normal; 1: bold; 2: italic; 3: bold italic; 4:
  1743. fixed-width; 5: fixed bold; 6: fixed italic; 7: fixed bold italic.
  1744. "
  1745. 31a8: S138 "control character 'ctrl-H' (z-machine 'delete')"
  1746. 31d0: S139 "control character 'ctrl-M' (z-machine 'newline')"
  1747. 31f8: S140 "control character 'ctrl-[' (z-machine 'escape')"
  1748. 3220: S141 " (should NOT occur in full-line input)"
  1749. 3240: S142 "This tests input of accented (actually, all) characters. Enter a
  1750. line of text; it will be broken down, and you will see a list of what
  1751. characters your interpreter thought you typed. Remember that the interpreter is
  1752. supposed to reduce everything to lower-case.
  1753. "
  1754. 32fc: S143 "Hit Enter by itself to return to the main menu.
  1755. "
  1756. 3320: S144 "This tests input of accented (actually, all) characters. Type
  1757. characters; you will see what characters your interpreter thought you typed.
  1758. Hit "." to return to the main menu.
  1759. "
  1760. 33a4: S145 "Your interpreter claims (by its header bit) that it DOES support
  1761. timed input.
  1762. "
  1763. 33e0: S146 "Your interpreter claims (by its header bit) that it DOES NOT
  1764. support timed input.
  1765. "
  1766. 3420: S147 "When you begin this test, asterisks should appear at the rate of
  1767. one per second. If they appear at the rate of one every ten seconds, your
  1768. interpreter is using the incorrect timing rate caused by an old bug in ZIP. If
  1769. an entire line of ten asterisks appears all at once every ten seconds, your
  1770. interpreter is not properly flushing its buffer.
  1771. "
  1772. 3510: S148 "Hit "." to return to the main menu, or any other key to begin the
  1773. test. Hit any key to stop the test while it is running.
  1774. "
  1775. 356c: S149 "The timing interrupt function was not called at all. Either your
  1776. interpreter does not support timed input, or you terminated the test before one
  1777. second elapsed. (Or your interpreter has the "slow" bug and you terminated the
  1778. test before ten seconds elapsed.)
  1779. "
  1780. 3624: S150 "Your interpreter claims to not support timed input. "
  1781. 3648: S151 "Your interpreter claims to support timed input. "
  1782. 366c: S152 "Your interpreter calls the timing interrupt function with no
  1783. arguments. "
  1784. 36a0: S153 "This is correct, except that your interpreter claims not to
  1785. support timed input at all. "
  1786. 36e0: S154 "Your interpreter calls the timing interrupt function with an
  1787. argument. "
  1788. 3714: S155 "Your interpreter claims (by its header bit) that it DOES support
  1789. timed input.
  1790. "
  1791. 3750: S156 "Your interpreter claims (by its header bit) that it DOES NOT
  1792. support timed input.
  1793. "
  1794. 3790: S157 "When you begin this test, you should be able to enter a line of
  1795. input in the usual fashion. Every three seconds, a line of text will appear.
  1796. (If the lines appear at the rate of one every thirty seconds, your interpreter
  1797. is using the incorrect timing rate caused by an old bug in ZIP.)
  1798. "
  1799. 385c: S158 "Interrupts actually are occuring once per second; every third
  1800. interrupt prints a line of text, and the other two have no visible effect.
  1801. After each line, your input should be redrawn so that you can continue typing
  1802. and editing it.
  1803. "
  1804. 3900: S159 "Hit "." to return to the main menu, or any other key to begin the
  1805. test. Type "." on a line by itself to stop the test.
  1806. "
  1807. 395c: S160 "You just typed a blank line. (Type "." to stop this test.)
  1808. "
  1809. 398c: S161 "The timing interrupt function was not called at all. Either your
  1810. interpreter does not support timed input, or you terminated the test before one
  1811. second elapsed. (Or your interpreter has the "slow" bug and you terminated the
  1812. test before ten seconds elapsed.)
  1813. "
  1814. 3a44: S162 "Your interpreter claims to not support timed input. "
  1815. 3a68: S163 "Your interpreter claims to support timed input. "
  1816. 3a8c: S164 "Your interpreter calls the timing interrupt function with no
  1817. arguments. "
  1818. 3ac0: S165 "This is correct, except that your interpreter claims not to
  1819. support timed input at all. "
  1820. 3b00: S166 "Your interpreter calls the timing interrupt function with an
  1821. argument. "
  1822. 3b34: S167 "
  1823. [Every three seconds....]
  1824. TimedString> "
  1825. 3b5c: S168 "This tests whether your interpreter supports being handed input by
  1826. the game file. (For example, after a function key is hit in Beyond Zork, the
  1827. command prompt appears with text already in place -- whatever text you had
  1828. typed before you interrupted it with the function key.)
  1829. "
  1830. 3c20: S169 "The command prompt below should appear with the word "Given"
  1831. already visible after it. You should be able to type more characters, or go
  1832. back and edit the given character as if you had typed them yourself.
  1833. "
  1834. 3cb4: S170 "If you see the word "Given" twice, your interpreter is printing
  1835. the given characters, which it shouldn't (that's the responsibility of the game
  1836. file.)
  1837. "
  1838. 3d24: S171 "This tests the interpreter's ability to do single and multiple
  1839. "undo" commands.
  1840. "
  1841. 3d60: S172 "Your interpreter claims (by its header bit) that it DOES support
  1842. undo.
  1843. "
  1844. 3d98: S173 "Your interpreter claims (by its header bit) that it DOES NOT
  1845. support undo.
  1846. "
  1847. 3dd4: S174 "Save failed -- interpreter claims that it does not support "undo".
  1848. "
  1849. 3e08: S175 "Undo succeeded (undid first move).
  1850. "
  1851. 3e24: S176 "Save failed -- interpreter claims that it does not support "undo".
  1852. "
  1853. 3e58: S177 "Undo succeeded (undid second move).
  1854. "
  1855. 3e74: S178 "
  1856. Hit "." to abort this test, or any other key to try a second "undo". (In many
  1857. interpreters, executing the second "undo" will return to exactly the same point
  1858. as the first one. If this occurs, and you see this message a second time (or
  1859. more), your interpreter only supports single-move undo.)
  1860. "
  1861. 3f48: S179 "
  1862. Hit "." to abort this test, or any other key to try "undo".
  1863. "
  1864. 3f78: S180 "Your interpreter claims to support "undo", but the @save_undo
  1865. opcode returned -1, indicating that the interpreter does not support "undo". "
  1866. 3fe0: S181 "Your interpreter claims to not support "undo", and the @save_undo
  1867. opcode returned -1, corroborating this. "
  1868. 4030: S182 "Your interpreter claims to support "undo", but it didn't work. "
  1869. 4060: S183 "Your interpreter claims to not support "undo", and in fact "undo"
  1870. failed. However, it did not return -1 from the @save_undo opcode, which it
  1871. should. "
  1872. 40d0: S184 "Your interpreter claims to support "undo", and it does. "
  1873. 40fc: S185 "Your interpreter claims to not support "undo", but in fact it does
  1874. anyway. "
  1875. 4134: S186 "Your interpreter claims to support "undo", and it does. In fact,
  1876. it supports multiple "undo". "
  1877. 417c: S187 "Your interpreter claims to not support "undo", but in fact it does
  1878. anyway. In fact, it supports multiple "undo". "
  1879. 41d0: S188 "This tests if you can read text which is displayed immediately
  1880. before the program quits. (It is not clear whether this is covered by the
  1881. Z-Spec. However, some games -- including some original Infocom games -- display
  1882. important closing text and then immediately quit.)
  1883. "
  1884. 4290: S189 "Hit "." to return to the main menu, or any other key to print a
  1885. line of text and then quit. If the line of text does not appear, or appears and
  1886. vanishes too quickly to read, your interpreter will have trouble with those
  1887. games.
  1888. "
  1889. 4330: S190 "
  1890. This is a final line of text. Goodbye.
  1891. "
  1892. 4350: S191 "Version"
  1893. 4358: S192 "Recent changes to TerpEtude"
  1894. 436c: S193 "Header flags analysis"
  1895. 437c: S194 "Styled text"
  1896. 4384: S195 "Colored text"
  1897. 4390: S196 "Multiplication, division, remainder"
  1898. 43ac: S197 "Accented character output"
  1899. 43c0: S198 "Single-key input"
  1900. 43cc: S199 "Full-line input"
  1901. 43d8: S200 "Timed single-key input"
  1902. 43e8: S201 "Timed full-line input"
  1903. 43f8: S202 "Pre-loading of input line"
  1904. 440c: S203 "Undo capability"
  1905. 4418: S204 "Printing before quitting"
  1906. 442c: S205 "Options: (hit Enter by itself to display this menu)
  1907. "
  1908. 4454: S206 ", or "." to exit, or hit Enter by itself to display the menu of
  1909. options.
  1910. "
  1911. 448c: S207 "That option is not yet implemented.
  1912. "
  1913. 44a8: S208 "TerpEtude: A Z-machine Interpreter Exerciser
  1914. "
  1915. 44cc: S209 "By Andrew Plotkin (erkyrath@netcom.com)
  1916. "
  1917. 44f0: S210 "Tests compliance with Z-Machine Standards Document 0.99.
  1918. "
  1919. 4520: S211 "NOTE: This program does not test everything in the Z-Spec. Passing
  1920. all the tests in this program does NOT guarantee that your interpreter is
  1921. Z-Spec-compliant.
  1922. "
  1923. 459c: S212 "For that matter, this program may have mistakes in it. I don't
  1924. think it does, but you should not assume it is the Fount of All Z-Machineness.
  1925. If you find something strange, check the Z-Spec, check existing interpreters,
  1926. check Infocom's interpreters, and then send me mail if you're still confused.
  1927. "
  1928. 4674: S213 "In the beginning, TerpEtude was written. That was release DRAFT-1.
  1929. "
  1930. 46ac: S214 " Release 2:
  1931. Accented-out test: Added ability to display characters in bold, underline, and
  1932. fixed-width styles.
  1933. "
  1934. 4700: S215 "Accented-out test: Noted that >> and << are, in fact, tested
  1935. correctly.
  1936. "
  1937. 4740: S216 "Given-text test: It's the game file's job to print the given text
  1938. before it calls @read. Fixed test to do this.
  1939. "
  1940. 4794: S217 "Timed-string test: Changed test to do both "invisible" and
  1941. "visible" interrupts (only one interrupt in three actually prints text.)
  1942. "
  1943. 47f4: S218 "List of terminating characters
  1944. Fonts
  1945. Stream 3 nesting
  1946. "
  1947. 4820: S219 "Spec Aid: Graham, SJ, PDD, and the rest of the crowd
  1948. "
  1949. 484c: S220 ": 'create' can have 0 to 3 parameters only **]"
  1950. 4874: S221 "objectloop broken because the object "
  1951. 4890: S222 " was moved while the loop passed through it **]"
  1952. 48b8: S223 ", which is not a valid ZSCII character code for output **]"
  1953. 48ec: S224 "tried to print (address) on something not the "
  1954. 490c: S225 "tried to print (string) on something not a "
  1955. 492c: S226 "tried to print (object) on something not an "
  1956. 494c: S227 "give" or test "has" or "hasnt" with a non-attribute on the object
  1957. "
  1958. 497c: S228 ", but it is longer than 2 bytes so you cannot use ".""
  1959. 49a4: S229 "<unknown attribute>"
  1960. 49b8: S230 "name"
  1961. 49bc: S231 "create"
  1962. 49c0: S232 "recreate"
  1963. 49c8: S233 "destroy"
  1964. 49d0: S234 "remaining"
  1965. 49d8: S235 "copy"
  1966. 49dc: S236 "call"
  1967. 49e0: S237 "print"
  1968. 49e4: S238 "print_to_array"
  1969. 49f0: S239 "colortab"
  1970. 49f8: S240 "AccentList"
  1971. 4a00: S241 "optionlist"
  1972. 4a08: S242 "inbuf"
  1973. [End of text at 4a0c]
  1974. [End of file]